@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,11 +9,11 @@
|
|
|
9
9
|
* not `.nullable()`.
|
|
10
10
|
*/
|
|
11
11
|
import { z } from "zod";
|
|
12
|
-
export
|
|
12
|
+
export type AdverseEventCount = {
|
|
13
13
|
reaction: string;
|
|
14
14
|
count: number;
|
|
15
|
-
}
|
|
16
|
-
export
|
|
15
|
+
};
|
|
16
|
+
export type DrugLabelAction = {
|
|
17
17
|
applicationNumber: string | null;
|
|
18
18
|
brandName: string | null;
|
|
19
19
|
genericName: string | null;
|
|
@@ -23,8 +23,8 @@ export interface DrugLabelAction {
|
|
|
23
23
|
warningsAndCautions: string | null;
|
|
24
24
|
hasRems: boolean;
|
|
25
25
|
sourceUrl: string;
|
|
26
|
-
}
|
|
27
|
-
export
|
|
26
|
+
};
|
|
27
|
+
export type SeriousnessProfile = {
|
|
28
28
|
totalReports: number;
|
|
29
29
|
fatalCount: number;
|
|
30
30
|
hospitalizationCount: number;
|
|
@@ -32,7 +32,7 @@ export interface SeriousnessProfile {
|
|
|
32
32
|
disablingCount: number;
|
|
33
33
|
congenitalAnomalyCount: number;
|
|
34
34
|
otherSeriousCount: number;
|
|
35
|
-
}
|
|
35
|
+
};
|
|
36
36
|
/** Top adverse-reaction terms by count for a generic drug name. */
|
|
37
37
|
export declare function getFaersByDrug(drugName: string, options?: {
|
|
38
38
|
limit?: number;
|
|
@@ -49,29 +49,29 @@ export declare function getFaersByDrug(drugName: string, options?: {
|
|
|
49
49
|
export declare function getFaersSeriousness(drugName: string): Promise<SeriousnessProfile | null>;
|
|
50
50
|
export declare const OpenFdaLabelResponseSchema: z.ZodObject<{
|
|
51
51
|
results: z.ZodOptional<z.ZodArray<z.ZodPipe<z.ZodObject<{
|
|
52
|
-
set_id: z.ZodOptional<z.
|
|
52
|
+
set_id: z.ZodOptional<z.ZodJSONSchema>;
|
|
53
53
|
openfda: z.ZodOptional<z.ZodObject<{
|
|
54
|
-
application_number: z.ZodOptional<z.
|
|
55
|
-
brand_name: z.ZodOptional<z.
|
|
56
|
-
generic_name: z.ZodOptional<z.
|
|
54
|
+
application_number: z.ZodOptional<z.ZodJSONSchema>;
|
|
55
|
+
brand_name: z.ZodOptional<z.ZodJSONSchema>;
|
|
56
|
+
generic_name: z.ZodOptional<z.ZodJSONSchema>;
|
|
57
57
|
}, z.core.$strip>>;
|
|
58
|
-
effective_time: z.ZodOptional<z.
|
|
59
|
-
boxed_warning: z.ZodOptional<z.
|
|
60
|
-
warnings_and_cautions: z.ZodOptional<z.
|
|
61
|
-
warnings: z.ZodOptional<z.
|
|
58
|
+
effective_time: z.ZodOptional<z.ZodJSONSchema>;
|
|
59
|
+
boxed_warning: z.ZodOptional<z.ZodJSONSchema>;
|
|
60
|
+
warnings_and_cautions: z.ZodOptional<z.ZodJSONSchema>;
|
|
61
|
+
warnings: z.ZodOptional<z.ZodJSONSchema>;
|
|
62
62
|
spl_medguide: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
63
63
|
patient_medication_information: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
64
64
|
}, z.core.$strip>, z.ZodTransform<DrugLabelAction, {
|
|
65
|
-
set_id?:
|
|
65
|
+
set_id?: z.JSONType | undefined;
|
|
66
66
|
openfda?: {
|
|
67
|
-
application_number?:
|
|
68
|
-
brand_name?:
|
|
69
|
-
generic_name?:
|
|
67
|
+
application_number?: z.JSONType | undefined;
|
|
68
|
+
brand_name?: z.JSONType | undefined;
|
|
69
|
+
generic_name?: z.JSONType | undefined;
|
|
70
70
|
} | undefined;
|
|
71
|
-
effective_time?:
|
|
72
|
-
boxed_warning?:
|
|
73
|
-
warnings_and_cautions?:
|
|
74
|
-
warnings?:
|
|
71
|
+
effective_time?: z.JSONType | undefined;
|
|
72
|
+
boxed_warning?: z.JSONType | undefined;
|
|
73
|
+
warnings_and_cautions?: z.JSONType | undefined;
|
|
74
|
+
warnings?: z.JSONType | undefined;
|
|
75
75
|
spl_medguide?: string[] | undefined;
|
|
76
76
|
patient_medication_information?: string[] | undefined;
|
|
77
77
|
}>>>>;
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
* not `.nullable()`.
|
|
10
10
|
*/
|
|
11
11
|
import { z } from "zod";
|
|
12
|
+
import { isUnknownArray } from "../../lib/unknown-array.js";
|
|
12
13
|
import { apiFetchValidated, describeApiError } from "./api-utils.js";
|
|
13
14
|
import { OPENFDA_BASE, OPENFDA_LABEL_BASE } from "./openfda-config.js";
|
|
14
15
|
// FAERS count/meta wire shapes, validated at the fetch boundary. Every field is
|
|
@@ -22,9 +23,9 @@ const FaersMetaResponseSchema = z.object({
|
|
|
22
23
|
});
|
|
23
24
|
/** openFDA drug-label metadata block (`openfda`) — all fields free-form JSON. */
|
|
24
25
|
const OpenFdaLabelMetaSchema = z.object({
|
|
25
|
-
application_number: z.
|
|
26
|
-
brand_name: z.
|
|
27
|
-
generic_name: z.
|
|
26
|
+
application_number: z.json().optional(),
|
|
27
|
+
brand_name: z.json().optional(),
|
|
28
|
+
generic_name: z.json().optional(),
|
|
28
29
|
});
|
|
29
30
|
/**
|
|
30
31
|
* A single openFDA structured-product-label record (raw wire shape).
|
|
@@ -34,12 +35,12 @@ const OpenFdaLabelMetaSchema = z.object({
|
|
|
34
35
|
* provider types both as an array of string.
|
|
35
36
|
*/
|
|
36
37
|
const OpenFdaLabelSchema = z.object({
|
|
37
|
-
set_id: z.
|
|
38
|
+
set_id: z.json().optional(),
|
|
38
39
|
openfda: OpenFdaLabelMetaSchema.optional(),
|
|
39
|
-
effective_time: z.
|
|
40
|
-
boxed_warning: z.
|
|
41
|
-
warnings_and_cautions: z.
|
|
42
|
-
warnings: z.
|
|
40
|
+
effective_time: z.json().optional(),
|
|
41
|
+
boxed_warning: z.json().optional(),
|
|
42
|
+
warnings_and_cautions: z.json().optional(),
|
|
43
|
+
warnings: z.json().optional(),
|
|
43
44
|
spl_medguide: z.array(z.string()).optional(),
|
|
44
45
|
patient_medication_information: z.array(z.string()).optional(),
|
|
45
46
|
});
|
|
@@ -49,7 +50,7 @@ const OpenFdaLabelSchema = z.object({
|
|
|
49
50
|
* unescaped `"` past the quote escaping and break out of the phrase.
|
|
50
51
|
*/
|
|
51
52
|
function escapeQueryPhrase(value) {
|
|
52
|
-
return value.
|
|
53
|
+
return value.replaceAll("\\", "\\\\").replaceAll('"', '\\"');
|
|
53
54
|
}
|
|
54
55
|
/**
|
|
55
56
|
* A boolean operator is separated by a space, never by a literal `+`. The whole
|
|
@@ -76,13 +77,13 @@ export async function getFaersByDrug(drugName, options = {}) {
|
|
|
76
77
|
return { totalReports: 0, adverseEvents: [] };
|
|
77
78
|
throw new Error(describeApiError(res.error));
|
|
78
79
|
}
|
|
79
|
-
const adverseEvents = (res.value
|
|
80
|
+
const adverseEvents = (res.value.results ?? []).map((r) => ({
|
|
80
81
|
reaction: r.term ?? "Unknown",
|
|
81
82
|
count: r.count ?? 0,
|
|
82
83
|
}));
|
|
83
84
|
const totalUrl = `${OPENFDA_BASE}?search=${encodeURIComponent(search)}&limit=1`;
|
|
84
85
|
const totalRes = await apiFetchValidated(totalUrl, FaersMetaResponseSchema);
|
|
85
|
-
const totalReports = totalRes.isOk() ? totalRes.value
|
|
86
|
+
const totalReports = totalRes.isOk() ? totalRes.value.meta?.results?.total : undefined;
|
|
86
87
|
return { totalReports, adverseEvents };
|
|
87
88
|
}
|
|
88
89
|
/**
|
|
@@ -100,7 +101,7 @@ export async function getFaersSeriousness(drugName) {
|
|
|
100
101
|
return null;
|
|
101
102
|
throw new Error(describeApiError(totalRes.error));
|
|
102
103
|
}
|
|
103
|
-
const totalReports = totalRes.value
|
|
104
|
+
const totalReports = totalRes.value.meta?.results?.total ?? 0;
|
|
104
105
|
if (totalReports === 0) {
|
|
105
106
|
return {
|
|
106
107
|
totalReports: 0,
|
|
@@ -118,7 +119,7 @@ export async function getFaersSeriousness(drugName) {
|
|
|
118
119
|
const res = await apiFetchValidated(url, FaersMetaResponseSchema);
|
|
119
120
|
if (res.isErr())
|
|
120
121
|
return 0;
|
|
121
|
-
return res.value
|
|
122
|
+
return res.value.meta?.results?.total ?? 0;
|
|
122
123
|
}
|
|
123
124
|
const [fatal, hosp, lifeT, dis, cong, other] = await Promise.all([
|
|
124
125
|
countWith("seriousnessdeath"),
|
|
@@ -139,7 +140,7 @@ export async function getFaersSeriousness(drugName) {
|
|
|
139
140
|
};
|
|
140
141
|
}
|
|
141
142
|
function firstString(value) {
|
|
142
|
-
if (
|
|
143
|
+
if (isUnknownArray(value)) {
|
|
143
144
|
const first = value.find((v) => typeof v === "string" && v.trim());
|
|
144
145
|
return typeof first === "string" ? first : null;
|
|
145
146
|
}
|
|
@@ -149,7 +150,7 @@ function firstString(value) {
|
|
|
149
150
|
}
|
|
150
151
|
function joinSection(value) {
|
|
151
152
|
if (Array.isArray(value)) {
|
|
152
|
-
const parts = value.
|
|
153
|
+
const parts = value.flatMap((v) => (typeof v === "string" && v.trim().length > 0 ? [v] : []));
|
|
153
154
|
if (parts.length === 0)
|
|
154
155
|
return null;
|
|
155
156
|
return parts.join("\n\n");
|
|
@@ -164,30 +165,30 @@ function joinSection(value) {
|
|
|
164
165
|
* keyed by application number when only that is available.
|
|
165
166
|
*/
|
|
166
167
|
function buildLabelSourceUrl(label) {
|
|
167
|
-
const setId = typeof label
|
|
168
|
+
const setId = typeof label.set_id === "string" ? label.set_id : null;
|
|
168
169
|
if (setId)
|
|
169
170
|
return `https://dailymed.nlm.nih.gov/dailymed/drugInfo.cfm?setid=${setId}`;
|
|
170
|
-
const appNum = firstString(label
|
|
171
|
+
const appNum = firstString(label.openfda?.application_number);
|
|
171
172
|
if (appNum) {
|
|
172
173
|
return `https://www.accessdata.fda.gov/scripts/cder/daf/index.cfm?event=overview.process&ApplNo=${encodeURIComponent(appNum)}`;
|
|
173
174
|
}
|
|
174
175
|
return "https://www.accessdata.fda.gov/scripts/cder/daf/";
|
|
175
176
|
}
|
|
176
177
|
function mapLabel(raw) {
|
|
177
|
-
const openfda = raw
|
|
178
|
+
const openfda = raw.openfda ?? {};
|
|
178
179
|
// The label reference carries no REMS field, thus the signal is the word
|
|
179
180
|
// itself in one of the three sections that a REMS program writes to. The
|
|
180
181
|
// presence of a medication guide alone is not the signal: many labels with no
|
|
181
182
|
// REMS carry one, and a presence test would report a REMS that does not exist.
|
|
182
|
-
const remsTextCandidates = [raw
|
|
183
|
+
const remsTextCandidates = [raw.boxed_warning, raw.spl_medguide, raw.patient_medication_information];
|
|
183
184
|
const hasRems = remsTextCandidates.some((v) => joinSection(v)?.toLowerCase().includes("rems") ?? false);
|
|
184
185
|
return {
|
|
185
186
|
applicationNumber: firstString(openfda.application_number),
|
|
186
187
|
brandName: firstString(openfda.brand_name),
|
|
187
188
|
genericName: firstString(openfda.generic_name),
|
|
188
|
-
effectiveTime: typeof raw
|
|
189
|
-
boxedWarning: joinSection(raw
|
|
190
|
-
warningsAndCautions: joinSection(raw
|
|
189
|
+
effectiveTime: typeof raw.effective_time === "string" ? raw.effective_time : null,
|
|
190
|
+
boxedWarning: joinSection(raw.boxed_warning),
|
|
191
|
+
warningsAndCautions: joinSection(raw.warnings_and_cautions) ?? joinSection(raw.warnings),
|
|
191
192
|
hasRems,
|
|
192
193
|
sourceUrl: buildLabelSourceUrl(raw),
|
|
193
194
|
};
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* thus the SDL gives each modifier and `.optional()` is wrong.
|
|
9
9
|
*/
|
|
10
10
|
import { z } from "zod";
|
|
11
|
-
export
|
|
11
|
+
export type Association = {
|
|
12
12
|
diseaseId: string;
|
|
13
13
|
diseaseName: string;
|
|
14
14
|
targetId?: string;
|
|
@@ -21,42 +21,42 @@ export interface Association {
|
|
|
21
21
|
animalModelScore: number | null;
|
|
22
22
|
somaticMutationScore: number | null;
|
|
23
23
|
literaturePmids: string[];
|
|
24
|
-
}
|
|
24
|
+
};
|
|
25
25
|
/**
|
|
26
26
|
* The positive tractability buckets of each modality, by their Open Targets label
|
|
27
27
|
* ('Approved Drug', 'Structure with Ligand', 'UniProt loc high conf', …). An empty
|
|
28
28
|
* list means no positive bucket. `null` means Open Targets gives no row for the modality.
|
|
29
29
|
*/
|
|
30
|
-
export
|
|
30
|
+
export type TargetTractability = {
|
|
31
31
|
smallMolecule: string[] | null;
|
|
32
32
|
antibody: string[] | null;
|
|
33
33
|
otherModalities: string[] | null;
|
|
34
|
-
}
|
|
35
|
-
export
|
|
34
|
+
};
|
|
35
|
+
export type TargetInfo = {
|
|
36
36
|
ensemblId: string;
|
|
37
37
|
approvedSymbol: string;
|
|
38
38
|
approvedName: string;
|
|
39
39
|
tractability: TargetTractability | null;
|
|
40
40
|
associations: Association[];
|
|
41
|
-
}
|
|
42
|
-
export
|
|
41
|
+
};
|
|
42
|
+
export type SafetyLiability = {
|
|
43
43
|
event: string;
|
|
44
44
|
biosamples: string[];
|
|
45
45
|
effects: string | null;
|
|
46
46
|
source: string;
|
|
47
|
-
}
|
|
47
|
+
};
|
|
48
48
|
/**
|
|
49
49
|
* One disease or trait that Open Targets holds, as the free-text resolver
|
|
50
50
|
* returns it. The `id` is the identifier that `searchDiseaseAssociations`
|
|
51
51
|
* accepts. Open Targets keys a disease on the EFO ontology, which imports
|
|
52
52
|
* MONDO, Orphanet and HP, thus an id can read `EFO_…`, `MONDO_…` or `HP_…`.
|
|
53
53
|
*/
|
|
54
|
-
export
|
|
54
|
+
export type DiseaseCandidate = {
|
|
55
55
|
id: string;
|
|
56
56
|
name: string;
|
|
57
57
|
description: string | null;
|
|
58
|
-
}
|
|
59
|
-
export
|
|
58
|
+
};
|
|
59
|
+
export type BaselineExpressionEntry = {
|
|
60
60
|
tissueId: string;
|
|
61
61
|
tissueLabel: string;
|
|
62
62
|
organSystem: string | null;
|
|
@@ -74,7 +74,7 @@ export interface BaselineExpressionEntry {
|
|
|
74
74
|
protein: {
|
|
75
75
|
level: number | null;
|
|
76
76
|
} | null;
|
|
77
|
-
}
|
|
77
|
+
};
|
|
78
78
|
export declare const TargetAssociationsDataSchema: z.ZodObject<{
|
|
79
79
|
target: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
80
80
|
id: z.ZodString;
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
import { z } from "zod";
|
|
11
11
|
export declare function stripHtmlAndCollapseWs(s: string): string;
|
|
12
12
|
export type PathwaySource = "kegg" | "reactome";
|
|
13
|
-
export
|
|
13
|
+
export type Pathway = {
|
|
14
14
|
id: string;
|
|
15
15
|
name: string;
|
|
16
16
|
source: PathwaySource;
|
|
@@ -18,7 +18,7 @@ export interface Pathway {
|
|
|
18
18
|
genes?: string[];
|
|
19
19
|
entity_uniprots?: string[];
|
|
20
20
|
url?: string;
|
|
21
|
-
}
|
|
21
|
+
};
|
|
22
22
|
export declare const ReactomeSearchResponseSchema: z.ZodObject<{
|
|
23
23
|
results: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
24
24
|
entries: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
@@ -38,12 +38,12 @@ export declare const ReactomeParticipantEntitiesSchema: z.ZodArray<z.ZodObject<{
|
|
|
38
38
|
identifier: z.ZodOptional<z.ZodString>;
|
|
39
39
|
}, z.core.$strip>>>;
|
|
40
40
|
}, z.core.$strip>>;
|
|
41
|
-
export
|
|
41
|
+
export type PathwaySearchOptions = {
|
|
42
42
|
source?: "kegg" | "reactome" | "both";
|
|
43
43
|
organism?: string;
|
|
44
44
|
includeGenes?: boolean;
|
|
45
45
|
maxResults?: number;
|
|
46
|
-
}
|
|
46
|
+
};
|
|
47
47
|
export declare function searchKegg(query: string, organism: string, maxResults: number, includeGenes: boolean): Promise<Pathway[]>;
|
|
48
48
|
/**
|
|
49
49
|
* Read the KEGG gene identifier of a symbol, for example `hsa:7157` for `TP53`.
|
|
@@ -8,7 +8,9 @@
|
|
|
8
8
|
* key to omit.
|
|
9
9
|
*/
|
|
10
10
|
import { z } from "zod";
|
|
11
|
-
import {
|
|
11
|
+
import { apiFetchText, apiFetchValidated, parseTSV } from "./api-utils.js";
|
|
12
|
+
import { collapseWhitespace } from "../../lib/text.js";
|
|
13
|
+
import { stripHtmlTags } from "./html-text.js";
|
|
12
14
|
const KEGG_BASE = "https://rest.kegg.jp";
|
|
13
15
|
// Both `reactome.org/ContentService` and `release.reactome.org/ContentService`
|
|
14
16
|
// answer 200 on each path that this file calls. The two hosts serve different
|
|
@@ -17,16 +19,7 @@ const KEGG_BASE = "https://rest.kegg.jp";
|
|
|
17
19
|
// links to stay on the primary host.
|
|
18
20
|
const REACTOME_BASE = "https://release.reactome.org/ContentService";
|
|
19
21
|
export function stripHtmlAndCollapseWs(s) {
|
|
20
|
-
|
|
21
|
-
// removing an inner tag lets the surrounding angle brackets form a new one,
|
|
22
|
-
// so repeat until the string stops changing.
|
|
23
|
-
let out = s;
|
|
24
|
-
let prev;
|
|
25
|
-
do {
|
|
26
|
-
prev = out;
|
|
27
|
-
out = out.replace(/<[^>]+>/g, "");
|
|
28
|
-
} while (out !== prev);
|
|
29
|
-
return out.replace(/\s+/g, " ").trim();
|
|
22
|
+
return collapseWhitespace(stripHtmlTags(s));
|
|
30
23
|
}
|
|
31
24
|
const ORGANISM_MAP = {
|
|
32
25
|
hsa: "Homo sapiens",
|
|
@@ -60,7 +53,7 @@ export const ReactomeParticipantEntitiesSchema = z.array(z.object({
|
|
|
60
53
|
refEntities: z.array(z.object({ schemaClass: z.string().optional(), identifier: z.string().optional() })).optional(),
|
|
61
54
|
}));
|
|
62
55
|
export async function searchKegg(query, organism, maxResults, includeGenes) {
|
|
63
|
-
const searchRes = await
|
|
56
|
+
const searchRes = await apiFetchText(`${KEGG_BASE}/find/pathway/${encodeURIComponent(query)}`);
|
|
64
57
|
if (searchRes.isErr())
|
|
65
58
|
return [];
|
|
66
59
|
const rows = parseTSV(searchRes.value);
|
|
@@ -75,7 +68,7 @@ export async function searchKegg(query, organism, maxResults, includeGenes) {
|
|
|
75
68
|
});
|
|
76
69
|
if (includeGenes) {
|
|
77
70
|
for (const pw of pathways) {
|
|
78
|
-
const geneRes = await
|
|
71
|
+
const geneRes = await apiFetchText(`${KEGG_BASE}/link/${organism}/${pw.id}`);
|
|
79
72
|
if (geneRes.isOk()) {
|
|
80
73
|
const geneRows = parseTSV(geneRes.value);
|
|
81
74
|
pw.genes = geneRows.map((r) => (r[1] ?? "").replace(`${organism}:`, ""));
|
|
@@ -125,13 +118,13 @@ export function parseKeggPathwayLinks(rows) {
|
|
|
125
118
|
* organism, thus it replaces one `get/{id}` call for each membership.
|
|
126
119
|
*/
|
|
127
120
|
export async function keggPathwaysForGene(geneSymbol, organism, maxResults) {
|
|
128
|
-
const geneRes = await
|
|
121
|
+
const geneRes = await apiFetchText(`${KEGG_BASE}/find/${organism}/${encodeURIComponent(geneSymbol)}`);
|
|
129
122
|
if (geneRes.isErr())
|
|
130
123
|
return [];
|
|
131
124
|
const geneId = selectKeggGeneId(parseTSV(geneRes.value), geneSymbol);
|
|
132
125
|
if (!geneId)
|
|
133
126
|
return [];
|
|
134
|
-
const linkRes = await
|
|
127
|
+
const linkRes = await apiFetchText(`${KEGG_BASE}/link/pathway/${encodeURIComponent(geneId)}`);
|
|
135
128
|
if (linkRes.isErr())
|
|
136
129
|
return [];
|
|
137
130
|
const pathwayIds = parseKeggPathwayLinks(parseTSV(linkRes.value)).slice(0, maxResults);
|
|
@@ -148,7 +141,7 @@ export async function keggPathwaysForGene(geneSymbol, organism, maxResults) {
|
|
|
148
141
|
/** The pathway vocabulary of one organism, keyed by the pathway identifier. */
|
|
149
142
|
async function keggPathwayNames(organism) {
|
|
150
143
|
const names = new Map();
|
|
151
|
-
const res = await
|
|
144
|
+
const res = await apiFetchText(`${KEGG_BASE}/list/pathway/${encodeURIComponent(organism)}`);
|
|
152
145
|
if (res.isErr())
|
|
153
146
|
return names;
|
|
154
147
|
for (const cols of parseTSV(res.value)) {
|
|
@@ -217,16 +210,19 @@ export async function searchPathways(query, options = {}) {
|
|
|
217
210
|
return results.flat();
|
|
218
211
|
}
|
|
219
212
|
/** A Reactome stable identifier, for example `R-HSA-109581`. */
|
|
213
|
+
// oxlint-disable-next-line eslint-js/no-restricted-syntax -- the Reactome stable-id grammar: R-, three letters, digits, and an optional dotted subnumber.
|
|
220
214
|
const REACTOME_ID_RE = /^R-[A-Z]{3}-\d+(\.\d+)?$/;
|
|
221
215
|
/** A KEGG pathway identifier, for example `hsa04010` or `map04010`. */
|
|
216
|
+
// oxlint-disable-next-line eslint-js/no-restricted-syntax -- the KEGG pathway-id grammar: three or four lowercase organism letters plus five digits.
|
|
222
217
|
const KEGG_ID_RE = /^[a-z]{3,4}\d{5}$/;
|
|
223
218
|
/** Read one field out of a KEGG flat-file record. */
|
|
224
219
|
function keggField(record, field) {
|
|
220
|
+
// oxlint-disable-next-line eslint-js/no-restricted-syntax -- the field name is a caller literal ("NAME", "DESCRIPTION"); the anchored multiline form reads the KEGG flat-file grammar.
|
|
225
221
|
const match = new RegExp(`^${field}\\s+(.*)$`, "m").exec(record);
|
|
226
222
|
return match?.[1]?.trim() || null;
|
|
227
223
|
}
|
|
228
224
|
async function getKeggPathway(id) {
|
|
229
|
-
const res = await
|
|
225
|
+
const res = await apiFetchText(`${KEGG_BASE}/get/${encodeURIComponent(id)}`);
|
|
230
226
|
if (res.isErr())
|
|
231
227
|
return null;
|
|
232
228
|
const record = res.value;
|
|
@@ -238,7 +234,7 @@ async function getKeggPathway(id) {
|
|
|
238
234
|
id,
|
|
239
235
|
name,
|
|
240
236
|
source: "kegg",
|
|
241
|
-
|
|
237
|
+
description: description ?? undefined,
|
|
242
238
|
url: `https://www.kegg.jp/pathway/${id}`,
|
|
243
239
|
};
|
|
244
240
|
}
|
|
@@ -255,7 +251,7 @@ async function getReactomePathway(id) {
|
|
|
255
251
|
id: stId,
|
|
256
252
|
name: stripHtmlAndCollapseWs(entry.displayName ?? ""),
|
|
257
253
|
source: "reactome",
|
|
258
|
-
|
|
254
|
+
description: description === undefined ? undefined : stripHtmlAndCollapseWs(description),
|
|
259
255
|
url: `https://reactome.org/content/detail/${stId}`,
|
|
260
256
|
};
|
|
261
257
|
}
|
|
@@ -45,11 +45,11 @@ export declare const PharmgkbResponseSchema: z.ZodObject<{
|
|
|
45
45
|
* phenotype, guideline source and summary live on other PharmGKB resources, so
|
|
46
46
|
* they are absent here rather than present-and-null.
|
|
47
47
|
*/
|
|
48
|
-
export
|
|
48
|
+
export type PharmgkbAnnotation = {
|
|
49
49
|
gene: string;
|
|
50
50
|
drug: string;
|
|
51
51
|
levelOfEvidence: string;
|
|
52
|
-
}
|
|
52
|
+
};
|
|
53
53
|
export declare function searchPharmgkb(query: string, searchType: "gene" | "drug", limit?: number): Promise<{
|
|
54
54
|
annotations: PharmgkbAnnotation[];
|
|
55
55
|
totalFound: number;
|
|
@@ -38,7 +38,7 @@ export async function searchPharmgkb(query, searchType, limit = 20) {
|
|
|
38
38
|
return { annotations: [], totalFound: 0 };
|
|
39
39
|
throw new Error(describeApiError(res.error));
|
|
40
40
|
}
|
|
41
|
-
const data = res.value
|
|
41
|
+
const data = res.value.data ?? [];
|
|
42
42
|
const annotations = data.slice(0, limit).map((ann) => ({
|
|
43
43
|
gene: ann.location?.genes?.map((g) => g.symbol).join(", ") ?? query,
|
|
44
44
|
drug: ann.relatedChemicals?.map((c) => c.name).join(", ") ?? "",
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
* Protein-family → preferred modality lookup, used by §2.2 Tractability
|
|
3
3
|
* fallback when Open Targets has no tractability assessment for the target.
|
|
4
4
|
*/
|
|
5
|
-
export
|
|
5
|
+
export type ModalityFallback = {
|
|
6
6
|
family: string | null;
|
|
7
7
|
preferred_modality: string;
|
|
8
8
|
rationale: string;
|
|
9
9
|
source: "family-match" | "default";
|
|
10
|
-
}
|
|
10
|
+
};
|
|
11
11
|
/**
|
|
12
12
|
* Infer a preferred modality from a free-text protein-family description
|
|
13
13
|
* (typically the UniProt family/keyword). Returns the dataset default when
|
|
@@ -4,8 +4,6 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import familyMappingData from "../../data/protein-family-modality.json" with { type: "json" };
|
|
6
6
|
import { normalizeProteinFamily } from "./protein-family-normalize.js";
|
|
7
|
-
// The JSON import yields an untyped/structurally-wide value; cast to the declared
|
|
8
|
-
// shape, which the bundled data file is authored to satisfy.
|
|
9
7
|
const dataset = familyMappingData;
|
|
10
8
|
function loadDataset() {
|
|
11
9
|
return dataset;
|
|
@@ -11,19 +11,26 @@ const FAMILIES = [
|
|
|
11
11
|
{
|
|
12
12
|
canonical: "g protein-coupled receptor",
|
|
13
13
|
patterns: [
|
|
14
|
+
// oxlint-disable-next-line eslint-js/no-restricted-syntax -- the hyphen-variant spellings of the GPCR name, matched as whole words.
|
|
14
15
|
/\bg[-\s]?protein[-\s]?coupled\s+receptor\b/i,
|
|
16
|
+
// oxlint-disable-next-line eslint-js/no-restricted-syntax -- the GPCR abbreviation as a whole word.
|
|
15
17
|
/\bgpcr\b/i,
|
|
18
|
+
// oxlint-disable-next-line eslint-js/no-restricted-syntax -- the seven-transmembrane spelling of the family name.
|
|
16
19
|
/\b7tm\s+receptor\b/i,
|
|
20
|
+
// oxlint-disable-next-line eslint-js/no-restricted-syntax -- the rhodopsin-like subfamily spelling.
|
|
17
21
|
/\brhodopsin-like\s+receptor\b/i,
|
|
22
|
+
// oxlint-disable-next-line eslint-js/no-restricted-syntax -- the secretin-like subfamily spelling.
|
|
18
23
|
/\bsecretin-like\s+receptor\b/i,
|
|
19
24
|
],
|
|
20
25
|
},
|
|
21
26
|
{
|
|
22
27
|
canonical: "serine/threonine-protein kinase",
|
|
28
|
+
// oxlint-disable-next-line eslint-js/no-restricted-syntax -- the hyphen-variant spellings of the serine/threonine kinase name.
|
|
23
29
|
patterns: [/\bserine\/threonine[-\s]?protein\s+kinase\b/i],
|
|
24
30
|
},
|
|
25
31
|
{
|
|
26
32
|
canonical: "tyrosine-protein kinase",
|
|
33
|
+
// oxlint-disable-next-line eslint-js/no-restricted-syntax -- the hyphen-variant spellings of the tyrosine kinase name.
|
|
27
34
|
patterns: [/\btyrosine[-\s]?protein\s+kinase\b/i],
|
|
28
35
|
},
|
|
29
36
|
// Extend as additional hyphen-style mismatches surface. The default branch
|
|
@@ -13,14 +13,14 @@
|
|
|
13
13
|
* carries `.optional()`, not `.nullable()`.
|
|
14
14
|
*/
|
|
15
15
|
import { z } from "zod";
|
|
16
|
-
export
|
|
16
|
+
export type PubChemCompoundProperties = {
|
|
17
17
|
cid: number;
|
|
18
18
|
molecularWeight: number | null;
|
|
19
19
|
inchiKey: string | null;
|
|
20
20
|
canonicalSmiles: string | null;
|
|
21
21
|
hBondDonorCount: number | null;
|
|
22
22
|
hBondAcceptorCount: number | null;
|
|
23
|
-
}
|
|
23
|
+
};
|
|
24
24
|
export declare const PubChemPropertyResponseSchema: z.ZodObject<{
|
|
25
25
|
PropertyTable: z.ZodOptional<z.ZodObject<{
|
|
26
26
|
Properties: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
@@ -100,6 +100,7 @@ export async function getCompoundPropertiesByInChIKey(inchiKey) {
|
|
|
100
100
|
return null;
|
|
101
101
|
return getCompoundPropertiesByCID(cid);
|
|
102
102
|
}
|
|
103
|
+
// oxlint-disable-next-line eslint-js/no-restricted-syntax -- the amide-bond motif C(=O)N read out of a SMILES string; the literal atoms are the chemistry.
|
|
103
104
|
const AMIDE_BOND_RE = /C\(=O\)N/g;
|
|
104
105
|
/**
|
|
105
106
|
* Heuristic molecule-type classifier driven by PubChem properties.
|
|
@@ -102,11 +102,11 @@ export declare const PubChemPropertyResponseSchema: z.ZodObject<{
|
|
|
102
102
|
}>>>>;
|
|
103
103
|
}, z.core.$strip>>;
|
|
104
104
|
}, z.core.$strip>;
|
|
105
|
-
export
|
|
105
|
+
export type PubChemCrossRef = {
|
|
106
106
|
/** The registry that the identifier pattern names, or `null` when no pattern matches. */
|
|
107
107
|
source: string | null;
|
|
108
108
|
id: string;
|
|
109
|
-
}
|
|
109
|
+
};
|
|
110
110
|
export declare const PubChemXrefResponseSchema: z.ZodObject<{
|
|
111
111
|
InformationList: z.ZodOptional<z.ZodObject<{
|
|
112
112
|
Information: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
@@ -117,13 +117,13 @@ export declare const PubChemXrefResponseSchema: z.ZodObject<{
|
|
|
117
117
|
}, z.core.$strip>;
|
|
118
118
|
/** The registry of one identifier, or `null` when no pattern matches it. */
|
|
119
119
|
export declare function classifyRegistryId(id: string): string | null;
|
|
120
|
-
export
|
|
120
|
+
export type PubChemAssay = {
|
|
121
121
|
aid: number;
|
|
122
122
|
assayName: string | null;
|
|
123
123
|
targetName: string | null;
|
|
124
124
|
activityOutcome: string | null;
|
|
125
125
|
activityValue: number | null;
|
|
126
|
-
}
|
|
126
|
+
};
|
|
127
127
|
export declare const PugAssaySummarySchema: z.ZodObject<{
|
|
128
128
|
Table: z.ZodOptional<z.ZodObject<{
|
|
129
129
|
Columns: z.ZodOptional<z.ZodObject<{
|
|
@@ -95,18 +95,26 @@ export const PubChemXrefResponseSchema = z.object({
|
|
|
95
95
|
* A loose pattern runs last, thus a specific registry claims its own id first.
|
|
96
96
|
*/
|
|
97
97
|
const REGISTRY_PATTERNS = [
|
|
98
|
+
// oxlint-disable-next-line eslint-js/no-restricted-syntax -- the ChEMBL id format: the CHEMBL prefix plus digits.
|
|
98
99
|
["ChEMBL", /^CHEMBL\d+$/],
|
|
100
|
+
// oxlint-disable-next-line eslint-js/no-restricted-syntax -- the ChEBI id format: the CHEBI: prefix plus digits.
|
|
99
101
|
["ChEBI", /^CHEBI:\d+$/],
|
|
102
|
+
// oxlint-disable-next-line eslint-js/no-restricted-syntax -- the DrugBank id format: the DB prefix plus five digits.
|
|
100
103
|
["DrugBank", /^DB\d{5}$/],
|
|
104
|
+
// oxlint-disable-next-line eslint-js/no-restricted-syntax -- the KEGG id format: one C or D compound letter plus five digits.
|
|
101
105
|
["KEGG", /^[CD]\d{5}$/],
|
|
106
|
+
// oxlint-disable-next-line eslint-js/no-restricted-syntax -- the HMDB id format: the HMDB prefix plus digits.
|
|
102
107
|
["HMDB", /^HMDB\d+$/],
|
|
108
|
+
// oxlint-disable-next-line eslint-js/no-restricted-syntax -- the CAS registry format: two to seven digits, a dash pair, and one check digit.
|
|
103
109
|
["CAS", /^\d{2,7}-\d{2}-\d$/],
|
|
104
110
|
// A PDB id is four characters that start with a digit. The lookahead demands a
|
|
105
111
|
// letter as well, thus a plain registry number does not read as a structure.
|
|
112
|
+
// oxlint-disable-next-line eslint-js/no-restricted-syntax -- the PDB id format: a digit, then three alphanumerics, with the lookahead that demands a letter among them.
|
|
106
113
|
["PDB", /^[1-9](?=.*[A-Za-z])[0-9A-Za-z]{3}$/],
|
|
107
114
|
// A UNII is ten alphanumeric characters, and the lookahead demands a letter
|
|
108
115
|
// among them. A plain ten-digit registry number, such as `0000050782`, matches
|
|
109
116
|
// the pattern without it, and the row then names the wrong registry.
|
|
117
|
+
// oxlint-disable-next-line eslint-js/no-restricted-syntax -- the UNII format: ten uppercase alphanumerics, with the lookahead that demands a letter among them.
|
|
110
118
|
["UNII", /^(?=.*[A-Z])[A-Z0-9]{10}$/],
|
|
111
119
|
];
|
|
112
120
|
/** The registry of one identifier, or `null` when no pattern matches it. */
|