@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
@@ -3,17 +3,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.beginModelRunInAdapter = beginModelRunInAdapter;
7
- exports.commitModelRunInAdapter = commitModelRunInAdapter;
8
- exports.failModelRunInAdapter = failModelRunInAdapter;
9
- exports.getModelRunInAdapter = getModelRunInAdapter;
10
6
  exports.beginModelRun = beginModelRun;
11
7
  exports.commitModelRun = commitModelRun;
12
8
  exports.failModelRun = failModelRun;
13
9
  exports.getModelRun = getModelRun;
10
+ exports.listModelRunNativeInputs = listModelRunNativeInputs;
14
11
  const node_crypto_1 = __importDefault(require("node:crypto"));
15
- const db_manager_js_1 = require("../db-manager.js");
16
- const types_js_1 = require("./types.js");
12
+ const model_run_types_js_1 = require("./model-run-types.js");
17
13
  const BEGIN_REPLAY_FIELDS = [
18
14
  'model_id',
19
15
  'model_provider',
@@ -73,6 +69,14 @@ function requireTimestamp(value, field, modelRunId) {
73
69
  function normalizeNumber(value, fallback) {
74
70
  return typeof value === 'number' && Number.isFinite(value) ? Math.floor(value) : fallback;
75
71
  }
72
+ function requireTokenCount(value) {
73
+ if (value === undefined)
74
+ return undefined;
75
+ if (!Number.isSafeInteger(value) || value < 0) {
76
+ throw new Error('model_runs.token_count must be a non-negative safe integer');
77
+ }
78
+ return value;
79
+ }
76
80
  function normalizeCost(value) {
77
81
  return typeof value === 'number' && Number.isFinite(value) ? value : null;
78
82
  }
@@ -125,7 +129,7 @@ function parseInputRefs(row) {
125
129
  }
126
130
  throw new Error(`Invalid model_runs.input_refs_json for ${row.model_run_id}: expected object`);
127
131
  }
128
- const MODEL_RUN_STATUS_SET = new Set(types_js_1.MODEL_RUN_STATUSES);
132
+ const MODEL_RUN_STATUS_SET = new Set(model_run_types_js_1.MODEL_RUN_STATUSES);
129
133
  function requireModelRunStatus(value, modelRunId) {
130
134
  if (typeof value === 'string' && MODEL_RUN_STATUS_SET.has(value)) {
131
135
  return value;
@@ -167,10 +171,6 @@ function mapModelRunRow(row) {
167
171
  : null,
168
172
  };
169
173
  }
170
- async function initializedAdapter() {
171
- await (0, db_manager_js_1.initDB)();
172
- return (0, db_manager_js_1.getAdapter)();
173
- }
174
174
  function selectModelRun(adapter, id) {
175
175
  const row = adapter
176
176
  .prepare(`
@@ -329,11 +329,15 @@ function isDuplicateModelRunError(error) {
329
329
  const message = error instanceof Error ? error.message : String(error);
330
330
  return /UNIQUE constraint failed: model_runs\.model_run_id|PRIMARY KEY constraint failed/i.test(message);
331
331
  }
332
- function resolveExistingCommittedRun(existing, summary) {
332
+ function resolveExistingCommittedRun(existing, summary, tokenCount) {
333
333
  if (existing.status === 'committed') {
334
- if (existing.completion_summary === summary) {
334
+ if (existing.completion_summary === summary &&
335
+ (tokenCount === undefined || existing.token_count === tokenCount)) {
335
336
  return existing;
336
337
  }
338
+ if (tokenCount !== undefined && existing.token_count !== tokenCount) {
339
+ throw new Error(`Model run already committed with different token_count: ${existing.model_run_id}`);
340
+ }
337
341
  throw new Error(`Model run already committed with different completion_summary: ${existing.model_run_id}`);
338
342
  }
339
343
  if (existing.status === 'failed') {
@@ -341,11 +345,15 @@ function resolveExistingCommittedRun(existing, summary) {
341
345
  }
342
346
  throw new Error(`Cannot commit model run in ${existing.status} status: ${existing.model_run_id}`);
343
347
  }
344
- function resolveExistingFailedRun(existing, errorSummary) {
348
+ function resolveExistingFailedRun(existing, errorSummary, tokenCount) {
345
349
  if (existing.status === 'failed') {
346
- if (existing.error_summary === errorSummary) {
350
+ if (existing.error_summary === errorSummary &&
351
+ (tokenCount === undefined || existing.token_count === tokenCount)) {
347
352
  return existing;
348
353
  }
354
+ if (tokenCount !== undefined && existing.token_count !== tokenCount) {
355
+ throw new Error(`Model run already failed with different token_count: ${existing.model_run_id}`);
356
+ }
349
357
  throw new Error(`Model run already failed with different error_summary: ${existing.model_run_id}`);
350
358
  }
351
359
  if (existing.status === 'committed') {
@@ -353,7 +361,7 @@ function resolveExistingFailedRun(existing, errorSummary) {
353
361
  }
354
362
  throw new Error(`Cannot fail model run in ${existing.status} status: ${existing.model_run_id}`);
355
363
  }
356
- function beginModelRunInAdapter(adapter, input) {
364
+ function beginModelRun(adapter, input) {
357
365
  const id = nullableString(input.model_run_id) ?? modelRunId();
358
366
  const createdAt = normalizeTimestamp(input.created_at);
359
367
  const status = normalizeBeginStatus(input.status, id);
@@ -391,11 +399,12 @@ function beginModelRunInAdapter(adapter, input) {
391
399
  }
392
400
  return requireModelRun(adapter, id);
393
401
  }
394
- function commitModelRunInAdapter(adapter, modelRunId, summary) {
402
+ function commitModelRun(adapter, modelRunId, summary, tokenCount) {
395
403
  const summaryValue = nullableString(summary);
404
+ const measuredTokens = requireTokenCount(tokenCount);
396
405
  const existing = requireModelRun(adapter, modelRunId);
397
406
  if (existing.status !== 'running') {
398
- return resolveExistingCommittedRun(existing, summaryValue);
407
+ return resolveExistingCommittedRun(existing, summaryValue, measuredTokens);
399
408
  }
400
409
  const completedAt = Date.now();
401
410
  const result = adapter
@@ -404,20 +413,22 @@ function commitModelRunInAdapter(adapter, modelRunId, summary) {
404
413
  SET status = 'committed',
405
414
  completion_summary = ?,
406
415
  error_summary = NULL,
416
+ token_count = ?,
407
417
  completed_at = ?
408
418
  WHERE model_run_id = ? AND status = 'running'
409
419
  `)
410
- .run(summaryValue, completedAt, modelRunId);
420
+ .run(summaryValue, measuredTokens ?? existing.token_count, completedAt, modelRunId);
411
421
  if (result.changes === 0) {
412
- return resolveExistingCommittedRun(requireModelRun(adapter, modelRunId), summaryValue);
422
+ return resolveExistingCommittedRun(requireModelRun(adapter, modelRunId), summaryValue, measuredTokens);
413
423
  }
414
424
  return requireModelRun(adapter, modelRunId);
415
425
  }
416
- function failModelRunInAdapter(adapter, modelRunId, errorSummary) {
426
+ function failModelRun(adapter, modelRunId, errorSummary, tokenCount) {
417
427
  const errorSummaryValue = nullableString(errorSummary);
428
+ const measuredTokens = requireTokenCount(tokenCount);
418
429
  const existing = requireModelRun(adapter, modelRunId);
419
430
  if (existing.status !== 'running') {
420
- return resolveExistingFailedRun(existing, errorSummaryValue);
431
+ return resolveExistingFailedRun(existing, errorSummaryValue, measuredTokens);
421
432
  }
422
433
  const completedAt = Date.now();
423
434
  const result = adapter
@@ -426,32 +437,61 @@ function failModelRunInAdapter(adapter, modelRunId, errorSummary) {
426
437
  SET status = 'failed',
427
438
  completion_summary = NULL,
428
439
  error_summary = ?,
440
+ token_count = ?,
429
441
  completed_at = ?
430
442
  WHERE model_run_id = ? AND status = 'running'
431
443
  `)
432
- .run(errorSummaryValue, completedAt, modelRunId);
444
+ .run(errorSummaryValue, measuredTokens ?? existing.token_count, completedAt, modelRunId);
433
445
  if (result.changes === 0) {
434
- return resolveExistingFailedRun(requireModelRun(adapter, modelRunId), errorSummaryValue);
446
+ return resolveExistingFailedRun(requireModelRun(adapter, modelRunId), errorSummaryValue, measuredTokens);
435
447
  }
436
448
  return requireModelRun(adapter, modelRunId);
437
449
  }
438
- function getModelRunInAdapter(adapter, modelRunId) {
450
+ function getModelRun(adapter, modelRunId) {
439
451
  return selectModelRun(adapter, modelRunId);
440
452
  }
441
- async function beginModelRun(input) {
442
- const adapter = await initializedAdapter();
443
- return beginModelRunInAdapter(adapter, input);
444
- }
445
- async function commitModelRun(modelRunId, summary) {
446
- const adapter = await initializedAdapter();
447
- return commitModelRunInAdapter(adapter, modelRunId, summary);
448
- }
449
- async function failModelRun(modelRunId, errorSummary) {
450
- const adapter = await initializedAdapter();
451
- return failModelRunInAdapter(adapter, modelRunId, errorSummary);
452
- }
453
- async function getModelRun(modelRunId) {
454
- const adapter = await initializedAdapter();
455
- return getModelRunInAdapter(adapter, modelRunId);
453
+ /** Read one run's native input cohort without copying payloads or inventing legacy principals. */
454
+ function listModelRunNativeInputs(adapter, modelRunId, principalId, options = {}) {
455
+ requireString(principalId, 'principal_id');
456
+ const run = requireModelRun(adapter, modelRunId);
457
+ if (run.input_refs?.principalId !== principalId ||
458
+ !((typeof run.input_refs.nativeInputId === 'string' && run.input_refs.nativeInputId.trim()) ||
459
+ (typeof run.input_refs.sourceMessageRef === 'string' &&
460
+ run.input_refs.sourceMessageRef.trim()))) {
461
+ throw new Error('Model run has no matching principal-bound native input');
462
+ }
463
+ const afterId = options.afterId ?? 0;
464
+ const limit = options.limit ?? 25;
465
+ if (!Number.isSafeInteger(afterId) || afterId < 0) {
466
+ throw new Error('Model run native input cursor must be a non-negative integer');
467
+ }
468
+ if (!Number.isSafeInteger(limit) || limit < 1 || limit > 100) {
469
+ throw new Error('Model run native input page limit must be 1 to 100');
470
+ }
471
+ const rows = adapter
472
+ .prepare(`SELECT input_id, stimulus_id, kind, principal_id, channel_key,
473
+ occurred_at, status, native_state
474
+ FROM model_run_native_inputs
475
+ WHERE model_run_id=? AND principal_id=? AND input_id>?
476
+ ORDER BY input_id LIMIT ?`)
477
+ .all(modelRunId, principalId, afterId, limit + 1);
478
+ if (afterId === 0 && rows.length === 0) {
479
+ throw new Error('Model run has no accepted native turn receipt');
480
+ }
481
+ const page = rows.slice(0, limit);
482
+ return {
483
+ runStatus: run.status,
484
+ items: page.map((row) => ({
485
+ inputId: row.input_id,
486
+ stimulusId: row.stimulus_id,
487
+ kind: row.kind,
488
+ principalId: row.principal_id,
489
+ channelKey: row.channel_key,
490
+ occurredAt: row.occurred_at,
491
+ status: row.status,
492
+ nativeState: row.native_state,
493
+ })),
494
+ nextCursor: rows.length > limit ? page[page.length - 1].input_id : null,
495
+ };
456
496
  }
457
- //# sourceMappingURL=store.js.map
497
+ //# sourceMappingURL=model-run-store.js.map
@@ -0,0 +1,132 @@
1
+ export declare const MODEL_RUN_STATUSES: readonly ["running", "committed", "failed", "legacy"];
2
+ export type ModelRunStatus = (typeof MODEL_RUN_STATUSES)[number];
3
+ export interface BeginModelRunInput {
4
+ model_run_id?: string;
5
+ model_id?: string | null;
6
+ model_provider?: string | null;
7
+ prompt_version?: string | null;
8
+ tool_manifest_version?: string | null;
9
+ output_schema_version?: string | null;
10
+ agent_id?: string | null;
11
+ instance_id?: string | null;
12
+ envelope_hash?: string | null;
13
+ parent_model_run_id?: string | null;
14
+ input_snapshot_ref?: string | null;
15
+ input_refs?: Record<string, unknown> | null;
16
+ input_refs_json?: string | null;
17
+ status?: ModelRunStatus;
18
+ error_summary?: string | null;
19
+ token_count?: number | null;
20
+ cost_estimate?: number | null;
21
+ created_at?: number;
22
+ }
23
+ export interface ModelRunRecord {
24
+ model_run_id: string;
25
+ model_id: string | null;
26
+ model_provider: string | null;
27
+ prompt_version: string | null;
28
+ tool_manifest_version: string | null;
29
+ output_schema_version: string | null;
30
+ agent_id: string | null;
31
+ instance_id: string | null;
32
+ envelope_hash: string | null;
33
+ parent_model_run_id: string | null;
34
+ input_snapshot_ref: string | null;
35
+ input_refs_json: string | null;
36
+ input_refs: Record<string, unknown> | null;
37
+ completion_summary: string | null;
38
+ status: ModelRunStatus;
39
+ error_summary: string | null;
40
+ token_count: number;
41
+ cost_estimate: number | null;
42
+ created_at: number;
43
+ completed_at: number | null;
44
+ }
45
+ /** Fields shared by model-backed and service-operation trace appends. */
46
+ interface AppendToolTraceCommon {
47
+ /** Host-derived access scope; legacy rows remain unscoped. */
48
+ owner_scope?: string | null;
49
+ project_id?: string | null;
50
+ channel_id?: string | null;
51
+ diagnostic_json?: string | null;
52
+ evidence_json?: string | null;
53
+ catalog_revision?: string | null;
54
+ trace_id?: string;
55
+ gateway_call_id?: string | null;
56
+ tool_name: string;
57
+ input_summary?: string | null;
58
+ output_summary?: string | null;
59
+ execution_status?: string | null;
60
+ duration_ms?: number | null;
61
+ envelope_hash?: string | null;
62
+ /** Thrower's closed cause (e.g. envelope_missing). Carried, never invented. */
63
+ failure_code?: string | null;
64
+ created_at?: number;
65
+ }
66
+ /**
67
+ * Model-backed append. `model_run_id` names the authorizing model run and stays
68
+ * required: the existing gateway/tracing callers are unchanged.
69
+ */
70
+ export interface AppendToolTraceInput extends AppendToolTraceCommon {
71
+ model_run_id: string;
72
+ }
73
+ /**
74
+ * Service/CLI operation append. A truthful host operation traces itself without
75
+ * inventing a model run: the row is anchored by a nonempty `operation_id` and
76
+ * `actor_principal_id`, which stay required.
77
+ *
78
+ * `model_run_id` is OPTIONAL causal provenance: when a real completed model run
79
+ * caused this operation observation, its id may be carried so the association is
80
+ * queryable (the `model_runs` FK validates that the reference is real). It is
81
+ * never fabricated, never invented, and never serves as execution authorization
82
+ * - an operation without a causing run simply omits it and the column stays NULL.
83
+ */
84
+ export interface AppendOperationToolTraceInput extends AppendToolTraceCommon {
85
+ operation_id: string;
86
+ actor_principal_id: string;
87
+ /** Optional real causal model run. Stored when supplied; absent stays NULL. */
88
+ model_run_id?: string | null;
89
+ }
90
+ export interface ToolTraceRecord {
91
+ /** Host-derived access scope; legacy rows remain unscoped. */
92
+ owner_scope?: string | null;
93
+ project_id?: string | null;
94
+ channel_id?: string | null;
95
+ diagnostic_json?: string | null;
96
+ evidence_json?: string | null;
97
+ catalog_revision?: string | null;
98
+ trace_id: string;
99
+ /** NULL only for a service/operation-origin trace; legacy rows keep their model id. */
100
+ model_run_id: string | null;
101
+ /** Set (with actor_principal_id) exactly when this is an operation-origin trace. */
102
+ operation_id: string | null;
103
+ actor_principal_id: string | null;
104
+ gateway_call_id: string | null;
105
+ tool_name: string;
106
+ input_summary: string | null;
107
+ output_summary: string | null;
108
+ execution_status: string | null;
109
+ duration_ms: number;
110
+ envelope_hash: string | null;
111
+ failure_code: string | null;
112
+ created_at: number;
113
+ }
114
+ export interface ToolTraceScope {
115
+ owner_scope: string;
116
+ project_id: string;
117
+ channel_id?: string;
118
+ }
119
+ export interface ListToolTracesInput extends ToolTraceScope {
120
+ evidence_only?: boolean;
121
+ model_run_id?: string;
122
+ tool_name?: string;
123
+ cursor?: string;
124
+ limit?: number;
125
+ }
126
+ export interface ToolTracePage {
127
+ /** Metadata only: evidence_json is null. Read a scoped trace for details. */
128
+ traces: ToolTraceRecord[];
129
+ next_cursor: string | null;
130
+ }
131
+ export {};
132
+ //# sourceMappingURL=model-run-types.d.ts.map
@@ -2,4 +2,4 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MODEL_RUN_STATUSES = void 0;
4
4
  exports.MODEL_RUN_STATUSES = ['running', 'committed', 'failed', 'legacy'];
5
- //# sourceMappingURL=types.js.map
5
+ //# sourceMappingURL=model-run-types.js.map
@@ -0,0 +1,22 @@
1
+ /** Notifications are observations, not backend pre-execution authorization hooks. */
2
+ export interface NativeEffectObserver {
3
+ started(name: string, input: Record<string, unknown>): void;
4
+ settled(name: string, toolUseId: string, isError: boolean, outcome?: 'unknown'): void;
5
+ interrupted(): void;
6
+ /** Settle the durable admission marker only after a clean run return. */
7
+ finished?(): void;
8
+ }
9
+ export declare function isDelegationToolName(name: string): boolean;
10
+ export declare function isNativeToolName(name: string): boolean;
11
+ /** TG-03/04/05/06: a completed shell invocation is still unsafe to replay. */
12
+ export declare class NativeEffectReplayBoundary {
13
+ private readonly observer?;
14
+ private observed;
15
+ constructor(observer?: NativeEffectObserver | undefined);
16
+ private observe;
17
+ started(name: string, input: Record<string, unknown>): void;
18
+ settled(name: string, toolUseId: string, isError: boolean, outcome?: 'unknown'): void;
19
+ finished(): void;
20
+ failure(error: unknown, allowPreExecutionRecovery?: boolean): unknown;
21
+ }
22
+ //# sourceMappingURL=native-effect-observer.d.ts.map
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NativeEffectReplayBoundary = void 0;
4
+ exports.isDelegationToolName = isDelegationToolName;
5
+ exports.isNativeToolName = isNativeToolName;
6
+ const types_js_1 = require("./drivers/types.js");
7
+ const NATIVE_EFFECT_NAMES = new Set([
8
+ 'bash',
9
+ 'write',
10
+ 'edit',
11
+ 'multiedit',
12
+ 'apply_patch',
13
+ 'exec_command',
14
+ 'shell',
15
+ 'shell_command',
16
+ 'commandexecution',
17
+ 'filechange',
18
+ 'execute_command',
19
+ 'write_to_file',
20
+ 'replace_in_file',
21
+ ]);
22
+ /**
23
+ * Delegation is an admission, not an effect. Spawning a native subagent (Claude `Agent`/
24
+ * `Task`, Codex `spawn_agent`/`send_input`/`resume_agent`) names nothing the replay gate
25
+ * can re-execute: every effect the child performs carries its own ledger row through the
26
+ * gateway. Measured 2026-09-10: a Claude `Agent` tool_use recorded as `native_tool`
27
+ * under the reused `workorder:board:full:repair` occurrence blocked every later board
28
+ * order ("owner effect requires reconciliation before replay", orders #4805-#4807).
29
+ * Codex spawns already bypass this boundary via `onSubagentStart`; the Claude spawn
30
+ * arrives as an ordinary tool_use, so the name set must not claim it.
31
+ */
32
+ const DELEGATION_NAMES = new Set([
33
+ 'agent',
34
+ 'task',
35
+ 'spawn_agent',
36
+ 'collabagenttoolcall',
37
+ 'send_input',
38
+ 'resume_agent',
39
+ ]);
40
+ function isDelegationToolName(name) {
41
+ return DELEGATION_NAMES.has(name.toLowerCase());
42
+ }
43
+ const NATIVE_READ_NAMES = new Set(['read', 'glob', 'grep', 'webfetch', 'websearch', 'web_search']);
44
+ function isNativeToolName(name) {
45
+ return (NATIVE_EFFECT_NAMES.has(name.toLowerCase()) ||
46
+ NATIVE_READ_NAMES.has(name.toLowerCase()) ||
47
+ isDelegationToolName(name));
48
+ }
49
+ /** TG-03/04/05/06: a completed shell invocation is still unsafe to replay. */
50
+ class NativeEffectReplayBoundary {
51
+ observer;
52
+ observed = false;
53
+ constructor(observer) {
54
+ this.observer = observer;
55
+ }
56
+ observe(callback) {
57
+ try {
58
+ callback();
59
+ }
60
+ catch {
61
+ // A trace sink is not an authorization hook; omit exception text (may contain input).
62
+ console.warn('[NativeEffectObserver] observation failed');
63
+ }
64
+ }
65
+ started(name, input) {
66
+ if (!isNativeToolName(name))
67
+ return;
68
+ if (NATIVE_EFFECT_NAMES.has(name.toLowerCase()))
69
+ this.observed = true;
70
+ this.observe(() => this.observer?.started(name, input));
71
+ }
72
+ settled(name, toolUseId, isError, outcome) {
73
+ if (!isNativeToolName(name))
74
+ return;
75
+ if (NATIVE_EFFECT_NAMES.has(name.toLowerCase()))
76
+ this.observed = true;
77
+ this.observe(() => this.observer?.settled(name, toolUseId, isError, outcome));
78
+ }
79
+ finished() {
80
+ this.observe(() => this.observer?.finished?.());
81
+ }
82
+ failure(error, allowPreExecutionRecovery = false) {
83
+ // Only AgentLoop's trusted recoverable-session predicate may permit a reset.
84
+ // Once a native effect is observed, even a session error cannot allow replay.
85
+ if (allowPreExecutionRecovery && !this.observed) {
86
+ this.observe(() => this.observer?.interrupted());
87
+ return error;
88
+ }
89
+ if (!this.observed) {
90
+ this.observe(() => this.observer?.interrupted());
91
+ return error;
92
+ }
93
+ try {
94
+ this.observer?.interrupted();
95
+ }
96
+ catch {
97
+ // The durable started reservation remains unresolved if settlement fails.
98
+ }
99
+ return new types_js_1.AgentError('Native run effect outcome is uncertain; reconcile effects before replaying the occurrence.', 'MUTATION_OUTCOME_UNKNOWN', error instanceof Error ? error : new Error(String(error)), false);
100
+ }
101
+ }
102
+ exports.NativeEffectReplayBoundary = NativeEffectReplayBoundary;
103
+ //# sourceMappingURL=native-effect-observer.js.map
@@ -0,0 +1,46 @@
1
+ import type { DatabaseAdapter } from '../db-manager.js';
2
+ import type { NativeInputDispatch, NativeInputReceipt } from './drivers/types.js';
3
+ import type { NativeTurnResult } from './native-turn.js';
4
+ import type { StimulusKind } from './mailbox.js';
5
+ type NativeTurnResultPayload = Pick<NativeTurnResult, 'response' | 'turns' | 'totalUsage' | 'stopReason' | 'modelRunId' | 'modelRunProvenance' | 'stoppedBy'> & {
6
+ ownerJournalProvenance?: 'commit_failed';
7
+ };
8
+ export type NativeTurnResultRecord = NativeTurnResultPayload & {
9
+ primaryStimulusId: string;
10
+ /** Null only for historical results whose primary mailbox row was already pruned. */
11
+ primaryKind: StimulusKind | null;
12
+ };
13
+ export interface NativeDeliveryRecord {
14
+ invocationId: string | null;
15
+ state: 'prepared' | 'dispatching' | 'accepted' | 'settled' | 'uncertain';
16
+ dispatch: NativeInputDispatch | null;
17
+ receipt: NativeInputReceipt | null;
18
+ error: string | null;
19
+ }
20
+ /** One durable dispatch identity per accepted input. No task meaning or effect classification. */
21
+ export declare class NativeInputJournal {
22
+ private readonly db;
23
+ private readonly now;
24
+ constructor(db: DatabaseAdapter, now?: () => number);
25
+ get(inputId: number): NativeDeliveryRecord | null;
26
+ /** Page the inputs that share one exact native receipt under one principal. */
27
+ listByReceipt(receipt: NativeInputReceipt, principalId: string, options?: {
28
+ afterId?: number;
29
+ limit?: number;
30
+ }): {
31
+ inputIds: number[];
32
+ nextCursor: number | null;
33
+ };
34
+ /** One immutable final result per native turn, written before any consumer reply. */
35
+ storeResult(inputId: number, result: NativeTurnResult): void;
36
+ /** A later accepted input can recover the one final result under its principal. */
37
+ resultForReceipt(receipt: NativeInputReceipt, principalId: string): NativeTurnResultRecord | null;
38
+ prepare(inputId: number): NativeDeliveryRecord;
39
+ dispatch(inputId: number, value: NativeInputDispatch): void;
40
+ accept(inputId: number, value: NativeInputReceipt): void;
41
+ settle(inputId: number, reconciled?: boolean): void;
42
+ uncertain(inputId: number, error: string): void;
43
+ pending(limit: number, afterId?: number): number[];
44
+ }
45
+ export {};
46
+ //# sourceMappingURL=native-input-journal.d.ts.map