import type { AgentContextRecallResult, AgentContextRecallService, AgentContextScope, ExcludedAgentContextItem, SelectedAgentContextItem } from './agent-context-recall-service.js'; export type AgentContextInjectionTrigger = 'session_start' | 'pre_compact'; export type AgentContextInjectionFailureReason = 'timeout' | 'internal_error'; export interface AgentContextInjectionRequest { trigger: AgentContextInjectionTrigger; query?: string; currentContextSummary?: string; scope: AgentContextScope; tokenBudget: number; maxItems?: number; } export interface AgentContextInjectionBundle { bundleVersion: 1; injectionId: string; trigger: AgentContextInjectionTrigger; status: 'ok' | 'empty' | 'degraded'; generatedAt: string; query: string; contextText: string; selected: SelectedAgentContextItem[]; excluded: ExcludedAgentContextItem[]; tokenUsage: AgentContextRecallResult['tokenUsage']; degradedReasons: AgentContextRecallResult['degradedReasons']; failureReason: AgentContextInjectionFailureReason | null; latencyMs: number; } export interface AgentInjectionBuiltTelemetryEvent { kind: 'injection_built'; injectionId: string; trigger: AgentContextInjectionTrigger; status: AgentContextInjectionBundle['status']; latencyMs: number; candidateCount: number; selectedCount: number; excludedCount: number; selected: Array<{ memoryId: string; score: number; tokenEstimate: number; reason: SelectedAgentContextItem['selectionReason']; }>; exclusions: Array<{ memoryId: string; score: number; tokenEstimate: number; reason: ExcludedAgentContextItem['reason']; }>; tokenBudget: number; tokenUsed: number; budgetExceeded: boolean; failureReason: AgentContextInjectionFailureReason | null; } export interface AgentInjectionUsageTelemetryEvent { kind: 'injection_used'; injectionId: string; sessionId: string; observationId?: string; toolName?: string; usedMemoryIds: string[]; } export type AgentInjectionTelemetryEvent = AgentInjectionBuiltTelemetryEvent | AgentInjectionUsageTelemetryEvent; export interface AgentInjectionTelemetrySummary { sampleCount: number; latencyP50Ms: number | null; latencyP95Ms: number | null; averageBudgetUtilization: number; budgetExceededCount: number; degradedCount: number; } export interface AgentContextInjectionServiceOptions { recallService: Pick; timeoutMs?: number; now?: () => Date; nowMs?: () => number; createId?: () => string; recordTelemetry?: (event: AgentInjectionTelemetryEvent) => void; } export declare class AgentContextInjectionService { private readonly options; private readonly timeoutMs; private readonly now; private readonly nowMs; private readonly createId; constructor(options: AgentContextInjectionServiceOptions); build(request: AgentContextInjectionRequest): Promise; recordUsage(event: Omit): void; private recordTelemetry; } export declare function summarizeAgentInjectionTelemetry(events: readonly AgentInjectionTelemetryEvent[]): AgentInjectionTelemetrySummary; //# sourceMappingURL=agent-context-injection-service.d.ts.map