@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 @@
1
+ export declare const modulatorTriagePrompt = "# Modulator triage agent\n\nYou are selecting which clinically-advanced ChEMBL modulators of a target deserve a deep-dive in the assessment dossier. The downstream pipeline will fan out per-modulator FAERS, polypharmacology, and trial-AE lookups against the shortlist you produce \u2014 too many entries waste budget, too few miss real signal.\n\n## Inputs\n\n- A resolved target (gene symbol, ChEMBL target id).\n- The full ChEMBL modulator set returned by Phase 1 \u2014 every molecule with `max_phase \u2265 2` against this target.\n\n## Decision contract\n\nReturn up to **8** shortlisted modulators ranked by clinical informativeness. Apply these rules in order:\n\n1. **Approved drugs (max_phase = 4)** are always included (up to 8). They are the strongest evidence for \u00A72.6.6 class precedent.\n2. **Phase-3 drugs** are included next, prioritized by recency of `firstApproval` if known, then by descending phase.\n3. **Phase-2 drugs** fill remaining slots only when fewer than 4 approved/phase-3 drugs exist.\n4. **De-prioritize duplicates of the same chemotype** when names share an obvious common stem (e.g., multiple kinase inhibitors with the same warhead). Keep the most clinically advanced of each cluster.\n5. **Drop modulators with no `preferredName`** \u2014 without a name we cannot match them against FAERS or trial AEs anyway.\n\n## Output\n\nReturn a structured JSON object with `shortlist[]` (each: `moleculeChemblId`, `preferredName`, `maxPhase`, `firstApproval`, `rationale`) and `notes` (one short sentence explaining the selection \u2014 used to surface in the dossier coverage notes).\n\n## Anti-patterns\n\n- Do NOT call any tools. Phase 1 already collected the modulator set; your job is selection, not retrieval.\n- Do NOT invent modulators not present in the input.\n- Do NOT pad with low-phase drugs to hit 8 \u2014 fewer high-quality picks beats more marginal ones.\n- Do NOT exclude a class on the basis of \"we already have one inhibitor\" if that one is approved and the candidate is a distinct chemotype.\n- Do NOT fabricate structural classifications in `rationale`. Quote the input `molecule_type` field verbatim \u2014 never describe a molecule as \"small-molecule (non-peptide)\", \"peptide\", \"biologic\", or \"antibody\" unless that classification is explicitly present in the input. If the input `molecule_type` is \"Unknown\" or null, write \"molecule_type=Unknown \u2014 structural classification unverified\" rather than guessing. If a route of administration (oral, parenteral, intranasal) is claimed in `rationale`, it must come from a field already on the input row, not inferred from the molecule's name or chemotype.\n";
@@ -0,0 +1,31 @@
1
+ export const modulatorTriagePrompt = `# Modulator triage agent
2
+
3
+ You are selecting which clinically-advanced ChEMBL modulators of a target deserve a deep-dive in the assessment dossier. The downstream pipeline will fan out per-modulator FAERS, polypharmacology, and trial-AE lookups against the shortlist you produce — too many entries waste budget, too few miss real signal.
4
+
5
+ ## Inputs
6
+
7
+ - A resolved target (gene symbol, ChEMBL target id).
8
+ - The full ChEMBL modulator set returned by Phase 1 — every molecule with \`max_phase ≥ 2\` against this target.
9
+
10
+ ## Decision contract
11
+
12
+ Return up to **8** shortlisted modulators ranked by clinical informativeness. Apply these rules in order:
13
+
14
+ 1. **Approved drugs (max_phase = 4)** are always included (up to 8). They are the strongest evidence for §2.6.6 class precedent.
15
+ 2. **Phase-3 drugs** are included next, prioritized by recency of \`firstApproval\` if known, then by descending phase.
16
+ 3. **Phase-2 drugs** fill remaining slots only when fewer than 4 approved/phase-3 drugs exist.
17
+ 4. **De-prioritize duplicates of the same chemotype** when names share an obvious common stem (e.g., multiple kinase inhibitors with the same warhead). Keep the most clinically advanced of each cluster.
18
+ 5. **Drop modulators with no \`preferredName\`** — without a name we cannot match them against FAERS or trial AEs anyway.
19
+
20
+ ## Output
21
+
22
+ Return a structured JSON object with \`shortlist[]\` (each: \`moleculeChemblId\`, \`preferredName\`, \`maxPhase\`, \`firstApproval\`, \`rationale\`) and \`notes\` (one short sentence explaining the selection — used to surface in the dossier coverage notes).
23
+
24
+ ## Anti-patterns
25
+
26
+ - Do NOT call any tools. Phase 1 already collected the modulator set; your job is selection, not retrieval.
27
+ - Do NOT invent modulators not present in the input.
28
+ - Do NOT pad with low-phase drugs to hit 8 — fewer high-quality picks beats more marginal ones.
29
+ - Do NOT exclude a class on the basis of "we already have one inhibitor" if that one is approved and the candidate is a distinct chemotype.
30
+ - Do NOT fabricate structural classifications in \`rationale\`. Quote the input \`molecule_type\` field verbatim — never describe a molecule as "small-molecule (non-peptide)", "peptide", "biologic", or "antibody" unless that classification is explicitly present in the input. If the input \`molecule_type\` is "Unknown" or null, write "molecule_type=Unknown — structural classification unverified" rather than guessing. If a route of administration (oral, parenteral, intranasal) is claimed in \`rationale\`, it must come from a field already on the input row, not inferred from the molecule's name or chemotype.
31
+ `;
@@ -0,0 +1 @@
1
+ export declare const offTargetAnnotatorPrompt = "You are a clinical-consequence annotator for off-target receptor and channel hits surfaced during target assessment.\n\nYou receive a single off-target binding row and the assessment's primary target. Return ONE clinically-grounded sentence describing what binding to this off-target at the indicated pchembl could mean for a drug developed against the primary target. Be specific about the safety, efficacy, or developability implication \u2014 not a generic statement.\n\nINPUT\n primary_target_gene: HGNC gene symbol of the assessment target\n off_target_id: ChEMBL target id of the off-target (may be null)\n off_target_name: Human-readable name of the off-target\n off_target_accession: UniProt accession of the off-target (may be null)\n pchembl: The off-target pChEMBL value (higher = more potent binding)\n context: Optional family-relationship hint (e.g., \"obligate cofactor with the primary protein\")\n\nOUTPUT (strict JSON, no prose around it)\n{\n \"clinical_consequence\": \"<one sentence>\",\n \"provenance\": \"<a short descriptor of the rationale, e.g., 'class-B GPCR cofactor pharmacology' or 'hERG QT-prolongation safety panel'>\"\n}\n\nRULES\n- Keep clinical_consequence to a single sentence, \u2264 280 characters, present tense.\n- Anchor the consequence in established pharmacology when possible (mechanism class, organ system, known liability).\n- If the off-target is a sibling receptor sharing the primary protein (e.g., AMY1/CALCR + RAMP1 for a CALCR assessment), describe the obligate-cofactor surface \u2014 selectivity is not engineering-attainable.\n- For ion channels in the cardiac safety panel (hERG/KCNH2, hNav1.5/SCN5A, Cav1.2/CACNA1C), name the cardiotoxicity risk (QT prolongation, conduction slowing, etc.).\n- For nuclear receptors and CYP enzymes, name the metabolic or endocrine consequence.\n- If the off-target is unfamiliar, describe what the structural/functional class implies for safety rather than inventing specifics.\n- Never claim a numeric clinical endpoint (incidence rate, hazard ratio) you were not given.\n- Never reference a specific drug program or trial.\n";
@@ -0,0 +1,28 @@
1
+ export const offTargetAnnotatorPrompt = `You are a clinical-consequence annotator for off-target receptor and channel hits surfaced during target assessment.
2
+
3
+ You receive a single off-target binding row and the assessment's primary target. Return ONE clinically-grounded sentence describing what binding to this off-target at the indicated pchembl could mean for a drug developed against the primary target. Be specific about the safety, efficacy, or developability implication — not a generic statement.
4
+
5
+ INPUT
6
+ primary_target_gene: HGNC gene symbol of the assessment target
7
+ off_target_id: ChEMBL target id of the off-target (may be null)
8
+ off_target_name: Human-readable name of the off-target
9
+ off_target_accession: UniProt accession of the off-target (may be null)
10
+ pchembl: The off-target pChEMBL value (higher = more potent binding)
11
+ context: Optional family-relationship hint (e.g., "obligate cofactor with the primary protein")
12
+
13
+ OUTPUT (strict JSON, no prose around it)
14
+ {
15
+ "clinical_consequence": "<one sentence>",
16
+ "provenance": "<a short descriptor of the rationale, e.g., 'class-B GPCR cofactor pharmacology' or 'hERG QT-prolongation safety panel'>"
17
+ }
18
+
19
+ RULES
20
+ - Keep clinical_consequence to a single sentence, ≤ 280 characters, present tense.
21
+ - Anchor the consequence in established pharmacology when possible (mechanism class, organ system, known liability).
22
+ - If the off-target is a sibling receptor sharing the primary protein (e.g., AMY1/CALCR + RAMP1 for a CALCR assessment), describe the obligate-cofactor surface — selectivity is not engineering-attainable.
23
+ - For ion channels in the cardiac safety panel (hERG/KCNH2, hNav1.5/SCN5A, Cav1.2/CACNA1C), name the cardiotoxicity risk (QT prolongation, conduction slowing, etc.).
24
+ - For nuclear receptors and CYP enzymes, name the metabolic or endocrine consequence.
25
+ - If the off-target is unfamiliar, describe what the structural/functional class implies for safety rather than inventing specifics.
26
+ - Never claim a numeric clinical endpoint (incidence rate, hazard ratio) you were not given.
27
+ - Never reference a specific drug program or trial.
28
+ `;
@@ -0,0 +1 @@
1
+ export declare const toxVoiceCore: string;
@@ -0,0 +1,74 @@
1
+ import { toxVoiceVocabulary } from "./vocabulary.js";
2
+ /**
3
+ * Toxicologist-voice contract. Loaded into the instructions of every
4
+ * prose-emitting agent in the target-assessment workflow. Voice is locked
5
+ * here once; agents inherit by import. The deterministic critique fn in
6
+ * `critique.ts` enforces the predictable failure modes; this prompt
7
+ * carries the editorial intent.
8
+ */
9
+ const banned = toxVoiceVocabulary.banned.map((b) => ` - "${b}"`).join("\n");
10
+ const hedge = toxVoiceVocabulary.hedgePhrases.map((h) => ` - "${h}"`).join("\n");
11
+ const organs = toxVoiceVocabulary.organSystems.join(", ");
12
+ const framing = toxVoiceVocabulary.liabilityFraming.map((f) => ` - "${f}"`).join("\n");
13
+ export const toxVoiceCore = `# Toxicologist Voice Contract
14
+
15
+ You are writing for a regulatory toxicologist or FDA reviewer. Adopt the
16
+ register of a Multi-disciplinary Review or Drug Approval Package narrative
17
+ section. The reader expects nonclinical-safety canon, organ-system
18
+ framing, and explicit hedging on human relevance.
19
+
20
+ ## Register and voice
21
+ - Third-person passive is the default. "The sponsor's data are
22
+ consistent with..." is canonical; "We think..." is not.
23
+ - Past or perfect tense for findings; present for current dispositions.
24
+ - Sentences are study-summary cadence: claim, evidence, qualifier.
25
+ - No marketing register. No first-person plural. No rhetorical flourishes.
26
+
27
+ ## Organ-system framing
28
+ Anchor liability discussion to the canonical organ systems below. Avoid
29
+ colloquial substitutes ("liver-related" → use "hepatobiliary"; "blood
30
+ issues" → "haematologic"; "brain effects" → "central nervous system").
31
+
32
+ Canon: ${organs}.
33
+
34
+ ## Liability framing vocabulary
35
+ Use these terms when characterising the relationship between target
36
+ biology and observed liability:
37
+ ${framing}
38
+
39
+ ## Hedge language (mandatory on efficacy and safety claims)
40
+ Every claim about efficacy or safety in humans must be paired with a
41
+ hedge from this set, OR cite a literature reference (PMID/DOI), OR cite a
42
+ regulatory reference (FDA guidance, ICH, prior-approval Multi-disciplinary
43
+ Review). A claim with neither hedge nor citation is rejected by the
44
+ voice probe.
45
+
46
+ Approved hedges:
47
+ ${hedge}
48
+
49
+ ## Banned phrases
50
+ The following carry marketing register or unwarranted certainty. Do not
51
+ use them. The voice probe rejects any output that contains them; rewrite
52
+ to neutral, evidence-cited phrasing.
53
+ ${banned}
54
+
55
+ ## Citation form
56
+ - Literature: PMID:NNNNNNNN or DOI:10.xxxx/xxxx.
57
+ - FDA guidance: "FDA CDER guidance, <title>" or "FDA CBER guidance, <title>".
58
+ - ICH: "ICH <code>" — e.g., "ICH S7A", "ICH E14".
59
+ - Prior approvals (openFDA / Drugs@FDA): "Drugs@FDA NDA NNNNNN §<section>"
60
+ or "BLA NNNNNN §<section>".
61
+ - FAERS counts: "(FAERS n=NN)" with PT or HLT qualifier where applicable.
62
+
63
+ ## Coverage discipline
64
+ When a section's evidence is sparse or absent, say so plainly. The
65
+ phrasing "the data do not support a conclusion" or "no relevant evidence
66
+ was retrieved" is preferred over silence, padding, or fabrication.
67
+
68
+ ## Tone calibration
69
+ - A reviewer reading the section should be able to tell within two
70
+ sentences whether the claim is supported, hedged, or absent.
71
+ - Hedged claims must not read as confident; the hedge is load-bearing.
72
+ - Where multiple precedent compounds are cited, frame them as class
73
+ evidence, not anecdotes.
74
+ `;
@@ -0,0 +1,7 @@
1
+ import type { SectionType } from "./exemplars.js";
2
+ export interface VoiceProbe {
3
+ verdict: "pass" | "relaxed" | "fail-voice";
4
+ critique: string;
5
+ output_chars: number;
6
+ }
7
+ export declare function buildVoiceCritique(text: string, _sectionType: SectionType): VoiceProbe;
@@ -0,0 +1,109 @@
1
+ import { toxVoiceVocabulary } from "./vocabulary.js";
2
+ const COLLOQUIAL_ORGAN_SUBS = [
3
+ [/\bliver[- ]related\b/i, "hepatobiliary"],
4
+ [/\bblood[- ]issues?\b/i, "haematologic"],
5
+ [/\bbrain[- ]effects?\b/i, "central nervous system"],
6
+ [/\bkidney[- ]problems?\b/i, "renal"],
7
+ [/\bheart[- ]issues?\b/i, "cardiac"],
8
+ ];
9
+ const EFFICACY_SAFETY_TRIGGERS = [
10
+ /\b(reduces?|increases?|prolongs?|prevents?|inhibits?)\b/i,
11
+ /\b(toxicity|liability|adverse|signal)\b/i,
12
+ /\b(efficacy|response|survival|tumour|tumor)\b/i,
13
+ ];
14
+ const CITATION_PATTERNS = [
15
+ /PMID[:\s]?\d+/i,
16
+ /DOI[:\s]?10\.[\d.]+\/\S+/i,
17
+ /Drugs@FDA\s+(NDA|BLA)\s*\d+/i,
18
+ /\bICH\s+[A-Z]\d+[A-Z]?\b/,
19
+ /FDA\s+(CDER|CBER)\s+guidance/i,
20
+ /FAERS\s+n\s*=\s*\d+/i,
21
+ ];
22
+ /**
23
+ * Heuristic passive-voice detector. Handles simple passives ("was observed")
24
+ * and negated passives ("was not observed", "were not reported"). Not
25
+ * linguistically exhaustive — calibrated to filter only egregious active-voice
26
+ * dossier prose. Threshold tuned during end-to-end calibration in Phase 10.
27
+ */
28
+ function passiveRatio(text) {
29
+ const sentences = text.split(/[.!?]\s+/).filter((s) => s.trim().length > 0);
30
+ if (sentences.length === 0)
31
+ return 1;
32
+ const passive = sentences.filter((s) => /\b(is|are|was|were|been|being)\s+(?:not\s+)?\w+(ed|en)\b/.test(s)).length;
33
+ return passive / sentences.length;
34
+ }
35
+ function findBannedPhrases(text) {
36
+ const hits = [];
37
+ for (const banned of toxVoiceVocabulary.banned) {
38
+ // Escape regex metacharacters first (`.`, `+`, `*`, `?`, `(`, `)`, etc.),
39
+ // then allow either hyphen or space between hyphenated tokens.
40
+ const escaped = banned.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
41
+ const pattern = new RegExp(`\\b${escaped.replace(/[-]/g, "[- ]")}\\b`, "i");
42
+ if (pattern.test(text))
43
+ hits.push(banned);
44
+ }
45
+ return hits;
46
+ }
47
+ function findColloquialOrganRefs(text) {
48
+ const hits = [];
49
+ for (const [pat, canonical] of COLLOQUIAL_ORGAN_SUBS) {
50
+ if (pat.test(text))
51
+ hits.push(`${pat.source} → ${canonical}`);
52
+ }
53
+ return hits;
54
+ }
55
+ function hasHedge(text) {
56
+ const lc = text.toLowerCase();
57
+ return toxVoiceVocabulary.hedgePhrases.some((h) => lc.includes(h.toLowerCase()));
58
+ }
59
+ function hasCitation(text) {
60
+ return CITATION_PATTERNS.some((p) => p.test(text));
61
+ }
62
+ function detectsEfficacyOrSafetyClaim(text) {
63
+ return EFFICACY_SAFETY_TRIGGERS.some((p) => p.test(text));
64
+ }
65
+ const PASSIVE_FAIL_THRESHOLD = 0.15;
66
+ const PASSIVE_RELAXED_THRESHOLD = 0.3;
67
+ export function buildVoiceCritique(text, _sectionType) {
68
+ const output_chars = text.length;
69
+ const issues = [];
70
+ const banned = findBannedPhrases(text);
71
+ if (banned.length > 0) {
72
+ issues.push(`Banned phrase(s) detected: ${banned.join(", ")}.`);
73
+ }
74
+ const colloquial = findColloquialOrganRefs(text);
75
+ if (colloquial.length > 0) {
76
+ issues.push(`Non-canonical organ-system reference(s); use canonical organ-system vocabulary.`);
77
+ }
78
+ if (detectsEfficacyOrSafetyClaim(text) && !hasHedge(text) && !hasCitation(text)) {
79
+ issues.push("Efficacy/safety claim detected with no hedge phrase and no citation. Add a hedge from the approved set, a literature citation (PMID/DOI), or a regulatory reference (Drugs@FDA / ICH / FDA guidance).");
80
+ }
81
+ if (issues.length > 0) {
82
+ return {
83
+ verdict: "fail-voice",
84
+ critique: issues.join(" "),
85
+ output_chars,
86
+ };
87
+ }
88
+ // Hedge phrases and citations are primary voice signals. When either is
89
+ // present the prose is already anchored in the correct register; the
90
+ // passive-ratio heuristic is a secondary fallback for unanchored text only.
91
+ if (!hasHedge(text) && !hasCitation(text)) {
92
+ const passive = passiveRatio(text);
93
+ if (passive < PASSIVE_FAIL_THRESHOLD) {
94
+ return {
95
+ verdict: "fail-voice",
96
+ critique: `Passive-voice ratio ${passive.toFixed(2)} below floor ${PASSIVE_FAIL_THRESHOLD}; rewrite in third-person passive (study-summary cadence).`,
97
+ output_chars,
98
+ };
99
+ }
100
+ if (passive < PASSIVE_RELAXED_THRESHOLD) {
101
+ return {
102
+ verdict: "relaxed",
103
+ critique: `Passive-voice ratio ${passive.toFixed(2)} below preferred ${PASSIVE_RELAXED_THRESHOLD}; rewrite in third-person passive (study-summary cadence) on next iteration.`,
104
+ output_chars,
105
+ };
106
+ }
107
+ }
108
+ return { verdict: "pass", critique: "", output_chars };
109
+ }
@@ -0,0 +1,8 @@
1
+ export type SectionType = "liability-bullets" | "target-organ-liabilities" | "translational-commentary" | "executive-recommendation";
2
+ /**
3
+ * Annotated few-shot exemplars per section type. Each is an inlined sample
4
+ * of acceptable tox voice. Implementations may extend this list during
5
+ * editorial review with customer; the probe and prompts both read the
6
+ * exported array, so additions take effect with no other code changes.
7
+ */
8
+ export declare const toxVoiceExemplars: Record<SectionType, readonly string[]>;
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Annotated few-shot exemplars per section type. Each is an inlined sample
3
+ * of acceptable tox voice. Implementations may extend this list during
4
+ * editorial review with customer; the probe and prompts both read the
5
+ * exported array, so additions take effect with no other code changes.
6
+ */
7
+ export const toxVoiceExemplars = {
8
+ "liability-bullets": [
9
+ "Hepatobiliary liability is consistent with on-target pharmacology in the bile-acid receptor class; transaminase elevations at supratherapeutic exposure have been reported across the precedent class (FAERS n=312, Drugs@FDA NDA 022501 §6.1).",
10
+ "Renal liability cannot be excluded on present data; expression in proximal tubule is high (HPA TPM 142) and IMPC homozygotes show albuminuria (p=8.4e-5). Human relevance is uncertain pending dedicated repeat-dose toxicology.",
11
+ ],
12
+ "target-organ-liabilities": [
13
+ "Cardiac. Available evidence is consistent with QT-interval prolongation as a class effect (FAERS PT QT-prolonged n=87 across precedent class). Human relevance is supported by hERG inhibition data on three precedent compounds. Mitigation: ICH E14-aligned thorough QT study at first-in-human or matched concentration-QT modelling.",
14
+ "Hepatobiliary. The data suggest dose-dependent transaminase elevation; FAERS reports of clinical hepatic injury (n=42) cluster at exposures >2-fold the recommended human dose. The translational chain from rodent repeat-dose findings to human signal is consistent.",
15
+ ],
16
+ "translational-commentary": [
17
+ "IMPC homozygous knockout mice show postnatal lethality with cardiac structural abnormalities (MP:0001297, MP:0010880). Heterozygous viability with cardiac function deficit suggests dose-dependent on-target liability; translatability to humans is supported by conserved expression in fetal myocardium (Bgee, n=14).",
18
+ "Expression is high in haematologic lineages (HPA TPM, lymphoid TPM=78). The data are consistent with on-target myelosuppression observed in two precedent compounds in the same class; human relevance is established for the class.",
19
+ ],
20
+ "executive-recommendation": [
21
+ "Disposition: conditional. The available evidence supports tractability for small-molecule modulation; the principal liability is on-target hepatobiliary toxicity, mitigable by exposure margin design and ICH S7A-aligned safety pharmacology. Confidence is moderate; key gaps are an absent first-in-human safety dataset and uncertain reproductive toxicology.",
22
+ "Disposition: de-prioritize. Three precedent compounds in this class were withdrawn for cardiac liability post-approval (Drugs@FDA NDA 020841 §6.2; FAERS n=412); human relevance is established. The therapeutic window does not support advancement absent a structural mitigation strategy.",
23
+ ],
24
+ };
@@ -0,0 +1,4 @@
1
+ export { toxVoiceCore } from "./core.js";
2
+ export { toxVoiceExemplars, type SectionType } from "./exemplars.js";
3
+ export { toxVoiceVocabulary, type OrganSystem, type LiabilityFraming, type HedgePhrase, type BannedTerm } from "./vocabulary.js";
4
+ export { buildVoiceCritique, type VoiceProbe } from "./critique.js";
@@ -0,0 +1,4 @@
1
+ export { toxVoiceCore } from "./core.js";
2
+ export { toxVoiceExemplars } from "./exemplars.js";
3
+ export { toxVoiceVocabulary } from "./vocabulary.js";
4
+ export { buildVoiceCritique } from "./critique.js";
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Tox-voice canon. Lists are intentionally not exhaustive — they are the
3
+ * minimum surface the deterministic voice probe enforces. Editorial
4
+ * judgment in the agent prompts covers the long tail.
5
+ */
6
+ export declare const toxVoiceVocabulary: {
7
+ readonly organSystems: readonly ["hepatobiliary", "renal", "cardiac", "vascular", "haematologic", "central nervous system", "peripheral nervous system", "respiratory", "gastrointestinal", "reproductive", "endocrine", "musculoskeletal", "dermatologic", "ocular", "immunologic"];
8
+ readonly liabilityFraming: readonly ["on-target liability", "off-target liability", "secondary pharmacology", "class liability", "mechanism-related", "exaggerated pharmacology", "target-organ toxicity"];
9
+ readonly hedgePhrases: readonly ["the data are consistent with", "the data suggest", "human relevance is uncertain", "human relevance remains to be established", "interpretation is limited by", "no causal inference is supported", "the available evidence is consistent with", "the available evidence does not support", "translatability to humans is unclear", "species differences"];
10
+ readonly banned: readonly ["groundbreaking", "cutting-edge", "state-of-the-art", "best-in-class", "first-in-class", "revolutionary", "leverages", "leveraging", "robust", "powerful", "seamlessly", "cleanly", "elegant", "unparalleled", "demonstrates the power of", "showcases", "unlocks", "enables breakthrough", "very promising", "extremely", "incredibly", "highly innovative"];
11
+ };
12
+ export type OrganSystem = (typeof toxVoiceVocabulary.organSystems)[number];
13
+ export type LiabilityFraming = (typeof toxVoiceVocabulary.liabilityFraming)[number];
14
+ export type HedgePhrase = (typeof toxVoiceVocabulary.hedgePhrases)[number];
15
+ export type BannedTerm = (typeof toxVoiceVocabulary.banned)[number];
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Tox-voice canon. Lists are intentionally not exhaustive — they are the
3
+ * minimum surface the deterministic voice probe enforces. Editorial
4
+ * judgment in the agent prompts covers the long tail.
5
+ */
6
+ export const toxVoiceVocabulary = {
7
+ organSystems: [
8
+ "hepatobiliary",
9
+ "renal",
10
+ "cardiac",
11
+ "vascular",
12
+ "haematologic",
13
+ "central nervous system",
14
+ "peripheral nervous system",
15
+ "respiratory",
16
+ "gastrointestinal",
17
+ "reproductive",
18
+ "endocrine",
19
+ "musculoskeletal",
20
+ "dermatologic",
21
+ "ocular",
22
+ "immunologic",
23
+ ],
24
+ liabilityFraming: [
25
+ "on-target liability",
26
+ "off-target liability",
27
+ "secondary pharmacology",
28
+ "class liability",
29
+ "mechanism-related",
30
+ "exaggerated pharmacology",
31
+ "target-organ toxicity",
32
+ ],
33
+ hedgePhrases: [
34
+ "the data are consistent with",
35
+ "the data suggest",
36
+ "human relevance is uncertain",
37
+ "human relevance remains to be established",
38
+ "interpretation is limited by",
39
+ "no causal inference is supported",
40
+ "the available evidence is consistent with",
41
+ "the available evidence does not support",
42
+ "translatability to humans is unclear",
43
+ "species differences",
44
+ ],
45
+ banned: [
46
+ // Marketing register
47
+ "groundbreaking",
48
+ "cutting-edge",
49
+ "state-of-the-art",
50
+ "best-in-class",
51
+ "first-in-class",
52
+ "revolutionary",
53
+ "leverages",
54
+ "leveraging",
55
+ "robust",
56
+ "powerful",
57
+ "seamlessly",
58
+ "cleanly",
59
+ "elegant",
60
+ "unparalleled",
61
+ // Hype verbs
62
+ "demonstrates the power of",
63
+ "showcases",
64
+ "unlocks",
65
+ "enables breakthrough",
66
+ // Vague absolutes
67
+ "very promising",
68
+ "extremely",
69
+ "incredibly",
70
+ "highly innovative",
71
+ ],
72
+ };
@@ -0,0 +1,148 @@
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
+ import type { ArtifactRecord } from "../execution/artifact-record.js";
15
+ import type { ProvenanceRecord, InputRef, InputSource } from "./types.js";
16
+ /** A single observed write from the provenance frame.
17
+ *
18
+ * `hash` is left empty by `feedExecFrame` — it is the
19
+ * responsibility of `reconcileManifestWithDisk` to populate the hash
20
+ * from disk just before registration, so the registered hash always
21
+ * matches the bytes the storage backend will receive at upload time. Callers that
22
+ * synthesize writes from a context where the bytes are already known
23
+ * and stable (e.g., `recordFileToolWrite` for in-process agent tool
24
+ * writes) may pass a non-empty hash directly.
25
+ */
26
+ export interface ObservedWrite {
27
+ /** Analysis-relative path (e.g., "runs/run-001/step-de/output/results.csv") */
28
+ path: string;
29
+ /** SHA-256 hash of the file content. Empty string when deferred to reconcile. */
30
+ hash: string;
31
+ /** File size in bytes. */
32
+ size: number;
33
+ }
34
+ /** Explicit classification context for a file read. Callers build this
35
+ * from the step's own coordinates (stepId/runId/dependsOn) instead of the
36
+ * collector parsing paths. */
37
+ export interface InputClassificationContext {
38
+ source: InputSource;
39
+ stepId?: string;
40
+ runId?: string;
41
+ }
42
+ /**
43
+ * Build classification context for a file read using known step metadata.
44
+ *
45
+ * Uses prefix matching against structured metadata — no path segment
46
+ * extraction. The caller knows its own stepId/runId and its upstream
47
+ * dependencies (dependsOn).
48
+ *
49
+ * For prior-run reads (paths under runs/ that don't match own run or
50
+ * any dependsOn entry), this falls back to path extraction — see the
51
+ * prior-run branch below for why.
52
+ */
53
+ export declare function classifyReadPath(relativePath: string, ownStepId: string, ownRunId: string, dependsOn?: string[]): InputClassificationContext;
54
+ export interface ProvenanceCollectorOptions {
55
+ stepId: string;
56
+ runId: string;
57
+ /** Step IDs this step depends on (for upstream mount enumeration). */
58
+ dependsOn?: string[];
59
+ }
60
+ export declare class ProvenanceCollector {
61
+ readonly stepId: string;
62
+ readonly runId: string;
63
+ readonly dependsOn: string[];
64
+ /** Prefix for converting analysis-relative write paths to step-relative. */
65
+ private readonly stepPrefix;
66
+ /**
67
+ * Map from input file relative path (e.g., "inputs/Lab A Storage/trail_0/data.csv")
68
+ * to fileId. Sourced from the data-mount filesystem's inputPathToFileId map
69
+ * (passed by reference, populated lazily during filesystem init).
70
+ */
71
+ private inputFileIdMap?;
72
+ /** Tracked reads from read-only mounts, keyed by `mountPath:relativePath`. */
73
+ private readonly inputAccesses;
74
+ /** File tool write records, keyed by output path (relative to /artifacts). */
75
+ private readonly fileToolRecords;
76
+ /** Command execution records, keyed by output path (relative to /artifacts). */
77
+ private readonly commandRecords;
78
+ constructor(opts: ProvenanceCollectorOptions);
79
+ /**
80
+ * Set the input file ID map (passed by reference from the data-mount filesystem).
81
+ * Called after construction when the data mount filesystem is available.
82
+ */
83
+ setInputFileIdMap(map: Map<string, string>): void;
84
+ /**
85
+ * Track a file read from a read-only mount.
86
+ * Called by sandbox exec provenance frame processing.
87
+ *
88
+ * @param mountPath - The workspace mount path (e.g., "/a1/data" or "/a1" for single-mount)
89
+ * @param relativePath - Path relative to the mount root
90
+ * @param hash - SHA-256 hash of the file content, or null if file no longer exists
91
+ * @param context - Explicit classification context from the caller. When provided,
92
+ * the collector uses it directly instead of classifying from the path.
93
+ */
94
+ trackInputAccess(mountPath: string, relativePath: string, hash: string | null, context?: InputClassificationContext): InputRef;
95
+ /**
96
+ * Record a file tool write (write_file, edit_file).
97
+ * Called after the data-mount filesystem records the artifact.
98
+ *
99
+ * File tool writes are agent-authored content — not derived from input
100
+ * files via execution — so no inputs are attributed.
101
+ */
102
+ recordFileToolWrite(artifact: ArtifactRecord): void;
103
+ /**
104
+ * Record outputs from a sandbox command execution.
105
+ * Called after provenance frame processing extracts observed writes.
106
+ *
107
+ * When commandReads is provided, uses those as the inputs for this
108
+ * command's provenance records (per-command scoping). Falls back to
109
+ * snapshotting the global inputAccesses accumulator when not provided.
110
+ */
111
+ recordCommandExecution(command: string, args: string[], exitCode: number, durationMs: number, writes: ObservedWrite[], scriptPath?: string, commandReads?: InputRef[]): void;
112
+ /**
113
+ * Get provenance inputs classified as `source: "data"` (input files read from /data mount).
114
+ */
115
+ getDataInputs(): InputRef[];
116
+ /**
117
+ * All distinct input refs observed this step, any source. The returned refs
118
+ * are the live objects also held by the per-command records, so repairing a
119
+ * `hash` here (e.g. `reconcileManifestWithDisk` filling read hashes from
120
+ * disk) propagates into the registration payload.
121
+ */
122
+ getTrackedInputs(): InputRef[];
123
+ /**
124
+ * Drop an input ref from lineage entirely — removes it from the tracked-input
125
+ * map and from every record's `inputs` array (identity match, since the refs
126
+ * are shared objects). `reconcileManifestWithDisk` calls this for a read that
127
+ * resolves to a directory (e.g. an `ls` / `list.files` of a mount): the
128
+ * inotify frame tracks the open, but a directory is not a content-attestable
129
+ * file artifact and must never reach registration. Mirrors the output-side
130
+ * non-file drop.
131
+ */
132
+ dropInput(ref: InputRef): void;
133
+ /**
134
+ * Get merged, deduplicated provenance records.
135
+ * Command records win over file-tool records for the same output path.
136
+ */
137
+ getRecords(): ProvenanceRecord[];
138
+ /** Remove any record (command or file-tool) for the given output path. */
139
+ removeRecord(path: string): void;
140
+ /**
141
+ * Replace the existing record for `record.outputPath` while preserving
142
+ * last-write-wins ordering (command beats file-tool). If a command record
143
+ * exists, the replacement overwrites it; otherwise the file-tool record
144
+ * is overwritten. If neither exists, the replacement is stored as a
145
+ * file-tool record so `getRecords()` surfaces it.
146
+ */
147
+ replaceRecord(record: ProvenanceRecord): void;
148
+ }