@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
|
@@ -22,11 +22,11 @@
|
|
|
22
22
|
* `.nullable()` and `.optional()`.
|
|
23
23
|
*/
|
|
24
24
|
import { z } from "zod";
|
|
25
|
-
export
|
|
25
|
+
export type CtxResolved = {
|
|
26
26
|
dtxsid: string;
|
|
27
27
|
preferredName: string;
|
|
28
28
|
casrn: string | null;
|
|
29
|
-
}
|
|
29
|
+
};
|
|
30
30
|
export declare const CtxChemicalSearchRowSchema: z.ZodObject<{
|
|
31
31
|
dtxsid: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
32
32
|
preferredName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -34,7 +34,7 @@ export declare const CtxChemicalSearchRowSchema: z.ZodObject<{
|
|
|
34
34
|
}, z.core.$strip>;
|
|
35
35
|
/** Resolve a DTXSID / CASRN / name to a chemical. `null` = no match (valid no-data). */
|
|
36
36
|
export declare function resolveDtxsid(query: string, headers: Record<string, string>): Promise<CtxResolved | null>;
|
|
37
|
-
export
|
|
37
|
+
export type ToxcastAssayResult = {
|
|
38
38
|
aeid: number;
|
|
39
39
|
assayEndpoint: string;
|
|
40
40
|
ac50: number | null;
|
|
@@ -42,13 +42,13 @@ export interface ToxcastAssayResult {
|
|
|
42
42
|
maxMean: number | null;
|
|
43
43
|
model: string;
|
|
44
44
|
flags: string[];
|
|
45
|
-
}
|
|
46
|
-
export
|
|
45
|
+
};
|
|
46
|
+
export type ToxcastBioactivity = {
|
|
47
47
|
totalAssays: number;
|
|
48
48
|
activeAssays: number;
|
|
49
49
|
activeHitRate: number;
|
|
50
50
|
results: ToxcastAssayResult[];
|
|
51
|
-
}
|
|
51
|
+
};
|
|
52
52
|
export declare const ToxcastBioactivityRowSchema: z.ZodObject<{
|
|
53
53
|
aeid: z.ZodOptional<z.ZodNumber>;
|
|
54
54
|
hitc: z.ZodOptional<z.ZodNumber>;
|
|
@@ -59,7 +59,7 @@ export declare const ToxcastBioactivityRowSchema: z.ZodObject<{
|
|
|
59
59
|
acc: z.ZodOptional<z.ZodNumber>;
|
|
60
60
|
}, z.core.$strip>>>;
|
|
61
61
|
mc6Param: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
62
|
-
flag: z.ZodOptional<z.
|
|
62
|
+
flag: z.ZodOptional<z.ZodJSONSchema>;
|
|
63
63
|
}, z.core.$strip>>>;
|
|
64
64
|
}, z.core.$strip>;
|
|
65
65
|
/**
|
|
@@ -159,11 +159,11 @@ export declare const CancerSchema: z.ZodPipe<z.ZodObject<{
|
|
|
159
159
|
}>>;
|
|
160
160
|
export type CancerSummary = z.infer<typeof CancerSchema>;
|
|
161
161
|
export type CtxHazardDataType = "toxval" | "genetox" | "cancer" | "all";
|
|
162
|
-
export
|
|
162
|
+
export type CtxHazardData = {
|
|
163
163
|
toxval?: ToxValEntry[];
|
|
164
164
|
genetox?: GenetoxSummary[];
|
|
165
165
|
cancer?: CancerSummary[];
|
|
166
|
-
}
|
|
166
|
+
};
|
|
167
167
|
/**
|
|
168
168
|
* In-vivo hazard data for a chemical. `limit` caps toxval and genetox only —
|
|
169
169
|
* cancer classifications always come back whole.
|
|
@@ -172,7 +172,7 @@ export declare function fetchCtxHazardData(dtxsid: string, headers: Record<strin
|
|
|
172
172
|
dataType: CtxHazardDataType;
|
|
173
173
|
limit: number;
|
|
174
174
|
}): Promise<CtxHazardData>;
|
|
175
|
-
export
|
|
175
|
+
export type ChemicalDetail = {
|
|
176
176
|
dtxsid: string;
|
|
177
177
|
dtxcid: string;
|
|
178
178
|
casrn: string | null;
|
|
@@ -189,8 +189,8 @@ export interface ChemicalDetail {
|
|
|
189
189
|
pubchemCid: number | null;
|
|
190
190
|
pubmedCount: number | null;
|
|
191
191
|
sourcesCount: number | null;
|
|
192
|
-
}
|
|
193
|
-
export
|
|
192
|
+
};
|
|
193
|
+
export type PropertySummary = {
|
|
194
194
|
propName: string;
|
|
195
195
|
unit: string;
|
|
196
196
|
experimentalCount: number | null;
|
|
@@ -201,7 +201,7 @@ export interface PropertySummary {
|
|
|
201
201
|
predictedMedian: number | null;
|
|
202
202
|
predictedMin: number | null;
|
|
203
203
|
predictedMax: number | null;
|
|
204
|
-
}
|
|
204
|
+
};
|
|
205
205
|
export declare const RawChemicalDetailSchema: z.ZodObject<{
|
|
206
206
|
dtxsid: z.ZodOptional<z.ZodString>;
|
|
207
207
|
dtxcid: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -224,7 +224,7 @@ export declare const RawChemicalDetailSchema: z.ZodObject<{
|
|
|
224
224
|
export declare function fetchCtxChemicalDetail(dtxsid: string, headers: Record<string, string>): Promise<ChemicalDetail>;
|
|
225
225
|
/** Experimental + predicted physicochemical property summaries. `undefined` = none served. */
|
|
226
226
|
export declare function fetchCtxChemicalProperties(dtxsid: string, headers: Record<string, string>): Promise<PropertySummary[] | undefined>;
|
|
227
|
-
export
|
|
227
|
+
export type SeemPrediction = {
|
|
228
228
|
dtxsid: string;
|
|
229
229
|
productionVolume: number | null;
|
|
230
230
|
units: string;
|
|
@@ -232,8 +232,8 @@ export interface SeemPrediction {
|
|
|
232
232
|
probabilityResidential: number | null;
|
|
233
233
|
probabilityPesticide: number | null;
|
|
234
234
|
probabilityIndustrial: number | null;
|
|
235
|
-
}
|
|
236
|
-
export
|
|
235
|
+
};
|
|
236
|
+
export type HttkParameter = {
|
|
237
237
|
parameter: string;
|
|
238
238
|
measured: number | null;
|
|
239
239
|
predicted: number | null;
|
|
@@ -241,20 +241,20 @@ export interface HttkParameter {
|
|
|
241
241
|
model: string;
|
|
242
242
|
species: string;
|
|
243
243
|
reference: string;
|
|
244
|
-
}
|
|
245
|
-
export
|
|
244
|
+
};
|
|
245
|
+
export type FunctionalUse = {
|
|
246
246
|
functionCategory: string;
|
|
247
247
|
reportedFunction: string;
|
|
248
248
|
docTitle: string;
|
|
249
|
-
}
|
|
250
|
-
export
|
|
249
|
+
};
|
|
250
|
+
export type ProductData = {
|
|
251
251
|
productName: string;
|
|
252
252
|
generalCategory: string;
|
|
253
253
|
productFamily: string;
|
|
254
254
|
productType: string;
|
|
255
255
|
centralWeightFraction: number | null;
|
|
256
256
|
weightFractionType: string;
|
|
257
|
-
}
|
|
257
|
+
};
|
|
258
258
|
export declare const RawSeemPredictionSchema: z.ZodObject<{
|
|
259
259
|
dtxsid: z.ZodOptional<z.ZodString>;
|
|
260
260
|
productionVolume: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
@@ -279,12 +279,12 @@ export declare const RawFunctionalUseRowSchema: z.ZodObject<{
|
|
|
279
279
|
doctitle: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
280
280
|
}, z.core.$strip>;
|
|
281
281
|
export type CtxExposureDataType = "seem" | "httk" | "functional-use" | "product-data" | "all";
|
|
282
|
-
export
|
|
282
|
+
export type CtxExposureData = {
|
|
283
283
|
seem?: SeemPrediction;
|
|
284
284
|
httk?: HttkParameter[];
|
|
285
285
|
functionalUse?: FunctionalUse[];
|
|
286
286
|
productData?: ProductData[];
|
|
287
|
-
}
|
|
287
|
+
};
|
|
288
288
|
/**
|
|
289
289
|
* Human-exposure data for a chemical. `limit` caps functional-use and
|
|
290
290
|
* product-data only — seem and httk always come back whole.
|
|
@@ -22,6 +22,9 @@
|
|
|
22
22
|
* `.nullable()` and `.optional()`.
|
|
23
23
|
*/
|
|
24
24
|
import { z } from "zod";
|
|
25
|
+
import { isUnknownArray } from "../../lib/unknown-array.js";
|
|
26
|
+
import { parseUnknownRecord } from "../../lib/unknown-containers.js";
|
|
27
|
+
import { parseJsonAs } from "../../lib/parse-json.js";
|
|
25
28
|
import { apiFetchValidated, describeApiError, zWireNumber } from "./api-utils.js";
|
|
26
29
|
import { EPA_CCTE_BASE } from "./toxcast-config.js";
|
|
27
30
|
// A row of the chemical-search endpoint. `dtxsid` is nullable, because a search
|
|
@@ -44,11 +47,11 @@ function isNoMatchProblemDetail(error) {
|
|
|
44
47
|
if (error.type !== "http_status" || error.status !== 400)
|
|
45
48
|
return false;
|
|
46
49
|
try {
|
|
47
|
-
const body =
|
|
50
|
+
const body = parseUnknownRecord(parseJsonAs(error.body, z.json()));
|
|
48
51
|
// `suggestions` separates the no-match answer from a generic 400
|
|
49
52
|
// `ProblemDetail`, which carries `title` and `detail` alone. Without it,
|
|
50
53
|
// a malformed request reads as a clean no-match.
|
|
51
|
-
return
|
|
54
|
+
return body !== undefined && "detail" in body && "title" in body && "suggestions" in body;
|
|
52
55
|
}
|
|
53
56
|
catch {
|
|
54
57
|
return false;
|
|
@@ -66,7 +69,7 @@ export async function resolveDtxsid(query, headers) {
|
|
|
66
69
|
return null;
|
|
67
70
|
throw new Error(describeApiError(res.error));
|
|
68
71
|
}
|
|
69
|
-
const chem =
|
|
72
|
+
const chem = res.value.find((row) => row.dtxsid);
|
|
70
73
|
if (!chem?.dtxsid)
|
|
71
74
|
return null;
|
|
72
75
|
return {
|
|
@@ -82,7 +85,7 @@ const ToxcastMc5ParamSchema = z.object({
|
|
|
82
85
|
acc: z.number().optional(),
|
|
83
86
|
});
|
|
84
87
|
const ToxcastMc6ParamSchema = z.object({
|
|
85
|
-
flag: z.
|
|
88
|
+
flag: z.json().optional(),
|
|
86
89
|
});
|
|
87
90
|
export const ToxcastBioactivityRowSchema = z.object({
|
|
88
91
|
aeid: z.number().optional(),
|
|
@@ -116,7 +119,7 @@ export async function fetchToxcastBioactivity(dtxsid, headers, opts) {
|
|
|
116
119
|
const bioRes = await apiFetchValidated(bioUrl, z.array(ToxcastBioactivityRowSchema), { headers });
|
|
117
120
|
if (bioRes.isErr())
|
|
118
121
|
throw new Error(describeApiError(bioRes.error));
|
|
119
|
-
const allResults = bioRes.value
|
|
122
|
+
const allResults = bioRes.value;
|
|
120
123
|
const totalAssays = allResults.length;
|
|
121
124
|
const activeAssays = allResults.filter(isActive).length;
|
|
122
125
|
const filtered = opts.activeOnly ? allResults.filter(isActive) : allResults;
|
|
@@ -128,7 +131,7 @@ export async function fetchToxcastBioactivity(dtxsid, headers, opts) {
|
|
|
128
131
|
const results = page.map((r) => {
|
|
129
132
|
const aeid = r.aeid ?? 0;
|
|
130
133
|
const mc6 = r.mc6Param ?? {};
|
|
131
|
-
const flags =
|
|
134
|
+
const flags = isUnknownArray(mc6.flag) ? mc6.flag.flatMap((flag) => (typeof flag === "string" ? [flag] : [])) : [];
|
|
132
135
|
return {
|
|
133
136
|
aeid,
|
|
134
137
|
assayEndpoint: aeidMap.get(aeid) ?? `aeid:${aeid}`,
|
|
@@ -151,10 +154,10 @@ function extractAc50(r) {
|
|
|
151
154
|
}
|
|
152
155
|
function extractAc50Raw(r) {
|
|
153
156
|
const mc5 = r.mc5Param;
|
|
154
|
-
if (mc5 &&
|
|
155
|
-
if (
|
|
157
|
+
if (mc5 !== null && mc5 !== undefined) {
|
|
158
|
+
if (mc5.ac50 !== undefined)
|
|
156
159
|
return mc5.ac50;
|
|
157
|
-
if (
|
|
160
|
+
if (mc5.acc !== undefined)
|
|
158
161
|
return mc5.acc;
|
|
159
162
|
}
|
|
160
163
|
return null;
|
|
@@ -350,7 +353,7 @@ export async function fetchCtxChemicalDetail(dtxsid, headers) {
|
|
|
350
353
|
const detailRes = await apiFetchValidated(detailUrl, RawChemicalDetailSchema, { headers });
|
|
351
354
|
if (detailRes.isErr())
|
|
352
355
|
throw new Error(describeApiError(detailRes.error));
|
|
353
|
-
const d = detailRes.value
|
|
356
|
+
const d = detailRes.value;
|
|
354
357
|
return {
|
|
355
358
|
dtxsid: d.dtxsid ?? dtxsid,
|
|
356
359
|
dtxcid: d.dtxcid ?? "",
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* the SDL gives each modifier and `.optional()` is wrong.
|
|
12
12
|
*/
|
|
13
13
|
import { z } from "zod";
|
|
14
|
-
export
|
|
14
|
+
export type DgidbInteraction = {
|
|
15
15
|
geneName: string;
|
|
16
16
|
drugName: string;
|
|
17
17
|
drugConceptId?: string;
|
|
@@ -28,14 +28,14 @@ export interface DgidbInteraction {
|
|
|
28
28
|
name: string;
|
|
29
29
|
value: string;
|
|
30
30
|
}[];
|
|
31
|
-
}
|
|
32
|
-
export
|
|
31
|
+
};
|
|
32
|
+
export type DgidbResult = {
|
|
33
33
|
input: string;
|
|
34
34
|
found: boolean;
|
|
35
35
|
interactions: DgidbInteraction[];
|
|
36
36
|
/** Interactions this input had before `limit` trimmed them. */
|
|
37
37
|
totalInteractions: number;
|
|
38
|
-
}
|
|
38
|
+
};
|
|
39
39
|
/** The response envelope. It is exported so that the golden-fixture table drives it. */
|
|
40
40
|
export declare const DgidbResponseSchema: z.ZodObject<{
|
|
41
41
|
data: z.ZodOptional<z.ZodObject<{
|
|
@@ -104,13 +104,13 @@ export declare const DgidbResponseSchema: z.ZodObject<{
|
|
|
104
104
|
message: z.ZodOptional<z.ZodString>;
|
|
105
105
|
}, z.core.$strip>>>;
|
|
106
106
|
}, z.core.$strip>;
|
|
107
|
-
export
|
|
107
|
+
export type DgidbFilters = {
|
|
108
108
|
interactionTypes?: string[];
|
|
109
109
|
sourceDbs?: string[];
|
|
110
110
|
minSources?: number;
|
|
111
111
|
includeAttributes?: boolean;
|
|
112
112
|
limit?: number;
|
|
113
|
-
}
|
|
113
|
+
};
|
|
114
114
|
/**
|
|
115
115
|
* Query DGIdb for interactions of the given genes or drugs.
|
|
116
116
|
*
|
|
@@ -84,7 +84,7 @@ function mapInteraction(raw, perspective, inputSide, includeAttributes) {
|
|
|
84
84
|
const pmids = (raw.publications ?? []).map((p) => (p.pmid != null ? String(p.pmid) : "")).filter(Boolean);
|
|
85
85
|
const types = (raw.interactionTypes ?? []).map((t) => ({
|
|
86
86
|
type: t.type ?? "",
|
|
87
|
-
|
|
87
|
+
directionality: t.directionality ?? undefined,
|
|
88
88
|
}));
|
|
89
89
|
const geneName = perspective === "gene" ? (inputSide.geneName ?? "") : (raw.gene?.name ?? "");
|
|
90
90
|
const drugName = perspective === "drug" ? (inputSide.drugName ?? "") : (raw.drug?.name ?? "");
|
|
@@ -92,21 +92,19 @@ function mapInteraction(raw, perspective, inputSide, includeAttributes) {
|
|
|
92
92
|
return {
|
|
93
93
|
geneName,
|
|
94
94
|
drugName,
|
|
95
|
-
|
|
95
|
+
drugConceptId,
|
|
96
96
|
interactionTypes: types,
|
|
97
|
-
|
|
97
|
+
interactionScore: raw.interactionScore ?? undefined,
|
|
98
98
|
sourceCount: sources.length,
|
|
99
99
|
sources,
|
|
100
100
|
publicationCount: pmids.length,
|
|
101
101
|
pmids: pmids.slice(0, MAX_PMIDS),
|
|
102
|
-
|
|
103
|
-
? {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
}
|
|
109
|
-
: {}),
|
|
102
|
+
attributes: includeAttributes
|
|
103
|
+
? (raw.interactionAttributes ?? []).slice(0, MAX_ATTRIBUTES).map((a) => ({
|
|
104
|
+
name: a.name ?? "",
|
|
105
|
+
value: (a.value ?? "").slice(0, MAX_ATTRIBUTE_CHARS),
|
|
106
|
+
}))
|
|
107
|
+
: undefined,
|
|
110
108
|
};
|
|
111
109
|
}
|
|
112
110
|
function applyFilters(interactions, filters) {
|
|
@@ -144,7 +142,7 @@ export async function searchDgidb(inputs, searchType, filters = {}, onPartialErr
|
|
|
144
142
|
if (res.isErr())
|
|
145
143
|
throw new Error(describeApiError(res.error));
|
|
146
144
|
const body = res.value;
|
|
147
|
-
if (!body
|
|
145
|
+
if (!body.data)
|
|
148
146
|
throw new Error("DGIdb returned no data");
|
|
149
147
|
if (body.errors?.length)
|
|
150
148
|
onPartialErrors?.(body.errors.slice(0, 3));
|
|
@@ -122,16 +122,16 @@ export type DisgenetSearchType = "gene" | "disease";
|
|
|
122
122
|
*/
|
|
123
123
|
export declare const DISGENET_SOURCES: readonly ["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"];
|
|
124
124
|
export type DisgenetSource = (typeof DISGENET_SOURCES)[number];
|
|
125
|
-
export
|
|
125
|
+
export type DisgenetSearchOptions = {
|
|
126
126
|
minScore?: number;
|
|
127
127
|
source?: DisgenetSource;
|
|
128
128
|
limit?: number;
|
|
129
|
-
}
|
|
129
|
+
};
|
|
130
130
|
/** The result of one GDA query: the records of the first page, and the count of the whole query. */
|
|
131
|
-
export
|
|
131
|
+
export type DisgenetSearchResult = {
|
|
132
132
|
records: Gda[];
|
|
133
133
|
totalFound: number;
|
|
134
|
-
}
|
|
134
|
+
};
|
|
135
135
|
/**
|
|
136
136
|
* Gene-disease associations for a gene symbol or for a disease.
|
|
137
137
|
*
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* `.optional()`.
|
|
14
14
|
*/
|
|
15
15
|
import { z } from "zod";
|
|
16
|
-
export
|
|
16
|
+
export type EmaReferral = {
|
|
17
17
|
category: string;
|
|
18
18
|
referralName: string;
|
|
19
19
|
inn: string;
|
|
@@ -33,7 +33,7 @@ export interface EmaReferral {
|
|
|
33
33
|
firstPublishedDate: string;
|
|
34
34
|
lastUpdatedDate: string;
|
|
35
35
|
referralUrl: string;
|
|
36
|
-
}
|
|
36
|
+
};
|
|
37
37
|
/** The catalogue file. It is exported so that the golden-fixture table drives it. */
|
|
38
38
|
export declare const ReferralFileSchema: z.ZodObject<{
|
|
39
39
|
meta: z.ZodOptional<z.ZodObject<{
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* an explicit `null`. Thus a maybe-absent field carries `.optional()`, not
|
|
8
8
|
* `.nullable()`.
|
|
9
9
|
*/
|
|
10
|
-
export
|
|
10
|
+
export type GeneInfo = {
|
|
11
11
|
symbol: string;
|
|
12
12
|
id: string;
|
|
13
13
|
displayName: string;
|
|
@@ -18,10 +18,10 @@ export interface GeneInfo {
|
|
|
18
18
|
strand: number;
|
|
19
19
|
assemblyName: string;
|
|
20
20
|
seqRegionName: string;
|
|
21
|
-
}
|
|
22
|
-
export
|
|
21
|
+
};
|
|
22
|
+
export type LookupOptions = {
|
|
23
23
|
species?: string;
|
|
24
|
-
}
|
|
24
|
+
};
|
|
25
25
|
/**
|
|
26
26
|
* Look up genes by symbol. Gene-level only: `RawGeneSchema`/`mapGene` model the
|
|
27
27
|
* gene record itself, so there is no transcript or exon detail to ask for.
|
|
@@ -48,15 +48,16 @@ function mapGene(symbol, raw) {
|
|
|
48
48
|
*/
|
|
49
49
|
export async function lookupGenes(symbols, options = {}) {
|
|
50
50
|
const species = options.species ?? "homo_sapiens";
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
const [singleSymbol] = symbols;
|
|
52
|
+
if (symbols.length === 1 && singleSymbol !== undefined) {
|
|
53
|
+
const result = await apiFetchValidated(`${ENSEMBL_BASE}/lookup/symbol/${species}/${singleSymbol}`, RawGeneSchema, { headers: HEADERS });
|
|
53
54
|
if (result.isErr()) {
|
|
54
55
|
if (result.error.type === "http_status" && result.error.status === 400) {
|
|
55
|
-
return { genes: [], notFound: [
|
|
56
|
+
return { genes: [], notFound: [singleSymbol] };
|
|
56
57
|
}
|
|
57
58
|
throw new Error(describeApiError(result.error));
|
|
58
59
|
}
|
|
59
|
-
return { genes: [mapGene(
|
|
60
|
+
return { genes: [mapGene(singleSymbol, result.value)], notFound: [] };
|
|
60
61
|
}
|
|
61
62
|
const result = await apiFetchValidated(`${ENSEMBL_BASE}/lookup/symbol/${species}`, z.record(z.string(), RawGeneSchema), {
|
|
62
63
|
method: "POST",
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* only when the projection that the request named excludes it.
|
|
12
12
|
*/
|
|
13
13
|
import { z } from "zod";
|
|
14
|
-
export
|
|
14
|
+
export type GwasAssociation = {
|
|
15
15
|
rsId: string;
|
|
16
16
|
pValue: number;
|
|
17
17
|
pValueMantissa: number;
|
|
@@ -25,7 +25,7 @@ export interface GwasAssociation {
|
|
|
25
25
|
studyAccession: string;
|
|
26
26
|
pubmedId: string;
|
|
27
27
|
sampleSize: string;
|
|
28
|
-
}
|
|
28
|
+
};
|
|
29
29
|
export type GwasSearchType = "gene" | "trait" | "variant" | "study";
|
|
30
30
|
declare const RawGwasAssociationSchema: z.ZodObject<{
|
|
31
31
|
_snpRsId: z.ZodOptional<z.ZodString>;
|
|
@@ -113,10 +113,10 @@ export declare const GwasSnpSearchResponseSchema: z.ZodObject<{
|
|
|
113
113
|
}, z.core.$strip>>;
|
|
114
114
|
}, z.core.$strip>;
|
|
115
115
|
export declare function mapAssociation(a: RawGwasAssociation): GwasAssociation;
|
|
116
|
-
export
|
|
116
|
+
export type GwasSearchOptions = {
|
|
117
117
|
pValueThreshold?: number;
|
|
118
118
|
limit?: number;
|
|
119
|
-
}
|
|
119
|
+
};
|
|
120
120
|
export declare function searchGwasCatalog(query: string, searchType: GwasSearchType, options?: GwasSearchOptions): Promise<{
|
|
121
121
|
totalFound: number;
|
|
122
122
|
associations: GwasAssociation[];
|
|
@@ -72,26 +72,26 @@ export const GwasSnpSearchResponseSchema = z.object({
|
|
|
72
72
|
});
|
|
73
73
|
export function mapAssociation(a) {
|
|
74
74
|
const loci = a.loci ?? [];
|
|
75
|
-
const riskAlleles = loci.flatMap((l) => l.strongestRiskAlleles?.map((ra) =>
|
|
76
|
-
const genes = loci.flatMap((l) => l.authorReportedGenes?.map((g) =>
|
|
77
|
-
const traits = (a.efoTraits ?? []).map((t) =>
|
|
75
|
+
const riskAlleles = loci.flatMap((l) => l.strongestRiskAlleles?.map((ra) => ra.riskAlleleName ?? "") ?? []);
|
|
76
|
+
const genes = loci.flatMap((l) => l.authorReportedGenes?.map((g) => g.geneName ?? "") ?? []);
|
|
77
|
+
const traits = (a.efoTraits ?? []).map((t) => t.trait ?? "");
|
|
78
78
|
const study = a.study ?? {};
|
|
79
79
|
const pMantissa = a.pvalueMantissa ?? 0;
|
|
80
80
|
const pExponent = a.pvalueExponent ?? 0;
|
|
81
81
|
return {
|
|
82
|
-
rsId:
|
|
82
|
+
rsId: a._snpRsId ?? riskAlleles[0]?.split("-")[0] ?? "",
|
|
83
83
|
pValue: pMantissa * Math.pow(10, pExponent),
|
|
84
84
|
pValueMantissa: pMantissa,
|
|
85
85
|
pValueExponent: pExponent,
|
|
86
86
|
riskAllele: riskAlleles.join(", "),
|
|
87
|
-
riskFrequency:
|
|
88
|
-
orBeta:
|
|
89
|
-
ci:
|
|
87
|
+
riskFrequency: a.riskFrequency ?? "",
|
|
88
|
+
orBeta: a.orPerCopyNum ?? a.betaNum ?? null,
|
|
89
|
+
ci: a.range ?? "",
|
|
90
90
|
trait: traits.join("; "),
|
|
91
91
|
mappedGenes: [...new Set(genes)],
|
|
92
|
-
studyAccession:
|
|
93
|
-
pubmedId:
|
|
94
|
-
sampleSize:
|
|
92
|
+
studyAccession: study.accessionId ?? "",
|
|
93
|
+
pubmedId: study.publicationInfo?.pubmedId ?? "",
|
|
94
|
+
sampleSize: study.initialSampleSize ?? "",
|
|
95
95
|
};
|
|
96
96
|
}
|
|
97
97
|
/** Max SNPs whose associations the 'gene' path walks; each is one request. */
|
|
@@ -104,15 +104,15 @@ export async function searchGwasCatalog(query, searchType, options = {}) {
|
|
|
104
104
|
const snpRes = await apiFetchValidated(url, GwasSnpSearchResponseSchema, { headers: GWAS_HEADERS });
|
|
105
105
|
if (snpRes.isErr())
|
|
106
106
|
throw new Error(describeApiError(snpRes.error));
|
|
107
|
-
const snps = snpRes.value
|
|
107
|
+
const snps = snpRes.value._embedded?.singleNucleotidePolymorphisms ?? [];
|
|
108
108
|
const allAssocs = [];
|
|
109
109
|
for (const snp of snps.slice(0, Math.min(limit, GENE_PATH_MAX_SNPS))) {
|
|
110
|
-
const assocLink = snp
|
|
110
|
+
const assocLink = snp._links?.associations?.href;
|
|
111
111
|
if (!assocLink)
|
|
112
112
|
continue;
|
|
113
113
|
const aRes = await apiFetchValidated(assocLink, GwasEmbeddedSchema, { headers: GWAS_HEADERS });
|
|
114
114
|
if (aRes.isOk()) {
|
|
115
|
-
for (const a of aRes.value
|
|
115
|
+
for (const a of aRes.value._embedded?.associations ?? []) {
|
|
116
116
|
a._snpRsId = snp.rsId;
|
|
117
117
|
allAssocs.push(a);
|
|
118
118
|
}
|
|
@@ -143,10 +143,10 @@ export async function searchGwasCatalog(query, searchType, options = {}) {
|
|
|
143
143
|
});
|
|
144
144
|
if (traitRes.isErr())
|
|
145
145
|
throw new Error(describeApiError(traitRes.error));
|
|
146
|
-
const traitUri = (traitRes.value
|
|
146
|
+
const traitUri = (traitRes.value._embedded?.efoTraits ?? [])[0]?._links?.self?.href;
|
|
147
147
|
if (!traitUri)
|
|
148
148
|
return { totalFound: 0, associations: [] };
|
|
149
|
-
associationsUrl = `${GWAS_BASE}/efoTraits/${traitUri.split("/").pop()}/associations?size=${limit}`;
|
|
149
|
+
associationsUrl = `${GWAS_BASE}/efoTraits/${String(traitUri.split("/").pop())}/associations?size=${limit}`;
|
|
150
150
|
}
|
|
151
151
|
const res = await apiFetchValidated(associationsUrl, GwasEmbeddedSchema, { headers: GWAS_HEADERS });
|
|
152
152
|
if (res.isErr()) {
|
|
@@ -156,8 +156,8 @@ export async function searchGwasCatalog(query, searchType, options = {}) {
|
|
|
156
156
|
return { totalFound: 0, associations: [] };
|
|
157
157
|
throw new Error(describeApiError(res.error));
|
|
158
158
|
}
|
|
159
|
-
const rawAssocs = res.value
|
|
160
|
-
const totalFound = res.value
|
|
159
|
+
const rawAssocs = res.value._embedded?.associations ?? [];
|
|
160
|
+
const totalFound = res.value.page?.totalElements ?? rawAssocs.length;
|
|
161
161
|
const filtered = rawAssocs.filter((a) => (a.pvalueMantissa ?? 1) * Math.pow(10, a.pvalueExponent ?? 0) <= pValueThreshold).slice(0, limit);
|
|
162
162
|
return { totalFound, associations: filtered.map(mapAssociation) };
|
|
163
163
|
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Strip each `<...>` run to its first closing bracket. One pass already
|
|
3
|
+
* reaches the fixpoint: a span's interior holds no `>`, so a removal cannot
|
|
4
|
+
* form a new `<...>` pair.
|
|
5
|
+
*/
|
|
6
|
+
export function stripHtmlTags(text) {
|
|
7
|
+
// oxlint-disable-next-line eslint-js/no-restricted-syntax -- an HTML tag run to the first closing bracket; a quoted `>` inside an attribute is deliberately not seen.
|
|
8
|
+
return text.replace(/<[^>]+>/g, "");
|
|
9
|
+
}
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
*/
|
|
19
19
|
import { z } from "zod";
|
|
20
20
|
import type { Logger } from "../../lib/logger.js";
|
|
21
|
-
export
|
|
21
|
+
export type ResolvedTarget = {
|
|
22
22
|
/** Canonical id used as the entity-resolution anchor — preferred order: HGNC, then Ensembl. */
|
|
23
23
|
canonicalId: string;
|
|
24
24
|
/** What ontology produced the canonical id ("hgnc" or "ensembl"). */
|
|
@@ -48,7 +48,7 @@ export interface ResolvedTarget {
|
|
|
48
48
|
ensembl: boolean;
|
|
49
49
|
chembl: boolean;
|
|
50
50
|
};
|
|
51
|
-
}
|
|
51
|
+
};
|
|
52
52
|
export declare const HgncResponseSchema: z.ZodObject<{
|
|
53
53
|
response: z.ZodOptional<z.ZodObject<{
|
|
54
54
|
docs: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
@@ -69,7 +69,7 @@ export declare const HgncResponseSchema: z.ZodObject<{
|
|
|
69
69
|
* @throws when the input cannot be mapped to any human gene/protein.
|
|
70
70
|
*/
|
|
71
71
|
export declare function resolveTarget(input: string, logger?: Logger): Promise<ResolvedTarget>;
|
|
72
|
-
export
|
|
72
|
+
export type AutocompleteCandidate = {
|
|
73
73
|
/** Approved HGNC symbol when known, otherwise the input symbol. */
|
|
74
74
|
symbol: string;
|
|
75
75
|
/** Full gene/protein name. */
|
|
@@ -79,7 +79,7 @@ export interface AutocompleteCandidate {
|
|
|
79
79
|
uniprotId: string | null;
|
|
80
80
|
/** Sorted synonyms across HGNC + UniProt. */
|
|
81
81
|
synonyms: string[];
|
|
82
|
-
}
|
|
82
|
+
};
|
|
83
83
|
/**
|
|
84
84
|
* Resolve a single gene-symbol query for the autocomplete UI by fanning
|
|
85
85
|
* out HGNC + UniProt + Ensembl in parallel and merging into one canonical
|
|
@@ -26,9 +26,13 @@ const HGNC_BASE = "https://rest.genenames.org/fetch";
|
|
|
26
26
|
const UNIPROT_BASE = "https://rest.uniprot.org/uniprotkb/search";
|
|
27
27
|
const HGNC_HEADERS = { Accept: "application/json" };
|
|
28
28
|
const UNIPROT_HEADERS = { Accept: "application/json" };
|
|
29
|
+
// oxlint-disable-next-line eslint-js/no-restricted-syntax -- Ensembl gene ids are ENSG plus 11 digits; the fixed shape is the identifier rule.
|
|
29
30
|
const ENSG_RE = /^ENSG\d{11}$/;
|
|
31
|
+
// oxlint-disable-next-line eslint-js/no-restricted-syntax -- the UniProt accession shape with its optional isoform suffix (-<n>).
|
|
30
32
|
const UNIPROT_RE = /^[A-Z][0-9][A-Z0-9]{3}[0-9](-\d+)?$/;
|
|
33
|
+
// oxlint-disable-next-line eslint-js/no-restricted-syntax -- ChEMBL ids carry the fixed CHEMBL<n> shape.
|
|
31
34
|
const CHEMBL_RE = /^CHEMBL\d+$/;
|
|
35
|
+
// oxlint-disable-next-line eslint-js/no-restricted-syntax -- HGNC ids are the HGNC: prefix plus digits.
|
|
32
36
|
const HGNC_RE = /^HGNC:\d+$/;
|
|
33
37
|
// HGNC search payload, validated at the fetch boundary. Every field is optional
|
|
34
38
|
// because the API omits absent values; each read below is optional-chained /
|
|
@@ -166,7 +170,7 @@ export async function resolveTarget(input, logger) {
|
|
|
166
170
|
}
|
|
167
171
|
}
|
|
168
172
|
else if (seedHgncId) {
|
|
169
|
-
hgncDoc = await fetchHgncBy("hgnc_id", seedHgncId.
|
|
173
|
+
hgncDoc = await fetchHgncBy("hgnc_id", seedHgncId.startsWith("HGNC:") ? seedHgncId.slice("HGNC:".length) : seedHgncId);
|
|
170
174
|
}
|
|
171
175
|
else if (seedEnsemblId) {
|
|
172
176
|
hgncDoc = await fetchHgncBy("ensembl_gene_id", seedEnsemblId);
|
|
@@ -230,9 +234,9 @@ export async function resolveTarget(input, logger) {
|
|
|
230
234
|
}
|
|
231
235
|
const synonyms = new Set();
|
|
232
236
|
for (const s of hgncDoc?.alias_symbol ?? [])
|
|
233
|
-
synonyms.add(
|
|
237
|
+
synonyms.add(s);
|
|
234
238
|
for (const s of hgncDoc?.prev_symbol ?? [])
|
|
235
|
-
synonyms.add(
|
|
239
|
+
synonyms.add(s);
|
|
236
240
|
for (const g of uniprotDoc?.genes ?? []) {
|
|
237
241
|
for (const syn of g.synonyms ?? []) {
|
|
238
242
|
if (syn.value)
|
|
@@ -8,27 +8,27 @@
|
|
|
8
8
|
* sends an explicit `null`. Thus a maybe-absent field carries `.optional()`,
|
|
9
9
|
* not `.nullable()`.
|
|
10
10
|
*/
|
|
11
|
-
export
|
|
11
|
+
export type MpTerm = {
|
|
12
12
|
id: string;
|
|
13
13
|
term: string;
|
|
14
14
|
bestPValue: number | null;
|
|
15
|
-
}
|
|
16
|
-
export
|
|
15
|
+
};
|
|
16
|
+
export type PhenotypeProfile = {
|
|
17
17
|
mpTerms: MpTerm[];
|
|
18
18
|
organSystems: string[];
|
|
19
19
|
sexDimorphic: boolean;
|
|
20
20
|
phenotypeCount: number;
|
|
21
|
-
}
|
|
22
|
-
export
|
|
21
|
+
};
|
|
22
|
+
export type ViabilityCall = {
|
|
23
23
|
zygosity: string;
|
|
24
24
|
parameterStableId: string;
|
|
25
25
|
mpTerm: {
|
|
26
26
|
id: string;
|
|
27
27
|
name: string;
|
|
28
28
|
} | null;
|
|
29
|
-
}
|
|
29
|
+
};
|
|
30
30
|
export type ViabilityCategory = "lethal_pre_weaning" | "subviable" | "viable" | null;
|
|
31
|
-
export
|
|
31
|
+
export type KoPhenotypeProfile = {
|
|
32
32
|
geneSymbol: string;
|
|
33
33
|
mouseMarkerSymbol: string | null;
|
|
34
34
|
mgiAccessionId: string | null;
|
|
@@ -40,7 +40,7 @@ export interface KoPhenotypeProfile {
|
|
|
40
40
|
phenotypeCount: number;
|
|
41
41
|
phenotypeDocsTotal: number;
|
|
42
42
|
phenotypesTruncated: boolean;
|
|
43
|
-
}
|
|
43
|
+
};
|
|
44
44
|
export declare function parsePhenotypeResponse(raw: unknown): PhenotypeProfile;
|
|
45
45
|
export declare function buildViabilityCalls(docsB: unknown, docsC: unknown): ViabilityCall[];
|
|
46
46
|
export declare function derivedViability(calls: ViabilityCall[]): ViabilityCategory;
|