@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
|
@@ -15,20 +15,29 @@ import { z } from "zod";
|
|
|
15
15
|
import { scopeResource } from "../../auth/types.js";
|
|
16
16
|
import { tryQuery } from "../../lib/db-result.js";
|
|
17
17
|
import { unwrapOrThrow } from "../../lib/result.js";
|
|
18
|
+
import { parseUnknownRecord } from "../../lib/unknown-containers.js";
|
|
18
19
|
import { defineTool } from "../define-tool.js";
|
|
19
20
|
/** pgvector / Postgres "undefined_table" — the index has no rows indexed yet. */
|
|
20
21
|
const UNDEFINED_TABLE = "42P01";
|
|
21
22
|
/** True when a captured driver cause is the "undefined_table" SQLSTATE. */
|
|
23
|
+
const UndefinedTableCause = z.object({ code: z.literal(UNDEFINED_TABLE) });
|
|
22
24
|
function isUndefinedTable(cause) {
|
|
23
|
-
return
|
|
25
|
+
return UndefinedTableCause.safeParse(cause).success;
|
|
24
26
|
}
|
|
25
27
|
function indexName(analysisId) {
|
|
26
|
-
const name = `search_${analysisId.
|
|
27
|
-
if (
|
|
28
|
+
const name = `search_${analysisId.replaceAll("-", "_")}`;
|
|
29
|
+
if (!isSqlIdentifier(name)) {
|
|
28
30
|
throw new Error(`workspaceSearch: unusable analysis id "${analysisId}"`);
|
|
29
31
|
}
|
|
30
32
|
return name;
|
|
31
33
|
}
|
|
34
|
+
function isSqlIdentifier(name) {
|
|
35
|
+
if (name.length === 0)
|
|
36
|
+
return false;
|
|
37
|
+
const isLetterOrUnderscore = (char) => (char >= "a" && char <= "z") || (char >= "A" && char <= "Z") || char === "_";
|
|
38
|
+
const isWordChar = (char) => isLetterOrUnderscore(char) || (char >= "0" && char <= "9");
|
|
39
|
+
return isLetterOrUnderscore(name.charAt(0)) && Array.from(name).every(isWordChar);
|
|
40
|
+
}
|
|
32
41
|
/** Entry types that address a pattern spanning many files, never a single one. */
|
|
33
42
|
const PATTERN_TYPES = new Set(["input-group", "input-dimension", "input-kind"]);
|
|
34
43
|
/**
|
|
@@ -39,7 +48,7 @@ const PATTERN_TYPES = new Set(["input-group", "input-dimension", "input-kind"]);
|
|
|
39
48
|
* segment. The consumer branches on presence, nothing else.
|
|
40
49
|
*/
|
|
41
50
|
export function fileTargetOf(id, metadata) {
|
|
42
|
-
const meta = metadata
|
|
51
|
+
const meta = parseUnknownRecord(metadata) ?? {};
|
|
43
52
|
const type = typeof meta.type === "string" ? meta.type : undefined;
|
|
44
53
|
if (type !== undefined && PATTERN_TYPES.has(type))
|
|
45
54
|
return undefined;
|
|
@@ -47,8 +56,19 @@ export function fileTargetOf(id, metadata) {
|
|
|
47
56
|
return undefined;
|
|
48
57
|
if (typeof meta.path === "string")
|
|
49
58
|
return meta.path;
|
|
50
|
-
|
|
59
|
+
if (!id.startsWith("/"))
|
|
60
|
+
return id;
|
|
61
|
+
const afterResource = id.indexOf("/", 1);
|
|
62
|
+
return afterResource === -1 ? id : id.slice(afterResource + 1);
|
|
51
63
|
}
|
|
64
|
+
const WorkspaceSearchInputSchema = z.object({
|
|
65
|
+
query: z.string().min(1).describe("What to search for, in natural language"),
|
|
66
|
+
type: z
|
|
67
|
+
.enum(["input-group", "input-dimension", "input", "input-kind", "output", "summary", "synthesis"])
|
|
68
|
+
.optional()
|
|
69
|
+
.describe('Restrict results to one entry type: "input-group", "input-dimension", "input", "input-kind", "output", "summary", or "synthesis"'),
|
|
70
|
+
limit: z.number().int().min(1).max(50).default(8).describe("Maximum number of results to return"),
|
|
71
|
+
});
|
|
52
72
|
export function createWorkspaceSearchTool(pool, embedding) {
|
|
53
73
|
return defineTool({
|
|
54
74
|
id: "workspace_search",
|
|
@@ -68,14 +88,7 @@ export function createWorkspaceSearchTool(pool, embedding) {
|
|
|
68
88
|
"metadata, e.g. search input-group for a group's display pattern, then list the tree for " +
|
|
69
89
|
"its members. Most input files carry no entry of their own — find them through their " +
|
|
70
90
|
"group and the listing tools.",
|
|
71
|
-
inputSchema:
|
|
72
|
-
query: z.string().min(1).describe("What to search for, in natural language"),
|
|
73
|
-
type: z
|
|
74
|
-
.enum(["input-group", "input-dimension", "input", "input-kind", "output", "summary", "synthesis"])
|
|
75
|
-
.optional()
|
|
76
|
-
.describe('Restrict results to one entry type: "input-group", "input-dimension", "input", "input-kind", "output", "summary", or "synthesis"'),
|
|
77
|
-
limit: z.number().int().min(1).max(50).default(8).describe("Maximum number of results to return"),
|
|
78
|
-
}),
|
|
91
|
+
inputSchema: WorkspaceSearchInputSchema,
|
|
79
92
|
describeCall: ({ query, type }) => (type === undefined ? query : `${query} (${type})`),
|
|
80
93
|
execute: async ({ query, type, limit }, ctx) => {
|
|
81
94
|
const [vector] = unwrapOrThrow(await embedding.embed([query], ctx.session));
|
|
@@ -108,7 +121,7 @@ export function createWorkspaceSearchTool(pool, embedding) {
|
|
|
108
121
|
return {
|
|
109
122
|
id: r.id,
|
|
110
123
|
score: r.score,
|
|
111
|
-
|
|
124
|
+
path,
|
|
112
125
|
metadata: r.metadata,
|
|
113
126
|
};
|
|
114
127
|
}),
|
|
@@ -7,7 +7,8 @@
|
|
|
7
7
|
* declares the input schema, forwards the write, and carries the record of the
|
|
8
8
|
* write to the fold. `edit_file` rides the same seam.
|
|
9
9
|
*/
|
|
10
|
-
import {
|
|
10
|
+
import { z } from "zod";
|
|
11
|
+
import { type Tool, type WithToolCallRecord } from "../define-tool.js";
|
|
11
12
|
import type { WorkspaceMutator, WriteFileResult, WriteRecord } from "./mutator.js";
|
|
12
13
|
/** The result of a `write_file` call: a success carries the record of the write for the fold. */
|
|
13
14
|
type WriteFileToolResult = Exclude<WriteFileResult, {
|
|
@@ -15,11 +16,12 @@ type WriteFileToolResult = Exclude<WriteFileResult, {
|
|
|
15
16
|
}> | WithToolCallRecord<Extract<WriteFileResult, {
|
|
16
17
|
status: "ok";
|
|
17
18
|
}>, WriteRecord>;
|
|
18
|
-
|
|
19
|
+
declare const WriteFileInputSchema: z.ZodObject<{
|
|
20
|
+
path: z.ZodString;
|
|
21
|
+
content: z.ZodString;
|
|
22
|
+
}, z.core.$strip>;
|
|
23
|
+
export type WriteFileDeps = {
|
|
19
24
|
readonly mutator: WorkspaceMutator;
|
|
20
|
-
}
|
|
21
|
-
export declare function createWriteFileTool(deps: WriteFileDeps):
|
|
22
|
-
path: string;
|
|
23
|
-
content: string;
|
|
24
|
-
}, WriteFileToolResult>;
|
|
25
|
+
};
|
|
26
|
+
export declare function createWriteFileTool(deps: WriteFileDeps): Tool<z.infer<typeof WriteFileInputSchema>, WriteFileToolResult>;
|
|
25
27
|
export {};
|
|
@@ -22,18 +22,18 @@ import type { MachineBudget, ResourceSpec } from "../config/resource-limits.js";
|
|
|
22
22
|
* The minimum shape the scheduler needs from a plan step. Larger workflow-state
|
|
23
23
|
* schemas are a superset of this, keeping the scheduler decoupled.
|
|
24
24
|
*/
|
|
25
|
-
export
|
|
25
|
+
export type PlanStep = {
|
|
26
26
|
readonly id: string;
|
|
27
27
|
readonly depends_on: readonly string[];
|
|
28
|
-
}
|
|
28
|
+
};
|
|
29
29
|
/** Budget-admission inputs — the snapshotted machine budget from the workflow
|
|
30
30
|
* input plus each step's plan-declared resources. */
|
|
31
|
-
export
|
|
31
|
+
export type BudgetAdmission = {
|
|
32
32
|
readonly budget: MachineBudget;
|
|
33
33
|
readonly resourcesByStepId: Readonly<Record<string, ResourceSpec>>;
|
|
34
|
-
}
|
|
34
|
+
};
|
|
35
35
|
/** Partition of the dependency-satisfied steps under budget admission. */
|
|
36
|
-
export
|
|
36
|
+
export type ScheduledSteps = {
|
|
37
37
|
/** Steps to start now — they fit the remaining budget capacity. */
|
|
38
38
|
readonly admit: readonly string[];
|
|
39
39
|
/** Dependency-satisfied steps held until in-flight steps free capacity. */
|
|
@@ -41,7 +41,7 @@ export interface ScheduledSteps {
|
|
|
41
41
|
/** Steps whose declared resources exceed the budget outright — they could
|
|
42
42
|
* never be admitted even against an empty budget. */
|
|
43
43
|
readonly neverFits: readonly string[];
|
|
44
|
-
}
|
|
44
|
+
};
|
|
45
45
|
/** Thrown when the plan DAG contains a dependency cycle. */
|
|
46
46
|
export declare class CycleError extends Error {
|
|
47
47
|
readonly involvedSteps: readonly string[];
|
|
@@ -80,8 +80,8 @@ export declare function validatePlanDag<S extends PlanStep>(steps: readonly S[])
|
|
|
80
80
|
* not fit never blocks a later, smaller one. Determinism holds because every
|
|
81
81
|
* input derives from the workflow input and checkpointed completion state.
|
|
82
82
|
*/
|
|
83
|
-
export declare function scheduleReady
|
|
84
|
-
export declare function scheduleReady
|
|
83
|
+
export declare function scheduleReady(steps: readonly PlanStep[], completedSet: ReadonlySet<string>, startedSet?: ReadonlySet<string>): string[];
|
|
84
|
+
export declare function scheduleReady(steps: readonly PlanStep[], completedSet: ReadonlySet<string>, startedSet: ReadonlySet<string>, admission: BudgetAdmission): ScheduledSteps;
|
|
85
85
|
/**
|
|
86
86
|
* Compute a depth per step. A step with no dependencies is level 0; a step
|
|
87
87
|
* with deps is `max(level(dep)) + 1`. Used by the UI for column layout in
|
|
@@ -91,4 +91,4 @@ export declare function scheduleReady<S extends PlanStep>(steps: readonly S[], c
|
|
|
91
91
|
* Pre-condition: `validatePlanDag` has been called (no cycles, no missing
|
|
92
92
|
* deps). Behaviour is undefined on an invalid DAG.
|
|
93
93
|
*/
|
|
94
|
-
export declare function computeTopologicalLevels
|
|
94
|
+
export declare function computeTopologicalLevels(steps: readonly PlanStep[]): Map<string, number>;
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
* pure means parent recovery replays the same dispatch sequence given the
|
|
18
18
|
* same persisted child outcomes.
|
|
19
19
|
*/
|
|
20
|
+
import { presentGet, presentLast } from "../lib/present.js";
|
|
20
21
|
// ── Errors ───────────────────────────────────────────────────────────
|
|
21
22
|
/** Thrown when the plan DAG contains a dependency cycle. */
|
|
22
23
|
export class CycleError extends Error {
|
|
@@ -83,10 +84,12 @@ function detectCycle(steps) {
|
|
|
83
84
|
if (state.get(start.id) === DONE)
|
|
84
85
|
continue;
|
|
85
86
|
// Iterative DFS — preserves the in-progress chain so we can report it.
|
|
86
|
-
const stack = [
|
|
87
|
+
const stack = [
|
|
88
|
+
{ id: start.id, iter: presentGet(stepById, start.id, "the step of the cycle walk").depends_on[Symbol.iterator]() },
|
|
89
|
+
];
|
|
87
90
|
state.set(start.id, VISITING);
|
|
88
91
|
while (stack.length > 0) {
|
|
89
|
-
const frame = stack
|
|
92
|
+
const frame = presentLast(stack, "the top frame of the cycle walk");
|
|
90
93
|
const next = frame.iter.next();
|
|
91
94
|
if (next.done) {
|
|
92
95
|
state.set(frame.id, DONE);
|
|
@@ -105,7 +108,7 @@ function detectCycle(steps) {
|
|
|
105
108
|
state.set(childId, VISITING);
|
|
106
109
|
stack.push({
|
|
107
110
|
id: childId,
|
|
108
|
-
iter: stepById
|
|
111
|
+
iter: presentGet(stepById, childId, "the dependency step of the cycle walk").depends_on[Symbol.iterator](),
|
|
109
112
|
});
|
|
110
113
|
}
|
|
111
114
|
}
|
|
@@ -39,64 +39,62 @@
|
|
|
39
39
|
* `partial`).
|
|
40
40
|
* - the halt cascade (cancel in-flight via
|
|
41
41
|
* `Promise.allSettled(handles.map(h => DBOS.cancelWorkflow(h.workflowID)))`,
|
|
42
|
-
* stop scheduling) survives only for
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
* - a
|
|
50
|
-
* the
|
|
51
|
-
* - a `suspend` error of a synthesis model request suspends the run in
|
|
52
|
-
* place of the synthesis failure
|
|
53
|
-
* - the run row and the analysis flip to `suspended_insufficient_funds` in
|
|
54
|
-
* `collectAndComplete`. The run status is terminal and does not block a
|
|
55
|
-
* new run of the plan. The paused parent lands in `CANCELLED`, a
|
|
56
|
-
* durably reschedulable state; re-driving it is a future enhancement,
|
|
57
|
-
* not yet wired here. The reason of the host rides to the run row, the
|
|
58
|
-
* charge close, the metric, and the terminal part, unread.
|
|
42
|
+
* stop scheduling) survives only for the `neverFits` plan-validation guard.
|
|
43
|
+
* 4. Pause (work-pause spec)
|
|
44
|
+
* - a step pauses in its own workflow, and the parent waits for its result as
|
|
45
|
+
* for a step that runs. The other steps go on, and the run row stays
|
|
46
|
+
* `running`
|
|
47
|
+
* - a refusal of the `RunCharge.open` gate with the suspend flag pauses the
|
|
48
|
+
* run before any step starts, and the charge opens again after the resume
|
|
49
|
+
* - a failed model request of the synthesis with a cause of a pause waits in
|
|
50
|
+
* the loop of the synthesizer
|
|
59
51
|
* 5. `synthesizeFindings` (single sequential block, no sandbox)
|
|
60
52
|
* 6. `collectAndComplete` (terminal — runs on ALL paths)
|
|
61
53
|
* - determine final status from completed/cancelled/failed counts
|
|
62
|
-
* - update `cortex_runs.status` + `error
|
|
63
|
-
* the
|
|
64
|
-
*
|
|
65
|
-
* died before
|
|
66
|
-
*
|
|
67
|
-
*
|
|
54
|
+
* - update `cortex_runs.status` + `error`. When the write changes the row,
|
|
55
|
+
* the same step emits `run_completed` before the commit, records the run
|
|
56
|
+
* outcome metric plus the outcome of every settled step whose child never
|
|
57
|
+
* wrote its own terminal row (a cancelled child, or one that died before
|
|
58
|
+
* `failStep`), closes the running charge with the matching outcome, and
|
|
59
|
+
* revokes the run authorization through the injected `runAuthorizer`
|
|
60
|
+
* - the write retries with backoff on a failed transaction. When the write is
|
|
61
|
+
* refused, or fails on each attempt, close and revoke in their own steps, then
|
|
62
|
+
* emit `run_completed`. After a failed write the row stays `running`, so the
|
|
63
|
+
* body records its run end as a workflow event for the run canceler
|
|
68
64
|
* - emit terminal stream part
|
|
69
65
|
* - WRITES NOTHING to the conversation thread (results are pull-only
|
|
70
66
|
* via `inspectRun`)
|
|
71
67
|
*/
|
|
72
|
-
import type {
|
|
68
|
+
import type { Querier } from "../state/db.js";
|
|
73
69
|
import type { MachineBudget, ResourceSpec } from "../config/resource-limits.js";
|
|
74
70
|
import type { RunSession } from "../auth/types.js";
|
|
75
71
|
import type { RunAuthorizer } from "../execution/run-authorizer.js";
|
|
76
72
|
import type { Logger } from "../lib/logger.js";
|
|
77
73
|
import type { UsageRecorder } from "../billing/usage-recorder.js";
|
|
78
|
-
import type
|
|
74
|
+
import { type Connectable } from "../lib/db-result.js";
|
|
79
75
|
import type { SynthesisStatus, UpdateStepExecutionInput } from "../state/index.js";
|
|
80
76
|
import { type StepBriefing } from "../prompts/briefing.js";
|
|
81
77
|
import type { WorkingMemoryStore } from "../memory/working-memory.js";
|
|
82
78
|
import type { AnalysisStep } from "../schemas/workflow-state.js";
|
|
83
79
|
import type { ChatProvider, EmbeddingProvider } from "../providers/types.js";
|
|
84
|
-
import type {
|
|
80
|
+
import type { KnowledgeClient } from "../tools/knowledge/client.js";
|
|
81
|
+
import type { TemplateBinding } from "../tools/knowledge/template.js";
|
|
85
82
|
import type { ProvenanceSeam } from "../provenance/seam.js";
|
|
86
83
|
import type { ToolOutputStore } from "../loop/tool-output.js";
|
|
84
|
+
import type { Tool } from "../tools/define-tool.js";
|
|
87
85
|
import type { RunCharge } from "../billing/run-charge.js";
|
|
88
86
|
import { type ResolveWorkspaceRoot } from "../workspace/paths.js";
|
|
89
87
|
import { type PlanStep } from "./execute-analysis-scheduler.js";
|
|
90
|
-
import { type
|
|
91
|
-
import {
|
|
88
|
+
import { type WorkPause } from "./pause.js";
|
|
89
|
+
import type { SandboxStepInput, SandboxStepResult } from "./sandbox-step.js";
|
|
92
90
|
/** Registered child sandbox-step callable the parent's child-dispatch closes over. */
|
|
93
91
|
type SandboxStepCallable = (input: SandboxStepInput) => Promise<SandboxStepResult>;
|
|
94
92
|
/** Quick-display finding on the run-completed card. Mirrors the wire schema's RunCompletedFinding. */
|
|
95
|
-
export
|
|
93
|
+
export type RunFinding = {
|
|
96
94
|
readonly title: string;
|
|
97
95
|
readonly confidence: "high" | "medium" | "low";
|
|
98
|
-
}
|
|
99
|
-
export
|
|
96
|
+
};
|
|
97
|
+
export type ExecuteAnalysisInput = {
|
|
100
98
|
readonly analysisId: string;
|
|
101
99
|
/** Plan id — the dedup key for the partial-unique index on cortex_runs. */
|
|
102
100
|
readonly planId: string;
|
|
@@ -145,31 +143,21 @@ export interface ExecuteAnalysisInput {
|
|
|
145
143
|
* resume — no DB read, no in-process cache.
|
|
146
144
|
*/
|
|
147
145
|
readonly runSession: RunSession;
|
|
148
|
-
|
|
149
|
-
* True when Cortex owns the run-authorization lifecycle and therefore must
|
|
150
|
-
* revoke it on the terminal path. The ownership decision is made by the
|
|
151
|
-
* `RunAuthorizer` seam at the async edge (`executePlan`).
|
|
152
|
-
*
|
|
153
|
-
* Optional because a workflow persisted before this field existed (recovered
|
|
154
|
-
* across the deploy that added it) deserializes without it; the body defaults
|
|
155
|
-
* absent → true, matching the prior Cortex-owned behavior.
|
|
156
|
-
*/
|
|
157
|
-
readonly ownsMandate?: boolean;
|
|
158
|
-
}
|
|
146
|
+
};
|
|
159
147
|
/**
|
|
160
148
|
* Outcome of the trigger. `running` is what the dedup-collision recovery
|
|
161
149
|
* path returns — the caller joined an in-flight run, no new workflow was
|
|
162
150
|
* started. Every other variant is a terminal status the parent reached.
|
|
163
151
|
*/
|
|
164
|
-
export type ExecuteAnalysisFinalStatus = "running" | "completed" | "partial" | "failed" | "canceled"
|
|
165
|
-
export
|
|
152
|
+
export type ExecuteAnalysisFinalStatus = "running" | "completed" | "partial" | "failed" | "canceled";
|
|
153
|
+
export type ExecuteAnalysisResult = {
|
|
166
154
|
readonly runId: string;
|
|
167
155
|
readonly workflowId: string;
|
|
168
156
|
readonly status: ExecuteAnalysisFinalStatus;
|
|
169
157
|
readonly completedSteps: readonly string[];
|
|
170
158
|
readonly failedSteps: readonly string[];
|
|
171
159
|
readonly canceledSteps: readonly string[];
|
|
172
|
-
}
|
|
160
|
+
};
|
|
173
161
|
/**
|
|
174
162
|
* A step's in-run display state. Wider than the ledger's `StepExecutionStatus`: `queued` is a
|
|
175
163
|
* scheduler-only condition (dependency-satisfied but held for budget capacity) that never reaches a
|
|
@@ -183,14 +171,14 @@ export type StepRuntimeStatus = "pending" | "queued" | "running" | "completed" |
|
|
|
183
171
|
* that says what the step is FOR. `durationMs` and `error` appear only once the step has settled
|
|
184
172
|
* in a way that produced them.
|
|
185
173
|
*/
|
|
186
|
-
export
|
|
174
|
+
export type RunStepObservation = {
|
|
187
175
|
readonly id: string;
|
|
188
176
|
readonly name: string;
|
|
189
177
|
readonly agent: string;
|
|
190
178
|
readonly status: StepRuntimeStatus;
|
|
191
179
|
readonly durationMs?: number;
|
|
192
180
|
readonly error?: string;
|
|
193
|
-
}
|
|
181
|
+
};
|
|
194
182
|
/**
|
|
195
183
|
* A whole-run snapshot handed to {@link ExecuteAnalysisDeps.observeRun}.
|
|
196
184
|
*
|
|
@@ -205,14 +193,14 @@ export interface RunStepObservation {
|
|
|
205
193
|
* computable from `steps` and recorded authoritatively on the run's ledger row; carrying them here
|
|
206
194
|
* would mint a second source that can disagree with the ledger a host also reads.
|
|
207
195
|
*/
|
|
208
|
-
export
|
|
196
|
+
export type RunObservation = {
|
|
209
197
|
readonly runId: string;
|
|
210
198
|
readonly analysisId: string;
|
|
211
199
|
/** `running` for every mid-flight snapshot; the derived terminal status on the last one. */
|
|
212
200
|
readonly status: ExecuteAnalysisFinalStatus;
|
|
213
201
|
/** Every plan step, including ones that have not started — never a delta. */
|
|
214
202
|
readonly steps: readonly RunStepObservation[];
|
|
215
|
-
}
|
|
203
|
+
};
|
|
216
204
|
/**
|
|
217
205
|
* Construction-time deps for the parent workflow. The order-of-operations is
|
|
218
206
|
* the body's own: it brackets the run, dispatches children, and synthesizes
|
|
@@ -221,10 +209,10 @@ export interface RunObservation {
|
|
|
221
209
|
* registered sandbox-step callable — plus the construction inputs (provider,
|
|
222
210
|
* embedder, model, keys, roots) the in-body synthesis needs.
|
|
223
211
|
*/
|
|
224
|
-
export
|
|
212
|
+
export type ExecuteAnalysisDeps = {
|
|
225
213
|
/** Operational logging seam; omitted falls back to no-op. */
|
|
226
214
|
readonly logger?: Logger;
|
|
227
|
-
readonly pool:
|
|
215
|
+
readonly pool: Querier & Connectable;
|
|
228
216
|
/** Chat provider for the in-body literature-grounded synthesis. */
|
|
229
217
|
readonly provider: ChatProvider;
|
|
230
218
|
/** Write-side embedder for indexing the run synthesis. */
|
|
@@ -235,12 +223,12 @@ export interface ExecuteAnalysisDeps {
|
|
|
235
223
|
readonly resolveWorkspaceRoot: ResolveWorkspaceRoot;
|
|
236
224
|
/** Model id for the synthesizer agent loop. */
|
|
237
225
|
readonly synthesisModel: string;
|
|
238
|
-
/**
|
|
239
|
-
readonly
|
|
240
|
-
/** Shared resolver for the literature reviewer used during synthesis. */
|
|
241
|
-
readonly citationResolver: CitationResolver;
|
|
226
|
+
/** The `literature_reviewer` tool of the synthesis. The runtime registers its sub-agent one time. */
|
|
227
|
+
readonly literatureReviewer: Tool;
|
|
242
228
|
/** Run-level billing-bracket seam (managed: external bracket; OSS: no-op). */
|
|
243
229
|
readonly runCharge: RunCharge;
|
|
230
|
+
/** The delays of the timer of an outage. Absent: the default of the pause. */
|
|
231
|
+
readonly pauseRetryDelaysMs?: readonly number[];
|
|
244
232
|
/** Run-authorization seam — the terminal path revokes through `revoke`. */
|
|
245
233
|
readonly runAuthorizer: RunAuthorizer;
|
|
246
234
|
/**
|
|
@@ -256,16 +244,27 @@ export interface ExecuteAnalysisDeps {
|
|
|
256
244
|
* carries the goal and the constraints as they are at the dispatch of that step.
|
|
257
245
|
*/
|
|
258
246
|
readonly workingMemory: WorkingMemoryStore;
|
|
247
|
+
/**
|
|
248
|
+
* The knowledge client of the composition, when the embedder binds one.
|
|
249
|
+
* The seed composition reads the contract of the template a grounded step
|
|
250
|
+
* renders through it, and binds the plan settings to that contract.
|
|
251
|
+
* Absent, the seed says the contract was not retrieved, and the step agent
|
|
252
|
+
* learns the slots from the render answers alone.
|
|
253
|
+
*/
|
|
254
|
+
readonly knowledge?: KnowledgeClient;
|
|
259
255
|
/**
|
|
260
256
|
* The provenance seam of the composition. The body reads its run emit member,
|
|
261
257
|
* and it reads no other member.
|
|
262
258
|
*
|
|
263
|
-
*
|
|
264
|
-
* in `DBOS.runStep`) so that body re-execution on DBOS recovery
|
|
265
|
-
* a cached step would suppress the recovery re-emission
|
|
266
|
-
*
|
|
267
|
-
*
|
|
268
|
-
*
|
|
259
|
+
* `run_started` and `step_completed` are emitted directly in the workflow body
|
|
260
|
+
* (NOT wrapped in `DBOS.runStep`) so that body re-execution on DBOS recovery
|
|
261
|
+
* re-fires them — a cached step would suppress the recovery re-emission.
|
|
262
|
+
* `run_completed` is emitted by the won `persist-final-status` step, or by the
|
|
263
|
+
* body after that step when the step did not emit in this execution (a refused
|
|
264
|
+
* or failed write, or a won step served from the DBOS cache), so a recovery
|
|
265
|
+
* replay still fires it. Idempotency is the consumer's job, achieved via the
|
|
266
|
+
* deterministic identifiers the events carry, not via step caching. Every call
|
|
267
|
+
* site is guarded so a throwing observer never fails the run.
|
|
269
268
|
*
|
|
270
269
|
* Events arrive with the run's `RunSession` from durable workflow input — a
|
|
271
270
|
* persisting realization needs its credential, scope, and identity.
|
|
@@ -292,7 +291,7 @@ export interface ExecuteAnalysisDeps {
|
|
|
292
291
|
* throwing observer never fails the run.
|
|
293
292
|
*/
|
|
294
293
|
readonly observeRun?: (observation: RunObservation) => void;
|
|
295
|
-
}
|
|
294
|
+
};
|
|
296
295
|
/**
|
|
297
296
|
* Project the sandbox-step input handed to each child. The parent owns the
|
|
298
297
|
* level computation and the seed (`prompt`, composed by `composeStepSeed` at
|
|
@@ -305,8 +304,8 @@ export declare function buildChildInput(args: {
|
|
|
305
304
|
stepId: string;
|
|
306
305
|
level: number;
|
|
307
306
|
runId: string;
|
|
308
|
-
workflowId: string;
|
|
309
307
|
prompt: string;
|
|
308
|
+
templateBinding?: TemplateBinding;
|
|
310
309
|
}): Omit<SandboxStepInput, "runSession">;
|
|
311
310
|
/**
|
|
312
311
|
* Compose one step's seed — the user-content message its agent opens on.
|
|
@@ -317,17 +316,26 @@ export declare function buildChildInput(args: {
|
|
|
317
316
|
* rendered any earlier (at plan submission, say) cannot mention them, and the
|
|
318
317
|
* agent is left to rediscover its own upstream.
|
|
319
318
|
*
|
|
320
|
-
*
|
|
321
|
-
*
|
|
322
|
-
*
|
|
323
|
-
*
|
|
319
|
+
* The template contract of a grounded step is read with the package, and the
|
|
320
|
+
* plan settings are bound to it: the seed describes the binding, and the child
|
|
321
|
+
* input carries it, from one checkpoint. The child fetches nothing.
|
|
322
|
+
*
|
|
323
|
+
* REPLAY: the caller wraps this in a `DBOS.runStep`, so the composed seed is
|
|
324
|
+
* checkpointed and a replay returns it verbatim — the DB, the disk, and the
|
|
325
|
+
* knowledge service are not read again and cannot drift the seed under a
|
|
326
|
+
* recovered run. Never call it unwrapped from the workflow body.
|
|
324
327
|
*/
|
|
325
328
|
export declare function composeStepSeed(args: {
|
|
326
329
|
input: ExecuteAnalysisInput;
|
|
327
330
|
stepId: string;
|
|
328
331
|
runId: string;
|
|
329
332
|
deps: ExecuteAnalysisDeps;
|
|
330
|
-
}): Promise<
|
|
333
|
+
}): Promise<StepSeed>;
|
|
334
|
+
/** What `gatherStepPackage` gives: the data of the seed, and the binding of the plan settings when one holds. */
|
|
335
|
+
export type StepPackage = {
|
|
336
|
+
readonly briefing: StepBriefing;
|
|
337
|
+
readonly templateBinding?: TemplateBinding;
|
|
338
|
+
};
|
|
331
339
|
/**
|
|
332
340
|
* Do every read of one step's package and give the data its seed is rendered
|
|
333
341
|
* from. All reads live here, so `composeStepBriefing` stays a pure renderer.
|
|
@@ -340,6 +348,9 @@ export declare function composeStepSeed(args: {
|
|
|
340
348
|
* so an edit during a run reaches each later step, and two steps of one run
|
|
341
349
|
* can carry different copies.
|
|
342
350
|
*
|
|
351
|
+
* The contract of the template a grounded step renders is read here too, from
|
|
352
|
+
* the knowledge client, and the plan settings are bound to it.
|
|
353
|
+
*
|
|
343
354
|
* A read failure throws (house rules): a swallowed error would be frozen into
|
|
344
355
|
* the checkpointed seed and served to every replay of this step.
|
|
345
356
|
*/
|
|
@@ -348,27 +359,38 @@ export declare function gatherStepPackage(args: {
|
|
|
348
359
|
stepId: string;
|
|
349
360
|
runId: string;
|
|
350
361
|
deps: ExecuteAnalysisDeps;
|
|
351
|
-
}): Promise<
|
|
362
|
+
}): Promise<StepPackage>;
|
|
363
|
+
/**
|
|
364
|
+
* What `composeStepSeed` checkpoints: the seed, and the binding of the plan
|
|
365
|
+
* settings to the template of the step when the contract was retrieved and
|
|
366
|
+
* its served version is the version the plan names. JSON-serialisable, as a
|
|
367
|
+
* durable step result must be.
|
|
368
|
+
*/
|
|
369
|
+
export type StepSeed = {
|
|
370
|
+
readonly prompt: string;
|
|
371
|
+
readonly templateBinding?: TemplateBinding;
|
|
372
|
+
};
|
|
352
373
|
/**
|
|
353
374
|
* Project a classified synthesis outcome onto the run-phase `synthesis` ledger
|
|
354
375
|
* row's terminal update (see the run-synthesis-outcome spec). The blocker keeps
|
|
355
376
|
* its reason in `blockedReason` — an honest agent-declared blocker, not an
|
|
356
377
|
* error — and a failure carries the same reason string
|
|
357
378
|
* `persist-synthesis-outcome` writes to `cortex_runs.synthesis_reason`, so the
|
|
358
|
-
* two ledgers cannot disagree about why synthesis died.
|
|
359
|
-
*
|
|
360
|
-
* the projection tests (the `buildChildInput` pattern).
|
|
379
|
+
* two ledgers cannot disagree about why synthesis died. Exported for the
|
|
380
|
+
* projection tests (the `buildChildInput` pattern).
|
|
361
381
|
*/
|
|
362
382
|
export declare function synthesisRowUpdate(outcome: {
|
|
363
383
|
status: SynthesisStatus;
|
|
364
384
|
reason: string | null;
|
|
365
|
-
}
|
|
385
|
+
}, durationMs: number): UpdateStepExecutionInput;
|
|
366
386
|
/**
|
|
367
387
|
* Run-level literature-grounded synthesis (no sandbox). Returns the
|
|
368
388
|
* quick-display findings for the run-completed card; empty when synthesis is
|
|
369
|
-
* skipped or produced no synthesizable content. A genuine failure re-throws
|
|
370
|
-
*
|
|
371
|
-
*
|
|
389
|
+
* skipped or produced no synthesizable content. A genuine failure re-throws,
|
|
390
|
+
* failing the run (D10). It runs in the body of the run workflow: each read and
|
|
391
|
+
* write is a step, each model call is a step, and each reviewer call starts a
|
|
392
|
+
* child workflow. Exported so integration tests can drive the wired synthesis
|
|
393
|
+
* without a full parent body.
|
|
372
394
|
*/
|
|
373
395
|
export declare function synthesizeFindings(args: {
|
|
374
396
|
analysisId: string;
|
|
@@ -376,6 +398,8 @@ export declare function synthesizeFindings(args: {
|
|
|
376
398
|
completedSteps: readonly string[];
|
|
377
399
|
session: RunSession;
|
|
378
400
|
deps: ExecuteAnalysisDeps;
|
|
401
|
+
/** The pause of the run. The body of the run gives it, thus the synthesizer waits in place. */
|
|
402
|
+
pause?: WorkPause;
|
|
379
403
|
}): Promise<{
|
|
380
404
|
findings: readonly RunFinding[];
|
|
381
405
|
synthesisStatus: Exclude<SynthesisStatus, "failed">;
|