@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,201 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ftsSearchWikiPages = ftsSearchWikiPages;
4
- exports.vectorSearchWikiPages = vectorSearchWikiPages;
5
- const embeddings_js_1 = require("../embeddings.js");
6
- function tableColumns(adapter, tableName) {
7
- const rows = adapter.prepare(`PRAGMA table_info(${tableName})`).all();
8
- return new Set(rows.map((row) => row.name));
9
- }
10
- function readSchema(adapter) {
11
- const indexColumns = tableColumns(adapter, 'wiki_page_index');
12
- const embeddingColumns = tableColumns(adapter, 'wiki_page_embeddings');
13
- if (!indexColumns.has('id') && !indexColumns.has('page_id')) {
14
- throw new Error('wiki_page_index schema is missing both id and page_id columns.');
15
- }
16
- return {
17
- hasIdColumn: indexColumns.has('id'),
18
- hasPageIdColumn: indexColumns.has('page_id'),
19
- hasSourceTypeColumn: indexColumns.has('source_type'),
20
- hasSourceIdsColumn: indexColumns.has('source_ids'),
21
- hasEntityRefsColumn: indexColumns.has('entity_refs'),
22
- hasCreatedAtColumn: indexColumns.has('created_at'),
23
- embeddingUsesWikiPageId: embeddingColumns.has('wiki_page_id'),
24
- embeddingUsesVector: embeddingColumns.has('vector'),
25
- embeddingHasModel: embeddingColumns.has('model'),
26
- embeddingHasDim: embeddingColumns.has('dim'),
27
- embeddingHasCreatedAt: embeddingColumns.has('created_at'),
28
- };
29
- }
30
- function normalizeLimit(limit) {
31
- if (!Number.isFinite(limit)) {
32
- return 10;
33
- }
34
- return Math.max(0, Math.floor(limit));
35
- }
36
- function parseJsonArray(value) {
37
- if (value === null || value === undefined || value === '') {
38
- return [];
39
- }
40
- if (Array.isArray(value)) {
41
- return value.map(String);
42
- }
43
- if (typeof value !== 'string') {
44
- return [];
45
- }
46
- const parsed = JSON.parse(value);
47
- if (!Array.isArray(parsed)) {
48
- throw new Error('wiki_page_index JSON array column decoded to a non-array value.');
49
- }
50
- return parsed.map(String);
51
- }
52
- function normalizeConfidence(value) {
53
- if (value === 'high' || value === 'medium' || value === 'low') {
54
- return value;
55
- }
56
- return null;
57
- }
58
- function rowToRecord(row) {
59
- const id = Number(row.id);
60
- if (!Number.isFinite(id)) {
61
- throw new Error('wiki_page_index row is missing a numeric id/rowid.');
62
- }
63
- return {
64
- id,
65
- source_locator: String(row.source_locator ?? ''),
66
- page_type: row.page_type,
67
- title: String(row.title ?? ''),
68
- content: String(row.content ?? ''),
69
- case_id: row.case_id === null || row.case_id === undefined ? null : String(row.case_id),
70
- source_ids: parseJsonArray(row.source_ids),
71
- entity_refs: parseJsonArray(row.entity_refs),
72
- confidence: normalizeConfidence(row.confidence),
73
- compiled_at: String(row.compiled_at ?? ''),
74
- created_at: String(row.created_at ?? row.updated_at ?? row.compiled_at ?? ''),
75
- updated_at: String(row.updated_at ?? row.created_at ?? row.compiled_at ?? ''),
76
- };
77
- }
78
- function selectByFtsPageId(adapter, schema, pageId) {
79
- const sql = schema.hasIdColumn
80
- ? 'SELECT * FROM wiki_page_index WHERE id = ?'
81
- : 'SELECT rowid AS id, * FROM wiki_page_index WHERE page_id = ?';
82
- const lookup = schema.hasIdColumn ? Number(pageId) : String(pageId);
83
- const row = adapter.prepare(sql).get(lookup);
84
- return row ? rowToRecord(row) : null;
85
- }
86
- function blobToVector(value) {
87
- if (!(value instanceof Uint8Array)) {
88
- return null;
89
- }
90
- if (value.byteLength % 4 !== 0) {
91
- return null;
92
- }
93
- const buffer = Buffer.isBuffer(value) ? value : Buffer.from(value);
94
- const arrayBuffer = buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength);
95
- return new Float32Array(arrayBuffer);
96
- }
97
- function buildFtsQuery(query) {
98
- const tokens = query
99
- .toLowerCase()
100
- .match(/[\p{L}\p{N}_]+/gu)
101
- ?.filter((token) => token.length > 0);
102
- if (!tokens || tokens.length === 0) {
103
- return '';
104
- }
105
- return tokens.map((token) => `"${token.replace(/"/g, '""')}"`).join(' OR ');
106
- }
107
- function normalizeBm25Score(raw) {
108
- const value = Number(raw);
109
- if (!Number.isFinite(value)) {
110
- return 0;
111
- }
112
- if (value < 0) {
113
- return 1 + Math.abs(value);
114
- }
115
- return 1 / (1 + value);
116
- }
117
- function searchTableExists(adapter, tableName) {
118
- const row = adapter
119
- .prepare("SELECT name FROM sqlite_master WHERE name = ? AND type IN ('table','virtual table')")
120
- .get(tableName);
121
- return row !== undefined;
122
- }
123
- function ftsSearchWikiPages(adapter, query, limit) {
124
- const boundedLimit = normalizeLimit(limit);
125
- if (boundedLimit === 0 || !query.trim()) {
126
- return [];
127
- }
128
- if (!searchTableExists(adapter, 'wiki_pages_fts')) {
129
- return [];
130
- }
131
- const ftsQuery = buildFtsQuery(query);
132
- if (!ftsQuery) {
133
- return [];
134
- }
135
- const schema = readSchema(adapter);
136
- const rows = adapter
137
- .prepare(`
138
- SELECT page_id, bm25(wiki_pages_fts) AS raw
139
- FROM wiki_pages_fts
140
- WHERE wiki_pages_fts MATCH ?
141
- ORDER BY raw
142
- LIMIT ?
143
- `)
144
- .all(ftsQuery, boundedLimit);
145
- const hits = [];
146
- for (const row of rows) {
147
- const record = selectByFtsPageId(adapter, schema, row.page_id);
148
- if (!record) {
149
- continue;
150
- }
151
- hits.push({
152
- record,
153
- rank: hits.length,
154
- raw_score: normalizeBm25Score(row.raw),
155
- });
156
- }
157
- return hits;
158
- }
159
- function vectorSearchWikiPages(adapter, queryEmbedding, limit) {
160
- const boundedLimit = normalizeLimit(limit);
161
- if (boundedLimit === 0) {
162
- return [];
163
- }
164
- const schema = readSchema(adapter);
165
- const rows = schema.embeddingUsesWikiPageId
166
- ? adapter
167
- .prepare(`
168
- SELECT i.*, e.vector
169
- FROM wiki_page_embeddings e
170
- JOIN wiki_page_index i ON i.id = e.wiki_page_id
171
- `)
172
- .all()
173
- : adapter
174
- .prepare(`
175
- SELECT i.rowid AS id, i.*, e.embedding
176
- FROM wiki_page_embeddings e
177
- JOIN wiki_page_index i ON i.page_id = e.page_id
178
- `)
179
- .all();
180
- const scored = [];
181
- for (const row of rows) {
182
- const candidate = blobToVector(schema.embeddingUsesVector ? row.vector : row.embedding);
183
- if (!candidate || candidate.length !== queryEmbedding.length) {
184
- continue;
185
- }
186
- const score = (0, embeddings_js_1.cosineSimilarity)(candidate, queryEmbedding);
187
- if (!Number.isFinite(score)) {
188
- continue;
189
- }
190
- scored.push({ record: rowToRecord(row), score });
191
- }
192
- return scored
193
- .sort((left, right) => right.score - left.score)
194
- .slice(0, boundedLimit)
195
- .map((entry, rank) => ({
196
- record: entry.record,
197
- rank,
198
- raw_score: entry.score,
199
- }));
200
- }
201
- //# sourceMappingURL=wiki-page-index.js.map
@@ -1,68 +0,0 @@
1
- /**
2
- * MAMA Configuration Loader
3
- *
4
- * Story M1.4: Configurable embedding model selection
5
- * Priority: P1 (Core Feature)
6
- *
7
- * Loads user configuration from ~/.mama/config.json with sensible defaults.
8
- * Supports:
9
- * - Model selection (default: multilingual-e5-large)
10
- * - Embedding dimensions
11
- * - Cache directory configuration
12
- *
13
- * @module config-loader
14
- */
15
- export interface MAMAConfig {
16
- configVersion: number;
17
- modelName: string;
18
- embeddingDim: number;
19
- quantized: boolean;
20
- cacheDir: string;
21
- [key: string]: unknown;
22
- }
23
- export declare const DEFAULT_CONFIG: MAMAConfig;
24
- /**
25
- * Load MAMA configuration from ~/.mama/config.json
26
- *
27
- * Story M1.4 AC #1: Config parser loads ~/.mama/config.json
28
- *
29
- * @param reload - Force reload from disk (default: false)
30
- * @returns Configuration object with modelName, embeddingDim, cacheDir
31
- */
32
- export declare function loadConfig(reload?: boolean): MAMAConfig;
33
- /**
34
- * Get current model name
35
- */
36
- export declare function getModelName(): string;
37
- /**
38
- * Get current embedding dimension
39
- */
40
- export declare function getEmbeddingDim(): number;
41
- /**
42
- * Get whether to use quantized model
43
- */
44
- export declare function getQuantized(): boolean;
45
- /**
46
- * Get current cache directory
47
- */
48
- export declare function getCacheDir(): string;
49
- export interface ConfigUpdates {
50
- modelName?: string;
51
- embeddingDim?: number;
52
- quantized?: boolean;
53
- cacheDir?: string;
54
- }
55
- /**
56
- * Update configuration and save to file
57
- *
58
- * Story M1.4 AC #3: Changing model via config triggers informative log + resets caches
59
- *
60
- * @param updates - Configuration updates
61
- * @returns Success status
62
- */
63
- export declare function updateConfig(updates: ConfigUpdates): boolean;
64
- /**
65
- * Get config file path
66
- */
67
- export declare function getConfigPath(): string;
68
- //# sourceMappingURL=config-loader.d.ts.map
@@ -1,239 +0,0 @@
1
- "use strict";
2
- /**
3
- * MAMA Configuration Loader
4
- *
5
- * Story M1.4: Configurable embedding model selection
6
- * Priority: P1 (Core Feature)
7
- *
8
- * Loads user configuration from ~/.mama/config.json with sensible defaults.
9
- * Supports:
10
- * - Model selection (default: multilingual-e5-large)
11
- * - Embedding dimensions
12
- * - Cache directory configuration
13
- *
14
- * @module config-loader
15
- */
16
- var __importDefault = (this && this.__importDefault) || function (mod) {
17
- return (mod && mod.__esModule) ? mod : { "default": mod };
18
- };
19
- Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.DEFAULT_CONFIG = void 0;
21
- exports.loadConfig = loadConfig;
22
- exports.getModelName = getModelName;
23
- exports.getEmbeddingDim = getEmbeddingDim;
24
- exports.getQuantized = getQuantized;
25
- exports.getCacheDir = getCacheDir;
26
- exports.updateConfig = updateConfig;
27
- exports.getConfigPath = getConfigPath;
28
- const fs_1 = __importDefault(require("fs"));
29
- const path_1 = __importDefault(require("path"));
30
- const os_1 = __importDefault(require("os"));
31
- const debug_logger_js_1 = require("./debug-logger.js");
32
- // Current config version — bump this when adding migrations
33
- const CURRENT_CONFIG_VERSION = 2;
34
- // Default configuration
35
- exports.DEFAULT_CONFIG = {
36
- configVersion: CURRENT_CONFIG_VERSION,
37
- modelName: 'Xenova/multilingual-e5-large',
38
- embeddingDim: 1024,
39
- quantized: true,
40
- cacheDir: path_1.default.join(os_1.default.homedir(), '.cache', 'huggingface', 'transformers'),
41
- };
42
- /**
43
- * Config migrations — each entry upgrades from (version - 1) to version.
44
- * Migrations run sequentially and mutate the config object in place.
45
- */
46
- const CONFIG_MIGRATIONS = {
47
- // v1 → v2: e5-small (384-dim) → e5-large (1024-dim)
48
- 2: (cfg) => {
49
- if (cfg.modelName === 'Xenova/multilingual-e5-small' && cfg.embeddingDim === 384) {
50
- (0, debug_logger_js_1.info)('[config] Migration v2: upgrading embedding model e5-small → e5-large');
51
- cfg.modelName = 'Xenova/multilingual-e5-large';
52
- cfg.embeddingDim = 1024;
53
- }
54
- },
55
- };
56
- /**
57
- * Apply pending migrations to a config object.
58
- * Returns true if any migrations were applied.
59
- */
60
- function applyMigrations(config) {
61
- const startVersion = config.configVersion || 1;
62
- if (startVersion >= CURRENT_CONFIG_VERSION)
63
- return false;
64
- for (let v = startVersion + 1; v <= CURRENT_CONFIG_VERSION; v++) {
65
- const migrate = CONFIG_MIGRATIONS[v];
66
- if (migrate) {
67
- migrate(config);
68
- (0, debug_logger_js_1.info)(`[config] Applied migration v${v}`);
69
- }
70
- }
71
- config.configVersion = CURRENT_CONFIG_VERSION;
72
- return true;
73
- }
74
- // Config file path
75
- const CONFIG_DIR = path_1.default.join(os_1.default.homedir(), '.mama');
76
- const CONFIG_PATH = path_1.default.join(CONFIG_DIR, 'config.json');
77
- // Cached configuration
78
- let cachedConfig = null;
79
- /**
80
- * Ensure config directory exists
81
- */
82
- function ensureConfigDir() {
83
- if (!fs_1.default.existsSync(CONFIG_DIR)) {
84
- fs_1.default.mkdirSync(CONFIG_DIR, { recursive: true });
85
- (0, debug_logger_js_1.info)(`[config] Created config directory: ${CONFIG_DIR}`);
86
- }
87
- }
88
- /**
89
- * Create default config file if it doesn't exist
90
- */
91
- function ensureConfigFile() {
92
- if (!fs_1.default.existsSync(CONFIG_PATH)) {
93
- ensureConfigDir();
94
- fs_1.default.writeFileSync(CONFIG_PATH, JSON.stringify(exports.DEFAULT_CONFIG, null, 2), 'utf8');
95
- (0, debug_logger_js_1.info)(`[config] Created default config file: ${CONFIG_PATH}`);
96
- (0, debug_logger_js_1.info)(`[config] Model: ${exports.DEFAULT_CONFIG.modelName} (${exports.DEFAULT_CONFIG.embeddingDim}-dim)`);
97
- }
98
- }
99
- /**
100
- * Load MAMA configuration from ~/.mama/config.json
101
- *
102
- * Story M1.4 AC #1: Config parser loads ~/.mama/config.json
103
- *
104
- * @param reload - Force reload from disk (default: false)
105
- * @returns Configuration object with modelName, embeddingDim, cacheDir
106
- */
107
- function loadConfig(reload = false) {
108
- // Return cached config if available and not forcing reload
109
- if (cachedConfig && !reload) {
110
- return cachedConfig;
111
- }
112
- try {
113
- // Ensure config file exists
114
- ensureConfigFile();
115
- // Read and parse config file
116
- const configData = fs_1.default.readFileSync(CONFIG_PATH, 'utf8');
117
- const userConfig = JSON.parse(configData);
118
- // Determine file's config version before merging with defaults
119
- const fileVersion = userConfig.configVersion || 1;
120
- // Merge with defaults (user config overrides)
121
- const config = {
122
- ...exports.DEFAULT_CONFIG,
123
- ...userConfig,
124
- configVersion: fileVersion, // preserve file version for migration check
125
- };
126
- // Apply pending migrations based on file's version
127
- if (applyMigrations(config)) {
128
- fs_1.default.writeFileSync(CONFIG_PATH, JSON.stringify(config, null, 2), 'utf8');
129
- (0, debug_logger_js_1.info)(`[config] Migrated config saved to ${CONFIG_PATH}`);
130
- }
131
- // Validate configuration
132
- if (!config.modelName || typeof config.modelName !== 'string') {
133
- (0, debug_logger_js_1.warn)('[config] Invalid modelName, using default:', exports.DEFAULT_CONFIG.modelName);
134
- config.modelName = exports.DEFAULT_CONFIG.modelName;
135
- }
136
- if (!Number.isInteger(config.embeddingDim) || config.embeddingDim <= 0) {
137
- (0, debug_logger_js_1.warn)('[config] Invalid embeddingDim, using default:', exports.DEFAULT_CONFIG.embeddingDim);
138
- config.embeddingDim = exports.DEFAULT_CONFIG.embeddingDim;
139
- }
140
- if (!config.cacheDir || typeof config.cacheDir !== 'string') {
141
- (0, debug_logger_js_1.warn)('[config] Invalid cacheDir, using default:', exports.DEFAULT_CONFIG.cacheDir);
142
- config.cacheDir = exports.DEFAULT_CONFIG.cacheDir;
143
- }
144
- // Cache the loaded config
145
- cachedConfig = config;
146
- // Log loaded configuration
147
- if (reload) {
148
- (0, debug_logger_js_1.info)(`[config] Configuration reloaded from ${CONFIG_PATH}`);
149
- (0, debug_logger_js_1.info)(`[config] Model: ${config.modelName} (${config.embeddingDim}-dim)`);
150
- (0, debug_logger_js_1.info)(`[config] Cache: ${config.cacheDir}`);
151
- }
152
- return config;
153
- }
154
- catch (error) {
155
- const message = error instanceof Error ? error.message : String(error);
156
- (0, debug_logger_js_1.error)(`[config] Failed to load config file: ${message}`);
157
- (0, debug_logger_js_1.error)('[config] Using default configuration');
158
- // Cache defaults on error
159
- cachedConfig = { ...exports.DEFAULT_CONFIG };
160
- return cachedConfig;
161
- }
162
- }
163
- /**
164
- * Get current model name
165
- */
166
- function getModelName() {
167
- const config = loadConfig();
168
- return config.modelName;
169
- }
170
- /**
171
- * Get current embedding dimension
172
- */
173
- function getEmbeddingDim() {
174
- const config = loadConfig();
175
- return config.embeddingDim;
176
- }
177
- /**
178
- * Get whether to use quantized model
179
- */
180
- function getQuantized() {
181
- const config = loadConfig();
182
- return config.quantized;
183
- }
184
- /**
185
- * Get current cache directory
186
- */
187
- function getCacheDir() {
188
- const config = loadConfig();
189
- return config.cacheDir;
190
- }
191
- /**
192
- * Update configuration and save to file
193
- *
194
- * Story M1.4 AC #3: Changing model via config triggers informative log + resets caches
195
- *
196
- * @param updates - Configuration updates
197
- * @returns Success status
198
- */
199
- function updateConfig(updates) {
200
- try {
201
- ensureConfigFile();
202
- // Load current config
203
- const currentConfig = loadConfig();
204
- // Check if model is changing
205
- const modelChanged = updates.modelName && updates.modelName !== currentConfig.modelName;
206
- const dimChanged = updates.embeddingDim && updates.embeddingDim !== currentConfig.embeddingDim;
207
- // Merge updates
208
- const newConfig = {
209
- ...currentConfig,
210
- ...updates,
211
- };
212
- // Save to file
213
- fs_1.default.writeFileSync(CONFIG_PATH, JSON.stringify(newConfig, null, 2), 'utf8');
214
- // Update cache
215
- cachedConfig = newConfig;
216
- // Story M1.4 AC #3: Informative log when model changes
217
- if (modelChanged || dimChanged) {
218
- (0, debug_logger_js_1.info)('[config] ⚠️ Embedding model configuration changed');
219
- (0, debug_logger_js_1.info)(`[config] Old: ${currentConfig.modelName} (${currentConfig.embeddingDim}-dim)`);
220
- (0, debug_logger_js_1.info)(`[config] New: ${newConfig.modelName} (${newConfig.embeddingDim}-dim)`);
221
- (0, debug_logger_js_1.info)('[config] ⚡ Model cache will be reset on next embedding generation');
222
- (0, debug_logger_js_1.info)('[config] ⚡ Existing embeddings in database remain unchanged');
223
- }
224
- (0, debug_logger_js_1.info)(`[config] Configuration saved to ${CONFIG_PATH}`);
225
- return true;
226
- }
227
- catch (error) {
228
- const message = error instanceof Error ? error.message : String(error);
229
- (0, debug_logger_js_1.error)(`[config] Failed to update config: ${message}`);
230
- return false;
231
- }
232
- }
233
- /**
234
- * Get config file path
235
- */
236
- function getConfigPath() {
237
- return CONFIG_PATH;
238
- }
239
- //# sourceMappingURL=config-loader.js.map
@@ -1,24 +0,0 @@
1
- import type { DatabaseAdapter } from '../db-manager.js';
2
- import type { ConnectorEventIndexCursorRecord, ConnectorEventIndexRecord, UpsertConnectorEventIndexInput } from './types.js';
3
- type ConnectorEventIndexAdapter = Pick<DatabaseAdapter, 'prepare' | 'transaction'>;
4
- interface DeleteExpiredConnectorEventsInput {
5
- nowMs: number;
6
- retentionMs: number;
7
- connectorName?: string;
8
- }
9
- export declare function mapConnectorEventIndexRecord(row: Record<string, unknown>): ConnectorEventIndexRecord;
10
- export declare function connectorEventIndexId(sourceConnector: string, sourceId: string): string;
11
- export declare function connectorEventContentHash(input: {
12
- source_connector: string;
13
- source_id: string;
14
- content: string;
15
- event_datetime?: number | null;
16
- }): Buffer;
17
- export declare function upsertConnectorEventIndex(adapter: ConnectorEventIndexAdapter, input: UpsertConnectorEventIndexInput): ConnectorEventIndexRecord;
18
- export declare function getConnectorEventIndexRecord(adapter: ConnectorEventIndexAdapter, sourceConnector: string, sourceId: string): ConnectorEventIndexRecord | null;
19
- export declare function readConnectorCursor(adapter: ConnectorEventIndexAdapter, connectorName: string): ConnectorEventIndexCursorRecord | null;
20
- export declare function deleteExpiredConnectorEvents(adapter: ConnectorEventIndexAdapter, input: DeleteExpiredConnectorEventsInput): {
21
- rows_deleted: number;
22
- };
23
- export type { ConnectorEventIndexCursorRecord, ConnectorEventIndexRecord, ConnectorEventSearchHit, ConnectorEventStalenessStatus, UpsertConnectorEventIndexCursorInput, UpsertConnectorEventIndexInput, } from './types.js';
24
- //# sourceMappingURL=event-index.d.ts.map