@remnic/core 9.3.620 → 9.3.622

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/dist/access-cli.js +19 -19
  2. package/dist/access-http.js +10 -10
  3. package/dist/access-mcp.js +9 -9
  4. package/dist/access-service.js +8 -8
  5. package/dist/active-recall.js +1 -1
  6. package/dist/briefing.js +4 -4
  7. package/dist/causal-consolidation.js +5 -5
  8. package/dist/{chunk-5BTCT236.js → chunk-2GRRN7SZ.js} +2 -2
  9. package/dist/{chunk-TNOWU6RP.js → chunk-3GM7ZY6H.js} +5 -5
  10. package/dist/{chunk-AZDOWD2L.js → chunk-4G2RQTAE.js} +2 -2
  11. package/dist/{chunk-C6C7XVKG.js → chunk-4MHHUPNH.js} +2 -2
  12. package/dist/{chunk-NM5NQYJE.js → chunk-4NS2ELXF.js} +3 -3
  13. package/dist/{chunk-T7N6KQGS.js → chunk-5GOMXHLC.js} +6 -1
  14. package/dist/chunk-5GOMXHLC.js.map +1 -0
  15. package/dist/{chunk-UEY3VB6W.js → chunk-6HMYUWXR.js} +13 -3
  16. package/dist/chunk-6HMYUWXR.js.map +1 -0
  17. package/dist/{chunk-3HPAPHUK.js → chunk-6KYMPV2O.js} +12 -11
  18. package/dist/chunk-6KYMPV2O.js.map +1 -0
  19. package/dist/{chunk-S53OYO3F.js → chunk-7VFZTJ7K.js} +2 -2
  20. package/dist/{chunk-4RR6ROTB.js → chunk-AGNBY3VG.js} +2 -2
  21. package/dist/{chunk-OBIRVF36.js → chunk-AVHPSLQ2.js} +2 -2
  22. package/dist/{chunk-JQDZQ4TB.js → chunk-BMFZLLNI.js} +2 -2
  23. package/dist/{chunk-QPD426WT.js → chunk-CCNZM5UM.js} +2 -2
  24. package/dist/{chunk-QVO4YOB7.js → chunk-D2B22JDF.js} +2 -2
  25. package/dist/{chunk-7MLB4NCL.js → chunk-DXBCNDVD.js} +2 -2
  26. package/dist/{chunk-EXUAP5LH.js → chunk-EDP57PFC.js} +10 -10
  27. package/dist/{chunk-ZK32E74R.js → chunk-EOLCAPOU.js} +7 -7
  28. package/dist/{chunk-X4QQB7O6.js → chunk-FH3PPO42.js} +3 -3
  29. package/dist/{chunk-APRRL26Q.js → chunk-GA3PMY73.js} +2 -2
  30. package/dist/{chunk-IEUU7O4F.js → chunk-LANHQ7EN.js} +2 -2
  31. package/dist/{chunk-B6SU7YSE.js → chunk-LMZ7XQBB.js} +5 -5
  32. package/dist/{chunk-7XYTQGCC.js → chunk-MAV46GWQ.js} +2 -2
  33. package/dist/{chunk-KILOTVIF.js → chunk-MB5RSUW6.js} +2 -2
  34. package/dist/{chunk-CIOMS6DI.js → chunk-UCGCSZP2.js} +2 -2
  35. package/dist/{chunk-GLPBYIXN.js → chunk-UK727RHF.js} +2 -2
  36. package/dist/{chunk-KGLPJROV.js → chunk-VNR3K2R3.js} +17 -17
  37. package/dist/{chunk-5OHHEORR.js → chunk-XQUIHXNI.js} +3 -3
  38. package/dist/{chunk-PP2JH3GP.js → chunk-YPNGPHNZ.js} +2 -2
  39. package/dist/{chunk-DEPRLVLK.js → chunk-ZNCDQZIS.js} +2 -2
  40. package/dist/{chunk-VMGLYN42.js → chunk-ZUNNG6PC.js} +12 -7
  41. package/dist/chunk-ZUNNG6PC.js.map +1 -0
  42. package/dist/cli.js +23 -23
  43. package/dist/compounding/engine.js +4 -4
  44. package/dist/config.js +1 -1
  45. package/dist/connectors/codex-materialize-runner.js +4 -4
  46. package/dist/connectors/index.js +4 -4
  47. package/dist/entity-retrieval.js +4 -4
  48. package/dist/index.js +30 -30
  49. package/dist/lcm/engine.js +3 -3
  50. package/dist/lcm/index.js +3 -3
  51. package/dist/lcm/schema.js +2 -2
  52. package/dist/maintenance/memory-governance.js +4 -4
  53. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +4 -4
  54. package/dist/maintenance/rebuild-memory-projection.js +5 -5
  55. package/dist/memory-projection-store.js +2 -2
  56. package/dist/namespaces/migrate.js +5 -5
  57. package/dist/namespaces/storage.js +4 -4
  58. package/dist/objective-state-writers.js +2 -2
  59. package/dist/objective-state.js +1 -1
  60. package/dist/operator-toolkit.js +8 -8
  61. package/dist/orchestrator.js +14 -14
  62. package/dist/resume-bundles.js +3 -3
  63. package/dist/runtime/better-sqlite.d.ts +2 -1
  64. package/dist/runtime/better-sqlite.js +3 -1
  65. package/dist/schemas.d.ts +22 -22
  66. package/dist/semantic-consolidation.js +5 -5
  67. package/dist/semantic-rule-promotion.js +4 -4
  68. package/dist/semantic-rule-verifier.js +4 -4
  69. package/dist/storage.js +3 -3
  70. package/dist/transfer/export-sqlite.js +2 -2
  71. package/dist/transfer/import-sqlite.js +2 -2
  72. package/dist/transfer/types.d.ts +12 -12
  73. package/dist/verified-recall.js +4 -4
  74. package/package.json +1 -1
  75. package/src/config.ts +5 -0
  76. package/src/namespaces/storage.ts +30 -5
  77. package/src/objective-state.ts +17 -2
  78. package/src/runtime/better-sqlite.test.ts +29 -0
  79. package/src/runtime/better-sqlite.ts +30 -8
  80. package/dist/chunk-3HPAPHUK.js.map +0 -1
  81. package/dist/chunk-T7N6KQGS.js.map +0 -1
  82. package/dist/chunk-UEY3VB6W.js.map +0 -1
  83. package/dist/chunk-VMGLYN42.js.map +0 -1
  84. /package/dist/{chunk-5BTCT236.js.map → chunk-2GRRN7SZ.js.map} +0 -0
  85. /package/dist/{chunk-TNOWU6RP.js.map → chunk-3GM7ZY6H.js.map} +0 -0
  86. /package/dist/{chunk-AZDOWD2L.js.map → chunk-4G2RQTAE.js.map} +0 -0
  87. /package/dist/{chunk-C6C7XVKG.js.map → chunk-4MHHUPNH.js.map} +0 -0
  88. /package/dist/{chunk-NM5NQYJE.js.map → chunk-4NS2ELXF.js.map} +0 -0
  89. /package/dist/{chunk-S53OYO3F.js.map → chunk-7VFZTJ7K.js.map} +0 -0
  90. /package/dist/{chunk-4RR6ROTB.js.map → chunk-AGNBY3VG.js.map} +0 -0
  91. /package/dist/{chunk-OBIRVF36.js.map → chunk-AVHPSLQ2.js.map} +0 -0
  92. /package/dist/{chunk-JQDZQ4TB.js.map → chunk-BMFZLLNI.js.map} +0 -0
  93. /package/dist/{chunk-QPD426WT.js.map → chunk-CCNZM5UM.js.map} +0 -0
  94. /package/dist/{chunk-QVO4YOB7.js.map → chunk-D2B22JDF.js.map} +0 -0
  95. /package/dist/{chunk-7MLB4NCL.js.map → chunk-DXBCNDVD.js.map} +0 -0
  96. /package/dist/{chunk-EXUAP5LH.js.map → chunk-EDP57PFC.js.map} +0 -0
  97. /package/dist/{chunk-ZK32E74R.js.map → chunk-EOLCAPOU.js.map} +0 -0
  98. /package/dist/{chunk-X4QQB7O6.js.map → chunk-FH3PPO42.js.map} +0 -0
  99. /package/dist/{chunk-APRRL26Q.js.map → chunk-GA3PMY73.js.map} +0 -0
  100. /package/dist/{chunk-IEUU7O4F.js.map → chunk-LANHQ7EN.js.map} +0 -0
  101. /package/dist/{chunk-B6SU7YSE.js.map → chunk-LMZ7XQBB.js.map} +0 -0
  102. /package/dist/{chunk-7XYTQGCC.js.map → chunk-MAV46GWQ.js.map} +0 -0
  103. /package/dist/{chunk-KILOTVIF.js.map → chunk-MB5RSUW6.js.map} +0 -0
  104. /package/dist/{chunk-CIOMS6DI.js.map → chunk-UCGCSZP2.js.map} +0 -0
  105. /package/dist/{chunk-GLPBYIXN.js.map → chunk-UK727RHF.js.map} +0 -0
  106. /package/dist/{chunk-KGLPJROV.js.map → chunk-VNR3K2R3.js.map} +0 -0
  107. /package/dist/{chunk-5OHHEORR.js.map → chunk-XQUIHXNI.js.map} +0 -0
  108. /package/dist/{chunk-PP2JH3GP.js.map → chunk-YPNGPHNZ.js.map} +0 -0
  109. /package/dist/{chunk-DEPRLVLK.js.map → chunk-ZNCDQZIS.js.map} +0 -0
@@ -30,6 +30,15 @@ function validateValueRef(raw, field) {
30
30
  function validateMetadata(raw) {
31
31
  return validateStringRecord(raw, "metadata");
32
32
  }
33
+ function assertWithinDir(baseDir, candidate) {
34
+ const resolvedBase = path.resolve(baseDir);
35
+ const resolved = path.resolve(candidate);
36
+ const rel = path.relative(resolvedBase, resolved);
37
+ if (rel === ".." || rel.startsWith(`..${path.sep}`) || path.isAbsolute(rel)) {
38
+ throw new Error("objective-state path escapes the snapshots directory");
39
+ }
40
+ return resolved;
41
+ }
33
42
  function resolveObjectiveStateStoreDir(memoryDir, overrideDir) {
34
43
  if (typeof overrideDir === "string" && overrideDir.trim().length > 0) {
35
44
  return overrideDir.trim();
@@ -89,8 +98,9 @@ async function recordObjectiveStateSnapshot(options) {
89
98
  const rootDir = resolveObjectiveStateStoreDir(options.memoryDir, options.objectiveStateStoreDir);
90
99
  const validated = validateObjectiveStateSnapshot(options.snapshot);
91
100
  const day = recordStoreDay(validated.recordedAt);
92
- const snapshotsDir = path.join(rootDir, "snapshots", day);
93
- const filePath = path.join(snapshotsDir, `${validated.snapshotId}.json`);
101
+ const snapshotsRoot = path.join(rootDir, "snapshots");
102
+ const snapshotsDir = assertWithinDir(snapshotsRoot, path.join(snapshotsRoot, day));
103
+ const filePath = assertWithinDir(snapshotsDir, path.join(snapshotsDir, `${validated.snapshotId}.json`));
94
104
  await mkdir(snapshotsDir, { recursive: true });
95
105
  await writeFile(filePath, JSON.stringify(validated, null, 2), "utf8");
96
106
  return filePath;
@@ -208,4 +218,4 @@ export {
208
218
  getObjectiveStateStoreStatus,
209
219
  searchObjectiveStateSnapshots
210
220
  };
211
- //# sourceMappingURL=chunk-UEY3VB6W.js.map
221
+ //# sourceMappingURL=chunk-6HMYUWXR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/objective-state.ts"],"sourcesContent":["import path from \"node:path\";\nimport { mkdir, writeFile } from \"node:fs/promises\";\nimport { listJsonFiles, readJsonFile } from \"./json-store.js\";\nimport {\n assertIsoRecordedAt,\n assertSafePathSegment,\n assertString,\n isRecord,\n optionalString,\n optionalStringArray,\n recordStoreDay,\n validateStringRecord,\n} from \"./store-contract.js\";\n\nexport type ObjectiveStateSnapshotSource = \"tool_result\" | \"cli\" | \"system\" | \"manual\";\nexport type ObjectiveStateSnapshotKind = \"tool\" | \"file\" | \"process\" | \"record\" | \"workspace\";\nexport type ObjectiveStateChangeKind = \"created\" | \"updated\" | \"deleted\" | \"observed\" | \"executed\" | \"failed\";\nexport type ObjectiveStateOutcome = \"success\" | \"failure\" | \"partial\" | \"unknown\";\n\nexport interface ObjectiveStateValueRef {\n exists?: boolean;\n ref?: string;\n valueHash?: string;\n}\n\nexport interface ObjectiveStateSnapshot {\n schemaVersion: 1;\n snapshotId: string;\n recordedAt: string;\n sessionKey: string;\n source: ObjectiveStateSnapshotSource;\n kind: ObjectiveStateSnapshotKind;\n changeKind: ObjectiveStateChangeKind;\n scope: string;\n summary: string;\n toolName?: string;\n command?: string;\n outcome?: ObjectiveStateOutcome;\n before?: ObjectiveStateValueRef;\n after?: ObjectiveStateValueRef;\n entityRefs?: string[];\n tags?: string[];\n metadata?: Record<string, string>;\n}\n\nexport interface ObjectiveStateStoreStatus {\n enabled: boolean;\n writesEnabled: boolean;\n rootDir: string;\n snapshotsDir: string;\n snapshots: {\n total: number;\n valid: number;\n invalid: number;\n byKind: Partial<Record<ObjectiveStateSnapshotKind, number>>;\n byOutcome: Partial<Record<ObjectiveStateOutcome, number>>;\n latestSnapshotId?: string;\n latestRecordedAt?: string;\n latestSessionKey?: string;\n };\n latestSnapshot?: ObjectiveStateSnapshot;\n invalidSnapshots: Array<{\n path: string;\n error: string;\n }>;\n}\n\nexport interface ObjectiveStateSearchResult {\n snapshot: ObjectiveStateSnapshot;\n score: number;\n}\n\nfunction validateValueRef(raw: unknown, field: string): ObjectiveStateValueRef | undefined {\n if (raw === undefined) return undefined;\n if (!isRecord(raw)) throw new Error(`${field} must be an object`);\n const exists = typeof raw.exists === \"boolean\" ? raw.exists : undefined;\n const ref = optionalString(raw.ref);\n const valueHash = optionalString(raw.valueHash);\n if (exists === undefined && ref === undefined && valueHash === undefined) {\n throw new Error(`${field} must include exists, ref, or valueHash`);\n }\n return { exists, ref, valueHash };\n}\n\nfunction validateMetadata(raw: unknown): Record<string, string> | undefined {\n return validateStringRecord(raw, \"metadata\");\n}\n\n// Assert that a built path stays inside the expected base directory before it is\n// used in a filesystem write. snapshotId/recordedAt are already validated by\n// validateObjectiveStateSnapshot, so for valid data this is a defense-in-depth\n// barrier (and makes the containment provable to CodeQL js/path-injection).\nfunction assertWithinDir(baseDir: string, candidate: string): string {\n const resolvedBase = path.resolve(baseDir);\n const resolved = path.resolve(candidate);\n const rel = path.relative(resolvedBase, resolved);\n if (rel === \"..\" || rel.startsWith(`..${path.sep}`) || path.isAbsolute(rel)) {\n throw new Error(\"objective-state path escapes the snapshots directory\");\n }\n return resolved;\n}\n\nexport function resolveObjectiveStateStoreDir(memoryDir: string, overrideDir?: string): string {\n if (typeof overrideDir === \"string\" && overrideDir.trim().length > 0) {\n return overrideDir.trim();\n }\n return path.join(memoryDir, \"state\", \"objective-state\");\n}\n\nexport function objectiveStateStoreOverrideForNamespace(options: {\n memoryDir: string;\n configuredStoreDir?: string;\n namespacesEnabled: boolean;\n namespace: string;\n}): string | undefined {\n const configured = options.configuredStoreDir?.trim();\n if (!configured) return undefined;\n if (!options.namespacesEnabled) return configured;\n\n const defaultStoreDir = path.join(options.memoryDir, \"state\", \"objective-state\");\n if (path.resolve(configured) === path.resolve(defaultStoreDir)) {\n return undefined;\n }\n return path.join(configured, \"namespaces\", options.namespace);\n}\n\nexport function validateObjectiveStateSnapshot(raw: unknown): ObjectiveStateSnapshot {\n if (!isRecord(raw)) throw new Error(\"objective-state snapshot must be an object\");\n if (raw.schemaVersion !== 1) throw new Error(\"schemaVersion must be 1\");\n\n const source = assertString(raw.source, \"source\");\n if (![\"tool_result\", \"cli\", \"system\", \"manual\"].includes(source)) {\n throw new Error(\"source must be one of tool_result|cli|system|manual\");\n }\n\n const kind = assertString(raw.kind, \"kind\");\n if (![\"tool\", \"file\", \"process\", \"record\", \"workspace\"].includes(kind)) {\n throw new Error(\"kind must be one of tool|file|process|record|workspace\");\n }\n\n const changeKind = assertString(raw.changeKind, \"changeKind\");\n if (![\"created\", \"updated\", \"deleted\", \"observed\", \"executed\", \"failed\"].includes(changeKind)) {\n throw new Error(\"changeKind must be one of created|updated|deleted|observed|executed|failed\");\n }\n\n const outcomeRaw = optionalString(raw.outcome);\n if (outcomeRaw !== undefined && ![\"success\", \"failure\", \"partial\", \"unknown\"].includes(outcomeRaw)) {\n throw new Error(\"outcome must be one of success|failure|partial|unknown\");\n }\n\n return {\n schemaVersion: 1,\n snapshotId: assertSafePathSegment(assertString(raw.snapshotId, \"snapshotId\"), \"snapshotId\"),\n recordedAt: assertIsoRecordedAt(assertString(raw.recordedAt, \"recordedAt\")),\n sessionKey: assertString(raw.sessionKey, \"sessionKey\"),\n source: source as ObjectiveStateSnapshotSource,\n kind: kind as ObjectiveStateSnapshotKind,\n changeKind: changeKind as ObjectiveStateChangeKind,\n scope: assertString(raw.scope, \"scope\"),\n summary: assertString(raw.summary, \"summary\"),\n toolName: optionalString(raw.toolName),\n command: optionalString(raw.command),\n outcome: outcomeRaw as ObjectiveStateOutcome | undefined,\n before: validateValueRef(raw.before, \"before\"),\n after: validateValueRef(raw.after, \"after\"),\n entityRefs: optionalStringArray(raw.entityRefs, \"entityRefs\"),\n tags: optionalStringArray(raw.tags, \"tags\"),\n metadata: validateMetadata(raw.metadata),\n };\n}\n\nexport async function recordObjectiveStateSnapshot(options: {\n memoryDir: string;\n objectiveStateStoreDir?: string;\n snapshot: ObjectiveStateSnapshot;\n}): Promise<string> {\n const rootDir = resolveObjectiveStateStoreDir(options.memoryDir, options.objectiveStateStoreDir);\n const validated = validateObjectiveStateSnapshot(options.snapshot);\n const day = recordStoreDay(validated.recordedAt);\n const snapshotsRoot = path.join(rootDir, \"snapshots\");\n const snapshotsDir = assertWithinDir(snapshotsRoot, path.join(snapshotsRoot, day));\n const filePath = assertWithinDir(snapshotsDir, path.join(snapshotsDir, `${validated.snapshotId}.json`));\n await mkdir(snapshotsDir, { recursive: true });\n await writeFile(filePath, JSON.stringify(validated, null, 2), \"utf8\");\n return filePath;\n}\n\nexport async function getObjectiveStateStoreStatus(options: {\n memoryDir: string;\n objectiveStateStoreDir?: string;\n enabled: boolean;\n writesEnabled: boolean;\n}): Promise<ObjectiveStateStoreStatus> {\n const rootDir = resolveObjectiveStateStoreDir(options.memoryDir, options.objectiveStateStoreDir);\n const snapshotsDir = path.join(rootDir, \"snapshots\");\n const { files, snapshots, invalidSnapshots } = await readObjectiveStateSnapshots(options);\n\n snapshots.sort((a, b) => b.recordedAt.localeCompare(a.recordedAt));\n const byKind: Partial<Record<ObjectiveStateSnapshotKind, number>> = {};\n const byOutcome: Partial<Record<ObjectiveStateOutcome, number>> = {};\n for (const snapshot of snapshots) {\n byKind[snapshot.kind] = (byKind[snapshot.kind] ?? 0) + 1;\n const outcome = snapshot.outcome ?? \"unknown\";\n byOutcome[outcome] = (byOutcome[outcome] ?? 0) + 1;\n }\n\n return {\n enabled: options.enabled,\n writesEnabled: options.writesEnabled,\n rootDir,\n snapshotsDir,\n snapshots: {\n total: files.length,\n valid: snapshots.length,\n invalid: invalidSnapshots.length,\n byKind,\n byOutcome,\n latestSnapshotId: snapshots[0]?.snapshotId,\n latestRecordedAt: snapshots[0]?.recordedAt,\n latestSessionKey: snapshots[0]?.sessionKey,\n },\n latestSnapshot: snapshots[0],\n invalidSnapshots,\n };\n}\n\nasync function readObjectiveStateSnapshots(options: {\n memoryDir: string;\n objectiveStateStoreDir?: string;\n}): Promise<{\n files: string[];\n snapshots: ObjectiveStateSnapshot[];\n invalidSnapshots: Array<{ path: string; error: string }>;\n}> {\n const rootDir = resolveObjectiveStateStoreDir(options.memoryDir, options.objectiveStateStoreDir);\n const files = await listJsonFiles(path.join(rootDir, \"snapshots\"));\n const snapshots: ObjectiveStateSnapshot[] = [];\n const invalidSnapshots: Array<{ path: string; error: string }> = [];\n for (const filePath of files) {\n try {\n snapshots.push(validateObjectiveStateSnapshot(await readJsonFile(filePath)));\n } catch (error) {\n invalidSnapshots.push({\n path: filePath,\n error: error instanceof Error ? error.message : String(error),\n });\n }\n }\n return { files, snapshots, invalidSnapshots };\n}\n\nfunction normalizeTokens(value: string): string[] {\n return value\n .toLowerCase()\n .split(/[^a-z0-9]+/)\n .map((token) => token.trim())\n .filter((token) => token.length >= 2);\n}\n\nfunction overlapScore(queryTokens: Set<string>, value: string | undefined, weight: number): number {\n if (!value) return 0;\n const tokens = new Set(normalizeTokens(value));\n let matches = 0;\n for (const token of queryTokens) {\n if (tokens.has(token)) matches += 1;\n }\n return matches * weight;\n}\n\nfunction lexicalScoreObjectiveStateSnapshot(\n snapshot: ObjectiveStateSnapshot,\n queryTokens: Set<string>,\n): number {\n let score = 0;\n score += overlapScore(queryTokens, snapshot.scope, 4);\n score += overlapScore(queryTokens, snapshot.summary, 3);\n score += overlapScore(queryTokens, snapshot.command, 3);\n score += overlapScore(queryTokens, snapshot.toolName, 2);\n score += overlapScore(queryTokens, snapshot.tags?.join(\" \"), 2);\n score += overlapScore(queryTokens, snapshot.entityRefs?.join(\" \"), 2);\n score += overlapScore(queryTokens, snapshot.kind, 1);\n score += overlapScore(queryTokens, snapshot.changeKind, 1);\n score += overlapScore(queryTokens, snapshot.outcome, 1);\n return score;\n}\n\nfunction scoreObjectiveStateSnapshot(\n snapshot: ObjectiveStateSnapshot,\n lexicalScore: number,\n sessionKey?: string,\n): number {\n let score = lexicalScore;\n if (sessionKey && snapshot.sessionKey === sessionKey) score += 1.5;\n\n const recordedAtMs = Date.parse(snapshot.recordedAt);\n if (Number.isFinite(recordedAtMs)) {\n const ageHours = Math.max(0, (Date.now() - recordedAtMs) / 3_600_000);\n score += 1 / (1 + ageHours);\n }\n return score;\n}\n\nexport async function searchObjectiveStateSnapshots(options: {\n memoryDir: string;\n objectiveStateStoreDir?: string;\n query: string;\n maxResults: number;\n sessionKey?: string;\n}): Promise<ObjectiveStateSearchResult[]> {\n const maxResults = Math.max(0, Math.floor(options.maxResults));\n if (maxResults === 0) return [];\n\n const { snapshots } = await readObjectiveStateSnapshots(options);\n if (snapshots.length === 0) return [];\n\n const queryTokens = new Set(normalizeTokens(options.query));\n const scored = snapshots.map((snapshot) => {\n const lexicalScore = lexicalScoreObjectiveStateSnapshot(snapshot, queryTokens);\n return {\n snapshot,\n lexicalScore,\n score: scoreObjectiveStateSnapshot(snapshot, lexicalScore, options.sessionKey),\n };\n });\n\n const filtered = queryTokens.size === 0\n ? scored\n : scored.filter((result) => result.lexicalScore > 0);\n\n filtered.sort((left, right) => {\n if (right.score !== left.score) return right.score - left.score;\n return right.snapshot.recordedAt.localeCompare(left.snapshot.recordedAt);\n });\n return filtered.slice(0, maxResults);\n}\n"],"mappings":"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","names":[]}
@@ -23,29 +23,30 @@ function requireBetterSqlite3Ctor(require2) {
23
23
  }
24
24
  return ctor;
25
25
  }
26
+ function rawErrorMessage(error) {
27
+ return error instanceof Error ? error.message : String(error ?? "");
28
+ }
26
29
  function isLikelyBetterSqlite3NativeBindingError(error) {
27
- const detail = errorDetail(error);
30
+ const detail = rawErrorMessage(error);
28
31
  return detail.includes("Could not locate the bindings file") || detail.includes("better_sqlite3.node") || detail.includes("node-v") && detail.includes("better-sqlite3") || detail.includes("NODE_MODULE_VERSION") && detail.includes("better-sqlite3") || detail.includes("was compiled against a different Node.js version");
29
32
  }
30
33
  function unavailableError(error) {
31
- const detail = errorDetail(error);
34
+ const detail = displayErrorDetail(error);
32
35
  const nativeBindingHint = isLikelyBetterSqlite3NativeBindingError(error) ? " This usually means the better-sqlite3 native binding was not compiled for this Node.js/platform combination. Run `node scripts/ensure-better-sqlite3.mjs` from the Remnic install directory, or run `npx node-gyp rebuild --directory=node_modules/better-sqlite3` if the verification script is unavailable." : "";
33
36
  return new Error(
34
37
  "better-sqlite3 is unavailable. Remnic attempted to load the native SQLite binding and could not." + nativeBindingHint + (detail ? ` Original error: ${detail}` : ""),
35
38
  { cause: error instanceof Error ? error : void 0 }
36
39
  );
37
40
  }
38
- function errorDetail(error) {
39
- if (error instanceof Error) {
40
- const stack = error.stack && error.stack !== error.message ? `
41
- ${error.stack}` : "";
42
- return `${error.message}${stack}`;
43
- }
44
- return String(error ?? "");
41
+ function displayErrorDetail(error) {
42
+ if (!(error instanceof Error)) return "";
43
+ const code = error.code;
44
+ return typeof code === "string" && code.length > 0 ? `${error.name} (${code})` : error.name;
45
45
  }
46
46
 
47
47
  export {
48
48
  openBetterSqlite3,
49
- isLikelyBetterSqlite3NativeBindingError
49
+ isLikelyBetterSqlite3NativeBindingError,
50
+ displayErrorDetail
50
51
  };
51
- //# sourceMappingURL=chunk-3HPAPHUK.js.map
52
+ //# sourceMappingURL=chunk-6KYMPV2O.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/runtime/better-sqlite.ts"],"sourcesContent":["import { createRequire } from \"node:module\";\nimport type BetterSqlite3 from \"better-sqlite3\";\n\nexport type BetterSqlite3Database = BetterSqlite3.Database;\ntype BetterSqlite3Ctor = typeof BetterSqlite3;\ntype RuntimeRequire = ReturnType<typeof createRequire>;\n\nlet cachedCtor: BetterSqlite3Ctor | null = null;\n\nfunction loadBetterSqlite3(): BetterSqlite3Ctor {\n if (cachedCtor) return cachedCtor;\n\n const require = createRequire(import.meta.url);\n\n try {\n cachedCtor = requireBetterSqlite3Ctor(require);\n return cachedCtor;\n } catch (error) {\n throw unavailableError(error);\n }\n}\n\nexport function openBetterSqlite3(\n file: string,\n options?: ConstructorParameters<BetterSqlite3Ctor>[1],\n): BetterSqlite3Database {\n const Database = loadBetterSqlite3();\n return new Database(file, options);\n}\n\nfunction requireBetterSqlite3Ctor(require: RuntimeRequire): BetterSqlite3Ctor {\n const loaded = require(\"better-sqlite3\") as\n | BetterSqlite3Ctor\n | { default?: BetterSqlite3Ctor };\n const ctor = typeof loaded === \"function\" ? loaded : loaded.default;\n\n if (typeof ctor !== \"function\") {\n throw new Error(\"module did not export a constructor\");\n }\n\n return ctor;\n}\n\n// Raw, unredacted message — used ONLY for internal classification (detecting a\n// native-binding mismatch). Never returned to a user-facing surface, because it\n// can contain absolute paths. Native-binding markers (better_sqlite3.node,\n// NODE_MODULE_VERSION, \"was compiled against a different Node.js version\") live\n// in error.message, so message text is sufficient and we never read .stack.\nfunction rawErrorMessage(error: unknown): string {\n return error instanceof Error ? error.message : String(error ?? \"\");\n}\n\nexport function isLikelyBetterSqlite3NativeBindingError(error: unknown): boolean {\n // Classify on the RAW message so redaction can't strip detection markers\n // (e.g. the path containing \"better_sqlite3.node\").\n const detail = rawErrorMessage(error);\n return (\n detail.includes(\"Could not locate the bindings file\") ||\n detail.includes(\"better_sqlite3.node\") ||\n (detail.includes(\"node-v\") && detail.includes(\"better-sqlite3\")) ||\n (detail.includes(\"NODE_MODULE_VERSION\") && detail.includes(\"better-sqlite3\")) ||\n detail.includes(\"was compiled against a different Node.js version\")\n );\n}\n\nfunction unavailableError(error: unknown): Error {\n const detail = displayErrorDetail(error);\n const nativeBindingHint = isLikelyBetterSqlite3NativeBindingError(error)\n ? \" This usually means the better-sqlite3 native binding was not compiled for this Node.js/platform combination. \" +\n \"Run `node scripts/ensure-better-sqlite3.mjs` from the Remnic install directory, or run \" +\n \"`npx node-gyp rebuild --directory=node_modules/better-sqlite3` if the verification script is unavailable.\"\n : \"\";\n return new Error(\n \"better-sqlite3 is unavailable. Remnic attempted to load the native SQLite binding and could not.\" +\n nativeBindingHint +\n (detail ? ` Original error: ${detail}` : \"\"),\n { cause: error instanceof Error ? error : undefined },\n );\n}\n\n// Sanitized, user-facing error detail. This string becomes the message of the\n// Error thrown by unavailableError(), which propagates to user-facing surfaces\n// (HTTP error bodies, MCP tool errors — access-http.ts / access-mcp.ts return\n// err.message). We must not leak server internals (CodeQL js/stack-trace-exposure):\n// - error.stack is never read.\n// We deliberately surface only the error's class name and Node error code —\n// never the raw message. Node module-load failures embed absolute server paths\n// directly in error.message (the \"Require stack:\" block, and unquoted native\n// loader paths that may even contain spaces), which no regex can redact\n// reliably. The error code (MODULE_NOT_FOUND, ERR_DLOPEN_FAILED, …) is a stable,\n// path-free identifier that, together with the native-binding hint, is enough\n// for a user to act on. The full original error stays on the `cause` chain and\n// is logged with its stack elsewhere.\nexport function displayErrorDetail(error: unknown): string {\n if (!(error instanceof Error)) return \"\";\n const code = (error as NodeJS.ErrnoException).code;\n return typeof code === \"string\" && code.length > 0 ? `${error.name} (${code})` : error.name;\n}\n"],"mappings":";AAAA,SAAS,qBAAqB;AAO9B,IAAI,aAAuC;AAE3C,SAAS,oBAAuC;AAC9C,MAAI,WAAY,QAAO;AAEvB,QAAMA,WAAU,cAAc,YAAY,GAAG;AAE7C,MAAI;AACF,iBAAa,yBAAyBA,QAAO;AAC7C,WAAO;AAAA,EACT,SAAS,OAAO;AACd,UAAM,iBAAiB,KAAK;AAAA,EAC9B;AACF;AAEO,SAAS,kBACd,MACA,SACuB;AACvB,QAAM,WAAW,kBAAkB;AACnC,SAAO,IAAI,SAAS,MAAM,OAAO;AACnC;AAEA,SAAS,yBAAyBA,UAA4C;AAC5E,QAAM,SAASA,SAAQ,gBAAgB;AAGvC,QAAM,OAAO,OAAO,WAAW,aAAa,SAAS,OAAO;AAE5D,MAAI,OAAO,SAAS,YAAY;AAC9B,UAAM,IAAI,MAAM,qCAAqC;AAAA,EACvD;AAEA,SAAO;AACT;AAOA,SAAS,gBAAgB,OAAwB;AAC/C,SAAO,iBAAiB,QAAQ,MAAM,UAAU,OAAO,SAAS,EAAE;AACpE;AAEO,SAAS,wCAAwC,OAAyB;AAG/E,QAAM,SAAS,gBAAgB,KAAK;AACpC,SACE,OAAO,SAAS,oCAAoC,KACpD,OAAO,SAAS,qBAAqB,KACpC,OAAO,SAAS,QAAQ,KAAK,OAAO,SAAS,gBAAgB,KAC7D,OAAO,SAAS,qBAAqB,KAAK,OAAO,SAAS,gBAAgB,KAC3E,OAAO,SAAS,kDAAkD;AAEtE;AAEA,SAAS,iBAAiB,OAAuB;AAC/C,QAAM,SAAS,mBAAmB,KAAK;AACvC,QAAM,oBAAoB,wCAAwC,KAAK,IACnE,mTAGA;AACJ,SAAO,IAAI;AAAA,IACT,qGACE,qBACC,SAAS,oBAAoB,MAAM,KAAK;AAAA,IAC3C,EAAE,OAAO,iBAAiB,QAAQ,QAAQ,OAAU;AAAA,EACtD;AACF;AAeO,SAAS,mBAAmB,OAAwB;AACzD,MAAI,EAAE,iBAAiB,OAAQ,QAAO;AACtC,QAAM,OAAQ,MAAgC;AAC9C,SAAO,OAAO,SAAS,YAAY,KAAK,SAAS,IAAI,GAAG,MAAM,IAAI,KAAK,IAAI,MAAM,MAAM;AACzF;","names":["require"]}
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-Z734BLO3.js";
5
5
  import {
6
6
  openBetterSqlite3
7
- } from "./chunk-3HPAPHUK.js";
7
+ } from "./chunk-6KYMPV2O.js";
8
8
  import {
9
9
  computeTransferOutputRel,
10
10
  isTransferPathExcluded
@@ -58,4 +58,4 @@ async function exportSqlite(opts) {
58
58
  export {
59
59
  exportSqlite
60
60
  };
61
- //# sourceMappingURL=chunk-S53OYO3F.js.map
61
+ //# sourceMappingURL=chunk-7VFZTJ7K.js.map
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-G4IAEX6D.js";
8
8
  import {
9
9
  openBetterSqlite3
10
- } from "./chunk-3HPAPHUK.js";
10
+ } from "./chunk-6KYMPV2O.js";
11
11
  import {
12
12
  fileExists,
13
13
  prepareSafeArchiveRoot,
@@ -84,4 +84,4 @@ async function importSqlite(opts) {
84
84
  export {
85
85
  importSqlite
86
86
  };
87
- //# sourceMappingURL=chunk-4RR6ROTB.js.map
87
+ //# sourceMappingURL=chunk-AGNBY3VG.js.map
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  ALL_CATEGORY_DIRS,
6
6
  NamespaceStorageRouter
7
- } from "./chunk-VMGLYN42.js";
7
+ } from "./chunk-ZUNNG6PC.js";
8
8
  import {
9
9
  namespaceIdentityFromToken,
10
10
  namespaceIdentityToken
@@ -202,4 +202,4 @@ export {
202
202
  verifyNamespaces,
203
203
  runNamespaceMigration
204
204
  };
205
- //# sourceMappingURL=chunk-OBIRVF36.js.map
205
+ //# sourceMappingURL=chunk-AVHPSLQ2.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-CI7RKSRE.js";
4
4
  import {
5
5
  recordObjectiveStateSnapshot
6
- } from "./chunk-UEY3VB6W.js";
6
+ } from "./chunk-6HMYUWXR.js";
7
7
 
8
8
  // src/objective-state-writers.ts
9
9
  import crypto from "crypto";
@@ -644,4 +644,4 @@ export {
644
644
  recordObjectiveStateSnapshotsFromAgentMessages,
645
645
  recordObjectiveStateSnapshotsFromObservedMessages
646
646
  };
647
- //# sourceMappingURL=chunk-JQDZQ4TB.js.map
647
+ //# sourceMappingURL=chunk-BMFZLLNI.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-HQ6NIBL6.js";
4
4
  import {
5
5
  StorageManager
6
- } from "./chunk-7MLB4NCL.js";
6
+ } from "./chunk-DXBCNDVD.js";
7
7
  import {
8
8
  getCachedEpisodeMap,
9
9
  setCachedEpisodeMap
@@ -105,4 +105,4 @@ async function searchVerifiedEpisodes(options) {
105
105
  export {
106
106
  searchVerifiedEpisodes
107
107
  };
108
- //# sourceMappingURL=chunk-QPD426WT.js.map
108
+ //# sourceMappingURL=chunk-CCNZM5UM.js.map
@@ -10,7 +10,7 @@ import {
10
10
  import {
11
11
  ensureLcmStateDir,
12
12
  openLcmDatabase
13
- } from "./chunk-7XYTQGCC.js";
13
+ } from "./chunk-MAV46GWQ.js";
14
14
  import {
15
15
  LcmSummarizer
16
16
  } from "./chunk-5VDJMYTF.js";
@@ -513,4 +513,4 @@ export {
513
513
  extractLcmConfig,
514
514
  LcmEngine
515
515
  };
516
- //# sourceMappingURL=chunk-QVO4YOB7.js.map
516
+ //# sourceMappingURL=chunk-D2B22JDF.js.map
@@ -25,7 +25,7 @@ import {
25
25
  readProjectedMemoryBrowse,
26
26
  readProjectedMemoryState,
27
27
  readProjectedMemoryTimeline
28
- } from "./chunk-KILOTVIF.js";
28
+ } from "./chunk-MB5RSUW6.js";
29
29
  import {
30
30
  getCachedEntities,
31
31
  invalidateCachedEntities,
@@ -5361,4 +5361,4 @@ export {
5361
5361
  serializeEntityFile,
5362
5362
  StorageManager
5363
5363
  };
5364
- //# sourceMappingURL=chunk-7MLB4NCL.js.map
5364
+ //# sourceMappingURL=chunk-DXBCNDVD.js.map
@@ -12,7 +12,7 @@ import {
12
12
  } from "./chunk-6BDVBBBY.js";
13
13
  import {
14
14
  LcmEngine
15
- } from "./chunk-QVO4YOB7.js";
15
+ } from "./chunk-D2B22JDF.js";
16
16
  import {
17
17
  chunkTranscriptEntries
18
18
  } from "./chunk-TECVW3JP.js";
@@ -22,7 +22,7 @@ import {
22
22
  import {
23
23
  CompoundingEngine,
24
24
  defaultTierMigrationCycleBudget
25
- } from "./chunk-GLPBYIXN.js";
25
+ } from "./chunk-UK727RHF.js";
26
26
  import {
27
27
  SharedContextManager
28
28
  } from "./chunk-DRD2Q7HQ.js";
@@ -168,7 +168,7 @@ import {
168
168
  buildEntityRecallSection,
169
169
  entityRecentTranscriptLookbackHours,
170
170
  readRecentEntityTranscriptEntries
171
- } from "./chunk-IEUU7O4F.js";
171
+ } from "./chunk-LANHQ7EN.js";
172
172
  import {
173
173
  buildEventOrderRecallSection,
174
174
  shouldRecallEventOrderEvidence
@@ -203,7 +203,7 @@ import {
203
203
  materializeAfterSemanticConsolidation,
204
204
  parseConsolidationResponse,
205
205
  parseOperatorAwareConsolidationResponse
206
- } from "./chunk-DEPRLVLK.js";
206
+ } from "./chunk-ZNCDQZIS.js";
207
207
  import {
208
208
  normalizeReplaySessionKey
209
209
  } from "./chunk-2PRQG7PV.js";
@@ -212,13 +212,13 @@ import {
212
212
  } from "./chunk-X6IRLNOO.js";
213
213
  import {
214
214
  searchVerifiedEpisodes
215
- } from "./chunk-QPD426WT.js";
215
+ } from "./chunk-CCNZM5UM.js";
216
216
  import {
217
217
  ThreadingManager
218
218
  } from "./chunk-W4RVMTHR.js";
219
219
  import {
220
220
  searchVerifiedSemanticRules
221
- } from "./chunk-PP2JH3GP.js";
221
+ } from "./chunk-YPNGPHNZ.js";
222
222
  import {
223
223
  searchWorkProductLedgerEntries
224
224
  } from "./chunk-ZRWB5D4H.js";
@@ -237,7 +237,7 @@ import {
237
237
  } from "./chunk-CYEPCZN5.js";
238
238
  import {
239
239
  NamespaceStorageRouter
240
- } from "./chunk-VMGLYN42.js";
240
+ } from "./chunk-ZUNNG6PC.js";
241
241
  import {
242
242
  namespaceIdentityFromToken
243
243
  } from "./chunk-ZFXCQPNO.js";
@@ -321,7 +321,7 @@ import {
321
321
  import {
322
322
  objectiveStateStoreOverrideForNamespace,
323
323
  searchObjectiveStateSnapshots
324
- } from "./chunk-UEY3VB6W.js";
324
+ } from "./chunk-6HMYUWXR.js";
325
325
  import {
326
326
  ProfilingCollector
327
327
  } from "./chunk-QY7YA7OL.js";
@@ -342,7 +342,7 @@ import {
342
342
  normalizeAttributePairs,
343
343
  normalizeEntityName,
344
344
  parseEntityFile
345
- } from "./chunk-7MLB4NCL.js";
345
+ } from "./chunk-DXBCNDVD.js";
346
346
  import {
347
347
  attachCitation,
348
348
  hasCitationForTemplate,
@@ -12498,4 +12498,4 @@ export {
12498
12498
  resolvePersistedMemoryRelativePath,
12499
12499
  Orchestrator
12500
12500
  };
12501
- //# sourceMappingURL=chunk-EXUAP5LH.js.map
12501
+ //# sourceMappingURL=chunk-EDP57PFC.js.map
@@ -27,7 +27,7 @@ import {
27
27
  listMemoryGovernanceRuns,
28
28
  readMemoryGovernanceRunArtifact,
29
29
  runMemoryGovernance
30
- } from "./chunk-5BTCT236.js";
30
+ } from "./chunk-2GRRN7SZ.js";
31
31
  import {
32
32
  clusterByKey,
33
33
  combineNamespaces,
@@ -49,10 +49,10 @@ import {
49
49
  } from "./chunk-BPSGLMQ4.js";
50
50
  import {
51
51
  recordObjectiveStateSnapshotsFromObservedMessages
52
- } from "./chunk-JQDZQ4TB.js";
52
+ } from "./chunk-BMFZLLNI.js";
53
53
  import {
54
54
  objectiveStateStoreOverrideForNamespace
55
- } from "./chunk-UEY3VB6W.js";
55
+ } from "./chunk-6HMYUWXR.js";
56
56
  import {
57
57
  recordMemoryOutcome
58
58
  } from "./chunk-EIR5VLIH.js";
@@ -82,10 +82,10 @@ import {
82
82
  buildBriefing,
83
83
  parseBriefingFocus,
84
84
  parseBriefingWindow
85
- } from "./chunk-AZDOWD2L.js";
85
+ } from "./chunk-4G2RQTAE.js";
86
86
  import {
87
87
  parseEntityFile
88
- } from "./chunk-7MLB4NCL.js";
88
+ } from "./chunk-DXBCNDVD.js";
89
89
  import {
90
90
  DEFAULT_RECALL_DISCLOSURE,
91
91
  isRecallDisclosure
@@ -100,7 +100,7 @@ import {
100
100
  } from "./chunk-SCU65EZI.js";
101
101
  import {
102
102
  getMemoryProjectionPath
103
- } from "./chunk-KILOTVIF.js";
103
+ } from "./chunk-MB5RSUW6.js";
104
104
  import {
105
105
  defaultCapsulesDir
106
106
  } from "./chunk-ZY2MNJR6.js";
@@ -4349,4 +4349,4 @@ export {
4349
4349
  shapeMemorySummary,
4350
4350
  EngramAccessService
4351
4351
  };
4352
- //# sourceMappingURL=chunk-ZK32E74R.js.map
4352
+ //# sourceMappingURL=chunk-EOLCAPOU.js.map
@@ -11,11 +11,11 @@ import {
11
11
  } from "./chunk-LMDRGRJ2.js";
12
12
  import {
13
13
  parseConfig
14
- } from "./chunk-T7N6KQGS.js";
14
+ } from "./chunk-5GOMXHLC.js";
15
15
  import {
16
16
  resolveObjectiveStateStoreDir,
17
17
  validateObjectiveStateSnapshot
18
- } from "./chunk-UEY3VB6W.js";
18
+ } from "./chunk-6HMYUWXR.js";
19
19
  import {
20
20
  assertIsoRecordedAt,
21
21
  assertSafePathSegment,
@@ -268,4 +268,4 @@ export {
268
268
  recordResumeBundle,
269
269
  getResumeBundleStatus
270
270
  };
271
- //# sourceMappingURL=chunk-X4QQB7O6.js.map
271
+ //# sourceMappingURL=chunk-FH3PPO42.js.map
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-SFQ6QNL7.js";
7
7
  import {
8
8
  StorageManager
9
- } from "./chunk-7MLB4NCL.js";
9
+ } from "./chunk-DXBCNDVD.js";
10
10
  import {
11
11
  buildLifecycleEventsForMemory,
12
12
  sortMemoryLifecycleEvents
@@ -74,4 +74,4 @@ export {
74
74
  backupExistingLedger,
75
75
  rebuildMemoryLifecycleLedger
76
76
  };
77
- //# sourceMappingURL=chunk-APRRL26Q.js.map
77
+ //# sourceMappingURL=chunk-GA3PMY73.js.map
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  compareEntityTimestamps,
6
6
  normalizeEntityName
7
- } from "./chunk-7MLB4NCL.js";
7
+ } from "./chunk-DXBCNDVD.js";
8
8
  import {
9
9
  sanitizeMemoryContent
10
10
  } from "./chunk-FVQJYWH7.js";
@@ -677,4 +677,4 @@ export {
677
677
  entityIndexVersion,
678
678
  entityRecentTranscriptLookbackHours
679
679
  };
680
- //# sourceMappingURL=chunk-IEUU7O4F.js.map
680
+ //# sourceMappingURL=chunk-LANHQ7EN.js.map
@@ -10,10 +10,10 @@ import {
10
10
  import {
11
11
  listMemoryGovernanceRuns,
12
12
  readMemoryGovernanceRunArtifact
13
- } from "./chunk-5BTCT236.js";
13
+ } from "./chunk-2GRRN7SZ.js";
14
14
  import {
15
15
  StorageManager
16
- } from "./chunk-7MLB4NCL.js";
16
+ } from "./chunk-DXBCNDVD.js";
17
17
  import {
18
18
  MEMORY_LIFECYCLE_EVENT_SORT_ORDER,
19
19
  buildLifecycleEventsForMemory,
@@ -35,10 +35,10 @@ import {
35
35
  readProjectedEntityMentions,
36
36
  readProjectedGovernanceRecord,
37
37
  readProjectedNativeKnowledgeChunks
38
- } from "./chunk-KILOTVIF.js";
38
+ } from "./chunk-MB5RSUW6.js";
39
39
  import {
40
40
  openBetterSqlite3
41
- } from "./chunk-3HPAPHUK.js";
41
+ } from "./chunk-6KYMPV2O.js";
42
42
 
43
43
  // src/maintenance/rebuild-memory-projection.ts
44
44
  import path from "path";
@@ -929,4 +929,4 @@ export {
929
929
  verifyMemoryProjection,
930
930
  repairMemoryProjection
931
931
  };
932
- //# sourceMappingURL=chunk-B6SU7YSE.js.map
932
+ //# sourceMappingURL=chunk-LMZ7XQBB.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  openBetterSqlite3
3
- } from "./chunk-3HPAPHUK.js";
3
+ } from "./chunk-6KYMPV2O.js";
4
4
  import {
5
5
  log
6
6
  } from "./chunk-2ODBA7MQ.js";
@@ -131,4 +131,4 @@ export {
131
131
  ensureLcmStateDir,
132
132
  applyLcmSchema
133
133
  };
134
- //# sourceMappingURL=chunk-7XYTQGCC.js.map
134
+ //# sourceMappingURL=chunk-MAV46GWQ.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  openBetterSqlite3
3
- } from "./chunk-3HPAPHUK.js";
3
+ } from "./chunk-6KYMPV2O.js";
4
4
 
5
5
  // src/memory-projection-store.ts
6
6
  import path from "path";
@@ -725,4 +725,4 @@ export {
725
725
  readProjectedLatestReviewQueue,
726
726
  readProjectedGovernanceRecord
727
727
  };
728
- //# sourceMappingURL=chunk-KILOTVIF.js.map
728
+ //# sourceMappingURL=chunk-MB5RSUW6.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  StorageManager
3
- } from "./chunk-7MLB4NCL.js";
3
+ } from "./chunk-DXBCNDVD.js";
4
4
 
5
5
  // src/semantic-rule-promotion.ts
6
6
  import { createHash, randomUUID } from "crypto";
@@ -529,4 +529,4 @@ export {
529
529
  setSemanticRulePromotionTestHooks,
530
530
  promoteSemanticRuleFromMemory
531
531
  };
532
- //# sourceMappingURL=chunk-CIOMS6DI.js.map
532
+ //# sourceMappingURL=chunk-UCGCSZP2.js.map
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-DRD2Q7HQ.js";
5
5
  import {
6
6
  StorageManager
7
- } from "./chunk-7MLB4NCL.js";
7
+ } from "./chunk-DXBCNDVD.js";
8
8
  import {
9
9
  parseContinuityImprovementLoops
10
10
  } from "./chunk-QSVPYQPG.js";
@@ -1261,4 +1261,4 @@ export {
1261
1261
  defaultTierMigrationCycleBudget,
1262
1262
  CompoundingEngine
1263
1263
  };
1264
- //# sourceMappingURL=chunk-GLPBYIXN.js.map
1264
+ //# sourceMappingURL=chunk-UK727RHF.js.map
@@ -12,13 +12,13 @@ import {
12
12
  } from "./chunk-HDDRVXX4.js";
13
13
  import {
14
14
  importSqlite
15
- } from "./chunk-4RR6ROTB.js";
15
+ } from "./chunk-AGNBY3VG.js";
16
16
  import {
17
17
  exportJsonBundle
18
18
  } from "./chunk-UP6MOYCB.js";
19
19
  import {
20
20
  exportSqlite
21
- } from "./chunk-S53OYO3F.js";
21
+ } from "./chunk-7VFZTJ7K.js";
22
22
  import {
23
23
  detectImportFormat
24
24
  } from "./chunk-OZKVVUJB.js";
@@ -53,12 +53,12 @@ import {
53
53
  } from "./chunk-D6RIFG4O.js";
54
54
  import {
55
55
  rebuildMemoryLifecycleLedger
56
- } from "./chunk-APRRL26Q.js";
56
+ } from "./chunk-GA3PMY73.js";
57
57
  import {
58
58
  rebuildMemoryProjection,
59
59
  repairMemoryProjection,
60
60
  verifyMemoryProjection
61
- } from "./chunk-B6SU7YSE.js";
61
+ } from "./chunk-LMZ7XQBB.js";
62
62
  import {
63
63
  getBulkImportSource,
64
64
  listBulkImportSources,
@@ -70,12 +70,12 @@ import {
70
70
  } from "./chunk-YR6GIWWY.js";
71
71
  import {
72
72
  promoteSemanticRuleFromMemory
73
- } from "./chunk-CIOMS6DI.js";
73
+ } from "./chunk-UCGCSZP2.js";
74
74
  import {
75
75
  buildResumeBundleFromState,
76
76
  getResumeBundleStatus,
77
77
  recordResumeBundle
78
- } from "./chunk-X4QQB7O6.js";
78
+ } from "./chunk-FH3PPO42.js";
79
79
  import {
80
80
  parseXrayCliOptions
81
81
  } from "./chunk-3QSU4NFF.js";
@@ -89,12 +89,12 @@ import {
89
89
  runOperatorInventory,
90
90
  runOperatorRepair,
91
91
  runOperatorSetup
92
- } from "./chunk-TNOWU6RP.js";
92
+ } from "./chunk-3GM7ZY6H.js";
93
93
  import {
94
94
  listNamespaces,
95
95
  runNamespaceMigration,
96
96
  verifyNamespaces
97
- } from "./chunk-OBIRVF36.js";
97
+ } from "./chunk-AVHPSLQ2.js";
98
98
  import {
99
99
  collectPatternMemories,
100
100
  explainPatternMemory,
@@ -124,13 +124,13 @@ import {
124
124
  } from "./chunk-TERNBNJB.js";
125
125
  import {
126
126
  searchVerifiedEpisodes
127
- } from "./chunk-QPD426WT.js";
127
+ } from "./chunk-CCNZM5UM.js";
128
128
  import {
129
129
  ThreadingManager
130
130
  } from "./chunk-W4RVMTHR.js";
131
131
  import {
132
132
  searchVerifiedSemanticRules
133
- } from "./chunk-PP2JH3GP.js";
133
+ } from "./chunk-YPNGPHNZ.js";
134
134
  import {
135
135
  getWorkProductLedgerStatus,
136
136
  recordWorkProductLedgerEntry,
@@ -203,19 +203,19 @@ import {
203
203
  } from "./chunk-4WMCPJWX.js";
204
204
  import {
205
205
  parseConfig
206
- } from "./chunk-T7N6KQGS.js";
206
+ } from "./chunk-5GOMXHLC.js";
207
207
  import {
208
208
  getAbstractionNodeStoreStatus
209
209
  } from "./chunk-OADWQ5CR.js";
210
210
  import {
211
211
  EngramAccessHttpServer
212
- } from "./chunk-NM5NQYJE.js";
212
+ } from "./chunk-4NS2ELXF.js";
213
213
  import {
214
214
  EngramMcpServer
215
- } from "./chunk-5OHHEORR.js";
215
+ } from "./chunk-XQUIHXNI.js";
216
216
  import {
217
217
  EngramAccessService
218
- } from "./chunk-ZK32E74R.js";
218
+ } from "./chunk-EOLCAPOU.js";
219
219
  import {
220
220
  WorkStorage
221
221
  } from "./chunk-GDB4J2H3.js";
@@ -229,7 +229,7 @@ import {
229
229
  readMemoryGovernanceRunArtifact,
230
230
  restoreMemoryGovernanceRun,
231
231
  runMemoryGovernance
232
- } from "./chunk-5BTCT236.js";
232
+ } from "./chunk-2GRRN7SZ.js";
233
233
  import {
234
234
  getTrustZoneStoreStatus,
235
235
  promoteTrustZoneRecord,
@@ -237,7 +237,7 @@ import {
237
237
  } from "./chunk-JGSKJHF7.js";
238
238
  import {
239
239
  getObjectiveStateStoreStatus
240
- } from "./chunk-UEY3VB6W.js";
240
+ } from "./chunk-6HMYUWXR.js";
241
241
  import {
242
242
  analyzeGraphHealth
243
243
  } from "./chunk-XL7FK7PJ.js";
@@ -6623,4 +6623,4 @@ export {
6623
6623
  resolveMemoryDirForNamespace,
6624
6624
  registerCli
6625
6625
  };
6626
- //# sourceMappingURL=chunk-KGLPJROV.js.map
6626
+ //# sourceMappingURL=chunk-VNR3K2R3.js.map