@jungjaehoon/mama-core 2.4.1 → 4.1.0

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 (378) hide show
  1. package/README.md +76 -239
  2. package/db/migrations/030-case-first-memory-substrate.sql +13 -98
  3. package/db/migrations/034-add-connector-event-scope-columns.sql +9 -13
  4. package/db/migrations/039-add-connector-event-operator-ingest-seq.sql +9 -95
  5. package/db/migrations/062-refresh-connector-event-sequences.sql +9 -113
  6. package/db/migrations/063-refresh-legacy-connector-event-updates.sql +9 -32
  7. package/db/migrations/067-add-connector-event-source-entity-id.sql +9 -13
  8. package/db/migrations/069-create-registry-nodes.sql +52 -0
  9. package/db/migrations/070-record-identity.sql +35 -0
  10. package/db/migrations/071-service-operation-origins.sql +187 -0
  11. package/db/migrations/072-observation-versions.sql +29 -0
  12. package/db/migrations/073-registry-corrections.sql +45 -0
  13. package/db/migrations/074-work-graph-ref-kinds.sql +39 -0
  14. package/db/migrations/075-agent-judgments.sql +58 -0
  15. package/db/migrations/076-scoped-checkpoint-bindings.sql +15 -0
  16. package/db/migrations/077-legacy-record-kind.sql +6 -0
  17. package/db/migrations/078-source-ingest-commands.sql +18 -0
  18. package/db/migrations/079-twin-edge-relations.sql +43 -0
  19. package/db/migrations/080-restore-duration-days.sql +7 -0
  20. package/db/migrations/081-mailbox.sql +61 -0
  21. package/db/migrations/082-commitments-row-id.sql +12 -0
  22. package/db/migrations/083-observation-is-the-evidence.sql +49 -0
  23. package/db/migrations/084-scope-kind-is-not-the-cores-to-list.sql +34 -0
  24. package/db/migrations/085-a-migration-has-a-source.sql +37 -0
  25. package/db/migrations/086-the-mailbox-is-generic.sql +110 -0
  26. package/db/migrations/087-mailbox-payload.sql +5 -0
  27. package/db/migrations/088-native-input-journal.sql +14 -0
  28. package/db/migrations/089-native-turn-receipt-lookup.sql +3 -0
  29. package/db/migrations/090-model-run-native-inputs.sql +29 -0
  30. package/db/migrations/091-native-turn-results.sql +11 -0
  31. package/db/migrations/092-restore-decision-fts.sql +34 -0
  32. package/db/migrations/093-native-turn-primary-kind.sql +14 -0
  33. package/db/migrations/094-commitment-run-provenance.sql +9 -0
  34. package/db/migrations/095-model-run-native-input-identity.sql +39 -0
  35. package/db/migrations/096-drop-connector-event-index-fts.sql +9 -0
  36. package/db/migrations/097-native-input-json-validity.sql +37 -0
  37. package/db/migrations/098-workflow-memory-kind.sql +105 -0
  38. package/db/migrations/099-commitment-revision-graph.sql +2 -0
  39. package/dist/action-contracts.d.ts +212 -0
  40. package/dist/action-contracts.js +10 -0
  41. package/dist/api/catalog.d.ts +118 -0
  42. package/dist/api/catalog.js +1756 -0
  43. package/dist/api/dispatch.d.ts +76 -0
  44. package/dist/api/dispatch.js +372 -0
  45. package/dist/canonicalize.d.ts +2 -2
  46. package/dist/canonicalize.js +3 -3
  47. package/dist/client/client.d.ts +33 -0
  48. package/dist/client/client.js +123 -0
  49. package/dist/client/ipc.d.ts +81 -0
  50. package/dist/client/ipc.js +314 -0
  51. package/dist/db-adapter/base-adapter.d.ts +6 -66
  52. package/dist/db-adapter/base-adapter.js +6 -6
  53. package/dist/db-adapter/index.d.ts +5 -5
  54. package/dist/db-adapter/index.js +2 -5
  55. package/dist/db-adapter/node-sqlite-adapter.d.ts +85 -15
  56. package/dist/db-adapter/node-sqlite-adapter.js +1985 -570
  57. package/dist/db-manager.d.ts +53 -97
  58. package/dist/db-manager.js +121 -603
  59. package/dist/embedding/embedder.d.ts +132 -0
  60. package/dist/embedding/embedder.js +299 -0
  61. package/dist/identity/principal-repository.d.ts +2 -2
  62. package/dist/index.d.ts +43 -58
  63. package/dist/index.js +97 -145
  64. package/dist/{context-compile/channel-grant.d.ts → knowledge/access.d.ts} +12 -17
  65. package/dist/knowledge/access.js +663 -0
  66. package/dist/knowledge/case-errors.d.ts +31 -0
  67. package/dist/knowledge/case-errors.js +40 -0
  68. package/dist/{cases/search-rollup.d.ts → knowledge/case-search-rollup.d.ts} +5 -4
  69. package/dist/{cases/search-rollup.js → knowledge/case-search-rollup.js} +6 -8
  70. package/dist/{cases/store.d.ts → knowledge/case-store.d.ts} +3 -6
  71. package/dist/{cases/store.js → knowledge/case-store.js} +7 -42
  72. package/dist/{cases/timeline-range.d.ts → knowledge/case-timeline-range.d.ts} +3 -3
  73. package/dist/{cases/timeline-range.js → knowledge/case-timeline-range.js} +47 -25
  74. package/dist/{cases/types.d.ts → knowledge/case-types.d.ts} +8 -2
  75. package/dist/{cases/types.js → knowledge/case-types.js} +1 -1
  76. package/dist/knowledge/commitment-revision-migration.d.ts +4 -0
  77. package/dist/knowledge/commitment-revision-migration.js +50 -0
  78. package/dist/knowledge/commitments.d.ts +192 -0
  79. package/dist/knowledge/commitments.js +386 -0
  80. package/dist/knowledge/decision-edges.d.ts +70 -0
  81. package/dist/knowledge/decision-edges.js +123 -0
  82. package/dist/{agent-graph/types.d.ts → knowledge/graph-query.d.ts} +80 -70
  83. package/dist/knowledge/graph-query.js +1585 -0
  84. package/dist/knowledge/identity.d.ts +16 -0
  85. package/dist/knowledge/identity.js +22 -0
  86. package/dist/knowledge/index.d.ts +47 -0
  87. package/dist/knowledge/index.js +90 -0
  88. package/dist/knowledge/judgment-edge.d.ts +6 -0
  89. package/dist/knowledge/judgment-edge.js +22 -0
  90. package/dist/knowledge/judgments.d.ts +118 -0
  91. package/dist/knowledge/judgments.js +802 -0
  92. package/dist/knowledge/observations.d.ts +160 -0
  93. package/dist/knowledge/observations.js +449 -0
  94. package/dist/knowledge/question-type.d.ts +34 -0
  95. package/dist/knowledge/question-type.js +70 -0
  96. package/dist/{search → knowledge}/ranker-features.js +1 -1
  97. package/dist/{search → knowledge}/search-quality.d.ts +0 -1
  98. package/dist/knowledge/search.d.ts +38 -0
  99. package/dist/knowledge/search.js +91 -0
  100. package/dist/knowledge/source-ingest.d.ts +65 -0
  101. package/dist/knowledge/source-ingest.js +174 -0
  102. package/dist/{edges/types.d.ts → knowledge/twin-edge-types.d.ts} +31 -4
  103. package/dist/{edges/types.js → knowledge/twin-edge-types.js} +13 -2
  104. package/dist/knowledge/work-dates.d.ts +49 -0
  105. package/dist/knowledge/work-dates.js +120 -0
  106. package/dist/mama-api.d.ts +114 -778
  107. package/dist/mama-api.js +313 -2461
  108. package/dist/memory/api.d.ts +264 -24
  109. package/dist/memory/api.js +1633 -843
  110. package/dist/memory/bootstrap-builder.d.ts +2 -1
  111. package/dist/memory/bootstrap-builder.js +5 -5
  112. package/dist/memory/channel-summary-state-store.d.ts +3 -2
  113. package/dist/memory/channel-summary-state-store.js +53 -51
  114. package/dist/memory/channel-summary-store.d.ts +5 -3
  115. package/dist/memory/channel-summary-store.js +3 -8
  116. package/dist/memory/dashboard-read.d.ts +46 -0
  117. package/dist/memory/dashboard-read.js +94 -0
  118. package/dist/memory/event-store.d.ts +3 -3
  119. package/dist/memory/event-store.js +3 -10
  120. package/dist/memory/finding-store.d.ts +3 -2
  121. package/dist/memory/finding-store.js +2 -7
  122. package/dist/memory/graph-read.d.ts +52 -0
  123. package/dist/memory/graph-read.js +130 -0
  124. package/dist/memory/judgment-types.d.ts +394 -0
  125. package/dist/memory/judgment-types.js +16 -0
  126. package/dist/memory/provenance-audit.d.ts +5 -2
  127. package/dist/memory/provenance-audit.js +8 -14
  128. package/dist/memory/provenance-live.d.ts +141 -0
  129. package/dist/memory/provenance-live.js +409 -0
  130. package/dist/memory/provenance-query.d.ts +5 -4
  131. package/dist/memory/provenance-query.js +21 -29
  132. package/dist/memory/provenance-resolver.d.ts +191 -0
  133. package/dist/memory/provenance-resolver.js +155 -0
  134. package/dist/memory/provenance.d.ts +1 -11
  135. package/dist/memory/provenance.js +2 -33
  136. package/dist/memory/recall-sanitize.d.ts +55 -0
  137. package/dist/memory/recall-sanitize.js +144 -0
  138. package/dist/memory/secret-filter.d.ts +32 -0
  139. package/dist/memory/secret-filter.js +126 -0
  140. package/dist/memory/truth-store.d.ts +2 -1
  141. package/dist/memory/truth-store.js +1 -4
  142. package/dist/memory/types.d.ts +74 -24
  143. package/dist/memory/types.js +75 -5
  144. package/dist/memory/write-adapters.d.ts +98 -0
  145. package/dist/memory/write-adapters.js +242 -0
  146. package/dist/operations/owner-action-effects.d.ts +53 -0
  147. package/dist/operations/owner-action-effects.js +96 -0
  148. package/dist/provenance/source-ref.d.ts +1 -1
  149. package/dist/provenance/source-ref.js +0 -2
  150. package/dist/registry/corrections.d.ts +31 -0
  151. package/dist/registry/corrections.js +332 -0
  152. package/dist/registry/record-identity.d.ts +49 -0
  153. package/dist/registry/record-identity.js +133 -0
  154. package/dist/registry/store.d.ts +101 -0
  155. package/dist/registry/store.js +395 -0
  156. package/dist/registry/types.d.ts +28 -0
  157. package/dist/registry/types.js +5 -0
  158. package/dist/relevance-scorer.js +2 -2
  159. package/dist/runtime/agent-event-bus.d.ts +50 -0
  160. package/dist/runtime/agent-event-bus.js +101 -0
  161. package/dist/runtime/drivers/claude-cli-wrapper.d.ts +152 -0
  162. package/dist/runtime/drivers/claude-cli-wrapper.js +375 -0
  163. package/dist/runtime/drivers/claude-effort.d.ts +4 -0
  164. package/dist/runtime/drivers/claude-effort.js +16 -0
  165. package/dist/runtime/drivers/cli-arg-redaction.d.ts +2 -0
  166. package/dist/runtime/drivers/cli-arg-redaction.js +18 -0
  167. package/dist/runtime/drivers/cli-secret-redaction.d.ts +17 -0
  168. package/dist/runtime/drivers/cli-secret-redaction.js +126 -0
  169. package/dist/runtime/drivers/codex-app-server-process.d.ts +277 -0
  170. package/dist/runtime/drivers/codex-app-server-process.js +2342 -0
  171. package/dist/runtime/drivers/codex-auxiliary-tools.d.ts +17 -0
  172. package/dist/runtime/drivers/codex-auxiliary-tools.js +267 -0
  173. package/dist/runtime/drivers/codex-home.d.ts +20 -0
  174. package/dist/runtime/drivers/codex-home.js +674 -0
  175. package/dist/runtime/drivers/codex-thread-registry.d.ts +63 -0
  176. package/dist/runtime/drivers/codex-thread-registry.js +433 -0
  177. package/dist/runtime/drivers/persistent-cli-adapter.d.ts +160 -0
  178. package/dist/runtime/drivers/persistent-cli-adapter.js +396 -0
  179. package/dist/runtime/drivers/persistent-cli-process.d.ts +425 -0
  180. package/dist/runtime/drivers/persistent-cli-process.js +1529 -0
  181. package/dist/runtime/drivers/types.d.ts +456 -0
  182. package/dist/runtime/drivers/types.js +110 -0
  183. package/dist/runtime/mailbox.d.ts +223 -0
  184. package/dist/runtime/mailbox.js +582 -0
  185. package/dist/runtime/model-run-store.d.ts +28 -0
  186. package/dist/{model-runs/store.js → runtime/model-run-store.js} +81 -41
  187. package/dist/{model-runs/types.d.ts → runtime/model-run-types.d.ts} +33 -4
  188. package/dist/{model-runs/types.js → runtime/model-run-types.js} +1 -1
  189. package/dist/runtime/native-effect-observer.d.ts +22 -0
  190. package/dist/runtime/native-effect-observer.js +103 -0
  191. package/dist/runtime/native-input-journal.d.ts +46 -0
  192. package/dist/runtime/native-input-journal.js +308 -0
  193. package/dist/runtime/native-prompt.d.ts +118 -0
  194. package/dist/runtime/native-prompt.js +496 -0
  195. package/dist/runtime/native-session.d.ts +10 -0
  196. package/dist/{agent-graph/index.js → runtime/native-session.js} +9 -6
  197. package/dist/runtime/native-tool-trace-observer.d.ts +5 -0
  198. package/dist/runtime/native-tool-trace-observer.js +65 -0
  199. package/dist/runtime/native-turn.d.ts +272 -0
  200. package/dist/runtime/native-turn.js +1041 -0
  201. package/dist/runtime/operations.d.ts +236 -0
  202. package/dist/runtime/operations.js +565 -0
  203. package/dist/runtime/post-tool-handler.d.ts +74 -0
  204. package/dist/runtime/post-tool-handler.js +137 -0
  205. package/dist/runtime/prompt-layers.d.ts +126 -0
  206. package/dist/runtime/prompt-layers.js +239 -0
  207. package/dist/runtime/runtime-process.d.ts +102 -0
  208. package/dist/runtime/runtime-process.js +206 -0
  209. package/dist/runtime/runtime.d.ts +278 -0
  210. package/dist/runtime/runtime.js +563 -0
  211. package/dist/runtime/session-pool.d.ts +176 -0
  212. package/dist/runtime/session-pool.js +369 -0
  213. package/dist/runtime/stimulus-payload.d.ts +5 -0
  214. package/dist/runtime/stimulus-payload.js +50 -0
  215. package/dist/runtime/subagent-bridge.d.ts +24 -0
  216. package/dist/{agent-graph/types.js → runtime/subagent-bridge.js} +1 -1
  217. package/dist/runtime/text-completion.d.ts +22 -0
  218. package/dist/{agent-situation/types.js → runtime/text-completion.js} +1 -1
  219. package/dist/runtime/token-estimator.d.ts +25 -0
  220. package/dist/runtime/token-estimator.js +75 -0
  221. package/dist/runtime/tool-trace-store.d.ts +22 -0
  222. package/dist/{model-runs → runtime}/tool-trace-store.js +46 -27
  223. package/dist/runtime/trace-summary.d.ts +5 -0
  224. package/dist/runtime/trace-summary.js +74 -0
  225. package/dist/runtime/turn-text.d.ts +23 -0
  226. package/dist/runtime/turn-text.js +41 -0
  227. package/dist/storage/database.d.ts +67 -0
  228. package/dist/storage/database.js +158 -0
  229. package/package.json +20 -34
  230. package/dist/agent-graph/alias-write.d.ts +0 -3
  231. package/dist/agent-graph/alias-write.js +0 -234
  232. package/dist/agent-graph/entity-resolve.d.ts +0 -3
  233. package/dist/agent-graph/entity-resolve.js +0 -271
  234. package/dist/agent-graph/errors.d.ts +0 -4
  235. package/dist/agent-graph/errors.js +0 -11
  236. package/dist/agent-graph/graph-query.d.ts +0 -5
  237. package/dist/agent-graph/graph-query.js +0 -360
  238. package/dist/agent-graph/index.d.ts +0 -6
  239. package/dist/agent-situation/builder.d.ts +0 -8
  240. package/dist/agent-situation/builder.js +0 -239
  241. package/dist/agent-situation/cache-key.d.ts +0 -4
  242. package/dist/agent-situation/cache-key.js +0 -64
  243. package/dist/agent-situation/index.d.ts +0 -7
  244. package/dist/agent-situation/index.js +0 -28
  245. package/dist/agent-situation/packet-store.d.ts +0 -27
  246. package/dist/agent-situation/packet-store.js +0 -228
  247. package/dist/agent-situation/ranking-policy.d.ts +0 -18
  248. package/dist/agent-situation/ranking-policy.js +0 -75
  249. package/dist/agent-situation/source-readers.d.ts +0 -52
  250. package/dist/agent-situation/source-readers.js +0 -300
  251. package/dist/agent-situation/types.d.ts +0 -195
  252. package/dist/cases/wiki-page-index.d.ts +0 -37
  253. package/dist/cases/wiki-page-index.js +0 -201
  254. package/dist/config-loader.d.ts +0 -68
  255. package/dist/config-loader.js +0 -239
  256. package/dist/connectors/event-index.d.ts +0 -24
  257. package/dist/connectors/event-index.js +0 -245
  258. package/dist/connectors/raw-query.d.ts +0 -40
  259. package/dist/connectors/raw-query.js +0 -412
  260. package/dist/connectors/types.d.ts +0 -117
  261. package/dist/connectors/types.js +0 -3
  262. package/dist/context-compile/boundary-defaults.d.ts +0 -12
  263. package/dist/context-compile/boundary-defaults.js +0 -105
  264. package/dist/context-compile/channel-grant.js +0 -66
  265. package/dist/context-compile/compiler-policy.d.ts +0 -39
  266. package/dist/context-compile/compiler-policy.js +0 -147
  267. package/dist/context-compile/compiler.d.ts +0 -18
  268. package/dist/context-compile/compiler.js +0 -404
  269. package/dist/context-compile/index.d.ts +0 -10
  270. package/dist/context-compile/index.js +0 -26
  271. package/dist/context-compile/packet-store.d.ts +0 -8
  272. package/dist/context-compile/packet-store.js +0 -239
  273. package/dist/context-compile/ref.d.ts +0 -7
  274. package/dist/context-compile/ref.js +0 -102
  275. package/dist/context-compile/source-readers.d.ts +0 -70
  276. package/dist/context-compile/source-readers.js +0 -840
  277. package/dist/context-compile/types.d.ts +0 -155
  278. package/dist/context-compile/types.js +0 -11
  279. package/dist/context-compile/visibility.d.ts +0 -21
  280. package/dist/context-compile/visibility.js +0 -224
  281. package/dist/decision-tracker.d.ts +0 -206
  282. package/dist/decision-tracker.js +0 -481
  283. package/dist/edges/ref-validation.d.ts +0 -7
  284. package/dist/edges/ref-validation.js +0 -321
  285. package/dist/edges/store.d.ts +0 -8
  286. package/dist/edges/store.js +0 -129
  287. package/dist/embedding-client.d.ts +0 -28
  288. package/dist/embedding-client.js +0 -53
  289. package/dist/embedding-server/index.d.ts +0 -67
  290. package/dist/embedding-server/index.js +0 -405
  291. package/dist/embedding-server/mobile/auth.d.ts +0 -44
  292. package/dist/embedding-server/mobile/auth.js +0 -150
  293. package/dist/embedding-server/mobile/daemon.d.ts +0 -129
  294. package/dist/embedding-server/mobile/daemon.js +0 -313
  295. package/dist/embedding-server/mobile/output-parser.d.ts +0 -115
  296. package/dist/embedding-server/mobile/output-parser.js +0 -241
  297. package/dist/embedding-server/mobile/session-api.d.ts +0 -57
  298. package/dist/embedding-server/mobile/session-api.js +0 -261
  299. package/dist/embedding-server/mobile/session-manager.d.ts +0 -138
  300. package/dist/embedding-server/mobile/session-manager.js +0 -378
  301. package/dist/embedding-server/mobile/websocket-handler.d.ts +0 -137
  302. package/dist/embedding-server/mobile/websocket-handler.js +0 -486
  303. package/dist/embeddings.d.ts +0 -68
  304. package/dist/embeddings.js +0 -244
  305. package/dist/entities/audit-metrics.d.ts +0 -68
  306. package/dist/entities/audit-metrics.js +0 -124
  307. package/dist/entities/candidate-generator.d.ts +0 -8
  308. package/dist/entities/candidate-generator.js +0 -24
  309. package/dist/entities/entity-linked-decision-counts.d.ts +0 -2
  310. package/dist/entities/entity-linked-decision-counts.js +0 -29
  311. package/dist/entities/entity-list.d.ts +0 -22
  312. package/dist/entities/entity-list.js +0 -3
  313. package/dist/entities/entity-orphan-list.d.ts +0 -17
  314. package/dist/entities/entity-orphan-list.js +0 -3
  315. package/dist/entities/entity-search.d.ts +0 -20
  316. package/dist/entities/entity-search.js +0 -3
  317. package/dist/entities/errors.d.ts +0 -55
  318. package/dist/entities/errors.js +0 -100
  319. package/dist/entities/lineage-store.d.ts +0 -28
  320. package/dist/entities/lineage-store.js +0 -204
  321. package/dist/entities/normalization.d.ts +0 -14
  322. package/dist/entities/normalization.js +0 -63
  323. package/dist/entities/policy-store.d.ts +0 -8
  324. package/dist/entities/policy-store.js +0 -75
  325. package/dist/entities/policy-types.d.ts +0 -72
  326. package/dist/entities/policy-types.js +0 -59
  327. package/dist/entities/projection.d.ts +0 -8
  328. package/dist/entities/projection.js +0 -82
  329. package/dist/entities/provenance-query.d.ts +0 -32
  330. package/dist/entities/provenance-query.js +0 -3
  331. package/dist/entities/read-identity.d.ts +0 -31
  332. package/dist/entities/read-identity.js +0 -264
  333. package/dist/entities/recall-bridge.d.ts +0 -5
  334. package/dist/entities/recall-bridge.js +0 -171
  335. package/dist/entities/resolution-engine.d.ts +0 -8
  336. package/dist/entities/resolution-engine.js +0 -3
  337. package/dist/entities/rollback-preview.d.ts +0 -35
  338. package/dist/entities/rollback-preview.js +0 -3
  339. package/dist/entities/source-locator.d.ts +0 -3
  340. package/dist/entities/source-locator.js +0 -32
  341. package/dist/entities/store.d.ts +0 -69
  342. package/dist/entities/store.js +0 -544
  343. package/dist/entities/types.d.ts +0 -166
  344. package/dist/entities/types.js +0 -30
  345. package/dist/memory/extraction-prompt.d.ts +0 -4
  346. package/dist/memory/extraction-prompt.js +0 -89
  347. package/dist/memory/scope-backfill.d.ts +0 -14
  348. package/dist/memory/scope-backfill.js +0 -3
  349. package/dist/memory/scope-store.d.ts +0 -4
  350. package/dist/memory/scope-store.js +0 -9
  351. package/dist/memory-store.d.ts +0 -87
  352. package/dist/memory-store.js +0 -78
  353. package/dist/model-runs/store.d.ts +0 -13
  354. package/dist/model-runs/tool-trace-store.d.ts +0 -8
  355. package/dist/notification-manager.d.ts +0 -7
  356. package/dist/notification-manager.js +0 -12
  357. package/dist/outcome-tracker.d.ts +0 -151
  358. package/dist/outcome-tracker.js +0 -271
  359. package/dist/query-intent.d.ts +0 -23
  360. package/dist/query-intent.js +0 -114
  361. package/dist/runtime/trusted-provenance.d.ts +0 -3
  362. package/dist/runtime/trusted-provenance.js +0 -6
  363. package/dist/search/question-type.d.ts +0 -5
  364. package/dist/search/question-type.js +0 -41
  365. package/dist/test-utils.d.ts +0 -80
  366. package/dist/test-utils.js +0 -218
  367. package/dist/tier-validator.d.ts +0 -43
  368. package/dist/tier-validator.js +0 -159
  369. package/dist/time-formatter.d.ts +0 -25
  370. package/dist/time-formatter.js +0 -93
  371. /package/dist/{search → knowledge}/feedback-store.d.ts +0 -0
  372. /package/dist/{search → knowledge}/feedback-store.js +0 -0
  373. /package/dist/{search → knowledge}/ranker-features.d.ts +0 -0
  374. /package/dist/{search → knowledge}/ranker-rescore.d.ts +0 -0
  375. /package/dist/{search → knowledge}/ranker-rescore.js +0 -0
  376. /package/dist/{search → knowledge}/ranker-trainer.d.ts +0 -0
  377. /package/dist/{search → knowledge}/ranker-trainer.js +0 -0
  378. /package/dist/{search → knowledge}/search-quality.js +0 -0
@@ -1,21 +1,44 @@
1
- import { type WikiPageIndexRecord } from '../cases/wiki-page-index.js';
1
+ import type { DatabaseAdapter } from '../db-manager.js';
2
+ import type { TextCompletion } from '../runtime/text-completion.js';
3
+ import type { SearchQualityOptions } from '../knowledge/search-quality.js';
4
+ import type { DecisionRecord } from '../db-manager.js';
5
+ import type { DatabaseInstance } from '../db-manager.js';
2
6
  import { resolveMemoryEvolution } from './evolution-engine.js';
3
7
  import { getChannelSummary, upsertChannelSummary } from './channel-summary-store.js';
4
- import { type SearchHitDiagnostics } from '../search/search-quality.js';
5
- import type { MemoryAgentBootstrap, MemoryAuditAck, MemoryEdge, MemoryRecord, MemoryScopeRef, MemoryStatus, ProfileSnapshot, PublicIngestMemoryInput, PublicSaveMemoryInput, RecallBundle, IngestConversationInput, ExtractedMemoryUnit, IngestConversationResult, RecallMemoryOptions } from './types.js';
6
- import { type TrustedMemoryWriteOptions } from './provenance.js';
8
+ import { type SearchHitDiagnostics } from '../knowledge/search-quality.js';
9
+ import type { MemoryKind, MemoryKindFilter, MemoryAgentBootstrap, MemoryAuditAck, MemoryEdge, MemoryRecord, MemoryScopeRef, MemoryStatus, ProfileSnapshot, PublicIngestMemoryInput, PublicSaveMemoryInput, RecallBundle, IngestConversationInput, IngestConversationResult, RecallMemoryOptions } from './types.js';
10
+ import { type JudgmentAccess } from '../knowledge/judgments.js';
11
+ import type { ActionSessionFacts } from '../action-contracts.js';
7
12
  type SaveMemoryInput = PublicSaveMemoryInput;
8
13
  type IngestMemoryInput = PublicIngestMemoryInput;
14
+ export interface LegacyMemoryPersistence {
15
+ userInvolvement?: string | null;
16
+ outcome?: string | null;
17
+ failureReason?: string | null;
18
+ limitation?: string | null;
19
+ isStatic?: number;
20
+ relationships?: Array<{
21
+ type: string;
22
+ targetIds: string[];
23
+ }>;
24
+ }
9
25
  export interface FusedHit {
10
- source_type: 'decision' | 'wiki_page';
26
+ source_type: 'decision';
11
27
  source_id: string;
12
- record: MemoryRecord | WikiPageIndexRecord;
28
+ record: MemoryRecord;
13
29
  fused_rank_score: number;
14
- page_type?: WikiPageIndexRecord['page_type'];
15
30
  case_id?: string | null;
16
31
  retrieval_diagnostics?: SearchHitDiagnostics;
17
32
  }
18
33
  export declare function buildDecisionId(topic: string): string;
34
+ export interface ReadMemoryRecordsOptions {
35
+ kind?: MemoryKindFilter;
36
+ status?: MemoryStatus | readonly MemoryStatus[];
37
+ }
38
+ /** Read complete memory records whose stored scopes intersect the admitted scopes. */
39
+ export declare function readMemoryRecordsInScopes(adapter: DatabaseInstance, scopes: readonly MemoryScopeRef[], options?: ReadMemoryRecordsOptions): Promise<MemoryRecord[]>;
40
+ /** Read one complete record only when at least one stored scope is admitted. */
41
+ export declare function readMemoryRecordById(adapter: DatabaseInstance, memoryId: string, scopes: readonly MemoryScopeRef[]): Promise<MemoryRecord | null>;
19
42
  export declare const LEXICAL_STOPWORDS: Set<string>;
20
43
  export declare function getLexicalQueryTokens(query: string): string[];
21
44
  /**
@@ -26,40 +49,64 @@ export declare function getLexicalQueryTokens(query: string): string[];
26
49
  * top-5 for 42.5% of chains - present in the candidate pool, buried by rank).
27
50
  */
28
51
  export declare function topicAffinityBoost(topic: string, tokens: string[], normalizedQuery: string): number;
29
- export declare function loadEdgesForIds(ids: string[]): Promise<MemoryEdge[]>;
52
+ export declare function loadEdgesForIds(adapter: DatabaseInstance, ids: string[]): Promise<MemoryEdge[]>;
30
53
  type SaveMemoryResult = {
31
54
  success: boolean;
32
55
  id: string;
33
56
  saved_decision_id?: string;
34
- timeline_event_id?: string | null;
35
- timeline_event_ids?: string[];
36
57
  };
37
- export declare function saveMemory(input: SaveMemoryInput): Promise<SaveMemoryResult>;
38
- export declare function saveMemoryWithTrustedProvenance(input: SaveMemoryInput, options: TrustedMemoryWriteOptions): Promise<SaveMemoryResult>;
39
- export declare function promoteMemoryStatus(input: {
58
+ export declare function saveMemory(adapter: DatabaseInstance, input: SaveMemoryInput): Promise<SaveMemoryResult>;
59
+ /**
60
+ * The unified `memory.save` action path. Access IS the call authority — the
61
+ * command's scopes are checked against it inside `appendJudgment`, and the
62
+ * record's provenance is composed from it plus the session facts the host
63
+ * attests (never from caller input). `commandId` is the caller's operationId,
64
+ * so a retried call replays the original receipt.
65
+ */
66
+ export declare function saveJudgmentRecord(adapter: DatabaseInstance, input: SaveMemoryInput, access: JudgmentAccess, commandId: string, session?: ActionSessionFacts): Promise<SaveMemoryResult>;
67
+ /**
68
+ * The read-side scope rule for memory actions — the same bound `appendJudgment`
69
+ * applies to writes. An omitted request reads under the full admitted scopes;
70
+ * an explicit request must be a subset of them. An empty admitted set admits an
71
+ * empty corpus: a caller with no scopes can see no scoped record (reads never
72
+ * fall back to an unbounded scan — the legacy `scopes: []` = read-all behavior
73
+ * is exactly what this bound removes).
74
+ */
75
+ export declare function boundReadScopesFor(access: JudgmentAccess, requested?: MemoryScopeRef[]): MemoryScopeRef[];
76
+ export declare function saveLegacyMemory(adapter: DatabaseInstance, input: SaveMemoryInput, legacy: LegacyMemoryPersistence, access?: JudgmentAccess): Promise<SaveMemoryResult>;
77
+ export declare function promoteMemoryStatus(adapter: DatabaseInstance, input: {
40
78
  memoryId: string;
41
79
  status: MemoryStatus;
42
80
  nowMs?: number;
43
81
  }): Promise<void>;
44
- export declare function buildProfile(scopes: MemoryScopeRef[]): Promise<ProfileSnapshot>;
45
- export declare function recallMemory(query: string, options?: RecallMemoryOptions): Promise<RecallBundle>;
46
- export declare function ingestMemory(input: IngestMemoryInput): Promise<{
47
- success: boolean;
82
+ export type MemoryRetirementStatus = Extract<MemoryStatus, 'stale' | 'superseded'>;
83
+ /** Append an access-checked status amendment for one stored memory record. */
84
+ export declare function retireMemoryRecord(adapter: DatabaseInstance, input: {
85
+ memoryId: string;
86
+ status: MemoryRetirementStatus;
87
+ reason: string;
88
+ }, access: JudgmentAccess, commandId: string): Promise<{
89
+ success: true;
48
90
  id: string;
91
+ status: MemoryRetirementStatus;
92
+ reason: string;
93
+ receiptId: string;
49
94
  }>;
50
- export declare function ingestWithTrustedProvenance(input: IngestMemoryInput, options: TrustedMemoryWriteOptions): Promise<{
95
+ export declare function buildProfile(adapter: DatabaseInstance, scopes: MemoryScopeRef[]): Promise<ProfileSnapshot>;
96
+ export declare function recallMemory(adapter: DatabaseInstance, query: string, options?: RecallMemoryOptions): Promise<RecallBundle>;
97
+ export declare function ingestMemory(adapter: DatabaseInstance, input: IngestMemoryInput): Promise<{
51
98
  success: boolean;
52
99
  id: string;
53
100
  }>;
54
101
  export declare function evolveMemory(input: Parameters<typeof resolveMemoryEvolution>[0]): Promise<import("./evolution-engine.js").EvolutionResult>;
55
- export declare function buildMemoryBootstrap(params: {
102
+ export declare function buildMemoryBootstrap(adapter: DatabaseInstance, params: {
56
103
  scopes: MemoryScopeRef[];
57
104
  channelKey?: string;
58
105
  currentGoal?: string;
59
106
  mainAgentState?: MemoryAgentBootstrap['main_agent_state'];
60
107
  }): Promise<MemoryAgentBootstrap>;
61
108
  export declare function createAuditAck(input: MemoryAuditAck): MemoryAuditAck;
62
- export declare function recordMemoryAudit(input: {
109
+ export declare function recordMemoryAudit(adapter: DatabaseInstance, input: {
63
110
  channelKey: string;
64
111
  turnId: string;
65
112
  topic: string;
@@ -75,9 +122,202 @@ export declare function recordMemoryAudit(input: {
75
122
  findingIds: string[];
76
123
  state: import("./types.js").ChannelSummaryStateRecord;
77
124
  }>;
78
- declare function callExtractionLLM(prompt: string, options: NonNullable<IngestConversationInput['extract']>): Promise<ExtractedMemoryUnit[]>;
79
- export declare function setExtractionFn(fn: typeof callExtractionLLM | null): void;
80
- export declare function ingestConversation(input: IngestConversationInput): Promise<IngestConversationResult>;
81
- export declare function ingestConversationWithTrustedProvenance(input: IngestConversationInput, options: TrustedMemoryWriteOptions): Promise<IngestConversationResult>;
125
+ export declare function ingestConversation(adapter: DatabaseInstance, input: IngestConversationInput): Promise<IngestConversationResult>;
82
126
  export { upsertChannelSummary, getChannelSummary };
127
+ /**
128
+ * Expand search results with graph context (Phase 1 - Graph-Enhanced Retrieval)
129
+ *
130
+ * For each candidate decision:
131
+ * 1. Add supersedes chain (evolution history)
132
+ * 2. Add semantic edges (refines, contradicts)
133
+ * 3. Deduplicate by ID
134
+ * 4. Re-rank by relevance (primary candidates ranked higher)
135
+ *
136
+ * @param {Array} candidates - Initial search results from vector/keyword search
137
+ * @returns {Promise<Array>} Graph-enhanced results with evolution context
138
+ */
139
+ export interface SearchCandidate {
140
+ id: string;
141
+ topic: string;
142
+ decision: string;
143
+ reasoning?: string | null;
144
+ confidence?: number;
145
+ similarity?: number;
146
+ created_at?: number | string;
147
+ graph_source?: string;
148
+ graph_rank?: number;
149
+ related_to?: string | null;
150
+ edge_reason?: string | null;
151
+ recency_score?: number;
152
+ recency_age_days?: number;
153
+ final_score?: number;
154
+ outcome?: string | null;
155
+ failure_reason?: string | null;
156
+ is_static?: number;
157
+ }
158
+ export declare function expandWithGraphInAdapter(adapter: DatabaseAdapter, candidates: SearchCandidate[]): Promise<SearchCandidate[]>;
159
+ /**
160
+ * Suggest relevant decisions based on user question
161
+ *
162
+ * DEFAULT: Returns JSON object with search results (LLM-first design)
163
+ * OPTIONAL: Returns Markdown string if format='markdown' (for human display)
164
+ *
165
+ * Simplified: Direct vector search without LLM intent analysis
166
+ * Works with short queries, long questions, Korean/English
167
+ *
168
+ * @param {string} userQuestion - User's question or intent
169
+ * @param {Object} options - Search options
170
+ * @param {string} [options.format='json'] - Output format: 'json' (default) or 'markdown'
171
+ * @param {number} [options.limit=5] - Max results to return
172
+ * @param {number} [options.threshold=0.6] - Minimum similarity (adaptive by query length)
173
+ * @param {boolean} [options.useReranking=false] - Use LLM re-ranking (optional, slower)
174
+ * @returns {Promise<Object|string|null>} Search results as JSON or Markdown, null if no results
175
+ *
176
+ * @example
177
+ * // LLM usage (default)
178
+ * const data = await mama.suggest('Why did we choose JWT?');
179
+ * // → { query, results: [...], meta: {...} }
180
+ *
181
+ * // Human display
182
+ * const markdown = await mama.suggest('mesh optimization', { format: 'markdown' });
183
+ * // → "💡 MAMA found 3 related topics:\n1. ..."
184
+ */
185
+ export interface SuggestFunctionOptions extends SearchQualityOptions {
186
+ format?: 'json' | 'markdown';
187
+ limit?: number;
188
+ kind?: MemoryKind;
189
+ useReranking?: boolean;
190
+ /** Phase 3 Task 33: apply learned offline ranker rescoring. */
191
+ rerankWithLearned?: boolean;
192
+ recencyWeight?: number;
193
+ recencyScale?: number;
194
+ recencyDecay?: number;
195
+ scopes?: Array<{
196
+ kind: string;
197
+ id: string;
198
+ }>;
199
+ /**
200
+ * The model this runtime opened, when `useReranking` asks for one. This
201
+ * module used to open its own (a local Ollama endpoint), which decided for
202
+ * every host installing the library; the host states it now (§2.1).
203
+ */
204
+ runner?: TextCompletion;
205
+ }
206
+ export declare function suggestInAdapter(adapter: DatabaseInstance, userQuestion: string, options?: SuggestFunctionOptions): Promise<any>;
207
+ /**
208
+ * List recent decisions (all topics, chronological)
209
+ *
210
+ * DEFAULT: Returns JSON array with recent decisions (LLM-first design)
211
+ * OPTIONAL: Returns Markdown string if format='markdown' (for human display)
212
+ *
213
+ * @param {Object} [options] - Options
214
+ * @param {number} [options.limit=10] - Max results
215
+ * @param {string} [options.format='json'] - Output format
216
+ * @returns {Promise<Array|string>} Recent decisions
217
+ */
218
+ export interface ListDecisionsOptions {
219
+ limit?: number;
220
+ format?: 'json' | 'markdown';
221
+ kind?: MemoryKind;
222
+ scopes?: Array<{
223
+ kind: string;
224
+ id: string;
225
+ }>;
226
+ /**
227
+ * Exact ledger read: every decision whose topic starts with this string, superseded rows
228
+ * included (they are the earlier rounds of the same item). `%` and `_` are literal.
229
+ * This is a lookup, not a search - `suggest({topicPrefix})` treats the prefix as a soft
230
+ * signal and was measured returning 5 of 12 rows plus one from another item.
231
+ */
232
+ topicPrefix?: string;
233
+ }
234
+ export declare function listDecisionsInAdapter(adapter: DatabaseAdapter, options?: ListDecisionsOptions): Promise<DecisionRecord[] | string>;
235
+ /**
236
+ * Update outcome of a decision
237
+ *
238
+ * Track whether a decision succeeded, failed, or partially worked
239
+ * AC: Evolutionary Decision Memory - Learn from outcomes
240
+ *
241
+ * @param {string} decisionId - Decision ID to update
242
+ * @param {Object} outcome - Outcome details
243
+ * @param {string} outcome.outcome - 'SUCCESS', 'FAILED', or 'PARTIAL'
244
+ * @param {string} [outcome.failure_reason] - Reason for failure (if FAILED)
245
+ * @param {string} [outcome.limitation] - Limitation description (if PARTIAL)
246
+ * @returns {Promise<void>}
247
+ *
248
+ * @example
249
+ * await mama.updateOutcome('decision_auth_strategy_123456_abc', {
250
+ * outcome: 'FAILED',
251
+ * failure_reason: 'Missing token expiration handling'
252
+ * });
253
+ */
254
+ export interface UpdateOutcomeParams {
255
+ outcome: string;
256
+ failure_reason?: string | null;
257
+ limitation?: string | null;
258
+ }
259
+ export declare function updateOutcomeInAdapter(adapter: DatabaseInstance, decisionId: string, { outcome, failure_reason, limitation }: UpdateOutcomeParams): Promise<void>;
260
+ /**
261
+ * List recent checkpoints (New Feature: Session Continuity)
262
+ *
263
+ * @param {number} limit - Max number of checkpoints to return
264
+ * @returns {Promise<Array>} Recent checkpoints
265
+ */
266
+ /** What a stats read answers: counts over the memory a caller may see. */
267
+ export interface MemoryStatsResult {
268
+ total: number;
269
+ thisWeek: number;
270
+ thisMonth: number;
271
+ checkpoints: number;
272
+ outcomes: Record<string, number>;
273
+ topTopics: Array<{
274
+ topic: string;
275
+ count: number;
276
+ }>;
277
+ }
278
+ /**
279
+ * Counts over the admitted corpus.
280
+ *
281
+ * Every count answers the same question the scope filter answers for a listing:
282
+ * a decision this caller may not read is not a decision it may count. An
283
+ * admitted-empty caller counts zero rather than counting everything — the same
284
+ * fail-closed reading the listing gives.
285
+ */
286
+ export declare function readMemoryStatsInAdapter(adapter: DatabaseAdapter, scopes: readonly {
287
+ kind: string;
288
+ id: string;
289
+ }[]): Promise<MemoryStatsResult>;
290
+ /**
291
+ * Load latest active checkpoint (New Feature: Session Continuity)
292
+ *
293
+ * @returns {Promise<Object|null>} Latest checkpoint or null
294
+ */
295
+ interface ConversationMessage {
296
+ role: string;
297
+ content: string | Array<{
298
+ type: string;
299
+ text?: string;
300
+ [key: string]: unknown;
301
+ }>;
302
+ }
303
+ /**
304
+ * Save current session checkpoint (New Feature: Session Continuity)
305
+ *
306
+ * @param {string} summary - Summary of current session state
307
+ * @param {Array<string>} openFiles - List of currently open files
308
+ * @param {string} nextSteps - Next steps to be taken
309
+ * @returns {Promise<number>} Checkpoint ID
310
+ */
311
+ export declare function saveCheckpointInAdapter(adapter: DatabaseAdapter, summary: string, openFiles?: string[], nextSteps?: string, recentConversation?: any[]): Promise<number | bigint>;
312
+ export interface CheckpointRow {
313
+ id?: number;
314
+ timestamp?: number;
315
+ summary?: string;
316
+ open_files?: string | string[];
317
+ next_steps?: string;
318
+ recent_conversation?: string | ConversationMessage[];
319
+ status?: string;
320
+ }
321
+ export declare function loadCheckpointInAdapter(adapter: DatabaseAdapter): Promise<CheckpointRow | null>;
322
+ export declare function listCheckpointsInAdapter(adapter: DatabaseAdapter, limit?: number): Promise<CheckpointRow[]>;
83
323
  //# sourceMappingURL=api.d.ts.map