@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,296 @@
1
+ /**
2
+ * Step-level provenance collector — tracks inputs consumed and outputs
3
+ * produced within a single workflow step.
4
+ *
5
+ * Integrates with:
6
+ * - K8sSandbox executeCommand provenance (script reads + writes via inotify)
7
+ * - Data-mount filesystem write tracking (agent file-tool outputs)
8
+ *
9
+ * Input attribution comes exclusively from sandbox exec inotify (the
10
+ * authoritative record of what computation actually consumed). Agent
11
+ * tool reads are not tracked here — they're exploratory and would
12
+ * pollute the lineage graph.
13
+ */
14
+ // ── Script path inference ───────────────────────────────────────────
15
+ /** Known interpreter prefixes for script path extraction. */
16
+ const SCRIPT_PATTERNS = [/^python3?\s+(.+)$/, /^Rscript\s+(.+)$/, /^bash\s+(.+)$/, /^sh\s+(.+)$/];
17
+ /**
18
+ * Attempt to extract the script path from a command string.
19
+ * Returns the first argument that looks like a file path for known interpreters.
20
+ */
21
+ function inferScriptPath(command, args) {
22
+ const fullCommand = args?.length ? `${command} ${args.join(" ")}` : command;
23
+ for (const pattern of SCRIPT_PATTERNS) {
24
+ const match = fullCommand.match(pattern);
25
+ if (match?.[1]) {
26
+ // Take the first token (the script path), ignoring further args
27
+ return match[1].split(/\s+/)[0];
28
+ }
29
+ }
30
+ return null;
31
+ }
32
+ /**
33
+ * Build classification context for a file read using known step metadata.
34
+ *
35
+ * Uses prefix matching against structured metadata — no path segment
36
+ * extraction. The caller knows its own stepId/runId and its upstream
37
+ * dependencies (dependsOn).
38
+ *
39
+ * For prior-run reads (paths under runs/ that don't match own run or
40
+ * any dependsOn entry), this falls back to path extraction — see the
41
+ * prior-run branch below for why.
42
+ */
43
+ export function classifyReadPath(relativePath, ownStepId, ownRunId, dependsOn) {
44
+ if (relativePath.startsWith("data/") || relativePath.startsWith("dataprofile/")) {
45
+ return { source: "data" };
46
+ }
47
+ // Own artifacts: runs/{ownRunId}/{ownStepId}/...
48
+ const ownPrefix = `runs/${ownRunId}/${ownStepId}/`;
49
+ if (relativePath.startsWith(ownPrefix)) {
50
+ return { source: "artifacts", stepId: ownStepId, runId: ownRunId };
51
+ }
52
+ // Upstream dependencies: runs/{ownRunId}/{depStepId}/...
53
+ if (dependsOn) {
54
+ for (const depStepId of dependsOn) {
55
+ const upstreamPrefix = `runs/${ownRunId}/${depStepId}/`;
56
+ if (relativePath.startsWith(upstreamPrefix)) {
57
+ return { source: "upstream", stepId: depStepId, runId: ownRunId };
58
+ }
59
+ }
60
+ }
61
+ // Same-run sibling step. dependsOn only drives topo-sort ordering, not
62
+ // read authorization, so a read outside dependsOn is still a valid
63
+ // upstream input — just extract the stepId from the path.
64
+ const ownRunPrefix = `runs/${ownRunId}/`;
65
+ if (relativePath.startsWith(ownRunPrefix)) {
66
+ const afterRun = relativePath.slice(ownRunPrefix.length);
67
+ const slashIdx = afterRun.indexOf("/");
68
+ const stepId = slashIdx > 0 ? afterRun.slice(0, slashIdx) : afterRun;
69
+ if (stepId) {
70
+ return { source: "upstream", stepId, runId: ownRunId };
71
+ }
72
+ }
73
+ // Prior-run fallback: a read under `runs/{otherRunId}/...` that is neither
74
+ // this step's own run nor a `dependsOn` entry carries no step metadata
75
+ // linking it, so the path segments are the only source for the
76
+ // `{source: "prior", runId, stepId}` classification. This is the one place
77
+ // the provenance system extracts identity from path segments.
78
+ if (relativePath.startsWith("runs/")) {
79
+ const parts = relativePath.split("/");
80
+ const priorRunId = parts[1];
81
+ const priorStepId = parts[2];
82
+ if (priorRunId && priorStepId) {
83
+ return { source: "prior", stepId: priorStepId, runId: priorRunId };
84
+ }
85
+ }
86
+ return { source: "data" };
87
+ }
88
+ export class ProvenanceCollector {
89
+ stepId;
90
+ runId;
91
+ dependsOn;
92
+ /** Prefix for converting analysis-relative write paths to step-relative. */
93
+ stepPrefix;
94
+ /**
95
+ * Map from input file relative path (e.g., "inputs/Lab A Storage/trail_0/data.csv")
96
+ * to fileId. Sourced from the data-mount filesystem's inputPathToFileId map
97
+ * (passed by reference, populated lazily during filesystem init).
98
+ */
99
+ inputFileIdMap;
100
+ /** Tracked reads from read-only mounts, keyed by `mountPath:relativePath`. */
101
+ inputAccesses = new Map();
102
+ /** File tool write records, keyed by output path (relative to /artifacts). */
103
+ fileToolRecords = new Map();
104
+ /** Command execution records, keyed by output path (relative to /artifacts). */
105
+ commandRecords = new Map();
106
+ constructor(opts) {
107
+ this.stepId = opts.stepId;
108
+ this.runId = opts.runId;
109
+ this.dependsOn = opts.dependsOn ?? [];
110
+ this.stepPrefix = `runs/${opts.runId}/${opts.stepId}/`;
111
+ }
112
+ /**
113
+ * Set the input file ID map (passed by reference from the data-mount filesystem).
114
+ * Called after construction when the data mount filesystem is available.
115
+ */
116
+ setInputFileIdMap(map) {
117
+ this.inputFileIdMap = map;
118
+ }
119
+ /**
120
+ * Track a file read from a read-only mount.
121
+ * Called by sandbox exec provenance frame processing.
122
+ *
123
+ * @param mountPath - The workspace mount path (e.g., "/a1/data" or "/a1" for single-mount)
124
+ * @param relativePath - Path relative to the mount root
125
+ * @param hash - SHA-256 hash of the file content, or null if file no longer exists
126
+ * @param context - Explicit classification context from the caller. When provided,
127
+ * the collector uses it directly instead of classifying from the path.
128
+ */
129
+ trackInputAccess(mountPath, relativePath, hash, context) {
130
+ const key = `${mountPath}:${relativePath}`;
131
+ const existing = this.inputAccesses.get(key);
132
+ if (existing)
133
+ return existing;
134
+ // Use explicit context if provided, otherwise fall back to path classification
135
+ const classification = context ?? classifyReadPath(relativePath, this.stepId, this.runId, this.dependsOn);
136
+ const fullPath = `${mountPath}/${relativePath}`;
137
+ // Resolve fileId for data-source inputs via materialized file metadata map
138
+ let fileId;
139
+ if (classification.source === "data" && this.inputFileIdMap) {
140
+ fileId = this.inputFileIdMap.get(relativePath);
141
+ }
142
+ const ref = {
143
+ path: fullPath,
144
+ hash: hash ?? "",
145
+ source: classification.source,
146
+ stepId: classification.stepId,
147
+ runId: classification.runId,
148
+ fileId,
149
+ };
150
+ this.inputAccesses.set(key, ref);
151
+ return ref;
152
+ }
153
+ /**
154
+ * Record a file tool write (write_file, edit_file).
155
+ * Called after the data-mount filesystem records the artifact.
156
+ *
157
+ * File tool writes are agent-authored content — not derived from input
158
+ * files via execution — so no inputs are attributed.
159
+ */
160
+ recordFileToolWrite(artifact) {
161
+ // Normalize analysis-relative paths to step-relative (mirroring
162
+ // recordCommandExecution) so file-tool and command records land in one
163
+ // keyspace. Without this the cross-feed last-write-wins unlink dead-fires
164
+ // and registration's step-relative lookup never finds this record.
165
+ const outputPath = artifact.path.startsWith(this.stepPrefix) ? artifact.path.slice(this.stepPrefix.length) : artifact.path;
166
+ // Last-write-wins: unlink any command record for this path.
167
+ // Post-step overwrites (e.g. summary generation) replace the command output.
168
+ this.commandRecords.delete(outputPath);
169
+ const record = {
170
+ outputPath,
171
+ outputHash: artifact.hash,
172
+ outputSize: artifact.size,
173
+ producer: {
174
+ type: "file_tool",
175
+ tool: artifact.toolName ?? "unknown",
176
+ timestamp: artifact.timestamp,
177
+ },
178
+ inputs: [],
179
+ scriptPath: null,
180
+ stepId: this.stepId,
181
+ runId: this.runId,
182
+ };
183
+ this.fileToolRecords.set(outputPath, record);
184
+ }
185
+ /**
186
+ * Record outputs from a sandbox command execution.
187
+ * Called after provenance frame processing extracts observed writes.
188
+ *
189
+ * When commandReads is provided, uses those as the inputs for this
190
+ * command's provenance records (per-command scoping). Falls back to
191
+ * snapshotting the global inputAccesses accumulator when not provided.
192
+ */
193
+ recordCommandExecution(command, args, exitCode, durationMs, writes, scriptPath, commandReads) {
194
+ const inputs = commandReads ?? Array.from(this.inputAccesses.values());
195
+ const resolvedScript = scriptPath ?? inferScriptPath(command, args);
196
+ const timestamp = new Date().toISOString();
197
+ const producer = {
198
+ type: "command",
199
+ command,
200
+ args: args.length > 0 ? args : undefined,
201
+ exitCode,
202
+ durationMs,
203
+ timestamp,
204
+ };
205
+ for (const write of writes) {
206
+ // Normalize analysis-relative paths to step-relative so keys match
207
+ // the data-mount filesystem's localArtifacts and the artifact manifest.
208
+ const outputPath = write.path.startsWith(this.stepPrefix) ? write.path.slice(this.stepPrefix.length) : write.path;
209
+ const record = {
210
+ outputPath,
211
+ outputHash: write.hash,
212
+ outputSize: write.size,
213
+ producer,
214
+ inputs,
215
+ scriptPath: resolvedScript,
216
+ stepId: this.stepId,
217
+ runId: this.runId,
218
+ };
219
+ // Last-write-wins: unlink any file-tool record for this path.
220
+ this.fileToolRecords.delete(outputPath);
221
+ this.commandRecords.set(outputPath, record);
222
+ }
223
+ }
224
+ /**
225
+ * Get provenance inputs classified as `source: "data"` (input files read from /data mount).
226
+ */
227
+ getDataInputs() {
228
+ return Array.from(this.inputAccesses.values()).filter((ref) => ref.source === "data");
229
+ }
230
+ /**
231
+ * All distinct input refs observed this step, any source. The returned refs
232
+ * are the live objects also held by the per-command records, so repairing a
233
+ * `hash` here (e.g. `reconcileManifestWithDisk` filling read hashes from
234
+ * disk) propagates into the registration payload.
235
+ */
236
+ getTrackedInputs() {
237
+ return Array.from(this.inputAccesses.values());
238
+ }
239
+ /**
240
+ * Drop an input ref from lineage entirely — removes it from the tracked-input
241
+ * map and from every record's `inputs` array (identity match, since the refs
242
+ * are shared objects). `reconcileManifestWithDisk` calls this for a read that
243
+ * resolves to a directory (e.g. an `ls` / `list.files` of a mount): the
244
+ * inotify frame tracks the open, but a directory is not a content-attestable
245
+ * file artifact and must never reach registration. Mirrors the output-side
246
+ * non-file drop.
247
+ */
248
+ dropInput(ref) {
249
+ for (const [key, val] of this.inputAccesses) {
250
+ if (val === ref) {
251
+ this.inputAccesses.delete(key);
252
+ break;
253
+ }
254
+ }
255
+ const scrub = (rec) => {
256
+ if (rec.inputs.some((i) => i === ref)) {
257
+ rec.inputs = rec.inputs.filter((i) => i !== ref);
258
+ }
259
+ };
260
+ for (const rec of this.commandRecords.values())
261
+ scrub(rec);
262
+ for (const rec of this.fileToolRecords.values())
263
+ scrub(rec);
264
+ }
265
+ /**
266
+ * Get merged, deduplicated provenance records.
267
+ * Command records win over file-tool records for the same output path.
268
+ */
269
+ getRecords() {
270
+ const merged = new Map(this.fileToolRecords);
271
+ // Command records overwrite file-tool records (command overwrote the file)
272
+ for (const [path, record] of this.commandRecords) {
273
+ merged.set(path, record);
274
+ }
275
+ return Array.from(merged.values());
276
+ }
277
+ /** Remove any record (command or file-tool) for the given output path. */
278
+ removeRecord(path) {
279
+ this.commandRecords.delete(path);
280
+ this.fileToolRecords.delete(path);
281
+ }
282
+ /**
283
+ * Replace the existing record for `record.outputPath` while preserving
284
+ * last-write-wins ordering (command beats file-tool). If a command record
285
+ * exists, the replacement overwrites it; otherwise the file-tool record
286
+ * is overwritten. If neither exists, the replacement is stored as a
287
+ * file-tool record so `getRecords()` surfaces it.
288
+ */
289
+ replaceRecord(record) {
290
+ if (this.commandRecords.has(record.outputPath)) {
291
+ this.commandRecords.set(record.outputPath, record);
292
+ return;
293
+ }
294
+ this.fileToolRecords.set(record.outputPath, record);
295
+ }
296
+ }
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Feed a sandbox-server exec provenance frame into the step's
3
+ * `ProvenanceCollector`.
4
+ *
5
+ * Frame paths are absolute container paths under the analysis resource
6
+ * mount (`/{resourceId}/...`). This helper strips the mount prefix to
7
+ * analysis-relative (`data/...`, `runs/{runId}/{stepId}/...`,
8
+ * `runs/{priorRunId}/...`) so `classifyReadPath` and the collector's
9
+ * `stepPrefix` normalization see the shapes they expect.
10
+ *
11
+ * Degrades safely: a disabled or absent frame records the command with no
12
+ * inputs and no writes (its outputs fall back to leaves at registration).
13
+ * It never throws — provenance is best-effort and must not fail an exec.
14
+ */
15
+ import type { ProvenanceFrame } from "../sandbox/types.js";
16
+ import { type ProvenanceCollector } from "./collector.js";
17
+ /** Strip the `/{resourceId}/` mount prefix from an absolute frame path. */
18
+ export declare function stripMountPrefix(mountRoot: string, absPath: string): string;
19
+ export interface FeedExecFrameArgs {
20
+ readonly collector: ProvenanceCollector;
21
+ /** Analysis resource mount root, e.g. `/{resourceId}`. */
22
+ readonly mountRoot: string;
23
+ /** The argv the harness submitted in `SubmitExecBody`. */
24
+ readonly command: readonly string[];
25
+ readonly exitCode: number | null;
26
+ readonly durationMs: number | null;
27
+ /** The frame surfaced on `ExecResult.provenance` (may be absent). */
28
+ readonly provenance?: ProvenanceFrame;
29
+ }
30
+ /**
31
+ * Translate one exec's frame into a collector record. Per-command input
32
+ * scoping: only the reads observed for THIS exec are attached to its
33
+ * outputs (not the step's global read accumulator), so one command's
34
+ * inputs don't collapse onto another's outputs.
35
+ */
36
+ export declare function feedExecFrame(args: FeedExecFrameArgs): void;
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Feed a sandbox-server exec provenance frame into the step's
3
+ * `ProvenanceCollector`.
4
+ *
5
+ * Frame paths are absolute container paths under the analysis resource
6
+ * mount (`/{resourceId}/...`). This helper strips the mount prefix to
7
+ * analysis-relative (`data/...`, `runs/{runId}/{stepId}/...`,
8
+ * `runs/{priorRunId}/...`) so `classifyReadPath` and the collector's
9
+ * `stepPrefix` normalization see the shapes they expect.
10
+ *
11
+ * Degrades safely: a disabled or absent frame records the command with no
12
+ * inputs and no writes (its outputs fall back to leaves at registration).
13
+ * It never throws — provenance is best-effort and must not fail an exec.
14
+ */
15
+ import { classifyReadPath } from "./collector.js";
16
+ /** Strip the `/{resourceId}/` mount prefix from an absolute frame path. */
17
+ export function stripMountPrefix(mountRoot, absPath) {
18
+ const prefix = mountRoot.endsWith("/") ? mountRoot : `${mountRoot}/`;
19
+ return absPath.startsWith(prefix) ? absPath.slice(prefix.length) : absPath;
20
+ }
21
+ /**
22
+ * Translate one exec's frame into a collector record. Per-command input
23
+ * scoping: only the reads observed for THIS exec are attached to its
24
+ * outputs (not the step's global read accumulator), so one command's
25
+ * inputs don't collapse onto another's outputs.
26
+ */
27
+ export function feedExecFrame(args) {
28
+ const { collector, mountRoot, command, exitCode, durationMs, provenance } = args;
29
+ const cmd = command[0] ?? "";
30
+ const cmdArgs = command.slice(1);
31
+ const code = exitCode ?? -1;
32
+ const duration = durationMs ?? 0;
33
+ if (!provenance || provenance.disabled) {
34
+ collector.recordCommandExecution(cmd, [...cmdArgs], code, duration, [], undefined, []);
35
+ return;
36
+ }
37
+ const commandReads = [];
38
+ for (const read of provenance.reads) {
39
+ const rel = stripMountPrefix(mountRoot, read.path);
40
+ const context = classifyReadPath(rel, collector.stepId, collector.runId, collector.dependsOn);
41
+ commandReads.push(collector.trackInputAccess(mountRoot, rel, null, context));
42
+ }
43
+ const writes = provenance.writes.map((w) => ({
44
+ path: stripMountPrefix(mountRoot, w.path),
45
+ hash: "",
46
+ size: 0,
47
+ }));
48
+ collector.recordCommandExecution(cmd, [...cmdArgs], code, duration, writes, undefined, commandReads);
49
+ }
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Unified provenance types for tracking artifact lineage.
3
+ *
4
+ * Each output artifact gets a ProvenanceRecord that captures:
5
+ * - What produced it (file tool write or sandbox command)
6
+ * - What inputs it consumed (lineage chain)
7
+ * - What script generated it (if any)
8
+ */
9
+ import { z } from "zod";
10
+ /** File tool write (write_file, edit_file). */
11
+ export declare const FileToolProducerSchema: z.ZodObject<{
12
+ type: z.ZodLiteral<"file_tool">;
13
+ tool: z.ZodString;
14
+ timestamp: z.ZodString;
15
+ }, z.core.$strip>;
16
+ /** Sandbox command execution (execute_command). */
17
+ export declare const CommandProducerSchema: z.ZodObject<{
18
+ type: z.ZodLiteral<"command">;
19
+ command: z.ZodString;
20
+ args: z.ZodOptional<z.ZodArray<z.ZodString>>;
21
+ exitCode: z.ZodNumber;
22
+ durationMs: z.ZodNumber;
23
+ timestamp: z.ZodString;
24
+ }, z.core.$strip>;
25
+ export declare const ProducerSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
26
+ type: z.ZodLiteral<"file_tool">;
27
+ tool: z.ZodString;
28
+ timestamp: z.ZodString;
29
+ }, z.core.$strip>, z.ZodObject<{
30
+ type: z.ZodLiteral<"command">;
31
+ command: z.ZodString;
32
+ args: z.ZodOptional<z.ZodArray<z.ZodString>>;
33
+ exitCode: z.ZodNumber;
34
+ durationMs: z.ZodNumber;
35
+ timestamp: z.ZodString;
36
+ }, z.core.$strip>], "type">;
37
+ export type Producer = z.infer<typeof ProducerSchema>;
38
+ /** Classification of an input source based on mount semantics. */
39
+ export declare const InputSourceSchema: z.ZodEnum<{
40
+ data: "data";
41
+ upstream: "upstream";
42
+ prior: "prior";
43
+ artifacts: "artifacts";
44
+ }>;
45
+ export type InputSource = z.infer<typeof InputSourceSchema>;
46
+ /** A single input reference in a lineage chain. */
47
+ export declare const InputRefSchema: z.ZodObject<{
48
+ path: z.ZodString;
49
+ hash: z.ZodString;
50
+ source: z.ZodEnum<{
51
+ data: "data";
52
+ upstream: "upstream";
53
+ prior: "prior";
54
+ artifacts: "artifacts";
55
+ }>;
56
+ stepId: z.ZodOptional<z.ZodString>;
57
+ runId: z.ZodOptional<z.ZodString>;
58
+ fileId: z.ZodOptional<z.ZodString>;
59
+ }, z.core.$strip>;
60
+ export type InputRef = z.infer<typeof InputRefSchema>;
61
+ /** Provenance record for a single output artifact. */
62
+ export declare const ProvenanceRecordSchema: z.ZodObject<{
63
+ outputPath: z.ZodString;
64
+ outputHash: z.ZodString;
65
+ outputSize: z.ZodNumber;
66
+ producer: z.ZodDiscriminatedUnion<[z.ZodObject<{
67
+ type: z.ZodLiteral<"file_tool">;
68
+ tool: z.ZodString;
69
+ timestamp: z.ZodString;
70
+ }, z.core.$strip>, z.ZodObject<{
71
+ type: z.ZodLiteral<"command">;
72
+ command: z.ZodString;
73
+ args: z.ZodOptional<z.ZodArray<z.ZodString>>;
74
+ exitCode: z.ZodNumber;
75
+ durationMs: z.ZodNumber;
76
+ timestamp: z.ZodString;
77
+ }, z.core.$strip>], "type">;
78
+ inputs: z.ZodArray<z.ZodObject<{
79
+ path: z.ZodString;
80
+ hash: z.ZodString;
81
+ source: z.ZodEnum<{
82
+ data: "data";
83
+ upstream: "upstream";
84
+ prior: "prior";
85
+ artifacts: "artifacts";
86
+ }>;
87
+ stepId: z.ZodOptional<z.ZodString>;
88
+ runId: z.ZodOptional<z.ZodString>;
89
+ fileId: z.ZodOptional<z.ZodString>;
90
+ }, z.core.$strip>>;
91
+ scriptPath: z.ZodNullable<z.ZodString>;
92
+ stepId: z.ZodString;
93
+ runId: z.ZodString;
94
+ }, z.core.$strip>;
95
+ export type ProvenanceRecord = z.infer<typeof ProvenanceRecordSchema>;
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Unified provenance types for tracking artifact lineage.
3
+ *
4
+ * Each output artifact gets a ProvenanceRecord that captures:
5
+ * - What produced it (file tool write or sandbox command)
6
+ * - What inputs it consumed (lineage chain)
7
+ * - What script generated it (if any)
8
+ */
9
+ import { z } from "zod";
10
+ // ── Producer ────────────────────────────────────────────────────────
11
+ /** File tool write (write_file, edit_file). */
12
+ export const FileToolProducerSchema = z.object({
13
+ type: z.literal("file_tool"),
14
+ tool: z.string(),
15
+ timestamp: z.string(),
16
+ });
17
+ /** Sandbox command execution (execute_command). */
18
+ export const CommandProducerSchema = z.object({
19
+ type: z.literal("command"),
20
+ command: z.string(),
21
+ args: z.array(z.string()).optional(),
22
+ exitCode: z.number(),
23
+ durationMs: z.number(),
24
+ timestamp: z.string(),
25
+ });
26
+ export const ProducerSchema = z.discriminatedUnion("type", [FileToolProducerSchema, CommandProducerSchema]);
27
+ // ── InputRef ────────────────────────────────────────────────────────
28
+ /** Classification of an input source based on mount semantics. */
29
+ export const InputSourceSchema = z.enum(["data", "upstream", "prior", "artifacts"]);
30
+ /** A single input reference in a lineage chain. */
31
+ export const InputRefSchema = z.object({
32
+ /** Mount-relative path: /data/counts.csv, /upstream/de/output/results.csv */
33
+ path: z.string(),
34
+ /** SHA-256 hash at read time. */
35
+ hash: z.string(),
36
+ /** Source classification derived from mount path. */
37
+ source: InputSourceSchema,
38
+ /** Step ID that produced this input (absent for data inputs). */
39
+ stepId: z.string().optional(),
40
+ /** Run ID that produced this input (absent for data inputs). */
41
+ runId: z.string().optional(),
42
+ /** S3 file identity for input files (source: "data"). */
43
+ fileId: z.string().optional(),
44
+ });
45
+ // ── ProvenanceRecord ────────────────────────────────────────────────
46
+ /** Provenance record for a single output artifact. */
47
+ export const ProvenanceRecordSchema = z.object({
48
+ /** Path relative to /artifacts. */
49
+ outputPath: z.string(),
50
+ /** SHA-256 hash of the output. */
51
+ outputHash: z.string(),
52
+ /** Size in bytes. */
53
+ outputSize: z.number(),
54
+ /** How this artifact was produced. */
55
+ producer: ProducerSchema,
56
+ /** Input files consumed to produce this artifact. */
57
+ inputs: z.array(InputRefSchema),
58
+ /** Path to the script that produced this, if identifiable. */
59
+ scriptPath: z.string().nullable(),
60
+ /** Workflow step that produced this artifact. */
61
+ stepId: z.string(),
62
+ /** Workflow run ID. */
63
+ runId: z.string(),
64
+ });
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Test-only harness `RequestSession` builder. Not a `*.test.ts` file, so the test
3
+ * runner ignores it; imported by harness unit tests that need a session but never
4
+ * read its (opaque) auth. The auth is the trivial local one — the harness never
5
+ * inspects it. Managed-adapter tests that exercise `getAuth` / the managed seams
6
+ * use the managed builder in `compose/__fixtures__/session.ts` instead.
7
+ */
8
+ import type { RequestSession, Scope } from "../../auth/types.js";
9
+ export interface SessionOverrides {
10
+ user?: string;
11
+ scope?: Scope;
12
+ agentId?: string;
13
+ callPath?: readonly string[];
14
+ }
15
+ /** Build a fully-populated harness `RequestSession` for tests, with per-field overrides. */
16
+ export declare function makeSession(overrides?: SessionOverrides): RequestSession;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Test-only harness `RequestSession` builder. Not a `*.test.ts` file, so the test
3
+ * runner ignores it; imported by harness unit tests that need a session but never
4
+ * read its (opaque) auth. The auth is the trivial local one — the harness never
5
+ * inspects it. Managed-adapter tests that exercise `getAuth` / the managed seams
6
+ * use the managed builder in `compose/__fixtures__/session.ts` instead.
7
+ */
8
+ import { makeLocalAuth } from "../../auth/local-auth-context.js";
9
+ /** Build a fully-populated harness `RequestSession` for tests, with per-field overrides. */
10
+ export function makeSession(overrides = {}) {
11
+ return {
12
+ identity: { user: overrides.user ?? "user-001" },
13
+ scope: overrides.scope ?? { kind: "analysis", analysisId: "analysis-001" },
14
+ provenance: {
15
+ agentId: overrides.agentId ?? "conversation-agent",
16
+ callPath: overrides.callPath ?? ["conversation-agent"],
17
+ },
18
+ auth: makeLocalAuth(),
19
+ };
20
+ }
@@ -0,0 +1,47 @@
1
+ import { type LanguageModel } from "ai";
2
+ import type { ResolveBilling } from "../billing/resolver.js";
3
+ import type { ChatProvider, FetchLike, ProviderCapabilities } from "./types.js";
4
+ export interface AiSdkProviderDeps {
5
+ readonly model: LanguageModel;
6
+ readonly resolveBilling: ResolveBilling;
7
+ readonly capabilities?: Partial<ProviderCapabilities>;
8
+ }
9
+ /**
10
+ * Connection + model configuration for one `ChatProvider`, discriminated by
11
+ * wire protocol (`anthropic` | `openai-compatible`). The `model` is the wire
12
+ * model bound into the provider at construction: `ChatRequest` carries no model
13
+ * field (see `./types.ts`), so a config value describes exactly one model over
14
+ * one connection. An embedder running distinct models builds one provider per
15
+ * model from configs that share the connection (same `baseURL`/`apiKey`) and
16
+ * differ only in `model` — a single provider cannot be retargeted to another
17
+ * model per request.
18
+ */
19
+ export type AiSdkProviderConfig = {
20
+ readonly kind: "anthropic";
21
+ readonly baseURL?: string;
22
+ readonly apiKey: string;
23
+ readonly model: string;
24
+ readonly fetch?: FetchLike;
25
+ readonly capabilities?: Partial<ProviderCapabilities>;
26
+ } | {
27
+ readonly kind: "openai-compatible";
28
+ readonly name: string;
29
+ readonly baseURL: string;
30
+ readonly apiKey?: string;
31
+ readonly model: string;
32
+ readonly fetch?: FetchLike;
33
+ readonly capabilities?: Partial<ProviderCapabilities>;
34
+ };
35
+ export interface ConfiguredAiSdkProviderDeps {
36
+ readonly config: AiSdkProviderConfig;
37
+ readonly resolveBilling: ResolveBilling;
38
+ }
39
+ export declare function createAiSdkProvider(deps: AiSdkProviderDeps): ChatProvider;
40
+ /**
41
+ * Realize an `AiSdkProviderConfig` into a `ChatProvider` bound to that config's
42
+ * connection and model. The model is closed into the returned provider here (it
43
+ * is never passed per `ChatRequest`), so N models require N provider
44
+ * instances over one shared connection configuration — one instance serves the
45
+ * single model it was built with.
46
+ */
47
+ export declare function createConfiguredAiSdkProvider(deps: ConfiguredAiSdkProviderDeps): ChatProvider;