@inflexa-ai/harness 0.45.1 → 0.46.0

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 (789) hide show
  1. package/README.md +6 -3
  2. package/dist/agents/conversation-agent.d.ts +9 -3
  3. package/dist/agents/conversation-agent.js +34 -33
  4. package/dist/agents/report-session-agent.d.ts +15 -15
  5. package/dist/agents/report-session-agent.js +23 -15
  6. package/dist/agents/sandbox/index.d.ts +1 -1
  7. package/dist/agents/sandbox/index.js +1 -1
  8. package/dist/agents/sandbox/shared.d.ts +12 -14
  9. package/dist/agents/sandbox/shared.js +18 -12
  10. package/dist/agents/sandbox/types.d.ts +4 -4
  11. package/dist/agents/sandbox/validate-skills.d.ts +2 -2
  12. package/dist/agents/sandbox/validate-skills.js +3 -1
  13. package/dist/agents/sandbox-catalog.d.ts +2 -2
  14. package/dist/agents/sandbox-catalog.js +3 -3
  15. package/dist/agents/system-prompt.d.ts +2 -2
  16. package/dist/app/chat-turn-workflow.d.ts +114 -0
  17. package/dist/app/chat-turn-workflow.js +307 -0
  18. package/dist/app/chat-turn.d.ts +85 -57
  19. package/dist/app/chat-turn.js +123 -100
  20. package/dist/app/data-profile-orientation.js +10 -8
  21. package/dist/app/data-profile-view.d.ts +4 -4
  22. package/dist/app/data-profile-view.js +9 -8
  23. package/dist/app/in-process-turn.d.ts +42 -0
  24. package/dist/app/in-process-turn.js +139 -0
  25. package/dist/app/message-assembly.d.ts +10 -4
  26. package/dist/app/message-assembly.js +13 -8
  27. package/dist/app/report-session-runtime.d.ts +4 -4
  28. package/dist/app/report-session-runtime.js +36 -21
  29. package/dist/app/spawn-report-session.d.ts +33 -28
  30. package/dist/app/spawn-report-session.js +25 -40
  31. package/dist/app/synthesize-run.d.ts +22 -16
  32. package/dist/app/synthesize-run.js +41 -35
  33. package/dist/app/work.d.ts +96 -0
  34. package/dist/app/work.js +147 -0
  35. package/dist/auth/local-auth-context.d.ts +1 -3
  36. package/dist/auth/local-auth-context.js +1 -3
  37. package/dist/auth/local-run-authorizer.d.ts +1 -1
  38. package/dist/auth/local-run-authorizer.js +5 -3
  39. package/dist/auth/types.d.ts +26 -26
  40. package/dist/billing/cached-resolver.d.ts +4 -4
  41. package/dist/billing/run-charge.d.ts +5 -8
  42. package/dist/billing/run-charge.js +2 -2
  43. package/dist/billing/usage-recorder.d.ts +9 -9
  44. package/dist/citations/aggregate.js +1 -1
  45. package/dist/citations/clients/arxiv.d.ts +2 -2
  46. package/dist/citations/clients/arxiv.js +12 -4
  47. package/dist/citations/clients/common.js +4 -2
  48. package/dist/citations/clients/crossref.d.ts +2 -2
  49. package/dist/citations/clients/crossref.js +37 -37
  50. package/dist/citations/clients/doi-registry.js +15 -16
  51. package/dist/citations/clients/pubmed.d.ts +2 -2
  52. package/dist/citations/clients/pubmed.js +20 -13
  53. package/dist/citations/clients/semantic-scholar.d.ts +2 -2
  54. package/dist/citations/clients/semantic-scholar.js +9 -9
  55. package/dist/citations/compare.js +2 -2
  56. package/dist/citations/match.d.ts +2 -2
  57. package/dist/citations/match.js +12 -7
  58. package/dist/citations/normalize.js +35 -26
  59. package/dist/citations/plan.js +6 -2
  60. package/dist/citations/resolve.d.ts +6 -6
  61. package/dist/citations/resolve.js +34 -25
  62. package/dist/citations/types.d.ts +77 -77
  63. package/dist/config/environment-stores.d.ts +6 -6
  64. package/dist/config/resource-limits.js +1 -3
  65. package/dist/contracts/analogy-report.d.ts +7 -7
  66. package/dist/contracts/analogy-report.js +2 -2
  67. package/dist/contracts/chat-events.d.ts +38 -24
  68. package/dist/contracts/chat-frame.d.ts +15 -5
  69. package/dist/contracts/chat-frame.js +64 -41
  70. package/dist/contracts/chat-parts.d.ts +130 -67
  71. package/dist/contracts/chat-parts.js +1 -0
  72. package/dist/contracts/content-url.js +16 -2
  73. package/dist/contracts/data-profile.d.ts +38 -38
  74. package/dist/contracts/index.d.ts +2 -2
  75. package/dist/contracts/index.js +1 -1
  76. package/dist/contracts/message.d.ts +6 -6
  77. package/dist/contracts/organ-system.d.ts +11 -11
  78. package/dist/contracts/part-registry.d.ts +5 -4
  79. package/dist/contracts/part-registry.js +5 -0
  80. package/dist/contracts/profile-vocabulary.d.ts +11 -10
  81. package/dist/contracts/profile-vocabulary.js +10 -3
  82. package/dist/contracts/report-blocks.d.ts +329 -329
  83. package/dist/contracts/report-reference.d.ts +105 -81
  84. package/dist/contracts/report-reference.js +30 -13
  85. package/dist/contracts/schemas/chat-events.d.ts +30 -16
  86. package/dist/contracts/schemas/chat-events.js +15 -6
  87. package/dist/contracts/schemas/chat-parts.d.ts +175 -102
  88. package/dist/contracts/schemas/chat-parts.js +33 -7
  89. package/dist/contracts/severity.d.ts +1 -1
  90. package/dist/contracts/structure-source.d.ts +3 -3
  91. package/dist/contracts/structure-source.js +6 -2
  92. package/dist/contracts/subagent-activity.d.ts +2 -2
  93. package/dist/contracts/subagent-activity.js +5 -3
  94. package/dist/contracts/usage.d.ts +2 -2
  95. package/dist/data/safety-panel-schema.d.ts +25 -25
  96. package/dist/data/safety-panel-schema.js +13 -4
  97. package/dist/execution/artifact-metadata.d.ts +23 -15
  98. package/dist/execution/artifact-metadata.js +33 -10
  99. package/dist/execution/artifact-record.d.ts +2 -2
  100. package/dist/execution/artifact-registration.d.ts +5 -5
  101. package/dist/execution/artifact-registry.d.ts +8 -8
  102. package/dist/execution/dbos-run-launcher.d.ts +24 -4
  103. package/dist/execution/dbos-run-launcher.js +58 -4
  104. package/dist/execution/dbos-workflow-purger.d.ts +5 -6
  105. package/dist/execution/dbos-workflow-purger.js +8 -7
  106. package/dist/execution/input-signature.d.ts +2 -2
  107. package/dist/execution/post-step-pipeline.d.ts +9 -9
  108. package/dist/execution/post-step-pipeline.js +1 -1
  109. package/dist/execution/post-step.js +2 -2
  110. package/dist/execution/reconcile-manifest.d.ts +4 -4
  111. package/dist/execution/reconcile-manifest.js +3 -2
  112. package/dist/execution/run-authorizer.d.ts +46 -37
  113. package/dist/execution/run-authorizer.js +8 -8
  114. package/dist/execution/run-canceler.d.ts +7 -7
  115. package/dist/execution/run-canceler.js +14 -7
  116. package/dist/execution/run-end-record.d.ts +2 -3
  117. package/dist/execution/run-event-parts.d.ts +0 -8
  118. package/dist/execution/run-event-parts.js +29 -24
  119. package/dist/execution/run-event-stream.d.ts +8 -8
  120. package/dist/execution/run-event-stream.js +3 -4
  121. package/dist/execution/run-launcher.d.ts +4 -4
  122. package/dist/execution/run-synthesis.d.ts +49 -48
  123. package/dist/execution/run-synthesis.js +96 -255
  124. package/dist/execution/staged-input.d.ts +2 -2
  125. package/dist/execution/step-summary.d.ts +6 -6
  126. package/dist/execution/step-summary.js +4 -8
  127. package/dist/execution/topo-sort.js +4 -3
  128. package/dist/execution/workflow-purger.d.ts +2 -2
  129. package/dist/index.d.ts +17 -20
  130. package/dist/index.js +25 -36
  131. package/dist/input-sanitization.js +9 -2
  132. package/dist/input-scan/clustering.d.ts +6 -6
  133. package/dist/input-scan/clustering.js +11 -5
  134. package/dist/input-scan/companions.js +3 -2
  135. package/dist/input-scan/detect-sets.d.ts +2 -2
  136. package/dist/input-scan/detect-sets.js +25 -21
  137. package/dist/input-scan/enrich.d.ts +6 -6
  138. package/dist/input-scan/enrich.js +29 -12
  139. package/dist/input-scan/formats.d.ts +2 -2
  140. package/dist/input-scan/formats.js +8 -2
  141. package/dist/input-scan/markers.d.ts +2 -2
  142. package/dist/input-scan/markers.js +14 -5
  143. package/dist/input-scan/menu.d.ts +10 -10
  144. package/dist/input-scan/menu.js +0 -0
  145. package/dist/input-scan/quarantine.d.ts +2 -2
  146. package/dist/input-scan/quarantine.js +23 -18
  147. package/dist/input-scan/readout-budget.d.ts +2 -2
  148. package/dist/input-scan/readout-budget.js +1 -1
  149. package/dist/input-scan/readout.d.ts +2 -2
  150. package/dist/input-scan/readout.js +47 -34
  151. package/dist/input-scan/scan.d.ts +2 -2
  152. package/dist/input-scan/scan.js +7 -5
  153. package/dist/input-scan/set-types.d.ts +28 -28
  154. package/dist/input-scan/shapes.d.ts +4 -4
  155. package/dist/input-scan/shapes.js +0 -0
  156. package/dist/input-scan/templates.d.ts +10 -10
  157. package/dist/input-scan/templates.js +30 -22
  158. package/dist/input-scan/tokens.d.ts +6 -4
  159. package/dist/input-scan/tokens.js +100 -38
  160. package/dist/input-scan/types.d.ts +22 -22
  161. package/dist/lib/async-utils.d.ts +3 -7
  162. package/dist/lib/async-utils.js +5 -9
  163. package/dist/lib/cache.js +1 -1
  164. package/dist/lib/chrome.d.ts +46 -6
  165. package/dist/lib/console-logger.js +2 -2
  166. package/dist/lib/db-result.d.ts +22 -6
  167. package/dist/lib/db-result.js +9 -13
  168. package/dist/lib/eyes.d.ts +4 -4
  169. package/dist/lib/eyes.js +1 -1
  170. package/dist/lib/fs-helpers.js +18 -6
  171. package/dist/lib/fs-result.d.ts +1 -0
  172. package/dist/lib/fs-result.js +5 -6
  173. package/dist/lib/hooks.d.ts +23 -7
  174. package/dist/lib/hooks.js +17 -3
  175. package/dist/lib/host-concurrency.js +3 -2
  176. package/dist/lib/logger.d.ts +2 -2
  177. package/dist/lib/logger.js +2 -1
  178. package/dist/lib/metrics.d.ts +1 -1
  179. package/dist/lib/null-proto.d.ts +6 -0
  180. package/dist/lib/null-proto.js +17 -0
  181. package/dist/lib/otel-spans.d.ts +1 -1
  182. package/dist/lib/otel-spans.js +9 -5
  183. package/dist/lib/otel.d.ts +4 -2
  184. package/dist/lib/otel.js +10 -2
  185. package/dist/lib/page-capture.d.ts +8 -8
  186. package/dist/lib/page-capture.js +9 -4
  187. package/dist/lib/parse-json.d.ts +5 -0
  188. package/dist/lib/parse-json.js +12 -0
  189. package/dist/lib/present.d.ts +12 -0
  190. package/dist/lib/present.js +39 -0
  191. package/dist/lib/rate-limit.d.ts +4 -4
  192. package/dist/lib/rate-limit.js +12 -13
  193. package/dist/lib/regulatory-corpus/fetch-fda-guidance.d.ts +4 -4
  194. package/dist/lib/regulatory-corpus/fetch-fda-guidance.js +4 -10
  195. package/dist/lib/regulatory-corpus/fetch-ich.d.ts +4 -4
  196. package/dist/lib/regulatory-corpus/fetch-ich.js +18 -14
  197. package/dist/lib/regulatory-corpus/normalize-whitespace.d.ts +6 -0
  198. package/dist/lib/regulatory-corpus/normalize-whitespace.js +41 -0
  199. package/dist/lib/regulatory-corpus.d.ts +10 -10
  200. package/dist/lib/regulatory-corpus.js +3 -1
  201. package/dist/lib/result.d.ts +10 -11
  202. package/dist/lib/result.js +15 -13
  203. package/dist/lib/storage.d.ts +2 -2
  204. package/dist/lib/test/async-iterable.d.ts +9 -0
  205. package/dist/lib/test/async-iterable.js +28 -0
  206. package/dist/lib/test/request-url.d.ts +5 -0
  207. package/dist/lib/test/request-url.js +7 -0
  208. package/dist/lib/test/result-assert.d.ts +12 -0
  209. package/dist/lib/test/result-assert.js +17 -0
  210. package/dist/lib/test/text-shapes.d.ts +24 -0
  211. package/dist/lib/test/text-shapes.js +63 -0
  212. package/dist/lib/text.d.ts +22 -0
  213. package/dist/lib/text.js +68 -0
  214. package/dist/lib/thrown.d.ts +18 -0
  215. package/dist/lib/thrown.js +30 -0
  216. package/dist/lib/unknown-array.d.ts +6 -0
  217. package/dist/lib/unknown-array.js +8 -0
  218. package/dist/lib/unknown-containers.d.ts +14 -0
  219. package/dist/lib/unknown-containers.js +17 -0
  220. package/dist/lib/unknown-text.d.ts +8 -0
  221. package/dist/lib/unknown-text.js +28 -0
  222. package/dist/lib/zod-issue-shape.d.ts +1 -1
  223. package/dist/lib/zod-issue-shape.js +31 -31
  224. package/dist/lib/zod-issues.d.ts +3 -3
  225. package/dist/lib/zod-issues.js +30 -17
  226. package/dist/literature/sources/arxiv.d.ts +6 -6
  227. package/dist/literature/sources/arxiv.js +92 -35
  228. package/dist/literature/sources/http.d.ts +2 -2
  229. package/dist/literature/sources/http.js +16 -15
  230. package/dist/literature/sources/pubmed.d.ts +16 -16
  231. package/dist/literature/sources/pubmed.js +96 -61
  232. package/dist/literature/sources/semantic-scholar.d.ts +8 -8
  233. package/dist/literature/sources/semantic-scholar.js +22 -13
  234. package/dist/loop/accounting.d.ts +63 -0
  235. package/dist/loop/accounting.js +141 -0
  236. package/dist/loop/call-policy.d.ts +73 -0
  237. package/dist/loop/call-policy.js +109 -0
  238. package/dist/loop/chat-stream.d.ts +62 -0
  239. package/dist/loop/chat-stream.js +237 -0
  240. package/dist/loop/compaction.d.ts +9 -9
  241. package/dist/loop/compaction.js +1 -1
  242. package/dist/loop/metrics.d.ts +12 -15
  243. package/dist/loop/metrics.js +14 -26
  244. package/dist/loop/run-loop.d.ts +233 -0
  245. package/dist/loop/run-loop.js +770 -0
  246. package/dist/loop/sub-agent.d.ts +61 -0
  247. package/dist/loop/sub-agent.js +161 -0
  248. package/dist/loop/tool-adapter.d.ts +98 -0
  249. package/dist/loop/tool-adapter.js +364 -0
  250. package/dist/loop/tool-detail.d.ts +1 -1
  251. package/dist/loop/tool-detail.js +6 -5
  252. package/dist/loop/tool-outcome.d.ts +1 -1
  253. package/dist/loop/tool-output.d.ts +4 -4
  254. package/dist/loop/tool-output.js +2 -2
  255. package/dist/loop/turn-credentials.d.ts +34 -0
  256. package/dist/loop/turn-credentials.js +73 -0
  257. package/dist/loop/types.d.ts +29 -38
  258. package/dist/loop/types.js +2 -7
  259. package/dist/memory/ai-sdk-message-storage.d.ts +5 -5
  260. package/dist/memory/ai-sdk-message-storage.js +13 -11
  261. package/dist/memory/card-builders.d.ts +14 -14
  262. package/dist/memory/card-builders.js +19 -15
  263. package/dist/memory/conversation-display-recorder.d.ts +22 -4
  264. package/dist/memory/conversation-display-recorder.js +43 -24
  265. package/dist/memory/conversation-display-replay.js +3 -2
  266. package/dist/memory/conversation-display-storage.d.ts +15 -7
  267. package/dist/memory/conversation-display-storage.js +141 -36
  268. package/dist/memory/conversation-view.d.ts +4 -4
  269. package/dist/memory/conversation-view.js +5 -4
  270. package/dist/memory/count-tokens.js +10 -8
  271. package/dist/memory/derive-thread-title.d.ts +0 -13
  272. package/dist/memory/derive-thread-title.js +2 -1
  273. package/dist/memory/message-backfill.d.ts +12 -5
  274. package/dist/memory/message-backfill.js +5 -3
  275. package/dist/memory/thread-history.d.ts +36 -21
  276. package/dist/memory/thread-history.js +78 -54
  277. package/dist/memory/thread-store.d.ts +26 -17
  278. package/dist/memory/thread-store.js +15 -9
  279. package/dist/memory/tool-call-integrity.d.ts +2 -2
  280. package/dist/memory/tool-call-integrity.js +4 -3
  281. package/dist/memory/working-memory.d.ts +16 -12
  282. package/dist/memory/working-memory.js +72 -61
  283. package/dist/prompts/briefing.d.ts +12 -12
  284. package/dist/prompts/briefing.js +1 -1
  285. package/dist/prompts/synthesis-agent.d.ts +1 -1
  286. package/dist/prompts/synthesis-agent.js +6 -14
  287. package/dist/provenance/collector.d.ts +6 -6
  288. package/dist/provenance/collector.js +15 -8
  289. package/dist/provenance/exec-frame.d.ts +2 -2
  290. package/dist/provenance/exec-frame.js +6 -1
  291. package/dist/provenance/seam.d.ts +1 -4
  292. package/dist/provenance/types.d.ts +6 -6
  293. package/dist/providers/ai-sdk.d.ts +113 -62
  294. package/dist/providers/ai-sdk.js +283 -518
  295. package/dist/providers/embedding.d.ts +2 -2
  296. package/dist/providers/embedding.js +1 -1
  297. package/dist/providers/errors.d.ts +22 -2
  298. package/dist/providers/errors.js +98 -50
  299. package/dist/providers/prompt-cache.d.ts +8 -8
  300. package/dist/providers/prompt-cache.js +13 -11
  301. package/dist/providers/reasoning.d.ts +2 -2
  302. package/dist/providers/reasoning.js +2 -2
  303. package/dist/providers/types.d.ts +55 -94
  304. package/dist/reference-data/catalog.d.ts +2 -15
  305. package/dist/reference-data/catalog.js +25 -8
  306. package/dist/reference-data/receipt.d.ts +2 -2
  307. package/dist/report-model/assert-rules.js +1 -1
  308. package/dist/report-model/authoring-grammar.d.ts +211 -233
  309. package/dist/report-model/block-walk.d.ts +10 -10
  310. package/dist/report-model/block-walk.js +2 -0
  311. package/dist/report-model/draft-finish.d.ts +8 -8
  312. package/dist/report-model/draft-finish.js +1 -1
  313. package/dist/report-model/draft-hash.js +8 -7
  314. package/dist/report-model/draft-operations.d.ts +22 -10
  315. package/dist/report-model/draft-operations.js +48 -30
  316. package/dist/report-model/draft-read.d.ts +19 -7
  317. package/dist/report-model/draft-read.js +16 -6
  318. package/dist/report-model/draft.d.ts +844 -2
  319. package/dist/report-model/draft.js +3 -1
  320. package/dist/report-model/fixture-resolver.js +39 -16
  321. package/dist/report-model/pin-snapshot.d.ts +2 -2
  322. package/dist/report-model/pin-snapshot.js +15 -15
  323. package/dist/report-model/production-resolver.d.ts +18 -18
  324. package/dist/report-model/production-resolver.js +50 -42
  325. package/dist/report-model/reference-resolver.d.ts +26 -10
  326. package/dist/report-model/reference-resolver.js +68 -5
  327. package/dist/report-model/reference-stamp.js +30 -38
  328. package/dist/report-model/structural-validation.js +12 -4
  329. package/dist/report-model/validate.d.ts +7 -7
  330. package/dist/report-model/validate.js +6 -6
  331. package/dist/report-render/assets.d.ts +2 -2
  332. package/dist/report-render/assets.js +27 -3
  333. package/dist/report-render/chart-export.d.ts +10 -2
  334. package/dist/report-render/chart-export.js +37 -11
  335. package/dist/report-render/chart-presets.d.ts +8 -8
  336. package/dist/report-render/chart-presets.js +3 -3
  337. package/dist/report-render/chart-renderers.d.ts +23 -16
  338. package/dist/report-render/chart-renderers.js +74 -53
  339. package/dist/report-render/chart-toolbox.d.ts +2 -2
  340. package/dist/report-render/chart-toolbox.js +7 -6
  341. package/dist/report-render/chart.d.ts +15 -16
  342. package/dist/report-render/chart.js +369 -252
  343. package/dist/report-render/design.d.ts +36 -297
  344. package/dist/report-render/design.js +0 -12
  345. package/dist/report-render/figures/common.d.ts +12 -12
  346. package/dist/report-render/figures/common.js +42 -31
  347. package/dist/report-render/figures/dendrogram.d.ts +3 -3
  348. package/dist/report-render/figures/dendrogram.js +10 -10
  349. package/dist/report-render/figures/dense.js +15 -8
  350. package/dist/report-render/figures/dotplot.js +46 -33
  351. package/dist/report-render/figures/embedding.js +52 -43
  352. package/dist/report-render/figures/equal-units.d.ts +10 -10
  353. package/dist/report-render/figures/equal-units.js +27 -27
  354. package/dist/report-render/figures/forest.js +9 -7
  355. package/dist/report-render/figures/gsea.js +21 -11
  356. package/dist/report-render/figures/heatmap.js +13 -9
  357. package/dist/report-render/figures/index.d.ts +10 -10
  358. package/dist/report-render/figures/index.js +4 -2
  359. package/dist/report-render/figures/km.js +10 -9
  360. package/dist/report-render/figures/label-room.d.ts +12 -12
  361. package/dist/report-render/figures/label-room.js +7 -2
  362. package/dist/report-render/figures/locuszoom.d.ts +2 -2
  363. package/dist/report-render/figures/locuszoom.js +59 -31
  364. package/dist/report-render/figures/lollipop.js +3 -2
  365. package/dist/report-render/figures/ma.js +8 -4
  366. package/dist/report-render/figures/manhattan.d.ts +1 -2
  367. package/dist/report-render/figures/manhattan.js +52 -34
  368. package/dist/report-render/figures/oncoprint.js +4 -5
  369. package/dist/report-render/figures/pca.js +25 -11
  370. package/dist/report-render/figures/qq.js +20 -9
  371. package/dist/report-render/figures/roc.js +1 -1
  372. package/dist/report-render/figures/sankey.d.ts +2 -2
  373. package/dist/report-render/figures/sankey.js +11 -10
  374. package/dist/report-render/figures/upset.d.ts +6 -6
  375. package/dist/report-render/figures/upset.js +7 -4
  376. package/dist/report-render/figures/volcano.js +12 -10
  377. package/dist/report-render/hybrid-svg.d.ts +4 -4
  378. package/dist/report-render/hybrid-svg.js +7 -5
  379. package/dist/report-render/number-format.d.ts +4 -4
  380. package/dist/report-render/number-format.js +62 -27
  381. package/dist/report-render/page.js +2 -1
  382. package/dist/report-render/provenance-data.d.ts +2 -2
  383. package/dist/report-render/references.d.ts +4 -4
  384. package/dist/report-render/render.d.ts +2 -2
  385. package/dist/report-render/render.js +10 -11
  386. package/dist/report-render/script-json.js +1 -1
  387. package/dist/report-render/table-data.d.ts +6 -6
  388. package/dist/report-render/test/options.d.ts +49 -0
  389. package/dist/report-render/test/options.js +143 -0
  390. package/dist/report-render/test/page-function.d.ts +19 -0
  391. package/dist/report-render/test/page-function.js +33 -0
  392. package/dist/report-render/types.d.ts +10 -10
  393. package/dist/report-render/value-bridge.d.ts +4 -4
  394. package/dist/report-render/value-bridge.js +27 -14
  395. package/dist/report-render/views/chart-view.d.ts +2 -2
  396. package/dist/report-render/views/chart-view.js +2 -2
  397. package/dist/report-render/views/lineage.d.ts +6 -6
  398. package/dist/report-render/views/lineage.js +2 -0
  399. package/dist/report-render/views/page-view.d.ts +2 -2
  400. package/dist/report-render/views/page-view.js +1 -0
  401. package/dist/report-render/views/prose.js +25 -8
  402. package/dist/report-render/views/references-view.js +12 -1
  403. package/dist/report-render/views/values.js +1 -1
  404. package/dist/runtime/assemble.d.ts +53 -26
  405. package/dist/runtime/assemble.js +103 -56
  406. package/dist/runtime/boot.d.ts +8 -7
  407. package/dist/runtime/boot.js +1 -1
  408. package/dist/runtime/connection-budget.d.ts +6 -6
  409. package/dist/runtime/connection-budget.js +1 -1
  410. package/dist/runtime/dbos.d.ts +29 -19
  411. package/dist/runtime/dbos.js +35 -20
  412. package/dist/runtime/result-serialization.js +18 -5
  413. package/dist/runtime/shutdown.d.ts +2 -2
  414. package/dist/sandbox/client.d.ts +7 -3
  415. package/dist/sandbox/cpu-files.d.ts +2 -2
  416. package/dist/sandbox/cpu-files.js +21 -4
  417. package/dist/sandbox/create-sandbox.d.ts +7 -8
  418. package/dist/sandbox/create-sandbox.js +6 -12
  419. package/dist/sandbox/docker-client.d.ts +48 -3
  420. package/dist/sandbox/docker-client.js +10 -6
  421. package/dist/sandbox/estimate-data-profile-resources.js +2 -7
  422. package/dist/sandbox/exec-outcome.d.ts +2 -2
  423. package/dist/sandbox/exec-outcome.js +1 -1
  424. package/dist/sandbox/exec.d.ts +10 -6
  425. package/dist/sandbox/exec.js +27 -12
  426. package/dist/sandbox/execution-id.js +14 -6
  427. package/dist/sandbox/farm.d.ts +2 -2
  428. package/dist/sandbox/farm.js +22 -27
  429. package/dist/sandbox/identity.d.ts +7 -0
  430. package/dist/sandbox/identity.js +14 -3
  431. package/dist/sandbox/image-packages.js +15 -27
  432. package/dist/sandbox/k8s-client.d.ts +35 -8
  433. package/dist/sandbox/k8s-client.js +6 -5
  434. package/dist/sandbox/labels.js +1 -0
  435. package/dist/sandbox/liveness.js +3 -1
  436. package/dist/sandbox/mount-plan.d.ts +10 -10
  437. package/dist/sandbox/mount-plan.js +13 -14
  438. package/dist/sandbox/notification-sweep.d.ts +4 -4
  439. package/dist/sandbox/notification-sweep.js +4 -7
  440. package/dist/sandbox/package-identity.d.ts +6 -13
  441. package/dist/sandbox/package-identity.js +46 -28
  442. package/dist/sandbox/reaper.d.ts +10 -10
  443. package/dist/sandbox/reaper.js +4 -6
  444. package/dist/sandbox/sandbox-error.d.ts +2 -9
  445. package/dist/sandbox/sandbox-error.js +21 -8
  446. package/dist/sandbox/sandbox-step-translate.d.ts +8 -5
  447. package/dist/sandbox/sandbox-step-translate.js +22 -8
  448. package/dist/sandbox/step-sandbox.d.ts +47 -0
  449. package/dist/sandbox/step-sandbox.js +53 -0
  450. package/dist/sandbox/types.d.ts +18 -19
  451. package/dist/sandbox/types.js +1 -1
  452. package/dist/schemas/artifact-manifest.d.ts +4 -4
  453. package/dist/schemas/data-profile-schemas.d.ts +343 -298
  454. package/dist/schemas/file-metadata.js +2 -4
  455. package/dist/schemas/plan-schemas.d.ts +31 -31
  456. package/dist/schemas/run-synthesis.d.ts +95 -26
  457. package/dist/schemas/run-synthesis.js +3 -1
  458. package/dist/schemas/validate-plan.d.ts +4 -4
  459. package/dist/schemas/validate-plan.js +17 -5
  460. package/dist/schemas/workflow-state.d.ts +19 -19
  461. package/dist/schemas/workflow-state.js +2 -2
  462. package/dist/state/active-turns.d.ts +36 -0
  463. package/dist/state/active-turns.js +67 -0
  464. package/dist/state/analyses-metrics.d.ts +8 -8
  465. package/dist/state/analyses-metrics.js +4 -4
  466. package/dist/state/analyses.d.ts +0 -14
  467. package/dist/state/analyses.js +0 -32
  468. package/dist/state/artifacts.d.ts +32 -19
  469. package/dist/state/artifacts.js +28 -5
  470. package/dist/state/data-profile.d.ts +2 -2
  471. package/dist/state/db.d.ts +12 -2
  472. package/dist/state/db.js +5 -0
  473. package/dist/state/edit-intents.d.ts +4 -0
  474. package/dist/state/edit-intents.js +71 -0
  475. package/dist/state/index.d.ts +4 -4
  476. package/dist/state/index.js +2 -2
  477. package/dist/state/init.d.ts +2 -1
  478. package/dist/state/init.js +5 -2
  479. package/dist/state/migrations/20260927120000_baseline.js +3 -1
  480. package/dist/state/migrations/20261026120000_add_the_edit_intents.d.ts +7 -0
  481. package/dist/state/migrations/20261026120000_add_the_edit_intents.js +21 -0
  482. package/dist/state/migrations/20261027120000_record_the_applied_memory_edits.d.ts +7 -0
  483. package/dist/state/migrations/20261027120000_record_the_applied_memory_edits.js +16 -0
  484. package/dist/state/migrations/20261027120100_store_the_authoring_results.d.ts +8 -0
  485. package/dist/state/migrations/20261027120100_store_the_authoring_results.js +20 -0
  486. package/dist/state/migrations/20261027120200_key_the_groups_of_a_turn.d.ts +7 -0
  487. package/dist/state/migrations/20261027120200_key_the_groups_of_a_turn.js +12 -0
  488. package/dist/state/migrations/20261027120300_mark_the_active_turn_of_a_thread.d.ts +7 -0
  489. package/dist/state/migrations/20261027120300_mark_the_active_turn_of_a_thread.js +11 -0
  490. package/dist/state/migrations/20261028120000_record_the_paused_work.d.ts +7 -0
  491. package/dist/state/migrations/20261028120000_record_the_paused_work.js +25 -0
  492. package/dist/state/migrations/20261028120100_end_the_suspended_runs.d.ts +8 -0
  493. package/dist/state/migrations/20261028120100_end_the_suspended_runs.js +13 -0
  494. package/dist/state/migrations/20261029120000_reference_the_run_mandate.d.ts +7 -0
  495. package/dist/state/migrations/20261029120000_reference_the_run_mandate.js +23 -0
  496. package/dist/state/migrations/20261029120100_record_the_run_session_of_a_pause.d.ts +7 -0
  497. package/dist/state/migrations/20261029120100_record_the_run_session_of_a_pause.js +11 -0
  498. package/dist/state/migrations/index.js +18 -0
  499. package/dist/state/paused-work.d.ts +52 -0
  500. package/dist/state/paused-work.js +105 -0
  501. package/dist/state/plans.d.ts +27 -8
  502. package/dist/state/plans.js +14 -11
  503. package/dist/state/purge-analysis.d.ts +6 -6
  504. package/dist/state/purge-analysis.js +10 -2
  505. package/dist/state/report-session-state.d.ts +43 -18
  506. package/dist/state/report-session-state.js +43 -4
  507. package/dist/state/report-versions.d.ts +16 -11
  508. package/dist/state/report-versions.js +5 -3
  509. package/dist/state/runs.d.ts +30 -19
  510. package/dist/state/runs.js +43 -51
  511. package/dist/state/schema.d.ts +18 -21
  512. package/dist/state/schema.js +4 -5
  513. package/dist/state/snapshot-parse.d.ts +2 -2
  514. package/dist/state/snapshot-parse.js +14 -8
  515. package/dist/state/step-executions.d.ts +20 -8
  516. package/dist/state/step-executions.js +6 -4
  517. package/dist/state/tool-outputs.d.ts +2 -2
  518. package/dist/state/tool-outputs.js +2 -1
  519. package/dist/state/vector-store.d.ts +16 -16
  520. package/dist/state/vector-store.js +11 -7
  521. package/dist/tasks/data-profile-absorb.d.ts +3 -3
  522. package/dist/tasks/data-profile-absorb.js +21 -16
  523. package/dist/tasks/data-profile-activity.d.ts +5 -5
  524. package/dist/tasks/data-profile-activity.js +5 -5
  525. package/dist/tasks/data-profile-index.d.ts +4 -4
  526. package/dist/tasks/data-profile-index.js +32 -17
  527. package/dist/tasks/data-profile-resolve.d.ts +8 -8
  528. package/dist/tasks/data-profile-resolve.js +88 -62
  529. package/dist/tasks/data-profile.d.ts +40 -31
  530. package/dist/tasks/data-profile.js +138 -95
  531. package/dist/tasks/extract-values.d.ts +26 -79
  532. package/dist/tasks/extract-values.js +48 -108
  533. package/dist/tasks/refresh-regulatory-corpus.d.ts +4 -20
  534. package/dist/tasks/refresh-regulatory-corpus.js +12 -8
  535. package/dist/tasks/regulatory-corpus-boot-refresh.d.ts +2 -2
  536. package/dist/tasks/regulatory-corpus-boot-refresh.js +12 -10
  537. package/dist/testing.d.ts +60 -0
  538. package/dist/testing.js +96 -0
  539. package/dist/tools/ad-hoc-router.d.ts +9 -9
  540. package/dist/tools/ad-hoc-router.js +65 -52
  541. package/dist/tools/analysis-invocation.d.ts +7 -0
  542. package/dist/tools/analysis-invocation.js +29 -5
  543. package/dist/tools/approval/contract.d.ts +8 -52
  544. package/dist/tools/approval/contract.js +7 -36
  545. package/dist/tools/approval/gateway.d.ts +27 -28
  546. package/dist/tools/approval/gateway.js +33 -130
  547. package/dist/tools/approval/queries.d.ts +6 -11
  548. package/dist/tools/approval/queries.js +43 -29
  549. package/dist/tools/approval/uuidv7.js +2 -2
  550. package/dist/tools/bio/chembl.d.ts +3 -3
  551. package/dist/tools/bio/chembl.js +10 -0
  552. package/dist/tools/bio/comptox.d.ts +25 -8
  553. package/dist/tools/bio/comptox.js +4 -2
  554. package/dist/tools/bio/drug-gene-interactions.d.ts +27 -17
  555. package/dist/tools/bio/drug-gene-interactions.js +11 -8
  556. package/dist/tools/bio/gene-disease-evidence.d.ts +61 -15
  557. package/dist/tools/bio/gene-disease-evidence.js +10 -6
  558. package/dist/tools/bio/gene-preclinical-profile.d.ts +11 -11
  559. package/dist/tools/bio/keys.d.ts +2 -2
  560. package/dist/tools/bio/keys.js +3 -3
  561. package/dist/tools/bio/lookup-annotation.d.ts +5 -5
  562. package/dist/tools/bio/lookup-annotation.js +3 -0
  563. package/dist/tools/bio/opentargets.d.ts +1 -1
  564. package/dist/tools/bio/opentargets.js +6 -0
  565. package/dist/tools/bio/pubchem.d.ts +2 -2
  566. package/dist/tools/bio/pubchem.js +6 -0
  567. package/dist/tools/bio/pubmed.d.ts +26 -16
  568. package/dist/tools/bio/pubmed.js +9 -3
  569. package/dist/tools/bio/search-clinical-trials.d.ts +4 -4
  570. package/dist/tools/bio/search-clinical-trials.js +5 -1
  571. package/dist/tools/bio/search-faers.d.ts +2 -2
  572. package/dist/tools/bio/search-faers.js +1 -1
  573. package/dist/tools/bio/search-gene.d.ts +2 -2
  574. package/dist/tools/bio/search-gene.js +1 -0
  575. package/dist/tools/bio/search-geo-datasets.d.ts +4 -4
  576. package/dist/tools/bio/search-geo-datasets.js +5 -5
  577. package/dist/tools/bio/search-interactions.d.ts +1 -1
  578. package/dist/tools/bio/search-patents.d.ts +28 -22
  579. package/dist/tools/bio/search-patents.js +20 -17
  580. package/dist/tools/bio/search-protein.d.ts +2 -2
  581. package/dist/tools/bio/search-protein.js +1 -1
  582. package/dist/tools/bio/search-regulatory-approvals.d.ts +64 -18
  583. package/dist/tools/bio/search-regulatory-approvals.js +21 -16
  584. package/dist/tools/bio/target-safety.d.ts +8 -8
  585. package/dist/tools/bio/target-safety.js +11 -6
  586. package/dist/tools/capability-data.d.ts +9 -5
  587. package/dist/tools/capability-data.js +2 -1
  588. package/dist/tools/define-tool.d.ts +55 -46
  589. package/dist/tools/define-tool.js +39 -27
  590. package/dist/tools/display/normalize-echart-spec.d.ts +2 -2
  591. package/dist/tools/display/normalize-echart-spec.js +51 -27
  592. package/dist/tools/display/show-user.d.ts +2 -2
  593. package/dist/tools/display/show-user.js +1 -1
  594. package/dist/tools/execute-analysis.d.ts +19 -10
  595. package/dist/tools/execute-analysis.js +83 -62
  596. package/dist/tools/knowledge/check.d.ts +166 -44
  597. package/dist/tools/knowledge/check.js +5 -3
  598. package/dist/tools/knowledge/client.d.ts +31 -62
  599. package/dist/tools/knowledge/client.js +44 -27
  600. package/dist/tools/knowledge/environment.d.ts +6 -6
  601. package/dist/tools/knowledge/environment.js +18 -7
  602. package/dist/tools/knowledge/index.d.ts +2 -2
  603. package/dist/tools/knowledge/index.js +9 -9
  604. package/dist/tools/knowledge/local-slots.d.ts +4 -4
  605. package/dist/tools/knowledge/local-slots.js +11 -4
  606. package/dist/tools/knowledge/pin.d.ts +2 -2
  607. package/dist/tools/knowledge/recommend.d.ts +20 -45
  608. package/dist/tools/knowledge/recommend.js +27 -19
  609. package/dist/tools/knowledge/situation.d.ts +40 -40
  610. package/dist/tools/knowledge/situation.js +2 -9
  611. package/dist/tools/knowledge/skeleton.d.ts +4 -4
  612. package/dist/tools/knowledge/skeleton.js +10 -11
  613. package/dist/tools/knowledge/template.d.ts +20 -18
  614. package/dist/tools/knowledge/template.js +38 -32
  615. package/dist/tools/lib/alphafold-client.js +2 -1
  616. package/dist/tools/lib/amass-client.d.ts +28 -28
  617. package/dist/tools/lib/amass-client.js +20 -10
  618. package/dist/tools/lib/api-utils.d.ts +13 -3
  619. package/dist/tools/lib/api-utils.js +17 -3
  620. package/dist/tools/lib/bgee-client.d.ts +6 -6
  621. package/dist/tools/lib/bgee-client.js +16 -10
  622. package/dist/tools/lib/cbioportal-client.d.ts +4 -4
  623. package/dist/tools/lib/cbioportal-client.js +9 -8
  624. package/dist/tools/lib/chembl-client.d.ts +14 -14
  625. package/dist/tools/lib/chembl-client.js +11 -4
  626. package/dist/tools/lib/clinical-benchmarks-client.d.ts +4 -4
  627. package/dist/tools/lib/clinical-benchmarks-client.js +4 -7
  628. package/dist/tools/lib/clinical-trials-client.d.ts +18 -18
  629. package/dist/tools/lib/clinical-trials-client.js +10 -10
  630. package/dist/tools/lib/clinvar-client.d.ts +2 -2
  631. package/dist/tools/lib/clinvar-client.js +6 -6
  632. package/dist/tools/lib/ctx-ops.d.ts +23 -23
  633. package/dist/tools/lib/ctx-ops.js +13 -10
  634. package/dist/tools/lib/dgidb-client.d.ts +6 -6
  635. package/dist/tools/lib/dgidb-client.js +10 -12
  636. package/dist/tools/lib/disgenet-client.d.ts +4 -4
  637. package/dist/tools/lib/ema-client.d.ts +2 -2
  638. package/dist/tools/lib/ensembl-client.d.ts +4 -4
  639. package/dist/tools/lib/ensembl-client.js +5 -4
  640. package/dist/tools/lib/gwas-catalog-client.d.ts +4 -4
  641. package/dist/tools/lib/gwas-catalog-client.js +17 -17
  642. package/dist/tools/lib/html-text.d.ts +6 -0
  643. package/dist/tools/lib/html-text.js +9 -0
  644. package/dist/tools/lib/identifier-resolver.d.ts +4 -4
  645. package/dist/tools/lib/identifier-resolver.js +7 -3
  646. package/dist/tools/lib/impc-client.d.ts +8 -8
  647. package/dist/tools/lib/impc-client.js +46 -35
  648. package/dist/tools/lib/iuphar-client.d.ts +2 -2
  649. package/dist/tools/lib/iuphar-client.js +7 -16
  650. package/dist/tools/lib/monarch-client.d.ts +4 -4
  651. package/dist/tools/lib/openfda-client.d.ts +22 -22
  652. package/dist/tools/lib/openfda-client.js +23 -22
  653. package/dist/tools/lib/opentargets-client.d.ts +12 -12
  654. package/dist/tools/lib/pathway-client.d.ts +4 -4
  655. package/dist/tools/lib/pathway-client.js +15 -19
  656. package/dist/tools/lib/pharmgkb-client.d.ts +2 -2
  657. package/dist/tools/lib/pharmgkb-client.js +1 -1
  658. package/dist/tools/lib/protein-family-modality.d.ts +2 -2
  659. package/dist/tools/lib/protein-family-modality.js +0 -2
  660. package/dist/tools/lib/protein-family-normalize.js +7 -0
  661. package/dist/tools/lib/pubchem-client.d.ts +2 -2
  662. package/dist/tools/lib/pubchem-client.js +1 -0
  663. package/dist/tools/lib/pubchem-ops.d.ts +4 -4
  664. package/dist/tools/lib/pubchem-ops.js +8 -0
  665. package/dist/tools/lib/pubmed-client.d.ts +9 -9
  666. package/dist/tools/lib/pubmed-client.js +1 -1
  667. package/dist/tools/lib/string-client.d.ts +6 -6
  668. package/dist/tools/lib/uniprot-client.d.ts +8 -8
  669. package/dist/tools/lib/uniprot-client.js +5 -1
  670. package/dist/tools/memory/update-working-memory.d.ts +16 -13
  671. package/dist/tools/memory/update-working-memory.js +21 -3
  672. package/dist/tools/read-tool-output.js +8 -2
  673. package/dist/tools/registry.d.ts +2 -2
  674. package/dist/tools/report-authoring/authoring-tools.d.ts +54 -23
  675. package/dist/tools/report-authoring/authoring-tools.js +128 -62
  676. package/dist/tools/report-session/derive-table.d.ts +19 -59
  677. package/dist/tools/report-session/derive-table.js +120 -122
  678. package/dist/tools/report-session/examine-page.d.ts +6 -6
  679. package/dist/tools/report-session/examine-page.js +14 -12
  680. package/dist/tools/report-session/list-artifacts.d.ts +6 -6
  681. package/dist/tools/report-session/list-artifacts.js +5 -5
  682. package/dist/tools/report-session/page-faults.d.ts +6 -6
  683. package/dist/tools/report-session/page-faults.js +3 -1
  684. package/dist/tools/report-session/preview-report.d.ts +4 -3
  685. package/dist/tools/report-session/preview-report.js +26 -7
  686. package/dist/tools/report-session/record-version.d.ts +9 -4
  687. package/dist/tools/report-session/record-version.js +16 -9
  688. package/dist/tools/report-session/session-page-publisher.d.ts +6 -6
  689. package/dist/tools/research/generate-analogy-report.d.ts +14 -7
  690. package/dist/tools/research/generate-analogy-report.js +80 -76
  691. package/dist/tools/research/generate-plan.d.ts +16 -16
  692. package/dist/tools/research/generate-plan.js +410 -374
  693. package/dist/tools/research/guarded-address.js +3 -2
  694. package/dist/tools/research/inspect-data-profile.d.ts +27 -20
  695. package/dist/tools/research/inspect-data-profile.js +26 -25
  696. package/dist/tools/research/inspect-run.d.ts +54 -27
  697. package/dist/tools/research/inspect-run.js +50 -40
  698. package/dist/tools/research/literature-reviewer.d.ts +8 -7
  699. package/dist/tools/research/literature-reviewer.js +29 -28
  700. package/dist/tools/research/search-arxiv.d.ts +1 -1
  701. package/dist/tools/research/search-arxiv.js +1 -1
  702. package/dist/tools/research/search-github-repos.d.ts +10 -7
  703. package/dist/tools/research/search-github-repos.js +25 -22
  704. package/dist/tools/research/search-semantic-scholar.js +1 -1
  705. package/dist/tools/research/searxng-engine.d.ts +2 -2
  706. package/dist/tools/research/searxng-engine.js +6 -4
  707. package/dist/tools/research/web-fetch.d.ts +24 -21
  708. package/dist/tools/research/web-fetch.js +65 -74
  709. package/dist/tools/research/web-search.d.ts +26 -17
  710. package/dist/tools/research/web-search.js +26 -21
  711. package/dist/tools/sandbox/link-packages.d.ts +11 -7
  712. package/dist/tools/sandbox/link-packages.js +11 -8
  713. package/dist/tools/sandbox/list-available-packages.d.ts +17 -8
  714. package/dist/tools/sandbox/list-available-packages.js +31 -25
  715. package/dist/tools/sandbox/list-available-refs.d.ts +17 -14
  716. package/dist/tools/sandbox/list-available-refs.js +61 -36
  717. package/dist/tools/sandbox/report-blocker.d.ts +30 -37
  718. package/dist/tools/sandbox/report-blocker.js +23 -73
  719. package/dist/tools/sandbox/skills.d.ts +16 -12
  720. package/dist/tools/sandbox/skills.js +16 -12
  721. package/dist/tools/sandbox/submit-file-metadata.d.ts +12 -9
  722. package/dist/tools/sandbox/submit-file-metadata.js +18 -21
  723. package/dist/tools/start-report-session.d.ts +13 -5
  724. package/dist/tools/start-report-session.js +35 -8
  725. package/dist/tools/terminal-text.d.ts +5 -2
  726. package/dist/tools/terminal-text.js +35 -3
  727. package/dist/tools/workspace/decision-record.d.ts +4 -4
  728. package/dist/tools/workspace/decision-record.js +23 -13
  729. package/dist/tools/workspace/edit-file.d.ts +59 -20
  730. package/dist/tools/workspace/edit-file.js +81 -16
  731. package/dist/tools/workspace/execute-command.d.ts +15 -13
  732. package/dist/tools/workspace/execute-command.js +11 -9
  733. package/dist/tools/workspace/file-stat.d.ts +6 -3
  734. package/dist/tools/workspace/grep.d.ts +10 -7
  735. package/dist/tools/workspace/grep.js +9 -3
  736. package/dist/tools/workspace/list-files.d.ts +6 -3
  737. package/dist/tools/workspace/mutator.d.ts +28 -15
  738. package/dist/tools/workspace/mutator.js +107 -53
  739. package/dist/tools/workspace/read-file.d.ts +8 -5
  740. package/dist/tools/workspace/result-bounds.d.ts +5 -5
  741. package/dist/tools/workspace/result-bounds.js +4 -2
  742. package/dist/tools/workspace/run-exec.d.ts +2 -2
  743. package/dist/tools/workspace/run-exec.js +3 -3
  744. package/dist/tools/workspace/scan-inputs.d.ts +8 -5
  745. package/dist/tools/workspace/scan-inputs.js +17 -5
  746. package/dist/tools/workspace/show-file.d.ts +1 -1
  747. package/dist/tools/workspace/show-file.js +2 -1
  748. package/dist/tools/workspace/show-plan.d.ts +8 -5
  749. package/dist/tools/workspace/show-plan.js +9 -8
  750. package/dist/tools/workspace/workspace-search.d.ts +41 -13
  751. package/dist/tools/workspace/workspace-search.js +27 -14
  752. package/dist/tools/workspace/write-file.d.ts +9 -7
  753. package/dist/workflows/execute-analysis-scheduler.d.ts +9 -9
  754. package/dist/workflows/execute-analysis-scheduler.js +6 -3
  755. package/dist/workflows/execute-analysis.d.ts +46 -62
  756. package/dist/workflows/execute-analysis.js +137 -219
  757. package/dist/workflows/pause.d.ts +71 -0
  758. package/dist/workflows/pause.js +173 -0
  759. package/dist/workflows/sandbox-step.d.ts +38 -61
  760. package/dist/workflows/sandbox-step.js +99 -106
  761. package/dist/workflows/test/sql-writes.d.ts +21 -0
  762. package/dist/workflows/test/sql-writes.js +36 -0
  763. package/dist/workspace/filesystem.d.ts +6 -6
  764. package/dist/workspace/filesystem.js +10 -8
  765. package/dist/workspace/paths.d.ts +1 -1
  766. package/dist/workspace/paths.js +15 -4
  767. package/dist/workspace/search-config.d.ts +2 -2
  768. package/dist/workspace/search-config.js +1 -1
  769. package/package.json +21 -22
  770. package/dist/loop/call-guard.d.ts +0 -50
  771. package/dist/loop/call-guard.js +0 -90
  772. package/dist/loop/continue-agent.d.ts +0 -40
  773. package/dist/loop/continue-agent.js +0 -38
  774. package/dist/loop/genai-spans.d.ts +0 -47
  775. package/dist/loop/genai-spans.js +0 -134
  776. package/dist/loop/run-agent.d.ts +0 -245
  777. package/dist/loop/run-agent.js +0 -1124
  778. package/dist/loop/run-step.d.ts +0 -29
  779. package/dist/loop/run-step.js +0 -34
  780. package/dist/loop/run-to-terminal.d.ts +0 -66
  781. package/dist/loop/run-to-terminal.js +0 -93
  782. package/dist/loop/tool-mask.d.ts +0 -23
  783. package/dist/loop/tool-mask.js +0 -46
  784. package/dist/providers/streaming-chat.d.ts +0 -32
  785. package/dist/providers/streaming-chat.js +0 -91
  786. package/dist/tasks/derive-table-exec.d.ts +0 -54
  787. package/dist/tasks/derive-table-exec.js +0 -86
  788. package/dist/workflows/suspension.d.ts +0 -32
  789. package/dist/workflows/suspension.js +0 -38
@@ -7,7 +7,34 @@
7
7
  * `z.discriminatedUnion`, which `defineTool` rejects (model tool calling needs a
8
8
  * top-level `"type":"object"`).
9
9
  */
10
+ import { z } from "zod";
11
+ import { type Tool } from "../define-tool.js";
10
12
  import { type PatentRecord, type PatentSummary } from "../lib/amass-client.js";
13
+ declare const inputSchema: z.ZodObject<{
14
+ action: z.ZodDefault<z.ZodEnum<{
15
+ details: "details";
16
+ search: "search";
17
+ }>>;
18
+ query: z.ZodOptional<z.ZodString>;
19
+ assignee: z.ZodOptional<z.ZodArray<z.ZodString>>;
20
+ inventor: z.ZodOptional<z.ZodString>;
21
+ cpcCodes: z.ZodOptional<z.ZodArray<z.ZodString>>;
22
+ countryCode: z.ZodOptional<z.ZodArray<z.ZodString>>;
23
+ minPublicationDate: z.ZodOptional<z.ZodString>;
24
+ maxPublicationDate: z.ZodOptional<z.ZodString>;
25
+ minFilingDate: z.ZodOptional<z.ZodString>;
26
+ maxFilingDate: z.ZodOptional<z.ZodString>;
27
+ minPriorityDate: z.ZodOptional<z.ZodString>;
28
+ maxPriorityDate: z.ZodOptional<z.ZodString>;
29
+ minGrantDate: z.ZodOptional<z.ZodString>;
30
+ maxGrantDate: z.ZodOptional<z.ZodString>;
31
+ limit: z.ZodDefault<z.ZodNumber>;
32
+ amassId: z.ZodOptional<z.ZodString>;
33
+ publicationNumber: z.ZodOptional<z.ZodString>;
34
+ applicationNumber: z.ZodOptional<z.ZodString>;
35
+ includeClaims: z.ZodDefault<z.ZodBoolean>;
36
+ includeDescription: z.ZodDefault<z.ZodBoolean>;
37
+ }, z.core.$strip>;
11
38
  type PatentsOutput = {
12
39
  patents: PatentSummary[];
13
40
  } | {
@@ -21,26 +48,5 @@ type PatentsOutput = {
21
48
  };
22
49
  export declare function createSearchPatentsTool(deps: {
23
50
  apiKey: string;
24
- }): import("../define-tool.js").Tool<{
25
- action: "search" | "details";
26
- limit: number;
27
- includeClaims: boolean;
28
- includeDescription: boolean;
29
- query?: string | undefined;
30
- assignee?: string[] | undefined;
31
- inventor?: string | undefined;
32
- cpcCodes?: string[] | undefined;
33
- countryCode?: string[] | undefined;
34
- minPublicationDate?: string | undefined;
35
- maxPublicationDate?: string | undefined;
36
- minFilingDate?: string | undefined;
37
- maxFilingDate?: string | undefined;
38
- minPriorityDate?: string | undefined;
39
- maxPriorityDate?: string | undefined;
40
- minGrantDate?: string | undefined;
41
- maxGrantDate?: string | undefined;
42
- amassId?: string | undefined;
43
- publicationNumber?: string | undefined;
44
- applicationNumber?: string | undefined;
45
- }, PatentsOutput>;
51
+ }): Tool<z.infer<typeof inputSchema>, PatentsOutput>;
46
52
  export {};
@@ -8,16 +8,17 @@
8
8
  * top-level `"type":"object"`).
9
9
  */
10
10
  import { err, ok } from "neverthrow";
11
+ import { presentFirst } from "../../lib/present.js";
11
12
  import { z } from "zod";
12
13
  import { defineTool } from "../define-tool.js";
13
14
  import { describeAmassError, getPatentRecord, lookupPatentIds, searchPatentRecords, } from "../lib/amass-client.js";
14
15
  import { getAmassHeaders } from "../lib/amass-config.js";
16
+ import { ISO_DATE_PATTERN } from "../../lib/text.js";
15
17
  /** The largest `limit` that still costs one search price (5 credits for each 20 records). */
16
18
  const MAX_LIMIT = 20;
17
- const ISO_DATE = /^\d{4}-\d{2}-\d{2}$/;
18
19
  const IDENTIFIER_FIELDS = ["amassId", "publicationNumber", "applicationNumber"];
19
20
  function dateField(description) {
20
- return z.string().regex(ISO_DATE).optional().describe(`'search' only. ${description}, YYYY-MM-DD.`);
21
+ return z.string().regex(ISO_DATE_PATTERN).optional().describe(`'search' only. ${description}, YYYY-MM-DD.`);
21
22
  }
22
23
  const inputSchema = z
23
24
  .object({
@@ -91,21 +92,23 @@ export function createSearchPatentsTool(deps) {
91
92
  execute: async (input) => {
92
93
  const headers = getAmassHeaders(deps.apiKey);
93
94
  if (input.action === "search") {
95
+ if (input.query === undefined)
96
+ throw new Error("search requires query");
94
97
  const patents = await searchPatentRecords({
95
98
  query: input.query,
96
99
  limit: input.limit,
97
- ...(input.assignee ? { assignee: input.assignee } : {}),
98
- ...(input.inventor ? { inventor: input.inventor } : {}),
99
- ...(input.cpcCodes ? { cpcCodes: input.cpcCodes } : {}),
100
- ...(input.countryCode ? { countryCode: input.countryCode } : {}),
101
- ...(input.minPublicationDate ? { minPublicationDate: input.minPublicationDate } : {}),
102
- ...(input.maxPublicationDate ? { maxPublicationDate: input.maxPublicationDate } : {}),
103
- ...(input.minFilingDate ? { minFilingDate: input.minFilingDate } : {}),
104
- ...(input.maxFilingDate ? { maxFilingDate: input.maxFilingDate } : {}),
105
- ...(input.minPriorityDate ? { minPriorityDate: input.minPriorityDate } : {}),
106
- ...(input.maxPriorityDate ? { maxPriorityDate: input.maxPriorityDate } : {}),
107
- ...(input.minGrantDate ? { minGrantDate: input.minGrantDate } : {}),
108
- ...(input.maxGrantDate ? { maxGrantDate: input.maxGrantDate } : {}),
100
+ assignee: input.assignee ? input.assignee : undefined,
101
+ inventor: input.inventor ? input.inventor : undefined,
102
+ cpcCodes: input.cpcCodes ? input.cpcCodes : undefined,
103
+ countryCode: input.countryCode ? input.countryCode : undefined,
104
+ minPublicationDate: input.minPublicationDate,
105
+ maxPublicationDate: input.maxPublicationDate,
106
+ minFilingDate: input.minFilingDate,
107
+ maxFilingDate: input.maxFilingDate,
108
+ minPriorityDate: input.minPriorityDate,
109
+ maxPriorityDate: input.maxPriorityDate,
110
+ minGrantDate: input.minGrantDate,
111
+ maxGrantDate: input.maxGrantDate,
109
112
  }, headers);
110
113
  if (patents.isErr())
111
114
  return failure(patents.error);
@@ -114,8 +117,8 @@ export function createSearchPatentsTool(deps) {
114
117
  let amassId = input.amassId;
115
118
  if (amassId === undefined) {
116
119
  const ids = await lookupPatentIds({
117
- ...(input.publicationNumber === undefined ? {} : { publicationNumber: input.publicationNumber }),
118
- ...(input.applicationNumber === undefined ? {} : { applicationNumber: input.applicationNumber }),
120
+ publicationNumber: input.publicationNumber,
121
+ applicationNumber: input.applicationNumber,
119
122
  }, headers);
120
123
  if (ids.isErr())
121
124
  return failure(ids.error);
@@ -123,7 +126,7 @@ export function createSearchPatentsTool(deps) {
123
126
  return ok({ status: "not_found" });
124
127
  if (ids.value.length > 1)
125
128
  return ok({ status: "ambiguous", candidates: ids.value });
126
- amassId = ids.value[0];
129
+ amassId = presentFirst(ids.value, "the single patent id");
127
130
  }
128
131
  const patent = await getPatentRecord(amassId, { claims: input.includeClaims, description: input.includeDescription }, headers);
129
132
  if (patent.isErr())
@@ -7,11 +7,11 @@
7
7
  * and its accession is the key that the structural tools take.
8
8
  */
9
9
  import { type UniProtProtein } from "../lib/uniprot-client.js";
10
- export interface SearchProteinOutput {
10
+ export type SearchProteinOutput = {
11
11
  readonly proteins: UniProtProtein[];
12
12
  /** True when UniProt held at least one row beyond `limit`. */
13
13
  readonly hasMore: boolean;
14
- }
14
+ };
15
15
  export declare const searchProteinTool: import("../define-tool.js").Tool<{
16
16
  query: string;
17
17
  organismId: number | null;
@@ -52,7 +52,7 @@ export const searchProteinTool = defineTool({
52
52
  describeCall: ({ query }) => query,
53
53
  execute: async ({ query, organismId, reviewedOnly, limit }) => {
54
54
  const result = await searchProteins(query, {
55
- ...(organismId === null ? {} : { organismId }),
55
+ organismId: organismId ?? undefined,
56
56
  reviewedOnly,
57
57
  limit,
58
58
  });
@@ -11,7 +11,70 @@
11
11
  * `z.discriminatedUnion`, which `defineTool` rejects (model tool calling needs a
12
12
  * top-level `"type":"object"`).
13
13
  */
14
+ import { z } from "zod";
15
+ import { type Tool } from "../define-tool.js";
14
16
  import { type AuthorizationRecord, type AuthorizationSearchRow, type RegulatorySection } from "../lib/amass-client.js";
17
+ declare const inputSchema: z.ZodObject<{
18
+ action: z.ZodDefault<z.ZodEnum<{
19
+ details: "details";
20
+ search: "search";
21
+ section: "section";
22
+ }>>;
23
+ query: z.ZodOptional<z.ZodString>;
24
+ agency: z.ZodOptional<z.ZodArray<z.ZodEnum<{
25
+ EMA: "EMA";
26
+ FDA: "FDA";
27
+ }>>>;
28
+ authorizationStatus: z.ZodOptional<z.ZodArray<z.ZodEnum<{
29
+ ACTIVE: "ACTIVE";
30
+ APPROVED_NOT_MARKETED: "APPROVED_NOT_MARKETED";
31
+ CONDITIONAL: "CONDITIONAL";
32
+ EXPIRED: "EXPIRED";
33
+ LAPSED_SUNSET: "LAPSED_SUNSET";
34
+ REFUSED: "REFUSED";
35
+ REVOKED: "REVOKED";
36
+ SUSPENDED: "SUSPENDED";
37
+ UNKNOWN: "UNKNOWN";
38
+ WITHDRAWN_DURING_REVIEW: "WITHDRAWN_DURING_REVIEW";
39
+ WITHDRAWN_FORCED: "WITHDRAWN_FORCED";
40
+ WITHDRAWN_VOLUNTARY: "WITHDRAWN_VOLUNTARY";
41
+ }>>>;
42
+ moleculeType: z.ZodOptional<z.ZodArray<z.ZodEnum<{
43
+ ANTIBODY: "ANTIBODY";
44
+ ANTIBODY_DRUG_CONJUGATE: "ANTIBODY_DRUG_CONJUGATE";
45
+ CELL: "CELL";
46
+ ENZYME: "ENZYME";
47
+ GENE: "GENE";
48
+ OLIGONUCLEOTIDE: "OLIGONUCLEOTIDE";
49
+ OLIGOSACCHARIDE: "OLIGOSACCHARIDE";
50
+ PROTEIN: "PROTEIN";
51
+ SMALL_MOLECULE: "SMALL_MOLECULE";
52
+ UNKNOWN: "UNKNOWN";
53
+ VACCINE: "VACCINE";
54
+ VACCINE_COMPONENT: "VACCINE_COMPONENT";
55
+ }>>>;
56
+ hasDesignation: z.ZodOptional<z.ZodArray<z.ZodEnum<{
57
+ ACCELERATED_APPROVAL: "ACCELERATED_APPROVAL";
58
+ ACCELERATED_ASSESSMENT: "ACCELERATED_ASSESSMENT";
59
+ BREAKTHROUGH_THERAPY: "BREAKTHROUGH_THERAPY";
60
+ CONDITIONAL_MA: "CONDITIONAL_MA";
61
+ EXCEPTIONAL_CIRCUMSTANCES: "EXCEPTIONAL_CIRCUMSTANCES";
62
+ FAST_TRACK: "FAST_TRACK";
63
+ PRIME: "PRIME";
64
+ PRIORITY_REVIEW: "PRIORITY_REVIEW";
65
+ RMAT: "RMAT";
66
+ }>>>;
67
+ isOrphan: z.ZodOptional<z.ZodBoolean>;
68
+ minAuthorizationDate: z.ZodOptional<z.ZodString>;
69
+ maxAuthorizationDate: z.ZodOptional<z.ZodString>;
70
+ limit: z.ZodDefault<z.ZodNumber>;
71
+ amassId: z.ZodOptional<z.ZodString>;
72
+ fdaApplicationNumber: z.ZodOptional<z.ZodString>;
73
+ emaProductNumber: z.ZodOptional<z.ZodString>;
74
+ ndc: z.ZodOptional<z.ZodString>;
75
+ splSetId: z.ZodOptional<z.ZodString>;
76
+ documentSectionId: z.ZodOptional<z.ZodString>;
77
+ }, z.core.$strip>;
15
78
  type RegulatoryApprovalsOutput = {
16
79
  authorizations: AuthorizationSearchRow[];
17
80
  } | {
@@ -28,22 +91,5 @@ type RegulatoryApprovalsOutput = {
28
91
  };
29
92
  export declare function createSearchRegulatoryApprovalsTool(deps: {
30
93
  apiKey: string;
31
- }): import("../define-tool.js").Tool<{
32
- action: "search" | "details" | "section";
33
- limit: number;
34
- query?: string | undefined;
35
- agency?: ("FDA" | "EMA")[] | undefined;
36
- authorizationStatus?: ("UNKNOWN" | "ACTIVE" | "APPROVED_NOT_MARKETED" | "CONDITIONAL" | "SUSPENDED" | "WITHDRAWN_VOLUNTARY" | "WITHDRAWN_FORCED" | "REVOKED" | "LAPSED_SUNSET" | "REFUSED" | "WITHDRAWN_DURING_REVIEW" | "EXPIRED")[] | undefined;
37
- moleculeType?: ("UNKNOWN" | "SMALL_MOLECULE" | "ANTIBODY" | "PROTEIN" | "ENZYME" | "OLIGONUCLEOTIDE" | "GENE" | "CELL" | "ANTIBODY_DRUG_CONJUGATE" | "VACCINE_COMPONENT" | "VACCINE" | "OLIGOSACCHARIDE")[] | undefined;
38
- hasDesignation?: ("PRIORITY_REVIEW" | "BREAKTHROUGH_THERAPY" | "FAST_TRACK" | "RMAT" | "ACCELERATED_APPROVAL" | "ACCELERATED_ASSESSMENT" | "PRIME" | "CONDITIONAL_MA" | "EXCEPTIONAL_CIRCUMSTANCES")[] | undefined;
39
- isOrphan?: boolean | undefined;
40
- minAuthorizationDate?: string | undefined;
41
- maxAuthorizationDate?: string | undefined;
42
- amassId?: string | undefined;
43
- fdaApplicationNumber?: string | undefined;
44
- emaProductNumber?: string | undefined;
45
- ndc?: string | undefined;
46
- splSetId?: string | undefined;
47
- documentSectionId?: string | undefined;
48
- }, RegulatoryApprovalsOutput>;
94
+ }): Tool<z.infer<typeof inputSchema>, RegulatoryApprovalsOutput>;
49
95
  export {};
@@ -12,13 +12,14 @@
12
12
  * top-level `"type":"object"`).
13
13
  */
14
14
  import { err, ok } from "neverthrow";
15
+ import { presentFirst } from "../../lib/present.js";
15
16
  import { z } from "zod";
16
17
  import { defineTool } from "../define-tool.js";
17
18
  import { describeAmassError, getRegulatoryRecord, getRegulatorySection, lookupRegulatoryIds, MAX_MATCHED_SECTIONS, REGULATORY_AGENCIES, REGULATORY_AUTHORIZATION_STATUSES, REGULATORY_DESIGNATIONS, REGULATORY_MOLECULE_TYPES, searchRegulatoryRecords, } from "../lib/amass-client.js";
18
19
  import { getAmassHeaders } from "../lib/amass-config.js";
20
+ import { ISO_DATE_PATTERN } from "../../lib/text.js";
19
21
  /** The largest `limit` that still costs one search price (5 credits for each 20 records). */
20
22
  const MAX_LIMIT = 20;
21
- const ISO_DATE = /^\d{4}-\d{2}-\d{2}$/;
22
23
  const IDENTIFIER_FIELDS = ["amassId", "fdaApplicationNumber", "emaProductNumber", "ndc", "splSetId"];
23
24
  const inputSchema = z
24
25
  .object({
@@ -43,8 +44,8 @@ const inputSchema = z
43
44
  .optional()
44
45
  .describe("'search' only. Keep the authorizations that carry any of these designations."),
45
46
  isOrphan: z.boolean().optional().describe("'search' only. true keeps the FDA Orphan Drug / EMA Orphan Medicine authorizations; false drops them."),
46
- minAuthorizationDate: z.string().regex(ISO_DATE).optional().describe("'search' only. Earliest authorization date, YYYY-MM-DD."),
47
- maxAuthorizationDate: z.string().regex(ISO_DATE).optional().describe("'search' only. Latest authorization date, YYYY-MM-DD."),
47
+ minAuthorizationDate: z.string().regex(ISO_DATE_PATTERN).optional().describe("'search' only. Earliest authorization date, YYYY-MM-DD."),
48
+ maxAuthorizationDate: z.string().regex(ISO_DATE_PATTERN).optional().describe("'search' only. Latest authorization date, YYYY-MM-DD."),
48
49
  limit: z
49
50
  .number()
50
51
  .int()
@@ -111,23 +112,27 @@ export function createSearchRegulatoryApprovalsTool(deps) {
111
112
  execute: async (input) => {
112
113
  const headers = getAmassHeaders(deps.apiKey);
113
114
  if (input.action === "search") {
115
+ if (input.query === undefined)
116
+ throw new Error("search requires query");
114
117
  const rows = await searchRegulatoryRecords({
115
118
  query: input.query,
116
119
  limit: input.limit,
117
- ...(input.agency ? { agency: input.agency } : {}),
118
- ...(input.authorizationStatus ? { authorizationStatus: input.authorizationStatus } : {}),
119
- ...(input.moleculeType ? { moleculeType: input.moleculeType } : {}),
120
- ...(input.hasDesignation ? { hasDesignation: input.hasDesignation } : {}),
121
- ...(input.isOrphan === undefined ? {} : { isOrphan: input.isOrphan }),
122
- ...(input.minAuthorizationDate ? { minAuthorizationDate: input.minAuthorizationDate } : {}),
123
- ...(input.maxAuthorizationDate ? { maxAuthorizationDate: input.maxAuthorizationDate } : {}),
124
- ...(input.amassId ? { amassId: input.amassId } : {}),
120
+ agency: input.agency ? input.agency : undefined,
121
+ authorizationStatus: input.authorizationStatus ? input.authorizationStatus : undefined,
122
+ moleculeType: input.moleculeType ? input.moleculeType : undefined,
123
+ hasDesignation: input.hasDesignation ? input.hasDesignation : undefined,
124
+ isOrphan: input.isOrphan,
125
+ minAuthorizationDate: input.minAuthorizationDate,
126
+ maxAuthorizationDate: input.maxAuthorizationDate,
127
+ amassId: input.amassId ? input.amassId : undefined,
125
128
  }, headers);
126
129
  if (rows.isErr())
127
130
  return failure(rows.error);
128
131
  return ok({ authorizations: rows.value });
129
132
  }
130
133
  if (input.action === "section") {
134
+ if (input.amassId === undefined || input.documentSectionId === undefined)
135
+ throw new Error("section requires amassId and documentSectionId");
131
136
  const section = await getRegulatorySection(input.amassId, input.documentSectionId, headers);
132
137
  if (section.isErr())
133
138
  return failure(section.error);
@@ -136,10 +141,10 @@ export function createSearchRegulatoryApprovalsTool(deps) {
136
141
  let amassId = input.amassId;
137
142
  if (amassId === undefined) {
138
143
  const ids = await lookupRegulatoryIds({
139
- ...(input.fdaApplicationNumber === undefined ? {} : { fdaApplicationNumber: input.fdaApplicationNumber }),
140
- ...(input.emaProductNumber === undefined ? {} : { emaProductNumber: input.emaProductNumber }),
141
- ...(input.ndc === undefined ? {} : { ndc: input.ndc }),
142
- ...(input.splSetId === undefined ? {} : { splSetId: input.splSetId }),
144
+ fdaApplicationNumber: input.fdaApplicationNumber,
145
+ emaProductNumber: input.emaProductNumber,
146
+ ndc: input.ndc,
147
+ splSetId: input.splSetId,
143
148
  }, headers);
144
149
  if (ids.isErr())
145
150
  return failure(ids.error);
@@ -147,7 +152,7 @@ export function createSearchRegulatoryApprovalsTool(deps) {
147
152
  return ok({ status: "not_found" });
148
153
  if (ids.value.length > 1)
149
154
  return ok({ status: "ambiguous", candidates: ids.value });
150
- amassId = ids.value[0];
155
+ amassId = presentFirst(ids.value, "the single regulatory id");
151
156
  }
152
157
  const record = await getRegulatoryRecord(amassId, headers);
153
158
  if (record.isErr())
@@ -16,7 +16,7 @@ import { type SafetyLiability } from "../lib/opentargets-client.js";
16
16
  declare const SOURCES: readonly ["panel", "opentargets"];
17
17
  type Source = (typeof SOURCES)[number];
18
18
  type ConcreteType = "chembl_id" | "gene_symbol" | "uniprot" | "ensembl_id";
19
- interface TargetRow {
19
+ type TargetRow = {
20
20
  input: string;
21
21
  identifierType: ConcreteType;
22
22
  /** The Ensembl id Open Targets was queried with, when one could be obtained. */
@@ -27,27 +27,27 @@ interface TargetRow {
27
27
  liabilityCount?: number;
28
28
  /** Why the Open Targets half is absent for this identifier, when it is. */
29
29
  opentargetsNote?: string;
30
- }
31
- interface SourceOutcome {
30
+ };
31
+ type SourceOutcome = {
32
32
  source: Source;
33
33
  status: "ok" | "no_data" | "unavailable";
34
34
  /** Identifiers this source returned something for. */
35
35
  matched: number;
36
36
  detail?: string;
37
- }
37
+ };
38
38
  export declare const targetSafetyTool: import("../define-tool.js").Tool<{
39
39
  identifiers: string[];
40
- identifierType?: "auto" | "gene_symbol" | "uniprot" | "chembl_id" | "ensembl_id" | undefined;
40
+ identifierType?: "auto" | "chembl_id" | "ensembl_id" | "gene_symbol" | "uniprot" | undefined;
41
41
  sources?: ("opentargets" | "panel")[] | undefined;
42
- filterOrgan?: "hematologic" | "metabolic" | "immune" | "hepatic" | "musculoskeletal" | "cns" | "renal" | "reproductive" | "respiratory" | "cardiac" | "vascular" | "pns" | "gi" | "pancreas" | "endocrine_thyroid" | "dermatologic" | "ocular" | "oncology" | undefined;
43
- minSeverity?: "low" | "medium" | "high" | undefined;
42
+ filterOrgan?: "cardiac" | "cns" | "dermatologic" | "endocrine_thyroid" | "gi" | "hematologic" | "hepatic" | "immune" | "metabolic" | "musculoskeletal" | "ocular" | "oncology" | "pancreas" | "pns" | "renal" | "reproductive" | "respiratory" | "vascular" | undefined;
43
+ minSeverity?: "high" | "low" | "medium" | undefined;
44
44
  liabilityLimit?: number | undefined;
45
45
  }, {
46
46
  perSource: SourceOutcome[];
47
47
  summary: {
48
48
  totalInput: number;
49
49
  panelMatched: number;
50
- bySeverity: Record<"low" | "medium" | "high", number>;
50
+ bySeverity: Record<"high" | "low" | "medium", number>;
51
51
  byOrgan: Record<string, number>;
52
52
  openTargetsWithLiabilities: number;
53
53
  };
@@ -11,6 +11,8 @@
11
11
  * accepts ONLY an Ensembl gene id, and it is taken from the panel entry when
12
12
  * there is one and resolved from the gene symbol when there is not.
13
13
  */
14
+ import { errorMessageOf } from "../../lib/thrown.js";
15
+ import { textOf } from "../../lib/unknown-text.js";
14
16
  import { ok } from "neverthrow";
15
17
  import { z } from "zod";
16
18
  import { ORGAN_SYSTEMS } from "../../contracts/organ-system.js";
@@ -19,12 +21,15 @@ import { CHEMBL_RE, SafetyPanelFileSchema, UNIPROT_RE } from "../../data/safety-
19
21
  import panelData from "../../data/safety-panel.json" with { type: "json" };
20
22
  import { defineTool } from "../define-tool.js";
21
23
  import { resolveSymbolToEnsemblId } from "../lib/ensembl-client.js";
24
+ import { isAllDigits } from "../../lib/text.js";
22
25
  import { getTargetSafetyLiabilities } from "../lib/opentargets-client.js";
23
26
  const PANEL = SafetyPanelFileSchema.parse(panelData);
24
27
  const BY_CHEMBL = new Map(PANEL.targets.map((t) => [t.chembl_id, t]));
25
28
  const BY_GENE = new Map(PANEL.targets.map((t) => [t.gene_symbol, t]));
26
29
  const BY_UNIPROT = new Map(PANEL.targets.map((t) => [t.uniprot, t]));
27
- const ENSG_RE = /^ENSG\d{11}$/;
30
+ function isEnsemblGeneId(id) {
31
+ return id.startsWith("ENSG") && id.length === 15 && isAllDigits(id.slice(4));
32
+ }
28
33
  /** Ordered weakest → strongest so `minSeverity` can be a numeric floor. */
29
34
  const SEVERITY_ORDER = { low: 0, medium: 1, high: 2 };
30
35
  const SOURCES = ["panel", "opentargets"];
@@ -35,7 +40,7 @@ const DEFAULT_LIABILITY_LIMIT = 10;
35
40
  function detectType(id) {
36
41
  if (CHEMBL_RE.test(id))
37
42
  return "chembl_id";
38
- if (ENSG_RE.test(id))
43
+ if (isEnsemblGeneId(id))
39
44
  return "ensembl_id";
40
45
  if (UNIPROT_RE.test(id))
41
46
  return "uniprot";
@@ -84,7 +89,7 @@ const inputSchema = z
84
89
  .optional()
85
90
  .describe(`'opentargets' only. Max liabilities per target (default ${DEFAULT_LIABILITY_LIMIT}, max 100); \`liabilityCount\` gives the true total.`),
86
91
  })
87
- .refine((d) => (d.sources ?? [...SOURCES]).includes("opentargets") === false || d.identifiers.length <= MAX_OPENTARGETS_IDENTIFIERS, {
92
+ .refine((d) => !(d.sources ?? [...SOURCES]).includes("opentargets") || d.identifiers.length <= MAX_OPENTARGETS_IDENTIFIERS, {
88
93
  message: `identifiers is capped at ${MAX_OPENTARGETS_IDENTIFIERS} when source 'opentargets' is included (one request per target). ` +
89
94
  `Either narrow the list, or pass sources: ['panel'] to sweep up to ${MAX_PANEL_IDENTIFIERS} against the local panel first and follow up on the hits.`,
90
95
  path: ["identifiers"],
@@ -150,7 +155,7 @@ export const targetSafetyTool = defineTool({
150
155
  row.liabilities = result.safetyLiabilities.slice(0, limit);
151
156
  }
152
157
  catch (error) {
153
- opentargetsError = error instanceof Error ? error.message : String(error);
158
+ opentargetsError = errorMessageOf(error) ?? textOf(error);
154
159
  row.opentargetsNote = "Open Targets could not be reached";
155
160
  }
156
161
  }));
@@ -175,7 +180,7 @@ export const targetSafetyTool = defineTool({
175
180
  source: "opentargets",
176
181
  status: opentargetsError ? "unavailable" : withLiabilities > 0 ? "ok" : "no_data",
177
182
  matched: withLiabilities,
178
- ...(opentargetsError ? { detail: opentargetsError } : {}),
183
+ detail: opentargetsError,
179
184
  });
180
185
  }
181
186
  return ok({
@@ -184,7 +189,7 @@ export const targetSafetyTool = defineTool({
184
189
  totalInput: identifiers.length,
185
190
  panelMatched,
186
191
  bySeverity,
187
- byOrgan: byOrgan,
192
+ byOrgan,
188
193
  openTargetsWithLiabilities: withLiabilities,
189
194
  },
190
195
  targets: rows,
@@ -13,24 +13,28 @@
13
13
  * description. Where the ids reach an agent matters: a prompt names no dataset, so the knowledge
14
14
  * arrives through a tool, which carries its own description into the context at attach time.
15
15
  */
16
+ import { z } from "zod";
16
17
  import type { EnvironmentStorePaths } from "../config/environment-stores.js";
18
+ import { type Tool } from "./define-tool.js";
17
19
  export type InspectCapabilityDataDeps = Pick<EnvironmentStorePaths, "refStorePath">;
18
20
  /** One capability, its declared datasets, and what the store holds of them. */
19
- export interface CapabilityDataRow {
21
+ export type CapabilityDataRow = {
20
22
  readonly agentId: string;
21
23
  readonly capability: string;
22
24
  readonly installed: readonly string[];
23
25
  readonly absent: readonly string[];
24
- }
25
- export interface CapabilityDataResult {
26
+ };
27
+ export type CapabilityDataResult = {
26
28
  /** False when the store could not be answered for: every `absent` list is then unknown, not empty. */
27
29
  readonly storeReadable: boolean;
28
30
  readonly rows: readonly CapabilityDataRow[];
29
31
  readonly content: string;
30
- }
32
+ };
31
33
  /**
32
34
  * Build the tool. The store read happens per call, not at construction: a dataset installed during
33
35
  * the conversation must show as installed on the next call, and a cached answer would have the
34
36
  * agent offer a download the user already approved.
35
37
  */
36
- export declare function createInspectCapabilityDataTool(deps?: InspectCapabilityDataDeps): import("./define-tool.js").Tool<Record<string, never>, CapabilityDataResult>;
38
+ declare const CapabilityDataInputSchema: z.ZodObject<{}, z.core.$strip>;
39
+ export declare function createInspectCapabilityDataTool(deps?: InspectCapabilityDataDeps): Tool<z.infer<typeof CapabilityDataInputSchema>, CapabilityDataResult>;
40
+ export {};
@@ -42,6 +42,7 @@ function renderRows(rows, storeReadable) {
42
42
  * the conversation must show as installed on the next call, and a cached answer would have the
43
43
  * agent offer a download the user already approved.
44
44
  */
45
+ const CapabilityDataInputSchema = z.object({});
45
46
  export function createInspectCapabilityDataTool(deps = {}) {
46
47
  return defineTool({
47
48
  id: "inspect_capability_data",
@@ -50,7 +51,7 @@ export function createInspectCapabilityDataTool(deps = {}) {
50
51
  "Each entry names a catalog dataset id, which is exactly what an install takes; a surface with a way to provision can act on it directly. " +
51
52
  "It takes no arguments and the whole set is small, so one call is the complete answer. " +
52
53
  "An unreadable store answers UNKNOWN rather than absent, so a store that cannot be read never reads as a store that holds nothing.",
53
- inputSchema: z.object({}),
54
+ inputSchema: CapabilityDataInputSchema,
54
55
  describeCall: () => "declared capability data",
55
56
  execute: async () => {
56
57
  const declared = declaredDataRequirements();