ori-memory
Advanced tools
| export type BridgeTarget = "claude-code" | "cursor" | "generic"; | ||
| export type BridgeScope = "project" | "global"; | ||
| export type BridgeActivation = "auto" | "manual"; | ||
| export type VaultResolutionSource = "explicit" | "project" | "global-default" | "none"; | ||
| export interface BridgeRequest { | ||
| target: BridgeTarget; | ||
| startDir: string; | ||
| scope?: BridgeScope; | ||
| activation?: BridgeActivation; | ||
| vault?: string; | ||
| global?: boolean; | ||
| uninstall?: boolean; | ||
| } | ||
| export interface BridgeServerConfig { | ||
| command: string; | ||
| args: string[]; | ||
| env: Record<string, string>; | ||
| } | ||
| export interface BridgePlan { | ||
| target: BridgeTarget; | ||
| scope: BridgeScope; | ||
| activation: BridgeActivation; | ||
| resolvedVault: string | null; | ||
| resolvedVaultSource: VaultResolutionSource; | ||
| server: BridgeServerConfig; | ||
| instructions: string[]; | ||
| warnings: string[]; | ||
| } | ||
| export declare function selectPreferredBridgePlan(plans: Array<BridgePlan | null | undefined>): BridgePlan | null; | ||
| export declare function resolveBridgeScope(request: Pick<BridgeRequest, "scope" | "global">): BridgeScope; | ||
| export declare function resolveBridgePlan(request: BridgeRequest): Promise<BridgePlan>; | ||
| export declare function buildServerConfig(vaultPath: string | null): BridgeServerConfig; | ||
| export declare function buildGenericInstallOutput(plan: BridgePlan): { | ||
| client: BridgeTarget; | ||
| mode: string; | ||
| command: string; | ||
| args: string[]; | ||
| env: Record<string, string>; | ||
| scope: BridgeScope; | ||
| activation: BridgeActivation; | ||
| resolvedVault: string | null; | ||
| instructions: string[]; | ||
| warnings: string[]; | ||
| }; | ||
| export declare function getClaudeProjectPaths(startDir: string): { | ||
| root: string; | ||
| claudeDir: string; | ||
| hooksDir: string; | ||
| settingsPath: string; | ||
| mcpPath: string; | ||
| instructionsPath: string; | ||
| }; | ||
| export declare function getClaudeGlobalPaths(): { | ||
| homeDir: string; | ||
| claudeDir: string; | ||
| hooksDir: string; | ||
| settingsPath: string; | ||
| mcpPath: string; | ||
| instructionsPath: string; | ||
| }; | ||
| export declare function getCursorProjectPaths(startDir: string): { | ||
| root: string; | ||
| cursorDir: string; | ||
| mcpPath: string; | ||
| }; | ||
| export declare function getCursorGlobalPaths(): { | ||
| homeDir: string; | ||
| cursorDir: string; | ||
| mcpPath: string; | ||
| }; | ||
| //# sourceMappingURL=bridge.d.ts.map |
| {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/core/bridge.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,QAAQ,GAAG,SAAS,CAAC;AAChE,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;AAC/C,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,QAAQ,CAAC;AACjD,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,SAAS,GAAG,gBAAgB,GAAG,MAAM,CAAC;AAEvF,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,WAAW,CAAC;IACnB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,mBAAmB,EAAE,qBAAqB,CAAC;IAC3C,MAAM,EAAE,kBAAkB,CAAC;IAC3B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,UAAU,GAAG,IAAI,CAIxG;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,GAAG,QAAQ,CAAC,GAAG,WAAW,CAGhG;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CA8DnF;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,kBAAkB,CAc9E;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,UAAU;;;;;;;;;;;EAazD;AAYD,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM;;;;;;;EAWrD;AAED,wBAAgB,oBAAoB;;;;;;;EAWnC;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM;;;;EAQrD;AAED,wBAAgB,oBAAoB;;;;EAQnC"} |
| import os from "node:os"; | ||
| import path from "node:path"; | ||
| import { getGlobalVaultPath, isVaultRoot } from "./vault.js"; | ||
| export function selectPreferredBridgePlan(plans) { | ||
| const concrete = plans.filter((plan) => Boolean(plan)); | ||
| if (concrete.length === 0) | ||
| return null; | ||
| return concrete.find((plan) => plan.scope === "project") ?? concrete[0]; | ||
| } | ||
| export function resolveBridgeScope(request) { | ||
| if (request.scope) | ||
| return request.scope; | ||
| return request.global ? "global" : "project"; | ||
| } | ||
| export async function resolveBridgePlan(request) { | ||
| const scope = resolveBridgeScope(request); | ||
| const activation = request.activation ?? (request.target === "claude-code" ? "auto" : "manual"); | ||
| let resolvedVault = null; | ||
| let resolvedVaultSource = "none"; | ||
| const warnings = []; | ||
| const instructions = []; | ||
| if (request.vault) { | ||
| resolvedVault = path.resolve(request.vault); | ||
| resolvedVaultSource = "explicit"; | ||
| } | ||
| else if (scope === "global") { | ||
| resolvedVault = getGlobalVaultPath(); | ||
| resolvedVaultSource = "global-default"; | ||
| } | ||
| else { | ||
| resolvedVault = await findNearestProjectVault(request.startDir); | ||
| resolvedVaultSource = resolvedVault ? "project" : "none"; | ||
| } | ||
| const server = buildServerConfig(resolvedVault); | ||
| if (!request.uninstall && scope === "project" && !resolvedVault) { | ||
| warnings.push("No project vault was found from the current directory. The generated config will rely on runtime discovery unless you pass --vault."); | ||
| instructions.push("Create a project vault with `ori init` or pass `--vault <path>` so project scope resolves predictably."); | ||
| } | ||
| if (!request.uninstall && scope === "global" && resolvedVaultSource === "global-default") { | ||
| instructions.push(`Global scope targets the default machine vault at ${resolvedVault}. Pass --vault to pin a different shared brain.`); | ||
| } | ||
| if (!request.uninstall && request.target === "generic" && activation === "auto") { | ||
| warnings.push("Generic installs cannot auto-orient by themselves. Treat activation=auto as a request for client-side startup wiring."); | ||
| instructions.push("If your client supports startup hooks or startup prompts, call `ori_orient` automatically at session start. Otherwise use manual activation."); | ||
| } | ||
| if (!request.uninstall && activation === "manual") { | ||
| instructions.push("Manual activation disables auto-orient. Call `ori_orient` explicitly when you want session context loaded."); | ||
| } | ||
| instructions.push("Project installs override global installs when both exist for the same client."); | ||
| return { | ||
| target: request.target, | ||
| scope, | ||
| activation, | ||
| resolvedVault, | ||
| resolvedVaultSource, | ||
| server, | ||
| instructions, | ||
| warnings, | ||
| }; | ||
| } | ||
| export function buildServerConfig(vaultPath) { | ||
| const args = ["serve", "--mcp"]; | ||
| const env = {}; | ||
| if (vaultPath) { | ||
| args.push("--vault", vaultPath); | ||
| env.ORI_VAULT = vaultPath; | ||
| } | ||
| return { | ||
| command: "ori", | ||
| args, | ||
| env, | ||
| }; | ||
| } | ||
| export function buildGenericInstallOutput(plan) { | ||
| return { | ||
| client: plan.target, | ||
| mode: plan.target === "generic" ? "generic" : "adapter", | ||
| command: plan.server.command, | ||
| args: plan.server.args, | ||
| env: plan.server.env, | ||
| scope: plan.scope, | ||
| activation: plan.activation, | ||
| resolvedVault: plan.resolvedVault, | ||
| instructions: plan.instructions, | ||
| warnings: plan.warnings, | ||
| }; | ||
| } | ||
| async function findNearestProjectVault(startDir) { | ||
| let current = path.resolve(startDir); | ||
| while (true) { | ||
| if (await isVaultRoot(current)) | ||
| return current; | ||
| const parent = path.dirname(current); | ||
| if (parent === current) | ||
| return null; | ||
| current = parent; | ||
| } | ||
| } | ||
| export function getClaudeProjectPaths(startDir) { | ||
| const root = path.resolve(startDir); | ||
| const claudeDir = path.join(root, ".claude"); | ||
| return { | ||
| root, | ||
| claudeDir, | ||
| hooksDir: path.join(claudeDir, "hooks"), | ||
| settingsPath: path.join(claudeDir, "settings.json"), | ||
| mcpPath: path.join(root, ".mcp.json"), | ||
| instructionsPath: path.join(root, "CLAUDE.md"), | ||
| }; | ||
| } | ||
| export function getClaudeGlobalPaths() { | ||
| const homeDir = os.homedir(); | ||
| const claudeDir = path.join(homeDir, ".claude"); | ||
| return { | ||
| homeDir, | ||
| claudeDir, | ||
| hooksDir: path.join(claudeDir, "hooks", "ori"), | ||
| settingsPath: path.join(claudeDir, "settings.json"), | ||
| mcpPath: path.join(homeDir, ".claude.json"), | ||
| instructionsPath: path.join(claudeDir, "CLAUDE.md"), | ||
| }; | ||
| } | ||
| export function getCursorProjectPaths(startDir) { | ||
| const root = path.resolve(startDir); | ||
| const cursorDir = path.join(root, ".cursor"); | ||
| return { | ||
| root, | ||
| cursorDir, | ||
| mcpPath: path.join(cursorDir, "mcp.json"), | ||
| }; | ||
| } | ||
| export function getCursorGlobalPaths() { | ||
| const homeDir = os.homedir(); | ||
| const cursorDir = path.join(homeDir, ".cursor"); | ||
| return { | ||
| homeDir, | ||
| cursorDir, | ||
| mcpPath: path.join(cursorDir, "mcp.json"), | ||
| }; | ||
| } | ||
| //# sourceMappingURL=bridge.js.map |
| {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/core/bridge.ts"],"names":[],"mappings":"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"} |
| /** | ||
| * Co-occurrence edge storage, NPMI computation, Ebbinghaus decay, | ||
| * Turrigiano homeostasis, and bibliographic coupling bootstrap. | ||
| * Layer 2 of retrieval intelligence — organic graph growth from usage. | ||
| * | ||
| * "Neurons that fire together wire together." | ||
| * | ||
| * Research: NPMI normalization, GloVe frequency scaling (Pennington), | ||
| * Ebbinghaus retention curve, Turrigiano synaptic scaling, | ||
| * bibliographic coupling (Kessler), Dempster-Shafer trust. | ||
| */ | ||
| import type Database from "better-sqlite3"; | ||
| declare const GLOVE_XMAX = 100; | ||
| declare const GLOVE_ALPHA = 0.75; | ||
| declare const EBBINGHAUS_BASE_DAYS = 30; | ||
| declare const STRENGTH_RATE = 0.2; | ||
| declare const DECAY_FLOOR = 0.05; | ||
| declare const HOMEOSTASIS_TARGET = 0.5; | ||
| declare const BOOTSTRAP_BCS_THRESHOLD = 0.1; | ||
| declare const BOOTSTRAP_INIT_WEIGHT = 0.15; | ||
| export declare function initCoOccurrenceTables(db: Database.Database): void; | ||
| export declare function computeNPMI(countAB: number, countA: number, countB: number, totalEvents: number): number; | ||
| export declare function gloveWeight(count: number): number; | ||
| export declare function edgeDecay(daysSince: number, coRetrievalCount: number): number; | ||
| export declare function computeEdgeWeight(coRetrievalCount: number, totalRetrievalsA: number, totalRetrievalsB: number, totalEvents: number, daysSince: number, trustWeight?: number): number; | ||
| export declare function recordCoRetrieval(db: Database.Database, noteA: string, noteB: string, trustWeight?: number): void; | ||
| export declare function extractCoOccurrencePairs(db: Database.Database, sessionId: string): void; | ||
| export declare function runHomeostasis(db: Database.Database): void; | ||
| export declare function recomputeAllNPMI(db: Database.Database): void; | ||
| export declare function bootstrapFromWikiLinks(db: Database.Database, noteLinks: Map<string, Set<string>>): void; | ||
| export { GLOVE_XMAX, GLOVE_ALPHA, EBBINGHAUS_BASE_DAYS, STRENGTH_RATE, DECAY_FLOOR, HOMEOSTASIS_TARGET, BOOTSTRAP_BCS_THRESHOLD, BOOTSTRAP_INIT_WEIGHT, }; | ||
| //# sourceMappingURL=cooccurrence.d.ts.map |
| {"version":3,"file":"cooccurrence.d.ts","sourceRoot":"","sources":["../../src/core/cooccurrence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAG3C,QAAA,MAAM,UAAU,MAAM,CAAC;AACvB,QAAA,MAAM,WAAW,OAAO,CAAC;AACzB,QAAA,MAAM,oBAAoB,KAAK,CAAC;AAChC,QAAA,MAAM,aAAa,MAAM,CAAC;AAC1B,QAAA,MAAM,WAAW,OAAO,CAAC;AACzB,QAAA,MAAM,kBAAkB,MAAM,CAAC;AAC/B,QAAA,MAAM,uBAAuB,MAAM,CAAC;AACpC,QAAA,MAAM,qBAAqB,OAAO,CAAC;AAInC,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAgBlE;AAID,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAClB,MAAM,CASR;AAID,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIjD;AAID,wBAAgB,SAAS,CACvB,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,GACvB,MAAM,CAIR;AAID,wBAAgB,iBAAiB,CAC/B,gBAAgB,EAAE,MAAM,EACxB,gBAAgB,EAAE,MAAM,EACxB,gBAAgB,EAAE,MAAM,EACxB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,WAAW,GAAE,MAAY,GACxB,MAAM,CAUR;AAID,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,WAAW,GAAE,MAAY,GACxB,IAAI,CAaN;AAID,wBAAgB,wBAAwB,CACtC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,SAAS,EAAE,MAAM,GAChB,IAAI,CAoBN;AAKD,wBAAgB,cAAc,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAsC1D;AAKD,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAmD5D;AAID,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,GAClC,IAAI,CA4BN;AAGD,OAAO,EACL,UAAU,EACV,WAAW,EACX,oBAAoB,EACpB,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,GACtB,CAAC"} |
| /** | ||
| * Co-occurrence edge storage, NPMI computation, Ebbinghaus decay, | ||
| * Turrigiano homeostasis, and bibliographic coupling bootstrap. | ||
| * Layer 2 of retrieval intelligence — organic graph growth from usage. | ||
| * | ||
| * "Neurons that fire together wire together." | ||
| * | ||
| * Research: NPMI normalization, GloVe frequency scaling (Pennington), | ||
| * Ebbinghaus retention curve, Turrigiano synaptic scaling, | ||
| * bibliographic coupling (Kessler), Dempster-Shafer trust. | ||
| */ | ||
| // Constants | ||
| const GLOVE_XMAX = 100; | ||
| const GLOVE_ALPHA = 0.75; | ||
| const EBBINGHAUS_BASE_DAYS = 30; | ||
| const STRENGTH_RATE = 0.2; | ||
| const DECAY_FLOOR = 0.05; | ||
| const HOMEOSTASIS_TARGET = 0.5; | ||
| const BOOTSTRAP_BCS_THRESHOLD = 0.1; | ||
| const BOOTSTRAP_INIT_WEIGHT = 0.15; | ||
| // --- Schema --- | ||
| export function initCoOccurrenceTables(db) { | ||
| db.exec(` | ||
| CREATE TABLE IF NOT EXISTS co_occurrence ( | ||
| note_a TEXT NOT NULL, | ||
| note_b TEXT NOT NULL, | ||
| co_retrieval_count INTEGER NOT NULL DEFAULT 1, | ||
| npmi_weight REAL, | ||
| trust_weight REAL NOT NULL DEFAULT 1.0, | ||
| first_observed TEXT NOT NULL DEFAULT (datetime('now')), | ||
| last_co_retrieved TEXT NOT NULL DEFAULT (datetime('now')), | ||
| source TEXT NOT NULL DEFAULT 'retrieval', | ||
| PRIMARY KEY (note_a, note_b) | ||
| ); | ||
| CREATE INDEX IF NOT EXISTS idx_cooc_a ON co_occurrence(note_a); | ||
| CREATE INDEX IF NOT EXISTS idx_cooc_b ON co_occurrence(note_b); | ||
| `); | ||
| } | ||
| // --- NPMI --- | ||
| export function computeNPMI(countAB, countA, countB, totalEvents) { | ||
| if (countAB === 0 || totalEvents === 0) | ||
| return -1; | ||
| const pAB = countAB / totalEvents; | ||
| const pA = countA / totalEvents; | ||
| const pB = countB / totalEvents; | ||
| if (pA === 0 || pB === 0) | ||
| return -1; | ||
| const pmi = Math.log(pAB / (pA * pB)); | ||
| const denom = -Math.log(pAB); | ||
| return denom === 0 ? 0 : pmi / denom; | ||
| } | ||
| // --- GloVe frequency weight --- | ||
| export function gloveWeight(count) { | ||
| return count < GLOVE_XMAX | ||
| ? Math.pow(count / GLOVE_XMAX, GLOVE_ALPHA) | ||
| : 1.0; | ||
| } | ||
| // --- Ebbinghaus decay with strength accumulation --- | ||
| export function edgeDecay(daysSince, coRetrievalCount) { | ||
| const strength = 1 + STRENGTH_RATE * Math.log1p(coRetrievalCount); | ||
| const retention = Math.exp(-daysSince / (EBBINGHAUS_BASE_DAYS * strength)); | ||
| return Math.max(DECAY_FLOOR, retention); | ||
| } | ||
| // --- Composite edge weight --- | ||
| export function computeEdgeWeight(coRetrievalCount, totalRetrievalsA, totalRetrievalsB, totalEvents, daysSince, trustWeight = 1.0) { | ||
| const npmi = computeNPMI(coRetrievalCount, totalRetrievalsA, totalRetrievalsB, totalEvents); | ||
| const freq = gloveWeight(coRetrievalCount); | ||
| const decay = edgeDecay(daysSince, coRetrievalCount); | ||
| return Math.max(0, npmi * freq * trustWeight * decay); | ||
| } | ||
| // --- Record co-retrieval --- | ||
| export function recordCoRetrieval(db, noteA, noteB, trustWeight = 1.0) { | ||
| // Consistent ordering so (A,B) == (B,A) | ||
| const [a, b] = noteA < noteB ? [noteA, noteB] : [noteB, noteA]; | ||
| db.prepare(` | ||
| INSERT INTO co_occurrence (note_a, note_b, co_retrieval_count, trust_weight, source) | ||
| VALUES (?, ?, 1, ?, 'retrieval') | ||
| ON CONFLICT(note_a, note_b) DO UPDATE SET | ||
| co_retrieval_count = co_retrieval_count + 1, | ||
| last_co_retrieved = datetime('now') | ||
| `).run(a, b, trustWeight); | ||
| } | ||
| // --- Extract pairs from session retrievals --- | ||
| export function extractCoOccurrencePairs(db, sessionId) { | ||
| const rows = db | ||
| .prepare(` | ||
| SELECT query_text, GROUP_CONCAT(note_id) as notes | ||
| FROM retrieval_log | ||
| WHERE session_id = ? | ||
| GROUP BY query_text | ||
| `) | ||
| .all(sessionId); | ||
| for (const row of rows) { | ||
| const notes = row.notes.split(","); | ||
| for (let i = 0; i < notes.length; i++) { | ||
| for (let j = i + 1; j < notes.length; j++) { | ||
| recordCoRetrieval(db, notes[i], notes[j]); | ||
| } | ||
| } | ||
| } | ||
| } | ||
| // --- Per-node homeostasis (Turrigiano) --- | ||
| // FIX: Updates both note_a and note_b edges per node (spec only did note_a) | ||
| export function runHomeostasis(db) { | ||
| // Collect per-node mean weights across ALL their edges (both directions) | ||
| const nodeStats = db | ||
| .prepare(` | ||
| SELECT node, AVG(w) as mean_w FROM ( | ||
| SELECT note_a as node, npmi_weight as w FROM co_occurrence WHERE npmi_weight IS NOT NULL | ||
| UNION ALL | ||
| SELECT note_b as node, npmi_weight as w FROM co_occurrence WHERE npmi_weight IS NOT NULL | ||
| ) | ||
| GROUP BY node | ||
| `) | ||
| .all(); | ||
| const tx = db.transaction(() => { | ||
| for (const { node, mean_w } of nodeStats) { | ||
| if (mean_w === 0 || mean_w === HOMEOSTASIS_TARGET) | ||
| continue; | ||
| const scale = HOMEOSTASIS_TARGET / mean_w; | ||
| // Scale edges where this node is note_a | ||
| db.prepare(` | ||
| UPDATE co_occurrence SET npmi_weight = npmi_weight * ? | ||
| WHERE note_a = ? AND npmi_weight IS NOT NULL | ||
| `).run(scale, node); | ||
| // Scale edges where this node is note_b | ||
| db.prepare(` | ||
| UPDATE co_occurrence SET npmi_weight = npmi_weight * ? | ||
| WHERE note_b = ? AND npmi_weight IS NOT NULL | ||
| `).run(scale, node); | ||
| } | ||
| }); | ||
| tx(); | ||
| } | ||
| // --- Recompute all NPMI weights --- | ||
| // FIX: Uses actual daysSince from last_co_retrieved, not hardcoded 0 | ||
| export function recomputeAllNPMI(db) { | ||
| const totalEvents = db | ||
| .prepare("SELECT COUNT(DISTINCT session_id || '|' || query_text) as n FROM retrieval_log") | ||
| .get().n; | ||
| if (totalEvents === 0) | ||
| return; | ||
| const edges = db | ||
| .prepare("SELECT note_a, note_b, co_retrieval_count, last_co_retrieved FROM co_occurrence") | ||
| .all(); | ||
| // Count per-note retrievals | ||
| const noteCounts = new Map(); | ||
| const rows = db | ||
| .prepare("SELECT note_id, COUNT(*) as cnt FROM retrieval_log GROUP BY note_id") | ||
| .all(); | ||
| for (const r of rows) | ||
| noteCounts.set(r.note_id, r.cnt); | ||
| const now = Date.now(); | ||
| const tx = db.transaction(() => { | ||
| for (const edge of edges) { | ||
| const countA = noteCounts.get(edge.note_a) ?? 0; | ||
| const countB = noteCounts.get(edge.note_b) ?? 0; | ||
| const daysSince = (now - new Date(edge.last_co_retrieved).getTime()) / 86_400_000; | ||
| const weight = computeEdgeWeight(edge.co_retrieval_count, countA, countB, totalEvents, daysSince); | ||
| db.prepare("UPDATE co_occurrence SET npmi_weight = ? WHERE note_a = ? AND note_b = ?").run(weight, edge.note_a, edge.note_b); | ||
| } | ||
| }); | ||
| tx(); | ||
| } | ||
| // --- Bootstrap from wiki-links (bibliographic coupling) --- | ||
| export function bootstrapFromWikiLinks(db, noteLinks) { | ||
| const notes = [...noteLinks.keys()].sort(); // sorted for consistent ordering | ||
| const tx = db.transaction(() => { | ||
| for (let i = 0; i < notes.length; i++) { | ||
| for (let j = i + 1; j < notes.length; j++) { | ||
| const linksA = noteLinks.get(notes[i]); | ||
| const linksB = noteLinks.get(notes[j]); | ||
| const intersection = new Set([...linksA].filter((x) => linksB.has(x))); | ||
| if (intersection.size === 0) | ||
| continue; | ||
| const bcs = intersection.size / Math.sqrt(linksA.size * linksB.size); | ||
| if (bcs < BOOTSTRAP_BCS_THRESHOLD) | ||
| continue; | ||
| // notes[i] < notes[j] by sort order — consistent with recordCoRetrieval | ||
| db.prepare(` | ||
| INSERT OR IGNORE INTO co_occurrence | ||
| (note_a, note_b, co_retrieval_count, npmi_weight, source) | ||
| VALUES (?, ?, 0, ?, 'bootstrap') | ||
| `).run(notes[i], notes[j], bcs * BOOTSTRAP_INIT_WEIGHT); | ||
| } | ||
| } | ||
| }); | ||
| tx(); | ||
| } | ||
| // Re-export constants for tests | ||
| export { GLOVE_XMAX, GLOVE_ALPHA, EBBINGHAUS_BASE_DAYS, STRENGTH_RATE, DECAY_FLOOR, HOMEOSTASIS_TARGET, BOOTSTRAP_BCS_THRESHOLD, BOOTSTRAP_INIT_WEIGHT, }; | ||
| //# sourceMappingURL=cooccurrence.js.map |
| {"version":3,"file":"cooccurrence.js","sourceRoot":"","sources":["../../src/core/cooccurrence.ts"],"names":[],"mappings":"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"} |
| /** | ||
| * Post-fusion dampening stages from Drift's ablation-validated pipeline. | ||
| * Three simple, formula-complete stages that need no research — just build. | ||
| * | ||
| * 1. Gravity dampening: halve score for semantic matches with zero term overlap | ||
| * 2. Hub dampening: penalize top 10% by edge count (P90 degree penalty) | ||
| * 3. Resolution boost: 1.25x for decision/learning/procedural notes | ||
| * | ||
| * Research: Drift-Memory 8-stage pipeline (ablation P@5 deltas) | ||
| */ | ||
| import type { ScoredNote } from "./ranking.js"; | ||
| import type { LinkGraph } from "./graph.js"; | ||
| /** | ||
| * Extract key terms from text, minus stopwords. | ||
| */ | ||
| export declare function extractKeyTerms(text: string): Set<string>; | ||
| /** | ||
| * Gravity dampening: halve score for high-scoring semantic matches | ||
| * that have zero query term overlap with the note title. | ||
| * | ||
| * Catches "cosine similarity ghosts" — notes that score high on | ||
| * embedding similarity but don't actually contain the information. | ||
| */ | ||
| export declare function applyGravityDampening(results: ScoredNote[], query: string, noteTitles: Map<string, string>, // noteId -> title (for term overlap check) | ||
| threshold?: number): ScoredNote[]; | ||
| /** | ||
| * Hub dampening: penalize notes in the top 10% by edge count. | ||
| * Prevents map/index notes from dominating every query. | ||
| * | ||
| * Formula: | ||
| * P90 = degree at 90th percentile | ||
| * ratio = (degree - P90) / (maxDegree - P90) | ||
| * penalty = 1.0 - 0.6 * ratio | ||
| * score *= max(0.2, penalty) | ||
| * | ||
| * Entity-matched notes (present in query entities) are exempt. | ||
| */ | ||
| export declare function applyHubDampening(results: ScoredNote[], linkGraph: LinkGraph, queryEntities?: string[]): ScoredNote[]; | ||
| /** | ||
| * Resolution boost: 1.25x score for notes typed as decisions, | ||
| * learnings, or procedural fixes. These are actionable knowledge. | ||
| */ | ||
| export declare function applyResolutionBoost(results: ScoredNote[], noteTypes: Map<string, string>, // noteId -> type | ||
| boost?: number): ScoredNote[]; | ||
| //# sourceMappingURL=dampening.d.ts.map |
| {"version":3,"file":"dampening.d.ts","sourceRoot":"","sources":["../../src/core/dampening.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAsB5C;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAOzD;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,UAAU,EAAE,EACrB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,2CAA2C;AAC5E,SAAS,GAAE,MAAY,GACtB,UAAU,EAAE,CAsBd;AAID;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,UAAU,EAAE,EACrB,SAAS,EAAE,SAAS,EACpB,aAAa,GAAE,MAAM,EAAO,GAC3B,UAAU,EAAE,CAmCd;AAYD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,UAAU,EAAE,EACrB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,iBAAiB;AACjD,KAAK,GAAE,MAAa,GACnB,UAAU,EAAE,CAQd"} |
| /** | ||
| * Post-fusion dampening stages from Drift's ablation-validated pipeline. | ||
| * Three simple, formula-complete stages that need no research — just build. | ||
| * | ||
| * 1. Gravity dampening: halve score for semantic matches with zero term overlap | ||
| * 2. Hub dampening: penalize top 10% by edge count (P90 degree penalty) | ||
| * 3. Resolution boost: 1.25x for decision/learning/procedural notes | ||
| * | ||
| * Research: Drift-Memory 8-stage pipeline (ablation P@5 deltas) | ||
| */ | ||
| // --- Stopwords for gravity dampening --- | ||
| const STOPWORDS = new Set([ | ||
| "a", "an", "the", "is", "are", "was", "were", "be", "been", "being", | ||
| "have", "has", "had", "do", "does", "did", "will", "would", "could", | ||
| "should", "may", "might", "shall", "can", "need", "dare", "ought", | ||
| "used", "to", "of", "in", "for", "on", "with", "at", "by", "from", | ||
| "as", "into", "through", "during", "before", "after", "above", "below", | ||
| "between", "out", "off", "over", "under", "again", "further", "then", | ||
| "once", "here", "there", "when", "where", "why", "how", "all", "both", | ||
| "each", "few", "more", "most", "other", "some", "such", "no", "nor", | ||
| "not", "only", "own", "same", "so", "than", "too", "very", "just", | ||
| "don", "now", "and", "but", "or", "if", "while", "about", "what", | ||
| "which", "who", "whom", "this", "that", "these", "those", "am", "it", | ||
| "its", "my", "your", "his", "her", "our", "their", "i", "me", "we", | ||
| "you", "he", "she", "they", "them", "up", | ||
| ]); | ||
| // --- Gravity Dampening (Drift P@5 delta: -0.256) --- | ||
| /** | ||
| * Extract key terms from text, minus stopwords. | ||
| */ | ||
| export function extractKeyTerms(text) { | ||
| const words = text | ||
| .toLowerCase() | ||
| .replace(/[^a-z0-9\s-]/g, "") | ||
| .split(/\s+/) | ||
| .filter((w) => w.length > 1 && !STOPWORDS.has(w)); | ||
| return new Set(words); | ||
| } | ||
| /** | ||
| * Gravity dampening: halve score for high-scoring semantic matches | ||
| * that have zero query term overlap with the note title. | ||
| * | ||
| * Catches "cosine similarity ghosts" — notes that score high on | ||
| * embedding similarity but don't actually contain the information. | ||
| */ | ||
| export function applyGravityDampening(results, query, noteTitles, // noteId -> title (for term overlap check) | ||
| threshold = 0.3) { | ||
| const queryTerms = extractKeyTerms(query); | ||
| if (queryTerms.size === 0) | ||
| return results; | ||
| return results.map((note) => { | ||
| if (note.score <= threshold) | ||
| return note; | ||
| // Check term overlap against note title (which IS the note ID in Ori) | ||
| const titleTerms = extractKeyTerms(note.title); | ||
| let overlap = 0; | ||
| for (const term of queryTerms) { | ||
| if (titleTerms.has(term)) { | ||
| overlap++; | ||
| break; // any overlap is enough | ||
| } | ||
| } | ||
| if (overlap === 0) { | ||
| return { ...note, score: note.score * 0.5 }; | ||
| } | ||
| return note; | ||
| }); | ||
| } | ||
| // --- Hub Dampening (Drift P@5 delta: -0.104) --- | ||
| /** | ||
| * Hub dampening: penalize notes in the top 10% by edge count. | ||
| * Prevents map/index notes from dominating every query. | ||
| * | ||
| * Formula: | ||
| * P90 = degree at 90th percentile | ||
| * ratio = (degree - P90) / (maxDegree - P90) | ||
| * penalty = 1.0 - 0.6 * ratio | ||
| * score *= max(0.2, penalty) | ||
| * | ||
| * Entity-matched notes (present in query entities) are exempt. | ||
| */ | ||
| export function applyHubDampening(results, linkGraph, queryEntities = []) { | ||
| // Compute degree for all notes in the graph | ||
| const degrees = new Map(); | ||
| for (const [node, targets] of linkGraph.outgoing) { | ||
| degrees.set(node, (degrees.get(node) ?? 0) + targets.size); | ||
| } | ||
| for (const [node, sources] of linkGraph.incoming) { | ||
| degrees.set(node, (degrees.get(node) ?? 0) + sources.size); | ||
| } | ||
| // Get all degree values and find P90 | ||
| const allDegrees = [...degrees.values()].sort((a, b) => a - b); | ||
| if (allDegrees.length === 0) | ||
| return results; | ||
| const p90Index = Math.floor(allDegrees.length * 0.9); | ||
| const p90 = allDegrees[p90Index] ?? 0; | ||
| const maxDeg = allDegrees[allDegrees.length - 1] ?? 0; | ||
| if (maxDeg <= p90) | ||
| return results; // no hubs to dampen | ||
| const entitySet = new Set(queryEntities.map((e) => e.toLowerCase())); | ||
| return results.map((note) => { | ||
| const degree = degrees.get(note.title) ?? 0; | ||
| if (degree <= p90) | ||
| return note; // not a hub | ||
| // Entity-matched notes are exempt | ||
| if (entitySet.has(note.title.toLowerCase())) | ||
| return note; | ||
| const ratio = (degree - p90) / (maxDeg - p90); | ||
| const penalty = 1.0 - 0.6 * ratio; | ||
| const dampened = note.score * Math.max(0.2, penalty); | ||
| return { ...note, score: dampened }; | ||
| }); | ||
| } | ||
| // --- Resolution Boost (Drift P@5 delta: -0.144) --- | ||
| const RESOLUTION_TYPES = new Set([ | ||
| "decision", | ||
| "learning", | ||
| "procedural", | ||
| "fix", | ||
| "solution", | ||
| ]); | ||
| /** | ||
| * Resolution boost: 1.25x score for notes typed as decisions, | ||
| * learnings, or procedural fixes. These are actionable knowledge. | ||
| */ | ||
| export function applyResolutionBoost(results, noteTypes, // noteId -> type | ||
| boost = 1.25) { | ||
| return results.map((note) => { | ||
| const noteType = noteTypes.get(note.title); | ||
| if (noteType && RESOLUTION_TYPES.has(noteType.toLowerCase())) { | ||
| return { ...note, score: note.score * boost }; | ||
| } | ||
| return note; | ||
| }); | ||
| } | ||
| //# sourceMappingURL=dampening.js.map |
| {"version":3,"file":"dampening.js","sourceRoot":"","sources":["../../src/core/dampening.ts"],"names":[],"mappings":"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"} |
| /** | ||
| * Personalized PageRank on the combined wiki-link + co-occurrence graph. | ||
| * Layer 2 retrieval — surfaces notes connected by usage patterns that | ||
| * semantic search alone would miss. | ||
| * | ||
| * Research: HippoRAG (PPR α=0.5 validated), SSAKG co-occurrence model | ||
| */ | ||
| import type Database from "better-sqlite3"; | ||
| declare const PPR_ALPHA = 0.5; | ||
| declare const PPR_ITERATIONS = 20; | ||
| declare const COOC_BLEND_BETA = 0.3; | ||
| export interface PPRResult { | ||
| noteId: string; | ||
| score: number; | ||
| } | ||
| export declare function personalizedPageRankCombined(db: Database.Database, seeds: Map<string, number>, wikiLinks: Map<string, string[]>, maxResults?: number): PPRResult[]; | ||
| export { PPR_ALPHA, PPR_ITERATIONS, COOC_BLEND_BETA }; | ||
| //# sourceMappingURL=ppr.d.ts.map |
| {"version":3,"file":"ppr.d.ts","sourceRoot":"","sources":["../../src/core/ppr.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,QAAA,MAAM,SAAS,MAAM,CAAC;AACtB,QAAA,MAAM,cAAc,KAAK,CAAC;AAC1B,QAAA,MAAM,eAAe,MAAM,CAAC;AAE5B,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,4BAA4B,CAC1C,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC1B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAChC,UAAU,GAAE,MAAW,GACtB,SAAS,EAAE,CA8Fb;AAGD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC"} |
| /** | ||
| * Personalized PageRank on the combined wiki-link + co-occurrence graph. | ||
| * Layer 2 retrieval — surfaces notes connected by usage patterns that | ||
| * semantic search alone would miss. | ||
| * | ||
| * Research: HippoRAG (PPR α=0.5 validated), SSAKG co-occurrence model | ||
| */ | ||
| const PPR_ALPHA = 0.5; // damping (HippoRAG validated) | ||
| const PPR_ITERATIONS = 20; | ||
| const COOC_BLEND_BETA = 0.3; // weight of co-occurrence vs wiki-links | ||
| export function personalizedPageRankCombined(db, seeds, wikiLinks, maxResults = 15) { | ||
| if (seeds.size === 0) | ||
| return []; | ||
| // Build adjacency: wiki-links (weight 1.0) + co-occurrence (weight β × npmi) | ||
| const adj = new Map(); | ||
| // Wiki-links | ||
| for (const [src, targets] of wikiLinks) { | ||
| if (!adj.has(src)) | ||
| adj.set(src, new Map()); | ||
| for (const tgt of targets) { | ||
| adj.get(src).set(tgt, (adj.get(src).get(tgt) ?? 0) + 1.0); | ||
| } | ||
| } | ||
| // Co-occurrence edges (bidirectional) | ||
| const coocEdges = db | ||
| .prepare(` | ||
| SELECT note_a, note_b, COALESCE(npmi_weight, 0.1) as w | ||
| FROM co_occurrence WHERE COALESCE(npmi_weight, 0.1) > 0 | ||
| `) | ||
| .all(); | ||
| for (const { note_a, note_b, w } of coocEdges) { | ||
| if (!adj.has(note_a)) | ||
| adj.set(note_a, new Map()); | ||
| if (!adj.has(note_b)) | ||
| adj.set(note_b, new Map()); | ||
| adj | ||
| .get(note_a) | ||
| .set(note_b, (adj.get(note_a).get(note_b) ?? 0) + COOC_BLEND_BETA * w); | ||
| adj | ||
| .get(note_b) | ||
| .set(note_a, (adj.get(note_b).get(note_a) ?? 0) + COOC_BLEND_BETA * w); | ||
| } | ||
| // All nodes | ||
| const allNodes = new Set(); | ||
| for (const [src, targets] of adj) { | ||
| allNodes.add(src); | ||
| for (const tgt of targets.keys()) | ||
| allNodes.add(tgt); | ||
| } | ||
| for (const s of seeds.keys()) | ||
| allNodes.add(s); | ||
| // Initialize PPR vector from seeds | ||
| const seedTotal = [...seeds.values()].reduce((a, b) => a + b, 0) || 1; | ||
| let ppr = new Map(); | ||
| for (const node of allNodes) { | ||
| ppr.set(node, (seeds.get(node) ?? 0) / seedTotal); | ||
| } | ||
| // Iterate power method | ||
| for (let iter = 0; iter < PPR_ITERATIONS; iter++) { | ||
| const next = new Map(); | ||
| for (const node of allNodes) | ||
| next.set(node, 0); | ||
| for (const [src, neighbors] of adj) { | ||
| const srcScore = ppr.get(src) ?? 0; | ||
| const totalWeight = [...neighbors.values()].reduce((a, b) => a + b, 0); | ||
| if (totalWeight === 0) | ||
| continue; | ||
| for (const [tgt, w] of neighbors) { | ||
| next.set(tgt, (next.get(tgt) ?? 0) + | ||
| (1 - PPR_ALPHA) * srcScore * (w / totalWeight)); | ||
| } | ||
| } | ||
| // Add teleport back to seeds | ||
| for (const node of allNodes) { | ||
| const teleport = PPR_ALPHA * ((seeds.get(node) ?? 0) / seedTotal); | ||
| next.set(node, (next.get(node) ?? 0) + teleport); | ||
| } | ||
| ppr = next; | ||
| } | ||
| // Return sorted results — FIX: include seeds (let RRF deduplicate) | ||
| return [...ppr.entries()] | ||
| .map(([noteId, score]) => ({ noteId, score })) | ||
| .sort((a, b) => b.score - a.score) | ||
| .slice(0, maxResults); | ||
| } | ||
| // Re-export constants for tests | ||
| export { PPR_ALPHA, PPR_ITERATIONS, COOC_BLEND_BETA }; | ||
| //# sourceMappingURL=ppr.js.map |
| {"version":3,"file":"ppr.js","sourceRoot":"","sources":["../../src/core/ppr.ts"],"names":[],"mappings":"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"} |
| /** | ||
| * Q-value storage, update, decay, and exploration bonus. | ||
| * Layer 1 of retrieval intelligence — learns which notes are useful | ||
| * via exponential moving average Q-updates with UCB-Tuned exploration. | ||
| * | ||
| * Research: MemRL, Drift, Tempera, bandit theory (63-source synthesis) | ||
| */ | ||
| import type Database from "better-sqlite3"; | ||
| declare const ALPHA = 0.1; | ||
| declare const DEFAULT_Q = 0.5; | ||
| declare const DECAY_RATE = 0.007; | ||
| declare const EXPOSURE_BETA = 0.5; | ||
| export declare function initQValueTables(db: Database.Database): void; | ||
| export declare function getQ(db: Database.Database, noteId: string): number; | ||
| export declare function getDecayedQ(db: Database.Database, noteId: string): number; | ||
| export declare function getRewardStats(db: Database.Database, noteId: string): { | ||
| mean: number; | ||
| variance: number; | ||
| count: number; | ||
| }; | ||
| export declare function getExposureCount(db: Database.Database, noteId: string): number; | ||
| export declare function getTotalQUpdates(db: Database.Database): number; | ||
| export declare function getTotalQueryCount(db: Database.Database): number; | ||
| export declare function updateQ(db: Database.Database, noteId: string, reward: number, sessionId: string): void; | ||
| export declare function incrementExposure(db: Database.Database, noteId: string): void; | ||
| export declare function logRetrieval(db: Database.Database, sessionId: string, queryText: string, queryType: string, noteId: string, rank: number, simScore: number, qScore: number, ucbBonus: number, finalScore: number): void; | ||
| export declare function explorationBonus(stats: { | ||
| mean: number; | ||
| variance: number; | ||
| count: number; | ||
| }, totalQueries: number, c?: number): number; | ||
| export declare function batchUpdateQ(db: Database.Database, rewards: Map<string, number>, sessionId: string): void; | ||
| export { ALPHA, DEFAULT_Q, DECAY_RATE, EXPOSURE_BETA }; | ||
| //# sourceMappingURL=qvalue.d.ts.map |
| {"version":3,"file":"qvalue.d.ts","sourceRoot":"","sources":["../../src/core/qvalue.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAG3C,QAAA,MAAM,KAAK,MAAM,CAAC;AAClB,QAAA,MAAM,SAAS,MAAM,CAAC;AACtB,QAAA,MAAM,UAAU,QAAQ,CAAC;AACzB,QAAA,MAAM,aAAa,MAAM,CAAC;AAI1B,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CA2C5D;AAID,wBAAgB,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAKlE;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAgBzE;AAED,wBAAgB,cAAc,CAC5B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,MAAM,EAAE,MAAM,GACb;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAenD;AAED,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,MAAM,EAAE,MAAM,GACb,MAAM,CAKR;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAK9D;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAOhE;AAID,wBAAgB,OAAO,CACrB,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,IAAI,CAkCN;AAED,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,MAAM,EAAE,MAAM,GACb,IAAI,CAQN;AAED,wBAAgB,YAAY,CAC1B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,IAAI,CAmBN;AAID,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EACxD,YAAY,EAAE,MAAM,EACpB,CAAC,GAAE,MAAY,GACd,MAAM,CAKR;AAID,wBAAgB,YAAY,CAC1B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,SAAS,EAAE,MAAM,GAChB,IAAI,CAON;AAGD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC"} |
| /** | ||
| * Q-value storage, update, decay, and exploration bonus. | ||
| * Layer 1 of retrieval intelligence — learns which notes are useful | ||
| * via exponential moving average Q-updates with UCB-Tuned exploration. | ||
| * | ||
| * Research: MemRL, Drift, Tempera, bandit theory (63-source synthesis) | ||
| */ | ||
| // Constants | ||
| const ALPHA = 0.1; | ||
| const DEFAULT_Q = 0.5; | ||
| const DECAY_RATE = 0.007; // half-life ~99 days | ||
| const EXPOSURE_BETA = 0.5; | ||
| // --- Schema --- | ||
| export function initQValueTables(db) { | ||
| db.exec(` | ||
| CREATE TABLE IF NOT EXISTS note_q ( | ||
| note_id TEXT PRIMARY KEY, | ||
| q_value REAL NOT NULL DEFAULT 0.5, | ||
| update_count INTEGER NOT NULL DEFAULT 0, | ||
| exposure_count INTEGER NOT NULL DEFAULT 0, | ||
| reward_sum REAL NOT NULL DEFAULT 0, | ||
| reward_sq_sum REAL NOT NULL DEFAULT 0, | ||
| last_updated TEXT NOT NULL DEFAULT (datetime('now')), | ||
| last_reward REAL, | ||
| created TEXT NOT NULL DEFAULT (datetime('now')) | ||
| ); | ||
| CREATE TABLE IF NOT EXISTS q_history ( | ||
| id INTEGER PRIMARY KEY AUTOINCREMENT, | ||
| note_id TEXT NOT NULL, | ||
| old_q REAL NOT NULL, | ||
| new_q REAL NOT NULL, | ||
| reward REAL NOT NULL, | ||
| reward_source TEXT NOT NULL, | ||
| session_id TEXT, | ||
| timestamp TEXT NOT NULL DEFAULT (datetime('now')) | ||
| ); | ||
| CREATE TABLE IF NOT EXISTS retrieval_log ( | ||
| id INTEGER PRIMARY KEY AUTOINCREMENT, | ||
| session_id TEXT NOT NULL, | ||
| query_text TEXT NOT NULL, | ||
| query_type TEXT, | ||
| note_id TEXT NOT NULL, | ||
| rank INTEGER NOT NULL, | ||
| similarity_score REAL, | ||
| q_score REAL, | ||
| ucb_bonus REAL, | ||
| final_score REAL, | ||
| timestamp TEXT NOT NULL DEFAULT (datetime('now')) | ||
| ); | ||
| CREATE INDEX IF NOT EXISTS idx_q_history_note ON q_history(note_id); | ||
| CREATE INDEX IF NOT EXISTS idx_retrieval_session ON retrieval_log(session_id); | ||
| CREATE INDEX IF NOT EXISTS idx_retrieval_note ON retrieval_log(note_id); | ||
| `); | ||
| } | ||
| // --- Read --- | ||
| export function getQ(db, noteId) { | ||
| const row = db | ||
| .prepare("SELECT q_value FROM note_q WHERE note_id = ?") | ||
| .get(noteId); | ||
| return row?.q_value ?? DEFAULT_Q; | ||
| } | ||
| export function getDecayedQ(db, noteId) { | ||
| const row = db | ||
| .prepare("SELECT q_value, last_updated FROM note_q WHERE note_id = ?") | ||
| .get(noteId); | ||
| if (!row) | ||
| return DEFAULT_Q; | ||
| const daysSince = (Date.now() - new Date(row.last_updated).getTime()) / 86_400_000; | ||
| // Q-informed decay: high-Q notes decay slower | ||
| let mult = 1.0; | ||
| if (row.q_value >= 0.7) | ||
| mult = 0.7; | ||
| else if (row.q_value <= 0.3) | ||
| mult = 1.3; | ||
| return row.q_value * Math.exp(-DECAY_RATE * mult * daysSince); | ||
| } | ||
| export function getRewardStats(db, noteId) { | ||
| const row = db | ||
| .prepare("SELECT update_count, reward_sum, reward_sq_sum FROM note_q WHERE note_id = ?") | ||
| .get(noteId); | ||
| if (!row || row.update_count === 0) | ||
| return { mean: 0, variance: 0.25, count: 0 }; | ||
| const mean = row.reward_sum / row.update_count; | ||
| const variance = row.reward_sq_sum / row.update_count - mean * mean; | ||
| return { mean, variance: Math.max(0, variance), count: row.update_count }; | ||
| } | ||
| export function getExposureCount(db, noteId) { | ||
| const row = db | ||
| .prepare("SELECT exposure_count FROM note_q WHERE note_id = ?") | ||
| .get(noteId); | ||
| return row?.exposure_count ?? 0; | ||
| } | ||
| export function getTotalQUpdates(db) { | ||
| const row = db | ||
| .prepare("SELECT COALESCE(SUM(update_count), 0) as total FROM note_q") | ||
| .get(); | ||
| return row.total; | ||
| } | ||
| export function getTotalQueryCount(db) { | ||
| const row = db | ||
| .prepare("SELECT COUNT(DISTINCT session_id || '|' || query_text) as total FROM retrieval_log") | ||
| .get(); | ||
| return row.total; | ||
| } | ||
| // --- Write --- | ||
| export function updateQ(db, noteId, reward, sessionId) { | ||
| const oldQ = getQ(db, noteId); | ||
| const newQ = oldQ + ALPHA * (reward - oldQ); | ||
| db.prepare(` | ||
| INSERT INTO note_q (note_id, q_value, update_count, reward_sum, reward_sq_sum, last_updated, last_reward) | ||
| VALUES (?, ?, 1, ?, ?, datetime('now'), ?) | ||
| ON CONFLICT(note_id) DO UPDATE SET | ||
| q_value = ?, | ||
| update_count = update_count + 1, | ||
| reward_sum = reward_sum + ?, | ||
| reward_sq_sum = reward_sq_sum + ?, | ||
| last_updated = datetime('now'), | ||
| last_reward = ? | ||
| `).run(noteId, newQ, reward, reward * reward, reward, newQ, reward, reward * reward, reward); | ||
| db.prepare(` | ||
| INSERT INTO q_history (note_id, old_q, new_q, reward, reward_source, session_id) | ||
| VALUES (?, ?, ?, ?, 'session_batch', ?) | ||
| `).run(noteId, oldQ, newQ, reward, sessionId); | ||
| } | ||
| export function incrementExposure(db, noteId) { | ||
| db.prepare(` | ||
| INSERT INTO note_q (note_id, exposure_count) | ||
| VALUES (?, 1) | ||
| ON CONFLICT(note_id) DO UPDATE SET exposure_count = exposure_count + 1 | ||
| `).run(noteId); | ||
| } | ||
| export function logRetrieval(db, sessionId, queryText, queryType, noteId, rank, simScore, qScore, ucbBonus, finalScore) { | ||
| db.prepare(` | ||
| INSERT INTO retrieval_log | ||
| (session_id, query_text, query_type, note_id, rank, | ||
| similarity_score, q_score, ucb_bonus, final_score) | ||
| VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?) | ||
| `).run(sessionId, queryText, queryType, noteId, rank, simScore, qScore, ucbBonus, finalScore); | ||
| } | ||
| // --- Exploration: UCB-Tuned --- | ||
| export function explorationBonus(stats, totalQueries, c = 0.2) { | ||
| if (stats.count === 0) | ||
| return c * 2.5; | ||
| const logT = Math.log(totalQueries + 1); | ||
| const V = stats.variance + Math.sqrt((2 * logT) / stats.count); | ||
| return c * Math.sqrt((logT / stats.count) * Math.min(0.25, V)); | ||
| } | ||
| // --- Batch update --- | ||
| export function batchUpdateQ(db, rewards, sessionId) { | ||
| const tx = db.transaction(() => { | ||
| for (const [noteId, reward] of rewards) { | ||
| updateQ(db, noteId, reward, sessionId); | ||
| } | ||
| }); | ||
| tx(); | ||
| } | ||
| // Re-export constants for tests | ||
| export { ALPHA, DEFAULT_Q, DECAY_RATE, EXPOSURE_BETA }; | ||
| //# sourceMappingURL=qvalue.js.map |
| {"version":3,"file":"qvalue.js","sourceRoot":"","sources":["../../src/core/qvalue.ts"],"names":[],"mappings":"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"} |
| /** | ||
| * Phase B Q-value reranking. | ||
| * Takes the top-k1 candidates from RRF fusion (Phase A) and reranks | ||
| * them using a lambda blend of similarity score and learned Q-value, | ||
| * plus UCB-Tuned exploration bonus, with cumulative bias cap. | ||
| * | ||
| * Research: MemRL two-phase, Drift invariants, CIKM 2024 exposure bias | ||
| */ | ||
| import type Database from "better-sqlite3"; | ||
| import type { ScoredNote } from "./ranking.js"; | ||
| declare const LAMBDA_MIN = 0.15; | ||
| declare const LAMBDA_MAX = 0.5; | ||
| declare const LAMBDA_MATURITY = 200; | ||
| declare const MAX_CUMULATIVE_BIAS = 3; | ||
| declare const EXCESS_COMPRESSION = 0.3; | ||
| declare const K2 = 8; | ||
| export declare function zNormalize(values: number[]): number[]; | ||
| export declare function computeLambda(totalQUpdates: number, queryType: string): number; | ||
| export declare function phaseB(db: Database.Database, candidates: ScoredNote[], queryText: string, queryType: string, sessionId: string): ScoredNote[]; | ||
| export { LAMBDA_MIN, LAMBDA_MAX, LAMBDA_MATURITY, MAX_CUMULATIVE_BIAS, EXCESS_COMPRESSION, K2, }; | ||
| //# sourceMappingURL=rerank.d.ts.map |
| {"version":3,"file":"rerank.d.ts","sourceRoot":"","sources":["../../src/core/rerank.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAY/C,QAAA,MAAM,UAAU,OAAO,CAAC;AACxB,QAAA,MAAM,UAAU,MAAO,CAAC;AACxB,QAAA,MAAM,eAAe,MAAM,CAAC;AAC5B,QAAA,MAAM,mBAAmB,IAAM,CAAC;AAChC,QAAA,MAAM,kBAAkB,MAAM,CAAC;AAC/B,QAAA,MAAM,EAAE,IAAI,CAAC;AAWb,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAOrD;AAID,wBAAgB,aAAa,CAC3B,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,GAChB,MAAM,CAOR;AAID,wBAAgB,MAAM,CACpB,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,UAAU,EAAE,UAAU,EAAE,EACxB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,UAAU,EAAE,CAiEd;AAGD,OAAO,EACL,UAAU,EACV,UAAU,EACV,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,EAAE,GACH,CAAC"} |
| /** | ||
| * Phase B Q-value reranking. | ||
| * Takes the top-k1 candidates from RRF fusion (Phase A) and reranks | ||
| * them using a lambda blend of similarity score and learned Q-value, | ||
| * plus UCB-Tuned exploration bonus, with cumulative bias cap. | ||
| * | ||
| * Research: MemRL two-phase, Drift invariants, CIKM 2024 exposure bias | ||
| */ | ||
| import { getDecayedQ, getRewardStats, getTotalQUpdates, getTotalQueryCount, explorationBonus, incrementExposure, logRetrieval, } from "./qvalue.js"; | ||
| // Constants | ||
| const LAMBDA_MIN = 0.15; | ||
| const LAMBDA_MAX = 0.50; | ||
| const LAMBDA_MATURITY = 200; | ||
| const MAX_CUMULATIVE_BIAS = 3.0; | ||
| const EXCESS_COMPRESSION = 0.3; | ||
| const K2 = 8; | ||
| const QUERY_TYPE_SHIFTS = { | ||
| semantic: -0.10, | ||
| procedural: 0.15, | ||
| decision: 0.05, | ||
| episodic: 0.0, | ||
| }; | ||
| // --- Z-score normalization --- | ||
| export function zNormalize(values) { | ||
| const n = values.length; | ||
| if (n === 0) | ||
| return []; | ||
| const mean = values.reduce((a, b) => a + b, 0) / n; | ||
| const std = Math.sqrt(values.reduce((a, b) => a + (b - mean) ** 2, 0) / n) || 1; | ||
| return values.map((v) => (v - mean) / std); | ||
| } | ||
| // --- Lambda --- | ||
| export function computeLambda(totalQUpdates, queryType) { | ||
| const base = LAMBDA_MIN + | ||
| (LAMBDA_MAX - LAMBDA_MIN) * | ||
| Math.min(totalQUpdates / LAMBDA_MATURITY, 1.0); | ||
| const shift = QUERY_TYPE_SHIFTS[queryType] ?? 0; | ||
| return Math.max(0.1, Math.min(0.6, base + shift)); | ||
| } | ||
| // --- Phase B --- | ||
| export function phaseB(db, candidates, queryText, queryType, sessionId) { | ||
| if (candidates.length === 0) | ||
| return []; | ||
| const totalUpdates = getTotalQUpdates(db); | ||
| const totalQueries = getTotalQueryCount(db); | ||
| const lambda = computeLambda(totalUpdates, queryType); | ||
| // Get raw scores | ||
| const simRaw = candidates.map((c) => c.score); | ||
| const qRaw = candidates.map((c) => getDecayedQ(db, c.title)); | ||
| // Z-score normalize both (CRITICAL — without this lambda is meaningless) | ||
| const simNorm = zNormalize(simRaw); | ||
| const qNorm = zNormalize(qRaw); | ||
| const results = candidates.map((c, i) => { | ||
| // Lambda blend | ||
| const blended = (1 - lambda) * simNorm[i] + lambda * qNorm[i]; | ||
| // UCB-Tuned exploration bonus | ||
| const stats = getRewardStats(db, c.title); | ||
| const ucb = explorationBonus(stats, totalQueries); | ||
| // Raw Phase B score | ||
| let score = blended + ucb; | ||
| // Cumulative bias cap (Drift invariant — prevents runaway boosts) | ||
| const maxAllowed = c.score * MAX_CUMULATIVE_BIAS; | ||
| if (score > maxAllowed) { | ||
| score = maxAllowed + (score - maxAllowed) * EXCESS_COMPRESSION; | ||
| } | ||
| // Increment exposure counter | ||
| incrementExposure(db, c.title); | ||
| return { | ||
| ...c, | ||
| score, | ||
| _phaseB: { simNorm: simNorm[i], qNorm: qNorm[i], ucb, lambda }, | ||
| }; | ||
| }); | ||
| // Sort and take top k2 | ||
| results.sort((a, b) => b.score - a.score); | ||
| const topK = results.slice(0, K2); | ||
| // Log all results to retrieval_log | ||
| for (let rank = 0; rank < topK.length; rank++) { | ||
| const r = topK[rank]; | ||
| logRetrieval(db, sessionId, queryText, queryType, r.title, rank, r._phaseB.simNorm, r._phaseB.qNorm, r._phaseB.ucb, r.score); | ||
| } | ||
| // Strip internal debug data before returning | ||
| return topK.map(({ _phaseB, ...rest }) => rest); | ||
| } | ||
| // Re-export constants for tests | ||
| export { LAMBDA_MIN, LAMBDA_MAX, LAMBDA_MATURITY, MAX_CUMULATIVE_BIAS, EXCESS_COMPRESSION, K2, }; | ||
| //# sourceMappingURL=rerank.js.map |
| {"version":3,"file":"rerank.js","sourceRoot":"","sources":["../../src/core/rerank.ts"],"names":[],"mappings":"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"} |
| /** | ||
| * Session reward accumulator and credit assignment. | ||
| * Tracks retrievals, adds, and updates within a session, | ||
| * then computes per-note rewards at session end. | ||
| * | ||
| * Reward signals (in priority order): | ||
| * forward citation +1.0 | update +0.5 | downstream creation +0.6 | ||
| * within-session re-recall +0.4 | partial follow-up +0.1 | dead end -0.15 | ||
| * | ||
| * All rewards are exposure-corrected: reward / exposure_count^0.5 | ||
| */ | ||
| import type Database from "better-sqlite3"; | ||
| export interface RetrievalEvent { | ||
| noteId: string; | ||
| rank: number; | ||
| queryText: string; | ||
| queryType: string; | ||
| } | ||
| export interface SessionOutcome { | ||
| forwardCitations: string[]; | ||
| updatedNotes: string[]; | ||
| createdNotes: string[]; | ||
| reRecalledNotes: string[]; | ||
| } | ||
| export declare class SessionRewardAccumulator { | ||
| private retrievals; | ||
| private addedContent; | ||
| private updatedNoteIds; | ||
| private createdNoteIds; | ||
| readonly sessionId: string; | ||
| constructor(sessionId: string); | ||
| logRetrieval(noteId: string, rank: number, queryText: string, queryType: string): void; | ||
| logAdd(noteId: string, content: string): void; | ||
| logUpdate(noteId: string): void; | ||
| computeRewards(db: Database.Database): Map<string, number>; | ||
| private buildOutcome; | ||
| hasData(): boolean; | ||
| } | ||
| //# sourceMappingURL=reward.d.ts.map |
| {"version":3,"file":"reward.d.ts","sourceRoot":"","sources":["../../src/core/reward.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAK3C,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,qBAAa,wBAAwB;IACnC,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,cAAc,CAAgB;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;gBAEf,SAAS,EAAE,MAAM;IAI7B,YAAY,CACV,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,IAAI;IAIP,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAK7C,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B,cAAc,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAgD1D,OAAO,CAAC,YAAY;IAsBpB,OAAO,IAAI,OAAO;CAGnB"} |
| /** | ||
| * Session reward accumulator and credit assignment. | ||
| * Tracks retrievals, adds, and updates within a session, | ||
| * then computes per-note rewards at session end. | ||
| * | ||
| * Reward signals (in priority order): | ||
| * forward citation +1.0 | update +0.5 | downstream creation +0.6 | ||
| * within-session re-recall +0.4 | partial follow-up +0.1 | dead end -0.15 | ||
| * | ||
| * All rewards are exposure-corrected: reward / exposure_count^0.5 | ||
| */ | ||
| import { getExposureCount } from "./qvalue.js"; | ||
| const EXPOSURE_BETA = 0.5; | ||
| export class SessionRewardAccumulator { | ||
| retrievals = []; | ||
| addedContent = []; | ||
| updatedNoteIds = []; | ||
| createdNoteIds = []; | ||
| sessionId; | ||
| constructor(sessionId) { | ||
| this.sessionId = sessionId; | ||
| } | ||
| logRetrieval(noteId, rank, queryText, queryType) { | ||
| this.retrievals.push({ noteId, rank, queryText, queryType }); | ||
| } | ||
| logAdd(noteId, content) { | ||
| this.createdNoteIds.push(noteId); | ||
| this.addedContent.push(content); | ||
| } | ||
| logUpdate(noteId) { | ||
| this.updatedNoteIds.push(noteId); | ||
| } | ||
| computeRewards(db) { | ||
| const outcome = this.buildOutcome(); | ||
| const credits = new Map(); | ||
| const seen = new Map(); | ||
| // Group retrievals by note | ||
| for (const r of this.retrievals) { | ||
| const ranks = seen.get(r.noteId) ?? []; | ||
| ranks.push(r.rank); | ||
| seen.set(r.noteId, ranks); | ||
| } | ||
| for (const [noteId, ranks] of seen) { | ||
| const bestRank = Math.min(...ranks); | ||
| let reward; | ||
| if (outcome.forwardCitations.includes(noteId)) { | ||
| reward = 1.0; // full reward | ||
| } | ||
| else if (outcome.updatedNotes.includes(noteId)) { | ||
| reward = 0.5; | ||
| } | ||
| else if (outcome.createdNotes.length > 0) { | ||
| reward = 0.6 * (1 / Math.log2(bestRank + 2)); // downstream creation, position-weighted | ||
| } | ||
| else if (ranks.length > 1) { | ||
| reward = 0.4 * (1 / ranks.length); // within-session re-recall, diminishing | ||
| } | ||
| else if (outcome.forwardCitations.length > 0 || | ||
| outcome.updatedNotes.length > 0) { | ||
| reward = 0.1 / Math.log2(bestRank + 2); // some follow-up happened, position-weighted | ||
| } | ||
| else { | ||
| reward = | ||
| bestRank <= 2 | ||
| ? -0.15 / Math.pow(bestRank + 1, 1.0) // IPS-debiased dead end (top-3 only) | ||
| : 0; // low-ranked, not examined, no penalty | ||
| } | ||
| // Exposure-aware correction | ||
| const exposure = getExposureCount(db, noteId); | ||
| if (exposure > 1) { | ||
| reward = reward / Math.pow(exposure, EXPOSURE_BETA); | ||
| } | ||
| credits.set(noteId, Math.max(-1, Math.min(1, reward))); | ||
| } | ||
| return credits; | ||
| } | ||
| buildOutcome() { | ||
| const retrievedIds = new Set(this.retrievals.map((r) => r.noteId)); | ||
| const forwardCitations = []; | ||
| for (const content of this.addedContent) { | ||
| const links = content.match(/\[\[([^\]]+)\]\]/g) ?? []; | ||
| for (const link of links) { | ||
| const title = link.slice(2, -2); | ||
| if (retrievedIds.has(title)) { | ||
| forwardCitations.push(title); | ||
| } | ||
| } | ||
| } | ||
| return { | ||
| forwardCitations: [...new Set(forwardCitations)], | ||
| updatedNotes: [...new Set(this.updatedNoteIds)], | ||
| createdNotes: [...new Set(this.createdNoteIds)], | ||
| reRecalledNotes: [], | ||
| }; | ||
| } | ||
| hasData() { | ||
| return this.retrievals.length > 0; | ||
| } | ||
| } | ||
| //# sourceMappingURL=reward.js.map |
| {"version":3,"file":"reward.js","sourceRoot":"","sources":["../../src/core/reward.ts"],"names":[],"mappings":"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"} |
| /** | ||
| * Stage meta-learning via LinUCB contextual bandits. | ||
| * Layer 3 of retrieval intelligence — each retrieval stage learns | ||
| * whether it helps or hurts for different query types, and auto-skips | ||
| * stages that don't help. The pipeline configures itself. | ||
| * | ||
| * Research: LinUCB (Li et al. 2010), ACQO curriculum, SmartRAG cost-aware, | ||
| * MoE load balancing (Shazeer), cascade classifiers, Vespa time budgets. | ||
| */ | ||
| import type Database from "better-sqlite3"; | ||
| declare const LINUCB_ALPHA = 0.25; | ||
| declare const D = 8; | ||
| declare const MIN_SAMPLES = 15; | ||
| declare const PRECISION_SWITCH = 50; | ||
| declare const VARIANCE_THRESHOLD = 0.05; | ||
| declare const ABSTAIN_THRESHOLD = 0.1; | ||
| declare const COST_PENALTY_ALPHA = 0.2; | ||
| declare const LOAD_BALANCE_LAMBDA = 0.01; | ||
| declare const TIME_BUDGET_MS = 500; | ||
| declare const SOFT_CUTOFF = 0.8; | ||
| export declare function initStageTables(db: Database.Database): void; | ||
| export interface StageConfig { | ||
| id: string; | ||
| computeCostMs: number; | ||
| skipThreshold: number; | ||
| essential: boolean; | ||
| } | ||
| export declare const STAGE_CONFIGS: StageConfig[]; | ||
| export declare function extractQueryFeatures(query: string, embeddingEntropy: number, vaultSize: number, queryDepth: number): number[]; | ||
| export declare class LinUCBStage { | ||
| private A; | ||
| private b; | ||
| private _sampleCount; | ||
| private _totalReward; | ||
| readonly config: StageConfig; | ||
| constructor(config: StageConfig, saved?: { | ||
| a: number[][]; | ||
| b: number[]; | ||
| sampleCount: number; | ||
| totalReward: number; | ||
| }); | ||
| get sampleCount(): number; | ||
| get totalReward(): number; | ||
| getUCB(x: number[]): number; | ||
| update(x: number[], reward: number): void; | ||
| serialize(): { | ||
| a: number[][]; | ||
| b: number[]; | ||
| }; | ||
| } | ||
| export declare function getStageDecision(stage: LinUCBStage, x: number[], elapsedMs: number, sampleCount: number): "run" | "skip" | "abstain"; | ||
| export declare function computeStageReward(qualityBefore: number, qualityAfter: number, computeTimeMs: number): number; | ||
| export declare function loadBalancePenalty(stageRunCounts: Map<string, number>, lambda?: number): number; | ||
| export declare function saveStage(db: Database.Database, stage: LinUCBStage): void; | ||
| export declare function loadStage(db: Database.Database, config: StageConfig): LinUCBStage; | ||
| export declare function logStageDecision(db: Database.Database, sessionId: string, stageId: string, queryFeatures: number[], decision: string, qualityBefore: number | null, qualityAfter: number | null, computeTimeMs: number | null, reward: number | null): void; | ||
| declare function dot(a: number[], b: number[]): number; | ||
| declare function matVecMul(M: number[][], v: number[]): number[]; | ||
| declare function invertMatrix(M: number[][]): number[][]; | ||
| export { LINUCB_ALPHA, D, MIN_SAMPLES, PRECISION_SWITCH, VARIANCE_THRESHOLD, ABSTAIN_THRESHOLD, COST_PENALTY_ALPHA, LOAD_BALANCE_LAMBDA, TIME_BUDGET_MS, SOFT_CUTOFF, dot, matVecMul, invertMatrix, }; | ||
| //# sourceMappingURL=stage-learner.d.ts.map |
| {"version":3,"file":"stage-learner.d.ts","sourceRoot":"","sources":["../../src/core/stage-learner.ts"],"names":[],"mappings":"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"} |
| /** | ||
| * Stage meta-learning via LinUCB contextual bandits. | ||
| * Layer 3 of retrieval intelligence — each retrieval stage learns | ||
| * whether it helps or hurts for different query types, and auto-skips | ||
| * stages that don't help. The pipeline configures itself. | ||
| * | ||
| * Research: LinUCB (Li et al. 2010), ACQO curriculum, SmartRAG cost-aware, | ||
| * MoE load balancing (Shazeer), cascade classifiers, Vespa time budgets. | ||
| */ | ||
| // Constants | ||
| const LINUCB_ALPHA = 0.25; | ||
| const D = 8; // feature vector dimensions | ||
| const MIN_SAMPLES = 15; | ||
| const PRECISION_SWITCH = 50; | ||
| const VARIANCE_THRESHOLD = 0.05; | ||
| const ABSTAIN_THRESHOLD = 0.10; | ||
| const COST_PENALTY_ALPHA = 0.2; | ||
| const LOAD_BALANCE_LAMBDA = 0.01; | ||
| const TIME_BUDGET_MS = 500; | ||
| const SOFT_CUTOFF = 0.8; | ||
| // --- Schema --- | ||
| export function initStageTables(db) { | ||
| db.exec(` | ||
| CREATE TABLE IF NOT EXISTS stage_q ( | ||
| stage_id TEXT PRIMARY KEY, | ||
| a_matrix TEXT NOT NULL, | ||
| b_vector TEXT NOT NULL, | ||
| sample_count INTEGER NOT NULL DEFAULT 0, | ||
| total_reward REAL NOT NULL DEFAULT 0, | ||
| last_updated TEXT NOT NULL DEFAULT (datetime('now')) | ||
| ); | ||
| CREATE TABLE IF NOT EXISTS stage_log ( | ||
| id INTEGER PRIMARY KEY AUTOINCREMENT, | ||
| session_id TEXT NOT NULL, | ||
| stage_id TEXT NOT NULL, | ||
| query_features TEXT NOT NULL, | ||
| decision TEXT NOT NULL, | ||
| quality_before REAL, | ||
| quality_after REAL, | ||
| compute_time_ms REAL, | ||
| reward REAL, | ||
| timestamp TEXT NOT NULL DEFAULT (datetime('now')) | ||
| ); | ||
| CREATE INDEX IF NOT EXISTS idx_stage_log_stage ON stage_log(stage_id); | ||
| CREATE INDEX IF NOT EXISTS idx_stage_log_session ON stage_log(session_id); | ||
| `); | ||
| } | ||
| export const STAGE_CONFIGS = [ | ||
| { | ||
| id: "semantic_search", | ||
| computeCostMs: 20, | ||
| skipThreshold: 0.15, | ||
| essential: true, | ||
| }, | ||
| { id: "bm25", computeCostMs: 10, skipThreshold: 0.15, essential: false }, | ||
| { | ||
| id: "pagerank", | ||
| computeCostMs: 30, | ||
| skipThreshold: 0.2, | ||
| essential: false, | ||
| }, | ||
| { id: "warmth", computeCostMs: 30, skipThreshold: 0.2, essential: false }, | ||
| { | ||
| id: "hub_dampening", | ||
| computeCostMs: 15, | ||
| skipThreshold: 0.2, | ||
| essential: false, | ||
| }, | ||
| { | ||
| id: "gravity_dampening", | ||
| computeCostMs: 10, | ||
| skipThreshold: 0.2, | ||
| essential: false, | ||
| }, | ||
| { | ||
| id: "q_reranking", | ||
| computeCostMs: 25, | ||
| skipThreshold: 0.2, | ||
| essential: false, | ||
| }, | ||
| { | ||
| id: "cooccurrence_ppr", | ||
| computeCostMs: 50, | ||
| skipThreshold: 0.3, | ||
| essential: false, | ||
| }, | ||
| { | ||
| id: "rrf_fusion", | ||
| computeCostMs: 5, | ||
| skipThreshold: 0.1, | ||
| essential: true, | ||
| }, | ||
| ]; | ||
| // --- Query features --- | ||
| export function extractQueryFeatures(query, embeddingEntropy, vaultSize, queryDepth) { | ||
| const tokens = query.split(/\s+/); | ||
| const unique = new Set(tokens.map((t) => t.toLowerCase())); | ||
| return [ | ||
| tokens.length / 50, | ||
| Math.log1p(unique.size) / 10, | ||
| /\?/.test(query) ? 1 : 0, | ||
| /\b(recent|latest|today|yesterday|when)\b/i.test(query) ? 1 : 0, | ||
| /\b[A-Z][a-z]+(?:\s[A-Z][a-z]+)*\b/.test(query) ? 1 : 0, | ||
| embeddingEntropy / 10, | ||
| vaultSize / 1000, | ||
| queryDepth / 10, | ||
| ]; | ||
| } | ||
| // --- LinUCB --- | ||
| export class LinUCBStage { | ||
| A; | ||
| b; | ||
| _sampleCount; | ||
| _totalReward; | ||
| config; | ||
| constructor(config, saved) { | ||
| this.config = config; | ||
| if (saved) { | ||
| this.A = saved.a; | ||
| this.b = saved.b; | ||
| this._sampleCount = saved.sampleCount; | ||
| this._totalReward = saved.totalReward; | ||
| } | ||
| else { | ||
| // Identity matrix | ||
| this.A = Array.from({ length: D }, (_, i) => Array.from({ length: D }, (_, j) => (i === j ? 1 : 0))); | ||
| this.b = new Array(D).fill(0); | ||
| this._sampleCount = 0; | ||
| this._totalReward = 0; | ||
| } | ||
| } | ||
| get sampleCount() { | ||
| return this._sampleCount; | ||
| } | ||
| get totalReward() { | ||
| return this._totalReward; | ||
| } | ||
| getUCB(x) { | ||
| const Ainv = invertMatrix(this.A); | ||
| const theta = matVecMul(Ainv, this.b); | ||
| const exploit = dot(theta, x); | ||
| const explore = LINUCB_ALPHA * Math.sqrt(Math.max(0, dot(x, matVecMul(Ainv, x)))); | ||
| return exploit + explore; | ||
| } | ||
| update(x, reward) { | ||
| // A += x x^T | ||
| for (let i = 0; i < D; i++) { | ||
| for (let j = 0; j < D; j++) { | ||
| this.A[i][j] += x[i] * x[j]; | ||
| } | ||
| } | ||
| // b += reward * x | ||
| for (let i = 0; i < D; i++) { | ||
| this.b[i] += reward * x[i]; | ||
| } | ||
| this._sampleCount++; | ||
| this._totalReward += reward; | ||
| } | ||
| serialize() { | ||
| return { a: this.A.map((row) => [...row]), b: [...this.b] }; | ||
| } | ||
| } | ||
| // --- Decision --- | ||
| export function getStageDecision(stage, x, elapsedMs, sampleCount) { | ||
| if (stage.config.essential) | ||
| return "run"; | ||
| if (elapsedMs > TIME_BUDGET_MS * SOFT_CUTOFF) | ||
| return "skip"; | ||
| if (sampleCount < MIN_SAMPLES) | ||
| return "run"; // exploration phase | ||
| const ucb = stage.getUCB(x); | ||
| if (ucb < ABSTAIN_THRESHOLD) | ||
| return "abstain"; | ||
| if (ucb < stage.config.skipThreshold) | ||
| return "skip"; | ||
| return "run"; | ||
| } | ||
| // --- Stage reward --- | ||
| export function computeStageReward(qualityBefore, qualityAfter, computeTimeMs) { | ||
| const delta = qualityAfter - qualityBefore; | ||
| const reward = delta * 10 - COST_PENALTY_ALPHA * (computeTimeMs / 100); | ||
| return Math.max(-1, Math.min(1, reward)); | ||
| } | ||
| // --- Load balancing --- | ||
| export function loadBalancePenalty(stageRunCounts, lambda = LOAD_BALANCE_LAMBDA) { | ||
| const counts = [...stageRunCounts.values()]; | ||
| if (counts.length === 0) | ||
| return 0; | ||
| const mean = counts.reduce((a, b) => a + b, 0) / counts.length; | ||
| if (mean === 0) | ||
| return 0; | ||
| const cv = Math.sqrt(counts.reduce((a, c) => a + (c - mean) ** 2, 0) / counts.length) / mean; | ||
| return lambda * cv * cv; | ||
| } | ||
| // --- Persistence --- | ||
| export function saveStage(db, stage) { | ||
| const { a, b } = stage.serialize(); | ||
| db.prepare(` | ||
| INSERT INTO stage_q (stage_id, a_matrix, b_vector, sample_count, total_reward, last_updated) | ||
| VALUES (?, ?, ?, ?, ?, datetime('now')) | ||
| ON CONFLICT(stage_id) DO UPDATE SET | ||
| a_matrix = ?, b_vector = ?, sample_count = ?, total_reward = ?, last_updated = datetime('now') | ||
| `).run(stage.config.id, JSON.stringify(a), JSON.stringify(b), stage.sampleCount, stage.totalReward, JSON.stringify(a), JSON.stringify(b), stage.sampleCount, stage.totalReward); | ||
| } | ||
| export function loadStage(db, config) { | ||
| const row = db | ||
| .prepare("SELECT a_matrix, b_vector, sample_count, total_reward FROM stage_q WHERE stage_id = ?") | ||
| .get(config.id); | ||
| if (row) { | ||
| return new LinUCBStage(config, { | ||
| a: JSON.parse(row.a_matrix), | ||
| b: JSON.parse(row.b_vector), | ||
| sampleCount: row.sample_count, | ||
| totalReward: row.total_reward, | ||
| }); | ||
| } | ||
| return new LinUCBStage(config); | ||
| } | ||
| // --- Log stage decision --- | ||
| export function logStageDecision(db, sessionId, stageId, queryFeatures, decision, qualityBefore, qualityAfter, computeTimeMs, reward) { | ||
| db.prepare(` | ||
| INSERT INTO stage_log | ||
| (session_id, stage_id, query_features, decision, | ||
| quality_before, quality_after, compute_time_ms, reward) | ||
| VALUES (?, ?, ?, ?, ?, ?, ?, ?) | ||
| `).run(sessionId, stageId, JSON.stringify(queryFeatures), decision, qualityBefore, qualityAfter, computeTimeMs, reward); | ||
| } | ||
| // --- Linear algebra helpers --- | ||
| function dot(a, b) { | ||
| let sum = 0; | ||
| for (let i = 0; i < a.length; i++) | ||
| sum += a[i] * b[i]; | ||
| return sum; | ||
| } | ||
| function matVecMul(M, v) { | ||
| return M.map((row) => dot(row, v)); | ||
| } | ||
| function invertMatrix(M) { | ||
| const n = M.length; | ||
| // Build augmented matrix [M | I] | ||
| const aug = M.map((row, i) => [...row, ...Array.from({ length: n }, (_, j) => (i === j ? 1 : 0))]); | ||
| for (let col = 0; col < n; col++) { | ||
| // Partial pivoting | ||
| let maxRow = col; | ||
| for (let row = col + 1; row < n; row++) { | ||
| if (Math.abs(aug[row][col]) > Math.abs(aug[maxRow][col])) | ||
| maxRow = row; | ||
| } | ||
| [aug[col], aug[maxRow]] = [aug[maxRow], aug[col]]; | ||
| const pivot = aug[col][col]; | ||
| if (Math.abs(pivot) < 1e-12) | ||
| continue; | ||
| for (let j = 0; j < 2 * n; j++) | ||
| aug[col][j] /= pivot; | ||
| for (let row = 0; row < n; row++) { | ||
| if (row === col) | ||
| continue; | ||
| const factor = aug[row][col]; | ||
| for (let j = 0; j < 2 * n; j++) | ||
| aug[row][j] -= factor * aug[col][j]; | ||
| } | ||
| } | ||
| return aug.map((row) => row.slice(n)); | ||
| } | ||
| // Re-export for tests | ||
| export { LINUCB_ALPHA, D, MIN_SAMPLES, PRECISION_SWITCH, VARIANCE_THRESHOLD, ABSTAIN_THRESHOLD, COST_PENALTY_ALPHA, LOAD_BALANCE_LAMBDA, TIME_BUDGET_MS, SOFT_CUTOFF, dot, matVecMul, invertMatrix, }; | ||
| //# sourceMappingURL=stage-learner.js.map |
| {"version":3,"file":"stage-learner.js","sourceRoot":"","sources":["../../src/core/stage-learner.ts"],"names":[],"mappings":"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"} |
| /** | ||
| * Quality snapshot tracker for stage meta-learning. | ||
| * Records quality before/after each stage execution and compute time. | ||
| */ | ||
| export interface StageSnapshot { | ||
| stageId: string; | ||
| qualityBefore: number; | ||
| startTime: number; | ||
| } | ||
| export interface StageResult { | ||
| stageId: string; | ||
| qualityBefore: number; | ||
| qualityAfter: number; | ||
| computeMs: number; | ||
| } | ||
| export declare class StageTracker { | ||
| private snapshots; | ||
| private results; | ||
| before(stageId: string, currentQuality: number): void; | ||
| after(stageId: string, currentQuality: number): void; | ||
| getResults(): StageResult[]; | ||
| hasResults(): boolean; | ||
| } | ||
| /** | ||
| * Measure current quality of a candidate set. | ||
| * Average of top-5 scores as a proxy for result set quality. | ||
| */ | ||
| export declare function measureCurrentQuality(candidates: { | ||
| score: number; | ||
| }[]): number; | ||
| //# sourceMappingURL=stage-tracker.d.ts.map |
| {"version":3,"file":"stage-tracker.d.ts","sourceRoot":"","sources":["../../src/core/stage-tracker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAyC;IAC1D,OAAO,CAAC,OAAO,CAAqB;IAEpC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI;IAQrD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI;IAYpD,UAAU,IAAI,WAAW,EAAE;IAI3B,UAAU,IAAI,OAAO;CAGtB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,GAC9B,MAAM,CAGR"} |
| /** | ||
| * Quality snapshot tracker for stage meta-learning. | ||
| * Records quality before/after each stage execution and compute time. | ||
| */ | ||
| export class StageTracker { | ||
| snapshots = new Map(); | ||
| results = []; | ||
| before(stageId, currentQuality) { | ||
| this.snapshots.set(stageId, { | ||
| stageId, | ||
| qualityBefore: currentQuality, | ||
| startTime: performance.now(), | ||
| }); | ||
| } | ||
| after(stageId, currentQuality) { | ||
| const snap = this.snapshots.get(stageId); | ||
| if (!snap) | ||
| return; | ||
| this.results.push({ | ||
| stageId, | ||
| qualityBefore: snap.qualityBefore, | ||
| qualityAfter: currentQuality, | ||
| computeMs: performance.now() - snap.startTime, | ||
| }); | ||
| this.snapshots.delete(stageId); | ||
| } | ||
| getResults() { | ||
| return this.results; | ||
| } | ||
| hasResults() { | ||
| return this.results.length > 0; | ||
| } | ||
| } | ||
| /** | ||
| * Measure current quality of a candidate set. | ||
| * Average of top-5 scores as a proxy for result set quality. | ||
| */ | ||
| export function measureCurrentQuality(candidates) { | ||
| const top5 = candidates.slice(0, 5); | ||
| return top5.reduce((s, c) => s + c.score, 0) / (top5.length || 1); | ||
| } | ||
| //# sourceMappingURL=stage-tracker.js.map |
| {"version":3,"file":"stage-tracker.js","sourceRoot":"","sources":["../../src/core/stage-tracker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAeH,MAAM,OAAO,YAAY;IACf,SAAS,GAA+B,IAAI,GAAG,EAAE,CAAC;IAClD,OAAO,GAAkB,EAAE,CAAC;IAEpC,MAAM,CAAC,OAAe,EAAE,cAAsB;QAC5C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE;YAC1B,OAAO;YACP,aAAa,EAAE,cAAc;YAC7B,SAAS,EAAE,WAAW,CAAC,GAAG,EAAE;SAC7B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,cAAsB;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YAChB,OAAO;YACP,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,YAAY,EAAE,cAAc;YAC5B,SAAS,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS;SAC9C,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACjC,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,UAA+B;IAE/B,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;AACpE,CAAC"} |
| /** | ||
| * Lightweight update checker. Queries the npm registry for the latest | ||
| * published version of ori-memory and caches the result for 24 hours. | ||
| */ | ||
| declare const CURRENT_VERSION = "0.4.0"; | ||
| export interface UpdateInfo { | ||
| current: string; | ||
| latest: string; | ||
| updateAvailable: boolean; | ||
| message: string | null; | ||
| } | ||
| export declare function checkForUpdate(): Promise<UpdateInfo>; | ||
| export { CURRENT_VERSION }; | ||
| //# sourceMappingURL=update-check.d.ts.map |
| {"version":3,"file":"update-check.d.ts","sourceRoot":"","sources":["../../src/core/update-check.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,QAAA,MAAM,eAAe,UAAU,CAAC;AAEhC,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,OAAO,CAAC;IACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAiFD,wBAAsB,cAAc,IAAI,OAAO,CAAC,UAAU,CAAC,CAoC1D;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"} |
| /** | ||
| * Lightweight update checker. Queries the npm registry for the latest | ||
| * published version of ori-memory and caches the result for 24 hours. | ||
| */ | ||
| import { promises as fs } from "node:fs"; | ||
| import path from "node:path"; | ||
| import https from "node:https"; | ||
| const PACKAGE_NAME = "ori-memory"; | ||
| const CACHE_TTL_MS = 24 * 60 * 60 * 1000; // 24 hours | ||
| const REQUEST_TIMEOUT_MS = 3000; // don't block orient if npm is slow | ||
| // Current installed version | ||
| const CURRENT_VERSION = "0.4.0"; | ||
| function getCachePath() { | ||
| const home = process.env.HOME ?? process.env.USERPROFILE ?? process.cwd(); | ||
| return path.join(home, ".ori", "update-cache.json"); | ||
| } | ||
| async function readCache() { | ||
| try { | ||
| const raw = await fs.readFile(getCachePath(), "utf8"); | ||
| const cached = JSON.parse(raw); | ||
| if (Date.now() - cached.checkedAt < CACHE_TTL_MS) { | ||
| return cached; | ||
| } | ||
| } | ||
| catch { | ||
| // No cache or invalid — fetch fresh | ||
| } | ||
| return null; | ||
| } | ||
| async function writeCache(latest) { | ||
| const cachePath = getCachePath(); | ||
| try { | ||
| await fs.mkdir(path.dirname(cachePath), { recursive: true }); | ||
| await fs.writeFile(cachePath, JSON.stringify({ latest, checkedAt: Date.now() }), "utf8"); | ||
| } | ||
| catch { | ||
| // Non-critical — skip silently | ||
| } | ||
| } | ||
| function fetchLatestVersion() { | ||
| return new Promise((resolve) => { | ||
| const timer = setTimeout(() => resolve(null), REQUEST_TIMEOUT_MS); | ||
| const req = https.get(`https://registry.npmjs.org/${PACKAGE_NAME}/latest`, { headers: { Accept: "application/json" } }, (res) => { | ||
| let data = ""; | ||
| res.on("data", (chunk) => { | ||
| data += chunk.toString(); | ||
| }); | ||
| res.on("end", () => { | ||
| clearTimeout(timer); | ||
| try { | ||
| const parsed = JSON.parse(data); | ||
| resolve(parsed.version ?? null); | ||
| } | ||
| catch { | ||
| resolve(null); | ||
| } | ||
| }); | ||
| }); | ||
| req.on("error", () => { | ||
| clearTimeout(timer); | ||
| resolve(null); | ||
| }); | ||
| }); | ||
| } | ||
| function compareVersions(current, latest) { | ||
| const c = current.split(".").map(Number); | ||
| const l = latest.split(".").map(Number); | ||
| for (let i = 0; i < 3; i++) { | ||
| if ((l[i] ?? 0) > (c[i] ?? 0)) | ||
| return true; | ||
| if ((l[i] ?? 0) < (c[i] ?? 0)) | ||
| return false; | ||
| } | ||
| return false; | ||
| } | ||
| export async function checkForUpdate() { | ||
| const result = { | ||
| current: CURRENT_VERSION, | ||
| latest: CURRENT_VERSION, | ||
| updateAvailable: false, | ||
| message: null, | ||
| }; | ||
| try { | ||
| // Check cache first | ||
| const cached = await readCache(); | ||
| let latest = null; | ||
| if (cached) { | ||
| latest = cached.latest; | ||
| } | ||
| else { | ||
| latest = await fetchLatestVersion(); | ||
| if (latest) { | ||
| await writeCache(latest); | ||
| } | ||
| } | ||
| if (!latest) | ||
| return result; | ||
| result.latest = latest; | ||
| result.updateAvailable = compareVersions(CURRENT_VERSION, latest); | ||
| if (result.updateAvailable) { | ||
| result.message = | ||
| `Ori v${latest} available (you have v${CURRENT_VERSION}). Run: npm update -g ori-memory`; | ||
| } | ||
| } | ||
| catch { | ||
| // Update check is best-effort — never fail orient | ||
| } | ||
| return result; | ||
| } | ||
| export { CURRENT_VERSION }; | ||
| //# sourceMappingURL=update-check.js.map |
| {"version":3,"file":"update-check.js","sourceRoot":"","sources":["../../src/core/update-check.ts"],"names":[],"mappings":"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"} |
| export declare const DEFAULT_WARMTH_AUDIT_PATH = ".ori/warmth-audit.jsonl"; | ||
| export type WarmthAuditEntry = { | ||
| title: string; | ||
| finalRank: number | null; | ||
| baseRank: number | null; | ||
| finalScore: number; | ||
| baseScore: number; | ||
| warmthScore: number; | ||
| movement: number; | ||
| }; | ||
| export type WarmthAuditEvent = { | ||
| timestamp: string; | ||
| query: string; | ||
| intent?: string; | ||
| limit: number; | ||
| effectiveWarmthWeight: number; | ||
| withWarmth: WarmthAuditEntry[]; | ||
| withoutWarmth: WarmthAuditEntry[]; | ||
| promoted: WarmthAuditEntry[]; | ||
| demoted: WarmthAuditEntry[]; | ||
| }; | ||
| export declare function isWarmthAuditEnabled(): boolean; | ||
| export declare function logWarmthAudit(vaultRoot: string, event: WarmthAuditEvent): Promise<void>; | ||
| export declare function loadWarmthAudit(vaultRoot: string): Promise<WarmthAuditEvent[]>; | ||
| export declare function queryWarmthAudit(vaultRoot: string, options?: { | ||
| query?: string; | ||
| limit?: number; | ||
| }): Promise<WarmthAuditEvent[]>; | ||
| //# sourceMappingURL=warmth-audit.d.ts.map |
| {"version":3,"file":"warmth-audit.d.ts","sourceRoot":"","sources":["../../src/core/warmth-audit.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,yBAAyB,4BAA4B,CAAC;AAEnE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB,EAAE,MAAM,CAAC;IAC9B,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,aAAa,EAAE,gBAAgB,EAAE,CAAC;IAClC,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B,CAAC;AAEF,wBAAgB,oBAAoB,IAAI,OAAO,CAI9C;AAOD,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAoB7B;AAED,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3C,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAQ7B"} |
| import { promises as fs } from "node:fs"; | ||
| import path from "node:path"; | ||
| export const DEFAULT_WARMTH_AUDIT_PATH = ".ori/warmth-audit.jsonl"; | ||
| export function isWarmthAuditEnabled() { | ||
| const value = process.env.ORI_WARMTH_AUDIT; | ||
| if (!value) | ||
| return false; | ||
| return value !== "0" && value.toLowerCase() !== "false"; | ||
| } | ||
| function getWarmthAuditPath(vaultRoot) { | ||
| const override = process.env.ORI_WARMTH_AUDIT_PATH; | ||
| return path.resolve(vaultRoot, override && override.trim() ? override : DEFAULT_WARMTH_AUDIT_PATH); | ||
| } | ||
| export async function logWarmthAudit(vaultRoot, event) { | ||
| const logPath = getWarmthAuditPath(vaultRoot); | ||
| await fs.mkdir(path.dirname(logPath), { recursive: true }); | ||
| await fs.appendFile(logPath, JSON.stringify(event) + "\n", "utf8"); | ||
| } | ||
| export async function loadWarmthAudit(vaultRoot) { | ||
| const logPath = getWarmthAuditPath(vaultRoot); | ||
| let raw; | ||
| try { | ||
| raw = await fs.readFile(logPath, "utf8"); | ||
| } | ||
| catch { | ||
| return []; | ||
| } | ||
| const events = []; | ||
| for (const line of raw.split("\n")) { | ||
| const trimmed = line.trim(); | ||
| if (!trimmed) | ||
| continue; | ||
| try { | ||
| events.push(JSON.parse(trimmed)); | ||
| } | ||
| catch { | ||
| // Ignore malformed local audit lines. | ||
| } | ||
| } | ||
| return events; | ||
| } | ||
| export async function queryWarmthAudit(vaultRoot, options) { | ||
| const events = await loadWarmthAudit(vaultRoot); | ||
| const needle = options?.query?.trim().toLowerCase(); | ||
| const filtered = needle | ||
| ? events.filter((event) => event.query.toLowerCase().includes(needle)) | ||
| : events; | ||
| const limit = options?.limit ?? 10; | ||
| return filtered.slice(-limit).reverse(); | ||
| } | ||
| //# sourceMappingURL=warmth-audit.js.map |
| {"version":3,"file":"warmth-audit.js","sourceRoot":"","sources":["../../src/core/warmth-audit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,CAAC,MAAM,yBAAyB,GAAG,yBAAyB,CAAC;AAwBnE,MAAM,UAAU,oBAAoB;IAClC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAC3C,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,OAAO,KAAK,KAAK,GAAG,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC;AAC1D,CAAC;AAED,SAAS,kBAAkB,CAAC,SAAiB;IAC3C,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;IACnD,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC;AACrG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,SAAiB,EACjB,KAAuB;IAEvB,MAAM,OAAO,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC9C,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,MAAM,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,SAAiB;IAEjB,MAAM,OAAO,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC9C,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,MAAM,GAAuB,EAAE,CAAC;IACtC,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAqB,CAAC,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,sCAAsC;QACxC,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,SAAiB,EACjB,OAA4C;IAE5C,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,SAAS,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACpD,MAAM,QAAQ,GAAG,MAAM;QACrB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACtE,CAAC,CAAC,MAAM,CAAC;IACX,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;IACnC,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;AAC1C,CAAC"} |
| import { type StoredVectors } from "./engine.js"; | ||
| import type { EngineConfig, WarmthConfig } from "./config.js"; | ||
| import type { LinkGraph } from "./graph.js"; | ||
| export interface WarmthSignal { | ||
| title: string; | ||
| score: number; | ||
| source: "embedding" | "graph" | "both"; | ||
| } | ||
| type SimilarityEntry = { | ||
| title: string; | ||
| sim: number; | ||
| }; | ||
| type WarmthEmbedder = (text: string, config: EngineConfig) => Promise<Float32Array>; | ||
| export declare function detectSurprise(current: Float32Array, cached: Float32Array | null, threshold: number): boolean; | ||
| export declare function selectSeeds(similarities: SimilarityEntry[], threshold: number, maxSeeds?: number, gapThreshold?: number): Map<string, number>; | ||
| export declare function computePPR(seeds: Map<string, number>, linkGraph: LinkGraph, alpha: number, iterations: number): Map<string, number>; | ||
| export declare function mergeWarmthScores(similarities: SimilarityEntry[], graphScores: Map<string, number>, seeds: Map<string, number>, config: WarmthConfig, limit?: number): WarmthSignal[]; | ||
| export declare class WarmthService { | ||
| private readonly embedder; | ||
| private cache; | ||
| constructor(embedder?: WarmthEmbedder); | ||
| scan(context: string, storedVectors: Map<string, StoredVectors>, linkGraph: LinkGraph, engineConfig: EngineConfig, warmthConfig: WarmthConfig, options?: { | ||
| limit?: number; | ||
| }): Promise<WarmthSignal[]>; | ||
| clearCache(): void; | ||
| } | ||
| export {}; | ||
| //# sourceMappingURL=warmth.d.ts.map |
| {"version":3,"file":"warmth.d.ts","sourceRoot":"","sources":["../../src/core/warmth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;CACxC;AAED,KAAK,eAAe,GAAG;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAQF,KAAK,cAAc,GAAG,CACpB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,YAAY,KACjB,OAAO,CAAC,YAAY,CAAC,CAAC;AAM3B,wBAAgB,cAAc,CAC5B,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,YAAY,GAAG,IAAI,EAC3B,SAAS,EAAE,MAAM,GAChB,OAAO,CAGT;AAED,wBAAgB,WAAW,CACzB,YAAY,EAAE,eAAe,EAAE,EAC/B,SAAS,EAAE,MAAM,EACjB,QAAQ,GAAE,MAA0B,EACpC,YAAY,GAAE,MAA8B,GAC3C,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAWrB;AAED,wBAAgB,UAAU,CACxB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC1B,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,GACjB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CA4DrB;AAgBD,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,eAAe,EAAE,EAC/B,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC1B,MAAM,EAAE,YAAY,EACpB,KAAK,GAAE,MAA2B,GACjC,YAAY,EAAE,CAoChB;AAED,qBAAa,aAAa;IAGZ,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAFrC,OAAO,CAAC,KAAK,CAA4B;gBAEZ,QAAQ,GAAE,cAA0B;IAE3D,IAAI,CACR,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,EACzC,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAC1B,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3B,OAAO,CAAC,YAAY,EAAE,CAAC;IA0D1B,UAAU,IAAI,IAAI;CAGnB"} |
| import { cosine, embedText } from "./engine.js"; | ||
| const DEFAULT_MAX_SEEDS = 30; | ||
| const DEFAULT_GAP_THRESHOLD = 0.15; | ||
| const NOISE_FLOOR_FACTOR = 0.5; | ||
| export function detectSurprise(current, cached, threshold) { | ||
| if (!cached) | ||
| return true; | ||
| return 1 - cosine(current, cached) > threshold; | ||
| } | ||
| export function selectSeeds(similarities, threshold, maxSeeds = DEFAULT_MAX_SEEDS, gapThreshold = DEFAULT_GAP_THRESHOLD) { | ||
| const seeds = new Map(); | ||
| for (let i = 0; i < similarities.length && seeds.size < maxSeeds; i++) { | ||
| const { title, sim } = similarities[i]; | ||
| if (sim < threshold) | ||
| break; | ||
| if (i > 0 && similarities[i - 1].sim - sim > gapThreshold) | ||
| break; | ||
| seeds.set(title, sim); | ||
| } | ||
| return seeds; | ||
| } | ||
| export function computePPR(seeds, linkGraph, alpha, iterations) { | ||
| if (seeds.size === 0) | ||
| return new Map(); | ||
| const allNodes = new Set(); | ||
| for (const node of seeds.keys()) | ||
| allNodes.add(node); | ||
| for (const [node, targets] of linkGraph.outgoing) { | ||
| allNodes.add(node); | ||
| for (const target of targets) | ||
| allNodes.add(target); | ||
| } | ||
| for (const [node, sources] of linkGraph.incoming) { | ||
| allNodes.add(node); | ||
| for (const source of sources) | ||
| allNodes.add(source); | ||
| } | ||
| let seedSum = 0; | ||
| for (const score of seeds.values()) | ||
| seedSum += score; | ||
| if (seedSum <= 0) | ||
| return new Map(); | ||
| const teleport = new Map(); | ||
| for (const [title, score] of seeds) { | ||
| teleport.set(title, score / seedSum); | ||
| } | ||
| let scores = new Map(teleport); | ||
| for (let iter = 0; iter < iterations; iter++) { | ||
| const next = new Map(); | ||
| for (const node of allNodes) { | ||
| next.set(node, 0); | ||
| } | ||
| for (const [title, tp] of teleport) { | ||
| next.set(title, alpha * tp); | ||
| } | ||
| for (const node of allNodes) { | ||
| const nodeScore = scores.get(node) ?? 0; | ||
| if (nodeScore === 0) | ||
| continue; | ||
| const neighbors = new Set(); | ||
| const outgoing = linkGraph.outgoing.get(node); | ||
| const incoming = linkGraph.incoming.get(node); | ||
| if (outgoing) { | ||
| for (const neighbor of outgoing) | ||
| neighbors.add(neighbor); | ||
| } | ||
| if (incoming) { | ||
| for (const neighbor of incoming) | ||
| neighbors.add(neighbor); | ||
| } | ||
| if (neighbors.size === 0) | ||
| continue; | ||
| const share = ((1 - alpha) * nodeScore) / neighbors.size; | ||
| for (const neighbor of neighbors) { | ||
| next.set(neighbor, (next.get(neighbor) ?? 0) + share); | ||
| } | ||
| } | ||
| scores = next; | ||
| } | ||
| return scores; | ||
| } | ||
| function normalizeScores(scores) { | ||
| let maxScore = 0; | ||
| for (const score of scores.values()) { | ||
| if (score > maxScore) | ||
| maxScore = score; | ||
| } | ||
| if (maxScore <= 0) | ||
| return new Map(); | ||
| const normalized = new Map(); | ||
| for (const [title, score] of scores) { | ||
| normalized.set(title, score / maxScore); | ||
| } | ||
| return normalized; | ||
| } | ||
| export function mergeWarmthScores(similarities, graphScores, seeds, config, limit = config.max_results) { | ||
| const embeddingScores = new Map(); | ||
| for (const { title, sim } of similarities) { | ||
| embeddingScores.set(title, sim); | ||
| } | ||
| const normalizedGraph = normalizeScores(graphScores); | ||
| const mergedTitles = new Set([ | ||
| ...embeddingScores.keys(), | ||
| ...normalizedGraph.keys(), | ||
| ]); | ||
| const noiseFloor = config.activation_threshold * NOISE_FLOOR_FACTOR; | ||
| const merged = []; | ||
| for (const title of mergedTitles) { | ||
| const embeddingScore = embeddingScores.get(title) ?? 0; | ||
| const graphScore = normalizedGraph.get(title) ?? 0; | ||
| const finalScore = (1 - config.graph_weight) * embeddingScore + | ||
| config.graph_weight * graphScore; | ||
| if (finalScore < noiseFloor) | ||
| continue; | ||
| const hasSeed = seeds.has(title); | ||
| const hasGraph = graphScore > 0; | ||
| const source = hasSeed && hasGraph | ||
| ? "both" | ||
| : hasSeed | ||
| ? "embedding" | ||
| : "graph"; | ||
| merged.push({ title, score: finalScore, source }); | ||
| } | ||
| merged.sort((a, b) => b.score - a.score); | ||
| return merged.slice(0, limit); | ||
| } | ||
| export class WarmthService { | ||
| embedder; | ||
| cache = null; | ||
| constructor(embedder = embedText) { | ||
| this.embedder = embedder; | ||
| } | ||
| async scan(context, storedVectors, linkGraph, engineConfig, warmthConfig, options) { | ||
| if (!warmthConfig.enabled || storedVectors.size === 0) | ||
| return []; | ||
| const requestedLimit = options?.limit ?? warmthConfig.max_results; | ||
| const contextEmbedding = await this.embedder(context, engineConfig); | ||
| if (this.cache && | ||
| this.cache.vectorCount === storedVectors.size && | ||
| !detectSurprise(contextEmbedding, this.cache.contextEmbedding, warmthConfig.surprise_threshold)) { | ||
| return this.cache.signals.slice(0, requestedLimit); | ||
| } | ||
| const similarities = []; | ||
| for (const [title, vectors] of storedVectors) { | ||
| const vector = vectors.bodyVec.length > 0 ? vectors.bodyVec : vectors.descVec; | ||
| if (vector.length === 0) | ||
| continue; | ||
| similarities.push({ title, sim: cosine(contextEmbedding, vector) }); | ||
| } | ||
| similarities.sort((a, b) => b.sim - a.sim); | ||
| const seeds = selectSeeds(similarities, warmthConfig.activation_threshold); | ||
| if (seeds.size === 0) { | ||
| this.cache = { | ||
| contextEmbedding, | ||
| signals: [], | ||
| vectorCount: storedVectors.size, | ||
| }; | ||
| return []; | ||
| } | ||
| const graphScores = computePPR(seeds, linkGraph, warmthConfig.ppr_alpha, warmthConfig.ppr_iterations); | ||
| const signals = mergeWarmthScores(similarities, graphScores, seeds, warmthConfig, Math.max(requestedLimit, warmthConfig.max_results)); | ||
| this.cache = { | ||
| contextEmbedding, | ||
| signals, | ||
| vectorCount: storedVectors.size, | ||
| }; | ||
| return signals.slice(0, requestedLimit); | ||
| } | ||
| clearCache() { | ||
| this.cache = null; | ||
| } | ||
| } | ||
| //# sourceMappingURL=warmth.js.map |
| {"version":3,"file":"warmth.js","sourceRoot":"","sources":["../../src/core/warmth.ts"],"names":[],"mappings":"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"} |
@@ -6,8 +6,13 @@ #!/usr/bin/env node | ||
| function hasVaultRoot(startDir) { | ||
| function findVaultRoot(startDir) { | ||
| const explicit = process.env.ORI_VAULT; | ||
| if (explicit && existsSync(path.join(explicit, ".ori"))) { | ||
| return explicit; | ||
| } | ||
| let current = path.resolve(startDir); | ||
| while (true) { | ||
| if (existsSync(path.join(current, ".ori"))) return true; | ||
| if (existsSync(path.join(current, ".ori"))) return current; | ||
| const parent = path.dirname(current); | ||
| if (parent === current) return false; | ||
| if (parent === current) return null; | ||
| current = parent; | ||
@@ -53,3 +58,3 @@ } | ||
| if (!hasVaultRoot(process.cwd())) { | ||
| if (!findVaultRoot(process.cwd())) { | ||
| process.exit(0); | ||
@@ -56,0 +61,0 @@ } |
@@ -6,8 +6,13 @@ #!/usr/bin/env node | ||
| function hasVaultRoot(startDir) { | ||
| function findVaultRoot(startDir) { | ||
| const explicit = process.env.ORI_VAULT; | ||
| if (explicit && existsSync(path.join(explicit, ".ori"))) { | ||
| return explicit; | ||
| } | ||
| let current = path.resolve(startDir); | ||
| while (true) { | ||
| if (existsSync(path.join(current, ".ori"))) return true; | ||
| if (existsSync(path.join(current, ".ori"))) return current; | ||
| const parent = path.dirname(current); | ||
| if (parent === current) return false; | ||
| if (parent === current) return null; | ||
| current = parent; | ||
@@ -17,3 +22,4 @@ } | ||
| if (!hasVaultRoot(process.cwd())) { | ||
| const vaultRoot = findVaultRoot(process.cwd()); | ||
| if (!vaultRoot) { | ||
| process.exit(0); | ||
@@ -44,12 +50,3 @@ } | ||
| let inboxDir = null; | ||
| let current = path.resolve(process.cwd()); | ||
| while (true) { | ||
| if (existsSync(path.join(current, ".ori"))) { | ||
| inboxDir = path.join(current, "inbox"); | ||
| break; | ||
| } | ||
| const parent = path.dirname(current); | ||
| if (parent === current) break; | ||
| current = parent; | ||
| } | ||
| inboxDir = path.join(vaultRoot, "inbox"); | ||
@@ -56,0 +53,0 @@ if (inboxDir && existsSync(inboxDir)) { |
@@ -6,8 +6,13 @@ #!/usr/bin/env node | ||
| function hasVaultRoot(startDir) { | ||
| function findVaultRoot(startDir) { | ||
| const explicit = process.env.ORI_VAULT; | ||
| if (explicit && existsSync(path.join(explicit, ".ori"))) { | ||
| return explicit; | ||
| } | ||
| let current = path.resolve(startDir); | ||
| while (true) { | ||
| if (existsSync(path.join(current, ".ori"))) return true; | ||
| if (existsSync(path.join(current, ".ori"))) return current; | ||
| const parent = path.dirname(current); | ||
| if (parent === current) return false; | ||
| if (parent === current) return null; | ||
| current = parent; | ||
@@ -51,8 +56,15 @@ } | ||
| } | ||
| if (!hasVaultRoot(process.cwd())) { | ||
| const vaultRoot = findVaultRoot(process.cwd()); | ||
| if (!vaultRoot) { | ||
| process.exit(0); | ||
| } | ||
| const normalizedVault = path.resolve(vaultRoot).toLowerCase() + path.sep; | ||
| const normalizedFile = path.resolve(filePath).toLowerCase(); | ||
| if (!normalizedFile.startsWith(normalizedVault)) { | ||
| process.exit(0); | ||
| } | ||
| const result = spawnSync("ori", ["validate", filePath], { stdio: "inherit", shell: true }); | ||
| if (result.error) process.exit(0); | ||
| process.exit(result.status ?? 0); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../src/cli/archive.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE;QACJ,QAAQ,EAAE,YAAY,EAAE,CAAC;KAC1B,CAAC;IACF,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,iBAAiB,EAAE,MAAM,EACzB,GAAG,EAAE,IAAI,GACR,OAAO,CAoBT;AAED,wBAAsB,UAAU,CAC9B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,aAAa,CAAC,CA+CxB"} | ||
| {"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../src/cli/archive.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE;QACJ,QAAQ,EAAE,YAAY,EAAE,CAAC;KAC1B,CAAC;IACF,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,iBAAiB,EAAE,MAAM,EACzB,GAAG,EAAE,IAAI,GACR,OAAO,CAoBT;AAED,wBAAsB,UAAU,CAC9B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,aAAa,CAAC,CAoDxB"} |
| import path from "node:path"; | ||
| import { findVaultRoot, getVaultPaths, listNoteTitles } from "../core/vault.js"; | ||
| import { loadConfig } from "../core/config.js"; | ||
| import { initDB, removeNoteFromDB } from "../core/engine.js"; | ||
| import { readFrontmatterFile, writeFrontmatterFile, } from "../core/frontmatter.js"; | ||
@@ -32,3 +33,3 @@ import { buildGraph } from "../core/graph.js"; | ||
| const paths = getVaultPaths(vaultRoot); | ||
| await loadConfig(paths.config); // validate config exists | ||
| const config = await loadConfig(paths.config); | ||
| const titles = await listNoteTitles(paths.notes); | ||
@@ -38,2 +39,4 @@ const graph = await buildGraph(paths.notes); | ||
| const archived = []; | ||
| const dbPath = path.resolve(vaultRoot, config.engine.db_path); | ||
| const db = options.dryRun ? null : initDB(dbPath); | ||
| for (const title of titles) { | ||
@@ -57,2 +60,3 @@ const filePath = path.join(paths.notes, `${title}.md`); | ||
| await writeFrontmatterFile(filePath, parsed.data, parsed.body); | ||
| removeNoteFromDB(db, title); | ||
| } | ||
@@ -66,2 +70,3 @@ archived.push({ | ||
| } | ||
| db?.close(); | ||
| return { | ||
@@ -68,0 +73,0 @@ success: true, |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"archive.js","sourceRoot":"","sources":["../../src/cli/archive.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"archive.js","sourceRoot":"","sources":["../../src/cli/archive.ts"],"names":[],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"boot.d.ts","sourceRoot":"","sources":["../../src/cli/boot.ts"],"names":[],"mappings":"AAMA,OAAO,EAAW,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AA+ErD,wBAAsB,eAAe,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsJ9F"} | ||
| {"version":3,"file":"boot.d.ts","sourceRoot":"","sources":["../../src/cli/boot.ts"],"names":[],"mappings":"AAMA,OAAO,EAAW,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAqErD,wBAAsB,eAAe,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuJ9F"} |
+13
-22
@@ -48,25 +48,15 @@ import chalk from "chalk"; | ||
| file: ".claude/settings.json (in your project or ~/.claude/settings.json globally)", | ||
| snippet: `{ | ||
| "mcpServers": { | ||
| "ori": { | ||
| "command": "ori", | ||
| "args": ["serve", "--mcp"] | ||
| } | ||
| } | ||
| }`, | ||
| snippet: `Recommended: | ||
| ori bridge claude-code --scope global --activation auto --vault /path/to/brain`, | ||
| }, | ||
| Cursor: { | ||
| file: ".cursor/mcp.json (in your project root)", | ||
| snippet: `{ | ||
| "mcpServers": { | ||
| "ori": { | ||
| "command": "ori", | ||
| "args": ["serve", "--mcp"] | ||
| } | ||
| } | ||
| }`, | ||
| snippet: `Recommended: | ||
| ori bridge cursor --scope project --activation manual --vault /path/to/brain`, | ||
| }, | ||
| Other: { | ||
| file: "your MCP client's config file", | ||
| snippet: `Server command: ori serve --mcp | ||
| snippet: `Print install plan: | ||
| ori bridge generic --scope global --activation manual --vault /path/to/brain | ||
| Transport: stdio (JSON-RPC 2.0)`, | ||
@@ -124,3 +114,3 @@ }, | ||
| const resolvedDir = path.resolve(targetDir); | ||
| p.outro(`Vault created at ${dim(resolvedDir)}. Run ${gold("ori serve --mcp")} to connect your agent.`); | ||
| p.outro(`Vault created at ${dim(resolvedDir)}. Run ${gold("ori bridge claude-code --scope global --activation auto --vault " + resolvedDir)} or ${gold("ori bridge generic --scope global --activation manual --vault " + resolvedDir)}.`); | ||
| await writeState(targetDir, { onboarded: true, version: getVersion() }); | ||
@@ -165,4 +155,5 @@ return; | ||
| "", | ||
| `Running ${gold("ori init")} in any project folder connects`, | ||
| "that project to this brain. One brain, many projects.", | ||
| `Use ${gold(`ori bridge claude-code --scope global --activation auto --vault ${resolvedVault}`)}`, | ||
| `for Claude Code, or ${gold(`ori bridge generic --scope global --activation manual --vault ${resolvedVault}`)}`, | ||
| "for any other MCP client. One brain, many projects.", | ||
| ].join("\n"), "How it works"); | ||
@@ -197,3 +188,3 @@ // 3. MCP client config | ||
| // 5. Done | ||
| p.outro(`Your memory starts now. Run ${gold("ori serve --mcp")} to connect your agent.`); | ||
| p.outro(`Your memory starts now. Run ${gold(`ori bridge claude-code --scope global --activation auto --vault ${resolvedVault}`)} or ${gold(`ori bridge generic --scope global --activation manual --vault ${resolvedVault}`)}.`); | ||
| // Write state | ||
@@ -208,4 +199,4 @@ await writeState(resolvedVault, { onboarded: true, version: getVersion() }); | ||
| // Just hardcode the current version; state.version is informational | ||
| return "0.3.3"; | ||
| return "0.4.0"; | ||
| } | ||
| //# sourceMappingURL=boot.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"boot.js","sourceRoot":"","sources":["../../src/cli/boot.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"boot.js","sourceRoot":"","sources":["../../src/cli/boot.ts"],"names":[],"mappings":"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"} |
+115
-7
@@ -1,19 +0,127 @@ | ||
| export declare function runBridgeClaudeCode(startDir: string): Promise<{ | ||
| import { type BridgeActivation, type BridgePlan, type BridgeRequest } from "../core/bridge.js"; | ||
| type SettingsShape = { | ||
| hooks?: Record<string, unknown[]>; | ||
| [key: string]: unknown; | ||
| }; | ||
| type McpShape = { | ||
| mcpServers?: Record<string, unknown>; | ||
| [key: string]: unknown; | ||
| }; | ||
| type BridgeMutationKind = "installed" | "updated" | "uninstalled" | "noop"; | ||
| type BridgeInstallStatus = { | ||
| installed: boolean; | ||
| scope: "project" | "global"; | ||
| client: "claude-code" | "cursor"; | ||
| configPaths: string[]; | ||
| mcpPath?: string; | ||
| settingsPath?: string; | ||
| instructionsPath?: string; | ||
| hooksDir?: string; | ||
| activation: BridgeActivation | "unknown" | null; | ||
| resolvedVault: string | null; | ||
| details: string[]; | ||
| }; | ||
| export declare function mergeSettings(existing: SettingsShape, incoming: SettingsShape): SettingsShape; | ||
| export declare function mergeMcpConfig(existing: McpShape, plan: BridgePlan): McpShape; | ||
| export declare function removeOriFromSettings(existing: SettingsShape): SettingsShape; | ||
| export declare function removeOriFromMcpConfig(existing: McpShape): McpShape; | ||
| export declare function removeClaudeInstructions(content: string): string; | ||
| export declare function runBridgeStatus(startDir: string): Promise<{ | ||
| success: boolean; | ||
| data: { | ||
| claudePath: string; | ||
| hooksDir: string; | ||
| scope: string; | ||
| clients: { | ||
| "claude-code": { | ||
| project: BridgeInstallStatus; | ||
| global: BridgeInstallStatus; | ||
| active: BridgeInstallStatus | null; | ||
| }; | ||
| cursor: { | ||
| project: BridgeInstallStatus; | ||
| global: BridgeInstallStatus; | ||
| active: BridgeInstallStatus | null; | ||
| }; | ||
| }; | ||
| precedence: string; | ||
| instructions: string[]; | ||
| }; | ||
| warnings: never[]; | ||
| }>; | ||
| export declare function runBridgeClaudeCodeGlobal(): Promise<{ | ||
| export declare function runBridgeClaudeCode(startDir: string, request?: Omit<BridgeRequest, "target" | "startDir">): Promise<{ | ||
| success: boolean; | ||
| data: { | ||
| operation: string; | ||
| mutation: BridgeMutationKind; | ||
| hooksDir: string; | ||
| settingsPath: string; | ||
| scope: string; | ||
| mcpPath: string; | ||
| instructionsPath: string; | ||
| target: import("../core/bridge.js").BridgeTarget; | ||
| scope: import("../core/bridge.js").BridgeScope; | ||
| activation: BridgeActivation; | ||
| resolvedVault: string | null; | ||
| resolvedVaultSource: import("../core/bridge.js").VaultResolutionSource; | ||
| server: import("../core/bridge.js").BridgeServerConfig; | ||
| instructions: string[]; | ||
| warnings: string[]; | ||
| }; | ||
| warnings: never[]; | ||
| warnings: string[]; | ||
| }>; | ||
| export declare function runBridgeClaudeCodeGlobal(startDir: string, request?: Omit<BridgeRequest, "target" | "startDir">): Promise<{ | ||
| success: boolean; | ||
| data: { | ||
| operation: string; | ||
| mutation: BridgeMutationKind; | ||
| hooksDir: string; | ||
| settingsPath: string; | ||
| mcpPath: string; | ||
| instructionsPath: string; | ||
| target: import("../core/bridge.js").BridgeTarget; | ||
| scope: import("../core/bridge.js").BridgeScope; | ||
| activation: BridgeActivation; | ||
| resolvedVault: string | null; | ||
| resolvedVaultSource: import("../core/bridge.js").VaultResolutionSource; | ||
| server: import("../core/bridge.js").BridgeServerConfig; | ||
| instructions: string[]; | ||
| warnings: string[]; | ||
| }; | ||
| warnings: string[]; | ||
| }>; | ||
| export declare function runBridgeGeneric(startDir: string, request?: Omit<BridgeRequest, "target" | "startDir">): Promise<{ | ||
| success: boolean; | ||
| data: { | ||
| operation: string; | ||
| mutation: string; | ||
| client: import("../core/bridge.js").BridgeTarget; | ||
| mode: string; | ||
| command: string; | ||
| args: string[]; | ||
| env: Record<string, string>; | ||
| scope: import("../core/bridge.js").BridgeScope; | ||
| activation: BridgeActivation; | ||
| resolvedVault: string | null; | ||
| instructions: string[]; | ||
| warnings: string[]; | ||
| }; | ||
| warnings: string[]; | ||
| }>; | ||
| export declare function runBridgeCursor(startDir: string, request?: Omit<BridgeRequest, "target" | "startDir">): Promise<{ | ||
| success: boolean; | ||
| data: { | ||
| operation: string; | ||
| mutation: BridgeMutationKind; | ||
| mcpPath: string; | ||
| client: import("../core/bridge.js").BridgeTarget; | ||
| mode: string; | ||
| command: string; | ||
| args: string[]; | ||
| env: Record<string, string>; | ||
| scope: import("../core/bridge.js").BridgeScope; | ||
| activation: BridgeActivation; | ||
| resolvedVault: string | null; | ||
| instructions: string[]; | ||
| warnings: string[]; | ||
| }; | ||
| warnings: string[]; | ||
| }>; | ||
| export {}; | ||
| //# sourceMappingURL=bridge.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/cli/bridge.ts"],"names":[],"mappings":"AAiKA,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM;;;;;;;;GA6BzD;AAED,wBAAsB,yBAAyB;;;;;;;;GAe9C"} | ||
| {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/cli/bridge.ts"],"names":[],"mappings":"AAGA,OAAO,EAOL,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,aAAa,EACnB,MAAM,mBAAmB,CAAC;AAmI3B,KAAK,aAAa,GAAG;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAClC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF,KAAK,QAAQ,GAAG;IACd,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF,KAAK,kBAAkB,GAAG,WAAW,GAAG,SAAS,GAAG,aAAa,GAAG,MAAM,CAAC;AAC3E,KAAK,mBAAmB,GAAG;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC5B,MAAM,EAAE,aAAa,GAAG,QAAQ,CAAC;IACjC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,gBAAgB,GAAG,SAAS,GAAG,IAAI,CAAC;IAChD,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF,wBAAgB,aAAa,CAAC,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,GAAG,aAAa,CAwB7F;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,GAAG,QAAQ,CAa7E;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,aAAa,GAAG,aAAa,CAoB5E;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAcnE;AA8ED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAKhE;AA+GD,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM;;;;;;;;;;;;;;;;;;;GA+BrD;AAED,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,GAAG,UAAU,CAAM;;;;;;;;;;;;;;;;;;;GAsCnH;AAED,wBAAsB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,GAAG,UAAU,CAAM;;;;;;;;;;;;;;;;;;;GAEzH;AAED,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,GAAG,UAAU,CAAM;;;;;;;;;;;;;;;;;GAkBhH;AAED,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,GAAG,UAAU,CAAM;;;;;;;;;;;;;;;;;;GAsC/G"} |
+411
-95
| import path from "node:path"; | ||
| import os from "node:os"; | ||
| import { promises as fs } from "node:fs"; | ||
| import { fileURLToPath } from "node:url"; | ||
| import { buildGenericInstallOutput, getClaudeGlobalPaths, getClaudeProjectPaths, getCursorGlobalPaths, getCursorProjectPaths, resolveBridgePlan, } from "../core/bridge.js"; | ||
| const BRIDGE_SENTINEL = "<!-- ori-bridge:claude-code -->"; | ||
| const ORI_HOOK_CMD_MARKER = "hooks/ori/"; | ||
| const CLAUDE_SNIPPET = `# Ori Mnemos - Claude Code Bridge | ||
| const ORI_MCP_SENTINEL = "ori"; | ||
| const ORI_HOOK_SCRIPT_NAMES = ["orient.mjs", "validate.mjs", "capture.mjs"]; | ||
| function claudeSnippet(activation) { | ||
| const orientLine = activation === "auto" | ||
| ? "- Ori injects identity via MCP instructions automatically" | ||
| : "- Manual activation is enabled; call `ori_orient` when you want session context loaded"; | ||
| const persistLine = activation === "auto" | ||
| ? "- Session capture runs automatically at stop" | ||
| : "- Automatic session capture is disabled in manual mode to avoid junk notes"; | ||
| return `# Ori Mnemos - Claude Code Bridge | ||
@@ -13,3 +21,3 @@ ## Session Rhythm | ||
| ### Orient (always first) | ||
| - Ori injects identity via MCP instructions automatically | ||
| - ${orientLine} | ||
| - Call \`ori_orient\` for session briefing (daily + goals + reminders + vault status) | ||
@@ -28,68 +36,72 @@ - Use \`ori_orient brief=false\` for full context including identity and methodology | ||
| - Run \`ori validate\` on notes you create | ||
| - ${persistLine} | ||
| - Keep notes atomic and link to maps | ||
| `; | ||
| function localSettings(hooksDir) { | ||
| return { | ||
| hooks: { | ||
| SessionStart: [ | ||
| { | ||
| hooks: [ | ||
| { | ||
| type: "command", | ||
| command: "node .claude/hooks/orient.mjs", | ||
| timeout: 10, | ||
| }, | ||
| ], | ||
| }, | ||
| ], | ||
| PostToolUse: [ | ||
| { | ||
| matcher: "Write", | ||
| hooks: [ | ||
| { | ||
| type: "command", | ||
| command: "node .claude/hooks/validate.mjs", | ||
| timeout: 5, | ||
| }, | ||
| ], | ||
| }, | ||
| ], | ||
| Stop: [ | ||
| { | ||
| hooks: [ | ||
| { | ||
| type: "command", | ||
| command: "node .claude/hooks/capture.mjs", | ||
| timeout: 10, | ||
| }, | ||
| ], | ||
| }, | ||
| ], | ||
| }, | ||
| } | ||
| function localSettings(activation) { | ||
| const hooks = { | ||
| PostToolUse: [ | ||
| { | ||
| matcher: "Write", | ||
| hooks: [ | ||
| { | ||
| type: "command", | ||
| command: "node .claude/hooks/validate.mjs", | ||
| timeout: 5, | ||
| }, | ||
| ], | ||
| }, | ||
| ], | ||
| }; | ||
| if (activation === "auto") { | ||
| hooks.SessionStart = [ | ||
| { | ||
| hooks: [ | ||
| { | ||
| type: "command", | ||
| command: "node .claude/hooks/orient.mjs", | ||
| timeout: 10, | ||
| }, | ||
| ], | ||
| }, | ||
| ]; | ||
| hooks.Stop = [ | ||
| { | ||
| hooks: [ | ||
| { | ||
| type: "command", | ||
| command: "node .claude/hooks/capture.mjs", | ||
| timeout: 10, | ||
| }, | ||
| ], | ||
| }, | ||
| ]; | ||
| } | ||
| return { hooks }; | ||
| } | ||
| function globalSettings(hooksDir) { | ||
| function globalSettings(hooksDir, activation) { | ||
| const orientCmd = `node "${path.join(hooksDir, "orient.mjs")}"`; | ||
| const validateCmd = `node "${path.join(hooksDir, "validate.mjs")}"`; | ||
| const captureCmd = `node "${path.join(hooksDir, "capture.mjs")}"`; | ||
| return { | ||
| hooks: { | ||
| SessionStart: [ | ||
| { | ||
| hooks: [{ type: "command", command: orientCmd, timeout: 10 }], | ||
| }, | ||
| ], | ||
| PostToolUse: [ | ||
| { | ||
| matcher: "Write", | ||
| hooks: [{ type: "command", command: validateCmd, timeout: 5 }], | ||
| }, | ||
| ], | ||
| Stop: [ | ||
| { | ||
| hooks: [{ type: "command", command: captureCmd, timeout: 10 }], | ||
| }, | ||
| ], | ||
| }, | ||
| const hooks = { | ||
| PostToolUse: [ | ||
| { | ||
| matcher: "Write", | ||
| hooks: [{ type: "command", command: validateCmd, timeout: 5 }], | ||
| }, | ||
| ], | ||
| }; | ||
| if (activation === "auto") { | ||
| hooks.SessionStart = [ | ||
| { | ||
| hooks: [{ type: "command", command: orientCmd, timeout: 10 }], | ||
| }, | ||
| ]; | ||
| hooks.Stop = [ | ||
| { | ||
| hooks: [{ type: "command", command: captureCmd, timeout: 10 }], | ||
| }, | ||
| ]; | ||
| } | ||
| return { hooks }; | ||
| } | ||
@@ -107,14 +119,7 @@ function hookEntryHasOriMarker(entry) { | ||
| return (typeof cmd === "string" && | ||
| cmd.replace(/\\/g, "/").includes(ORI_HOOK_CMD_MARKER)); | ||
| (cmd.replace(/\\/g, "/").includes("hooks/ori/") || | ||
| ORI_HOOK_SCRIPT_NAMES.some((scriptName) => cmd.replace(/\\/g, "/").includes(`.claude/hooks/${scriptName}`)))); | ||
| }); | ||
| } | ||
| async function mergeIntoSettingsFile(settingsPath, incoming) { | ||
| let existing = {}; | ||
| try { | ||
| const raw = await fs.readFile(settingsPath, "utf8"); | ||
| existing = JSON.parse(raw); | ||
| } | ||
| catch { | ||
| // file missing or unparseable - start fresh | ||
| } | ||
| export function mergeSettings(existing, incoming) { | ||
| const merged = { | ||
@@ -124,3 +129,4 @@ ...existing, | ||
| }; | ||
| for (const [event, entries] of Object.entries(incoming.hooks)) { | ||
| const incomingHooks = incoming.hooks ?? {}; | ||
| for (const [event, entries] of Object.entries(incomingHooks)) { | ||
| const current = (merged.hooks[event] ?? []); | ||
@@ -132,5 +138,104 @@ const alreadyInstalled = current.some(hookEntryHasOriMarker); | ||
| } | ||
| if (incoming.hooks) { | ||
| for (const event of Object.keys(merged.hooks ?? {})) { | ||
| if (!(event in incoming.hooks) && (merged.hooks?.[event] ?? []).some(hookEntryHasOriMarker)) { | ||
| delete merged.hooks[event]; | ||
| } | ||
| } | ||
| } | ||
| return merged; | ||
| } | ||
| export function mergeMcpConfig(existing, plan) { | ||
| const next = { | ||
| ...existing, | ||
| mcpServers: { ...(existing.mcpServers ?? {}) }, | ||
| }; | ||
| next.mcpServers[ORI_MCP_SENTINEL] = { | ||
| command: plan.server.command, | ||
| args: plan.server.args, | ||
| ...(Object.keys(plan.server.env).length > 0 ? { env: plan.server.env } : {}), | ||
| }; | ||
| return next; | ||
| } | ||
| export function removeOriFromSettings(existing) { | ||
| const next = { | ||
| ...existing, | ||
| hooks: { ...(existing.hooks ?? {}) }, | ||
| }; | ||
| for (const [event, entries] of Object.entries(next.hooks ?? {})) { | ||
| const filtered = entries.filter((entry) => !hookEntryHasOriMarker(entry)); | ||
| if (filtered.length === 0) { | ||
| delete next.hooks[event]; | ||
| } | ||
| else { | ||
| next.hooks[event] = filtered; | ||
| } | ||
| } | ||
| if (next.hooks && Object.keys(next.hooks).length === 0) { | ||
| delete next.hooks; | ||
| } | ||
| return next; | ||
| } | ||
| export function removeOriFromMcpConfig(existing) { | ||
| const next = { | ||
| ...existing, | ||
| mcpServers: { ...(existing.mcpServers ?? {}) }, | ||
| }; | ||
| if (next.mcpServers) { | ||
| delete next.mcpServers[ORI_MCP_SENTINEL]; | ||
| if (Object.keys(next.mcpServers).length === 0) { | ||
| delete next.mcpServers; | ||
| } | ||
| } | ||
| return next; | ||
| } | ||
| function classifyMcpMutation(existing, next, uninstall = false) { | ||
| const hadOri = Boolean(existing.mcpServers && ORI_MCP_SENTINEL in existing.mcpServers); | ||
| const hasOri = Boolean(next.mcpServers && ORI_MCP_SENTINEL in next.mcpServers); | ||
| if (uninstall) | ||
| return hadOri ? "uninstalled" : "noop"; | ||
| if (!hadOri && hasOri) | ||
| return "installed"; | ||
| if (hadOri && hasOri) | ||
| return "updated"; | ||
| return "noop"; | ||
| } | ||
| function classifySettingsMutation(existing, next, uninstall = false) { | ||
| const hadOri = Object.values(existing.hooks ?? {}).some((entries) => entries.some(hookEntryHasOriMarker)); | ||
| const hasOri = Object.values(next.hooks ?? {}).some((entries) => entries.some(hookEntryHasOriMarker)); | ||
| if (uninstall) | ||
| return hadOri ? "uninstalled" : "noop"; | ||
| if (!hadOri && hasOri) | ||
| return "installed"; | ||
| if (hadOri && hasOri) | ||
| return "updated"; | ||
| return "noop"; | ||
| } | ||
| async function mergeIntoSettingsFile(settingsPath, incoming, uninstall = false) { | ||
| let existing = {}; | ||
| try { | ||
| const raw = await fs.readFile(settingsPath, "utf8"); | ||
| existing = JSON.parse(raw); | ||
| } | ||
| catch { | ||
| // file missing or unparseable - start fresh | ||
| } | ||
| const merged = uninstall ? removeOriFromSettings(existing) : mergeSettings(existing, incoming); | ||
| await fs.writeFile(settingsPath, JSON.stringify(merged, null, 2)); | ||
| return classifySettingsMutation(existing, merged, uninstall); | ||
| } | ||
| function getAdaptersDir() { | ||
| async function mergeIntoMcpFile(mcpPath, plan, uninstall = false) { | ||
| let existing = {}; | ||
| try { | ||
| const raw = await fs.readFile(mcpPath, "utf8"); | ||
| existing = JSON.parse(raw); | ||
| } | ||
| catch { | ||
| // file missing or unparseable - start fresh | ||
| } | ||
| const merged = uninstall ? removeOriFromMcpConfig(existing) : mergeMcpConfig(existing, plan); | ||
| await fs.writeFile(mcpPath, JSON.stringify(merged, null, 2)); | ||
| return classifyMcpMutation(existing, merged, uninstall); | ||
| } | ||
| function getClaudeAdaptersDir() { | ||
| const __filename = fileURLToPath(import.meta.url); | ||
@@ -146,9 +251,3 @@ const __dirname = path.dirname(__filename); | ||
| } | ||
| export async function runBridgeClaudeCode(startDir) { | ||
| const root = path.resolve(startDir); | ||
| const claudeDir = path.join(root, ".claude"); | ||
| const hooksDir = path.join(claudeDir, "hooks"); | ||
| const adaptersDir = getAdaptersDir(); | ||
| await copyHooks(adaptersDir, hooksDir); | ||
| const claudePath = path.join(root, "CLAUDE.md"); | ||
| async function appendClaudeInstructions(claudePath, activation) { | ||
| let existing = ""; | ||
@@ -161,26 +260,243 @@ try { | ||
| } | ||
| if (!existing.includes(BRIDGE_SENTINEL)) { | ||
| await fs.appendFile(claudePath, `\n\n${BRIDGE_SENTINEL}\n${CLAUDE_SNIPPET}`); | ||
| if (existing.includes(BRIDGE_SENTINEL)) { | ||
| return "noop"; | ||
| } | ||
| await fs.writeFile(path.join(claudeDir, "settings.json"), JSON.stringify(localSettings(hooksDir), null, 2)); | ||
| await fs.appendFile(claudePath, `\n\n${BRIDGE_SENTINEL}\n${claudeSnippet(activation)}`); | ||
| return existing.length > 0 ? "updated" : "installed"; | ||
| } | ||
| export function removeClaudeInstructions(content) { | ||
| const marker = `\n\n${BRIDGE_SENTINEL}\n`; | ||
| const idx = content.indexOf(marker); | ||
| if (idx >= 0) | ||
| return content.slice(0, idx); | ||
| return content; | ||
| } | ||
| async function uninstallClaudeInstructions(claudePath) { | ||
| try { | ||
| const existing = await fs.readFile(claudePath, "utf8"); | ||
| const next = removeClaudeInstructions(existing); | ||
| await fs.writeFile(claudePath, next, "utf8"); | ||
| return next === existing ? "noop" : "uninstalled"; | ||
| } | ||
| catch { | ||
| return "noop"; | ||
| } | ||
| } | ||
| function summarizeMutations(kinds) { | ||
| if (kinds.includes("updated")) | ||
| return "updated"; | ||
| if (kinds.includes("installed")) | ||
| return "installed"; | ||
| if (kinds.includes("uninstalled")) | ||
| return "uninstalled"; | ||
| return "noop"; | ||
| } | ||
| async function readJsonFile(filePath) { | ||
| try { | ||
| const raw = await fs.readFile(filePath, "utf8"); | ||
| return JSON.parse(raw); | ||
| } | ||
| catch { | ||
| return null; | ||
| } | ||
| } | ||
| function extractVaultFromMcpConfig(config) { | ||
| const entry = config?.mcpServers?.[ORI_MCP_SENTINEL]; | ||
| if (!entry || typeof entry !== "object") | ||
| return null; | ||
| const record = entry; | ||
| const env = record.env; | ||
| if (env && typeof env === "object") { | ||
| const value = env.ORI_VAULT; | ||
| if (typeof value === "string" && value.length > 0) | ||
| return value; | ||
| } | ||
| const args = record.args; | ||
| if (Array.isArray(args)) { | ||
| const vaultIndex = args.findIndex((value) => value === "--vault"); | ||
| if (vaultIndex >= 0 && typeof args[vaultIndex + 1] === "string") { | ||
| return args[vaultIndex + 1]; | ||
| } | ||
| } | ||
| return null; | ||
| } | ||
| function detectClaudeActivation(settings) { | ||
| const hooks = settings?.hooks ?? {}; | ||
| const hasOrient = (hooks.SessionStart ?? []).some(hookEntryHasOriMarker); | ||
| const hasValidate = (hooks.PostToolUse ?? []).some(hookEntryHasOriMarker); | ||
| if (hasOrient) | ||
| return "auto"; | ||
| if (hasValidate) | ||
| return "manual"; | ||
| return null; | ||
| } | ||
| async function inspectClaudeInstall(startDir, scope) { | ||
| const paths = scope === "global" ? getClaudeGlobalPaths() : getClaudeProjectPaths(startDir); | ||
| const [settings, mcp, instructions] = await Promise.all([ | ||
| readJsonFile(paths.settingsPath), | ||
| readJsonFile(paths.mcpPath), | ||
| fs.readFile(paths.instructionsPath, "utf8").catch(() => null), | ||
| ]); | ||
| const hasSettings = Object.values(settings?.hooks ?? {}).some((entries) => entries.some(hookEntryHasOriMarker)); | ||
| const hasMcp = Boolean(mcp?.mcpServers?.[ORI_MCP_SENTINEL]); | ||
| const hasInstructions = typeof instructions === "string" && instructions.includes(BRIDGE_SENTINEL); | ||
| const installed = hasSettings || hasMcp || hasInstructions; | ||
| const details = []; | ||
| if (hasMcp) | ||
| details.push(`MCP config present at ${paths.mcpPath}.`); | ||
| if (hasSettings) | ||
| details.push(`Ori hook entries present at ${paths.settingsPath}.`); | ||
| if (hasInstructions) | ||
| details.push(`Ori bridge instructions present at ${paths.instructionsPath}.`); | ||
| if (!installed) | ||
| details.push("No Ori-managed Claude bridge config detected."); | ||
| return { | ||
| installed, | ||
| client: "claude-code", | ||
| scope, | ||
| configPaths: [paths.settingsPath, paths.mcpPath, paths.instructionsPath], | ||
| mcpPath: paths.mcpPath, | ||
| settingsPath: paths.settingsPath, | ||
| instructionsPath: paths.instructionsPath, | ||
| hooksDir: paths.hooksDir, | ||
| activation: detectClaudeActivation(settings), | ||
| resolvedVault: extractVaultFromMcpConfig(mcp), | ||
| details, | ||
| }; | ||
| } | ||
| async function inspectCursorInstall(startDir, scope) { | ||
| const paths = scope === "global" ? getCursorGlobalPaths() : getCursorProjectPaths(startDir); | ||
| const mcp = await readJsonFile(paths.mcpPath); | ||
| const hasMcp = Boolean(mcp?.mcpServers?.[ORI_MCP_SENTINEL]); | ||
| const details = hasMcp | ||
| ? [`MCP config present at ${paths.mcpPath}.`] | ||
| : ["No Ori-managed Cursor MCP config detected."]; | ||
| return { | ||
| installed: hasMcp, | ||
| client: "cursor", | ||
| scope, | ||
| configPaths: [paths.mcpPath], | ||
| mcpPath: paths.mcpPath, | ||
| activation: hasMcp ? "unknown" : null, | ||
| resolvedVault: extractVaultFromMcpConfig(mcp), | ||
| details, | ||
| }; | ||
| } | ||
| export async function runBridgeStatus(startDir) { | ||
| const [claudeProject, claudeGlobal, cursorProject, cursorGlobal] = await Promise.all([ | ||
| inspectClaudeInstall(startDir, "project"), | ||
| inspectClaudeInstall(startDir, "global"), | ||
| inspectCursorInstall(startDir, "project"), | ||
| inspectCursorInstall(startDir, "global"), | ||
| ]); | ||
| return { | ||
| success: true, | ||
| data: { claudePath, hooksDir, scope: "project" }, | ||
| data: { | ||
| clients: { | ||
| "claude-code": { | ||
| project: claudeProject, | ||
| global: claudeGlobal, | ||
| active: claudeProject.installed ? claudeProject : claudeGlobal.installed ? claudeGlobal : null, | ||
| }, | ||
| cursor: { | ||
| project: cursorProject, | ||
| global: cursorGlobal, | ||
| active: cursorProject.installed ? cursorProject : cursorGlobal.installed ? cursorGlobal : null, | ||
| }, | ||
| }, | ||
| precedence: "project-over-global", | ||
| instructions: [ | ||
| "Project installs override global installs when both exist for the same client.", | ||
| "Cursor activation is reported as unknown because the adapter currently stores MCP wiring only, not startup behavior.", | ||
| ], | ||
| }, | ||
| warnings: [], | ||
| }; | ||
| } | ||
| export async function runBridgeClaudeCodeGlobal() { | ||
| const homeDir = os.homedir(); | ||
| const globalClaudeDir = path.join(homeDir, ".claude"); | ||
| const globalHooksDir = path.join(globalClaudeDir, "hooks", "ori"); | ||
| const globalSettingsPath = path.join(globalClaudeDir, "settings.json"); | ||
| const adaptersDir = getAdaptersDir(); | ||
| await copyHooks(adaptersDir, globalHooksDir); | ||
| await mergeIntoSettingsFile(globalSettingsPath, globalSettings(globalHooksDir)); | ||
| export async function runBridgeClaudeCode(startDir, request = {}) { | ||
| const plan = await resolveBridgePlan({ ...request, target: "claude-code", startDir }); | ||
| const paths = plan.scope === "global" ? getClaudeGlobalPaths() : getClaudeProjectPaths(startDir); | ||
| const adaptersDir = getClaudeAdaptersDir(); | ||
| let settingsMutation = "noop"; | ||
| let mcpMutation = "noop"; | ||
| let instructionsMutation = "noop"; | ||
| if (request.uninstall) { | ||
| settingsMutation = await mergeIntoSettingsFile(paths.settingsPath, {}, true); | ||
| mcpMutation = await mergeIntoMcpFile(paths.mcpPath, plan, true); | ||
| instructionsMutation = await uninstallClaudeInstructions(paths.instructionsPath); | ||
| } | ||
| else { | ||
| await copyHooks(adaptersDir, paths.hooksDir); | ||
| settingsMutation = await mergeIntoSettingsFile(paths.settingsPath, plan.scope === "global" ? globalSettings(paths.hooksDir, plan.activation) : localSettings(plan.activation)); | ||
| mcpMutation = await mergeIntoMcpFile(paths.mcpPath, plan); | ||
| instructionsMutation = await appendClaudeInstructions(paths.instructionsPath, plan.activation); | ||
| } | ||
| const mutation = summarizeMutations([settingsMutation, mcpMutation, instructionsMutation]); | ||
| return { | ||
| success: true, | ||
| data: { hooksDir: globalHooksDir, settingsPath: globalSettingsPath, scope: "global" }, | ||
| warnings: [], | ||
| data: { | ||
| ...plan, | ||
| operation: request.uninstall ? "uninstall" : "install", | ||
| mutation, | ||
| hooksDir: paths.hooksDir, | ||
| settingsPath: paths.settingsPath, | ||
| mcpPath: paths.mcpPath, | ||
| instructionsPath: paths.instructionsPath, | ||
| }, | ||
| warnings: plan.warnings, | ||
| }; | ||
| } | ||
| export async function runBridgeClaudeCodeGlobal(startDir, request = {}) { | ||
| return runBridgeClaudeCode(startDir, { ...request, scope: "global" }); | ||
| } | ||
| export async function runBridgeGeneric(startDir, request = {}) { | ||
| const plan = await resolveBridgePlan({ ...request, target: "generic", startDir }); | ||
| const data = buildGenericInstallOutput(plan); | ||
| if (request.uninstall) { | ||
| data.instructions = [ | ||
| "Generic uninstall is manual: remove the `ori` MCP server entry from your client config.", | ||
| ...data.instructions, | ||
| ]; | ||
| } | ||
| return { | ||
| success: true, | ||
| data: { | ||
| ...data, | ||
| operation: request.uninstall ? "uninstall" : "install", | ||
| mutation: request.uninstall ? "manual" : "noop", | ||
| }, | ||
| warnings: plan.warnings, | ||
| }; | ||
| } | ||
| export async function runBridgeCursor(startDir, request = {}) { | ||
| const plan = await resolveBridgePlan({ ...request, target: "cursor", startDir }); | ||
| const paths = plan.scope === "global" ? getCursorGlobalPaths() : getCursorProjectPaths(startDir); | ||
| await fs.mkdir(path.dirname(paths.mcpPath), { recursive: true }); | ||
| const mcpMutation = await mergeIntoMcpFile(paths.mcpPath, plan, request.uninstall === true); | ||
| const warnings = [...plan.warnings]; | ||
| if (!request.uninstall && plan.activation === "auto") { | ||
| warnings.push("Cursor adapter currently installs MCP config only. Auto activation still requires client-side startup instructions or prompts."); | ||
| } | ||
| const instructions = [...plan.instructions]; | ||
| instructions.push(request.uninstall | ||
| ? `Removed Ori MCP config from ${paths.mcpPath}.` | ||
| : `Cursor MCP config written to ${paths.mcpPath}.`); | ||
| if (!request.uninstall && plan.activation === "auto") { | ||
| instructions.push("If Cursor exposes a startup prompt or rules surface in your workflow, call `ori_orient` at session start there."); | ||
| } | ||
| return { | ||
| success: true, | ||
| data: { | ||
| ...buildGenericInstallOutput({ | ||
| ...plan, | ||
| instructions, | ||
| warnings, | ||
| }), | ||
| operation: request.uninstall ? "uninstall" : "install", | ||
| mutation: mcpMutation, | ||
| mcpPath: paths.mcpPath, | ||
| }, | ||
| warnings, | ||
| }; | ||
| } | ||
| //# sourceMappingURL=bridge.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/cli/bridge.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/cli/bridge.ts"],"names":[],"mappings":"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"} |
@@ -0,1 +1,2 @@ | ||
| import { type LinkGraph } from "../core/graph.js"; | ||
| export type HealthResult = { | ||
@@ -6,3 +7,3 @@ success: boolean; | ||
| }; | ||
| export declare function runHealth(startDir: string): Promise<HealthResult>; | ||
| export declare function runHealth(startDir: string, linkGraph?: LinkGraph): Promise<HealthResult>; | ||
| //# sourceMappingURL=health.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/cli/health.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CA0EvE"} | ||
| {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/cli/health.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,SAAS,EACf,MAAM,kBAAkB,CAAC;AAM1B,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,YAAY,CAAC,CA0EvB"} |
| import path from "node:path"; | ||
| import { promises as fs } from "node:fs"; | ||
| import { findVaultRoot, getVaultPaths, listNoteTitles } from "../core/vault.js"; | ||
| import { buildGraph, findDanglingLinks, findOrphans } from "../core/graph.js"; | ||
| import { buildGraph, findDanglingLinks, findOrphans, } from "../core/graph.js"; | ||
| import { loadConfig, resolveTemplatePath } from "../core/config.js"; | ||
@@ -9,3 +9,3 @@ import { validateNoteAgainstSchema } from "../core/schema.js"; | ||
| import { computeVitality } from "../core/vitality.js"; | ||
| export async function runHealth(startDir) { | ||
| export async function runHealth(startDir, linkGraph) { | ||
| const vaultRoot = await findVaultRoot(startDir); | ||
@@ -15,3 +15,3 @@ const paths = getVaultPaths(vaultRoot); | ||
| const allNotes = await listNoteTitles(paths.notes); | ||
| const graph = await buildGraph(paths.notes); | ||
| const graph = linkGraph ?? await buildGraph(paths.notes); | ||
| const orphans = findOrphans(graph, allNotes); | ||
@@ -18,0 +18,0 @@ const dangling = findDanglingLinks(graph, allNotes); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/cli/health.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/cli/health.ts"],"names":[],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"prune.d.ts","sourceRoot":"","sources":["../../src/cli/prune.ts"],"names":[],"mappings":"AAgBA,OAAO,EAGL,KAAK,YAAY,EAElB,MAAM,qBAAqB,CAAC;AAQ7B,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,YAAY,CAAC;IACnB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE;QACJ,KAAK,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAC;QAC3E,KAAK,EAAE,MAAM,CAAC;QACd,kBAAkB,EAAE,MAAM,EAAE,CAAC;QAC7B,UAAU,EAAE,cAAc,EAAE,CAAC;QAC7B,OAAO,EAAE,OAAO,CAAC;QACjB,aAAa,EAAE,MAAM,CAAC;QACtB,QAAQ,EAAE,KAAK,CAAC;YACd,SAAS,EAAE,MAAM,CAAC;YAClB,IAAI,EAAE,MAAM,CAAC;YACb,YAAY,EAAE,MAAM,CAAC;YACrB,UAAU,EAAE,MAAM,EAAE,CAAC;SACtB,CAAC,CAAC;KACJ,CAAC;IACF,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAMD,wBAAsB,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAyJ1E"} | ||
| {"version":3,"file":"prune.d.ts","sourceRoot":"","sources":["../../src/cli/prune.ts"],"names":[],"mappings":"AAgBA,OAAO,EAGL,KAAK,YAAY,EAElB,MAAM,qBAAqB,CAAC;AAQ7B,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,YAAY,CAAC;IACnB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE;QACJ,KAAK,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAC;QAC3E,KAAK,EAAE,MAAM,CAAC;QACd,kBAAkB,EAAE,MAAM,EAAE,CAAC;QAC7B,UAAU,EAAE,cAAc,EAAE,CAAC;QAC7B,OAAO,EAAE,OAAO,CAAC;QACjB,aAAa,EAAE,MAAM,CAAC;QACtB,QAAQ,EAAE,KAAK,CAAC;YACd,SAAS,EAAE,MAAM,CAAC;YAClB,IAAI,EAAE,MAAM,CAAC;YACb,YAAY,EAAE,MAAM,CAAC;YACrB,UAAU,EAAE,MAAM,EAAE,CAAC;SACtB,CAAC,CAAC;KACJ,CAAC;IACF,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAMD,wBAAsB,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CA4J1E"} |
@@ -9,3 +9,3 @@ /** | ||
| import { loadConfig } from "../core/config.js"; | ||
| import { initDB } from "../core/engine.js"; | ||
| import { initDB, removeNoteFromDB } from "../core/engine.js"; | ||
| import { computeGraphMetrics, findBridgeNotes, buildGraphologyGraph, } from "../core/importance.js"; | ||
@@ -102,2 +102,3 @@ import { buildNoteIndex, computeAllVitality } from "../core/noteindex.js"; | ||
| if (!dryRun) { | ||
| const db = initDB(dbPath); | ||
| for (const candidate of candidates) { | ||
@@ -110,2 +111,3 @@ const filePath = path.join(paths.notes, `${candidate.title}.md`); | ||
| await writeFrontmatterFile(filePath, fm, body); | ||
| removeNoteFromDB(db, candidate.title); | ||
| archivedCount++; | ||
@@ -117,2 +119,3 @@ } | ||
| } | ||
| db.close(); | ||
| } | ||
@@ -119,0 +122,0 @@ // 10. Build community hotspots (top 5 by mean vitality) |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"prune.js","sourceRoot":"","sources":["../../src/cli/prune.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"prune.js","sourceRoot":"","sources":["../../src/cli/prune.ts"],"names":[],"mappings":"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"} |
@@ -0,1 +1,2 @@ | ||
| import { type LinkGraph } from "../core/graph.js"; | ||
| export type QueryResult = { | ||
@@ -6,8 +7,8 @@ success: boolean; | ||
| }; | ||
| export declare function runQueryOrphans(startDir: string): Promise<QueryResult>; | ||
| export declare function runQueryDangling(startDir: string): Promise<QueryResult>; | ||
| export declare function runQueryBacklinks(startDir: string, note: string): Promise<QueryResult>; | ||
| export declare function runQueryOrphans(startDir: string, linkGraph?: LinkGraph): Promise<QueryResult>; | ||
| export declare function runQueryDangling(startDir: string, linkGraph?: LinkGraph): Promise<QueryResult>; | ||
| export declare function runQueryBacklinks(startDir: string, note: string, linkGraph?: LinkGraph): Promise<QueryResult>; | ||
| export declare function runQueryCrossProject(startDir: string): Promise<QueryResult>; | ||
| export declare function runQueryImportant(startDir: string, limit?: number): Promise<QueryResult>; | ||
| export declare function runQueryFading(startDir: string, threshold?: number, limit?: number): Promise<QueryResult>; | ||
| export declare function runQueryImportant(startDir: string, limit?: number, linkGraph?: LinkGraph): Promise<QueryResult>; | ||
| export declare function runQueryFading(startDir: string, threshold?: number, limit?: number, linkGraph?: LinkGraph): Promise<QueryResult>; | ||
| //# sourceMappingURL=query.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/cli/query.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAY5E;AAED,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAY7E;AAED,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,WAAW,CAAC,CAWtB;AAED,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CA+BjF;AAED,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,CAAC,CAatB;AAED,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,CAAC,CA+CtB"} | ||
| {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/cli/query.ts"],"names":[],"mappings":"AAGA,OAAO,EAKL,KAAK,SAAS,EACf,MAAM,kBAAkB,CAAC;AAM1B,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,WAAW,CAAC,CAYtB;AAED,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,WAAW,CAAC,CAYtB;AAED,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,WAAW,CAAC,CAWtB;AAED,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CA+BjF;AAED,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,WAAW,CAAC,CAatB;AAED,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,WAAW,CAAC,CA+CtB"} |
+11
-11
| import path from "node:path"; | ||
| import { promises as fs } from "node:fs"; | ||
| import { findVaultRoot, getVaultPaths, listNoteTitles } from "../core/vault.js"; | ||
| import { buildGraph, findBacklinks, findDanglingLinks, findOrphans } from "../core/graph.js"; | ||
| import { buildGraph, findBacklinks, findDanglingLinks, findOrphans, } from "../core/graph.js"; | ||
| import { parseFrontmatter } from "../core/frontmatter.js"; | ||
@@ -9,7 +9,7 @@ import { computeGraphMetrics } from "../core/importance.js"; | ||
| import { computeVitalityFull } from "../core/vitality.js"; | ||
| export async function runQueryOrphans(startDir) { | ||
| export async function runQueryOrphans(startDir, linkGraph) { | ||
| const vaultRoot = await findVaultRoot(startDir); | ||
| const { notes } = getVaultPaths(vaultRoot); | ||
| const allNotes = await listNoteTitles(notes); | ||
| const graph = await buildGraph(notes); | ||
| const graph = linkGraph ?? await buildGraph(notes); | ||
| const orphans = findOrphans(graph, allNotes); | ||
@@ -22,7 +22,7 @@ return { | ||
| } | ||
| export async function runQueryDangling(startDir) { | ||
| export async function runQueryDangling(startDir, linkGraph) { | ||
| const vaultRoot = await findVaultRoot(startDir); | ||
| const { notes } = getVaultPaths(vaultRoot); | ||
| const allNotes = await listNoteTitles(notes); | ||
| const graph = await buildGraph(notes); | ||
| const graph = linkGraph ?? await buildGraph(notes); | ||
| const dangling = findDanglingLinks(graph, allNotes); | ||
@@ -35,6 +35,6 @@ return { | ||
| } | ||
| export async function runQueryBacklinks(startDir, note) { | ||
| export async function runQueryBacklinks(startDir, note, linkGraph) { | ||
| const vaultRoot = await findVaultRoot(startDir); | ||
| const { notes } = getVaultPaths(vaultRoot); | ||
| const graph = await buildGraph(notes); | ||
| const graph = linkGraph ?? await buildGraph(notes); | ||
| const backlinks = findBacklinks(graph, note); | ||
@@ -80,7 +80,7 @@ return { | ||
| } | ||
| export async function runQueryImportant(startDir, limit) { | ||
| export async function runQueryImportant(startDir, limit, linkGraph) { | ||
| const vaultRoot = await findVaultRoot(startDir); | ||
| const { notes } = getVaultPaths(vaultRoot); | ||
| const allNotes = await listNoteTitles(notes); | ||
| const graph = await buildGraph(notes); | ||
| const graph = linkGraph ?? await buildGraph(notes); | ||
| const metrics = computeGraphMetrics(graph); | ||
@@ -94,7 +94,7 @@ const results = rankByImportance(allNotes, metrics.pagerank, limit ?? 10); | ||
| } | ||
| export async function runQueryFading(startDir, threshold, limit) { | ||
| export async function runQueryFading(startDir, threshold, limit, linkGraph) { | ||
| const vaultRoot = await findVaultRoot(startDir); | ||
| const { notes: notesDir } = getVaultPaths(vaultRoot); | ||
| const allNotes = await listNoteTitles(notesDir); | ||
| const graph = await buildGraph(notesDir); | ||
| const graph = linkGraph ?? await buildGraph(notesDir); | ||
| const metrics = computeGraphMetrics(graph); | ||
@@ -101,0 +101,0 @@ const vitalityScores = new Map(); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/cli/query.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/cli/query.ts"],"names":[],"mappings":"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"} |
+44
-3
@@ -0,2 +1,30 @@ | ||
| import type Database from "better-sqlite3"; | ||
| import { type LinkGraph } from "../core/graph.js"; | ||
| import type { ScoredNote } from "../core/ranking.js"; | ||
| import { type WarmthSignal } from "../core/warmth.js"; | ||
| import { type WarmthAuditEvent } from "../core/warmth-audit.js"; | ||
| import { StageTracker } from "../core/stage-tracker.js"; | ||
| type WarmthRankShift = { | ||
| title: string; | ||
| beforeRank: number; | ||
| afterRank: number; | ||
| movement: number; | ||
| warmth: number; | ||
| }; | ||
| type WarmthDebug = { | ||
| enabled: boolean; | ||
| weight: number; | ||
| candidates: number; | ||
| promoted: WarmthRankShift[]; | ||
| demoted: WarmthRankShift[]; | ||
| }; | ||
| type WarmthQueryResult = { | ||
| success: boolean; | ||
| data: { | ||
| context: string; | ||
| results: WarmthSignal[]; | ||
| count: number; | ||
| }; | ||
| warnings: string[]; | ||
| }; | ||
| export type SearchResult = { | ||
@@ -9,2 +37,3 @@ success: boolean; | ||
| count: number; | ||
| warmth?: WarmthDebug; | ||
| }; | ||
@@ -16,9 +45,21 @@ warnings: string[]; | ||
| * composite vector search + BM25 keyword + personalized PageRank, | ||
| * fused via score-weighted RRF, with exploration injection. | ||
| * fused via score-weighted RRF, with Phase B Q-value reranking, | ||
| * co-occurrence PPR injection, and stage meta-learning. | ||
| */ | ||
| export declare function runQueryRanked(startDir: string, query: string, limit?: number, excludeArchived?: boolean): Promise<SearchResult>; | ||
| export declare function runQueryRanked(startDir: string, query: string, limit?: number, excludeArchived?: boolean, linkGraph?: LinkGraph, externalDb?: Database.Database, sessionId?: string, stageTracker?: StageTracker): Promise<SearchResult>; | ||
| export declare function runQueryWarmth(startDir: string, context: string, limit?: number, linkGraph?: LinkGraph): Promise<WarmthQueryResult>; | ||
| export declare function runQueryWarmthAudit(startDir: string, query?: string, limit?: number): Promise<{ | ||
| success: boolean; | ||
| data: { | ||
| events: WarmthAuditEvent[]; | ||
| count: number; | ||
| query?: string; | ||
| }; | ||
| warnings: string[]; | ||
| }>; | ||
| /** | ||
| * Composite vector search only — no BM25, no graph signal, no RRF fusion. | ||
| */ | ||
| export declare function runQuerySimilar(startDir: string, query: string, limit?: number, excludeArchived?: boolean): Promise<SearchResult>; | ||
| export declare function runQuerySimilar(startDir: string, query: string, limit?: number, excludeArchived?: boolean, linkGraph?: LinkGraph): Promise<SearchResult>; | ||
| export {}; | ||
| //# sourceMappingURL=search.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/cli/search.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIrD,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,UAAU,EAAE,CAAC;QACtB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM,EACd,eAAe,CAAC,EAAE,OAAO,GACxB,OAAO,CAAC,YAAY,CAAC,CAoKvB;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM,EACd,eAAe,CAAC,EAAE,OAAO,GACxB,OAAO,CAAC,YAAY,CAAC,CA0FvB"} | ||
| {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/cli/search.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAiB9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAKL,KAAK,gBAAgB,EACtB,MAAM,yBAAyB,CAAC;AAcjC,OAAO,EAAE,YAAY,EAAyB,MAAM,0BAA0B,CAAC;AAO/E,KAAK,eAAe,GAAG;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B,CAAC;AAEF,KAAK,iBAAiB,GAAG;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,YAAY,EAAE,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,UAAU,EAAE,CAAC;QACtB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,WAAW,CAAC;KACtB,CAAC;IACF,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAmFF;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM,EACd,eAAe,CAAC,EAAE,OAAO,EACzB,SAAS,CAAC,EAAE,SAAS,EACrB,UAAU,CAAC,EAAE,QAAQ,CAAC,QAAQ,EAC9B,SAAS,CAAC,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,YAAY,CAAC,CAwXvB;AAED,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,iBAAiB,CAAC,CAsD5B;AAED,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC;IACT,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE;QAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpE,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC,CAkBD;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM,EACd,eAAe,CAAC,EAAE,OAAO,EACzB,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,YAAY,CAAC,CA0FvB"} |
+361
-49
@@ -10,12 +10,83 @@ import path from "node:path"; | ||
| import { computeGraphMetrics, personalizedPageRank, buildGraphologyGraph, } from "../core/importance.js"; | ||
| import { fuseScoreWeightedRRF } from "../core/fusion.js"; | ||
| import { fuseScoreWeightedRRF, normalizeSignalWeights } from "../core/fusion.js"; | ||
| import { injectExploration, logAccess } from "../core/tracking.js"; | ||
| import { buildNoteIndex, computeAllVitality } from "../core/noteindex.js"; | ||
| import { loadBoosts, applyActivationBoosts, computeActivationSpread } from "../core/activation.js"; | ||
| import { WarmthService } from "../core/warmth.js"; | ||
| import { isWarmthAuditEnabled, logWarmthAudit, queryWarmthAudit, } from "../core/warmth-audit.js"; | ||
| // Retrieval intelligence layers | ||
| import { phaseB } from "../core/rerank.js"; | ||
| import { personalizedPageRankCombined } from "../core/ppr.js"; | ||
| import { loadStage, getStageDecision, extractQueryFeatures, STAGE_CONFIGS, } from "../core/stage-learner.js"; | ||
| import { StageTracker, measureCurrentQuality } from "../core/stage-tracker.js"; | ||
| import { applyGravityDampening, applyHubDampening, applyResolutionBoost, } from "../core/dampening.js"; | ||
| const warmthService = new WarmthService(); | ||
| function buildWarmthAuditEntries(results, limit) { | ||
| const finalResults = results.slice(0, limit); | ||
| const baseResults = [...results] | ||
| .sort((a, b) => (b.signals.rrf_base ?? 0) - (a.signals.rrf_base ?? 0)) | ||
| .slice(0, limit); | ||
| const finalRanks = new Map(finalResults.map((note, index) => [note.title, index + 1])); | ||
| const baseRanks = new Map(baseResults.map((note, index) => [note.title, index + 1])); | ||
| const noteMap = new Map(results.map((note) => [note.title, note])); | ||
| const toEntry = (title) => { | ||
| const note = noteMap.get(title); | ||
| const finalRank = finalRanks.get(title) ?? null; | ||
| const baseRank = baseRanks.get(title) ?? null; | ||
| return { | ||
| title, | ||
| finalRank, | ||
| baseRank, | ||
| finalScore: note.signals.rrf ?? note.score, | ||
| baseScore: note.signals.rrf_base ?? note.score, | ||
| warmthScore: note.signals.warmth ?? 0, | ||
| movement: finalRank !== null && baseRank !== null | ||
| ? baseRank - finalRank | ||
| : finalRank !== null | ||
| ? limit + 1 - finalRank | ||
| : baseRank !== null | ||
| ? -(limit + 1 - baseRank) | ||
| : 0, | ||
| }; | ||
| }; | ||
| return { | ||
| withWarmth: finalResults.map((note) => toEntry(note.title)), | ||
| withoutWarmth: baseResults.map((note) => toEntry(note.title)), | ||
| }; | ||
| } | ||
| function summarizeWarmthInfluence(results, enabled, weight, candidates) { | ||
| const finalResults = [...results]; | ||
| const baseResults = [...results].sort((a, b) => (b.signals.rrf_base ?? 0) - (a.signals.rrf_base ?? 0)); | ||
| const baseRanks = new Map(baseResults.map((note, index) => [note.title, index + 1])); | ||
| const finalRanks = new Map(finalResults.map((note, index) => [note.title, index + 1])); | ||
| const shifts = finalResults | ||
| .map((note) => { | ||
| const beforeRank = baseRanks.get(note.title) ?? finalResults.length + 1; | ||
| const afterRank = finalRanks.get(note.title) ?? finalResults.length + 1; | ||
| return { | ||
| title: note.title, | ||
| beforeRank, | ||
| afterRank, | ||
| movement: beforeRank - afterRank, | ||
| warmth: note.signals.warmth ?? 0, | ||
| }; | ||
| }) | ||
| .filter((note) => note.movement !== 0); | ||
| const promoted = shifts | ||
| .filter((note) => note.movement > 0) | ||
| .sort((a, b) => b.movement - a.movement || b.warmth - a.warmth) | ||
| .slice(0, 5); | ||
| const demoted = shifts | ||
| .filter((note) => note.movement < 0) | ||
| .sort((a, b) => a.movement - b.movement || b.warmth - a.warmth) | ||
| .slice(0, 5); | ||
| return { enabled, weight, candidates, promoted, demoted }; | ||
| } | ||
| /** | ||
| * Full ranked retrieval pipeline: | ||
| * composite vector search + BM25 keyword + personalized PageRank, | ||
| * fused via score-weighted RRF, with exploration injection. | ||
| * fused via score-weighted RRF, with Phase B Q-value reranking, | ||
| * co-occurrence PPR injection, and stage meta-learning. | ||
| */ | ||
| export async function runQueryRanked(startDir, query, limit, excludeArchived) { | ||
| export async function runQueryRanked(startDir, query, limit, excludeArchived, linkGraph, externalDb, sessionId, stageTracker) { | ||
| const warnings = []; | ||
@@ -29,36 +100,74 @@ // 1. Vault setup | ||
| // 2. Build link graph | ||
| const linkGraph = await buildGraph(paths.notes); | ||
| const graph = linkGraph ?? await buildGraph(paths.notes); | ||
| // 3. Graph metrics (PageRank, communities, bridges) | ||
| const allTitles = await listNoteTitles(paths.notes); | ||
| const noteIndex = await buildNoteIndex(paths.notes, allTitles); | ||
| const graphMetrics = computeGraphMetrics(linkGraph, noteIndex); | ||
| // 4. Ensure embedding index exists and open DB (single connection for entire function) | ||
| const graphMetrics = computeGraphMetrics(graph, noteIndex); | ||
| // 4. Ensure embedding index exists and open DB | ||
| const dbPath = path.resolve(vaultRoot, config.engine.db_path); | ||
| let dbExists = true; | ||
| try { | ||
| await fs.access(dbPath); | ||
| const ownDb = !externalDb; // track if we manage the DB lifecycle | ||
| let mainDb; | ||
| if (externalDb) { | ||
| mainDb = externalDb; | ||
| } | ||
| catch { | ||
| dbExists = false; | ||
| else { | ||
| let dbExists = true; | ||
| try { | ||
| await fs.access(dbPath); | ||
| } | ||
| catch { | ||
| dbExists = false; | ||
| } | ||
| if (!dbExists) { | ||
| warnings.push("Embedding index not found — building now (this may take a moment)"); | ||
| await buildIndex(vaultRoot, config.engine); | ||
| } | ||
| const db = initDB(dbPath); | ||
| const rowCount = db.prepare("SELECT COUNT(*) as cnt FROM embeddings").get().cnt; | ||
| if (rowCount === 0) { | ||
| db.close(); | ||
| warnings.push("Embedding index is empty — building now"); | ||
| await buildIndex(vaultRoot, config.engine); | ||
| mainDb = initDB(dbPath); | ||
| } | ||
| else { | ||
| mainDb = db; | ||
| } | ||
| } | ||
| if (!dbExists) { | ||
| warnings.push("Embedding index not found — building now (this may take a moment)"); | ||
| await buildIndex(vaultRoot, config.engine); | ||
| } | ||
| const db = initDB(dbPath); | ||
| const rowCount = db.prepare("SELECT COUNT(*) as cnt FROM embeddings").get().cnt; | ||
| if (rowCount === 0) { | ||
| db.close(); | ||
| warnings.push("Embedding index is empty — building now"); | ||
| await buildIndex(vaultRoot, config.engine); | ||
| } | ||
| // Re-open (or keep open) — single DB handle for reads + writes | ||
| const mainDb = rowCount === 0 ? initDB(dbPath) : db; | ||
| const storedVectors = loadVectors(mainDb); | ||
| // 5. Load activation boosts and compute vitality | ||
| const boostScores = config.activation?.enabled !== false ? loadBoosts(mainDb) : undefined; | ||
| const vitalityScores = await computeAllVitality(paths.notes, allTitles, linkGraph, graphMetrics.bridges, config, boostScores); | ||
| const vitalityScores = await computeAllVitality(paths.notes, allTitles, graph, graphMetrics.bridges, config, boostScores); | ||
| // 6. Classify query intent | ||
| const classified = classifyIntent(query, allTitles); | ||
| // 8. Signal 1: composite vector search | ||
| // Stage meta-learning: load stages and prepare features if DB available | ||
| const useIntelligence = !!externalDb && !!sessionId; | ||
| const tracker = stageTracker ?? (useIntelligence ? new StageTracker() : undefined); | ||
| const stages = useIntelligence | ||
| ? STAGE_CONFIGS.map((c) => loadStage(mainDb, c)) | ||
| : undefined; | ||
| const queryFeatures = useIntelligence | ||
| ? extractQueryFeatures(query, 0, allTitles.length, 0) | ||
| : undefined; | ||
| let pipelineElapsed = 0; | ||
| // Helper: check if a stage should run | ||
| const shouldRun = (stageId) => { | ||
| if (!stages || !queryFeatures) | ||
| return "run"; | ||
| const stage = stages.find((s) => s.config.id === stageId); | ||
| if (!stage) | ||
| return "run"; | ||
| return getStageDecision(stage, queryFeatures, pipelineElapsed, stage.sampleCount); | ||
| }; | ||
| // Helper: wrap a stage with quality tracking | ||
| const trackStage = (stageId, candidates) => { | ||
| if (tracker) | ||
| tracker.before(stageId, measureCurrentQuality(candidates)); | ||
| }; | ||
| const trackStageAfter = (stageId, candidates) => { | ||
| if (tracker) | ||
| tracker.after(stageId, measureCurrentQuality(candidates)); | ||
| }; | ||
| // 8. Signal 1: composite vector search (essential — always runs) | ||
| const t0 = performance.now(); | ||
| const compositeResults = await searchComposite({ | ||
@@ -73,25 +182,153 @@ queryText: query, | ||
| }); | ||
| pipelineElapsed += performance.now() - t0; | ||
| // 9. Signal 2: BM25 keyword search | ||
| const bm25Index = await buildBM25IndexFromVault(vaultRoot, config.bm25); | ||
| const keywordResults = searchBM25(query, bm25Index, config.bm25, candidateLimit); | ||
| let keywordResults = []; | ||
| const bm25Decision = shouldRun("bm25"); | ||
| if (bm25Decision !== "abstain" && bm25Decision !== "skip") { | ||
| trackStage("bm25", compositeResults); | ||
| const t1 = performance.now(); | ||
| const bm25Index = await buildBM25IndexFromVault(vaultRoot, config.bm25); | ||
| keywordResults = searchBM25(query, bm25Index, config.bm25, candidateLimit); | ||
| pipelineElapsed += performance.now() - t1; | ||
| trackStageAfter("bm25", [...compositeResults, ...keywordResults]); | ||
| } | ||
| // 10. Signal 3: personalized PageRank from entity seeds | ||
| const gGraph = buildGraphologyGraph(linkGraph); | ||
| const pprScores = personalizedPageRank(gGraph, classified.entities, config.graph.pagerank_alpha); | ||
| const graphResults = Array.from(pprScores.entries()) | ||
| .map(([title, score]) => ({ | ||
| title, | ||
| score, | ||
| signals: { graph: score }, | ||
| })) | ||
| .sort((a, b) => b.score - a.score) | ||
| .slice(0, candidateLimit); | ||
| // 11. Fuse with score-weighted RRF | ||
| const fused = fuseScoreWeightedRRF({ composite: compositeResults, keyword: keywordResults, graph: graphResults }, config.retrieval); | ||
| let graphResults = []; | ||
| const pagerankDecision = shouldRun("pagerank"); | ||
| if (pagerankDecision !== "abstain" && pagerankDecision !== "skip") { | ||
| trackStage("pagerank", compositeResults); | ||
| const t2 = performance.now(); | ||
| const gGraph = buildGraphologyGraph(graph); | ||
| const pprScores = personalizedPageRank(gGraph, classified.entities, config.graph.pagerank_alpha); | ||
| graphResults = Array.from(pprScores.entries()) | ||
| .map(([title, score]) => ({ | ||
| title, | ||
| score, | ||
| signals: { graph: score }, | ||
| })) | ||
| .sort((a, b) => b.score - a.score) | ||
| .slice(0, candidateLimit); | ||
| pipelineElapsed += performance.now() - t2; | ||
| trackStageAfter("pagerank", graphResults); | ||
| } | ||
| // Signal 4: warmth | ||
| let warmthResults = []; | ||
| const warmthDecision = shouldRun("warmth"); | ||
| if (warmthDecision !== "abstain" && warmthDecision !== "skip") { | ||
| trackStage("warmth", compositeResults); | ||
| const t3 = performance.now(); | ||
| const warmthSignals = await warmthService.scan(query, storedVectors, graph, config.engine, config.warmth, { limit: Math.max(config.warmth.max_results, candidateLimit) }); | ||
| warmthResults = warmthSignals | ||
| .map((signal) => ({ | ||
| title: signal.title, | ||
| score: signal.score, | ||
| signals: { warmth: signal.score }, | ||
| metadata: { warmthSource: signal.source }, | ||
| })) | ||
| .sort((a, b) => b.score - a.score) | ||
| .slice(0, candidateLimit); | ||
| pipelineElapsed += performance.now() - t3; | ||
| trackStageAfter("warmth", warmthResults); | ||
| } | ||
| // Layer 2: Co-occurrence PPR candidate injection (if DB available and table exists) | ||
| let coocPprResults = []; | ||
| const coocDecision = shouldRun("cooccurrence_ppr"); | ||
| if (useIntelligence && | ||
| coocDecision !== "abstain" && | ||
| coocDecision !== "skip") { | ||
| try { | ||
| trackStage("cooccurrence_ppr", compositeResults); | ||
| const t4 = performance.now(); | ||
| // Build seed map from top-5 composite results | ||
| const pprSeeds = new Map(compositeResults.slice(0, 5).map((r) => [r.title, r.score])); | ||
| // Build wiki-link map for PPR | ||
| const wikiLinkMap = new Map(); | ||
| for (const [src, targets] of graph.outgoing) { | ||
| wikiLinkMap.set(src, [...targets]); | ||
| } | ||
| const pprResults = personalizedPageRankCombined(mainDb, pprSeeds, wikiLinkMap, candidateLimit); | ||
| coocPprResults = pprResults.map((r) => ({ | ||
| title: r.noteId, | ||
| score: r.score, | ||
| signals: { graph: r.score }, | ||
| metadata: { source: "cooccurrence_ppr" }, | ||
| })); | ||
| pipelineElapsed += performance.now() - t4; | ||
| trackStageAfter("cooccurrence_ppr", coocPprResults); | ||
| } | ||
| catch { | ||
| // co_occurrence table may not exist yet — skip silently | ||
| } | ||
| } | ||
| // Merge co-occurrence PPR results into graph signal | ||
| if (coocPprResults.length > 0) { | ||
| const existingGraphTitles = new Set(graphResults.map((r) => r.title)); | ||
| for (const r of coocPprResults) { | ||
| if (!existingGraphTitles.has(r.title)) { | ||
| graphResults.push(r); | ||
| } | ||
| } | ||
| graphResults.sort((a, b) => b.score - a.score); | ||
| } | ||
| // 11. Fuse with score-weighted RRF (essential — always runs) | ||
| trackStage("rrf_fusion", compositeResults); | ||
| const fused = fuseScoreWeightedRRF({ | ||
| composite: compositeResults, | ||
| keyword: keywordResults, | ||
| graph: graphResults, | ||
| warmth: warmthResults, | ||
| }, config.retrieval); | ||
| trackStageAfter("rrf_fusion", fused); | ||
| // Drift dampening stages (post-fusion, pre-rerank) | ||
| let dampened = fused; | ||
| // Gravity dampening: halve score for zero-overlap semantic ghosts | ||
| const gravityDecision = shouldRun("gravity_dampening"); | ||
| if (gravityDecision !== "abstain" && gravityDecision !== "skip") { | ||
| trackStage("gravity_dampening", dampened); | ||
| const tg = performance.now(); | ||
| const titleMap = new Map(allTitles.map((t) => [t, t])); | ||
| dampened = applyGravityDampening(dampened, query, titleMap); | ||
| pipelineElapsed += performance.now() - tg; | ||
| trackStageAfter("gravity_dampening", dampened); | ||
| } | ||
| // Hub dampening: penalize top 10% by edge count | ||
| const hubDecision = shouldRun("hub_dampening"); | ||
| if (hubDecision !== "abstain" && hubDecision !== "skip") { | ||
| trackStage("hub_dampening", dampened); | ||
| const th = performance.now(); | ||
| dampened = applyHubDampening(dampened, graph, classified.entities); | ||
| pipelineElapsed += performance.now() - th; | ||
| trackStageAfter("hub_dampening", dampened); | ||
| } | ||
| // Resolution boost: 1.25x for decision/learning notes | ||
| const noteTypes = new Map(); | ||
| for (const [title, fm] of noteIndex.frontmatter) { | ||
| if (typeof fm.type === "string") | ||
| noteTypes.set(title, fm.type); | ||
| } | ||
| dampened = applyResolutionBoost(dampened, noteTypes); | ||
| // Re-sort after dampening | ||
| dampened.sort((a, b) => b.score - a.score); | ||
| // Layer 1: Phase B Q-value reranking | ||
| let ranked = dampened; | ||
| const qRerankDecision = shouldRun("q_reranking"); | ||
| if (useIntelligence && | ||
| sessionId && | ||
| qRerankDecision !== "abstain" && | ||
| qRerankDecision !== "skip") { | ||
| trackStage("q_reranking", dampened); | ||
| const t5 = performance.now(); | ||
| ranked = phaseB(mainDb, dampened, query, classified.intent, sessionId); | ||
| pipelineElapsed += performance.now() - t5; | ||
| trackStageAfter("q_reranking", ranked); | ||
| } | ||
| // 12. Filter archived before trimming — ensures full result count | ||
| const filtered = excludeArchived !== false | ||
| ? fused.filter(note => { | ||
| ? ranked.filter(note => { | ||
| const fm = noteIndex.frontmatter.get(note.title); | ||
| return fm?.status !== 'archived'; | ||
| }) | ||
| : fused; | ||
| : ranked; | ||
| const warmthDebug = summarizeWarmthInfluence(filtered, config.warmth.enabled !== false, normalizeSignalWeights(config.retrieval.signal_weights).warmth, warmthResults.length); | ||
| const auditEntries = buildWarmthAuditEntries(filtered, resultLimit); | ||
| // 13. Trim to limit, then inject exploration | ||
@@ -113,2 +350,16 @@ const trimmed = filtered.slice(0, resultLimit); | ||
| }, config.ips); | ||
| if (isWarmthAuditEnabled()) { | ||
| const auditEvent = { | ||
| timestamp: new Date().toISOString(), | ||
| query, | ||
| intent: classified.intent, | ||
| limit: resultLimit, | ||
| effectiveWarmthWeight: normalizeSignalWeights(config.retrieval.signal_weights).warmth, | ||
| withWarmth: auditEntries.withWarmth, | ||
| withoutWarmth: auditEntries.withoutWarmth, | ||
| promoted: auditEntries.withWarmth.filter((entry) => entry.movement > 0).slice(0, 10), | ||
| demoted: auditEntries.withWarmth.filter((entry) => entry.movement < 0).slice(0, 10), | ||
| }; | ||
| await logWarmthAudit(vaultRoot, auditEvent); | ||
| } | ||
| // 15. Spreading activation: propagate boosts to neighbors of top results | ||
@@ -118,3 +369,3 @@ if (config.activation?.enabled !== false) { | ||
| for (const result of withExploration.slice(0, 3)) { | ||
| const spread = computeActivationSpread(result.title, result.score, linkGraph, config.activation); | ||
| const spread = computeActivationSpread(result.title, result.score, graph, config.activation); | ||
| for (const [title, boost] of spread.propagated) { | ||
@@ -128,4 +379,6 @@ allBoosts.set(title, (allBoosts.get(title) ?? 0) + boost); | ||
| } | ||
| // 16. Close DB | ||
| mainDb.close(); | ||
| // 16. Close DB only if we opened it ourselves | ||
| if (ownDb) { | ||
| mainDb.close(); | ||
| } | ||
| return { | ||
@@ -138,2 +391,3 @@ success: true, | ||
| count: withExploration.length, | ||
| warmth: config.warmth.shadow_compare_enabled ? warmthDebug : undefined, | ||
| }, | ||
@@ -143,6 +397,64 @@ warnings, | ||
| } | ||
| export async function runQueryWarmth(startDir, context, limit, linkGraph) { | ||
| const warnings = []; | ||
| const vaultRoot = await findVaultRoot(startDir); | ||
| const paths = getVaultPaths(vaultRoot); | ||
| const config = await loadConfig(paths.config); | ||
| const resultLimit = limit ?? config.warmth.max_results; | ||
| const graph = linkGraph ?? await buildGraph(paths.notes); | ||
| const dbPath = path.resolve(vaultRoot, config.engine.db_path); | ||
| let dbExists = true; | ||
| try { | ||
| await fs.access(dbPath); | ||
| } | ||
| catch { | ||
| dbExists = false; | ||
| } | ||
| if (!dbExists) { | ||
| warnings.push("Embedding index not found — building now (this may take a moment)"); | ||
| await buildIndex(vaultRoot, config.engine); | ||
| } | ||
| const db = initDB(dbPath); | ||
| const rowCount = db.prepare("SELECT COUNT(*) as cnt FROM embeddings").get().cnt; | ||
| if (rowCount === 0) { | ||
| db.close(); | ||
| warnings.push("Embedding index is empty — building now"); | ||
| await buildIndex(vaultRoot, config.engine); | ||
| } | ||
| const mainDb = rowCount === 0 ? initDB(dbPath) : db; | ||
| const storedVectors = loadVectors(mainDb); | ||
| const results = await warmthService.scan(context, storedVectors, graph, config.engine, config.warmth, { limit: resultLimit }); | ||
| mainDb.close(); | ||
| return { | ||
| success: true, | ||
| data: { | ||
| context, | ||
| results, | ||
| count: results.length, | ||
| }, | ||
| warnings, | ||
| }; | ||
| } | ||
| export async function runQueryWarmthAudit(startDir, query, limit) { | ||
| const vaultRoot = await findVaultRoot(startDir); | ||
| const events = await queryWarmthAudit(vaultRoot, { | ||
| query, | ||
| limit, | ||
| }); | ||
| return { | ||
| success: true, | ||
| data: { | ||
| events, | ||
| count: events.length, | ||
| query, | ||
| }, | ||
| warnings: isWarmthAuditEnabled() | ||
| ? [] | ||
| : ["Warmth audit logging is currently off. Set ORI_WARMTH_AUDIT=1 before running ranked queries to collect diffs."], | ||
| }; | ||
| } | ||
| /** | ||
| * Composite vector search only — no BM25, no graph signal, no RRF fusion. | ||
| */ | ||
| export async function runQuerySimilar(startDir, query, limit, excludeArchived) { | ||
| export async function runQuerySimilar(startDir, query, limit, excludeArchived, linkGraph) { | ||
| const warnings = []; | ||
@@ -155,7 +467,7 @@ // 1. Vault setup | ||
| // 2. Build graph + metrics + vitality | ||
| const linkGraph = await buildGraph(paths.notes); | ||
| const graph = linkGraph ?? await buildGraph(paths.notes); | ||
| const allTitles = await listNoteTitles(paths.notes); | ||
| const noteIndex = await buildNoteIndex(paths.notes, allTitles); | ||
| const graphMetrics = computeGraphMetrics(linkGraph, noteIndex); | ||
| const vitalityScores = await computeAllVitality(paths.notes, allTitles, linkGraph, graphMetrics.bridges, config); | ||
| const graphMetrics = computeGraphMetrics(graph, noteIndex); | ||
| const vitalityScores = await computeAllVitality(paths.notes, allTitles, graph, graphMetrics.bridges, config); | ||
| // 3. Classify intent | ||
@@ -162,0 +474,0 @@ const classified = classifyIntent(query, allTitles); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/cli/search.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EACL,UAAU,EACV,eAAe,EACf,WAAW,EACX,MAAM,GACP,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,uBAAuB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAanG;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,QAAgB,EAChB,KAAa,EACb,KAAc,EACd,eAAyB;IAEzB,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,iBAAiB;IACjB,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAG,KAAK,IAAI,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC;IAC5D,MAAM,cAAc,GAAG,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;IAE3E,sBAAsB;IACtB,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAEhD,oDAAoD;IACpD,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC/D,MAAM,YAAY,GAAG,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAE/D,uFAAuF;IACvF,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9D,IAAI,QAAQ,GAAG,IAAI,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ,GAAG,KAAK,CAAC;IACnB,CAAC;IAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,QAAQ,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;QACnF,MAAM,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC1B,MAAM,QAAQ,GACZ,EAAE,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC,GAAG,EACzD,CAAC,GAAG,CAAC;IAEN,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;QACnB,EAAE,CAAC,KAAK,EAAE,CAAC;QACX,QAAQ,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;QACzD,MAAM,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,+DAA+D;IAC/D,MAAM,MAAM,GAAG,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpD,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAE1C,iDAAiD;IACjD,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,EAAE,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1F,MAAM,cAAc,GAAG,MAAM,kBAAkB,CAC7C,KAAK,CAAC,KAAK,EACX,SAAS,EACT,SAAS,EACT,YAAY,CAAC,OAAO,EACpB,MAAM,EACN,WAAW,CACZ,CAAC;IAEF,2BAA2B;IAC3B,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAEpD,uCAAuC;IACvC,MAAM,gBAAgB,GAAG,MAAM,eAAe,CAAC;QAC7C,SAAS,EAAE,KAAK;QAChB,MAAM,EAAE,UAAU;QAClB,aAAa;QACb,YAAY;QACZ,cAAc;QACd,KAAK,EAAE,cAAc;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC,CAAC;IAEH,mCAAmC;IACnC,MAAM,SAAS,GAAG,MAAM,uBAAuB,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACxE,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAEjF,wDAAwD;IACxD,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,oBAAoB,CACpC,MAAM,EACN,UAAU,CAAC,QAAQ,EACnB,MAAM,CAAC,KAAK,CAAC,cAAc,CAC5B,CAAC;IACF,MAAM,YAAY,GAAiB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;SAC/D,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACxB,KAAK;QACL,KAAK;QACL,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;KAC1B,CAAC,CAAC;SACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;SACjC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;IAE5B,mCAAmC;IACnC,MAAM,KAAK,GAAG,oBAAoB,CAChC,EAAE,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE,EAC7E,MAAM,CAAC,SAAS,CACjB,CAAC;IAEF,kEAAkE;IAClE,MAAM,QAAQ,GAAG,eAAe,KAAK,KAAK;QACxC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YAClB,MAAM,EAAE,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjD,OAAO,EAAE,EAAE,MAAM,KAAK,UAAU,CAAC;QACnC,CAAC,CAAC;QACJ,CAAC,CAAC,KAAK,CAAC;IAEV,6CAA6C;IAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IAC/C,MAAM,eAAe,GAAG,iBAAiB,CACvC,OAAO,EACP,SAAS,EACT,MAAM,CAAC,SAAS,CAAC,kBAAkB,CACpC,CAAC;IAEF,uBAAuB;IACvB,MAAM,SAAS,CACb,SAAS,EACT;QACE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,KAAK;QACL,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,OAAO,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACtC,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,UAAU,EAAE,CAAC,EAAE,+BAA+B;YAC9C,cAAc,EAAE,CAAC,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI;SACpD,CAAC,CAAC;KACJ,EACD,MAAM,CAAC,GAAG,CACX,CAAC;IAEF,yEAAyE;IACzE,IAAI,MAAM,CAAC,UAAU,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC5C,KAAK,MAAM,MAAM,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YACjD,MAAM,MAAM,GAAG,uBAAuB,CACpC,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,KAAK,EACZ,SAAS,EACT,MAAM,CAAC,UAAU,CAClB,CAAC;YACF,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBAC/C,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QACD,IAAI,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACvB,qBAAqB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,eAAe;IACf,MAAM,CAAC,KAAK,EAAE,CAAC;IAEf,OAAO;QACL,OAAO,EAAE,IAAI;QACb,IAAI,EAAE;YACJ,KAAK;YACL,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,OAAO,EAAE,eAAe;YACxB,KAAK,EAAE,eAAe,CAAC,MAAM;SAC9B;QACD,QAAQ;KACT,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,QAAgB,EAChB,KAAa,EACb,KAAc,EACd,eAAyB;IAEzB,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,iBAAiB;IACjB,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAG,KAAK,IAAI,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC;IAE5D,sCAAsC;IACtC,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC/D,MAAM,YAAY,GAAG,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC/D,MAAM,cAAc,GAAG,MAAM,kBAAkB,CAC7C,KAAK,CAAC,KAAK,EACX,SAAS,EACT,SAAS,EACT,YAAY,CAAC,OAAO,EACpB,MAAM,CACP,CAAC;IAEF,qBAAqB;IACrB,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAEpD,yBAAyB;IACzB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9D,IAAI,QAAQ,GAAG,IAAI,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ,GAAG,KAAK,CAAC;IACnB,CAAC;IAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,QAAQ,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;QACnF,MAAM,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC1B,MAAM,QAAQ,GACZ,EAAE,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC,GAAG,EACzD,CAAC,GAAG,CAAC;IAEN,IAAI,OAA+D,CAAC;IACpE,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;QACnB,EAAE,CAAC,KAAK,EAAE,CAAC;QACX,QAAQ,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;QACzD,MAAM,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAC3B,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAC3B,GAAG,CAAC,KAAK,EAAE,CAAC;IACd,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;QAC1B,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;IAED,0EAA0E;IAC1E,MAAM,cAAc,GAAG,eAAe,KAAK,KAAK;QAC9C,CAAC,CAAC,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB;QACrD,CAAC,CAAC,WAAW,CAAC;IAChB,MAAM,gBAAgB,GAAG,MAAM,eAAe,CAAC;QAC7C,SAAS,EAAE,KAAK;QAChB,MAAM,EAAE,UAAU;QAClB,aAAa,EAAE,OAAO;QACtB,YAAY;QACZ,cAAc;QACd,KAAK,EAAE,cAAc;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC,CAAC;IAEH,qCAAqC;IACrC,MAAM,QAAQ,GAAG,eAAe,KAAK,KAAK;QACxC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YAC7B,MAAM,EAAE,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjD,OAAO,EAAE,EAAE,MAAM,KAAK,UAAU,CAAC;QACnC,CAAC,CAAC;QACJ,CAAC,CAAC,gBAAgB,CAAC;IACrB,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IAE/C,OAAO;QACL,OAAO,EAAE,IAAI;QACb,IAAI,EAAE;YACJ,KAAK;YACL,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,OAAO;YACP,KAAK,EAAE,OAAO,CAAC,MAAM;SACtB;QACD,QAAQ;KACT,CAAC;AACJ,CAAC"} | ||
| {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/cli/search.ts"],"names":[],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/cli/serve.ts"],"names":[],"mappings":"AA4HA,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,iBA0XzE"} | ||
| {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/cli/serve.ts"],"names":[],"mappings":"AAoJA,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,iBAwlBzE"} |
+197
-16
@@ -6,2 +6,3 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; | ||
| import path from "node:path"; | ||
| import crypto from "node:crypto"; | ||
| import { runStatus } from "./status.js"; | ||
@@ -13,3 +14,3 @@ import { runQueryOrphans, runQueryDangling, runQueryBacklinks, runQueryCrossProject, runQueryImportant, runQueryFading, } from "./query.js"; | ||
| import { runPromote } from "./promote.js"; | ||
| import { runQueryRanked, runQuerySimilar } from "./search.js"; | ||
| import { runQueryRanked, runQuerySimilar, runQueryWarmth } from "./search.js"; | ||
| import { runIndexBuild } from "./indexcmd.js"; | ||
@@ -19,3 +20,13 @@ import { runPrune } from "./prune.js"; | ||
| import { runInit } from "./init.js"; | ||
| import { GraphCache } from "../core/graph.js"; | ||
| import { initDB } from "../core/engine.js"; | ||
| // Retrieval intelligence | ||
| import { initQValueTables, batchUpdateQ } from "../core/qvalue.js"; | ||
| import { SessionRewardAccumulator } from "../core/reward.js"; | ||
| import { initCoOccurrenceTables, extractCoOccurrencePairs, recomputeAllNPMI, runHomeostasis, bootstrapFromWikiLinks, } from "../core/cooccurrence.js"; | ||
| import { initStageTables, loadStage, saveStage, computeStageReward, STAGE_CONFIGS, } from "../core/stage-learner.js"; | ||
| import { StageTracker } from "../core/stage-tracker.js"; | ||
| import { checkForUpdate } from "../core/update-check.js"; | ||
| let vaultDir; | ||
| const graphCache = new GraphCache(); | ||
| function textResult(data) { | ||
@@ -123,3 +134,79 @@ return { content: [{ type: "text", text: JSON.stringify(data) }] }; | ||
| const instructions = await buildInstructions(paths, autoCreated); | ||
| const server = new McpServer({ name: "ori-memory", version: "0.3.3" }, { instructions }); | ||
| // ─── Retrieval Intelligence: Session lifecycle ─── | ||
| const sessionId = crypto.randomUUID(); | ||
| const rewardAccumulator = new SessionRewardAccumulator(sessionId); | ||
| const sessionStageTracker = new StageTracker(); | ||
| let sessionQueryFeatures = null; | ||
| // Open persistent DB for intelligence layers | ||
| const intelligenceDbPath = path.resolve(vaultDir, ".ori", "embeddings.db"); | ||
| let intelligenceDb = null; | ||
| try { | ||
| await fs.access(intelligenceDbPath); | ||
| intelligenceDb = initDB(intelligenceDbPath); | ||
| initQValueTables(intelligenceDb); | ||
| initCoOccurrenceTables(intelligenceDb); | ||
| initStageTables(intelligenceDb); | ||
| } | ||
| catch { | ||
| // DB doesn't exist yet — intelligence layers will activate after first ori_index_build | ||
| } | ||
| // Session-end flush: update all 3 intelligence layers | ||
| let sessionFlushed = false; | ||
| const flushSession = () => { | ||
| if (sessionFlushed || !intelligenceDb) | ||
| return; | ||
| sessionFlushed = true; | ||
| try { | ||
| const db = intelligenceDb; | ||
| const tx = db.transaction(() => { | ||
| // Layer 2: Co-occurrence edges from retrieval log | ||
| try { | ||
| extractCoOccurrencePairs(db, sessionId); | ||
| recomputeAllNPMI(db); | ||
| runHomeostasis(db); | ||
| } | ||
| catch { | ||
| // retrieval_log may be empty — skip silently | ||
| } | ||
| // Layer 1: Q-value updates from reward signals | ||
| if (rewardAccumulator.hasData()) { | ||
| const rewards = rewardAccumulator.computeRewards(db); | ||
| batchUpdateQ(db, rewards, sessionId); | ||
| } | ||
| // Layer 3: Stage meta-learning updates | ||
| if (sessionStageTracker.hasResults() && sessionQueryFeatures) { | ||
| const stages = STAGE_CONFIGS.map((c) => loadStage(db, c)); | ||
| for (const result of sessionStageTracker.getResults()) { | ||
| const stage = stages.find((s) => s.config.id === result.stageId); | ||
| if (!stage) | ||
| continue; | ||
| const reward = computeStageReward(result.qualityBefore, result.qualityAfter, result.computeMs); | ||
| stage.update(sessionQueryFeatures, reward); | ||
| saveStage(db, stage); | ||
| } | ||
| } | ||
| }); | ||
| tx(); | ||
| } | ||
| catch { | ||
| // Best-effort flush — don't crash the process | ||
| } | ||
| try { | ||
| intelligenceDb?.close(); | ||
| } | ||
| catch { | ||
| // Already closed or never opened | ||
| } | ||
| }; | ||
| // Register shutdown handlers | ||
| process.on("beforeExit", flushSession); | ||
| process.on("SIGINT", () => { | ||
| flushSession(); | ||
| process.exit(0); | ||
| }); | ||
| process.on("SIGTERM", () => { | ||
| flushSession(); | ||
| process.exit(0); | ||
| }); | ||
| const server = new McpServer({ name: "ori-memory", version: "0.4.0" }, { instructions }); | ||
| // ─── Resources: identity layer (5 resources) ─── | ||
@@ -173,3 +260,3 @@ server.resource("identity", "ori://identity", async (uri) => ({ | ||
| ]); | ||
| const status = await runStatus(vaultDir); | ||
| const status = await runStatus(vaultDir, await graphCache.get(paths.notes)); | ||
| const payload = { | ||
@@ -200,3 +287,3 @@ daily, | ||
| } | ||
| // Quick zone scan — check if boosts table has data (indicates prune has run) | ||
| // Quick zone scan — check boosts + index health | ||
| // Lightweight: do NOT recompute all vitalities during orient | ||
@@ -209,3 +296,2 @@ try { | ||
| const boostCount = db.prepare("SELECT COUNT(*) as cnt FROM boosts").get().cnt; | ||
| db.close(); | ||
| if (boostCount > 0) { | ||
@@ -215,2 +301,38 @@ payload.activationActive = true; | ||
| } | ||
| // Index health: coverage + freshness | ||
| const indexedCount = db.prepare("SELECT COUNT(*) as cnt FROM embeddings").get().cnt; | ||
| const metaRows = db | ||
| .prepare("SELECT key, value FROM meta") | ||
| .all(); | ||
| db.close(); | ||
| const meta = {}; | ||
| for (const row of metaRows) | ||
| meta[row.key] = row.value; | ||
| // Count actual notes on disk | ||
| let noteFileCount = 0; | ||
| try { | ||
| const dirents = await fs.readdir(paths.notes, { withFileTypes: true }); | ||
| noteFileCount = dirents.filter(d => d.isFile() && d.name.endsWith(".md")).length; | ||
| } | ||
| catch { /* notes dir missing */ } | ||
| const staleCount = Math.max(0, noteFileCount - indexedCount); | ||
| const builtAt = meta.built_at ?? null; | ||
| const hoursSinceBuild = builtAt | ||
| ? (Date.now() - new Date(builtAt).getTime()) / 3_600_000 | ||
| : null; | ||
| payload.indexHealth = { | ||
| indexed: indexedCount, | ||
| totalNotes: noteFileCount, | ||
| stale: staleCount, | ||
| coveragePercent: noteFileCount > 0 | ||
| ? Math.round((indexedCount / noteFileCount) * 100) | ||
| : 100, | ||
| builtAt, | ||
| hoursSinceBuild: hoursSinceBuild !== null ? Math.round(hoursSinceBuild * 10) / 10 : null, | ||
| warning: staleCount > 10 | ||
| ? `${staleCount} notes not indexed — warmth signal is degraded. Run ori_index_build.` | ||
| : hoursSinceBuild !== null && hoursSinceBuild > 48 | ||
| ? `Index is ${Math.round(hoursSinceBuild)}h old — consider running ori_index_build.` | ||
| : null, | ||
| }; | ||
| } | ||
@@ -232,2 +354,12 @@ catch { | ||
| } | ||
| // Check for updates (best-effort, cached 24h) | ||
| try { | ||
| const update = await checkForUpdate(); | ||
| if (update.updateAvailable) { | ||
| payload.updateAvailable = update; | ||
| } | ||
| } | ||
| catch { | ||
| // Never fail orient for an update check | ||
| } | ||
| return textResult(payload); | ||
@@ -257,2 +389,4 @@ }); | ||
| await fs.writeFile(filePath, content, "utf8"); | ||
| // Log update event to reward accumulator | ||
| rewardAccumulator.logUpdate(file); | ||
| return textResult({ | ||
@@ -267,3 +401,3 @@ success: true, | ||
| server.tool("ori_status", "Vault overview", {}, async () => { | ||
| const result = await runStatus(vaultDir); | ||
| const result = await runStatus(vaultDir, await graphCache.get(paths.notes)); | ||
| return textResult(result); | ||
@@ -276,11 +410,12 @@ }); | ||
| }, async ({ kind, note }) => { | ||
| const linkGraph = await graphCache.get(paths.notes); | ||
| switch (kind) { | ||
| case "orphans": | ||
| return textResult(await runQueryOrphans(vaultDir)); | ||
| return textResult(await runQueryOrphans(vaultDir, linkGraph)); | ||
| case "dangling": | ||
| return textResult(await runQueryDangling(vaultDir)); | ||
| return textResult(await runQueryDangling(vaultDir, linkGraph)); | ||
| case "backlinks": | ||
| if (!note) | ||
| return errorResult("note required for backlinks query"); | ||
| return textResult(await runQueryBacklinks(vaultDir, note)); | ||
| return textResult(await runQueryBacklinks(vaultDir, note, linkGraph)); | ||
| case "cross-project": | ||
@@ -307,2 +442,6 @@ return textResult(await runQueryCrossProject(vaultDir)); | ||
| }); | ||
| // Log to reward accumulator for forward citation detection | ||
| if (result.success) { | ||
| rewardAccumulator.logAdd(title, content ?? ""); | ||
| } | ||
| return textResult(result); | ||
@@ -319,3 +458,3 @@ }); | ||
| server.tool("ori_health", "Full diagnostic", {}, async () => { | ||
| const result = await runHealth(vaultDir); | ||
| const result = await runHealth(vaultDir, await graphCache.get(paths.notes)); | ||
| return textResult(result); | ||
@@ -344,6 +483,11 @@ }); | ||
| }); | ||
| if (dry_run !== true && result.success) { | ||
| graphCache.invalidate(); | ||
| } | ||
| return textResult(result); | ||
| }); | ||
| // ori_query_ranked | ||
| server.tool("ori_query_ranked", "Full 3-signal engine retrieval (composite + keyword + graph) with intent classification. Returns ranked notes with signal breakdown. Excludes archived notes by default. Triggers spreading activation.", { | ||
| server.tool("ori_query_ranked", "Full ranked retrieval with Q-value reranking, co-occurrence PPR, and stage meta-learning. " + | ||
| "4 base signals (composite + keyword + graph + warmth) fused via RRF, then Phase B Q-value reranking. " + | ||
| "Excludes archived notes by default. Triggers spreading activation.", { | ||
| query: z.string().describe("Natural language search query"), | ||
@@ -353,5 +497,23 @@ limit: z.number().optional().describe("Max results (default 10)"), | ||
| }, async ({ query, limit, include_archived }) => { | ||
| const result = await runQueryRanked(vaultDir, query, limit, include_archived ? false : true); | ||
| const result = await runQueryRanked(vaultDir, query, limit, include_archived ? false : true, await graphCache.get(paths.notes), intelligenceDb ?? undefined, sessionId, sessionStageTracker); | ||
| // Log retrievals to reward accumulator for session-end credit assignment | ||
| if (result.success && result.data.results.length > 0) { | ||
| const intent = result.data.intent ?? "semantic"; | ||
| for (const [rank, note] of result.data.results.entries()) { | ||
| rewardAccumulator.logRetrieval(note.title, rank, query, intent); | ||
| } | ||
| // Capture query features for stage meta-learning (use last query's features) | ||
| const { extractQueryFeatures } = await import("../core/stage-learner.js"); | ||
| sessionQueryFeatures = extractQueryFeatures(query, 0, result.data.count, 0); | ||
| } | ||
| return textResult(result); | ||
| }); | ||
| // ori_warmth | ||
| server.tool("ori_warmth", "Associative warmth field for the current context. Returns low-token note titles, scores, and sources showing what memory is resonating before and alongside retrieval.", { | ||
| context: z.string().describe("Current conversation text or retrieval context"), | ||
| limit: z.number().optional().describe("Max warmth signals to return (default 20)"), | ||
| }, async ({ context, limit }) => { | ||
| const result = await runQueryWarmth(vaultDir, context, limit, await graphCache.get(paths.notes)); | ||
| return textResult(result); | ||
| }); | ||
| // ori_query_similar | ||
@@ -363,3 +525,3 @@ server.tool("ori_query_similar", "Composite vector search only (semantic + metadata, no keyword/graph). Faster but single-signal. Excludes archived notes by default.", { | ||
| }, async ({ query, limit, include_archived }) => { | ||
| const result = await runQuerySimilar(vaultDir, query, limit, include_archived ? false : true); | ||
| const result = await runQuerySimilar(vaultDir, query, limit, include_archived ? false : true, await graphCache.get(paths.notes)); | ||
| return textResult(result); | ||
@@ -371,3 +533,3 @@ }); | ||
| }, async ({ limit }) => { | ||
| const result = await runQueryImportant(vaultDir, limit); | ||
| const result = await runQueryImportant(vaultDir, limit, await graphCache.get(paths.notes)); | ||
| return textResult(result); | ||
@@ -380,3 +542,3 @@ }); | ||
| }, async ({ threshold, limit }) => { | ||
| const result = await runQueryFading(vaultDir, threshold, limit); | ||
| const result = await runQueryFading(vaultDir, threshold, limit, await graphCache.get(paths.notes)); | ||
| return textResult(result); | ||
@@ -393,9 +555,28 @@ }); | ||
| }); | ||
| if (apply === true && result.success) { | ||
| graphCache.invalidate(); | ||
| } | ||
| return textResult(result); | ||
| }); | ||
| // ori_index_build | ||
| server.tool("ori_index_build", "Build or update the embedding index. Only re-embeds changed notes unless force=true.", { | ||
| server.tool("ori_index_build", "Build or update the embedding index. Only re-embeds changed notes unless force=true. " + | ||
| "Also bootstraps co-occurrence edges from wiki-link structure.", { | ||
| force: z.boolean().optional().describe("Rebuild all embeddings (default false)"), | ||
| }, async ({ force }) => { | ||
| const result = await runIndexBuild(vaultDir, force === true); | ||
| graphCache.invalidate(); | ||
| // Bootstrap co-occurrence edges from wiki-links (Layer 2 day-0 edges) | ||
| if (intelligenceDb) { | ||
| try { | ||
| const linkGraph = await graphCache.get(paths.notes); | ||
| const noteLinks = new Map(); | ||
| for (const [src, targets] of linkGraph.outgoing) { | ||
| noteLinks.set(src, targets); | ||
| } | ||
| bootstrapFromWikiLinks(intelligenceDb, noteLinks); | ||
| } | ||
| catch { | ||
| // Non-critical — bootstrap is best-effort | ||
| } | ||
| } | ||
| return textResult(result); | ||
@@ -402,0 +583,0 @@ }); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/cli/serve.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/cli/serve.ts"],"names":[],"mappings":"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"} |
@@ -0,1 +1,2 @@ | ||
| import { type LinkGraph } from "../core/graph.js"; | ||
| export type StatusResult = { | ||
@@ -6,3 +7,3 @@ success: boolean; | ||
| }; | ||
| export declare function runStatus(startDir: string): Promise<StatusResult>; | ||
| export declare function runStatus(startDir: string, linkGraph?: LinkGraph): Promise<StatusResult>; | ||
| //# sourceMappingURL=status.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/cli/status.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CA8BvE"} | ||
| {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/cli/status.ts"],"names":[],"mappings":"AAGA,OAAO,EAA2B,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE3E,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,YAAY,CAAC,CA8BvB"} |
| import { promises as fs } from "node:fs"; | ||
| import { findVaultRoot, getVaultPaths, listNoteTitles } from "../core/vault.js"; | ||
| import { buildGraph, findOrphans } from "../core/graph.js"; | ||
| export async function runStatus(startDir) { | ||
| export async function runStatus(startDir, linkGraph) { | ||
| const vaultRoot = await findVaultRoot(startDir); | ||
| const paths = getVaultPaths(vaultRoot); | ||
| const allNotes = await listNoteTitles(paths.notes); | ||
| const graph = await buildGraph(paths.notes); | ||
| const graph = linkGraph ?? await buildGraph(paths.notes); | ||
| const orphans = findOrphans(graph, allNotes); | ||
@@ -10,0 +10,0 @@ let inboxEntries; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/cli/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAe,MAAM,SAAS,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAQ3D,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,QAAgB;IAC9C,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAEvC,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAE7C,IAAI,YAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,YAAY,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACxE,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrD,YAAY,GAAG,EAAE,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IACD,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;IAEjE,OAAO;QACL,OAAO,EAAE,IAAI;QACb,IAAI,EAAE;YACJ,SAAS;YACT,SAAS,EAAE,QAAQ,CAAC,MAAM;YAC1B,UAAU;YACV,WAAW,EAAE,OAAO,CAAC,MAAM;SAC5B;QACD,QAAQ,EAAE,EAAE;KACb,CAAC;AACJ,CAAC"} | ||
| {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/cli/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAe,MAAM,SAAS,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,WAAW,EAAkB,MAAM,kBAAkB,CAAC;AAQ3E,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,QAAgB,EAChB,SAAqB;IAErB,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAEvC,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,SAAS,IAAI,MAAM,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAE7C,IAAI,YAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,YAAY,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACxE,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrD,YAAY,GAAG,EAAE,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IACD,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;IAEjE,OAAO;QACL,OAAO,EAAE,IAAI;QACb,IAAI,EAAE;YACJ,SAAS;YACT,SAAS,EAAE,QAAQ,CAAC,MAAM;YAC1B,UAAU;YACV,WAAW,EAAE,OAAO,CAAC,MAAM;SAC5B;QACD,QAAQ,EAAE,EAAE;KACb,CAAC;AACJ,CAAC"} |
@@ -55,2 +55,3 @@ import { type LlmConfig } from "./llm.js"; | ||
| graph: number; | ||
| warmth: number; | ||
| }; | ||
@@ -76,2 +77,12 @@ exploration_budget: number; | ||
| }; | ||
| export type WarmthConfig = { | ||
| enabled: boolean; | ||
| surprise_threshold: number; | ||
| activation_threshold: number; | ||
| ppr_alpha: number; | ||
| ppr_iterations: number; | ||
| graph_weight: number; | ||
| max_results: number; | ||
| shadow_compare_enabled: boolean; | ||
| }; | ||
| export type OriConfig = { | ||
@@ -91,2 +102,3 @@ vault: { | ||
| activation: ActivationConfig; | ||
| warmth: WarmthConfig; | ||
| }; | ||
@@ -93,0 +105,0 @@ export declare function applyConfigDefaults(raw: Partial<OriConfig>): OriConfig; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"} |
+27
-3
@@ -30,5 +30,6 @@ import { promises as fs } from "node:fs"; | ||
| signal_weights: { | ||
| composite: 2.0, | ||
| keyword: 1.0, | ||
| graph: 1.5, | ||
| composite: 0.36, | ||
| keyword: 0.18, | ||
| graph: 0.26, | ||
| warmth: 0.20, | ||
| }, | ||
@@ -54,2 +55,12 @@ exploration_budget: 0.10, | ||
| }; | ||
| const DEFAULT_WARMTH_CONFIG = { | ||
| enabled: true, | ||
| surprise_threshold: 0.15, | ||
| activation_threshold: 0.35, | ||
| ppr_alpha: 0.15, | ||
| ppr_iterations: 20, | ||
| graph_weight: 0.3, | ||
| max_results: 20, | ||
| shadow_compare_enabled: true, | ||
| }; | ||
| const DEFAULT_CONFIG = { | ||
@@ -73,2 +84,3 @@ vault: { version: "0.1" }, | ||
| activation: { ...DEFAULT_ACTIVATION_CONFIG }, | ||
| warmth: { ...DEFAULT_WARMTH_CONFIG }, | ||
| }; | ||
@@ -84,2 +96,3 @@ export function applyConfigDefaults(raw) { | ||
| const rawActivation = raw.activation; | ||
| const rawWarmth = raw.warmth; | ||
| return { | ||
@@ -155,2 +168,3 @@ vault: { | ||
| graph: rawRetrieval?.signal_weights?.graph ?? DEFAULT_RETRIEVAL_CONFIG.signal_weights.graph, | ||
| warmth: rawRetrieval?.signal_weights?.warmth ?? DEFAULT_RETRIEVAL_CONFIG.signal_weights.warmth, | ||
| }, | ||
@@ -176,2 +190,12 @@ exploration_budget: rawRetrieval?.exploration_budget ?? DEFAULT_RETRIEVAL_CONFIG.exploration_budget, | ||
| }, | ||
| warmth: { | ||
| enabled: rawWarmth?.enabled ?? DEFAULT_WARMTH_CONFIG.enabled, | ||
| surprise_threshold: rawWarmth?.surprise_threshold ?? DEFAULT_WARMTH_CONFIG.surprise_threshold, | ||
| activation_threshold: rawWarmth?.activation_threshold ?? DEFAULT_WARMTH_CONFIG.activation_threshold, | ||
| ppr_alpha: rawWarmth?.ppr_alpha ?? DEFAULT_WARMTH_CONFIG.ppr_alpha, | ||
| ppr_iterations: rawWarmth?.ppr_iterations ?? DEFAULT_WARMTH_CONFIG.ppr_iterations, | ||
| graph_weight: rawWarmth?.graph_weight ?? DEFAULT_WARMTH_CONFIG.graph_weight, | ||
| max_results: rawWarmth?.max_results ?? DEFAULT_WARMTH_CONFIG.max_results, | ||
| shadow_compare_enabled: rawWarmth?.shadow_compare_enabled ?? DEFAULT_WARMTH_CONFIG.shadow_compare_enabled, | ||
| }, | ||
| }; | ||
@@ -178,0 +202,0 @@ } |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"} |
@@ -24,2 +24,3 @@ import Database from "better-sqlite3"; | ||
| export declare function initDB(dbPath: string): InstanceType<typeof Database>; | ||
| export declare function removeNoteFromDB(db: InstanceType<typeof Database>, title: string): void; | ||
| export declare function loadVectors(db: InstanceType<typeof Database>): Map<string, StoredVectors>; | ||
@@ -26,0 +27,0 @@ export declare function embedText(text: string, config: EngineConfig): Promise<Float32Array>; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/core/engine.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/core/engine.ts"],"names":[],"mappings":"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"} |
+35
-5
@@ -41,2 +41,9 @@ import { createHash } from "node:crypto"; | ||
| } | ||
| export function removeNoteFromDB(db, title) { | ||
| const tx = db.transaction(() => { | ||
| db.prepare("DELETE FROM embeddings WHERE title = ?").run(title); | ||
| db.prepare("DELETE FROM boosts WHERE title = ?").run(title); | ||
| }); | ||
| tx(); | ||
| } | ||
| // --------------------------------------------------------------------------- | ||
@@ -261,4 +268,3 @@ // Vector loading | ||
| } | ||
| let indexed = 0; | ||
| let skipped = 0; | ||
| const activeNotes = []; | ||
| for (const file of files) { | ||
@@ -270,11 +276,35 @@ const title = path.basename(file, ".md"); | ||
| const fm = frontmatter ?? {}; | ||
| if (fm.status === "archived") { | ||
| continue; | ||
| } | ||
| const description = typeof fm.description === "string" ? fm.description : ""; | ||
| const contentHashValue = hashContent(`${title}\n${description}\n${body}`); | ||
| if (!options?.force && existingHashes.get(title) === contentHashValue) { | ||
| activeNotes.push({ | ||
| title, | ||
| frontmatter: fm, | ||
| body, | ||
| contentHashValue, | ||
| }); | ||
| } | ||
| const activeTitles = new Set(activeNotes.map((note) => note.title)); | ||
| for (const title of existingHashes.keys()) { | ||
| if (!activeTitles.has(title)) { | ||
| removeNoteFromDB(db, title); | ||
| existingHashes.delete(title); | ||
| } | ||
| } | ||
| let indexed = 0; | ||
| let skipped = 0; | ||
| for (const note of activeNotes) { | ||
| if (!options?.force && | ||
| existingHashes.get(note.title) === note.contentHashValue) { | ||
| skipped++; | ||
| continue; | ||
| } | ||
| await indexNote(db, title, fm, body, linkGraph, graphMetrics.communities, totalCommunities, config); | ||
| await indexNote(db, note.title, note.frontmatter, note.body, linkGraph, graphMetrics.communities, totalCommunities, config); | ||
| indexed++; | ||
| } | ||
| // Persist build timestamp so orient can surface index freshness | ||
| db.prepare("INSERT OR REPLACE INTO meta (key, value) VALUES (?, ?)").run("built_at", new Date().toISOString()); | ||
| db.prepare("INSERT OR REPLACE INTO meta (key, value) VALUES (?, ?)").run("note_count", String(activeNotes.length)); | ||
| db.close(); | ||
@@ -284,3 +314,3 @@ return { | ||
| skipped, | ||
| total: files.length, | ||
| total: activeNotes.length, | ||
| durationMs: Date.now() - start, | ||
@@ -287,0 +317,0 @@ model: config.embedding_model, |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/core/engine.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/core/engine.ts"],"names":[],"mappings":"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"} |
@@ -12,3 +12,5 @@ /** | ||
| graph: ScoredNote[]; | ||
| warmth: ScoredNote[]; | ||
| } | ||
| export declare function normalizeSignalWeights(weights: RetrievalConfig["signal_weights"]): RetrievalConfig["signal_weights"]; | ||
| /** | ||
@@ -15,0 +17,0 @@ * Fuse multiple signal result lists using score-weighted RRF. |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"fusion.d.ts","sourceRoot":"","sources":["../../src/core/fusion.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAMnD,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AA8BD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,eAAe,GACtB,UAAU,EAAE,CAgEd;AAMD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,aAAa,EACtB,CAAC,EAAE,MAAM,GACR,UAAU,EAAE,CA2Dd"} | ||
| {"version":3,"file":"fusion.d.ts","sourceRoot":"","sources":["../../src/core/fusion.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAMnD,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,MAAM,EAAE,UAAU,EAAE,CAAC;CACtB;AAwCD,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,eAAe,CAAC,gBAAgB,CAAC,GACzC,eAAe,CAAC,gBAAgB,CAAC,CAkBnC;AAMD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,eAAe,GACtB,UAAU,EAAE,CAkEd;AAMD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,aAAa,EACtB,CAAC,EAAE,MAAM,GACR,UAAU,EAAE,CA6Dd"} |
+41
-4
@@ -6,3 +6,8 @@ /** | ||
| */ | ||
| const SIGNAL_NAMES = ["composite", "keyword", "graph"]; | ||
| const SIGNAL_NAMES = [ | ||
| "composite", | ||
| "keyword", | ||
| "graph", | ||
| "warmth", | ||
| ]; | ||
| /** Build a title -> { rank, score, note } lookup for a single signal. */ | ||
@@ -17,2 +22,20 @@ function buildIndex(notes) { | ||
| } | ||
| export function normalizeSignalWeights(weights) { | ||
| const total = SIGNAL_NAMES.reduce((sum, name) => sum + Math.max(0, weights[name] ?? 0), 0); | ||
| if (total <= 0) { | ||
| const equal = 1 / SIGNAL_NAMES.length; | ||
| return { | ||
| composite: equal, | ||
| keyword: equal, | ||
| graph: equal, | ||
| warmth: equal, | ||
| }; | ||
| } | ||
| return { | ||
| composite: Math.max(0, weights.composite) / total, | ||
| keyword: Math.max(0, weights.keyword) / total, | ||
| graph: Math.max(0, weights.graph) / total, | ||
| warmth: Math.max(0, weights.warmth) / total, | ||
| }; | ||
| } | ||
| /* ------------------------------------------------------------------ */ | ||
@@ -31,3 +54,3 @@ /* Score-weighted RRF */ | ||
| const k = config.rrf_k; | ||
| const weights = config.signal_weights; | ||
| const weights = normalizeSignalWeights(config.signal_weights); | ||
| // Build per-signal indexes | ||
@@ -38,2 +61,3 @@ const indexes = { | ||
| graph: buildIndex(signals.graph), | ||
| warmth: buildIndex(signals.warmth), | ||
| }; | ||
@@ -52,2 +76,3 @@ // Collect unique titles | ||
| const title = titleArray[ti]; | ||
| let baseScore = 0; | ||
| let fusedScore = 0; | ||
@@ -62,3 +87,7 @@ const signalScores = {}; | ||
| const w = weights[name]; | ||
| fusedScore += (w * entry.score) / (k + entry.rank + 1); | ||
| const contribution = (w * entry.score) / (k + entry.rank + 1); | ||
| fusedScore += contribution; | ||
| if (name !== "warmth") { | ||
| baseScore += contribution; | ||
| } | ||
| signalScores[name] = entry.score; | ||
@@ -71,2 +100,3 @@ if (entry.note.metadata && !metadata) | ||
| } | ||
| signalScores.rrf_base = baseScore; | ||
| signalScores.rrf = fusedScore; | ||
@@ -103,2 +133,3 @@ const fused = { | ||
| graph: buildIndex(signals.graph), | ||
| warmth: buildIndex(signals.warmth), | ||
| }; | ||
@@ -117,2 +148,3 @@ // Collect unique titles | ||
| const title = titleArray[ti]; | ||
| let baseScore = 0; | ||
| let fusedScore = 0; | ||
@@ -125,3 +157,7 @@ const signalScores = {}; | ||
| if (entry) { | ||
| fusedScore += 1 / (k + entry.rank + 1); | ||
| const contribution = 1 / (k + entry.rank + 1); | ||
| fusedScore += contribution; | ||
| if (name !== "warmth") { | ||
| baseScore += contribution; | ||
| } | ||
| signalScores[name] = entry.score; | ||
@@ -134,2 +170,3 @@ if (entry.note.metadata && !metadata) | ||
| } | ||
| signalScores.rrf_base = baseScore; | ||
| signalScores.rrf = fusedScore; | ||
@@ -136,0 +173,0 @@ const fused = { |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"fusion.js","sourceRoot":"","sources":["../../src/core/fusion.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"fusion.js","sourceRoot":"","sources":["../../src/core/fusion.ts"],"names":[],"mappings":"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"} |
@@ -5,2 +5,7 @@ export type LinkGraph = { | ||
| }; | ||
| export declare class GraphCache { | ||
| private graph; | ||
| get(notesDir: string): Promise<LinkGraph>; | ||
| invalidate(): void; | ||
| } | ||
| export declare function buildGraph(notesDir: string): Promise<LinkGraph>; | ||
@@ -7,0 +12,0 @@ export declare function findOrphans(graph: LinkGraph, allNotes: string[]): string[]; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/core/graph.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACnC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;CACpC,CAAC;AAEF,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAqCrE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAE1E;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAWhF;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAEtE"} | ||
| {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/core/graph.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACnC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;CACpC,CAAC;AAEF,qBAAa,UAAU;IACrB,OAAO,CAAC,KAAK,CAA0B;IAEjC,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAO/C,UAAU,IAAI,IAAI;CAGnB;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAyCrE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAE1E;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAWhF;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAEtE"} |
+17
-0
| import { promises as fs } from "node:fs"; | ||
| import path from "node:path"; | ||
| import { parseFrontmatter } from "./frontmatter.js"; | ||
| export class GraphCache { | ||
| graph = null; | ||
| async get(notesDir) { | ||
| if (!this.graph) { | ||
| this.graph = await buildGraph(notesDir); | ||
| } | ||
| return this.graph; | ||
| } | ||
| invalidate() { | ||
| this.graph = null; | ||
| } | ||
| } | ||
| export async function buildGraph(notesDir) { | ||
@@ -22,2 +35,6 @@ let files; | ||
| const content = await fs.readFile(filePath, "utf8"); | ||
| const { data } = parseFrontmatter(content); | ||
| if (data?.status === "archived") { | ||
| continue; | ||
| } | ||
| const links = new Set(); | ||
@@ -24,0 +41,0 @@ for (const match of content.matchAll(/\[\[([^\]]+)\]\]/g)) { |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/core/graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAe,MAAM,SAAS,CAAC;AACtD,OAAO,IAAI,MAAM,WAAW,CAAC;AAO7B,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAgB;IAC/C,IAAI,KAAe,CAAC;IACpB,IAAI,CAAC;QACH,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrD,OAAO,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;QACtD,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IACD,MAAM,aAAa,GAAG,KAAK;SACxB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SAC/D,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAEnD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuB,CAAC;IAChD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuB,CAAC;IAEhD,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;QAEhC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC1D,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YAChC,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAED,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3B,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE,CAAC;YAC3B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;YAC3D,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAgB,EAAE,QAAkB;IAC9D,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAgB,EAAE,QAAkB;IACpE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,KAAK,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACxC,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE,CAAC;YAC3B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAgB,EAAE,IAAY;IAC1D,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AAC3D,CAAC"} | ||
| {"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/core/graph.ts"],"names":[],"mappings":"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"} |
@@ -8,2 +8,4 @@ export interface ScoredNote { | ||
| graph?: number; | ||
| warmth?: number; | ||
| rrf_base?: number; | ||
| rrf?: number; | ||
@@ -10,0 +12,0 @@ }; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"ranking.d.ts","sourceRoot":"","sources":["../../src/core/ranking.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE;QACP,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;IACF,MAAM,CAAC,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EAAE,EACf,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACnC,KAAK,CAAC,EAAE,MAAM,GACb,UAAU,EAAE,CASd;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,EAAE,EACf,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACnC,SAAS,GAAE,MAAY,GACtB,UAAU,EAAE,CAiBd;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EAAE,EACf,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACnC,KAAK,CAAC,EAAE,MAAM,GACb,UAAU,EAAE,CASd"} | ||
| {"version":3,"file":"ranking.d.ts","sourceRoot":"","sources":["../../src/core/ranking.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE;QACP,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;IACF,MAAM,CAAC,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EAAE,EACf,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACnC,KAAK,CAAC,EAAE,MAAM,GACb,UAAU,EAAE,CASd;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,EAAE,EACf,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACnC,SAAS,GAAE,MAAY,GACtB,UAAU,EAAE,CAiBd;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EAAE,EACf,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACnC,KAAK,CAAC,EAAE,MAAM,GACb,UAAU,EAAE,CASd"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"ranking.js","sourceRoot":"","sources":["../../src/core/ranking.ts"],"names":[],"mappings":"AAoBA;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAe,EACf,cAAmC,EACnC,KAAc;IAEd,MAAM,MAAM,GAAiB,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACjD,KAAK;QACL,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;QACrC,OAAO,EAAE,EAAE,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;KACnD,CAAC,CAAC,CAAC;IAEJ,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACjD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAC1B,KAAe,EACf,cAAmC,EACnC,YAAoB,GAAG;IAEvB,MAAM,MAAM,GAAiB,EAAE,CAAC;IAEhC,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,QAAQ,GAAG,SAAS,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK;gBACL,KAAK,EAAE,QAAQ;gBACf,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE;aACjC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,uDAAuD;IACvD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAe,EACf,cAAmC,EACnC,KAAc;IAEd,MAAM,MAAM,GAAiB,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACjD,KAAK;QACL,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;QACrC,OAAO,EAAE,EAAE,SAAS,EAAE,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;KACvD,CAAC,CAAC,CAAC;IAEJ,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACjD,CAAC"} | ||
| {"version":3,"file":"ranking.js","sourceRoot":"","sources":["../../src/core/ranking.ts"],"names":[],"mappings":"AAsBA;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAe,EACf,cAAmC,EACnC,KAAc;IAEd,MAAM,MAAM,GAAiB,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACjD,KAAK;QACL,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;QACrC,OAAO,EAAE,EAAE,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;KACnD,CAAC,CAAC,CAAC;IAEJ,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACjD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAC1B,KAAe,EACf,cAAmC,EACnC,YAAoB,GAAG;IAEvB,MAAM,MAAM,GAAiB,EAAE,CAAC;IAEhC,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,QAAQ,GAAG,SAAS,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK;gBACL,KAAK,EAAE,QAAQ;gBACf,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE;aACjC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,uDAAuD;IACvD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAe,EACf,cAAmC,EACnC,KAAc;IAEd,MAAM,MAAM,GAAiB,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACjD,KAAK;QACL,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;QACrC,OAAO,EAAE,EAAE,SAAS,EAAE,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;KACvD,CAAC,CAAC,CAAC;IAEJ,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACjD,CAAC"} |
+111
-11
@@ -11,5 +11,5 @@ #!/usr/bin/env node | ||
| import { runArchive } from "./cli/archive.js"; | ||
| import { runBridgeClaudeCode, runBridgeClaudeCodeGlobal } from "./cli/bridge.js"; | ||
| import { runBridgeClaudeCode, runBridgeClaudeCodeGlobal, runBridgeCursor, runBridgeGeneric, runBridgeStatus } from "./cli/bridge.js"; | ||
| import { runServeMcp } from "./cli/serve.js"; | ||
| import { runQueryRanked, runQuerySimilar } from "./cli/search.js"; | ||
| import { runQueryRanked, runQuerySimilar, runQueryWarmthAudit } from "./cli/search.js"; | ||
| import { runIndexBuild, runIndexStatus } from "./cli/indexcmd.js"; | ||
@@ -19,6 +19,22 @@ import { runGraphMetrics, runGraphCommunities } from "./cli/graphcmd.js"; | ||
| const program = new Command(); | ||
| function assertBridgeScope(value) { | ||
| if (!value) | ||
| return undefined; | ||
| if (value !== "project" && value !== "global") { | ||
| throw new Error(`Unknown bridge scope: ${value}`); | ||
| } | ||
| return value; | ||
| } | ||
| function assertBridgeActivation(value) { | ||
| if (!value) | ||
| return undefined; | ||
| if (value !== "auto" && value !== "manual") { | ||
| throw new Error(`Unknown bridge activation: ${value}`); | ||
| } | ||
| return value; | ||
| } | ||
| program | ||
| .name("ori") | ||
| .description("Ori Mnemos - markdown-native cognitive harness for persistent agent memory") | ||
| .version("0.3.3"); | ||
| .version("0.4.0"); | ||
| program | ||
@@ -48,4 +64,4 @@ .command("init") | ||
| .command("query") | ||
| .argument("<kind>", "orphans | dangling | backlinks | cross-project | ranked | similar | important | fading") | ||
| .argument("[note]", "note title for backlinks, or query text for ranked/similar") | ||
| .argument("<kind>", "orphans | dangling | backlinks | cross-project | ranked | similar | important | fading | warmth-audit") | ||
| .argument("[note]", "note title for backlinks, query text for ranked/similar, or query filter for warmth-audit") | ||
| .option("--limit <n>", "max results", "10") | ||
@@ -89,2 +105,5 @@ .option("--threshold <n>", "vitality threshold for fading", "0.3") | ||
| break; | ||
| case "warmth-audit": | ||
| result = await runQueryWarmthAudit(process.cwd(), note, options.limit ? parseInt(options.limit, 10) : undefined); | ||
| break; | ||
| default: | ||
@@ -146,11 +165,92 @@ throw new Error(`Unknown query kind: ${kind}`); | ||
| .command("bridge") | ||
| .argument("<target>", "claude-code") | ||
| .option("--global", "install hooks to ~/.claude/settings.json (all projects)") | ||
| .argument("<target>", "claude-code | cursor | generic | status") | ||
| .option("--global", "legacy shorthand for --scope global") | ||
| .option("--scope <scope>", "install scope: project | global") | ||
| .option("--activation <activation>", "activation mode: auto | manual") | ||
| .option("--vault <path>", "explicit vault path") | ||
| .option("--uninstall", "remove Ori bridge config for this target/scope") | ||
| .option("--json", "output JSON for install planning") | ||
| .action(async (target, options) => { | ||
| if (target !== "claude-code") { | ||
| if (target !== "claude-code" && target !== "cursor" && target !== "generic" && target !== "status") { | ||
| throw new Error(`Unknown bridge target: ${target}`); | ||
| } | ||
| const result = options.global | ||
| ? await runBridgeClaudeCodeGlobal() | ||
| : await runBridgeClaudeCode(process.cwd()); | ||
| if (target === "status") { | ||
| const result = await runBridgeStatus(process.cwd()); | ||
| if (!options.json) { | ||
| const data = result.data; | ||
| console.log(`Precedence: ${data.precedence}`); | ||
| for (const [client, status] of Object.entries(data.clients)) { | ||
| console.log(""); | ||
| console.log(`Client: ${client}`); | ||
| console.log(` Active install: ${status.active ? status.active.scope : "none"}`); | ||
| if (status.active) { | ||
| console.log(` Active activation: ${status.active.activation ?? "unknown"}`); | ||
| console.log(` Active vault: ${status.active.resolvedVault ?? "(runtime discovery)"}`); | ||
| } | ||
| for (const scope of ["project", "global"]) { | ||
| const install = status[scope]; | ||
| console.log(` ${scope}: ${install.installed ? "installed" : "not installed"}`); | ||
| console.log(` activation: ${install.activation ?? "n/a"}`); | ||
| console.log(` vault: ${install.resolvedVault ?? "(none encoded)"}`); | ||
| console.log(` checked: ${install.configPaths.join(", ")}`); | ||
| for (const detail of install.details) { | ||
| console.log(` - ${detail}`); | ||
| } | ||
| } | ||
| } | ||
| if (data.instructions.length > 0) { | ||
| console.log(""); | ||
| console.log("Notes:"); | ||
| for (const instruction of data.instructions) { | ||
| console.log(`- ${instruction}`); | ||
| } | ||
| } | ||
| return; | ||
| } | ||
| console.log(JSON.stringify(result)); | ||
| return; | ||
| } | ||
| const request = { | ||
| global: options.global, | ||
| scope: assertBridgeScope(options.scope), | ||
| activation: assertBridgeActivation(options.activation), | ||
| vault: options.vault, | ||
| uninstall: options.uninstall, | ||
| }; | ||
| const result = target === "claude-code" | ||
| ? options.global | ||
| ? await runBridgeClaudeCodeGlobal(process.cwd(), request) | ||
| : await runBridgeClaudeCode(process.cwd(), request) | ||
| : target === "cursor" | ||
| ? await runBridgeCursor(process.cwd(), request) | ||
| : await runBridgeGeneric(process.cwd(), request); | ||
| if ((target === "generic" || target === "cursor") && !options.json) { | ||
| const data = result.data; | ||
| console.log(`Client: ${data.client === "generic" ? "generic MCP client" : data.client}`); | ||
| if (data.operation) { | ||
| console.log(`Operation: ${data.operation}`); | ||
| } | ||
| if (data.mutation) { | ||
| console.log(`Result: ${data.mutation}`); | ||
| } | ||
| console.log(`Scope: ${data.scope}`); | ||
| console.log(`Activation: ${data.activation}`); | ||
| console.log(`Resolved vault: ${data.resolvedVault ?? "(runtime discovery)"}`); | ||
| if (data.mcpPath) { | ||
| console.log(`MCP config path: ${data.mcpPath}`); | ||
| } | ||
| console.log(""); | ||
| console.log("Server config:"); | ||
| console.log(` command: ${data.command}`); | ||
| console.log(` args: ${JSON.stringify(data.args)}`); | ||
| console.log(` env: ${JSON.stringify(data.env)}`); | ||
| if (data.instructions.length > 0) { | ||
| console.log(""); | ||
| console.log("Instructions:"); | ||
| for (const instruction of data.instructions) { | ||
| console.log(`- ${instruction}`); | ||
| } | ||
| } | ||
| return; | ||
| } | ||
| console.log(JSON.stringify(result)); | ||
@@ -157,0 +257,0 @@ }); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAW,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,GACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,KAAK,CAAC;KACX,WAAW,CACV,4EAA4E,CAC7E;KACA,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,QAAQ,CAAC,OAAO,EAAE,kBAAkB,EAAE,GAAG,CAAC;KAC1C,MAAM,CAAC,QAAQ,EAAE,qCAAqC,CAAC;KACvD,MAAM,CAAC,KAAK,EAAE,GAAW,EAAE,OAA2B,EAAE,EAAE;IACzD,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAChF,IAAI,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAC7E,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,QAAQ,CAAC,QAAQ,EAAE,wFAAwF,CAAC;KAC5G,QAAQ,CAAC,QAAQ,EAAE,4DAA4D,CAAC;KAChF,MAAM,CAAC,aAAa,EAAE,aAAa,EAAE,IAAI,CAAC;KAC1C,MAAM,CAAC,iBAAiB,EAAE,+BAA+B,EAAE,KAAK,CAAC;KACjE,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,IAAwB,EAAE,OAA+C,EAAE,EAAE;IACxG,IAAI,MAAM,CAAC;IACX,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,SAAS;YACZ,MAAM,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YAC9C,MAAM;QACR,KAAK,UAAU;YACb,MAAM,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YAC/C,MAAM;QACR,KAAK,WAAW;YACd,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACrD,CAAC;YACD,MAAM,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;YACtD,MAAM;QACR,KAAK,eAAe;YAClB,MAAM,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YACnD,MAAM;QACR,KAAK,QAAQ;YACX,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAClD,CAAC;YACD,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;YACnD,MAAM;QACR,KAAK,SAAS;YACZ,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YACnD,CAAC;YACD,MAAM,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;YACpD,MAAM;QACR,KAAK,WAAW;YACd,MAAM,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACzG,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC5G,MAAM;QACR;YACE,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,UAAU,CAAC;KACnB,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;KAClC,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;IAC7B,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;KACjC,MAAM,CAAC,mBAAmB,EAAE,WAAW,EAAE,SAAS,CAAC;KACnD,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,OAAyB,EAAE,EAAE;IACzD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACpF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,QAAQ,CAAC,QAAQ,EAAE,6BAA6B,CAAC;KACjD,MAAM,CAAC,OAAO,EAAE,yBAAyB,CAAC;KAC1C,MAAM,CAAC,WAAW,EAAE,gCAAgC,CAAC;KACrD,MAAM,CAAC,WAAW,EAAE,yCAAyC,CAAC;KAC9D,MAAM,CAAC,mBAAmB,EAAE,8BAA8B,CAAC;KAC3D,MAAM,CAAC,0BAA0B,EAAE,sBAAsB,CAAC;KAC1D,MAAM,CAAC,wBAAwB,EAAE,uBAAuB,CAAC;KACzD,MAAM,CAAC,6BAA6B,EAAE,cAAc,CAAC;KACrD,MAAM,CACL,KAAK,EACH,IAAwB,EACxB,OAQC,EACD,EAAE;IACF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC;QAC9B,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE;QACvB,QAAQ,EAAE,IAAI;QACd,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AACtC,CAAC,CACF,CAAC;AAEJ,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,MAAM,CAAC,WAAW,EAAE,gCAAgC,CAAC;KACrD,MAAM,CAAC,KAAK,EAAE,OAA6B,EAAE,EAAE;IAC9C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC;QAC9B,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE;QACvB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;KACnC,MAAM,CAAC,UAAU,EAAE,yDAAyD,CAAC;KAC7E,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,OAA6B,EAAE,EAAE;IAC9D,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,0BAA0B,MAAM,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM;QAC3B,CAAC,CAAC,MAAM,yBAAyB,EAAE;QACnC,CAAC,CAAC,MAAM,mBAAmB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,OAAO,EAAE,gBAAgB,CAAC;KACjC,MAAM,CAAC,gBAAgB,EAAE,0BAA0B,CAAC;KACpD,MAAM,CAAC,KAAK,EAAE,OAA0C,EAAE,EAAE;IAC3D,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;AAClD,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;KACtC,MAAM,CAAC,SAAS,EAAE,wBAAwB,CAAC;KAC3C,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,OAA4B,EAAE,EAAE;IAC7D,IAAI,MAAM,CAAC;IACX,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,OAAO;YACV,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YAC3D,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YAC7C,MAAM;QACR;YACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,EAAE,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,QAAQ,CAAC,UAAU,EAAE,uBAAuB,CAAC;KAC7C,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,EAAE;IAC/B,IAAI,MAAM,CAAC;IACX,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,SAAS;YACZ,MAAM,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YAC9C,MAAM;QACR,KAAK,aAAa;YAChB,MAAM,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YAClD,MAAM;QACR;YACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,EAAE,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,SAAS,EAAE,gDAAgD,CAAC;KACnE,MAAM,CAAC,WAAW,EAAE,+BAA+B,CAAC;KACpD,MAAM,CAAC,KAAK,EAAE,OAA+C,EAAE,EAAE;IAChE,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC;QAC5B,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE;QACvB,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK;QACtB,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IAC7C,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"} | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAW,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,GACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,eAAe,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACrI,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,SAAS,iBAAiB,CAAC,KAAyB;IAClD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAyB;IACvD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,8BAA8B,KAAK,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,OAAO;KACJ,IAAI,CAAC,KAAK,CAAC;KACX,WAAW,CACV,4EAA4E,CAC7E;KACA,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,QAAQ,CAAC,OAAO,EAAE,kBAAkB,EAAE,GAAG,CAAC;KAC1C,MAAM,CAAC,QAAQ,EAAE,qCAAqC,CAAC;KACvD,MAAM,CAAC,KAAK,EAAE,GAAW,EAAE,OAA2B,EAAE,EAAE;IACzD,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAChF,IAAI,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAC7E,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,QAAQ,CAAC,QAAQ,EAAE,uGAAuG,CAAC;KAC3H,QAAQ,CAAC,QAAQ,EAAE,2FAA2F,CAAC;KAC/G,MAAM,CAAC,aAAa,EAAE,aAAa,EAAE,IAAI,CAAC;KAC1C,MAAM,CAAC,iBAAiB,EAAE,+BAA+B,EAAE,KAAK,CAAC;KACjE,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,IAAwB,EAAE,OAA+C,EAAE,EAAE;IACxG,IAAI,MAAM,CAAC;IACX,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,SAAS;YACZ,MAAM,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YAC9C,MAAM;QACR,KAAK,UAAU;YACb,MAAM,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YAC/C,MAAM;QACR,KAAK,WAAW;YACd,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACrD,CAAC;YACD,MAAM,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;YACtD,MAAM;QACR,KAAK,eAAe;YAClB,MAAM,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YACnD,MAAM;QACR,KAAK,QAAQ;YACX,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAClD,CAAC;YACD,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;YACnD,MAAM;QACR,KAAK,SAAS;YACZ,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YACnD,CAAC;YACD,MAAM,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;YACpD,MAAM;QACR,KAAK,WAAW;YACd,MAAM,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACzG,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC5G,MAAM;QACR,KAAK,cAAc;YACjB,MAAM,GAAG,MAAM,mBAAmB,CAChC,OAAO,CAAC,GAAG,EAAE,EACb,IAAI,EACJ,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CACxD,CAAC;YACF,MAAM;QACR;YACE,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,UAAU,CAAC;KACnB,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;KAClC,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;IAC7B,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;KACjC,MAAM,CAAC,mBAAmB,EAAE,WAAW,EAAE,SAAS,CAAC;KACnD,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,OAAyB,EAAE,EAAE;IACzD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACpF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,QAAQ,CAAC,QAAQ,EAAE,6BAA6B,CAAC;KACjD,MAAM,CAAC,OAAO,EAAE,yBAAyB,CAAC;KAC1C,MAAM,CAAC,WAAW,EAAE,gCAAgC,CAAC;KACrD,MAAM,CAAC,WAAW,EAAE,yCAAyC,CAAC;KAC9D,MAAM,CAAC,mBAAmB,EAAE,8BAA8B,CAAC;KAC3D,MAAM,CAAC,0BAA0B,EAAE,sBAAsB,CAAC;KAC1D,MAAM,CAAC,wBAAwB,EAAE,uBAAuB,CAAC;KACzD,MAAM,CAAC,6BAA6B,EAAE,cAAc,CAAC;KACrD,MAAM,CACL,KAAK,EACH,IAAwB,EACxB,OAQC,EACD,EAAE;IACF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC;QAC9B,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE;QACvB,QAAQ,EAAE,IAAI;QACd,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AACtC,CAAC,CACF,CAAC;AAEJ,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,MAAM,CAAC,WAAW,EAAE,gCAAgC,CAAC;KACrD,MAAM,CAAC,KAAK,EAAE,OAA6B,EAAE,EAAE;IAC9C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC;QAC9B,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE;QACvB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,QAAQ,CAAC,UAAU,EAAE,yCAAyC,CAAC;KAC/D,MAAM,CAAC,UAAU,EAAE,qCAAqC,CAAC;KACzD,MAAM,CAAC,iBAAiB,EAAE,iCAAiC,CAAC;KAC5D,MAAM,CAAC,2BAA2B,EAAE,gCAAgC,CAAC;KACrE,MAAM,CAAC,gBAAgB,EAAE,qBAAqB,CAAC;KAC/C,MAAM,CAAC,aAAa,EAAE,gDAAgD,CAAC;KACvE,MAAM,CAAC,QAAQ,EAAE,kCAAkC,CAAC;KACpD,MAAM,CAAC,KAAK,EACX,MAAc,EACd,OAAuH,EACvH,EAAE;IACF,IAAI,MAAM,KAAK,aAAa,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACnG,MAAM,IAAI,KAAK,CAAC,0BAA0B,MAAM,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,MAAM,IAAI,GAAG,MAAM,CAAC,IAQnB,CAAC;YAEF,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YAC9C,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC5D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC;gBACjC,OAAO,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;gBACjF,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;oBAClB,OAAO,CAAC,GAAG,CAAC,wBAAwB,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI,SAAS,EAAE,CAAC,CAAC;oBAC7E,OAAO,CAAC,GAAG,CAAC,mBAAmB,MAAM,CAAC,MAAM,CAAC,aAAa,IAAI,qBAAqB,EAAE,CAAC,CAAC;gBACzF,CAAC;gBACD,KAAK,MAAM,KAAK,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAU,EAAE,CAAC;oBACnD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;oBAChF,OAAO,CAAC,GAAG,CAAC,mBAAmB,OAAO,CAAC,UAAU,IAAI,KAAK,EAAE,CAAC,CAAC;oBAC9D,OAAO,CAAC,GAAG,CAAC,cAAc,OAAO,CAAC,aAAa,IAAI,gBAAgB,EAAE,CAAC,CAAC;oBACvE,OAAO,CAAC,GAAG,CAAC,gBAAgB,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC9D,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;wBACrC,OAAO,CAAC,GAAG,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;oBACjC,CAAC;gBACH,CAAC;YACH,CAAC;YACD,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACtB,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;oBAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,WAAW,EAAE,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;YACD,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QACpC,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG;QACd,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,KAAK,EAAE,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC;QACvC,UAAU,EAAE,sBAAsB,CAAC,OAAO,CAAC,UAAU,CAAC;QACtD,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,KAAK,aAAa;QACrC,CAAC,CAAC,OAAO,CAAC,MAAM;YACd,CAAC,CAAC,MAAM,yBAAyB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC;YACzD,CAAC,CAAC,MAAM,mBAAmB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC;QACrD,CAAC,CAAC,MAAM,KAAK,QAAQ;YACnB,CAAC,CAAC,MAAM,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC;YACjD,CAAC,CAAC,MAAM,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;IAEnD,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACnE,MAAM,IAAI,GAAG,MAAM,CAAC,IAYnB,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACzF,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,aAAa,IAAI,qBAAqB,EAAE,CAAC,CAAC;QAC9E,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClD,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC7B,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,WAAW,EAAE,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QACD,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,OAAO,EAAE,gBAAgB,CAAC;KACjC,MAAM,CAAC,gBAAgB,EAAE,0BAA0B,CAAC;KACpD,MAAM,CAAC,KAAK,EAAE,OAA0C,EAAE,EAAE;IAC3D,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;AAClD,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;KACtC,MAAM,CAAC,SAAS,EAAE,wBAAwB,CAAC;KAC3C,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,OAA4B,EAAE,EAAE;IAC7D,IAAI,MAAM,CAAC;IACX,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,OAAO;YACV,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YAC3D,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YAC7C,MAAM;QACR;YACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,EAAE,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,QAAQ,CAAC,UAAU,EAAE,uBAAuB,CAAC;KAC7C,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,EAAE;IAC/B,IAAI,MAAM,CAAC;IACX,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,SAAS;YACZ,MAAM,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YAC9C,MAAM;QACR,KAAK,aAAa;YAChB,MAAM,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YAClD,MAAM;QACR;YACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,EAAE,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,SAAS,EAAE,gDAAgD,CAAC;KACnE,MAAM,CAAC,WAAW,EAAE,+BAA+B,CAAC;KACpD,MAAM,CAAC,KAAK,EAAE,OAA+C,EAAE,EAAE;IAChE,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC;QAC5B,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE;QACvB,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK;QACtB,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IAC7C,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"} |
+3
-3
| { | ||
| "name": "ori-memory", | ||
| "version": "0.3.4", | ||
| "version": "0.4.0", | ||
| "mcpName": "io.github.aayoawoyemi/ori-memory", | ||
| "description": "Persistent memory for AI agents — local-first, markdown-native, no cloud. Knowledge graph + three-signal retrieval (semantic + BM25 + PageRank). Agents wake up knowing who they are across sessions. MCP server for Claude, Cursor, Windsurf, Cline.", | ||
| "description": "Cognitive architecture for persistent AI agent memory. Knowledge graph with learning retrieval, ACT-R decay, and spreading activation. Markdown-native, local-first, zero cloud. MCP server + CLI.", | ||
| "keywords": [ | ||
@@ -58,3 +58,3 @@ "ai", | ||
| "dev": "tsc --watch", | ||
| "test": "vitest run --environment node", | ||
| "test": "npm run build && vitest run --environment node", | ||
| "test:watch": "vitest --environment node", | ||
@@ -61,0 +61,0 @@ "lint": "tsc --noEmit", |
+162
-80
| # Ori Mnemos | ||
| **Open-source persistent memory for AI agents.** | ||
| **Open-source cognitive architecture for persistent AI agent memory.** | ||
| Install it on any machine, point your agent at it, and it wakes up knowing who it is. Not because you pasted context into a system prompt. Because it has a memory system that learns what matters, forgets what doesn't, and keeps your agent's knowledge in files you own. | ||
| Language models are stateless at every inference call. Without external memory, an agent cannot learn from past sessions, cannot associate across domains, and cannot improve over time. It enters every session with amnesia. The context window is a queue, not a graph — old information falls off the back as new information enters the front. Even persisted on a VPS, an agent has a heartbeat but no hippocampus. | ||
| Markdown on disk. Wiki-links as graph edges. Git as version control. No database, no cloud, no lock-in. | ||
| Model intelligence is no longer the bottleneck. The bottleneck is **memory** — structured, persistent, and efficient enough to scale from 50 notes to 5,000 without degrading retrieval quality or inflating token cost. | ||
| **v0.3.3** · npm package · Apache-2.0 | ||
| Ori implements tenets of human cognition as mathematical models on a knowledge graph. Activation decay from ACT-R. Spreading activation along wiki-link edges. Hebbian co-occurrence from retrieval patterns. Reinforcement learning on retrieval itself. Ebbinghaus forgetting with spaced-repetition strength curves. The system learns what matters, forgets what doesn't, and optimizes its own retrieval pipeline — every session makes it sharper. | ||
| The result: an agent with continuous identity across sessions, clients, and machines. Accumulated understanding that persists, connects, and compounds. The model is the engine. The vault becomes the mind. | ||
| Markdown on disk. Wiki-links as graph edges. Git as version control. No database lock-in, no cloud dependency, no vendor capture. | ||
| **v0.4.0** · [npm](https://www.npmjs.com/package/ori-memory) · Apache-2.0 | ||
| --- | ||
@@ -21,4 +27,12 @@ | ||
| Add to any MCP client (Claude Code, Cursor, Windsurf, Cline, or your own agent loop): | ||
| Connect to your client: | ||
| ```bash | ||
| ori bridge claude-code --scope global --activation auto --vault ~/brain | ||
| ori bridge cursor --scope project --activation manual --vault ~/brain | ||
| ori bridge generic --scope global --vault ~/brain # any MCP client | ||
| ``` | ||
| Manual MCP config: | ||
| ```json | ||
@@ -29,3 +43,4 @@ { | ||
| "command": "ori", | ||
| "args": ["serve", "--mcp"] | ||
| "args": ["serve", "--mcp", "--vault", "/path/to/brain"], | ||
| "env": { "ORI_VAULT": "/path/to/brain" } | ||
| } | ||
@@ -42,31 +57,66 @@ } | ||
| - **Persistent identity.** Agents wake up as themselves. Name, personality, goals, methodology travel with the vault across sessions, clients, and machines. | ||
| - **Persistent identity.** Agent state — name, personality, goals, methodology — is stored in plain markdown and auto-injected at session start via MCP instructions. Identity survives client switches, machine migrations, and model changes without reconfiguration. | ||
| - **Three-signal retrieval.** Not just vector search. Semantic embeddings + BM25 keyword matching + PageRank graph importance, fused through Reciprocal Rank Fusion with automatic intent classification. ~850 tokens per query regardless of vault size. | ||
| - **Knowledge graph.** Every `[[wiki-link]]` is a directed edge. PageRank authority, Louvain community detection, betweenness centrality, bridge detection, orphan and dangling link analysis. Structure is queryable through MCP tools and CLI. | ||
| - **Knowledge graph.** Every `[[wiki-link]]` is a graph edge. PageRank authority, Louvain community detection, betweenness centrality, orphan and dangling link detection. Structure is queryable. | ||
| - **Three memory spaces.** Identity (`self/`) decays at 0.1x — barely fades. Knowledge (`notes/`) decays at 1.0x — lives and dies by relevance. Operations (`ops/`) decays at 3.0x — burns hot and clears itself. The separation is architectural, not cosmetic. | ||
| - **Graph-aware forgetting.** Notes decay using ACT-R cognitive science. Used notes stay alive. Their neighbors stay warm through spreading activation along wiki-link edges. Structurally critical nodes are protected by Tarjan's algorithm. No other shipped memory system does this. | ||
| - **Cognitive forgetting.** Notes decay using ACT-R base-level learning equations, not arbitrary TTLs. Used notes stay alive. Their neighbors stay warm through spreading activation along wiki-link edges. Structurally critical nodes are protected by Tarjan's algorithm. `ori prune` analyzes the full activation topology before archiving anything. | ||
| - **Zone classification.** Notes are `active`, `stale`, `fading`, or `archived` based on vitality score. `ori prune` analyzes the full activation topology, identifies archive candidates, and protects articulation points. Dry-run by default. | ||
| - **Four-signal fusion.** Semantic embeddings, BM25 keyword matching, personalized PageRank, and associative warmth fused through score-weighted Reciprocal Rank Fusion. Intent classification (episodic, procedural, semantic, decision) shifts signal weights automatically. | ||
| - **Dampening pipeline.** Three post-fusion stages validated by ablation testing: gravity dampening halves cosine-similarity ghosts with zero query-term overlap, hub dampening applies a P90 degree penalty to prevent map notes from dominating results, and resolution boost surfaces actionable knowledge (decisions, learnings) over passive observation. | ||
| - **Learning retrieval (v0.4.0).** Three intelligence layers improve retrieval quality from session to session, synthesized from 63 research sources. See [Retrieval Intelligence](#retrieval-intelligence-v040) below. | ||
| - **Capture-promote pipeline.** `ori add` captures to inbox. `ori promote` classifies (idea, decision, learning, insight, blocker, opportunity), detects links, suggests areas. 50+ heuristic patterns. Optional LLM enhancement. | ||
| - **Zero cloud dependencies.** Local embeddings via all-MiniLM-L6-v2 running in-process. SQLite for vectors. Everything on your filesystem. Zero API keys required for core functionality. | ||
| - **Zero cloud dependencies.** Local embeddings via all-MiniLM-L6-v2 running in-process. SQLite for vectors and intelligence state. Everything on your filesystem. Zero API keys required for core functionality. | ||
| --- | ||
| ## Token Economics | ||
| ## Retrieval Intelligence (v0.4.0) | ||
| Without retrieval, every question requires dumping the entire vault into context. With Ori, the cost stays flat. | ||
| Three learning layers that improve retrieval quality over time without manual tuning. Synthesized from 63 research sources across reinforcement learning, information retrieval, cognitive science, and bandit theory. | ||
| | Vault Size | Without Ori | With Ori | Savings | | ||
| |:----------:|:-----------:|:--------:|:-------:| | ||
| | 50 notes | 10,100 tokens | 850 tokens | **91%** | | ||
| | 200 notes | 40,400 tokens | 850 tokens | **98%** | | ||
| | 1,000 notes | 202,000 tokens | 850 tokens | **99.6%** | | ||
| | 5,000 notes | 1,010,000 tokens | 850 tokens | **99.9%** | | ||
| ### Layer 1 — Q-Value Reranking | ||
| A typical session costs **~$0.10** with Ori. Without it: **~$6.00+**. | ||
| Notes earn Q-values from session outcomes via exponential moving average updates. Over time, genuinely useful notes rise and noise sinks. | ||
| | Signal | Reward | What triggers it | | ||
| |--------|--------|-----------------| | ||
| | Forward citation | +1.0 | You `[[link]]` a retrieved note in new content | | ||
| | Update after retrieval | +0.5 | You edit a note you just retrieved | | ||
| | Downstream creation | +0.6 | You create a new note after retrieving | | ||
| | Within-session re-recall | +0.4 | Same note surfaces across different queries | | ||
| | Dead end (top-3, no follow-up) | −0.15 | Retrieved in top 3 but nothing follows | | ||
| After RRF fusion, Phase B reranks the candidate set with a lambda blend of similarity score and learned Q-value, plus a UCB-Tuned exploration bonus that ensures under-retrieved notes still get discovered. Exposure-aware correction prevents the same notes from dominating every session. A cumulative bias cap (MAX=3.0, compression=0.3) prevents runaway score inflation. | ||
| ### Layer 2 — Co-Occurrence Edges | ||
| Notes that are retrieved together grow edges between them — Hebbian learning on the knowledge graph. Edge weights are computed using NPMI normalization (genuine association beyond base rate), GloVe power-law frequency scaling, and Ebbinghaus decay with strength accumulation (frequently co-retrieved pairs decay slower). | ||
| Per-node Turrigiano homeostasis prevents hub notes from absorbing all edge weight. Bibliographic coupling bootstraps day-0 edges from existing wiki-link structure before any queries have been run. | ||
| The combined wiki-link + co-occurrence graph feeds a Personalized PageRank walk (HippoRAG, α=0.5) that surfaces notes semantic search alone would never find. | ||
| ### Layer 3 — Stage Meta-Learning | ||
| Each pipeline stage (BM25, PageRank, warmth, hub dampening, Q-reranking, co-occurrence PPR) is wrapped in a LinUCB contextual bandit with an 8-dimensional query feature vector. The system learns which stages help for which query types and auto-skips stages that consistently hurt. | ||
| Three-way decisions per stage: **run** / **skip** / **abstain** (stop the pipeline early). Cost-sensitive thresholds ensure expensive stages face a higher bar. Essential stages (semantic search, RRF fusion) never skip. An ACQO two-phase curriculum runs all stages during exploration (first 50 samples), then optimizes. | ||
| ### Session Learning Loop | ||
| ``` | ||
| Query → Retrieve → Use (cite, update, create) → Reward signals | ||
| ↓ ↓ | ||
| Co-occurrence edges grow Q-values update (session-end batch) | ||
| ↓ ↓ | ||
| Stage meta-learner updates Better retrieval next session | ||
| ``` | ||
| All updates happen in a single SQLite transaction at session end, in order: co-occurrence → Q-values → stage learning. | ||
| --- | ||
@@ -77,23 +127,26 @@ | ||
| ``` | ||
| Layer 4: MCP Server (14 tools, 5 resources) any agent talks to this | ||
| Layer 3: Three-Signal Retrieval Engine semantic + keyword + graph | ||
| Layer 2: Knowledge Graph + Vitality Model wiki-links, ACT-R decay, spreading activation | ||
| Layer 1: Markdown files on disk git-friendly, human-readable, portable | ||
| Layer 5: MCP Server 15 tools, 5 resources — any agent talks to this | ||
| Layer 4: Retrieval Intelligence Q-value reranking, co-occurrence learning, stage meta-optimization | ||
| Layer 3: Dampening Pipeline gravity, hub, resolution — ablation-validated | ||
| Layer 2: Four-Signal Fusion semantic + BM25 + PageRank + warmth → score-weighted RRF | ||
| Layer 1: Knowledge Graph + Vitality wiki-links, ACT-R decay, spreading activation, zone classification | ||
| Layer 0: Markdown files on disk git-friendly, human-readable, portable | ||
| ``` | ||
| 14 MCP tools. 5 resources. 16 CLI commands. 396 tests (328 unit + 68 integration). | ||
| 15 MCP tools · 5 resources · 16 CLI commands · 579 tests | ||
| --- | ||
| ## Three Spaces | ||
| ## Token Economics | ||
| Every vault has three memory spaces with distinct decay rates. | ||
| Without retrieval, every question requires dumping the entire vault into context. With Ori, the cost stays flat. | ||
| | Space | Path | Decay | What lives here | | ||
| |-------|------|-------|-----------------| | ||
| | **Identity** | `self/` | 0.1x | Who the agent is. Name, goals, methodology. Barely decays. | | ||
| | **Knowledge** | `notes/` | 1.0x | What the agent knows. Ideas, decisions, learnings, connections. | | ||
| | **Operations** | `ops/` | 3.0x | What the agent is doing. Daily tasks, reminders, sessions. Decays fast. | | ||
| | Vault Size | Without Ori | With Ori | Savings | | ||
| |:----------:|:-----------:|:--------:|:-------:| | ||
| | 50 notes | 10,100 tokens | 850 tokens | **91%** | | ||
| | 200 notes | 40,400 tokens | 850 tokens | **98%** | | ||
| | 1,000 notes | 202,000 tokens | 850 tokens | **99.6%** | | ||
| | 5,000 notes | 1,010,000 tokens | 850 tokens | **99.9%** | | ||
| Identity persists. Knowledge lives and dies by relevance. Operational state burns hot and clears itself. | ||
| A typical session costs **~$0.10** with Ori. Without it: **~$6.00+**. | ||
@@ -108,36 +161,35 @@ --- | ||
| Cline, custom agents, VPS) | ||
| | | ||
| │ | ||
| MCP Protocol | ||
| (stdio / JSON-RPC) | ||
| | | ||
| +-------------------+ | ||
| | Ori MCP Server | | ||
| | | | ||
| | instructions | identity auto-injected at connect | ||
| | resources | 5 readable endpoints (ori://) | ||
| | 14 tools | full memory operations | ||
| +-------------------+ | ||
| | | ||
| +-------------------+-------------------+ | ||
| | | | | ||
| +-----------+ +------------+ +------------+ | ||
| | Knowledge | | Identity | | Operations | | ||
| | Graph | | Layer | | Layer | | ||
| | | | | | | | ||
| | notes/ | | self/ | | ops/ | | ||
| | inbox/ | | identity | | daily | | ||
| | templates| | goals | | reminders | | ||
| | | | method. | | sessions | | ||
| +-----------+ +------------+ +------------+ | ||
| | | ||
| +-----+------+ | ||
| | | | ||
| Wiki-link Embedding | ||
| Graph Index | ||
| (in-memory) (SQLite) | ||
| | | | ||
| PageRank Semantic | ||
| Spreading Search | ||
| Activation BM25 | ||
| Communities 3-Signal Fusion | ||
| │ | ||
| ┌───────────────────┐ | ||
| │ Ori MCP Server │ | ||
| │ │ | ||
| │ instructions │ identity auto-injected | ||
| │ resources (5) │ ori:// endpoints | ||
| │ tools (15) │ full memory operations | ||
| └─────────┬─────────┘ | ||
| │ | ||
| ┌─────────────────┼─────────────────┐ | ||
| │ │ │ | ||
| ┌───────────┐ ┌───────────┐ ┌───────────┐ | ||
| │ Knowledge │ │ Identity │ │Operations │ | ||
| │ Graph │ │ Layer │ │ Layer │ | ||
| │ │ │ │ │ │ | ||
| │ notes/ │ │ self/ │ │ ops/ │ | ||
| │ inbox/ │ │ identity │ │ daily │ | ||
| │ templates│ │ goals │ │ reminders│ | ||
| └─────┬─────┘ │ method. │ │ sessions │ | ||
| │ └───────────┘ └───────────┘ | ||
| ┌─────┴──────┐ | ||
| │ │ | ||
| Wiki-link Embedding ┌──────────────────────┐ | ||
| Graph Index │ Retrieval Intelligence│ | ||
| (in-mem) (SQLite) │ │ | ||
| │ │ │ Q-values (note_q) │ | ||
| PageRank Semantic │ Co-occur (edges) │ | ||
| Spreading BM25 │ Stage Q (LinUCB) │ | ||
| Activation 4-Signal │ Dampening (3 stages)│ | ||
| Communities Fusion └──────────────────────┘ | ||
| ``` | ||
@@ -151,3 +203,3 @@ | ||
| |------|-------------| | ||
| | `ori_orient` | Session briefing: daily status, goals, reminders, vault health | | ||
| | `ori_orient` | Session briefing: daily status, goals, reminders, vault health, index freshness | | ||
| | `ori_update` | Write to identity, goals, methodology, daily, or reminders | | ||
@@ -158,10 +210,11 @@ | `ori_status` | Vault overview | | ||
| | `ori_promote` | Promote with classification, linking, and area assignment | | ||
| | `ori_validate` | Schema validation against templates | | ||
| | `ori_validate` | Schema validation | | ||
| | `ori_query` | Graph queries: orphans, dangling, backlinks, cross-project | | ||
| | `ori_query_ranked` | Three-signal retrieval with spreading activation | | ||
| | `ori_query_ranked` | Full retrieval with Q-value reranking, co-occurrence PPR, and stage meta-learning | | ||
| | `ori_warmth` | Inspect the associative warmth field | | ||
| | `ori_query_similar` | Semantic search (vector only, faster) | | ||
| | `ori_query_important` | PageRank authority ranking | | ||
| | `ori_query_fading` | Vitality-based decay detection | | ||
| | `ori_prune` | Activation topology and archive candidates | | ||
| | `ori_index_build` | Build or update the embedding index | | ||
| | `ori_prune` | Activation topology analysis and archive candidates | | ||
| | `ori_index_build` | Build/update embedding index and bootstrap co-occurrence edges | | ||
@@ -186,2 +239,6 @@ --- | ||
| # Retrieval | ||
| ori query ranked <query> # Full intelligent retrieval | ||
| ori query similar <query> # Semantic search | ||
| ori query important # PageRank ranking | ||
| ori query fading # Vitality detection | ||
| ori query orphans # Notes with no incoming links | ||
@@ -191,6 +248,2 @@ ori query dangling # Broken wiki-links | ||
| ori query cross-project # Multi-project notes | ||
| ori query ranked <query> # Three-signal retrieval | ||
| ori query similar <query> # Semantic search | ||
| ori query important # PageRank ranking | ||
| ori query fading # Vitality detection | ||
@@ -202,4 +255,10 @@ # Infrastructure | ||
| ori graph communities # Louvain clustering | ||
| ori serve --mcp [--vault <path>] # Run MCP server | ||
| ori bridge claude-code [--global] # Install Claude Code hooks | ||
| ori serve --mcp [--vault <path>] # Run MCP server | ||
| ori bridge claude-code --scope <project|global> # Install Claude adapter | ||
| ori bridge cursor --scope <project|global> # Install Cursor MCP config | ||
| ori bridge claude-code --activation <auto|manual> [--vault <p>] # Control startup behavior | ||
| ori bridge generic --scope <project|global> [--json] # Print generic MCP install plan | ||
| ori bridge status [--json] # Inspect project/global bridge installs | ||
| ori bridge claude-code --scope global --uninstall # Remove installed Claude config | ||
| ori bridge cursor --scope project --uninstall # Remove installed Cursor config | ||
| ``` | ||
@@ -244,2 +303,24 @@ | ||
| ## Install Model | ||
| Ori separates three install concepts: | ||
| - `scope`: `global` follows one vault across the machine, `project` stays inside one repo/workspace | ||
| - `activation`: `auto` runs `ori_orient` at session start where the adapter supports it, `manual` leaves tools available but does not auto-orient | ||
| - `vault`: explicit `--vault` wins; otherwise Ori resolves by install scope | ||
| Precedence rules: | ||
| - project install overrides global install | ||
| - explicit `--vault` overrides inferred vault | ||
| - project activation overrides global activation | ||
| Bridge lifecycle: | ||
| - rerun the same `ori bridge ...` command to update vault path or activation in place | ||
| - use `--uninstall` to remove Ori-owned config from supported adapters | ||
| - generic installs emit manual uninstall instructions because Ori does not own that client config surface | ||
| Claude Code is the first fully automated adapter. Cursor now has native MCP config install support. Other MCP-capable clients can use `ori bridge generic` now and wire the emitted config into their own client surface. | ||
| --- | ||
@@ -255,4 +336,5 @@ | ||
| | `activation` | Spreading activation: damping, max hops, min boost | | ||
| | `retrieval` | Signal weights, exploration budget | | ||
| | `retrieval` | Signal weights, exploration budget, RRF k | | ||
| | `engine` | Embedding model, database path | | ||
| | `warmth` | Surprise threshold, PPR parameters, graph weight | | ||
| | `promote` | Auto-promotion, project routing | | ||
@@ -287,3 +369,3 @@ | `llm` | Optional: Anthropic, OpenAI-compatible, or local models | | ||
| ```bash | ||
| npm test # 396 tests | ||
| npm test # 579 tests | ||
| npm run lint # Type check | ||
@@ -301,2 +383,2 @@ npm run dev # Watch mode | ||
| Memory is sovereignty. Ori gives your agent workflow life. | ||
| Memory is sovereignty. Ori gives your agent a mind. |
@@ -70,7 +70,18 @@ # ori.config.yaml - vault configuration for Ori Mnemos | ||
| signal_weights: | ||
| composite: 2.0 | ||
| keyword: 1.0 | ||
| graph: 1.5 | ||
| composite: 0.36 | ||
| keyword: 0.18 | ||
| graph: 0.26 | ||
| warmth: 0.20 | ||
| exploration_budget: 0.10 | ||
| warmth: | ||
| enabled: true | ||
| surprise_threshold: 0.15 | ||
| activation_threshold: 0.35 | ||
| ppr_alpha: 0.15 | ||
| ppr_iterations: 20 | ||
| graph_weight: 0.3 | ||
| max_results: 20 | ||
| shadow_compare_enabled: true | ||
| bm25: | ||
@@ -77,0 +88,0 @@ k1: 1.2 |
Network access
Supply chain riskThis module accesses the network.
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 5 instances
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
721890
51.36%228
26.67%9337
50.79%371
28.37%44
29.41%6
20%