@inflexa-ai/harness 0.45.1 → 0.46.2
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 +9 -3
- package/dist/agents/conversation-agent.js +34 -33
- 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 +12 -14
- package/dist/agents/sandbox/shared.js +18 -12
- package/dist/agents/sandbox/types.d.ts +4 -4
- 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 +2 -2
- package/dist/agents/sandbox-catalog.js +3 -3
- package/dist/agents/system-prompt.d.ts +2 -2
- package/dist/app/chat-turn-workflow.d.ts +114 -0
- package/dist/app/chat-turn-workflow.js +306 -0
- package/dist/app/chat-turn.d.ts +85 -57
- package/dist/app/chat-turn.js +123 -100
- 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 +6 -6
- 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 +38 -24
- package/dist/contracts/chat-frame.d.ts +15 -5
- package/dist/contracts/chat-frame.js +64 -41
- 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 +2 -2
- 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 +30 -16
- package/dist/contracts/schemas/chat-events.js +15 -6
- package/dist/contracts/schemas/chat-parts.d.ts +175 -102
- package/dist/contracts/schemas/chat-parts.js +33 -7
- 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 +5 -6
- package/dist/execution/dbos-workflow-purger.js +8 -7
- 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 +7 -7
- package/dist/execution/run-canceler.js +14 -7
- package/dist/execution/run-end-record.d.ts +2 -3
- 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 +17 -20
- package/dist/index.js +25 -36
- 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 +32 -7
- package/dist/lib/hooks.js +22 -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 +9 -9
- package/dist/loop/compaction.js +1 -1
- 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 +160 -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 +39 -0
- package/dist/loop/turn-credentials.js +90 -0
- package/dist/loop/types.d.ts +29 -38
- 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 -4
- package/dist/memory/conversation-display-recorder.js +43 -24
- 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 +36 -21
- package/dist/memory/thread-history.js +78 -54
- 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 +12 -12
- package/dist/prompts/briefing.js +1 -1
- 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 +1 -4
- package/dist/provenance/types.d.ts +6 -6
- package/dist/providers/ai-sdk.d.ts +113 -62
- package/dist/providers/ai-sdk.js +283 -518
- 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/request-headers.js +12 -3
- package/dist/providers/types.d.ts +55 -94
- package/dist/reference-data/catalog.d.ts +2 -15
- package/dist/reference-data/catalog.js +25 -8
- 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 +211 -233
- 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.js +15 -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 +343 -298
- package/dist/schemas/file-metadata.js +2 -4
- package/dist/schemas/plan-schemas.d.ts +31 -31
- 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 +19 -19
- package/dist/schemas/workflow-state.js +2 -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 +32 -19
- package/dist/state/artifacts.js +28 -5
- 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 +4 -4
- package/dist/state/index.js +2 -2
- 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 +30 -19
- package/dist/state/runs.js +43 -51
- 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 +20 -8
- package/dist/state/step-executions.js +6 -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 +62 -0
- package/dist/testing.js +101 -0
- package/dist/tools/ad-hoc-router.d.ts +9 -9
- package/dist/tools/ad-hoc-router.js +65 -52
- 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 +9 -5
- package/dist/tools/capability-data.js +2 -1
- 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 +19 -10
- package/dist/tools/execute-analysis.js +83 -62
- package/dist/tools/knowledge/check.d.ts +166 -44
- package/dist/tools/knowledge/check.js +5 -3
- package/dist/tools/knowledge/client.d.ts +31 -62
- package/dist/tools/knowledge/client.js +44 -27
- package/dist/tools/knowledge/environment.d.ts +6 -6
- package/dist/tools/knowledge/environment.js +18 -7
- package/dist/tools/knowledge/index.d.ts +2 -2
- package/dist/tools/knowledge/index.js +9 -9
- package/dist/tools/knowledge/local-slots.d.ts +4 -4
- package/dist/tools/knowledge/local-slots.js +11 -4
- package/dist/tools/knowledge/pin.d.ts +2 -2
- package/dist/tools/knowledge/recommend.d.ts +20 -45
- package/dist/tools/knowledge/recommend.js +27 -19
- package/dist/tools/knowledge/situation.d.ts +40 -40
- package/dist/tools/knowledge/situation.js +2 -9
- package/dist/tools/knowledge/skeleton.d.ts +4 -4
- package/dist/tools/knowledge/skeleton.js +10 -11
- package/dist/tools/knowledge/template.d.ts +20 -18
- package/dist/tools/knowledge/template.js +38 -32
- 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 +16 -16
- package/dist/tools/research/generate-plan.js +410 -374
- package/dist/tools/research/guarded-address.js +3 -2
- 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 +2 -2
- package/dist/tools/research/searxng-engine.js +6 -4
- package/dist/tools/research/web-fetch.d.ts +24 -21
- package/dist/tools/research/web-fetch.js +65 -74
- package/dist/tools/research/web-search.d.ts +26 -17
- package/dist/tools/research/web-search.js +26 -21
- 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 +17 -8
- package/dist/tools/sandbox/list-available-packages.js +31 -25
- package/dist/tools/sandbox/list-available-refs.d.ts +17 -14
- package/dist/tools/sandbox/list-available-refs.js +61 -36
- package/dist/tools/sandbox/report-blocker.d.ts +30 -37
- package/dist/tools/sandbox/report-blocker.js +23 -73
- 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 +5 -2
- package/dist/tools/terminal-text.js +35 -3
- package/dist/tools/workspace/decision-record.d.ts +4 -4
- package/dist/tools/workspace/decision-record.js +23 -13
- package/dist/tools/workspace/edit-file.d.ts +59 -20
- package/dist/tools/workspace/edit-file.js +81 -16
- package/dist/tools/workspace/execute-command.d.ts +15 -13
- package/dist/tools/workspace/execute-command.js +11 -9
- 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/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 +46 -62
- package/dist/workflows/execute-analysis.js +137 -219
- package/dist/workflows/pause.d.ts +71 -0
- package/dist/workflows/pause.js +173 -0
- package/dist/workflows/sandbox-step.d.ts +38 -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 +21 -22
- package/dist/loop/call-guard.d.ts +0 -50
- package/dist/loop/call-guard.js +0 -90
- 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 -245
- package/dist/loop/run-agent.js +0 -1124
- 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 -93
- 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
|
@@ -9,24 +9,24 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { z } from "zod";
|
|
11
11
|
import type { Logger } from "../../lib/logger.js";
|
|
12
|
-
export
|
|
12
|
+
export type ChemblCompound = {
|
|
13
13
|
chemblId: string;
|
|
14
14
|
preferredCompoundName: string | null;
|
|
15
15
|
canonicalSmiles: string | null;
|
|
16
16
|
molecularWeight: number | null;
|
|
17
17
|
alogp: number | null;
|
|
18
18
|
molecularFormula: string | null;
|
|
19
|
-
}
|
|
19
|
+
};
|
|
20
20
|
/** How `searchCompounds` interprets its query string. */
|
|
21
21
|
export type CompoundSearchType = "target" | "compound" | "smiles";
|
|
22
|
-
export
|
|
22
|
+
export type ChemblTarget = {
|
|
23
23
|
targetChemblId: string;
|
|
24
24
|
preferredName: string | null;
|
|
25
25
|
targetType: string | null;
|
|
26
26
|
organism: string | null;
|
|
27
27
|
geneNames: string[];
|
|
28
|
-
}
|
|
29
|
-
export
|
|
28
|
+
};
|
|
29
|
+
export type ChemblActivity = {
|
|
30
30
|
activityId: number | null;
|
|
31
31
|
compoundChemblId: string;
|
|
32
32
|
targetChemblId: string | null;
|
|
@@ -36,31 +36,31 @@ export interface ChemblActivity {
|
|
|
36
36
|
assayChemblId: string | null;
|
|
37
37
|
assayType: string | null;
|
|
38
38
|
pchemblValue: number | null;
|
|
39
|
-
}
|
|
40
|
-
export
|
|
39
|
+
};
|
|
40
|
+
export type ChemblMechanism = {
|
|
41
41
|
mechanismOfAction: string | null;
|
|
42
42
|
actionType: string | null;
|
|
43
43
|
targetChemblId: string | null;
|
|
44
44
|
targetName: string | null;
|
|
45
45
|
moleculeChemblId: string;
|
|
46
|
-
}
|
|
47
|
-
export
|
|
46
|
+
};
|
|
47
|
+
export type ChemblDrug = {
|
|
48
48
|
moleculeChemblId: string;
|
|
49
49
|
preferredName: string | null;
|
|
50
50
|
maxPhase: number | null;
|
|
51
51
|
moleculeType: string | null;
|
|
52
52
|
firstApproval: number | null;
|
|
53
53
|
indication: string | null;
|
|
54
|
-
}
|
|
55
|
-
export
|
|
54
|
+
};
|
|
55
|
+
export type ChemblModulator = {
|
|
56
56
|
moleculeChemblId: string;
|
|
57
57
|
parentChemblId: string | null;
|
|
58
58
|
preferredName: string | null;
|
|
59
59
|
maxPhase: number | null;
|
|
60
60
|
moleculeType: string | null;
|
|
61
61
|
firstApproval: number | null;
|
|
62
|
-
}
|
|
63
|
-
export
|
|
62
|
+
};
|
|
63
|
+
export type ChemblPolypharmHit = {
|
|
64
64
|
moleculeChemblId: string;
|
|
65
65
|
targetChemblId: string;
|
|
66
66
|
targetName: string | null;
|
|
@@ -70,7 +70,7 @@ export interface ChemblPolypharmHit {
|
|
|
70
70
|
standardValue: number | null;
|
|
71
71
|
standardUnits: string | null;
|
|
72
72
|
pchemblValue: number | null;
|
|
73
|
-
}
|
|
73
|
+
};
|
|
74
74
|
export declare const TargetSearchResponseSchema: z.ZodObject<{
|
|
75
75
|
targets: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
76
76
|
target_chembl_id: z.ZodOptional<z.ZodString>;
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { z } from "zod";
|
|
11
11
|
import { createNoopLogger } from "../../lib/console-logger.js";
|
|
12
|
+
import { presentAt } from "../../lib/present.js";
|
|
12
13
|
import { apiFetchValidated, describeApiError, isUnexpectedApiError, zWireNumber } from "./api-utils.js";
|
|
13
14
|
import { CHEMBL_BASE, CHEMBL_HEADERS as HEADERS } from "./chembl-config.js";
|
|
14
15
|
/** The `max_phase` of an approved drug. ChEMBL serializes it as the string "4.0". */
|
|
@@ -184,7 +185,8 @@ async function searchCompoundsByTarget(query, limit) {
|
|
|
184
185
|
}
|
|
185
186
|
if (!targetRes.value.targets?.length)
|
|
186
187
|
return [];
|
|
187
|
-
const
|
|
188
|
+
const firstTarget = targetRes.value.targets[0];
|
|
189
|
+
const targetChemblId = firstTarget?.target_chembl_id;
|
|
188
190
|
if (!targetChemblId)
|
|
189
191
|
return [];
|
|
190
192
|
const activityRes = await apiFetchValidated(`${CHEMBL_BASE}/activity.json?target_chembl_id=${targetChemblId}&limit=${limit}`, CompoundActivityIdResponseSchema, {
|
|
@@ -439,7 +441,10 @@ async function searchApprovedDrugsByName(query, limit) {
|
|
|
439
441
|
const approved = (res.value.molecules ?? []).filter((mol) => mol.max_phase != null && mol.max_phase >= APPROVED_MAX_PHASE);
|
|
440
442
|
if (approved.length === 0)
|
|
441
443
|
return [];
|
|
442
|
-
const moleculeChemblIds = approved.
|
|
444
|
+
const moleculeChemblIds = approved.flatMap((mol) => {
|
|
445
|
+
const id = mol.molecule_chembl_id;
|
|
446
|
+
return id !== undefined && id.length > 0 ? [id] : [];
|
|
447
|
+
});
|
|
443
448
|
const indications = await fetchIndicationsOf(moleculeChemblIds);
|
|
444
449
|
return approved.map((raw) => mapDrug(raw, indications.get(raw.molecule_chembl_id ?? "") ?? null));
|
|
445
450
|
}
|
|
@@ -559,7 +564,7 @@ export async function getModulatorPolypharmacology(moleculeChemblId, options = {
|
|
|
559
564
|
for (const [idx, id] of batch.entries()) {
|
|
560
565
|
const hit = hits.find((h) => h.targetChemblId === id);
|
|
561
566
|
if (hit)
|
|
562
|
-
hit.targetName = names[idx];
|
|
567
|
+
hit.targetName = names[idx] ?? null;
|
|
563
568
|
}
|
|
564
569
|
}
|
|
565
570
|
return hits.sort((a, b) => (b.pchemblValue ?? 0) - (a.pchemblValue ?? 0));
|
|
@@ -587,7 +592,9 @@ export async function getModulatorOnTargetPchembl(modulatorChemblId, targetChemb
|
|
|
587
592
|
return null;
|
|
588
593
|
values.sort((a, b) => a - b);
|
|
589
594
|
const mid = Math.floor(values.length / 2);
|
|
590
|
-
return values.length % 2 === 1
|
|
595
|
+
return values.length % 2 === 1
|
|
596
|
+
? presentAt(values, mid, "the middle activity value")
|
|
597
|
+
: (presentAt(values, mid - 1, "the lower middle activity value") + presentAt(values, mid, "the middle activity value")) / 2;
|
|
591
598
|
}
|
|
592
599
|
/**
|
|
593
600
|
* Secondary path: fetch clinical-stage small molecules via the activity table.
|
|
@@ -3,21 +3,21 @@
|
|
|
3
3
|
* absent value. The bundled dataset gives each key, and `getBenchmarks` answers
|
|
4
4
|
* with the "all" baseline for an unknown therapeutic area.
|
|
5
5
|
*/
|
|
6
|
-
export
|
|
6
|
+
export type PhaseTransitions = {
|
|
7
7
|
phase1_to_phase2: number;
|
|
8
8
|
phase2_to_phase3: number;
|
|
9
9
|
phase3_to_nda: number;
|
|
10
10
|
nda_to_approval: number;
|
|
11
11
|
phase1_to_approval: number;
|
|
12
|
-
}
|
|
13
|
-
export
|
|
12
|
+
};
|
|
13
|
+
export type BenchmarkResult = {
|
|
14
14
|
therapeutic_area: string;
|
|
15
15
|
source: "available" | "fallback";
|
|
16
16
|
data_version: string;
|
|
17
17
|
data_window: string;
|
|
18
18
|
attribution: string;
|
|
19
19
|
transitions: PhaseTransitions;
|
|
20
|
-
}
|
|
20
|
+
};
|
|
21
21
|
/**
|
|
22
22
|
* Infer therapeutic area from a list of indication labels using the
|
|
23
23
|
* dataset's pattern map. First match wins.
|
|
@@ -5,9 +5,6 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import benchmarksData from "../../data/clinical-benchmarks.json" with { type: "json" };
|
|
7
7
|
const dataset = benchmarksData;
|
|
8
|
-
if (!dataset.phase_transitions || !dataset.phase_transitions.all) {
|
|
9
|
-
throw new Error("clinical-benchmarks.json is missing phase_transitions.all baseline");
|
|
10
|
-
}
|
|
11
8
|
function loadDataset() {
|
|
12
9
|
return dataset;
|
|
13
10
|
}
|
|
@@ -36,15 +33,15 @@ export function inferTherapeuticArea(indicationLabels) {
|
|
|
36
33
|
*/
|
|
37
34
|
export function getBenchmarks(therapeuticArea) {
|
|
38
35
|
const dataset = loadDataset();
|
|
39
|
-
const
|
|
40
|
-
const ta =
|
|
36
|
+
const requested = !therapeuticArea ? undefined : dataset.phase_transitions[therapeuticArea];
|
|
37
|
+
const ta = requested === undefined || therapeuticArea === null ? "all" : therapeuticArea;
|
|
41
38
|
return {
|
|
42
39
|
therapeutic_area: ta,
|
|
43
|
-
source:
|
|
40
|
+
source: requested === undefined ? "fallback" : "available",
|
|
44
41
|
data_version: dataset.data_version,
|
|
45
42
|
data_window: dataset.data_window,
|
|
46
43
|
attribution: dataset.source,
|
|
47
|
-
transitions: dataset.phase_transitions
|
|
44
|
+
transitions: requested ?? dataset.phase_transitions.all,
|
|
48
45
|
};
|
|
49
46
|
}
|
|
50
47
|
/** Return the dataset's metadata for transparency. */
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* `.optional()`, not `.nullable()`.
|
|
7
7
|
*/
|
|
8
8
|
import { z } from "zod";
|
|
9
|
-
export
|
|
9
|
+
export type ClinicalTrial = {
|
|
10
10
|
nctId: string;
|
|
11
11
|
title: string;
|
|
12
12
|
officialTitle: string | null;
|
|
@@ -24,13 +24,13 @@ export interface ClinicalTrial {
|
|
|
24
24
|
briefSummary: string | null;
|
|
25
25
|
detailedDescription: string | null;
|
|
26
26
|
sponsor: string | null;
|
|
27
|
-
}
|
|
28
|
-
export
|
|
27
|
+
};
|
|
28
|
+
export type ClinicalTrialIntervention = {
|
|
29
29
|
name: string;
|
|
30
30
|
type: string | null;
|
|
31
31
|
description: string | null;
|
|
32
32
|
otherNames: string[];
|
|
33
|
-
}
|
|
33
|
+
};
|
|
34
34
|
export type OutcomeEffect = {
|
|
35
35
|
kind: "quantitative";
|
|
36
36
|
value: number;
|
|
@@ -41,46 +41,46 @@ export type OutcomeEffect = {
|
|
|
41
41
|
kind: "not_extracted";
|
|
42
42
|
reason: "ctgov_no_numeric_result" | "ctgov_no_result_groups";
|
|
43
43
|
};
|
|
44
|
-
export
|
|
44
|
+
export type OutcomeMeasure = {
|
|
45
45
|
type: "primary" | "secondary" | "other";
|
|
46
46
|
measure: string;
|
|
47
47
|
description: string | null;
|
|
48
48
|
timeFrame: string | null;
|
|
49
49
|
effect: OutcomeEffect;
|
|
50
|
-
}
|
|
51
|
-
export
|
|
50
|
+
};
|
|
51
|
+
export type AdverseEventGroup = {
|
|
52
52
|
groupId: string;
|
|
53
53
|
title: string;
|
|
54
54
|
description: string | null;
|
|
55
|
-
}
|
|
56
|
-
export
|
|
55
|
+
};
|
|
56
|
+
export type AdverseEventCount = {
|
|
57
57
|
groupId: string;
|
|
58
58
|
numAffected: number | null;
|
|
59
59
|
numAtRisk: number | null;
|
|
60
|
-
}
|
|
61
|
-
export
|
|
60
|
+
};
|
|
61
|
+
export type AdverseEvent = {
|
|
62
62
|
serious: boolean;
|
|
63
63
|
term: string;
|
|
64
64
|
organSystem: string | null;
|
|
65
65
|
counts: AdverseEventCount[];
|
|
66
|
-
}
|
|
67
|
-
export
|
|
66
|
+
};
|
|
67
|
+
export type TrialDetails = {
|
|
68
68
|
trial: ClinicalTrial;
|
|
69
69
|
whyStopped: string | null;
|
|
70
70
|
outcomes: OutcomeMeasure[];
|
|
71
71
|
adverseEventGroups: AdverseEventGroup[];
|
|
72
72
|
adverseEvents: AdverseEvent[];
|
|
73
|
-
}
|
|
73
|
+
};
|
|
74
74
|
/**
|
|
75
75
|
* One phase token of `protocolSection.designModule.phases`. `NA` marks a study
|
|
76
76
|
* that runs under no phase, such as an observational study.
|
|
77
77
|
*/
|
|
78
78
|
export type TrialPhase = "EARLY_PHASE1" | "PHASE1" | "PHASE2" | "PHASE3" | "PHASE4" | "NA";
|
|
79
|
-
export
|
|
79
|
+
export type SearchOptions = {
|
|
80
80
|
phase?: TrialPhase;
|
|
81
81
|
status?: "RECRUITING" | "ACTIVE_NOT_RECRUITING" | "COMPLETED" | "NOT_YET_RECRUITING" | "TERMINATED" | "WITHDRAWN" | "SUSPENDED";
|
|
82
82
|
limit?: number;
|
|
83
|
-
}
|
|
83
|
+
};
|
|
84
84
|
/** One study record. It is exported so that the golden-fixture table drives it. */
|
|
85
85
|
export declare const CtStudySchema: z.ZodObject<{
|
|
86
86
|
protocolSection: z.ZodOptional<z.ZodObject<{
|
|
@@ -121,7 +121,7 @@ export declare const CtStudySchema: z.ZodObject<{
|
|
|
121
121
|
name: z.ZodOptional<z.ZodString>;
|
|
122
122
|
type: z.ZodOptional<z.ZodString>;
|
|
123
123
|
description: z.ZodOptional<z.ZodString>;
|
|
124
|
-
otherNames: z.ZodOptional<z.
|
|
124
|
+
otherNames: z.ZodOptional<z.ZodPipe<z.ZodArray<z.ZodJSONSchema>, z.ZodTransform<string[], z.JSONType[]>>>;
|
|
125
125
|
}, z.core.$strip>>>;
|
|
126
126
|
}, z.core.$strip>>;
|
|
127
127
|
sponsorCollaboratorsModule: z.ZodOptional<z.ZodObject<{
|
|
@@ -232,7 +232,7 @@ export declare const CtSearchResponseSchema: z.ZodObject<{
|
|
|
232
232
|
name: z.ZodOptional<z.ZodString>;
|
|
233
233
|
type: z.ZodOptional<z.ZodString>;
|
|
234
234
|
description: z.ZodOptional<z.ZodString>;
|
|
235
|
-
otherNames: z.ZodOptional<z.
|
|
235
|
+
otherNames: z.ZodOptional<z.ZodPipe<z.ZodArray<z.ZodJSONSchema>, z.ZodTransform<string[], z.JSONType[]>>>;
|
|
236
236
|
}, z.core.$strip>>>;
|
|
237
237
|
}, z.core.$strip>>;
|
|
238
238
|
sponsorCollaboratorsModule: z.ZodOptional<z.ZodObject<{
|
|
@@ -17,7 +17,11 @@ const CtInterventionSchema = z.object({
|
|
|
17
17
|
name: z.string().optional(),
|
|
18
18
|
type: z.string().optional(),
|
|
19
19
|
description: z.string().optional(),
|
|
20
|
-
|
|
20
|
+
// An alias is one name among others; a member that is not a string loses that name, never the study.
|
|
21
|
+
otherNames: z
|
|
22
|
+
.array(z.json())
|
|
23
|
+
.transform((names) => names.flatMap((name) => (typeof name === "string" ? [name] : [])))
|
|
24
|
+
.optional(),
|
|
21
25
|
});
|
|
22
26
|
const CtOutcomeSchema = z.object({
|
|
23
27
|
measure: z.string().optional(),
|
|
@@ -140,7 +144,7 @@ export function mapClinicalTrialStudy(s) {
|
|
|
140
144
|
name: i.name ?? "Unknown",
|
|
141
145
|
type: i.type ?? null,
|
|
142
146
|
description: i.description ?? null,
|
|
143
|
-
otherNames:
|
|
147
|
+
otherNames: i.otherNames ?? [],
|
|
144
148
|
}));
|
|
145
149
|
const interventions = interventionDetails.map((i) => i.name);
|
|
146
150
|
const sponsor = proto.sponsorCollaboratorsModule?.leadSponsor?.name ?? null;
|
|
@@ -195,11 +199,11 @@ export async function searchTrials(query, options = {}) {
|
|
|
195
199
|
});
|
|
196
200
|
if (res.isErr())
|
|
197
201
|
throw new Error(describeApiError(res.error));
|
|
198
|
-
const studies = res.value
|
|
202
|
+
const studies = res.value.studies ?? [];
|
|
199
203
|
const phase = options.phase;
|
|
200
204
|
const selected = phase ? studies.filter((study) => studyHasPhase(study, phase)) : studies;
|
|
201
205
|
const trials = selected.slice(0, limit).map(mapClinicalTrialStudy);
|
|
202
|
-
return { totalFound: res.value
|
|
206
|
+
return { totalFound: res.value.totalCount ?? trials.length, trials };
|
|
203
207
|
}
|
|
204
208
|
/** Search trials whose intervention or condition mentions the gene/target. */
|
|
205
209
|
export async function searchTrialsForTarget(symbol, options = {}) {
|
|
@@ -272,12 +276,8 @@ function extractEffect(resultsMeasure) {
|
|
|
272
276
|
kind: "quantitative",
|
|
273
277
|
value: num,
|
|
274
278
|
units: resultsMeasure?.unitOfMeasure ?? "",
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
: {}),
|
|
278
|
-
...(m.upperLimit !== undefined && m.upperLimit !== null && !isNaN(parseFloat(m.upperLimit))
|
|
279
|
-
? { ci_high: parseFloat(m.upperLimit) }
|
|
280
|
-
: {}),
|
|
279
|
+
ci_low: m.lowerLimit !== undefined && !isNaN(parseFloat(m.lowerLimit)) ? parseFloat(m.lowerLimit) : undefined,
|
|
280
|
+
ci_high: m.upperLimit !== undefined && !isNaN(parseFloat(m.upperLimit)) ? parseFloat(m.upperLimit) : undefined,
|
|
281
281
|
};
|
|
282
282
|
}
|
|
283
283
|
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { z } from "zod";
|
|
7
7
|
export type ClinicalSignificance = "pathogenic" | "likely-pathogenic" | "benign" | "likely-benign" | "uncertain";
|
|
8
|
-
export
|
|
8
|
+
export type ClinvarVariant = {
|
|
9
9
|
variationId: string;
|
|
10
10
|
title: string;
|
|
11
11
|
clinicalSignificance: string;
|
|
@@ -14,7 +14,7 @@ export interface ClinvarVariant {
|
|
|
14
14
|
molecularConsequence: string;
|
|
15
15
|
conditions: string[];
|
|
16
16
|
accession: string;
|
|
17
|
-
}
|
|
17
|
+
};
|
|
18
18
|
export declare const ClinvarSearchResponseSchema: z.ZodObject<{
|
|
19
19
|
esearchresult: z.ZodOptional<z.ZodObject<{
|
|
20
20
|
idlist: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -53,10 +53,10 @@ const SIG_MAP = {
|
|
|
53
53
|
};
|
|
54
54
|
/** Filter out uninformative ClinVar entries (literal "not provided", placeholders). */
|
|
55
55
|
export function filterInformative(variants) {
|
|
56
|
-
const noise =
|
|
56
|
+
const noise = new Set(["not provided", "not specified", "reclassified"]);
|
|
57
57
|
return variants.filter((v) => {
|
|
58
|
-
const sig =
|
|
59
|
-
if (!sig || noise.
|
|
58
|
+
const sig = v.clinicalSignificance.trim();
|
|
59
|
+
if (!sig || noise.has(sig.toLowerCase()))
|
|
60
60
|
return false;
|
|
61
61
|
return true;
|
|
62
62
|
});
|
|
@@ -76,8 +76,8 @@ export async function searchClinvar(ncbiApiKey, query, options = {}) {
|
|
|
76
76
|
const searchRes = await apiFetchValidated(searchUrl, ClinvarSearchResponseSchema);
|
|
77
77
|
if (searchRes.isErr())
|
|
78
78
|
throw new Error(describeApiError(searchRes.error));
|
|
79
|
-
const ids = searchRes.value
|
|
80
|
-
const totalFound = Number(searchRes.value
|
|
79
|
+
const ids = searchRes.value.esearchresult?.idlist ?? [];
|
|
80
|
+
const totalFound = Number(searchRes.value.esearchresult?.count ?? ids.length);
|
|
81
81
|
if (ids.length === 0)
|
|
82
82
|
return { totalFound, variants: [] };
|
|
83
83
|
const summaryUrl = ncbiUrl(ncbiApiKey, "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi", {
|
|
@@ -98,7 +98,7 @@ export async function searchClinvar(ncbiApiKey, query, options = {}) {
|
|
|
98
98
|
* golden-fixture table exercises it against a stored payload.
|
|
99
99
|
*/
|
|
100
100
|
export function mapClinvarVariants(ids, summary) {
|
|
101
|
-
const result = summary
|
|
101
|
+
const result = summary.result ?? {};
|
|
102
102
|
const rawUids = result.uids;
|
|
103
103
|
const uids = Array.isArray(rawUids) ? rawUids : ids;
|
|
104
104
|
return uids.map((uid) => {
|
|
@@ -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
|
*
|