import type { AgentRecord, BlackboardEntry, Decision, DecisionAmendment, DecisionIndexEntry, DecisionStatus, Entity, HandoffIndexEntry, HandoffRecord, Relation } from "../../utils/types.js"; import type { IAgentStore, IBlackboardStore, IDecisionStore, IGraphStore, IHandoffStore, IIndexManager } from "../interfaces.js"; import type { EmbeddingIndex, IndexName } from "../../embeddings/index-manager.js"; import { type SqliteDatabase } from "./db.js"; export declare class SqliteBlackboardStore implements IBlackboardStore { private readonly db; constructor(db: SqliteDatabase); private rows; append(entry: Omit): Promise; read(filters?: { entry_types?: string[]; tags?: string[]; scope?: string; since?: string; limit?: number; }): Promise<{ entries: BlackboardEntry[]; total_count: number; }>; recent(n?: number, entry_types?: string[]): Promise; dismiss(ids: string[]): Promise<{ dismissed: string[]; not_found: string[]; }>; resolve(ids: string[], opts: { by?: string; note?: string; }): Promise<{ resolved: string[]; not_found: string[]; }>; } export declare class SqliteDecisionStore implements IDecisionStore { private readonly db; constructor(db: SqliteDatabase); private load; private save; create(input: Omit & { status?: "active" | "provisional"; }): Promise; get(id: string): Promise; getByScope(scope: string): Promise; updateStatus(id: string, status: DecisionStatus, extra?: Partial): Promise<{ persisted: boolean; }>; /** * Append-only metadata amendment (field D11). The sqlite index is a * read-time projection over the record, so rewriting the record keeps * every read model consistent. Deltas merge against the in-transaction * read: concurrent amends both survive. */ amendMetadata(id: string, delta: { add_affected_files: string[]; add_affected_symbols: string[]; amendment: DecisionAmendment; }): Promise; getIndex(): Promise; linkCommit(id: string, commitHash: string): Promise; getByCommitHash(commitHash: string): Promise; } export declare class SqliteGraphStore implements IGraphStore { private readonly db; /** Remove relations by id (wave-2 dedup pass). Unknown ids are ignored. */ removeRelations(relationIds: Set): Promise<{ removed: number; }>; constructor(db: SqliteDatabase); private allEntities; addEntity(input: { name: string; type: Entity["type"]; properties?: Record; }): Promise; addRelation(input: { source: string; target: string; type: Relation["type"]; properties?: Record; }): Promise; getEntities(): Promise; getRelations(): Promise; getEntityById(id: string): Promise; getEntityByName(name: string, type?: string): Promise; removeEntities(entityIds: Set): Promise<{ removedEntities: number; removedRelations: number; }>; } export declare class SqliteAgentStore implements IAgentStore { private readonly db; constructor(db: SqliteDatabase); private load; private save; upsert(input: { agent_id: string; capabilities?: string[]; role?: string; description?: string; }): Promise; touch(agentId: string): Promise; get(agentId: string): Promise; getAll(): Promise; findByCapabilities(tags: string[]): Promise; } export declare class SqliteHandoffStore implements IHandoffStore { private readonly db; constructor(db: SqliteDatabase); create(input: Omit): Promise; get(id: string): Promise; list(filters?: { source_agent?: string; target_agent?: string; scope?: string; since?: string; limit?: number; }): Promise; acknowledge(id: string, acknowledgedBy: string): Promise; private toIndexEntry; private computeResultStatus; } export declare class SqliteIndexManager implements IIndexManager { private readonly db; constructor(db: SqliteDatabase); load(indexName: IndexName): Promise; save(indexName: IndexName, index: EmbeddingIndex): Promise; addEntry(indexName: IndexName, id: string, vector: number[], contentHash?: string): Promise; removeEntries(indexName: IndexName, ids: string[]): Promise; getVector(indexName: IndexName, id: string): Promise; } //# sourceMappingURL=sqlite-stores.d.ts.map