@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,80 +0,0 @@
1
- /**
2
- * MAMA Core Test Utilities
3
- *
4
- * Shared test helpers for mama-core consumers.
5
- * Optimizes test performance by sharing expensive resources (embedding model, DB adapter).
6
- *
7
- * @module test-utils
8
- * @version 1.1
9
- */
10
- import type Database from 'better-sqlite3';
11
- /**
12
- * Returns migration SQL filenames sorted by their leading three-digit version.
13
- */
14
- export declare function migrationFiles(): string[];
15
- export declare function migrationVersion(file: string): number;
16
- /**
17
- * Apply migrations in order up to `maxVersion` (inclusive), starting from
18
- * `fromVersion`. Mirrors the production runner's two-part contract:
19
- * - skip files whose version is already recorded in `schema_version`
20
- * - tolerate `duplicate column` errors (legacy migrations that add
21
- * columns idempotently without recording into schema_version)
22
- */
23
- export declare function applyMigrationsThrough(db: Database.Database, maxVersion: number, fromVersion?: number): void;
24
- /**
25
- * Preload embedding model (call once in globalSetup)
26
- *
27
- * This loads the embedding model into memory so subsequent tests don't pay the ~2s load time.
28
- * The model stays in memory due to singleton pattern in embeddings.ts.
29
- */
30
- export declare function preloadEmbeddingModel(): Promise<void>;
31
- /**
32
- * Create isolated test database
33
- *
34
- * Creates a unique test database and sets MAMA_DB_PATH.
35
- * Use in beforeAll() of each test file.
36
- *
37
- * @param testName - Unique test identifier (e.g., 'search-narrative')
38
- * @returns Test database path
39
- */
40
- export declare function initTestDB(testName: string): Promise<string>;
41
- /**
42
- * Cleanup test database
43
- *
44
- * Call in afterAll() to clean up test database files.
45
- *
46
- * @param testDbPath - Path returned by initTestDB
47
- */
48
- export declare function cleanupTestDB(testDbPath?: string): Promise<void>;
49
- /**
50
- * Cleanup all test databases
51
- *
52
- * Call in globalTeardown to clean up all test databases.
53
- */
54
- export declare function cleanupAllTestDBs(): void;
55
- /**
56
- * Check if embeddings are available
57
- *
58
- * Returns false if embedding model failed to load (e.g., CI without ONNX).
59
- * Use to conditionally skip semantic search tests.
60
- */
61
- export declare function isEmbeddingsAvailable(): Promise<boolean>;
62
- /**
63
- * Create mock tool context
64
- *
65
- * Returns a mock context object for MCP tool tests.
66
- */
67
- export declare function createMockToolContext(): {
68
- logger: {
69
- info: () => void;
70
- warn: () => void;
71
- error: () => void;
72
- };
73
- };
74
- /**
75
- * Suppress console output during tests
76
- *
77
- * Returns restore function to call after test.
78
- */
79
- export declare function suppressConsole(): () => void;
80
- //# sourceMappingURL=test-utils.d.ts.map
@@ -1,218 +0,0 @@
1
- "use strict";
2
- /**
3
- * MAMA Core Test Utilities
4
- *
5
- * Shared test helpers for mama-core consumers.
6
- * Optimizes test performance by sharing expensive resources (embedding model, DB adapter).
7
- *
8
- * @module test-utils
9
- * @version 1.1
10
- */
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.migrationFiles = migrationFiles;
16
- exports.migrationVersion = migrationVersion;
17
- exports.applyMigrationsThrough = applyMigrationsThrough;
18
- exports.preloadEmbeddingModel = preloadEmbeddingModel;
19
- exports.initTestDB = initTestDB;
20
- exports.cleanupTestDB = cleanupTestDB;
21
- exports.cleanupAllTestDBs = cleanupAllTestDBs;
22
- exports.isEmbeddingsAvailable = isEmbeddingsAvailable;
23
- exports.createMockToolContext = createMockToolContext;
24
- exports.suppressConsole = suppressConsole;
25
- const path_1 = __importDefault(require("path"));
26
- const fs_1 = __importDefault(require("fs"));
27
- const os_1 = __importDefault(require("os"));
28
- const node_fs_1 = require("node:fs");
29
- const node_path_1 = require("node:path");
30
- const db_manager_js_1 = require("./db-manager.js");
31
- const debug_logger_js_1 = require("./debug-logger.js");
32
- const MIGRATIONS_DIR = (0, node_path_1.join)(__dirname, '..', 'db', 'migrations');
33
- /**
34
- * Returns migration SQL filenames sorted by their leading three-digit version.
35
- */
36
- function migrationFiles() {
37
- return (0, node_fs_1.readdirSync)(MIGRATIONS_DIR)
38
- .filter((file) => /^\d{3}-.+\.sql$/.test(file))
39
- .sort((left, right) => left.localeCompare(right));
40
- }
41
- function migrationVersion(file) {
42
- return Number.parseInt(file.slice(0, 3), 10);
43
- }
44
- /**
45
- * Apply migrations in order up to `maxVersion` (inclusive), starting from
46
- * `fromVersion`. Mirrors the production runner's two-part contract:
47
- * - skip files whose version is already recorded in `schema_version`
48
- * - tolerate `duplicate column` errors (legacy migrations that add
49
- * columns idempotently without recording into schema_version)
50
- */
51
- function applyMigrationsThrough(db, maxVersion, fromVersion = 1) {
52
- for (const file of migrationFiles()) {
53
- const version = migrationVersion(file);
54
- if (version < fromVersion)
55
- continue;
56
- if (version > maxVersion)
57
- break;
58
- let alreadyApplied = false;
59
- try {
60
- alreadyApplied = !!db
61
- .prepare('SELECT 1 FROM schema_version WHERE version = ?')
62
- .get(version);
63
- }
64
- catch {
65
- alreadyApplied = false;
66
- }
67
- if (alreadyApplied)
68
- continue;
69
- try {
70
- db.exec((0, node_fs_1.readFileSync)((0, node_path_1.join)(MIGRATIONS_DIR, file), 'utf8'));
71
- }
72
- catch (err) {
73
- const msg = err instanceof Error ? err.message : String(err);
74
- if (!/duplicate column/i.test(msg))
75
- throw err;
76
- }
77
- }
78
- }
79
- // Track test databases for cleanup
80
- const testDatabases = [];
81
- // Embedding model preload state
82
- let embeddingModelPreloaded = false;
83
- /**
84
- * Preload embedding model (call once in globalSetup)
85
- *
86
- * This loads the embedding model into memory so subsequent tests don't pay the ~2s load time.
87
- * The model stays in memory due to singleton pattern in embeddings.ts.
88
- */
89
- async function preloadEmbeddingModel() {
90
- if (embeddingModelPreloaded) {
91
- return;
92
- }
93
- try {
94
- const { generateEmbedding } = await import('./embeddings.js');
95
- await generateEmbedding('preload');
96
- embeddingModelPreloaded = true;
97
- }
98
- catch (error) {
99
- // Non-fatal: some CI environments may not have ONNX runtime
100
- const message = error instanceof Error ? error.message : String(error);
101
- (0, debug_logger_js_1.warn)(`[test-utils] Embedding model preload failed: ${message}`);
102
- }
103
- }
104
- /**
105
- * Create isolated test database
106
- *
107
- * Creates a unique test database and sets MAMA_DB_PATH.
108
- * Use in beforeAll() of each test file.
109
- *
110
- * @param testName - Unique test identifier (e.g., 'search-narrative')
111
- * @returns Test database path
112
- */
113
- async function initTestDB(testName) {
114
- // Reset any existing DB state first
115
- (0, db_manager_js_1.resetDBState)({ disconnect: true });
116
- // Create unique test database path
117
- const testDbPath = path_1.default.join(os_1.default.tmpdir(), `mama-test-${testName}-${Date.now()}.db`);
118
- // Clean up any existing files
119
- cleanupDbFiles(testDbPath);
120
- // Set environment variable
121
- process.env.MAMA_DB_PATH = testDbPath;
122
- // Track for cleanup
123
- testDatabases.push(testDbPath);
124
- // Initialize database
125
- await (0, db_manager_js_1.initDB)();
126
- return testDbPath;
127
- }
128
- /**
129
- * Cleanup test database
130
- *
131
- * Call in afterAll() to clean up test database files.
132
- *
133
- * @param testDbPath - Path returned by initTestDB
134
- */
135
- async function cleanupTestDB(testDbPath) {
136
- // Close database connection
137
- await (0, db_manager_js_1.closeDB)();
138
- // Clean up files
139
- if (testDbPath) {
140
- cleanupDbFiles(testDbPath);
141
- }
142
- }
143
- /**
144
- * Cleanup all test databases
145
- *
146
- * Call in globalTeardown to clean up all test databases.
147
- */
148
- function cleanupAllTestDBs() {
149
- for (const dbPath of testDatabases) {
150
- cleanupDbFiles(dbPath);
151
- }
152
- testDatabases.length = 0;
153
- }
154
- /**
155
- * Helper to clean up SQLite database files
156
- */
157
- function cleanupDbFiles(dbPath) {
158
- const files = [dbPath, `${dbPath}-wal`, `${dbPath}-shm`];
159
- for (const file of files) {
160
- try {
161
- if (fs_1.default.existsSync(file)) {
162
- fs_1.default.unlinkSync(file);
163
- }
164
- }
165
- catch {
166
- // Ignore cleanup errors
167
- }
168
- }
169
- }
170
- /**
171
- * Check if embeddings are available
172
- *
173
- * Returns false if embedding model failed to load (e.g., CI without ONNX).
174
- * Use to conditionally skip semantic search tests.
175
- */
176
- async function isEmbeddingsAvailable() {
177
- try {
178
- const { generateEmbedding } = await import('./embeddings.js');
179
- await generateEmbedding('test');
180
- return true;
181
- }
182
- catch {
183
- return false;
184
- }
185
- }
186
- /**
187
- * Create mock tool context
188
- *
189
- * Returns a mock context object for MCP tool tests.
190
- */
191
- function createMockToolContext() {
192
- return {
193
- logger: {
194
- info: () => { },
195
- warn: () => { },
196
- error: () => { },
197
- },
198
- };
199
- }
200
- /**
201
- * Suppress console output during tests
202
- *
203
- * Returns restore function to call after test.
204
- */
205
- function suppressConsole() {
206
- const originalLog = console.log;
207
- const originalWarn = console.warn;
208
- const originalError = console.error;
209
- console.log = () => { };
210
- console.warn = () => { };
211
- console.error = () => { };
212
- return () => {
213
- console.log = originalLog;
214
- console.warn = originalWarn;
215
- console.error = originalError;
216
- };
217
- }
218
- //# sourceMappingURL=test-utils.js.map
@@ -1,43 +0,0 @@
1
- /**
2
- * MAMA Tier Validator
3
- *
4
- * Centralized tier validation module for MAMA.
5
- * Validates system requirements and determines tier status (1 or 2).
6
- *
7
- * Tier 1: Full features (Node.js 22.13+, SQLite, Embeddings, Database)
8
- * Tier 2: Degraded mode (missing one or more requirements)
9
- *
10
- * @module tier-validator
11
- */
12
- export interface CheckResult {
13
- status: 'pass' | 'fail';
14
- details: string;
15
- }
16
- export interface NamedCheckResult extends CheckResult {
17
- name: string;
18
- }
19
- export interface TierValidation {
20
- tier: 1 | 2;
21
- checks: NamedCheckResult[];
22
- }
23
- /**
24
- * Validates Node.js version requirement
25
- */
26
- export declare function checkNodeVersion(): CheckResult;
27
- /**
28
- * Validates SQLite availability (node:sqlite)
29
- */
30
- export declare function checkSQLite(): CheckResult;
31
- /**
32
- * Validates embedding model availability
33
- */
34
- export declare function checkEmbeddings(): CheckResult;
35
- /**
36
- * Validates database file accessibility
37
- */
38
- export declare function checkDatabase(): CheckResult;
39
- /**
40
- * Get user-friendly tier description
41
- */
42
- export declare function getTierDescription(tier: number): string;
43
- //# sourceMappingURL=tier-validator.d.ts.map
@@ -1,159 +0,0 @@
1
- "use strict";
2
- /**
3
- * MAMA Tier Validator
4
- *
5
- * Centralized tier validation module for MAMA.
6
- * Validates system requirements and determines tier status (1 or 2).
7
- *
8
- * Tier 1: Full features (Node.js 22.13+, SQLite, Embeddings, Database)
9
- * Tier 2: Degraded mode (missing one or more requirements)
10
- *
11
- * @module tier-validator
12
- */
13
- var __importDefault = (this && this.__importDefault) || function (mod) {
14
- return (mod && mod.__esModule) ? mod : { "default": mod };
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.checkNodeVersion = checkNodeVersion;
18
- exports.checkSQLite = checkSQLite;
19
- exports.checkEmbeddings = checkEmbeddings;
20
- exports.checkDatabase = checkDatabase;
21
- exports.getTierDescription = getTierDescription;
22
- const fs_1 = __importDefault(require("fs"));
23
- const path_1 = __importDefault(require("path"));
24
- const os_1 = __importDefault(require("os"));
25
- /**
26
- * Validates Node.js version requirement
27
- */
28
- function checkNodeVersion() {
29
- try {
30
- const nodeVersion = process.versions.node;
31
- const [majorVersion, minorVersion] = nodeVersion.split('.').map((part) => parseInt(part, 10));
32
- if (majorVersion > 22 || (majorVersion === 22 && minorVersion >= 13)) {
33
- return {
34
- status: 'pass',
35
- details: `v${nodeVersion}`,
36
- };
37
- }
38
- return {
39
- status: 'fail',
40
- details: `v${nodeVersion} (requires 22.13+)`,
41
- };
42
- }
43
- catch (error) {
44
- const message = error instanceof Error ? error.message : String(error);
45
- return {
46
- status: 'fail',
47
- details: `Error checking version: ${message}`,
48
- };
49
- }
50
- }
51
- /**
52
- * Validates SQLite availability (node:sqlite)
53
- */
54
- function checkSQLite() {
55
- try {
56
- // eslint-disable-next-line @typescript-eslint/no-require-imports
57
- const { DatabaseSync } = require('node:sqlite');
58
- const testDb = new DatabaseSync(':memory:');
59
- testDb.close();
60
- return {
61
- status: 'pass',
62
- details: 'node:sqlite built-in driver ready',
63
- };
64
- }
65
- catch (error) {
66
- const message = error instanceof Error ? error.message : String(error);
67
- return {
68
- status: 'fail',
69
- details: `node:sqlite not available: ${message}`,
70
- };
71
- }
72
- }
73
- /**
74
- * Validates embedding model availability
75
- */
76
- function checkEmbeddings() {
77
- try {
78
- // eslint-disable-next-line @typescript-eslint/no-require-imports
79
- const { getModelName } = require('./embeddings');
80
- const modelName = getModelName();
81
- // Check if model is cached
82
- const cacheDir = process.env.HF_HOME ||
83
- process.env.TRANSFORMERS_CACHE ||
84
- path_1.default.join(os_1.default.homedir(), '.cache', 'huggingface', 'transformers');
85
- // Model cache structure: cache_dir/models--org--model/snapshots/hash/
86
- const modelPath = path_1.default.join(cacheDir, `models--${modelName.replace('/', '--')}`);
87
- if (fs_1.default.existsSync(modelPath)) {
88
- return {
89
- status: 'pass',
90
- details: `${modelName} (cached)`,
91
- };
92
- }
93
- return {
94
- status: 'fail',
95
- details: `${modelName} not cached (will download on first use)`,
96
- };
97
- }
98
- catch (error) {
99
- const message = error instanceof Error ? error.message : String(error);
100
- return {
101
- status: 'fail',
102
- details: `Error checking embeddings: ${message}`,
103
- };
104
- }
105
- }
106
- /**
107
- * Validates database file accessibility
108
- */
109
- function checkDatabase() {
110
- try {
111
- const dbPath = process.env.MAMA_DB_PATH || path_1.default.join(os_1.default.homedir(), '.claude', 'mama-memory.db');
112
- const dbDir = path_1.default.dirname(dbPath);
113
- // Check if directory exists or can be created
114
- if (!fs_1.default.existsSync(dbDir)) {
115
- try {
116
- fs_1.default.mkdirSync(dbDir, { recursive: true });
117
- }
118
- catch (mkdirErr) {
119
- const message = mkdirErr instanceof Error ? mkdirErr.message : String(mkdirErr);
120
- return {
121
- status: 'fail',
122
- details: `Cannot create database directory: ${message}`,
123
- };
124
- }
125
- }
126
- // Check write access
127
- try {
128
- fs_1.default.accessSync(dbDir, fs_1.default.constants.W_OK);
129
- }
130
- catch {
131
- return {
132
- status: 'fail',
133
- details: `No write access to ${dbDir}`,
134
- };
135
- }
136
- return {
137
- status: 'pass',
138
- details: dbPath,
139
- };
140
- }
141
- catch (error) {
142
- const message = error instanceof Error ? error.message : String(error);
143
- return {
144
- status: 'fail',
145
- details: `Error checking database: ${message}`,
146
- };
147
- }
148
- }
149
- /**
150
- * Get user-friendly tier description
151
- */
152
- function getTierDescription(tier) {
153
- const descriptions = {
154
- 1: 'Full Features - All systems operational',
155
- 2: 'Degraded Mode - Some features unavailable',
156
- };
157
- return descriptions[tier] || 'Unknown Tier';
158
- }
159
- //# sourceMappingURL=tier-validator.js.map
@@ -1,25 +0,0 @@
1
- /**
2
- * Time Formatter - Human-Readable Time Formatting
3
- *
4
- * Converts Unix timestamps to human-readable relative time format
5
- * Examples: "2d ago", "3h ago", "just now"
6
- *
7
- * Used by list_decisions and recall_decision tools
8
- *
9
- * @module time-formatter
10
- */
11
- /**
12
- * Format Unix timestamp (milliseconds) to human-readable relative time
13
- *
14
- * AC #2: Format created_at as human-readable ("2d ago", "3h ago", etc.)
15
- *
16
- * @param timestamp - Unix timestamp in milliseconds OR ISO 8601 string
17
- * @returns Human-readable time string
18
- *
19
- * @example
20
- * formatTimeAgo(Date.now() - 3600000) // "1h ago"
21
- * formatTimeAgo(Date.now() - 172800000) // "2d ago"
22
- * formatTimeAgo("2025-11-20T10:30:00Z") // "2d ago" (if today is 2025-11-22)
23
- */
24
- export declare function formatTimeAgo(timestamp: number | string | null | undefined): string;
25
- //# sourceMappingURL=time-formatter.d.ts.map
@@ -1,93 +0,0 @@
1
- "use strict";
2
- /**
3
- * Time Formatter - Human-Readable Time Formatting
4
- *
5
- * Converts Unix timestamps to human-readable relative time format
6
- * Examples: "2d ago", "3h ago", "just now"
7
- *
8
- * Used by list_decisions and recall_decision tools
9
- *
10
- * @module time-formatter
11
- */
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.formatTimeAgo = formatTimeAgo;
14
- const debug_logger_js_1 = require("./debug-logger.js");
15
- /**
16
- * Format Unix timestamp (milliseconds) to human-readable relative time
17
- *
18
- * AC #2: Format created_at as human-readable ("2d ago", "3h ago", etc.)
19
- *
20
- * @param timestamp - Unix timestamp in milliseconds OR ISO 8601 string
21
- * @returns Human-readable time string
22
- *
23
- * @example
24
- * formatTimeAgo(Date.now() - 3600000) // "1h ago"
25
- * formatTimeAgo(Date.now() - 172800000) // "2d ago"
26
- * formatTimeAgo("2025-11-20T10:30:00Z") // "2d ago" (if today is 2025-11-22)
27
- */
28
- function formatTimeAgo(timestamp) {
29
- try {
30
- // Handle null/undefined (but allow 0 as valid Unix epoch)
31
- if (timestamp === null || timestamp === undefined) {
32
- (0, debug_logger_js_1.warn)('[time-formatter] Timestamp is null or undefined, returning "unknown"');
33
- return 'unknown';
34
- }
35
- // Parse ISO 8601 string to timestamp (if string provided)
36
- let timestampMs;
37
- if (typeof timestamp === 'string') {
38
- timestampMs = new Date(timestamp).getTime();
39
- if (isNaN(timestampMs)) {
40
- (0, debug_logger_js_1.warn)(`[time-formatter] Invalid ISO 8601 string: ${timestamp}`);
41
- return 'unknown';
42
- }
43
- }
44
- else {
45
- timestampMs = timestamp;
46
- }
47
- const now = Date.now();
48
- const diff = now - timestampMs;
49
- // Handle future timestamps (shouldn't happen, but be defensive)
50
- if (diff < 0) {
51
- (0, debug_logger_js_1.warn)(`[time-formatter] Future timestamp detected: ${timestamp}`);
52
- return 'just now';
53
- }
54
- // Calculate time units
55
- const seconds = Math.floor(diff / 1000);
56
- const minutes = Math.floor(seconds / 60);
57
- const hours = Math.floor(minutes / 60);
58
- const days = Math.floor(hours / 24);
59
- const weeks = Math.floor(days / 7);
60
- const months = Math.floor(days / 30);
61
- const years = Math.floor(days / 365);
62
- // Return human-readable format
63
- if (seconds < 60) {
64
- return 'just now';
65
- }
66
- if (minutes < 60) {
67
- return `${minutes}m ago`;
68
- }
69
- if (hours < 24) {
70
- return `${hours}h ago`;
71
- }
72
- if (days < 7) {
73
- return `${days}d ago`;
74
- }
75
- if (weeks < 4) {
76
- return `${weeks}w ago`;
77
- }
78
- // Guard against "0mo ago" when days are 28-29 (months = Math.floor(days/30) = 0)
79
- if (months < 1) {
80
- return `${weeks}w ago`;
81
- }
82
- if (months < 12) {
83
- return `${months}mo ago`;
84
- }
85
- return `${years}y ago`;
86
- }
87
- catch (error) {
88
- const message = error instanceof Error ? error.message : String(error);
89
- (0, debug_logger_js_1.warn)(`[time-formatter] Error formatting timestamp ${timestamp}: ${message}`);
90
- return 'unknown';
91
- }
92
- }
93
- //# sourceMappingURL=time-formatter.js.map
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes