naftiko: 1.0.0-alpha2 info: label: AI News Intelligence description: >- Workflow capability that exposes the Aligned News REST surface as a unified AI news intelligence service. Used by AI agents, briefing tools, and research dashboards to discover stories, monitor early signals, ingest trend reports, and run full-text search across the Aligned News corpus. tags: - Aligned News - AI - News - Intelligence - Agents created: '2026-05-06' modified: '2026-05-06' binds: - namespace: env keys: ALIGNED_NEWS_API_KEY: ALIGNED_NEWS_API_KEY capability: consumes: - import: aligned-news location: ./shared/aligned-news.yaml exposes: - type: rest port: 7090 namespace: ai-news-intelligence-api description: Unified REST API for browsing and searching Aligned News content. resources: - path: /v1/stories name: stories description: AI news stories operations: - method: GET name: listStories description: List recent stories call: aligned-news.listStories with: section: rest.section tag: rest.tag limit: rest.limit outputParameters: - type: object mapping: '$.' - method: GET path: /{id} name: getStory description: Get a single story with full body call: aligned-news.getStory with: id: rest.id outputParameters: - type: object mapping: '$.' - path: /v1/signals name: signals description: AI signals operations: - method: GET name: listSignals description: List recent signals call: aligned-news.listSignals with: badge: rest.badge limit: rest.limit outputParameters: - type: object mapping: '$.' - method: GET path: /{id} name: getSignal description: Get a single signal with analysis call: aligned-news.getSignal with: id: rest.id outputParameters: - type: object mapping: '$.' - path: /v1/reports name: reports description: AI trend reports operations: - method: GET name: listReports description: List recent reports call: aligned-news.listReports with: limit: rest.limit outputParameters: - type: object mapping: '$.' - method: GET path: /{id} name: getReport description: Get a single report with full content call: aligned-news.getReport with: id: rest.id outputParameters: - type: object mapping: '$.' - path: /v1/bundles name: bundles description: Themed story bundles operations: - method: GET name: listBundles description: List bundles call: aligned-news.listBundles with: limit: rest.limit outputParameters: - type: object mapping: '$.' - method: GET path: /{id} name: getBundle description: Get a single bundle call: aligned-news.getBundle with: id: rest.id outputParameters: - type: object mapping: '$.' - path: /v1/sections name: sections description: News sections operations: - method: GET name: listSections description: List active news sections call: aligned-news.listSections outputParameters: - type: object mapping: '$.' - path: /v1/news-feed name: news-feed description: Unified news feed operations: - method: GET name: getNewsFeed description: Get the news feed grouped by section call: aligned-news.getNewsFeed with: limit: rest.limit outputParameters: - type: object mapping: '$.' - path: /v1/search name: search description: Cross-content search operations: - method: GET name: searchContent description: Full-text search across stories, signals, and reports call: aligned-news.searchContent with: q: rest.q limit: rest.limit outputParameters: - type: object mapping: '$.'