@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,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