/** * Intelligence API router for /api/intelligence endpoints * * Provides alerts, activity feed, and project summary endpoints * derived from the decisions database. */ import { Router } from 'express'; import type { SQLiteDatabase } from '../sqlite.js'; export type AlertSeverity = 'high' | 'medium' | 'low'; export interface Alert { id: string | number; topic: string; kind: 'stale' | 'low_confidence'; severity: AlertSeverity; message: string; updated_at: string; } export interface ActivityItem { type: string; id: string | number; topic: string; summary: string; project?: string; timestamp: string; } export interface ProjectSummary { project: string; activeDecisions: number; lastActivity: string; connectors?: string[]; } export interface PipelineProject { project: string; activeDecisions: number; lastActivity: string; stages?: Record; isNew?: boolean; } export interface ConnectorActivityItem { connector: string; summary: string; channel: string; timestamp: string; } export interface AgentNotice { agent: string; action: string; target: string; timestamp: number; } export interface AgentActivityNoticeRow { agent_id: string; type: string; input_summary: string | null; output_summary: string | null; error_message: string | null; created_at: string; } /** * Input shape for alert computation. */ export interface DecisionForAlerts { id: string | number; topic: string; decision: string; updated_at: string; status: string; confidence: number | null; } /** * Build alert list from a set of decisions. * Flags: * - `stale`: active decisions where now - updated_at > 14 days * - `low_confidence`: active decisions with confidence < 0.4 * Returns alerts sorted by severity descending (high → medium → low). */ export declare function buildAlertsFromDecisions(decisions: DecisionForAlerts[], now?: Date): Alert[]; /** * Build activity feed from raw items, sorted by timestamp descending. */ export declare function buildActivityFeed(items: ActivityItem[]): ActivityItem[]; /** * Build projects summary, sorted by lastActivity descending. */ export declare function buildProjectsSummary(projects: ProjectSummary[]): ProjectSummary[]; /** * Build pipeline fallback from project summaries, sorted by lastActivity descending. */ export declare function buildPipelineFallback(projects: ProjectSummary[]): PipelineProject[]; /** * Build connector activity list, keeping only the latest item per connector, * sorted by timestamp descending. */ export declare function buildConnectorActivity(items: ConnectorActivityItem[]): ConnectorActivityItem[]; export declare function buildAgentActivityNotices(rows: AgentActivityNoticeRow[]): AgentNotice[]; export interface ProjectDecision { id: number; topic: string; decision: string; reasoning: string | null; status: string; confidence: number | null; created_at: string; updated_at: string; } /** * Create the intelligence API router. */ export declare function createIntelligenceRouter(db: SQLiteDatabase, deps?: { reportStore?: { get(slotId: string): { html: string; updatedAt: number; } | undefined; }; sessionsDb?: SQLiteDatabase; eventBus?: { getRecentNotices(limit: number): AgentNotice[]; }; }): Router; //# sourceMappingURL=intelligence-handler.d.ts.map