@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,117 +0,0 @@
1
- import type { Buffer } from 'node:buffer';
2
- import type { MemoryScopeRef } from '../memory/types.js';
3
- export interface ConnectorEventIndexRecord {
4
- event_index_id: string;
5
- source_connector: string;
6
- source_type: string;
7
- source_id: string;
8
- source_locator: string | null;
9
- channel: string | null;
10
- author: string | null;
11
- title: string | null;
12
- content: string;
13
- event_datetime: number | null;
14
- event_date: string | null;
15
- source_timestamp_ms: number;
16
- source_cursor: string | null;
17
- tenant_id: string | null;
18
- project_id: string | null;
19
- memory_scope_kind: string | null;
20
- memory_scope_id: string | null;
21
- metadata_json: string | null;
22
- artifact_locator: string | null;
23
- artifact_title: string | null;
24
- content_hash: Buffer;
25
- operator_ingest_seq: number;
26
- operator_observation_seq: number;
27
- indexed_at: string;
28
- updated_at: string;
29
- expires_at: string | null;
30
- }
31
- export interface UpsertConnectorEventIndexInput {
32
- source_connector: string;
33
- source_type: string;
34
- source_id: string;
35
- /** Stable upstream entity across revisions; enables grant-bounded change-history reads. */
36
- source_entity_id?: string | null;
37
- source_locator?: string | null;
38
- channel?: string | null;
39
- author?: string | null;
40
- title?: string | null;
41
- content: string;
42
- event_datetime?: number | null;
43
- event_date?: string | null;
44
- source_timestamp_ms?: number | null;
45
- source_cursor?: string | null;
46
- tenant_id?: string | null;
47
- project_id?: string | null;
48
- memory_scope_kind?: string | null;
49
- memory_scope_id?: string | null;
50
- metadata_json?: string | null;
51
- metadata?: unknown;
52
- artifact_locator?: string | null;
53
- artifact_title?: string | null;
54
- content_hash?: Buffer | Uint8Array | null;
55
- indexed_at?: string;
56
- updated_at?: string;
57
- expires_at?: string | null;
58
- }
59
- export interface ConnectorEventIndexCursorRecord {
60
- connector_name: string;
61
- last_seen_timestamp_ms: number;
62
- last_seen_source_id: string;
63
- last_sweep_at: string | null;
64
- last_success_at: string | null;
65
- last_error: string | null;
66
- last_error_at: string | null;
67
- indexed_count: number;
68
- }
69
- export interface UpsertConnectorEventIndexCursorInput {
70
- connector_name: string;
71
- last_seen_timestamp_ms?: number;
72
- last_seen_source_id?: string;
73
- last_sweep_at?: string | null;
74
- last_success_at?: string | null;
75
- last_error?: string | null;
76
- last_error_at?: string | null;
77
- indexed_count?: number;
78
- }
79
- export interface ConnectorEventSearchHit extends ConnectorEventIndexRecord {
80
- rank: number;
81
- score: number;
82
- }
83
- export interface RawSearchScopeFilter {
84
- kind: MemoryScopeRef['kind'];
85
- id: string;
86
- }
87
- export interface RawSearchInput {
88
- query: string;
89
- connectors?: string[];
90
- scopes?: RawSearchScopeFilter[];
91
- fromMs?: number;
92
- toMs?: number;
93
- cursor?: string;
94
- limit?: number;
95
- }
96
- export interface RawSearchHit {
97
- raw_id: string;
98
- connector: string;
99
- source_id: string;
100
- channel_id: string | null;
101
- author_label: string | null;
102
- created_at: string | null;
103
- content_preview: string;
104
- score: number;
105
- source_ref: string | null;
106
- metadata: Record<string, unknown>;
107
- }
108
- /** Explicit detail access includes the complete source; search results remain bounded previews. */
109
- export interface RawDocument extends RawSearchHit {
110
- content: string;
111
- }
112
- export interface RawSearchResult {
113
- hits: RawSearchHit[];
114
- next_cursor: string | null;
115
- }
116
- export type ConnectorEventStalenessStatus = 'healthy' | 'stale-but-warming' | 'warn' | 'unhealthy' | 'never_swept';
117
- //# sourceMappingURL=types.d.ts.map
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.js.map
@@ -1,12 +0,0 @@
1
- import type { ContextBoundary, ContextProjectRef, ContextRange } from './types.js';
2
- import type { MemoryScopeRef } from '../memory/types.js';
3
- export type ContextBoundaryReadableInput = {
4
- scopes?: MemoryScopeRef[];
5
- connectors?: string[];
6
- project_refs?: ContextProjectRef[];
7
- tenant_id?: string | null;
8
- range?: ContextRange;
9
- as_of?: string | number | null;
10
- };
11
- export declare function applyContextBoundaryReadDefaults<T extends ContextBoundaryReadableInput>(input: T, boundary: ContextBoundary | undefined): T;
12
- //# sourceMappingURL=boundary-defaults.d.ts.map
@@ -1,105 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.applyContextBoundaryReadDefaults = applyContextBoundaryReadDefaults;
4
- function parseBoundaryTimeMs(value, field) {
5
- if (value === null || value === undefined) {
6
- return null;
7
- }
8
- if (typeof value === 'number' && Number.isFinite(value)) {
9
- return Math.floor(value);
10
- }
11
- if (typeof value === 'string') {
12
- const trimmed = value.trim();
13
- if (trimmed.length === 0) {
14
- throw new Error(`Invalid context boundary ${field}: ${String(value)}`);
15
- }
16
- const numeric = Number(trimmed);
17
- if (Number.isFinite(numeric)) {
18
- return Math.floor(numeric);
19
- }
20
- const parsed = Date.parse(trimmed);
21
- if (Number.isFinite(parsed)) {
22
- return parsed;
23
- }
24
- }
25
- throw new Error(`Invalid context boundary ${field}: ${String(value)}`);
26
- }
27
- function rangeBoundaryMs(value, field) {
28
- if (value === undefined) {
29
- return null;
30
- }
31
- if (typeof value === 'number' && Number.isFinite(value)) {
32
- return Math.floor(value);
33
- }
34
- throw new Error(`Invalid context boundary ${field}: ${String(value)}`);
35
- }
36
- function intersectRange(range, boundaryRange) {
37
- if (!boundaryRange) {
38
- return range;
39
- }
40
- const requestedStartMs = rangeBoundaryMs(range?.start_ms, 'range.start_ms');
41
- const requestedEndMs = rangeBoundaryMs(range?.end_ms, 'range.end_ms');
42
- const boundaryStartMs = rangeBoundaryMs(boundaryRange.start_ms, 'boundary.range.start_ms');
43
- const boundaryEndMs = rangeBoundaryMs(boundaryRange.end_ms, 'boundary.range.end_ms');
44
- const startMs = requestedStartMs === null
45
- ? boundaryStartMs
46
- : boundaryStartMs === null
47
- ? requestedStartMs
48
- : Math.max(requestedStartMs, boundaryStartMs);
49
- const endMs = requestedEndMs === null
50
- ? boundaryEndMs
51
- : boundaryEndMs === null
52
- ? requestedEndMs
53
- : Math.min(requestedEndMs, boundaryEndMs);
54
- if (startMs === null && endMs === null) {
55
- return undefined;
56
- }
57
- if (startMs !== null && endMs !== null && startMs > endMs) {
58
- throw new RangeError(`Context boundary range is empty after intersection: start_ms ${startMs} > end_ms ${endMs}`);
59
- }
60
- return {
61
- ...(startMs !== null ? { start_ms: startMs } : {}),
62
- ...(endMs !== null ? { end_ms: endMs } : {}),
63
- };
64
- }
65
- function clampAsOf(requested, boundaryAsOf) {
66
- const requestedMs = parseBoundaryTimeMs(requested, 'as_of');
67
- const boundaryMs = parseBoundaryTimeMs(boundaryAsOf, 'boundary.as_of');
68
- if (requestedMs === null) {
69
- return boundaryAsOf ?? null;
70
- }
71
- if (boundaryMs === null) {
72
- return requested ?? null;
73
- }
74
- return requestedMs <= boundaryMs ? (requested ?? null) : (boundaryAsOf ?? null);
75
- }
76
- function applyContextBoundaryReadDefaults(input, boundary) {
77
- if (!boundary) {
78
- return input;
79
- }
80
- const requestedTenantId = input.tenant_id;
81
- const boundaryTenantId = boundary.tenant_id;
82
- if (requestedTenantId !== undefined &&
83
- requestedTenantId !== null &&
84
- boundaryTenantId !== undefined &&
85
- boundaryTenantId !== null &&
86
- requestedTenantId !== boundaryTenantId) {
87
- throw new Error('Requested tenant is outside the context boundary');
88
- }
89
- const scopedInput = {
90
- ...input,
91
- scopes: input.scopes === undefined ? boundary.scopes : input.scopes,
92
- connectors: input.connectors === undefined ? boundary.connectors : input.connectors,
93
- project_refs: input.project_refs === undefined ? boundary.project_refs : input.project_refs,
94
- range: intersectRange(input.range, boundary.range),
95
- as_of: clampAsOf(input.as_of, boundary.as_of),
96
- };
97
- if (boundaryTenantId !== undefined || requestedTenantId !== undefined) {
98
- return {
99
- ...scopedInput,
100
- tenant_id: boundaryTenantId !== undefined ? boundaryTenantId : requestedTenantId,
101
- };
102
- }
103
- return scopedInput;
104
- }
105
- //# sourceMappingURL=boundary-defaults.js.map
@@ -1,66 +0,0 @@
1
- "use strict";
2
- /**
3
- * The raw visibility rule, in one place.
4
- *
5
- * There were three copies of this decision. The reader had one, twin-ref validation had a
6
- * second, and the standalone citation path had a third that carried a comment promising it
7
- * reproduced the reader "clause for clause" - which it did, until the reader changed. The
8
- * differential test that was supposed to catch that kept passing, because its fixtures
9
- * never exercised the branch production takes. Copies pinned by a test are still copies;
10
- * the test just tells you later.
11
- *
12
- * So the rule lives here, and everything that needs it takes it from here. It has to exist
13
- * in two compiled forms - a boolean for checking one row you already hold, and SQL for
14
- * selecting rows you do not - and those two forms are adjacent in this file with a
15
- * differential over a matrix that includes what production sends. Two forms of one rule is
16
- * the irreducible minimum; three copies of a decision is not.
17
- */
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.isChannelGranted = isChannelGranted;
20
- exports.channelGrantClause = channelGrantClause;
21
- /**
22
- * The rule: an event is visible when its connector is granted and its channel is one of
23
- * the channels granted for that connector.
24
- *
25
- * A connector absent from the grant is denied. A connector present with an empty list is
26
- * also denied - "granted the connector but no channel of it" is not a useful state, and
27
- * reading it as "all channels" is how a grant becomes a wildcard.
28
- */
29
- function isChannelGranted(connector, channel, grant) {
30
- if (typeof channel !== 'string' || channel.length === 0)
31
- return false;
32
- const channels = grant[connector];
33
- return Array.isArray(channels) && channels.includes(channel);
34
- }
35
- /**
36
- * The same rule as a SQL predicate.
37
- *
38
- * Returns null when nothing is readable, which callers must treat as "select nothing"
39
- * rather than "no filter" - an empty WHERE is how a visibility rule turns into a full scan
40
- * at the exact moment it should have refused.
41
- *
42
- * `requestedConnectors` narrows further: a connector the caller did not ask for is not read
43
- * even though it is granted. The grant is a ceiling, never an instruction.
44
- */
45
- function channelGrantClause(grant, requestedConnectors, columns) {
46
- const pairs = [];
47
- const params = [];
48
- for (const [connector, channels] of Object.entries(grant)) {
49
- if (Array.isArray(requestedConnectors) && !requestedConnectors.includes(connector))
50
- continue;
51
- // Array.isArray, not `?? []`: the boolean form denies a malformed grant quietly, so
52
- // this one must not throw on it. Two forms of a rule that disagree on bad input have
53
- // already started to be two rules.
54
- if (!Array.isArray(channels))
55
- continue;
56
- const unique = [
57
- ...new Set(channels.filter((channel) => typeof channel === 'string' && channel.length > 0)),
58
- ];
59
- if (unique.length === 0)
60
- continue;
61
- pairs.push(`(${columns.connector} = ? AND ${columns.channel} IN (${unique.map(() => '?').join(', ')}))`);
62
- params.push(connector, ...unique);
63
- }
64
- return pairs.length === 0 ? null : { sql: `(${pairs.join(' OR ')})`, params };
65
- }
66
- //# sourceMappingURL=channel-grant.js.map
@@ -1,39 +0,0 @@
1
- import type { ContextEvidence, ContextRef } from './types.js';
2
- import type { ContextCandidate, HiddenCandidateAggregate } from './source-readers.js';
3
- export interface ContextCompilerPolicyInput {
4
- task: string;
5
- candidates: ContextCandidate[];
6
- hidden: HiddenCandidateAggregate;
7
- limit?: number;
8
- strictness?: 'recall' | 'balanced' | 'strict' | 'low' | 'medium' | 'high';
9
- max_tokens?: number;
10
- }
11
- export interface ContextCompilerPolicyResult {
12
- selected_evidence: ContextEvidence[];
13
- source_refs: ContextRef[];
14
- evidence_clusters: unknown[];
15
- related_decisions: Array<{
16
- memory_id: string;
17
- title: string;
18
- }>;
19
- rejected_refs: ContextRef[];
20
- rejected_summary: string[];
21
- missing_context: string[];
22
- caveats: string[];
23
- retrieval_diagnostics: {
24
- candidate_count: number;
25
- selected_count: number;
26
- rejected_count: number;
27
- hidden: HiddenCandidateAggregate;
28
- deduplicated_count: number;
29
- strict_vector_only_rejected_count: number;
30
- token_budget_rejected_count: number;
31
- limit_rejected_count: number;
32
- truncated_by_tokens: boolean;
33
- estimated_tokens: number;
34
- };
35
- estimated_tokens: number;
36
- }
37
- export declare function estimateEvidenceTokens(evidence: Pick<ContextEvidence, 'title' | 'excerpt'>): number;
38
- export declare function applyContextCompilerPolicy(input: ContextCompilerPolicyInput): ContextCompilerPolicyResult;
39
- //# sourceMappingURL=compiler-policy.d.ts.map
@@ -1,147 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.estimateEvidenceTokens = estimateEvidenceTokens;
4
- exports.applyContextCompilerPolicy = applyContextCompilerPolicy;
5
- const ref_js_1 = require("./ref.js");
6
- function normalizeLimit(limit) {
7
- return Math.max(0, Math.min(100, Math.floor(limit ?? 10)));
8
- }
9
- function estimateEvidenceTokens(evidence) {
10
- const text = `${evidence.title ?? ''}\n${evidence.excerpt ?? ''}`;
11
- return Math.max(1, Math.ceil(text.length / 4));
12
- }
13
- function sortedCandidates(candidates) {
14
- return [...candidates].sort((left, right) => {
15
- const scoreDiff = right.score - left.score;
16
- if (scoreDiff !== 0) {
17
- return scoreDiff;
18
- }
19
- return (right.timestamp_ms ?? 0) - (left.timestamp_ms ?? 0);
20
- });
21
- }
22
- function shouldRejectVectorOnly(candidate, strictness) {
23
- return (strictness === 'strict' &&
24
- candidate.support.is_vector_only === true &&
25
- candidate.support.confirmation_signals.length === 0);
26
- }
27
- function evidenceFromCandidate(candidate) {
28
- return {
29
- ref: candidate.ref,
30
- title: candidate.title,
31
- excerpt: candidate.excerpt,
32
- score: candidate.score,
33
- reasons: [
34
- ...(candidate.support.confirmation_signals ?? []),
35
- ...(candidate.support.graph_expanded ? ['graph_expanded'] : []),
36
- ],
37
- ...(candidate.retrieval_diagnostics
38
- ? { retrieval_diagnostics: candidate.retrieval_diagnostics }
39
- : {}),
40
- };
41
- }
42
- function addCountSummary(parts, label, count) {
43
- if (count > 0) {
44
- parts.push(`${label}: ${count}`);
45
- }
46
- }
47
- function normalizeStrictness(strictness) {
48
- switch (strictness) {
49
- case 'low':
50
- case 'recall':
51
- return 'recall';
52
- case 'high':
53
- case 'strict':
54
- return 'strict';
55
- case 'medium':
56
- case 'balanced':
57
- case undefined:
58
- return 'balanced';
59
- }
60
- return 'balanced';
61
- }
62
- function applyContextCompilerPolicy(input) {
63
- const limit = normalizeLimit(input.limit);
64
- const strictness = normalizeStrictness(input.strictness);
65
- const maxTokens = typeof input.max_tokens === 'number' && Number.isFinite(input.max_tokens)
66
- ? Math.max(0, Math.floor(input.max_tokens))
67
- : null;
68
- const seen = new Set();
69
- const selected = [];
70
- const sourceRefs = [];
71
- const rejectedRefs = [];
72
- const counters = {
73
- deduplicated: 0,
74
- strictVectorOnly: 0,
75
- tokenBudget: 0,
76
- limit: 0,
77
- };
78
- let estimatedTokens = 0;
79
- for (const candidate of sortedCandidates(input.candidates)) {
80
- if (!candidate.visible) {
81
- continue;
82
- }
83
- const key = (0, ref_js_1.serializeContextRefForProvenance)(candidate.ref);
84
- if (seen.has(key)) {
85
- counters.deduplicated += 1;
86
- rejectedRefs.push(candidate.ref);
87
- continue;
88
- }
89
- if (shouldRejectVectorOnly(candidate, strictness)) {
90
- counters.strictVectorOnly += 1;
91
- rejectedRefs.push(candidate.ref);
92
- continue;
93
- }
94
- if (selected.length >= limit) {
95
- counters.limit += 1;
96
- rejectedRefs.push(candidate.ref);
97
- continue;
98
- }
99
- const evidence = evidenceFromCandidate(candidate);
100
- const nextTokens = estimateEvidenceTokens(evidence);
101
- if (maxTokens !== null && estimatedTokens + nextTokens > maxTokens) {
102
- counters.tokenBudget += 1;
103
- rejectedRefs.push(candidate.ref);
104
- continue;
105
- }
106
- selected.push(evidence);
107
- sourceRefs.push(candidate.ref);
108
- seen.add(key);
109
- estimatedTokens += nextTokens;
110
- }
111
- const rejectedSummary = [];
112
- addCountSummary(rejectedSummary, 'deduplicated duplicate candidates', counters.deduplicated);
113
- addCountSummary(rejectedSummary, 'strictness rejected vector-only candidates', counters.strictVectorOnly);
114
- addCountSummary(rejectedSummary, 'token budget rejected candidates', counters.tokenBudget);
115
- addCountSummary(rejectedSummary, 'limit rejected candidates', counters.limit);
116
- const caveats = [];
117
- if (input.hidden.total > 0) {
118
- caveats.push(`hidden candidates omitted: ${input.hidden.total}`);
119
- }
120
- const relatedDecisions = selected.flatMap((evidence) => evidence.ref.kind === 'memory'
121
- ? [{ memory_id: evidence.ref.id, title: evidence.title ?? evidence.ref.id }]
122
- : []);
123
- return {
124
- selected_evidence: selected,
125
- source_refs: sourceRefs,
126
- evidence_clusters: [],
127
- related_decisions: relatedDecisions,
128
- rejected_refs: rejectedRefs,
129
- rejected_summary: rejectedSummary,
130
- missing_context: selected.length === 0 ? [`No visible evidence selected for task: ${input.task}`] : [],
131
- caveats,
132
- retrieval_diagnostics: {
133
- candidate_count: input.candidates.length,
134
- selected_count: selected.length,
135
- rejected_count: rejectedRefs.length,
136
- hidden: input.hidden,
137
- deduplicated_count: counters.deduplicated,
138
- strict_vector_only_rejected_count: counters.strictVectorOnly,
139
- token_budget_rejected_count: counters.tokenBudget,
140
- limit_rejected_count: counters.limit,
141
- truncated_by_tokens: counters.tokenBudget > 0,
142
- estimated_tokens: estimatedTokens,
143
- },
144
- estimated_tokens: estimatedTokens,
145
- };
146
- }
147
- //# sourceMappingURL=compiler-policy.js.map
@@ -1,18 +0,0 @@
1
- import type { DatabaseAdapter } from '../db-manager.js';
2
- import type { ContextBoundary, ContextCompileInput, ContextPacket, ContextRef } from './types.js';
3
- import { type ContextSourceReadInput, type ContextSourceReadResult } from './source-readers.js';
4
- type ContextCompilerAdapter = Pick<DatabaseAdapter, 'prepare'>;
5
- export interface ContextCompilerDeps {
6
- adapter?: ContextCompilerAdapter;
7
- boundary?: ContextBoundary;
8
- signal?: AbortSignal;
9
- deadlineMs?: number;
10
- now?: () => number;
11
- packetId?: () => string;
12
- readMemoryCandidates?: (input: ContextSourceReadInput) => Promise<ContextSourceReadResult> | ContextSourceReadResult;
13
- readRawCandidates?: (input: ContextSourceReadInput) => Promise<ContextSourceReadResult> | ContextSourceReadResult;
14
- readGraphCandidates?: (input: ContextSourceReadInput, visibleRefs: readonly ContextRef[]) => Promise<ContextSourceReadResult> | ContextSourceReadResult;
15
- }
16
- export declare function compileContext(input: ContextCompileInput, deps?: ContextCompilerDeps): Promise<ContextPacket>;
17
- export {};
18
- //# sourceMappingURL=compiler.d.ts.map