@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
package/README.md CHANGED
@@ -1,258 +1,95 @@
1
- # @jungjaehoon/mama-core
1
+ # mama-core
2
2
 
3
- Shared memory, provenance, graph, and context substrate for MAMA.
3
+ The shared engine for storage, records and revisions, evidence links, memory, search and native
4
+ runtime drivers. Consumers supply their own database, principals, source access and product
5
+ vocabulary through public exports. Core does not require the MAMA OS daemon.
4
6
 
5
- ## What is MAMA Core?
7
+ Version **4.1.0**; Node.js 22.13+. This README describes the current rebuild checkout.
8
+ See [architecture](../../docs/explanation/architecture.md) and
9
+ [the shared-engine goal](../../INTENT.md).
6
10
 
7
- MAMA Core is a shared package containing the fundamental modules used by all MAMA packages:
11
+ ## Public API
8
12
 
9
- - **mcp-server**: MCP protocol server
10
- - **claude-code-plugin**: Claude Code plugin
11
- - **standalone**: Standalone HTTP server
13
+ [package.json](package.json) defines supported import paths; [src/index.ts](src/index.ts)
14
+ defines root exports. Representative root exports:
12
15
 
13
- This package provides embedding generation, database management, scoped memory, provenance, raw
14
- evidence refs, graph/entity helpers, and worker context primitives without the transport layer
15
- (MCP/HTTP).
16
+ | Area | Root exports |
17
+ | --------- | ------------------------------------------------------------------------------------------------- |
18
+ | Storage | `createAdapter`, `SQLiteAdapter`, `initDB`, `getDB`, `getAdapter`, `closeDB` |
19
+ | Records | `createKnowledge`, `appendJudgment`, `ingestSource` |
20
+ | Memory | `mama`, `createMamaApi`, `saveMemory`, `recallMemory`, `ingestConversation`, `MEMORY_KINDS` |
21
+ | Search | `generateEmbedding`, `generateEnhancedEmbedding`, `cosineSimilarity`, `EmbeddingCache` |
22
+ | Evidence | `getMemoryProvenance`, `resolveMemoryProvenance`, `insertTwinEdge`, `listVisibleTwinEdgesForRefs` |
23
+ | Execution | `createCatalog`, `createDispatcher`, `createClient`, `startRuntime`, `createActionIpcServer` |
24
+ | Traces | `beginModelRun`, `commitModelRun`, `appendToolTrace`, `listToolTracesForRun` |
16
25
 
17
- ## Installation
26
+ Every public subpath below is relative to `@jungjaehoon/mama-core`:
18
27
 
19
- ```bash
20
- npm install @jungjaehoon/mama-core
21
- # or
22
- pnpm add @jungjaehoon/mama-core
23
- ```
28
+ | Area | Export paths |
29
+ | --------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
30
+ | Root | `.` |
31
+ | Memory and storage | `./embeddings`, `./memory/types`, `./db-manager`, `./mama-api` |
32
+ | Helpers | `./relevance-scorer`, `./debug-logger`, `./decision-formatter`, `./errors`, `./canonicalize` |
33
+ | Evidence and records | `./connectors`, `./connectors/event-index`, `./connectors/raw-query`, `./provenance/source-ref`, `./registry/store`, `./knowledge` |
34
+ | Actions | `./operations/owner-action-effects`, `./action-contracts`, `./api/catalog`, `./api/dispatch` |
35
+ | Transport and runtime | `./client/client`, `./client/ipc`, `./runtime/*` |
24
36
 
25
- ## Usage
37
+ The two event-index paths export the same module. Runtime subpaths map to compiled JavaScript
38
+ and declarations under `dist/runtime/`. Source files without an export path are internal.
26
39
 
27
- ### Import Everything
40
+ After installing the package, a minimal CommonJS example is:
28
41
 
29
42
  ```javascript
30
- const mama = require('@jungjaehoon/mama-core');
31
-
32
- // Access all exported functions
33
- const embedding = await mama.generateEmbedding('your text');
34
- await mama.initDB();
43
+ process.env.MAMA_DB_PATH = '/path/to/consumer/memory.db';
44
+ const { initDB, getDB, closeDB } = require('@jungjaehoon/mama-core');
45
+
46
+ async function main() {
47
+ await initDB();
48
+ getDB(); // The initialized SQLite connection.
49
+ closeDB();
50
+ }
51
+ main().catch(console.error);
35
52
  ```
36
53
 
37
- ### Import Specific Modules
38
-
39
- ```javascript
40
- const { generateEmbedding } = require('@jungjaehoon/mama-core/embeddings');
41
- const { initDB, getDB } = require('@jungjaehoon/mama-core/db-manager');
42
- const mamaApi = require('@jungjaehoon/mama-core/mama-api');
54
+ Set the path before initialization: the default `~/.claude/mama-memory.db` is real development
55
+ memory, not a test database. Adapter-based APIs accept consumer-owned storage; consult the
56
+ exported types for input contracts.
57
+
58
+ Embeddings use `Xenova/multilingual-e5-large` (1024 dimensions), computed locally.
59
+ Core selects `HF_HOME`, then `TRANSFORMERS_CACHE`, then the directory declared by the consumer;
60
+ otherwise Transformers uses its own default. MAMA's OS, MCP and plugin consumers declare
61
+ `~/.cache/huggingface/transformers`. Other consumers can call `declareEmbeddingCacheDir()`
62
+ from `./embeddings` before the first embedding. Initial use can download model assets.
63
+
64
+ ## Directory layout and migrations
65
+
66
+ ```text
67
+ src/
68
+ index.ts root exports
69
+ db-manager.ts, mama-api.ts database and development-memory facade
70
+ api/, client/ catalog, dispatch and transports
71
+ db-adapter/, storage/ SQLite adapters and storage support
72
+ embedding/ embeddings and model cache
73
+ identity/, registry/ principals and record identity
74
+ knowledge/, memory/ records, revisions, evidence, recall
75
+ operations/, provenance/ effect contracts and source references
76
+ runtime/ sessions, mailbox, drivers, runs and traces
77
+ db/migrations/ numbered SQLite migrations
78
+ scripts/ build support
79
+ tests/ package tests
43
80
  ```
44
81
 
45
- ## Available Modules
46
-
47
- ### Embedding Modules
48
-
49
- - **embeddings** - Generate embeddings using Transformers.js
50
- - `generateEmbedding(text)` - Single text embedding
51
- - `generateBatchEmbeddings(texts)` - Batch embedding generation
52
- - `cosineSimilarity(a, b)` - Similarity calculation
53
-
54
- - **embedding-cache** - In-memory embedding cache
55
- - `embeddingCache.get(key)` - Retrieve cached embedding
56
- - `embeddingCache.set(key, value)` - Store embedding
57
- - `embeddingCache.clear()` - Clear cache
58
-
59
- - **embedding-client** - HTTP client for embedding server
60
- - `isServerRunning()` - Check server availability
61
- - `getEmbeddingFromServer(text)` - Get embedding via HTTP
62
- - `getServerStatus()` - Server health check
63
-
64
- ### Database Modules
65
-
66
- - **db-manager** - SQLite database initialization
67
- - `initDB()` - Initialize database with migrations
68
- - `getDB()` - Get database connection
69
- - `closeDB()` - Close connection
70
-
71
- - **db-adapter** - Database adapter interface
72
- - `createAdapter(type)` - Create SQLite adapter
73
- - Supports prepared statements and transactions
74
-
75
- - **memory-store** - Decision storage operations
76
- - CRUD operations for decisions
77
- - Vector similarity search
78
-
79
- ### Memory API
80
-
81
- - **memory/api** - Scoped memory operations
82
- - `saveMemory(input)` - Save typed memory with scopes and optional event_date (preference, fact, decision, lesson, constraint)
83
- - `recallMemory(query, options)` - Truth-aware recall with scope filtering, strictness modes, and retrieval diagnostics
84
- - `buildProfile(scopes)` - Build memory profile (static/dynamic/evidence)
85
- - `ingestMemory(input)` - Ingest raw content as memory
86
- - `ingestConversation(input)` - Decompose conversations into typed memory units via optional LLM extraction
87
- - `evolveMemory(input)` - Resolve graph edges between memories
88
- - `buildMemoryBootstrap(params)` - Build memory agent bootstrap context
89
- - `createAuditAck(input)` - Create audit acknowledgment
90
- - `recordMemoryAudit(input)` - Record channel audit with state management
91
-
92
- - **memory/truth-store** - Truth projection layer
93
- - `projectMemoryTruth(row)` - Write truth projection
94
- - `queryRelevantTruth(params)` - Query current truth with scope/query filtering
95
- - `queryTruthByTopic(topic)` - Get truth rows for a topic
96
-
97
- - **memory/evolution-engine** - Graph edge resolution
98
- - `resolveMemoryEvolution(input)` - Determine supersedes/builds_on edges
99
-
100
- - **memory/extraction-prompt** - LLM extraction for conversation ingestion
101
- - `buildExtractionPrompt(messages)` - Build structured prompt for memory extraction
102
- - `parseExtractionResponse(response)` - Parse LLM JSON response into typed units
103
-
104
- - **memory/channel-summary-state-store** - Channel state management
105
- - `recordChannelAudit(input)` - Accumulate audit outcomes into channel state
106
-
107
- - **memory/provenance** - Trusted memory provenance
108
- - Preserves compact runtime origin metadata in `provenance_json`
109
- - Keeps underlying raw/memory/case/entity refs in `source_refs_json`
110
- - Ignores caller-supplied untrusted provenance on public paths
111
-
112
- - **model-runs** - Agent execution lineage
113
- - `model-runs/store` records model run lifecycle and replay metadata
114
- - `model-runs/tool-trace-store` records tool calls for later audit and reconstruction
115
-
116
- - **connectors/raw-query** - Unified raw evidence reads
117
- - Query raw connector rows through scope-aware filters
118
- - Preserve raw source ids for downstream provenance
119
-
120
- - **agent-situation** - Worker situation packets
121
- - Build, rank, cache, insert, and read append-only situation packets for worker context
122
-
123
- - **agent-graph** - Worker graph/entity helpers
124
- - Query graph neighborhoods, resolve entities, and write aliases with visibility checks
125
-
126
- ### Core API (Legacy)
127
-
128
- - **mama-api** - High-level API interface (wraps memory API)
129
- - `save(decision)` - Save decision
130
- - `recall(topic)` - Retrieve decision history
131
- - `suggest(query, options)` - Semantic search with hybrid FTS5 + vector + recency, strictness controls, and diagnostics
132
- - `updateOutcome(id, outcome)` - Update decision outcome
133
-
134
- - **search/search-quality** - Search option normalization
135
- - `normalizeSearchQualityOptions(options)` - Normalize recall/balanced/strict thresholds and confirmation requirements
136
-
137
- - **edges** - Twin edge ledger
138
- - Validate refs and store durable edges between memory, raw, entity, case, and packet refs
139
-
140
- - **decision-tracker** - Decision graph management
141
- - `learnDecision(decision)` - Learn from decision
142
- - `createEdgesFromReasoning(reasoning)` - Parse decision links
143
-
144
- - **relevance-scorer** - Semantic similarity scoring
145
- - `scoreRelevance(query, decisions)` - Score decision relevance
146
- - Combines vector, graph, and recency signals
147
-
148
- ### Configuration
149
-
150
- - **config-loader** - Configuration management
151
- - `loadConfig()` - Load MAMA configuration
152
- - `getModelName()` - Get embedding model name
153
- - `getEmbeddingDim()` - Get embedding dimensions
154
- - `updateConfig(config)` - Update configuration
155
-
156
- ## Environment Variables
157
-
158
- - `MAMA_DB_PATH` - Database file path (default: `~/.claude/mama-memory.db`)
159
- - `MAMA_EMBEDDING_PORT` - Embedding server port (default: `3849`)
160
- - `MAMA_HTTP_PORT` - Backward-compatible alias for embedding server port
161
-
162
- ## Dependencies
163
-
164
- - **@huggingface/transformers** - Local embedding generation
165
- - **better-sqlite3** - SQLite runtime with FTS5 support
166
- - **Pure-TS cosine similarity** - Vector search (no native extensions)
82
+ The highest migration is **096**, `096-drop-connector-event-index-fts.sql`.
83
+ Migration files cover **001–042** and **061–096**; there is no 043 file.
84
+ **044–060 are reserved** by the retired chain's `schema_version` entries and must never be
85
+ reused. Add schema changes after 096, not into a gap. See [migrations](db/migrations).
167
86
 
168
87
  ## Development
169
88
 
170
- ```bash
171
- # Install dependencies
172
- pnpm install
173
-
174
- # Run tests
175
- pnpm test
176
-
177
- # Watch mode
178
- pnpm test:watch
179
- ```
180
-
181
- ## Test Coverage
182
-
183
- - 120+ unit/integration test files in `packages/mama-core/tests`
184
- - 100% passing
185
- - Tests cover:
186
- - Config loader, database initialization, module exports
187
- - Memory API (save, recall, profile)
188
- - Truth store, evolution engine, scope schema
189
- - Channel summary, channel summary state
190
- - Event store, finding store, bootstrap builder
191
- - Memory provenance, model runs, tool traces
192
- - Twin edges, raw query, agent situation, agent graph
193
- - Strict search diagnostics and rollup provenance
194
- - Legacy shim compatibility
195
-
196
- ## Architecture
197
-
198
- MAMA Core uses CommonJS modules and is designed to be shared across multiple packages:
199
-
200
- ```
201
- packages/mama-core/
202
- ├── src/
203
- │ ├── index.ts # Main exports
204
- │ ├── embeddings.ts # Embedding generation
205
- │ ├── db-manager.ts # Database management
206
- │ ├── mama-api.ts # High-level API (wraps memory API)
207
- │ ├── db-adapter/ # Database adapter (SQLite)
208
- │ ├── memory/ # Memory infrastructure
209
- │ ├── types.ts # MemoryRecord, MemoryScopeRef, RecallBundle, etc.
210
- │ ├── api.ts # saveMemory, recallMemory, buildProfile, etc.
211
- │ ├── truth-store.ts # Truth projection layer
212
- │ ├── extraction-prompt.ts # LLM extraction prompt + parser
213
- │ ├── evolution-engine.ts # Graph edge resolution
214
- │ ├── scope-store.ts # Scope management
215
- │ ├── event-store.ts # Audit event persistence
216
- │ ├── finding-store.ts # Audit finding persistence
217
- │ ├── channel-summary-store.ts # Channel summaries
218
- │ ├── channel-summary-state-store.ts # Channel state reducer
219
- │ ├── bootstrap-builder.ts # Memory agent bootstrap
220
- │ └── profile-builder.ts # Profile classification
221
- │ ├── model-runs/ # Model run + tool trace lineage
222
- │ ├── connectors/ # Raw connector query/index helpers
223
- │ ├── edges/ # Twin edge ledger
224
- │ ├── agent-situation/ # Worker situation packets
225
- │ ├── agent-graph/ # Worker graph/entity helpers
226
- │ └── search/ # Search quality option normalization
227
- ├── db/migrations/ # SQLite migrations (001-036)
228
- └── tests/ # Unit and integration tests
229
- ```
230
-
231
- ## Migration Files
232
-
233
- Database migrations are included in `db/migrations/` (001-036):
234
-
235
- - 001-013: Core schema (decisions, embeddings, graph edges)
236
- - 014: Add is_static column
237
- - 015: FTS5 full-text search index
238
- - 016: Memory kind/status/summary columns
239
- - 017-018: Memory scopes and scope bindings
240
- - 019-020: Memory events and audit findings
241
- - 021: Memory truth projection
242
- - 022-023: Channel summaries and state
243
- - 024-036: event dates, connector memory kinds, canonical entities, case-first memory, wiki/index
244
- provenance, model/tool traces, twin edges, and agent situation packets
245
-
246
- ## License
247
-
248
- MIT - see LICENSE file for details
249
-
250
- ## Links
251
-
252
- - [GitHub Repository](https://github.com/jungjaehoon-lifegamez/MAMA)
253
- - [Documentation](https://github.com/jungjaehoon-lifegamez/MAMA/tree/main/docs)
254
- - [Issues](https://github.com/jungjaehoon-lifegamez/MAMA/issues)
255
-
256
- ---
89
+ Build with `pnpm install` and `pnpm build` at the repository root.
90
+ Run `pnpm typecheck` or `pnpm test` inside this package; use a temporary home and explicit
91
+ database path as described in [testing](../../docs/development/testing.md).
92
+ The packed second-consumer check is tracked in [the rebuild plan](../../docs/rebuild/plan.md);
93
+ package tests alone do not establish that goal.
257
94
 
258
- **Part of the MAMA monorepo** - Memory-Augmented MCP Assistant
95
+ [Documentation](../../docs/index.md) · [MIT](../../LICENSE).
@@ -8,7 +8,7 @@
8
8
  -- connector_event_index, learned ranker + search feedback,
9
9
  -- case_links + tombstones, case promotion/freshness columns,
10
10
  -- case membership explanation columns.
11
- -- Spec: docs/superpowers/specs/2026-04-17-mama-work-case-first-memory-system-design.md
11
+ -- Spec: the case-first memory design spec (not retained in the repository)
12
12
 
13
13
  -- ================================================================
14
14
  -- Entity substrate — decision_entity_sources
@@ -259,7 +259,7 @@ ALTER TABLE entity_observations DROP COLUMN source_raw_db_ref;
259
259
  -- ================================================================
260
260
  -- Migration 039: Create case_truth table
261
261
  -- Phase 1 of MAMA Case-First Memory System
262
- -- Spec: docs/superpowers/specs/2026-04-17-mama-work-case-first-memory-system-design.md §5.2
262
+ -- Spec: the case-first memory design spec (not retained in the repository) §5.2
263
263
 
264
264
  CREATE TABLE IF NOT EXISTS case_truth (
265
265
  case_id TEXT PRIMARY KEY, -- UUID, also persisted in wiki frontmatter
@@ -295,7 +295,7 @@ CREATE INDEX IF NOT EXISTS idx_case_truth_last_activity ON case_truth(last_activ
295
295
  -- ================================================================
296
296
  -- Migration 040: Create case_memberships table
297
297
  -- Phase 1 of MAMA Case-First Memory System
298
- -- Spec: docs/superpowers/specs/2026-04-17-mama-work-case-first-memory-system-design.md §5.3
298
+ -- Spec: the case-first memory design spec (not retained in the repository) §5.3
299
299
  --
300
300
  -- Locked tombstone encoding (§0d Option B): (status='stale', user_locked=1).
301
301
  -- CHECK enum stays at 5 values; no 'stale_locked'.
@@ -326,7 +326,7 @@ CREATE INDEX IF NOT EXISTS idx_case_memberships_case_status
326
326
  -- ================================================================
327
327
  -- Migration 041: Create case_corrections table
328
328
  -- Phase 1 of MAMA Case-First Memory System
329
- -- Spec: docs/superpowers/specs/2026-04-17-mama-work-case-first-memory-system-design.md §5.4
329
+ -- Spec: the case-first memory design spec (not retained in the repository) §5.4
330
330
  --
331
331
  -- Option C (Phase 0 §0f): target_ref_json TEXT (readable canonical JSON) +
332
332
  -- target_ref_hash BLOB (32-byte SHA-256 over canonical JSON).
@@ -372,7 +372,7 @@ CREATE INDEX IF NOT EXISTS idx_case_corrections_target_kind
372
372
  -- ================================================================
373
373
  -- Migration 042: Create case_proposal_queue table
374
374
  -- Phase 1 of MAMA Case-First Memory System
375
- -- Spec: docs/superpowers/specs/2026-04-17-mama-work-case-first-memory-system-design.md §5.7
375
+ -- Spec: the case-first memory design spec (not retained in the repository) §5.7
376
376
  --
377
377
  -- Acceptance-layer queue for LLM proposals rejected by the deterministic
378
378
  -- acceptance layer (§4.2). Phase 1 SCAFFOLD + quarantine writes only; HITL
@@ -429,7 +429,7 @@ CREATE UNIQUE INDEX IF NOT EXISTS idx_case_proposal_queue_dedup
429
429
  -- ================================================================
430
430
  -- Migration 043: Wiki page search index for mama_search integration
431
431
  -- Phase 1 of MAMA Case-First Memory System
432
- -- Spec: docs/superpowers/specs/2026-04-17-mama-work-case-first-memory-system-design.md §7.1
432
+ -- Spec: the case-first memory design spec (not retained in the repository) §7.1
433
433
  --
434
434
  -- Tables: wiki_page_index (metadata), wiki_page_embeddings (vectors),
435
435
  -- wiki_pages_fts (FTS5 inverted index). FTS5 is REGULAR (not contentless,
@@ -515,101 +515,16 @@ ALTER TABLE entity_timeline_events ADD COLUMN role TEXT;
515
515
 
516
516
  -- ================================================================
517
517
  -- Phase 3 — connector_event_index
518
- -- ================================================================
519
- -- Migration 045: Create connector_event_index and replay-safe connector cursors
520
- -- Phase 3 of MAMA Case-First Memory System
521
- -- Spec: docs/superpowers/specs/2026-04-17-mama-work-case-first-memory-system-design.md Amendment 9
522
-
523
- CREATE TABLE IF NOT EXISTS connector_event_index (
524
- event_index_id TEXT PRIMARY KEY,
525
- source_connector TEXT NOT NULL,
526
- source_type TEXT NOT NULL,
527
- source_id TEXT NOT NULL,
528
- source_locator TEXT,
529
- channel TEXT,
530
- author TEXT,
531
- title TEXT,
532
- content TEXT NOT NULL,
533
- event_datetime INTEGER,
534
- event_date TEXT,
535
- source_timestamp_ms INTEGER NOT NULL,
536
- metadata_json TEXT,
537
- artifact_locator TEXT,
538
- artifact_title TEXT,
539
- content_hash BLOB NOT NULL CHECK(length(content_hash) = 32),
540
- indexed_at TEXT NOT NULL,
541
- updated_at TEXT NOT NULL,
542
- expires_at TEXT
543
- );
544
-
545
- CREATE UNIQUE INDEX IF NOT EXISTS idx_connector_event_index_source_identity
546
- ON connector_event_index(source_connector, source_id);
547
-
548
- CREATE INDEX IF NOT EXISTS idx_connector_event_index_cursor_order
549
- ON connector_event_index(source_connector, source_timestamp_ms, source_id);
550
-
551
- CREATE INDEX IF NOT EXISTS idx_connector_event_index_event_datetime
552
- ON connector_event_index(event_datetime, event_index_id);
553
-
554
- CREATE INDEX IF NOT EXISTS idx_connector_event_index_event_date
555
- ON connector_event_index(event_date, event_datetime, event_index_id);
556
-
557
- CREATE INDEX IF NOT EXISTS idx_connector_event_index_artifact_locator
558
- ON connector_event_index(artifact_locator)
559
- WHERE artifact_locator IS NOT NULL;
560
-
561
- CREATE INDEX IF NOT EXISTS idx_connector_event_index_expires_at
562
- ON connector_event_index(expires_at)
563
- WHERE expires_at IS NOT NULL;
564
-
565
- CREATE VIRTUAL TABLE IF NOT EXISTS connector_event_index_fts USING fts5(
566
- event_index_id UNINDEXED,
567
- title,
568
- content,
569
- author,
570
- channel,
571
- tokenize = 'unicode61 remove_diacritics 2'
572
- );
573
-
574
- CREATE TRIGGER IF NOT EXISTS trg_connector_event_index_ai
575
- AFTER INSERT ON connector_event_index
576
- BEGIN
577
- INSERT INTO connector_event_index_fts(event_index_id, title, content, author, channel)
578
- VALUES (NEW.event_index_id, NEW.title, NEW.content, NEW.author, NEW.channel);
579
- END;
580
-
581
- CREATE TRIGGER IF NOT EXISTS trg_connector_event_index_au
582
- AFTER UPDATE OF title, content, author, channel ON connector_event_index
583
- BEGIN
584
- DELETE FROM connector_event_index_fts WHERE event_index_id = OLD.event_index_id;
585
- INSERT INTO connector_event_index_fts(event_index_id, title, content, author, channel)
586
- VALUES (NEW.event_index_id, NEW.title, NEW.content, NEW.author, NEW.channel);
587
- END;
588
-
589
- CREATE TRIGGER IF NOT EXISTS trg_connector_event_index_ad
590
- AFTER DELETE ON connector_event_index
591
- BEGIN
592
- DELETE FROM connector_event_index_fts WHERE event_index_id = OLD.event_index_id;
593
- END;
594
-
595
- CREATE TABLE IF NOT EXISTS connector_event_index_cursors (
596
- connector_name TEXT PRIMARY KEY,
597
- last_seen_timestamp_ms INTEGER NOT NULL DEFAULT 0,
598
- last_seen_source_id TEXT NOT NULL DEFAULT '',
599
- last_sweep_at TEXT,
600
- last_success_at TEXT,
601
- last_error TEXT,
602
- last_error_at TEXT,
603
- indexed_count INTEGER NOT NULL DEFAULT 0
604
- );
605
-
518
+ -- The connector event index was declared here. It moved to the package that has
519
+ -- connectors: three of the four consumers of this core have none, and were
520
+ -- creating eighteen tables they never write. See standalone/db/migrations/001.
606
521
 
607
522
  -- ================================================================
608
523
  -- Phase 3 — search_feedback + ranker
609
524
  -- ================================================================
610
525
  -- Migration 046: Create search_feedback and ranker_model_versions
611
526
  -- Phase 3 of MAMA Case-First Memory System
612
- -- Spec: docs/superpowers/specs/2026-04-17-mama-work-case-first-memory-system-design.md Amendment 10
527
+ -- Spec: the case-first memory design spec (not retained in the repository) Amendment 10
613
528
 
614
529
  CREATE TABLE IF NOT EXISTS search_feedback (
615
530
  feedback_id TEXT PRIMARY KEY,
@@ -700,7 +615,7 @@ VALUES ('search_feedback_retention_days', '180', strftime('%Y-%m-%dT%H:%M:%fZ','
700
615
  -- ================================================================
701
616
  -- Migration 047: Create case_links and revoked wiki tombstones
702
617
  -- Phase 3 of MAMA Case-First Memory System
703
- -- Spec: docs/superpowers/specs/2026-04-17-mama-work-case-first-memory-system-design.md Amendment 11
618
+ -- Spec: the case-first memory design spec (not retained in the repository) Amendment 11
704
619
 
705
620
  CREATE TABLE IF NOT EXISTS case_links (
706
621
  link_id TEXT PRIMARY KEY,
@@ -855,7 +770,7 @@ WHERE split_from_case_id IS NOT NULL
855
770
  -- ================================================================
856
771
  -- Migration 048: Add case promotion and freshness columns
857
772
  -- Phase 3 of MAMA Case-First Memory System
858
- -- Spec: docs/superpowers/specs/2026-04-17-mama-work-case-first-memory-system-design.md Amendments 12 + 13
773
+ -- Spec: the case-first memory design spec (not retained in the repository) Amendments 12 + 13
859
774
 
860
775
  ALTER TABLE case_truth ADD COLUMN canonical_decision_id TEXT;
861
776
  ALTER TABLE case_truth ADD COLUMN canonical_event_id TEXT;
@@ -886,7 +801,7 @@ ALTER TABLE case_truth ADD COLUMN freshness_reason_json TEXT;
886
801
  -- ================================================================
887
802
  -- Migration 049: Add case membership explanation columns
888
803
  -- Phase 3 of MAMA Case-First Memory System
889
- -- Spec: docs/superpowers/specs/2026-04-17-mama-work-case-first-memory-system-design.md Amendment 14
804
+ -- Spec: the case-first memory design spec (not retained in the repository) Amendment 14
890
805
 
891
806
  ALTER TABLE case_memberships ADD COLUMN assignment_strategy TEXT;
892
807
  ALTER TABLE case_memberships ADD COLUMN score_breakdown_json TEXT;
@@ -1,14 +1,10 @@
1
- ALTER TABLE connector_event_index ADD COLUMN source_cursor TEXT;
2
- ALTER TABLE connector_event_index ADD COLUMN tenant_id TEXT;
3
- ALTER TABLE connector_event_index ADD COLUMN project_id TEXT;
4
- ALTER TABLE connector_event_index ADD COLUMN memory_scope_kind TEXT;
5
- ALTER TABLE connector_event_index ADD COLUMN memory_scope_id TEXT;
1
+ -- Retired: this migration declared scope columns on the connector event index.
2
+ --
3
+ -- The index moved to the package that has connectors. Three of the four consumers
4
+ -- of this core have none, and were running these statements against tables they
5
+ -- never write. The schema is declared whole in standalone/db/migrations/001.
6
+ --
7
+ -- The file stays, and the number stays claimed: databases in the field recorded
8
+ -- 34 as applied, and a number that comes back meaning something else is worse
9
+ -- than a number that means nothing.
6
10
 
7
- CREATE INDEX IF NOT EXISTS idx_connector_event_scope
8
- ON connector_event_index(tenant_id, project_id, memory_scope_kind, memory_scope_id);
9
-
10
- CREATE INDEX IF NOT EXISTS idx_connector_event_source_cursor
11
- ON connector_event_index(source_connector, source_cursor);
12
-
13
- INSERT OR IGNORE INTO schema_version (version, description)
14
- VALUES (34, 'Add connector event scope columns');
@@ -1,96 +1,10 @@
1
- ALTER TABLE connector_event_index
2
- ADD COLUMN operator_ingest_seq INTEGER CHECK (
3
- operator_ingest_seq IS NULL OR operator_ingest_seq >= 1
4
- );
1
+ -- Retired: this migration declared the operator ingest sequence on the connector event index.
2
+ --
3
+ -- The index moved to the package that has connectors. Three of the four consumers
4
+ -- of this core have none, and were running these statements against tables they
5
+ -- never write. The schema is declared whole in standalone/db/migrations/001.
6
+ --
7
+ -- The file stays, and the number stays claimed: databases in the field recorded
8
+ -- 39 as applied, and a number that comes back meaning something else is worse
9
+ -- than a number that means nothing.
5
10
 
6
- CREATE TABLE IF NOT EXISTS connector_event_index_operator_seq_cursors (
7
- source_connector TEXT NOT NULL,
8
- channel TEXT NOT NULL DEFAULT '',
9
- next_seq INTEGER NOT NULL CHECK (next_seq >= 1),
10
- PRIMARY KEY (source_connector, channel)
11
- );
12
-
13
- WITH ranked_events AS (
14
- SELECT
15
- event_index_id,
16
- ROW_NUMBER() OVER (
17
- PARTITION BY source_connector, COALESCE(channel, '')
18
- ORDER BY rowid ASC
19
- ) AS operator_seq
20
- FROM connector_event_index
21
- )
22
- UPDATE connector_event_index
23
- SET operator_ingest_seq = (
24
- SELECT operator_seq
25
- FROM ranked_events
26
- WHERE ranked_events.event_index_id = connector_event_index.event_index_id
27
- )
28
- WHERE operator_ingest_seq IS NULL;
29
-
30
- INSERT OR IGNORE INTO connector_event_index_operator_seq_cursors (
31
- source_connector,
32
- channel,
33
- next_seq
34
- )
35
- SELECT
36
- source_connector,
37
- COALESCE(channel, ''),
38
- COALESCE(MAX(operator_ingest_seq), 0) + 1
39
- FROM connector_event_index
40
- GROUP BY source_connector, COALESCE(channel, '');
41
-
42
- CREATE UNIQUE INDEX IF NOT EXISTS idx_connector_event_index_operator_scope_seq
43
- ON connector_event_index(source_connector, COALESCE(channel, ''), operator_ingest_seq)
44
- WHERE operator_ingest_seq IS NOT NULL;
45
-
46
- CREATE INDEX IF NOT EXISTS idx_connector_event_index_operator_cursor_order
47
- ON connector_event_index(source_connector, channel, operator_ingest_seq);
48
-
49
- CREATE TRIGGER IF NOT EXISTS trg_connector_event_index_operator_ingest_seq_ai
50
- AFTER INSERT ON connector_event_index
51
- WHEN NEW.operator_ingest_seq IS NULL
52
- BEGIN
53
- INSERT OR IGNORE INTO connector_event_index_operator_seq_cursors (
54
- source_connector,
55
- channel,
56
- next_seq
57
- )
58
- VALUES (NEW.source_connector, COALESCE(NEW.channel, ''), 1);
59
-
60
- UPDATE connector_event_index
61
- SET operator_ingest_seq = (
62
- SELECT next_seq
63
- FROM connector_event_index_operator_seq_cursors
64
- WHERE source_connector = NEW.source_connector
65
- AND channel = COALESCE(NEW.channel, '')
66
- )
67
- WHERE event_index_id = NEW.event_index_id;
68
-
69
- UPDATE connector_event_index_operator_seq_cursors
70
- SET next_seq = next_seq + 1
71
- WHERE source_connector = NEW.source_connector
72
- AND channel = COALESCE(NEW.channel, '');
73
- END;
74
-
75
- CREATE TRIGGER IF NOT EXISTS trg_connector_event_index_operator_ingest_seq_explicit_ai
76
- AFTER INSERT ON connector_event_index
77
- WHEN NEW.operator_ingest_seq IS NOT NULL
78
- BEGIN
79
- INSERT OR IGNORE INTO connector_event_index_operator_seq_cursors (
80
- source_connector,
81
- channel,
82
- next_seq
83
- )
84
- VALUES (NEW.source_connector, COALESCE(NEW.channel, ''), 1);
85
-
86
- UPDATE connector_event_index_operator_seq_cursors
87
- SET next_seq = CASE
88
- WHEN next_seq <= NEW.operator_ingest_seq THEN NEW.operator_ingest_seq + 1
89
- ELSE next_seq
90
- END
91
- WHERE source_connector = NEW.source_connector
92
- AND channel = COALESCE(NEW.channel, '');
93
- END;
94
-
95
- INSERT OR IGNORE INTO schema_version (version, description)
96
- VALUES (39, 'Add connector event operator ingest sequence');