@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,39 @@
1
+ /**
2
+ * Report pre-flight — deterministic asset staging for iterate-report.
3
+ *
4
+ * Runs before the report-builder agent starts. Resolves each declared
5
+ * source under the analysis root, enforces the 50MB cap, copies bytes
6
+ * into the preview's shared assets/ dir, and enriches the brief with
7
+ * inferred kind, size, CSV columns, head rows, and row count.
8
+ *
9
+ * The builder receives a complete brief and never has to discover or
10
+ * stage anything itself.
11
+ */
12
+ export type AssetKind = "csv" | "tsv" | "image" | "json" | "other";
13
+ export interface StagedAsset {
14
+ name: string;
15
+ path: string;
16
+ kind: AssetKind;
17
+ sizeBytes: number;
18
+ rowCount?: number;
19
+ columns?: string[];
20
+ headRows?: string[][];
21
+ }
22
+ export interface PreflightSource {
23
+ path: string;
24
+ as?: string;
25
+ }
26
+ export type PreflightResult = {
27
+ ok: true;
28
+ staged: StagedAsset[];
29
+ } | {
30
+ ok: false;
31
+ reason: string;
32
+ };
33
+ export interface PreflightOptions {
34
+ sources: PreflightSource[];
35
+ analysisRoot: string;
36
+ assetsDirAbs: string;
37
+ }
38
+ export declare function stageReportAssets(opts: PreflightOptions): Promise<PreflightResult>;
39
+ export declare function formatBytes(bytes: number): string;
@@ -0,0 +1,283 @@
1
+ /**
2
+ * Report pre-flight — deterministic asset staging for iterate-report.
3
+ *
4
+ * Runs before the report-builder agent starts. Resolves each declared
5
+ * source under the analysis root, enforces the 50MB cap, copies bytes
6
+ * into the preview's shared assets/ dir, and enriches the brief with
7
+ * inferred kind, size, CSV columns, head rows, and row count.
8
+ *
9
+ * The builder receives a complete brief and never has to discover or
10
+ * stage anything itself.
11
+ */
12
+ import { copyFile, mkdir, open, realpath, stat } from "node:fs/promises";
13
+ import { basename, extname, resolve, sep } from "node:path";
14
+ const MAX_ASSET_BYTES = 50 * 1024 * 1024;
15
+ const MAX_ASSET_LABEL = "50MB";
16
+ const HEAD_BUF_BYTES = 64 * 1024;
17
+ const HEAD_ROW_COUNT = 5;
18
+ const COUNT_CHUNK_BYTES = 64 * 1024;
19
+ // JSON enrichment parses the whole file to detect array-of-objects shape.
20
+ // Cap below the 50MB asset limit so we don't synchronously parse huge files
21
+ // just for metadata — large JSON gets staged but lands in the brief without
22
+ // columns/rowCount, the same way a non-tabular JSON would.
23
+ const JSON_ENRICH_MAX_BYTES = 5 * 1024 * 1024;
24
+ export async function stageReportAssets(opts) {
25
+ await mkdir(opts.assetsDirAbs, { recursive: true });
26
+ // Canonicalize analysisRoot so containment checks work when the path
27
+ // traverses symlinks (e.g. macOS /var → /private/var).
28
+ const analysisRoot = await realpath(opts.analysisRoot);
29
+ // Dedupe by destination name. Identical (path, name) pairs collapse
30
+ // silently; conflicting names from different paths are an error.
31
+ const byName = new Map();
32
+ for (const src of opts.sources) {
33
+ const name = (src.as ?? basename(src.path)).trim();
34
+ if (!name) {
35
+ return { ok: false, reason: `source has no destination name: ${src.path}` };
36
+ }
37
+ const existing = byName.get(name);
38
+ if (existing && existing.path !== src.path) {
39
+ return {
40
+ ok: false,
41
+ reason: `duplicate asset name '${name}' from sources '${existing.path}' and '${src.path}' — use \`as\` to disambiguate`,
42
+ };
43
+ }
44
+ byName.set(name, src);
45
+ }
46
+ const staged = [];
47
+ for (const [name, src] of byName) {
48
+ const resolved = await resolveSource(src.path, analysisRoot);
49
+ if (!resolved.ok)
50
+ return resolved;
51
+ let st;
52
+ try {
53
+ st = await stat(resolved.path);
54
+ }
55
+ catch {
56
+ return { ok: false, reason: `source not found: ${src.path}` };
57
+ }
58
+ if (!st.isFile()) {
59
+ return { ok: false, reason: `source is not a regular file: ${src.path}` };
60
+ }
61
+ if (st.size > MAX_ASSET_BYTES) {
62
+ return {
63
+ ok: false,
64
+ reason: `source ${src.path} is ${formatBytes(st.size)} — exceeds ${MAX_ASSET_LABEL} cap`,
65
+ };
66
+ }
67
+ const dst = resolveDestination(name, opts.assetsDirAbs);
68
+ if (!dst.ok)
69
+ return dst;
70
+ await copyFile(resolved.path, dst.path);
71
+ const kind = inferKind(name);
72
+ const asset = {
73
+ name,
74
+ path: src.path,
75
+ kind,
76
+ sizeBytes: st.size,
77
+ };
78
+ if (kind === "csv" || kind === "tsv") {
79
+ const enriched = await enrichTabular(dst.path, kind === "tsv" ? "\t" : ",");
80
+ if (enriched.columns)
81
+ asset.columns = enriched.columns;
82
+ if (enriched.headRows)
83
+ asset.headRows = enriched.headRows;
84
+ if (enriched.rowCount !== undefined)
85
+ asset.rowCount = enriched.rowCount;
86
+ }
87
+ else if (kind === "json" && st.size <= JSON_ENRICH_MAX_BYTES) {
88
+ const enriched = await enrichJson(dst.path);
89
+ if (enriched.columns)
90
+ asset.columns = enriched.columns;
91
+ if (enriched.headRows)
92
+ asset.headRows = enriched.headRows;
93
+ if (enriched.rowCount !== undefined)
94
+ asset.rowCount = enriched.rowCount;
95
+ }
96
+ staged.push(asset);
97
+ }
98
+ return { ok: true, staged };
99
+ }
100
+ /**
101
+ * Resolves a source path under analysisRoot and canonicalizes through
102
+ * symlinks. Sandbox steps have RW access to their own output dir on the
103
+ * shared session storage, so a malicious or compromised step could create
104
+ * a symlink pointing outside the analysis tree (e.g. to /etc/passwd).
105
+ * `path.resolve` is purely lexical — only `realpath` catches symlink
106
+ * escapes — so we re-validate containment after canonicalization.
107
+ */
108
+ async function resolveSource(path, analysisRoot) {
109
+ if (path.includes("\0")) {
110
+ return { ok: false, reason: `source contains null byte: ${path}` };
111
+ }
112
+ if (path.startsWith("/")) {
113
+ return { ok: false, reason: `source must be relative to analysis root: ${path}` };
114
+ }
115
+ const lexical = resolve(analysisRoot, path);
116
+ if (lexical !== analysisRoot && !lexical.startsWith(analysisRoot + sep)) {
117
+ return { ok: false, reason: `source escapes analysis root: ${path}` };
118
+ }
119
+ let canonical;
120
+ try {
121
+ canonical = await realpath(lexical);
122
+ }
123
+ catch (err) {
124
+ if (err.code === "ENOENT") {
125
+ return { ok: false, reason: `source not found: ${path}` };
126
+ }
127
+ throw err;
128
+ }
129
+ if (canonical !== analysisRoot && !canonical.startsWith(analysisRoot + sep)) {
130
+ return { ok: false, reason: `source escapes analysis root via symlink: ${path}` };
131
+ }
132
+ return { ok: true, path: canonical };
133
+ }
134
+ function resolveDestination(name, assetsDirAbs) {
135
+ if (name.includes("\0")) {
136
+ return { ok: false, reason: `destination contains null byte: ${name}` };
137
+ }
138
+ // Reject any path-y name — assets/ is intentionally flat. `as: "subdir/x"`
139
+ // would otherwise pass the starts-with check but fail at copyFile time
140
+ // because the parent dir doesn't exist, bubbling an unhandled exception
141
+ // out of stageReportAssets's {ok} contract.
142
+ if (name !== basename(name)) {
143
+ return { ok: false, reason: `destination must be a flat filename (no path separators): ${name}` };
144
+ }
145
+ const resolved = resolve(assetsDirAbs, name);
146
+ if (!resolved.startsWith(assetsDirAbs + sep)) {
147
+ return { ok: false, reason: `destination escapes assets dir: ${name}` };
148
+ }
149
+ return { ok: true, path: resolved };
150
+ }
151
+ function inferKind(name) {
152
+ const ext = extname(name).toLowerCase();
153
+ if (ext === ".csv")
154
+ return "csv";
155
+ if (ext === ".tsv")
156
+ return "tsv";
157
+ if (ext === ".png" || ext === ".jpg" || ext === ".jpeg" || ext === ".svg" || ext === ".gif" || ext === ".webp") {
158
+ return "image";
159
+ }
160
+ if (ext === ".json")
161
+ return "json";
162
+ return "other";
163
+ }
164
+ async function enrichTabular(path, delim) {
165
+ const fd = await open(path, "r");
166
+ try {
167
+ const buf = Buffer.alloc(HEAD_BUF_BYTES);
168
+ const { bytesRead } = await fd.read(buf, 0, HEAD_BUF_BYTES, 0);
169
+ const head = buf.subarray(0, bytesRead).toString("utf8");
170
+ const lines = head.split(/\r?\n/);
171
+ if (lines.length === 0 || lines[0].length === 0)
172
+ return {};
173
+ const columns = parseLine(lines[0], delim);
174
+ const headRows = [];
175
+ for (let i = 1; i < lines.length && headRows.length < HEAD_ROW_COUNT; i++) {
176
+ if (lines[i].length === 0)
177
+ continue;
178
+ headRows.push(parseLine(lines[i], delim));
179
+ }
180
+ const rowCount = await countRows(fd);
181
+ const result = {
182
+ columns,
183
+ };
184
+ if (headRows.length > 0)
185
+ result.headRows = headRows;
186
+ if (rowCount !== undefined)
187
+ result.rowCount = rowCount;
188
+ return result;
189
+ }
190
+ finally {
191
+ await fd.close();
192
+ }
193
+ }
194
+ function parseLine(line, delim) {
195
+ // Naive split — sufficient for analysis output where fields rarely contain
196
+ // delimiters or embedded newlines. The builder reads the actual file via the
197
+ // assets/ symlink for rendering; the brief just surfaces column names so the
198
+ // conv agent can compose section content correctly.
199
+ return line.split(delim).map((s) => s.replace(/^"|"$/g, ""));
200
+ }
201
+ /**
202
+ * Detect array-of-objects JSON shape so the brief surfaces columns + a few
203
+ * head rows the same way it does for CSV/TSV. Anything other than a top-level
204
+ * array of objects (e.g. ECharts options, scalar config, nested aggregates)
205
+ * is staged with no enrichment — the builder can still load it client-side
206
+ * and use it directly, but the conv agent picks chart encoding without
207
+ * column hints. Parses the full file; caller caps file size upstream.
208
+ */
209
+ async function enrichJson(path) {
210
+ let parsed;
211
+ try {
212
+ const { readFile } = await import("node:fs/promises");
213
+ parsed = JSON.parse(await readFile(path, "utf8"));
214
+ }
215
+ catch {
216
+ return {};
217
+ }
218
+ if (!Array.isArray(parsed) || parsed.length === 0)
219
+ return {};
220
+ // Sample the first non-null object for keys. Mixed-shape arrays still get
221
+ // first-element keys — good enough for the brief; renderer reads the file
222
+ // directly anyway.
223
+ const first = parsed.find((r) => r && typeof r === "object" && !Array.isArray(r));
224
+ if (!first)
225
+ return { rowCount: parsed.length };
226
+ const columns = Object.keys(first);
227
+ const headRows = [];
228
+ for (let i = 0; i < parsed.length && headRows.length < HEAD_ROW_COUNT; i++) {
229
+ const r = parsed[i];
230
+ if (!r || typeof r !== "object" || Array.isArray(r))
231
+ continue;
232
+ const obj = r;
233
+ headRows.push(columns.map((c) => stringifyCell(obj[c])));
234
+ }
235
+ const result = {
236
+ columns,
237
+ rowCount: parsed.length,
238
+ };
239
+ if (headRows.length > 0)
240
+ result.headRows = headRows;
241
+ return result;
242
+ }
243
+ function stringifyCell(v) {
244
+ if (v === null || v === undefined)
245
+ return "";
246
+ if (typeof v === "string")
247
+ return v;
248
+ if (typeof v === "number" || typeof v === "boolean")
249
+ return String(v);
250
+ return JSON.stringify(v);
251
+ }
252
+ async function countRows(fd) {
253
+ const buf = Buffer.alloc(COUNT_CHUNK_BYTES);
254
+ let newlines = 0;
255
+ let pos = 0;
256
+ let lastByte = -1;
257
+ while (true) {
258
+ const { bytesRead } = await fd.read(buf, 0, buf.length, pos);
259
+ if (bytesRead === 0)
260
+ break;
261
+ for (let i = 0; i < bytesRead; i++) {
262
+ if (buf[i] === 0x0a)
263
+ newlines++;
264
+ }
265
+ lastByte = buf[bytesRead - 1];
266
+ pos += bytesRead;
267
+ }
268
+ if (pos === 0)
269
+ return 0;
270
+ // If the file doesn't end with a newline, the last row wasn't counted.
271
+ const total = lastByte === 0x0a ? newlines : newlines + 1;
272
+ // Subtract one for the header.
273
+ return Math.max(0, total - 1);
274
+ }
275
+ export function formatBytes(bytes) {
276
+ if (bytes < 1024)
277
+ return `${bytes}B`;
278
+ if (bytes < 1024 * 1024)
279
+ return `${(bytes / 1024).toFixed(1)}KB`;
280
+ if (bytes < 1024 * 1024 * 1024)
281
+ return `${(bytes / (1024 * 1024)).toFixed(1)}MB`;
282
+ return `${(bytes / (1024 * 1024 * 1024)).toFixed(2)}GB`;
283
+ }
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Pure async client functions for STRING DB protein-protein interactions.
3
+ *
4
+ * Used by §3.8 (PPI Network).
5
+ */
6
+ export interface StringInteraction {
7
+ proteinA: string;
8
+ proteinB: string;
9
+ score: number;
10
+ experimentalScore?: number;
11
+ databaseScore?: number;
12
+ textminingScore?: number;
13
+ }
14
+ export interface StringEnrichment {
15
+ category: string;
16
+ term: string;
17
+ description: string;
18
+ pValue: number;
19
+ fdr: number;
20
+ geneCount: number;
21
+ genes: string[];
22
+ }
23
+ export interface InteractionOptions {
24
+ species?: number;
25
+ minScore?: number;
26
+ limit?: number;
27
+ }
28
+ /** Fetch interaction partners (one-hop) for the given identifiers. */
29
+ export declare function getInteractionPartners(identifiers: string[], options?: InteractionOptions): Promise<StringInteraction[]>;
30
+ /** Fetch the network among the given identifiers. */
31
+ export declare function getInteractionNetwork(identifiers: string[], options?: InteractionOptions): Promise<StringInteraction[]>;
32
+ /** Functional enrichment for a gene set. */
33
+ export declare function getEnrichment(identifiers: string[], species?: number): Promise<StringEnrichment[]>;
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Pure async client functions for STRING DB protein-protein interactions.
3
+ *
4
+ * Used by §3.8 (PPI Network).
5
+ */
6
+ import { z } from "zod";
7
+ import { apiFetchValidated, describeApiError } from "./api-utils.js";
8
+ const STRING_BASE = "https://string-db.org/api/json";
9
+ const CALLER_IDENTITY = "inflexa_cortex";
10
+ function buildParams(identifiers, species, extra = {}) {
11
+ const params = new URLSearchParams({
12
+ identifiers: identifiers.join("%0d"),
13
+ species: String(species),
14
+ caller_identity: CALLER_IDENTITY,
15
+ });
16
+ for (const [k, v] of Object.entries(extra)) {
17
+ params.set(k, String(v));
18
+ }
19
+ return params;
20
+ }
21
+ // One STRING interaction row (interaction/network endpoints). The `.object(...)` half is
22
+ // the raw wire shape (every field optional — the API omits absent values); the
23
+ // `.transform(...)` half normalizes it into the `StringInteraction` we return. Parsing IS
24
+ // the validation: `apiFetchValidated` runs this over the JSON, so a field whose type drifts
25
+ // is rejected as `invalid_response` rather than silently mis-mapped.
26
+ const StringInteractionSchema = z
27
+ .object({
28
+ preferredName_A: z.string().optional(),
29
+ preferredName_B: z.string().optional(),
30
+ score: z.number().optional(),
31
+ escore: z.number().optional(),
32
+ dscore: z.number().optional(),
33
+ tscore: z.number().optional(),
34
+ })
35
+ .transform((d) => ({
36
+ proteinA: d.preferredName_A ?? "",
37
+ proteinB: d.preferredName_B ?? "",
38
+ score: d.score ?? 0,
39
+ experimentalScore: d.escore ?? undefined,
40
+ databaseScore: d.dscore ?? undefined,
41
+ textminingScore: d.tscore ?? undefined,
42
+ }));
43
+ // One STRING enrichment row. `preferredNames` legitimately arrives as either a string array
44
+ // or a single comma-joined string, so the schema accepts the union and the transform folds
45
+ // both into a `string[]`.
46
+ const StringEnrichmentSchema = z
47
+ .object({
48
+ category: z.string().optional(),
49
+ term: z.string().optional(),
50
+ description: z.string().optional(),
51
+ p_value: z.number().optional(),
52
+ fdr: z.number().optional(),
53
+ number_of_genes: z.number().optional(),
54
+ preferredNames: z.union([z.array(z.string()), z.string()]).optional(),
55
+ })
56
+ .transform((d) => ({
57
+ category: d.category ?? "",
58
+ term: d.term ?? "",
59
+ description: d.description ?? "",
60
+ pValue: d.p_value ?? 1,
61
+ fdr: d.fdr ?? 1,
62
+ geneCount: d.number_of_genes ?? 0,
63
+ genes: Array.isArray(d.preferredNames) ? d.preferredNames : (d.preferredNames ?? "").split(",").filter(Boolean),
64
+ }));
65
+ /** Fetch interaction partners (one-hop) for the given identifiers. */
66
+ export async function getInteractionPartners(identifiers, options = {}) {
67
+ const params = buildParams(identifiers, options.species ?? 9606, {
68
+ required_score: options.minScore ?? 400,
69
+ limit: options.limit ?? 20,
70
+ });
71
+ const res = await apiFetchValidated(`${STRING_BASE}/interaction_partners?${params}`, z.array(StringInteractionSchema));
72
+ if (res.isErr())
73
+ throw new Error(describeApiError(res.error));
74
+ return res.value.sort((a, b) => b.score - a.score);
75
+ }
76
+ /** Fetch the network among the given identifiers. */
77
+ export async function getInteractionNetwork(identifiers, options = {}) {
78
+ const params = buildParams(identifiers, options.species ?? 9606, {
79
+ required_score: options.minScore ?? 400,
80
+ });
81
+ const res = await apiFetchValidated(`${STRING_BASE}/network?${params}`, z.array(StringInteractionSchema));
82
+ if (res.isErr())
83
+ throw new Error(describeApiError(res.error));
84
+ return res.value.sort((a, b) => b.score - a.score);
85
+ }
86
+ /** Functional enrichment for a gene set. */
87
+ export async function getEnrichment(identifiers, species = 9606) {
88
+ const params = buildParams(identifiers, species);
89
+ const res = await apiFetchValidated(`${STRING_BASE}/enrichment?${params}`, z.array(StringEnrichmentSchema));
90
+ if (res.isErr())
91
+ throw new Error(describeApiError(res.error));
92
+ return res.value.sort((a, b) => a.fdr - b.fdr);
93
+ }
@@ -0,0 +1,2 @@
1
+ export declare const EPA_CCTE_BASE = "https://comptox.epa.gov/ctx-api";
2
+ export declare function getEpaCcteHeaders(apiKey: string): Record<string, string>;
@@ -0,0 +1,11 @@
1
+ export const EPA_CCTE_BASE = "https://comptox.epa.gov/ctx-api";
2
+ export function getEpaCcteHeaders(apiKey) {
3
+ const key = apiKey;
4
+ if (!key) {
5
+ throw new Error("EPA_CCTE_API_KEY environment variable is not set. " + "Obtain a free key from https://api.epa.gov/");
6
+ }
7
+ return {
8
+ "x-api-key": key,
9
+ Accept: "application/json",
10
+ };
11
+ }
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Pure async client functions for the UniProt REST API
3
+ * (https://rest.uniprot.org/uniprotkb/).
4
+ *
5
+ * Used by target-assessment as the source of truth for:
6
+ * - ChEMBL cross-references — every ChEMBL target id linked to a UniProt
7
+ * accession (replaces the hand-curated ALTERNATE_CHEMBL_IDS map).
8
+ * - Protein family text — used together with IUPHAR family-target
9
+ * resolution to identify sibling receptors in the same pharmacological
10
+ * family (replaces the hand-curated RELATED_FAMILY_UNIPROTS map).
11
+ */
12
+ export interface UniProtRecord {
13
+ primaryAccession: string;
14
+ uniProtkbId: string | null;
15
+ geneNames: string[];
16
+ chemblIds: string[];
17
+ reactomePathwayIds: string[];
18
+ proteinFamilyText: string | null;
19
+ }
20
+ /**
21
+ * Fetch a single UniProtKB entry by accession. Returns null on 404; throws
22
+ * on other HTTP errors so callers can surface upstream outages.
23
+ */
24
+ export declare function getUniProtRecord(accession: string): Promise<UniProtRecord | null>;
25
+ /** All ChEMBL target ids cross-referenced from a UniProt accession. */
26
+ export declare function getChemblIdsByUniProt(accession: string): Promise<string[]>;
27
+ /** All Reactome pathway ids cross-referenced from a UniProt accession. */
28
+ export declare function getReactomePathwaysByUniProt(accession: string): Promise<string[]>;
@@ -0,0 +1,103 @@
1
+ /**
2
+ * Pure async client functions for the UniProt REST API
3
+ * (https://rest.uniprot.org/uniprotkb/).
4
+ *
5
+ * Used by target-assessment as the source of truth for:
6
+ * - ChEMBL cross-references — every ChEMBL target id linked to a UniProt
7
+ * accession (replaces the hand-curated ALTERNATE_CHEMBL_IDS map).
8
+ * - Protein family text — used together with IUPHAR family-target
9
+ * resolution to identify sibling receptors in the same pharmacological
10
+ * family (replaces the hand-curated RELATED_FAMILY_UNIPROTS map).
11
+ */
12
+ import { z } from "zod";
13
+ import { apiFetchValidated, describeApiError } from "./api-utils.js";
14
+ import { UNIPROT_BASE, UNIPROT_HEADERS } from "./uniprot-config.js";
15
+ const RawCommentSchema = z.object({
16
+ commentType: z.string().optional(),
17
+ texts: z.array(z.object({ value: z.string().optional() })).optional(),
18
+ });
19
+ const FIELDS = ["accession", "id", "gene_names", "xref_chembl", "xref_reactome", "cc_similarity"].join(",");
20
+ function extractFamilyText(comments) {
21
+ if (!comments)
22
+ return null;
23
+ for (const c of comments) {
24
+ if (c.commentType !== "SIMILARITY")
25
+ continue;
26
+ for (const t of c.texts ?? []) {
27
+ const v = t.value?.trim();
28
+ if (v)
29
+ return v;
30
+ }
31
+ }
32
+ return null;
33
+ }
34
+ // A single schema that both validates the raw UniProtKB wire shape and
35
+ // normalizes it into the `UniProtRecord` we return. Every field is optional
36
+ // because the API omits absent values; parsing IS the validation, so a payload
37
+ // whose field TYPES drift is rejected as `invalid_response` rather than silently
38
+ // mis-mapped. `z.infer` of the transform is the `UniProtRecord` output type.
39
+ const UniProtRecordSchema = z
40
+ .object({
41
+ primaryAccession: z.string().optional(),
42
+ uniProtkbId: z.string().optional(),
43
+ genes: z
44
+ .array(z.object({
45
+ geneName: z.object({ value: z.string().optional() }).optional(),
46
+ synonyms: z.array(z.object({ value: z.string().optional() })).optional(),
47
+ }))
48
+ .optional(),
49
+ uniProtKBCrossReferences: z.array(z.object({ database: z.string().optional(), id: z.string().optional() })).optional(),
50
+ comments: z.array(RawCommentSchema).optional(),
51
+ })
52
+ .transform((raw) => {
53
+ const chemblIds = [];
54
+ const reactomeIds = [];
55
+ for (const x of raw.uniProtKBCrossReferences ?? []) {
56
+ if (!x.id)
57
+ continue;
58
+ if (x.database === "ChEMBL")
59
+ chemblIds.push(x.id);
60
+ else if (x.database === "Reactome")
61
+ reactomeIds.push(x.id);
62
+ }
63
+ const geneNames = [];
64
+ for (const g of raw.genes ?? []) {
65
+ const name = g.geneName?.value;
66
+ if (name)
67
+ geneNames.push(name);
68
+ }
69
+ return {
70
+ primaryAccession: raw.primaryAccession ?? "",
71
+ uniProtkbId: raw.uniProtkbId ?? null,
72
+ geneNames,
73
+ chemblIds,
74
+ reactomePathwayIds: reactomeIds,
75
+ proteinFamilyText: extractFamilyText(raw.comments),
76
+ };
77
+ });
78
+ /**
79
+ * Fetch a single UniProtKB entry by accession. Returns null on 404; throws
80
+ * on other HTTP errors so callers can surface upstream outages.
81
+ */
82
+ export async function getUniProtRecord(accession) {
83
+ const url = `${UNIPROT_BASE}/uniprotkb/${encodeURIComponent(accession)}?fields=${FIELDS}&format=json`;
84
+ const res = await apiFetchValidated(url, UniProtRecordSchema, { headers: UNIPROT_HEADERS });
85
+ if (res.isErr()) {
86
+ if (res.error.type === "http_status" && res.error.status === 404)
87
+ return null;
88
+ throw new Error(describeApiError(res.error));
89
+ }
90
+ if (!res.value.primaryAccession)
91
+ return null;
92
+ return res.value;
93
+ }
94
+ /** All ChEMBL target ids cross-referenced from a UniProt accession. */
95
+ export async function getChemblIdsByUniProt(accession) {
96
+ const rec = await getUniProtRecord(accession);
97
+ return rec?.chemblIds ?? [];
98
+ }
99
+ /** All Reactome pathway ids cross-referenced from a UniProt accession. */
100
+ export async function getReactomePathwaysByUniProt(accession) {
101
+ const rec = await getUniProtRecord(accession);
102
+ return rec?.reactomePathwayIds ?? [];
103
+ }
@@ -0,0 +1,5 @@
1
+ /** Shared constants for the UniProt REST API. */
2
+ export declare const UNIPROT_BASE = "https://rest.uniprot.org";
3
+ export declare const UNIPROT_HEADERS: {
4
+ readonly Accept: "application/json";
5
+ };
@@ -0,0 +1,3 @@
1
+ /** Shared constants for the UniProt REST API. */
2
+ export const UNIPROT_BASE = "https://rest.uniprot.org";
3
+ export const UNIPROT_HEADERS = { Accept: "application/json" };
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Memory barrel — working-memory read/update tool.
3
+ */
4
+ export * from "./update-working-memory.js";
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Memory barrel — working-memory read/update tool.
3
+ */
4
+ export * from "./update-working-memory.js";
@@ -0,0 +1,25 @@
1
+ /**
2
+ * update-working-memory — the agent's single interface for maintaining
3
+ * working memory.
4
+ *
5
+ * Dependency-bearing: the `WorkingMemoryStore` is captured by the factory
6
+ * (see the harness-durable-runtime spec). The analysis id is read from the request-scoped `Session`.
7
+ *
8
+ * The input is a flat object with a `section` discriminator — not a
9
+ * `z.discriminatedUnion`, which `defineTool` rejects (Anthropic needs a
10
+ * top-level `"type":"object"`). The variant fields are validated by
11
+ * `.refine` so a malformed call (e.g. a `finding` with no `runId`) fails
12
+ * at the loop boundary and surfaces as an `is_error` tool result.
13
+ */
14
+ import type { WorkingMemoryStore } from "../../memory/working-memory.js";
15
+ export declare function createUpdateWorkingMemoryTool(workingMemory: WorkingMemoryStore): import("../define-tool.js").Tool<{
16
+ section: "constraint" | "goal" | "hypothesis" | "finding";
17
+ operation?: "add" | "revise" | "retire" | undefined;
18
+ text?: string | undefined;
19
+ id?: string | undefined;
20
+ origin?: "user" | "agent" | undefined;
21
+ runId?: string | undefined;
22
+ }, {
23
+ ok: boolean;
24
+ section: "constraint" | "goal" | "hypothesis" | "finding";
25
+ }>;