@inflexa-ai/harness 0.45.0 → 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.
- package/README.md +6 -3
- package/dist/agents/conversation-agent.d.ts +19 -3
- package/dist/agents/conversation-agent.js +49 -30
- package/dist/agents/report-session-agent.d.ts +15 -15
- package/dist/agents/report-session-agent.js +23 -15
- package/dist/agents/sandbox/index.d.ts +1 -1
- package/dist/agents/sandbox/index.js +1 -1
- package/dist/agents/sandbox/shared.d.ts +35 -16
- package/dist/agents/sandbox/shared.js +63 -24
- package/dist/agents/sandbox/translational-safety-agent.js +26 -0
- package/dist/agents/sandbox/types.d.ts +26 -3
- package/dist/agents/sandbox/validate-skills.d.ts +2 -2
- package/dist/agents/sandbox/validate-skills.js +3 -1
- package/dist/agents/sandbox-catalog.d.ts +16 -2
- package/dist/agents/sandbox-catalog.js +22 -3
- package/dist/agents/system-prompt.d.ts +2 -2
- package/dist/app/approve-plan.d.ts +5 -2
- package/dist/app/approve-plan.js +1 -1
- package/dist/app/chat-turn-workflow.d.ts +114 -0
- package/dist/app/chat-turn-workflow.js +307 -0
- package/dist/app/chat-turn.d.ts +85 -57
- package/dist/app/chat-turn.js +125 -99
- package/dist/app/data-profile-orientation.js +10 -8
- package/dist/app/data-profile-view.d.ts +4 -4
- package/dist/app/data-profile-view.js +9 -8
- package/dist/app/in-process-turn.d.ts +42 -0
- package/dist/app/in-process-turn.js +139 -0
- package/dist/app/message-assembly.d.ts +10 -4
- package/dist/app/message-assembly.js +13 -8
- package/dist/app/report-session-runtime.d.ts +4 -4
- package/dist/app/report-session-runtime.js +36 -21
- package/dist/app/spawn-report-session.d.ts +33 -28
- package/dist/app/spawn-report-session.js +25 -40
- package/dist/app/synthesize-run.d.ts +22 -16
- package/dist/app/synthesize-run.js +41 -35
- package/dist/app/work.d.ts +96 -0
- package/dist/app/work.js +147 -0
- package/dist/auth/local-auth-context.d.ts +1 -3
- package/dist/auth/local-auth-context.js +1 -3
- package/dist/auth/local-run-authorizer.d.ts +1 -1
- package/dist/auth/local-run-authorizer.js +5 -3
- package/dist/auth/types.d.ts +26 -26
- package/dist/billing/cached-resolver.d.ts +4 -4
- package/dist/billing/run-charge.d.ts +5 -8
- package/dist/billing/run-charge.js +2 -2
- package/dist/billing/usage-recorder.d.ts +9 -9
- package/dist/citations/aggregate.js +1 -1
- package/dist/citations/clients/arxiv.d.ts +2 -2
- package/dist/citations/clients/arxiv.js +12 -4
- package/dist/citations/clients/common.js +4 -2
- package/dist/citations/clients/crossref.d.ts +2 -2
- package/dist/citations/clients/crossref.js +37 -37
- package/dist/citations/clients/doi-registry.js +15 -16
- package/dist/citations/clients/pubmed.d.ts +2 -2
- package/dist/citations/clients/pubmed.js +20 -13
- package/dist/citations/clients/semantic-scholar.d.ts +2 -2
- package/dist/citations/clients/semantic-scholar.js +9 -9
- package/dist/citations/compare.js +2 -2
- package/dist/citations/match.d.ts +2 -2
- package/dist/citations/match.js +12 -7
- package/dist/citations/normalize.js +35 -26
- package/dist/citations/plan.js +6 -2
- package/dist/citations/resolve.d.ts +6 -6
- package/dist/citations/resolve.js +34 -25
- package/dist/citations/types.d.ts +77 -77
- package/dist/config/environment-stores.d.ts +10 -8
- package/dist/config/resource-limits.js +1 -3
- package/dist/contracts/analogy-report.d.ts +7 -7
- package/dist/contracts/analogy-report.js +2 -2
- package/dist/contracts/chat-events.d.ts +46 -22
- package/dist/contracts/chat-events.js +1 -1
- package/dist/contracts/chat-frame.d.ts +15 -5
- package/dist/contracts/chat-frame.js +67 -40
- package/dist/contracts/chat-parts.d.ts +130 -67
- package/dist/contracts/chat-parts.js +1 -0
- package/dist/contracts/content-url.js +16 -2
- package/dist/contracts/data-profile.d.ts +38 -38
- package/dist/contracts/index.d.ts +3 -3
- package/dist/contracts/index.js +1 -1
- package/dist/contracts/message.d.ts +6 -6
- package/dist/contracts/organ-system.d.ts +11 -11
- package/dist/contracts/part-registry.d.ts +5 -4
- package/dist/contracts/part-registry.js +5 -0
- package/dist/contracts/profile-vocabulary.d.ts +11 -10
- package/dist/contracts/profile-vocabulary.js +10 -3
- package/dist/contracts/report-blocks.d.ts +329 -329
- package/dist/contracts/report-reference.d.ts +105 -81
- package/dist/contracts/report-reference.js +30 -13
- package/dist/contracts/schemas/chat-events.d.ts +45 -6
- package/dist/contracts/schemas/chat-events.js +16 -0
- package/dist/contracts/schemas/chat-parts.d.ts +214 -102
- package/dist/contracts/schemas/chat-parts.js +50 -7
- package/dist/contracts/schemas/index.d.ts +1 -1
- package/dist/contracts/schemas/index.js +1 -1
- package/dist/contracts/severity.d.ts +1 -1
- package/dist/contracts/structure-source.d.ts +3 -3
- package/dist/contracts/structure-source.js +6 -2
- package/dist/contracts/subagent-activity.d.ts +2 -2
- package/dist/contracts/subagent-activity.js +5 -3
- package/dist/contracts/usage.d.ts +2 -2
- package/dist/data/safety-panel-schema.d.ts +25 -25
- package/dist/data/safety-panel-schema.js +13 -4
- package/dist/execution/artifact-metadata.d.ts +23 -15
- package/dist/execution/artifact-metadata.js +33 -10
- package/dist/execution/artifact-record.d.ts +2 -2
- package/dist/execution/artifact-registration.d.ts +5 -5
- package/dist/execution/artifact-registry.d.ts +8 -8
- package/dist/execution/dbos-run-launcher.d.ts +24 -4
- package/dist/execution/dbos-run-launcher.js +58 -4
- package/dist/execution/dbos-workflow-purger.d.ts +7 -6
- package/dist/execution/dbos-workflow-purger.js +29 -21
- package/dist/execution/input-signature.d.ts +2 -2
- package/dist/execution/post-step-pipeline.d.ts +9 -9
- package/dist/execution/post-step-pipeline.js +1 -1
- package/dist/execution/post-step.js +2 -2
- package/dist/execution/reconcile-manifest.d.ts +4 -4
- package/dist/execution/reconcile-manifest.js +3 -2
- package/dist/execution/run-authorizer.d.ts +46 -37
- package/dist/execution/run-authorizer.js +8 -8
- package/dist/execution/run-canceler.d.ts +39 -17
- package/dist/execution/run-canceler.js +137 -28
- package/dist/execution/run-end-record.d.ts +29 -0
- package/dist/execution/run-end-record.js +27 -0
- package/dist/execution/run-event-parts.d.ts +0 -8
- package/dist/execution/run-event-parts.js +29 -24
- package/dist/execution/run-event-stream.d.ts +8 -8
- package/dist/execution/run-event-stream.js +3 -4
- package/dist/execution/run-launcher.d.ts +4 -4
- package/dist/execution/run-synthesis.d.ts +49 -48
- package/dist/execution/run-synthesis.js +96 -255
- package/dist/execution/staged-input.d.ts +2 -2
- package/dist/execution/step-summary.d.ts +6 -6
- package/dist/execution/step-summary.js +4 -8
- package/dist/execution/topo-sort.js +4 -3
- package/dist/execution/workflow-purger.d.ts +2 -2
- package/dist/index.d.ts +25 -24
- package/dist/index.js +36 -37
- package/dist/input-sanitization.js +9 -2
- package/dist/input-scan/clustering.d.ts +6 -6
- package/dist/input-scan/clustering.js +11 -5
- package/dist/input-scan/companions.js +3 -2
- package/dist/input-scan/detect-sets.d.ts +2 -2
- package/dist/input-scan/detect-sets.js +25 -21
- package/dist/input-scan/enrich.d.ts +6 -6
- package/dist/input-scan/enrich.js +29 -12
- package/dist/input-scan/formats.d.ts +2 -2
- package/dist/input-scan/formats.js +8 -2
- package/dist/input-scan/markers.d.ts +2 -2
- package/dist/input-scan/markers.js +14 -5
- package/dist/input-scan/menu.d.ts +10 -10
- package/dist/input-scan/menu.js +0 -0
- package/dist/input-scan/quarantine.d.ts +2 -2
- package/dist/input-scan/quarantine.js +23 -18
- package/dist/input-scan/readout-budget.d.ts +2 -2
- package/dist/input-scan/readout-budget.js +1 -1
- package/dist/input-scan/readout.d.ts +2 -2
- package/dist/input-scan/readout.js +47 -34
- package/dist/input-scan/scan.d.ts +2 -2
- package/dist/input-scan/scan.js +7 -5
- package/dist/input-scan/set-types.d.ts +28 -28
- package/dist/input-scan/shapes.d.ts +4 -4
- package/dist/input-scan/shapes.js +0 -0
- package/dist/input-scan/templates.d.ts +10 -10
- package/dist/input-scan/templates.js +30 -22
- package/dist/input-scan/tokens.d.ts +6 -4
- package/dist/input-scan/tokens.js +100 -38
- package/dist/input-scan/types.d.ts +22 -22
- package/dist/lib/async-utils.d.ts +3 -7
- package/dist/lib/async-utils.js +5 -9
- package/dist/lib/cache.js +1 -1
- package/dist/lib/chrome.d.ts +46 -6
- package/dist/lib/console-logger.js +2 -2
- package/dist/lib/db-result.d.ts +22 -6
- package/dist/lib/db-result.js +9 -13
- package/dist/lib/eyes.d.ts +4 -4
- package/dist/lib/eyes.js +1 -1
- package/dist/lib/fs-helpers.js +18 -6
- package/dist/lib/fs-result.d.ts +1 -0
- package/dist/lib/fs-result.js +5 -6
- package/dist/lib/hooks.d.ts +23 -7
- package/dist/lib/hooks.js +17 -3
- package/dist/lib/host-concurrency.js +3 -2
- package/dist/lib/logger.d.ts +2 -2
- package/dist/lib/logger.js +2 -1
- package/dist/lib/metrics.d.ts +1 -1
- package/dist/lib/null-proto.d.ts +6 -0
- package/dist/lib/null-proto.js +17 -0
- package/dist/lib/otel-spans.d.ts +1 -1
- package/dist/lib/otel-spans.js +9 -5
- package/dist/lib/otel.d.ts +4 -2
- package/dist/lib/otel.js +10 -2
- package/dist/lib/page-capture.d.ts +8 -8
- package/dist/lib/page-capture.js +9 -4
- package/dist/lib/parse-json.d.ts +5 -0
- package/dist/lib/parse-json.js +12 -0
- package/dist/lib/present.d.ts +12 -0
- package/dist/lib/present.js +39 -0
- package/dist/lib/rate-limit.d.ts +4 -4
- package/dist/lib/rate-limit.js +12 -13
- package/dist/lib/regulatory-corpus/fetch-fda-guidance.d.ts +4 -4
- package/dist/lib/regulatory-corpus/fetch-fda-guidance.js +4 -10
- package/dist/lib/regulatory-corpus/fetch-ich.d.ts +4 -4
- package/dist/lib/regulatory-corpus/fetch-ich.js +18 -14
- package/dist/lib/regulatory-corpus/normalize-whitespace.d.ts +6 -0
- package/dist/lib/regulatory-corpus/normalize-whitespace.js +41 -0
- package/dist/lib/regulatory-corpus.d.ts +10 -10
- package/dist/lib/regulatory-corpus.js +3 -1
- package/dist/lib/result.d.ts +10 -11
- package/dist/lib/result.js +15 -13
- package/dist/lib/storage.d.ts +2 -2
- package/dist/lib/test/async-iterable.d.ts +9 -0
- package/dist/lib/test/async-iterable.js +28 -0
- package/dist/lib/test/request-url.d.ts +5 -0
- package/dist/lib/test/request-url.js +7 -0
- package/dist/lib/test/result-assert.d.ts +12 -0
- package/dist/lib/test/result-assert.js +17 -0
- package/dist/lib/test/text-shapes.d.ts +24 -0
- package/dist/lib/test/text-shapes.js +63 -0
- package/dist/lib/text.d.ts +22 -0
- package/dist/lib/text.js +68 -0
- package/dist/lib/thrown.d.ts +18 -0
- package/dist/lib/thrown.js +30 -0
- package/dist/lib/unknown-array.d.ts +6 -0
- package/dist/lib/unknown-array.js +8 -0
- package/dist/lib/unknown-containers.d.ts +14 -0
- package/dist/lib/unknown-containers.js +17 -0
- package/dist/lib/unknown-text.d.ts +8 -0
- package/dist/lib/unknown-text.js +28 -0
- package/dist/lib/zod-issue-shape.d.ts +1 -1
- package/dist/lib/zod-issue-shape.js +31 -31
- package/dist/lib/zod-issues.d.ts +3 -3
- package/dist/lib/zod-issues.js +30 -17
- package/dist/literature/sources/arxiv.d.ts +6 -6
- package/dist/literature/sources/arxiv.js +92 -35
- package/dist/literature/sources/http.d.ts +2 -2
- package/dist/literature/sources/http.js +16 -15
- package/dist/literature/sources/pubmed.d.ts +16 -16
- package/dist/literature/sources/pubmed.js +96 -61
- package/dist/literature/sources/semantic-scholar.d.ts +8 -8
- package/dist/literature/sources/semantic-scholar.js +22 -13
- package/dist/loop/accounting.d.ts +63 -0
- package/dist/loop/accounting.js +141 -0
- package/dist/loop/call-policy.d.ts +73 -0
- package/dist/loop/call-policy.js +109 -0
- package/dist/loop/chat-stream.d.ts +62 -0
- package/dist/loop/chat-stream.js +237 -0
- package/dist/loop/compaction.d.ts +14 -9
- package/dist/loop/compaction.js +17 -0
- package/dist/loop/metrics.d.ts +12 -15
- package/dist/loop/metrics.js +14 -26
- package/dist/loop/run-loop.d.ts +233 -0
- package/dist/loop/run-loop.js +770 -0
- package/dist/loop/sub-agent.d.ts +61 -0
- package/dist/loop/sub-agent.js +161 -0
- package/dist/loop/tool-adapter.d.ts +98 -0
- package/dist/loop/tool-adapter.js +364 -0
- package/dist/loop/tool-detail.d.ts +1 -1
- package/dist/loop/tool-detail.js +6 -5
- package/dist/loop/tool-outcome.d.ts +1 -1
- package/dist/loop/tool-output.d.ts +4 -4
- package/dist/loop/tool-output.js +2 -2
- package/dist/loop/turn-credentials.d.ts +34 -0
- package/dist/loop/turn-credentials.js +73 -0
- package/dist/loop/types.d.ts +34 -37
- package/dist/loop/types.js +2 -7
- package/dist/memory/ai-sdk-message-storage.d.ts +5 -5
- package/dist/memory/ai-sdk-message-storage.js +13 -11
- package/dist/memory/card-builders.d.ts +14 -14
- package/dist/memory/card-builders.js +19 -15
- package/dist/memory/conversation-display-recorder.d.ts +22 -6
- package/dist/memory/conversation-display-recorder.js +64 -20
- package/dist/memory/conversation-display-replay.js +3 -2
- package/dist/memory/conversation-display-storage.d.ts +15 -7
- package/dist/memory/conversation-display-storage.js +141 -36
- package/dist/memory/conversation-view.d.ts +4 -4
- package/dist/memory/conversation-view.js +5 -4
- package/dist/memory/count-tokens.js +10 -8
- package/dist/memory/derive-thread-title.d.ts +0 -13
- package/dist/memory/derive-thread-title.js +2 -1
- package/dist/memory/message-backfill.d.ts +12 -5
- package/dist/memory/message-backfill.js +5 -3
- package/dist/memory/thread-history.d.ts +66 -24
- package/dist/memory/thread-history.js +212 -79
- package/dist/memory/thread-store.d.ts +26 -17
- package/dist/memory/thread-store.js +15 -9
- package/dist/memory/tool-call-integrity.d.ts +2 -2
- package/dist/memory/tool-call-integrity.js +4 -3
- package/dist/memory/working-memory.d.ts +16 -12
- package/dist/memory/working-memory.js +72 -61
- package/dist/prompts/briefing.d.ts +63 -9
- package/dist/prompts/briefing.js +130 -3
- package/dist/prompts/planner.js +13 -2
- package/dist/prompts/synthesis-agent.d.ts +1 -1
- package/dist/prompts/synthesis-agent.js +6 -14
- package/dist/provenance/collector.d.ts +6 -6
- package/dist/provenance/collector.js +15 -8
- package/dist/provenance/exec-frame.d.ts +2 -2
- package/dist/provenance/exec-frame.js +6 -1
- package/dist/provenance/seam.d.ts +24 -19
- package/dist/provenance/seam.js +7 -5
- package/dist/provenance/types.d.ts +6 -6
- package/dist/providers/ai-sdk.d.ts +113 -62
- package/dist/providers/ai-sdk.js +303 -458
- package/dist/providers/embedding.d.ts +2 -2
- package/dist/providers/embedding.js +1 -1
- package/dist/providers/errors.d.ts +22 -2
- package/dist/providers/errors.js +98 -50
- package/dist/providers/prompt-cache.d.ts +8 -8
- package/dist/providers/prompt-cache.js +13 -11
- package/dist/providers/reasoning.d.ts +2 -2
- package/dist/providers/reasoning.js +2 -2
- package/dist/providers/types.d.ts +59 -92
- package/dist/reference-data/catalog.d.ts +2 -15
- package/dist/reference-data/catalog.js +166 -10
- package/dist/reference-data/receipt.d.ts +2 -2
- package/dist/report-model/assert-rules.js +1 -1
- package/dist/report-model/authoring-grammar.d.ts +209 -231
- package/dist/report-model/block-walk.d.ts +10 -10
- package/dist/report-model/block-walk.js +2 -0
- package/dist/report-model/draft-finish.d.ts +8 -8
- package/dist/report-model/draft-finish.js +1 -1
- package/dist/report-model/draft-hash.js +8 -7
- package/dist/report-model/draft-operations.d.ts +22 -10
- package/dist/report-model/draft-operations.js +48 -30
- package/dist/report-model/draft-read.d.ts +19 -7
- package/dist/report-model/draft-read.js +16 -6
- package/dist/report-model/draft.d.ts +844 -2
- package/dist/report-model/draft.js +3 -1
- package/dist/report-model/fixture-resolver.js +39 -16
- package/dist/report-model/pin-snapshot.d.ts +2 -2
- package/dist/report-model/pin-snapshot.js +15 -15
- package/dist/report-model/production-resolver.d.ts +18 -18
- package/dist/report-model/production-resolver.js +50 -42
- package/dist/report-model/reference-resolver.d.ts +26 -10
- package/dist/report-model/reference-resolver.js +68 -5
- package/dist/report-model/reference-stamp.js +30 -38
- package/dist/report-model/structural-validation.js +12 -4
- package/dist/report-model/validate.d.ts +7 -7
- package/dist/report-model/validate.js +6 -6
- package/dist/report-render/assets.d.ts +2 -2
- package/dist/report-render/assets.js +27 -3
- package/dist/report-render/chart-export.d.ts +10 -2
- package/dist/report-render/chart-export.js +37 -11
- package/dist/report-render/chart-presets.d.ts +8 -8
- package/dist/report-render/chart-presets.js +3 -3
- package/dist/report-render/chart-renderers.d.ts +23 -16
- package/dist/report-render/chart-renderers.js +74 -53
- package/dist/report-render/chart-toolbox.d.ts +2 -2
- package/dist/report-render/chart-toolbox.js +7 -6
- package/dist/report-render/chart.d.ts +15 -16
- package/dist/report-render/chart.js +369 -252
- package/dist/report-render/design.d.ts +36 -297
- package/dist/report-render/design.js +0 -12
- package/dist/report-render/figures/common.d.ts +12 -12
- package/dist/report-render/figures/common.js +42 -31
- package/dist/report-render/figures/dendrogram.d.ts +3 -3
- package/dist/report-render/figures/dendrogram.js +10 -10
- package/dist/report-render/figures/dense.js +15 -8
- package/dist/report-render/figures/dotplot.js +46 -33
- package/dist/report-render/figures/embedding.js +52 -43
- package/dist/report-render/figures/equal-units.d.ts +10 -10
- package/dist/report-render/figures/equal-units.js +27 -27
- package/dist/report-render/figures/forest.js +9 -7
- package/dist/report-render/figures/gsea.js +21 -11
- package/dist/report-render/figures/heatmap.js +13 -9
- package/dist/report-render/figures/index.d.ts +10 -10
- package/dist/report-render/figures/index.js +4 -2
- package/dist/report-render/figures/km.js +10 -9
- package/dist/report-render/figures/label-room.d.ts +12 -12
- package/dist/report-render/figures/label-room.js +7 -2
- package/dist/report-render/figures/locuszoom.d.ts +2 -2
- package/dist/report-render/figures/locuszoom.js +59 -31
- package/dist/report-render/figures/lollipop.js +3 -2
- package/dist/report-render/figures/ma.js +8 -4
- package/dist/report-render/figures/manhattan.d.ts +1 -2
- package/dist/report-render/figures/manhattan.js +52 -34
- package/dist/report-render/figures/oncoprint.js +4 -5
- package/dist/report-render/figures/pca.js +25 -11
- package/dist/report-render/figures/qq.js +20 -9
- package/dist/report-render/figures/roc.js +1 -1
- package/dist/report-render/figures/sankey.d.ts +2 -2
- package/dist/report-render/figures/sankey.js +11 -10
- package/dist/report-render/figures/upset.d.ts +6 -6
- package/dist/report-render/figures/upset.js +7 -4
- package/dist/report-render/figures/volcano.js +12 -10
- package/dist/report-render/hybrid-svg.d.ts +4 -4
- package/dist/report-render/hybrid-svg.js +7 -5
- package/dist/report-render/number-format.d.ts +4 -4
- package/dist/report-render/number-format.js +62 -27
- package/dist/report-render/page.js +2 -1
- package/dist/report-render/provenance-data.d.ts +2 -2
- package/dist/report-render/references.d.ts +4 -4
- package/dist/report-render/render.d.ts +2 -2
- package/dist/report-render/render.js +10 -11
- package/dist/report-render/script-json.js +1 -1
- package/dist/report-render/table-data.d.ts +6 -6
- package/dist/report-render/test/options.d.ts +49 -0
- package/dist/report-render/test/options.js +143 -0
- package/dist/report-render/test/page-function.d.ts +19 -0
- package/dist/report-render/test/page-function.js +33 -0
- package/dist/report-render/types.d.ts +10 -10
- package/dist/report-render/value-bridge.d.ts +4 -4
- package/dist/report-render/value-bridge.js +27 -14
- package/dist/report-render/views/chart-view.d.ts +2 -2
- package/dist/report-render/views/chart-view.js +2 -2
- package/dist/report-render/views/lineage.d.ts +6 -6
- package/dist/report-render/views/lineage.js +2 -0
- package/dist/report-render/views/page-view.d.ts +2 -2
- package/dist/report-render/views/page-view.js +1 -0
- package/dist/report-render/views/prose.js +25 -8
- package/dist/report-render/views/references-view.js +12 -1
- package/dist/report-render/views/values.js +1 -1
- package/dist/runtime/assemble.d.ts +53 -26
- package/dist/runtime/assemble.js +103 -56
- package/dist/runtime/boot.d.ts +8 -7
- package/dist/runtime/boot.js +1 -1
- package/dist/runtime/connection-budget.d.ts +6 -6
- package/dist/runtime/connection-budget.js +1 -1
- package/dist/runtime/dbos.d.ts +29 -19
- package/dist/runtime/dbos.js +35 -20
- package/dist/runtime/result-serialization.js +18 -5
- package/dist/runtime/shutdown.d.ts +2 -2
- package/dist/sandbox/client.d.ts +7 -3
- package/dist/sandbox/cpu-files.d.ts +2 -2
- package/dist/sandbox/cpu-files.js +21 -4
- package/dist/sandbox/create-sandbox.d.ts +7 -8
- package/dist/sandbox/create-sandbox.js +6 -12
- package/dist/sandbox/docker-client.d.ts +48 -3
- package/dist/sandbox/docker-client.js +10 -6
- package/dist/sandbox/estimate-data-profile-resources.js +2 -7
- package/dist/sandbox/exec-outcome.d.ts +2 -2
- package/dist/sandbox/exec-outcome.js +1 -1
- package/dist/sandbox/exec.d.ts +10 -6
- package/dist/sandbox/exec.js +27 -12
- package/dist/sandbox/execution-id.js +14 -6
- package/dist/sandbox/farm.d.ts +2 -2
- package/dist/sandbox/farm.js +22 -27
- package/dist/sandbox/identity.d.ts +7 -0
- package/dist/sandbox/identity.js +14 -3
- package/dist/sandbox/image-packages.d.ts +26 -4
- package/dist/sandbox/image-packages.js +29 -27
- package/dist/sandbox/k8s-client.d.ts +35 -8
- package/dist/sandbox/k8s-client.js +6 -5
- package/dist/sandbox/labels.js +1 -0
- package/dist/sandbox/liveness.js +3 -1
- package/dist/sandbox/mount-plan.d.ts +10 -10
- package/dist/sandbox/mount-plan.js +13 -14
- package/dist/sandbox/notification-sweep.d.ts +4 -4
- package/dist/sandbox/notification-sweep.js +4 -7
- package/dist/sandbox/package-identity.d.ts +6 -13
- package/dist/sandbox/package-identity.js +46 -28
- package/dist/sandbox/reaper.d.ts +10 -10
- package/dist/sandbox/reaper.js +4 -6
- package/dist/sandbox/sandbox-error.d.ts +2 -9
- package/dist/sandbox/sandbox-error.js +21 -8
- package/dist/sandbox/sandbox-step-translate.d.ts +8 -5
- package/dist/sandbox/sandbox-step-translate.js +22 -8
- package/dist/sandbox/step-sandbox.d.ts +47 -0
- package/dist/sandbox/step-sandbox.js +53 -0
- package/dist/sandbox/types.d.ts +18 -19
- package/dist/sandbox/types.js +1 -1
- package/dist/schemas/artifact-manifest.d.ts +4 -4
- package/dist/schemas/data-profile-schemas.d.ts +351 -306
- package/dist/schemas/file-metadata.js +2 -4
- package/dist/schemas/plan-schemas.d.ts +79 -25
- package/dist/schemas/plan-schemas.js +1 -1
- package/dist/schemas/run-synthesis.d.ts +95 -26
- package/dist/schemas/run-synthesis.js +3 -1
- package/dist/schemas/validate-plan.d.ts +4 -4
- package/dist/schemas/validate-plan.js +17 -5
- package/dist/schemas/workflow-state.d.ts +127 -14
- package/dist/schemas/workflow-state.js +56 -2
- package/dist/state/active-turns.d.ts +36 -0
- package/dist/state/active-turns.js +67 -0
- package/dist/state/analyses-metrics.d.ts +8 -8
- package/dist/state/analyses-metrics.js +4 -4
- package/dist/state/analyses.d.ts +0 -14
- package/dist/state/analyses.js +0 -32
- package/dist/state/artifacts.d.ts +47 -18
- package/dist/state/artifacts.js +48 -7
- package/dist/state/data-profile.d.ts +2 -2
- package/dist/state/db.d.ts +12 -2
- package/dist/state/db.js +5 -0
- package/dist/state/edit-intents.d.ts +4 -0
- package/dist/state/edit-intents.js +71 -0
- package/dist/state/index.d.ts +5 -5
- package/dist/state/index.js +3 -3
- package/dist/state/init.d.ts +2 -1
- package/dist/state/init.js +5 -2
- package/dist/state/migrations/20260927120000_baseline.js +3 -1
- package/dist/state/migrations/20261026120000_add_the_edit_intents.d.ts +7 -0
- package/dist/state/migrations/20261026120000_add_the_edit_intents.js +21 -0
- package/dist/state/migrations/20261027120000_record_the_applied_memory_edits.d.ts +7 -0
- package/dist/state/migrations/20261027120000_record_the_applied_memory_edits.js +16 -0
- package/dist/state/migrations/20261027120100_store_the_authoring_results.d.ts +8 -0
- package/dist/state/migrations/20261027120100_store_the_authoring_results.js +20 -0
- package/dist/state/migrations/20261027120200_key_the_groups_of_a_turn.d.ts +7 -0
- package/dist/state/migrations/20261027120200_key_the_groups_of_a_turn.js +12 -0
- package/dist/state/migrations/20261027120300_mark_the_active_turn_of_a_thread.d.ts +7 -0
- package/dist/state/migrations/20261027120300_mark_the_active_turn_of_a_thread.js +11 -0
- package/dist/state/migrations/20261028120000_record_the_paused_work.d.ts +7 -0
- package/dist/state/migrations/20261028120000_record_the_paused_work.js +25 -0
- package/dist/state/migrations/20261028120100_end_the_suspended_runs.d.ts +8 -0
- package/dist/state/migrations/20261028120100_end_the_suspended_runs.js +13 -0
- package/dist/state/migrations/20261029120000_reference_the_run_mandate.d.ts +7 -0
- package/dist/state/migrations/20261029120000_reference_the_run_mandate.js +23 -0
- package/dist/state/migrations/20261029120100_record_the_run_session_of_a_pause.d.ts +7 -0
- package/dist/state/migrations/20261029120100_record_the_run_session_of_a_pause.js +11 -0
- package/dist/state/migrations/index.js +18 -0
- package/dist/state/paused-work.d.ts +52 -0
- package/dist/state/paused-work.js +105 -0
- package/dist/state/plans.d.ts +27 -8
- package/dist/state/plans.js +14 -11
- package/dist/state/purge-analysis.d.ts +6 -6
- package/dist/state/purge-analysis.js +10 -2
- package/dist/state/report-session-state.d.ts +43 -18
- package/dist/state/report-session-state.js +43 -4
- package/dist/state/report-versions.d.ts +16 -11
- package/dist/state/report-versions.js +5 -3
- package/dist/state/runs.d.ts +70 -25
- package/dist/state/runs.js +127 -64
- package/dist/state/schema.d.ts +18 -21
- package/dist/state/schema.js +4 -5
- package/dist/state/snapshot-parse.d.ts +2 -2
- package/dist/state/snapshot-parse.js +14 -8
- package/dist/state/step-executions.d.ts +29 -8
- package/dist/state/step-executions.js +28 -4
- package/dist/state/tool-outputs.d.ts +2 -2
- package/dist/state/tool-outputs.js +2 -1
- package/dist/state/vector-store.d.ts +16 -16
- package/dist/state/vector-store.js +11 -7
- package/dist/tasks/data-profile-absorb.d.ts +3 -3
- package/dist/tasks/data-profile-absorb.js +21 -16
- package/dist/tasks/data-profile-activity.d.ts +5 -5
- package/dist/tasks/data-profile-activity.js +5 -5
- package/dist/tasks/data-profile-index.d.ts +4 -4
- package/dist/tasks/data-profile-index.js +32 -17
- package/dist/tasks/data-profile-resolve.d.ts +8 -8
- package/dist/tasks/data-profile-resolve.js +88 -62
- package/dist/tasks/data-profile.d.ts +40 -31
- package/dist/tasks/data-profile.js +138 -95
- package/dist/tasks/extract-values.d.ts +26 -79
- package/dist/tasks/extract-values.js +48 -108
- package/dist/tasks/refresh-regulatory-corpus.d.ts +4 -20
- package/dist/tasks/refresh-regulatory-corpus.js +12 -8
- package/dist/tasks/regulatory-corpus-boot-refresh.d.ts +2 -2
- package/dist/tasks/regulatory-corpus-boot-refresh.js +12 -10
- package/dist/testing.d.ts +60 -0
- package/dist/testing.js +96 -0
- package/dist/tools/ad-hoc-router.d.ts +11 -9
- package/dist/tools/ad-hoc-router.js +80 -51
- package/dist/tools/analysis-invocation.d.ts +7 -0
- package/dist/tools/analysis-invocation.js +29 -5
- package/dist/tools/approval/contract.d.ts +8 -52
- package/dist/tools/approval/contract.js +7 -36
- package/dist/tools/approval/gateway.d.ts +27 -28
- package/dist/tools/approval/gateway.js +33 -130
- package/dist/tools/approval/queries.d.ts +6 -11
- package/dist/tools/approval/queries.js +43 -29
- package/dist/tools/approval/uuidv7.js +2 -2
- package/dist/tools/bio/chembl.d.ts +3 -3
- package/dist/tools/bio/chembl.js +10 -0
- package/dist/tools/bio/comptox.d.ts +25 -8
- package/dist/tools/bio/comptox.js +4 -2
- package/dist/tools/bio/drug-gene-interactions.d.ts +27 -17
- package/dist/tools/bio/drug-gene-interactions.js +11 -8
- package/dist/tools/bio/gene-disease-evidence.d.ts +61 -15
- package/dist/tools/bio/gene-disease-evidence.js +10 -6
- package/dist/tools/bio/gene-preclinical-profile.d.ts +11 -11
- package/dist/tools/bio/keys.d.ts +2 -2
- package/dist/tools/bio/keys.js +3 -3
- package/dist/tools/bio/lookup-annotation.d.ts +5 -5
- package/dist/tools/bio/lookup-annotation.js +3 -0
- package/dist/tools/bio/opentargets.d.ts +1 -1
- package/dist/tools/bio/opentargets.js +6 -0
- package/dist/tools/bio/pubchem.d.ts +2 -2
- package/dist/tools/bio/pubchem.js +6 -0
- package/dist/tools/bio/pubmed.d.ts +26 -16
- package/dist/tools/bio/pubmed.js +9 -3
- package/dist/tools/bio/search-clinical-trials.d.ts +4 -4
- package/dist/tools/bio/search-clinical-trials.js +5 -1
- package/dist/tools/bio/search-faers.d.ts +2 -2
- package/dist/tools/bio/search-faers.js +1 -1
- package/dist/tools/bio/search-gene.d.ts +2 -2
- package/dist/tools/bio/search-gene.js +1 -0
- package/dist/tools/bio/search-geo-datasets.d.ts +4 -4
- package/dist/tools/bio/search-geo-datasets.js +5 -5
- package/dist/tools/bio/search-interactions.d.ts +1 -1
- package/dist/tools/bio/search-patents.d.ts +28 -22
- package/dist/tools/bio/search-patents.js +20 -17
- package/dist/tools/bio/search-protein.d.ts +2 -2
- package/dist/tools/bio/search-protein.js +1 -1
- package/dist/tools/bio/search-regulatory-approvals.d.ts +64 -18
- package/dist/tools/bio/search-regulatory-approvals.js +21 -16
- package/dist/tools/bio/target-safety.d.ts +8 -8
- package/dist/tools/bio/target-safety.js +11 -6
- package/dist/tools/capability-data.d.ts +40 -0
- package/dist/tools/capability-data.js +74 -0
- package/dist/tools/define-tool.d.ts +55 -46
- package/dist/tools/define-tool.js +39 -27
- package/dist/tools/display/normalize-echart-spec.d.ts +2 -2
- package/dist/tools/display/normalize-echart-spec.js +51 -27
- package/dist/tools/display/show-user.d.ts +2 -2
- package/dist/tools/display/show-user.js +1 -1
- package/dist/tools/execute-analysis.d.ts +54 -17
- package/dist/tools/execute-analysis.js +193 -62
- package/dist/tools/knowledge/check.d.ts +182 -0
- package/dist/tools/knowledge/check.js +94 -0
- package/dist/tools/knowledge/client.d.ts +351 -0
- package/dist/tools/knowledge/client.js +319 -0
- package/dist/tools/knowledge/environment.d.ts +78 -0
- package/dist/tools/knowledge/environment.js +116 -0
- package/dist/tools/knowledge/index.d.ts +49 -0
- package/dist/tools/knowledge/index.js +70 -0
- package/dist/tools/knowledge/local-slots.d.ts +62 -0
- package/dist/tools/knowledge/local-slots.js +184 -0
- package/dist/tools/knowledge/pin.d.ts +14 -0
- package/dist/tools/knowledge/pin.js +17 -0
- package/dist/tools/knowledge/recommend.d.ts +67 -0
- package/dist/tools/knowledge/recommend.js +106 -0
- package/dist/tools/knowledge/situation.d.ts +143 -0
- package/dist/tools/knowledge/situation.js +157 -0
- package/dist/tools/knowledge/skeleton.d.ts +69 -0
- package/dist/tools/knowledge/skeleton.js +201 -0
- package/dist/tools/knowledge/template.d.ts +139 -0
- package/dist/tools/knowledge/template.js +273 -0
- package/dist/tools/lib/alphafold-client.js +2 -1
- package/dist/tools/lib/amass-client.d.ts +28 -28
- package/dist/tools/lib/amass-client.js +20 -10
- package/dist/tools/lib/api-utils.d.ts +13 -3
- package/dist/tools/lib/api-utils.js +17 -3
- package/dist/tools/lib/bgee-client.d.ts +6 -6
- package/dist/tools/lib/bgee-client.js +16 -10
- package/dist/tools/lib/cbioportal-client.d.ts +4 -4
- package/dist/tools/lib/cbioportal-client.js +9 -8
- package/dist/tools/lib/chembl-client.d.ts +14 -14
- package/dist/tools/lib/chembl-client.js +11 -4
- package/dist/tools/lib/clinical-benchmarks-client.d.ts +4 -4
- package/dist/tools/lib/clinical-benchmarks-client.js +4 -7
- package/dist/tools/lib/clinical-trials-client.d.ts +18 -18
- package/dist/tools/lib/clinical-trials-client.js +10 -10
- package/dist/tools/lib/clinvar-client.d.ts +2 -2
- package/dist/tools/lib/clinvar-client.js +6 -6
- package/dist/tools/lib/ctx-ops.d.ts +23 -23
- package/dist/tools/lib/ctx-ops.js +13 -10
- package/dist/tools/lib/dgidb-client.d.ts +6 -6
- package/dist/tools/lib/dgidb-client.js +10 -12
- package/dist/tools/lib/disgenet-client.d.ts +4 -4
- package/dist/tools/lib/ema-client.d.ts +2 -2
- package/dist/tools/lib/ensembl-client.d.ts +4 -4
- package/dist/tools/lib/ensembl-client.js +5 -4
- package/dist/tools/lib/gwas-catalog-client.d.ts +4 -4
- package/dist/tools/lib/gwas-catalog-client.js +17 -17
- package/dist/tools/lib/html-text.d.ts +6 -0
- package/dist/tools/lib/html-text.js +9 -0
- package/dist/tools/lib/identifier-resolver.d.ts +4 -4
- package/dist/tools/lib/identifier-resolver.js +7 -3
- package/dist/tools/lib/impc-client.d.ts +8 -8
- package/dist/tools/lib/impc-client.js +46 -35
- package/dist/tools/lib/iuphar-client.d.ts +2 -2
- package/dist/tools/lib/iuphar-client.js +7 -16
- package/dist/tools/lib/monarch-client.d.ts +4 -4
- package/dist/tools/lib/openfda-client.d.ts +22 -22
- package/dist/tools/lib/openfda-client.js +23 -22
- package/dist/tools/lib/opentargets-client.d.ts +12 -12
- package/dist/tools/lib/pathway-client.d.ts +4 -4
- package/dist/tools/lib/pathway-client.js +15 -19
- package/dist/tools/lib/pharmgkb-client.d.ts +2 -2
- package/dist/tools/lib/pharmgkb-client.js +1 -1
- package/dist/tools/lib/protein-family-modality.d.ts +2 -2
- package/dist/tools/lib/protein-family-modality.js +0 -2
- package/dist/tools/lib/protein-family-normalize.js +7 -0
- package/dist/tools/lib/pubchem-client.d.ts +2 -2
- package/dist/tools/lib/pubchem-client.js +1 -0
- package/dist/tools/lib/pubchem-ops.d.ts +4 -4
- package/dist/tools/lib/pubchem-ops.js +8 -0
- package/dist/tools/lib/pubmed-client.d.ts +9 -9
- package/dist/tools/lib/pubmed-client.js +1 -1
- package/dist/tools/lib/string-client.d.ts +6 -6
- package/dist/tools/lib/uniprot-client.d.ts +8 -8
- package/dist/tools/lib/uniprot-client.js +5 -1
- package/dist/tools/memory/update-working-memory.d.ts +16 -13
- package/dist/tools/memory/update-working-memory.js +21 -3
- package/dist/tools/read-tool-output.js +8 -2
- package/dist/tools/registry.d.ts +2 -2
- package/dist/tools/report-authoring/authoring-tools.d.ts +54 -23
- package/dist/tools/report-authoring/authoring-tools.js +128 -62
- package/dist/tools/report-session/derive-table.d.ts +19 -59
- package/dist/tools/report-session/derive-table.js +120 -122
- package/dist/tools/report-session/examine-page.d.ts +6 -6
- package/dist/tools/report-session/examine-page.js +14 -12
- package/dist/tools/report-session/list-artifacts.d.ts +6 -6
- package/dist/tools/report-session/list-artifacts.js +5 -5
- package/dist/tools/report-session/page-faults.d.ts +6 -6
- package/dist/tools/report-session/page-faults.js +3 -1
- package/dist/tools/report-session/preview-report.d.ts +4 -3
- package/dist/tools/report-session/preview-report.js +26 -7
- package/dist/tools/report-session/record-version.d.ts +9 -4
- package/dist/tools/report-session/record-version.js +16 -9
- package/dist/tools/report-session/session-page-publisher.d.ts +6 -6
- package/dist/tools/research/generate-analogy-report.d.ts +14 -7
- package/dist/tools/research/generate-analogy-report.js +80 -76
- package/dist/tools/research/generate-plan.d.ts +39 -16
- package/dist/tools/research/generate-plan.js +565 -338
- package/dist/tools/research/guarded-address.d.ts +20 -0
- package/dist/tools/research/guarded-address.js +149 -0
- package/dist/tools/research/inspect-data-profile.d.ts +27 -20
- package/dist/tools/research/inspect-data-profile.js +26 -25
- package/dist/tools/research/inspect-run.d.ts +54 -27
- package/dist/tools/research/inspect-run.js +50 -40
- package/dist/tools/research/literature-reviewer.d.ts +8 -7
- package/dist/tools/research/literature-reviewer.js +29 -28
- package/dist/tools/research/search-arxiv.d.ts +1 -1
- package/dist/tools/research/search-arxiv.js +1 -1
- package/dist/tools/research/search-github-repos.d.ts +10 -7
- package/dist/tools/research/search-github-repos.js +25 -22
- package/dist/tools/research/search-semantic-scholar.js +1 -1
- package/dist/tools/research/searxng-engine.d.ts +40 -0
- package/dist/tools/research/searxng-engine.js +122 -0
- package/dist/tools/research/web-fetch.d.ts +127 -0
- package/dist/tools/research/web-fetch.js +618 -0
- package/dist/tools/research/web-search.d.ts +84 -0
- package/dist/tools/research/web-search.js +117 -0
- package/dist/tools/sandbox/link-packages.d.ts +11 -7
- package/dist/tools/sandbox/link-packages.js +11 -8
- package/dist/tools/sandbox/list-available-packages.d.ts +24 -12
- package/dist/tools/sandbox/list-available-packages.js +43 -29
- package/dist/tools/sandbox/list-available-refs.d.ts +38 -14
- package/dist/tools/sandbox/list-available-refs.js +119 -37
- package/dist/tools/sandbox/report-blocker.d.ts +30 -37
- package/dist/tools/sandbox/report-blocker.js +22 -68
- package/dist/tools/sandbox/skills.d.ts +16 -12
- package/dist/tools/sandbox/skills.js +16 -12
- package/dist/tools/sandbox/submit-file-metadata.d.ts +12 -9
- package/dist/tools/sandbox/submit-file-metadata.js +18 -21
- package/dist/tools/start-report-session.d.ts +13 -5
- package/dist/tools/start-report-session.js +35 -8
- package/dist/tools/terminal-text.d.ts +14 -0
- package/dist/tools/terminal-text.js +51 -0
- package/dist/tools/workspace/decision-record.d.ts +81 -0
- package/dist/tools/workspace/decision-record.js +127 -0
- package/dist/tools/workspace/edit-file.d.ts +59 -18
- package/dist/tools/workspace/edit-file.js +98 -15
- package/dist/tools/workspace/execute-command.d.ts +31 -12
- package/dist/tools/workspace/execute-command.js +37 -8
- package/dist/tools/workspace/file-stat.d.ts +6 -3
- package/dist/tools/workspace/grep.d.ts +10 -7
- package/dist/tools/workspace/grep.js +9 -3
- package/dist/tools/workspace/index.d.ts +1 -0
- package/dist/tools/workspace/index.js +1 -0
- package/dist/tools/workspace/list-files.d.ts +6 -3
- package/dist/tools/workspace/mutator.d.ts +28 -15
- package/dist/tools/workspace/mutator.js +107 -53
- package/dist/tools/workspace/read-file.d.ts +8 -5
- package/dist/tools/workspace/result-bounds.d.ts +5 -5
- package/dist/tools/workspace/result-bounds.js +4 -2
- package/dist/tools/workspace/run-exec.d.ts +2 -2
- package/dist/tools/workspace/run-exec.js +3 -3
- package/dist/tools/workspace/scan-inputs.d.ts +8 -5
- package/dist/tools/workspace/scan-inputs.js +17 -5
- package/dist/tools/workspace/show-file.d.ts +1 -1
- package/dist/tools/workspace/show-file.js +2 -1
- package/dist/tools/workspace/show-plan.d.ts +8 -5
- package/dist/tools/workspace/show-plan.js +9 -8
- package/dist/tools/workspace/workspace-search.d.ts +41 -13
- package/dist/tools/workspace/workspace-search.js +27 -14
- package/dist/tools/workspace/write-file.d.ts +9 -7
- package/dist/workflows/execute-analysis-scheduler.d.ts +9 -9
- package/dist/workflows/execute-analysis-scheduler.js +6 -3
- package/dist/workflows/execute-analysis.d.ts +100 -76
- package/dist/workflows/execute-analysis.js +380 -247
- package/dist/workflows/pause.d.ts +71 -0
- package/dist/workflows/pause.js +173 -0
- package/dist/workflows/sandbox-step.d.ts +50 -61
- package/dist/workflows/sandbox-step.js +99 -106
- package/dist/workflows/test/sql-writes.d.ts +21 -0
- package/dist/workflows/test/sql-writes.js +36 -0
- package/dist/workspace/filesystem.d.ts +6 -6
- package/dist/workspace/filesystem.js +10 -8
- package/dist/workspace/paths.d.ts +1 -1
- package/dist/workspace/paths.js +15 -4
- package/dist/workspace/search-config.d.ts +2 -2
- package/dist/workspace/search-config.js +1 -1
- package/package.json +25 -22
- package/dist/loop/continue-agent.d.ts +0 -40
- package/dist/loop/continue-agent.js +0 -38
- package/dist/loop/genai-spans.d.ts +0 -47
- package/dist/loop/genai-spans.js +0 -134
- package/dist/loop/run-agent.d.ts +0 -236
- package/dist/loop/run-agent.js +0 -1110
- package/dist/loop/run-step.d.ts +0 -29
- package/dist/loop/run-step.js +0 -34
- package/dist/loop/run-to-terminal.d.ts +0 -66
- package/dist/loop/run-to-terminal.js +0 -90
- package/dist/loop/tool-mask.d.ts +0 -23
- package/dist/loop/tool-mask.js +0 -46
- package/dist/providers/streaming-chat.d.ts +0 -32
- package/dist/providers/streaming-chat.js +0 -91
- package/dist/tasks/derive-table-exec.d.ts +0 -54
- package/dist/tasks/derive-table-exec.js +0 -86
- package/dist/workflows/suspension.d.ts +0 -32
- package/dist/workflows/suspension.js +0 -38
|
@@ -24,7 +24,9 @@
|
|
|
24
24
|
* — an accession of that corpus — marks the others `not_applicable` rather
|
|
25
25
|
* than sending them a query they cannot read.
|
|
26
26
|
*/
|
|
27
|
+
import { z } from "zod";
|
|
27
28
|
import type { Logger } from "../../lib/logger.js";
|
|
29
|
+
import { type Tool } from "../define-tool.js";
|
|
28
30
|
import { type MutationFrequency } from "../lib/cbioportal-client.js";
|
|
29
31
|
import { type ClinvarVariant } from "../lib/clinvar-client.js";
|
|
30
32
|
import { type Gda } from "../lib/disgenet-client.js";
|
|
@@ -39,14 +41,68 @@ type QueryType = (typeof QUERY_TYPES)[number];
|
|
|
39
41
|
* normal states the caller must be able to tell apart from genuine no-data —
|
|
40
42
|
* otherwise an unkeyed DisGeNET reads as "no genetic support".
|
|
41
43
|
*/
|
|
42
|
-
|
|
44
|
+
type SourceOutcome = {
|
|
43
45
|
source: Source;
|
|
44
46
|
status: "ok" | "no_data" | "unavailable" | "not_applicable";
|
|
45
47
|
returned: number;
|
|
46
48
|
totalFound?: number;
|
|
47
49
|
detail?: string;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
+
};
|
|
51
|
+
declare const inputSchema: z.ZodObject<{
|
|
52
|
+
query: z.ZodString;
|
|
53
|
+
queryType: z.ZodEnum<{
|
|
54
|
+
clinvar_accession: "clinvar_accession";
|
|
55
|
+
disease: "disease";
|
|
56
|
+
gene: "gene";
|
|
57
|
+
gwas_study: "gwas_study";
|
|
58
|
+
variant: "variant";
|
|
59
|
+
}>;
|
|
60
|
+
sources: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
61
|
+
cbioportal: "cbioportal";
|
|
62
|
+
clinvar: "clinvar";
|
|
63
|
+
disgenet: "disgenet";
|
|
64
|
+
gwas: "gwas";
|
|
65
|
+
}>>>;
|
|
66
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
67
|
+
pValueThreshold: z.ZodOptional<z.ZodNumber>;
|
|
68
|
+
minScore: z.ZodOptional<z.ZodNumber>;
|
|
69
|
+
disgenetSource: z.ZodOptional<z.ZodEnum<{
|
|
70
|
+
ALL: "ALL";
|
|
71
|
+
BIOBANK: "BIOBANK";
|
|
72
|
+
CHEMBL: "CHEMBL";
|
|
73
|
+
CLINGEN: "CLINGEN";
|
|
74
|
+
CLINICALTRIALS: "CLINICALTRIALS";
|
|
75
|
+
CLINPGX: "CLINPGX";
|
|
76
|
+
CLINVAR: "CLINVAR";
|
|
77
|
+
CURATED: "CURATED";
|
|
78
|
+
FINNGEN: "FINNGEN";
|
|
79
|
+
GENCC: "GENCC";
|
|
80
|
+
GWASCAT: "GWASCAT";
|
|
81
|
+
HPO: "HPO";
|
|
82
|
+
INFERRED: "INFERRED";
|
|
83
|
+
MGD_HUMAN: "MGD_HUMAN";
|
|
84
|
+
MGD_MOUSE: "MGD_MOUSE";
|
|
85
|
+
MODELS: "MODELS";
|
|
86
|
+
ORPHANET: "ORPHANET";
|
|
87
|
+
PHEWASCAT: "PHEWASCAT";
|
|
88
|
+
PSYGENET: "PSYGENET";
|
|
89
|
+
RGD_HUMAN: "RGD_HUMAN";
|
|
90
|
+
RGD_RAT: "RGD_RAT";
|
|
91
|
+
TEXTMINING_HUMAN: "TEXTMINING_HUMAN";
|
|
92
|
+
TEXTMINING_MODELS: "TEXTMINING_MODELS";
|
|
93
|
+
UKBIOBANK: "UKBIOBANK";
|
|
94
|
+
UNIPROT: "UNIPROT";
|
|
95
|
+
}>>;
|
|
96
|
+
clinicalSignificance: z.ZodOptional<z.ZodEnum<{
|
|
97
|
+
benign: "benign";
|
|
98
|
+
"likely-benign": "likely-benign";
|
|
99
|
+
"likely-pathogenic": "likely-pathogenic";
|
|
100
|
+
pathogenic: "pathogenic";
|
|
101
|
+
uncertain: "uncertain";
|
|
102
|
+
}>>;
|
|
103
|
+
informativeOnly: z.ZodOptional<z.ZodBoolean>;
|
|
104
|
+
}, z.core.$strip>;
|
|
105
|
+
type GeneDiseaseEvidenceOutput = {
|
|
50
106
|
query: string;
|
|
51
107
|
queryType: QueryType;
|
|
52
108
|
perSource: SourceOutcome[];
|
|
@@ -54,20 +110,10 @@ interface GeneDiseaseEvidenceOutput {
|
|
|
54
110
|
disgenet?: Gda[];
|
|
55
111
|
clinvar?: ClinvarVariant[];
|
|
56
112
|
cbioportal?: MutationFrequency[];
|
|
57
|
-
}
|
|
113
|
+
};
|
|
58
114
|
export declare function createGeneDiseaseEvidenceTool(deps: {
|
|
59
115
|
ncbiApiKey?: string;
|
|
60
116
|
disgenetApiKey: string;
|
|
61
117
|
logger?: Logger;
|
|
62
|
-
}):
|
|
63
|
-
query: string;
|
|
64
|
-
queryType: "gene" | "disease" | "variant" | "gwas_study" | "clinvar_accession";
|
|
65
|
-
sources?: ("clinvar" | "gwas" | "disgenet" | "cbioportal")[] | undefined;
|
|
66
|
-
limit?: number | undefined;
|
|
67
|
-
pValueThreshold?: number | undefined;
|
|
68
|
-
minScore?: number | undefined;
|
|
69
|
-
disgenetSource?: "ALL" | "BIOBANK" | "CHEMBL" | "CLINICALTRIALS" | "CLINGEN" | "CLINPGX" | "CLINVAR" | "CURATED" | "FINNGEN" | "GENCC" | "GWASCAT" | "HPO" | "INFERRED" | "MGD_HUMAN" | "MGD_MOUSE" | "MODELS" | "ORPHANET" | "PHEWASCAT" | "PSYGENET" | "RGD_HUMAN" | "RGD_RAT" | "TEXTMINING_HUMAN" | "TEXTMINING_MODELS" | "UKBIOBANK" | "UNIPROT" | undefined;
|
|
70
|
-
clinicalSignificance?: "pathogenic" | "likely-pathogenic" | "benign" | "likely-benign" | "uncertain" | undefined;
|
|
71
|
-
informativeOnly?: boolean | undefined;
|
|
72
|
-
}, GeneDiseaseEvidenceOutput>;
|
|
118
|
+
}): Tool<z.infer<typeof inputSchema>, GeneDiseaseEvidenceOutput>;
|
|
73
119
|
export {};
|
|
@@ -24,6 +24,8 @@
|
|
|
24
24
|
* — an accession of that corpus — marks the others `not_applicable` rather
|
|
25
25
|
* than sending them a query they cannot read.
|
|
26
26
|
*/
|
|
27
|
+
import { errorMessageOf } from "../../lib/thrown.js";
|
|
28
|
+
import { textOf } from "../../lib/unknown-text.js";
|
|
27
29
|
import { ok } from "neverthrow";
|
|
28
30
|
import { z } from "zod";
|
|
29
31
|
import { defineTool } from "../define-tool.js";
|
|
@@ -134,7 +136,7 @@ async function runSource(source, fetch) {
|
|
|
134
136
|
source,
|
|
135
137
|
status: records.length > 0 ? "ok" : "no_data",
|
|
136
138
|
returned: records.length,
|
|
137
|
-
|
|
139
|
+
totalFound,
|
|
138
140
|
},
|
|
139
141
|
records,
|
|
140
142
|
};
|
|
@@ -145,7 +147,7 @@ async function runSource(source, fetch) {
|
|
|
145
147
|
source,
|
|
146
148
|
status: "unavailable",
|
|
147
149
|
returned: 0,
|
|
148
|
-
detail: error
|
|
150
|
+
detail: errorMessageOf(error) ?? textOf(error),
|
|
149
151
|
},
|
|
150
152
|
records: [],
|
|
151
153
|
};
|
|
@@ -190,9 +192,11 @@ export function createGeneDiseaseEvidenceTool(deps) {
|
|
|
190
192
|
selected.includes("gwas")
|
|
191
193
|
? runSource("gwas", async () => {
|
|
192
194
|
const searchType = GWAS_SEARCH_TYPES[input.queryType];
|
|
195
|
+
if (searchType === undefined)
|
|
196
|
+
throw new Error(`the gwas source has no search type for "${input.queryType}"`);
|
|
193
197
|
const res = await searchGwasCatalog(input.query, searchType, {
|
|
194
198
|
limit,
|
|
195
|
-
|
|
199
|
+
pValueThreshold: input.pValueThreshold,
|
|
196
200
|
});
|
|
197
201
|
return { records: res.associations, totalFound: res.totalFound };
|
|
198
202
|
})
|
|
@@ -203,8 +207,8 @@ export function createGeneDiseaseEvidenceTool(deps) {
|
|
|
203
207
|
throw new Error("DISGENET_API_KEY is not configured");
|
|
204
208
|
return await searchDisgenet(deps.disgenetApiKey, input.query, input.queryType === "gene" ? "gene" : "disease", {
|
|
205
209
|
limit,
|
|
206
|
-
|
|
207
|
-
|
|
210
|
+
minScore: input.minScore,
|
|
211
|
+
source: input.disgenetSource,
|
|
208
212
|
}, deps.logger);
|
|
209
213
|
})
|
|
210
214
|
: null,
|
|
@@ -212,7 +216,7 @@ export function createGeneDiseaseEvidenceTool(deps) {
|
|
|
212
216
|
? runSource("clinvar", async () => {
|
|
213
217
|
const res = await searchClinvar(deps.ncbiApiKey, input.query, {
|
|
214
218
|
limit,
|
|
215
|
-
|
|
219
|
+
clinicalSignificance: input.clinicalSignificance,
|
|
216
220
|
});
|
|
217
221
|
const variants = (input.informativeOnly ?? true) ? filterInformative(res.variants) : res.variants;
|
|
218
222
|
return { records: variants, totalFound: res.totalFound };
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
import { type SupportedSpecies, type TissueRow } from "../lib/bgee-client.js";
|
|
18
18
|
import { type MpTerm, type ViabilityCall, type ViabilityCategory } from "../lib/impc-client.js";
|
|
19
19
|
import { type MonarchPhenotypeAssociation } from "../lib/monarch-client.js";
|
|
20
|
-
|
|
20
|
+
type BoundedSpeciesEntry = {
|
|
21
21
|
species: SupportedSpecies;
|
|
22
22
|
taxonId: number;
|
|
23
23
|
ensemblId: string;
|
|
@@ -26,19 +26,19 @@ interface BoundedSpeciesEntry {
|
|
|
26
26
|
tissueCount: number;
|
|
27
27
|
/** Tissues that passed `minRank`, before `tissueLimit`. */
|
|
28
28
|
tissuesAboveMinRank: number;
|
|
29
|
-
}
|
|
30
|
-
|
|
29
|
+
};
|
|
30
|
+
type ExpressionHalf = {
|
|
31
31
|
humanEnsemblId: string | null;
|
|
32
32
|
bySpecies: BoundedSpeciesEntry[];
|
|
33
33
|
notFound: string[];
|
|
34
|
-
}
|
|
34
|
+
};
|
|
35
35
|
/**
|
|
36
36
|
* One curated human phenotype. The HPO ancestor closure of the source record
|
|
37
37
|
* is dropped here: it exists so a dossier collector can resolve an organ system
|
|
38
38
|
* by identifier, and it runs to hundreds of ids that a reader never uses.
|
|
39
39
|
*/
|
|
40
40
|
type HumanPhenotypeTerm = Omit<MonarchPhenotypeAssociation, "ancestorIds">;
|
|
41
|
-
|
|
41
|
+
type HumanPhenotypeHalf = {
|
|
42
42
|
/** The curie Monarch was queried by, e.g. `HGNC:1100`; null when the symbol did not anchor on HGNC. */
|
|
43
43
|
geneCurie: string | null;
|
|
44
44
|
hpoTerms: HumanPhenotypeTerm[];
|
|
@@ -46,8 +46,8 @@ interface HumanPhenotypeHalf {
|
|
|
46
46
|
phenotypeCount: number;
|
|
47
47
|
/** True when `phenotypeLimit` trimmed `hpoTerms`; `phenotypeCount` is the real total. */
|
|
48
48
|
phenotypesTrimmed: boolean;
|
|
49
|
-
}
|
|
50
|
-
|
|
49
|
+
};
|
|
50
|
+
type KnockoutHalf = {
|
|
51
51
|
mouseMarkerSymbol: string | null;
|
|
52
52
|
mgiAccessionId: string | null;
|
|
53
53
|
viability: ViabilityCategory;
|
|
@@ -58,7 +58,7 @@ interface KnockoutHalf {
|
|
|
58
58
|
phenotypeCount: number;
|
|
59
59
|
/** True when `phenotypeLimit` trimmed `mpTerms`; `phenotypeCount` is the real total. */
|
|
60
60
|
phenotypesTrimmed: boolean;
|
|
61
|
-
}
|
|
61
|
+
};
|
|
62
62
|
type PreclinicalOutput = {
|
|
63
63
|
geneSymbol: string;
|
|
64
64
|
expression?: ExpressionHalf;
|
|
@@ -67,9 +67,9 @@ type PreclinicalOutput = {
|
|
|
67
67
|
};
|
|
68
68
|
export declare const genePreclinicalProfileTool: import("../define-tool.js").Tool<{
|
|
69
69
|
geneSymbol: string;
|
|
70
|
-
include?: ("
|
|
71
|
-
species?: ("
|
|
72
|
-
minRank?: "
|
|
70
|
+
include?: ("expression" | "knockout" | "phenotypes")[] | undefined;
|
|
71
|
+
species?: ("canis_lupus_familiaris" | "homo_sapiens" | "macaca_mulatta" | "mus_musculus" | "rattus_norvegicus")[] | undefined;
|
|
72
|
+
minRank?: "absent" | "high" | "low" | "medium" | undefined;
|
|
73
73
|
tissueLimit?: number | undefined;
|
|
74
74
|
phenotypeLimit?: number | undefined;
|
|
75
75
|
}, PreclinicalOutput>;
|
package/dist/tools/bio/keys.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ import type { Tool } from "../define-tool.js";
|
|
|
7
7
|
* may be empty when its source is unconfigured — the tool surfaces the
|
|
8
8
|
* resulting auth failure as a normal tool error.
|
|
9
9
|
*/
|
|
10
|
-
export
|
|
10
|
+
export type BioToolKeys = {
|
|
11
11
|
readonly drugbank: string;
|
|
12
12
|
readonly disgenet: string;
|
|
13
13
|
readonly epaCcte: string;
|
|
@@ -15,7 +15,7 @@ export interface BioToolKeys {
|
|
|
15
15
|
readonly github?: string;
|
|
16
16
|
readonly semanticScholar?: string;
|
|
17
17
|
readonly amass?: string;
|
|
18
|
-
}
|
|
18
|
+
};
|
|
19
19
|
/**
|
|
20
20
|
* The NCBI-backed literature tool, built from the shared key slice.
|
|
21
21
|
*
|
package/dist/tools/bio/keys.js
CHANGED
|
@@ -31,12 +31,12 @@ export function createChemDbTools(keys, deps = {}) {
|
|
|
31
31
|
return {
|
|
32
32
|
geneDiseaseEvidence: createGeneDiseaseEvidenceTool({
|
|
33
33
|
disgenetApiKey: keys.disgenet,
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
ncbiApiKey: keys.ncbi,
|
|
35
|
+
logger: deps.logger,
|
|
36
36
|
}),
|
|
37
37
|
drugGeneInteractions: createDrugGeneInteractionsTool({
|
|
38
38
|
drugbankApiKey: keys.drugbank,
|
|
39
|
-
|
|
39
|
+
logger: deps.logger,
|
|
40
40
|
}),
|
|
41
41
|
comptox: createComptoxTool({ apiKey: keys.epaCcte }),
|
|
42
42
|
};
|
|
@@ -20,20 +20,20 @@
|
|
|
20
20
|
*/
|
|
21
21
|
import { z } from "zod";
|
|
22
22
|
import { type Pathway } from "../lib/pathway-client.js";
|
|
23
|
-
|
|
23
|
+
type GoTerm = {
|
|
24
24
|
id: string;
|
|
25
25
|
name: string;
|
|
26
26
|
definition?: string;
|
|
27
27
|
aspect?: string;
|
|
28
|
-
}
|
|
29
|
-
|
|
28
|
+
};
|
|
29
|
+
type GoAnnotation = {
|
|
30
30
|
geneProductId: string;
|
|
31
31
|
goId: string;
|
|
32
32
|
goName: string;
|
|
33
33
|
aspect?: string;
|
|
34
34
|
evidenceCode?: string;
|
|
35
35
|
qualifier?: string;
|
|
36
|
-
}
|
|
36
|
+
};
|
|
37
37
|
export declare const GoTermResponseSchema: z.ZodPipe<z.ZodObject<{
|
|
38
38
|
results: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
39
39
|
id: z.ZodOptional<z.ZodString>;
|
|
@@ -79,7 +79,7 @@ type AnnotationOutput = {
|
|
|
79
79
|
pathways: Pathway[];
|
|
80
80
|
};
|
|
81
81
|
export declare const lookupAnnotationTool: import("../define-tool.js").Tool<{
|
|
82
|
-
vocabulary: "
|
|
82
|
+
vocabulary: "go" | "kegg" | "pathways" | "reactome";
|
|
83
83
|
query?: string | undefined;
|
|
84
84
|
pathwayId?: string | undefined;
|
|
85
85
|
goId?: string | undefined;
|
|
@@ -103,6 +103,7 @@ const inputSchema = z
|
|
|
103
103
|
"or a KEGG pathway ID ('hsa04010'). The prefix picks the database, so `vocabulary` and `organism` are ignored for it."),
|
|
104
104
|
goId: z
|
|
105
105
|
.string()
|
|
106
|
+
// oxlint-disable-next-line eslint-js/no-restricted-syntax -- the GO term id shape: the GO: prefix plus seven digits.
|
|
106
107
|
.regex(/^GO:\d{7}$/)
|
|
107
108
|
.optional()
|
|
108
109
|
.describe("'go' only. A specific GO term ID, e.g. 'GO:0008150'."),
|
|
@@ -163,6 +164,8 @@ export const lookupAnnotationTool = defineTool({
|
|
|
163
164
|
const pathway = await getPathwayById(pathwayId);
|
|
164
165
|
return ok({ pathways: pathway ? [pathway] : [] });
|
|
165
166
|
}
|
|
167
|
+
if (query === undefined)
|
|
168
|
+
throw new Error("the pathways lookup requires query");
|
|
166
169
|
const pathways = await searchPathways(query, {
|
|
167
170
|
source: vocabulary === "pathways" ? "both" : vocabulary,
|
|
168
171
|
organism: organism ?? "hsa",
|
|
@@ -33,7 +33,7 @@ type OpenTargetsOutput = {
|
|
|
33
33
|
candidates: DiseaseCandidate[];
|
|
34
34
|
};
|
|
35
35
|
export declare const openTargetsTool: import("../define-tool.js").Tool<{
|
|
36
|
-
action: "
|
|
36
|
+
action: "disease" | "resolve_disease" | "target";
|
|
37
37
|
ensemblId?: string | undefined;
|
|
38
38
|
efoId?: string | undefined;
|
|
39
39
|
diseaseName?: string | undefined;
|
|
@@ -94,14 +94,20 @@ export const openTargetsTool = defineTool({
|
|
|
94
94
|
const limit = input.limit ?? DEFAULT_LIMIT;
|
|
95
95
|
switch (input.action) {
|
|
96
96
|
case "target": {
|
|
97
|
+
if (input.ensemblId === undefined)
|
|
98
|
+
throw new Error("target requires ensemblId");
|
|
97
99
|
const targetInfo = await searchTargetAssociations(input.ensemblId, limit);
|
|
98
100
|
return ok({ targetInfo, associations: targetInfo?.associations ?? [] });
|
|
99
101
|
}
|
|
100
102
|
case "disease": {
|
|
103
|
+
if (input.efoId === undefined)
|
|
104
|
+
throw new Error("disease requires efoId");
|
|
101
105
|
const associations = await searchDiseaseAssociations(input.efoId, limit);
|
|
102
106
|
return ok({ associations });
|
|
103
107
|
}
|
|
104
108
|
case "resolve_disease": {
|
|
109
|
+
if (input.diseaseName === undefined)
|
|
110
|
+
throw new Error("resolve_disease requires diseaseName");
|
|
105
111
|
const { total, candidates } = await searchDiseases(input.diseaseName, limit);
|
|
106
112
|
return ok({ totalFound: total, candidates });
|
|
107
113
|
}
|
|
@@ -19,9 +19,9 @@ type PubchemOutput = {
|
|
|
19
19
|
assays: PubChemAssay[];
|
|
20
20
|
};
|
|
21
21
|
export declare const pubchemTool: import("../define-tool.js").Tool<{
|
|
22
|
-
action: "
|
|
22
|
+
action: "assays" | "compound" | "crossrefs";
|
|
23
23
|
query?: string | undefined;
|
|
24
|
-
searchBy?: "
|
|
24
|
+
searchBy?: "cid" | "inchi" | "inchikey" | "name" | "smiles" | undefined;
|
|
25
25
|
cid?: number | undefined;
|
|
26
26
|
activeOnly?: boolean | undefined;
|
|
27
27
|
limit?: number | undefined;
|
|
@@ -87,10 +87,16 @@ export const pubchemTool = defineTool({
|
|
|
87
87
|
execute: async (input) => {
|
|
88
88
|
switch (input.action) {
|
|
89
89
|
case "compound":
|
|
90
|
+
if (input.query === undefined || input.searchBy === undefined)
|
|
91
|
+
throw new Error("compound requires query and searchBy");
|
|
90
92
|
return ok({ results: await fetchPubchemCompounds(input.query, input.searchBy) });
|
|
91
93
|
case "crossrefs":
|
|
94
|
+
if (input.cid === undefined)
|
|
95
|
+
throw new Error("crossrefs requires cid");
|
|
92
96
|
return ok({ crossRefs: await fetchPubchemCrossRefs(input.cid) });
|
|
93
97
|
case "assays":
|
|
98
|
+
if (input.cid === undefined)
|
|
99
|
+
throw new Error("assays requires cid");
|
|
94
100
|
return ok({
|
|
95
101
|
assays: await fetchPubchemAssays(input.cid, {
|
|
96
102
|
activeOnly: input.activeOnly ?? true,
|
|
@@ -24,7 +24,32 @@
|
|
|
24
24
|
* sections up to a character budget and always returns the article's full
|
|
25
25
|
* section outline so a follow-up can name what it wants.
|
|
26
26
|
*/
|
|
27
|
+
import { z } from "zod";
|
|
28
|
+
import { type Tool } from "../define-tool.js";
|
|
27
29
|
import { type BoundedArticleDetail, type BoundedFullText, type PubMedSummary } from "../lib/pubmed-client.js";
|
|
30
|
+
declare const inputSchema: z.ZodObject<{
|
|
31
|
+
action: z.ZodEnum<{
|
|
32
|
+
details: "details";
|
|
33
|
+
fulltext: "fulltext";
|
|
34
|
+
search: "search";
|
|
35
|
+
}>;
|
|
36
|
+
query: z.ZodOptional<z.ZodString>;
|
|
37
|
+
maxResults: z.ZodOptional<z.ZodNumber>;
|
|
38
|
+
sort: z.ZodOptional<z.ZodEnum<{
|
|
39
|
+
date: "date";
|
|
40
|
+
relevance: "relevance";
|
|
41
|
+
}>>;
|
|
42
|
+
dateRange: z.ZodOptional<z.ZodObject<{
|
|
43
|
+
from: z.ZodString;
|
|
44
|
+
to: z.ZodString;
|
|
45
|
+
}, z.core.$strip>>;
|
|
46
|
+
pmids: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
47
|
+
maxAuthors: z.ZodOptional<z.ZodNumber>;
|
|
48
|
+
maxMeshTerms: z.ZodOptional<z.ZodNumber>;
|
|
49
|
+
pmcId: z.ZodOptional<z.ZodString>;
|
|
50
|
+
sections: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
51
|
+
maxChars: z.ZodOptional<z.ZodNumber>;
|
|
52
|
+
}, z.core.$strip>;
|
|
28
53
|
type PubMedOutput = {
|
|
29
54
|
totalFound: number;
|
|
30
55
|
results: PubMedSummary[];
|
|
@@ -40,20 +65,5 @@ type PubMedOutput = {
|
|
|
40
65
|
} & Omit<BoundedFullText, "sections">);
|
|
41
66
|
export declare function createPubMedTool(deps: {
|
|
42
67
|
ncbiApiKey?: string;
|
|
43
|
-
}):
|
|
44
|
-
action: "search" | "details" | "fulltext";
|
|
45
|
-
query?: string | undefined;
|
|
46
|
-
maxResults?: number | undefined;
|
|
47
|
-
sort?: "date" | "relevance" | undefined;
|
|
48
|
-
dateRange?: {
|
|
49
|
-
from: string;
|
|
50
|
-
to: string;
|
|
51
|
-
} | undefined;
|
|
52
|
-
pmids?: string[] | undefined;
|
|
53
|
-
maxAuthors?: number | undefined;
|
|
54
|
-
maxMeshTerms?: number | undefined;
|
|
55
|
-
pmcId?: string | undefined;
|
|
56
|
-
sections?: string[] | undefined;
|
|
57
|
-
maxChars?: number | undefined;
|
|
58
|
-
}, PubMedOutput>;
|
|
68
|
+
}): Tool<z.infer<typeof inputSchema>, PubMedOutput>;
|
|
59
69
|
export {};
|
package/dist/tools/bio/pubmed.js
CHANGED
|
@@ -150,12 +150,16 @@ export function createPubMedTool(deps) {
|
|
|
150
150
|
execute: async (input, context) => {
|
|
151
151
|
switch (input.action) {
|
|
152
152
|
case "search":
|
|
153
|
+
if (input.query === undefined)
|
|
154
|
+
throw new Error("search requires query");
|
|
153
155
|
return ok(await searchPubmed(deps.ncbiApiKey, input.query, {
|
|
154
156
|
maxResults: input.maxResults ?? DEFAULTS.searchResults,
|
|
155
|
-
|
|
156
|
-
|
|
157
|
+
sort: input.sort,
|
|
158
|
+
dateRange: input.dateRange,
|
|
157
159
|
}, context.signal));
|
|
158
160
|
case "details": {
|
|
161
|
+
if (input.pmids === undefined)
|
|
162
|
+
throw new Error("details requires pmids");
|
|
159
163
|
const { articles, notFound } = await getArticleDetails(deps.ncbiApiKey, input.pmids, context.signal);
|
|
160
164
|
return ok({
|
|
161
165
|
articles: boundArticleDetails(articles, {
|
|
@@ -166,8 +170,10 @@ export function createPubMedTool(deps) {
|
|
|
166
170
|
});
|
|
167
171
|
}
|
|
168
172
|
case "fulltext": {
|
|
173
|
+
if (input.pmcId === undefined)
|
|
174
|
+
throw new Error("fulltext requires pmcId");
|
|
169
175
|
const parsed = await getArticleFullText(deps.ncbiApiKey, input.pmcId, {
|
|
170
|
-
|
|
176
|
+
sections: input.sections ? input.sections : undefined,
|
|
171
177
|
maxChars: input.maxChars ?? DEFAULTS.maxChars,
|
|
172
178
|
}, context.signal);
|
|
173
179
|
// "Not open-access" is an expected outcome — a data variant, not an error.
|
|
@@ -20,12 +20,12 @@ type ClinicalTrialsOutput = {
|
|
|
20
20
|
trials: TrialListRow[];
|
|
21
21
|
};
|
|
22
22
|
export declare const searchClinicalTrialsTool: import("../define-tool.js").Tool<{
|
|
23
|
-
action: "
|
|
24
|
-
limit: number;
|
|
25
|
-
includeSummaries: boolean;
|
|
23
|
+
action: "details" | "search";
|
|
26
24
|
query?: string | undefined;
|
|
27
25
|
nctId?: string | undefined;
|
|
28
26
|
phase?: "EARLY_PHASE1" | "PHASE1" | "PHASE2" | "PHASE3" | "PHASE4" | undefined;
|
|
29
|
-
status?: "
|
|
27
|
+
status?: "ACTIVE_NOT_RECRUITING" | "COMPLETED" | "NOT_YET_RECRUITING" | "RECRUITING" | "SUSPENDED" | "TERMINATED" | "WITHDRAWN" | undefined;
|
|
28
|
+
limit: number;
|
|
29
|
+
includeSummaries: boolean;
|
|
30
30
|
}, ClinicalTrialsOutput>;
|
|
31
31
|
export {};
|
|
@@ -77,10 +77,14 @@ export const searchClinicalTrialsTool = defineTool({
|
|
|
77
77
|
path: ["nctId"],
|
|
78
78
|
}),
|
|
79
79
|
describeCall: "none",
|
|
80
|
-
execute: async ({ action
|
|
80
|
+
execute: async ({ action, query, nctId, phase, status, limit, includeSummaries }) => {
|
|
81
81
|
if (action === "details") {
|
|
82
|
+
if (nctId === undefined)
|
|
83
|
+
throw new Error("details requires nctId");
|
|
82
84
|
return ok({ trial: await getTrialDetails(nctId) });
|
|
83
85
|
}
|
|
86
|
+
if (query === undefined)
|
|
87
|
+
throw new Error("search requires query");
|
|
84
88
|
const result = await searchTrials(query, { phase, status, limit });
|
|
85
89
|
const trials = includeSummaries
|
|
86
90
|
? result.trials
|
|
@@ -23,9 +23,9 @@ type FaersOutput = {
|
|
|
23
23
|
labels: DrugLabelAction[];
|
|
24
24
|
};
|
|
25
25
|
export declare const searchFaersTool: import("../define-tool.js").Tool<{
|
|
26
|
-
action: "
|
|
26
|
+
action: "adverse_events" | "label" | "seriousness";
|
|
27
27
|
drugName: string;
|
|
28
|
-
serious: boolean;
|
|
29
28
|
limit?: number | undefined;
|
|
29
|
+
serious: boolean;
|
|
30
30
|
}, FaersOutput>;
|
|
31
31
|
export {};
|
|
@@ -71,7 +71,7 @@ export const searchFaersTool = defineTool({
|
|
|
71
71
|
path: ["limit"],
|
|
72
72
|
}),
|
|
73
73
|
describeCall: "none",
|
|
74
|
-
execute: async ({ action
|
|
74
|
+
execute: async ({ action, drugName, limit, serious }) => {
|
|
75
75
|
switch (action) {
|
|
76
76
|
case "seriousness":
|
|
77
77
|
return ok({ seriousness: await getFaersSeriousness(drugName) });
|
|
@@ -11,10 +11,10 @@
|
|
|
11
11
|
*/
|
|
12
12
|
import { type GeneInfo } from "../lib/ensembl-client.js";
|
|
13
13
|
/** One input that was not a symbol, beside the approved symbol it became. */
|
|
14
|
-
|
|
14
|
+
type ResolvedIdentifier = {
|
|
15
15
|
input: string;
|
|
16
16
|
symbol: string;
|
|
17
|
-
}
|
|
17
|
+
};
|
|
18
18
|
export declare const searchGeneTool: import("../define-tool.js").Tool<{
|
|
19
19
|
identifiers: string[];
|
|
20
20
|
species: string;
|
|
@@ -24,6 +24,7 @@ const IDENTIFIERS_LISTED_IN_FULL = 8;
|
|
|
24
24
|
* The identifier spaces that Ensembl cannot key on. Anything that matches none
|
|
25
25
|
* of them is treated as a symbol and goes straight to Ensembl.
|
|
26
26
|
*/
|
|
27
|
+
// oxlint-disable-next-line eslint-js/no-restricted-syntax -- each entry is the fixed issued shape of one identifier space (Ensembl, HGNC, ChEMBL, UniProt); the alternation of the four is what keys the resolver.
|
|
27
28
|
const NON_SYMBOL_PATTERNS = [/^ENSG\d{11}$/, /^HGNC:\d+$/, /^CHEMBL\d+$/, /^[A-Z][0-9][A-Z0-9]{3}[0-9](-\d+)?$/];
|
|
28
29
|
function isSymbol(identifier) {
|
|
29
30
|
return !NON_SYMBOL_PATTERNS.some((pattern) => pattern.test(identifier));
|
|
@@ -9,7 +9,7 @@ export declare const GeoEsearchResponseSchema: z.ZodObject<{
|
|
|
9
9
|
}, z.core.$strip>>;
|
|
10
10
|
}, z.core.$strip>;
|
|
11
11
|
/** One dataset row, as the tool returns it. */
|
|
12
|
-
export
|
|
12
|
+
export type GeoDataset = {
|
|
13
13
|
accession: string;
|
|
14
14
|
title: string;
|
|
15
15
|
summary: string;
|
|
@@ -17,7 +17,7 @@ export interface GeoDataset {
|
|
|
17
17
|
sampleCount: number | null;
|
|
18
18
|
organism: string | null;
|
|
19
19
|
pubmedIds: (string | number)[];
|
|
20
|
-
}
|
|
20
|
+
};
|
|
21
21
|
export declare const GeoEsummaryResponseSchema: z.ZodObject<{
|
|
22
22
|
result: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodCatch<z.ZodOptional<z.ZodObject<{
|
|
23
23
|
accession: z.ZodOptional<z.ZodString>;
|
|
@@ -41,9 +41,9 @@ export declare const GeoEsummaryResponseSchema: z.ZodObject<{
|
|
|
41
41
|
export declare function mapGeoDatasets(ids: string[], summary: z.infer<typeof GeoEsummaryResponseSchema>): GeoDataset[];
|
|
42
42
|
export declare const searchGeoDatasetsTool: import("../define-tool.js").Tool<{
|
|
43
43
|
query: string;
|
|
44
|
-
datasetType: "gse" | "gds";
|
|
45
|
-
limit: number;
|
|
46
44
|
organism?: string | undefined;
|
|
45
|
+
datasetType: "gds" | "gse";
|
|
46
|
+
limit: number;
|
|
47
47
|
}, {
|
|
48
48
|
totalFound: number;
|
|
49
49
|
datasets: GeoDataset[];
|
|
@@ -48,7 +48,7 @@ export const GeoEsummaryResponseSchema = z.object({
|
|
|
48
48
|
* payload.
|
|
49
49
|
*/
|
|
50
50
|
export function mapGeoDatasets(ids, summary) {
|
|
51
|
-
const result = summary
|
|
51
|
+
const result = summary.result ?? {};
|
|
52
52
|
const datasets = [];
|
|
53
53
|
for (const id of ids) {
|
|
54
54
|
const r = result[id];
|
|
@@ -101,13 +101,13 @@ export const searchGeoDatasetsTool = defineTool({
|
|
|
101
101
|
.describe("Max datasets to return (default 10, max 50). totalFound reports the true match count regardless."),
|
|
102
102
|
}),
|
|
103
103
|
describeCall: "none",
|
|
104
|
-
execute: async ({ query, organism, datasetType
|
|
104
|
+
execute: async ({ query, organism, datasetType, limit }) => {
|
|
105
105
|
let searchQuery = query;
|
|
106
106
|
// Escape backslashes first, then quotes, so a `\` in the organism value
|
|
107
107
|
// cannot smuggle an unescaped `"` past the escaping and break out of the
|
|
108
108
|
// quoted Entrez phrase.
|
|
109
109
|
if (organism)
|
|
110
|
-
searchQuery += ` AND "${organism.
|
|
110
|
+
searchQuery += ` AND "${organism.replaceAll("\\", "\\\\").replaceAll('"', '\\"')}"[Organism]`;
|
|
111
111
|
const db = "gds";
|
|
112
112
|
const typeFilter = datasetType === "gse" ? " AND gse[Entry Type]" : " AND gds[Entry Type]";
|
|
113
113
|
searchQuery += typeFilter;
|
|
@@ -115,7 +115,7 @@ export const searchGeoDatasetsTool = defineTool({
|
|
|
115
115
|
const searchRes = await apiFetchValidated(searchUrl, GeoEsearchResponseSchema);
|
|
116
116
|
if (searchRes.isErr())
|
|
117
117
|
throw new Error(describeApiError(searchRes.error));
|
|
118
|
-
const ids = searchRes.value
|
|
118
|
+
const ids = searchRes.value.esearchresult?.idlist ?? [];
|
|
119
119
|
if (ids.length === 0)
|
|
120
120
|
return ok({ totalFound: 0, datasets: [] });
|
|
121
121
|
const summaryUrl = `${ESEARCH_BASE}/esummary.fcgi?db=${db}&id=${ids.join(",")}&retmode=json`;
|
|
@@ -123,7 +123,7 @@ export const searchGeoDatasetsTool = defineTool({
|
|
|
123
123
|
if (summaryRes.isErr())
|
|
124
124
|
throw new Error(describeApiError(summaryRes.error));
|
|
125
125
|
const datasets = mapGeoDatasets(ids, summaryRes.value);
|
|
126
|
-
const totalFound = Number(searchRes.value
|
|
126
|
+
const totalFound = Number(searchRes.value.esearchresult?.count) || datasets.length;
|
|
127
127
|
return ok({ totalFound, datasets });
|
|
128
128
|
},
|
|
129
129
|
});
|
|
@@ -14,7 +14,7 @@ type InteractionsOutput = {
|
|
|
14
14
|
export declare const searchInteractionsTool: import("../define-tool.js").Tool<{
|
|
15
15
|
identifiers: string[];
|
|
16
16
|
species: number;
|
|
17
|
-
action: "enrichment" | "
|
|
17
|
+
action: "enrichment" | "network" | "partners";
|
|
18
18
|
minScore: number;
|
|
19
19
|
limit: number;
|
|
20
20
|
}, InteractionsOutput>;
|