import type { AgentExperienceEvent, AgentLearningDelta } from '../agent-learning/index.js'; import type { MemoryLanguage } from '../comet-memory/types.js'; import type { ProjectKnowledgeProvider } from './types.js'; export interface ProjectKnowledgeChangedHint { readonly eventName: string; readonly workflow: string; readonly changeId: string; readonly success: boolean; readonly operation?: string; readonly phase?: string; readonly changedPaths: readonly string[]; readonly artifactRefs: readonly string[]; readonly verificationCommands: readonly string[]; readonly verificationResults: readonly ProjectKnowledgeVerificationResult[]; } export interface ProjectKnowledgeVerificationResult { readonly command: string; readonly success: boolean; } export interface ProjectKnowledgeReviewSource { readonly source: string; readonly text: string; readonly size: number; readonly modifiedAt: number; readonly digest: string; } export interface ProjectKnowledgeReviewPacket { readonly eventName: string; readonly workflow: string; readonly changeId: string; readonly success: boolean; readonly operation?: string; readonly phase?: string; readonly summary?: string; readonly occurredAt: string; readonly changedHint: ProjectKnowledgeChangedHint; readonly sources: readonly ProjectKnowledgeReviewSource[]; } export type ProjectKnowledgeReviewAction = { readonly action: 'create' | 'update'; readonly record: unknown; } | { readonly action: 'supersede'; readonly recordId: string; }; export interface ProjectKnowledgeSemanticReviewer { review(packet: ProjectKnowledgeReviewPacket): readonly ProjectKnowledgeReviewAction[] | Promise; } export interface ProjectKnowledgeLearningOptions { readonly projectRoot: string; readonly provider: ProjectKnowledgeProvider; readonly language?: MemoryLanguage; readonly reviewer?: ProjectKnowledgeSemanticReviewer; readonly reportDiagnostic?: (diagnostic: ProjectKnowledgeLearningDiagnostic) => void; } export interface ProjectKnowledgeLearningDiagnostic { readonly code: string; readonly message: string; readonly source?: string; } export interface ProjectKnowledgeLearningResult { readonly skipped: boolean; readonly persisted: readonly string[]; readonly proven: readonly string[]; readonly superseded: readonly string[]; readonly changedHint?: ProjectKnowledgeChangedHint; readonly diagnostics: readonly ProjectKnowledgeLearningDiagnostic[]; } export interface ProjectKnowledgeReflectionResult { readonly skipped: boolean; readonly deferred: boolean; readonly deltas: readonly AgentLearningDelta[]; readonly changedHint?: ProjectKnowledgeChangedHint; readonly diagnostics: readonly ProjectKnowledgeLearningDiagnostic[]; } export interface ProjectKnowledgeReviewPacketOptions { readonly projectRoot: string; readonly maxSourceBytes?: number; readonly maxTotalSourceBytes?: number; } export declare function createProjectKnowledgeChangedHint(event: AgentExperienceEvent): ProjectKnowledgeChangedHint | null; export declare function createProjectKnowledgeReviewPacket(event: AgentExperienceEvent, options: ProjectKnowledgeReviewPacketOptions): Promise; export declare class ProjectKnowledgeLearningService { private readonly projectRoot; private readonly provider; private readonly language; private readonly reviewer?; private readonly reportDiagnostic?; constructor(options: ProjectKnowledgeLearningOptions); bootstrapProjectModel(knowledgeSources?: readonly string[]): Promise; reflectEvent(event: AgentExperienceEvent): Promise; processEvent(event: AgentExperienceEvent): Promise; } export declare function projectKnowledgeLearningSourceExists(projectRoot: string, source: string): Promise; //# sourceMappingURL=learning.d.ts.map