@inflexa-ai/harness 0.45.0 → 0.46.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (802) hide show
  1. package/README.md +6 -3
  2. package/dist/agents/conversation-agent.d.ts +19 -3
  3. package/dist/agents/conversation-agent.js +49 -30
  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 +35 -16
  9. package/dist/agents/sandbox/shared.js +63 -24
  10. package/dist/agents/sandbox/translational-safety-agent.js +26 -0
  11. package/dist/agents/sandbox/types.d.ts +26 -3
  12. package/dist/agents/sandbox/validate-skills.d.ts +2 -2
  13. package/dist/agents/sandbox/validate-skills.js +3 -1
  14. package/dist/agents/sandbox-catalog.d.ts +16 -2
  15. package/dist/agents/sandbox-catalog.js +22 -3
  16. package/dist/agents/system-prompt.d.ts +2 -2
  17. package/dist/app/approve-plan.d.ts +5 -2
  18. package/dist/app/approve-plan.js +1 -1
  19. package/dist/app/chat-turn-workflow.d.ts +114 -0
  20. package/dist/app/chat-turn-workflow.js +307 -0
  21. package/dist/app/chat-turn.d.ts +85 -57
  22. package/dist/app/chat-turn.js +125 -99
  23. package/dist/app/data-profile-orientation.js +10 -8
  24. package/dist/app/data-profile-view.d.ts +4 -4
  25. package/dist/app/data-profile-view.js +9 -8
  26. package/dist/app/in-process-turn.d.ts +42 -0
  27. package/dist/app/in-process-turn.js +139 -0
  28. package/dist/app/message-assembly.d.ts +10 -4
  29. package/dist/app/message-assembly.js +13 -8
  30. package/dist/app/report-session-runtime.d.ts +4 -4
  31. package/dist/app/report-session-runtime.js +36 -21
  32. package/dist/app/spawn-report-session.d.ts +33 -28
  33. package/dist/app/spawn-report-session.js +25 -40
  34. package/dist/app/synthesize-run.d.ts +22 -16
  35. package/dist/app/synthesize-run.js +41 -35
  36. package/dist/app/work.d.ts +96 -0
  37. package/dist/app/work.js +147 -0
  38. package/dist/auth/local-auth-context.d.ts +1 -3
  39. package/dist/auth/local-auth-context.js +1 -3
  40. package/dist/auth/local-run-authorizer.d.ts +1 -1
  41. package/dist/auth/local-run-authorizer.js +5 -3
  42. package/dist/auth/types.d.ts +26 -26
  43. package/dist/billing/cached-resolver.d.ts +4 -4
  44. package/dist/billing/run-charge.d.ts +5 -8
  45. package/dist/billing/run-charge.js +2 -2
  46. package/dist/billing/usage-recorder.d.ts +9 -9
  47. package/dist/citations/aggregate.js +1 -1
  48. package/dist/citations/clients/arxiv.d.ts +2 -2
  49. package/dist/citations/clients/arxiv.js +12 -4
  50. package/dist/citations/clients/common.js +4 -2
  51. package/dist/citations/clients/crossref.d.ts +2 -2
  52. package/dist/citations/clients/crossref.js +37 -37
  53. package/dist/citations/clients/doi-registry.js +15 -16
  54. package/dist/citations/clients/pubmed.d.ts +2 -2
  55. package/dist/citations/clients/pubmed.js +20 -13
  56. package/dist/citations/clients/semantic-scholar.d.ts +2 -2
  57. package/dist/citations/clients/semantic-scholar.js +9 -9
  58. package/dist/citations/compare.js +2 -2
  59. package/dist/citations/match.d.ts +2 -2
  60. package/dist/citations/match.js +12 -7
  61. package/dist/citations/normalize.js +35 -26
  62. package/dist/citations/plan.js +6 -2
  63. package/dist/citations/resolve.d.ts +6 -6
  64. package/dist/citations/resolve.js +34 -25
  65. package/dist/citations/types.d.ts +77 -77
  66. package/dist/config/environment-stores.d.ts +10 -8
  67. package/dist/config/resource-limits.js +1 -3
  68. package/dist/contracts/analogy-report.d.ts +7 -7
  69. package/dist/contracts/analogy-report.js +2 -2
  70. package/dist/contracts/chat-events.d.ts +46 -22
  71. package/dist/contracts/chat-events.js +1 -1
  72. package/dist/contracts/chat-frame.d.ts +15 -5
  73. package/dist/contracts/chat-frame.js +67 -40
  74. package/dist/contracts/chat-parts.d.ts +130 -67
  75. package/dist/contracts/chat-parts.js +1 -0
  76. package/dist/contracts/content-url.js +16 -2
  77. package/dist/contracts/data-profile.d.ts +38 -38
  78. package/dist/contracts/index.d.ts +3 -3
  79. package/dist/contracts/index.js +1 -1
  80. package/dist/contracts/message.d.ts +6 -6
  81. package/dist/contracts/organ-system.d.ts +11 -11
  82. package/dist/contracts/part-registry.d.ts +5 -4
  83. package/dist/contracts/part-registry.js +5 -0
  84. package/dist/contracts/profile-vocabulary.d.ts +11 -10
  85. package/dist/contracts/profile-vocabulary.js +10 -3
  86. package/dist/contracts/report-blocks.d.ts +329 -329
  87. package/dist/contracts/report-reference.d.ts +105 -81
  88. package/dist/contracts/report-reference.js +30 -13
  89. package/dist/contracts/schemas/chat-events.d.ts +45 -6
  90. package/dist/contracts/schemas/chat-events.js +16 -0
  91. package/dist/contracts/schemas/chat-parts.d.ts +214 -102
  92. package/dist/contracts/schemas/chat-parts.js +50 -7
  93. package/dist/contracts/schemas/index.d.ts +1 -1
  94. package/dist/contracts/schemas/index.js +1 -1
  95. package/dist/contracts/severity.d.ts +1 -1
  96. package/dist/contracts/structure-source.d.ts +3 -3
  97. package/dist/contracts/structure-source.js +6 -2
  98. package/dist/contracts/subagent-activity.d.ts +2 -2
  99. package/dist/contracts/subagent-activity.js +5 -3
  100. package/dist/contracts/usage.d.ts +2 -2
  101. package/dist/data/safety-panel-schema.d.ts +25 -25
  102. package/dist/data/safety-panel-schema.js +13 -4
  103. package/dist/execution/artifact-metadata.d.ts +23 -15
  104. package/dist/execution/artifact-metadata.js +33 -10
  105. package/dist/execution/artifact-record.d.ts +2 -2
  106. package/dist/execution/artifact-registration.d.ts +5 -5
  107. package/dist/execution/artifact-registry.d.ts +8 -8
  108. package/dist/execution/dbos-run-launcher.d.ts +24 -4
  109. package/dist/execution/dbos-run-launcher.js +58 -4
  110. package/dist/execution/dbos-workflow-purger.d.ts +7 -6
  111. package/dist/execution/dbos-workflow-purger.js +29 -21
  112. package/dist/execution/input-signature.d.ts +2 -2
  113. package/dist/execution/post-step-pipeline.d.ts +9 -9
  114. package/dist/execution/post-step-pipeline.js +1 -1
  115. package/dist/execution/post-step.js +2 -2
  116. package/dist/execution/reconcile-manifest.d.ts +4 -4
  117. package/dist/execution/reconcile-manifest.js +3 -2
  118. package/dist/execution/run-authorizer.d.ts +46 -37
  119. package/dist/execution/run-authorizer.js +8 -8
  120. package/dist/execution/run-canceler.d.ts +39 -17
  121. package/dist/execution/run-canceler.js +137 -28
  122. package/dist/execution/run-end-record.d.ts +29 -0
  123. package/dist/execution/run-end-record.js +27 -0
  124. package/dist/execution/run-event-parts.d.ts +0 -8
  125. package/dist/execution/run-event-parts.js +29 -24
  126. package/dist/execution/run-event-stream.d.ts +8 -8
  127. package/dist/execution/run-event-stream.js +3 -4
  128. package/dist/execution/run-launcher.d.ts +4 -4
  129. package/dist/execution/run-synthesis.d.ts +49 -48
  130. package/dist/execution/run-synthesis.js +96 -255
  131. package/dist/execution/staged-input.d.ts +2 -2
  132. package/dist/execution/step-summary.d.ts +6 -6
  133. package/dist/execution/step-summary.js +4 -8
  134. package/dist/execution/topo-sort.js +4 -3
  135. package/dist/execution/workflow-purger.d.ts +2 -2
  136. package/dist/index.d.ts +25 -24
  137. package/dist/index.js +36 -37
  138. package/dist/input-sanitization.js +9 -2
  139. package/dist/input-scan/clustering.d.ts +6 -6
  140. package/dist/input-scan/clustering.js +11 -5
  141. package/dist/input-scan/companions.js +3 -2
  142. package/dist/input-scan/detect-sets.d.ts +2 -2
  143. package/dist/input-scan/detect-sets.js +25 -21
  144. package/dist/input-scan/enrich.d.ts +6 -6
  145. package/dist/input-scan/enrich.js +29 -12
  146. package/dist/input-scan/formats.d.ts +2 -2
  147. package/dist/input-scan/formats.js +8 -2
  148. package/dist/input-scan/markers.d.ts +2 -2
  149. package/dist/input-scan/markers.js +14 -5
  150. package/dist/input-scan/menu.d.ts +10 -10
  151. package/dist/input-scan/menu.js +0 -0
  152. package/dist/input-scan/quarantine.d.ts +2 -2
  153. package/dist/input-scan/quarantine.js +23 -18
  154. package/dist/input-scan/readout-budget.d.ts +2 -2
  155. package/dist/input-scan/readout-budget.js +1 -1
  156. package/dist/input-scan/readout.d.ts +2 -2
  157. package/dist/input-scan/readout.js +47 -34
  158. package/dist/input-scan/scan.d.ts +2 -2
  159. package/dist/input-scan/scan.js +7 -5
  160. package/dist/input-scan/set-types.d.ts +28 -28
  161. package/dist/input-scan/shapes.d.ts +4 -4
  162. package/dist/input-scan/shapes.js +0 -0
  163. package/dist/input-scan/templates.d.ts +10 -10
  164. package/dist/input-scan/templates.js +30 -22
  165. package/dist/input-scan/tokens.d.ts +6 -4
  166. package/dist/input-scan/tokens.js +100 -38
  167. package/dist/input-scan/types.d.ts +22 -22
  168. package/dist/lib/async-utils.d.ts +3 -7
  169. package/dist/lib/async-utils.js +5 -9
  170. package/dist/lib/cache.js +1 -1
  171. package/dist/lib/chrome.d.ts +46 -6
  172. package/dist/lib/console-logger.js +2 -2
  173. package/dist/lib/db-result.d.ts +22 -6
  174. package/dist/lib/db-result.js +9 -13
  175. package/dist/lib/eyes.d.ts +4 -4
  176. package/dist/lib/eyes.js +1 -1
  177. package/dist/lib/fs-helpers.js +18 -6
  178. package/dist/lib/fs-result.d.ts +1 -0
  179. package/dist/lib/fs-result.js +5 -6
  180. package/dist/lib/hooks.d.ts +23 -7
  181. package/dist/lib/hooks.js +17 -3
  182. package/dist/lib/host-concurrency.js +3 -2
  183. package/dist/lib/logger.d.ts +2 -2
  184. package/dist/lib/logger.js +2 -1
  185. package/dist/lib/metrics.d.ts +1 -1
  186. package/dist/lib/null-proto.d.ts +6 -0
  187. package/dist/lib/null-proto.js +17 -0
  188. package/dist/lib/otel-spans.d.ts +1 -1
  189. package/dist/lib/otel-spans.js +9 -5
  190. package/dist/lib/otel.d.ts +4 -2
  191. package/dist/lib/otel.js +10 -2
  192. package/dist/lib/page-capture.d.ts +8 -8
  193. package/dist/lib/page-capture.js +9 -4
  194. package/dist/lib/parse-json.d.ts +5 -0
  195. package/dist/lib/parse-json.js +12 -0
  196. package/dist/lib/present.d.ts +12 -0
  197. package/dist/lib/present.js +39 -0
  198. package/dist/lib/rate-limit.d.ts +4 -4
  199. package/dist/lib/rate-limit.js +12 -13
  200. package/dist/lib/regulatory-corpus/fetch-fda-guidance.d.ts +4 -4
  201. package/dist/lib/regulatory-corpus/fetch-fda-guidance.js +4 -10
  202. package/dist/lib/regulatory-corpus/fetch-ich.d.ts +4 -4
  203. package/dist/lib/regulatory-corpus/fetch-ich.js +18 -14
  204. package/dist/lib/regulatory-corpus/normalize-whitespace.d.ts +6 -0
  205. package/dist/lib/regulatory-corpus/normalize-whitespace.js +41 -0
  206. package/dist/lib/regulatory-corpus.d.ts +10 -10
  207. package/dist/lib/regulatory-corpus.js +3 -1
  208. package/dist/lib/result.d.ts +10 -11
  209. package/dist/lib/result.js +15 -13
  210. package/dist/lib/storage.d.ts +2 -2
  211. package/dist/lib/test/async-iterable.d.ts +9 -0
  212. package/dist/lib/test/async-iterable.js +28 -0
  213. package/dist/lib/test/request-url.d.ts +5 -0
  214. package/dist/lib/test/request-url.js +7 -0
  215. package/dist/lib/test/result-assert.d.ts +12 -0
  216. package/dist/lib/test/result-assert.js +17 -0
  217. package/dist/lib/test/text-shapes.d.ts +24 -0
  218. package/dist/lib/test/text-shapes.js +63 -0
  219. package/dist/lib/text.d.ts +22 -0
  220. package/dist/lib/text.js +68 -0
  221. package/dist/lib/thrown.d.ts +18 -0
  222. package/dist/lib/thrown.js +30 -0
  223. package/dist/lib/unknown-array.d.ts +6 -0
  224. package/dist/lib/unknown-array.js +8 -0
  225. package/dist/lib/unknown-containers.d.ts +14 -0
  226. package/dist/lib/unknown-containers.js +17 -0
  227. package/dist/lib/unknown-text.d.ts +8 -0
  228. package/dist/lib/unknown-text.js +28 -0
  229. package/dist/lib/zod-issue-shape.d.ts +1 -1
  230. package/dist/lib/zod-issue-shape.js +31 -31
  231. package/dist/lib/zod-issues.d.ts +3 -3
  232. package/dist/lib/zod-issues.js +30 -17
  233. package/dist/literature/sources/arxiv.d.ts +6 -6
  234. package/dist/literature/sources/arxiv.js +92 -35
  235. package/dist/literature/sources/http.d.ts +2 -2
  236. package/dist/literature/sources/http.js +16 -15
  237. package/dist/literature/sources/pubmed.d.ts +16 -16
  238. package/dist/literature/sources/pubmed.js +96 -61
  239. package/dist/literature/sources/semantic-scholar.d.ts +8 -8
  240. package/dist/literature/sources/semantic-scholar.js +22 -13
  241. package/dist/loop/accounting.d.ts +63 -0
  242. package/dist/loop/accounting.js +141 -0
  243. package/dist/loop/call-policy.d.ts +73 -0
  244. package/dist/loop/call-policy.js +109 -0
  245. package/dist/loop/chat-stream.d.ts +62 -0
  246. package/dist/loop/chat-stream.js +237 -0
  247. package/dist/loop/compaction.d.ts +14 -9
  248. package/dist/loop/compaction.js +17 -0
  249. package/dist/loop/metrics.d.ts +12 -15
  250. package/dist/loop/metrics.js +14 -26
  251. package/dist/loop/run-loop.d.ts +233 -0
  252. package/dist/loop/run-loop.js +770 -0
  253. package/dist/loop/sub-agent.d.ts +61 -0
  254. package/dist/loop/sub-agent.js +161 -0
  255. package/dist/loop/tool-adapter.d.ts +98 -0
  256. package/dist/loop/tool-adapter.js +364 -0
  257. package/dist/loop/tool-detail.d.ts +1 -1
  258. package/dist/loop/tool-detail.js +6 -5
  259. package/dist/loop/tool-outcome.d.ts +1 -1
  260. package/dist/loop/tool-output.d.ts +4 -4
  261. package/dist/loop/tool-output.js +2 -2
  262. package/dist/loop/turn-credentials.d.ts +34 -0
  263. package/dist/loop/turn-credentials.js +73 -0
  264. package/dist/loop/types.d.ts +34 -37
  265. package/dist/loop/types.js +2 -7
  266. package/dist/memory/ai-sdk-message-storage.d.ts +5 -5
  267. package/dist/memory/ai-sdk-message-storage.js +13 -11
  268. package/dist/memory/card-builders.d.ts +14 -14
  269. package/dist/memory/card-builders.js +19 -15
  270. package/dist/memory/conversation-display-recorder.d.ts +22 -6
  271. package/dist/memory/conversation-display-recorder.js +64 -20
  272. package/dist/memory/conversation-display-replay.js +3 -2
  273. package/dist/memory/conversation-display-storage.d.ts +15 -7
  274. package/dist/memory/conversation-display-storage.js +141 -36
  275. package/dist/memory/conversation-view.d.ts +4 -4
  276. package/dist/memory/conversation-view.js +5 -4
  277. package/dist/memory/count-tokens.js +10 -8
  278. package/dist/memory/derive-thread-title.d.ts +0 -13
  279. package/dist/memory/derive-thread-title.js +2 -1
  280. package/dist/memory/message-backfill.d.ts +12 -5
  281. package/dist/memory/message-backfill.js +5 -3
  282. package/dist/memory/thread-history.d.ts +66 -24
  283. package/dist/memory/thread-history.js +212 -79
  284. package/dist/memory/thread-store.d.ts +26 -17
  285. package/dist/memory/thread-store.js +15 -9
  286. package/dist/memory/tool-call-integrity.d.ts +2 -2
  287. package/dist/memory/tool-call-integrity.js +4 -3
  288. package/dist/memory/working-memory.d.ts +16 -12
  289. package/dist/memory/working-memory.js +72 -61
  290. package/dist/prompts/briefing.d.ts +63 -9
  291. package/dist/prompts/briefing.js +130 -3
  292. package/dist/prompts/planner.js +13 -2
  293. package/dist/prompts/synthesis-agent.d.ts +1 -1
  294. package/dist/prompts/synthesis-agent.js +6 -14
  295. package/dist/provenance/collector.d.ts +6 -6
  296. package/dist/provenance/collector.js +15 -8
  297. package/dist/provenance/exec-frame.d.ts +2 -2
  298. package/dist/provenance/exec-frame.js +6 -1
  299. package/dist/provenance/seam.d.ts +24 -19
  300. package/dist/provenance/seam.js +7 -5
  301. package/dist/provenance/types.d.ts +6 -6
  302. package/dist/providers/ai-sdk.d.ts +113 -62
  303. package/dist/providers/ai-sdk.js +303 -458
  304. package/dist/providers/embedding.d.ts +2 -2
  305. package/dist/providers/embedding.js +1 -1
  306. package/dist/providers/errors.d.ts +22 -2
  307. package/dist/providers/errors.js +98 -50
  308. package/dist/providers/prompt-cache.d.ts +8 -8
  309. package/dist/providers/prompt-cache.js +13 -11
  310. package/dist/providers/reasoning.d.ts +2 -2
  311. package/dist/providers/reasoning.js +2 -2
  312. package/dist/providers/types.d.ts +59 -92
  313. package/dist/reference-data/catalog.d.ts +2 -15
  314. package/dist/reference-data/catalog.js +166 -10
  315. package/dist/reference-data/receipt.d.ts +2 -2
  316. package/dist/report-model/assert-rules.js +1 -1
  317. package/dist/report-model/authoring-grammar.d.ts +209 -231
  318. package/dist/report-model/block-walk.d.ts +10 -10
  319. package/dist/report-model/block-walk.js +2 -0
  320. package/dist/report-model/draft-finish.d.ts +8 -8
  321. package/dist/report-model/draft-finish.js +1 -1
  322. package/dist/report-model/draft-hash.js +8 -7
  323. package/dist/report-model/draft-operations.d.ts +22 -10
  324. package/dist/report-model/draft-operations.js +48 -30
  325. package/dist/report-model/draft-read.d.ts +19 -7
  326. package/dist/report-model/draft-read.js +16 -6
  327. package/dist/report-model/draft.d.ts +844 -2
  328. package/dist/report-model/draft.js +3 -1
  329. package/dist/report-model/fixture-resolver.js +39 -16
  330. package/dist/report-model/pin-snapshot.d.ts +2 -2
  331. package/dist/report-model/pin-snapshot.js +15 -15
  332. package/dist/report-model/production-resolver.d.ts +18 -18
  333. package/dist/report-model/production-resolver.js +50 -42
  334. package/dist/report-model/reference-resolver.d.ts +26 -10
  335. package/dist/report-model/reference-resolver.js +68 -5
  336. package/dist/report-model/reference-stamp.js +30 -38
  337. package/dist/report-model/structural-validation.js +12 -4
  338. package/dist/report-model/validate.d.ts +7 -7
  339. package/dist/report-model/validate.js +6 -6
  340. package/dist/report-render/assets.d.ts +2 -2
  341. package/dist/report-render/assets.js +27 -3
  342. package/dist/report-render/chart-export.d.ts +10 -2
  343. package/dist/report-render/chart-export.js +37 -11
  344. package/dist/report-render/chart-presets.d.ts +8 -8
  345. package/dist/report-render/chart-presets.js +3 -3
  346. package/dist/report-render/chart-renderers.d.ts +23 -16
  347. package/dist/report-render/chart-renderers.js +74 -53
  348. package/dist/report-render/chart-toolbox.d.ts +2 -2
  349. package/dist/report-render/chart-toolbox.js +7 -6
  350. package/dist/report-render/chart.d.ts +15 -16
  351. package/dist/report-render/chart.js +369 -252
  352. package/dist/report-render/design.d.ts +36 -297
  353. package/dist/report-render/design.js +0 -12
  354. package/dist/report-render/figures/common.d.ts +12 -12
  355. package/dist/report-render/figures/common.js +42 -31
  356. package/dist/report-render/figures/dendrogram.d.ts +3 -3
  357. package/dist/report-render/figures/dendrogram.js +10 -10
  358. package/dist/report-render/figures/dense.js +15 -8
  359. package/dist/report-render/figures/dotplot.js +46 -33
  360. package/dist/report-render/figures/embedding.js +52 -43
  361. package/dist/report-render/figures/equal-units.d.ts +10 -10
  362. package/dist/report-render/figures/equal-units.js +27 -27
  363. package/dist/report-render/figures/forest.js +9 -7
  364. package/dist/report-render/figures/gsea.js +21 -11
  365. package/dist/report-render/figures/heatmap.js +13 -9
  366. package/dist/report-render/figures/index.d.ts +10 -10
  367. package/dist/report-render/figures/index.js +4 -2
  368. package/dist/report-render/figures/km.js +10 -9
  369. package/dist/report-render/figures/label-room.d.ts +12 -12
  370. package/dist/report-render/figures/label-room.js +7 -2
  371. package/dist/report-render/figures/locuszoom.d.ts +2 -2
  372. package/dist/report-render/figures/locuszoom.js +59 -31
  373. package/dist/report-render/figures/lollipop.js +3 -2
  374. package/dist/report-render/figures/ma.js +8 -4
  375. package/dist/report-render/figures/manhattan.d.ts +1 -2
  376. package/dist/report-render/figures/manhattan.js +52 -34
  377. package/dist/report-render/figures/oncoprint.js +4 -5
  378. package/dist/report-render/figures/pca.js +25 -11
  379. package/dist/report-render/figures/qq.js +20 -9
  380. package/dist/report-render/figures/roc.js +1 -1
  381. package/dist/report-render/figures/sankey.d.ts +2 -2
  382. package/dist/report-render/figures/sankey.js +11 -10
  383. package/dist/report-render/figures/upset.d.ts +6 -6
  384. package/dist/report-render/figures/upset.js +7 -4
  385. package/dist/report-render/figures/volcano.js +12 -10
  386. package/dist/report-render/hybrid-svg.d.ts +4 -4
  387. package/dist/report-render/hybrid-svg.js +7 -5
  388. package/dist/report-render/number-format.d.ts +4 -4
  389. package/dist/report-render/number-format.js +62 -27
  390. package/dist/report-render/page.js +2 -1
  391. package/dist/report-render/provenance-data.d.ts +2 -2
  392. package/dist/report-render/references.d.ts +4 -4
  393. package/dist/report-render/render.d.ts +2 -2
  394. package/dist/report-render/render.js +10 -11
  395. package/dist/report-render/script-json.js +1 -1
  396. package/dist/report-render/table-data.d.ts +6 -6
  397. package/dist/report-render/test/options.d.ts +49 -0
  398. package/dist/report-render/test/options.js +143 -0
  399. package/dist/report-render/test/page-function.d.ts +19 -0
  400. package/dist/report-render/test/page-function.js +33 -0
  401. package/dist/report-render/types.d.ts +10 -10
  402. package/dist/report-render/value-bridge.d.ts +4 -4
  403. package/dist/report-render/value-bridge.js +27 -14
  404. package/dist/report-render/views/chart-view.d.ts +2 -2
  405. package/dist/report-render/views/chart-view.js +2 -2
  406. package/dist/report-render/views/lineage.d.ts +6 -6
  407. package/dist/report-render/views/lineage.js +2 -0
  408. package/dist/report-render/views/page-view.d.ts +2 -2
  409. package/dist/report-render/views/page-view.js +1 -0
  410. package/dist/report-render/views/prose.js +25 -8
  411. package/dist/report-render/views/references-view.js +12 -1
  412. package/dist/report-render/views/values.js +1 -1
  413. package/dist/runtime/assemble.d.ts +53 -26
  414. package/dist/runtime/assemble.js +103 -56
  415. package/dist/runtime/boot.d.ts +8 -7
  416. package/dist/runtime/boot.js +1 -1
  417. package/dist/runtime/connection-budget.d.ts +6 -6
  418. package/dist/runtime/connection-budget.js +1 -1
  419. package/dist/runtime/dbos.d.ts +29 -19
  420. package/dist/runtime/dbos.js +35 -20
  421. package/dist/runtime/result-serialization.js +18 -5
  422. package/dist/runtime/shutdown.d.ts +2 -2
  423. package/dist/sandbox/client.d.ts +7 -3
  424. package/dist/sandbox/cpu-files.d.ts +2 -2
  425. package/dist/sandbox/cpu-files.js +21 -4
  426. package/dist/sandbox/create-sandbox.d.ts +7 -8
  427. package/dist/sandbox/create-sandbox.js +6 -12
  428. package/dist/sandbox/docker-client.d.ts +48 -3
  429. package/dist/sandbox/docker-client.js +10 -6
  430. package/dist/sandbox/estimate-data-profile-resources.js +2 -7
  431. package/dist/sandbox/exec-outcome.d.ts +2 -2
  432. package/dist/sandbox/exec-outcome.js +1 -1
  433. package/dist/sandbox/exec.d.ts +10 -6
  434. package/dist/sandbox/exec.js +27 -12
  435. package/dist/sandbox/execution-id.js +14 -6
  436. package/dist/sandbox/farm.d.ts +2 -2
  437. package/dist/sandbox/farm.js +22 -27
  438. package/dist/sandbox/identity.d.ts +7 -0
  439. package/dist/sandbox/identity.js +14 -3
  440. package/dist/sandbox/image-packages.d.ts +26 -4
  441. package/dist/sandbox/image-packages.js +29 -27
  442. package/dist/sandbox/k8s-client.d.ts +35 -8
  443. package/dist/sandbox/k8s-client.js +6 -5
  444. package/dist/sandbox/labels.js +1 -0
  445. package/dist/sandbox/liveness.js +3 -1
  446. package/dist/sandbox/mount-plan.d.ts +10 -10
  447. package/dist/sandbox/mount-plan.js +13 -14
  448. package/dist/sandbox/notification-sweep.d.ts +4 -4
  449. package/dist/sandbox/notification-sweep.js +4 -7
  450. package/dist/sandbox/package-identity.d.ts +6 -13
  451. package/dist/sandbox/package-identity.js +46 -28
  452. package/dist/sandbox/reaper.d.ts +10 -10
  453. package/dist/sandbox/reaper.js +4 -6
  454. package/dist/sandbox/sandbox-error.d.ts +2 -9
  455. package/dist/sandbox/sandbox-error.js +21 -8
  456. package/dist/sandbox/sandbox-step-translate.d.ts +8 -5
  457. package/dist/sandbox/sandbox-step-translate.js +22 -8
  458. package/dist/sandbox/step-sandbox.d.ts +47 -0
  459. package/dist/sandbox/step-sandbox.js +53 -0
  460. package/dist/sandbox/types.d.ts +18 -19
  461. package/dist/sandbox/types.js +1 -1
  462. package/dist/schemas/artifact-manifest.d.ts +4 -4
  463. package/dist/schemas/data-profile-schemas.d.ts +351 -306
  464. package/dist/schemas/file-metadata.js +2 -4
  465. package/dist/schemas/plan-schemas.d.ts +79 -25
  466. package/dist/schemas/plan-schemas.js +1 -1
  467. package/dist/schemas/run-synthesis.d.ts +95 -26
  468. package/dist/schemas/run-synthesis.js +3 -1
  469. package/dist/schemas/validate-plan.d.ts +4 -4
  470. package/dist/schemas/validate-plan.js +17 -5
  471. package/dist/schemas/workflow-state.d.ts +127 -14
  472. package/dist/schemas/workflow-state.js +56 -2
  473. package/dist/state/active-turns.d.ts +36 -0
  474. package/dist/state/active-turns.js +67 -0
  475. package/dist/state/analyses-metrics.d.ts +8 -8
  476. package/dist/state/analyses-metrics.js +4 -4
  477. package/dist/state/analyses.d.ts +0 -14
  478. package/dist/state/analyses.js +0 -32
  479. package/dist/state/artifacts.d.ts +47 -18
  480. package/dist/state/artifacts.js +48 -7
  481. package/dist/state/data-profile.d.ts +2 -2
  482. package/dist/state/db.d.ts +12 -2
  483. package/dist/state/db.js +5 -0
  484. package/dist/state/edit-intents.d.ts +4 -0
  485. package/dist/state/edit-intents.js +71 -0
  486. package/dist/state/index.d.ts +5 -5
  487. package/dist/state/index.js +3 -3
  488. package/dist/state/init.d.ts +2 -1
  489. package/dist/state/init.js +5 -2
  490. package/dist/state/migrations/20260927120000_baseline.js +3 -1
  491. package/dist/state/migrations/20261026120000_add_the_edit_intents.d.ts +7 -0
  492. package/dist/state/migrations/20261026120000_add_the_edit_intents.js +21 -0
  493. package/dist/state/migrations/20261027120000_record_the_applied_memory_edits.d.ts +7 -0
  494. package/dist/state/migrations/20261027120000_record_the_applied_memory_edits.js +16 -0
  495. package/dist/state/migrations/20261027120100_store_the_authoring_results.d.ts +8 -0
  496. package/dist/state/migrations/20261027120100_store_the_authoring_results.js +20 -0
  497. package/dist/state/migrations/20261027120200_key_the_groups_of_a_turn.d.ts +7 -0
  498. package/dist/state/migrations/20261027120200_key_the_groups_of_a_turn.js +12 -0
  499. package/dist/state/migrations/20261027120300_mark_the_active_turn_of_a_thread.d.ts +7 -0
  500. package/dist/state/migrations/20261027120300_mark_the_active_turn_of_a_thread.js +11 -0
  501. package/dist/state/migrations/20261028120000_record_the_paused_work.d.ts +7 -0
  502. package/dist/state/migrations/20261028120000_record_the_paused_work.js +25 -0
  503. package/dist/state/migrations/20261028120100_end_the_suspended_runs.d.ts +8 -0
  504. package/dist/state/migrations/20261028120100_end_the_suspended_runs.js +13 -0
  505. package/dist/state/migrations/20261029120000_reference_the_run_mandate.d.ts +7 -0
  506. package/dist/state/migrations/20261029120000_reference_the_run_mandate.js +23 -0
  507. package/dist/state/migrations/20261029120100_record_the_run_session_of_a_pause.d.ts +7 -0
  508. package/dist/state/migrations/20261029120100_record_the_run_session_of_a_pause.js +11 -0
  509. package/dist/state/migrations/index.js +18 -0
  510. package/dist/state/paused-work.d.ts +52 -0
  511. package/dist/state/paused-work.js +105 -0
  512. package/dist/state/plans.d.ts +27 -8
  513. package/dist/state/plans.js +14 -11
  514. package/dist/state/purge-analysis.d.ts +6 -6
  515. package/dist/state/purge-analysis.js +10 -2
  516. package/dist/state/report-session-state.d.ts +43 -18
  517. package/dist/state/report-session-state.js +43 -4
  518. package/dist/state/report-versions.d.ts +16 -11
  519. package/dist/state/report-versions.js +5 -3
  520. package/dist/state/runs.d.ts +70 -25
  521. package/dist/state/runs.js +127 -64
  522. package/dist/state/schema.d.ts +18 -21
  523. package/dist/state/schema.js +4 -5
  524. package/dist/state/snapshot-parse.d.ts +2 -2
  525. package/dist/state/snapshot-parse.js +14 -8
  526. package/dist/state/step-executions.d.ts +29 -8
  527. package/dist/state/step-executions.js +28 -4
  528. package/dist/state/tool-outputs.d.ts +2 -2
  529. package/dist/state/tool-outputs.js +2 -1
  530. package/dist/state/vector-store.d.ts +16 -16
  531. package/dist/state/vector-store.js +11 -7
  532. package/dist/tasks/data-profile-absorb.d.ts +3 -3
  533. package/dist/tasks/data-profile-absorb.js +21 -16
  534. package/dist/tasks/data-profile-activity.d.ts +5 -5
  535. package/dist/tasks/data-profile-activity.js +5 -5
  536. package/dist/tasks/data-profile-index.d.ts +4 -4
  537. package/dist/tasks/data-profile-index.js +32 -17
  538. package/dist/tasks/data-profile-resolve.d.ts +8 -8
  539. package/dist/tasks/data-profile-resolve.js +88 -62
  540. package/dist/tasks/data-profile.d.ts +40 -31
  541. package/dist/tasks/data-profile.js +138 -95
  542. package/dist/tasks/extract-values.d.ts +26 -79
  543. package/dist/tasks/extract-values.js +48 -108
  544. package/dist/tasks/refresh-regulatory-corpus.d.ts +4 -20
  545. package/dist/tasks/refresh-regulatory-corpus.js +12 -8
  546. package/dist/tasks/regulatory-corpus-boot-refresh.d.ts +2 -2
  547. package/dist/tasks/regulatory-corpus-boot-refresh.js +12 -10
  548. package/dist/testing.d.ts +60 -0
  549. package/dist/testing.js +96 -0
  550. package/dist/tools/ad-hoc-router.d.ts +11 -9
  551. package/dist/tools/ad-hoc-router.js +80 -51
  552. package/dist/tools/analysis-invocation.d.ts +7 -0
  553. package/dist/tools/analysis-invocation.js +29 -5
  554. package/dist/tools/approval/contract.d.ts +8 -52
  555. package/dist/tools/approval/contract.js +7 -36
  556. package/dist/tools/approval/gateway.d.ts +27 -28
  557. package/dist/tools/approval/gateway.js +33 -130
  558. package/dist/tools/approval/queries.d.ts +6 -11
  559. package/dist/tools/approval/queries.js +43 -29
  560. package/dist/tools/approval/uuidv7.js +2 -2
  561. package/dist/tools/bio/chembl.d.ts +3 -3
  562. package/dist/tools/bio/chembl.js +10 -0
  563. package/dist/tools/bio/comptox.d.ts +25 -8
  564. package/dist/tools/bio/comptox.js +4 -2
  565. package/dist/tools/bio/drug-gene-interactions.d.ts +27 -17
  566. package/dist/tools/bio/drug-gene-interactions.js +11 -8
  567. package/dist/tools/bio/gene-disease-evidence.d.ts +61 -15
  568. package/dist/tools/bio/gene-disease-evidence.js +10 -6
  569. package/dist/tools/bio/gene-preclinical-profile.d.ts +11 -11
  570. package/dist/tools/bio/keys.d.ts +2 -2
  571. package/dist/tools/bio/keys.js +3 -3
  572. package/dist/tools/bio/lookup-annotation.d.ts +5 -5
  573. package/dist/tools/bio/lookup-annotation.js +3 -0
  574. package/dist/tools/bio/opentargets.d.ts +1 -1
  575. package/dist/tools/bio/opentargets.js +6 -0
  576. package/dist/tools/bio/pubchem.d.ts +2 -2
  577. package/dist/tools/bio/pubchem.js +6 -0
  578. package/dist/tools/bio/pubmed.d.ts +26 -16
  579. package/dist/tools/bio/pubmed.js +9 -3
  580. package/dist/tools/bio/search-clinical-trials.d.ts +4 -4
  581. package/dist/tools/bio/search-clinical-trials.js +5 -1
  582. package/dist/tools/bio/search-faers.d.ts +2 -2
  583. package/dist/tools/bio/search-faers.js +1 -1
  584. package/dist/tools/bio/search-gene.d.ts +2 -2
  585. package/dist/tools/bio/search-gene.js +1 -0
  586. package/dist/tools/bio/search-geo-datasets.d.ts +4 -4
  587. package/dist/tools/bio/search-geo-datasets.js +5 -5
  588. package/dist/tools/bio/search-interactions.d.ts +1 -1
  589. package/dist/tools/bio/search-patents.d.ts +28 -22
  590. package/dist/tools/bio/search-patents.js +20 -17
  591. package/dist/tools/bio/search-protein.d.ts +2 -2
  592. package/dist/tools/bio/search-protein.js +1 -1
  593. package/dist/tools/bio/search-regulatory-approvals.d.ts +64 -18
  594. package/dist/tools/bio/search-regulatory-approvals.js +21 -16
  595. package/dist/tools/bio/target-safety.d.ts +8 -8
  596. package/dist/tools/bio/target-safety.js +11 -6
  597. package/dist/tools/capability-data.d.ts +40 -0
  598. package/dist/tools/capability-data.js +74 -0
  599. package/dist/tools/define-tool.d.ts +55 -46
  600. package/dist/tools/define-tool.js +39 -27
  601. package/dist/tools/display/normalize-echart-spec.d.ts +2 -2
  602. package/dist/tools/display/normalize-echart-spec.js +51 -27
  603. package/dist/tools/display/show-user.d.ts +2 -2
  604. package/dist/tools/display/show-user.js +1 -1
  605. package/dist/tools/execute-analysis.d.ts +54 -17
  606. package/dist/tools/execute-analysis.js +193 -62
  607. package/dist/tools/knowledge/check.d.ts +182 -0
  608. package/dist/tools/knowledge/check.js +94 -0
  609. package/dist/tools/knowledge/client.d.ts +351 -0
  610. package/dist/tools/knowledge/client.js +319 -0
  611. package/dist/tools/knowledge/environment.d.ts +78 -0
  612. package/dist/tools/knowledge/environment.js +116 -0
  613. package/dist/tools/knowledge/index.d.ts +49 -0
  614. package/dist/tools/knowledge/index.js +70 -0
  615. package/dist/tools/knowledge/local-slots.d.ts +62 -0
  616. package/dist/tools/knowledge/local-slots.js +184 -0
  617. package/dist/tools/knowledge/pin.d.ts +14 -0
  618. package/dist/tools/knowledge/pin.js +17 -0
  619. package/dist/tools/knowledge/recommend.d.ts +67 -0
  620. package/dist/tools/knowledge/recommend.js +106 -0
  621. package/dist/tools/knowledge/situation.d.ts +143 -0
  622. package/dist/tools/knowledge/situation.js +157 -0
  623. package/dist/tools/knowledge/skeleton.d.ts +69 -0
  624. package/dist/tools/knowledge/skeleton.js +201 -0
  625. package/dist/tools/knowledge/template.d.ts +139 -0
  626. package/dist/tools/knowledge/template.js +273 -0
  627. package/dist/tools/lib/alphafold-client.js +2 -1
  628. package/dist/tools/lib/amass-client.d.ts +28 -28
  629. package/dist/tools/lib/amass-client.js +20 -10
  630. package/dist/tools/lib/api-utils.d.ts +13 -3
  631. package/dist/tools/lib/api-utils.js +17 -3
  632. package/dist/tools/lib/bgee-client.d.ts +6 -6
  633. package/dist/tools/lib/bgee-client.js +16 -10
  634. package/dist/tools/lib/cbioportal-client.d.ts +4 -4
  635. package/dist/tools/lib/cbioportal-client.js +9 -8
  636. package/dist/tools/lib/chembl-client.d.ts +14 -14
  637. package/dist/tools/lib/chembl-client.js +11 -4
  638. package/dist/tools/lib/clinical-benchmarks-client.d.ts +4 -4
  639. package/dist/tools/lib/clinical-benchmarks-client.js +4 -7
  640. package/dist/tools/lib/clinical-trials-client.d.ts +18 -18
  641. package/dist/tools/lib/clinical-trials-client.js +10 -10
  642. package/dist/tools/lib/clinvar-client.d.ts +2 -2
  643. package/dist/tools/lib/clinvar-client.js +6 -6
  644. package/dist/tools/lib/ctx-ops.d.ts +23 -23
  645. package/dist/tools/lib/ctx-ops.js +13 -10
  646. package/dist/tools/lib/dgidb-client.d.ts +6 -6
  647. package/dist/tools/lib/dgidb-client.js +10 -12
  648. package/dist/tools/lib/disgenet-client.d.ts +4 -4
  649. package/dist/tools/lib/ema-client.d.ts +2 -2
  650. package/dist/tools/lib/ensembl-client.d.ts +4 -4
  651. package/dist/tools/lib/ensembl-client.js +5 -4
  652. package/dist/tools/lib/gwas-catalog-client.d.ts +4 -4
  653. package/dist/tools/lib/gwas-catalog-client.js +17 -17
  654. package/dist/tools/lib/html-text.d.ts +6 -0
  655. package/dist/tools/lib/html-text.js +9 -0
  656. package/dist/tools/lib/identifier-resolver.d.ts +4 -4
  657. package/dist/tools/lib/identifier-resolver.js +7 -3
  658. package/dist/tools/lib/impc-client.d.ts +8 -8
  659. package/dist/tools/lib/impc-client.js +46 -35
  660. package/dist/tools/lib/iuphar-client.d.ts +2 -2
  661. package/dist/tools/lib/iuphar-client.js +7 -16
  662. package/dist/tools/lib/monarch-client.d.ts +4 -4
  663. package/dist/tools/lib/openfda-client.d.ts +22 -22
  664. package/dist/tools/lib/openfda-client.js +23 -22
  665. package/dist/tools/lib/opentargets-client.d.ts +12 -12
  666. package/dist/tools/lib/pathway-client.d.ts +4 -4
  667. package/dist/tools/lib/pathway-client.js +15 -19
  668. package/dist/tools/lib/pharmgkb-client.d.ts +2 -2
  669. package/dist/tools/lib/pharmgkb-client.js +1 -1
  670. package/dist/tools/lib/protein-family-modality.d.ts +2 -2
  671. package/dist/tools/lib/protein-family-modality.js +0 -2
  672. package/dist/tools/lib/protein-family-normalize.js +7 -0
  673. package/dist/tools/lib/pubchem-client.d.ts +2 -2
  674. package/dist/tools/lib/pubchem-client.js +1 -0
  675. package/dist/tools/lib/pubchem-ops.d.ts +4 -4
  676. package/dist/tools/lib/pubchem-ops.js +8 -0
  677. package/dist/tools/lib/pubmed-client.d.ts +9 -9
  678. package/dist/tools/lib/pubmed-client.js +1 -1
  679. package/dist/tools/lib/string-client.d.ts +6 -6
  680. package/dist/tools/lib/uniprot-client.d.ts +8 -8
  681. package/dist/tools/lib/uniprot-client.js +5 -1
  682. package/dist/tools/memory/update-working-memory.d.ts +16 -13
  683. package/dist/tools/memory/update-working-memory.js +21 -3
  684. package/dist/tools/read-tool-output.js +8 -2
  685. package/dist/tools/registry.d.ts +2 -2
  686. package/dist/tools/report-authoring/authoring-tools.d.ts +54 -23
  687. package/dist/tools/report-authoring/authoring-tools.js +128 -62
  688. package/dist/tools/report-session/derive-table.d.ts +19 -59
  689. package/dist/tools/report-session/derive-table.js +120 -122
  690. package/dist/tools/report-session/examine-page.d.ts +6 -6
  691. package/dist/tools/report-session/examine-page.js +14 -12
  692. package/dist/tools/report-session/list-artifacts.d.ts +6 -6
  693. package/dist/tools/report-session/list-artifacts.js +5 -5
  694. package/dist/tools/report-session/page-faults.d.ts +6 -6
  695. package/dist/tools/report-session/page-faults.js +3 -1
  696. package/dist/tools/report-session/preview-report.d.ts +4 -3
  697. package/dist/tools/report-session/preview-report.js +26 -7
  698. package/dist/tools/report-session/record-version.d.ts +9 -4
  699. package/dist/tools/report-session/record-version.js +16 -9
  700. package/dist/tools/report-session/session-page-publisher.d.ts +6 -6
  701. package/dist/tools/research/generate-analogy-report.d.ts +14 -7
  702. package/dist/tools/research/generate-analogy-report.js +80 -76
  703. package/dist/tools/research/generate-plan.d.ts +39 -16
  704. package/dist/tools/research/generate-plan.js +565 -338
  705. package/dist/tools/research/guarded-address.d.ts +20 -0
  706. package/dist/tools/research/guarded-address.js +149 -0
  707. package/dist/tools/research/inspect-data-profile.d.ts +27 -20
  708. package/dist/tools/research/inspect-data-profile.js +26 -25
  709. package/dist/tools/research/inspect-run.d.ts +54 -27
  710. package/dist/tools/research/inspect-run.js +50 -40
  711. package/dist/tools/research/literature-reviewer.d.ts +8 -7
  712. package/dist/tools/research/literature-reviewer.js +29 -28
  713. package/dist/tools/research/search-arxiv.d.ts +1 -1
  714. package/dist/tools/research/search-arxiv.js +1 -1
  715. package/dist/tools/research/search-github-repos.d.ts +10 -7
  716. package/dist/tools/research/search-github-repos.js +25 -22
  717. package/dist/tools/research/search-semantic-scholar.js +1 -1
  718. package/dist/tools/research/searxng-engine.d.ts +40 -0
  719. package/dist/tools/research/searxng-engine.js +122 -0
  720. package/dist/tools/research/web-fetch.d.ts +127 -0
  721. package/dist/tools/research/web-fetch.js +618 -0
  722. package/dist/tools/research/web-search.d.ts +84 -0
  723. package/dist/tools/research/web-search.js +117 -0
  724. package/dist/tools/sandbox/link-packages.d.ts +11 -7
  725. package/dist/tools/sandbox/link-packages.js +11 -8
  726. package/dist/tools/sandbox/list-available-packages.d.ts +24 -12
  727. package/dist/tools/sandbox/list-available-packages.js +43 -29
  728. package/dist/tools/sandbox/list-available-refs.d.ts +38 -14
  729. package/dist/tools/sandbox/list-available-refs.js +119 -37
  730. package/dist/tools/sandbox/report-blocker.d.ts +30 -37
  731. package/dist/tools/sandbox/report-blocker.js +22 -68
  732. package/dist/tools/sandbox/skills.d.ts +16 -12
  733. package/dist/tools/sandbox/skills.js +16 -12
  734. package/dist/tools/sandbox/submit-file-metadata.d.ts +12 -9
  735. package/dist/tools/sandbox/submit-file-metadata.js +18 -21
  736. package/dist/tools/start-report-session.d.ts +13 -5
  737. package/dist/tools/start-report-session.js +35 -8
  738. package/dist/tools/terminal-text.d.ts +14 -0
  739. package/dist/tools/terminal-text.js +51 -0
  740. package/dist/tools/workspace/decision-record.d.ts +81 -0
  741. package/dist/tools/workspace/decision-record.js +127 -0
  742. package/dist/tools/workspace/edit-file.d.ts +59 -18
  743. package/dist/tools/workspace/edit-file.js +98 -15
  744. package/dist/tools/workspace/execute-command.d.ts +31 -12
  745. package/dist/tools/workspace/execute-command.js +37 -8
  746. package/dist/tools/workspace/file-stat.d.ts +6 -3
  747. package/dist/tools/workspace/grep.d.ts +10 -7
  748. package/dist/tools/workspace/grep.js +9 -3
  749. package/dist/tools/workspace/index.d.ts +1 -0
  750. package/dist/tools/workspace/index.js +1 -0
  751. package/dist/tools/workspace/list-files.d.ts +6 -3
  752. package/dist/tools/workspace/mutator.d.ts +28 -15
  753. package/dist/tools/workspace/mutator.js +107 -53
  754. package/dist/tools/workspace/read-file.d.ts +8 -5
  755. package/dist/tools/workspace/result-bounds.d.ts +5 -5
  756. package/dist/tools/workspace/result-bounds.js +4 -2
  757. package/dist/tools/workspace/run-exec.d.ts +2 -2
  758. package/dist/tools/workspace/run-exec.js +3 -3
  759. package/dist/tools/workspace/scan-inputs.d.ts +8 -5
  760. package/dist/tools/workspace/scan-inputs.js +17 -5
  761. package/dist/tools/workspace/show-file.d.ts +1 -1
  762. package/dist/tools/workspace/show-file.js +2 -1
  763. package/dist/tools/workspace/show-plan.d.ts +8 -5
  764. package/dist/tools/workspace/show-plan.js +9 -8
  765. package/dist/tools/workspace/workspace-search.d.ts +41 -13
  766. package/dist/tools/workspace/workspace-search.js +27 -14
  767. package/dist/tools/workspace/write-file.d.ts +9 -7
  768. package/dist/workflows/execute-analysis-scheduler.d.ts +9 -9
  769. package/dist/workflows/execute-analysis-scheduler.js +6 -3
  770. package/dist/workflows/execute-analysis.d.ts +100 -76
  771. package/dist/workflows/execute-analysis.js +380 -247
  772. package/dist/workflows/pause.d.ts +71 -0
  773. package/dist/workflows/pause.js +173 -0
  774. package/dist/workflows/sandbox-step.d.ts +50 -61
  775. package/dist/workflows/sandbox-step.js +99 -106
  776. package/dist/workflows/test/sql-writes.d.ts +21 -0
  777. package/dist/workflows/test/sql-writes.js +36 -0
  778. package/dist/workspace/filesystem.d.ts +6 -6
  779. package/dist/workspace/filesystem.js +10 -8
  780. package/dist/workspace/paths.d.ts +1 -1
  781. package/dist/workspace/paths.js +15 -4
  782. package/dist/workspace/search-config.d.ts +2 -2
  783. package/dist/workspace/search-config.js +1 -1
  784. package/package.json +25 -22
  785. package/dist/loop/continue-agent.d.ts +0 -40
  786. package/dist/loop/continue-agent.js +0 -38
  787. package/dist/loop/genai-spans.d.ts +0 -47
  788. package/dist/loop/genai-spans.js +0 -134
  789. package/dist/loop/run-agent.d.ts +0 -236
  790. package/dist/loop/run-agent.js +0 -1110
  791. package/dist/loop/run-step.d.ts +0 -29
  792. package/dist/loop/run-step.js +0 -34
  793. package/dist/loop/run-to-terminal.d.ts +0 -66
  794. package/dist/loop/run-to-terminal.js +0 -90
  795. package/dist/loop/tool-mask.d.ts +0 -23
  796. package/dist/loop/tool-mask.js +0 -46
  797. package/dist/providers/streaming-chat.d.ts +0 -32
  798. package/dist/providers/streaming-chat.js +0 -91
  799. package/dist/tasks/derive-table-exec.d.ts +0 -54
  800. package/dist/tasks/derive-table-exec.js +0 -86
  801. package/dist/workflows/suspension.d.ts +0 -32
  802. 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,13 +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";
51
+ import type { TemplateBinding } from "../tools/knowledge/template.js";
52
52
  /**
53
53
  * Input the parent hands the child. Must be JSON-serialisable — DBOS
54
54
  * persists this as the workflow's input row.
55
55
  */
56
- export interface SandboxStepInput {
56
+ export type SandboxStepInput = {
57
57
  readonly analysisId: string;
58
58
  readonly runId: string;
59
59
  readonly stepId: string;
@@ -70,19 +70,21 @@ export interface SandboxStepInput {
70
70
  * rather than admitting unstable ones.
71
71
  */
72
72
  readonly dependsOn?: readonly string[];
73
+ /**
74
+ * The plan settings bound to the template of this step, composed by the
75
+ * parent at dispatch beside the seed. The agent factory hands it to
76
+ * `knowledge_template`, which merges the bound slots under the model
77
+ * values and refuses a silent change of one.
78
+ *
79
+ * Optional for the same reason as `dependsOn`: a durable input that
80
+ * predates the field recovers without it, and a step without a grounded
81
+ * template has nothing to bind. Absence means the model values ride alone.
82
+ */
83
+ readonly templateBinding?: TemplateBinding;
73
84
  /** Topological level — persisted on `cortex_step_executions.wave`. */
74
85
  readonly level: number;
75
86
  /** User-content prompt the agent receives as its initial message. */
76
87
  readonly prompt: string;
77
- /**
78
- * DBOS workflow id of the parent (`executeAnalysis`). The child uses
79
- * this to address the parent for its typed suspension
80
- * (`DBOS.send(parent, …, CHILD_SUSPENDED_TOPIC)`) — the parent's
81
- * scheduler-loop classifier relies on it to disambiguate a suspension
82
- * self-cancel from an operator-driven sibling cancel (CANCELLED is the
83
- * same terminal state for both).
84
- */
85
- readonly parentWorkflowId: string;
86
88
  /** Sandbox image override; falls back to the child's configured default. */
87
89
  readonly image?: string;
88
90
  /** Per-step env overrides forwarded to sandbox-server. */
@@ -103,7 +105,7 @@ export interface SandboxStepInput {
103
105
  * from `cortex_runs`.
104
106
  */
105
107
  readonly runSession: SpawnSession;
106
- }
108
+ };
107
109
  /**
108
110
  * Fallback when the plan step omits `timeout`. Plans that need 3-hour runs
109
111
  * declare it explicitly.
@@ -116,21 +118,7 @@ export declare const DEFAULT_STEP_TIMEOUT_SECONDS = 3600;
116
118
  */
117
119
  export declare const CAPPED_OUT_EMPTY_REASON = "The step hit its iteration cap with no output files persisted.";
118
120
  export type SandboxStepStatus = "complete" | "failed" | "canceled" | "blocked";
119
- /**
120
- * DBOS message topic the child uses to tell the parent that it suspends. The
121
- * message goes BEFORE `DBOS.cancelWorkflow(self)`, thus the parent's recv
122
- * accumulator records the child before the child's terminal state lands.
123
- * Without it the parent observes only `DBOSWorkflowCancelledError` from
124
- * `getResult`, and it cannot tell a suspension from a cancel.
125
- */
126
- export declare const CHILD_SUSPENDED_TOPIC = "child-suspended";
127
- export interface ChildSuspended {
128
- readonly kind: "suspended";
129
- readonly childWorkflowId: string;
130
- readonly stepId: string;
131
- readonly reason: string;
132
- }
133
- export interface SandboxStepResult {
121
+ export type SandboxStepResult = {
134
122
  readonly status: SandboxStepStatus;
135
123
  readonly durationMs: number;
136
124
  readonly finishReason: string | null;
@@ -146,27 +134,27 @@ export interface SandboxStepResult {
146
134
  * result shape recovers without it.
147
135
  */
148
136
  readonly usage?: TokenUsageRollup;
149
- }
137
+ };
150
138
  /** One file in the step's terminal file tree / output listing. */
151
- export interface StepFileEntry {
139
+ export type StepFileEntry = {
152
140
  readonly path: string;
153
141
  readonly size: number;
154
142
  /** Schema-conformant `StepOutputFile.fileType`. */
155
143
  readonly fileType: "script" | "output" | "figure" | "log" | "notebook" | "summary";
156
144
  readonly description: string;
157
- }
145
+ };
158
146
  /**
159
147
  * Post-step detail the body emits to the run stream once the bookkeeping
160
148
  * helpers have run. Derived from the metadata entries, the generated step
161
149
  * summary, and the reconciled artifact manifest. `collectStepOutputs`
162
150
  * assembles it from the same stash the vector-index step consumes.
163
151
  */
164
- export interface StepOutputs {
152
+ export type StepOutputs = {
165
153
  /** Reconciled artifact files with category + description + size. */
166
154
  readonly files: readonly StepFileEntry[];
167
155
  /** Generated step summary markdown (empty when none produced). */
168
156
  readonly summaryMarkdown: string;
169
- }
157
+ };
170
158
  /**
171
159
  * The typed post-step products threaded through the workflow body: file
172
160
  * descriptions, the interpretive summary, and the reconciled (phantom-dropped)
@@ -175,17 +163,17 @@ export interface StepOutputs {
175
163
  * composition, so the producer→consumer ordering is a type constraint rather
176
164
  * than an implicit contract over shared mutable state.
177
165
  */
178
- export interface PostStepArtifacts {
166
+ export type PostStepArtifacts = {
179
167
  readonly metadataEntries: readonly FileMetadataEntry[];
180
168
  readonly summary: StepSummary | undefined;
181
169
  readonly reconciledManifest: readonly ArtifactManifestEntry[];
182
- }
170
+ };
183
171
  /**
184
172
  * Per-step coordinates the workflow body computes once and threads to the
185
173
  * deps factory. The parent supplies the durable inputs; the factory
186
174
  * supplies the live sandbox ref and the deadline.
187
175
  */
188
- export interface SandboxAgentBuildContext {
176
+ export type SandboxAgentBuildContext = {
189
177
  readonly input: SandboxStepInput;
190
178
  readonly session: RunSession;
191
179
  readonly sandbox: SandboxRef;
@@ -198,11 +186,8 @@ export interface SandboxAgentBuildContext {
198
186
  * input/script edges). Same instance on both paths.
199
187
  */
200
188
  readonly lineageCollector: ProvenanceCollector;
201
- /**
202
- * Per-run blocker cell that `report_blocker` writes. The body prefers the
203
- * blocker read from the transcript and falls back to this cell.
204
- */
205
- readonly blockerHolder: BlockerHolder;
189
+ /** The step agent declares `report_blocker`, and the body selects the blocker from the recorded calls. */
190
+ readonly reportsBlocker: true;
206
191
  /**
207
192
  * Cell for the file-metadata continuation. `submit_file_metadata` is
208
193
  * declared up front for prefix stability but masked until then.
@@ -212,15 +197,15 @@ export interface SandboxAgentBuildContext {
212
197
  readonly citationResolver: CitationResolver;
213
198
  /** Give it to `SandboxAgentDeps.toolOutputStore`: each loop of the step keeps its texts in it. */
214
199
  readonly toolOutputStore?: ToolOutputStore;
215
- }
200
+ };
216
201
  /**
217
202
  * Inversion of control: the parent supplies the live agent, the parent's
218
203
  * stream emitter, and the post-step helpers. Keeping the workflow body
219
204
  * free of per-agent imports means it can drive every agent in the catalog
220
205
  * without becoming a switch on agentId.
221
206
  */
222
- export interface SandboxStepDeps {
223
- readonly pool: Pool;
207
+ export type SandboxStepDeps = {
208
+ readonly pool: Querier;
224
209
  /**
225
210
  * Operational logging seam. Omit it and the body falls back to a no-op —
226
211
  * but a failed step's cause is written here and NOWHERE else (`failStep`
@@ -238,8 +223,8 @@ export interface SandboxStepDeps {
238
223
  readonly toolOutputStore?: ToolOutputStore;
239
224
  /** Shared resolver threaded from `assembleCoreRuntime`. */
240
225
  readonly citationResolver: CitationResolver;
241
- /** Non-streaming chat — drives the agent loop + the post-step continuations. */
242
- readonly provider: AgentChat;
226
+ /** Drives the agent loop and the post-step follow-up requests. */
227
+ readonly provider: ChatProvider;
243
228
  /** Write-side embedder for the post-step vector index. */
244
229
  readonly embedding: EmbeddingProvider;
245
230
  readonly sandboxClient: SandboxClient;
@@ -249,6 +234,10 @@ export interface SandboxStepDeps {
249
234
  * cloud-free build, external provenance ledger in the managed build).
250
235
  */
251
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;
252
241
  /**
253
242
  * No longer read by the step body; kept because `src/index.ts` exports
254
243
  * this type and an embedder builds it as an object literal.
@@ -261,7 +250,7 @@ export interface SandboxStepDeps {
261
250
  /**
262
251
  * Build the agent definition for this step. The parent resolves the
263
252
  * agent from the catalog, wires its workspace tools, and returns the
264
- * configured `AgentDefinition` runAgent will drive.
253
+ * configured `AgentDefinition` that `runLoop` will drive.
265
254
  */
266
255
  buildAgent(ctx: SandboxAgentBuildContext): Promise<AgentDefinition>;
267
256
  /**
@@ -269,7 +258,7 @@ export interface SandboxStepDeps {
269
258
  * workspace mutate tools enforce write confinement against this path.
270
259
  */
271
260
  resolveWritePrefix(input: SandboxStepInput): Promise<string>;
272
- }
261
+ };
273
262
  /**
274
263
  * Per-step context passed to every post-step dep. Carries the durable input
275
264
  * (analysisId/runId/stepId/agentId), the durable `RunSession`, the in-memory
@@ -278,7 +267,7 @@ export interface SandboxStepDeps {
278
267
  * `lineageCollector` carries the runtime-observed input/script edges the
279
268
  * step loop accumulated, which registration translates into managed-root parents.
280
269
  */
281
- export interface PostStepContext {
270
+ export type PostStepContext = {
282
271
  readonly input: SandboxStepInput;
283
272
  readonly session: RunSession;
284
273
  readonly transcript: readonly LoopMessage[];
@@ -292,7 +281,7 @@ export interface PostStepContext {
292
281
  readonly sandboxId: string;
293
282
  /** Same step-scoped collector the agent loop fed each exec frame into. */
294
283
  readonly lineageCollector: ProvenanceCollector;
295
- }
284
+ };
296
285
  /** Normalizes a pre-`messages` checkpoint (a bare entries array) for replay. */
297
286
  export declare function readStepFileMetadata(checkpoint: StepFileMetadata | readonly FileMetadataEntry[]): StepFileMetadata;
298
287
  /**