@inflexa-ai/harness 0.1.1

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 (823) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +5 -0
  3. package/README.md +58 -0
  4. package/dist/agents/conversation-agent.d.ts +105 -0
  5. package/dist/agents/conversation-agent.js +140 -0
  6. package/dist/agents/report-builder.d.ts +32 -0
  7. package/dist/agents/report-builder.js +31 -0
  8. package/dist/agents/sandbox/__fixtures__/deps.d.ts +23 -0
  9. package/dist/agents/sandbox/__fixtures__/deps.js +96 -0
  10. package/dist/agents/sandbox/bulk-transcriptomics-agent.d.ts +8 -0
  11. package/dist/agents/sandbox/bulk-transcriptomics-agent.js +22 -0
  12. package/dist/agents/sandbox/cheminformatics-agent.d.ts +9 -0
  13. package/dist/agents/sandbox/cheminformatics-agent.js +62 -0
  14. package/dist/agents/sandbox/chromatin-agent.d.ts +8 -0
  15. package/dist/agents/sandbox/chromatin-agent.js +24 -0
  16. package/dist/agents/sandbox/data-profiler.d.ts +10 -0
  17. package/dist/agents/sandbox/data-profiler.js +24 -0
  18. package/dist/agents/sandbox/dna-methylation-agent.d.ts +8 -0
  19. package/dist/agents/sandbox/dna-methylation-agent.js +24 -0
  20. package/dist/agents/sandbox/drug-repurposing-agent.d.ts +8 -0
  21. package/dist/agents/sandbox/drug-repurposing-agent.js +54 -0
  22. package/dist/agents/sandbox/enrichment-agent.d.ts +8 -0
  23. package/dist/agents/sandbox/enrichment-agent.js +24 -0
  24. package/dist/agents/sandbox/ephemeral-executor.d.ts +9 -0
  25. package/dist/agents/sandbox/ephemeral-executor.js +29 -0
  26. package/dist/agents/sandbox/genomic-variant-agent.d.ts +8 -0
  27. package/dist/agents/sandbox/genomic-variant-agent.js +27 -0
  28. package/dist/agents/sandbox/immune-profiling-agent.d.ts +8 -0
  29. package/dist/agents/sandbox/immune-profiling-agent.js +43 -0
  30. package/dist/agents/sandbox/index.d.ts +31 -0
  31. package/dist/agents/sandbox/index.js +96 -0
  32. package/dist/agents/sandbox/metabolomics-agent.d.ts +8 -0
  33. package/dist/agents/sandbox/metabolomics-agent.js +15 -0
  34. package/dist/agents/sandbox/microbiome-agent.d.ts +8 -0
  35. package/dist/agents/sandbox/microbiome-agent.js +15 -0
  36. package/dist/agents/sandbox/multi-omics-integration-agent.d.ts +8 -0
  37. package/dist/agents/sandbox/multi-omics-integration-agent.js +33 -0
  38. package/dist/agents/sandbox/multimodal-sc-agent.d.ts +8 -0
  39. package/dist/agents/sandbox/multimodal-sc-agent.js +15 -0
  40. package/dist/agents/sandbox/network-agent.d.ts +8 -0
  41. package/dist/agents/sandbox/network-agent.js +25 -0
  42. package/dist/agents/sandbox/pkpd-clinical-response-agent.d.ts +8 -0
  43. package/dist/agents/sandbox/pkpd-clinical-response-agent.js +59 -0
  44. package/dist/agents/sandbox/proteomics-agent.d.ts +8 -0
  45. package/dist/agents/sandbox/proteomics-agent.js +15 -0
  46. package/dist/agents/sandbox/scientific-executor.d.ts +9 -0
  47. package/dist/agents/sandbox/scientific-executor.js +56 -0
  48. package/dist/agents/sandbox/shared.d.ts +100 -0
  49. package/dist/agents/sandbox/shared.js +195 -0
  50. package/dist/agents/sandbox/single-cell-agent.d.ts +8 -0
  51. package/dist/agents/sandbox/single-cell-agent.js +25 -0
  52. package/dist/agents/sandbox/spatial-omics-agent.d.ts +8 -0
  53. package/dist/agents/sandbox/spatial-omics-agent.js +15 -0
  54. package/dist/agents/sandbox/statistical-modeling-agent.d.ts +8 -0
  55. package/dist/agents/sandbox/statistical-modeling-agent.js +37 -0
  56. package/dist/agents/sandbox/translational-safety-agent.d.ts +8 -0
  57. package/dist/agents/sandbox/translational-safety-agent.js +59 -0
  58. package/dist/agents/sandbox/types.d.ts +34 -0
  59. package/dist/agents/sandbox/types.js +15 -0
  60. package/dist/agents/sandbox/validate-skills.d.ts +18 -0
  61. package/dist/agents/sandbox/validate-skills.js +40 -0
  62. package/dist/agents/sandbox-catalog.d.ts +33 -0
  63. package/dist/agents/sandbox-catalog.js +44 -0
  64. package/dist/agents/system-prompt.d.ts +25 -0
  65. package/dist/agents/system-prompt.js +23 -0
  66. package/dist/app/chat-turn.d.ts +35 -0
  67. package/dist/app/chat-turn.js +64 -0
  68. package/dist/app/data-profile-policy.d.ts +36 -0
  69. package/dist/app/data-profile-policy.js +37 -0
  70. package/dist/app/message-assembly.d.ts +65 -0
  71. package/dist/app/message-assembly.js +61 -0
  72. package/dist/app/synthesize-run.d.ts +57 -0
  73. package/dist/app/synthesize-run.js +103 -0
  74. package/dist/auth/local-auth-context.d.ts +19 -0
  75. package/dist/auth/local-auth-context.js +20 -0
  76. package/dist/auth/local-run-authorizer.d.ts +10 -0
  77. package/dist/auth/local-run-authorizer.js +23 -0
  78. package/dist/auth/types.d.ts +166 -0
  79. package/dist/auth/types.js +61 -0
  80. package/dist/billing/cached-resolver.d.ts +23 -0
  81. package/dist/billing/cached-resolver.js +61 -0
  82. package/dist/billing/noop-resolver.d.ts +6 -0
  83. package/dist/billing/noop-resolver.js +7 -0
  84. package/dist/billing/noop-run-charge.d.ts +6 -0
  85. package/dist/billing/noop-run-charge.js +10 -0
  86. package/dist/billing/resolver.d.ts +64 -0
  87. package/dist/billing/resolver.js +24 -0
  88. package/dist/billing/run-charge.d.ts +24 -0
  89. package/dist/billing/run-charge.js +9 -0
  90. package/dist/config/resource-limits.d.ts +76 -0
  91. package/dist/config/resource-limits.js +116 -0
  92. package/dist/contracts/analogy-report.d.ts +120 -0
  93. package/dist/contracts/analogy-report.js +50 -0
  94. package/dist/contracts/chat-events.d.ts +61 -0
  95. package/dist/contracts/chat-events.js +13 -0
  96. package/dist/contracts/chat-parts.d.ts +308 -0
  97. package/dist/contracts/chat-parts.js +13 -0
  98. package/dist/contracts/content-url.d.ts +49 -0
  99. package/dist/contracts/content-url.js +56 -0
  100. package/dist/contracts/index.d.ts +12 -0
  101. package/dist/contracts/index.js +5 -0
  102. package/dist/contracts/message.d.ts +36 -0
  103. package/dist/contracts/message.js +9 -0
  104. package/dist/contracts/part-registry.d.ts +18 -0
  105. package/dist/contracts/part-registry.js +28 -0
  106. package/dist/contracts/schemas/chat-events.d.ts +90 -0
  107. package/dist/contracts/schemas/chat-events.js +43 -0
  108. package/dist/contracts/schemas/chat-parts.d.ts +683 -0
  109. package/dist/contracts/schemas/chat-parts.js +295 -0
  110. package/dist/contracts/schemas/index.d.ts +2 -0
  111. package/dist/contracts/schemas/index.js +2 -0
  112. package/dist/contracts/target-assessment-row.d.ts +85 -0
  113. package/dist/contracts/target-assessment-row.js +37 -0
  114. package/dist/contracts/target-dossier.d.ts +16720 -0
  115. package/dist/contracts/target-dossier.js +1339 -0
  116. package/dist/data/clinical-benchmarks.json +108 -0
  117. package/dist/data/protein-family-modality.json +101 -0
  118. package/dist/data/safety-panel-schema.d.ts +64 -0
  119. package/dist/data/safety-panel-schema.js +34 -0
  120. package/dist/data/safety-panel.json +436 -0
  121. package/dist/execution/artifact-metadata.d.ts +74 -0
  122. package/dist/execution/artifact-metadata.js +203 -0
  123. package/dist/execution/artifact-record.d.ts +19 -0
  124. package/dist/execution/artifact-record.js +7 -0
  125. package/dist/execution/artifact-registration.d.ts +36 -0
  126. package/dist/execution/artifact-registration.js +61 -0
  127. package/dist/execution/artifact-registry.d.ts +82 -0
  128. package/dist/execution/artifact-registry.js +17 -0
  129. package/dist/execution/dbos-run-launcher.d.ts +7 -0
  130. package/dist/execution/dbos-run-launcher.js +38 -0
  131. package/dist/execution/ephemeral-runner.d.ts +81 -0
  132. package/dist/execution/ephemeral-runner.js +161 -0
  133. package/dist/execution/filesystem-artifact-registry.d.ts +57 -0
  134. package/dist/execution/filesystem-artifact-registry.js +92 -0
  135. package/dist/execution/noop-artifact-registry.d.ts +11 -0
  136. package/dist/execution/noop-artifact-registry.js +17 -0
  137. package/dist/execution/post-step-pipeline.d.ts +70 -0
  138. package/dist/execution/post-step-pipeline.js +207 -0
  139. package/dist/execution/post-step.d.ts +20 -0
  140. package/dist/execution/post-step.js +65 -0
  141. package/dist/execution/reconcile-manifest.d.ts +25 -0
  142. package/dist/execution/reconcile-manifest.js +132 -0
  143. package/dist/execution/report-render.d.ts +39 -0
  144. package/dist/execution/report-render.js +98 -0
  145. package/dist/execution/report-runner.d.ts +87 -0
  146. package/dist/execution/report-runner.js +227 -0
  147. package/dist/execution/run-authorizer.d.ts +43 -0
  148. package/dist/execution/run-authorizer.js +17 -0
  149. package/dist/execution/run-launcher.d.ts +36 -0
  150. package/dist/execution/run-launcher.js +15 -0
  151. package/dist/execution/run-synthesis.d.ts +107 -0
  152. package/dist/execution/run-synthesis.js +329 -0
  153. package/dist/execution/staged-input.d.ts +41 -0
  154. package/dist/execution/staged-input.js +15 -0
  155. package/dist/execution/step-summary-metrics.d.ts +10 -0
  156. package/dist/execution/step-summary-metrics.js +22 -0
  157. package/dist/execution/step-summary.d.ts +55 -0
  158. package/dist/execution/step-summary.js +106 -0
  159. package/dist/execution/topo-sort.d.ts +33 -0
  160. package/dist/execution/topo-sort.js +99 -0
  161. package/dist/index.d.ts +112 -0
  162. package/dist/index.js +157 -0
  163. package/dist/input-sanitization.d.ts +22 -0
  164. package/dist/input-sanitization.js +64 -0
  165. package/dist/lib/async-utils.d.ts +10 -0
  166. package/dist/lib/async-utils.js +24 -0
  167. package/dist/lib/chrome.d.ts +15 -0
  168. package/dist/lib/chrome.js +95 -0
  169. package/dist/lib/db-result.d.ts +93 -0
  170. package/dist/lib/db-result.js +197 -0
  171. package/dist/lib/fs-helpers.d.ts +74 -0
  172. package/dist/lib/fs-helpers.js +119 -0
  173. package/dist/lib/fs-result.d.ts +98 -0
  174. package/dist/lib/fs-result.js +137 -0
  175. package/dist/lib/host-concurrency.d.ts +16 -0
  176. package/dist/lib/host-concurrency.js +60 -0
  177. package/dist/lib/identifiers.d.ts +8 -0
  178. package/dist/lib/identifiers.js +10 -0
  179. package/dist/lib/metrics.d.ts +7 -0
  180. package/dist/lib/metrics.js +12 -0
  181. package/dist/lib/mime-detect.d.ts +17 -0
  182. package/dist/lib/mime-detect.js +29 -0
  183. package/dist/lib/otel.d.ts +30 -0
  184. package/dist/lib/otel.js +102 -0
  185. package/dist/lib/regulatory-corpus/fetch-fda-guidance.d.ts +35 -0
  186. package/dist/lib/regulatory-corpus/fetch-fda-guidance.js +107 -0
  187. package/dist/lib/regulatory-corpus/fetch-ich.d.ts +46 -0
  188. package/dist/lib/regulatory-corpus/fetch-ich.js +173 -0
  189. package/dist/lib/regulatory-corpus.d.ts +88 -0
  190. package/dist/lib/regulatory-corpus.js +141 -0
  191. package/dist/lib/result.d.ts +87 -0
  192. package/dist/lib/result.js +103 -0
  193. package/dist/lib/storage.d.ts +29 -0
  194. package/dist/lib/storage.js +37 -0
  195. package/dist/lib/streamed-download.d.ts +28 -0
  196. package/dist/lib/streamed-download.js +111 -0
  197. package/dist/lib/trace-context.d.ts +11 -0
  198. package/dist/lib/trace-context.js +49 -0
  199. package/dist/loop/__fixtures__/scripted-provider.d.ts +31 -0
  200. package/dist/loop/__fixtures__/scripted-provider.js +57 -0
  201. package/dist/loop/budget-exceeded.d.ts +22 -0
  202. package/dist/loop/budget-exceeded.js +41 -0
  203. package/dist/loop/metrics.d.ts +25 -0
  204. package/dist/loop/metrics.js +46 -0
  205. package/dist/loop/run-agent.d.ts +28 -0
  206. package/dist/loop/run-agent.js +204 -0
  207. package/dist/loop/run-step.d.ts +29 -0
  208. package/dist/loop/run-step.js +34 -0
  209. package/dist/loop/run-to-terminal.d.ts +46 -0
  210. package/dist/loop/run-to-terminal.js +51 -0
  211. package/dist/loop/types.d.ts +95 -0
  212. package/dist/loop/types.js +10 -0
  213. package/dist/memory/ai-sdk-message-storage.d.ts +20 -0
  214. package/dist/memory/ai-sdk-message-storage.js +114 -0
  215. package/dist/memory/card-builders.d.ts +114 -0
  216. package/dist/memory/card-builders.js +231 -0
  217. package/dist/memory/content-to-cortex.d.ts +42 -0
  218. package/dist/memory/content-to-cortex.js +85 -0
  219. package/dist/memory/count-tokens.d.ts +18 -0
  220. package/dist/memory/count-tokens.js +64 -0
  221. package/dist/memory/derive-thread-title.d.ts +14 -0
  222. package/dist/memory/derive-thread-title.js +26 -0
  223. package/dist/memory/message-backfill.d.ts +2 -0
  224. package/dist/memory/message-backfill.js +38 -0
  225. package/dist/memory/reconstruct-cards.d.ts +23 -0
  226. package/dist/memory/reconstruct-cards.js +64 -0
  227. package/dist/memory/thread-history.d.ts +80 -0
  228. package/dist/memory/thread-history.js +187 -0
  229. package/dist/memory/thread-store.d.ts +66 -0
  230. package/dist/memory/thread-store.js +88 -0
  231. package/dist/memory/working-memory.d.ts +135 -0
  232. package/dist/memory/working-memory.js +185 -0
  233. package/dist/prompts/SOUL.d.ts +17 -0
  234. package/dist/prompts/SOUL.js +173 -0
  235. package/dist/prompts/analogical-reasoner.d.ts +1 -0
  236. package/dist/prompts/analogical-reasoner.js +170 -0
  237. package/dist/prompts/conversation.d.ts +1 -0
  238. package/dist/prompts/conversation.js +697 -0
  239. package/dist/prompts/execute-analysis/step-summary.d.ts +1 -0
  240. package/dist/prompts/execute-analysis/step-summary.js +38 -0
  241. package/dist/prompts/literature-reviewer.d.ts +1 -0
  242. package/dist/prompts/literature-reviewer.js +107 -0
  243. package/dist/prompts/planner.d.ts +2 -0
  244. package/dist/prompts/planner.js +259 -0
  245. package/dist/prompts/report-builder.d.ts +1 -0
  246. package/dist/prompts/report-builder.js +127 -0
  247. package/dist/prompts/sandbox/bulk-transcriptomics-agent.d.ts +1 -0
  248. package/dist/prompts/sandbox/bulk-transcriptomics-agent.js +78 -0
  249. package/dist/prompts/sandbox/cheminformatics-agent.d.ts +1 -0
  250. package/dist/prompts/sandbox/cheminformatics-agent.js +224 -0
  251. package/dist/prompts/sandbox/chromatin-agent.d.ts +1 -0
  252. package/dist/prompts/sandbox/chromatin-agent.js +100 -0
  253. package/dist/prompts/sandbox/data-profiler.d.ts +1 -0
  254. package/dist/prompts/sandbox/data-profiler.js +291 -0
  255. package/dist/prompts/sandbox/dna-methylation-agent.d.ts +1 -0
  256. package/dist/prompts/sandbox/dna-methylation-agent.js +96 -0
  257. package/dist/prompts/sandbox/drug-repurposing-agent.d.ts +1 -0
  258. package/dist/prompts/sandbox/drug-repurposing-agent.js +144 -0
  259. package/dist/prompts/sandbox/enrichment-agent.d.ts +1 -0
  260. package/dist/prompts/sandbox/enrichment-agent.js +89 -0
  261. package/dist/prompts/sandbox/ephemeral-executor.d.ts +1 -0
  262. package/dist/prompts/sandbox/ephemeral-executor.js +66 -0
  263. package/dist/prompts/sandbox/genomic-variant-agent.d.ts +1 -0
  264. package/dist/prompts/sandbox/genomic-variant-agent.js +83 -0
  265. package/dist/prompts/sandbox/immune-profiling-agent.d.ts +1 -0
  266. package/dist/prompts/sandbox/immune-profiling-agent.js +101 -0
  267. package/dist/prompts/sandbox/metabolomics-agent.d.ts +1 -0
  268. package/dist/prompts/sandbox/metabolomics-agent.js +89 -0
  269. package/dist/prompts/sandbox/microbiome-agent.d.ts +1 -0
  270. package/dist/prompts/sandbox/microbiome-agent.js +109 -0
  271. package/dist/prompts/sandbox/multi-omics-integration-agent.d.ts +1 -0
  272. package/dist/prompts/sandbox/multi-omics-integration-agent.js +122 -0
  273. package/dist/prompts/sandbox/multimodal-sc-agent.d.ts +1 -0
  274. package/dist/prompts/sandbox/multimodal-sc-agent.js +90 -0
  275. package/dist/prompts/sandbox/network-agent.d.ts +1 -0
  276. package/dist/prompts/sandbox/network-agent.js +95 -0
  277. package/dist/prompts/sandbox/pkpd-clinical-response-agent.d.ts +1 -0
  278. package/dist/prompts/sandbox/pkpd-clinical-response-agent.js +71 -0
  279. package/dist/prompts/sandbox/proteomics-agent.d.ts +1 -0
  280. package/dist/prompts/sandbox/proteomics-agent.js +93 -0
  281. package/dist/prompts/sandbox/scientific-executor.d.ts +1 -0
  282. package/dist/prompts/sandbox/scientific-executor.js +68 -0
  283. package/dist/prompts/sandbox/single-cell-agent.d.ts +1 -0
  284. package/dist/prompts/sandbox/single-cell-agent.js +129 -0
  285. package/dist/prompts/sandbox/spatial-omics-agent.d.ts +1 -0
  286. package/dist/prompts/sandbox/spatial-omics-agent.js +94 -0
  287. package/dist/prompts/sandbox/statistical-modeling-agent.d.ts +1 -0
  288. package/dist/prompts/sandbox/statistical-modeling-agent.js +112 -0
  289. package/dist/prompts/sandbox/translational-safety-agent.d.ts +1 -0
  290. package/dist/prompts/sandbox/translational-safety-agent.js +105 -0
  291. package/dist/prompts/sandbox-standards.d.ts +18 -0
  292. package/dist/prompts/sandbox-standards.js +358 -0
  293. package/dist/prompts/synthesis-agent.d.ts +1 -0
  294. package/dist/prompts/synthesis-agent.js +289 -0
  295. package/dist/prompts/target-assessment/briefs/executive-recommendation.d.ts +1 -0
  296. package/dist/prompts/target-assessment/briefs/executive-recommendation.js +85 -0
  297. package/dist/prompts/target-assessment/briefs/index.d.ts +4 -0
  298. package/dist/prompts/target-assessment/briefs/index.js +4 -0
  299. package/dist/prompts/target-assessment/briefs/liability-bullets.d.ts +1 -0
  300. package/dist/prompts/target-assessment/briefs/liability-bullets.js +114 -0
  301. package/dist/prompts/target-assessment/briefs/target-organ-liabilities.d.ts +1 -0
  302. package/dist/prompts/target-assessment/briefs/target-organ-liabilities.js +29 -0
  303. package/dist/prompts/target-assessment/briefs/translational-commentary.d.ts +1 -0
  304. package/dist/prompts/target-assessment/briefs/translational-commentary.js +23 -0
  305. package/dist/prompts/target-assessment/drugs-in-class.d.ts +1 -0
  306. package/dist/prompts/target-assessment/drugs-in-class.js +29 -0
  307. package/dist/prompts/target-assessment/modulator-triage.d.ts +1 -0
  308. package/dist/prompts/target-assessment/modulator-triage.js +31 -0
  309. package/dist/prompts/target-assessment/off-target-annotator.d.ts +1 -0
  310. package/dist/prompts/target-assessment/off-target-annotator.js +28 -0
  311. package/dist/prompts/target-assessment/tox-voice/core.d.ts +1 -0
  312. package/dist/prompts/target-assessment/tox-voice/core.js +74 -0
  313. package/dist/prompts/target-assessment/tox-voice/critique.d.ts +7 -0
  314. package/dist/prompts/target-assessment/tox-voice/critique.js +109 -0
  315. package/dist/prompts/target-assessment/tox-voice/exemplars.d.ts +8 -0
  316. package/dist/prompts/target-assessment/tox-voice/exemplars.js +24 -0
  317. package/dist/prompts/target-assessment/tox-voice/index.d.ts +4 -0
  318. package/dist/prompts/target-assessment/tox-voice/index.js +4 -0
  319. package/dist/prompts/target-assessment/tox-voice/vocabulary.d.ts +15 -0
  320. package/dist/prompts/target-assessment/tox-voice/vocabulary.js +72 -0
  321. package/dist/provenance/collector.d.ts +148 -0
  322. package/dist/provenance/collector.js +296 -0
  323. package/dist/provenance/exec-frame.d.ts +36 -0
  324. package/dist/provenance/exec-frame.js +49 -0
  325. package/dist/provenance/types.d.ts +95 -0
  326. package/dist/provenance/types.js +64 -0
  327. package/dist/providers/__fixtures__/session.d.ts +16 -0
  328. package/dist/providers/__fixtures__/session.js +20 -0
  329. package/dist/providers/ai-sdk.d.ts +47 -0
  330. package/dist/providers/ai-sdk.js +142 -0
  331. package/dist/providers/anthropic.d.ts +22 -0
  332. package/dist/providers/anthropic.js +26 -0
  333. package/dist/providers/embedding.d.ts +32 -0
  334. package/dist/providers/embedding.js +42 -0
  335. package/dist/providers/errors.d.ts +80 -0
  336. package/dist/providers/errors.js +137 -0
  337. package/dist/providers/llm-capabilities.d.ts +33 -0
  338. package/dist/providers/llm-capabilities.js +58 -0
  339. package/dist/providers/streaming-chat.d.ts +23 -0
  340. package/dist/providers/streaming-chat.js +61 -0
  341. package/dist/providers/types.d.ts +59 -0
  342. package/dist/providers/types.js +8 -0
  343. package/dist/runtime/assemble.d.ts +68 -0
  344. package/dist/runtime/assemble.js +46 -0
  345. package/dist/runtime/boot.d.ts +73 -0
  346. package/dist/runtime/boot.js +65 -0
  347. package/dist/runtime/connection-budget.d.ts +48 -0
  348. package/dist/runtime/connection-budget.js +57 -0
  349. package/dist/runtime/dbos.d.ts +94 -0
  350. package/dist/runtime/dbos.js +160 -0
  351. package/dist/runtime/lifecycle.d.ts +12 -0
  352. package/dist/runtime/lifecycle.js +19 -0
  353. package/dist/runtime/pools.d.ts +25 -0
  354. package/dist/runtime/pools.js +30 -0
  355. package/dist/runtime/shutdown.d.ts +33 -0
  356. package/dist/runtime/shutdown.js +39 -0
  357. package/dist/sandbox/await-exec.d.ts +143 -0
  358. package/dist/sandbox/await-exec.js +406 -0
  359. package/dist/sandbox/client.d.ts +82 -0
  360. package/dist/sandbox/client.js +23 -0
  361. package/dist/sandbox/create-sandbox.d.ts +105 -0
  362. package/dist/sandbox/create-sandbox.js +132 -0
  363. package/dist/sandbox/deliver-exec-event.d.ts +25 -0
  364. package/dist/sandbox/deliver-exec-event.js +29 -0
  365. package/dist/sandbox/docker-client.d.ts +75 -0
  366. package/dist/sandbox/docker-client.js +315 -0
  367. package/dist/sandbox/estimate-data-profile-resources.d.ts +5 -0
  368. package/dist/sandbox/estimate-data-profile-resources.js +73 -0
  369. package/dist/sandbox/exec-id.d.ts +12 -0
  370. package/dist/sandbox/exec-id.js +20 -0
  371. package/dist/sandbox/execution-id.d.ts +30 -0
  372. package/dist/sandbox/execution-id.js +47 -0
  373. package/dist/sandbox/hmac.d.ts +54 -0
  374. package/dist/sandbox/hmac.js +67 -0
  375. package/dist/sandbox/identity.d.ts +15 -0
  376. package/dist/sandbox/identity.js +22 -0
  377. package/dist/sandbox/ignored-dirs.d.ts +7 -0
  378. package/dist/sandbox/ignored-dirs.js +7 -0
  379. package/dist/sandbox/k8s-client.d.ts +71 -0
  380. package/dist/sandbox/k8s-client.js +488 -0
  381. package/dist/sandbox/liveness.d.ts +60 -0
  382. package/dist/sandbox/liveness.js +82 -0
  383. package/dist/sandbox/mount-plan.d.ts +77 -0
  384. package/dist/sandbox/mount-plan.js +84 -0
  385. package/dist/sandbox/notification-sweep.d.ts +42 -0
  386. package/dist/sandbox/notification-sweep.js +74 -0
  387. package/dist/sandbox/reaper.d.ts +70 -0
  388. package/dist/sandbox/reaper.js +124 -0
  389. package/dist/sandbox/sandbox-error.d.ts +105 -0
  390. package/dist/sandbox/sandbox-error.js +92 -0
  391. package/dist/sandbox/sandbox-step-translate.d.ts +35 -0
  392. package/dist/sandbox/sandbox-step-translate.js +76 -0
  393. package/dist/sandbox/submit-exec.d.ts +33 -0
  394. package/dist/sandbox/submit-exec.js +68 -0
  395. package/dist/sandbox/types.d.ts +277 -0
  396. package/dist/sandbox/types.js +147 -0
  397. package/dist/sandbox/watchdog.d.ts +71 -0
  398. package/dist/sandbox/watchdog.js +150 -0
  399. package/dist/schemas/artifact-manifest.d.ts +34 -0
  400. package/dist/schemas/artifact-manifest.js +36 -0
  401. package/dist/schemas/data-profile-schemas.d.ts +92 -0
  402. package/dist/schemas/data-profile-schemas.js +89 -0
  403. package/dist/schemas/file-metadata.d.ts +51 -0
  404. package/dist/schemas/file-metadata.js +39 -0
  405. package/dist/schemas/plan-schemas.d.ts +110 -0
  406. package/dist/schemas/plan-schemas.js +50 -0
  407. package/dist/schemas/render-step-prompt.d.ts +32 -0
  408. package/dist/schemas/render-step-prompt.js +76 -0
  409. package/dist/schemas/run-synthesis.d.ts +148 -0
  410. package/dist/schemas/run-synthesis.js +87 -0
  411. package/dist/schemas/step-summary.d.ts +18 -0
  412. package/dist/schemas/step-summary.js +20 -0
  413. package/dist/schemas/validate-plan.d.ts +39 -0
  414. package/dist/schemas/validate-plan.js +120 -0
  415. package/dist/schemas/workflow-state.d.ts +314 -0
  416. package/dist/schemas/workflow-state.js +139 -0
  417. package/dist/state/active-sandboxes.d.ts +58 -0
  418. package/dist/state/active-sandboxes.js +100 -0
  419. package/dist/state/analyses-metrics.d.ts +21 -0
  420. package/dist/state/analyses-metrics.js +59 -0
  421. package/dist/state/analyses.d.ts +58 -0
  422. package/dist/state/analyses.js +132 -0
  423. package/dist/state/artifacts.d.ts +53 -0
  424. package/dist/state/artifacts.js +175 -0
  425. package/dist/state/data-profile.d.ts +176 -0
  426. package/dist/state/data-profile.js +284 -0
  427. package/dist/state/db.d.ts +10 -0
  428. package/dist/state/db.js +9 -0
  429. package/dist/state/index.d.ts +29 -0
  430. package/dist/state/index.js +20 -0
  431. package/dist/state/init.d.ts +14 -0
  432. package/dist/state/init.js +406 -0
  433. package/dist/state/plans.d.ts +56 -0
  434. package/dist/state/plans.js +117 -0
  435. package/dist/state/runs.d.ts +69 -0
  436. package/dist/state/runs.js +206 -0
  437. package/dist/state/schema.d.ts +150 -0
  438. package/dist/state/schema.js +100 -0
  439. package/dist/state/step-executions.d.ts +77 -0
  440. package/dist/state/step-executions.js +175 -0
  441. package/dist/state/target-assessments.d.ts +68 -0
  442. package/dist/state/target-assessments.js +222 -0
  443. package/dist/state/vector-store.d.ts +53 -0
  444. package/dist/state/vector-store.js +89 -0
  445. package/dist/tasks/data-profile.d.ts +171 -0
  446. package/dist/tasks/data-profile.js +461 -0
  447. package/dist/tasks/refresh-regulatory-corpus.d.ts +59 -0
  448. package/dist/tasks/refresh-regulatory-corpus.js +146 -0
  449. package/dist/tasks/regulatory-corpus-boot-refresh.d.ts +55 -0
  450. package/dist/tasks/regulatory-corpus-boot-refresh.js +149 -0
  451. package/dist/tools/__fixtures__/tool-context.d.ts +13 -0
  452. package/dist/tools/__fixtures__/tool-context.js +18 -0
  453. package/dist/tools/bio/check-safety-panel.d.ts +35 -0
  454. package/dist/tools/bio/check-safety-panel.js +76 -0
  455. package/dist/tools/bio/find-approval-precedent.d.ts +32 -0
  456. package/dist/tools/bio/find-approval-precedent.js +72 -0
  457. package/dist/tools/bio/get-article-details.d.ts +11 -0
  458. package/dist/tools/bio/get-article-details.js +20 -0
  459. package/dist/tools/bio/get-article-full-text.d.ts +19 -0
  460. package/dist/tools/bio/get-article-full-text.js +32 -0
  461. package/dist/tools/bio/get-bioactivity.d.ts +11 -0
  462. package/dist/tools/bio/get-bioactivity.js +23 -0
  463. package/dist/tools/bio/get-drug-info.d.ts +9 -0
  464. package/dist/tools/bio/get-drug-info.js +22 -0
  465. package/dist/tools/bio/get-impc-ko-profile.d.ts +9 -0
  466. package/dist/tools/bio/get-impc-ko-profile.js +20 -0
  467. package/dist/tools/bio/get-mechanism.d.ts +8 -0
  468. package/dist/tools/bio/get-mechanism.js +18 -0
  469. package/dist/tools/bio/get-pubchem-assays.d.ts +22 -0
  470. package/dist/tools/bio/get-pubchem-assays.js +107 -0
  471. package/dist/tools/bio/get-pubchem-cross-refs.d.ts +15 -0
  472. package/dist/tools/bio/get-pubchem-cross-refs.js +68 -0
  473. package/dist/tools/bio/get-target-safety.d.ts +18 -0
  474. package/dist/tools/bio/get-target-safety.js +26 -0
  475. package/dist/tools/bio/index.d.ts +41 -0
  476. package/dist/tools/bio/index.js +48 -0
  477. package/dist/tools/bio/keys.d.ts +31 -0
  478. package/dist/tools/bio/keys.js +30 -0
  479. package/dist/tools/bio/lookup-go-term.d.ts +31 -0
  480. package/dist/tools/bio/lookup-go-term.js +116 -0
  481. package/dist/tools/bio/search-bgee-expression.d.ts +10 -0
  482. package/dist/tools/bio/search-bgee-expression.js +24 -0
  483. package/dist/tools/bio/search-clinical-trials.d.ts +12 -0
  484. package/dist/tools/bio/search-clinical-trials.js +21 -0
  485. package/dist/tools/bio/search-clinvar.d.ts +13 -0
  486. package/dist/tools/bio/search-clinvar.js +28 -0
  487. package/dist/tools/bio/search-compounds.d.ts +22 -0
  488. package/dist/tools/bio/search-compounds.js +160 -0
  489. package/dist/tools/bio/search-ctx-chemical.d.ts +50 -0
  490. package/dist/tools/bio/search-ctx-chemical.js +130 -0
  491. package/dist/tools/bio/search-ctx-exposure.d.ts +55 -0
  492. package/dist/tools/bio/search-ctx-exposure.js +176 -0
  493. package/dist/tools/bio/search-ctx-hazard.d.ts +111 -0
  494. package/dist/tools/bio/search-ctx-hazard.js +178 -0
  495. package/dist/tools/bio/search-dgidb.d.ts +43 -0
  496. package/dist/tools/bio/search-dgidb.js +199 -0
  497. package/dist/tools/bio/search-disgenet.d.ts +30 -0
  498. package/dist/tools/bio/search-disgenet.js +84 -0
  499. package/dist/tools/bio/search-drugbank.d.ts +38 -0
  500. package/dist/tools/bio/search-drugbank.js +109 -0
  501. package/dist/tools/bio/search-faers.d.ts +11 -0
  502. package/dist/tools/bio/search-faers.js +23 -0
  503. package/dist/tools/bio/search-gene.d.ts +11 -0
  504. package/dist/tools/bio/search-gene.js +19 -0
  505. package/dist/tools/bio/search-geo-datasets.d.ts +20 -0
  506. package/dist/tools/bio/search-geo-datasets.js +86 -0
  507. package/dist/tools/bio/search-gwas-catalog.d.ts +33 -0
  508. package/dist/tools/bio/search-gwas-catalog.js +172 -0
  509. package/dist/tools/bio/search-interactions.d.ts +17 -0
  510. package/dist/tools/bio/search-interactions.js +31 -0
  511. package/dist/tools/bio/search-opentargets.d.ts +11 -0
  512. package/dist/tools/bio/search-opentargets.js +25 -0
  513. package/dist/tools/bio/search-pathway.d.ts +12 -0
  514. package/dist/tools/bio/search-pathway.js +32 -0
  515. package/dist/tools/bio/search-pharmgkb.d.ts +17 -0
  516. package/dist/tools/bio/search-pharmgkb.js +46 -0
  517. package/dist/tools/bio/search-pubchem-compound.d.ts +26 -0
  518. package/dist/tools/bio/search-pubchem-compound.js +110 -0
  519. package/dist/tools/bio/search-pubmed.d.ts +17 -0
  520. package/dist/tools/bio/search-pubmed.js +31 -0
  521. package/dist/tools/bio/search-targets.d.ts +9 -0
  522. package/dist/tools/bio/search-targets.js +20 -0
  523. package/dist/tools/bio/search-toxcast.d.ts +36 -0
  524. package/dist/tools/bio/search-toxcast.js +141 -0
  525. package/dist/tools/define-tool.d.ts +80 -0
  526. package/dist/tools/define-tool.js +48 -0
  527. package/dist/tools/display/index.d.ts +4 -0
  528. package/dist/tools/display/index.js +4 -0
  529. package/dist/tools/display/show-user.d.ts +33 -0
  530. package/dist/tools/display/show-user.js +67 -0
  531. package/dist/tools/execute-plan.d.ts +64 -0
  532. package/dist/tools/execute-plan.js +208 -0
  533. package/dist/tools/iterate-report.d.ts +172 -0
  534. package/dist/tools/iterate-report.js +521 -0
  535. package/dist/tools/lib/api-utils.d.ts +80 -0
  536. package/dist/tools/lib/api-utils.js +128 -0
  537. package/dist/tools/lib/bgee-client.d.ts +36 -0
  538. package/dist/tools/lib/bgee-client.js +150 -0
  539. package/dist/tools/lib/cbioportal-client.d.ts +34 -0
  540. package/dist/tools/lib/cbioportal-client.js +159 -0
  541. package/dist/tools/lib/chembl-client.d.ts +123 -0
  542. package/dist/tools/lib/chembl-client.js +458 -0
  543. package/dist/tools/lib/chembl-config.d.ts +5 -0
  544. package/dist/tools/lib/chembl-config.js +3 -0
  545. package/dist/tools/lib/clinical-benchmarks-client.d.ts +33 -0
  546. package/dist/tools/lib/clinical-benchmarks-client.js +54 -0
  547. package/dist/tools/lib/clinical-trials-client.d.ts +216 -0
  548. package/dist/tools/lib/clinical-trials-client.js +339 -0
  549. package/dist/tools/lib/clinicaltrials-config.d.ts +4 -0
  550. package/dist/tools/lib/clinicaltrials-config.js +2 -0
  551. package/dist/tools/lib/clinvar-client.d.ts +25 -0
  552. package/dist/tools/lib/clinvar-client.js +126 -0
  553. package/dist/tools/lib/disgenet-config.d.ts +2 -0
  554. package/dist/tools/lib/disgenet-config.js +11 -0
  555. package/dist/tools/lib/drugbank-config.d.ts +2 -0
  556. package/dist/tools/lib/drugbank-config.js +12 -0
  557. package/dist/tools/lib/ema-client.d.ts +45 -0
  558. package/dist/tools/lib/ema-client.js +127 -0
  559. package/dist/tools/lib/ema-config.d.ts +7 -0
  560. package/dist/tools/lib/ema-config.js +7 -0
  561. package/dist/tools/lib/ensembl-client.d.ts +27 -0
  562. package/dist/tools/lib/ensembl-client.js +82 -0
  563. package/dist/tools/lib/gwas-catalog-config.d.ts +4 -0
  564. package/dist/tools/lib/gwas-catalog-config.js +2 -0
  565. package/dist/tools/lib/identifier-resolver.d.ts +85 -0
  566. package/dist/tools/lib/identifier-resolver.js +333 -0
  567. package/dist/tools/lib/impc-client.d.ts +44 -0
  568. package/dist/tools/lib/impc-client.js +239 -0
  569. package/dist/tools/lib/iuphar-client.d.ts +75 -0
  570. package/dist/tools/lib/iuphar-client.js +230 -0
  571. package/dist/tools/lib/iuphar-config.d.ts +5 -0
  572. package/dist/tools/lib/iuphar-config.js +3 -0
  573. package/dist/tools/lib/ncbi-utils.d.ts +58 -0
  574. package/dist/tools/lib/ncbi-utils.js +286 -0
  575. package/dist/tools/lib/openfda-client.d.ts +53 -0
  576. package/dist/tools/lib/openfda-client.js +192 -0
  577. package/dist/tools/lib/openfda-config.d.ts +2 -0
  578. package/dist/tools/lib/openfda-config.js +2 -0
  579. package/dist/tools/lib/opentargets-client.d.ts +64 -0
  580. package/dist/tools/lib/opentargets-client.js +290 -0
  581. package/dist/tools/lib/opentargets-config.d.ts +5 -0
  582. package/dist/tools/lib/opentargets-config.js +5 -0
  583. package/dist/tools/lib/path-validation.d.ts +14 -0
  584. package/dist/tools/lib/path-validation.js +26 -0
  585. package/dist/tools/lib/pathway-client.d.ts +27 -0
  586. package/dist/tools/lib/pathway-client.js +149 -0
  587. package/dist/tools/lib/pharmgkb-config.d.ts +4 -0
  588. package/dist/tools/lib/pharmgkb-config.js +2 -0
  589. package/dist/tools/lib/preview-lock.d.ts +20 -0
  590. package/dist/tools/lib/preview-lock.js +35 -0
  591. package/dist/tools/lib/protein-family-modality.d.ts +16 -0
  592. package/dist/tools/lib/protein-family-modality.js +42 -0
  593. package/dist/tools/lib/protein-family-normalize.d.ts +12 -0
  594. package/dist/tools/lib/protein-family-normalize.js +46 -0
  595. package/dist/tools/lib/pubchem-client.d.ts +40 -0
  596. package/dist/tools/lib/pubchem-client.js +128 -0
  597. package/dist/tools/lib/pubchem-config.d.ts +5 -0
  598. package/dist/tools/lib/pubchem-config.js +3 -0
  599. package/dist/tools/lib/pubmed-client.d.ts +28 -0
  600. package/dist/tools/lib/pubmed-client.js +91 -0
  601. package/dist/tools/lib/report-preflight.d.ts +39 -0
  602. package/dist/tools/lib/report-preflight.js +283 -0
  603. package/dist/tools/lib/string-client.d.ts +33 -0
  604. package/dist/tools/lib/string-client.js +93 -0
  605. package/dist/tools/lib/toxcast-config.d.ts +2 -0
  606. package/dist/tools/lib/toxcast-config.js +11 -0
  607. package/dist/tools/lib/uniprot-client.d.ts +28 -0
  608. package/dist/tools/lib/uniprot-client.js +103 -0
  609. package/dist/tools/lib/uniprot-config.d.ts +5 -0
  610. package/dist/tools/lib/uniprot-config.js +3 -0
  611. package/dist/tools/memory/index.d.ts +4 -0
  612. package/dist/tools/memory/index.js +4 -0
  613. package/dist/tools/memory/update-working-memory.d.ts +25 -0
  614. package/dist/tools/memory/update-working-memory.js +112 -0
  615. package/dist/tools/registry.d.ts +15 -0
  616. package/dist/tools/registry.js +26 -0
  617. package/dist/tools/report/build-report.d.ts +13 -0
  618. package/dist/tools/report/build-report.js +26 -0
  619. package/dist/tools/report/index.d.ts +14 -0
  620. package/dist/tools/report/index.js +14 -0
  621. package/dist/tools/report/mint-preview-url.d.ts +26 -0
  622. package/dist/tools/report/mint-preview-url.js +44 -0
  623. package/dist/tools/report/preview-publisher.d.ts +37 -0
  624. package/dist/tools/report/preview-publisher.js +25 -0
  625. package/dist/tools/report/preview-snapshot.d.ts +26 -0
  626. package/dist/tools/report/preview-snapshot.js +121 -0
  627. package/dist/tools/report/submit-report.d.ts +25 -0
  628. package/dist/tools/report/submit-report.js +126 -0
  629. package/dist/tools/report/version-fs.d.ts +15 -0
  630. package/dist/tools/report/version-fs.js +154 -0
  631. package/dist/tools/research/context7-docs.d.ts +31 -0
  632. package/dist/tools/research/context7-docs.js +61 -0
  633. package/dist/tools/research/generate-analogy-report.d.ts +60 -0
  634. package/dist/tools/research/generate-analogy-report.js +288 -0
  635. package/dist/tools/research/generate-plan.d.ts +39 -0
  636. package/dist/tools/research/generate-plan.js +393 -0
  637. package/dist/tools/research/index.d.ts +15 -0
  638. package/dist/tools/research/index.js +15 -0
  639. package/dist/tools/research/inspect-run.d.ts +54 -0
  640. package/dist/tools/research/inspect-run.js +85 -0
  641. package/dist/tools/research/literature-reviewer.d.ts +29 -0
  642. package/dist/tools/research/literature-reviewer.js +84 -0
  643. package/dist/tools/research/search-arxiv.d.ts +32 -0
  644. package/dist/tools/research/search-arxiv.js +123 -0
  645. package/dist/tools/research/search-github-repos.d.ts +32 -0
  646. package/dist/tools/research/search-github-repos.js +86 -0
  647. package/dist/tools/research/search-semantic-scholar.d.ts +33 -0
  648. package/dist/tools/research/search-semantic-scholar.js +93 -0
  649. package/dist/tools/run-ephemeral.d.ts +33 -0
  650. package/dist/tools/run-ephemeral.js +65 -0
  651. package/dist/tools/sandbox/index.d.ts +7 -0
  652. package/dist/tools/sandbox/index.js +7 -0
  653. package/dist/tools/sandbox/list-available-packages.d.ts +7 -0
  654. package/dist/tools/sandbox/list-available-packages.js +27 -0
  655. package/dist/tools/sandbox/list-available-refs.d.ts +7 -0
  656. package/dist/tools/sandbox/list-available-refs.js +147 -0
  657. package/dist/tools/sandbox/report-blocker.d.ts +23 -0
  658. package/dist/tools/sandbox/report-blocker.js +39 -0
  659. package/dist/tools/sandbox/skills.d.ts +72 -0
  660. package/dist/tools/sandbox/skills.js +144 -0
  661. package/dist/tools/workspace/edit-file.d.ts +46 -0
  662. package/dist/tools/workspace/edit-file.js +100 -0
  663. package/dist/tools/workspace/execute-command.d.ts +80 -0
  664. package/dist/tools/workspace/execute-command.js +95 -0
  665. package/dist/tools/workspace/file-stat.d.ts +24 -0
  666. package/dist/tools/workspace/file-stat.js +37 -0
  667. package/dist/tools/workspace/grep.d.ts +57 -0
  668. package/dist/tools/workspace/grep.js +154 -0
  669. package/dist/tools/workspace/index.d.ts +26 -0
  670. package/dist/tools/workspace/index.js +27 -0
  671. package/dist/tools/workspace/list-files.d.ts +24 -0
  672. package/dist/tools/workspace/list-files.js +38 -0
  673. package/dist/tools/workspace/mutator.d.ts +83 -0
  674. package/dist/tools/workspace/mutator.js +81 -0
  675. package/dist/tools/workspace/read-file.d.ts +39 -0
  676. package/dist/tools/workspace/read-file.js +93 -0
  677. package/dist/tools/workspace/result-bounds.d.ts +42 -0
  678. package/dist/tools/workspace/result-bounds.js +50 -0
  679. package/dist/tools/workspace/run-exec.d.ts +32 -0
  680. package/dist/tools/workspace/run-exec.js +34 -0
  681. package/dist/tools/workspace/show-file.d.ts +37 -0
  682. package/dist/tools/workspace/show-file.js +54 -0
  683. package/dist/tools/workspace/show-plan.d.ts +23 -0
  684. package/dist/tools/workspace/show-plan.js +44 -0
  685. package/dist/tools/workspace/workspace-search.d.ts +25 -0
  686. package/dist/tools/workspace/workspace-search.js +78 -0
  687. package/dist/tools/workspace/write-file.d.ts +16 -0
  688. package/dist/tools/workspace/write-file.js +33 -0
  689. package/dist/workflows/execute-analysis-scheduler.d.ts +94 -0
  690. package/dist/workflows/execute-analysis-scheduler.js +186 -0
  691. package/dist/workflows/execute-analysis.d.ts +271 -0
  692. package/dist/workflows/execute-analysis.js +746 -0
  693. package/dist/workflows/execute-target-assessment.d.ts +101 -0
  694. package/dist/workflows/execute-target-assessment.js +528 -0
  695. package/dist/workflows/metrics.d.ts +37 -0
  696. package/dist/workflows/metrics.js +55 -0
  697. package/dist/workflows/plan/level.d.ts +12 -0
  698. package/dist/workflows/plan/level.js +12 -0
  699. package/dist/workflows/register-workflows.d.ts +51 -0
  700. package/dist/workflows/register-workflows.js +48 -0
  701. package/dist/workflows/resume-execute-analysis.d.ts +70 -0
  702. package/dist/workflows/resume-execute-analysis.js +80 -0
  703. package/dist/workflows/sandbox-step.d.ts +243 -0
  704. package/dist/workflows/sandbox-step.js +573 -0
  705. package/dist/workflows/target-assessment/assemblers/index.d.ts +5 -0
  706. package/dist/workflows/target-assessment/assemblers/index.js +4 -0
  707. package/dist/workflows/target-assessment/assemblers/literature.d.ts +299 -0
  708. package/dist/workflows/target-assessment/assemblers/literature.js +987 -0
  709. package/dist/workflows/target-assessment/assemblers/orchestrator.d.ts +109 -0
  710. package/dist/workflows/target-assessment/assemblers/orchestrator.js +835 -0
  711. package/dist/workflows/target-assessment/assemblers/safety.d.ts +352 -0
  712. package/dist/workflows/target-assessment/assemblers/safety.js +985 -0
  713. package/dist/workflows/target-assessment/assemblers/trials.d.ts +30 -0
  714. package/dist/workflows/target-assessment/assemblers/trials.js +75 -0
  715. package/dist/workflows/target-assessment/collectors/index.d.ts +105 -0
  716. package/dist/workflows/target-assessment/collectors/index.js +468 -0
  717. package/dist/workflows/target-assessment/correction-loop.d.ts +45 -0
  718. package/dist/workflows/target-assessment/correction-loop.js +62 -0
  719. package/dist/workflows/target-assessment/coverage.d.ts +81 -0
  720. package/dist/workflows/target-assessment/coverage.js +82 -0
  721. package/dist/workflows/target-assessment/decisions/index.d.ts +86 -0
  722. package/dist/workflows/target-assessment/decisions/index.js +127 -0
  723. package/dist/workflows/target-assessment/fanout/index.d.ts +31 -0
  724. package/dist/workflows/target-assessment/fanout/index.js +155 -0
  725. package/dist/workflows/target-assessment/lib/approval-precedents.d.ts +52 -0
  726. package/dist/workflows/target-assessment/lib/approval-precedents.js +119 -0
  727. package/dist/workflows/target-assessment/lib/citation-validator.d.ts +46 -0
  728. package/dist/workflows/target-assessment/lib/citation-validator.js +316 -0
  729. package/dist/workflows/target-assessment/lib/clinical-consequence-annotator.d.ts +62 -0
  730. package/dist/workflows/target-assessment/lib/clinical-consequence-annotator.js +172 -0
  731. package/dist/workflows/target-assessment/lib/clinical-evidence-attribution.d.ts +45 -0
  732. package/dist/workflows/target-assessment/lib/clinical-evidence-attribution.js +156 -0
  733. package/dist/workflows/target-assessment/lib/compute-derived.d.ts +19 -0
  734. package/dist/workflows/target-assessment/lib/compute-derived.js +252 -0
  735. package/dist/workflows/target-assessment/lib/compute-selectivity.d.ts +15 -0
  736. package/dist/workflows/target-assessment/lib/compute-selectivity.js +18 -0
  737. package/dist/workflows/target-assessment/lib/dedup-modulators.d.ts +37 -0
  738. package/dist/workflows/target-assessment/lib/dedup-modulators.js +157 -0
  739. package/dist/workflows/target-assessment/lib/evidence-conflict-detector.d.ts +17 -0
  740. package/dist/workflows/target-assessment/lib/evidence-conflict-detector.js +100 -0
  741. package/dist/workflows/target-assessment/lib/expression-constants.d.ts +21 -0
  742. package/dist/workflows/target-assessment/lib/expression-constants.js +21 -0
  743. package/dist/workflows/target-assessment/lib/family-complex-supplement.d.ts +21 -0
  744. package/dist/workflows/target-assessment/lib/family-complex-supplement.js +37 -0
  745. package/dist/workflows/target-assessment/lib/heterodimer-filter.d.ts +39 -0
  746. package/dist/workflows/target-assessment/lib/heterodimer-filter.js +54 -0
  747. package/dist/workflows/target-assessment/lib/intended-polypharm-filter.d.ts +4 -0
  748. package/dist/workflows/target-assessment/lib/intended-polypharm-filter.js +24 -0
  749. package/dist/workflows/target-assessment/lib/llm-step.d.ts +77 -0
  750. package/dist/workflows/target-assessment/lib/llm-step.js +99 -0
  751. package/dist/workflows/target-assessment/lib/meddra-organ-map.d.ts +30 -0
  752. package/dist/workflows/target-assessment/lib/meddra-organ-map.js +126 -0
  753. package/dist/workflows/target-assessment/lib/recommendation-quality-gates.d.ts +17 -0
  754. package/dist/workflows/target-assessment/lib/recommendation-quality-gates.js +99 -0
  755. package/dist/workflows/target-assessment/lib/recommendation-sanitizer.d.ts +2 -0
  756. package/dist/workflows/target-assessment/lib/recommendation-sanitizer.js +51 -0
  757. package/dist/workflows/target-assessment/lib/regulatory-actions.d.ts +26 -0
  758. package/dist/workflows/target-assessment/lib/regulatory-actions.js +147 -0
  759. package/dist/workflows/target-assessment/lib/structured-llm.d.ts +58 -0
  760. package/dist/workflows/target-assessment/lib/structured-llm.js +101 -0
  761. package/dist/workflows/target-assessment/lib/target-identity-filter.d.ts +60 -0
  762. package/dist/workflows/target-assessment/lib/target-identity-filter.js +86 -0
  763. package/dist/workflows/target-assessment/lib/therapeutic-programs.d.ts +20 -0
  764. package/dist/workflows/target-assessment/lib/therapeutic-programs.js +68 -0
  765. package/dist/workflows/target-assessment/metrics.d.ts +21 -0
  766. package/dist/workflows/target-assessment/metrics.js +42 -0
  767. package/dist/workflows/target-assessment/phase4-assemble.d.ts +1841 -0
  768. package/dist/workflows/target-assessment/phase4-assemble.js +39 -0
  769. package/dist/workflows/target-assessment/phase5-persist.d.ts +57 -0
  770. package/dist/workflows/target-assessment/phase5-persist.js +461 -0
  771. package/dist/workflows/target-assessment/progress.d.ts +38 -0
  772. package/dist/workflows/target-assessment/progress.js +76 -0
  773. package/dist/workflows/target-assessment/schemas.d.ts +931 -0
  774. package/dist/workflows/target-assessment/schemas.js +293 -0
  775. package/dist/workflows/target-assessment/steps/collectors/pathways.d.ts +15 -0
  776. package/dist/workflows/target-assessment/steps/collectors/pathways.js +58 -0
  777. package/dist/workflows/target-assessment/steps/fanout/aes-for-one-class-drug-step.d.ts +34 -0
  778. package/dist/workflows/target-assessment/steps/fanout/aes-for-one-class-drug-step.js +31 -0
  779. package/dist/workflows/target-assessment/steps/fanout/aes-for-one-trial-step.d.ts +57 -0
  780. package/dist/workflows/target-assessment/steps/fanout/aes-for-one-trial-step.js +54 -0
  781. package/dist/workflows/target-assessment/steps/fanout/faers-for-one-modulator-step.d.ts +35 -0
  782. package/dist/workflows/target-assessment/steps/fanout/faers-for-one-modulator-step.js +32 -0
  783. package/dist/workflows/target-assessment/steps/fanout/index.d.ts +14 -0
  784. package/dist/workflows/target-assessment/steps/fanout/index.js +10 -0
  785. package/dist/workflows/target-assessment/steps/fanout/polypharm-for-one-modulator-step.d.ts +28 -0
  786. package/dist/workflows/target-assessment/steps/fanout/polypharm-for-one-modulator-step.js +27 -0
  787. package/dist/workflows/target-assessment/steps/phase0-resolve.d.ts +71 -0
  788. package/dist/workflows/target-assessment/steps/phase0-resolve.js +21 -0
  789. package/dist/workflows/target-assessment/steps/phase1-aggregate.d.ts +1018 -0
  790. package/dist/workflows/target-assessment/steps/phase1-aggregate.js +25 -0
  791. package/dist/workflows/target-assessment/steps/phase2-aggregate.d.ts +696 -0
  792. package/dist/workflows/target-assessment/steps/phase2-aggregate.js +38 -0
  793. package/dist/workflows/target-assessment/steps/phase3-aggregate.d.ts +936 -0
  794. package/dist/workflows/target-assessment/steps/phase3-aggregate.js +22 -0
  795. package/dist/workflows/target-assessment/steps/synthesis/diagnostics.d.ts +34 -0
  796. package/dist/workflows/target-assessment/steps/synthesis/diagnostics.js +45 -0
  797. package/dist/workflows/target-assessment/sub-workflows/index.d.ts +15 -0
  798. package/dist/workflows/target-assessment/sub-workflows/index.js +11 -0
  799. package/dist/workflows/target-assessment/sub-workflows/per-class-drug-aes.d.ts +41 -0
  800. package/dist/workflows/target-assessment/sub-workflows/per-class-drug-aes.js +12 -0
  801. package/dist/workflows/target-assessment/sub-workflows/per-modulator-faers.d.ts +41 -0
  802. package/dist/workflows/target-assessment/sub-workflows/per-modulator-faers.js +12 -0
  803. package/dist/workflows/target-assessment/sub-workflows/per-modulator-polypharm.d.ts +36 -0
  804. package/dist/workflows/target-assessment/sub-workflows/per-modulator-polypharm.js +12 -0
  805. package/dist/workflows/target-assessment/sub-workflows/per-trial-aes.d.ts +66 -0
  806. package/dist/workflows/target-assessment/sub-workflows/per-trial-aes.js +12 -0
  807. package/dist/workflows/target-assessment/synthesis/index.d.ts +560 -0
  808. package/dist/workflows/target-assessment/synthesis/index.js +351 -0
  809. package/dist/workflows/target-assessment/synthesis-probes.d.ts +56 -0
  810. package/dist/workflows/target-assessment/synthesis-probes.js +320 -0
  811. package/dist/workspace/filesystem.d.ts +117 -0
  812. package/dist/workspace/filesystem.js +304 -0
  813. package/dist/workspace/mount-strategy.d.ts +50 -0
  814. package/dist/workspace/mount-strategy.js +67 -0
  815. package/dist/workspace/paths.d.ts +185 -0
  816. package/dist/workspace/paths.js +219 -0
  817. package/dist/workspace/provenance-collector.d.ts +34 -0
  818. package/dist/workspace/provenance-collector.js +16 -0
  819. package/dist/workspace/search-config.d.ts +23 -0
  820. package/dist/workspace/search-config.js +43 -0
  821. package/dist/workspace/workspace-paths.d.ts +26 -0
  822. package/dist/workspace/workspace-paths.js +31 -0
  823. package/package.json +101 -0
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Workflow-side OTel metrics → Middleware.io.
3
+ *
4
+ * Two signals so 3-hour runs and pause-resume cascades are observable:
5
+ * - cortex.workflow.parent.cancelled_children — counter, incremented once
6
+ * per child the fail-fast or pause cascade reaps. A baseline near 0
7
+ * means runs land cleanly; a spike means siblings keep colliding with
8
+ * a single failing step.
9
+ * - cortex.workflow.stream.bytes — counter, incremented by
10
+ * the byte count of every UI part written onto the DBOS stream. The
11
+ * leading indicator for 3-hour stream growth is monotonic — a runaway
12
+ * emitter shows up as an unbounded slope.
13
+ *
14
+ * Instruments are lazy so the workflow body binds to whichever
15
+ * `MeterProvider` is globally registered at startup.
16
+ */
17
+ import { metrics } from "@opentelemetry/api";
18
+ let instruments;
19
+ function getInstruments() {
20
+ if (instruments === undefined) {
21
+ const meter = metrics.getMeter("cortex.workflow");
22
+ instruments = {
23
+ cancelledChildren: meter.createCounter("cortex.workflow.parent.cancelled_children", {
24
+ description: "Children cancelled by the parent's fail-fast or pause cascade",
25
+ }),
26
+ streamBytes: meter.createCounter("cortex.workflow.stream.bytes", {
27
+ description: "Bytes written to the parent's DBOS UI-parts stream — proxy for " + "3-hour stream growth",
28
+ unit: "By",
29
+ }),
30
+ };
31
+ }
32
+ return instruments;
33
+ }
34
+ /**
35
+ * Record one child cancellation. The parent calls this once per
36
+ * `DBOS.cancelWorkflow(childWorkflowId)` in the cascade (fail-fast OR
37
+ * pause). `cause` distinguishes the two so dashboards can split the
38
+ * counter.
39
+ */
40
+ export function recordCancelledChild(args) {
41
+ getInstruments().cancelledChildren.add(1, { cause: args.cause });
42
+ }
43
+ /**
44
+ * Record one UI-part write. `bytes` is the serialised JSON size of the
45
+ * part as it lands on the stream; `kind` is the part `type` for
46
+ * dashboarding. The workflow body wraps its `DBOS.writeStream` call site
47
+ * so a single emitter records once per part.
48
+ */
49
+ export function recordStreamWrite(args) {
50
+ getInstruments().streamBytes.add(args.bytes, { kind: args.kind });
51
+ }
52
+ /** Test hook — drop memoised instruments to rebind a fresh MeterProvider. */
53
+ export function __resetWorkflowMetricsForTest() {
54
+ instruments = undefined;
55
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Per-step topological level for UI layout.
3
+ *
4
+ * Re-export of `computeTopologicalLevels` from the scheduler module under the
5
+ * name `computeStepLevels` — the react-client `DagStepState.level` contract.
6
+ * Level 0 = no deps; level N = max(level(deps)) + 1. Layout-only — does NOT
7
+ * gate execution. Two steps at the same level may run / complete in any order.
8
+ *
9
+ * Pre-condition: `validatePlanDag` has been called. Behaviour is undefined on
10
+ * an invalid DAG; the cycle / missing-dep cases are surfaced by validation.
11
+ */
12
+ export { computeTopologicalLevels as computeStepLevels, type PlanStep } from "../execute-analysis-scheduler.js";
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Per-step topological level for UI layout.
3
+ *
4
+ * Re-export of `computeTopologicalLevels` from the scheduler module under the
5
+ * name `computeStepLevels` — the react-client `DagStepState.level` contract.
6
+ * Level 0 = no deps; level N = max(level(deps)) + 1. Layout-only — does NOT
7
+ * gate execution. Two steps at the same level may run / complete in any order.
8
+ *
9
+ * Pre-condition: `validatePlanDag` has been called. Behaviour is undefined on
10
+ * an invalid DAG; the cycle / missing-dep cases are surfaced by validation.
11
+ */
12
+ export { computeTopologicalLevels as computeStepLevels } from "../execute-analysis-scheduler.js";
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Single registration call site for the analysis-side DBOS workflows.
3
+ *
4
+ * This module is the **one place** that calls `registerExecuteAnalysis` and
5
+ * `registerSandboxStep`, binding the parent + child workflow bodies to the
6
+ * running DBOS engine. Keeping both registrations in one file holds a single
7
+ * invariant: both workflows land under the same `applicationVersion` stamp
8
+ * that `launchDbos` writes onto the engine (`harness/runtime/dbos.ts`).
9
+ * Blue/green drains gate on `dbos.application_versions`, so registering the
10
+ * parent and child together under one stamp guarantees a drain treats them
11
+ * as one cohort.
12
+ *
13
+ * Deps are supplied by the composition root: `registerAnalysisWorkflows`
14
+ * takes a fully-formed deps bundle and passes each half straight through to
15
+ * the per-workflow register functions. This module constructs nothing —
16
+ * it only wires.
17
+ */
18
+ import { type ExecuteAnalysisDeps, type ExecuteAnalysisInput, type ExecuteAnalysisResult } from "./execute-analysis.js";
19
+ import { type SandboxStepDeps, type SandboxStepInput, type SandboxStepResult } from "./sandbox-step.js";
20
+ export interface AnalysisWorkflowDeps {
21
+ readonly executeAnalysis: ExecuteAnalysisDeps;
22
+ readonly sandboxStep: SandboxStepDeps;
23
+ }
24
+ export interface RegisteredAnalysisWorkflows {
25
+ readonly executeAnalysis: (input: ExecuteAnalysisInput) => Promise<ExecuteAnalysisResult>;
26
+ readonly sandboxStep: (input: SandboxStepInput) => Promise<SandboxStepResult>;
27
+ }
28
+ /**
29
+ * Register the parent + child workflows with the running DBOS engine.
30
+ *
31
+ * Call this BEFORE `launchDbos`: `DBOS.launch()` runs recovery synchronously and
32
+ * resolves in-flight workflows by their registered name, so a workflow that is
33
+ * not registered at launch cannot be reclaimed. `runtime/assemble.ts` — the
34
+ * declared source of truth for wiring order — registers every workflow before
35
+ * launch for exactly this reason, and the embedded runtime does the same.
36
+ * Idempotency is owned by the SDK — calling twice with the same name is a
37
+ * `DBOS.registerWorkflow` invariant violation, not something this module
38
+ * guards against.
39
+ *
40
+ * Scope: this helper takes a fully-formed `AnalysisWorkflowDeps`, so it fits
41
+ * only a caller that already holds a registered sandbox-step callable —
42
+ * `ExecuteAnalysisDeps.sandboxStepCallable` (inside `deps.executeAnalysis`)
43
+ * exists only after `registerSandboxStep` has run. A caller that still needs
44
+ * that child callable must instead register the two workflows directly in
45
+ * assemble-order — register the child first, then feed its callable into the
46
+ * parent's deps — the way `runtime/assemble.ts` does; registering the child
47
+ * here as well would make its `registerSandboxStep` a second registration under
48
+ * the same name, which the SDK rejects. No in-tree caller holds a
49
+ * pre-registered child callable, so this helper is currently uncalled.
50
+ */
51
+ export declare function registerAnalysisWorkflows(deps: AnalysisWorkflowDeps): RegisteredAnalysisWorkflows;
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Single registration call site for the analysis-side DBOS workflows.
3
+ *
4
+ * This module is the **one place** that calls `registerExecuteAnalysis` and
5
+ * `registerSandboxStep`, binding the parent + child workflow bodies to the
6
+ * running DBOS engine. Keeping both registrations in one file holds a single
7
+ * invariant: both workflows land under the same `applicationVersion` stamp
8
+ * that `launchDbos` writes onto the engine (`harness/runtime/dbos.ts`).
9
+ * Blue/green drains gate on `dbos.application_versions`, so registering the
10
+ * parent and child together under one stamp guarantees a drain treats them
11
+ * as one cohort.
12
+ *
13
+ * Deps are supplied by the composition root: `registerAnalysisWorkflows`
14
+ * takes a fully-formed deps bundle and passes each half straight through to
15
+ * the per-workflow register functions. This module constructs nothing —
16
+ * it only wires.
17
+ */
18
+ import { registerExecuteAnalysis } from "./execute-analysis.js";
19
+ import { registerSandboxStep } from "./sandbox-step.js";
20
+ /**
21
+ * Register the parent + child workflows with the running DBOS engine.
22
+ *
23
+ * Call this BEFORE `launchDbos`: `DBOS.launch()` runs recovery synchronously and
24
+ * resolves in-flight workflows by their registered name, so a workflow that is
25
+ * not registered at launch cannot be reclaimed. `runtime/assemble.ts` — the
26
+ * declared source of truth for wiring order — registers every workflow before
27
+ * launch for exactly this reason, and the embedded runtime does the same.
28
+ * Idempotency is owned by the SDK — calling twice with the same name is a
29
+ * `DBOS.registerWorkflow` invariant violation, not something this module
30
+ * guards against.
31
+ *
32
+ * Scope: this helper takes a fully-formed `AnalysisWorkflowDeps`, so it fits
33
+ * only a caller that already holds a registered sandbox-step callable —
34
+ * `ExecuteAnalysisDeps.sandboxStepCallable` (inside `deps.executeAnalysis`)
35
+ * exists only after `registerSandboxStep` has run. A caller that still needs
36
+ * that child callable must instead register the two workflows directly in
37
+ * assemble-order — register the child first, then feed its callable into the
38
+ * parent's deps — the way `runtime/assemble.ts` does; registering the child
39
+ * here as well would make its `registerSandboxStep` a second registration under
40
+ * the same name, which the SDK rejects. No in-tree caller holds a
41
+ * pre-registered child callable, so this helper is currently uncalled.
42
+ */
43
+ export function registerAnalysisWorkflows(deps) {
44
+ return {
45
+ executeAnalysis: registerExecuteAnalysis(deps.executeAnalysis),
46
+ sandboxStep: registerSandboxStep(deps.sandboxStep),
47
+ };
48
+ }
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Resume helper for the `executeAnalysis` parent workflow.
3
+ *
4
+ * The actual resume *entry-point* (the HTTP route, the operator CLI hook,
5
+ * the analytics-tier replay) is owned by change 9 — that change exposes
6
+ * resume to the world. This module owns the **internal contract** every
7
+ * resume call site MUST satisfy so the parent body re-opens the running
8
+ * charge correctly after a 402 pause.
9
+ *
10
+ * Contract:
11
+ *
12
+ * 1. Call `prepareExecuteAnalysisResume(pool, parentWorkflowId)` BEFORE
13
+ * `DBOS.resumeWorkflow(parentWorkflowId)`.
14
+ * 2. The helper finds the cortex_runs row by `workflow_id`, atomically
15
+ * bumps `attempt_count`, and returns the new attempt + the runId.
16
+ * Children that are still CANCELLED need an explicit
17
+ * `DBOS.resumeWorkflow(childWorkflowId)` from the caller; completed
18
+ * children's `getResult` returns from the DBOS cache.
19
+ * 3. On resume the parent body reads the bumped attempt_count and uses
20
+ * it in `open-running-charge:${attempt}` / `close-running-charge:${attempt}`
21
+ * / `revoke-run-auth:${attempt}` so each step name has never been
22
+ * cached. A fresh managed-root charge is opened to replace the one that
23
+ * closed with `budget_exceeded` on the pause.
24
+ * 4. The same attempt is passed through to children via
25
+ * `SandboxStepInput.attempt`, where it drives
26
+ * `attemptStepNameFormatter` and so the resumed LLM calls miss the
27
+ * prior cached 402 and fire fresh (NOTES #3).
28
+ * 5. The workflow id and run id MUST NOT change across resume:
29
+ * `cortex_runs.workflow_id` is rewritten by nothing in this code
30
+ * path. The whole point of the bumped attempt counter is that the
31
+ * same workflow id can survive multiple resumes without cache
32
+ * collisions.
33
+ *
34
+ * Failure modes:
35
+ *
36
+ * - The row does not exist → `MissingRunError`. Caller MUST surface a 404
37
+ * to the originating operator; do NOT call `DBOS.resumeWorkflow` on a
38
+ * missing run.
39
+ * - The row's status is terminal (`completed`/`partial`/`failed`/`canceled`
40
+ * without `suspended_insufficient_funds` on the analysis): the helper
41
+ * still bumps the counter so a defensive retry is harmless, but the
42
+ * caller SHOULD skip the resume — the workflow already ran to
43
+ * completion. Change 9's entry point owns this guard.
44
+ */
45
+ import type { Pool } from "pg";
46
+ import type { CortexRunRow } from "../state/schema.js";
47
+ export declare class MissingRunError extends Error {
48
+ readonly workflowId: string;
49
+ constructor(workflowId: string);
50
+ }
51
+ export interface PrepareResumeResult {
52
+ readonly runId: string;
53
+ readonly workflowId: string;
54
+ readonly attempt: number;
55
+ readonly previousStatus: CortexRunRow["status"];
56
+ }
57
+ /**
58
+ * Bump the parent-workflow resume attempt counter and return the new
59
+ * value. The caller invokes `DBOS.resumeWorkflow(workflowId)` immediately
60
+ * after; the resumed parent body reads the bumped counter and re-opens
61
+ * the running charge with a step name that has never been cached.
62
+ *
63
+ * `workflowId` and `runId` are the same bare UUID — `cortex_runs.run_id`
64
+ * IS the DBOS workflowID.
65
+ *
66
+ * Idempotency: each call bumps once. A double-call before
67
+ * `DBOS.resumeWorkflow` is harmless — both step names are misses and the
68
+ * close on the just-opened charge will still cleanly land.
69
+ */
70
+ export declare function prepareExecuteAnalysisResume(pool: Pool, workflowId: string): Promise<PrepareResumeResult>;
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Resume helper for the `executeAnalysis` parent workflow.
3
+ *
4
+ * The actual resume *entry-point* (the HTTP route, the operator CLI hook,
5
+ * the analytics-tier replay) is owned by change 9 — that change exposes
6
+ * resume to the world. This module owns the **internal contract** every
7
+ * resume call site MUST satisfy so the parent body re-opens the running
8
+ * charge correctly after a 402 pause.
9
+ *
10
+ * Contract:
11
+ *
12
+ * 1. Call `prepareExecuteAnalysisResume(pool, parentWorkflowId)` BEFORE
13
+ * `DBOS.resumeWorkflow(parentWorkflowId)`.
14
+ * 2. The helper finds the cortex_runs row by `workflow_id`, atomically
15
+ * bumps `attempt_count`, and returns the new attempt + the runId.
16
+ * Children that are still CANCELLED need an explicit
17
+ * `DBOS.resumeWorkflow(childWorkflowId)` from the caller; completed
18
+ * children's `getResult` returns from the DBOS cache.
19
+ * 3. On resume the parent body reads the bumped attempt_count and uses
20
+ * it in `open-running-charge:${attempt}` / `close-running-charge:${attempt}`
21
+ * / `revoke-run-auth:${attempt}` so each step name has never been
22
+ * cached. A fresh managed-root charge is opened to replace the one that
23
+ * closed with `budget_exceeded` on the pause.
24
+ * 4. The same attempt is passed through to children via
25
+ * `SandboxStepInput.attempt`, where it drives
26
+ * `attemptStepNameFormatter` and so the resumed LLM calls miss the
27
+ * prior cached 402 and fire fresh (NOTES #3).
28
+ * 5. The workflow id and run id MUST NOT change across resume:
29
+ * `cortex_runs.workflow_id` is rewritten by nothing in this code
30
+ * path. The whole point of the bumped attempt counter is that the
31
+ * same workflow id can survive multiple resumes without cache
32
+ * collisions.
33
+ *
34
+ * Failure modes:
35
+ *
36
+ * - The row does not exist → `MissingRunError`. Caller MUST surface a 404
37
+ * to the originating operator; do NOT call `DBOS.resumeWorkflow` on a
38
+ * missing run.
39
+ * - The row's status is terminal (`completed`/`partial`/`failed`/`canceled`
40
+ * without `suspended_insufficient_funds` on the analysis): the helper
41
+ * still bumps the counter so a defensive retry is harmless, but the
42
+ * caller SHOULD skip the resume — the workflow already ran to
43
+ * completion. Change 9's entry point owns this guard.
44
+ */
45
+ import { unwrapOrThrow } from "../lib/result.js";
46
+ import { bumpRunAttemptCount, queryRun } from "../state/index.js";
47
+ export class MissingRunError extends Error {
48
+ workflowId;
49
+ constructor(workflowId) {
50
+ super(`No cortex_runs row found for run_id=${workflowId}`);
51
+ this.workflowId = workflowId;
52
+ this.name = "MissingRunError";
53
+ }
54
+ }
55
+ /**
56
+ * Bump the parent-workflow resume attempt counter and return the new
57
+ * value. The caller invokes `DBOS.resumeWorkflow(workflowId)` immediately
58
+ * after; the resumed parent body reads the bumped counter and re-opens
59
+ * the running charge with a step name that has never been cached.
60
+ *
61
+ * `workflowId` and `runId` are the same bare UUID — `cortex_runs.run_id`
62
+ * IS the DBOS workflowID.
63
+ *
64
+ * Idempotency: each call bumps once. A double-call before
65
+ * `DBOS.resumeWorkflow` is harmless — both step names are misses and the
66
+ * close on the just-opened charge will still cleanly land.
67
+ */
68
+ export async function prepareExecuteAnalysisResume(pool, workflowId) {
69
+ const row = unwrapOrThrow(await queryRun(pool, workflowId));
70
+ if (!row) {
71
+ throw new MissingRunError(workflowId);
72
+ }
73
+ const attempt = unwrapOrThrow(await bumpRunAttemptCount(pool, row.runId));
74
+ return {
75
+ runId: row.runId,
76
+ workflowId,
77
+ attempt,
78
+ previousStatus: row.status,
79
+ };
80
+ }
@@ -0,0 +1,243 @@
1
+ /**
2
+ * `sandbox-step` — the per-step DBOS child workflow that drives one
3
+ * sandbox-agent execution and its post-step bookkeeping.
4
+ *
5
+ * Structure (each block runs as a `DBOS.runStep` so a crashed workflow
6
+ * replays from the cache instead of re-issuing work):
7
+ *
8
+ * 1. `mark-running` — update `cortex_step_executions` to running.
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
+ * Catches `isBudgetExceeded` and self-cancels
13
+ * via `DBOS.cancelWorkflow(self)` to CANCELLED
14
+ * (resumable, not ERROR).
15
+ * 4. `generateFileMetadata`— post-step LLM call (chunked, slice-to-length).
16
+ * 5. `generateStepSummary` — post-step LLM call producing `output/summary.md`.
17
+ * 6. `reconcile + register`— write artifact manifest entries to cortex_artifacts.
18
+ * 7. `syncArtifacts` — register provenance + upload missing file_ids
19
+ * via the managed root (scoped to this run+step).
20
+ * 8. `vector-index` — index file descriptions + summary into pgvector.
21
+ * 9. `teardown` — destroy the sandbox + clear sandbox_ref.
22
+ * 10. `mark-terminal` — write the final status, emit `data-step-activity`
23
+ * onto the parent's DBOS stream.
24
+ *
25
+ * The parent owns sibling lifecycle: fail-fast and 402-cascade live on the
26
+ * parent (`executeAnalysis`). This child only owns its own teardown and
27
+ * its own self-cancel on 402.
28
+ */
29
+ import type { Pool } from "pg";
30
+ import type { AgentDefinition, LoopMessage } from "../loop/types.js";
31
+ import type { AgentChat, EmbeddingProvider } from "../providers/types.js";
32
+ import { type RunSession } from "../auth/types.js";
33
+ import type { FileMetadataEntry } from "../execution/artifact-metadata.js";
34
+ import type { ArtifactManifestEntry } from "../schemas/artifact-manifest.js";
35
+ import type { StepSummary } from "../schemas/step-summary.js";
36
+ import type { SandboxClient } from "../sandbox/client.js";
37
+ import type { WorkspaceFilesystem } from "../workspace/filesystem.js";
38
+ import type { ResolveWorkspaceRoot } from "../workspace/paths.js";
39
+ import type { ArtifactRegistry } from "../execution/artifact-registry.js";
40
+ import type { ResourceSpec } from "../config/resource-limits.js";
41
+ import type { SandboxRef } from "../sandbox/types.js";
42
+ import { ProvenanceCollector } from "../provenance/collector.js";
43
+ import { type BlockerHolder } from "../tools/sandbox/report-blocker.js";
44
+ /**
45
+ * Input the parent hands the child. Must be JSON-serialisable — DBOS
46
+ * persists this as the workflow's input row.
47
+ */
48
+ export interface SandboxStepInput {
49
+ readonly analysisId: string;
50
+ readonly runId: string;
51
+ readonly stepId: string;
52
+ readonly agentId: string;
53
+ /** Topological level — persisted on `cortex_step_executions.wave`. */
54
+ readonly level: number;
55
+ /** User-content prompt the agent receives as its initial message. */
56
+ readonly prompt: string;
57
+ /**
58
+ * DBOS workflow id of the parent (`executeAnalysis`). The child uses
59
+ * this to address the parent for the budget-exceeded side-channel
60
+ * (`DBOS.send(parent, …, "child-budget-exceeded")`) — the parent's
61
+ * scheduler-loop classifier relies on it to disambiguate a budget-induced
62
+ * self-cancel from an operator-driven sibling cancel (CANCELLED is the
63
+ * same terminal state for both).
64
+ */
65
+ readonly parentWorkflowId: string;
66
+ /** Sandbox image override; falls back to the child's configured default. */
67
+ readonly image?: string;
68
+ /** Per-step env overrides forwarded to sandbox-server. */
69
+ readonly extraEnv?: Record<string, string>;
70
+ /** Planner-estimated CPU/memory/GPU request for this step's sandbox. */
71
+ readonly resources: ResourceSpec;
72
+ /**
73
+ * Per-step execution budget in seconds. The body translates this into the
74
+ * absolute unix-ms deadline that `awaitExec` honours as its durable
75
+ * backstop. Comes from the plan's `step.timeout` (defaulted on the parent
76
+ * side); falls back to `DEFAULT_STEP_TIMEOUT_SECONDS` when unset so a
77
+ * client that omits the field still gets a non-pathological ceiling.
78
+ */
79
+ readonly timeoutSeconds?: number;
80
+ /**
81
+ * Durable `RunSession` derived by the parent via `forStep`. Carries the
82
+ * run-authorization credential, identity, scope, and `runFrame = { runId, stepId }`.
83
+ * DBOS replay reconstructs it on resume — the body never reads the JWT
84
+ * from `cortex_runs`.
85
+ */
86
+ readonly runSession: RunSession;
87
+ }
88
+ /**
89
+ * Fallback when the plan step omits `timeout`. Plans that need 3-hour runs
90
+ * declare it explicitly.
91
+ */
92
+ export declare const DEFAULT_STEP_TIMEOUT_SECONDS = 3600;
93
+ export type SandboxStepStatus = "complete" | "failed" | "canceled" | "blocked";
94
+ /**
95
+ * DBOS message topic the child uses to notify the parent that it is
96
+ * about to self-cancel because of a 402 budget-exceeded error. The
97
+ * notification fires BEFORE `DBOS.cancelWorkflow(self)` so the parent's
98
+ * concurrent recv accumulator records the child id before the child's
99
+ * terminal state lands. Without it the parent observes
100
+ * `DBOSWorkflowCancelledError` from `getResult` — a generic message that
101
+ * `isBudgetExceeded` does NOT match — and misclassifies the failure as
102
+ * fail-fast, skipping the 402 pause cascade.
103
+ */
104
+ export declare const BUDGET_EXCEEDED_TOPIC = "child-budget-exceeded";
105
+ export interface BudgetExceededNotification {
106
+ readonly childWorkflowId: string;
107
+ readonly stepId: string;
108
+ readonly error: string;
109
+ }
110
+ export interface SandboxStepResult {
111
+ readonly status: SandboxStepStatus;
112
+ readonly durationMs: number;
113
+ readonly finishReason: string | null;
114
+ readonly error: string | null;
115
+ }
116
+ /** One file in the step's terminal file tree / output listing. */
117
+ export interface StepFileEntry {
118
+ readonly path: string;
119
+ readonly size: number;
120
+ /** Schema-conformant `StepOutputFile.fileType`. */
121
+ readonly fileType: "script" | "output" | "figure" | "log" | "notebook" | "summary";
122
+ readonly description: string;
123
+ }
124
+ /**
125
+ * Post-step detail the body emits to the run stream once the bookkeeping
126
+ * helpers have run. Derived from the metadata entries, the generated step
127
+ * summary, and the reconciled artifact manifest. `collectStepOutputs`
128
+ * assembles it from the same stash the vector-index step consumes.
129
+ */
130
+ export interface StepOutputs {
131
+ /** Reconciled artifact files with category + description + size. */
132
+ readonly files: readonly StepFileEntry[];
133
+ /** Generated step summary markdown (empty when none produced). */
134
+ readonly summaryMarkdown: string;
135
+ }
136
+ /**
137
+ * The typed post-step products threaded through the workflow body: file
138
+ * descriptions, the interpretive summary, and the reconciled (phantom-dropped)
139
+ * artifact manifest. Each value is produced by one post-step dep and consumed
140
+ * by `collectStepOutputs` and the vector indexer — the body is the explicit
141
+ * composition, so the producer→consumer ordering is a type constraint rather
142
+ * than an implicit contract over shared mutable state.
143
+ */
144
+ export interface PostStepArtifacts {
145
+ readonly metadataEntries: readonly FileMetadataEntry[];
146
+ readonly summary: StepSummary | undefined;
147
+ readonly reconciledManifest: readonly ArtifactManifestEntry[];
148
+ }
149
+ /**
150
+ * Per-step coordinates the workflow body computes once and threads to the
151
+ * deps factory. The parent supplies the durable inputs; the factory
152
+ * supplies the live sandbox ref, the per-call function-id minter, and the
153
+ * deadline.
154
+ */
155
+ export interface SandboxAgentBuildContext {
156
+ readonly input: SandboxStepInput;
157
+ readonly session: RunSession;
158
+ readonly sandbox: SandboxRef;
159
+ /** Workflow-id used to scope sandbox callbacks + workspace mutate provenance. */
160
+ readonly workflowId: string;
161
+ readonly stepWritePrefix: string;
162
+ readonly nextFunctionId: () => string;
163
+ readonly deadlineMs: () => number;
164
+ /**
165
+ * Step-scoped lineage collector. The body owns one per step and threads
166
+ * it both here (so `execute_command` feeds each exec's provenance frame)
167
+ * and into `PostStepContext` (so registration reads the resulting
168
+ * input/script edges). Same instance on both paths.
169
+ */
170
+ readonly lineageCollector: ProvenanceCollector;
171
+ /**
172
+ * Per-run blocker cell (see the harness-sandbox-agents spec). The body owns it and reads
173
+ * `holder.outcome` after `runAgent`; the agent factory adds `report_blocker`
174
+ * bound to this holder.
175
+ */
176
+ readonly blockerHolder: BlockerHolder;
177
+ }
178
+ /**
179
+ * Inversion of control: the parent supplies the live agent, the parent's
180
+ * stream emitter, and the post-step helpers. Keeping the workflow body
181
+ * free of per-agent imports means it can drive every agent in the catalog
182
+ * without becoming a switch on agentId.
183
+ */
184
+ export interface SandboxStepDeps {
185
+ readonly pool: Pool;
186
+ /** Non-streaming chat — drives the agent loop + the post-step sub-agents. */
187
+ readonly provider: AgentChat;
188
+ /** Write-side embedder for the post-step vector index. */
189
+ readonly embedding: EmbeddingProvider;
190
+ readonly sandboxClient: SandboxClient;
191
+ /**
192
+ * External artifact registration + sync seam. The harness's post-step pipeline
193
+ * registers each step's outputs through it (filesystem index in the
194
+ * cloud-free build, external provenance ledger in the managed build).
195
+ */
196
+ readonly artifactRegistry: ArtifactRegistry;
197
+ /** Workspace read seam — backs `read_file` in the metadata + summary loops. */
198
+ readonly workspaceFs: WorkspaceFilesystem;
199
+ /** Workspace-root resolution seam (see workspace/paths.ts). */
200
+ readonly resolveWorkspaceRoot: ResolveWorkspaceRoot;
201
+ /** Sandbox model id — provenance label for metadata + summary generation. */
202
+ readonly model: string;
203
+ /**
204
+ * Build the agent definition for this step. The parent resolves the
205
+ * agent from the catalog, wires its workspace tools, and returns the
206
+ * configured `AgentDefinition` runAgent will drive.
207
+ */
208
+ buildAgent(ctx: SandboxAgentBuildContext): AgentDefinition;
209
+ /**
210
+ * Resolve the absolute writable artifact prefix for this step. The
211
+ * workspace mutate tools enforce write confinement against this path.
212
+ */
213
+ resolveWritePrefix(input: SandboxStepInput): string;
214
+ }
215
+ /**
216
+ * Per-step context passed to every post-step dep. Carries the durable input
217
+ * (analysisId/runId/stepId/agentId), the durable `RunSession`, the in-memory
218
+ * agent transcript, and the on-disk write prefix. The write prefix is the
219
+ * absolute path each post-step dep walks to discover artifacts;
220
+ * `lineageCollector` carries the runtime-observed input/script edges the
221
+ * step loop accumulated, which registration translates into managed-root parents.
222
+ */
223
+ export interface PostStepContext {
224
+ readonly input: SandboxStepInput;
225
+ readonly session: RunSession;
226
+ readonly transcript: readonly LoopMessage[];
227
+ /** Absolute path to the step's writable artifact directory. */
228
+ readonly writePrefix: string;
229
+ /** Sandbox handle id — informational only, used in log lines. */
230
+ readonly sandboxId: string;
231
+ /** Same step-scoped collector the agent loop fed each exec frame into. */
232
+ readonly lineageCollector: ProvenanceCollector;
233
+ }
234
+ /**
235
+ * Register the sandbox-step child workflow with DBOS. Returns the
236
+ * registered callable so callers can dispatch via `DBOS.startWorkflow`.
237
+ *
238
+ * Workflow version stamping is handled globally via `DBOS.setConfig({
239
+ * applicationVersion })` in `launchDbos` — DBOS records the running
240
+ * version on every workflow row automatically, so blue/green drains read
241
+ * `dbos.application_versions` without per-workflow config.
242
+ */
243
+ export declare function registerSandboxStep(deps: SandboxStepDeps): (input: SandboxStepInput) => Promise<SandboxStepResult>;