@remnic/core 1.1.9 → 1.1.11

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 (209) hide show
  1. package/dist/access-cli.js +35 -32
  2. package/dist/access-cli.js.map +1 -1
  3. package/dist/access-http.d.ts +8 -7
  4. package/dist/access-http.js +17 -14
  5. package/dist/access-mcp.d.ts +8 -7
  6. package/dist/access-mcp.js +16 -13
  7. package/dist/{access-service-BJCIjVRY.d.ts → access-service-BkXt3di1.d.ts} +11 -9
  8. package/dist/access-service.d.ts +8 -7
  9. package/dist/access-service.js +15 -12
  10. package/dist/active-memory-bridge.d.ts +2 -1
  11. package/dist/active-recall.d.ts +2 -1
  12. package/dist/behavior-learner.d.ts +2 -1
  13. package/dist/behavior-signals.d.ts +2 -1
  14. package/dist/bootstrap.d.ts +7 -6
  15. package/dist/briefing.d.ts +3 -2
  16. package/dist/briefing.js +3 -3
  17. package/dist/buffer-surprise-report.d.ts +2 -1
  18. package/dist/buffer.d.ts +3 -2
  19. package/dist/calibration.d.ts +4 -1
  20. package/dist/calibration.js +10 -5
  21. package/dist/calibration.js.map +1 -1
  22. package/dist/causal-behavior.d.ts +2 -1
  23. package/dist/causal-consolidation.d.ts +5 -2
  24. package/dist/causal-consolidation.js +14 -8
  25. package/dist/causal-consolidation.js.map +1 -1
  26. package/dist/{chunk-ICULSMDG.js → chunk-2YMTO4ZJ.js} +2 -2
  27. package/dist/{chunk-XL3UCAZA.js → chunk-363MWCD3.js} +35 -35
  28. package/dist/{chunk-PHQH2VUO.js → chunk-36CTNQY7.js} +7 -7
  29. package/dist/{chunk-XN4D6Z7X.js → chunk-4DXC6HQQ.js} +5 -3
  30. package/dist/chunk-4DXC6HQQ.js.map +1 -0
  31. package/dist/{chunk-OWGGXPKV.js → chunk-57QNCUEZ.js} +5 -5
  32. package/dist/{chunk-LOBRX7VD.js → chunk-5UM2VJ6D.js} +12 -1
  33. package/dist/chunk-5UM2VJ6D.js.map +1 -0
  34. package/dist/{chunk-KMWZXT5T.js → chunk-6XA7UN4Z.js} +2 -2
  35. package/dist/{chunk-G6NX57V2.js → chunk-C5HUWVH2.js} +2 -2
  36. package/dist/{chunk-NN3TS5BM.js → chunk-D54LZC5L.js} +4 -4
  37. package/dist/{chunk-U4SZXGEO.js → chunk-EYNQTST2.js} +2 -2
  38. package/dist/chunk-HJYHRE4S.js +647 -0
  39. package/dist/chunk-HJYHRE4S.js.map +1 -0
  40. package/dist/{chunk-M3DK45UM.js → chunk-I6BQZSML.js} +4 -4
  41. package/dist/chunk-IBX3VFOM.js +446 -0
  42. package/dist/chunk-IBX3VFOM.js.map +1 -0
  43. package/dist/{chunk-G3G3LY22.js → chunk-KBYWQWSB.js} +7 -7
  44. package/dist/{chunk-FPWUENQH.js → chunk-KUHRUM6B.js} +92 -487
  45. package/dist/chunk-KUHRUM6B.js.map +1 -0
  46. package/dist/chunk-KWBPHZUU.js +83 -0
  47. package/dist/chunk-KWBPHZUU.js.map +1 -0
  48. package/dist/{chunk-CTYRIJ5E.js → chunk-LIO5X3CM.js} +2 -2
  49. package/dist/{chunk-MJLUHRSF.js → chunk-MCC6KDQF.js} +2 -2
  50. package/dist/{chunk-J3P6WSFZ.js → chunk-O4XJUPSF.js} +2 -2
  51. package/dist/{chunk-6OAQEOGV.js → chunk-PB5KW5PL.js} +2 -2
  52. package/dist/{chunk-Y3VT6ZCP.js → chunk-PHNGXFQ6.js} +5 -3
  53. package/dist/chunk-PHNGXFQ6.js.map +1 -0
  54. package/dist/{chunk-2MVUXO4H.js → chunk-RXTFCYQF.js} +2 -2
  55. package/dist/chunk-S2JJBLJG.js +2101 -0
  56. package/dist/chunk-S2JJBLJG.js.map +1 -0
  57. package/dist/{chunk-Q7FJ5ZHM.js → chunk-S3IP6R6K.js} +8 -2
  58. package/dist/{chunk-Q7FJ5ZHM.js.map → chunk-S3IP6R6K.js.map} +1 -1
  59. package/dist/{chunk-ET4BL42V.js → chunk-VQXK37XA.js} +1 -1
  60. package/dist/{chunk-ET4BL42V.js.map → chunk-VQXK37XA.js.map} +1 -1
  61. package/dist/{chunk-FLBYSB2V.js → chunk-VX2IUQFE.js} +94 -8
  62. package/dist/chunk-VX2IUQFE.js.map +1 -0
  63. package/dist/{chunk-QPLYTPYL.js → chunk-WGK4VHGP.js} +77 -15
  64. package/dist/chunk-WGK4VHGP.js.map +1 -0
  65. package/dist/{chunk-7SFAENUZ.js → chunk-WTFWLUSX.js} +2 -2
  66. package/dist/{chunk-A6PGANSE.js → chunk-Y5KDIOKF.js} +3 -3
  67. package/dist/{chunk-KIF7QNKL.js → chunk-Z5S5HNGY.js} +5 -3
  68. package/dist/chunk-Z5S5HNGY.js.map +1 -0
  69. package/dist/{chunk-BIHCWSWA.js → chunk-ZL4S7ARC.js} +3 -3
  70. package/dist/{cli-BojuyOOp.d.ts → cli-Cvy2SNhF.d.ts} +4 -4
  71. package/dist/cli.d.ts +9 -8
  72. package/dist/cli.js +27 -25
  73. package/dist/codex-cli-fallback.d.ts +44 -0
  74. package/dist/codex-cli-fallback.js +12 -0
  75. package/dist/{codex-materialize-YVC2wb6n.d.ts → codex-materialize-CQlLTzke.d.ts} +1 -1
  76. package/dist/compression-optimizer.d.ts +2 -1
  77. package/dist/config.d.ts +2 -1
  78. package/dist/consolidation-provenance-check.d.ts +3 -2
  79. package/dist/consolidation-undo.d.ts +3 -2
  80. package/dist/day-summary.d.ts +2 -1
  81. package/dist/delinearize.d.ts +2 -1
  82. package/dist/direct-answer-wiring.d.ts +2 -1
  83. package/dist/direct-answer.d.ts +2 -1
  84. package/dist/embedding-fallback.d.ts +2 -1
  85. package/dist/{engine-EDFFOWDD.js → engine-FOC3IJLA.js} +4 -4
  86. package/dist/entity-retrieval.d.ts +3 -2
  87. package/dist/entity-retrieval.js +3 -3
  88. package/dist/entity-schema.d.ts +2 -1
  89. package/dist/explicit-capture.d.ts +7 -6
  90. package/dist/explicit-cue-recall.d.ts +16 -1
  91. package/dist/explicit-cue-recall.js +7 -3
  92. package/dist/extraction-judge-telemetry.d.ts +2 -1
  93. package/dist/extraction-judge-training.d.ts +2 -1
  94. package/dist/extraction-judge.d.ts +2 -1
  95. package/dist/extraction.d.ts +2 -1
  96. package/dist/extraction.js +6 -4
  97. package/dist/fallback-llm.d.ts +8 -1
  98. package/dist/fallback-llm.js +5 -3
  99. package/dist/identity-continuity.d.ts +2 -1
  100. package/dist/importance.d.ts +2 -1
  101. package/dist/index-1qIcnbG1.d.ts +34 -0
  102. package/dist/index.d.ts +16 -14
  103. package/dist/index.js +62 -51
  104. package/dist/index.js.map +1 -1
  105. package/dist/intent.d.ts +2 -1
  106. package/dist/lifecycle.d.ts +2 -1
  107. package/dist/live-connectors-runner.d.ts +2 -1
  108. package/dist/local-llm.d.ts +2 -1
  109. package/dist/memory-action-policy.d.ts +2 -1
  110. package/dist/memory-cache.d.ts +2 -1
  111. package/dist/{memory-governance-AAQPBZEP.js → memory-governance-F3QOJGEY.js} +4 -4
  112. package/dist/memory-governance-F3QOJGEY.js.map +1 -0
  113. package/dist/memory-lifecycle-ledger-utils.d.ts +2 -1
  114. package/dist/{memory-projection-store-BW8u5U0u.d.ts → memory-projection-store-CY8TU40w.d.ts} +1 -1
  115. package/dist/memory-projection-store.d.ts +3 -2
  116. package/dist/memory-worth-outcomes.d.ts +3 -2
  117. package/dist/models-json.d.ts +2 -1
  118. package/dist/native-knowledge.d.ts +2 -1
  119. package/dist/objective-state-writers.d.ts +23 -1
  120. package/dist/objective-state-writers.js +10 -306
  121. package/dist/objective-state-writers.js.map +1 -1
  122. package/dist/objective-state.d.ts +7 -1
  123. package/dist/objective-state.js +3 -1
  124. package/dist/operator-toolkit.d.ts +3 -2
  125. package/dist/operator-toolkit.js +6 -6
  126. package/dist/{orchestrator-CYqmqxco.d.ts → orchestrator-AOQMo7QI.d.ts} +5 -3
  127. package/dist/orchestrator.d.ts +7 -6
  128. package/dist/orchestrator.js +29 -27
  129. package/dist/patterns-cli.d.ts +2 -1
  130. package/dist/policy-runtime.d.ts +2 -1
  131. package/dist/{port-Br27H8dy.d.ts → port-B6VEDIkC.d.ts} +1 -1
  132. package/dist/qmd-recall-cache.d.ts +3 -2
  133. package/dist/qmd.d.ts +3 -2
  134. package/dist/recall-disclosure-escalation.d.ts +2 -1
  135. package/dist/recall-explain-renderer.d.ts +2 -1
  136. package/dist/recall-explain-renderer.js +3 -3
  137. package/dist/recall-state.d.ts +2 -1
  138. package/dist/recall-tag-filter.d.ts +2 -1
  139. package/dist/recall-xray-cli.d.ts +2 -1
  140. package/dist/recall-xray-cli.js +4 -4
  141. package/dist/recall-xray-renderer.d.ts +2 -1
  142. package/dist/recall-xray-renderer.js +3 -3
  143. package/dist/recall-xray.d.ts +2 -1
  144. package/dist/recall-xray.js +2 -2
  145. package/dist/resolve-auth-token.d.ts +2 -1
  146. package/dist/resolve-provider-secret.d.ts +2 -1
  147. package/dist/resolve-provider-secret.js +3 -1
  148. package/dist/resume-bundles.js +3 -3
  149. package/dist/retrieval-agents.d.ts +3 -2
  150. package/dist/retrieval-tiers.d.ts +2 -1
  151. package/dist/schemas.d.ts +22 -22
  152. package/dist/sdk-compat.d.ts +3 -2
  153. package/dist/sdk-compat.js.map +1 -1
  154. package/dist/{semantic-consolidation-GPcLr9BQ.d.ts → semantic-consolidation-ByBXb-sf.d.ts} +2 -2
  155. package/dist/semantic-consolidation.d.ts +4 -3
  156. package/dist/semantic-consolidation.js +3 -3
  157. package/dist/semantic-rule-promotion.js +3 -3
  158. package/dist/semantic-rule-verifier.d.ts +2 -1
  159. package/dist/semantic-rule-verifier.js +3 -3
  160. package/dist/session-observer-bands.d.ts +2 -1
  161. package/dist/session-observer-state.d.ts +2 -1
  162. package/dist/signal.d.ts +2 -1
  163. package/dist/storage.d.ts +3 -2
  164. package/dist/storage.js +2 -2
  165. package/dist/summarizer.d.ts +2 -1
  166. package/dist/summarizer.js +6 -4
  167. package/dist/summary-snapshot.d.ts +2 -1
  168. package/dist/temporal-supersession.d.ts +3 -2
  169. package/dist/temporal-validity.d.ts +2 -1
  170. package/dist/threading.d.ts +2 -1
  171. package/dist/tier-migration.d.ts +4 -3
  172. package/dist/tier-routing.d.ts +2 -1
  173. package/dist/topics.d.ts +2 -1
  174. package/dist/transcript.d.ts +2 -1
  175. package/dist/types.d.ts +2693 -1
  176. package/dist/types.js +1 -1
  177. package/dist/utility-runtime.d.ts +2 -1
  178. package/dist/verified-recall.js +3 -3
  179. package/package.json +1 -1
  180. package/dist/chunk-3VRIIII5.js +0 -905
  181. package/dist/chunk-3VRIIII5.js.map +0 -1
  182. package/dist/chunk-FLBYSB2V.js.map +0 -1
  183. package/dist/chunk-FPWUENQH.js.map +0 -1
  184. package/dist/chunk-KIF7QNKL.js.map +0 -1
  185. package/dist/chunk-LOBRX7VD.js.map +0 -1
  186. package/dist/chunk-QPLYTPYL.js.map +0 -1
  187. package/dist/chunk-XN4D6Z7X.js.map +0 -1
  188. package/dist/chunk-Y3VT6ZCP.js.map +0 -1
  189. package/dist/types-Bmp9ssU2.d.ts +0 -2714
  190. /package/dist/{chunk-ICULSMDG.js.map → chunk-2YMTO4ZJ.js.map} +0 -0
  191. /package/dist/{chunk-XL3UCAZA.js.map → chunk-363MWCD3.js.map} +0 -0
  192. /package/dist/{chunk-PHQH2VUO.js.map → chunk-36CTNQY7.js.map} +0 -0
  193. /package/dist/{chunk-OWGGXPKV.js.map → chunk-57QNCUEZ.js.map} +0 -0
  194. /package/dist/{chunk-KMWZXT5T.js.map → chunk-6XA7UN4Z.js.map} +0 -0
  195. /package/dist/{chunk-G6NX57V2.js.map → chunk-C5HUWVH2.js.map} +0 -0
  196. /package/dist/{chunk-NN3TS5BM.js.map → chunk-D54LZC5L.js.map} +0 -0
  197. /package/dist/{chunk-U4SZXGEO.js.map → chunk-EYNQTST2.js.map} +0 -0
  198. /package/dist/{chunk-M3DK45UM.js.map → chunk-I6BQZSML.js.map} +0 -0
  199. /package/dist/{chunk-G3G3LY22.js.map → chunk-KBYWQWSB.js.map} +0 -0
  200. /package/dist/{chunk-CTYRIJ5E.js.map → chunk-LIO5X3CM.js.map} +0 -0
  201. /package/dist/{chunk-MJLUHRSF.js.map → chunk-MCC6KDQF.js.map} +0 -0
  202. /package/dist/{chunk-J3P6WSFZ.js.map → chunk-O4XJUPSF.js.map} +0 -0
  203. /package/dist/{chunk-6OAQEOGV.js.map → chunk-PB5KW5PL.js.map} +0 -0
  204. /package/dist/{chunk-2MVUXO4H.js.map → chunk-RXTFCYQF.js.map} +0 -0
  205. /package/dist/{chunk-7SFAENUZ.js.map → chunk-WTFWLUSX.js.map} +0 -0
  206. /package/dist/{chunk-A6PGANSE.js.map → chunk-Y5KDIOKF.js.map} +0 -0
  207. /package/dist/{chunk-BIHCWSWA.js.map → chunk-ZL4S7ARC.js.map} +0 -0
  208. /package/dist/{engine-EDFFOWDD.js.map → codex-cli-fallback.js.map} +0 -0
  209. /package/dist/{memory-governance-AAQPBZEP.js.map → engine-FOC3IJLA.js.map} +0 -0
@@ -36,6 +36,16 @@ function resolveObjectiveStateStoreDir(memoryDir, overrideDir) {
36
36
  }
37
37
  return path.join(memoryDir, "state", "objective-state");
38
38
  }
39
+ function objectiveStateStoreOverrideForNamespace(options) {
40
+ const configured = options.configuredStoreDir?.trim();
41
+ if (!configured) return void 0;
42
+ if (!options.namespacesEnabled) return configured;
43
+ const defaultStoreDir = path.join(options.memoryDir, "state", "objective-state");
44
+ if (path.resolve(configured) === path.resolve(defaultStoreDir)) {
45
+ return void 0;
46
+ }
47
+ return path.join(configured, "namespaces", options.namespace);
48
+ }
39
49
  function validateObjectiveStateSnapshot(raw) {
40
50
  if (!isRecord(raw)) throw new Error("objective-state snapshot must be an object");
41
51
  if (raw.schemaVersion !== 1) throw new Error("schemaVersion must be 1");
@@ -192,9 +202,10 @@ async function searchObjectiveStateSnapshots(options) {
192
202
 
193
203
  export {
194
204
  resolveObjectiveStateStoreDir,
205
+ objectiveStateStoreOverrideForNamespace,
195
206
  validateObjectiveStateSnapshot,
196
207
  recordObjectiveStateSnapshot,
197
208
  getObjectiveStateStoreStatus,
198
209
  searchObjectiveStateSnapshots
199
210
  };
200
- //# sourceMappingURL=chunk-LOBRX7VD.js.map
211
+ //# sourceMappingURL=chunk-5UM2VJ6D.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\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 snapshotsDir = path.join(rootDir, \"snapshots\", day);\n const filePath = 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":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  StorageManager
3
- } from "./chunk-MJLUHRSF.js";
3
+ } from "./chunk-MCC6KDQF.js";
4
4
 
5
5
  // src/semantic-rule-promotion.ts
6
6
  function normalizeRuleWhitespace(value) {
@@ -132,4 +132,4 @@ async function promoteSemanticRuleFromMemory(options) {
132
132
  export {
133
133
  promoteSemanticRuleFromMemory
134
134
  };
135
- //# sourceMappingURL=chunk-KMWZXT5T.js.map
135
+ //# sourceMappingURL=chunk-6XA7UN4Z.js.map
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-DT5TVLJE.js";
10
10
  import {
11
11
  StorageManager
12
- } from "./chunk-MJLUHRSF.js";
12
+ } from "./chunk-MCC6KDQF.js";
13
13
  import {
14
14
  isSemanticConsolidationLlmOperator
15
15
  } from "./chunk-G7D6GZ5J.js";
@@ -888,4 +888,4 @@ export {
888
888
  buildExtensionsBlockForConsolidation,
889
889
  materializeAfterSemanticConsolidation
890
890
  };
891
- //# sourceMappingURL=chunk-G6NX57V2.js.map
891
+ //# sourceMappingURL=chunk-C5HUWVH2.js.map
@@ -1,9 +1,9 @@
1
- import {
2
- expandTildePath
3
- } from "./chunk-IXEJRKCZ.js";
4
1
  import {
5
2
  launchProcessSync
6
3
  } from "./chunk-OR64ZGRZ.js";
4
+ import {
5
+ expandTildePath
6
+ } from "./chunk-IXEJRKCZ.js";
7
7
 
8
8
  // src/coding/git-context.ts
9
9
  import path from "path";
@@ -144,4 +144,4 @@ export {
144
144
  normalizeOriginUrl,
145
145
  resolveGitContext
146
146
  };
147
- //# sourceMappingURL=chunk-NN3TS5BM.js.map
147
+ //# sourceMappingURL=chunk-D54LZC5L.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-TBBDFYXW.js";
4
4
  import {
5
5
  StorageManager
6
- } from "./chunk-MJLUHRSF.js";
6
+ } from "./chunk-MCC6KDQF.js";
7
7
 
8
8
  // src/maintenance/memory-governance.ts
9
9
  import path from "path";
@@ -718,4 +718,4 @@ export {
718
718
  listMemoryGovernanceRuns,
719
719
  readMemoryGovernanceRunArtifact
720
720
  };
721
- //# sourceMappingURL=chunk-U4SZXGEO.js.map
721
+ //# sourceMappingURL=chunk-EYNQTST2.js.map