@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
@@ -0,0 +1,71 @@
1
+ /**
2
+ * The pause of durable work (work-pause spec).
3
+ *
4
+ * A failure that a person or time can repair does not fail the work. The workflow that meets it waits in its own
5
+ * body with `DBOS.recv`, on the topic of its pause, and the work goes on when the wait ends. The workflow stays
6
+ * active, thus a recovery after a crash replays it to the same wait: the failed call, the row, and the part of the
7
+ * pause come back from the checkpoints. A `recv` that completed replays its message, thus a resume never runs
8
+ * twice.
9
+ *
10
+ * A wait in `retrying` ends at its deadline, and the work sends the request again. A wait in `paused` ends only
11
+ * with the message of a resume, or with a stop. The server never sends that message by itself.
12
+ */
13
+ import type { RunSession } from "../auth/types.js";
14
+ import type { PauseCause, WorkKind, PausePart } from "../contracts/chat-parts.js";
15
+ import type { RunAuthorizer } from "../execution/run-authorizer.js";
16
+ import type { Logger } from "../lib/logger.js";
17
+ import type { Querier } from "../state/db.js";
18
+ /** The delays of the timer of an outage: 1, 5, 15, and 30 minutes. After the last one, the work waits in `paused`. */
19
+ export declare const DEFAULT_PAUSE_RETRY_DELAYS_MS: readonly number[];
20
+ /** The message that ends a wait. */
21
+ export declare const RESUME_MESSAGE: {
22
+ readonly kind: "resume";
23
+ };
24
+ /** The message that moves a wait in `retrying` to `paused`: the work waits for a resume, and the timer stops. */
25
+ export declare const HOLD_MESSAGE: {
26
+ readonly kind: "hold";
27
+ };
28
+ /** The topic of the resume message of one pause. Each pause has its own topic, thus a late message never ends a later pause. */
29
+ export declare function pauseTopic(pauseId: string): string;
30
+ /** The cause of a pause in a failure, or `undefined` for a failure that no person or time can repair. */
31
+ export declare function pauseCauseOf(failure: unknown): PauseCause | undefined;
32
+ /** How a wait ended: the deadline of `retrying`, the message of a resume, or a stop of the work. */
33
+ export type PauseEnd = "retry" | "resume" | "abort";
34
+ /** The work that a pause belongs to, and where the part of the pause goes. */
35
+ export type PauseScope = {
36
+ readonly pool: Querier;
37
+ /** The turn id, the run id, or the id of the profile workflow. A sub-agent names its turn, and a step its run. */
38
+ readonly workId: string;
39
+ readonly workKind: WorkKind;
40
+ readonly analysisId: string;
41
+ readonly threadId?: string;
42
+ /** Writes the part of the pause to the stream of the work. */
43
+ readonly emit: (part: PausePart) => Promise<void>;
44
+ /** The delays of the timer of an outage. Absent: {@link DEFAULT_PAUSE_RETRY_DELAYS_MS}. */
45
+ readonly retryDelaysMs?: readonly number[];
46
+ /**
47
+ * The run credential of a run or a profile. A wait for a person suspends it, and the row keeps the run session
48
+ * for the renewal at the resume. Absent for a turn, whose credential comes with the person who resumes it.
49
+ */
50
+ readonly run?: {
51
+ readonly session: RunSession;
52
+ readonly authorizer: RunAuthorizer;
53
+ };
54
+ readonly logger?: Logger;
55
+ };
56
+ export type WorkPause = {
57
+ /**
58
+ * Wait out a failure. `attempt` is the count of timer retries of this pause so far. `undefined`: the failure has
59
+ * no cause, or the code runs where no wait is possible, outside a workflow or inside a step.
60
+ */
61
+ readonly afterFailure: (failure: unknown, attempt: number, signal?: AbortSignal) => Promise<PauseEnd | undefined>;
62
+ /** Wait out a cause, for example a gate refusal with the suspend flag. `undefined` where no wait is possible. */
63
+ readonly forCause: (cause: PauseCause, attempt: number, signal?: AbortSignal) => Promise<PauseEnd | undefined>;
64
+ };
65
+ /** The pause of the work of one workflow body. */
66
+ export declare function workPause(scope: PauseScope): WorkPause;
67
+ /**
68
+ * Wait out a gate refusal with the suspend flag, in the body of a workflow. The body calls the gate again after the
69
+ * wait. A gate inside a workflow body can always wait, thus no wait is a defect of the call site.
70
+ */
71
+ export declare function pauseAtGate(pause: WorkPause, reason: string, signal?: AbortSignal): Promise<PauseEnd>;
@@ -0,0 +1,173 @@
1
+ /**
2
+ * The pause of durable work (work-pause spec).
3
+ *
4
+ * A failure that a person or time can repair does not fail the work. The workflow that meets it waits in its own
5
+ * body with `DBOS.recv`, on the topic of its pause, and the work goes on when the wait ends. The workflow stays
6
+ * active, thus a recovery after a crash replays it to the same wait: the failed call, the row, and the part of the
7
+ * pause come back from the checkpoints. A `recv` that completed replays its message, thus a resume never runs
8
+ * twice.
9
+ *
10
+ * A wait in `retrying` ends at its deadline, and the work sends the request again. A wait in `paused` ends only
11
+ * with the message of a resume, or with a stop. The server never sends that message by itself.
12
+ */
13
+ import { DBOS } from "@dbos-inc/dbos-sdk";
14
+ import { z } from "zod";
15
+ import { createNoopLogger } from "../lib/console-logger.js";
16
+ import { deliverNotice } from "../lib/hooks.js";
17
+ import { unwrapOrThrow } from "../lib/result.js";
18
+ import { isTurnCredentialMissing } from "../loop/turn-credentials.js";
19
+ import { modelFailureOf } from "../providers/errors.js";
20
+ import { clearPause, recordPause } from "../state/paused-work.js";
21
+ /** The delays of the timer of an outage: 1, 5, 15, and 30 minutes. After the last one, the work waits in `paused`. */
22
+ export const DEFAULT_PAUSE_RETRY_DELAYS_MS = [60_000, 300_000, 900_000, 1_800_000];
23
+ /**
24
+ * One wait of the state `paused`, in seconds. The wait loops on it. A stop in the process of the turn leaves its
25
+ * `recv` behind, and that `recv` polls no longer than this.
26
+ */
27
+ const PAUSED_WAIT_SECONDS = 60 * 60;
28
+ /** The message that ends a wait. */
29
+ export const RESUME_MESSAGE = { kind: "resume" };
30
+ /** The message that moves a wait in `retrying` to `paused`: the work waits for a resume, and the timer stops. */
31
+ export const HOLD_MESSAGE = { kind: "hold" };
32
+ const ResumeMessageSchema = z.object({ kind: z.literal("resume") });
33
+ const HoldMessageSchema = z.object({ kind: z.literal("hold") });
34
+ /** The topic of the resume message of one pause. Each pause has its own topic, thus a late message never ends a later pause. */
35
+ export function pauseTopic(pauseId) {
36
+ return `pause:${pauseId}`;
37
+ }
38
+ /** The cause of a pause in a failure, or `undefined` for a failure that no person or time can repair. */
39
+ export function pauseCauseOf(failure) {
40
+ if (isTurnCredentialMissing(failure))
41
+ return { kind: "credential" };
42
+ const model = modelFailureOf(failure);
43
+ switch (model.kind) {
44
+ case "billing":
45
+ return { kind: "host", reason: model.reason };
46
+ case "credential":
47
+ return { kind: "credential" };
48
+ case "outage":
49
+ return { kind: "outage" };
50
+ case "other":
51
+ return undefined;
52
+ }
53
+ }
54
+ const STOPPED = Symbol("stopped");
55
+ /** Settles when the signal aborts, and never when there is no signal. */
56
+ function stopOf(signal) {
57
+ return new Promise((resolve) => {
58
+ if (signal === undefined)
59
+ return;
60
+ if (signal.aborted)
61
+ resolve(STOPPED);
62
+ else
63
+ signal.addEventListener("abort", () => resolve(STOPPED), { once: true });
64
+ });
65
+ }
66
+ async function waitForMessage(topic, delayMs, signal) {
67
+ const stopped = stopOf(signal);
68
+ if (delayMs !== undefined) {
69
+ // DBOS records the deadline of the timeout at the first call, thus a recovery waits until the same time.
70
+ const message = await Promise.race([DBOS.recv(topic, Math.ceil(delayMs / 1000)), stopped]);
71
+ if (message === STOPPED)
72
+ return "abort";
73
+ if (HoldMessageSchema.safeParse(message).success)
74
+ return "hold";
75
+ return ResumeMessageSchema.safeParse(message).success ? "resume" : "retry";
76
+ }
77
+ for (;;) {
78
+ const message = await Promise.race([DBOS.recv(topic, PAUSED_WAIT_SECONDS), stopped]);
79
+ if (message === STOPPED)
80
+ return "abort";
81
+ if (ResumeMessageSchema.safeParse(message).success)
82
+ return "resume";
83
+ }
84
+ }
85
+ /** The pause of the work of one workflow body. */
86
+ export function workPause(scope) {
87
+ const log = (scope.logger ?? createNoopLogger()).named("pause");
88
+ const delays = scope.retryDelaysMs ?? DEFAULT_PAUSE_RETRY_DELAYS_MS;
89
+ const forCause = async (cause, attempt, signal) => {
90
+ const workflowId = DBOS.workflowID;
91
+ if (!DBOS.isInWorkflow() || DBOS.isInStep() || workflowId === undefined)
92
+ return undefined;
93
+ if (signal?.aborted === true)
94
+ return "abort";
95
+ const delayMs = cause.kind === "outage" ? delays[attempt] : undefined;
96
+ const state = delayMs === undefined ? "paused" : "retrying";
97
+ const pauseId = await DBOS.randomUUID();
98
+ const pausedAt = await DBOS.now();
99
+ const retryAt = delayMs === undefined ? undefined : new Date(pausedAt + delayMs).toISOString();
100
+ const topic = pauseTopic(pauseId);
101
+ const work = { workId: scope.workId, workKind: scope.workKind };
102
+ await DBOS.runStep(async () => unwrapOrThrow(await recordPause(scope.pool, {
103
+ workflowId,
104
+ ...work,
105
+ analysisId: scope.analysisId,
106
+ threadId: scope.threadId,
107
+ state,
108
+ cause,
109
+ attempt,
110
+ retryAt,
111
+ topic,
112
+ pausedAt: new Date(pausedAt).toISOString(),
113
+ runSession: scope.run?.session,
114
+ })), { name: "pause.record" });
115
+ // Only a person ends a wait in `paused`, thus the credential stops until the renewal of the resume.
116
+ const suspendCredential = async (stepName) => {
117
+ const run = scope.run;
118
+ if (run === undefined)
119
+ return;
120
+ await DBOS.runStep(() => deliverNotice(log.with({ workflowId }), "RunAuthorizer.suspend", run.authorizer.suspend(run.session, `paused:${cause.kind}`)), { name: stepName });
121
+ };
122
+ if (state === "paused")
123
+ await suspendCredential("pause.suspend");
124
+ await scope.emit({ type: "data-pause", id: workflowId, ...work, state, cause, attempt, retryAt });
125
+ log.warn("work paused", { workflowId, ...work, state, cause: cause.kind, attempt });
126
+ const waited = await waitForMessage(topic, delayMs, signal);
127
+ let end;
128
+ if (waited === "hold") {
129
+ // A person held the work: the timer stops, and the work waits for a resume.
130
+ await DBOS.runStep(async () => unwrapOrThrow(await recordPause(scope.pool, {
131
+ workflowId,
132
+ ...work,
133
+ analysisId: scope.analysisId,
134
+ threadId: scope.threadId,
135
+ state: "paused",
136
+ cause,
137
+ attempt,
138
+ topic,
139
+ pausedAt: new Date(pausedAt).toISOString(),
140
+ runSession: scope.run?.session,
141
+ })), { name: "pause.hold" });
142
+ await suspendCredential("pause.hold.suspend");
143
+ await scope.emit({ type: "data-pause", id: workflowId, ...work, state: "paused", cause, attempt });
144
+ log.info("work held", { workflowId, ...work, attempt });
145
+ const held = await waitForMessage(topic, undefined, signal);
146
+ end = held === "hold" ? "resume" : held;
147
+ }
148
+ else {
149
+ end = waited;
150
+ }
151
+ await DBOS.runStep(async () => unwrapOrThrow(await clearPause(scope.pool, workflowId)), { name: "pause.clear" });
152
+ await scope.emit({ type: "data-pause", id: workflowId, ...work, state: "running" });
153
+ log.info("pause ended", { workflowId, ...work, end });
154
+ return end;
155
+ };
156
+ return {
157
+ afterFailure: async (failure, attempt, signal) => {
158
+ const cause = pauseCauseOf(failure);
159
+ return cause === undefined ? undefined : forCause(cause, attempt, signal);
160
+ },
161
+ forCause,
162
+ };
163
+ }
164
+ /**
165
+ * Wait out a gate refusal with the suspend flag, in the body of a workflow. The body calls the gate again after the
166
+ * wait. A gate inside a workflow body can always wait, thus no wait is a defect of the call site.
167
+ */
168
+ export async function pauseAtGate(pause, reason, signal) {
169
+ const end = await pause.forCause({ kind: "host", reason }, 0, signal);
170
+ if (end === undefined)
171
+ throw new Error("A gate refusal with the suspend flag cannot wait outside the body of a workflow.");
172
+ return end;
173
+ }
@@ -7,10 +7,10 @@
7
7
  *
8
8
  * 1. `mark-running` — update `cortex_step_executions` to running.
9
9
  * 2. `createSandbox` — provision the sandbox; persist its handle.
10
- * 3. `runAgent` — the harness agent loop. Every LLM and tool
11
- * call inside is its own durableStep.
12
- * 4. `generateFileMetadata`— the file-metadata continuation of the step agent.
13
- * 5. `generateStepSummary` — the summary continuation of the step agent,
10
+ * 3. `runLoop` — the harness agent loop. Every model call and
11
+ * tool call inside is its own durable step.
12
+ * 4. `generateFileMetadata`— the file-metadata follow-up request of the step agent.
13
+ * 5. `generateStepSummary` — the summary follow-up request of the step agent,
14
14
  * producing `output/summary.md`.
15
15
  * 6. `reconcile + register`— write artifact manifest entries to cortex_artifacts.
16
16
  * 7. `syncArtifacts` — register provenance + upload missing file_ids
@@ -20,22 +20,22 @@
20
20
  * 10. `mark-terminal` — write the final status, emit `data-step-activity`
21
21
  * onto the parent's DBOS stream.
22
22
  *
23
- * The parent owns sibling lifecycle: the halt cascade of a suspension lives
24
- * on the parent (`executeAnalysis`). This child owns its own teardown and its
25
- * own suspension (workflow-suspension spec): a `suspend` error of the agent
26
- * loop, or a refusal with the suspend flag of the label gate or the register
27
- * gate. The child records the reason on its row, sends the typed suspension on
28
- * `CHILD_SUSPENDED_TOPIC`, and self-cancels to CANCELLED (resumable, not ERROR).
23
+ * The parent owns sibling lifecycle. This child owns its own teardown and its
24
+ * own pause (work-pause spec): a failed model request of the agent loop with a
25
+ * cause of a pause, or a refusal with the suspend flag of the label gate or the
26
+ * register gate. The child waits in place, and the run row stays `running`. The
27
+ * other steps go on, and each one pauses at its own failure.
29
28
  */
30
29
  import type { TokenUsageRollup } from "@inflexa-ai/harness/contracts/usage.js";
31
- import type { Pool } from "pg";
30
+ import type { Querier } from "../state/db.js";
32
31
  import type { Logger } from "../lib/logger.js";
33
32
  import type { UsageRecorder } from "../billing/usage-recorder.js";
34
33
  import type { CitationResolver } from "../citations/types.js";
35
34
  import type { AgentDefinition, LoopMessage } from "../loop/types.js";
36
35
  import { type ToolOutputStore } from "../loop/tool-output.js";
37
- import type { AgentChat, EmbeddingProvider } from "../providers/types.js";
36
+ import type { ChatProvider, EmbeddingProvider } from "../providers/types.js";
38
37
  import { type RunSession, type SpawnSession } from "../auth/types.js";
38
+ import type { RunAuthorizer } from "../execution/run-authorizer.js";
39
39
  import type { FileMetadataEntry } from "../execution/artifact-metadata.js";
40
40
  import type { ArtifactManifestEntry } from "../schemas/artifact-manifest.js";
41
41
  import type { StepSummary } from "../schemas/step-summary.js";
@@ -47,14 +47,13 @@ import { type StepFileMetadata } from "../execution/post-step-pipeline.js";
47
47
  import type { ResourceSpec } from "../config/resource-limits.js";
48
48
  import type { SandboxRef } from "../sandbox/types.js";
49
49
  import { ProvenanceCollector } from "../provenance/collector.js";
50
- import { type BlockerHolder } from "../tools/sandbox/report-blocker.js";
51
50
  import { type FileMetadataCell } from "../tools/sandbox/submit-file-metadata.js";
52
51
  import type { TemplateBinding } from "../tools/knowledge/template.js";
53
52
  /**
54
53
  * Input the parent hands the child. Must be JSON-serialisable — DBOS
55
54
  * persists this as the workflow's input row.
56
55
  */
57
- export interface SandboxStepInput {
56
+ export type SandboxStepInput = {
58
57
  readonly analysisId: string;
59
58
  readonly runId: string;
60
59
  readonly stepId: string;
@@ -86,15 +85,6 @@ export interface SandboxStepInput {
86
85
  readonly level: number;
87
86
  /** User-content prompt the agent receives as its initial message. */
88
87
  readonly prompt: string;
89
- /**
90
- * DBOS workflow id of the parent (`executeAnalysis`). The child uses
91
- * this to address the parent for its typed suspension
92
- * (`DBOS.send(parent, …, CHILD_SUSPENDED_TOPIC)`) — the parent's
93
- * scheduler-loop classifier relies on it to disambiguate a suspension
94
- * self-cancel from an operator-driven sibling cancel (CANCELLED is the
95
- * same terminal state for both).
96
- */
97
- readonly parentWorkflowId: string;
98
88
  /** Sandbox image override; falls back to the child's configured default. */
99
89
  readonly image?: string;
100
90
  /** Per-step env overrides forwarded to sandbox-server. */
@@ -115,7 +105,7 @@ export interface SandboxStepInput {
115
105
  * from `cortex_runs`.
116
106
  */
117
107
  readonly runSession: SpawnSession;
118
- }
108
+ };
119
109
  /**
120
110
  * Fallback when the plan step omits `timeout`. Plans that need 3-hour runs
121
111
  * declare it explicitly.
@@ -128,21 +118,7 @@ export declare const DEFAULT_STEP_TIMEOUT_SECONDS = 3600;
128
118
  */
129
119
  export declare const CAPPED_OUT_EMPTY_REASON = "The step hit its iteration cap with no output files persisted.";
130
120
  export type SandboxStepStatus = "complete" | "failed" | "canceled" | "blocked";
131
- /**
132
- * DBOS message topic the child uses to tell the parent that it suspends. The
133
- * message goes BEFORE `DBOS.cancelWorkflow(self)`, thus the parent's recv
134
- * accumulator records the child before the child's terminal state lands.
135
- * Without it the parent observes only `DBOSWorkflowCancelledError` from
136
- * `getResult`, and it cannot tell a suspension from a cancel.
137
- */
138
- export declare const CHILD_SUSPENDED_TOPIC = "child-suspended";
139
- export interface ChildSuspended {
140
- readonly kind: "suspended";
141
- readonly childWorkflowId: string;
142
- readonly stepId: string;
143
- readonly reason: string;
144
- }
145
- export interface SandboxStepResult {
121
+ export type SandboxStepResult = {
146
122
  readonly status: SandboxStepStatus;
147
123
  readonly durationMs: number;
148
124
  readonly finishReason: string | null;
@@ -158,27 +134,27 @@ export interface SandboxStepResult {
158
134
  * result shape recovers without it.
159
135
  */
160
136
  readonly usage?: TokenUsageRollup;
161
- }
137
+ };
162
138
  /** One file in the step's terminal file tree / output listing. */
163
- export interface StepFileEntry {
139
+ export type StepFileEntry = {
164
140
  readonly path: string;
165
141
  readonly size: number;
166
142
  /** Schema-conformant `StepOutputFile.fileType`. */
167
143
  readonly fileType: "script" | "output" | "figure" | "log" | "notebook" | "summary";
168
144
  readonly description: string;
169
- }
145
+ };
170
146
  /**
171
147
  * Post-step detail the body emits to the run stream once the bookkeeping
172
148
  * helpers have run. Derived from the metadata entries, the generated step
173
149
  * summary, and the reconciled artifact manifest. `collectStepOutputs`
174
150
  * assembles it from the same stash the vector-index step consumes.
175
151
  */
176
- export interface StepOutputs {
152
+ export type StepOutputs = {
177
153
  /** Reconciled artifact files with category + description + size. */
178
154
  readonly files: readonly StepFileEntry[];
179
155
  /** Generated step summary markdown (empty when none produced). */
180
156
  readonly summaryMarkdown: string;
181
- }
157
+ };
182
158
  /**
183
159
  * The typed post-step products threaded through the workflow body: file
184
160
  * descriptions, the interpretive summary, and the reconciled (phantom-dropped)
@@ -187,17 +163,17 @@ export interface StepOutputs {
187
163
  * composition, so the producer→consumer ordering is a type constraint rather
188
164
  * than an implicit contract over shared mutable state.
189
165
  */
190
- export interface PostStepArtifacts {
166
+ export type PostStepArtifacts = {
191
167
  readonly metadataEntries: readonly FileMetadataEntry[];
192
168
  readonly summary: StepSummary | undefined;
193
169
  readonly reconciledManifest: readonly ArtifactManifestEntry[];
194
- }
170
+ };
195
171
  /**
196
172
  * Per-step coordinates the workflow body computes once and threads to the
197
173
  * deps factory. The parent supplies the durable inputs; the factory
198
174
  * supplies the live sandbox ref and the deadline.
199
175
  */
200
- export interface SandboxAgentBuildContext {
176
+ export type SandboxAgentBuildContext = {
201
177
  readonly input: SandboxStepInput;
202
178
  readonly session: RunSession;
203
179
  readonly sandbox: SandboxRef;
@@ -210,11 +186,8 @@ export interface SandboxAgentBuildContext {
210
186
  * input/script edges). Same instance on both paths.
211
187
  */
212
188
  readonly lineageCollector: ProvenanceCollector;
213
- /**
214
- * Per-run blocker cell that `report_blocker` writes. The body prefers the
215
- * blocker read from the transcript and falls back to this cell.
216
- */
217
- readonly blockerHolder: BlockerHolder;
189
+ /** The step agent declares `report_blocker`, and the body selects the blocker from the recorded calls. */
190
+ readonly reportsBlocker: true;
218
191
  /**
219
192
  * Cell for the file-metadata continuation. `submit_file_metadata` is
220
193
  * declared up front for prefix stability but masked until then.
@@ -224,15 +197,15 @@ export interface SandboxAgentBuildContext {
224
197
  readonly citationResolver: CitationResolver;
225
198
  /** Give it to `SandboxAgentDeps.toolOutputStore`: each loop of the step keeps its texts in it. */
226
199
  readonly toolOutputStore?: ToolOutputStore;
227
- }
200
+ };
228
201
  /**
229
202
  * Inversion of control: the parent supplies the live agent, the parent's
230
203
  * stream emitter, and the post-step helpers. Keeping the workflow body
231
204
  * free of per-agent imports means it can drive every agent in the catalog
232
205
  * without becoming a switch on agentId.
233
206
  */
234
- export interface SandboxStepDeps {
235
- readonly pool: Pool;
207
+ export type SandboxStepDeps = {
208
+ readonly pool: Querier;
236
209
  /**
237
210
  * Operational logging seam. Omit it and the body falls back to a no-op —
238
211
  * but a failed step's cause is written here and NOWHERE else (`failStep`
@@ -250,8 +223,8 @@ export interface SandboxStepDeps {
250
223
  readonly toolOutputStore?: ToolOutputStore;
251
224
  /** Shared resolver threaded from `assembleCoreRuntime`. */
252
225
  readonly citationResolver: CitationResolver;
253
- /** Non-streaming chat — drives the agent loop + the post-step continuations. */
254
- readonly provider: AgentChat;
226
+ /** Drives the agent loop and the post-step follow-up requests. */
227
+ readonly provider: ChatProvider;
255
228
  /** Write-side embedder for the post-step vector index. */
256
229
  readonly embedding: EmbeddingProvider;
257
230
  readonly sandboxClient: SandboxClient;
@@ -261,6 +234,10 @@ export interface SandboxStepDeps {
261
234
  * cloud-free build, external provenance ledger in the managed build).
262
235
  */
263
236
  readonly artifactRegistry: ArtifactRegistry;
237
+ /** The delays of the timer of an outage. Absent: the default of the pause. */
238
+ readonly pauseRetryDelaysMs?: readonly number[];
239
+ /** The run authorizer of the runtime. A pause of the step for a person suspends the run credential through it. */
240
+ readonly runAuthorizer: RunAuthorizer;
264
241
  /**
265
242
  * No longer read by the step body; kept because `src/index.ts` exports
266
243
  * this type and an embedder builds it as an object literal.
@@ -273,7 +250,7 @@ export interface SandboxStepDeps {
273
250
  /**
274
251
  * Build the agent definition for this step. The parent resolves the
275
252
  * agent from the catalog, wires its workspace tools, and returns the
276
- * configured `AgentDefinition` runAgent will drive.
253
+ * configured `AgentDefinition` that `runLoop` will drive.
277
254
  */
278
255
  buildAgent(ctx: SandboxAgentBuildContext): Promise<AgentDefinition>;
279
256
  /**
@@ -281,7 +258,7 @@ export interface SandboxStepDeps {
281
258
  * workspace mutate tools enforce write confinement against this path.
282
259
  */
283
260
  resolveWritePrefix(input: SandboxStepInput): Promise<string>;
284
- }
261
+ };
285
262
  /**
286
263
  * Per-step context passed to every post-step dep. Carries the durable input
287
264
  * (analysisId/runId/stepId/agentId), the durable `RunSession`, the in-memory
@@ -290,7 +267,7 @@ export interface SandboxStepDeps {
290
267
  * `lineageCollector` carries the runtime-observed input/script edges the
291
268
  * step loop accumulated, which registration translates into managed-root parents.
292
269
  */
293
- export interface PostStepContext {
270
+ export type PostStepContext = {
294
271
  readonly input: SandboxStepInput;
295
272
  readonly session: RunSession;
296
273
  readonly transcript: readonly LoopMessage[];
@@ -304,7 +281,7 @@ export interface PostStepContext {
304
281
  readonly sandboxId: string;
305
282
  /** Same step-scoped collector the agent loop fed each exec frame into. */
306
283
  readonly lineageCollector: ProvenanceCollector;
307
- }
284
+ };
308
285
  /** Normalizes a pre-`messages` checkpoint (a bare entries array) for replay. */
309
286
  export declare function readStepFileMetadata(checkpoint: StepFileMetadata | readonly FileMetadataEntry[]): StepFileMetadata;
310
287
  /**