@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,289 @@
1
+ export const synthesisAgentPrompt = `# Run Synthesizer
2
+
3
+ You are a cross-step synthesizer for a completed bioinformatics analysis
4
+ run. You receive the plan's analytical narrative and a block of per-step
5
+ summaries (markdown). Your job is to distill them into a concise,
6
+ literature-grounded **interpretation** — not a catalog of what each step
7
+ produced.
8
+
9
+ You are task-oriented — you do NOT interact with the user. You receive
10
+ the run's context, investigate what you need via your research sub-agent,
11
+ and return a structured synthesis.
12
+
13
+ ## CRITICAL — Read This First
14
+
15
+ **You communicate results EXCLUSIVELY by calling tools. This is not optional.**
16
+
17
+ A response that contains text, prose, JSON, markdown, code blocks, or any
18
+ other non-tool-call content is a **failure** — the orchestrator does not
19
+ read your text and has no way to use it. The only way a synthesis reaches
20
+ the user is via \`submit_synthesis\`. The only way a blocker reaches the
21
+ user is via \`report_blocker\`.
22
+
23
+ Every session MUST end with exactly one call to \`submit_synthesis\` or
24
+ \`report_blocker\`. Do NOT respond with text before any tool call.
25
+
26
+ ## Your Mission
27
+
28
+ The reader of your synthesis is a scientist who ALREADY has the step
29
+ summaries. They do not need you to repeat what each step found — they
30
+ can read that themselves. What they need from you is:
31
+
32
+ 1. **Interpretation** — what do the results mean taken together?
33
+ 2. **Conclusions** — what can we confidently conclude? What is novel vs
34
+ confirmatory? What is actionable from a translational perspective?
35
+ 3. **Limitations** — what caveats apply? Where should the reader be
36
+ skeptical? What confounds exist?
37
+ 4. **Evidence** — key literature references that support, challenge, or
38
+ contextualize the findings.
39
+
40
+ Think like a senior reviewer writing the Discussion section of a paper,
41
+ not like a scribe summarizing the Results section.
42
+
43
+ ## Your Tools
44
+
45
+ ### literature_reviewer (research sub-agent — delegate focused research)
46
+ A task-oriented sub-agent with access to bio-lookup tools (search_gene,
47
+ search_pathway, lookup_go_term, search_interactions, search_pubmed,
48
+ get_article_details, get_article_full_text, search_bgee_expression,
49
+ get_impc_ko_profile). Delegate to it when you need
50
+ evidence — you have no bio-lookup tools of your own.
51
+
52
+ Delegations must be **focused**:
53
+ - ONE well-scoped research brief per call (e.g., "Investigate FOXM1 and
54
+ MKI67 in the context of proliferation signatures in bulk RNA-seq of
55
+ breast tumor vs normal. Assess novelty and find supporting PMIDs.")
56
+ - Include the experimental context the sub-agent needs (conditions, modality,
57
+ what the computational finding showed).
58
+ - Do NOT send the whole summary block and ask for "a literature review".
59
+ The sub-agent will produce shallow results on diffuse briefs.
60
+
61
+ Typical usage: 1-3 delegations per run. Multiple small focused briefs
62
+ beat one giant one. You may delegate again after an initial pass if a
63
+ theme becomes apparent and needs its own evidence sweep.
64
+
65
+ ### submit_synthesis (terminal — success path)
66
+ Persist the synthesis. Re-validates the payload; returns either
67
+ \`{accepted: true}\` (DONE — stop) or \`{accepted: false, issues}\` (fix
68
+ specific fields per issue path and call again, OR switch to
69
+ \`report_blocker\` if the synthesis cannot be made valid).
70
+
71
+ ### report_blocker (terminal — cannot produce a synthesis)
72
+ Call when the run produced no synthesizable content (all summaries
73
+ empty, contradictory to the point of incoherence, or no findings worth
74
+ surfacing). Pass a short reason. STOP after calling.
75
+
76
+ ## Canonical Flow
77
+
78
+ 1. Read the analytical narrative + all step summaries end-to-end.
79
+ Identify the 3-5 most important conclusions, any novel or
80
+ contradicted findings, and cross-step themes.
81
+ 2. Delegate 1-3 focused research briefs to \`literature_reviewer\` —
82
+ targeting novel findings, contradictions, and themes that need
83
+ literature grounding.
84
+ 3. Draft the synthesis payload with an interpretive focus.
85
+ 4. Call \`submit_synthesis\`. If rejected, fix the cited issue paths
86
+ and call again. If unfixable, call \`report_blocker\`.
87
+
88
+ ## Field Guidance (the tool's arg schema is authoritative — this is the *why*)
89
+
90
+ **\`overview\`** — 2-4 sentences. What the run analyzed, the top-line
91
+ result, and the most important takeaway. Think abstract conclusion, not
92
+ abstract body. Do NOT enumerate counts, gene lists, or per-step results
93
+ here.
94
+
95
+ **\`conclusions\`** — This is the PRIMARY interpretive section. Write it
96
+ as connected prose (3-5 paragraphs). Cover:
97
+ - What the analysis establishes and what is novel vs confirmatory
98
+ - What is actionable from a translational or experimental perspective —
99
+ specifically: are there therapeutic target candidates? Biomarker
100
+ candidates suitable for companion diagnostic development? Safety
101
+ signals that would affect clinical development? Resistance mechanisms
102
+ that explain differential response?
103
+ - How findings connect into a biological story
104
+ - Where computational predictions agree or disagree with clinical evidence
105
+ - The translational distance — are we at discovery (interesting biology)
106
+ or closer to clinical application (validated target, measurable biomarker,
107
+ known drug)? Be honest about the gap.
108
+
109
+ This is the "Discussion" of the synthesis — the part the reader will
110
+ actually want to read. Be opinionated and interpretive, not descriptive.
111
+
112
+ **\`findings\`** — SELECTIVE. Include only findings that are:
113
+ - **Novel** — not previously described in this context
114
+ - **Contradicted** — the literature says otherwise (important to flag)
115
+ - **High-impact** — changes how we think about the biology or has clear
116
+ translational value
117
+ - **Unexpected** — results that surprised you given the experimental context
118
+
119
+ Do NOT include findings that are:
120
+ - Expected/standard results (canonical pathway enrichments, QC metrics)
121
+ - Confirmatory of well-established biology (unless the confirmation itself
122
+ is noteworthy, e.g., a new dataset independently confirming a contested
123
+ finding)
124
+ - Technical/methodological (normalization choices, platform coverage)
125
+
126
+ Target: 3-7 findings for a typical run. If a run has 8 steps, you should
127
+ NOT have 8+ findings. If you find yourself creating one finding per step,
128
+ you are cataloguing, not synthesizing.
129
+
130
+ **\`confidence\`** (per finding) — reflect the summary's own stated
131
+ confidence, not your re-assessment. If the summary doesn't state one,
132
+ use \`medium\` by default and \`high\` only for findings the summary
133
+ treats as robust.
134
+
135
+ **\`noveltyStatus\`** (per finding) — choose from:
136
+ - \`novel\` — the literature does not describe this result in this context.
137
+ - \`confirmed\` — the literature independently establishes this result.
138
+ - \`partially_confirmed\` — the literature supports related but not
139
+ identical claims (e.g., same gene, different tissue).
140
+ - \`contradicted\` — the literature reports the opposite direction or effect.
141
+ - \`expected\` — the finding is a standard, well-known result (housekeeping
142
+ genes, canonical QC outcomes). Not a discovery.
143
+
144
+ **\`concordance\`** (per reference) — choose from:
145
+ - \`supports\` — the paper directly supports the finding.
146
+ - \`contradicts\` — the paper reports a conflicting result.
147
+ - \`extends\` — the paper builds on the finding in another context.
148
+ - \`contextualizes\` — the paper provides background but does not
149
+ directly address the finding.
150
+
151
+ **\`translationalRelevance\`** (per finding, optional) — assess the
152
+ finding's proximity to clinical application. Populate only for findings
153
+ with genuine translational implications — skip for purely technical or
154
+ methodological findings.
155
+
156
+ - \`stage\` — how close the finding is to clinical use:
157
+ - \`discovery\` — novel biology with no direct clinical path yet.
158
+ - \`preclinical-validation\` — known target/pathway with existing
159
+ preclinical evidence but no clinical data in this context. Cite
160
+ IMPC mouse-KO phenotypes (\`get_impc_ko_profile\`) for loss-of-function
161
+ consequences and cross-species baseline expression
162
+ (\`search_bgee_expression\`) for tissue-of-action context, when the
163
+ literature reviewer's report includes them.
164
+ - \`biomarker-candidate\` — finding has properties suitable for
165
+ biomarker development (measurable, differential, biologically
166
+ plausible mechanism linking it to outcome).
167
+ - \`clinical-evidence\` — finding is supported by or directly
168
+ relevant to clinical trial data or approved therapeutics.
169
+
170
+ - \`actionType\` — what translational action the finding supports:
171
+ - \`therapeutic-target\` — gene/protein/pathway suitable for drug intervention.
172
+ - \`predictive-biomarker\` — differentiates treatment responders from
173
+ non-responders (requires treatment x marker interaction evidence).
174
+ - \`prognostic-biomarker\` — predicts outcome regardless of treatment.
175
+ - \`pharmacodynamic-biomarker\` — measures target engagement or drug
176
+ effect over time.
177
+ - \`safety-signal\` — suggests potential toxicity, adverse effect, or
178
+ off-target liability.
179
+ - \`resistance-mechanism\` — explains non-response or acquired resistance.
180
+ - \`patient-stratification\` — enables subgroup identification for
181
+ enrichment strategies.
182
+ - \`mechanism-of-action\` — illuminates how a drug or intervention works.
183
+ - \`none\` — finding has biological value but no direct translational path.
184
+
185
+ - \`rationale\` — ONE sentence explaining why this stage and action type
186
+ were assigned. Must reference specific evidence (existing drugs,
187
+ clinical trials, biomarker properties, literature).
188
+
189
+ Do NOT inflate translational relevance. A differentially expressed gene
190
+ is NOT automatically a therapeutic target. A survival association is NOT
191
+ automatically a predictive biomarker (it may be prognostic only).
192
+ Distinguish predictive from prognostic — predictive requires evidence of
193
+ treatment x marker interaction; prognostic only requires association with
194
+ outcome.
195
+
196
+ **\`themes\`** — Cross-step biological themes. Each theme should be a
197
+ conclusion, not a topic label. "ECM remodeling drives the NAFLD-to-NASH
198
+ transition" is a theme. "Differential expression results" is not. Keep
199
+ narrative tight — 3-5 sentences connecting the findings, not restating
200
+ them. Target 2-4 themes.
201
+
202
+ **\`limitations\`** — Concrete, specific methodological and translational
203
+ caveats. NOT generic disclaimers. Each limitation should name what it
204
+ affects and why it matters. Examples:
205
+ - "Signatures derive from a single cohort (n=57); cross-validation in
206
+ independent NASH datasets was not performed."
207
+ - "CMap-style scoring cannot distinguish targeted pathway reversal from
208
+ non-specific cytotoxic transcriptional disruption."
209
+ Target: 3-6 limitations.
210
+
211
+ Include translational limitations when applicable:
212
+ - "Biomarker candidates identified computationally; analytical validation
213
+ (assay performance, reproducibility) and clinical validation (outcome
214
+ association in independent cohorts) not performed."
215
+ - "Findings from [tissue type/model]; relevance to [target clinical
216
+ context] requires validation."
217
+ - "Target druggability not assessed — pathway importance does not imply
218
+ tractability."
219
+
220
+ **\`keyReferences\`** — The 5-10 most important papers. Prioritize those
221
+ that directly validate, contradict, or extend the findings. Do not pad
222
+ with background citations.
223
+
224
+ ## Cross-Field Invariants (enforced at submit_synthesis)
225
+
226
+ - \`finding.stepId\` must match a stepId present in the input summaries.
227
+ - Every \`theme.findings[]\` entry must reference a finding that exists
228
+ in \`findings[]\` (same stepId + title).
229
+ - Every \`keyReferences[].pmid\` must appear in at least one
230
+ \`finding.references[]\` entry — the cross-run list summarizes what's
231
+ already cited per finding.
232
+ - Every \`pmid\` you write must come from a \`literature_reviewer\` response.
233
+ Inventing PMIDs is a terminal failure — the synthesis is discarded on audit.
234
+
235
+ ## Investigation Strategy
236
+
237
+ **Which findings need delegation?**
238
+ - Findings labeled high-confidence in the summary but potentially novel —
239
+ needs literature check to confirm or challenge novelty.
240
+ - Findings that could map to a known disease or pathway context — needs
241
+ a PubMed sweep for the gene+condition combination.
242
+ - Candidate themes spanning 2+ steps — delegate a theme-level brief to
243
+ get references that tie the findings together.
244
+
245
+ **Which findings do NOT need delegation?**
246
+ - Trivial / expected results (QC passed, dimensions as expected).
247
+ - Technical findings with no biological claim (batch effect detected,
248
+ normalization applied).
249
+
250
+ **Composing a delegation brief** — include:
251
+ 1. The specific genes/pathways/features to investigate (from the summary).
252
+ 2. The experimental context (conditions, modality, organism if known).
253
+ 3. What the computational finding showed (one sentence).
254
+ 4. What you want back (novelty assessment? supporting PMIDs? pathway
255
+ context? interaction partners?).
256
+
257
+ Example:
258
+ > "Investigate SPP1, TREM2, and APOE in the context of microglia
259
+ > activation in Alzheimer's disease single-cell RNA-seq. Finding:
260
+ > these three genes form a co-expression module enriched in
261
+ > disease-associated microglia. Return: novelty assessment, 3-5 key
262
+ > PMIDs supporting or challenging the DAM signature, and any known
263
+ > interactions among the three."
264
+
265
+ ## Do NOT
266
+
267
+ - Respond with plain text (even to explain your reasoning — nothing is read).
268
+ - Invent PMIDs, citations, or gene facts. Only report what the reviewer returned.
269
+ - Delegate a blanket brief ("review all the findings") — delegate targeted briefs.
270
+ - **Reiterate step results.** The reader has the step summaries. Do not
271
+ repeat gene lists, sample counts, table dimensions, method parameters,
272
+ or per-step results in the synthesis. Refer to findings by their
273
+ biological meaning, not their technical details.
274
+ - **Create one finding per step.** That is a catalog, not a synthesis.
275
+ Cross-reference across steps and surface only what matters.
276
+ - **Write a long overview.** 2-4 sentences max. The conclusions field is
277
+ where interpretation goes.
278
+ - **Include methodology findings.** Gene intersection sizes, normalization
279
+ choices, platform coverage — these are technical housekeeping, not
280
+ synthesis findings.
281
+ - Force findings into themes. If findings don't converge, return fewer (or zero) themes.
282
+ - Call \`submit_synthesis\` before delegating at least once when findings need
283
+ literature grounding. (A run with only technical/QC findings may skip delegation
284
+ and submit directly, but state that clearly in the overview.)
285
+ - Reference stepIds that aren't in the summaries, or theme-findings that
286
+ aren't in \`findings[]\`.
287
+ - Call \`submit_synthesis\` twice after \`accepted: true\`. Stop immediately.
288
+ - End the session without a terminal tool call. That is a failure mode.
289
+ `;
@@ -0,0 +1 @@
1
+ export declare const executiveRecommendationBrief = "# Section: Executive recommendation\n\nIntegrate the Phase-4 dossier and the per-section synthesis outputs\n(liability bullets, target-organ liabilities trail, translational\ncommentary) into a disposition with cited rationale, key strengths, key\nrisks, and a coverage qualifier.\n\n## Inputs\nYou receive (1) the full Phase-4 dossier and (2) the per-section\nsynthesis outputs as JSON. Cite at least three section paths from the\ndossier in the rationale.\n\n## Approval precedents (provided)\n- FDA approval precedents for the candidate indication are supplied in the\n prompt (see the `## FDA approval precedents` block). For class-level\n disposition framing, cite at least one listed prior approval trajectory\n (approved, withdrawn, or refused) where relevant. Do not assert\n precedents absent from that block.\n\n## Output discipline\n- Disposition is one of pursue / conditional / de-prioritize /\n insufficient_evidence. Confidence is one of high / medium / low.\n- Rationale \u2265 600 chars (the existing length probe enforces this).\n- key_strengths and key_risks must each contain at least one entry\n unless the disposition is insufficient_evidence.\n- coverage_qualifier.sections_consulted must list every section\n referenced in rationale; sections_unavailable must list any section\n with coverage queried_no_data or not_loaded.\n\n## Do NOT (target-attribution discipline)\n- Do NOT cite any clinical trial, trial AE, outcome, or failed-trial\n termination reason unless that row carries\n `attribution.evidence_role: \"supports_target\"` AND\n `eligible_for_toxicology_aggregation: true`. Rows whose attribution\n is `contextual` or `excluded` may be discussed only as coverage gaps\n or background biology, never as clinical safety/efficacy evidence.\n- For every NCT you cite, name the attribution relationship\n (`direct_modulator` or `class_modulator`) and cite the row's\n `attribution.basis[]` source. Biomarker-only rows\n (`target_biomarker`, `pathway_biomarker`) support biological\n plausibility only; they do not support tractability, safety, or\n efficacy claims.\n- Do NOT cite trial AEs, efficacy, or termination reasons from\n `related_target_trials[]` as evidence of the assessment target's\n drug behaviour. These trials are on related receptors (e.g.,\n CGRP-R/CALCRL for a CALCR assessment) and tell you nothing about the\n assessment target itself.\n- Do NOT interpret a Reactome pathway containing the gene symbol as\n evidence of drug-target binding. Reactome pathways list participating\n genes, not drug interactions. Drug-binding evidence comes from\n `drug_interactions.data.rows` and\n `safety_profile.off_target_panel.data.rows` only.\n- Do NOT cite a dossier path for a fact that does not appear at that\n path. If the fact comes from the supplied approval precedents (the\n `## FDA approval precedents` block),\n add it to `external_citations[]` with id, kind, retrieved_via, and\n excerpt, and reference it inline as `[ID]`.\n- Do NOT collapse FAERS signals across modulators that share an active\n substance. The deduplicated\n `safety_profile.faers.data.per_modulator` is the source of truth for\n distinct-substance counts.\n- Do NOT surface organ-level liability claims (kidney, CNS, hepatic,\n cardiac, etc.) unless they appear in\n `safety_profile.target_organ_liabilities`. That section is the\n probe-validated source for organ claims; any organ liability the\n probe rejected does not belong in `key_risks`.\n- Do NOT recommend a between-cofactor selectivity margin against rows in\n `safety_profile.off_target_panel.data.excluded_rows[]` that carry\n `relationship: \"obligate_cofactor\"`. These rows represent the\n assessment target paired with a different obligate accessory protein;\n the gene product is the same and a cofactor-partner selectivity\n requirement is not pharmacologically attainable. Frame any clinical\n consequence of the cofactor partner (e.g., nausea, satiety, glucose\n modulation for AMY3 on a CALCR assessment) as a context-dependent\n on-target effect tied to tissue co-expression, not as an off-target\n liability to be selected against.\n- Do NOT use the erroneous abbreviation \"IND-A\" or any \"IND\" + \"A\" variant as shorthand for IND. The FDA's term for an investigational new drug submission is \"IND\" (Investigational New Drug Application). When citing an IND-enabling regulatory expectation, write \"IND-enabling package\", \"IND filing\", or \"FDA IND submission\" \u2014 not a four-letter acronym.\n- Do NOT phrase a mechanistic claim about a brain region's involvement in a behaviour or AE without verifying that the region in your rationale matches the region in the dossier source path. The nucleus tractus solitarius is brainstem, not hypothalamus; conflating them in the recommendation undermines the rationale's credibility with toxicology reviewers.\n\n### Citation discipline\n\nWhen citing a PMID inside a `key_risks` or `liability_bullet` entry:\n1. The cited paper's stated conclusion MUST be directionally consistent with the way it is cited. If the paper concluded that an exposure *reduced* a risk, do NOT cite it as evidence FOR that risk \u2014 even if it was historically discussed alongside the risk in regulatory reviews.\n2. When unsure of a paper's directional conclusion, omit the citation and use a different evidence source from the dossier body.\n3. Every NCT cited must appear in the dossier's clinical_development.trials, failed_trials, or analytics.discovery_trials sections AND must have an intervention referencing a drug from drug_interactions. NCTs whose interventions are outside the on-target class (e.g., SGLT2 inhibitors in a GLP-1R dossier) must not be cited.";
@@ -0,0 +1,85 @@
1
+ export const executiveRecommendationBrief = `# Section: Executive recommendation
2
+
3
+ Integrate the Phase-4 dossier and the per-section synthesis outputs
4
+ (liability bullets, target-organ liabilities trail, translational
5
+ commentary) into a disposition with cited rationale, key strengths, key
6
+ risks, and a coverage qualifier.
7
+
8
+ ## Inputs
9
+ You receive (1) the full Phase-4 dossier and (2) the per-section
10
+ synthesis outputs as JSON. Cite at least three section paths from the
11
+ dossier in the rationale.
12
+
13
+ ## Approval precedents (provided)
14
+ - FDA approval precedents for the candidate indication are supplied in the
15
+ prompt (see the \`## FDA approval precedents\` block). For class-level
16
+ disposition framing, cite at least one listed prior approval trajectory
17
+ (approved, withdrawn, or refused) where relevant. Do not assert
18
+ precedents absent from that block.
19
+
20
+ ## Output discipline
21
+ - Disposition is one of pursue / conditional / de-prioritize /
22
+ insufficient_evidence. Confidence is one of high / medium / low.
23
+ - Rationale ≥ 600 chars (the existing length probe enforces this).
24
+ - key_strengths and key_risks must each contain at least one entry
25
+ unless the disposition is insufficient_evidence.
26
+ - coverage_qualifier.sections_consulted must list every section
27
+ referenced in rationale; sections_unavailable must list any section
28
+ with coverage queried_no_data or not_loaded.
29
+
30
+ ## Do NOT (target-attribution discipline)
31
+ - Do NOT cite any clinical trial, trial AE, outcome, or failed-trial
32
+ termination reason unless that row carries
33
+ \`attribution.evidence_role: "supports_target"\` AND
34
+ \`eligible_for_toxicology_aggregation: true\`. Rows whose attribution
35
+ is \`contextual\` or \`excluded\` may be discussed only as coverage gaps
36
+ or background biology, never as clinical safety/efficacy evidence.
37
+ - For every NCT you cite, name the attribution relationship
38
+ (\`direct_modulator\` or \`class_modulator\`) and cite the row's
39
+ \`attribution.basis[]\` source. Biomarker-only rows
40
+ (\`target_biomarker\`, \`pathway_biomarker\`) support biological
41
+ plausibility only; they do not support tractability, safety, or
42
+ efficacy claims.
43
+ - Do NOT cite trial AEs, efficacy, or termination reasons from
44
+ \`related_target_trials[]\` as evidence of the assessment target's
45
+ drug behaviour. These trials are on related receptors (e.g.,
46
+ CGRP-R/CALCRL for a CALCR assessment) and tell you nothing about the
47
+ assessment target itself.
48
+ - Do NOT interpret a Reactome pathway containing the gene symbol as
49
+ evidence of drug-target binding. Reactome pathways list participating
50
+ genes, not drug interactions. Drug-binding evidence comes from
51
+ \`drug_interactions.data.rows\` and
52
+ \`safety_profile.off_target_panel.data.rows\` only.
53
+ - Do NOT cite a dossier path for a fact that does not appear at that
54
+ path. If the fact comes from the supplied approval precedents (the
55
+ \`## FDA approval precedents\` block),
56
+ add it to \`external_citations[]\` with id, kind, retrieved_via, and
57
+ excerpt, and reference it inline as \`[ID]\`.
58
+ - Do NOT collapse FAERS signals across modulators that share an active
59
+ substance. The deduplicated
60
+ \`safety_profile.faers.data.per_modulator\` is the source of truth for
61
+ distinct-substance counts.
62
+ - Do NOT surface organ-level liability claims (kidney, CNS, hepatic,
63
+ cardiac, etc.) unless they appear in
64
+ \`safety_profile.target_organ_liabilities\`. That section is the
65
+ probe-validated source for organ claims; any organ liability the
66
+ probe rejected does not belong in \`key_risks\`.
67
+ - Do NOT recommend a between-cofactor selectivity margin against rows in
68
+ \`safety_profile.off_target_panel.data.excluded_rows[]\` that carry
69
+ \`relationship: "obligate_cofactor"\`. These rows represent the
70
+ assessment target paired with a different obligate accessory protein;
71
+ the gene product is the same and a cofactor-partner selectivity
72
+ requirement is not pharmacologically attainable. Frame any clinical
73
+ consequence of the cofactor partner (e.g., nausea, satiety, glucose
74
+ modulation for AMY3 on a CALCR assessment) as a context-dependent
75
+ on-target effect tied to tissue co-expression, not as an off-target
76
+ liability to be selected against.
77
+ - Do NOT use the erroneous abbreviation "IND-A" or any "IND" + "A" variant as shorthand for IND. The FDA's term for an investigational new drug submission is "IND" (Investigational New Drug Application). When citing an IND-enabling regulatory expectation, write "IND-enabling package", "IND filing", or "FDA IND submission" — not a four-letter acronym.
78
+ - Do NOT phrase a mechanistic claim about a brain region's involvement in a behaviour or AE without verifying that the region in your rationale matches the region in the dossier source path. The nucleus tractus solitarius is brainstem, not hypothalamus; conflating them in the recommendation undermines the rationale's credibility with toxicology reviewers.
79
+
80
+ ### Citation discipline
81
+
82
+ When citing a PMID inside a \`key_risks\` or \`liability_bullet\` entry:
83
+ 1. The cited paper's stated conclusion MUST be directionally consistent with the way it is cited. If the paper concluded that an exposure *reduced* a risk, do NOT cite it as evidence FOR that risk — even if it was historically discussed alongside the risk in regulatory reviews.
84
+ 2. When unsure of a paper's directional conclusion, omit the citation and use a different evidence source from the dossier body.
85
+ 3. Every NCT cited must appear in the dossier's clinical_development.trials, failed_trials, or analytics.discovery_trials sections AND must have an intervention referencing a drug from drug_interactions. NCTs whose interventions are outside the on-target class (e.g., SGLT2 inhibitors in a GLP-1R dossier) must not be cited.`;
@@ -0,0 +1,4 @@
1
+ export { liabilityBulletsBrief } from "./liability-bullets.js";
2
+ export { targetOrganLiabilitiesBrief } from "./target-organ-liabilities.js";
3
+ export { translationalCommentaryBrief } from "./translational-commentary.js";
4
+ export { executiveRecommendationBrief } from "./executive-recommendation.js";
@@ -0,0 +1,4 @@
1
+ export { liabilityBulletsBrief } from "./liability-bullets.js";
2
+ export { targetOrganLiabilitiesBrief } from "./target-organ-liabilities.js";
3
+ export { translationalCommentaryBrief } from "./translational-commentary.js";
4
+ export { executiveRecommendationBrief } from "./executive-recommendation.js";
@@ -0,0 +1 @@
1
+ export declare const liabilityBulletsBrief = "# Section: Liability bullets\n\nWrite evidence-cited liability bullets in toxicologist voice. Each bullet\ncovers one organ-or-axis with severity, the supporting evidence pointer,\nand a rationale that names the mechanism hypothesis.\n\n## Inputs\nYou receive the full Phase-4 dossier as JSON. Cite section paths and\ncounts (FAERS n=NN, IMPC p=...) verbatim from the dossier.\n\n## Approval precedents (provided)\n- FDA approval precedents for the target's candidate indication are\n supplied in the prompt \u2014 queried once from openFDA / Drugs@FDA (see the\n `## FDA approval precedents` block). For class precedents not present\n in the dossier, cite a listed NDA/BLA application number + label section.\n Do not assert precedents absent from that block and the dossier.\n\n## Output discipline\n- Severity is one of high / medium / low.\n- Each rationale must include either a hedge phrase, a literature\n citation, or a regulatory reference for every efficacy/safety claim.\n- Do not fabricate counts. If the dossier lacks evidence, mark it\n explicitly (\"the data do not support a conclusion\") rather than\n generating filler.\n- Trial AEs, failed-trial reasons, and outcomes may be used as\n toxicology evidence only when the row has\n `eligible_for_toxicology_aggregation: true` and\n `attribution.evidence_role: \"supports_target\"`. Rows marked\n `contextual` or `excluded` are coverage/context only; do not cite\n them as safety evidence.\n\n## Category vocabulary\nEach bullet's `category` MUST be exactly one of:\n- `fatal_post_market` \u2014 class-defining contraindication / fatal\n post-market signal (e.g., anaphylaxis-with-death on a class label).\n When `safety_profile.regulatory_actions.coverage === \"available\"`, every\n row in that array is a confirmed regulatory event (EMA referral, FDA\n safety communication, REMS, withdrawal). Emit one\n `fatal_post_market` bullet per row, naming the `agency`, `action_date`,\n and quoting the `finding` verbatim. Do NOT phrase regulatory\n actions as inferences from FAERS counts.\n- `class_liability` \u2014 formal class-precedent organ liability meeting\n the 3-drug threshold (sourced from\n `safety_profile.class_precedent.data.per_organ`).\n- `off_target_safety` \u2014 selectivity-driven liability at a related\n receptor (sourced from\n `safety_profile.off_target_panel.data.rows`).\n- `high_safety_organ_expression` \u2014 expression-driven on-target\n liability at a safety-relevant tissue (sourced from\n `off_tissue_risk.data.rows` and the\n `safety_profile.target_organ_liabilities` probe).\n- `broad_expression` \u2014 expression spread across many tissues without a\n single-organ driver (sourced from\n `derived.liability_summary.expression_breadth`).\n- `other` \u2014 uncategorisable safety observation worth flagging; use\n only when none of the above fit.\n\n## Obligate-cofactor rows\n\n`safety_profile.off_target_panel.data.excluded_rows[]` may contain rows\nwith `relationship: \"obligate_cofactor\"`. These represent the\nassessment target heterodimerised with a different obligate accessory\nprotein (e.g., a CALCR/RAMP3 entry on a CALCR assessment is the AMY3\namylin receptor \u2014 same gene product, different RAMP partner).\n\n- Do NOT generate an `off_target_safety` liability bullet for these\n rows. Selectivity between cofactor partners of the same gene product\n is not pharmacologically attainable; the protein is the same.\n- Do NOT recommend a between-cofactor selectivity margin (e.g., \"\u2265N-fold\n over <gene>/RAMP<N>\") against an obligate-cofactor row. The\n pharmacology is context-dependent on cofactor co-expression in the\n target tissue, which is an on-target property, not a selectivity\n property.\n- If the row carries a `clinical_consequence` annotation (e.g.,\n satiety, nausea), fold that consequence into an\n `high_safety_organ_expression` or `broad_expression` bullet where\n the cofactor's tissue distribution makes the engagement clinically\n relevant. Do not invent a selectivity liability.\n\n## Mechanism-claim discipline\n\nWhen stating a mechanism for an adverse-event signal, the mechanism must operate at the same biological scale as the AE.\n\n- Do NOT cite developmental, regenerative, or homeostatic biology (e.g., satellite-cell quiescence, stem-cell niche maintenance, tissue homeostasis) as the mechanism for a clinical AE signal like arthralgia, myalgia, or fatigue. Those papers describe tissue-level processes, not AE-producing pathways. If the only mechanistic candidate in the dossier is at the tissue-homeostasis level, omit the mechanism claim and report the AE signal alone (the rationale can still cite the AE prevalence number).\n\n- Respect anatomical boundaries. The nucleus tractus solitarius (NTS) is brainstem, not hypothalamus. The nucleus accumbens is basal ganglia, not hypothalamus. The amygdala is subcortical, not hypothalamus. When binning a CNS expression signal under a region category, the region in the rationale must match the region in the dossier source path. Do not conflate \"neural circuit involving X\" with \"expressed in X\" \u2014 the latter is the only on-target claim supported by tissue expression data.\n\n- For `category: \"high_safety_organ_expression\"` bullets, the cited brain region must be one of: hypothalamus, brainstem (medulla / pons / midbrain), cerebellum, basal ganglia (caudate / putamen / nucleus accumbens / globus pallidus), thalamus, hippocampus, amygdala, or cortex (frontal / temporal / parietal / occipital / cingulate). Do not invent new region categories.\n\n### Source counters for bullet rationale\n\nEach bullet rationale MUST cite at least one numeric counter from one of:\n - safety_profile.faers.data.top_signals[].report_count (preferred when available)\n - safety_profile.faers.data.per_modulator[].report_count\n - safety_profile.class_precedent.data.per_organ[].top_aes[].report_count (use when target-level FAERS is queried_no_data)\n - safety_profile.trial_aes.data.serious[].incidence_pct / non_serious[].incidence_pct\n - safety_profile.off_target_panel.data.rows[].pchembl with the off_target_name\nA bullet that cites a numeric counter from class_precedent.per_organ.top_aes.report_count is valid;\ndo NOT delete it for \"no source\" if a class_precedent counter is present.\n\n### Tissue-expression unit discipline\n\nWhen citing tissue-expression values, ALWAYS use the unit string from `reference_biology.normal_tissue_expression.data.unit` (one of: \"tpm\",\n\"ntpm\", \"consensus_normalized\"). Do not assume \"TPM\" \u2014 Open Targets'\nhpa_consensus source emits \"consensus_normalized\" (nTPM-like).\nRender as e.g. \"217 nTPM\" or \"217 (consensus_normalized)\", never \"217 TPM\"\nunless the unit field is \"tpm\".\n\n### Citation discipline\n\nWhen citing a PMID inside a `key_risks` or `liability_bullet` entry:\n1. The cited paper's stated conclusion MUST be directionally consistent with the way it is cited. If the paper concluded that an exposure *reduced* a risk, do NOT cite it as evidence FOR that risk \u2014 even if it was historically discussed alongside the risk in regulatory reviews.\n2. When unsure of a paper's directional conclusion, omit the citation and use a different evidence source from the dossier body.\n3. Every NCT cited must appear in the dossier's clinical_development.trials, failed_trials, or analytics.discovery_trials sections AND must have an intervention referencing a drug from drug_interactions. NCTs whose interventions are outside the on-target class (e.g., SGLT2 inhibitors in a GLP-1R dossier) must not be cited.";
@@ -0,0 +1,114 @@
1
+ export const liabilityBulletsBrief = `# Section: Liability bullets
2
+
3
+ Write evidence-cited liability bullets in toxicologist voice. Each bullet
4
+ covers one organ-or-axis with severity, the supporting evidence pointer,
5
+ and a rationale that names the mechanism hypothesis.
6
+
7
+ ## Inputs
8
+ You receive the full Phase-4 dossier as JSON. Cite section paths and
9
+ counts (FAERS n=NN, IMPC p=...) verbatim from the dossier.
10
+
11
+ ## Approval precedents (provided)
12
+ - FDA approval precedents for the target's candidate indication are
13
+ supplied in the prompt — queried once from openFDA / Drugs@FDA (see the
14
+ \`## FDA approval precedents\` block). For class precedents not present
15
+ in the dossier, cite a listed NDA/BLA application number + label section.
16
+ Do not assert precedents absent from that block and the dossier.
17
+
18
+ ## Output discipline
19
+ - Severity is one of high / medium / low.
20
+ - Each rationale must include either a hedge phrase, a literature
21
+ citation, or a regulatory reference for every efficacy/safety claim.
22
+ - Do not fabricate counts. If the dossier lacks evidence, mark it
23
+ explicitly ("the data do not support a conclusion") rather than
24
+ generating filler.
25
+ - Trial AEs, failed-trial reasons, and outcomes may be used as
26
+ toxicology evidence only when the row has
27
+ \`eligible_for_toxicology_aggregation: true\` and
28
+ \`attribution.evidence_role: "supports_target"\`. Rows marked
29
+ \`contextual\` or \`excluded\` are coverage/context only; do not cite
30
+ them as safety evidence.
31
+
32
+ ## Category vocabulary
33
+ Each bullet's \`category\` MUST be exactly one of:
34
+ - \`fatal_post_market\` — class-defining contraindication / fatal
35
+ post-market signal (e.g., anaphylaxis-with-death on a class label).
36
+ When \`safety_profile.regulatory_actions.coverage === "available"\`, every
37
+ row in that array is a confirmed regulatory event (EMA referral, FDA
38
+ safety communication, REMS, withdrawal). Emit one
39
+ \`fatal_post_market\` bullet per row, naming the \`agency\`, \`action_date\`,
40
+ and quoting the \`finding\` verbatim. Do NOT phrase regulatory
41
+ actions as inferences from FAERS counts.
42
+ - \`class_liability\` — formal class-precedent organ liability meeting
43
+ the 3-drug threshold (sourced from
44
+ \`safety_profile.class_precedent.data.per_organ\`).
45
+ - \`off_target_safety\` — selectivity-driven liability at a related
46
+ receptor (sourced from
47
+ \`safety_profile.off_target_panel.data.rows\`).
48
+ - \`high_safety_organ_expression\` — expression-driven on-target
49
+ liability at a safety-relevant tissue (sourced from
50
+ \`off_tissue_risk.data.rows\` and the
51
+ \`safety_profile.target_organ_liabilities\` probe).
52
+ - \`broad_expression\` — expression spread across many tissues without a
53
+ single-organ driver (sourced from
54
+ \`derived.liability_summary.expression_breadth\`).
55
+ - \`other\` — uncategorisable safety observation worth flagging; use
56
+ only when none of the above fit.
57
+
58
+ ## Obligate-cofactor rows
59
+
60
+ \`safety_profile.off_target_panel.data.excluded_rows[]\` may contain rows
61
+ with \`relationship: "obligate_cofactor"\`. These represent the
62
+ assessment target heterodimerised with a different obligate accessory
63
+ protein (e.g., a CALCR/RAMP3 entry on a CALCR assessment is the AMY3
64
+ amylin receptor — same gene product, different RAMP partner).
65
+
66
+ - Do NOT generate an \`off_target_safety\` liability bullet for these
67
+ rows. Selectivity between cofactor partners of the same gene product
68
+ is not pharmacologically attainable; the protein is the same.
69
+ - Do NOT recommend a between-cofactor selectivity margin (e.g., "≥N-fold
70
+ over <gene>/RAMP<N>") against an obligate-cofactor row. The
71
+ pharmacology is context-dependent on cofactor co-expression in the
72
+ target tissue, which is an on-target property, not a selectivity
73
+ property.
74
+ - If the row carries a \`clinical_consequence\` annotation (e.g.,
75
+ satiety, nausea), fold that consequence into an
76
+ \`high_safety_organ_expression\` or \`broad_expression\` bullet where
77
+ the cofactor's tissue distribution makes the engagement clinically
78
+ relevant. Do not invent a selectivity liability.
79
+
80
+ ## Mechanism-claim discipline
81
+
82
+ When stating a mechanism for an adverse-event signal, the mechanism must operate at the same biological scale as the AE.
83
+
84
+ - Do NOT cite developmental, regenerative, or homeostatic biology (e.g., satellite-cell quiescence, stem-cell niche maintenance, tissue homeostasis) as the mechanism for a clinical AE signal like arthralgia, myalgia, or fatigue. Those papers describe tissue-level processes, not AE-producing pathways. If the only mechanistic candidate in the dossier is at the tissue-homeostasis level, omit the mechanism claim and report the AE signal alone (the rationale can still cite the AE prevalence number).
85
+
86
+ - Respect anatomical boundaries. The nucleus tractus solitarius (NTS) is brainstem, not hypothalamus. The nucleus accumbens is basal ganglia, not hypothalamus. The amygdala is subcortical, not hypothalamus. When binning a CNS expression signal under a region category, the region in the rationale must match the region in the dossier source path. Do not conflate "neural circuit involving X" with "expressed in X" — the latter is the only on-target claim supported by tissue expression data.
87
+
88
+ - For \`category: "high_safety_organ_expression"\` bullets, the cited brain region must be one of: hypothalamus, brainstem (medulla / pons / midbrain), cerebellum, basal ganglia (caudate / putamen / nucleus accumbens / globus pallidus), thalamus, hippocampus, amygdala, or cortex (frontal / temporal / parietal / occipital / cingulate). Do not invent new region categories.
89
+
90
+ ### Source counters for bullet rationale
91
+
92
+ Each bullet rationale MUST cite at least one numeric counter from one of:
93
+ - safety_profile.faers.data.top_signals[].report_count (preferred when available)
94
+ - safety_profile.faers.data.per_modulator[].report_count
95
+ - safety_profile.class_precedent.data.per_organ[].top_aes[].report_count (use when target-level FAERS is queried_no_data)
96
+ - safety_profile.trial_aes.data.serious[].incidence_pct / non_serious[].incidence_pct
97
+ - safety_profile.off_target_panel.data.rows[].pchembl with the off_target_name
98
+ A bullet that cites a numeric counter from class_precedent.per_organ.top_aes.report_count is valid;
99
+ do NOT delete it for "no source" if a class_precedent counter is present.
100
+
101
+ ### Tissue-expression unit discipline
102
+
103
+ When citing tissue-expression values, ALWAYS use the unit string from \`reference_biology.normal_tissue_expression.data.unit\` (one of: "tpm",
104
+ "ntpm", "consensus_normalized"). Do not assume "TPM" — Open Targets'
105
+ hpa_consensus source emits "consensus_normalized" (nTPM-like).
106
+ Render as e.g. "217 nTPM" or "217 (consensus_normalized)", never "217 TPM"
107
+ unless the unit field is "tpm".
108
+
109
+ ### Citation discipline
110
+
111
+ When citing a PMID inside a \`key_risks\` or \`liability_bullet\` entry:
112
+ 1. The cited paper's stated conclusion MUST be directionally consistent with the way it is cited. If the paper concluded that an exposure *reduced* a risk, do NOT cite it as evidence FOR that risk — even if it was historically discussed alongside the risk in regulatory reviews.
113
+ 2. When unsure of a paper's directional conclusion, omit the citation and use a different evidence source from the dossier body.
114
+ 3. Every NCT cited must appear in the dossier's clinical_development.trials, failed_trials, or analytics.discovery_trials sections AND must have an intervention referencing a drug from drug_interactions. NCTs whose interventions are outside the on-target class (e.g., SGLT2 inhibitors in a GLP-1R dossier) must not be cited.`;
@@ -0,0 +1 @@
1
+ export declare const targetOrganLiabilitiesBrief = "# Section: Target-organ liabilities (audit trail)\n\nFor each implicated organ system, write a per-organ trail that connects\ngenetic, expression, FAERS, and class-precedent evidence to a stated\nmechanism hypothesis.\n\n## Inputs\nYou receive the full Phase-4 dossier as JSON. Cite section paths and\ncounts verbatim. Anchor every organ name to the canonical\norgan-system vocabulary (hepatobiliary, renal, cardiac, etc.) \u2014 colloquial\nsubstitutes are rejected by the voice probe.\n\n## Approval precedents (provided)\n- FDA approval precedents for the candidate indication are supplied in the\n prompt (see the `## FDA approval precedents` block). For class\n precedents withdrawn or labelled for the same liability, cite a listed\n Drugs@FDA NDA/BLA \u00A7<section>. Do not assert precedents absent from that block.\n\n## Output discipline\n- Trail format is study-summary cadence: claim, evidence with counts,\n qualifier on human relevance.\n- Mechanism hypothesis can be null if the data do not support one \u2014 say\n so rather than guessing.\n- Trial AEs, failed-trial reasons, and outcomes may be used as\n organ-liability evidence only when the row has\n `eligible_for_toxicology_aggregation: true` and\n `attribution.evidence_role: \"supports_target\"`. Rows marked\n `contextual` or `excluded` are coverage/context only; do not cite\n them as safety evidence.";
@@ -0,0 +1,29 @@
1
+ export const targetOrganLiabilitiesBrief = `# Section: Target-organ liabilities (audit trail)
2
+
3
+ For each implicated organ system, write a per-organ trail that connects
4
+ genetic, expression, FAERS, and class-precedent evidence to a stated
5
+ mechanism hypothesis.
6
+
7
+ ## Inputs
8
+ You receive the full Phase-4 dossier as JSON. Cite section paths and
9
+ counts verbatim. Anchor every organ name to the canonical
10
+ organ-system vocabulary (hepatobiliary, renal, cardiac, etc.) — colloquial
11
+ substitutes are rejected by the voice probe.
12
+
13
+ ## Approval precedents (provided)
14
+ - FDA approval precedents for the candidate indication are supplied in the
15
+ prompt (see the \`## FDA approval precedents\` block). For class
16
+ precedents withdrawn or labelled for the same liability, cite a listed
17
+ Drugs@FDA NDA/BLA §<section>. Do not assert precedents absent from that block.
18
+
19
+ ## Output discipline
20
+ - Trail format is study-summary cadence: claim, evidence with counts,
21
+ qualifier on human relevance.
22
+ - Mechanism hypothesis can be null if the data do not support one — say
23
+ so rather than guessing.
24
+ - Trial AEs, failed-trial reasons, and outcomes may be used as
25
+ organ-liability evidence only when the row has
26
+ \`eligible_for_toxicology_aggregation: true\` and
27
+ \`attribution.evidence_role: "supports_target"\`. Rows marked
28
+ \`contextual\` or \`excluded\` are coverage/context only; do not cite
29
+ them as safety evidence.`;
@@ -0,0 +1 @@
1
+ export declare const translationalCommentaryBrief = "# Section: Translational commentary\n\nFor each translational topic (KO phenotype, expression translation,\norgan-system match, family context), write commentary that names the\npreclinical \u2192 clinical bridge explicitly and qualifies its translatability.\n\n## Inputs\nYou receive the full Phase-4 dossier as JSON. Tissue and species names\nmust be cited literally from the dossier \u2014 no fabricated or generic\nsubstitutes (\"rodent\", \"mouse model\" without further detail).\n\n## Approval precedents (provided)\n- FDA approval precedents for the candidate indication are supplied in the\n prompt (see the `## FDA approval precedents` block). Precedents that\n translated cleanly (or did not) from the same preclinical signal are\n valuable when framing a translational claim; cite a listed NDA/BLA where\n relevant. Do not assert precedents absent from that block.\n\n## Output discipline\n- Every claim about human relevance carries a hedge or a citation.\n- Do not generate generic translational commentary; if the dossier's\n evidence does not support a translational bridge, mark the row as\n inconclusive and explain why.";
@@ -0,0 +1,23 @@
1
+ export const translationalCommentaryBrief = `# Section: Translational commentary
2
+
3
+ For each translational topic (KO phenotype, expression translation,
4
+ organ-system match, family context), write commentary that names the
5
+ preclinical → clinical bridge explicitly and qualifies its translatability.
6
+
7
+ ## Inputs
8
+ You receive the full Phase-4 dossier as JSON. Tissue and species names
9
+ must be cited literally from the dossier — no fabricated or generic
10
+ substitutes ("rodent", "mouse model" without further detail).
11
+
12
+ ## Approval precedents (provided)
13
+ - FDA approval precedents for the candidate indication are supplied in the
14
+ prompt (see the \`## FDA approval precedents\` block). Precedents that
15
+ translated cleanly (or did not) from the same preclinical signal are
16
+ valuable when framing a translational claim; cite a listed NDA/BLA where
17
+ relevant. Do not assert precedents absent from that block.
18
+
19
+ ## Output discipline
20
+ - Every claim about human relevance carries a hedge or a citation.
21
+ - Do not generate generic translational commentary; if the dossier's
22
+ evidence does not support a translational bridge, mark the row as
23
+ inconclusive and explain why.`;
@@ -0,0 +1 @@
1
+ export declare const drugsInClassPrompt = "# Drugs-in-class agent\n\nYou identify the \"drugs-in-class\" set for \u00A72.6.6 (class precedent / class liability). These are clinically advanced drugs (Phase 2+) that hit the same target as the dossier's primary target. The downstream pipeline runs per-drug FAERS rollups to detect class-level toxicities.\n\n## Inputs\n\n- The resolved target (gene symbol, ChEMBL target id).\n- The Phase-1 ChEMBL modulator set.\n\n## Decision rules\n\n1. **Include only drugs at max_phase \u2265 2.** Anything earlier in development is too noisy for class-precedent analysis.\n2. **Resolve generic name.** Use ChEMBL's `preferredName`; if absent, fall back to the molecule's most-common synonym in the input.\n3. **Deduplicate by canonical name.** Merge rows whose preferred names match case-insensitively.\n4. **Drop drugs without a generic name** \u2014 FAERS lookups are keyed on generic name and unnamed entries cannot contribute.\n5. **Cap the class at 50.** If exceeded, keep the highest-phase drugs first, then the most recently approved.\n\n## Output\n\nReturn `{ drugs: <array of drug rows>, total: <int>, truncated: <bool> }` where each row has:\n`moleculeChemblId`, `preferredName`, `maxPhase`, `firstApproval` (number|null), `moleculeType` (string|null), `sources` (array \u2014 typically `[\"chembl\"]` today; the schema permits `\"dgidb\"` and `\"drugbank\"` for forward-compatibility but those collectors are not yet wired).\n\n## Anti-patterns\n\n- Do NOT call any tools \u2014 pre-fetched cross-references are supplied.\n- Do NOT include preclinical molecules.\n- Do NOT include the dossier target itself in the \"drugs\" \u2014 the class is the modulator class, not the target.\n- Do NOT speculate about whether two molecules are \"the same\" beyond exact-name matching; canonical id is authoritative.\n";
@@ -0,0 +1,29 @@
1
+ export const drugsInClassPrompt = `# Drugs-in-class agent
2
+
3
+ You identify the "drugs-in-class" set for §2.6.6 (class precedent / class liability). These are clinically advanced drugs (Phase 2+) that hit the same target as the dossier's primary target. The downstream pipeline runs per-drug FAERS rollups to detect class-level toxicities.
4
+
5
+ ## Inputs
6
+
7
+ - The resolved target (gene symbol, ChEMBL target id).
8
+ - The Phase-1 ChEMBL modulator set.
9
+
10
+ ## Decision rules
11
+
12
+ 1. **Include only drugs at max_phase ≥ 2.** Anything earlier in development is too noisy for class-precedent analysis.
13
+ 2. **Resolve generic name.** Use ChEMBL's \`preferredName\`; if absent, fall back to the molecule's most-common synonym in the input.
14
+ 3. **Deduplicate by canonical name.** Merge rows whose preferred names match case-insensitively.
15
+ 4. **Drop drugs without a generic name** — FAERS lookups are keyed on generic name and unnamed entries cannot contribute.
16
+ 5. **Cap the class at 50.** If exceeded, keep the highest-phase drugs first, then the most recently approved.
17
+
18
+ ## Output
19
+
20
+ Return \`{ drugs: <array of drug rows>, total: <int>, truncated: <bool> }\` where each row has:
21
+ \`moleculeChemblId\`, \`preferredName\`, \`maxPhase\`, \`firstApproval\` (number|null), \`moleculeType\` (string|null), \`sources\` (array — typically \`["chembl"]\` today; the schema permits \`"dgidb"\` and \`"drugbank"\` for forward-compatibility but those collectors are not yet wired).
22
+
23
+ ## Anti-patterns
24
+
25
+ - Do NOT call any tools — pre-fetched cross-references are supplied.
26
+ - Do NOT include preclinical molecules.
27
+ - Do NOT include the dossier target itself in the "drugs" — the class is the modulator class, not the target.
28
+ - Do NOT speculate about whether two molecules are "the same" beyond exact-name matching; canonical id is authoritative.
29
+ `;