import type { DatabaseSync } from "node:sqlite"; import type { CanonicalChunk } from "../sessions/pipeline.js"; import type { SessionRoot } from "../sessions/root-registry.js"; /** * Repository:runtime config / roots / sessions / chunks / exclusions / FTS。 */ export type ProjectionStatus = "ready" | "partial" | "degraded"; export interface RuntimeConfig { setupCompleted: boolean; indexingEnabled: boolean; autoRecall: boolean; manualLimit: number; toolLimit: number; autoMaxRecords: number; autoMaxTokens: number; configVersion: number; projectionStatus: ProjectionStatus; } export interface SessionRow { sessionId: string; rootId: string; parentSessionRef: string | null; headerProjectKey: string | null; filePath: string; fileSize: number; prefixHash: string | null; trailingLineHash: string | null; scanByteOffset: number; status: string; errorCode: string | null; updatedAt: string; } export interface StoredChunk { sourceKey: string; contentHash: string; policyVersion: string; sessionId: string; entryId: string; blockIndex: number; chunkIndex: number; originProjectKey: string; provenance: string; role: string; occurredAt: string; text: string; autoEligible: boolean; chunkerVersion: string; } /** * 读取 runtime_config。 */ export declare function getRuntimeConfig(db: DatabaseSync): RuntimeConfig; /** * 部分更新 runtime_config。 */ export declare function updateRuntimeConfig(db: DatabaseSync, patch: Partial<{ setupCompleted: boolean; indexingEnabled: boolean; autoRecall: boolean; manualLimit: number; toolLimit: number; }>): RuntimeConfig; /** * upsert session root。 */ export declare function upsertSessionRoot(db: DatabaseSync, root: SessionRoot): void; /** * 列出启用的 roots。 */ export declare function listSessionRoots(db: DatabaseSync): SessionRoot[]; /** * upsert project。 */ export declare function upsertProject(db: DatabaseSync, project: { projectKey: string; kind: string; normalizedRoot: string; }): void; /** * 读取 session 行。 */ export declare function getSession(db: DatabaseSync, sessionId: string): SessionRow | null; /** * upsert session 元数据。 */ export declare function upsertSession(db: DatabaseSync, session: SessionRow): void; /** * session 是否被排除。 */ export declare function isSessionExcluded(db: DatabaseSync, sessionId: string): boolean; /** * 排除 session,并删除其 chunks/FTS。 */ export declare function excludeSession(db: DatabaseSync, sessionId: string, reason?: string): void; /** * 恢复排除(不自动重索引)。 */ export declare function includeSession(db: DatabaseSync, sessionId: string): void; /** * 删除某 session 的 canonical chunks 与 FTS 行。 */ export declare function deleteSessionChunks(db: DatabaseSync, sessionId: string): void; /** * rewrite/truncate 前 staging:禁用 auto_eligible,标记 reconciling。 */ export declare function beginSessionReconcile(db: DatabaseSync, sessionId: string): void; /** * 用新 chunks 替换某 session 的索引内容(同事务写 chunks + FTS)。 */ export declare function replaceSessionChunks(db: DatabaseSync, sessionId: string, chunks: CanonicalChunk[]): void; /** * 统计 chunks。 */ export declare function countChunks(db: DatabaseSync): number; /** * 清空索引正文与游标,并关闭 indexing/autoRecall。 */ export declare function purgeIndex(db: DatabaseSync): void; /** * rebuild:清空 chunks/FTS/cursors,保留 roots/exclusions/config(indexing 保持开启由调用方决定)。 */ export declare function clearIndexBodies(db: DatabaseSync): void; /** * 按 source_key 批量读取 chunks(检索候选回表)。 */ export declare function getChunksBySourceKeys(db: DatabaseSync, sourceKeys: string[]): StoredChunk[]; //# sourceMappingURL=repository.d.ts.map