@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,321 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.assertTwinRefsVisible = assertTwinRefsVisible;
4
- exports.listVisibleTwinEdgesForRefs = listVisibleTwinEdgesForRefs;
5
- const store_js_1 = require("./store.js");
6
- const channel_grant_js_1 = require("../context-compile/channel-grant.js");
7
- const TABLE_COLUMN_PRAGMAS = {
8
- decisions: 'PRAGMA table_info(decisions)',
9
- case_truth: 'PRAGMA table_info(case_truth)',
10
- };
11
- const tableColumnCache = new WeakMap();
12
- // Keep memory-truth quarantine semantics excluded for legacy/backcompat rows even though the
13
- // current decisions.status CHECK only admits superseded/contradicted/stale terminal states.
14
- const EXCLUDED_MEMORY_STATUSES = new Set(['superseded', 'quarantined', 'contradicted', 'stale']);
15
- function scopeKey(scope) {
16
- return `${scope.kind}\0${scope.id}`;
17
- }
18
- function hasScopes(scopes) {
19
- return Array.isArray(scopes) && scopes.length > 0;
20
- }
21
- function hasProjectRefs(projectRefs) {
22
- return Array.isArray(projectRefs) && projectRefs.length > 0;
23
- }
24
- function asOfMs(visibility) {
25
- return typeof visibility.asOfMs === 'number' ? visibility.asOfMs : null;
26
- }
27
- function startMs(visibility) {
28
- return typeof visibility.startMs === 'number' ? visibility.startMs : null;
29
- }
30
- function isWithinVisibilityTime(value, visibility) {
31
- const start = startMs(visibility);
32
- const asOf = asOfMs(visibility);
33
- if (start === null && asOf === null) {
34
- return true;
35
- }
36
- return (typeof value === 'number' &&
37
- (start === null || value >= start) &&
38
- (asOf === null || value <= asOf));
39
- }
40
- function parseTimestamp(value) {
41
- if (typeof value === 'number' && Number.isFinite(value)) {
42
- return Math.floor(value);
43
- }
44
- if (typeof value === 'string') {
45
- const trimmed = value.trim();
46
- if (trimmed.length === 0) {
47
- return null;
48
- }
49
- const numeric = Number(trimmed);
50
- if (Number.isFinite(numeric)) {
51
- return Math.floor(numeric);
52
- }
53
- const parsed = Date.parse(trimmed);
54
- return Number.isFinite(parsed) ? parsed : null;
55
- }
56
- return null;
57
- }
58
- function tableColumns(adapter, table) {
59
- const pragma = TABLE_COLUMN_PRAGMAS[table];
60
- if (!pragma) {
61
- throw new Error(`Unsupported table for column introspection: ${table}`);
62
- }
63
- let adapterCache = tableColumnCache.get(adapter);
64
- if (!adapterCache) {
65
- adapterCache = new Map();
66
- tableColumnCache.set(adapter, adapterCache);
67
- }
68
- const cached = adapterCache.get(table);
69
- if (cached) {
70
- return cached;
71
- }
72
- const rows = adapter.prepare(pragma).all();
73
- const columns = new Set(rows.map((row) => row.name));
74
- adapterCache.set(table, columns);
75
- return columns;
76
- }
77
- function isMemoryVisible(adapter, id, visibility) {
78
- const columns = tableColumns(adapter, 'decisions');
79
- const statusSelect = columns.has('status') ? 'status' : 'NULL AS status';
80
- const supersededBySelect = columns.has('superseded_by')
81
- ? 'superseded_by'
82
- : 'NULL AS superseded_by';
83
- const row = adapter
84
- .prepare(`
85
- SELECT created_at, event_datetime, ${statusSelect}, ${supersededBySelect}
86
- FROM decisions
87
- WHERE id = ?
88
- LIMIT 1
89
- `)
90
- .get(id);
91
- if (!row) {
92
- return false;
93
- }
94
- const status = typeof row.status === 'string' ? row.status : 'active';
95
- if (EXCLUDED_MEMORY_STATUSES.has(status) ||
96
- (typeof row.superseded_by === 'string' && row.superseded_by.length > 0)) {
97
- return false;
98
- }
99
- if (!isWithinVisibilityTime(row.event_datetime ?? row.created_at, visibility)) {
100
- return false;
101
- }
102
- const scopes = visibility.scopes;
103
- if (!hasScopes(scopes)) {
104
- return true;
105
- }
106
- const scopeClauses = scopes.map(() => '(ms.kind = ? AND ms.external_id = ?)').join(' OR ');
107
- const params = scopes.flatMap((scope) => [scope.kind, scope.id]);
108
- const bindingRow = adapter
109
- .prepare(`
110
- SELECT 1 AS ok
111
- FROM memory_scope_bindings msb
112
- JOIN memory_scopes ms ON ms.id = msb.scope_id
113
- WHERE msb.memory_id = ?
114
- AND (${scopeClauses})
115
- LIMIT 1
116
- `)
117
- .get(id, ...params);
118
- if (bindingRow?.ok) {
119
- return true;
120
- }
121
- if (columns.has('memory_scope_kind') && columns.has('memory_scope_id')) {
122
- const row = adapter
123
- .prepare(`
124
- SELECT 1 AS ok
125
- FROM decisions
126
- WHERE id = ?
127
- AND (${scopes.map(() => '(memory_scope_kind = ? AND memory_scope_id = ?)').join(' OR ')})
128
- LIMIT 1
129
- `)
130
- .get(id, ...params);
131
- return Boolean(row?.ok);
132
- }
133
- return false;
134
- }
135
- function parseCaseScopeRefs(scopeRefs) {
136
- if (typeof scopeRefs !== 'string' || scopeRefs.length === 0) {
137
- return [];
138
- }
139
- try {
140
- const parsed = JSON.parse(scopeRefs);
141
- if (!Array.isArray(parsed)) {
142
- return [];
143
- }
144
- return parsed.filter((item) => item !== null &&
145
- typeof item === 'object' &&
146
- typeof item.kind === 'string' &&
147
- typeof item.id === 'string');
148
- }
149
- catch {
150
- return [];
151
- }
152
- }
153
- function isCaseVisible(adapter, id, visibility) {
154
- const row = adapter.prepare('SELECT * FROM case_truth WHERE case_id = ? LIMIT 1').get(id);
155
- if (!row) {
156
- return false;
157
- }
158
- const timestamp = parseTimestamp(row.last_activity_at) ?? parseTimestamp(row.updated_at);
159
- if (!isWithinVisibilityTime(timestamp, visibility)) {
160
- return false;
161
- }
162
- const scopes = visibility.scopes;
163
- if (!hasScopes(scopes)) {
164
- return true;
165
- }
166
- const requested = new Set(scopes.map(scopeKey));
167
- const scopeRefs = parseCaseScopeRefs(row.scope_refs);
168
- if (scopeRefs.some((scope) => requested.has(scopeKey(scope)))) {
169
- return true;
170
- }
171
- const columns = tableColumns(adapter, 'case_truth');
172
- if (columns.has('memory_scope_kind') && columns.has('memory_scope_id')) {
173
- return scopes.some((scope) => row.memory_scope_kind === scope.kind && row.memory_scope_id === scope.id);
174
- }
175
- return false;
176
- }
177
- /**
178
- * The time bound, shared by both branches so a grant cannot skip it.
179
- *
180
- * DELIBERATELY STRICTER THAN THE READER, and a review flagged the difference as a
181
- * divergence between two delegates of one rule. It is not. A row with no usable timestamp
182
- * is refused here even when no bound is set, while the reader - whose clause is on
183
- * `COALESCE(event_datetime, source_timestamp_ms)` - leaves such a row alone when there is
184
- * no bound to apply.
185
- *
186
- * The direction is what makes it correct: this gate guards refs reached INDIRECTLY, through
187
- * a seed the caller named or an edge the graph walked. Refusing what cannot be shown to sit
188
- * inside any window keeps the indirect path no wider than the direct one, which is the
189
- * invariant the whole design rests on. Relaxing it to match the reader would have made
190
- * citation reach further than reading for exactly the rows whose position in time is
191
- * unknown. `fails closed for raw endpoints with blank timestamps` states the intent.
192
- */
193
- function isRawWithinTime(row, visibility) {
194
- const rawTs = row.event_datetime ?? row.source_timestamp_ms;
195
- if (rawTs === null || rawTs === undefined || (typeof rawTs === 'string' && rawTs.trim() === '')) {
196
- return false;
197
- }
198
- const eventTsMs = parseTimestamp(rawTs);
199
- return eventTsMs !== null && eventTsMs >= 0 && isWithinVisibilityTime(eventTsMs, visibility);
200
- }
201
- function isRawVisible(adapter, id, visibility) {
202
- const row = adapter
203
- .prepare('SELECT * FROM connector_event_index WHERE event_index_id = ? LIMIT 1')
204
- .get(id);
205
- if (!row) {
206
- return false;
207
- }
208
- if (Array.isArray(visibility.connectors) &&
209
- !visibility.connectors.includes(String(row.source_connector))) {
210
- return false;
211
- }
212
- // The grant decides, and it decides the same way here as in the reader - one rule, taken
213
- // from one place. The scope/project/tenant clauses below are the pre-grant rule and are
214
- // skipped when a grant is present, exactly as the reader skips them, because applying
215
- // both would make a cited ref satisfy a stricter test than a read one.
216
- if (visibility.channels) {
217
- return ((0, channel_grant_js_1.isChannelGranted)(String(row.source_connector), typeof row.channel === 'string' ? row.channel : null, visibility.channels) && isRawWithinTime(row, visibility));
218
- }
219
- if (hasProjectRefs(visibility.projectRefs) &&
220
- !visibility.projectRefs.some((project) => project.id === row.project_id)) {
221
- return false;
222
- }
223
- if (typeof visibility.tenantId === 'string' &&
224
- visibility.tenantId.length > 0 &&
225
- row.tenant_id !== visibility.tenantId) {
226
- return false;
227
- }
228
- if (!isRawWithinTime(row, visibility)) {
229
- return false;
230
- }
231
- if (!hasScopes(visibility.scopes)) {
232
- return true;
233
- }
234
- return visibility.scopes.some((scope) => row.memory_scope_kind === scope.kind && row.memory_scope_id === scope.id);
235
- }
236
- function isEntityVisible(adapter, id, visibility) {
237
- const row = adapter
238
- .prepare('SELECT scope_kind, scope_id, created_at FROM entity_nodes WHERE id = ? AND status = ? LIMIT 1')
239
- .get(id, 'active');
240
- if (!row) {
241
- return false;
242
- }
243
- if (!isWithinVisibilityTime(row.created_at, visibility)) {
244
- return false;
245
- }
246
- const scopes = visibility.scopes;
247
- if (!hasScopes(scopes)) {
248
- return true;
249
- }
250
- return scopes.some((scope) => row.scope_kind === scope.kind && row.scope_id === scope.id);
251
- }
252
- function isTwinRefVisible(adapter, ref, visibility, visitedEdges, edgeCache) {
253
- if (ref.kind === 'entity') {
254
- return isEntityVisible(adapter, ref.id, visibility);
255
- }
256
- if (ref.kind === 'report') {
257
- return !hasScopes(visibility.scopes);
258
- }
259
- if (ref.kind === 'memory') {
260
- return isMemoryVisible(adapter, ref.id, visibility);
261
- }
262
- if (ref.kind === 'case') {
263
- return isCaseVisible(adapter, ref.id, visibility);
264
- }
265
- if (ref.kind === 'raw') {
266
- return isRawVisible(adapter, ref.id, visibility);
267
- }
268
- if (visitedEdges.has(ref.id)) {
269
- return false;
270
- }
271
- let edge = edgeCache.get(ref.id);
272
- if (edge === undefined) {
273
- edge = (0, store_js_1.getTwinEdge)(adapter, ref.id);
274
- edgeCache.set(ref.id, edge);
275
- }
276
- if (!edge) {
277
- return false;
278
- }
279
- if (!isWithinVisibilityTime(edge.created_at, visibility)) {
280
- return false;
281
- }
282
- const pathWithCurrent = new Set(visitedEdges);
283
- pathWithCurrent.add(ref.id);
284
- return (isTwinRefVisible(adapter, edge.subject_ref, visibility, new Set(pathWithCurrent), edgeCache) &&
285
- isTwinRefVisible(adapter, edge.object_ref, visibility, new Set(pathWithCurrent), edgeCache));
286
- }
287
- function assertTwinRefsVisible(adapter, refs, visibility = {}) {
288
- const edgeCache = new Map();
289
- for (const ref of refs) {
290
- if (!isTwinRefVisible(adapter, ref, visibility, new Set(), edgeCache)) {
291
- throw new Error(`Twin ref is not visible to requested visibility: ${ref.kind}:${ref.id}`);
292
- }
293
- }
294
- }
295
- function listVisibleTwinEdgesForRefs(adapter, refs, options = {}) {
296
- const edgeCache = new Map();
297
- const edgeTypes = normalizeEdgeTypes(options.edgeTypes);
298
- const edges = (0, store_js_1.listTwinEdgesForRefs)(adapter, refs).filter((edge) => (edgeTypes.size === 0 || edgeTypes.has(edge.edge_type)) &&
299
- (typeof options.startMs !== 'number' || edge.created_at >= options.startMs) &&
300
- (typeof options.asOfMs !== 'number' || edge.created_at <= options.asOfMs) &&
301
- isTwinRefVisible(adapter, edge.subject_ref, options, new Set(), edgeCache) &&
302
- isTwinRefVisible(adapter, edge.object_ref, options, new Set(), edgeCache));
303
- const limit = typeof options.limit === 'number' && Number.isFinite(options.limit)
304
- ? Math.max(0, Math.floor(options.limit))
305
- : null;
306
- const sortedEdges = [...edges].sort((left, right) => {
307
- const createdDiff = right.created_at - left.created_at;
308
- return createdDiff !== 0 ? createdDiff : left.edge_id.localeCompare(right.edge_id);
309
- });
310
- if (limit === null) {
311
- return sortedEdges;
312
- }
313
- return sortedEdges.slice(0, limit);
314
- }
315
- function normalizeEdgeTypes(edgeTypes) {
316
- if (!Array.isArray(edgeTypes) || edgeTypes.length === 0) {
317
- return new Set();
318
- }
319
- return new Set(edgeTypes);
320
- }
321
- //# sourceMappingURL=ref-validation.js.map
@@ -1,8 +0,0 @@
1
- import type { DatabaseAdapter } from '../db-manager.js';
2
- import { type TwinEdgeRecord, type TwinRef } from './types.js';
3
- type TwinEdgeReadAdapter = Pick<DatabaseAdapter, 'prepare'>;
4
- export declare function mapTwinEdgeRow(row: Record<string, unknown>): TwinEdgeRecord;
5
- export declare function getTwinEdge(adapter: TwinEdgeReadAdapter, edgeId: string): TwinEdgeRecord | null;
6
- export declare function listTwinEdgesForRefs(adapter: TwinEdgeReadAdapter, refs: readonly TwinRef[]): TwinEdgeRecord[];
7
- export {};
8
- //# sourceMappingURL=store.d.ts.map
@@ -1,129 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.mapTwinEdgeRow = mapTwinEdgeRow;
4
- exports.getTwinEdge = getTwinEdge;
5
- exports.listTwinEdgesForRefs = listTwinEdgesForRefs;
6
- const types_js_1 = require("./types.js");
7
- const EDGE_TYPE_SET = new Set(types_js_1.TWIN_EDGE_TYPES);
8
- const REF_KIND_SET = new Set(types_js_1.TWIN_REF_KINDS);
9
- const SOURCE_SET = new Set(types_js_1.TWIN_EDGE_SOURCES);
10
- function nullableString(value) {
11
- return typeof value === 'string' && value.length > 0 ? value : null;
12
- }
13
- function requireNonEmptyString(value, field) {
14
- if (typeof value !== 'string' || value.length === 0) {
15
- throw new Error(`twin_edges.${field} must be a non-empty string`);
16
- }
17
- return value;
18
- }
19
- function normalizeEdgeType(value) {
20
- if (typeof value === 'string' && EDGE_TYPE_SET.has(value)) {
21
- return value;
22
- }
23
- throw new Error(`Unsupported twin edge type: ${String(value)}`);
24
- }
25
- function normalizeSource(value) {
26
- if (typeof value === 'string' && SOURCE_SET.has(value)) {
27
- return value;
28
- }
29
- throw new Error(`Unsupported twin edge source: ${String(value)}`);
30
- }
31
- function normalizeRef(ref, field) {
32
- if (!ref || typeof ref !== 'object') {
33
- throw new Error(`${field} must be a TwinRef`);
34
- }
35
- if (!REF_KIND_SET.has(ref.kind)) {
36
- throw new Error(`${field}.kind is unsupported: ${String(ref.kind)}`);
37
- }
38
- return {
39
- kind: ref.kind,
40
- id: requireNonEmptyString(ref.id, `${field}.id`),
41
- };
42
- }
43
- function parseJsonField(value, field, edgeId) {
44
- if (value === null || value === undefined) {
45
- return null;
46
- }
47
- const text = String(value);
48
- if (text.length === 0) {
49
- return null;
50
- }
51
- try {
52
- return JSON.parse(text);
53
- }
54
- catch (error) {
55
- const message = error instanceof Error ? error.message : String(error);
56
- throw new Error(`Invalid twin_edges.${field} for ${edgeId}: ${message}`);
57
- }
58
- }
59
- function toBuffer(value) {
60
- if (Buffer.isBuffer(value)) {
61
- return value;
62
- }
63
- if (value instanceof Uint8Array) {
64
- return Buffer.from(value);
65
- }
66
- throw new Error('twin_edges.content_hash must be a 32-byte Buffer');
67
- }
68
- function mapTwinEdgeRow(row) {
69
- const edgeId = String(row.edge_id);
70
- return {
71
- edge_id: edgeId,
72
- edge_type: normalizeEdgeType(row.edge_type),
73
- subject_ref: {
74
- kind: String(row.subject_kind),
75
- id: String(row.subject_id),
76
- },
77
- object_ref: {
78
- kind: String(row.object_kind),
79
- id: String(row.object_id),
80
- },
81
- relation_attrs_json: nullableString(row.relation_attrs_json),
82
- relation_attrs: parseJsonField(row.relation_attrs_json, 'relation_attrs_json', edgeId),
83
- confidence: Number(row.confidence),
84
- source: normalizeSource(row.source),
85
- agent_id: nullableString(row.agent_id),
86
- model_run_id: nullableString(row.model_run_id),
87
- envelope_hash: nullableString(row.envelope_hash),
88
- human_actor_id: nullableString(row.human_actor_id),
89
- human_actor_role: nullableString(row.human_actor_role),
90
- authority_scope_json: nullableString(row.authority_scope_json),
91
- authority_scope: parseJsonField(row.authority_scope_json, 'authority_scope_json', edgeId),
92
- reason_classification: nullableString(row.reason_classification),
93
- reason_text: nullableString(row.reason_text),
94
- evidence_refs_json: nullableString(row.evidence_refs_json),
95
- evidence_refs: parseJsonField(row.evidence_refs_json, 'evidence_refs_json', edgeId),
96
- request_idempotency_key: nullableString(row.request_idempotency_key),
97
- edge_idempotency_key: nullableString(row.edge_idempotency_key),
98
- content_hash: toBuffer(row.content_hash),
99
- created_at: Number(row.created_at),
100
- };
101
- }
102
- function getTwinEdge(adapter, edgeId) {
103
- const row = adapter.prepare('SELECT * FROM twin_edges WHERE edge_id = ?').get(edgeId);
104
- return row ? mapTwinEdgeRow(row) : null;
105
- }
106
- function listTwinEdgesForRefs(adapter, refs) {
107
- const normalizedRefs = refs.map((ref, index) => normalizeRef(ref, `refs[${index}]`));
108
- if (normalizedRefs.length === 0) {
109
- return [];
110
- }
111
- const clauses = [];
112
- const params = [];
113
- for (const ref of normalizedRefs) {
114
- clauses.push('(subject_kind = ? AND subject_id = ?)');
115
- params.push(ref.kind, ref.id);
116
- clauses.push('(object_kind = ? AND object_id = ?)');
117
- params.push(ref.kind, ref.id);
118
- }
119
- const rows = adapter
120
- .prepare(`
121
- SELECT *
122
- FROM twin_edges
123
- WHERE ${clauses.join(' OR ')}
124
- ORDER BY created_at ASC, edge_id ASC
125
- `)
126
- .all(...params);
127
- return rows.map(mapTwinEdgeRow);
128
- }
129
- //# sourceMappingURL=store.js.map
@@ -1,28 +0,0 @@
1
- /**
2
- * MAMA Embedding Client
3
- *
4
- * HTTP client for the embedding server running in MCP server.
5
- * Used by hooks for fast embedding generation.
6
- *
7
- * Features:
8
- * - Auto-discovery via port file
9
- * - Timeout handling
10
- * - Fallback to local embedding when server unavailable
11
- *
12
- * @module embedding-client
13
- */
14
- export declare const DEFAULT_PORT: number;
15
- export declare const HOST = "127.0.0.1";
16
- export declare const TIMEOUT_MS = 500;
17
- export declare const PORT_FILE: string;
18
- export interface ServerStatus {
19
- status: string;
20
- model?: string;
21
- dimension?: number;
22
- uptime?: number;
23
- }
24
- /**
25
- * Get server port from port file or default
26
- */
27
- export declare function getServerPort(): number;
28
- //# sourceMappingURL=embedding-client.d.ts.map
@@ -1,53 +0,0 @@
1
- "use strict";
2
- /**
3
- * MAMA Embedding Client
4
- *
5
- * HTTP client for the embedding server running in MCP server.
6
- * Used by hooks for fast embedding generation.
7
- *
8
- * Features:
9
- * - Auto-discovery via port file
10
- * - Timeout handling
11
- * - Fallback to local embedding when server unavailable
12
- *
13
- * @module embedding-client
14
- */
15
- var __importDefault = (this && this.__importDefault) || function (mod) {
16
- return (mod && mod.__esModule) ? mod : { "default": mod };
17
- };
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.PORT_FILE = exports.TIMEOUT_MS = exports.HOST = exports.DEFAULT_PORT = void 0;
20
- exports.getServerPort = getServerPort;
21
- const fs_1 = __importDefault(require("fs"));
22
- const path_1 = __importDefault(require("path"));
23
- function resolveConfiguredPort() {
24
- const rawPort = process.env.MAMA_EMBEDDING_PORT || process.env.MAMA_HTTP_PORT || '';
25
- const parsedPort = parseInt(rawPort, 10);
26
- if (Number.isInteger(parsedPort) && parsedPort > 0 && parsedPort < 65536) {
27
- return parsedPort;
28
- }
29
- return 3849;
30
- }
31
- // Configuration
32
- exports.DEFAULT_PORT = resolveConfiguredPort();
33
- exports.HOST = '127.0.0.1';
34
- exports.TIMEOUT_MS = 500; // 500ms timeout for fast response
35
- exports.PORT_FILE = path_1.default.join(process.env.HOME || '/tmp', '.mama-embedding-port');
36
- /**
37
- * Get server port from port file or default
38
- */
39
- function getServerPort() {
40
- try {
41
- if (fs_1.default.existsSync(exports.PORT_FILE)) {
42
- const port = parseInt(fs_1.default.readFileSync(exports.PORT_FILE, 'utf8').trim(), 10);
43
- if (port > 0 && port < 65536) {
44
- return port;
45
- }
46
- }
47
- }
48
- catch {
49
- // Ignore errors, use default
50
- }
51
- return exports.DEFAULT_PORT;
52
- }
53
- //# sourceMappingURL=embedding-client.js.map
@@ -1,67 +0,0 @@
1
- /**
2
- * MAMA Embedding HTTP Server
3
- *
4
- * HTTP API for embedding generation, integrated with MCP server.
5
- * Provides fast embedding access for Claude Code hooks.
6
- *
7
- * Features:
8
- * - Model stays loaded in memory (singleton)
9
- * - HTTP API at localhost:${MAMA_EMBEDDING_PORT || MAMA_HTTP_PORT || 3849}
10
- * - Health check endpoint
11
- * - Shared model with MCP server
12
- *
13
- * @module embedding-http-server
14
- */
15
- import type { IncomingMessage, ServerResponse, Server as HTTPServer } from 'http';
16
- export declare const SHUTDOWN_TOKEN: string;
17
- import type { EmbeddingRole } from '../embeddings.js';
18
- export declare const DEFAULT_PORT: number;
19
- export declare const HOST = "127.0.0.1";
20
- export declare const PORT_FILE: string;
21
- /**
22
- * Request handler type
23
- */
24
- type RequestHandler = (req: IncomingMessage, res: ServerResponse) => Promise<boolean>;
25
- /**
26
- * MessageRouter interface
27
- */
28
- interface MessageRouter {
29
- process(message: unknown): Promise<unknown>;
30
- }
31
- /**
32
- * SessionStore interface
33
- */
34
- interface SessionStore {
35
- getHistory?(sessionId: string): unknown[];
36
- getHistoryByChannel?(source: string, channelId: string): unknown[];
37
- }
38
- /**
39
- * Server options
40
- */
41
- export interface ServerOptions {
42
- messageRouter?: MessageRouter;
43
- sessionStore?: SessionStore;
44
- graphHandler?: RequestHandler;
45
- }
46
- export declare function resolveEmbeddingRole(raw: unknown): EmbeddingRole;
47
- /**
48
- * Clean up port file on exit
49
- */
50
- export declare function cleanupPortFile(): void;
51
- /**
52
- * Start the HTTP embedding server
53
- *
54
- * @param port - Port to listen on (default: DEFAULT_PORT)
55
- * @returns HTTP server instance
56
- */
57
- export declare function startEmbeddingServer(port?: number, options?: ServerOptions): Promise<HTTPServer | null>;
58
- /**
59
- * Pre-warm the embedding model
60
- */
61
- export declare function warmModel(): Promise<{
62
- success: boolean;
63
- latency?: number;
64
- error?: string;
65
- }>;
66
- export {};
67
- //# sourceMappingURL=index.d.ts.map