@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
@@ -0,0 +1,272 @@
1
+ /**
2
+ * One run, from the moment a caller hands over content to the moment the answer,
3
+ * the receipts and the session lock are settled.
4
+ *
5
+ * This was a product's agent loop: the entry a consumer called to talk to a model.
6
+ * Everything it does here is the same whichever consumer asks and whatever the words
7
+ * mean - wait for the session's lane, decide NEW vs CONTINUE, open a model run, hold a
8
+ * native-effect boundary open, run the turns, run the tools the model asked for under
9
+ * the loop guards, give a native child its own authority, commit or fail the run,
10
+ * release the session. None of it needs to know the transport.
11
+ *
12
+ * What it cannot know, the caller states: the layers this turn opens with, which
13
+ * channel key it serializes on, what a tool call actually does, and what the consumer
14
+ * wants kept once the answer stands. A port is asked; it is never inferred.
15
+ */
16
+ import type { BackendType, ContentBlock, HostExecutionContext, HostToolDefinition, IModelRunner, Message, NativeInputReceipt, StopReason, StreamCallbacks, TurnInfo, Usage } from './drivers/types.js';
17
+ import { type NativeEffectObserver } from './native-effect-observer.js';
18
+ import type { PostToolHandler } from './post-tool-handler.js';
19
+ import { type PromptLayer } from './prompt-layers.js';
20
+ import type { SubagentBridge, SubagentBridgeRequest } from './subagent-bridge.js';
21
+ import type { SessionPool } from './session-pool.js';
22
+ import type { NativeToolCaller } from '../action-contracts.js';
23
+ import { type BudgetStopInfo, type NativePromptRequest } from './native-prompt.js';
24
+ /** Background work a tool started that the run must outlive its own turns to drain. */
25
+ export interface BackgroundTaskRegistry {
26
+ register(task: Promise<unknown>): void;
27
+ }
28
+ /**
29
+ * What the entry reads from the caller's wider options object. The caller's own type
30
+ * is much wider and names things the core has no business knowing; this is the part
31
+ * that crosses.
32
+ */
33
+ export interface NativeTurnRequest extends NativePromptRequest {
34
+ /** Assembled only after the native driver has selected a new or retained session. */
35
+ prepareSessionContent?: (session: import('./drivers/types.js').NativeSessionState) => Promise<ContentBlock[]>;
36
+ sessionKey?: string;
37
+ channelId?: string;
38
+ lanePriority?: number;
39
+ /** Best-effort notification that an earlier turn already occupies this session lane. */
40
+ onQueued?: () => void;
41
+ /** Trace identity as soon as the run exists, including turns that never return a result. */
42
+ onModelRunStarted?: (modelRunId: string) => void;
43
+ cliSessionId?: string | null;
44
+ procedureRefs?: unknown;
45
+ streamCallbacks?: StreamCallbacks;
46
+ onTurn?: (turn: TurnInfo) => void;
47
+ onToolUse?: (toolName: string, input: unknown, result: unknown) => void;
48
+ /** Authority is asked for AFTER both queue waits, never before. */
49
+ prepareAccess?: () => unknown | Promise<unknown>;
50
+ /** Admission may replace the content it was handed. */
51
+ prepareContent?: () => {
52
+ content: ContentBlock[];
53
+ procedureRefs?: unknown;
54
+ } | Promise<{
55
+ content: ContentBlock[];
56
+ procedureRefs?: unknown;
57
+ }>;
58
+ /** A run the caller already owns; this entry opens none of its own for it. */
59
+ ownerJournalPrompt?: string;
60
+ tier?: 1 | 2 | 3;
61
+ }
62
+ /** Why a run stopped on the host's side. */
63
+ export type NativeRunStoppedBy = 'budget';
64
+ /** Whether this run's model-run record can be cited afterwards. */
65
+ export type NativeRunProvenance = 'available' | 'backend_no_run' | 'commit_failed';
66
+ export interface NativeTurnResult {
67
+ response: string;
68
+ turns: number;
69
+ history: Message[];
70
+ totalUsage: Usage;
71
+ stopReason: StopReason;
72
+ modelRunId: string | null;
73
+ modelRunProvenance: NativeRunProvenance;
74
+ stoppedBy?: NativeRunStoppedBy;
75
+ [extra: string]: unknown;
76
+ }
77
+ /**
78
+ * Everything about THIS turn the core cannot decide, stated in one answer so the core
79
+ * never assembles a policy out of fragments.
80
+ *
81
+ * The prompt crosses as LAYERS, not as a string. Joining them and keeping them inside
82
+ * a budget is arithmetic and belongs here; what each layer says belongs to the caller.
83
+ */
84
+ export interface NativeTurnPolicy {
85
+ /** The session lane and pool key this run serializes on. */
86
+ channelKey: string;
87
+ /** What this call opens with. */
88
+ systemLayers: readonly PromptLayer[];
89
+ /**
90
+ * The complete current policy, asked for only when a durable thread was replaced.
91
+ * A resume stub would REPLACE the thread's full policy with a fragment, so the
92
+ * caller rebuilds it here - and, because rebuilding can cost a search, only here.
93
+ */
94
+ reanchorLayers?: () => Promise<readonly PromptLayer[]>;
95
+ /** Base instructions a durable runtime re-anchors a live thread with. */
96
+ resumeLayers?: () => Promise<readonly PromptLayer[]>;
97
+ /** The policy the spawned process carries; a changed one must respawn, not inherit. */
98
+ sessionPolicyFingerprint?: string;
99
+ /** An explicit per-session native read boundary; absent preserves driver defaults. */
100
+ restrictedReadRoots?: readonly string[];
101
+ /** Native working directory for this session, supplied by the host. */
102
+ nativeCwd?: string;
103
+ /** The native built-in surface this turn's grant projects onto the process. */
104
+ nativeTools?: string;
105
+ /**
106
+ * This session carries a standing composed policy rather than a per-call one, so a
107
+ * lost thread is re-anchored with the whole of it instead of with a resume stub.
108
+ */
109
+ standingPolicy?: boolean;
110
+ }
111
+ /**
112
+ * Opening and closing the record of one run.
113
+ *
114
+ * WHEN a run is opened is not this port's decision - the entry opens one for every
115
+ * turn it actually runs, unless the caller already owns one. The port used to carry a
116
+ * `shouldBegin` predicate, and the product answered it with its tool-routing mode, so
117
+ * a whole backend's turns went unrecorded while running real tools.
118
+ *
119
+ * A consumer that cannot record a run must fail here rather than return nothing: a
120
+ * turn whose run cannot be written must not run quietly.
121
+ */
122
+ export interface NativeModelRunPort {
123
+ begin(request: NativeTurnRequest | undefined, cliSessionId: string | null): Promise<string>;
124
+ commit(modelRunId: string, summary: string, tokenCount?: number): Promise<void>;
125
+ fail(modelRunId: string, summary: string, tokenCount?: number): Promise<void>;
126
+ }
127
+ /** The queue that serializes one session's runs. The core asks; it does not own one. */
128
+ export interface SessionLanes {
129
+ enqueueWithSession<T>(sessionKey: string, task: () => Promise<T>, globalLane?: string, options?: {
130
+ priority?: number;
131
+ }): Promise<T>;
132
+ /** Whether this exact session already has active or queued native work. */
133
+ hasSessionWork?(sessionKey: string): boolean;
134
+ getTotalQueueSize(): number;
135
+ }
136
+ /**
137
+ * The consumer, as the entry sees it: a handful of stated values and the ports it
138
+ * calls when only the consumer can answer.
139
+ */
140
+ export interface NativeSessionHost<TToolContext extends HostExecutionContext = HostExecutionContext> {
141
+ readonly agent: IModelRunner;
142
+ readonly backend: BackendType;
143
+ readonly model: string;
144
+ readonly maxTurns: number;
145
+ readonly isGatewayMode: boolean;
146
+ readonly runTokenBudget: number;
147
+ readonly sessionPool: SessionPool;
148
+ readonly lanes?: SessionLanes;
149
+ readonly useLanes?: boolean;
150
+ readonly postToolHandler?: PostToolHandler | null;
151
+ /** Where an uploaded image is written so the runtime can read it back by path. */
152
+ readonly inboundMediaDir?: string;
153
+ /** Run-wide observers used when a request states none of its own. */
154
+ readonly onTurn?: (turn: TurnInfo) => void;
155
+ readonly onToolUse?: (toolName: string, input: unknown, result: unknown) => void;
156
+ readonly onBudgetStop?: (info: BudgetStopInfo) => void;
157
+ readonly onTokenUsage?: (record: {
158
+ channel_key: string;
159
+ agent_id?: string;
160
+ input_tokens: number;
161
+ output_tokens: number;
162
+ cache_read_tokens?: number;
163
+ cost_usd?: number;
164
+ }) => void;
165
+ readonly onMetric?: (name: string, value: number, labels?: Record<string, string>) => void;
166
+ /** Which global lane, if any, this session's runs share. */
167
+ globalLaneFor?(sessionKey: string): string | undefined;
168
+ /** Everything about this turn the core cannot decide. Asked once, after the waits. */
169
+ turnPolicy(request: NativeTurnRequest | undefined): NativeTurnPolicy;
170
+ /** A request may be narrowed before anything reads it (a private surface, a role). */
171
+ projectRequest?(request: NativeTurnRequest): NativeTurnRequest;
172
+ /** What a tool call is allowed to touch. Rebuilt once the run id exists. */
173
+ executionContext(request: NativeTurnRequest | undefined): TToolContext | null;
174
+ /** Conservatively rebind tool provenance when another input joins this native turn. */
175
+ onSteeredInput?(context: TToolContext | null): TToolContext | null;
176
+ /** What the runtime may be called with, for this turn's grant. */
177
+ hostToolDefinitions(request: NativeTurnRequest | undefined): readonly HostToolDefinition[];
178
+ createNativeEffectObserver?(executionContext: TToolContext | null): NativeEffectObserver | undefined;
179
+ modelRun?: NativeModelRunPort;
180
+ /** Run one tool the model asked for. The one thing the core cannot do itself. */
181
+ callTool(name: string, input: unknown, executionContext: TToolContext | null): Promise<unknown>;
182
+ /** Text a consumer wants in front of a specific tool's result, or nothing. */
183
+ toolPrelude?(name: string, input: unknown, executionContext: TToolContext | null): Promise<string>;
184
+ /** What the consumer wants kept once the answer stands. Observation, never a gate. */
185
+ onRunFinished?(finished: {
186
+ request: NativeTurnRequest | undefined;
187
+ result: NativeTurnResult;
188
+ channelKey: string;
189
+ modelRunId: string | null;
190
+ prompt: string;
191
+ response: string;
192
+ }): void | Promise<void>;
193
+ }
194
+ /**
195
+ * The last user message as the model will read it.
196
+ *
197
+ * An uploaded image reaches a file-backed runtime as evidence with a local path.
198
+ * The agent chooses how to inspect it; the host does not prescribe a tool order.
199
+ */
200
+ export declare function formatLastUserMessage(history: Message[], options: {
201
+ mediaDir?: string;
202
+ }): string;
203
+ /**
204
+ * The entry a consumer holds: one session's runs, serialized on its lane.
205
+ */
206
+ export declare class NativeSessionRunner<TToolContext extends HostExecutionContext = HostExecutionContext> {
207
+ private readonly host;
208
+ stopped: boolean;
209
+ private readonly activeSteerBindings;
210
+ /**
211
+ * What a native child started by a run on this session needs. Keyed by session key,
212
+ * overwritten by each run on that session, and dropped once the run finished and no
213
+ * child of it is still registered.
214
+ */
215
+ private readonly subagentRunContexts;
216
+ private nextCallerTurnId;
217
+ private readonly callerChildOwners;
218
+ constructor(host: NativeSessionHost<TToolContext>);
219
+ /** Retire native context only. Durable input, results and knowledge remain owned by the host. */
220
+ resetSession(sessionKey: string): Promise<void>;
221
+ /** Use the current turn's authority. Steering cannot replace its policy or open a new turn. */
222
+ steer(content: string, target: NativeInputReceipt, sessionKey: string, beforeSend?: () => void): Promise<NativeInputReceipt>;
223
+ /** Run one turn from text. */
224
+ run(prompt: string, request?: NativeTurnRequest): Promise<NativeTurnResult>;
225
+ /**
226
+ * Run one turn from content blocks.
227
+ *
228
+ * Per-call session key wins over the instance default: overlapping runs on a shared
229
+ * session must never depend on mutated state to pick their lane.
230
+ */
231
+ runTurn(content: ContentBlock[], request?: NativeTurnRequest): Promise<NativeTurnResult>;
232
+ /**
233
+ * Close the harness. The runner that opened the process is the one that closes it;
234
+ * queued work is given a bounded moment to drain first.
235
+ */
236
+ stop(): Promise<void>;
237
+ /**
238
+ * Run the tools one model turn asked for.
239
+ *
240
+ * The guards, the abort, the metrics and the history shape are the same whatever a
241
+ * tool does; what it does is `callTool`.
242
+ */
243
+ private runToolCalls;
244
+ /**
245
+ * One dynamic-tool bridge. The same-signature loop guard is private to the bridge, so a parent and its children
246
+ * never share a counter. `recordExchange` is the ONLY way a bridge writes to a
247
+ * conversation: a child passes none and therefore cannot touch the parent's history.
248
+ */
249
+ private buildHostToolBridge;
250
+ /**
251
+ * Give one native child its OWN authority.
252
+ *
253
+ * A parent's bridge closes over authority issued for the PARENT, which the child
254
+ * cannot renew - inheriting it meant a long delegated run losing every tool mid-flight
255
+ * and still reporting "done". So the child gets: its own model run under the parent's,
256
+ * its own authority from the host issuer, its own execution context, and its own
257
+ * bridge counters. When no issuer is reachable it gets nothing and says so - the
258
+ * process refuses its calls rather than quietly borrowing.
259
+ */
260
+ createSubagentBridge(info: SubagentBridgeRequest): Promise<SubagentBridge | null>;
261
+ /** Both native dynamic tools and an attributed socket call use this child run. */
262
+ private createChildRun;
263
+ /** Resolve a harness caller only against a currently dispatched turn. */
264
+ withToolCaller<T>(caller: NativeToolCaller, execute: (context: HostExecutionContext) => Promise<T>): Promise<T>;
265
+ private settleCallerRuns;
266
+ /** Drop a run's subagent context once the run finished and no child still holds it. */
267
+ private releaseSubagentRunContext;
268
+ /** The run itself, with no queue around it. */
269
+ private runTurnInternal;
270
+ }
271
+ export declare function createNativeSessionRunner<TToolContext extends HostExecutionContext>(host: NativeSessionHost<TToolContext>): NativeSessionRunner<TToolContext>;
272
+ //# sourceMappingURL=native-turn.d.ts.map