@inflexa-ai/harness 0.45.0 → 0.46.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -3
- package/dist/agents/conversation-agent.d.ts +19 -3
- package/dist/agents/conversation-agent.js +49 -30
- package/dist/agents/report-session-agent.d.ts +15 -15
- package/dist/agents/report-session-agent.js +23 -15
- package/dist/agents/sandbox/index.d.ts +1 -1
- package/dist/agents/sandbox/index.js +1 -1
- package/dist/agents/sandbox/shared.d.ts +35 -16
- package/dist/agents/sandbox/shared.js +63 -24
- package/dist/agents/sandbox/translational-safety-agent.js +26 -0
- package/dist/agents/sandbox/types.d.ts +26 -3
- package/dist/agents/sandbox/validate-skills.d.ts +2 -2
- package/dist/agents/sandbox/validate-skills.js +3 -1
- package/dist/agents/sandbox-catalog.d.ts +16 -2
- package/dist/agents/sandbox-catalog.js +22 -3
- package/dist/agents/system-prompt.d.ts +2 -2
- package/dist/app/approve-plan.d.ts +5 -2
- package/dist/app/approve-plan.js +1 -1
- package/dist/app/chat-turn-workflow.d.ts +114 -0
- package/dist/app/chat-turn-workflow.js +307 -0
- package/dist/app/chat-turn.d.ts +85 -57
- package/dist/app/chat-turn.js +125 -99
- package/dist/app/data-profile-orientation.js +10 -8
- package/dist/app/data-profile-view.d.ts +4 -4
- package/dist/app/data-profile-view.js +9 -8
- package/dist/app/in-process-turn.d.ts +42 -0
- package/dist/app/in-process-turn.js +139 -0
- package/dist/app/message-assembly.d.ts +10 -4
- package/dist/app/message-assembly.js +13 -8
- package/dist/app/report-session-runtime.d.ts +4 -4
- package/dist/app/report-session-runtime.js +36 -21
- package/dist/app/spawn-report-session.d.ts +33 -28
- package/dist/app/spawn-report-session.js +25 -40
- package/dist/app/synthesize-run.d.ts +22 -16
- package/dist/app/synthesize-run.js +41 -35
- package/dist/app/work.d.ts +96 -0
- package/dist/app/work.js +147 -0
- package/dist/auth/local-auth-context.d.ts +1 -3
- package/dist/auth/local-auth-context.js +1 -3
- package/dist/auth/local-run-authorizer.d.ts +1 -1
- package/dist/auth/local-run-authorizer.js +5 -3
- package/dist/auth/types.d.ts +26 -26
- package/dist/billing/cached-resolver.d.ts +4 -4
- package/dist/billing/run-charge.d.ts +5 -8
- package/dist/billing/run-charge.js +2 -2
- package/dist/billing/usage-recorder.d.ts +9 -9
- package/dist/citations/aggregate.js +1 -1
- package/dist/citations/clients/arxiv.d.ts +2 -2
- package/dist/citations/clients/arxiv.js +12 -4
- package/dist/citations/clients/common.js +4 -2
- package/dist/citations/clients/crossref.d.ts +2 -2
- package/dist/citations/clients/crossref.js +37 -37
- package/dist/citations/clients/doi-registry.js +15 -16
- package/dist/citations/clients/pubmed.d.ts +2 -2
- package/dist/citations/clients/pubmed.js +20 -13
- package/dist/citations/clients/semantic-scholar.d.ts +2 -2
- package/dist/citations/clients/semantic-scholar.js +9 -9
- package/dist/citations/compare.js +2 -2
- package/dist/citations/match.d.ts +2 -2
- package/dist/citations/match.js +12 -7
- package/dist/citations/normalize.js +35 -26
- package/dist/citations/plan.js +6 -2
- package/dist/citations/resolve.d.ts +6 -6
- package/dist/citations/resolve.js +34 -25
- package/dist/citations/types.d.ts +77 -77
- package/dist/config/environment-stores.d.ts +10 -8
- package/dist/config/resource-limits.js +1 -3
- package/dist/contracts/analogy-report.d.ts +7 -7
- package/dist/contracts/analogy-report.js +2 -2
- package/dist/contracts/chat-events.d.ts +46 -22
- package/dist/contracts/chat-events.js +1 -1
- package/dist/contracts/chat-frame.d.ts +15 -5
- package/dist/contracts/chat-frame.js +67 -40
- package/dist/contracts/chat-parts.d.ts +130 -67
- package/dist/contracts/chat-parts.js +1 -0
- package/dist/contracts/content-url.js +16 -2
- package/dist/contracts/data-profile.d.ts +38 -38
- package/dist/contracts/index.d.ts +3 -3
- package/dist/contracts/index.js +1 -1
- package/dist/contracts/message.d.ts +6 -6
- package/dist/contracts/organ-system.d.ts +11 -11
- package/dist/contracts/part-registry.d.ts +5 -4
- package/dist/contracts/part-registry.js +5 -0
- package/dist/contracts/profile-vocabulary.d.ts +11 -10
- package/dist/contracts/profile-vocabulary.js +10 -3
- package/dist/contracts/report-blocks.d.ts +329 -329
- package/dist/contracts/report-reference.d.ts +105 -81
- package/dist/contracts/report-reference.js +30 -13
- package/dist/contracts/schemas/chat-events.d.ts +45 -6
- package/dist/contracts/schemas/chat-events.js +16 -0
- package/dist/contracts/schemas/chat-parts.d.ts +214 -102
- package/dist/contracts/schemas/chat-parts.js +50 -7
- package/dist/contracts/schemas/index.d.ts +1 -1
- package/dist/contracts/schemas/index.js +1 -1
- package/dist/contracts/severity.d.ts +1 -1
- package/dist/contracts/structure-source.d.ts +3 -3
- package/dist/contracts/structure-source.js +6 -2
- package/dist/contracts/subagent-activity.d.ts +2 -2
- package/dist/contracts/subagent-activity.js +5 -3
- package/dist/contracts/usage.d.ts +2 -2
- package/dist/data/safety-panel-schema.d.ts +25 -25
- package/dist/data/safety-panel-schema.js +13 -4
- package/dist/execution/artifact-metadata.d.ts +23 -15
- package/dist/execution/artifact-metadata.js +33 -10
- package/dist/execution/artifact-record.d.ts +2 -2
- package/dist/execution/artifact-registration.d.ts +5 -5
- package/dist/execution/artifact-registry.d.ts +8 -8
- package/dist/execution/dbos-run-launcher.d.ts +24 -4
- package/dist/execution/dbos-run-launcher.js +58 -4
- package/dist/execution/dbos-workflow-purger.d.ts +7 -6
- package/dist/execution/dbos-workflow-purger.js +29 -21
- package/dist/execution/input-signature.d.ts +2 -2
- package/dist/execution/post-step-pipeline.d.ts +9 -9
- package/dist/execution/post-step-pipeline.js +1 -1
- package/dist/execution/post-step.js +2 -2
- package/dist/execution/reconcile-manifest.d.ts +4 -4
- package/dist/execution/reconcile-manifest.js +3 -2
- package/dist/execution/run-authorizer.d.ts +46 -37
- package/dist/execution/run-authorizer.js +8 -8
- package/dist/execution/run-canceler.d.ts +39 -17
- package/dist/execution/run-canceler.js +137 -28
- package/dist/execution/run-end-record.d.ts +29 -0
- package/dist/execution/run-end-record.js +27 -0
- package/dist/execution/run-event-parts.d.ts +0 -8
- package/dist/execution/run-event-parts.js +29 -24
- package/dist/execution/run-event-stream.d.ts +8 -8
- package/dist/execution/run-event-stream.js +3 -4
- package/dist/execution/run-launcher.d.ts +4 -4
- package/dist/execution/run-synthesis.d.ts +49 -48
- package/dist/execution/run-synthesis.js +96 -255
- package/dist/execution/staged-input.d.ts +2 -2
- package/dist/execution/step-summary.d.ts +6 -6
- package/dist/execution/step-summary.js +4 -8
- package/dist/execution/topo-sort.js +4 -3
- package/dist/execution/workflow-purger.d.ts +2 -2
- package/dist/index.d.ts +25 -24
- package/dist/index.js +36 -37
- package/dist/input-sanitization.js +9 -2
- package/dist/input-scan/clustering.d.ts +6 -6
- package/dist/input-scan/clustering.js +11 -5
- package/dist/input-scan/companions.js +3 -2
- package/dist/input-scan/detect-sets.d.ts +2 -2
- package/dist/input-scan/detect-sets.js +25 -21
- package/dist/input-scan/enrich.d.ts +6 -6
- package/dist/input-scan/enrich.js +29 -12
- package/dist/input-scan/formats.d.ts +2 -2
- package/dist/input-scan/formats.js +8 -2
- package/dist/input-scan/markers.d.ts +2 -2
- package/dist/input-scan/markers.js +14 -5
- package/dist/input-scan/menu.d.ts +10 -10
- package/dist/input-scan/menu.js +0 -0
- package/dist/input-scan/quarantine.d.ts +2 -2
- package/dist/input-scan/quarantine.js +23 -18
- package/dist/input-scan/readout-budget.d.ts +2 -2
- package/dist/input-scan/readout-budget.js +1 -1
- package/dist/input-scan/readout.d.ts +2 -2
- package/dist/input-scan/readout.js +47 -34
- package/dist/input-scan/scan.d.ts +2 -2
- package/dist/input-scan/scan.js +7 -5
- package/dist/input-scan/set-types.d.ts +28 -28
- package/dist/input-scan/shapes.d.ts +4 -4
- package/dist/input-scan/shapes.js +0 -0
- package/dist/input-scan/templates.d.ts +10 -10
- package/dist/input-scan/templates.js +30 -22
- package/dist/input-scan/tokens.d.ts +6 -4
- package/dist/input-scan/tokens.js +100 -38
- package/dist/input-scan/types.d.ts +22 -22
- package/dist/lib/async-utils.d.ts +3 -7
- package/dist/lib/async-utils.js +5 -9
- package/dist/lib/cache.js +1 -1
- package/dist/lib/chrome.d.ts +46 -6
- package/dist/lib/console-logger.js +2 -2
- package/dist/lib/db-result.d.ts +22 -6
- package/dist/lib/db-result.js +9 -13
- package/dist/lib/eyes.d.ts +4 -4
- package/dist/lib/eyes.js +1 -1
- package/dist/lib/fs-helpers.js +18 -6
- package/dist/lib/fs-result.d.ts +1 -0
- package/dist/lib/fs-result.js +5 -6
- package/dist/lib/hooks.d.ts +23 -7
- package/dist/lib/hooks.js +17 -3
- package/dist/lib/host-concurrency.js +3 -2
- package/dist/lib/logger.d.ts +2 -2
- package/dist/lib/logger.js +2 -1
- package/dist/lib/metrics.d.ts +1 -1
- package/dist/lib/null-proto.d.ts +6 -0
- package/dist/lib/null-proto.js +17 -0
- package/dist/lib/otel-spans.d.ts +1 -1
- package/dist/lib/otel-spans.js +9 -5
- package/dist/lib/otel.d.ts +4 -2
- package/dist/lib/otel.js +10 -2
- package/dist/lib/page-capture.d.ts +8 -8
- package/dist/lib/page-capture.js +9 -4
- package/dist/lib/parse-json.d.ts +5 -0
- package/dist/lib/parse-json.js +12 -0
- package/dist/lib/present.d.ts +12 -0
- package/dist/lib/present.js +39 -0
- package/dist/lib/rate-limit.d.ts +4 -4
- package/dist/lib/rate-limit.js +12 -13
- package/dist/lib/regulatory-corpus/fetch-fda-guidance.d.ts +4 -4
- package/dist/lib/regulatory-corpus/fetch-fda-guidance.js +4 -10
- package/dist/lib/regulatory-corpus/fetch-ich.d.ts +4 -4
- package/dist/lib/regulatory-corpus/fetch-ich.js +18 -14
- package/dist/lib/regulatory-corpus/normalize-whitespace.d.ts +6 -0
- package/dist/lib/regulatory-corpus/normalize-whitespace.js +41 -0
- package/dist/lib/regulatory-corpus.d.ts +10 -10
- package/dist/lib/regulatory-corpus.js +3 -1
- package/dist/lib/result.d.ts +10 -11
- package/dist/lib/result.js +15 -13
- package/dist/lib/storage.d.ts +2 -2
- package/dist/lib/test/async-iterable.d.ts +9 -0
- package/dist/lib/test/async-iterable.js +28 -0
- package/dist/lib/test/request-url.d.ts +5 -0
- package/dist/lib/test/request-url.js +7 -0
- package/dist/lib/test/result-assert.d.ts +12 -0
- package/dist/lib/test/result-assert.js +17 -0
- package/dist/lib/test/text-shapes.d.ts +24 -0
- package/dist/lib/test/text-shapes.js +63 -0
- package/dist/lib/text.d.ts +22 -0
- package/dist/lib/text.js +68 -0
- package/dist/lib/thrown.d.ts +18 -0
- package/dist/lib/thrown.js +30 -0
- package/dist/lib/unknown-array.d.ts +6 -0
- package/dist/lib/unknown-array.js +8 -0
- package/dist/lib/unknown-containers.d.ts +14 -0
- package/dist/lib/unknown-containers.js +17 -0
- package/dist/lib/unknown-text.d.ts +8 -0
- package/dist/lib/unknown-text.js +28 -0
- package/dist/lib/zod-issue-shape.d.ts +1 -1
- package/dist/lib/zod-issue-shape.js +31 -31
- package/dist/lib/zod-issues.d.ts +3 -3
- package/dist/lib/zod-issues.js +30 -17
- package/dist/literature/sources/arxiv.d.ts +6 -6
- package/dist/literature/sources/arxiv.js +92 -35
- package/dist/literature/sources/http.d.ts +2 -2
- package/dist/literature/sources/http.js +16 -15
- package/dist/literature/sources/pubmed.d.ts +16 -16
- package/dist/literature/sources/pubmed.js +96 -61
- package/dist/literature/sources/semantic-scholar.d.ts +8 -8
- package/dist/literature/sources/semantic-scholar.js +22 -13
- package/dist/loop/accounting.d.ts +63 -0
- package/dist/loop/accounting.js +141 -0
- package/dist/loop/call-policy.d.ts +73 -0
- package/dist/loop/call-policy.js +109 -0
- package/dist/loop/chat-stream.d.ts +62 -0
- package/dist/loop/chat-stream.js +237 -0
- package/dist/loop/compaction.d.ts +14 -9
- package/dist/loop/compaction.js +17 -0
- package/dist/loop/metrics.d.ts +12 -15
- package/dist/loop/metrics.js +14 -26
- package/dist/loop/run-loop.d.ts +233 -0
- package/dist/loop/run-loop.js +770 -0
- package/dist/loop/sub-agent.d.ts +61 -0
- package/dist/loop/sub-agent.js +161 -0
- package/dist/loop/tool-adapter.d.ts +98 -0
- package/dist/loop/tool-adapter.js +364 -0
- package/dist/loop/tool-detail.d.ts +1 -1
- package/dist/loop/tool-detail.js +6 -5
- package/dist/loop/tool-outcome.d.ts +1 -1
- package/dist/loop/tool-output.d.ts +4 -4
- package/dist/loop/tool-output.js +2 -2
- package/dist/loop/turn-credentials.d.ts +34 -0
- package/dist/loop/turn-credentials.js +73 -0
- package/dist/loop/types.d.ts +34 -37
- package/dist/loop/types.js +2 -7
- package/dist/memory/ai-sdk-message-storage.d.ts +5 -5
- package/dist/memory/ai-sdk-message-storage.js +13 -11
- package/dist/memory/card-builders.d.ts +14 -14
- package/dist/memory/card-builders.js +19 -15
- package/dist/memory/conversation-display-recorder.d.ts +22 -6
- package/dist/memory/conversation-display-recorder.js +64 -20
- package/dist/memory/conversation-display-replay.js +3 -2
- package/dist/memory/conversation-display-storage.d.ts +15 -7
- package/dist/memory/conversation-display-storage.js +141 -36
- package/dist/memory/conversation-view.d.ts +4 -4
- package/dist/memory/conversation-view.js +5 -4
- package/dist/memory/count-tokens.js +10 -8
- package/dist/memory/derive-thread-title.d.ts +0 -13
- package/dist/memory/derive-thread-title.js +2 -1
- package/dist/memory/message-backfill.d.ts +12 -5
- package/dist/memory/message-backfill.js +5 -3
- package/dist/memory/thread-history.d.ts +66 -24
- package/dist/memory/thread-history.js +212 -79
- package/dist/memory/thread-store.d.ts +26 -17
- package/dist/memory/thread-store.js +15 -9
- package/dist/memory/tool-call-integrity.d.ts +2 -2
- package/dist/memory/tool-call-integrity.js +4 -3
- package/dist/memory/working-memory.d.ts +16 -12
- package/dist/memory/working-memory.js +72 -61
- package/dist/prompts/briefing.d.ts +63 -9
- package/dist/prompts/briefing.js +130 -3
- package/dist/prompts/planner.js +13 -2
- package/dist/prompts/synthesis-agent.d.ts +1 -1
- package/dist/prompts/synthesis-agent.js +6 -14
- package/dist/provenance/collector.d.ts +6 -6
- package/dist/provenance/collector.js +15 -8
- package/dist/provenance/exec-frame.d.ts +2 -2
- package/dist/provenance/exec-frame.js +6 -1
- package/dist/provenance/seam.d.ts +24 -19
- package/dist/provenance/seam.js +7 -5
- package/dist/provenance/types.d.ts +6 -6
- package/dist/providers/ai-sdk.d.ts +113 -62
- package/dist/providers/ai-sdk.js +303 -458
- package/dist/providers/embedding.d.ts +2 -2
- package/dist/providers/embedding.js +1 -1
- package/dist/providers/errors.d.ts +22 -2
- package/dist/providers/errors.js +98 -50
- package/dist/providers/prompt-cache.d.ts +8 -8
- package/dist/providers/prompt-cache.js +13 -11
- package/dist/providers/reasoning.d.ts +2 -2
- package/dist/providers/reasoning.js +2 -2
- package/dist/providers/types.d.ts +59 -92
- package/dist/reference-data/catalog.d.ts +2 -15
- package/dist/reference-data/catalog.js +166 -10
- package/dist/reference-data/receipt.d.ts +2 -2
- package/dist/report-model/assert-rules.js +1 -1
- package/dist/report-model/authoring-grammar.d.ts +209 -231
- package/dist/report-model/block-walk.d.ts +10 -10
- package/dist/report-model/block-walk.js +2 -0
- package/dist/report-model/draft-finish.d.ts +8 -8
- package/dist/report-model/draft-finish.js +1 -1
- package/dist/report-model/draft-hash.js +8 -7
- package/dist/report-model/draft-operations.d.ts +22 -10
- package/dist/report-model/draft-operations.js +48 -30
- package/dist/report-model/draft-read.d.ts +19 -7
- package/dist/report-model/draft-read.js +16 -6
- package/dist/report-model/draft.d.ts +844 -2
- package/dist/report-model/draft.js +3 -1
- package/dist/report-model/fixture-resolver.js +39 -16
- package/dist/report-model/pin-snapshot.d.ts +2 -2
- package/dist/report-model/pin-snapshot.js +15 -15
- package/dist/report-model/production-resolver.d.ts +18 -18
- package/dist/report-model/production-resolver.js +50 -42
- package/dist/report-model/reference-resolver.d.ts +26 -10
- package/dist/report-model/reference-resolver.js +68 -5
- package/dist/report-model/reference-stamp.js +30 -38
- package/dist/report-model/structural-validation.js +12 -4
- package/dist/report-model/validate.d.ts +7 -7
- package/dist/report-model/validate.js +6 -6
- package/dist/report-render/assets.d.ts +2 -2
- package/dist/report-render/assets.js +27 -3
- package/dist/report-render/chart-export.d.ts +10 -2
- package/dist/report-render/chart-export.js +37 -11
- package/dist/report-render/chart-presets.d.ts +8 -8
- package/dist/report-render/chart-presets.js +3 -3
- package/dist/report-render/chart-renderers.d.ts +23 -16
- package/dist/report-render/chart-renderers.js +74 -53
- package/dist/report-render/chart-toolbox.d.ts +2 -2
- package/dist/report-render/chart-toolbox.js +7 -6
- package/dist/report-render/chart.d.ts +15 -16
- package/dist/report-render/chart.js +369 -252
- package/dist/report-render/design.d.ts +36 -297
- package/dist/report-render/design.js +0 -12
- package/dist/report-render/figures/common.d.ts +12 -12
- package/dist/report-render/figures/common.js +42 -31
- package/dist/report-render/figures/dendrogram.d.ts +3 -3
- package/dist/report-render/figures/dendrogram.js +10 -10
- package/dist/report-render/figures/dense.js +15 -8
- package/dist/report-render/figures/dotplot.js +46 -33
- package/dist/report-render/figures/embedding.js +52 -43
- package/dist/report-render/figures/equal-units.d.ts +10 -10
- package/dist/report-render/figures/equal-units.js +27 -27
- package/dist/report-render/figures/forest.js +9 -7
- package/dist/report-render/figures/gsea.js +21 -11
- package/dist/report-render/figures/heatmap.js +13 -9
- package/dist/report-render/figures/index.d.ts +10 -10
- package/dist/report-render/figures/index.js +4 -2
- package/dist/report-render/figures/km.js +10 -9
- package/dist/report-render/figures/label-room.d.ts +12 -12
- package/dist/report-render/figures/label-room.js +7 -2
- package/dist/report-render/figures/locuszoom.d.ts +2 -2
- package/dist/report-render/figures/locuszoom.js +59 -31
- package/dist/report-render/figures/lollipop.js +3 -2
- package/dist/report-render/figures/ma.js +8 -4
- package/dist/report-render/figures/manhattan.d.ts +1 -2
- package/dist/report-render/figures/manhattan.js +52 -34
- package/dist/report-render/figures/oncoprint.js +4 -5
- package/dist/report-render/figures/pca.js +25 -11
- package/dist/report-render/figures/qq.js +20 -9
- package/dist/report-render/figures/roc.js +1 -1
- package/dist/report-render/figures/sankey.d.ts +2 -2
- package/dist/report-render/figures/sankey.js +11 -10
- package/dist/report-render/figures/upset.d.ts +6 -6
- package/dist/report-render/figures/upset.js +7 -4
- package/dist/report-render/figures/volcano.js +12 -10
- package/dist/report-render/hybrid-svg.d.ts +4 -4
- package/dist/report-render/hybrid-svg.js +7 -5
- package/dist/report-render/number-format.d.ts +4 -4
- package/dist/report-render/number-format.js +62 -27
- package/dist/report-render/page.js +2 -1
- package/dist/report-render/provenance-data.d.ts +2 -2
- package/dist/report-render/references.d.ts +4 -4
- package/dist/report-render/render.d.ts +2 -2
- package/dist/report-render/render.js +10 -11
- package/dist/report-render/script-json.js +1 -1
- package/dist/report-render/table-data.d.ts +6 -6
- package/dist/report-render/test/options.d.ts +49 -0
- package/dist/report-render/test/options.js +143 -0
- package/dist/report-render/test/page-function.d.ts +19 -0
- package/dist/report-render/test/page-function.js +33 -0
- package/dist/report-render/types.d.ts +10 -10
- package/dist/report-render/value-bridge.d.ts +4 -4
- package/dist/report-render/value-bridge.js +27 -14
- package/dist/report-render/views/chart-view.d.ts +2 -2
- package/dist/report-render/views/chart-view.js +2 -2
- package/dist/report-render/views/lineage.d.ts +6 -6
- package/dist/report-render/views/lineage.js +2 -0
- package/dist/report-render/views/page-view.d.ts +2 -2
- package/dist/report-render/views/page-view.js +1 -0
- package/dist/report-render/views/prose.js +25 -8
- package/dist/report-render/views/references-view.js +12 -1
- package/dist/report-render/views/values.js +1 -1
- package/dist/runtime/assemble.d.ts +53 -26
- package/dist/runtime/assemble.js +103 -56
- package/dist/runtime/boot.d.ts +8 -7
- package/dist/runtime/boot.js +1 -1
- package/dist/runtime/connection-budget.d.ts +6 -6
- package/dist/runtime/connection-budget.js +1 -1
- package/dist/runtime/dbos.d.ts +29 -19
- package/dist/runtime/dbos.js +35 -20
- package/dist/runtime/result-serialization.js +18 -5
- package/dist/runtime/shutdown.d.ts +2 -2
- package/dist/sandbox/client.d.ts +7 -3
- package/dist/sandbox/cpu-files.d.ts +2 -2
- package/dist/sandbox/cpu-files.js +21 -4
- package/dist/sandbox/create-sandbox.d.ts +7 -8
- package/dist/sandbox/create-sandbox.js +6 -12
- package/dist/sandbox/docker-client.d.ts +48 -3
- package/dist/sandbox/docker-client.js +10 -6
- package/dist/sandbox/estimate-data-profile-resources.js +2 -7
- package/dist/sandbox/exec-outcome.d.ts +2 -2
- package/dist/sandbox/exec-outcome.js +1 -1
- package/dist/sandbox/exec.d.ts +10 -6
- package/dist/sandbox/exec.js +27 -12
- package/dist/sandbox/execution-id.js +14 -6
- package/dist/sandbox/farm.d.ts +2 -2
- package/dist/sandbox/farm.js +22 -27
- package/dist/sandbox/identity.d.ts +7 -0
- package/dist/sandbox/identity.js +14 -3
- package/dist/sandbox/image-packages.d.ts +26 -4
- package/dist/sandbox/image-packages.js +29 -27
- package/dist/sandbox/k8s-client.d.ts +35 -8
- package/dist/sandbox/k8s-client.js +6 -5
- package/dist/sandbox/labels.js +1 -0
- package/dist/sandbox/liveness.js +3 -1
- package/dist/sandbox/mount-plan.d.ts +10 -10
- package/dist/sandbox/mount-plan.js +13 -14
- package/dist/sandbox/notification-sweep.d.ts +4 -4
- package/dist/sandbox/notification-sweep.js +4 -7
- package/dist/sandbox/package-identity.d.ts +6 -13
- package/dist/sandbox/package-identity.js +46 -28
- package/dist/sandbox/reaper.d.ts +10 -10
- package/dist/sandbox/reaper.js +4 -6
- package/dist/sandbox/sandbox-error.d.ts +2 -9
- package/dist/sandbox/sandbox-error.js +21 -8
- package/dist/sandbox/sandbox-step-translate.d.ts +8 -5
- package/dist/sandbox/sandbox-step-translate.js +22 -8
- package/dist/sandbox/step-sandbox.d.ts +47 -0
- package/dist/sandbox/step-sandbox.js +53 -0
- package/dist/sandbox/types.d.ts +18 -19
- package/dist/sandbox/types.js +1 -1
- package/dist/schemas/artifact-manifest.d.ts +4 -4
- package/dist/schemas/data-profile-schemas.d.ts +351 -306
- package/dist/schemas/file-metadata.js +2 -4
- package/dist/schemas/plan-schemas.d.ts +79 -25
- package/dist/schemas/plan-schemas.js +1 -1
- package/dist/schemas/run-synthesis.d.ts +95 -26
- package/dist/schemas/run-synthesis.js +3 -1
- package/dist/schemas/validate-plan.d.ts +4 -4
- package/dist/schemas/validate-plan.js +17 -5
- package/dist/schemas/workflow-state.d.ts +127 -14
- package/dist/schemas/workflow-state.js +56 -2
- package/dist/state/active-turns.d.ts +36 -0
- package/dist/state/active-turns.js +67 -0
- package/dist/state/analyses-metrics.d.ts +8 -8
- package/dist/state/analyses-metrics.js +4 -4
- package/dist/state/analyses.d.ts +0 -14
- package/dist/state/analyses.js +0 -32
- package/dist/state/artifacts.d.ts +47 -18
- package/dist/state/artifacts.js +48 -7
- package/dist/state/data-profile.d.ts +2 -2
- package/dist/state/db.d.ts +12 -2
- package/dist/state/db.js +5 -0
- package/dist/state/edit-intents.d.ts +4 -0
- package/dist/state/edit-intents.js +71 -0
- package/dist/state/index.d.ts +5 -5
- package/dist/state/index.js +3 -3
- package/dist/state/init.d.ts +2 -1
- package/dist/state/init.js +5 -2
- package/dist/state/migrations/20260927120000_baseline.js +3 -1
- package/dist/state/migrations/20261026120000_add_the_edit_intents.d.ts +7 -0
- package/dist/state/migrations/20261026120000_add_the_edit_intents.js +21 -0
- package/dist/state/migrations/20261027120000_record_the_applied_memory_edits.d.ts +7 -0
- package/dist/state/migrations/20261027120000_record_the_applied_memory_edits.js +16 -0
- package/dist/state/migrations/20261027120100_store_the_authoring_results.d.ts +8 -0
- package/dist/state/migrations/20261027120100_store_the_authoring_results.js +20 -0
- package/dist/state/migrations/20261027120200_key_the_groups_of_a_turn.d.ts +7 -0
- package/dist/state/migrations/20261027120200_key_the_groups_of_a_turn.js +12 -0
- package/dist/state/migrations/20261027120300_mark_the_active_turn_of_a_thread.d.ts +7 -0
- package/dist/state/migrations/20261027120300_mark_the_active_turn_of_a_thread.js +11 -0
- package/dist/state/migrations/20261028120000_record_the_paused_work.d.ts +7 -0
- package/dist/state/migrations/20261028120000_record_the_paused_work.js +25 -0
- package/dist/state/migrations/20261028120100_end_the_suspended_runs.d.ts +8 -0
- package/dist/state/migrations/20261028120100_end_the_suspended_runs.js +13 -0
- package/dist/state/migrations/20261029120000_reference_the_run_mandate.d.ts +7 -0
- package/dist/state/migrations/20261029120000_reference_the_run_mandate.js +23 -0
- package/dist/state/migrations/20261029120100_record_the_run_session_of_a_pause.d.ts +7 -0
- package/dist/state/migrations/20261029120100_record_the_run_session_of_a_pause.js +11 -0
- package/dist/state/migrations/index.js +18 -0
- package/dist/state/paused-work.d.ts +52 -0
- package/dist/state/paused-work.js +105 -0
- package/dist/state/plans.d.ts +27 -8
- package/dist/state/plans.js +14 -11
- package/dist/state/purge-analysis.d.ts +6 -6
- package/dist/state/purge-analysis.js +10 -2
- package/dist/state/report-session-state.d.ts +43 -18
- package/dist/state/report-session-state.js +43 -4
- package/dist/state/report-versions.d.ts +16 -11
- package/dist/state/report-versions.js +5 -3
- package/dist/state/runs.d.ts +70 -25
- package/dist/state/runs.js +127 -64
- package/dist/state/schema.d.ts +18 -21
- package/dist/state/schema.js +4 -5
- package/dist/state/snapshot-parse.d.ts +2 -2
- package/dist/state/snapshot-parse.js +14 -8
- package/dist/state/step-executions.d.ts +29 -8
- package/dist/state/step-executions.js +28 -4
- package/dist/state/tool-outputs.d.ts +2 -2
- package/dist/state/tool-outputs.js +2 -1
- package/dist/state/vector-store.d.ts +16 -16
- package/dist/state/vector-store.js +11 -7
- package/dist/tasks/data-profile-absorb.d.ts +3 -3
- package/dist/tasks/data-profile-absorb.js +21 -16
- package/dist/tasks/data-profile-activity.d.ts +5 -5
- package/dist/tasks/data-profile-activity.js +5 -5
- package/dist/tasks/data-profile-index.d.ts +4 -4
- package/dist/tasks/data-profile-index.js +32 -17
- package/dist/tasks/data-profile-resolve.d.ts +8 -8
- package/dist/tasks/data-profile-resolve.js +88 -62
- package/dist/tasks/data-profile.d.ts +40 -31
- package/dist/tasks/data-profile.js +138 -95
- package/dist/tasks/extract-values.d.ts +26 -79
- package/dist/tasks/extract-values.js +48 -108
- package/dist/tasks/refresh-regulatory-corpus.d.ts +4 -20
- package/dist/tasks/refresh-regulatory-corpus.js +12 -8
- package/dist/tasks/regulatory-corpus-boot-refresh.d.ts +2 -2
- package/dist/tasks/regulatory-corpus-boot-refresh.js +12 -10
- package/dist/testing.d.ts +60 -0
- package/dist/testing.js +96 -0
- package/dist/tools/ad-hoc-router.d.ts +11 -9
- package/dist/tools/ad-hoc-router.js +80 -51
- package/dist/tools/analysis-invocation.d.ts +7 -0
- package/dist/tools/analysis-invocation.js +29 -5
- package/dist/tools/approval/contract.d.ts +8 -52
- package/dist/tools/approval/contract.js +7 -36
- package/dist/tools/approval/gateway.d.ts +27 -28
- package/dist/tools/approval/gateway.js +33 -130
- package/dist/tools/approval/queries.d.ts +6 -11
- package/dist/tools/approval/queries.js +43 -29
- package/dist/tools/approval/uuidv7.js +2 -2
- package/dist/tools/bio/chembl.d.ts +3 -3
- package/dist/tools/bio/chembl.js +10 -0
- package/dist/tools/bio/comptox.d.ts +25 -8
- package/dist/tools/bio/comptox.js +4 -2
- package/dist/tools/bio/drug-gene-interactions.d.ts +27 -17
- package/dist/tools/bio/drug-gene-interactions.js +11 -8
- package/dist/tools/bio/gene-disease-evidence.d.ts +61 -15
- package/dist/tools/bio/gene-disease-evidence.js +10 -6
- package/dist/tools/bio/gene-preclinical-profile.d.ts +11 -11
- package/dist/tools/bio/keys.d.ts +2 -2
- package/dist/tools/bio/keys.js +3 -3
- package/dist/tools/bio/lookup-annotation.d.ts +5 -5
- package/dist/tools/bio/lookup-annotation.js +3 -0
- package/dist/tools/bio/opentargets.d.ts +1 -1
- package/dist/tools/bio/opentargets.js +6 -0
- package/dist/tools/bio/pubchem.d.ts +2 -2
- package/dist/tools/bio/pubchem.js +6 -0
- package/dist/tools/bio/pubmed.d.ts +26 -16
- package/dist/tools/bio/pubmed.js +9 -3
- package/dist/tools/bio/search-clinical-trials.d.ts +4 -4
- package/dist/tools/bio/search-clinical-trials.js +5 -1
- package/dist/tools/bio/search-faers.d.ts +2 -2
- package/dist/tools/bio/search-faers.js +1 -1
- package/dist/tools/bio/search-gene.d.ts +2 -2
- package/dist/tools/bio/search-gene.js +1 -0
- package/dist/tools/bio/search-geo-datasets.d.ts +4 -4
- package/dist/tools/bio/search-geo-datasets.js +5 -5
- package/dist/tools/bio/search-interactions.d.ts +1 -1
- package/dist/tools/bio/search-patents.d.ts +28 -22
- package/dist/tools/bio/search-patents.js +20 -17
- package/dist/tools/bio/search-protein.d.ts +2 -2
- package/dist/tools/bio/search-protein.js +1 -1
- package/dist/tools/bio/search-regulatory-approvals.d.ts +64 -18
- package/dist/tools/bio/search-regulatory-approvals.js +21 -16
- package/dist/tools/bio/target-safety.d.ts +8 -8
- package/dist/tools/bio/target-safety.js +11 -6
- package/dist/tools/capability-data.d.ts +40 -0
- package/dist/tools/capability-data.js +74 -0
- package/dist/tools/define-tool.d.ts +55 -46
- package/dist/tools/define-tool.js +39 -27
- package/dist/tools/display/normalize-echart-spec.d.ts +2 -2
- package/dist/tools/display/normalize-echart-spec.js +51 -27
- package/dist/tools/display/show-user.d.ts +2 -2
- package/dist/tools/display/show-user.js +1 -1
- package/dist/tools/execute-analysis.d.ts +54 -17
- package/dist/tools/execute-analysis.js +193 -62
- package/dist/tools/knowledge/check.d.ts +182 -0
- package/dist/tools/knowledge/check.js +94 -0
- package/dist/tools/knowledge/client.d.ts +351 -0
- package/dist/tools/knowledge/client.js +319 -0
- package/dist/tools/knowledge/environment.d.ts +78 -0
- package/dist/tools/knowledge/environment.js +116 -0
- package/dist/tools/knowledge/index.d.ts +49 -0
- package/dist/tools/knowledge/index.js +70 -0
- package/dist/tools/knowledge/local-slots.d.ts +62 -0
- package/dist/tools/knowledge/local-slots.js +184 -0
- package/dist/tools/knowledge/pin.d.ts +14 -0
- package/dist/tools/knowledge/pin.js +17 -0
- package/dist/tools/knowledge/recommend.d.ts +67 -0
- package/dist/tools/knowledge/recommend.js +106 -0
- package/dist/tools/knowledge/situation.d.ts +143 -0
- package/dist/tools/knowledge/situation.js +157 -0
- package/dist/tools/knowledge/skeleton.d.ts +69 -0
- package/dist/tools/knowledge/skeleton.js +201 -0
- package/dist/tools/knowledge/template.d.ts +139 -0
- package/dist/tools/knowledge/template.js +273 -0
- package/dist/tools/lib/alphafold-client.js +2 -1
- package/dist/tools/lib/amass-client.d.ts +28 -28
- package/dist/tools/lib/amass-client.js +20 -10
- package/dist/tools/lib/api-utils.d.ts +13 -3
- package/dist/tools/lib/api-utils.js +17 -3
- package/dist/tools/lib/bgee-client.d.ts +6 -6
- package/dist/tools/lib/bgee-client.js +16 -10
- package/dist/tools/lib/cbioportal-client.d.ts +4 -4
- package/dist/tools/lib/cbioportal-client.js +9 -8
- package/dist/tools/lib/chembl-client.d.ts +14 -14
- package/dist/tools/lib/chembl-client.js +11 -4
- package/dist/tools/lib/clinical-benchmarks-client.d.ts +4 -4
- package/dist/tools/lib/clinical-benchmarks-client.js +4 -7
- package/dist/tools/lib/clinical-trials-client.d.ts +18 -18
- package/dist/tools/lib/clinical-trials-client.js +10 -10
- package/dist/tools/lib/clinvar-client.d.ts +2 -2
- package/dist/tools/lib/clinvar-client.js +6 -6
- package/dist/tools/lib/ctx-ops.d.ts +23 -23
- package/dist/tools/lib/ctx-ops.js +13 -10
- package/dist/tools/lib/dgidb-client.d.ts +6 -6
- package/dist/tools/lib/dgidb-client.js +10 -12
- package/dist/tools/lib/disgenet-client.d.ts +4 -4
- package/dist/tools/lib/ema-client.d.ts +2 -2
- package/dist/tools/lib/ensembl-client.d.ts +4 -4
- package/dist/tools/lib/ensembl-client.js +5 -4
- package/dist/tools/lib/gwas-catalog-client.d.ts +4 -4
- package/dist/tools/lib/gwas-catalog-client.js +17 -17
- package/dist/tools/lib/html-text.d.ts +6 -0
- package/dist/tools/lib/html-text.js +9 -0
- package/dist/tools/lib/identifier-resolver.d.ts +4 -4
- package/dist/tools/lib/identifier-resolver.js +7 -3
- package/dist/tools/lib/impc-client.d.ts +8 -8
- package/dist/tools/lib/impc-client.js +46 -35
- package/dist/tools/lib/iuphar-client.d.ts +2 -2
- package/dist/tools/lib/iuphar-client.js +7 -16
- package/dist/tools/lib/monarch-client.d.ts +4 -4
- package/dist/tools/lib/openfda-client.d.ts +22 -22
- package/dist/tools/lib/openfda-client.js +23 -22
- package/dist/tools/lib/opentargets-client.d.ts +12 -12
- package/dist/tools/lib/pathway-client.d.ts +4 -4
- package/dist/tools/lib/pathway-client.js +15 -19
- package/dist/tools/lib/pharmgkb-client.d.ts +2 -2
- package/dist/tools/lib/pharmgkb-client.js +1 -1
- package/dist/tools/lib/protein-family-modality.d.ts +2 -2
- package/dist/tools/lib/protein-family-modality.js +0 -2
- package/dist/tools/lib/protein-family-normalize.js +7 -0
- package/dist/tools/lib/pubchem-client.d.ts +2 -2
- package/dist/tools/lib/pubchem-client.js +1 -0
- package/dist/tools/lib/pubchem-ops.d.ts +4 -4
- package/dist/tools/lib/pubchem-ops.js +8 -0
- package/dist/tools/lib/pubmed-client.d.ts +9 -9
- package/dist/tools/lib/pubmed-client.js +1 -1
- package/dist/tools/lib/string-client.d.ts +6 -6
- package/dist/tools/lib/uniprot-client.d.ts +8 -8
- package/dist/tools/lib/uniprot-client.js +5 -1
- package/dist/tools/memory/update-working-memory.d.ts +16 -13
- package/dist/tools/memory/update-working-memory.js +21 -3
- package/dist/tools/read-tool-output.js +8 -2
- package/dist/tools/registry.d.ts +2 -2
- package/dist/tools/report-authoring/authoring-tools.d.ts +54 -23
- package/dist/tools/report-authoring/authoring-tools.js +128 -62
- package/dist/tools/report-session/derive-table.d.ts +19 -59
- package/dist/tools/report-session/derive-table.js +120 -122
- package/dist/tools/report-session/examine-page.d.ts +6 -6
- package/dist/tools/report-session/examine-page.js +14 -12
- package/dist/tools/report-session/list-artifacts.d.ts +6 -6
- package/dist/tools/report-session/list-artifacts.js +5 -5
- package/dist/tools/report-session/page-faults.d.ts +6 -6
- package/dist/tools/report-session/page-faults.js +3 -1
- package/dist/tools/report-session/preview-report.d.ts +4 -3
- package/dist/tools/report-session/preview-report.js +26 -7
- package/dist/tools/report-session/record-version.d.ts +9 -4
- package/dist/tools/report-session/record-version.js +16 -9
- package/dist/tools/report-session/session-page-publisher.d.ts +6 -6
- package/dist/tools/research/generate-analogy-report.d.ts +14 -7
- package/dist/tools/research/generate-analogy-report.js +80 -76
- package/dist/tools/research/generate-plan.d.ts +39 -16
- package/dist/tools/research/generate-plan.js +565 -338
- package/dist/tools/research/guarded-address.d.ts +20 -0
- package/dist/tools/research/guarded-address.js +149 -0
- package/dist/tools/research/inspect-data-profile.d.ts +27 -20
- package/dist/tools/research/inspect-data-profile.js +26 -25
- package/dist/tools/research/inspect-run.d.ts +54 -27
- package/dist/tools/research/inspect-run.js +50 -40
- package/dist/tools/research/literature-reviewer.d.ts +8 -7
- package/dist/tools/research/literature-reviewer.js +29 -28
- package/dist/tools/research/search-arxiv.d.ts +1 -1
- package/dist/tools/research/search-arxiv.js +1 -1
- package/dist/tools/research/search-github-repos.d.ts +10 -7
- package/dist/tools/research/search-github-repos.js +25 -22
- package/dist/tools/research/search-semantic-scholar.js +1 -1
- package/dist/tools/research/searxng-engine.d.ts +40 -0
- package/dist/tools/research/searxng-engine.js +122 -0
- package/dist/tools/research/web-fetch.d.ts +127 -0
- package/dist/tools/research/web-fetch.js +618 -0
- package/dist/tools/research/web-search.d.ts +84 -0
- package/dist/tools/research/web-search.js +117 -0
- package/dist/tools/sandbox/link-packages.d.ts +11 -7
- package/dist/tools/sandbox/link-packages.js +11 -8
- package/dist/tools/sandbox/list-available-packages.d.ts +24 -12
- package/dist/tools/sandbox/list-available-packages.js +43 -29
- package/dist/tools/sandbox/list-available-refs.d.ts +38 -14
- package/dist/tools/sandbox/list-available-refs.js +119 -37
- package/dist/tools/sandbox/report-blocker.d.ts +30 -37
- package/dist/tools/sandbox/report-blocker.js +22 -68
- package/dist/tools/sandbox/skills.d.ts +16 -12
- package/dist/tools/sandbox/skills.js +16 -12
- package/dist/tools/sandbox/submit-file-metadata.d.ts +12 -9
- package/dist/tools/sandbox/submit-file-metadata.js +18 -21
- package/dist/tools/start-report-session.d.ts +13 -5
- package/dist/tools/start-report-session.js +35 -8
- package/dist/tools/terminal-text.d.ts +14 -0
- package/dist/tools/terminal-text.js +51 -0
- package/dist/tools/workspace/decision-record.d.ts +81 -0
- package/dist/tools/workspace/decision-record.js +127 -0
- package/dist/tools/workspace/edit-file.d.ts +59 -18
- package/dist/tools/workspace/edit-file.js +98 -15
- package/dist/tools/workspace/execute-command.d.ts +31 -12
- package/dist/tools/workspace/execute-command.js +37 -8
- package/dist/tools/workspace/file-stat.d.ts +6 -3
- package/dist/tools/workspace/grep.d.ts +10 -7
- package/dist/tools/workspace/grep.js +9 -3
- package/dist/tools/workspace/index.d.ts +1 -0
- package/dist/tools/workspace/index.js +1 -0
- package/dist/tools/workspace/list-files.d.ts +6 -3
- package/dist/tools/workspace/mutator.d.ts +28 -15
- package/dist/tools/workspace/mutator.js +107 -53
- package/dist/tools/workspace/read-file.d.ts +8 -5
- package/dist/tools/workspace/result-bounds.d.ts +5 -5
- package/dist/tools/workspace/result-bounds.js +4 -2
- package/dist/tools/workspace/run-exec.d.ts +2 -2
- package/dist/tools/workspace/run-exec.js +3 -3
- package/dist/tools/workspace/scan-inputs.d.ts +8 -5
- package/dist/tools/workspace/scan-inputs.js +17 -5
- package/dist/tools/workspace/show-file.d.ts +1 -1
- package/dist/tools/workspace/show-file.js +2 -1
- package/dist/tools/workspace/show-plan.d.ts +8 -5
- package/dist/tools/workspace/show-plan.js +9 -8
- package/dist/tools/workspace/workspace-search.d.ts +41 -13
- package/dist/tools/workspace/workspace-search.js +27 -14
- package/dist/tools/workspace/write-file.d.ts +9 -7
- package/dist/workflows/execute-analysis-scheduler.d.ts +9 -9
- package/dist/workflows/execute-analysis-scheduler.js +6 -3
- package/dist/workflows/execute-analysis.d.ts +100 -76
- package/dist/workflows/execute-analysis.js +380 -247
- package/dist/workflows/pause.d.ts +71 -0
- package/dist/workflows/pause.js +173 -0
- package/dist/workflows/sandbox-step.d.ts +50 -61
- package/dist/workflows/sandbox-step.js +99 -106
- package/dist/workflows/test/sql-writes.d.ts +21 -0
- package/dist/workflows/test/sql-writes.js +36 -0
- package/dist/workspace/filesystem.d.ts +6 -6
- package/dist/workspace/filesystem.js +10 -8
- package/dist/workspace/paths.d.ts +1 -1
- package/dist/workspace/paths.js +15 -4
- package/dist/workspace/search-config.d.ts +2 -2
- package/dist/workspace/search-config.js +1 -1
- package/package.json +25 -22
- package/dist/loop/continue-agent.d.ts +0 -40
- package/dist/loop/continue-agent.js +0 -38
- package/dist/loop/genai-spans.d.ts +0 -47
- package/dist/loop/genai-spans.js +0 -134
- package/dist/loop/run-agent.d.ts +0 -236
- package/dist/loop/run-agent.js +0 -1110
- package/dist/loop/run-step.d.ts +0 -29
- package/dist/loop/run-step.js +0 -34
- package/dist/loop/run-to-terminal.d.ts +0 -66
- package/dist/loop/run-to-terminal.js +0 -90
- package/dist/loop/tool-mask.d.ts +0 -23
- package/dist/loop/tool-mask.js +0 -46
- package/dist/providers/streaming-chat.d.ts +0 -32
- package/dist/providers/streaming-chat.js +0 -91
- package/dist/tasks/derive-table-exec.d.ts +0 -54
- package/dist/tasks/derive-table-exec.js +0 -86
- package/dist/workflows/suspension.d.ts +0 -32
- package/dist/workflows/suspension.js +0 -38
|
@@ -5,6 +5,47 @@
|
|
|
5
5
|
* and the completion schemas that validate LLM structured output.
|
|
6
6
|
*/
|
|
7
7
|
import { z } from "zod";
|
|
8
|
+
/**
|
|
9
|
+
* One scientific setting of a grounded step: a parameter of the procedure
|
|
10
|
+
* that `knowledge_recommend` returned, with the procedure step it belongs to
|
|
11
|
+
* and the source of its value. The host binds the settings to the template
|
|
12
|
+
* of the step at dispatch, thus a template default never replaces a plan
|
|
13
|
+
* decision silently.
|
|
14
|
+
*/
|
|
15
|
+
export declare const GroundingSettingSchema: z.ZodObject<{
|
|
16
|
+
step: z.ZodString;
|
|
17
|
+
name: z.ZodString;
|
|
18
|
+
value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString>]>;
|
|
19
|
+
source: z.ZodOptional<z.ZodString>;
|
|
20
|
+
}, z.core.$strip>;
|
|
21
|
+
export type GroundingSetting = z.infer<typeof GroundingSettingSchema>;
|
|
22
|
+
/**
|
|
23
|
+
* The grounding of one method step: the claim identifiers and the snapshot
|
|
24
|
+
* digest that `knowledge_recommend` returned in this run, the template the
|
|
25
|
+
* step renders, the settings of the procedure, and a one-line reason.
|
|
26
|
+
* Optional on both step schemas, thus a stored plan and a plan made without
|
|
27
|
+
* the knowledge service load and validate as before. Phase 0 validates the
|
|
28
|
+
* shape only. An empty field is visible: the evaluation counts a method step
|
|
29
|
+
* without a value as ungrounded.
|
|
30
|
+
*/
|
|
31
|
+
export declare const GroundingSchema: z.ZodObject<{
|
|
32
|
+
status: z.ZodEnum<{
|
|
33
|
+
flagged: "flagged";
|
|
34
|
+
grounded: "grounded";
|
|
35
|
+
ungrounded: "ungrounded";
|
|
36
|
+
}>;
|
|
37
|
+
snapshot: z.ZodString;
|
|
38
|
+
claims: z.ZodArray<z.ZodString>;
|
|
39
|
+
template: z.ZodOptional<z.ZodString>;
|
|
40
|
+
settings: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
41
|
+
step: z.ZodString;
|
|
42
|
+
name: z.ZodString;
|
|
43
|
+
value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString>]>;
|
|
44
|
+
source: z.ZodOptional<z.ZodString>;
|
|
45
|
+
}, z.core.$strip>>>;
|
|
46
|
+
reason: z.ZodString;
|
|
47
|
+
}, z.core.$strip>;
|
|
48
|
+
export type Grounding = z.infer<typeof GroundingSchema>;
|
|
8
49
|
/**
|
|
9
50
|
* A step of an analysis plan. `PlanStepSchema` (schemas/plan-schemas.ts) narrows
|
|
10
51
|
* this into the planner's output contract and emits it as the `submit_plan`
|
|
@@ -24,10 +65,10 @@ export declare const AnalysisStepSchema: z.ZodObject<{
|
|
|
24
65
|
packages: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
25
66
|
depends_on: z.ZodArray<z.ZodString>;
|
|
26
67
|
status: z.ZodDefault<z.ZodEnum<{
|
|
68
|
+
completed: "completed";
|
|
27
69
|
failed: "failed";
|
|
28
70
|
pending: "pending";
|
|
29
71
|
running: "running";
|
|
30
|
-
completed: "completed";
|
|
31
72
|
skipped: "skipped";
|
|
32
73
|
}>>;
|
|
33
74
|
resources: z.ZodOptional<z.ZodObject<{
|
|
@@ -37,7 +78,25 @@ export declare const AnalysisStepSchema: z.ZodObject<{
|
|
|
37
78
|
count: z.ZodNumber;
|
|
38
79
|
}, z.core.$strip>>;
|
|
39
80
|
}, z.core.$strip>>;
|
|
81
|
+
grounding: z.ZodOptional<z.ZodObject<{
|
|
82
|
+
status: z.ZodEnum<{
|
|
83
|
+
flagged: "flagged";
|
|
84
|
+
grounded: "grounded";
|
|
85
|
+
ungrounded: "ungrounded";
|
|
86
|
+
}>;
|
|
87
|
+
snapshot: z.ZodString;
|
|
88
|
+
claims: z.ZodArray<z.ZodString>;
|
|
89
|
+
template: z.ZodOptional<z.ZodString>;
|
|
90
|
+
settings: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
91
|
+
step: z.ZodString;
|
|
92
|
+
name: z.ZodString;
|
|
93
|
+
value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString>]>;
|
|
94
|
+
source: z.ZodOptional<z.ZodString>;
|
|
95
|
+
}, z.core.$strip>>>;
|
|
96
|
+
reason: z.ZodString;
|
|
97
|
+
}, z.core.$strip>>;
|
|
40
98
|
agent: z.ZodOptional<z.ZodString>;
|
|
99
|
+
capability: z.ZodOptional<z.ZodString>;
|
|
41
100
|
timeout: z.ZodOptional<z.ZodNumber>;
|
|
42
101
|
maxSteps: z.ZodNumber;
|
|
43
102
|
description: z.ZodOptional<z.ZodString>;
|
|
@@ -61,10 +120,10 @@ export declare const AnalysisPlanSchema: z.ZodObject<{
|
|
|
61
120
|
packages: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
62
121
|
depends_on: z.ZodArray<z.ZodString>;
|
|
63
122
|
status: z.ZodDefault<z.ZodEnum<{
|
|
123
|
+
completed: "completed";
|
|
64
124
|
failed: "failed";
|
|
65
125
|
pending: "pending";
|
|
66
126
|
running: "running";
|
|
67
|
-
completed: "completed";
|
|
68
127
|
skipped: "skipped";
|
|
69
128
|
}>>;
|
|
70
129
|
resources: z.ZodOptional<z.ZodObject<{
|
|
@@ -74,7 +133,25 @@ export declare const AnalysisPlanSchema: z.ZodObject<{
|
|
|
74
133
|
count: z.ZodNumber;
|
|
75
134
|
}, z.core.$strip>>;
|
|
76
135
|
}, z.core.$strip>>;
|
|
136
|
+
grounding: z.ZodOptional<z.ZodObject<{
|
|
137
|
+
status: z.ZodEnum<{
|
|
138
|
+
flagged: "flagged";
|
|
139
|
+
grounded: "grounded";
|
|
140
|
+
ungrounded: "ungrounded";
|
|
141
|
+
}>;
|
|
142
|
+
snapshot: z.ZodString;
|
|
143
|
+
claims: z.ZodArray<z.ZodString>;
|
|
144
|
+
template: z.ZodOptional<z.ZodString>;
|
|
145
|
+
settings: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
146
|
+
step: z.ZodString;
|
|
147
|
+
name: z.ZodString;
|
|
148
|
+
value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString>]>;
|
|
149
|
+
source: z.ZodOptional<z.ZodString>;
|
|
150
|
+
}, z.core.$strip>>>;
|
|
151
|
+
reason: z.ZodString;
|
|
152
|
+
}, z.core.$strip>>;
|
|
77
153
|
agent: z.ZodOptional<z.ZodString>;
|
|
154
|
+
capability: z.ZodOptional<z.ZodString>;
|
|
78
155
|
timeout: z.ZodOptional<z.ZodNumber>;
|
|
79
156
|
maxSteps: z.ZodNumber;
|
|
80
157
|
description: z.ZodOptional<z.ZodString>;
|
|
@@ -133,10 +210,10 @@ export declare const ContentBlockSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
133
210
|
packages: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
134
211
|
depends_on: z.ZodArray<z.ZodString>;
|
|
135
212
|
status: z.ZodDefault<z.ZodEnum<{
|
|
213
|
+
completed: "completed";
|
|
136
214
|
failed: "failed";
|
|
137
215
|
pending: "pending";
|
|
138
216
|
running: "running";
|
|
139
|
-
completed: "completed";
|
|
140
217
|
skipped: "skipped";
|
|
141
218
|
}>>;
|
|
142
219
|
resources: z.ZodOptional<z.ZodObject<{
|
|
@@ -146,7 +223,25 @@ export declare const ContentBlockSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
146
223
|
count: z.ZodNumber;
|
|
147
224
|
}, z.core.$strip>>;
|
|
148
225
|
}, z.core.$strip>>;
|
|
226
|
+
grounding: z.ZodOptional<z.ZodObject<{
|
|
227
|
+
status: z.ZodEnum<{
|
|
228
|
+
flagged: "flagged";
|
|
229
|
+
grounded: "grounded";
|
|
230
|
+
ungrounded: "ungrounded";
|
|
231
|
+
}>;
|
|
232
|
+
snapshot: z.ZodString;
|
|
233
|
+
claims: z.ZodArray<z.ZodString>;
|
|
234
|
+
template: z.ZodOptional<z.ZodString>;
|
|
235
|
+
settings: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
236
|
+
step: z.ZodString;
|
|
237
|
+
name: z.ZodString;
|
|
238
|
+
value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString>]>;
|
|
239
|
+
source: z.ZodOptional<z.ZodString>;
|
|
240
|
+
}, z.core.$strip>>>;
|
|
241
|
+
reason: z.ZodString;
|
|
242
|
+
}, z.core.$strip>>;
|
|
149
243
|
agent: z.ZodOptional<z.ZodString>;
|
|
244
|
+
capability: z.ZodOptional<z.ZodString>;
|
|
150
245
|
timeout: z.ZodOptional<z.ZodNumber>;
|
|
151
246
|
maxSteps: z.ZodNumber;
|
|
152
247
|
description: z.ZodOptional<z.ZodString>;
|
|
@@ -160,7 +255,7 @@ export declare const ContentBlockSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
160
255
|
}, z.core.$strip>;
|
|
161
256
|
}, z.core.$strip>, z.ZodObject<{
|
|
162
257
|
type: z.ZodLiteral<"json">;
|
|
163
|
-
data: z.ZodRecord<z.ZodString, z.
|
|
258
|
+
data: z.ZodRecord<z.ZodString, z.ZodJSONSchema>;
|
|
164
259
|
label: z.ZodOptional<z.ZodString>;
|
|
165
260
|
}, z.core.$strip>, z.ZodObject<{
|
|
166
261
|
type: z.ZodLiteral<"text">;
|
|
@@ -176,16 +271,16 @@ export declare const ContentBlockSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
176
271
|
*/
|
|
177
272
|
export declare const SuspensionActionSchema: z.ZodObject<{
|
|
178
273
|
label: z.ZodString;
|
|
179
|
-
value: z.ZodRecord<z.ZodString, z.
|
|
274
|
+
value: z.ZodRecord<z.ZodString, z.ZodJSONSchema>;
|
|
180
275
|
variant: z.ZodOptional<z.ZodEnum<{
|
|
181
276
|
default: "default";
|
|
182
|
-
outline: "outline";
|
|
183
277
|
destructive: "destructive";
|
|
278
|
+
outline: "outline";
|
|
184
279
|
}>>;
|
|
185
280
|
icon: z.ZodOptional<z.ZodEnum<{
|
|
281
|
+
"alert-circle": "alert-circle";
|
|
186
282
|
check: "check";
|
|
187
283
|
x: "x";
|
|
188
|
-
"alert-circle": "alert-circle";
|
|
189
284
|
}>>;
|
|
190
285
|
}, z.core.$strip>;
|
|
191
286
|
/**
|
|
@@ -202,9 +297,9 @@ export declare const SuspensionInputSchema: z.ZodObject<{
|
|
|
202
297
|
key: z.ZodString;
|
|
203
298
|
label: z.ZodString;
|
|
204
299
|
type: z.ZodEnum<{
|
|
300
|
+
select: "select";
|
|
205
301
|
text: "text";
|
|
206
302
|
textarea: "textarea";
|
|
207
|
-
select: "select";
|
|
208
303
|
}>;
|
|
209
304
|
placeholder: z.ZodOptional<z.ZodString>;
|
|
210
305
|
required: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -253,10 +348,10 @@ export declare const SuspensionPayloadSchema: z.ZodObject<{
|
|
|
253
348
|
packages: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
254
349
|
depends_on: z.ZodArray<z.ZodString>;
|
|
255
350
|
status: z.ZodDefault<z.ZodEnum<{
|
|
351
|
+
completed: "completed";
|
|
256
352
|
failed: "failed";
|
|
257
353
|
pending: "pending";
|
|
258
354
|
running: "running";
|
|
259
|
-
completed: "completed";
|
|
260
355
|
skipped: "skipped";
|
|
261
356
|
}>>;
|
|
262
357
|
resources: z.ZodOptional<z.ZodObject<{
|
|
@@ -266,7 +361,25 @@ export declare const SuspensionPayloadSchema: z.ZodObject<{
|
|
|
266
361
|
count: z.ZodNumber;
|
|
267
362
|
}, z.core.$strip>>;
|
|
268
363
|
}, z.core.$strip>>;
|
|
364
|
+
grounding: z.ZodOptional<z.ZodObject<{
|
|
365
|
+
status: z.ZodEnum<{
|
|
366
|
+
flagged: "flagged";
|
|
367
|
+
grounded: "grounded";
|
|
368
|
+
ungrounded: "ungrounded";
|
|
369
|
+
}>;
|
|
370
|
+
snapshot: z.ZodString;
|
|
371
|
+
claims: z.ZodArray<z.ZodString>;
|
|
372
|
+
template: z.ZodOptional<z.ZodString>;
|
|
373
|
+
settings: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
374
|
+
step: z.ZodString;
|
|
375
|
+
name: z.ZodString;
|
|
376
|
+
value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString>]>;
|
|
377
|
+
source: z.ZodOptional<z.ZodString>;
|
|
378
|
+
}, z.core.$strip>>>;
|
|
379
|
+
reason: z.ZodString;
|
|
380
|
+
}, z.core.$strip>>;
|
|
269
381
|
agent: z.ZodOptional<z.ZodString>;
|
|
382
|
+
capability: z.ZodOptional<z.ZodString>;
|
|
270
383
|
timeout: z.ZodOptional<z.ZodNumber>;
|
|
271
384
|
maxSteps: z.ZodNumber;
|
|
272
385
|
description: z.ZodOptional<z.ZodString>;
|
|
@@ -280,7 +393,7 @@ export declare const SuspensionPayloadSchema: z.ZodObject<{
|
|
|
280
393
|
}, z.core.$strip>;
|
|
281
394
|
}, z.core.$strip>, z.ZodObject<{
|
|
282
395
|
type: z.ZodLiteral<"json">;
|
|
283
|
-
data: z.ZodRecord<z.ZodString, z.
|
|
396
|
+
data: z.ZodRecord<z.ZodString, z.ZodJSONSchema>;
|
|
284
397
|
label: z.ZodOptional<z.ZodString>;
|
|
285
398
|
}, z.core.$strip>, z.ZodObject<{
|
|
286
399
|
type: z.ZodLiteral<"text">;
|
|
@@ -288,25 +401,25 @@ export declare const SuspensionPayloadSchema: z.ZodObject<{
|
|
|
288
401
|
}, z.core.$strip>], "type">>>;
|
|
289
402
|
actions: z.ZodArray<z.ZodObject<{
|
|
290
403
|
label: z.ZodString;
|
|
291
|
-
value: z.ZodRecord<z.ZodString, z.
|
|
404
|
+
value: z.ZodRecord<z.ZodString, z.ZodJSONSchema>;
|
|
292
405
|
variant: z.ZodOptional<z.ZodEnum<{
|
|
293
406
|
default: "default";
|
|
294
|
-
outline: "outline";
|
|
295
407
|
destructive: "destructive";
|
|
408
|
+
outline: "outline";
|
|
296
409
|
}>>;
|
|
297
410
|
icon: z.ZodOptional<z.ZodEnum<{
|
|
411
|
+
"alert-circle": "alert-circle";
|
|
298
412
|
check: "check";
|
|
299
413
|
x: "x";
|
|
300
|
-
"alert-circle": "alert-circle";
|
|
301
414
|
}>>;
|
|
302
415
|
}, z.core.$strip>>;
|
|
303
416
|
inputs: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
304
417
|
key: z.ZodString;
|
|
305
418
|
label: z.ZodString;
|
|
306
419
|
type: z.ZodEnum<{
|
|
420
|
+
select: "select";
|
|
307
421
|
text: "text";
|
|
308
422
|
textarea: "textarea";
|
|
309
|
-
select: "select";
|
|
310
423
|
}>;
|
|
311
424
|
placeholder: z.ZodOptional<z.ZodString>;
|
|
312
425
|
required: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -6,6 +6,50 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { z } from "zod";
|
|
8
8
|
// ── Plan structures ─────────────────────────────────────────────────
|
|
9
|
+
/**
|
|
10
|
+
* One scientific setting of a grounded step: a parameter of the procedure
|
|
11
|
+
* that `knowledge_recommend` returned, with the procedure step it belongs to
|
|
12
|
+
* and the source of its value. The host binds the settings to the template
|
|
13
|
+
* of the step at dispatch, thus a template default never replaces a plan
|
|
14
|
+
* decision silently.
|
|
15
|
+
*/
|
|
16
|
+
export const GroundingSettingSchema = z.object({
|
|
17
|
+
step: z.string().describe("The procedure step the setting belongs to (for example `differential_expression` or `normalize`)."),
|
|
18
|
+
name: z.string().describe("The parameter name as the procedure names it (for example `alpha` or `lfc_shrink`)."),
|
|
19
|
+
value: z.union([z.string(), z.number(), z.boolean(), z.array(z.string())]).describe("The value the procedure sets."),
|
|
20
|
+
source: z.string().optional().describe("The source of the value (a doi or a document) when the procedure names one. Absent otherwise."),
|
|
21
|
+
});
|
|
22
|
+
/**
|
|
23
|
+
* The grounding of one method step: the claim identifiers and the snapshot
|
|
24
|
+
* digest that `knowledge_recommend` returned in this run, the template the
|
|
25
|
+
* step renders, the settings of the procedure, and a one-line reason.
|
|
26
|
+
* Optional on both step schemas, thus a stored plan and a plan made without
|
|
27
|
+
* the knowledge service load and validate as before. Phase 0 validates the
|
|
28
|
+
* shape only. An empty field is visible: the evaluation counts a method step
|
|
29
|
+
* without a value as ungrounded.
|
|
30
|
+
*/
|
|
31
|
+
export const GroundingSchema = z.object({
|
|
32
|
+
status: z
|
|
33
|
+
.enum(["grounded", "ungrounded", "flagged"])
|
|
34
|
+
.describe("`grounded` when the step follows a returned procedure; `ungrounded` when no rule covered it or the service did not answer; `flagged` when a rule changed the outcome of the step."),
|
|
35
|
+
snapshot: z.string().describe("The `snapshot.digest` that `knowledge_recommend` returned in this run, or `none`."),
|
|
36
|
+
claims: z
|
|
37
|
+
.array(z.string())
|
|
38
|
+
.describe("The claim identifiers of the step as `knowledge_recommend` returned them (for example `R-0031@e7d0`). Empty when ungrounded."),
|
|
39
|
+
template: z
|
|
40
|
+
.string()
|
|
41
|
+
.optional()
|
|
42
|
+
.describe("The template id with its version (for example `tpl-deseq2-two-group@1.0.0`) when the step renders a template. Absent otherwise."),
|
|
43
|
+
settings: z
|
|
44
|
+
.array(GroundingSettingSchema)
|
|
45
|
+
.optional()
|
|
46
|
+
.describe("The scientific settings of the step: the parameters of the procedure steps the plan step holds, as `knowledge_recommend` returned them. " +
|
|
47
|
+
"Copy the `grounding.settings` of the skeleton step as it is, one entry per parameter, with its step, name, value, and source. " +
|
|
48
|
+
"Do not restate a setting as prose only, and do not change a value here: state a different value in the step and its reason. Absent when the step is ungrounded."),
|
|
49
|
+
reason: z
|
|
50
|
+
.string()
|
|
51
|
+
.describe("One line: the situation and the method with the rule that selects it, the side chosen for a disputed rule, or why the step is ungrounded or flagged."),
|
|
52
|
+
});
|
|
9
53
|
/**
|
|
10
54
|
* A step of an analysis plan. `PlanStepSchema` (schemas/plan-schemas.ts) narrows
|
|
11
55
|
* this into the planner's output contract and emits it as the `submit_plan`
|
|
@@ -52,8 +96,18 @@ export const AnalysisStepSchema = z.object({
|
|
|
52
96
|
})
|
|
53
97
|
.optional()
|
|
54
98
|
.describe("Resources the step needs. Ground the estimate in the actual data size — see the resource-estimation rules."),
|
|
99
|
+
grounding: GroundingSchema.optional().describe("The knowledge grounding of a method step: fill it from the answer of `knowledge_recommend` when that tool is attached. Omit it when no knowledge tool is attached."),
|
|
55
100
|
// Execution fields
|
|
56
101
|
agent: z.string().optional().describe("Assigned sandbox agent name from registry"),
|
|
102
|
+
// Optional on the persistence schema so a plan stored before this field still parses.
|
|
103
|
+
// `PlanStepSchema` re-requires it for planner output. The launch reads it with the agent id to
|
|
104
|
+
// resolve what reference data the capability declares — refer to `capabilityDataRequirement`.
|
|
105
|
+
capability: z
|
|
106
|
+
.string()
|
|
107
|
+
.optional()
|
|
108
|
+
.describe("The one capability phrase of the assigned agent that this step uses, copied EXACTLY from the agent catalog. " +
|
|
109
|
+
"One phrase, verbatim — never a paraphrase, never a list, never your own wording. " +
|
|
110
|
+
"The launch resolves the reference data that the capability declares before the run starts, so a reworded phrase loses that check and the step discovers an absent source itself."),
|
|
57
111
|
timeout: z.number().optional().describe("Execution timeout in seconds (falls back to image default)"),
|
|
58
112
|
maxSteps: z.number().describe("Max LLM agentic steps for sandbox agent"),
|
|
59
113
|
description: z.string().optional().describe("Human-readable description of what the step produces."),
|
|
@@ -107,7 +161,7 @@ export const ContentBlockSchema = z.discriminatedUnion("type", [
|
|
|
107
161
|
z.object({ type: z.literal("plan"), plan: AnalysisPlanSchema }),
|
|
108
162
|
z.object({
|
|
109
163
|
type: z.literal("json"),
|
|
110
|
-
data: z.record(z.string(), z.
|
|
164
|
+
data: z.record(z.string(), z.json()),
|
|
111
165
|
label: z.string().optional(),
|
|
112
166
|
}),
|
|
113
167
|
z.object({ type: z.literal("text"), text: z.string() }),
|
|
@@ -122,7 +176,7 @@ export const ContentBlockSchema = z.discriminatedUnion("type", [
|
|
|
122
176
|
*/
|
|
123
177
|
export const SuspensionActionSchema = z.object({
|
|
124
178
|
label: z.string(),
|
|
125
|
-
value: z.record(z.string(), z.
|
|
179
|
+
value: z.record(z.string(), z.json()),
|
|
126
180
|
variant: z.enum(["default", "outline", "destructive"]).optional(),
|
|
127
181
|
icon: z.enum(["check", "x", "alert-circle"]).optional(),
|
|
128
182
|
});
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The turn that runs on a thread. The open of a turn claims the thread, and the
|
|
3
|
+
* end of the turn releases it. A claim whose turn no longer runs, for example
|
|
4
|
+
* after a cancel, gives way to the next turn.
|
|
5
|
+
*/
|
|
6
|
+
import type { ResultAsync } from "neverthrow";
|
|
7
|
+
import { type DbError } from "../lib/db-result.js";
|
|
8
|
+
import type { Querier } from "./db.js";
|
|
9
|
+
/** The outcome of a claim: the thread is the turn's, another turn that still runs holds it, or no live thread exists. */
|
|
10
|
+
export type TurnClaim = {
|
|
11
|
+
readonly kind: "claimed";
|
|
12
|
+
} | {
|
|
13
|
+
readonly kind: "held";
|
|
14
|
+
readonly turnId: string;
|
|
15
|
+
} | {
|
|
16
|
+
readonly kind: "no_thread";
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Claim the thread for a turn. `stillRuns` decides if the turn that holds the thread runs. A holder that does not
|
|
20
|
+
* run gives way. Each update names the holder that it replaces, thus two opens cannot both take the thread.
|
|
21
|
+
*/
|
|
22
|
+
export declare function claimThreadForTurn(pool: Querier, threadId: string, turnId: string, stillRuns: (turnId: string) => Promise<boolean>): ResultAsync<TurnClaim, DbError>;
|
|
23
|
+
/**
|
|
24
|
+
* Close each turn record of the thread that is still `open`, as `aborted`. A turn that a cancel ended runs no more
|
|
25
|
+
* code, thus the harness closes its record here. A record that is closed already does not change.
|
|
26
|
+
*/
|
|
27
|
+
export declare function closeOpenTurnRecords(pool: Querier, threadId: string): ResultAsync<void, DbError>;
|
|
28
|
+
/** The turn that runs on the thread of an ask, which waits for its answer. `undefined` when no turn runs there. */
|
|
29
|
+
export declare function turnOfAsk(pool: Querier, askId: string): ResultAsync<string | undefined, DbError>;
|
|
30
|
+
/** The turn that holds each live thread of an analysis. A claim can outlive its turn, thus a caller checks that the turn runs. */
|
|
31
|
+
export declare function queryTurnsOfAnalysis(pool: Querier, analysisId: string): ResultAsync<{
|
|
32
|
+
readonly threadId: string;
|
|
33
|
+
readonly turnId: string;
|
|
34
|
+
}[], DbError>;
|
|
35
|
+
/** Release the thread, when the turn still holds it. A second release changes nothing. */
|
|
36
|
+
export declare function releaseThreadOfTurn(pool: Querier, threadId: string, turnId: string): ResultAsync<void, DbError>;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The turn that runs on a thread. The open of a turn claims the thread, and the
|
|
3
|
+
* end of the turn releases it. A claim whose turn no longer runs, for example
|
|
4
|
+
* after a cancel, gives way to the next turn.
|
|
5
|
+
*/
|
|
6
|
+
import { z } from "zod";
|
|
7
|
+
import { tryMutation, tryQuery } from "../lib/db-result.js";
|
|
8
|
+
const HolderRowSchema = z.object({ active_turn_id: z.string().nullable() });
|
|
9
|
+
/** Each attempt reads the holder one time. A holder that changes between two reads takes one more attempt. */
|
|
10
|
+
const CLAIM_ATTEMPTS = 3;
|
|
11
|
+
/**
|
|
12
|
+
* Claim the thread for a turn. `stillRuns` decides if the turn that holds the thread runs. A holder that does not
|
|
13
|
+
* run gives way. Each update names the holder that it replaces, thus two opens cannot both take the thread.
|
|
14
|
+
*/
|
|
15
|
+
export function claimThreadForTurn(pool, threadId, turnId, stillRuns) {
|
|
16
|
+
return tryQuery("activeTurns.claim", async () => {
|
|
17
|
+
let holder = null;
|
|
18
|
+
for (let attempt = 0; attempt < CLAIM_ATTEMPTS; attempt++) {
|
|
19
|
+
const { rows } = await pool.query("SELECT active_turn_id FROM cortex_analysis_threads WHERE thread_id = $1 AND deleted_at IS NULL", [threadId]);
|
|
20
|
+
const row = rows[0];
|
|
21
|
+
if (row === undefined)
|
|
22
|
+
return { kind: "no_thread" };
|
|
23
|
+
holder = HolderRowSchema.parse(row).active_turn_id;
|
|
24
|
+
if (holder !== null && holder !== turnId && (await stillRuns(holder)))
|
|
25
|
+
return { kind: "held", turnId: holder };
|
|
26
|
+
const taken = await pool.query(`UPDATE cortex_analysis_threads SET active_turn_id = $2
|
|
27
|
+
WHERE thread_id = $1 AND active_turn_id IS NOT DISTINCT FROM $3`, [threadId, turnId, holder]);
|
|
28
|
+
if ((taken.rowCount ?? 0) > 0)
|
|
29
|
+
return { kind: "claimed" };
|
|
30
|
+
}
|
|
31
|
+
return { kind: "held", turnId: holder ?? "" };
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Close each turn record of the thread that is still `open`, as `aborted`. A turn that a cancel ended runs no more
|
|
36
|
+
* code, thus the harness closes its record here. A record that is closed already does not change.
|
|
37
|
+
*/
|
|
38
|
+
export function closeOpenTurnRecords(pool, threadId) {
|
|
39
|
+
return tryMutation("activeTurns.closeOpen", () => pool.query("UPDATE cortex_thread_turns SET status = 'aborted', closed_at = NOW() WHERE thread_id = $1 AND status = 'open'", [threadId])).map(() => undefined);
|
|
40
|
+
}
|
|
41
|
+
const AskTurnRowSchema = z.object({ active_turn_id: z.string().nullable() });
|
|
42
|
+
/** The turn that runs on the thread of an ask, which waits for its answer. `undefined` when no turn runs there. */
|
|
43
|
+
export function turnOfAsk(pool, askId) {
|
|
44
|
+
return tryQuery("activeTurns.turnOfAsk", async () => {
|
|
45
|
+
const { rows } = await pool.query(`SELECT threads.active_turn_id FROM cortex_asks asks
|
|
46
|
+
JOIN cortex_analysis_threads threads ON threads.thread_id = asks.thread_id
|
|
47
|
+
WHERE asks.id = $1`, [askId]);
|
|
48
|
+
const row = rows[0];
|
|
49
|
+
return row === undefined ? undefined : (AskTurnRowSchema.parse(row).active_turn_id ?? undefined);
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
const TurnOfThreadRowSchema = z.object({ thread_id: z.string(), active_turn_id: z.string() });
|
|
53
|
+
/** The turn that holds each live thread of an analysis. A claim can outlive its turn, thus a caller checks that the turn runs. */
|
|
54
|
+
export function queryTurnsOfAnalysis(pool, analysisId) {
|
|
55
|
+
return tryQuery("activeTurns.ofAnalysis", async () => {
|
|
56
|
+
const { rows } = await pool.query(`SELECT thread_id, active_turn_id FROM cortex_analysis_threads
|
|
57
|
+
WHERE analysis_id = $1 AND active_turn_id IS NOT NULL AND deleted_at IS NULL`, [analysisId]);
|
|
58
|
+
return rows.map((row) => {
|
|
59
|
+
const parsed = TurnOfThreadRowSchema.parse(row);
|
|
60
|
+
return { threadId: parsed.thread_id, turnId: parsed.active_turn_id };
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
/** Release the thread, when the turn still holds it. A second release changes nothing. */
|
|
65
|
+
export function releaseThreadOfTurn(pool, threadId, turnId) {
|
|
66
|
+
return tryMutation("activeTurns.release", () => pool.query("UPDATE cortex_analysis_threads SET active_turn_id = NULL WHERE thread_id = $1 AND active_turn_id = $2", [threadId, turnId])).map(() => undefined);
|
|
67
|
+
}
|
|
@@ -10,7 +10,7 @@ import { type DbError } from "../lib/db-result.js";
|
|
|
10
10
|
import type { Querier } from "./db.js";
|
|
11
11
|
import type { RunStatus, TerminalRunStatus } from "./schema.js";
|
|
12
12
|
/** The newest run of one analysis, with the title of its plan and the counts of its step rows. */
|
|
13
|
-
export
|
|
13
|
+
export type LatestRunSummary = {
|
|
14
14
|
readonly analysisId: string;
|
|
15
15
|
readonly runId: string;
|
|
16
16
|
readonly status: RunStatus;
|
|
@@ -19,26 +19,26 @@ export interface LatestRunSummary {
|
|
|
19
19
|
readonly totalSteps: number;
|
|
20
20
|
readonly startedAt: string;
|
|
21
21
|
readonly completedAt: string | null;
|
|
22
|
-
}
|
|
22
|
+
};
|
|
23
23
|
/** A run of a list of run ids, with the fields of the newest-run read and the thread of the run. */
|
|
24
|
-
export
|
|
24
|
+
export type RunProgressSummary = LatestRunSummary & {
|
|
25
25
|
/** The thread of the run as the ledger stores it, or `null`. */
|
|
26
26
|
readonly threadId: string | null;
|
|
27
|
-
}
|
|
27
|
+
};
|
|
28
28
|
/** A terminal run that ended at or after a time. */
|
|
29
|
-
export
|
|
29
|
+
export type EndedRunSummary = {
|
|
30
30
|
readonly analysisId: string;
|
|
31
31
|
readonly runId: string;
|
|
32
32
|
readonly status: TerminalRunStatus;
|
|
33
33
|
readonly completedAt: string;
|
|
34
|
-
}
|
|
34
|
+
};
|
|
35
35
|
/** The data profile state of one analysis that has a profile status. */
|
|
36
|
-
export
|
|
36
|
+
export type DataProfileSummary = {
|
|
37
37
|
readonly analysisId: string;
|
|
38
38
|
readonly status: DataProfileLifecycleStatus;
|
|
39
39
|
readonly completedAt: string | null;
|
|
40
40
|
readonly profiledFiles: number | null;
|
|
41
|
-
}
|
|
41
|
+
};
|
|
42
42
|
export declare function queryRunCountsByAnalyses(pool: Querier, analysisIds: string[]): ResultAsync<Array<{
|
|
43
43
|
analysisId: string;
|
|
44
44
|
status: string;
|
|
@@ -146,7 +146,7 @@ export function queryRunsEndedSince(pool, input) {
|
|
|
146
146
|
const result = await pool.query({
|
|
147
147
|
text: `SELECT analysis_id, run_id, status, completed_at
|
|
148
148
|
FROM cortex_runs
|
|
149
|
-
WHERE status IN ('completed', 'partial', 'failed', 'canceled'
|
|
149
|
+
WHERE status IN ('completed', 'partial', 'failed', 'canceled')
|
|
150
150
|
AND completed_at >= $1
|
|
151
151
|
ORDER BY completed_at DESC, run_id DESC
|
|
152
152
|
LIMIT $2`,
|
|
@@ -185,9 +185,9 @@ export function queryDataProfileStatusByAnalyses(pool, analysisIds) {
|
|
|
185
185
|
status: r.data_profile_status,
|
|
186
186
|
completedAt: r.data_profile_completed_at ?? null,
|
|
187
187
|
profiledFiles: profileDatasetFileCount({
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
188
|
+
partition: r.partition ?? undefined,
|
|
189
|
+
coverage: r.coverage ?? undefined,
|
|
190
|
+
kinds: r.kinds ?? undefined,
|
|
191
191
|
}),
|
|
192
192
|
}));
|
|
193
193
|
});
|
package/dist/state/analyses.d.ts
CHANGED
|
@@ -19,17 +19,3 @@ export declare function loadAnalysisStatus(pool: Querier, resourceId: string): R
|
|
|
19
19
|
status: string;
|
|
20
20
|
context: string | null;
|
|
21
21
|
} | null, DbError>;
|
|
22
|
-
/**
|
|
23
|
-
* Mark an analysis as suspended.
|
|
24
|
-
* Idempotent — no-op if already suspended.
|
|
25
|
-
*
|
|
26
|
-
* `suspended_insufficient_funds` is the name of the one suspended state, for
|
|
27
|
-
* each reason of the host, thus no reason is persisted. A chat turn never calls
|
|
28
|
-
* it.
|
|
29
|
-
*/
|
|
30
|
-
export declare function suspendAnalysis(pool: Querier, analysisId: string): ResultAsync<void, DbError>;
|
|
31
|
-
/**
|
|
32
|
-
* Resume a suspended analysis after the user tops up.
|
|
33
|
-
* Only transitions from `suspended_insufficient_funds` → `active`.
|
|
34
|
-
*/
|
|
35
|
-
export declare function resumeAnalysis(pool: Querier, analysisId: string): ResultAsync<void, DbError>;
|
package/dist/state/analyses.js
CHANGED
|
@@ -40,35 +40,3 @@ export function loadAnalysisStatus(pool, resourceId) {
|
|
|
40
40
|
return { status: row.status, context: row.context ?? null };
|
|
41
41
|
});
|
|
42
42
|
}
|
|
43
|
-
/**
|
|
44
|
-
* Mark an analysis as suspended.
|
|
45
|
-
* Idempotent — no-op if already suspended.
|
|
46
|
-
*
|
|
47
|
-
* `suspended_insufficient_funds` is the name of the one suspended state, for
|
|
48
|
-
* each reason of the host, thus no reason is persisted. A chat turn never calls
|
|
49
|
-
* it.
|
|
50
|
-
*/
|
|
51
|
-
export function suspendAnalysis(pool, analysisId) {
|
|
52
|
-
return tryMutation("analyses.suspendAnalysis", async () => {
|
|
53
|
-
await pool.query({
|
|
54
|
-
text: `UPDATE cortex_analysis_state
|
|
55
|
-
SET status = 'suspended_insufficient_funds', updated_at = $1
|
|
56
|
-
WHERE analysis_id = $2 AND status != 'suspended_insufficient_funds'`,
|
|
57
|
-
values: [new Date().toISOString(), analysisId],
|
|
58
|
-
});
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Resume a suspended analysis after the user tops up.
|
|
63
|
-
* Only transitions from `suspended_insufficient_funds` → `active`.
|
|
64
|
-
*/
|
|
65
|
-
export function resumeAnalysis(pool, analysisId) {
|
|
66
|
-
return tryMutation("analyses.resumeAnalysis", async () => {
|
|
67
|
-
await pool.query({
|
|
68
|
-
text: `UPDATE cortex_analysis_state
|
|
69
|
-
SET status = 'active', updated_at = $1
|
|
70
|
-
WHERE analysis_id = $2 AND status = 'suspended_insufficient_funds'`,
|
|
71
|
-
values: [new Date().toISOString(), analysisId],
|
|
72
|
-
});
|
|
73
|
-
});
|
|
74
|
-
}
|