@inflexa-ai/harness 0.45.1 → 0.46.2

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 (790) hide show
  1. package/README.md +6 -3
  2. package/dist/agents/conversation-agent.d.ts +9 -3
  3. package/dist/agents/conversation-agent.js +34 -33
  4. package/dist/agents/report-session-agent.d.ts +15 -15
  5. package/dist/agents/report-session-agent.js +23 -15
  6. package/dist/agents/sandbox/index.d.ts +1 -1
  7. package/dist/agents/sandbox/index.js +1 -1
  8. package/dist/agents/sandbox/shared.d.ts +12 -14
  9. package/dist/agents/sandbox/shared.js +18 -12
  10. package/dist/agents/sandbox/types.d.ts +4 -4
  11. package/dist/agents/sandbox/validate-skills.d.ts +2 -2
  12. package/dist/agents/sandbox/validate-skills.js +3 -1
  13. package/dist/agents/sandbox-catalog.d.ts +2 -2
  14. package/dist/agents/sandbox-catalog.js +3 -3
  15. package/dist/agents/system-prompt.d.ts +2 -2
  16. package/dist/app/chat-turn-workflow.d.ts +114 -0
  17. package/dist/app/chat-turn-workflow.js +306 -0
  18. package/dist/app/chat-turn.d.ts +85 -57
  19. package/dist/app/chat-turn.js +123 -100
  20. package/dist/app/data-profile-orientation.js +10 -8
  21. package/dist/app/data-profile-view.d.ts +4 -4
  22. package/dist/app/data-profile-view.js +9 -8
  23. package/dist/app/in-process-turn.d.ts +42 -0
  24. package/dist/app/in-process-turn.js +139 -0
  25. package/dist/app/message-assembly.d.ts +10 -4
  26. package/dist/app/message-assembly.js +13 -8
  27. package/dist/app/report-session-runtime.d.ts +4 -4
  28. package/dist/app/report-session-runtime.js +36 -21
  29. package/dist/app/spawn-report-session.d.ts +33 -28
  30. package/dist/app/spawn-report-session.js +25 -40
  31. package/dist/app/synthesize-run.d.ts +22 -16
  32. package/dist/app/synthesize-run.js +41 -35
  33. package/dist/app/work.d.ts +96 -0
  34. package/dist/app/work.js +147 -0
  35. package/dist/auth/local-auth-context.d.ts +1 -3
  36. package/dist/auth/local-auth-context.js +1 -3
  37. package/dist/auth/local-run-authorizer.d.ts +1 -1
  38. package/dist/auth/local-run-authorizer.js +5 -3
  39. package/dist/auth/types.d.ts +26 -26
  40. package/dist/billing/cached-resolver.d.ts +4 -4
  41. package/dist/billing/run-charge.d.ts +5 -8
  42. package/dist/billing/run-charge.js +2 -2
  43. package/dist/billing/usage-recorder.d.ts +9 -9
  44. package/dist/citations/aggregate.js +1 -1
  45. package/dist/citations/clients/arxiv.d.ts +2 -2
  46. package/dist/citations/clients/arxiv.js +12 -4
  47. package/dist/citations/clients/common.js +4 -2
  48. package/dist/citations/clients/crossref.d.ts +2 -2
  49. package/dist/citations/clients/crossref.js +37 -37
  50. package/dist/citations/clients/doi-registry.js +15 -16
  51. package/dist/citations/clients/pubmed.d.ts +2 -2
  52. package/dist/citations/clients/pubmed.js +20 -13
  53. package/dist/citations/clients/semantic-scholar.d.ts +2 -2
  54. package/dist/citations/clients/semantic-scholar.js +9 -9
  55. package/dist/citations/compare.js +2 -2
  56. package/dist/citations/match.d.ts +2 -2
  57. package/dist/citations/match.js +12 -7
  58. package/dist/citations/normalize.js +35 -26
  59. package/dist/citations/plan.js +6 -2
  60. package/dist/citations/resolve.d.ts +6 -6
  61. package/dist/citations/resolve.js +34 -25
  62. package/dist/citations/types.d.ts +77 -77
  63. package/dist/config/environment-stores.d.ts +6 -6
  64. package/dist/config/resource-limits.js +1 -3
  65. package/dist/contracts/analogy-report.d.ts +7 -7
  66. package/dist/contracts/analogy-report.js +2 -2
  67. package/dist/contracts/chat-events.d.ts +38 -24
  68. package/dist/contracts/chat-frame.d.ts +15 -5
  69. package/dist/contracts/chat-frame.js +64 -41
  70. package/dist/contracts/chat-parts.d.ts +130 -67
  71. package/dist/contracts/chat-parts.js +1 -0
  72. package/dist/contracts/content-url.js +16 -2
  73. package/dist/contracts/data-profile.d.ts +38 -38
  74. package/dist/contracts/index.d.ts +2 -2
  75. package/dist/contracts/index.js +1 -1
  76. package/dist/contracts/message.d.ts +6 -6
  77. package/dist/contracts/organ-system.d.ts +11 -11
  78. package/dist/contracts/part-registry.d.ts +5 -4
  79. package/dist/contracts/part-registry.js +5 -0
  80. package/dist/contracts/profile-vocabulary.d.ts +11 -10
  81. package/dist/contracts/profile-vocabulary.js +10 -3
  82. package/dist/contracts/report-blocks.d.ts +329 -329
  83. package/dist/contracts/report-reference.d.ts +105 -81
  84. package/dist/contracts/report-reference.js +30 -13
  85. package/dist/contracts/schemas/chat-events.d.ts +30 -16
  86. package/dist/contracts/schemas/chat-events.js +15 -6
  87. package/dist/contracts/schemas/chat-parts.d.ts +175 -102
  88. package/dist/contracts/schemas/chat-parts.js +33 -7
  89. package/dist/contracts/severity.d.ts +1 -1
  90. package/dist/contracts/structure-source.d.ts +3 -3
  91. package/dist/contracts/structure-source.js +6 -2
  92. package/dist/contracts/subagent-activity.d.ts +2 -2
  93. package/dist/contracts/subagent-activity.js +5 -3
  94. package/dist/contracts/usage.d.ts +2 -2
  95. package/dist/data/safety-panel-schema.d.ts +25 -25
  96. package/dist/data/safety-panel-schema.js +13 -4
  97. package/dist/execution/artifact-metadata.d.ts +23 -15
  98. package/dist/execution/artifact-metadata.js +33 -10
  99. package/dist/execution/artifact-record.d.ts +2 -2
  100. package/dist/execution/artifact-registration.d.ts +5 -5
  101. package/dist/execution/artifact-registry.d.ts +8 -8
  102. package/dist/execution/dbos-run-launcher.d.ts +24 -4
  103. package/dist/execution/dbos-run-launcher.js +58 -4
  104. package/dist/execution/dbos-workflow-purger.d.ts +5 -6
  105. package/dist/execution/dbos-workflow-purger.js +8 -7
  106. package/dist/execution/input-signature.d.ts +2 -2
  107. package/dist/execution/post-step-pipeline.d.ts +9 -9
  108. package/dist/execution/post-step-pipeline.js +1 -1
  109. package/dist/execution/post-step.js +2 -2
  110. package/dist/execution/reconcile-manifest.d.ts +4 -4
  111. package/dist/execution/reconcile-manifest.js +3 -2
  112. package/dist/execution/run-authorizer.d.ts +46 -37
  113. package/dist/execution/run-authorizer.js +8 -8
  114. package/dist/execution/run-canceler.d.ts +7 -7
  115. package/dist/execution/run-canceler.js +14 -7
  116. package/dist/execution/run-end-record.d.ts +2 -3
  117. package/dist/execution/run-event-parts.d.ts +0 -8
  118. package/dist/execution/run-event-parts.js +29 -24
  119. package/dist/execution/run-event-stream.d.ts +8 -8
  120. package/dist/execution/run-event-stream.js +3 -4
  121. package/dist/execution/run-launcher.d.ts +4 -4
  122. package/dist/execution/run-synthesis.d.ts +49 -48
  123. package/dist/execution/run-synthesis.js +96 -255
  124. package/dist/execution/staged-input.d.ts +2 -2
  125. package/dist/execution/step-summary.d.ts +6 -6
  126. package/dist/execution/step-summary.js +4 -8
  127. package/dist/execution/topo-sort.js +4 -3
  128. package/dist/execution/workflow-purger.d.ts +2 -2
  129. package/dist/index.d.ts +17 -20
  130. package/dist/index.js +25 -36
  131. package/dist/input-sanitization.js +9 -2
  132. package/dist/input-scan/clustering.d.ts +6 -6
  133. package/dist/input-scan/clustering.js +11 -5
  134. package/dist/input-scan/companions.js +3 -2
  135. package/dist/input-scan/detect-sets.d.ts +2 -2
  136. package/dist/input-scan/detect-sets.js +25 -21
  137. package/dist/input-scan/enrich.d.ts +6 -6
  138. package/dist/input-scan/enrich.js +29 -12
  139. package/dist/input-scan/formats.d.ts +2 -2
  140. package/dist/input-scan/formats.js +8 -2
  141. package/dist/input-scan/markers.d.ts +2 -2
  142. package/dist/input-scan/markers.js +14 -5
  143. package/dist/input-scan/menu.d.ts +10 -10
  144. package/dist/input-scan/menu.js +0 -0
  145. package/dist/input-scan/quarantine.d.ts +2 -2
  146. package/dist/input-scan/quarantine.js +23 -18
  147. package/dist/input-scan/readout-budget.d.ts +2 -2
  148. package/dist/input-scan/readout-budget.js +1 -1
  149. package/dist/input-scan/readout.d.ts +2 -2
  150. package/dist/input-scan/readout.js +47 -34
  151. package/dist/input-scan/scan.d.ts +2 -2
  152. package/dist/input-scan/scan.js +7 -5
  153. package/dist/input-scan/set-types.d.ts +28 -28
  154. package/dist/input-scan/shapes.d.ts +4 -4
  155. package/dist/input-scan/shapes.js +0 -0
  156. package/dist/input-scan/templates.d.ts +10 -10
  157. package/dist/input-scan/templates.js +30 -22
  158. package/dist/input-scan/tokens.d.ts +6 -4
  159. package/dist/input-scan/tokens.js +100 -38
  160. package/dist/input-scan/types.d.ts +22 -22
  161. package/dist/lib/async-utils.d.ts +3 -7
  162. package/dist/lib/async-utils.js +5 -9
  163. package/dist/lib/cache.js +1 -1
  164. package/dist/lib/chrome.d.ts +46 -6
  165. package/dist/lib/console-logger.js +2 -2
  166. package/dist/lib/db-result.d.ts +22 -6
  167. package/dist/lib/db-result.js +9 -13
  168. package/dist/lib/eyes.d.ts +4 -4
  169. package/dist/lib/eyes.js +1 -1
  170. package/dist/lib/fs-helpers.js +18 -6
  171. package/dist/lib/fs-result.d.ts +1 -0
  172. package/dist/lib/fs-result.js +5 -6
  173. package/dist/lib/hooks.d.ts +32 -7
  174. package/dist/lib/hooks.js +22 -3
  175. package/dist/lib/host-concurrency.js +3 -2
  176. package/dist/lib/logger.d.ts +2 -2
  177. package/dist/lib/logger.js +2 -1
  178. package/dist/lib/metrics.d.ts +1 -1
  179. package/dist/lib/null-proto.d.ts +6 -0
  180. package/dist/lib/null-proto.js +17 -0
  181. package/dist/lib/otel-spans.d.ts +1 -1
  182. package/dist/lib/otel-spans.js +9 -5
  183. package/dist/lib/otel.d.ts +4 -2
  184. package/dist/lib/otel.js +10 -2
  185. package/dist/lib/page-capture.d.ts +8 -8
  186. package/dist/lib/page-capture.js +9 -4
  187. package/dist/lib/parse-json.d.ts +5 -0
  188. package/dist/lib/parse-json.js +12 -0
  189. package/dist/lib/present.d.ts +12 -0
  190. package/dist/lib/present.js +39 -0
  191. package/dist/lib/rate-limit.d.ts +4 -4
  192. package/dist/lib/rate-limit.js +12 -13
  193. package/dist/lib/regulatory-corpus/fetch-fda-guidance.d.ts +4 -4
  194. package/dist/lib/regulatory-corpus/fetch-fda-guidance.js +4 -10
  195. package/dist/lib/regulatory-corpus/fetch-ich.d.ts +4 -4
  196. package/dist/lib/regulatory-corpus/fetch-ich.js +18 -14
  197. package/dist/lib/regulatory-corpus/normalize-whitespace.d.ts +6 -0
  198. package/dist/lib/regulatory-corpus/normalize-whitespace.js +41 -0
  199. package/dist/lib/regulatory-corpus.d.ts +10 -10
  200. package/dist/lib/regulatory-corpus.js +3 -1
  201. package/dist/lib/result.d.ts +10 -11
  202. package/dist/lib/result.js +15 -13
  203. package/dist/lib/storage.d.ts +2 -2
  204. package/dist/lib/test/async-iterable.d.ts +9 -0
  205. package/dist/lib/test/async-iterable.js +28 -0
  206. package/dist/lib/test/request-url.d.ts +5 -0
  207. package/dist/lib/test/request-url.js +7 -0
  208. package/dist/lib/test/result-assert.d.ts +12 -0
  209. package/dist/lib/test/result-assert.js +17 -0
  210. package/dist/lib/test/text-shapes.d.ts +24 -0
  211. package/dist/lib/test/text-shapes.js +63 -0
  212. package/dist/lib/text.d.ts +22 -0
  213. package/dist/lib/text.js +68 -0
  214. package/dist/lib/thrown.d.ts +18 -0
  215. package/dist/lib/thrown.js +30 -0
  216. package/dist/lib/unknown-array.d.ts +6 -0
  217. package/dist/lib/unknown-array.js +8 -0
  218. package/dist/lib/unknown-containers.d.ts +14 -0
  219. package/dist/lib/unknown-containers.js +17 -0
  220. package/dist/lib/unknown-text.d.ts +8 -0
  221. package/dist/lib/unknown-text.js +28 -0
  222. package/dist/lib/zod-issue-shape.d.ts +1 -1
  223. package/dist/lib/zod-issue-shape.js +31 -31
  224. package/dist/lib/zod-issues.d.ts +3 -3
  225. package/dist/lib/zod-issues.js +30 -17
  226. package/dist/literature/sources/arxiv.d.ts +6 -6
  227. package/dist/literature/sources/arxiv.js +92 -35
  228. package/dist/literature/sources/http.d.ts +2 -2
  229. package/dist/literature/sources/http.js +16 -15
  230. package/dist/literature/sources/pubmed.d.ts +16 -16
  231. package/dist/literature/sources/pubmed.js +96 -61
  232. package/dist/literature/sources/semantic-scholar.d.ts +8 -8
  233. package/dist/literature/sources/semantic-scholar.js +22 -13
  234. package/dist/loop/accounting.d.ts +63 -0
  235. package/dist/loop/accounting.js +141 -0
  236. package/dist/loop/call-policy.d.ts +73 -0
  237. package/dist/loop/call-policy.js +109 -0
  238. package/dist/loop/chat-stream.d.ts +62 -0
  239. package/dist/loop/chat-stream.js +237 -0
  240. package/dist/loop/compaction.d.ts +9 -9
  241. package/dist/loop/compaction.js +1 -1
  242. package/dist/loop/metrics.d.ts +12 -15
  243. package/dist/loop/metrics.js +14 -26
  244. package/dist/loop/run-loop.d.ts +233 -0
  245. package/dist/loop/run-loop.js +770 -0
  246. package/dist/loop/sub-agent.d.ts +61 -0
  247. package/dist/loop/sub-agent.js +160 -0
  248. package/dist/loop/tool-adapter.d.ts +98 -0
  249. package/dist/loop/tool-adapter.js +364 -0
  250. package/dist/loop/tool-detail.d.ts +1 -1
  251. package/dist/loop/tool-detail.js +6 -5
  252. package/dist/loop/tool-outcome.d.ts +1 -1
  253. package/dist/loop/tool-output.d.ts +4 -4
  254. package/dist/loop/tool-output.js +2 -2
  255. package/dist/loop/turn-credentials.d.ts +39 -0
  256. package/dist/loop/turn-credentials.js +90 -0
  257. package/dist/loop/types.d.ts +29 -38
  258. package/dist/loop/types.js +2 -7
  259. package/dist/memory/ai-sdk-message-storage.d.ts +5 -5
  260. package/dist/memory/ai-sdk-message-storage.js +13 -11
  261. package/dist/memory/card-builders.d.ts +14 -14
  262. package/dist/memory/card-builders.js +19 -15
  263. package/dist/memory/conversation-display-recorder.d.ts +22 -4
  264. package/dist/memory/conversation-display-recorder.js +43 -24
  265. package/dist/memory/conversation-display-replay.js +3 -2
  266. package/dist/memory/conversation-display-storage.d.ts +15 -7
  267. package/dist/memory/conversation-display-storage.js +141 -36
  268. package/dist/memory/conversation-view.d.ts +4 -4
  269. package/dist/memory/conversation-view.js +5 -4
  270. package/dist/memory/count-tokens.js +10 -8
  271. package/dist/memory/derive-thread-title.d.ts +0 -13
  272. package/dist/memory/derive-thread-title.js +2 -1
  273. package/dist/memory/message-backfill.d.ts +12 -5
  274. package/dist/memory/message-backfill.js +5 -3
  275. package/dist/memory/thread-history.d.ts +36 -21
  276. package/dist/memory/thread-history.js +78 -54
  277. package/dist/memory/thread-store.d.ts +26 -17
  278. package/dist/memory/thread-store.js +15 -9
  279. package/dist/memory/tool-call-integrity.d.ts +2 -2
  280. package/dist/memory/tool-call-integrity.js +4 -3
  281. package/dist/memory/working-memory.d.ts +16 -12
  282. package/dist/memory/working-memory.js +72 -61
  283. package/dist/prompts/briefing.d.ts +12 -12
  284. package/dist/prompts/briefing.js +1 -1
  285. package/dist/prompts/synthesis-agent.d.ts +1 -1
  286. package/dist/prompts/synthesis-agent.js +6 -14
  287. package/dist/provenance/collector.d.ts +6 -6
  288. package/dist/provenance/collector.js +15 -8
  289. package/dist/provenance/exec-frame.d.ts +2 -2
  290. package/dist/provenance/exec-frame.js +6 -1
  291. package/dist/provenance/seam.d.ts +1 -4
  292. package/dist/provenance/types.d.ts +6 -6
  293. package/dist/providers/ai-sdk.d.ts +113 -62
  294. package/dist/providers/ai-sdk.js +283 -518
  295. package/dist/providers/embedding.d.ts +2 -2
  296. package/dist/providers/embedding.js +1 -1
  297. package/dist/providers/errors.d.ts +22 -2
  298. package/dist/providers/errors.js +98 -50
  299. package/dist/providers/prompt-cache.d.ts +8 -8
  300. package/dist/providers/prompt-cache.js +13 -11
  301. package/dist/providers/reasoning.d.ts +2 -2
  302. package/dist/providers/reasoning.js +2 -2
  303. package/dist/providers/request-headers.js +12 -3
  304. package/dist/providers/types.d.ts +55 -94
  305. package/dist/reference-data/catalog.d.ts +2 -15
  306. package/dist/reference-data/catalog.js +25 -8
  307. package/dist/reference-data/receipt.d.ts +2 -2
  308. package/dist/report-model/assert-rules.js +1 -1
  309. package/dist/report-model/authoring-grammar.d.ts +211 -233
  310. package/dist/report-model/block-walk.d.ts +10 -10
  311. package/dist/report-model/block-walk.js +2 -0
  312. package/dist/report-model/draft-finish.d.ts +8 -8
  313. package/dist/report-model/draft-finish.js +1 -1
  314. package/dist/report-model/draft-hash.js +8 -7
  315. package/dist/report-model/draft-operations.d.ts +22 -10
  316. package/dist/report-model/draft-operations.js +48 -30
  317. package/dist/report-model/draft-read.d.ts +19 -7
  318. package/dist/report-model/draft-read.js +16 -6
  319. package/dist/report-model/draft.d.ts +844 -2
  320. package/dist/report-model/draft.js +3 -1
  321. package/dist/report-model/fixture-resolver.js +39 -16
  322. package/dist/report-model/pin-snapshot.d.ts +2 -2
  323. package/dist/report-model/pin-snapshot.js +15 -15
  324. package/dist/report-model/production-resolver.d.ts +18 -18
  325. package/dist/report-model/production-resolver.js +50 -42
  326. package/dist/report-model/reference-resolver.d.ts +26 -10
  327. package/dist/report-model/reference-resolver.js +68 -5
  328. package/dist/report-model/reference-stamp.js +30 -38
  329. package/dist/report-model/structural-validation.js +12 -4
  330. package/dist/report-model/validate.d.ts +7 -7
  331. package/dist/report-model/validate.js +6 -6
  332. package/dist/report-render/assets.d.ts +2 -2
  333. package/dist/report-render/assets.js +27 -3
  334. package/dist/report-render/chart-export.d.ts +10 -2
  335. package/dist/report-render/chart-export.js +37 -11
  336. package/dist/report-render/chart-presets.d.ts +8 -8
  337. package/dist/report-render/chart-presets.js +3 -3
  338. package/dist/report-render/chart-renderers.d.ts +23 -16
  339. package/dist/report-render/chart-renderers.js +74 -53
  340. package/dist/report-render/chart-toolbox.d.ts +2 -2
  341. package/dist/report-render/chart-toolbox.js +7 -6
  342. package/dist/report-render/chart.d.ts +15 -16
  343. package/dist/report-render/chart.js +369 -252
  344. package/dist/report-render/design.d.ts +36 -297
  345. package/dist/report-render/design.js +0 -12
  346. package/dist/report-render/figures/common.d.ts +12 -12
  347. package/dist/report-render/figures/common.js +42 -31
  348. package/dist/report-render/figures/dendrogram.d.ts +3 -3
  349. package/dist/report-render/figures/dendrogram.js +10 -10
  350. package/dist/report-render/figures/dense.js +15 -8
  351. package/dist/report-render/figures/dotplot.js +46 -33
  352. package/dist/report-render/figures/embedding.js +52 -43
  353. package/dist/report-render/figures/equal-units.d.ts +10 -10
  354. package/dist/report-render/figures/equal-units.js +27 -27
  355. package/dist/report-render/figures/forest.js +9 -7
  356. package/dist/report-render/figures/gsea.js +21 -11
  357. package/dist/report-render/figures/heatmap.js +13 -9
  358. package/dist/report-render/figures/index.d.ts +10 -10
  359. package/dist/report-render/figures/index.js +4 -2
  360. package/dist/report-render/figures/km.js +10 -9
  361. package/dist/report-render/figures/label-room.d.ts +12 -12
  362. package/dist/report-render/figures/label-room.js +7 -2
  363. package/dist/report-render/figures/locuszoom.d.ts +2 -2
  364. package/dist/report-render/figures/locuszoom.js +59 -31
  365. package/dist/report-render/figures/lollipop.js +3 -2
  366. package/dist/report-render/figures/ma.js +8 -4
  367. package/dist/report-render/figures/manhattan.d.ts +1 -2
  368. package/dist/report-render/figures/manhattan.js +52 -34
  369. package/dist/report-render/figures/oncoprint.js +4 -5
  370. package/dist/report-render/figures/pca.js +25 -11
  371. package/dist/report-render/figures/qq.js +20 -9
  372. package/dist/report-render/figures/roc.js +1 -1
  373. package/dist/report-render/figures/sankey.d.ts +2 -2
  374. package/dist/report-render/figures/sankey.js +11 -10
  375. package/dist/report-render/figures/upset.d.ts +6 -6
  376. package/dist/report-render/figures/upset.js +7 -4
  377. package/dist/report-render/figures/volcano.js +12 -10
  378. package/dist/report-render/hybrid-svg.d.ts +4 -4
  379. package/dist/report-render/hybrid-svg.js +7 -5
  380. package/dist/report-render/number-format.d.ts +4 -4
  381. package/dist/report-render/number-format.js +62 -27
  382. package/dist/report-render/page.js +2 -1
  383. package/dist/report-render/provenance-data.d.ts +2 -2
  384. package/dist/report-render/references.d.ts +4 -4
  385. package/dist/report-render/render.d.ts +2 -2
  386. package/dist/report-render/render.js +10 -11
  387. package/dist/report-render/script-json.js +1 -1
  388. package/dist/report-render/table-data.d.ts +6 -6
  389. package/dist/report-render/test/options.d.ts +49 -0
  390. package/dist/report-render/test/options.js +143 -0
  391. package/dist/report-render/test/page-function.d.ts +19 -0
  392. package/dist/report-render/test/page-function.js +33 -0
  393. package/dist/report-render/types.d.ts +10 -10
  394. package/dist/report-render/value-bridge.d.ts +4 -4
  395. package/dist/report-render/value-bridge.js +27 -14
  396. package/dist/report-render/views/chart-view.d.ts +2 -2
  397. package/dist/report-render/views/chart-view.js +2 -2
  398. package/dist/report-render/views/lineage.d.ts +6 -6
  399. package/dist/report-render/views/lineage.js +2 -0
  400. package/dist/report-render/views/page-view.d.ts +2 -2
  401. package/dist/report-render/views/page-view.js +1 -0
  402. package/dist/report-render/views/prose.js +25 -8
  403. package/dist/report-render/views/references-view.js +12 -1
  404. package/dist/report-render/views/values.js +1 -1
  405. package/dist/runtime/assemble.d.ts +53 -26
  406. package/dist/runtime/assemble.js +103 -56
  407. package/dist/runtime/boot.d.ts +8 -7
  408. package/dist/runtime/boot.js +1 -1
  409. package/dist/runtime/connection-budget.d.ts +6 -6
  410. package/dist/runtime/connection-budget.js +1 -1
  411. package/dist/runtime/dbos.d.ts +29 -19
  412. package/dist/runtime/dbos.js +35 -20
  413. package/dist/runtime/result-serialization.js +18 -5
  414. package/dist/runtime/shutdown.d.ts +2 -2
  415. package/dist/sandbox/client.d.ts +7 -3
  416. package/dist/sandbox/cpu-files.d.ts +2 -2
  417. package/dist/sandbox/cpu-files.js +21 -4
  418. package/dist/sandbox/create-sandbox.d.ts +7 -8
  419. package/dist/sandbox/create-sandbox.js +6 -12
  420. package/dist/sandbox/docker-client.d.ts +48 -3
  421. package/dist/sandbox/docker-client.js +10 -6
  422. package/dist/sandbox/estimate-data-profile-resources.js +2 -7
  423. package/dist/sandbox/exec-outcome.d.ts +2 -2
  424. package/dist/sandbox/exec-outcome.js +1 -1
  425. package/dist/sandbox/exec.d.ts +10 -6
  426. package/dist/sandbox/exec.js +27 -12
  427. package/dist/sandbox/execution-id.js +14 -6
  428. package/dist/sandbox/farm.d.ts +2 -2
  429. package/dist/sandbox/farm.js +22 -27
  430. package/dist/sandbox/identity.d.ts +7 -0
  431. package/dist/sandbox/identity.js +14 -3
  432. package/dist/sandbox/image-packages.js +15 -27
  433. package/dist/sandbox/k8s-client.d.ts +35 -8
  434. package/dist/sandbox/k8s-client.js +6 -5
  435. package/dist/sandbox/labels.js +1 -0
  436. package/dist/sandbox/liveness.js +3 -1
  437. package/dist/sandbox/mount-plan.d.ts +10 -10
  438. package/dist/sandbox/mount-plan.js +13 -14
  439. package/dist/sandbox/notification-sweep.d.ts +4 -4
  440. package/dist/sandbox/notification-sweep.js +4 -7
  441. package/dist/sandbox/package-identity.d.ts +6 -13
  442. package/dist/sandbox/package-identity.js +46 -28
  443. package/dist/sandbox/reaper.d.ts +10 -10
  444. package/dist/sandbox/reaper.js +4 -6
  445. package/dist/sandbox/sandbox-error.d.ts +2 -9
  446. package/dist/sandbox/sandbox-error.js +21 -8
  447. package/dist/sandbox/sandbox-step-translate.d.ts +8 -5
  448. package/dist/sandbox/sandbox-step-translate.js +22 -8
  449. package/dist/sandbox/step-sandbox.d.ts +47 -0
  450. package/dist/sandbox/step-sandbox.js +53 -0
  451. package/dist/sandbox/types.d.ts +18 -19
  452. package/dist/sandbox/types.js +1 -1
  453. package/dist/schemas/artifact-manifest.d.ts +4 -4
  454. package/dist/schemas/data-profile-schemas.d.ts +343 -298
  455. package/dist/schemas/file-metadata.js +2 -4
  456. package/dist/schemas/plan-schemas.d.ts +31 -31
  457. package/dist/schemas/run-synthesis.d.ts +95 -26
  458. package/dist/schemas/run-synthesis.js +3 -1
  459. package/dist/schemas/validate-plan.d.ts +4 -4
  460. package/dist/schemas/validate-plan.js +17 -5
  461. package/dist/schemas/workflow-state.d.ts +19 -19
  462. package/dist/schemas/workflow-state.js +2 -2
  463. package/dist/state/active-turns.d.ts +36 -0
  464. package/dist/state/active-turns.js +67 -0
  465. package/dist/state/analyses-metrics.d.ts +8 -8
  466. package/dist/state/analyses-metrics.js +4 -4
  467. package/dist/state/analyses.d.ts +0 -14
  468. package/dist/state/analyses.js +0 -32
  469. package/dist/state/artifacts.d.ts +32 -19
  470. package/dist/state/artifacts.js +28 -5
  471. package/dist/state/data-profile.d.ts +2 -2
  472. package/dist/state/db.d.ts +12 -2
  473. package/dist/state/db.js +5 -0
  474. package/dist/state/edit-intents.d.ts +4 -0
  475. package/dist/state/edit-intents.js +71 -0
  476. package/dist/state/index.d.ts +4 -4
  477. package/dist/state/index.js +2 -2
  478. package/dist/state/init.d.ts +2 -1
  479. package/dist/state/init.js +5 -2
  480. package/dist/state/migrations/20260927120000_baseline.js +3 -1
  481. package/dist/state/migrations/20261026120000_add_the_edit_intents.d.ts +7 -0
  482. package/dist/state/migrations/20261026120000_add_the_edit_intents.js +21 -0
  483. package/dist/state/migrations/20261027120000_record_the_applied_memory_edits.d.ts +7 -0
  484. package/dist/state/migrations/20261027120000_record_the_applied_memory_edits.js +16 -0
  485. package/dist/state/migrations/20261027120100_store_the_authoring_results.d.ts +8 -0
  486. package/dist/state/migrations/20261027120100_store_the_authoring_results.js +20 -0
  487. package/dist/state/migrations/20261027120200_key_the_groups_of_a_turn.d.ts +7 -0
  488. package/dist/state/migrations/20261027120200_key_the_groups_of_a_turn.js +12 -0
  489. package/dist/state/migrations/20261027120300_mark_the_active_turn_of_a_thread.d.ts +7 -0
  490. package/dist/state/migrations/20261027120300_mark_the_active_turn_of_a_thread.js +11 -0
  491. package/dist/state/migrations/20261028120000_record_the_paused_work.d.ts +7 -0
  492. package/dist/state/migrations/20261028120000_record_the_paused_work.js +25 -0
  493. package/dist/state/migrations/20261028120100_end_the_suspended_runs.d.ts +8 -0
  494. package/dist/state/migrations/20261028120100_end_the_suspended_runs.js +13 -0
  495. package/dist/state/migrations/20261029120000_reference_the_run_mandate.d.ts +7 -0
  496. package/dist/state/migrations/20261029120000_reference_the_run_mandate.js +23 -0
  497. package/dist/state/migrations/20261029120100_record_the_run_session_of_a_pause.d.ts +7 -0
  498. package/dist/state/migrations/20261029120100_record_the_run_session_of_a_pause.js +11 -0
  499. package/dist/state/migrations/index.js +18 -0
  500. package/dist/state/paused-work.d.ts +52 -0
  501. package/dist/state/paused-work.js +105 -0
  502. package/dist/state/plans.d.ts +27 -8
  503. package/dist/state/plans.js +14 -11
  504. package/dist/state/purge-analysis.d.ts +6 -6
  505. package/dist/state/purge-analysis.js +10 -2
  506. package/dist/state/report-session-state.d.ts +43 -18
  507. package/dist/state/report-session-state.js +43 -4
  508. package/dist/state/report-versions.d.ts +16 -11
  509. package/dist/state/report-versions.js +5 -3
  510. package/dist/state/runs.d.ts +30 -19
  511. package/dist/state/runs.js +43 -51
  512. package/dist/state/schema.d.ts +18 -21
  513. package/dist/state/schema.js +4 -5
  514. package/dist/state/snapshot-parse.d.ts +2 -2
  515. package/dist/state/snapshot-parse.js +14 -8
  516. package/dist/state/step-executions.d.ts +20 -8
  517. package/dist/state/step-executions.js +6 -4
  518. package/dist/state/tool-outputs.d.ts +2 -2
  519. package/dist/state/tool-outputs.js +2 -1
  520. package/dist/state/vector-store.d.ts +16 -16
  521. package/dist/state/vector-store.js +11 -7
  522. package/dist/tasks/data-profile-absorb.d.ts +3 -3
  523. package/dist/tasks/data-profile-absorb.js +21 -16
  524. package/dist/tasks/data-profile-activity.d.ts +5 -5
  525. package/dist/tasks/data-profile-activity.js +5 -5
  526. package/dist/tasks/data-profile-index.d.ts +4 -4
  527. package/dist/tasks/data-profile-index.js +32 -17
  528. package/dist/tasks/data-profile-resolve.d.ts +8 -8
  529. package/dist/tasks/data-profile-resolve.js +88 -62
  530. package/dist/tasks/data-profile.d.ts +40 -31
  531. package/dist/tasks/data-profile.js +138 -95
  532. package/dist/tasks/extract-values.d.ts +26 -79
  533. package/dist/tasks/extract-values.js +48 -108
  534. package/dist/tasks/refresh-regulatory-corpus.d.ts +4 -20
  535. package/dist/tasks/refresh-regulatory-corpus.js +12 -8
  536. package/dist/tasks/regulatory-corpus-boot-refresh.d.ts +2 -2
  537. package/dist/tasks/regulatory-corpus-boot-refresh.js +12 -10
  538. package/dist/testing.d.ts +62 -0
  539. package/dist/testing.js +101 -0
  540. package/dist/tools/ad-hoc-router.d.ts +9 -9
  541. package/dist/tools/ad-hoc-router.js +65 -52
  542. package/dist/tools/analysis-invocation.d.ts +7 -0
  543. package/dist/tools/analysis-invocation.js +29 -5
  544. package/dist/tools/approval/contract.d.ts +8 -52
  545. package/dist/tools/approval/contract.js +7 -36
  546. package/dist/tools/approval/gateway.d.ts +27 -28
  547. package/dist/tools/approval/gateway.js +33 -130
  548. package/dist/tools/approval/queries.d.ts +6 -11
  549. package/dist/tools/approval/queries.js +43 -29
  550. package/dist/tools/approval/uuidv7.js +2 -2
  551. package/dist/tools/bio/chembl.d.ts +3 -3
  552. package/dist/tools/bio/chembl.js +10 -0
  553. package/dist/tools/bio/comptox.d.ts +25 -8
  554. package/dist/tools/bio/comptox.js +4 -2
  555. package/dist/tools/bio/drug-gene-interactions.d.ts +27 -17
  556. package/dist/tools/bio/drug-gene-interactions.js +11 -8
  557. package/dist/tools/bio/gene-disease-evidence.d.ts +61 -15
  558. package/dist/tools/bio/gene-disease-evidence.js +10 -6
  559. package/dist/tools/bio/gene-preclinical-profile.d.ts +11 -11
  560. package/dist/tools/bio/keys.d.ts +2 -2
  561. package/dist/tools/bio/keys.js +3 -3
  562. package/dist/tools/bio/lookup-annotation.d.ts +5 -5
  563. package/dist/tools/bio/lookup-annotation.js +3 -0
  564. package/dist/tools/bio/opentargets.d.ts +1 -1
  565. package/dist/tools/bio/opentargets.js +6 -0
  566. package/dist/tools/bio/pubchem.d.ts +2 -2
  567. package/dist/tools/bio/pubchem.js +6 -0
  568. package/dist/tools/bio/pubmed.d.ts +26 -16
  569. package/dist/tools/bio/pubmed.js +9 -3
  570. package/dist/tools/bio/search-clinical-trials.d.ts +4 -4
  571. package/dist/tools/bio/search-clinical-trials.js +5 -1
  572. package/dist/tools/bio/search-faers.d.ts +2 -2
  573. package/dist/tools/bio/search-faers.js +1 -1
  574. package/dist/tools/bio/search-gene.d.ts +2 -2
  575. package/dist/tools/bio/search-gene.js +1 -0
  576. package/dist/tools/bio/search-geo-datasets.d.ts +4 -4
  577. package/dist/tools/bio/search-geo-datasets.js +5 -5
  578. package/dist/tools/bio/search-interactions.d.ts +1 -1
  579. package/dist/tools/bio/search-patents.d.ts +28 -22
  580. package/dist/tools/bio/search-patents.js +20 -17
  581. package/dist/tools/bio/search-protein.d.ts +2 -2
  582. package/dist/tools/bio/search-protein.js +1 -1
  583. package/dist/tools/bio/search-regulatory-approvals.d.ts +64 -18
  584. package/dist/tools/bio/search-regulatory-approvals.js +21 -16
  585. package/dist/tools/bio/target-safety.d.ts +8 -8
  586. package/dist/tools/bio/target-safety.js +11 -6
  587. package/dist/tools/capability-data.d.ts +9 -5
  588. package/dist/tools/capability-data.js +2 -1
  589. package/dist/tools/define-tool.d.ts +55 -46
  590. package/dist/tools/define-tool.js +39 -27
  591. package/dist/tools/display/normalize-echart-spec.d.ts +2 -2
  592. package/dist/tools/display/normalize-echart-spec.js +51 -27
  593. package/dist/tools/display/show-user.d.ts +2 -2
  594. package/dist/tools/display/show-user.js +1 -1
  595. package/dist/tools/execute-analysis.d.ts +19 -10
  596. package/dist/tools/execute-analysis.js +83 -62
  597. package/dist/tools/knowledge/check.d.ts +166 -44
  598. package/dist/tools/knowledge/check.js +5 -3
  599. package/dist/tools/knowledge/client.d.ts +31 -62
  600. package/dist/tools/knowledge/client.js +44 -27
  601. package/dist/tools/knowledge/environment.d.ts +6 -6
  602. package/dist/tools/knowledge/environment.js +18 -7
  603. package/dist/tools/knowledge/index.d.ts +2 -2
  604. package/dist/tools/knowledge/index.js +9 -9
  605. package/dist/tools/knowledge/local-slots.d.ts +4 -4
  606. package/dist/tools/knowledge/local-slots.js +11 -4
  607. package/dist/tools/knowledge/pin.d.ts +2 -2
  608. package/dist/tools/knowledge/recommend.d.ts +20 -45
  609. package/dist/tools/knowledge/recommend.js +27 -19
  610. package/dist/tools/knowledge/situation.d.ts +40 -40
  611. package/dist/tools/knowledge/situation.js +2 -9
  612. package/dist/tools/knowledge/skeleton.d.ts +4 -4
  613. package/dist/tools/knowledge/skeleton.js +10 -11
  614. package/dist/tools/knowledge/template.d.ts +20 -18
  615. package/dist/tools/knowledge/template.js +38 -32
  616. package/dist/tools/lib/alphafold-client.js +2 -1
  617. package/dist/tools/lib/amass-client.d.ts +28 -28
  618. package/dist/tools/lib/amass-client.js +20 -10
  619. package/dist/tools/lib/api-utils.d.ts +13 -3
  620. package/dist/tools/lib/api-utils.js +17 -3
  621. package/dist/tools/lib/bgee-client.d.ts +6 -6
  622. package/dist/tools/lib/bgee-client.js +16 -10
  623. package/dist/tools/lib/cbioportal-client.d.ts +4 -4
  624. package/dist/tools/lib/cbioportal-client.js +9 -8
  625. package/dist/tools/lib/chembl-client.d.ts +14 -14
  626. package/dist/tools/lib/chembl-client.js +11 -4
  627. package/dist/tools/lib/clinical-benchmarks-client.d.ts +4 -4
  628. package/dist/tools/lib/clinical-benchmarks-client.js +4 -7
  629. package/dist/tools/lib/clinical-trials-client.d.ts +18 -18
  630. package/dist/tools/lib/clinical-trials-client.js +10 -10
  631. package/dist/tools/lib/clinvar-client.d.ts +2 -2
  632. package/dist/tools/lib/clinvar-client.js +6 -6
  633. package/dist/tools/lib/ctx-ops.d.ts +23 -23
  634. package/dist/tools/lib/ctx-ops.js +13 -10
  635. package/dist/tools/lib/dgidb-client.d.ts +6 -6
  636. package/dist/tools/lib/dgidb-client.js +10 -12
  637. package/dist/tools/lib/disgenet-client.d.ts +4 -4
  638. package/dist/tools/lib/ema-client.d.ts +2 -2
  639. package/dist/tools/lib/ensembl-client.d.ts +4 -4
  640. package/dist/tools/lib/ensembl-client.js +5 -4
  641. package/dist/tools/lib/gwas-catalog-client.d.ts +4 -4
  642. package/dist/tools/lib/gwas-catalog-client.js +17 -17
  643. package/dist/tools/lib/html-text.d.ts +6 -0
  644. package/dist/tools/lib/html-text.js +9 -0
  645. package/dist/tools/lib/identifier-resolver.d.ts +4 -4
  646. package/dist/tools/lib/identifier-resolver.js +7 -3
  647. package/dist/tools/lib/impc-client.d.ts +8 -8
  648. package/dist/tools/lib/impc-client.js +46 -35
  649. package/dist/tools/lib/iuphar-client.d.ts +2 -2
  650. package/dist/tools/lib/iuphar-client.js +7 -16
  651. package/dist/tools/lib/monarch-client.d.ts +4 -4
  652. package/dist/tools/lib/openfda-client.d.ts +22 -22
  653. package/dist/tools/lib/openfda-client.js +23 -22
  654. package/dist/tools/lib/opentargets-client.d.ts +12 -12
  655. package/dist/tools/lib/pathway-client.d.ts +4 -4
  656. package/dist/tools/lib/pathway-client.js +15 -19
  657. package/dist/tools/lib/pharmgkb-client.d.ts +2 -2
  658. package/dist/tools/lib/pharmgkb-client.js +1 -1
  659. package/dist/tools/lib/protein-family-modality.d.ts +2 -2
  660. package/dist/tools/lib/protein-family-modality.js +0 -2
  661. package/dist/tools/lib/protein-family-normalize.js +7 -0
  662. package/dist/tools/lib/pubchem-client.d.ts +2 -2
  663. package/dist/tools/lib/pubchem-client.js +1 -0
  664. package/dist/tools/lib/pubchem-ops.d.ts +4 -4
  665. package/dist/tools/lib/pubchem-ops.js +8 -0
  666. package/dist/tools/lib/pubmed-client.d.ts +9 -9
  667. package/dist/tools/lib/pubmed-client.js +1 -1
  668. package/dist/tools/lib/string-client.d.ts +6 -6
  669. package/dist/tools/lib/uniprot-client.d.ts +8 -8
  670. package/dist/tools/lib/uniprot-client.js +5 -1
  671. package/dist/tools/memory/update-working-memory.d.ts +16 -13
  672. package/dist/tools/memory/update-working-memory.js +21 -3
  673. package/dist/tools/read-tool-output.js +8 -2
  674. package/dist/tools/registry.d.ts +2 -2
  675. package/dist/tools/report-authoring/authoring-tools.d.ts +54 -23
  676. package/dist/tools/report-authoring/authoring-tools.js +128 -62
  677. package/dist/tools/report-session/derive-table.d.ts +19 -59
  678. package/dist/tools/report-session/derive-table.js +120 -122
  679. package/dist/tools/report-session/examine-page.d.ts +6 -6
  680. package/dist/tools/report-session/examine-page.js +14 -12
  681. package/dist/tools/report-session/list-artifacts.d.ts +6 -6
  682. package/dist/tools/report-session/list-artifacts.js +5 -5
  683. package/dist/tools/report-session/page-faults.d.ts +6 -6
  684. package/dist/tools/report-session/page-faults.js +3 -1
  685. package/dist/tools/report-session/preview-report.d.ts +4 -3
  686. package/dist/tools/report-session/preview-report.js +26 -7
  687. package/dist/tools/report-session/record-version.d.ts +9 -4
  688. package/dist/tools/report-session/record-version.js +16 -9
  689. package/dist/tools/report-session/session-page-publisher.d.ts +6 -6
  690. package/dist/tools/research/generate-analogy-report.d.ts +14 -7
  691. package/dist/tools/research/generate-analogy-report.js +80 -76
  692. package/dist/tools/research/generate-plan.d.ts +16 -16
  693. package/dist/tools/research/generate-plan.js +410 -374
  694. package/dist/tools/research/guarded-address.js +3 -2
  695. package/dist/tools/research/inspect-data-profile.d.ts +27 -20
  696. package/dist/tools/research/inspect-data-profile.js +26 -25
  697. package/dist/tools/research/inspect-run.d.ts +54 -27
  698. package/dist/tools/research/inspect-run.js +50 -40
  699. package/dist/tools/research/literature-reviewer.d.ts +8 -7
  700. package/dist/tools/research/literature-reviewer.js +29 -28
  701. package/dist/tools/research/search-arxiv.d.ts +1 -1
  702. package/dist/tools/research/search-arxiv.js +1 -1
  703. package/dist/tools/research/search-github-repos.d.ts +10 -7
  704. package/dist/tools/research/search-github-repos.js +25 -22
  705. package/dist/tools/research/search-semantic-scholar.js +1 -1
  706. package/dist/tools/research/searxng-engine.d.ts +2 -2
  707. package/dist/tools/research/searxng-engine.js +6 -4
  708. package/dist/tools/research/web-fetch.d.ts +24 -21
  709. package/dist/tools/research/web-fetch.js +65 -74
  710. package/dist/tools/research/web-search.d.ts +26 -17
  711. package/dist/tools/research/web-search.js +26 -21
  712. package/dist/tools/sandbox/link-packages.d.ts +11 -7
  713. package/dist/tools/sandbox/link-packages.js +11 -8
  714. package/dist/tools/sandbox/list-available-packages.d.ts +17 -8
  715. package/dist/tools/sandbox/list-available-packages.js +31 -25
  716. package/dist/tools/sandbox/list-available-refs.d.ts +17 -14
  717. package/dist/tools/sandbox/list-available-refs.js +61 -36
  718. package/dist/tools/sandbox/report-blocker.d.ts +30 -37
  719. package/dist/tools/sandbox/report-blocker.js +23 -73
  720. package/dist/tools/sandbox/skills.d.ts +16 -12
  721. package/dist/tools/sandbox/skills.js +16 -12
  722. package/dist/tools/sandbox/submit-file-metadata.d.ts +12 -9
  723. package/dist/tools/sandbox/submit-file-metadata.js +18 -21
  724. package/dist/tools/start-report-session.d.ts +13 -5
  725. package/dist/tools/start-report-session.js +35 -8
  726. package/dist/tools/terminal-text.d.ts +5 -2
  727. package/dist/tools/terminal-text.js +35 -3
  728. package/dist/tools/workspace/decision-record.d.ts +4 -4
  729. package/dist/tools/workspace/decision-record.js +23 -13
  730. package/dist/tools/workspace/edit-file.d.ts +59 -20
  731. package/dist/tools/workspace/edit-file.js +81 -16
  732. package/dist/tools/workspace/execute-command.d.ts +15 -13
  733. package/dist/tools/workspace/execute-command.js +11 -9
  734. package/dist/tools/workspace/file-stat.d.ts +6 -3
  735. package/dist/tools/workspace/grep.d.ts +10 -7
  736. package/dist/tools/workspace/grep.js +9 -3
  737. package/dist/tools/workspace/list-files.d.ts +6 -3
  738. package/dist/tools/workspace/mutator.d.ts +28 -15
  739. package/dist/tools/workspace/mutator.js +107 -53
  740. package/dist/tools/workspace/read-file.d.ts +8 -5
  741. package/dist/tools/workspace/result-bounds.d.ts +5 -5
  742. package/dist/tools/workspace/result-bounds.js +4 -2
  743. package/dist/tools/workspace/run-exec.d.ts +2 -2
  744. package/dist/tools/workspace/run-exec.js +3 -3
  745. package/dist/tools/workspace/scan-inputs.d.ts +8 -5
  746. package/dist/tools/workspace/scan-inputs.js +17 -5
  747. package/dist/tools/workspace/show-file.d.ts +1 -1
  748. package/dist/tools/workspace/show-file.js +2 -1
  749. package/dist/tools/workspace/show-plan.d.ts +8 -5
  750. package/dist/tools/workspace/show-plan.js +9 -8
  751. package/dist/tools/workspace/workspace-search.d.ts +41 -13
  752. package/dist/tools/workspace/workspace-search.js +27 -14
  753. package/dist/tools/workspace/write-file.d.ts +9 -7
  754. package/dist/workflows/execute-analysis-scheduler.d.ts +9 -9
  755. package/dist/workflows/execute-analysis-scheduler.js +6 -3
  756. package/dist/workflows/execute-analysis.d.ts +46 -62
  757. package/dist/workflows/execute-analysis.js +137 -219
  758. package/dist/workflows/pause.d.ts +71 -0
  759. package/dist/workflows/pause.js +173 -0
  760. package/dist/workflows/sandbox-step.d.ts +38 -61
  761. package/dist/workflows/sandbox-step.js +99 -106
  762. package/dist/workflows/test/sql-writes.d.ts +21 -0
  763. package/dist/workflows/test/sql-writes.js +36 -0
  764. package/dist/workspace/filesystem.d.ts +6 -6
  765. package/dist/workspace/filesystem.js +10 -8
  766. package/dist/workspace/paths.d.ts +1 -1
  767. package/dist/workspace/paths.js +15 -4
  768. package/dist/workspace/search-config.d.ts +2 -2
  769. package/dist/workspace/search-config.js +1 -1
  770. package/package.json +21 -22
  771. package/dist/loop/call-guard.d.ts +0 -50
  772. package/dist/loop/call-guard.js +0 -90
  773. package/dist/loop/continue-agent.d.ts +0 -40
  774. package/dist/loop/continue-agent.js +0 -38
  775. package/dist/loop/genai-spans.d.ts +0 -47
  776. package/dist/loop/genai-spans.js +0 -134
  777. package/dist/loop/run-agent.d.ts +0 -245
  778. package/dist/loop/run-agent.js +0 -1124
  779. package/dist/loop/run-step.d.ts +0 -29
  780. package/dist/loop/run-step.js +0 -34
  781. package/dist/loop/run-to-terminal.d.ts +0 -66
  782. package/dist/loop/run-to-terminal.js +0 -93
  783. package/dist/loop/tool-mask.d.ts +0 -23
  784. package/dist/loop/tool-mask.js +0 -46
  785. package/dist/providers/streaming-chat.d.ts +0 -32
  786. package/dist/providers/streaming-chat.js +0 -91
  787. package/dist/tasks/derive-table-exec.d.ts +0 -54
  788. package/dist/tasks/derive-table-exec.js +0 -86
  789. package/dist/workflows/suspension.d.ts +0 -32
  790. package/dist/workflows/suspension.js +0 -38
@@ -43,7 +43,7 @@ import type { Logger } from "../lib/logger.js";
43
43
  * behind, and rows written under a workflow the purge already deleted, which trip
44
44
  * their foreign key.
45
45
  */
46
- export interface AnalysisPurgeOutcome {
46
+ export type AnalysisPurgeOutcome = {
47
47
  readonly threads: number;
48
48
  readonly messages: number;
49
49
  /**
@@ -54,14 +54,14 @@ export interface AnalysisPurgeOutcome {
54
54
  */
55
55
  readonly workflows: number;
56
56
  readonly vectorIndexDropped: boolean;
57
- }
58
- export interface AnalysisPurgeDeps {
57
+ };
58
+ export type AnalysisPurgeDeps = {
59
59
  readonly pool: Pool;
60
60
  /** The workflow-ledger seam. Cancellation and deletion by id, engine-agnostic. */
61
61
  readonly workflows: WorkflowPurger;
62
62
  readonly logger?: Logger;
63
- }
64
- export interface AnalysisPurge {
63
+ };
64
+ export type AnalysisPurge = {
65
65
  /**
66
66
  * Remove the analysis's entire persisted Postgres footprint. Absence is a
67
67
  * normal outcome: an unknown or already-purged analysis succeeds with zeroes.
@@ -69,5 +69,5 @@ export interface AnalysisPurge {
69
69
  * it did not achieve. The caller quiesces the analysis first (module note).
70
70
  */
71
71
  purgeAnalysis(analysisId: string): ResultAsync<AnalysisPurgeOutcome, DbError>;
72
- }
72
+ };
73
73
  export declare function createAnalysisPurge({ pool, workflows, logger: injected }: AnalysisPurgeDeps): AnalysisPurge;
@@ -56,7 +56,11 @@ import { isSqlIdentifier } from "./vector-store.js";
56
56
  * Empty is outside the shape too: it derives the bare table prefix, which is a
57
57
  * perfectly legal identifier and belongs to no analysis.
58
58
  */
59
- const PURGEABLE_ANALYSIS_ID = /^[a-z0-9_-]+$/;
59
+ function isPurgeableAnalysisIdShape(analysisId) {
60
+ if (analysisId.length === 0)
61
+ return false;
62
+ return Array.from(analysisId).every((char) => (char >= "a" && char <= "z") || (char >= "0" && char <= "9") || char === "_" || char === "-");
63
+ }
60
64
  /**
61
65
  * The analysis-keyed deletes that follow the thread/message pair, in the order
62
66
  * they run.
@@ -80,6 +84,10 @@ const ANALYSIS_KEYED_DELETES = [
80
84
  { op: "purgeAnalysis.askGrants", sql: "DELETE FROM cortex_ask_grants WHERE analysis_id = $1" },
81
85
  // By its own analysis id, not through the thread rows: a kept text of a run names no thread.
82
86
  { op: "purgeAnalysis.toolOutputs", sql: "DELETE FROM cortex_tool_outputs WHERE analysis_id = $1" },
87
+ { op: "purgeAnalysis.editIntents", sql: "DELETE FROM cortex_edit_intents WHERE analysis_id = $1" },
88
+ { op: "purgeAnalysis.appliedMemoryEdits", sql: "DELETE FROM cortex_applied_memory_edits WHERE analysis_id = $1" },
89
+ { op: "purgeAnalysis.authoringResults", sql: "DELETE FROM cortex_authoring_results WHERE analysis_id = $1" },
90
+ { op: "purgeAnalysis.pausedWork", sql: "DELETE FROM cortex_paused_work WHERE analysis_id = $1" },
83
91
  { op: "purgeAnalysis.plans", sql: "DELETE FROM cortex_plans WHERE analysis_id = $1" },
84
92
  { op: "purgeAnalysis.reportVersions", sql: "DELETE FROM cortex_report_versions WHERE analysis_id = $1" },
85
93
  { op: "purgeAnalysis.reportSessionState", sql: "DELETE FROM cortex_report_session_state WHERE analysis_id = $1" },
@@ -170,7 +178,7 @@ export function createAnalysisPurge({ pool, workflows, logger: injected }) {
170
178
  await pool.query(`DROP TABLE IF EXISTS "${indexName}"`);
171
179
  }).map(() => present));
172
180
  const purgeAnalysis = (analysisId) => {
173
- if (!PURGEABLE_ANALYSIS_ID.test(analysisId)) {
181
+ if (!isPurgeableAnalysisIdShape(analysisId)) {
174
182
  return refuse("purgeAnalysis.analysisId", `purge-analysis: refusing unpurgeable analysis id "${analysisId}"`);
175
183
  }
176
184
  const indexName = searchIndexName(analysisId);
@@ -31,20 +31,24 @@
31
31
  * lands only when the row still holds it. Thus two concurrent turns cannot both land,
32
32
  * and the loser reads the state again.
33
33
  *
34
+ * A persist that names an authoring call stores the result of the call in
35
+ * `cortex_authoring_results`, in the transaction of the document and under the lock
36
+ * of the row. A second persist of the same call finds that result and writes nothing.
37
+ *
34
38
  * A purge of the analysis removes the row through the analysis-id cascade.
35
39
  */
36
40
  import { type ResultAsync } from "neverthrow";
37
- import type { Pool } from "pg";
38
- import { type DbError } from "../lib/db-result.js";
41
+ import type { Querier } from "../state/db.js";
42
+ import { type Connectable, type DbError } from "../lib/db-result.js";
39
43
  import type { Logger } from "../lib/logger.js";
40
44
  import { type DraftDocument } from "../report-model/draft.js";
41
45
  import type { ReportSnapshot } from "../report-model/reference-resolver.js";
42
46
  import { type SchemaIssue } from "./snapshot-parse.js";
43
47
  /** One source of a derivation: the pinned path that the script read, and the hash of that path. */
44
- export interface DerivationSource {
48
+ export type DerivationSource = {
45
49
  readonly path: string;
46
50
  readonly hash: string;
47
- }
51
+ };
48
52
  /**
49
53
  * One derivation of a session.
50
54
  *
@@ -54,21 +58,25 @@ export interface DerivationSource {
54
58
  *
55
59
  * `outputPath` is the workspace-root-relative path of the derived file, and it is the key that the served
56
60
  * membership holds. A record is immutable, thus a new derivation takes a new output path.
61
+ *
62
+ * `toolCallId` names the call that made the record, thus a rerun of that call finds its own table. A stored
63
+ * record can lack it, and such a record matches no call.
57
64
  */
58
- export interface DerivationRecord {
65
+ export type DerivationRecord = {
59
66
  readonly outputPath: string;
60
67
  readonly outputHash: string;
61
68
  readonly sources: readonly DerivationSource[];
62
69
  readonly scriptHash: string;
63
70
  readonly script: string;
64
- }
71
+ readonly toolCallId?: string;
72
+ };
65
73
  /**
66
74
  * The outcome of an append. `appended` landed the record. `duplicate` means that a record already holds the
67
75
  * output path, thus the list stays as it is. `absent` means that no row holds the thread.
68
76
  */
69
77
  export type AppendDerivationOutcome = "appended" | "duplicate" | "absent";
70
78
  /** The state of one report session, as the store gives it back. */
71
- export interface ReportSessionState {
79
+ export type ReportSessionState = {
72
80
  readonly threadId: string;
73
81
  readonly analysisId: string;
74
82
  /** The in-progress draft document, or `null` before the first document lands. */
@@ -82,16 +90,16 @@ export interface ReportSessionState {
82
90
  /** The hash that the last eyes capture saw, or `null` before the first look. */
83
91
  readonly seenDocumentHash: string | null;
84
92
  readonly createdAt: Date;
85
- }
93
+ };
86
94
  /** The snapshot and the anchor of a row to create. */
87
- export interface WriteSnapshotInput {
95
+ export type WriteSnapshotInput = {
88
96
  readonly threadId: string;
89
97
  readonly analysisId: string;
90
98
  /** The pinned snapshot, stored as given. */
91
99
  readonly snapshot: ReportSnapshot;
92
- }
100
+ };
93
101
  /** The document to persist against an existing row, and the prior document that the load read. */
94
- export interface PersistDocumentInput {
102
+ export type PersistDocumentInput = {
95
103
  readonly threadId: string;
96
104
  /** The draft document, stored as given. */
97
105
  readonly document: DraftDocument;
@@ -101,13 +109,26 @@ export interface PersistDocumentInput {
101
109
  * landed first turns this persist into a conflict.
102
110
  */
103
111
  readonly expected: DraftDocument | null;
104
- }
112
+ /**
113
+ * The authoring call that lands the document, keyed by its durable step. Its result
114
+ * lands in the transaction of the document, under the lock of the row.
115
+ */
116
+ readonly call?: AuthoringCall;
117
+ };
118
+ /** One authoring call that a durable step runs, and the result that it gives when its document lands. */
119
+ export type AuthoringCall = {
120
+ readonly key: string;
121
+ /** The result, stored as given. */
122
+ readonly result: unknown;
123
+ };
105
124
  /**
106
125
  * The outcome of a persist. `persisted` landed the document. `conflict` means the row
107
126
  * no longer holds the expected prior document, thus a concurrent turn landed first and
108
127
  * this turn must read the state again. `absent` means no row holds the thread.
128
+ * `replayed` means that the row already holds a result for the call, thus an earlier
129
+ * run of the call landed, and the persist wrote nothing.
109
130
  */
110
- export type PersistOutcome = "persisted" | "conflict" | "absent";
131
+ export type PersistOutcome = "persisted" | "conflict" | "absent" | "replayed";
111
132
  /**
112
133
  * The outcome of a stamp. `stamped` wrote the hash on the row. `absent` means that no row holds the
113
134
  * thread, thus the stamp wrote nothing. A stamp reads nothing before the write.
@@ -130,7 +151,7 @@ export type SessionStateReadError = {
130
151
  readonly part: "document" | "snapshot" | "derivations";
131
152
  readonly issues: readonly SchemaIssue[];
132
153
  };
133
- export interface ReportSessionStateStore {
154
+ export type ReportSessionStateStore = {
134
155
  /**
135
156
  * The state of a thread, or `null` when no row holds it. A parse failure on a
136
157
  * stored column reads as a typed error, and an absent row reads as a normal
@@ -150,6 +171,10 @@ export interface ReportSessionStateStore {
150
171
  * concurrent turn landed first, and `absent` means no row holds the thread.
151
172
  */
152
173
  persistDocument(input: PersistDocumentInput): ResultAsync<PersistOutcome, DbError>;
174
+ /** The stored result of one authoring call of a thread, or `null` when that call landed no document. */
175
+ readCallResult(threadId: string, callKey: string): ResultAsync<{
176
+ readonly result: unknown;
177
+ } | null, DbError>;
153
178
  /**
154
179
  * Stamp the rendered-document hash on the row. The preview calls it when the page lands, thus the row
155
180
  * holds the hash of the draft that the page shows. `absent` means that no row holds the thread.
@@ -168,11 +193,11 @@ export interface ReportSessionStateStore {
168
193
  * that no row holds the thread.
169
194
  */
170
195
  appendDerivation(threadId: string, record: DerivationRecord): ResultAsync<AppendDerivationOutcome, DbError>;
171
- }
172
- export interface ReportSessionStateStoreDeps {
173
- readonly pool: Pool;
196
+ };
197
+ export type ReportSessionStateStoreDeps = {
198
+ readonly pool: Querier & Connectable;
174
199
  readonly logger?: Logger;
175
- }
200
+ };
176
201
  /**
177
202
  * Create a `ReportSessionStateStore` bound to a Postgres pool. The
178
203
  * `cortex_report_session_state` table is provisioned by the state-init DDL.
@@ -31,11 +31,15 @@
31
31
  * lands only when the row still holds it. Thus two concurrent turns cannot both land,
32
32
  * and the loser reads the state again.
33
33
  *
34
+ * A persist that names an authoring call stores the result of the call in
35
+ * `cortex_authoring_results`, in the transaction of the document and under the lock
36
+ * of the row. A second persist of the same call finds that result and writes nothing.
37
+ *
34
38
  * A purge of the analysis removes the row through the analysis-id cascade.
35
39
  */
36
- import { err, ok } from "neverthrow";
40
+ import { err, ok, okAsync } from "neverthrow";
37
41
  import { z } from "zod";
38
- import { tryMutation, tryQuery } from "../lib/db-result.js";
42
+ import { tryMutation, tryQuery, withTransaction } from "../lib/db-result.js";
39
43
  import { DraftDocumentSchema } from "../report-model/draft.js";
40
44
  import { parseSnapshot, reduceIssues } from "./snapshot-parse.js";
41
45
  const DerivationSourceSchema = z.object({ path: z.string(), hash: z.string() });
@@ -45,6 +49,7 @@ const DerivationRecordSchema = z.object({
45
49
  sources: z.array(DerivationSourceSchema),
46
50
  scriptHash: z.string(),
47
51
  script: z.string(),
52
+ toolCallId: z.string().optional(),
48
53
  });
49
54
  const DerivationListSchema = z.array(DerivationRecordSchema);
50
55
  const _assertReadError = true;
@@ -155,6 +160,40 @@ export function createReportSessionStateStore({ pool }) {
155
160
  });
156
161
  }
157
162
  function persistDocument(input) {
163
+ const { call } = input;
164
+ if (call === undefined)
165
+ return swapDocument(pool, input);
166
+ return withTransaction(pool, "report-session-state.persistDocument", (client) =>
167
+ // The row lock serializes each persist of the thread, thus a second run of one
168
+ // call waits for the first and then finds its result.
169
+ tryQuery("report-session-state.persistDocument.lock", () => client.query({
170
+ text: `SELECT (SELECT COUNT(*) FROM cortex_authoring_results WHERE thread_id = $1 AND call_key = $2)::int AS held, analysis_id
171
+ FROM cortex_report_session_state WHERE thread_id = $1 FOR UPDATE`,
172
+ values: [input.threadId, call.key],
173
+ })).andThen(({ rows }) => {
174
+ const row = rows[0];
175
+ if (row === undefined)
176
+ return okAsync("absent");
177
+ if (row.held > 0)
178
+ return okAsync("replayed");
179
+ return swapDocument(client, input).andThen((outcome) => outcome !== "persisted"
180
+ ? okAsync(outcome)
181
+ : tryMutation("report-session-state.persistDocument.result", () => client.query({
182
+ text: "INSERT INTO cortex_authoring_results (thread_id, call_key, analysis_id, result) VALUES ($1, $2, $3, $4::jsonb)",
183
+ values: [input.threadId, call.key, row.analysis_id, JSON.stringify(call.result)],
184
+ })).map(() => "persisted"));
185
+ }));
186
+ }
187
+ function readCallResult(threadId, callKey) {
188
+ return tryQuery("report-session-state.readCallResult", () => pool.query({
189
+ text: "SELECT result FROM cortex_authoring_results WHERE thread_id = $1 AND call_key = $2",
190
+ values: [threadId, callKey],
191
+ })).map(({ rows }) => {
192
+ const row = rows[0];
193
+ return row === undefined ? null : { result: row.result };
194
+ });
195
+ }
196
+ function swapDocument(querier, input) {
158
197
  return tryMutation("report-session-state.persistDocument", async () => {
159
198
  // The prior document rides as SQL NULL when absent, thus the compare-and-swap
160
199
  // matches a fresh row whose document column is null. A JSON `null` would be a
@@ -163,7 +202,7 @@ export function createReportSessionStateStore({ pool }) {
163
202
  // One statement tells a conflict from an absence. `existed` counts the row, and
164
203
  // `updated` counts the compare-and-swap. A row that exists but did not update
165
204
  // holds a different prior document, thus a concurrent turn landed first.
166
- const { rows } = await pool.query({
205
+ const { rows } = await querier.query({
167
206
  text: `WITH target AS (
168
207
  SELECT 1 FROM cortex_report_session_state WHERE thread_id = $1
169
208
  ), updated AS (
@@ -241,5 +280,5 @@ export function createReportSessionStateStore({ pool }) {
241
280
  return row.appended > 0 ? "appended" : "duplicate";
242
281
  });
243
282
  }
244
- return { readState, writeSnapshot, persistDocument, stampRendered, stampSeen, appendDerivation };
283
+ return { readState, writeSnapshot, persistDocument, readCallResult, stampRendered, stampSeen, appendDerivation };
245
284
  }
@@ -29,9 +29,9 @@ import { type DbError } from "../lib/db-result.js";
29
29
  import type { Logger } from "../lib/logger.js";
30
30
  import type { ReportSnapshot } from "../report-model/reference-resolver.js";
31
31
  import { type SchemaIssue } from "./snapshot-parse.js";
32
- export type { SchemaIssue };
32
+ export type { SchemaIssue } from "./snapshot-parse.js";
33
33
  /** The anchor and the payload of a version to record. */
34
- export interface RecordVersionInput {
34
+ export type RecordVersionInput = {
35
35
  /** The block document. It rides as `unknown`, and the record parses it. */
36
36
  readonly document: unknown;
37
37
  /** The pinned snapshot, stored as given. */
@@ -44,16 +44,21 @@ export interface RecordVersionInput {
44
44
  readonly parentSeq: number | null;
45
45
  /** The earlier version that this one reuses. The parent must belong to the same analysis. */
46
46
  readonly parentVersionId?: string;
47
- }
47
+ /**
48
+ * The id of the version when the record makes the row. A record that replaces the
49
+ * version of the thread keeps the stored id. Omitted, the record mints a random id.
50
+ */
51
+ readonly versionId?: string;
52
+ };
48
53
  /** The stable reference of a recorded version, and how the record landed. */
49
- export interface RecordedVersionRef {
54
+ export type RecordedVersionRef = {
50
55
  readonly versionId: string;
51
56
  /**
52
57
  * `created` minted the row. `replaced` wrote over the one version of the
53
58
  * thread, under the same version id.
54
59
  */
55
60
  readonly outcome: "created" | "replaced";
56
- }
61
+ };
57
62
  /**
58
63
  * A record the store refuses as data, before or in place of a row. Distinct from
59
64
  * `DbError`: the request describes a version that the store will not write.
@@ -97,7 +102,7 @@ export type VersionReadError = {
97
102
  readonly issues: readonly SchemaIssue[];
98
103
  };
99
104
  /** One recorded version, as the store gives it back. */
100
- export interface RecordedVersion {
105
+ export type RecordedVersion = {
101
106
  readonly versionId: string;
102
107
  readonly analysisId: string;
103
108
  readonly threadId: string;
@@ -108,8 +113,8 @@ export interface RecordedVersion {
108
113
  readonly document: ReportDocument;
109
114
  readonly snapshot: ReportSnapshot;
110
115
  readonly createdAt: Date;
111
- }
112
- export interface ReportVersionStore {
116
+ };
117
+ export type ReportVersionStore = {
113
118
  /**
114
119
  * Record a version. The record parses the document, refuses a malformed value
115
120
  * as data with no row, and refuses a parent from a different analysis. It reads
@@ -122,11 +127,11 @@ export interface ReportVersionStore {
122
127
  getVersion(versionId: string): ResultAsync<RecordedVersion | null, DbError | VersionReadError>;
123
128
  /** The one version of a thread, or `null` for a thread with no version. */
124
129
  getThreadVersion(threadId: string): ResultAsync<RecordedVersion | null, DbError | VersionReadError>;
125
- }
126
- export interface ReportVersionStoreDeps {
130
+ };
131
+ export type ReportVersionStoreDeps = {
127
132
  readonly pool: Pool;
128
133
  readonly logger?: Logger;
129
- }
134
+ };
130
135
  /**
131
136
  * Create a `ReportVersionStore` bound to a Postgres pool. The
132
137
  * `cortex_report_versions` table is provisioned by the state-init DDL.
@@ -50,8 +50,10 @@ const VERSION_COLUMNS = "version_id, analysis_id, thread_id, parent_thread_id, p
50
50
  * It writes neither `version_id` nor `created_at`: the version keeps its name, and
51
51
  * the row keeps the time of its first record.
52
52
  *
53
- * The returned id names the row that stands. It equals the minted id on the insert
54
- * arm alone, thus the caller reads which arm ran.
53
+ * The returned id names the row that stands. It equals the given id on the insert
54
+ * arm, and the stored id on the replace arm, thus the caller reads which arm ran. A
55
+ * second record with the id of the stored version reads as the record that made it,
56
+ * thus a rerun of one durable step does not read as a replacement.
55
57
  */
56
58
  const RECORD_SQL = `INSERT INTO cortex_report_versions
57
59
  (version_id, analysis_id, thread_id, parent_thread_id, parent_seq,
@@ -115,7 +117,7 @@ export function createReportVersionStore({ pool }) {
115
117
  return errAsync({ type: "malformed_snapshot", op: "report-versions.record", issues: parsedSnapshot.error });
116
118
  }
117
119
  const write = () => {
118
- const minted = randomUUID();
120
+ const minted = input.versionId ?? randomUUID();
119
121
  return tryMutation("report-versions.record.write", async () => {
120
122
  const { rows } = await pool.query({
121
123
  text: RECORD_SQL,
@@ -10,29 +10,40 @@
10
10
  * `err(constraint_violation)` via `tryMutation`.
11
11
  */
12
12
  import type { ResultAsync } from "neverthrow";
13
+ import type { QueryConfig } from "pg";
13
14
  import type { DbError } from "../lib/db-result.js";
14
15
  import type { Querier } from "./db.js";
15
- import type { CortexRunRow, SynthesisStatus } from "./schema.js";
16
- export interface InsertRunInput {
16
+ import { type CortexRunRow, type SynthesisStatus } from "./schema.js";
17
+ /**
18
+ * The row-reading surface of this module: one query over the text or config form, whose rows the mapRunRow
19
+ * parser types. A computed test fake satisfies this shape directly, where the row-generic of `Querier`
20
+ * cannot be implemented by a fake that computes its rows.
21
+ */
22
+ export type RunRowQuerier = {
23
+ query(queryTextOrConfig: string | QueryConfig, values?: unknown[]): Promise<{
24
+ rows: Record<string, unknown>[];
25
+ rowCount: number | null;
26
+ }>;
27
+ };
28
+ export type InsertRunInput = {
17
29
  runId: string;
18
30
  analysisId: string;
19
31
  threadId?: string | null;
20
32
  workflowName: string;
21
33
  planId?: string | null;
22
- mandateJti?: string | null;
23
- mandateExpiresAt?: string | null;
34
+ mandateId?: string | null;
24
35
  /** The start time as an ISO string. Without it, the row gets the clock of the host. */
25
36
  startedAt?: string;
26
- }
27
- export interface RunReservation {
37
+ };
38
+ export type RunReservation = {
28
39
  readonly row: CortexRunRow;
29
40
  readonly inserted: boolean;
30
- }
41
+ };
31
42
  /** Bounded run rows paired with the true count before limit/offset. */
32
- export interface RunPage {
43
+ export type RunPage = {
33
44
  readonly runs: CortexRunRow[];
34
45
  readonly total: number;
35
- }
46
+ };
36
47
  export declare class RunIdentityCollisionError extends Error {
37
48
  readonly runId: string;
38
49
  constructor(runId: string);
@@ -67,10 +78,10 @@ export declare function reserveRunById(pool: Querier, input: InsertRunInput): Re
67
78
  */
68
79
  export declare function queryActiveRun(pool: Querier, analysisId: string, planId: string | null): ResultAsync<CortexRunRow | null, DbError>;
69
80
  /** The optional text filter of the run reads. */
70
- export interface RunTextFilter {
81
+ export type RunTextFilter = {
71
82
  /** A part of the run id or of the plan title, with no regard to case. Each character matches only itself. */
72
83
  q?: string;
73
- }
84
+ };
74
85
  /**
75
86
  * Every NON-TERMINAL run of an analysis, newest-first and deliberately unbounded.
76
87
  *
@@ -118,7 +129,7 @@ export declare function reconcileOrphanedRuns(pool: Querier, opts?: {
118
129
  * of a run wins: a row that already holds a terminal status keeps its status, its `completed_at`, and its error.
119
130
  * The error text loses each NUL character, because Postgres rejects a NUL in text and the write must not fail for its own value.
120
131
  */
121
- export declare function updateRunStatus(pool: Querier, runId: string, status: "running" | "completed" | "partial" | "failed" | "canceled" | "suspended_insufficient_funds", error?: string | null): ResultAsync<boolean, DbError>;
132
+ export declare function updateRunStatus(pool: Querier, runId: string, status: "running" | "completed" | "partial" | "failed" | "canceled", error?: string | null): ResultAsync<boolean, DbError>;
122
133
  /**
123
134
  * Conditionally transition an ACTIVE run to `canceled`, stamping `completed_at`
124
135
  * and recording `reason` in `error` (the same column `collectAndComplete`
@@ -129,7 +140,7 @@ export declare function updateRunStatus(pool: Querier, runId: string, status: "r
129
140
  */
130
141
  export declare function markRunCanceledIfActive(pool: Querier, runId: string, reason: string): ResultAsync<boolean, DbError>;
131
142
  export declare function promoteFailedToPartial(pool: Querier, runId: string): ResultAsync<boolean, DbError>;
132
- export declare function queryRun(pool: Querier, runId: string): ResultAsync<CortexRunRow | null, DbError>;
143
+ export declare function queryRun(pool: RunRowQuerier, runId: string): ResultAsync<CortexRunRow | null, DbError>;
133
144
  /**
134
145
  * One window of the runs of an analysis, newest start first. With `q`, the window holds only the runs that the text
135
146
  * filter selects: the filter applies before `limit` and `offset`, and it does not change the order.
@@ -175,7 +186,7 @@ export declare function queryNonTerminalRunsByAnalysis(pool: Querier, analysisId
175
186
  * {@link queryRunsByAnalysis}, whose chronological order is an embedder/UI
176
187
  * contract.
177
188
  */
178
- export declare function queryRunsForInspection(pool: Querier, analysisId: string, { limit, offset }?: {
189
+ export declare function queryRunsForInspection(pool: RunRowQuerier, analysisId: string, { limit, offset }?: {
179
190
  limit?: number;
180
191
  offset?: number;
181
192
  }): ResultAsync<RunPage, DbError>;
@@ -185,12 +196,12 @@ export declare function queryRunsByThread(pool: Querier, analysisId: string, thr
185
196
  offset?: number;
186
197
  } & RunTextFilter): ResultAsync<CortexRunRow[], DbError>;
187
198
  /**
188
- * Persist the run mandate jti + expiry for a run. oss-core-managed-ok: run-mandate ledger (nullable; OSS leaves null)
189
- * Called by `authorizeForRun` after a successful mint so the cancel
190
- * handler can revoke the mandate by `runId → jti` lookup. oss-core-managed-ok: run-mandate ledger (nullable; OSS leaves null)
191
- * The JWT itself is NOT persisted — it rides in DBOS workflow input.
199
+ * Persist the run mandate reference for a run. oss-core-managed-ok: run-mandate ledger (nullable; OSS leaves null)
200
+ * Called by the host authorizer after it authorizes the run, so the cancel
201
+ * handler can revoke the mandate by `runId → mandate id` lookup. oss-core-managed-ok: run-mandate ledger (nullable; OSS leaves null)
202
+ * The reference has no expiry here: the run does not depend on a clock.
192
203
  */
193
- export declare function setRunMandate(pool: Querier, runId: string, jti: string, expiresAt: string): ResultAsync<void, DbError>;
204
+ export declare function setRunMandate(pool: Querier, runId: string, mandateId: string): ResultAsync<void, DbError>;
194
205
  /**
195
206
  * Record the run-level synthesis outcome on the run ledger. `synthesisReason`
196
207
  * carries operator-facing detail for a skipped/failed outcome; it stays null