@jungjaehoon/mama-core 2.4.0 → 4.0.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 (374) 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/068-tool-trace-diagnostics.sql +13 -0
  9. package/db/migrations/069-create-registry-nodes.sql +52 -0
  10. package/db/migrations/070-record-identity.sql +35 -0
  11. package/db/migrations/071-service-operation-origins.sql +187 -0
  12. package/db/migrations/072-observation-versions.sql +29 -0
  13. package/db/migrations/073-registry-corrections.sql +45 -0
  14. package/db/migrations/074-work-graph-ref-kinds.sql +39 -0
  15. package/db/migrations/075-agent-judgments.sql +58 -0
  16. package/db/migrations/076-scoped-checkpoint-bindings.sql +15 -0
  17. package/db/migrations/077-legacy-record-kind.sql +6 -0
  18. package/db/migrations/078-source-ingest-commands.sql +18 -0
  19. package/db/migrations/079-twin-edge-relations.sql +43 -0
  20. package/db/migrations/080-restore-duration-days.sql +7 -0
  21. package/db/migrations/081-mailbox.sql +61 -0
  22. package/db/migrations/082-commitments-row-id.sql +12 -0
  23. package/db/migrations/083-observation-is-the-evidence.sql +49 -0
  24. package/db/migrations/084-scope-kind-is-not-the-cores-to-list.sql +34 -0
  25. package/db/migrations/085-a-migration-has-a-source.sql +37 -0
  26. package/db/migrations/086-the-mailbox-is-generic.sql +110 -0
  27. package/db/migrations/087-mailbox-payload.sql +5 -0
  28. package/db/migrations/088-native-input-journal.sql +14 -0
  29. package/db/migrations/089-native-turn-receipt-lookup.sql +3 -0
  30. package/db/migrations/090-model-run-native-inputs.sql +29 -0
  31. package/db/migrations/091-native-turn-results.sql +11 -0
  32. package/db/migrations/092-restore-decision-fts.sql +34 -0
  33. package/db/migrations/093-native-turn-primary-kind.sql +14 -0
  34. package/db/migrations/094-commitment-run-provenance.sql +9 -0
  35. package/db/migrations/095-model-run-native-input-identity.sql +39 -0
  36. package/db/migrations/096-drop-connector-event-index-fts.sql +9 -0
  37. package/db/migrations/097-native-input-json-validity.sql +37 -0
  38. package/db/migrations/098-workflow-memory-kind.sql +105 -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 +87 -15
  56. package/dist/db-adapter/node-sqlite-adapter.js +2045 -568
  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 +99 -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/commitments.d.ts +188 -0
  77. package/dist/knowledge/commitments.js +370 -0
  78. package/dist/knowledge/decision-edges.d.ts +70 -0
  79. package/dist/knowledge/decision-edges.js +123 -0
  80. package/dist/{agent-graph/types.d.ts → knowledge/graph-query.d.ts} +80 -70
  81. package/dist/knowledge/graph-query.js +1585 -0
  82. package/dist/knowledge/identity.d.ts +16 -0
  83. package/dist/knowledge/identity.js +22 -0
  84. package/dist/knowledge/index.d.ts +47 -0
  85. package/dist/knowledge/index.js +90 -0
  86. package/dist/knowledge/judgments.d.ts +118 -0
  87. package/dist/knowledge/judgments.js +808 -0
  88. package/dist/knowledge/observations.d.ts +160 -0
  89. package/dist/knowledge/observations.js +449 -0
  90. package/dist/knowledge/question-type.d.ts +34 -0
  91. package/dist/knowledge/question-type.js +70 -0
  92. package/dist/{search → knowledge}/ranker-features.js +1 -1
  93. package/dist/{search → knowledge}/search-quality.d.ts +0 -1
  94. package/dist/knowledge/search.d.ts +38 -0
  95. package/dist/knowledge/search.js +91 -0
  96. package/dist/knowledge/source-ingest.d.ts +65 -0
  97. package/dist/knowledge/source-ingest.js +174 -0
  98. package/dist/{edges/types.d.ts → knowledge/twin-edge-types.d.ts} +31 -4
  99. package/dist/{edges/types.js → knowledge/twin-edge-types.js} +13 -2
  100. package/dist/knowledge/work-dates.d.ts +49 -0
  101. package/dist/knowledge/work-dates.js +120 -0
  102. package/dist/mama-api.d.ts +116 -778
  103. package/dist/mama-api.js +313 -2457
  104. package/dist/memory/api.d.ts +264 -24
  105. package/dist/memory/api.js +1633 -843
  106. package/dist/memory/bootstrap-builder.d.ts +2 -1
  107. package/dist/memory/bootstrap-builder.js +5 -5
  108. package/dist/memory/channel-summary-state-store.d.ts +3 -2
  109. package/dist/memory/channel-summary-state-store.js +53 -51
  110. package/dist/memory/channel-summary-store.d.ts +5 -3
  111. package/dist/memory/channel-summary-store.js +3 -8
  112. package/dist/memory/dashboard-read.d.ts +46 -0
  113. package/dist/memory/dashboard-read.js +94 -0
  114. package/dist/memory/event-store.d.ts +3 -3
  115. package/dist/memory/event-store.js +3 -10
  116. package/dist/memory/finding-store.d.ts +3 -2
  117. package/dist/memory/finding-store.js +2 -7
  118. package/dist/memory/graph-read.d.ts +52 -0
  119. package/dist/memory/graph-read.js +130 -0
  120. package/dist/memory/judgment-types.d.ts +394 -0
  121. package/dist/memory/judgment-types.js +16 -0
  122. package/dist/memory/provenance-audit.d.ts +5 -2
  123. package/dist/memory/provenance-audit.js +8 -14
  124. package/dist/memory/provenance-live.d.ts +141 -0
  125. package/dist/memory/provenance-live.js +409 -0
  126. package/dist/memory/provenance-query.d.ts +5 -4
  127. package/dist/memory/provenance-query.js +21 -29
  128. package/dist/memory/provenance-resolver.d.ts +191 -0
  129. package/dist/memory/provenance-resolver.js +155 -0
  130. package/dist/memory/provenance.d.ts +1 -11
  131. package/dist/memory/provenance.js +2 -33
  132. package/dist/memory/recall-sanitize.d.ts +55 -0
  133. package/dist/memory/recall-sanitize.js +144 -0
  134. package/dist/memory/secret-filter.d.ts +32 -0
  135. package/dist/memory/secret-filter.js +126 -0
  136. package/dist/memory/truth-store.d.ts +2 -1
  137. package/dist/memory/truth-store.js +1 -4
  138. package/dist/memory/types.d.ts +74 -24
  139. package/dist/memory/types.js +75 -5
  140. package/dist/memory/write-adapters.d.ts +98 -0
  141. package/dist/memory/write-adapters.js +242 -0
  142. package/dist/operations/owner-action-effects.d.ts +53 -0
  143. package/dist/operations/owner-action-effects.js +96 -0
  144. package/dist/provenance/source-ref.d.ts +1 -1
  145. package/dist/provenance/source-ref.js +0 -2
  146. package/dist/registry/corrections.d.ts +31 -0
  147. package/dist/registry/corrections.js +332 -0
  148. package/dist/registry/record-identity.d.ts +49 -0
  149. package/dist/registry/record-identity.js +133 -0
  150. package/dist/registry/store.d.ts +101 -0
  151. package/dist/registry/store.js +395 -0
  152. package/dist/registry/types.d.ts +28 -0
  153. package/dist/registry/types.js +5 -0
  154. package/dist/relevance-scorer.js +2 -2
  155. package/dist/runtime/agent-event-bus.d.ts +50 -0
  156. package/dist/runtime/agent-event-bus.js +101 -0
  157. package/dist/runtime/drivers/claude-cli-wrapper.d.ts +155 -0
  158. package/dist/runtime/drivers/claude-cli-wrapper.js +392 -0
  159. package/dist/runtime/drivers/cli-arg-redaction.d.ts +2 -0
  160. package/dist/runtime/drivers/cli-arg-redaction.js +18 -0
  161. package/dist/runtime/drivers/cli-secret-redaction.d.ts +17 -0
  162. package/dist/runtime/drivers/cli-secret-redaction.js +126 -0
  163. package/dist/runtime/drivers/codex-app-server-process.d.ts +277 -0
  164. package/dist/runtime/drivers/codex-app-server-process.js +2342 -0
  165. package/dist/runtime/drivers/codex-auxiliary-tools.d.ts +17 -0
  166. package/dist/runtime/drivers/codex-auxiliary-tools.js +267 -0
  167. package/dist/runtime/drivers/codex-home.d.ts +20 -0
  168. package/dist/runtime/drivers/codex-home.js +674 -0
  169. package/dist/runtime/drivers/codex-thread-registry.d.ts +63 -0
  170. package/dist/runtime/drivers/codex-thread-registry.js +433 -0
  171. package/dist/runtime/drivers/persistent-cli-adapter.d.ts +160 -0
  172. package/dist/runtime/drivers/persistent-cli-adapter.js +396 -0
  173. package/dist/runtime/drivers/persistent-cli-process.d.ts +424 -0
  174. package/dist/runtime/drivers/persistent-cli-process.js +1543 -0
  175. package/dist/runtime/drivers/types.d.ts +456 -0
  176. package/dist/runtime/drivers/types.js +110 -0
  177. package/dist/runtime/mailbox.d.ts +223 -0
  178. package/dist/runtime/mailbox.js +582 -0
  179. package/dist/runtime/model-run-store.d.ts +28 -0
  180. package/dist/{model-runs/store.js → runtime/model-run-store.js} +81 -41
  181. package/dist/runtime/model-run-types.d.ts +132 -0
  182. package/dist/{model-runs/types.js → runtime/model-run-types.js} +1 -1
  183. package/dist/runtime/native-effect-observer.d.ts +22 -0
  184. package/dist/runtime/native-effect-observer.js +103 -0
  185. package/dist/runtime/native-input-journal.d.ts +46 -0
  186. package/dist/runtime/native-input-journal.js +308 -0
  187. package/dist/runtime/native-prompt.d.ts +118 -0
  188. package/dist/runtime/native-prompt.js +496 -0
  189. package/dist/runtime/native-session.d.ts +10 -0
  190. package/dist/{agent-graph/index.js → runtime/native-session.js} +9 -6
  191. package/dist/runtime/native-tool-trace-observer.d.ts +5 -0
  192. package/dist/runtime/native-tool-trace-observer.js +65 -0
  193. package/dist/runtime/native-turn.d.ts +272 -0
  194. package/dist/runtime/native-turn.js +1041 -0
  195. package/dist/runtime/operations.d.ts +236 -0
  196. package/dist/runtime/operations.js +565 -0
  197. package/dist/runtime/post-tool-handler.d.ts +74 -0
  198. package/dist/runtime/post-tool-handler.js +137 -0
  199. package/dist/runtime/prompt-layers.d.ts +126 -0
  200. package/dist/runtime/prompt-layers.js +239 -0
  201. package/dist/runtime/runtime-process.d.ts +102 -0
  202. package/dist/runtime/runtime-process.js +206 -0
  203. package/dist/runtime/runtime.d.ts +278 -0
  204. package/dist/runtime/runtime.js +563 -0
  205. package/dist/runtime/session-pool.d.ts +176 -0
  206. package/dist/runtime/session-pool.js +369 -0
  207. package/dist/runtime/stimulus-payload.d.ts +5 -0
  208. package/dist/runtime/stimulus-payload.js +50 -0
  209. package/dist/runtime/subagent-bridge.d.ts +24 -0
  210. package/dist/{agent-graph/types.js → runtime/subagent-bridge.js} +1 -1
  211. package/dist/runtime/text-completion.d.ts +22 -0
  212. package/dist/{agent-situation/types.js → runtime/text-completion.js} +1 -1
  213. package/dist/runtime/token-estimator.d.ts +25 -0
  214. package/dist/runtime/token-estimator.js +75 -0
  215. package/dist/runtime/tool-trace-store.d.ts +22 -0
  216. package/dist/runtime/tool-trace-store.js +242 -0
  217. package/dist/runtime/trace-summary.d.ts +5 -0
  218. package/dist/runtime/trace-summary.js +74 -0
  219. package/dist/runtime/turn-text.d.ts +23 -0
  220. package/dist/runtime/turn-text.js +41 -0
  221. package/dist/storage/database.d.ts +67 -0
  222. package/dist/storage/database.js +158 -0
  223. package/package.json +20 -34
  224. package/dist/agent-graph/alias-write.d.ts +0 -3
  225. package/dist/agent-graph/alias-write.js +0 -234
  226. package/dist/agent-graph/entity-resolve.d.ts +0 -3
  227. package/dist/agent-graph/entity-resolve.js +0 -271
  228. package/dist/agent-graph/errors.d.ts +0 -4
  229. package/dist/agent-graph/errors.js +0 -11
  230. package/dist/agent-graph/graph-query.d.ts +0 -5
  231. package/dist/agent-graph/graph-query.js +0 -360
  232. package/dist/agent-graph/index.d.ts +0 -6
  233. package/dist/agent-situation/builder.d.ts +0 -8
  234. package/dist/agent-situation/builder.js +0 -239
  235. package/dist/agent-situation/cache-key.d.ts +0 -4
  236. package/dist/agent-situation/cache-key.js +0 -64
  237. package/dist/agent-situation/index.d.ts +0 -7
  238. package/dist/agent-situation/index.js +0 -28
  239. package/dist/agent-situation/packet-store.d.ts +0 -27
  240. package/dist/agent-situation/packet-store.js +0 -228
  241. package/dist/agent-situation/ranking-policy.d.ts +0 -18
  242. package/dist/agent-situation/ranking-policy.js +0 -75
  243. package/dist/agent-situation/source-readers.d.ts +0 -52
  244. package/dist/agent-situation/source-readers.js +0 -300
  245. package/dist/agent-situation/types.d.ts +0 -195
  246. package/dist/cases/wiki-page-index.d.ts +0 -37
  247. package/dist/cases/wiki-page-index.js +0 -201
  248. package/dist/config-loader.d.ts +0 -68
  249. package/dist/config-loader.js +0 -239
  250. package/dist/connectors/event-index.d.ts +0 -24
  251. package/dist/connectors/event-index.js +0 -245
  252. package/dist/connectors/raw-query.d.ts +0 -40
  253. package/dist/connectors/raw-query.js +0 -412
  254. package/dist/connectors/types.d.ts +0 -117
  255. package/dist/connectors/types.js +0 -3
  256. package/dist/context-compile/boundary-defaults.d.ts +0 -12
  257. package/dist/context-compile/boundary-defaults.js +0 -105
  258. package/dist/context-compile/channel-grant.js +0 -66
  259. package/dist/context-compile/compiler-policy.d.ts +0 -39
  260. package/dist/context-compile/compiler-policy.js +0 -147
  261. package/dist/context-compile/compiler.d.ts +0 -18
  262. package/dist/context-compile/compiler.js +0 -404
  263. package/dist/context-compile/index.d.ts +0 -10
  264. package/dist/context-compile/index.js +0 -26
  265. package/dist/context-compile/packet-store.d.ts +0 -8
  266. package/dist/context-compile/packet-store.js +0 -239
  267. package/dist/context-compile/ref.d.ts +0 -7
  268. package/dist/context-compile/ref.js +0 -102
  269. package/dist/context-compile/source-readers.d.ts +0 -70
  270. package/dist/context-compile/source-readers.js +0 -840
  271. package/dist/context-compile/types.d.ts +0 -155
  272. package/dist/context-compile/types.js +0 -11
  273. package/dist/context-compile/visibility.d.ts +0 -21
  274. package/dist/context-compile/visibility.js +0 -224
  275. package/dist/decision-tracker.d.ts +0 -206
  276. package/dist/decision-tracker.js +0 -481
  277. package/dist/edges/ref-validation.d.ts +0 -7
  278. package/dist/edges/ref-validation.js +0 -321
  279. package/dist/edges/store.d.ts +0 -8
  280. package/dist/edges/store.js +0 -129
  281. package/dist/embedding-client.d.ts +0 -28
  282. package/dist/embedding-client.js +0 -53
  283. package/dist/embedding-server/index.d.ts +0 -67
  284. package/dist/embedding-server/index.js +0 -405
  285. package/dist/embedding-server/mobile/auth.d.ts +0 -44
  286. package/dist/embedding-server/mobile/auth.js +0 -150
  287. package/dist/embedding-server/mobile/daemon.d.ts +0 -129
  288. package/dist/embedding-server/mobile/daemon.js +0 -313
  289. package/dist/embedding-server/mobile/output-parser.d.ts +0 -115
  290. package/dist/embedding-server/mobile/output-parser.js +0 -241
  291. package/dist/embedding-server/mobile/session-api.d.ts +0 -57
  292. package/dist/embedding-server/mobile/session-api.js +0 -261
  293. package/dist/embedding-server/mobile/session-manager.d.ts +0 -138
  294. package/dist/embedding-server/mobile/session-manager.js +0 -378
  295. package/dist/embedding-server/mobile/websocket-handler.d.ts +0 -137
  296. package/dist/embedding-server/mobile/websocket-handler.js +0 -486
  297. package/dist/embeddings.d.ts +0 -68
  298. package/dist/embeddings.js +0 -244
  299. package/dist/entities/audit-metrics.d.ts +0 -68
  300. package/dist/entities/audit-metrics.js +0 -124
  301. package/dist/entities/candidate-generator.d.ts +0 -8
  302. package/dist/entities/candidate-generator.js +0 -24
  303. package/dist/entities/entity-linked-decision-counts.d.ts +0 -2
  304. package/dist/entities/entity-linked-decision-counts.js +0 -29
  305. package/dist/entities/entity-list.d.ts +0 -22
  306. package/dist/entities/entity-list.js +0 -3
  307. package/dist/entities/entity-orphan-list.d.ts +0 -17
  308. package/dist/entities/entity-orphan-list.js +0 -3
  309. package/dist/entities/entity-search.d.ts +0 -20
  310. package/dist/entities/entity-search.js +0 -3
  311. package/dist/entities/errors.d.ts +0 -55
  312. package/dist/entities/errors.js +0 -100
  313. package/dist/entities/lineage-store.d.ts +0 -28
  314. package/dist/entities/lineage-store.js +0 -204
  315. package/dist/entities/normalization.d.ts +0 -14
  316. package/dist/entities/normalization.js +0 -63
  317. package/dist/entities/policy-store.d.ts +0 -8
  318. package/dist/entities/policy-store.js +0 -75
  319. package/dist/entities/policy-types.d.ts +0 -72
  320. package/dist/entities/policy-types.js +0 -59
  321. package/dist/entities/projection.d.ts +0 -8
  322. package/dist/entities/projection.js +0 -82
  323. package/dist/entities/provenance-query.d.ts +0 -32
  324. package/dist/entities/provenance-query.js +0 -3
  325. package/dist/entities/read-identity.d.ts +0 -31
  326. package/dist/entities/read-identity.js +0 -264
  327. package/dist/entities/recall-bridge.d.ts +0 -5
  328. package/dist/entities/recall-bridge.js +0 -171
  329. package/dist/entities/resolution-engine.d.ts +0 -8
  330. package/dist/entities/resolution-engine.js +0 -3
  331. package/dist/entities/rollback-preview.d.ts +0 -35
  332. package/dist/entities/rollback-preview.js +0 -3
  333. package/dist/entities/source-locator.d.ts +0 -3
  334. package/dist/entities/source-locator.js +0 -32
  335. package/dist/entities/store.d.ts +0 -69
  336. package/dist/entities/store.js +0 -544
  337. package/dist/entities/types.d.ts +0 -166
  338. package/dist/entities/types.js +0 -30
  339. package/dist/memory/extraction-prompt.d.ts +0 -4
  340. package/dist/memory/extraction-prompt.js +0 -89
  341. package/dist/memory/scope-backfill.d.ts +0 -14
  342. package/dist/memory/scope-backfill.js +0 -3
  343. package/dist/memory/scope-store.d.ts +0 -4
  344. package/dist/memory/scope-store.js +0 -9
  345. package/dist/memory-store.d.ts +0 -87
  346. package/dist/memory-store.js +0 -78
  347. package/dist/model-runs/store.d.ts +0 -13
  348. package/dist/model-runs/tool-trace-store.d.ts +0 -4
  349. package/dist/model-runs/tool-trace-store.js +0 -118
  350. package/dist/model-runs/types.d.ts +0 -72
  351. package/dist/notification-manager.d.ts +0 -7
  352. package/dist/notification-manager.js +0 -12
  353. package/dist/outcome-tracker.d.ts +0 -151
  354. package/dist/outcome-tracker.js +0 -271
  355. package/dist/query-intent.d.ts +0 -23
  356. package/dist/query-intent.js +0 -114
  357. package/dist/runtime/trusted-provenance.d.ts +0 -3
  358. package/dist/runtime/trusted-provenance.js +0 -6
  359. package/dist/search/question-type.d.ts +0 -5
  360. package/dist/search/question-type.js +0 -41
  361. package/dist/test-utils.d.ts +0 -80
  362. package/dist/test-utils.js +0 -218
  363. package/dist/tier-validator.d.ts +0 -43
  364. package/dist/tier-validator.js +0 -159
  365. package/dist/time-formatter.d.ts +0 -25
  366. package/dist/time-formatter.js +0 -93
  367. /package/dist/{search → knowledge}/feedback-store.d.ts +0 -0
  368. /package/dist/{search → knowledge}/feedback-store.js +0 -0
  369. /package/dist/{search → knowledge}/ranker-features.d.ts +0 -0
  370. /package/dist/{search → knowledge}/ranker-rescore.d.ts +0 -0
  371. /package/dist/{search → knowledge}/ranker-rescore.js +0 -0
  372. /package/dist/{search → knowledge}/ranker-trainer.d.ts +0 -0
  373. /package/dist/{search → knowledge}/ranker-trainer.js +0 -0
  374. /package/dist/{search → knowledge}/search-quality.js +0 -0
@@ -1,378 +0,0 @@
1
- "use strict";
2
- /**
3
- * @fileoverview Session Manager - tracks multiple Claude Code sessions in SQLite
4
- * @module mobile/session-manager
5
- * @version 1.5.0
6
- *
7
- * Manages session lifecycle including creation, tracking, and termination.
8
- * Sessions are persisted to SQLite for durability across server restarts.
9
- *
10
- * @example
11
- * import { SessionManager } from './session-manager';
12
- * const manager = new SessionManager();
13
- * await manager.initDB();
14
- * const { sessionId, daemon } = await manager.createSession('/path/to/project');
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.SessionManager = exports.CREATE_SESSIONS_TABLE = exports.DEFAULT_DB_PATH = void 0;
21
- const path_1 = __importDefault(require("path"));
22
- const os_1 = __importDefault(require("os"));
23
- const daemon_js_1 = require("./daemon.js");
24
- /**
25
- * Default database path
26
- */
27
- exports.DEFAULT_DB_PATH = process.env.MAMA_DB_PATH || path_1.default.join(os_1.default.homedir(), '.claude', 'mama-memory.db');
28
- /**
29
- * Sessions table creation SQL
30
- */
31
- exports.CREATE_SESSIONS_TABLE = `
32
- CREATE TABLE IF NOT EXISTS sessions (
33
- id TEXT PRIMARY KEY,
34
- project_path TEXT,
35
- created_at TEXT DEFAULT (datetime('now')),
36
- last_active TEXT DEFAULT (datetime('now')),
37
- status TEXT DEFAULT 'active',
38
- pid INTEGER,
39
- client_id TEXT
40
- )
41
- `;
42
- /**
43
- * Create index for status queries
44
- */
45
- const CREATE_STATUS_INDEX = `
46
- CREATE INDEX IF NOT EXISTS idx_sessions_status ON sessions(status)
47
- `;
48
- /**
49
- * SessionManager class - manages Claude Code sessions
50
- */
51
- class SessionManager {
52
- dbPath;
53
- sessions;
54
- db;
55
- initialized;
56
- cleanupPromise;
57
- cleanupHandlersRegistered;
58
- handleProcessExit;
59
- /**
60
- * Create a new SessionManager instance
61
- * @param dbPath - Path to SQLite database
62
- */
63
- constructor(dbPath = exports.DEFAULT_DB_PATH) {
64
- this.dbPath = dbPath;
65
- this.sessions = new Map();
66
- this.db = null;
67
- this.initialized = false;
68
- this.cleanupPromise = null;
69
- this.cleanupHandlersRegistered = false;
70
- this.handleProcessExit = null;
71
- }
72
- /**
73
- * Initialize the SQLite database and create sessions table
74
- */
75
- async initDB() {
76
- if (this.initialized) {
77
- return;
78
- }
79
- try {
80
- // eslint-disable-next-line @typescript-eslint/no-require-imports
81
- const { DatabaseSync } = require('node:sqlite');
82
- this.db = new DatabaseSync(this.dbPath);
83
- // Create sessions table if not exists
84
- this.db.exec(exports.CREATE_SESSIONS_TABLE);
85
- this.db.exec(CREATE_STATUS_INDEX);
86
- // Add missing columns for older databases
87
- for (const col of [
88
- 'pid INTEGER',
89
- 'client_id TEXT',
90
- "status TEXT DEFAULT 'active'",
91
- 'last_active TEXT',
92
- 'created_at TEXT',
93
- ]) {
94
- try {
95
- this.db.exec(`ALTER TABLE sessions ADD COLUMN ${col}`);
96
- }
97
- catch {
98
- // Column already exists
99
- }
100
- }
101
- // Mark any orphaned 'active' sessions as 'terminated'
102
- // (from previous server crashes)
103
- this.db
104
- .prepare(`
105
- UPDATE sessions
106
- SET status = 'terminated', last_active = datetime('now')
107
- WHERE status = 'active'
108
- `)
109
- .run();
110
- this.initialized = true;
111
- console.error(`[SessionManager] Database initialized at ${this.dbPath}`);
112
- // Setup cleanup on process exit
113
- this._setupProcessCleanup();
114
- }
115
- catch (err) {
116
- const message = err instanceof Error ? err.message : String(err);
117
- console.error('[SessionManager] Failed to initialize database:', message);
118
- throw err;
119
- }
120
- }
121
- /**
122
- * Create a new Claude Code session
123
- * @param projectDir - Working directory for the session
124
- * @returns Session ID and daemon
125
- */
126
- async createSession(projectDir) {
127
- if (!this.initialized) {
128
- await this.initDB();
129
- }
130
- // Generate unique session ID
131
- const sessionId = `session_${Date.now()}_${Math.random().toString(36).substring(2, 8)}`;
132
- // Create daemon instance
133
- const daemon = new daemon_js_1.ClaudeDaemon(projectDir, sessionId);
134
- try {
135
- // Spawn the daemon
136
- await daemon.spawn();
137
- // Insert into database
138
- const stmt = this.db.prepare(`
139
- INSERT INTO sessions (id, project_path, status, pid)
140
- VALUES (?, ?, 'active', ?)
141
- `);
142
- stmt.run(sessionId, projectDir, daemon.getPid());
143
- // Store in memory map
144
- this.sessions.set(sessionId, {
145
- daemon,
146
- clientId: null,
147
- projectDir,
148
- createdAt: new Date().toISOString(),
149
- });
150
- // Setup daemon event handlers
151
- this._setupDaemonHandlers(sessionId, daemon);
152
- console.error(`[SessionManager] Session ${sessionId} created for ${projectDir}`);
153
- return { sessionId, daemon };
154
- }
155
- catch (err) {
156
- const message = err instanceof Error ? err.message : String(err);
157
- console.error(`[SessionManager] Failed to create session:`, message);
158
- // Cleanup on failure
159
- daemon.kill();
160
- throw err;
161
- }
162
- }
163
- /**
164
- * Get all active sessions
165
- * @returns Array of active session info
166
- */
167
- async getActiveSessions() {
168
- if (!this.initialized) {
169
- await this.initDB();
170
- }
171
- const stmt = this.db.prepare(`
172
- SELECT id, project_path, created_at, last_active, status, pid, client_id
173
- FROM sessions
174
- WHERE status = 'active'
175
- ORDER BY created_at DESC
176
- `);
177
- const rows = stmt.all();
178
- // Enrich with in-memory data
179
- return rows.map((row) => {
180
- const memSession = this.sessions.get(row.id);
181
- return {
182
- id: row.id,
183
- projectDir: row.project_path ?? '',
184
- createdAt: row.created_at,
185
- lastActive: row.last_active,
186
- status: row.status,
187
- pid: row.pid,
188
- clientId: row.client_id,
189
- isAlive: memSession?.daemon?.isActive() || false,
190
- };
191
- });
192
- }
193
- /**
194
- * Terminate a session by ID
195
- * @param sessionId - Session to terminate
196
- * @returns True if session was terminated
197
- */
198
- async terminateSession(sessionId) {
199
- if (!this.initialized) {
200
- await this.initDB();
201
- }
202
- const session = this.sessions.get(sessionId);
203
- if (session) {
204
- // Kill the daemon
205
- if (session.daemon) {
206
- session.daemon.kill();
207
- }
208
- // Remove from memory
209
- this.sessions.delete(sessionId);
210
- }
211
- // Update database
212
- const stmt = this.db.prepare(`
213
- UPDATE sessions
214
- SET status = 'terminated', last_active = datetime('now')
215
- WHERE id = ?
216
- `);
217
- const result = stmt.run(sessionId);
218
- console.error(`[SessionManager] Session ${sessionId} terminated`);
219
- return result.changes > 0;
220
- }
221
- /**
222
- * Get a session by ID
223
- * @param sessionId - Session ID to look up
224
- * @returns Session data or undefined
225
- */
226
- getSession(sessionId) {
227
- return this.sessions.get(sessionId);
228
- }
229
- /**
230
- * Update session's last active timestamp
231
- * @param sessionId - Session ID
232
- */
233
- touchSession(sessionId) {
234
- if (!this.db || !this.initialized) {
235
- return;
236
- }
237
- const stmt = this.db.prepare(`
238
- UPDATE sessions
239
- SET last_active = datetime('now')
240
- WHERE id = ?
241
- `);
242
- stmt.run(sessionId);
243
- }
244
- /**
245
- * Assign a client to a session
246
- * @param sessionId - Session ID
247
- * @param clientId - Client ID
248
- */
249
- assignClient(sessionId, clientId) {
250
- const session = this.sessions.get(sessionId);
251
- if (session) {
252
- session.clientId = clientId;
253
- }
254
- if (this.db && this.initialized) {
255
- const stmt = this.db.prepare(`
256
- UPDATE sessions
257
- SET client_id = ?
258
- WHERE id = ?
259
- `);
260
- stmt.run(clientId, sessionId);
261
- }
262
- }
263
- /**
264
- * Remove client assignment from a session
265
- * @param sessionId - Session ID
266
- */
267
- unassignClient(sessionId) {
268
- const session = this.sessions.get(sessionId);
269
- if (session) {
270
- session.clientId = null;
271
- }
272
- if (this.db && this.initialized) {
273
- const stmt = this.db.prepare(`
274
- UPDATE sessions
275
- SET client_id = NULL
276
- WHERE id = ?
277
- `);
278
- stmt.run(sessionId);
279
- }
280
- }
281
- /**
282
- * Get session count
283
- * @returns Number of active sessions
284
- */
285
- getSessionCount() {
286
- return this.sessions.size;
287
- }
288
- /**
289
- * Terminate all active sessions
290
- * @returns Number of sessions terminated
291
- */
292
- async terminateAll() {
293
- const sessionIds = Array.from(this.sessions.keys());
294
- let count = 0;
295
- for (const sessionId of sessionIds) {
296
- if (await this.terminateSession(sessionId)) {
297
- count++;
298
- }
299
- }
300
- return count;
301
- }
302
- /**
303
- * Setup daemon event handlers
304
- * @private
305
- */
306
- _setupDaemonHandlers(sessionId, daemon) {
307
- daemon.on('exit', () => {
308
- // Update database on daemon exit
309
- if (this.db && this.initialized) {
310
- const stmt = this.db.prepare(`
311
- UPDATE sessions
312
- SET status = 'terminated', last_active = datetime('now')
313
- WHERE id = ?
314
- `);
315
- stmt.run(sessionId);
316
- }
317
- // Remove from memory
318
- this.sessions.delete(sessionId);
319
- console.error(`[SessionManager] Session ${sessionId} daemon exited, cleaned up`);
320
- });
321
- daemon.on('error', (err) => {
322
- console.error(`[SessionManager] Session ${sessionId} daemon error:`, err.error);
323
- });
324
- }
325
- /**
326
- * Setup process cleanup handlers
327
- * @private
328
- */
329
- _setupProcessCleanup() {
330
- if (this.cleanupHandlersRegistered) {
331
- return;
332
- }
333
- const cleanup = () => {
334
- if (this.cleanupPromise) {
335
- return;
336
- }
337
- if (this.handleProcessExit) {
338
- process.off('exit', this.handleProcessExit);
339
- }
340
- this.cleanupPromise = Promise.resolve();
341
- console.error('[SessionManager] Process exiting, cleaning up sessions...');
342
- if (this.db && this.initialized) {
343
- for (const [sessionId, session] of this.sessions.entries()) {
344
- try {
345
- session.daemon.kill();
346
- }
347
- catch {
348
- // Best effort - process is already exiting.
349
- }
350
- this.sessions.delete(sessionId);
351
- const stmt = this.db.prepare(`
352
- UPDATE sessions
353
- SET status = 'terminated', last_active = datetime('now')
354
- WHERE id = ?
355
- `);
356
- stmt.run(sessionId);
357
- }
358
- }
359
- this.close();
360
- };
361
- this.handleProcessExit = cleanup;
362
- process.on('exit', this.handleProcessExit);
363
- this.cleanupHandlersRegistered = true;
364
- }
365
- /**
366
- * Close the database connection
367
- */
368
- close() {
369
- if (this.db) {
370
- const db = this.db;
371
- this.db = null;
372
- this.initialized = false;
373
- db.close();
374
- }
375
- }
376
- }
377
- exports.SessionManager = SessionManager;
378
- //# sourceMappingURL=session-manager.js.map
@@ -1,137 +0,0 @@
1
- /**
2
- * @fileoverview WebSocket Handler - MessageRouter-based real-time communication
3
- * @module mobile/websocket-handler
4
- * @version 2.0.0
5
- *
6
- * Handles WebSocket connections for mobile clients, using MessageRouter
7
- * for unified message processing (same as Discord/Slack gateways).
8
- *
9
- * @example
10
- * import { createWebSocketHandler } from './websocket-handler';
11
- * const wsHandler = createWebSocketHandler({
12
- * httpServer,
13
- * messageRouter,
14
- * sessionStore,
15
- * authToken: process.env.MAMA_AUTH_TOKEN
16
- * });
17
- */
18
- import { WebSocketServer, WebSocket } from 'ws';
19
- import type { Server as HTTPServer } from 'http';
20
- /**
21
- * Message router interface
22
- */
23
- interface StreamCallbacks {
24
- onDelta?: (text: string) => void;
25
- onToolUse?: (toolName: string, input: Record<string, unknown>) => void;
26
- onToolComplete?: (toolName: string, toolUseId: string, isError: boolean) => void;
27
- onFinal?: (response: unknown) => void;
28
- onError?: (error: Error) => void;
29
- }
30
- interface MessageRouter {
31
- process(message: NormalizedMessage, options?: {
32
- onQueued?: () => void;
33
- onStream?: StreamCallbacks;
34
- }): Promise<RouterResult>;
35
- }
36
- /**
37
- * Session store interface
38
- */
39
- interface SessionStore {
40
- getHistoryByChannel?(source: string, channelId: string): Array<{
41
- user?: string;
42
- bot?: string;
43
- timestamp?: number;
44
- }>;
45
- getHistory?(sessionId: string): Array<{
46
- user?: string;
47
- bot?: string;
48
- timestamp?: number;
49
- }>;
50
- }
51
- /**
52
- * Normalized message for router
53
- */
54
- interface NormalizedMessage {
55
- source: string;
56
- channelId: string;
57
- channelName: string;
58
- userId: string;
59
- text: string;
60
- contentBlocks?: ContentBlock[];
61
- metadata: {
62
- clientId: string;
63
- sessionId?: string;
64
- osAgentMode?: boolean;
65
- timestamp: number;
66
- };
67
- }
68
- /**
69
- * Content block types
70
- */
71
- interface ImageContentBlock {
72
- type: 'image';
73
- source: {
74
- type: 'base64';
75
- media_type: string;
76
- data: string;
77
- };
78
- }
79
- interface TextContentBlock {
80
- type: 'text';
81
- text: string;
82
- }
83
- type ContentBlock = ImageContentBlock | TextContentBlock;
84
- /**
85
- * Router result
86
- */
87
- interface RouterResult {
88
- response: string;
89
- sessionId: string;
90
- duration: number;
91
- }
92
- /**
93
- * Client info stored in clients Map
94
- */
95
- interface ClientInfo {
96
- clientId: string;
97
- userId: string;
98
- ws: WebSocket;
99
- isAlive: boolean;
100
- connectedAt: string;
101
- sessionId?: string;
102
- osAgentMode?: boolean;
103
- language?: string;
104
- }
105
- /**
106
- * WebSocket handler options
107
- */
108
- export interface WebSocketHandlerOptions {
109
- httpServer: HTTPServer;
110
- messageRouter: MessageRouter;
111
- sessionStore: SessionStore;
112
- authToken?: string;
113
- }
114
- /**
115
- * Extended WebSocketServer with helper methods
116
- */
117
- type ExtendedWebSocketServer = WebSocketServer & {
118
- getClients: () => Map<string, ClientInfo>;
119
- getClientCount: () => number;
120
- };
121
- /**
122
- * Create WebSocket handler with MessageRouter integration
123
- */
124
- export declare function createWebSocketHandler({ httpServer, messageRouter, sessionStore, authToken: _authToken, }: WebSocketHandlerOptions): ExtendedWebSocketServer;
125
- /**
126
- * WebSocketHandler class (backwards compatibility)
127
- * @deprecated Use createWebSocketHandler() instead
128
- */
129
- export declare class WebSocketHandler {
130
- private wss;
131
- constructor(httpServer: HTTPServer, options: Partial<WebSocketHandlerOptions>);
132
- getClients(): Map<string, ClientInfo>;
133
- getClientCount(): number;
134
- close(): void;
135
- }
136
- export {};
137
- //# sourceMappingURL=websocket-handler.d.ts.map