import { type CodeImpactFields } from "./code-impact.js"; import type { GraphEdgeKind } from "../core/graph-index.js"; import { type RetrievalCoverage, type RetrievalCoverageRequirements, type RetrievalWideningLevel } from "../core/hybrid-retrieval.js"; import type { RetrievalProfile } from "../core/text-analysis.js"; import { type ContextIntent, type ContextSizeEstimate, type EvidenceRef, type KnowledgeGap } from "./context-manifest.js"; export declare const TASK_CONTEXT_EVIDENCE_FIELDS: readonly ["currentState", "requirements", "decisions", "invariants", "constraints", "dependencies", "affectedComponents", "implementationEvidence", "tests", "incidents", "risks", "contradictions"]; export type TaskContextEvidenceField = (typeof TASK_CONTEXT_EVIDENCE_FIELDS)[number]; export interface TaskContextAttempt { level: RetrievalWideningLevel; hitCount: number; coverageCandidateCount: number; visitedNodes: number; visitedEdges: number; maxDepthReached: number; maxVisitedNodes: number; maxEvidence: number; tokenBudget: number; fallbackUsed: boolean; } export interface TaskContextRetrieval { strategy: "hybrid_progressive_widening"; coverageMode: RetrievalCoverage["coverageMode"]; coverageWarnings: string[]; query: string; profile: RetrievalProfile; wideningLevel: RetrievalWideningLevel; coverageSufficient: boolean; evidenceGaps: string[]; estimatedContextTokens: number; hitCount: number; coverageCandidateCount: number; selectedEvidenceCount: number; fallbackUsed: boolean; fullGraphScanAttempted: false; attempts: TaskContextAttempt[]; } export interface ChangeImpactRelation { from: string; to: string; kind: GraphEdgeKind; direction: "incoming" | "outgoing"; } export interface TaskEvidenceRef { uri: string; path: string; } export interface ChangeImpact extends CodeImpactFields { mode: "explicit" | "inferred" | "not_applicable"; requestedPaths: string[]; changedComponents: TaskEvidenceRef[]; incomingDependencies: TaskEvidenceRef[]; outgoingDependencies: TaskEvidenceRef[]; requirements: TaskEvidenceRef[]; decisions: TaskEvidenceRef[]; invariants: TaskEvidenceRef[]; tests: TaskEvidenceRef[]; incidents: TaskEvidenceRef[]; risks: TaskEvidenceRef[]; relations: ChangeImpactRelation[]; } export interface TaskContext { version: 2; task: { intent: ContextIntent; objective: string; }; currentState: TaskEvidenceRef[]; requirements: TaskEvidenceRef[]; decisions: TaskEvidenceRef[]; invariants: TaskEvidenceRef[]; constraints: TaskEvidenceRef[]; dependencies: TaskEvidenceRef[]; affectedComponents: TaskEvidenceRef[]; implementationEvidence: TaskEvidenceRef[]; tests: TaskEvidenceRef[]; incidents: TaskEvidenceRef[]; risks: TaskEvidenceRef[]; contradictions: TaskEvidenceRef[]; unknowns: KnowledgeGap[]; changeImpact: ChangeImpact; retrieval: TaskContextRetrieval; /** Compatibility view for clients that consumed ContextManifest v1. */ intent: ContextIntent; /** Compatibility view for clients that consumed ContextManifest v1. */ objective: string; /** Stable, deduplicated union of every structured evidence bucket. */ evidence: EvidenceRef[]; /** Compatibility alias of `unknowns`. */ gaps: KnowledgeGap[]; size: ContextSizeEstimate; budget: { requestedHeuristicTokens: number; withinHeuristicBudget: boolean; omittedEvidenceCount: number; }; } export interface CompileTaskContextParams { wikiRoot: string; intent: ContextIntent; objective: string; query?: string; changedPaths?: readonly string[]; pageTypes?: readonly string[]; retrievalProfile?: RetrievalProfile; maxEvidence?: number; heuristicTokenBudget?: number; /** Opt-in persistence for disposable indexes. Context compilation is read-only by default. */ persistDerivedIndexes?: boolean; /** Additional accuracy requirements for a bounded consumer such as an editorial section. */ coverageRequirements?: RetrievalCoverageRequirements; /** Declarative specialization of an intent policy; used by evidence-planned consumers. */ evidencePolicy?: { requiredCategories?: readonly TaskContextEvidenceField[]; priorityCategories?: readonly TaskContextEvidenceField[]; requiredPageTypes?: readonly string[]; replaceDefaults?: boolean; }; } export declare function compileTaskContext(params: CompileTaskContextParams): Promise; //# sourceMappingURL=task-context-compiler.d.ts.map