@inflexa-ai/harness 0.45.1 → 0.46.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +307 -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 +23 -7
- package/dist/lib/hooks.js +17 -3
- package/dist/lib/host-concurrency.js +3 -2
- package/dist/lib/logger.d.ts +2 -2
- package/dist/lib/logger.js +2 -1
- package/dist/lib/metrics.d.ts +1 -1
- package/dist/lib/null-proto.d.ts +6 -0
- package/dist/lib/null-proto.js +17 -0
- package/dist/lib/otel-spans.d.ts +1 -1
- package/dist/lib/otel-spans.js +9 -5
- package/dist/lib/otel.d.ts +4 -2
- package/dist/lib/otel.js +10 -2
- package/dist/lib/page-capture.d.ts +8 -8
- package/dist/lib/page-capture.js +9 -4
- package/dist/lib/parse-json.d.ts +5 -0
- package/dist/lib/parse-json.js +12 -0
- package/dist/lib/present.d.ts +12 -0
- package/dist/lib/present.js +39 -0
- package/dist/lib/rate-limit.d.ts +4 -4
- package/dist/lib/rate-limit.js +12 -13
- package/dist/lib/regulatory-corpus/fetch-fda-guidance.d.ts +4 -4
- package/dist/lib/regulatory-corpus/fetch-fda-guidance.js +4 -10
- package/dist/lib/regulatory-corpus/fetch-ich.d.ts +4 -4
- package/dist/lib/regulatory-corpus/fetch-ich.js +18 -14
- package/dist/lib/regulatory-corpus/normalize-whitespace.d.ts +6 -0
- package/dist/lib/regulatory-corpus/normalize-whitespace.js +41 -0
- package/dist/lib/regulatory-corpus.d.ts +10 -10
- package/dist/lib/regulatory-corpus.js +3 -1
- package/dist/lib/result.d.ts +10 -11
- package/dist/lib/result.js +15 -13
- package/dist/lib/storage.d.ts +2 -2
- package/dist/lib/test/async-iterable.d.ts +9 -0
- package/dist/lib/test/async-iterable.js +28 -0
- package/dist/lib/test/request-url.d.ts +5 -0
- package/dist/lib/test/request-url.js +7 -0
- package/dist/lib/test/result-assert.d.ts +12 -0
- package/dist/lib/test/result-assert.js +17 -0
- package/dist/lib/test/text-shapes.d.ts +24 -0
- package/dist/lib/test/text-shapes.js +63 -0
- package/dist/lib/text.d.ts +22 -0
- package/dist/lib/text.js +68 -0
- package/dist/lib/thrown.d.ts +18 -0
- package/dist/lib/thrown.js +30 -0
- package/dist/lib/unknown-array.d.ts +6 -0
- package/dist/lib/unknown-array.js +8 -0
- package/dist/lib/unknown-containers.d.ts +14 -0
- package/dist/lib/unknown-containers.js +17 -0
- package/dist/lib/unknown-text.d.ts +8 -0
- package/dist/lib/unknown-text.js +28 -0
- package/dist/lib/zod-issue-shape.d.ts +1 -1
- package/dist/lib/zod-issue-shape.js +31 -31
- package/dist/lib/zod-issues.d.ts +3 -3
- package/dist/lib/zod-issues.js +30 -17
- package/dist/literature/sources/arxiv.d.ts +6 -6
- package/dist/literature/sources/arxiv.js +92 -35
- package/dist/literature/sources/http.d.ts +2 -2
- package/dist/literature/sources/http.js +16 -15
- package/dist/literature/sources/pubmed.d.ts +16 -16
- package/dist/literature/sources/pubmed.js +96 -61
- package/dist/literature/sources/semantic-scholar.d.ts +8 -8
- package/dist/literature/sources/semantic-scholar.js +22 -13
- package/dist/loop/accounting.d.ts +63 -0
- package/dist/loop/accounting.js +141 -0
- package/dist/loop/call-policy.d.ts +73 -0
- package/dist/loop/call-policy.js +109 -0
- package/dist/loop/chat-stream.d.ts +62 -0
- package/dist/loop/chat-stream.js +237 -0
- package/dist/loop/compaction.d.ts +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 +161 -0
- package/dist/loop/tool-adapter.d.ts +98 -0
- package/dist/loop/tool-adapter.js +364 -0
- package/dist/loop/tool-detail.d.ts +1 -1
- package/dist/loop/tool-detail.js +6 -5
- package/dist/loop/tool-outcome.d.ts +1 -1
- package/dist/loop/tool-output.d.ts +4 -4
- package/dist/loop/tool-output.js +2 -2
- package/dist/loop/turn-credentials.d.ts +34 -0
- package/dist/loop/turn-credentials.js +73 -0
- package/dist/loop/types.d.ts +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/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 +60 -0
- package/dist/testing.js +96 -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,29 +9,29 @@
|
|
|
9
9
|
* `.optional()`, not `.nullable()`.
|
|
10
10
|
*/
|
|
11
11
|
import { type ArticleDetail, type ArticleSection, type FullTextResult, type PubmedSearchOptions, type PubMedSummary } from "../../literature/sources/pubmed.js";
|
|
12
|
-
export type { PubMedSummary, ArticleDetail, ArticleSection, FullTextResult };
|
|
12
|
+
export type { PubMedSummary, ArticleDetail, ArticleSection, FullTextResult } from "../../literature/sources/pubmed.js";
|
|
13
13
|
export type SearchOptions = PubmedSearchOptions;
|
|
14
14
|
/** PubMed search via esearch + esummary. */
|
|
15
15
|
export declare function searchPubmed(ncbiApiKey: string | undefined, query: string, options?: SearchOptions, signal?: AbortSignal): Promise<{
|
|
16
16
|
totalFound: number;
|
|
17
17
|
results: PubMedSummary[];
|
|
18
18
|
}>;
|
|
19
|
-
export
|
|
19
|
+
export type DetailOptions = {
|
|
20
20
|
/** Authors kept per article before collapsing the rest into `authorCount`. */
|
|
21
21
|
maxAuthors?: number;
|
|
22
22
|
/** MeSH terms kept per article; 0 drops the list entirely. */
|
|
23
23
|
maxMeshTerms?: number;
|
|
24
|
-
}
|
|
24
|
+
};
|
|
25
25
|
/**
|
|
26
26
|
* One article as the tool returns it: `ArticleDetail` with the two unbounded
|
|
27
27
|
* list fields trimmed. A consortium paper can carry hundreds of authors and
|
|
28
28
|
* dozens of MeSH headings — neither is worth the context, so the counts travel
|
|
29
29
|
* instead of the tails.
|
|
30
30
|
*/
|
|
31
|
-
export
|
|
31
|
+
export type BoundedArticleDetail = ArticleDetail & {
|
|
32
32
|
authorCount: number;
|
|
33
33
|
meshTermCount: number;
|
|
34
|
-
}
|
|
34
|
+
};
|
|
35
35
|
/** Fetch full PubMed article details (efetch + ID Converter for PMC). */
|
|
36
36
|
export declare function getArticleDetails(ncbiApiKey: string | undefined, pmids: string[], signal?: AbortSignal): Promise<{
|
|
37
37
|
articles: ArticleDetail[];
|
|
@@ -39,19 +39,19 @@ export declare function getArticleDetails(ncbiApiKey: string | undefined, pmids:
|
|
|
39
39
|
}>;
|
|
40
40
|
/** Trim the two unbounded list fields on each article, recording their true sizes. */
|
|
41
41
|
export declare function boundArticleDetails(articles: ArticleDetail[], options?: DetailOptions): BoundedArticleDetail[];
|
|
42
|
-
export
|
|
42
|
+
export type FullTextOptions = {
|
|
43
43
|
/** Case-insensitive substring match against section headings. */
|
|
44
44
|
sections?: string[];
|
|
45
45
|
/** Character budget across the returned section bodies. */
|
|
46
46
|
maxChars?: number;
|
|
47
|
-
}
|
|
47
|
+
};
|
|
48
48
|
/**
|
|
49
49
|
* A full text trimmed to a character budget. `outline` always lists EVERY
|
|
50
50
|
* section in the article with its size and whether the body came back, so one
|
|
51
51
|
* call is enough to decide which sections a follow-up should request — the
|
|
52
52
|
* alternative is the agent guessing headings it has not seen.
|
|
53
53
|
*/
|
|
54
|
-
export
|
|
54
|
+
export type BoundedFullText = {
|
|
55
55
|
fullText: string;
|
|
56
56
|
sections: ArticleSection[];
|
|
57
57
|
outline: {
|
|
@@ -62,7 +62,7 @@ export interface BoundedFullText {
|
|
|
62
62
|
totalChars: number;
|
|
63
63
|
returnedChars: number;
|
|
64
64
|
truncated: boolean;
|
|
65
|
-
}
|
|
65
|
+
};
|
|
66
66
|
/**
|
|
67
67
|
* Fetch open-access full text from PMC, trimmed to a section filter and a
|
|
68
68
|
* character budget. Returns null when the article is not open-access.
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
import { createPubmedSource, } from "../../literature/sources/pubmed.js";
|
|
12
12
|
function pubmedSource(ncbiApiKey) {
|
|
13
13
|
return createPubmedSource({
|
|
14
|
-
|
|
14
|
+
apiKey: ncbiApiKey,
|
|
15
15
|
maxRetries: 3,
|
|
16
16
|
retryDelayMs: 1_000,
|
|
17
17
|
timeoutMs: 90_000,
|
|
@@ -8,15 +8,15 @@
|
|
|
8
8
|
* `.nullable()`.
|
|
9
9
|
*/
|
|
10
10
|
import { z } from "zod";
|
|
11
|
-
export
|
|
11
|
+
export type StringInteraction = {
|
|
12
12
|
proteinA: string;
|
|
13
13
|
proteinB: string;
|
|
14
14
|
score: number;
|
|
15
15
|
experimentalScore?: number;
|
|
16
16
|
databaseScore?: number;
|
|
17
17
|
textminingScore?: number;
|
|
18
|
-
}
|
|
19
|
-
export
|
|
18
|
+
};
|
|
19
|
+
export type StringEnrichment = {
|
|
20
20
|
category: string;
|
|
21
21
|
term: string;
|
|
22
22
|
description: string;
|
|
@@ -24,12 +24,12 @@ export interface StringEnrichment {
|
|
|
24
24
|
fdr: number;
|
|
25
25
|
geneCount: number;
|
|
26
26
|
genes: string[];
|
|
27
|
-
}
|
|
28
|
-
export
|
|
27
|
+
};
|
|
28
|
+
export type InteractionOptions = {
|
|
29
29
|
species?: number;
|
|
30
30
|
minScore?: number;
|
|
31
31
|
limit?: number;
|
|
32
|
-
}
|
|
32
|
+
};
|
|
33
33
|
export declare const StringInteractionSchema: z.ZodPipe<z.ZodObject<{
|
|
34
34
|
preferredName_A: z.ZodOptional<z.ZodString>;
|
|
35
35
|
preferredName_B: z.ZodOptional<z.ZodString>;
|
|
@@ -7,14 +7,14 @@
|
|
|
7
7
|
* carries `.optional()`, not `.nullable()`.
|
|
8
8
|
*/
|
|
9
9
|
import { z } from "zod";
|
|
10
|
-
export
|
|
10
|
+
export type UniProtRecord = {
|
|
11
11
|
primaryAccession: string;
|
|
12
12
|
uniProtkbId: string | null;
|
|
13
13
|
geneNames: string[];
|
|
14
14
|
chemblIds: string[];
|
|
15
15
|
reactomePathwayIds: string[];
|
|
16
16
|
proteinFamilyText: string | null;
|
|
17
|
-
}
|
|
17
|
+
};
|
|
18
18
|
/**
|
|
19
19
|
* Fetch a single UniProtKB entry by accession. Returns null on 404; throws
|
|
20
20
|
* on other HTTP errors so callers can surface upstream outages.
|
|
@@ -25,7 +25,7 @@ export declare function getChemblIdsByUniProt(accession: string): Promise<string
|
|
|
25
25
|
/** All Reactome pathway ids cross-referenced from a UniProt accession. */
|
|
26
26
|
export declare function getReactomePathwaysByUniProt(accession: string): Promise<string[]>;
|
|
27
27
|
/** One protein of a UniProtKB search. */
|
|
28
|
-
export
|
|
28
|
+
export type UniProtProtein = {
|
|
29
29
|
accession: string;
|
|
30
30
|
/** The UniProtKB ID, for example `BRCA1_HUMAN`. */
|
|
31
31
|
uniProtkbId: string | null;
|
|
@@ -38,7 +38,7 @@ export interface UniProtProtein {
|
|
|
38
38
|
subcellularLocations: string[];
|
|
39
39
|
/** True for a Swiss-Prot entry, false for a TrEMBL entry. */
|
|
40
40
|
reviewed: boolean;
|
|
41
|
-
}
|
|
41
|
+
};
|
|
42
42
|
/**
|
|
43
43
|
* One result row of `uniprotkb/search`, with the same all-optional discipline as
|
|
44
44
|
* `UniProtRecordSchema`: UniProt omits the key of an absent value, thus every
|
|
@@ -131,19 +131,19 @@ export declare const UniProtSearchResponseSchema: z.ZodObject<{
|
|
|
131
131
|
* never reach one, because the 400 fails the whole request.
|
|
132
132
|
*/
|
|
133
133
|
export declare function isUniProtAccession(query: string): boolean;
|
|
134
|
-
export
|
|
134
|
+
export type SearchProteinsOptions = {
|
|
135
135
|
/** NCBI taxonomy id; omit to search every organism. */
|
|
136
136
|
organismId?: number;
|
|
137
137
|
/** Swiss-Prot only when true (the default), Swiss-Prot and TrEMBL when false. */
|
|
138
138
|
reviewedOnly?: boolean;
|
|
139
139
|
/** Max rows returned. */
|
|
140
140
|
limit?: number;
|
|
141
|
-
}
|
|
142
|
-
export
|
|
141
|
+
};
|
|
142
|
+
export type SearchProteinsResult = {
|
|
143
143
|
proteins: UniProtProtein[];
|
|
144
144
|
/** True when UniProt held at least one row beyond `limit`. */
|
|
145
145
|
hasMore: boolean;
|
|
146
|
-
}
|
|
146
|
+
};
|
|
147
147
|
/**
|
|
148
148
|
* Search UniProtKB for a protein by gene symbol or by accession.
|
|
149
149
|
*
|
|
@@ -206,7 +206,10 @@ function toProtein(raw) {
|
|
|
206
206
|
accession: raw.primaryAccession ?? "",
|
|
207
207
|
uniProtkbId: raw.uniProtkbId ?? null,
|
|
208
208
|
proteinName: extractProteinName(raw),
|
|
209
|
-
geneNames: (raw.genes ?? []).
|
|
209
|
+
geneNames: (raw.genes ?? []).flatMap((gene) => {
|
|
210
|
+
const name = gene.geneName?.value;
|
|
211
|
+
return name ? [name] : [];
|
|
212
|
+
}),
|
|
210
213
|
sequenceLength: raw.sequence?.length ?? null,
|
|
211
214
|
function: extractFunctionText(raw),
|
|
212
215
|
subcellularLocations: extractSubcellularLocations(raw),
|
|
@@ -222,6 +225,7 @@ function toProtein(raw) {
|
|
|
222
225
|
* that match this form. Thus the match decides only whether the `accession:`
|
|
223
226
|
* clause is SAFE to send, never which space the query names.
|
|
224
227
|
*/
|
|
228
|
+
// oxlint-disable-next-line eslint-js/no-restricted-syntax -- the full UniProt accession grammar, both entry-class arms with the optional isoform suffix; the shape overlap with gene symbols is why the match decides safety only.
|
|
225
229
|
const ACCESSION_RE = /^(?:[OPQ][0-9][A-Z0-9]{3}[0-9]|[A-NR-Z][0-9](?:[A-Z][A-Z0-9]{2}[0-9]){1,2})(?:-\d+)?$/i;
|
|
226
230
|
/**
|
|
227
231
|
* Can the query ride in an `accession:` clause?
|
|
@@ -23,41 +23,44 @@
|
|
|
23
23
|
* exists AND belongs to this analysis (`cortex_runs.analysis_id`) before it is
|
|
24
24
|
* stored: an unknown runId is an `err(ToolError)` the model can correct from,
|
|
25
25
|
* not a silent reference to a run that never existed.
|
|
26
|
+
*
|
|
27
|
+
* Inside a durable step, the store records the key of the step in the
|
|
28
|
+
* transaction of the edit. A rerun of the step after the edit, before its
|
|
29
|
+
* checkpoint, then changes nothing and gives ok.
|
|
26
30
|
*/
|
|
27
31
|
import type { Pool } from "pg";
|
|
28
32
|
import { z } from "zod";
|
|
29
33
|
import type { WorkingMemoryStore } from "../../memory/working-memory.js";
|
|
34
|
+
import { type Tool } from "../define-tool.js";
|
|
30
35
|
declare const inputSchema: z.ZodObject<{
|
|
31
36
|
section: z.ZodEnum<{
|
|
32
37
|
constraint: "constraint";
|
|
38
|
+
finding: "finding";
|
|
33
39
|
goal: "goal";
|
|
34
40
|
hypothesis: "hypothesis";
|
|
35
|
-
finding: "finding";
|
|
36
41
|
}>;
|
|
37
42
|
operation: z.ZodOptional<z.ZodEnum<{
|
|
38
43
|
add: "add";
|
|
39
|
-
revise: "revise";
|
|
40
44
|
retire: "retire";
|
|
45
|
+
revise: "revise";
|
|
41
46
|
}>>;
|
|
42
47
|
text: z.ZodOptional<z.ZodString>;
|
|
43
48
|
id: z.ZodOptional<z.ZodString>;
|
|
44
49
|
origin: z.ZodOptional<z.ZodEnum<{
|
|
45
|
-
user: "user";
|
|
46
50
|
agent: "agent";
|
|
51
|
+
user: "user";
|
|
47
52
|
}>>;
|
|
48
53
|
runId: z.ZodOptional<z.ZodString>;
|
|
49
54
|
}, z.core.$strip>;
|
|
50
55
|
type Input = z.infer<typeof inputSchema>;
|
|
51
|
-
|
|
56
|
+
type UpdateOutput = {
|
|
52
57
|
readonly ok: true;
|
|
53
58
|
readonly section: Input["section"];
|
|
54
|
-
}
|
|
55
|
-
export
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
runId?: string | undefined;
|
|
62
|
-
}, UpdateOutput>;
|
|
59
|
+
};
|
|
60
|
+
export type UpdateWorkingMemoryOpts = {
|
|
61
|
+
/** The key of the durable step that runs the call, `undefined` outside one. */
|
|
62
|
+
readonly stepKey: () => string | undefined;
|
|
63
|
+
};
|
|
64
|
+
export declare const DEFAULT_UPDATE_WORKING_MEMORY_OPTS: UpdateWorkingMemoryOpts;
|
|
65
|
+
export declare function createUpdateWorkingMemoryTool(workingMemory: WorkingMemoryStore, pool: Pool, opts?: UpdateWorkingMemoryOpts): Tool<z.infer<typeof inputSchema>, UpdateOutput>;
|
|
63
66
|
export {};
|
|
@@ -23,6 +23,10 @@
|
|
|
23
23
|
* exists AND belongs to this analysis (`cortex_runs.analysis_id`) before it is
|
|
24
24
|
* stored: an unknown runId is an `err(ToolError)` the model can correct from,
|
|
25
25
|
* not a silent reference to a run that never existed.
|
|
26
|
+
*
|
|
27
|
+
* Inside a durable step, the store records the key of the step in the
|
|
28
|
+
* transaction of the edit. A rerun of the step after the edit, before its
|
|
29
|
+
* checkpoint, then changes nothing and gives ok.
|
|
26
30
|
*/
|
|
27
31
|
import { err, ok } from "neverthrow";
|
|
28
32
|
import { z } from "zod";
|
|
@@ -31,6 +35,7 @@ import { toThrowable, unwrapOrThrow } from "../../lib/result.js";
|
|
|
31
35
|
import { isWorkingMemoryRejection, WORKING_MEMORY_LIMITS } from "../../memory/working-memory.js";
|
|
32
36
|
import { queryRun } from "../../state/index.js";
|
|
33
37
|
import { defineTool } from "../define-tool.js";
|
|
38
|
+
import { durableStepKey } from "../workspace/edit-file.js";
|
|
34
39
|
const { goalChars, entryChars, constraints, hypotheses, findings } = WORKING_MEMORY_LIMITS;
|
|
35
40
|
const inputSchema = z
|
|
36
41
|
.object({
|
|
@@ -91,10 +96,16 @@ const inputSchema = z
|
|
|
91
96
|
function toListOp(input) {
|
|
92
97
|
switch (input.operation ?? "add") {
|
|
93
98
|
case "add":
|
|
99
|
+
if (input.text === undefined)
|
|
100
|
+
throw new Error("add requires text");
|
|
94
101
|
return { op: "add", text: input.text };
|
|
95
102
|
case "revise":
|
|
103
|
+
if (input.id === undefined || input.text === undefined)
|
|
104
|
+
throw new Error("revise requires id and text");
|
|
96
105
|
return { op: "revise", id: input.id, text: input.text };
|
|
97
106
|
case "retire":
|
|
107
|
+
if (input.id === undefined)
|
|
108
|
+
throw new Error("retire requires id");
|
|
98
109
|
return { op: "retire", id: input.id };
|
|
99
110
|
}
|
|
100
111
|
}
|
|
@@ -105,12 +116,17 @@ function toConstraintOp(input) {
|
|
|
105
116
|
/** As `toListOp`, but an added finding also carries the run it is attributed to. */
|
|
106
117
|
function toFindingOp(input) {
|
|
107
118
|
const base = toListOp(input);
|
|
108
|
-
|
|
119
|
+
if (base.op !== "add")
|
|
120
|
+
return base;
|
|
121
|
+
if (input.runId === undefined)
|
|
122
|
+
throw new Error("a finding add requires runId");
|
|
123
|
+
return { ...base, runId: input.runId };
|
|
109
124
|
}
|
|
110
|
-
export
|
|
125
|
+
export const DEFAULT_UPDATE_WORKING_MEMORY_OPTS = { stepKey: durableStepKey };
|
|
126
|
+
export function createUpdateWorkingMemoryTool(workingMemory, pool, opts = DEFAULT_UPDATE_WORKING_MEMORY_OPTS) {
|
|
111
127
|
/** Write one amendment, mapping a refused write to a model-visible error. */
|
|
112
128
|
async function apply(analysisId, section, value) {
|
|
113
|
-
const written = await workingMemory.updateSection(analysisId, section, value);
|
|
129
|
+
const written = await workingMemory.updateSection(analysisId, section, value, opts.stepKey());
|
|
114
130
|
if (written.isErr()) {
|
|
115
131
|
// A refused write (cap hit, unknown id) is an expected outcome the model
|
|
116
132
|
// can act on — its message carries the remedy. A DbError is not: it throws,
|
|
@@ -161,6 +177,8 @@ export function createUpdateWorkingMemoryTool(workingMemory, pool) {
|
|
|
161
177
|
const analysisId = scopeResource(ctx.session.scope).resourceId;
|
|
162
178
|
switch (input.section) {
|
|
163
179
|
case "goal":
|
|
180
|
+
if (input.text === undefined)
|
|
181
|
+
throw new Error("goal requires text");
|
|
164
182
|
return apply(analysisId, "goal", { text: input.text });
|
|
165
183
|
case "constraint":
|
|
166
184
|
return apply(analysisId, "constraint", toConstraintOp(input));
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
* `read_tool_output` — reads the kept text of a tool result that the loop cut, by a window or by a pattern.
|
|
3
3
|
* Each result stays under the cap of the loop, thus the loop never cuts a result of this tool.
|
|
4
4
|
*/
|
|
5
|
+
import { errorMessageOf } from "../lib/thrown.js";
|
|
6
|
+
import { textOf } from "../lib/unknown-text.js";
|
|
5
7
|
import { ok } from "neverthrow";
|
|
6
8
|
import { z } from "zod";
|
|
7
9
|
import { unwrapOrThrow } from "../lib/result.js";
|
|
@@ -61,10 +63,11 @@ function page(ref, text, start, limit) {
|
|
|
61
63
|
function search(ref, text, start, limit, pattern) {
|
|
62
64
|
let regex;
|
|
63
65
|
try {
|
|
66
|
+
// oxlint-disable-next-line eslint-js/no-restricted-syntax -- the caller-supplied search pattern is the tool's input; the dynamic form is the feature, and an invalid pattern is the handled error below.
|
|
64
67
|
regex = new RegExp(pattern, "g");
|
|
65
68
|
}
|
|
66
69
|
catch (err) {
|
|
67
|
-
return { status: "invalid_pattern", pattern, error: err
|
|
70
|
+
return { status: "invalid_pattern", pattern, error: errorMessageOf(err) ?? textOf(err) };
|
|
68
71
|
}
|
|
69
72
|
const stop = limit === undefined ? text.length : windowEnd(text, start, limit);
|
|
70
73
|
const window = text.slice(start, stop);
|
|
@@ -97,7 +100,10 @@ function search(ref, text, start, limit, pattern) {
|
|
|
97
100
|
});
|
|
98
101
|
let result = at(end);
|
|
99
102
|
while (!fits(result) && matches.length > 1) {
|
|
100
|
-
|
|
103
|
+
const dropped = matches.pop();
|
|
104
|
+
if (dropped === undefined)
|
|
105
|
+
break;
|
|
106
|
+
end = dropped.offset;
|
|
101
107
|
result = at(end);
|
|
102
108
|
}
|
|
103
109
|
return result;
|
package/dist/tools/registry.d.ts
CHANGED
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { type ToolSet } from "ai";
|
|
8
8
|
import type { Tool } from "./define-tool.js";
|
|
9
|
-
export
|
|
9
|
+
export type Registry = {
|
|
10
10
|
/** The AI SDK tool definitions to send with a chat request. */
|
|
11
11
|
definitions(): ToolSet;
|
|
12
12
|
/** Resolve a tool by name for dispatch; `undefined` if unknown. */
|
|
13
13
|
get(name: string): Tool | undefined;
|
|
14
|
-
}
|
|
14
|
+
};
|
|
15
15
|
export declare function createRegistry(tools: readonly Tool[]): Registry;
|
|
@@ -15,12 +15,17 @@
|
|
|
15
15
|
*
|
|
16
16
|
* The primitive admits a flat object input only. Thus a destination is four optional fields, and not a
|
|
17
17
|
* nested union. A conflict between the flat fields refuses before the core runs.
|
|
18
|
+
*
|
|
19
|
+
* Inside a durable step, a mutation stores its result for the thread and the step, in the transaction of
|
|
20
|
+
* the document and under the lock of the row. A rerun of the step after the landing, before its
|
|
21
|
+
* checkpoint, gives the stored result. Thus a rerun of `add_block` does not refuse its own block id, and a
|
|
22
|
+
* rerun of `remove_block` does not refuse its own removed target.
|
|
18
23
|
*/
|
|
19
24
|
import { type Result } from "neverthrow";
|
|
20
25
|
import { z } from "zod";
|
|
21
26
|
import type { Scope } from "../../auth/types.js";
|
|
22
27
|
import type { Logger } from "../../lib/logger.js";
|
|
23
|
-
import { type ProvenanceSeam } from "../../provenance/seam.js";
|
|
28
|
+
import { type ProvenanceSeam, type SessionProvenanceEvent } from "../../provenance/seam.js";
|
|
24
29
|
import { type DraftRefusal } from "../../report-model/draft-operations.js";
|
|
25
30
|
import { type OutlineEntry, type ReadableBlock } from "../../report-model/draft-read.js";
|
|
26
31
|
import type { ReportWarning } from "../../report-model/block-walk.js";
|
|
@@ -81,11 +86,11 @@ export type ReadBlockInput = z.infer<typeof readBlockInput>;
|
|
|
81
86
|
export type SetTitleInput = z.infer<typeof setTitleInput>;
|
|
82
87
|
export type FinishDraftInput = z.infer<typeof finishDraftInput>;
|
|
83
88
|
/** One container that an operation changed, and the child order inside it after the operation. */
|
|
84
|
-
export
|
|
89
|
+
export type ChangedContainer = {
|
|
85
90
|
/** The section that holds the children. It is absent when the container is the root. */
|
|
86
91
|
parentId?: string;
|
|
87
92
|
children: OutlineEntry[];
|
|
88
|
-
}
|
|
93
|
+
};
|
|
89
94
|
/**
|
|
90
95
|
* The closed set of tool-layer refusal reasons.
|
|
91
96
|
*
|
|
@@ -105,10 +110,10 @@ export type SessionRefusalReason = "no-thread-scope" | "absent-state" | "wrong-t
|
|
|
105
110
|
* state, or a gateway that cannot give the state. It sits beside the core `DraftRefusal`, and it never
|
|
106
111
|
* widens the closed reason set of the core.
|
|
107
112
|
*/
|
|
108
|
-
export
|
|
113
|
+
export type SessionRefusal = {
|
|
109
114
|
reason: SessionRefusalReason;
|
|
110
115
|
detail: string;
|
|
111
|
-
}
|
|
116
|
+
};
|
|
112
117
|
/**
|
|
113
118
|
* The result of a mutation tool. A refusal carries the typed reason, from the core or from the tool layer.
|
|
114
119
|
*
|
|
@@ -120,13 +125,15 @@ export interface SessionRefusal {
|
|
|
120
125
|
*
|
|
121
126
|
* A move across two containers reports both. An operation that changes no child order reports none.
|
|
122
127
|
*/
|
|
123
|
-
export type MutationResult = {
|
|
124
|
-
applied: true;
|
|
125
|
-
changed: ChangedContainer[];
|
|
126
|
-
} | {
|
|
128
|
+
export type MutationResult = LandedResult | {
|
|
127
129
|
applied: false;
|
|
128
130
|
refusal: DraftRefusal | SessionRefusal;
|
|
129
131
|
};
|
|
132
|
+
/** The result of a mutation that landed its document. A durable step stores it, and a rerun of the step gives it again. */
|
|
133
|
+
export type LandedResult = {
|
|
134
|
+
applied: true;
|
|
135
|
+
changed: ChangedContainer[];
|
|
136
|
+
};
|
|
130
137
|
/** The result of `read_outline`. A load that gives no state refuses instead of an outline. */
|
|
131
138
|
export type OutlineResult = {
|
|
132
139
|
outline: OutlineEntry[];
|
|
@@ -160,10 +167,10 @@ export type FinishToolResult = {
|
|
|
160
167
|
refused: SessionRefusal;
|
|
161
168
|
};
|
|
162
169
|
/** The state of one report thread: the document under composition, and the frozen snapshot. */
|
|
163
|
-
export
|
|
170
|
+
export type ReportSessionState = {
|
|
164
171
|
readonly document: DraftDocument;
|
|
165
172
|
readonly snapshot: ReportSnapshot;
|
|
166
|
-
}
|
|
173
|
+
};
|
|
167
174
|
/**
|
|
168
175
|
* The concurrency token that a load hands out and a persist compares against. It is the prior document
|
|
169
176
|
* that the load read, or `null` before the first document lands. The persist lands only when the row still
|
|
@@ -191,6 +198,8 @@ export type SessionStateLoad = {
|
|
|
191
198
|
token: SessionStateToken;
|
|
192
199
|
seenDocumentHash: string | null;
|
|
193
200
|
derivations: readonly DerivationRecord[];
|
|
201
|
+
/** The stored result of the call that the load names, when an earlier run of that call landed. */
|
|
202
|
+
landed?: unknown;
|
|
194
203
|
} | {
|
|
195
204
|
outcome: "absent";
|
|
196
205
|
} | {
|
|
@@ -200,15 +209,31 @@ export type SessionStateLoad = {
|
|
|
200
209
|
outcome: "failed";
|
|
201
210
|
detail: string;
|
|
202
211
|
};
|
|
203
|
-
/**
|
|
212
|
+
/**
|
|
213
|
+
* The outcome of a gateway persist. `conflict` means that a concurrent turn landed first. `replayed` means
|
|
214
|
+
* that an earlier run of the call landed, and it carries the stored result of that run.
|
|
215
|
+
*/
|
|
204
216
|
export type SessionStatePersist = {
|
|
205
217
|
outcome: "persisted";
|
|
206
218
|
} | {
|
|
207
219
|
outcome: "conflict";
|
|
220
|
+
} | {
|
|
221
|
+
outcome: "replayed";
|
|
222
|
+
landed: unknown;
|
|
208
223
|
} | {
|
|
209
224
|
outcome: "failed";
|
|
210
225
|
detail: string;
|
|
211
226
|
};
|
|
227
|
+
/**
|
|
228
|
+
* The authoring call of a persist: the key of its durable step, and the result that it gives when the document lands.
|
|
229
|
+
* The result carries the events of the act, thus a rerun that finds the result can emit them again.
|
|
230
|
+
*/
|
|
231
|
+
export type LandingCall = {
|
|
232
|
+
readonly key: string;
|
|
233
|
+
readonly result: LandedResult & {
|
|
234
|
+
readonly events: readonly SessionProvenanceEvent[];
|
|
235
|
+
};
|
|
236
|
+
};
|
|
212
237
|
/**
|
|
213
238
|
* The outcome of a gateway stamp. `stamped` wrote the marker. `absent` means that no row holds the thread.
|
|
214
239
|
* `failed` is a transient store fault that names its cause. Each arm is plain data, thus a stamp never
|
|
@@ -246,9 +271,11 @@ export type SeenStampResult = {
|
|
|
246
271
|
* the gateway over the durable store. A load gives the state, a typed absence, or a typed failure. A
|
|
247
272
|
* persist gives success, or a typed failure.
|
|
248
273
|
*/
|
|
249
|
-
export
|
|
250
|
-
load
|
|
251
|
-
|
|
274
|
+
export type ReportSessionStateGateway = {
|
|
275
|
+
/** `callKey` names the durable step of a mutation, and the found load then carries the stored result of an earlier run. */
|
|
276
|
+
load(threadId: string, callKey?: string): Promise<SessionStateLoad>;
|
|
277
|
+
/** A persist with a `call` stores the result of the call in the transaction of the document. */
|
|
278
|
+
persist(threadId: string, document: DraftDocument, expected: SessionStateToken, call?: LandingCall): Promise<SessionStatePersist>;
|
|
252
279
|
/**
|
|
253
280
|
* Stamp the hash of the rendered draft on the session state. The preview calls it when the page lands,
|
|
254
281
|
* thus the runtime knows which draft the page shows.
|
|
@@ -260,12 +287,12 @@ export interface ReportSessionStateGateway {
|
|
|
260
287
|
* rendered hash existed to copy, thus the eyes tell a real stamp from a missed one.
|
|
261
288
|
*/
|
|
262
289
|
stampSeen(threadId: string): Promise<SeenStampResult>;
|
|
263
|
-
}
|
|
290
|
+
};
|
|
264
291
|
/**
|
|
265
292
|
* The thread of a call, its analysis, the loaded state, the concurrency token that the persist compares
|
|
266
293
|
* against, the seen-document hash of the look-before-record rule, and the derivations of the session.
|
|
267
294
|
*/
|
|
268
|
-
export
|
|
295
|
+
export type OpenedThread = {
|
|
269
296
|
readonly threadId: string;
|
|
270
297
|
readonly analysisId: string;
|
|
271
298
|
readonly state: ReportSessionState;
|
|
@@ -274,7 +301,9 @@ export interface OpenedThread {
|
|
|
274
301
|
readonly seenDocumentHash: string | null;
|
|
275
302
|
/** The derivations of the session, in the order that the records landed. */
|
|
276
303
|
readonly derivations: readonly DerivationRecord[];
|
|
277
|
-
|
|
304
|
+
/** The stored result of an earlier run of the call that the open names. */
|
|
305
|
+
readonly landed?: unknown;
|
|
306
|
+
};
|
|
278
307
|
/**
|
|
279
308
|
* Resolve the report thread of a call, and load its state through the gateway.
|
|
280
309
|
*
|
|
@@ -290,9 +319,9 @@ export interface OpenedThread {
|
|
|
290
319
|
* The authoring tools and the preview tool share this one resolution, thus the two surfaces accept the
|
|
291
320
|
* same thread id and map a load outcome onto a refusal the same way.
|
|
292
321
|
*/
|
|
293
|
-
export declare function openReportThread(gateway: ReportSessionStateGateway, scope: Scope): Promise<Result<OpenedThread, SessionRefusal>>;
|
|
322
|
+
export declare function openReportThread(gateway: ReportSessionStateGateway, scope: Scope, callKey?: string): Promise<Result<OpenedThread, SessionRefusal>>;
|
|
294
323
|
/** The eight authoring tools. */
|
|
295
|
-
export
|
|
324
|
+
export type ReportAuthoringTools = {
|
|
296
325
|
readonly add_block: Tool<AddBlockInput, MutationResult>;
|
|
297
326
|
readonly change_block: Tool<ChangeBlockInput, MutationResult>;
|
|
298
327
|
readonly remove_block: Tool<RemoveBlockInput, MutationResult>;
|
|
@@ -301,17 +330,19 @@ export interface ReportAuthoringTools {
|
|
|
301
330
|
readonly read_outline: Tool<ReadOutlineInput, OutlineResult>;
|
|
302
331
|
readonly read_block: Tool<ReadBlockInput, ReadBlockResult>;
|
|
303
332
|
readonly finish_draft: Tool<FinishDraftInput, FinishToolResult>;
|
|
304
|
-
}
|
|
333
|
+
};
|
|
305
334
|
/**
|
|
306
335
|
* The optional deps of the authoring surface. The gateway is the one mandatory part, thus it stays a
|
|
307
336
|
* parameter of its own and this bag holds what a composition can leave out.
|
|
308
337
|
*/
|
|
309
|
-
export
|
|
338
|
+
export type ReportAuthoringToolDeps = {
|
|
310
339
|
/** The provenance seam; an unbound session emit emits nothing and each tool acts the same. */
|
|
311
340
|
readonly provenance?: ProvenanceSeam;
|
|
312
341
|
/** Operational logging seam; omitted falls back to no-op. */
|
|
313
342
|
readonly logger?: Logger;
|
|
314
|
-
}
|
|
343
|
+
/** The key of the durable step that runs the call, `undefined` outside one. Defaults to {@link durableStepKey}. */
|
|
344
|
+
readonly stepKey?: () => string | undefined;
|
|
345
|
+
};
|
|
315
346
|
/**
|
|
316
347
|
* Make the eight authoring tools over a session-state gateway.
|
|
317
348
|
*
|