@jungjaehoon/mama-core 2.4.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (374) hide show
  1. package/README.md +76 -239
  2. package/db/migrations/030-case-first-memory-substrate.sql +13 -98
  3. package/db/migrations/034-add-connector-event-scope-columns.sql +9 -13
  4. package/db/migrations/039-add-connector-event-operator-ingest-seq.sql +9 -95
  5. package/db/migrations/062-refresh-connector-event-sequences.sql +9 -113
  6. package/db/migrations/063-refresh-legacy-connector-event-updates.sql +9 -32
  7. package/db/migrations/067-add-connector-event-source-entity-id.sql +9 -13
  8. package/db/migrations/068-tool-trace-diagnostics.sql +13 -0
  9. package/db/migrations/069-create-registry-nodes.sql +52 -0
  10. package/db/migrations/070-record-identity.sql +35 -0
  11. package/db/migrations/071-service-operation-origins.sql +187 -0
  12. package/db/migrations/072-observation-versions.sql +29 -0
  13. package/db/migrations/073-registry-corrections.sql +45 -0
  14. package/db/migrations/074-work-graph-ref-kinds.sql +39 -0
  15. package/db/migrations/075-agent-judgments.sql +58 -0
  16. package/db/migrations/076-scoped-checkpoint-bindings.sql +15 -0
  17. package/db/migrations/077-legacy-record-kind.sql +6 -0
  18. package/db/migrations/078-source-ingest-commands.sql +18 -0
  19. package/db/migrations/079-twin-edge-relations.sql +43 -0
  20. package/db/migrations/080-restore-duration-days.sql +7 -0
  21. package/db/migrations/081-mailbox.sql +61 -0
  22. package/db/migrations/082-commitments-row-id.sql +12 -0
  23. package/db/migrations/083-observation-is-the-evidence.sql +49 -0
  24. package/db/migrations/084-scope-kind-is-not-the-cores-to-list.sql +34 -0
  25. package/db/migrations/085-a-migration-has-a-source.sql +37 -0
  26. package/db/migrations/086-the-mailbox-is-generic.sql +110 -0
  27. package/db/migrations/087-mailbox-payload.sql +5 -0
  28. package/db/migrations/088-native-input-journal.sql +14 -0
  29. package/db/migrations/089-native-turn-receipt-lookup.sql +3 -0
  30. package/db/migrations/090-model-run-native-inputs.sql +29 -0
  31. package/db/migrations/091-native-turn-results.sql +11 -0
  32. package/db/migrations/092-restore-decision-fts.sql +34 -0
  33. package/db/migrations/093-native-turn-primary-kind.sql +14 -0
  34. package/db/migrations/094-commitment-run-provenance.sql +9 -0
  35. package/db/migrations/095-model-run-native-input-identity.sql +39 -0
  36. package/db/migrations/096-drop-connector-event-index-fts.sql +9 -0
  37. package/db/migrations/097-native-input-json-validity.sql +37 -0
  38. package/db/migrations/098-workflow-memory-kind.sql +105 -0
  39. package/dist/action-contracts.d.ts +212 -0
  40. package/dist/action-contracts.js +10 -0
  41. package/dist/api/catalog.d.ts +118 -0
  42. package/dist/api/catalog.js +1756 -0
  43. package/dist/api/dispatch.d.ts +76 -0
  44. package/dist/api/dispatch.js +372 -0
  45. package/dist/canonicalize.d.ts +2 -2
  46. package/dist/canonicalize.js +3 -3
  47. package/dist/client/client.d.ts +33 -0
  48. package/dist/client/client.js +123 -0
  49. package/dist/client/ipc.d.ts +81 -0
  50. package/dist/client/ipc.js +314 -0
  51. package/dist/db-adapter/base-adapter.d.ts +6 -66
  52. package/dist/db-adapter/base-adapter.js +6 -6
  53. package/dist/db-adapter/index.d.ts +5 -5
  54. package/dist/db-adapter/index.js +2 -5
  55. package/dist/db-adapter/node-sqlite-adapter.d.ts +87 -15
  56. package/dist/db-adapter/node-sqlite-adapter.js +2045 -568
  57. package/dist/db-manager.d.ts +53 -97
  58. package/dist/db-manager.js +121 -603
  59. package/dist/embedding/embedder.d.ts +132 -0
  60. package/dist/embedding/embedder.js +299 -0
  61. package/dist/identity/principal-repository.d.ts +2 -2
  62. package/dist/index.d.ts +43 -58
  63. package/dist/index.js +99 -145
  64. package/dist/{context-compile/channel-grant.d.ts → knowledge/access.d.ts} +12 -17
  65. package/dist/knowledge/access.js +663 -0
  66. package/dist/knowledge/case-errors.d.ts +31 -0
  67. package/dist/knowledge/case-errors.js +40 -0
  68. package/dist/{cases/search-rollup.d.ts → knowledge/case-search-rollup.d.ts} +5 -4
  69. package/dist/{cases/search-rollup.js → knowledge/case-search-rollup.js} +6 -8
  70. package/dist/{cases/store.d.ts → knowledge/case-store.d.ts} +3 -6
  71. package/dist/{cases/store.js → knowledge/case-store.js} +7 -42
  72. package/dist/{cases/timeline-range.d.ts → knowledge/case-timeline-range.d.ts} +3 -3
  73. package/dist/{cases/timeline-range.js → knowledge/case-timeline-range.js} +47 -25
  74. package/dist/{cases/types.d.ts → knowledge/case-types.d.ts} +8 -2
  75. package/dist/{cases/types.js → knowledge/case-types.js} +1 -1
  76. package/dist/knowledge/commitments.d.ts +188 -0
  77. package/dist/knowledge/commitments.js +370 -0
  78. package/dist/knowledge/decision-edges.d.ts +70 -0
  79. package/dist/knowledge/decision-edges.js +123 -0
  80. package/dist/{agent-graph/types.d.ts → knowledge/graph-query.d.ts} +80 -70
  81. package/dist/knowledge/graph-query.js +1585 -0
  82. package/dist/knowledge/identity.d.ts +16 -0
  83. package/dist/knowledge/identity.js +22 -0
  84. package/dist/knowledge/index.d.ts +47 -0
  85. package/dist/knowledge/index.js +90 -0
  86. package/dist/knowledge/judgments.d.ts +118 -0
  87. package/dist/knowledge/judgments.js +808 -0
  88. package/dist/knowledge/observations.d.ts +160 -0
  89. package/dist/knowledge/observations.js +449 -0
  90. package/dist/knowledge/question-type.d.ts +34 -0
  91. package/dist/knowledge/question-type.js +70 -0
  92. package/dist/{search → knowledge}/ranker-features.js +1 -1
  93. package/dist/{search → knowledge}/search-quality.d.ts +0 -1
  94. package/dist/knowledge/search.d.ts +38 -0
  95. package/dist/knowledge/search.js +91 -0
  96. package/dist/knowledge/source-ingest.d.ts +65 -0
  97. package/dist/knowledge/source-ingest.js +174 -0
  98. package/dist/{edges/types.d.ts → knowledge/twin-edge-types.d.ts} +31 -4
  99. package/dist/{edges/types.js → knowledge/twin-edge-types.js} +13 -2
  100. package/dist/knowledge/work-dates.d.ts +49 -0
  101. package/dist/knowledge/work-dates.js +120 -0
  102. package/dist/mama-api.d.ts +116 -778
  103. package/dist/mama-api.js +313 -2457
  104. package/dist/memory/api.d.ts +264 -24
  105. package/dist/memory/api.js +1633 -843
  106. package/dist/memory/bootstrap-builder.d.ts +2 -1
  107. package/dist/memory/bootstrap-builder.js +5 -5
  108. package/dist/memory/channel-summary-state-store.d.ts +3 -2
  109. package/dist/memory/channel-summary-state-store.js +53 -51
  110. package/dist/memory/channel-summary-store.d.ts +5 -3
  111. package/dist/memory/channel-summary-store.js +3 -8
  112. package/dist/memory/dashboard-read.d.ts +46 -0
  113. package/dist/memory/dashboard-read.js +94 -0
  114. package/dist/memory/event-store.d.ts +3 -3
  115. package/dist/memory/event-store.js +3 -10
  116. package/dist/memory/finding-store.d.ts +3 -2
  117. package/dist/memory/finding-store.js +2 -7
  118. package/dist/memory/graph-read.d.ts +52 -0
  119. package/dist/memory/graph-read.js +130 -0
  120. package/dist/memory/judgment-types.d.ts +394 -0
  121. package/dist/memory/judgment-types.js +16 -0
  122. package/dist/memory/provenance-audit.d.ts +5 -2
  123. package/dist/memory/provenance-audit.js +8 -14
  124. package/dist/memory/provenance-live.d.ts +141 -0
  125. package/dist/memory/provenance-live.js +409 -0
  126. package/dist/memory/provenance-query.d.ts +5 -4
  127. package/dist/memory/provenance-query.js +21 -29
  128. package/dist/memory/provenance-resolver.d.ts +191 -0
  129. package/dist/memory/provenance-resolver.js +155 -0
  130. package/dist/memory/provenance.d.ts +1 -11
  131. package/dist/memory/provenance.js +2 -33
  132. package/dist/memory/recall-sanitize.d.ts +55 -0
  133. package/dist/memory/recall-sanitize.js +144 -0
  134. package/dist/memory/secret-filter.d.ts +32 -0
  135. package/dist/memory/secret-filter.js +126 -0
  136. package/dist/memory/truth-store.d.ts +2 -1
  137. package/dist/memory/truth-store.js +1 -4
  138. package/dist/memory/types.d.ts +74 -24
  139. package/dist/memory/types.js +75 -5
  140. package/dist/memory/write-adapters.d.ts +98 -0
  141. package/dist/memory/write-adapters.js +242 -0
  142. package/dist/operations/owner-action-effects.d.ts +53 -0
  143. package/dist/operations/owner-action-effects.js +96 -0
  144. package/dist/provenance/source-ref.d.ts +1 -1
  145. package/dist/provenance/source-ref.js +0 -2
  146. package/dist/registry/corrections.d.ts +31 -0
  147. package/dist/registry/corrections.js +332 -0
  148. package/dist/registry/record-identity.d.ts +49 -0
  149. package/dist/registry/record-identity.js +133 -0
  150. package/dist/registry/store.d.ts +101 -0
  151. package/dist/registry/store.js +395 -0
  152. package/dist/registry/types.d.ts +28 -0
  153. package/dist/registry/types.js +5 -0
  154. package/dist/relevance-scorer.js +2 -2
  155. package/dist/runtime/agent-event-bus.d.ts +50 -0
  156. package/dist/runtime/agent-event-bus.js +101 -0
  157. package/dist/runtime/drivers/claude-cli-wrapper.d.ts +155 -0
  158. package/dist/runtime/drivers/claude-cli-wrapper.js +392 -0
  159. package/dist/runtime/drivers/cli-arg-redaction.d.ts +2 -0
  160. package/dist/runtime/drivers/cli-arg-redaction.js +18 -0
  161. package/dist/runtime/drivers/cli-secret-redaction.d.ts +17 -0
  162. package/dist/runtime/drivers/cli-secret-redaction.js +126 -0
  163. package/dist/runtime/drivers/codex-app-server-process.d.ts +277 -0
  164. package/dist/runtime/drivers/codex-app-server-process.js +2342 -0
  165. package/dist/runtime/drivers/codex-auxiliary-tools.d.ts +17 -0
  166. package/dist/runtime/drivers/codex-auxiliary-tools.js +267 -0
  167. package/dist/runtime/drivers/codex-home.d.ts +20 -0
  168. package/dist/runtime/drivers/codex-home.js +674 -0
  169. package/dist/runtime/drivers/codex-thread-registry.d.ts +63 -0
  170. package/dist/runtime/drivers/codex-thread-registry.js +433 -0
  171. package/dist/runtime/drivers/persistent-cli-adapter.d.ts +160 -0
  172. package/dist/runtime/drivers/persistent-cli-adapter.js +396 -0
  173. package/dist/runtime/drivers/persistent-cli-process.d.ts +424 -0
  174. package/dist/runtime/drivers/persistent-cli-process.js +1543 -0
  175. package/dist/runtime/drivers/types.d.ts +456 -0
  176. package/dist/runtime/drivers/types.js +110 -0
  177. package/dist/runtime/mailbox.d.ts +223 -0
  178. package/dist/runtime/mailbox.js +582 -0
  179. package/dist/runtime/model-run-store.d.ts +28 -0
  180. package/dist/{model-runs/store.js → runtime/model-run-store.js} +81 -41
  181. package/dist/runtime/model-run-types.d.ts +132 -0
  182. package/dist/{model-runs/types.js → runtime/model-run-types.js} +1 -1
  183. package/dist/runtime/native-effect-observer.d.ts +22 -0
  184. package/dist/runtime/native-effect-observer.js +103 -0
  185. package/dist/runtime/native-input-journal.d.ts +46 -0
  186. package/dist/runtime/native-input-journal.js +308 -0
  187. package/dist/runtime/native-prompt.d.ts +118 -0
  188. package/dist/runtime/native-prompt.js +496 -0
  189. package/dist/runtime/native-session.d.ts +10 -0
  190. package/dist/{agent-graph/index.js → runtime/native-session.js} +9 -6
  191. package/dist/runtime/native-tool-trace-observer.d.ts +5 -0
  192. package/dist/runtime/native-tool-trace-observer.js +65 -0
  193. package/dist/runtime/native-turn.d.ts +272 -0
  194. package/dist/runtime/native-turn.js +1041 -0
  195. package/dist/runtime/operations.d.ts +236 -0
  196. package/dist/runtime/operations.js +565 -0
  197. package/dist/runtime/post-tool-handler.d.ts +74 -0
  198. package/dist/runtime/post-tool-handler.js +137 -0
  199. package/dist/runtime/prompt-layers.d.ts +126 -0
  200. package/dist/runtime/prompt-layers.js +239 -0
  201. package/dist/runtime/runtime-process.d.ts +102 -0
  202. package/dist/runtime/runtime-process.js +206 -0
  203. package/dist/runtime/runtime.d.ts +278 -0
  204. package/dist/runtime/runtime.js +563 -0
  205. package/dist/runtime/session-pool.d.ts +176 -0
  206. package/dist/runtime/session-pool.js +369 -0
  207. package/dist/runtime/stimulus-payload.d.ts +5 -0
  208. package/dist/runtime/stimulus-payload.js +50 -0
  209. package/dist/runtime/subagent-bridge.d.ts +24 -0
  210. package/dist/{agent-graph/types.js → runtime/subagent-bridge.js} +1 -1
  211. package/dist/runtime/text-completion.d.ts +22 -0
  212. package/dist/{agent-situation/types.js → runtime/text-completion.js} +1 -1
  213. package/dist/runtime/token-estimator.d.ts +25 -0
  214. package/dist/runtime/token-estimator.js +75 -0
  215. package/dist/runtime/tool-trace-store.d.ts +22 -0
  216. package/dist/runtime/tool-trace-store.js +242 -0
  217. package/dist/runtime/trace-summary.d.ts +5 -0
  218. package/dist/runtime/trace-summary.js +74 -0
  219. package/dist/runtime/turn-text.d.ts +23 -0
  220. package/dist/runtime/turn-text.js +41 -0
  221. package/dist/storage/database.d.ts +67 -0
  222. package/dist/storage/database.js +158 -0
  223. package/package.json +20 -34
  224. package/dist/agent-graph/alias-write.d.ts +0 -3
  225. package/dist/agent-graph/alias-write.js +0 -234
  226. package/dist/agent-graph/entity-resolve.d.ts +0 -3
  227. package/dist/agent-graph/entity-resolve.js +0 -271
  228. package/dist/agent-graph/errors.d.ts +0 -4
  229. package/dist/agent-graph/errors.js +0 -11
  230. package/dist/agent-graph/graph-query.d.ts +0 -5
  231. package/dist/agent-graph/graph-query.js +0 -360
  232. package/dist/agent-graph/index.d.ts +0 -6
  233. package/dist/agent-situation/builder.d.ts +0 -8
  234. package/dist/agent-situation/builder.js +0 -239
  235. package/dist/agent-situation/cache-key.d.ts +0 -4
  236. package/dist/agent-situation/cache-key.js +0 -64
  237. package/dist/agent-situation/index.d.ts +0 -7
  238. package/dist/agent-situation/index.js +0 -28
  239. package/dist/agent-situation/packet-store.d.ts +0 -27
  240. package/dist/agent-situation/packet-store.js +0 -228
  241. package/dist/agent-situation/ranking-policy.d.ts +0 -18
  242. package/dist/agent-situation/ranking-policy.js +0 -75
  243. package/dist/agent-situation/source-readers.d.ts +0 -52
  244. package/dist/agent-situation/source-readers.js +0 -300
  245. package/dist/agent-situation/types.d.ts +0 -195
  246. package/dist/cases/wiki-page-index.d.ts +0 -37
  247. package/dist/cases/wiki-page-index.js +0 -201
  248. package/dist/config-loader.d.ts +0 -68
  249. package/dist/config-loader.js +0 -239
  250. package/dist/connectors/event-index.d.ts +0 -24
  251. package/dist/connectors/event-index.js +0 -245
  252. package/dist/connectors/raw-query.d.ts +0 -40
  253. package/dist/connectors/raw-query.js +0 -412
  254. package/dist/connectors/types.d.ts +0 -117
  255. package/dist/connectors/types.js +0 -3
  256. package/dist/context-compile/boundary-defaults.d.ts +0 -12
  257. package/dist/context-compile/boundary-defaults.js +0 -105
  258. package/dist/context-compile/channel-grant.js +0 -66
  259. package/dist/context-compile/compiler-policy.d.ts +0 -39
  260. package/dist/context-compile/compiler-policy.js +0 -147
  261. package/dist/context-compile/compiler.d.ts +0 -18
  262. package/dist/context-compile/compiler.js +0 -404
  263. package/dist/context-compile/index.d.ts +0 -10
  264. package/dist/context-compile/index.js +0 -26
  265. package/dist/context-compile/packet-store.d.ts +0 -8
  266. package/dist/context-compile/packet-store.js +0 -239
  267. package/dist/context-compile/ref.d.ts +0 -7
  268. package/dist/context-compile/ref.js +0 -102
  269. package/dist/context-compile/source-readers.d.ts +0 -70
  270. package/dist/context-compile/source-readers.js +0 -840
  271. package/dist/context-compile/types.d.ts +0 -155
  272. package/dist/context-compile/types.js +0 -11
  273. package/dist/context-compile/visibility.d.ts +0 -21
  274. package/dist/context-compile/visibility.js +0 -224
  275. package/dist/decision-tracker.d.ts +0 -206
  276. package/dist/decision-tracker.js +0 -481
  277. package/dist/edges/ref-validation.d.ts +0 -7
  278. package/dist/edges/ref-validation.js +0 -321
  279. package/dist/edges/store.d.ts +0 -8
  280. package/dist/edges/store.js +0 -129
  281. package/dist/embedding-client.d.ts +0 -28
  282. package/dist/embedding-client.js +0 -53
  283. package/dist/embedding-server/index.d.ts +0 -67
  284. package/dist/embedding-server/index.js +0 -405
  285. package/dist/embedding-server/mobile/auth.d.ts +0 -44
  286. package/dist/embedding-server/mobile/auth.js +0 -150
  287. package/dist/embedding-server/mobile/daemon.d.ts +0 -129
  288. package/dist/embedding-server/mobile/daemon.js +0 -313
  289. package/dist/embedding-server/mobile/output-parser.d.ts +0 -115
  290. package/dist/embedding-server/mobile/output-parser.js +0 -241
  291. package/dist/embedding-server/mobile/session-api.d.ts +0 -57
  292. package/dist/embedding-server/mobile/session-api.js +0 -261
  293. package/dist/embedding-server/mobile/session-manager.d.ts +0 -138
  294. package/dist/embedding-server/mobile/session-manager.js +0 -378
  295. package/dist/embedding-server/mobile/websocket-handler.d.ts +0 -137
  296. package/dist/embedding-server/mobile/websocket-handler.js +0 -486
  297. package/dist/embeddings.d.ts +0 -68
  298. package/dist/embeddings.js +0 -244
  299. package/dist/entities/audit-metrics.d.ts +0 -68
  300. package/dist/entities/audit-metrics.js +0 -124
  301. package/dist/entities/candidate-generator.d.ts +0 -8
  302. package/dist/entities/candidate-generator.js +0 -24
  303. package/dist/entities/entity-linked-decision-counts.d.ts +0 -2
  304. package/dist/entities/entity-linked-decision-counts.js +0 -29
  305. package/dist/entities/entity-list.d.ts +0 -22
  306. package/dist/entities/entity-list.js +0 -3
  307. package/dist/entities/entity-orphan-list.d.ts +0 -17
  308. package/dist/entities/entity-orphan-list.js +0 -3
  309. package/dist/entities/entity-search.d.ts +0 -20
  310. package/dist/entities/entity-search.js +0 -3
  311. package/dist/entities/errors.d.ts +0 -55
  312. package/dist/entities/errors.js +0 -100
  313. package/dist/entities/lineage-store.d.ts +0 -28
  314. package/dist/entities/lineage-store.js +0 -204
  315. package/dist/entities/normalization.d.ts +0 -14
  316. package/dist/entities/normalization.js +0 -63
  317. package/dist/entities/policy-store.d.ts +0 -8
  318. package/dist/entities/policy-store.js +0 -75
  319. package/dist/entities/policy-types.d.ts +0 -72
  320. package/dist/entities/policy-types.js +0 -59
  321. package/dist/entities/projection.d.ts +0 -8
  322. package/dist/entities/projection.js +0 -82
  323. package/dist/entities/provenance-query.d.ts +0 -32
  324. package/dist/entities/provenance-query.js +0 -3
  325. package/dist/entities/read-identity.d.ts +0 -31
  326. package/dist/entities/read-identity.js +0 -264
  327. package/dist/entities/recall-bridge.d.ts +0 -5
  328. package/dist/entities/recall-bridge.js +0 -171
  329. package/dist/entities/resolution-engine.d.ts +0 -8
  330. package/dist/entities/resolution-engine.js +0 -3
  331. package/dist/entities/rollback-preview.d.ts +0 -35
  332. package/dist/entities/rollback-preview.js +0 -3
  333. package/dist/entities/source-locator.d.ts +0 -3
  334. package/dist/entities/source-locator.js +0 -32
  335. package/dist/entities/store.d.ts +0 -69
  336. package/dist/entities/store.js +0 -544
  337. package/dist/entities/types.d.ts +0 -166
  338. package/dist/entities/types.js +0 -30
  339. package/dist/memory/extraction-prompt.d.ts +0 -4
  340. package/dist/memory/extraction-prompt.js +0 -89
  341. package/dist/memory/scope-backfill.d.ts +0 -14
  342. package/dist/memory/scope-backfill.js +0 -3
  343. package/dist/memory/scope-store.d.ts +0 -4
  344. package/dist/memory/scope-store.js +0 -9
  345. package/dist/memory-store.d.ts +0 -87
  346. package/dist/memory-store.js +0 -78
  347. package/dist/model-runs/store.d.ts +0 -13
  348. package/dist/model-runs/tool-trace-store.d.ts +0 -4
  349. package/dist/model-runs/tool-trace-store.js +0 -118
  350. package/dist/model-runs/types.d.ts +0 -72
  351. package/dist/notification-manager.d.ts +0 -7
  352. package/dist/notification-manager.js +0 -12
  353. package/dist/outcome-tracker.d.ts +0 -151
  354. package/dist/outcome-tracker.js +0 -271
  355. package/dist/query-intent.d.ts +0 -23
  356. package/dist/query-intent.js +0 -114
  357. package/dist/runtime/trusted-provenance.d.ts +0 -3
  358. package/dist/runtime/trusted-provenance.js +0 -6
  359. package/dist/search/question-type.d.ts +0 -5
  360. package/dist/search/question-type.js +0 -41
  361. package/dist/test-utils.d.ts +0 -80
  362. package/dist/test-utils.js +0 -218
  363. package/dist/tier-validator.d.ts +0 -43
  364. package/dist/tier-validator.js +0 -159
  365. package/dist/time-formatter.d.ts +0 -25
  366. package/dist/time-formatter.js +0 -93
  367. /package/dist/{search → knowledge}/feedback-store.d.ts +0 -0
  368. /package/dist/{search → knowledge}/feedback-store.js +0 -0
  369. /package/dist/{search → knowledge}/ranker-features.d.ts +0 -0
  370. /package/dist/{search → knowledge}/ranker-rescore.d.ts +0 -0
  371. /package/dist/{search → knowledge}/ranker-rescore.js +0 -0
  372. /package/dist/{search → knowledge}/ranker-trainer.d.ts +0 -0
  373. /package/dist/{search → knowledge}/ranker-trainer.js +0 -0
  374. /package/dist/{search → knowledge}/search-quality.js +0 -0
@@ -0,0 +1,242 @@
1
+ "use strict";
2
+ /**
3
+ * Mechanical adapters between the public memory write surfaces and the
4
+ * knowledge command boundary.
5
+ *
6
+ * Every write funnels through `appendJudgment` (or `ingestSource` for raw
7
+ * evidence): the adapter builds exactly one command, derives honest access —
8
+ * never fabricating authority the caller did not present — and maps the receipt
9
+ * back to the legacy result shape.
10
+ */
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.unsignedWriteAccess = unsignedWriteAccess;
16
+ exports.writeAccessForProvenance = writeAccessForProvenance;
17
+ exports.boundScopesOf = boundScopesOf;
18
+ exports.assertRelationshipTargetsVisible = assertRelationshipTargetsVisible;
19
+ exports.relationshipsToCommandFields = relationshipsToCommandFields;
20
+ exports.commandEmbedder = commandEmbedder;
21
+ exports.appendOutcomeAmendment = appendOutcomeAmendment;
22
+ const node_crypto_1 = __importDefault(require("node:crypto"));
23
+ const canonicalize_js_1 = require("../canonicalize.js");
24
+ const db_manager_js_1 = require("../db-manager.js");
25
+ const judgments_js_1 = require("../knowledge/judgments.js");
26
+ /** Principal label for writes that carry no authenticated identity. */
27
+ const UNSIGNED_PRINCIPAL = 'unsigned-local';
28
+ /** Access for a caller with no signed identity: it is admitted to exactly the
29
+ * scopes it declared, nothing more. */
30
+ function unsignedWriteAccess(scopes) {
31
+ return {
32
+ principalId: UNSIGNED_PRINCIPAL,
33
+ agentId: UNSIGNED_PRINCIPAL,
34
+ scopes: [...scopes],
35
+ // Not a principal and not a caller of actions: this access exists for the
36
+ // direct-write path below dispatch. Empty is what it can truthfully claim,
37
+ // and if it ever did reach dispatch every action would be denied.
38
+ actions: [],
39
+ };
40
+ }
41
+ /**
42
+ * Access derived from normalized write provenance — the legacy direct-write
43
+ * path, where the caller is the process itself and declares its own scopes.
44
+ * Unified-action writes do NOT come through here: dispatch passes the real
45
+ * `JudgmentAccess` (the call authority) straight to `appendJudgment`.
46
+ */
47
+ function writeAccessForProvenance(provenance, requestedScopes) {
48
+ const identity = provenance.agent_id ?? provenance.actor;
49
+ return {
50
+ principalId: identity,
51
+ agentId: provenance.agent_id ?? identity,
52
+ scopes: [...requestedScopes],
53
+ // Same as above: provenance names who wrote, not what they may call.
54
+ actions: [],
55
+ };
56
+ }
57
+ /** Scope refs currently bound to a memory row — the partition a write into
58
+ * that row must be admitted to. */
59
+ function boundScopesOf(adapter, memoryId) {
60
+ return adapter
61
+ .prepare(`SELECT ms.kind, ms.external_id
62
+ FROM memory_scope_bindings msb
63
+ JOIN memory_scopes ms ON ms.id = msb.scope_id
64
+ WHERE msb.memory_id = ?
65
+ ORDER BY msb.is_primary DESC`)
66
+ .all(memoryId)
67
+ .map((row) => {
68
+ const record = row;
69
+ return { kind: record.kind, id: record.external_id };
70
+ });
71
+ }
72
+ /**
73
+ * Fail-first visibility check for explicitly authored relationship targets,
74
+ * preserving the legacy error contract.
75
+ *
76
+ * Trusted envelopes check visibility strictly inside admitted scopes (unbound
77
+ * legacy rows are not reachable — same as the pre-boundary envelope check).
78
+ * Unsigned callers keep the legacy existence check for the original error
79
+ * text; scope admission is then enforced by the command boundary itself.
80
+ */
81
+ function assertRelationshipTargetsVisible(adapter, targetIds, admittedScopes, trustedEnvelope) {
82
+ for (const targetId of targetIds) {
83
+ if (trustedEnvelope) {
84
+ const scopeIds = admittedScopes.map((scope) => (0, db_manager_js_1.buildMemoryScopeId)(scope.kind, scope.id));
85
+ const placeholders = scopeIds.map(() => '?').join(', ');
86
+ const visible = scopeIds.length > 0 &&
87
+ adapter
88
+ .prepare(`SELECT 1 FROM decisions d
89
+ JOIN memory_scope_bindings b ON b.memory_id = d.id
90
+ WHERE d.id = ? AND b.scope_id IN (${placeholders}) LIMIT 1`)
91
+ .get(targetId, ...scopeIds) !== undefined;
92
+ if (!visible) {
93
+ const denied = new Error('Relationship target is unavailable');
94
+ denied.code = 'relationship_target_unavailable';
95
+ throw denied;
96
+ }
97
+ continue;
98
+ }
99
+ const target = adapter.prepare('SELECT id FROM decisions WHERE id = ?').get(targetId);
100
+ if (!target) {
101
+ throw new Error(`mama.save() relationship target does not exist: ${targetId}`);
102
+ }
103
+ }
104
+ }
105
+ const LINK_RELATIONS = new Set([
106
+ 'supersedes',
107
+ 'refines',
108
+ 'contradicts',
109
+ 'mentions',
110
+ 'derived_from',
111
+ 'builds_on',
112
+ 'debates',
113
+ 'synthesizes',
114
+ 'blocks',
115
+ 'next_action_for',
116
+ 'case_member',
117
+ ]);
118
+ /**
119
+ * Map deduplicated legacy relationships onto command fields.
120
+ *
121
+ * Trusted envelopes get the authored form: `supersedes` targets become
122
+ * scope-checked `replaces`, and link-able relations also enter the twin edge
123
+ * graph as explicit `links` — both fail closed inside the boundary.
124
+ *
125
+ * Unsigned callers keep the legacy contract: the adapter already checked that
126
+ * each target exists, so relationships are written only as `decision_edges`
127
+ * projection rows and `supersedes` targets are moved out of current truth
128
+ * through the `supersedeTargets` projection — never as scope-checked authored
129
+ * links the caller was not admitted to.
130
+ */
131
+ function relationshipsToCommandFields(relationships, options) {
132
+ const trusted = options?.trusted === true;
133
+ const links = [];
134
+ const replaces = [];
135
+ const supersedeTargets = [];
136
+ const decisionEdges = [];
137
+ const seen = new Set();
138
+ for (const relationship of relationships) {
139
+ const key = `${relationship.type}:${relationship.targetId}`;
140
+ if (seen.has(key))
141
+ continue;
142
+ seen.add(key);
143
+ const reason = `Explicit ${relationship.type} reference in reasoning`;
144
+ decisionEdges.push({
145
+ targetId: relationship.targetId,
146
+ relationship: relationship.type,
147
+ reason,
148
+ weight: 1,
149
+ });
150
+ if (relationship.type === 'supersedes') {
151
+ if (trusted) {
152
+ replaces.push({ id: relationship.targetId, reason });
153
+ }
154
+ else {
155
+ supersedeTargets.push(relationship.targetId);
156
+ }
157
+ continue;
158
+ }
159
+ if (trusted && LINK_RELATIONS.has(relationship.type)) {
160
+ links.push({
161
+ relation: relationship.type,
162
+ target: { kind: 'memory', id: relationship.targetId },
163
+ });
164
+ }
165
+ }
166
+ return { links, replaces, decisionEdges, supersedeTargets };
167
+ }
168
+ /**
169
+ * Embedder for the command boundary that preserves the legacy enhanced
170
+ * embedding input.
171
+ */
172
+ function commandEmbedder(decision) {
173
+ return { embed: () => (0, db_manager_js_1.prepareDecisionEmbedding)(decision) };
174
+ }
175
+ /**
176
+ * Append one judgment record carrying an authored outcome change and apply the
177
+ * maintained `decisions` projection columns on the target in the same
178
+ * transaction. Identical payloads on the same target replay the stored receipt
179
+ * instead of appending a second record.
180
+ */
181
+ async function appendOutcomeAmendment(decisionId, input, options) {
182
+ const adapter = options.adapter;
183
+ const target = adapter.prepare('SELECT id, topic FROM decisions WHERE id = ?').get(decisionId);
184
+ if (!target) {
185
+ throw new Error(`Decision not found: ${decisionId}`);
186
+ }
187
+ const scopes = boundScopesOf(adapter, decisionId);
188
+ const payload = {
189
+ amended: decisionId,
190
+ outcome: input.outcome ?? null,
191
+ failure_reason: input.failureReason ?? null,
192
+ limitation: input.limitation ?? null,
193
+ confidence: input.confidence ?? null,
194
+ duration_days: input.durationDays ?? null,
195
+ ...(input.payload ?? {}),
196
+ };
197
+ const commandId = input.commandId ??
198
+ `outcome:${decisionId}:${node_crypto_1.default
199
+ .createHash('sha256')
200
+ .update((0, canonicalize_js_1.canonicalizeJSON)(payload))
201
+ .digest('hex')
202
+ .slice(0, 16)}`;
203
+ const amendment = { target: { kind: 'memory', id: decisionId } };
204
+ if (input.outcome !== undefined)
205
+ amendment.outcome = input.outcome;
206
+ if (input.failureReason !== undefined)
207
+ amendment.failureReason = input.failureReason;
208
+ if (input.limitation !== undefined)
209
+ amendment.limitation = input.limitation;
210
+ if (input.confidence !== undefined && input.confidence !== null) {
211
+ amendment.confidence = input.confidence;
212
+ }
213
+ if (input.durationDays !== undefined)
214
+ amendment.durationDays = input.durationDays;
215
+ const receipt = await (0, judgments_js_1.appendJudgment)({
216
+ commandId,
217
+ // Audit records point at the amended memory through the 'amends' link
218
+ // rather than sharing its topic, so they never enter the topic's
219
+ // evolution candidate pool or current-truth recall.
220
+ topic: `judgment/${decisionId}`,
221
+ summary: `Outcome ${input.outcome ?? 'update'} recorded for ${decisionId}`,
222
+ ...(input.failureReason || input.limitation
223
+ ? { reasoning: (input.failureReason ?? input.limitation) }
224
+ : {}),
225
+ recordKind: 'judgment',
226
+ payload,
227
+ scopes,
228
+ agentId: null,
229
+ links: [
230
+ {
231
+ relation: 'amends',
232
+ target: { kind: 'memory', id: decisionId },
233
+ },
234
+ ],
235
+ amends: [amendment],
236
+ record: { kind: 'fact', status: 'active', summary: `Outcome ${input.outcome ?? 'update'}` },
237
+ ...(input.recordedAt !== undefined ? { recordedAt: input.recordedAt } : {}),
238
+ event: { reason: input.eventReason ?? `outcome amendment for ${decisionId}` },
239
+ }, unsignedWriteAccess(scopes), { adapter });
240
+ return { recordId: receipt.recordId, commandId: receipt.commandId };
241
+ }
242
+ //# sourceMappingURL=write-adapters.js.map
@@ -0,0 +1,53 @@
1
+ export interface OwnerActionContext {
2
+ ownerScope: string;
3
+ occurrenceKey: string;
4
+ modelRunId?: string;
5
+ operationId?: string;
6
+ envelopeHash: string;
7
+ workOrderAttemptId?: number;
8
+ }
9
+ export interface VerifiedOwnerActionContext {
10
+ ownerScope: string;
11
+ occurrenceKey: string;
12
+ modelRunId: string | null;
13
+ operationId: string | null;
14
+ envelopeHash: string;
15
+ workOrderAttemptId: number | null;
16
+ }
17
+ export type OwnerActionEffectState = 'transmitting' | 'unknown' | 'confirmed';
18
+ export interface OwnerActionPendingEffect {
19
+ actionKey: string;
20
+ effectKind: string;
21
+ state: Exclude<OwnerActionEffectState, 'confirmed'>;
22
+ originModelRunId: string | null;
23
+ originOperationId: string | null;
24
+ }
25
+ export interface OwnerActionPendingPage {
26
+ items: OwnerActionPendingEffect[];
27
+ nextCursor: {
28
+ createdAt: number;
29
+ actionKey: string;
30
+ } | null;
31
+ }
32
+ export interface OwnerActionEffectStoragePort {
33
+ begin(context: OwnerActionContext, actionKey: string, effectKind: string, intent?: Record<string, unknown>): unknown;
34
+ confirm(context: OwnerActionContext, actionKey: string, effectKind: string, result: Record<string, unknown> | null): void;
35
+ markUnknown(context: OwnerActionContext, actionKey: string, effectKind: string, error: string): void;
36
+ releaseUnstarted(context: OwnerActionContext, actionKey: string, effectKind: string): void;
37
+ pending(context: OwnerActionContext, options?: {
38
+ limit?: number;
39
+ cursor?: {
40
+ createdAt: number;
41
+ actionKey: string;
42
+ };
43
+ }): OwnerActionPendingPage;
44
+ }
45
+ export declare function canonicalizeOwnerActionValue(value: unknown, path?: string): unknown;
46
+ export declare function canonicalOwnerActionJson(value: Record<string, unknown>): string;
47
+ export declare function ownerActionIntentSha256(value: Record<string, unknown>): string;
48
+ export declare function verifyOwnerActionContext(context: OwnerActionContext): VerifiedOwnerActionContext;
49
+ export declare function ownerActionOriginMatch(context: VerifiedOwnerActionContext): {
50
+ clause: string;
51
+ params: string[];
52
+ };
53
+ //# sourceMappingURL=owner-action-effects.d.ts.map
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.canonicalizeOwnerActionValue = canonicalizeOwnerActionValue;
4
+ exports.canonicalOwnerActionJson = canonicalOwnerActionJson;
5
+ exports.ownerActionIntentSha256 = ownerActionIntentSha256;
6
+ exports.verifyOwnerActionContext = verifyOwnerActionContext;
7
+ exports.ownerActionOriginMatch = ownerActionOriginMatch;
8
+ const node_crypto_1 = require("node:crypto");
9
+ const IDENTITY_MAX_LENGTH = 512;
10
+ function canonicalizeOwnerActionValue(value, path = '$') {
11
+ if (value === null) {
12
+ return null;
13
+ }
14
+ if (typeof value === 'string' || typeof value === 'boolean') {
15
+ return value;
16
+ }
17
+ if (typeof value === 'number') {
18
+ if (!Number.isFinite(value)) {
19
+ throw new Error(`owner action intent ${path} must be a finite number`);
20
+ }
21
+ return value;
22
+ }
23
+ if (typeof value !== 'object') {
24
+ throw new Error(`owner action intent ${path} is not JSON-representable (${typeof value})`);
25
+ }
26
+ if (Array.isArray(value)) {
27
+ return value.map((item, index) => canonicalizeOwnerActionValue(item, `${path}[${index}]`));
28
+ }
29
+ if (Object.getPrototypeOf(value) !== Object.prototype) {
30
+ throw new Error(`owner action intent ${path} must be a plain JSON object`);
31
+ }
32
+ return Object.fromEntries(Object.keys(value)
33
+ .sort()
34
+ .map((key) => [
35
+ key,
36
+ canonicalizeOwnerActionValue(value[key], `${path}.${key}`),
37
+ ]));
38
+ }
39
+ function canonicalOwnerActionJson(value) {
40
+ if (value === null ||
41
+ typeof value !== 'object' ||
42
+ Array.isArray(value) ||
43
+ Object.getPrototypeOf(value) !== Object.prototype) {
44
+ throw new Error('owner action intent must be a plain JSON object');
45
+ }
46
+ return JSON.stringify(canonicalizeOwnerActionValue(value));
47
+ }
48
+ function ownerActionIntentSha256(value) {
49
+ return (0, node_crypto_1.createHash)('sha256').update(canonicalOwnerActionJson(value)).digest('hex');
50
+ }
51
+ function requireIdentity(value, field) {
52
+ if (typeof value !== 'string') {
53
+ throw new Error(`owner action ${field} must be a non-blank string`);
54
+ }
55
+ const trimmed = value.trim();
56
+ if (!trimmed || trimmed !== value || trimmed.length > IDENTITY_MAX_LENGTH) {
57
+ throw new Error(`owner action ${field} must be a non-blank string without surrounding space and at most ${IDENTITY_MAX_LENGTH} characters`);
58
+ }
59
+ return trimmed;
60
+ }
61
+ function optionalIdentity(value, field) {
62
+ return value === undefined || value === null ? null : requireIdentity(value, field);
63
+ }
64
+ function verifyOwnerActionContext(context) {
65
+ if (context === null || typeof context !== 'object') {
66
+ throw new Error('owner action context is required');
67
+ }
68
+ const workOrderAttemptId = context.workOrderAttemptId;
69
+ if (workOrderAttemptId !== undefined &&
70
+ (!Number.isSafeInteger(workOrderAttemptId) || workOrderAttemptId <= 0)) {
71
+ throw new Error('owner action workOrderAttemptId must be a positive integer when present');
72
+ }
73
+ const modelRunId = optionalIdentity(context.modelRunId, 'modelRunId');
74
+ const operationId = optionalIdentity(context.operationId, 'operationId');
75
+ if (modelRunId === null && operationId === null) {
76
+ throw new Error('owner action context requires a modelRunId or operationId origin');
77
+ }
78
+ return {
79
+ ownerScope: requireIdentity(context.ownerScope, 'ownerScope'),
80
+ occurrenceKey: requireIdentity(context.occurrenceKey, 'occurrenceKey'),
81
+ modelRunId,
82
+ operationId,
83
+ envelopeHash: requireIdentity(context.envelopeHash, 'envelopeHash'),
84
+ workOrderAttemptId: workOrderAttemptId ?? null,
85
+ };
86
+ }
87
+ function ownerActionOriginMatch(context) {
88
+ if (context.operationId !== null) {
89
+ return { clause: 'origin_operation_id = ?', params: [context.operationId] };
90
+ }
91
+ return {
92
+ clause: '(origin_operation_id IS NULL AND origin_model_run_id = ?)',
93
+ params: [context.modelRunId],
94
+ };
95
+ }
96
+ //# sourceMappingURL=owner-action-effects.js.map
@@ -1,4 +1,4 @@
1
- export declare const STRICT_SOURCE_REF_KINDS: readonly ["memory", "raw", "entity", "case", "decision", "os_task", "agent_situation_packet", "report_slot", "context_packet", "model_run", "tool_trace", "wiki_page", "report"];
1
+ export declare const STRICT_SOURCE_REF_KINDS: readonly ["memory", "raw", "case", "decision", "os_task", "report_slot", "context_packet", "model_run", "tool_trace", "wiki_page", "report"];
2
2
  export type StrictSourceRefKind = (typeof STRICT_SOURCE_REF_KINDS)[number];
3
3
  export declare const LEGACY_SOURCE_REF_KINDS: readonly ["message", "conversation", "raw_memory"];
4
4
  export type LegacySourceRefKind = (typeof LEGACY_SOURCE_REF_KINDS)[number];
@@ -5,11 +5,9 @@ exports.serializeSourceRef = serializeSourceRef;
5
5
  exports.STRICT_SOURCE_REF_KINDS = [
6
6
  'memory',
7
7
  'raw',
8
- 'entity',
9
8
  'case',
10
9
  'decision',
11
10
  'os_task',
12
- 'agent_situation_packet',
13
11
  'report_slot',
14
12
  'context_packet',
15
13
  'model_run',
@@ -0,0 +1,31 @@
1
+ import type { DatabaseAdapter } from '../db-manager.js';
2
+ import type { MemoryScopeRef } from '../memory/types.js';
3
+ import type { IdentityCorrection, IdentityCorrectionReceipt } from '../memory/judgment-types.js';
4
+ type Endpoint = 'from' | 'to';
5
+ type Db = DatabaseAdapter;
6
+ export type { IdentityCorrection, IdentityCorrectionAssignment, IdentityCorrectionReceipt, } from '../memory/judgment-types.js';
7
+ export interface TrustedIdentityCorrectionContext {
8
+ principalId: string;
9
+ agentId: string;
10
+ scopes: readonly MemoryScopeRef[];
11
+ connectors: readonly string[];
12
+ channels?: Readonly<Record<string, readonly string[]>>;
13
+ }
14
+ export interface IdentityAssignment {
15
+ edgeId: string;
16
+ endpoint: Endpoint;
17
+ originalRef: {
18
+ kind: string;
19
+ id: string;
20
+ };
21
+ resolvedRef: {
22
+ kind: 'registry';
23
+ id: string;
24
+ } | null;
25
+ identityRevision: number;
26
+ commandId: string;
27
+ }
28
+ export declare function appendIdentityCorrection(adapter: Db, correction: IdentityCorrection, trusted: TrustedIdentityCorrectionContext): IdentityCorrectionReceipt;
29
+ export declare function readIdentityAssignments(adapter: Db, edgeId: string): IdentityAssignment[];
30
+ export declare function newCorrectionCommandId(): string;
31
+ //# sourceMappingURL=corrections.d.ts.map