@inflexa-ai/harness 0.45.1 → 0.46.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -3
- package/dist/agents/conversation-agent.d.ts +9 -3
- package/dist/agents/conversation-agent.js +34 -33
- package/dist/agents/report-session-agent.d.ts +15 -15
- package/dist/agents/report-session-agent.js +23 -15
- package/dist/agents/sandbox/index.d.ts +1 -1
- package/dist/agents/sandbox/index.js +1 -1
- package/dist/agents/sandbox/shared.d.ts +12 -14
- package/dist/agents/sandbox/shared.js +18 -12
- package/dist/agents/sandbox/types.d.ts +4 -4
- package/dist/agents/sandbox/validate-skills.d.ts +2 -2
- package/dist/agents/sandbox/validate-skills.js +3 -1
- package/dist/agents/sandbox-catalog.d.ts +2 -2
- package/dist/agents/sandbox-catalog.js +3 -3
- package/dist/agents/system-prompt.d.ts +2 -2
- package/dist/app/chat-turn-workflow.d.ts +114 -0
- package/dist/app/chat-turn-workflow.js +307 -0
- package/dist/app/chat-turn.d.ts +85 -57
- package/dist/app/chat-turn.js +123 -100
- package/dist/app/data-profile-orientation.js +10 -8
- package/dist/app/data-profile-view.d.ts +4 -4
- package/dist/app/data-profile-view.js +9 -8
- package/dist/app/in-process-turn.d.ts +42 -0
- package/dist/app/in-process-turn.js +139 -0
- package/dist/app/message-assembly.d.ts +10 -4
- package/dist/app/message-assembly.js +13 -8
- package/dist/app/report-session-runtime.d.ts +4 -4
- package/dist/app/report-session-runtime.js +36 -21
- package/dist/app/spawn-report-session.d.ts +33 -28
- package/dist/app/spawn-report-session.js +25 -40
- package/dist/app/synthesize-run.d.ts +22 -16
- package/dist/app/synthesize-run.js +41 -35
- package/dist/app/work.d.ts +96 -0
- package/dist/app/work.js +147 -0
- package/dist/auth/local-auth-context.d.ts +1 -3
- package/dist/auth/local-auth-context.js +1 -3
- package/dist/auth/local-run-authorizer.d.ts +1 -1
- package/dist/auth/local-run-authorizer.js +5 -3
- package/dist/auth/types.d.ts +26 -26
- package/dist/billing/cached-resolver.d.ts +4 -4
- package/dist/billing/run-charge.d.ts +5 -8
- package/dist/billing/run-charge.js +2 -2
- package/dist/billing/usage-recorder.d.ts +9 -9
- package/dist/citations/aggregate.js +1 -1
- package/dist/citations/clients/arxiv.d.ts +2 -2
- package/dist/citations/clients/arxiv.js +12 -4
- package/dist/citations/clients/common.js +4 -2
- package/dist/citations/clients/crossref.d.ts +2 -2
- package/dist/citations/clients/crossref.js +37 -37
- package/dist/citations/clients/doi-registry.js +15 -16
- package/dist/citations/clients/pubmed.d.ts +2 -2
- package/dist/citations/clients/pubmed.js +20 -13
- package/dist/citations/clients/semantic-scholar.d.ts +2 -2
- package/dist/citations/clients/semantic-scholar.js +9 -9
- package/dist/citations/compare.js +2 -2
- package/dist/citations/match.d.ts +2 -2
- package/dist/citations/match.js +12 -7
- package/dist/citations/normalize.js +35 -26
- package/dist/citations/plan.js +6 -2
- package/dist/citations/resolve.d.ts +6 -6
- package/dist/citations/resolve.js +34 -25
- package/dist/citations/types.d.ts +77 -77
- package/dist/config/environment-stores.d.ts +6 -6
- package/dist/config/resource-limits.js +1 -3
- package/dist/contracts/analogy-report.d.ts +7 -7
- package/dist/contracts/analogy-report.js +2 -2
- package/dist/contracts/chat-events.d.ts +38 -24
- package/dist/contracts/chat-frame.d.ts +15 -5
- package/dist/contracts/chat-frame.js +64 -41
- package/dist/contracts/chat-parts.d.ts +130 -67
- package/dist/contracts/chat-parts.js +1 -0
- package/dist/contracts/content-url.js +16 -2
- package/dist/contracts/data-profile.d.ts +38 -38
- package/dist/contracts/index.d.ts +2 -2
- package/dist/contracts/index.js +1 -1
- package/dist/contracts/message.d.ts +6 -6
- package/dist/contracts/organ-system.d.ts +11 -11
- package/dist/contracts/part-registry.d.ts +5 -4
- package/dist/contracts/part-registry.js +5 -0
- package/dist/contracts/profile-vocabulary.d.ts +11 -10
- package/dist/contracts/profile-vocabulary.js +10 -3
- package/dist/contracts/report-blocks.d.ts +329 -329
- package/dist/contracts/report-reference.d.ts +105 -81
- package/dist/contracts/report-reference.js +30 -13
- package/dist/contracts/schemas/chat-events.d.ts +30 -16
- package/dist/contracts/schemas/chat-events.js +15 -6
- package/dist/contracts/schemas/chat-parts.d.ts +175 -102
- package/dist/contracts/schemas/chat-parts.js +33 -7
- package/dist/contracts/severity.d.ts +1 -1
- package/dist/contracts/structure-source.d.ts +3 -3
- package/dist/contracts/structure-source.js +6 -2
- package/dist/contracts/subagent-activity.d.ts +2 -2
- package/dist/contracts/subagent-activity.js +5 -3
- package/dist/contracts/usage.d.ts +2 -2
- package/dist/data/safety-panel-schema.d.ts +25 -25
- package/dist/data/safety-panel-schema.js +13 -4
- package/dist/execution/artifact-metadata.d.ts +23 -15
- package/dist/execution/artifact-metadata.js +33 -10
- package/dist/execution/artifact-record.d.ts +2 -2
- package/dist/execution/artifact-registration.d.ts +5 -5
- package/dist/execution/artifact-registry.d.ts +8 -8
- package/dist/execution/dbos-run-launcher.d.ts +24 -4
- package/dist/execution/dbos-run-launcher.js +58 -4
- package/dist/execution/dbos-workflow-purger.d.ts +5 -6
- package/dist/execution/dbos-workflow-purger.js +8 -7
- package/dist/execution/input-signature.d.ts +2 -2
- package/dist/execution/post-step-pipeline.d.ts +9 -9
- package/dist/execution/post-step-pipeline.js +1 -1
- package/dist/execution/post-step.js +2 -2
- package/dist/execution/reconcile-manifest.d.ts +4 -4
- package/dist/execution/reconcile-manifest.js +3 -2
- package/dist/execution/run-authorizer.d.ts +46 -37
- package/dist/execution/run-authorizer.js +8 -8
- package/dist/execution/run-canceler.d.ts +7 -7
- package/dist/execution/run-canceler.js +14 -7
- package/dist/execution/run-end-record.d.ts +2 -3
- package/dist/execution/run-event-parts.d.ts +0 -8
- package/dist/execution/run-event-parts.js +29 -24
- package/dist/execution/run-event-stream.d.ts +8 -8
- package/dist/execution/run-event-stream.js +3 -4
- package/dist/execution/run-launcher.d.ts +4 -4
- package/dist/execution/run-synthesis.d.ts +49 -48
- package/dist/execution/run-synthesis.js +96 -255
- package/dist/execution/staged-input.d.ts +2 -2
- package/dist/execution/step-summary.d.ts +6 -6
- package/dist/execution/step-summary.js +4 -8
- package/dist/execution/topo-sort.js +4 -3
- package/dist/execution/workflow-purger.d.ts +2 -2
- package/dist/index.d.ts +17 -20
- package/dist/index.js +25 -36
- package/dist/input-sanitization.js +9 -2
- package/dist/input-scan/clustering.d.ts +6 -6
- package/dist/input-scan/clustering.js +11 -5
- package/dist/input-scan/companions.js +3 -2
- package/dist/input-scan/detect-sets.d.ts +2 -2
- package/dist/input-scan/detect-sets.js +25 -21
- package/dist/input-scan/enrich.d.ts +6 -6
- package/dist/input-scan/enrich.js +29 -12
- package/dist/input-scan/formats.d.ts +2 -2
- package/dist/input-scan/formats.js +8 -2
- package/dist/input-scan/markers.d.ts +2 -2
- package/dist/input-scan/markers.js +14 -5
- package/dist/input-scan/menu.d.ts +10 -10
- package/dist/input-scan/menu.js +0 -0
- package/dist/input-scan/quarantine.d.ts +2 -2
- package/dist/input-scan/quarantine.js +23 -18
- package/dist/input-scan/readout-budget.d.ts +2 -2
- package/dist/input-scan/readout-budget.js +1 -1
- package/dist/input-scan/readout.d.ts +2 -2
- package/dist/input-scan/readout.js +47 -34
- package/dist/input-scan/scan.d.ts +2 -2
- package/dist/input-scan/scan.js +7 -5
- package/dist/input-scan/set-types.d.ts +28 -28
- package/dist/input-scan/shapes.d.ts +4 -4
- package/dist/input-scan/shapes.js +0 -0
- package/dist/input-scan/templates.d.ts +10 -10
- package/dist/input-scan/templates.js +30 -22
- package/dist/input-scan/tokens.d.ts +6 -4
- package/dist/input-scan/tokens.js +100 -38
- package/dist/input-scan/types.d.ts +22 -22
- package/dist/lib/async-utils.d.ts +3 -7
- package/dist/lib/async-utils.js +5 -9
- package/dist/lib/cache.js +1 -1
- package/dist/lib/chrome.d.ts +46 -6
- package/dist/lib/console-logger.js +2 -2
- package/dist/lib/db-result.d.ts +22 -6
- package/dist/lib/db-result.js +9 -13
- package/dist/lib/eyes.d.ts +4 -4
- package/dist/lib/eyes.js +1 -1
- package/dist/lib/fs-helpers.js +18 -6
- package/dist/lib/fs-result.d.ts +1 -0
- package/dist/lib/fs-result.js +5 -6
- package/dist/lib/hooks.d.ts +23 -7
- package/dist/lib/hooks.js +17 -3
- package/dist/lib/host-concurrency.js +3 -2
- package/dist/lib/logger.d.ts +2 -2
- package/dist/lib/logger.js +2 -1
- package/dist/lib/metrics.d.ts +1 -1
- package/dist/lib/null-proto.d.ts +6 -0
- package/dist/lib/null-proto.js +17 -0
- package/dist/lib/otel-spans.d.ts +1 -1
- package/dist/lib/otel-spans.js +9 -5
- package/dist/lib/otel.d.ts +4 -2
- package/dist/lib/otel.js +10 -2
- package/dist/lib/page-capture.d.ts +8 -8
- package/dist/lib/page-capture.js +9 -4
- package/dist/lib/parse-json.d.ts +5 -0
- package/dist/lib/parse-json.js +12 -0
- package/dist/lib/present.d.ts +12 -0
- package/dist/lib/present.js +39 -0
- package/dist/lib/rate-limit.d.ts +4 -4
- package/dist/lib/rate-limit.js +12 -13
- package/dist/lib/regulatory-corpus/fetch-fda-guidance.d.ts +4 -4
- package/dist/lib/regulatory-corpus/fetch-fda-guidance.js +4 -10
- package/dist/lib/regulatory-corpus/fetch-ich.d.ts +4 -4
- package/dist/lib/regulatory-corpus/fetch-ich.js +18 -14
- package/dist/lib/regulatory-corpus/normalize-whitespace.d.ts +6 -0
- package/dist/lib/regulatory-corpus/normalize-whitespace.js +41 -0
- package/dist/lib/regulatory-corpus.d.ts +10 -10
- package/dist/lib/regulatory-corpus.js +3 -1
- package/dist/lib/result.d.ts +10 -11
- package/dist/lib/result.js +15 -13
- package/dist/lib/storage.d.ts +2 -2
- package/dist/lib/test/async-iterable.d.ts +9 -0
- package/dist/lib/test/async-iterable.js +28 -0
- package/dist/lib/test/request-url.d.ts +5 -0
- package/dist/lib/test/request-url.js +7 -0
- package/dist/lib/test/result-assert.d.ts +12 -0
- package/dist/lib/test/result-assert.js +17 -0
- package/dist/lib/test/text-shapes.d.ts +24 -0
- package/dist/lib/test/text-shapes.js +63 -0
- package/dist/lib/text.d.ts +22 -0
- package/dist/lib/text.js +68 -0
- package/dist/lib/thrown.d.ts +18 -0
- package/dist/lib/thrown.js +30 -0
- package/dist/lib/unknown-array.d.ts +6 -0
- package/dist/lib/unknown-array.js +8 -0
- package/dist/lib/unknown-containers.d.ts +14 -0
- package/dist/lib/unknown-containers.js +17 -0
- package/dist/lib/unknown-text.d.ts +8 -0
- package/dist/lib/unknown-text.js +28 -0
- package/dist/lib/zod-issue-shape.d.ts +1 -1
- package/dist/lib/zod-issue-shape.js +31 -31
- package/dist/lib/zod-issues.d.ts +3 -3
- package/dist/lib/zod-issues.js +30 -17
- package/dist/literature/sources/arxiv.d.ts +6 -6
- package/dist/literature/sources/arxiv.js +92 -35
- package/dist/literature/sources/http.d.ts +2 -2
- package/dist/literature/sources/http.js +16 -15
- package/dist/literature/sources/pubmed.d.ts +16 -16
- package/dist/literature/sources/pubmed.js +96 -61
- package/dist/literature/sources/semantic-scholar.d.ts +8 -8
- package/dist/literature/sources/semantic-scholar.js +22 -13
- package/dist/loop/accounting.d.ts +63 -0
- package/dist/loop/accounting.js +141 -0
- package/dist/loop/call-policy.d.ts +73 -0
- package/dist/loop/call-policy.js +109 -0
- package/dist/loop/chat-stream.d.ts +62 -0
- package/dist/loop/chat-stream.js +237 -0
- package/dist/loop/compaction.d.ts +9 -9
- package/dist/loop/compaction.js +1 -1
- package/dist/loop/metrics.d.ts +12 -15
- package/dist/loop/metrics.js +14 -26
- package/dist/loop/run-loop.d.ts +233 -0
- package/dist/loop/run-loop.js +770 -0
- package/dist/loop/sub-agent.d.ts +61 -0
- package/dist/loop/sub-agent.js +161 -0
- package/dist/loop/tool-adapter.d.ts +98 -0
- package/dist/loop/tool-adapter.js +364 -0
- package/dist/loop/tool-detail.d.ts +1 -1
- package/dist/loop/tool-detail.js +6 -5
- package/dist/loop/tool-outcome.d.ts +1 -1
- package/dist/loop/tool-output.d.ts +4 -4
- package/dist/loop/tool-output.js +2 -2
- package/dist/loop/turn-credentials.d.ts +34 -0
- package/dist/loop/turn-credentials.js +73 -0
- package/dist/loop/types.d.ts +29 -38
- package/dist/loop/types.js +2 -7
- package/dist/memory/ai-sdk-message-storage.d.ts +5 -5
- package/dist/memory/ai-sdk-message-storage.js +13 -11
- package/dist/memory/card-builders.d.ts +14 -14
- package/dist/memory/card-builders.js +19 -15
- package/dist/memory/conversation-display-recorder.d.ts +22 -4
- package/dist/memory/conversation-display-recorder.js +43 -24
- package/dist/memory/conversation-display-replay.js +3 -2
- package/dist/memory/conversation-display-storage.d.ts +15 -7
- package/dist/memory/conversation-display-storage.js +141 -36
- package/dist/memory/conversation-view.d.ts +4 -4
- package/dist/memory/conversation-view.js +5 -4
- package/dist/memory/count-tokens.js +10 -8
- package/dist/memory/derive-thread-title.d.ts +0 -13
- package/dist/memory/derive-thread-title.js +2 -1
- package/dist/memory/message-backfill.d.ts +12 -5
- package/dist/memory/message-backfill.js +5 -3
- package/dist/memory/thread-history.d.ts +36 -21
- package/dist/memory/thread-history.js +78 -54
- package/dist/memory/thread-store.d.ts +26 -17
- package/dist/memory/thread-store.js +15 -9
- package/dist/memory/tool-call-integrity.d.ts +2 -2
- package/dist/memory/tool-call-integrity.js +4 -3
- package/dist/memory/working-memory.d.ts +16 -12
- package/dist/memory/working-memory.js +72 -61
- package/dist/prompts/briefing.d.ts +12 -12
- package/dist/prompts/briefing.js +1 -1
- package/dist/prompts/synthesis-agent.d.ts +1 -1
- package/dist/prompts/synthesis-agent.js +6 -14
- package/dist/provenance/collector.d.ts +6 -6
- package/dist/provenance/collector.js +15 -8
- package/dist/provenance/exec-frame.d.ts +2 -2
- package/dist/provenance/exec-frame.js +6 -1
- package/dist/provenance/seam.d.ts +1 -4
- package/dist/provenance/types.d.ts +6 -6
- package/dist/providers/ai-sdk.d.ts +113 -62
- package/dist/providers/ai-sdk.js +283 -518
- package/dist/providers/embedding.d.ts +2 -2
- package/dist/providers/embedding.js +1 -1
- package/dist/providers/errors.d.ts +22 -2
- package/dist/providers/errors.js +98 -50
- package/dist/providers/prompt-cache.d.ts +8 -8
- package/dist/providers/prompt-cache.js +13 -11
- package/dist/providers/reasoning.d.ts +2 -2
- package/dist/providers/reasoning.js +2 -2
- package/dist/providers/types.d.ts +55 -94
- package/dist/reference-data/catalog.d.ts +2 -15
- package/dist/reference-data/catalog.js +25 -8
- package/dist/reference-data/receipt.d.ts +2 -2
- package/dist/report-model/assert-rules.js +1 -1
- package/dist/report-model/authoring-grammar.d.ts +211 -233
- package/dist/report-model/block-walk.d.ts +10 -10
- package/dist/report-model/block-walk.js +2 -0
- package/dist/report-model/draft-finish.d.ts +8 -8
- package/dist/report-model/draft-finish.js +1 -1
- package/dist/report-model/draft-hash.js +8 -7
- package/dist/report-model/draft-operations.d.ts +22 -10
- package/dist/report-model/draft-operations.js +48 -30
- package/dist/report-model/draft-read.d.ts +19 -7
- package/dist/report-model/draft-read.js +16 -6
- package/dist/report-model/draft.d.ts +844 -2
- package/dist/report-model/draft.js +3 -1
- package/dist/report-model/fixture-resolver.js +39 -16
- package/dist/report-model/pin-snapshot.d.ts +2 -2
- package/dist/report-model/pin-snapshot.js +15 -15
- package/dist/report-model/production-resolver.d.ts +18 -18
- package/dist/report-model/production-resolver.js +50 -42
- package/dist/report-model/reference-resolver.d.ts +26 -10
- package/dist/report-model/reference-resolver.js +68 -5
- package/dist/report-model/reference-stamp.js +30 -38
- package/dist/report-model/structural-validation.js +12 -4
- package/dist/report-model/validate.d.ts +7 -7
- package/dist/report-model/validate.js +6 -6
- package/dist/report-render/assets.d.ts +2 -2
- package/dist/report-render/assets.js +27 -3
- package/dist/report-render/chart-export.d.ts +10 -2
- package/dist/report-render/chart-export.js +37 -11
- package/dist/report-render/chart-presets.d.ts +8 -8
- package/dist/report-render/chart-presets.js +3 -3
- package/dist/report-render/chart-renderers.d.ts +23 -16
- package/dist/report-render/chart-renderers.js +74 -53
- package/dist/report-render/chart-toolbox.d.ts +2 -2
- package/dist/report-render/chart-toolbox.js +7 -6
- package/dist/report-render/chart.d.ts +15 -16
- package/dist/report-render/chart.js +369 -252
- package/dist/report-render/design.d.ts +36 -297
- package/dist/report-render/design.js +0 -12
- package/dist/report-render/figures/common.d.ts +12 -12
- package/dist/report-render/figures/common.js +42 -31
- package/dist/report-render/figures/dendrogram.d.ts +3 -3
- package/dist/report-render/figures/dendrogram.js +10 -10
- package/dist/report-render/figures/dense.js +15 -8
- package/dist/report-render/figures/dotplot.js +46 -33
- package/dist/report-render/figures/embedding.js +52 -43
- package/dist/report-render/figures/equal-units.d.ts +10 -10
- package/dist/report-render/figures/equal-units.js +27 -27
- package/dist/report-render/figures/forest.js +9 -7
- package/dist/report-render/figures/gsea.js +21 -11
- package/dist/report-render/figures/heatmap.js +13 -9
- package/dist/report-render/figures/index.d.ts +10 -10
- package/dist/report-render/figures/index.js +4 -2
- package/dist/report-render/figures/km.js +10 -9
- package/dist/report-render/figures/label-room.d.ts +12 -12
- package/dist/report-render/figures/label-room.js +7 -2
- package/dist/report-render/figures/locuszoom.d.ts +2 -2
- package/dist/report-render/figures/locuszoom.js +59 -31
- package/dist/report-render/figures/lollipop.js +3 -2
- package/dist/report-render/figures/ma.js +8 -4
- package/dist/report-render/figures/manhattan.d.ts +1 -2
- package/dist/report-render/figures/manhattan.js +52 -34
- package/dist/report-render/figures/oncoprint.js +4 -5
- package/dist/report-render/figures/pca.js +25 -11
- package/dist/report-render/figures/qq.js +20 -9
- package/dist/report-render/figures/roc.js +1 -1
- package/dist/report-render/figures/sankey.d.ts +2 -2
- package/dist/report-render/figures/sankey.js +11 -10
- package/dist/report-render/figures/upset.d.ts +6 -6
- package/dist/report-render/figures/upset.js +7 -4
- package/dist/report-render/figures/volcano.js +12 -10
- package/dist/report-render/hybrid-svg.d.ts +4 -4
- package/dist/report-render/hybrid-svg.js +7 -5
- package/dist/report-render/number-format.d.ts +4 -4
- package/dist/report-render/number-format.js +62 -27
- package/dist/report-render/page.js +2 -1
- package/dist/report-render/provenance-data.d.ts +2 -2
- package/dist/report-render/references.d.ts +4 -4
- package/dist/report-render/render.d.ts +2 -2
- package/dist/report-render/render.js +10 -11
- package/dist/report-render/script-json.js +1 -1
- package/dist/report-render/table-data.d.ts +6 -6
- package/dist/report-render/test/options.d.ts +49 -0
- package/dist/report-render/test/options.js +143 -0
- package/dist/report-render/test/page-function.d.ts +19 -0
- package/dist/report-render/test/page-function.js +33 -0
- package/dist/report-render/types.d.ts +10 -10
- package/dist/report-render/value-bridge.d.ts +4 -4
- package/dist/report-render/value-bridge.js +27 -14
- package/dist/report-render/views/chart-view.d.ts +2 -2
- package/dist/report-render/views/chart-view.js +2 -2
- package/dist/report-render/views/lineage.d.ts +6 -6
- package/dist/report-render/views/lineage.js +2 -0
- package/dist/report-render/views/page-view.d.ts +2 -2
- package/dist/report-render/views/page-view.js +1 -0
- package/dist/report-render/views/prose.js +25 -8
- package/dist/report-render/views/references-view.js +12 -1
- package/dist/report-render/views/values.js +1 -1
- package/dist/runtime/assemble.d.ts +53 -26
- package/dist/runtime/assemble.js +103 -56
- package/dist/runtime/boot.d.ts +8 -7
- package/dist/runtime/boot.js +1 -1
- package/dist/runtime/connection-budget.d.ts +6 -6
- package/dist/runtime/connection-budget.js +1 -1
- package/dist/runtime/dbos.d.ts +29 -19
- package/dist/runtime/dbos.js +35 -20
- package/dist/runtime/result-serialization.js +18 -5
- package/dist/runtime/shutdown.d.ts +2 -2
- package/dist/sandbox/client.d.ts +7 -3
- package/dist/sandbox/cpu-files.d.ts +2 -2
- package/dist/sandbox/cpu-files.js +21 -4
- package/dist/sandbox/create-sandbox.d.ts +7 -8
- package/dist/sandbox/create-sandbox.js +6 -12
- package/dist/sandbox/docker-client.d.ts +48 -3
- package/dist/sandbox/docker-client.js +10 -6
- package/dist/sandbox/estimate-data-profile-resources.js +2 -7
- package/dist/sandbox/exec-outcome.d.ts +2 -2
- package/dist/sandbox/exec-outcome.js +1 -1
- package/dist/sandbox/exec.d.ts +10 -6
- package/dist/sandbox/exec.js +27 -12
- package/dist/sandbox/execution-id.js +14 -6
- package/dist/sandbox/farm.d.ts +2 -2
- package/dist/sandbox/farm.js +22 -27
- package/dist/sandbox/identity.d.ts +7 -0
- package/dist/sandbox/identity.js +14 -3
- package/dist/sandbox/image-packages.js +15 -27
- package/dist/sandbox/k8s-client.d.ts +35 -8
- package/dist/sandbox/k8s-client.js +6 -5
- package/dist/sandbox/labels.js +1 -0
- package/dist/sandbox/liveness.js +3 -1
- package/dist/sandbox/mount-plan.d.ts +10 -10
- package/dist/sandbox/mount-plan.js +13 -14
- package/dist/sandbox/notification-sweep.d.ts +4 -4
- package/dist/sandbox/notification-sweep.js +4 -7
- package/dist/sandbox/package-identity.d.ts +6 -13
- package/dist/sandbox/package-identity.js +46 -28
- package/dist/sandbox/reaper.d.ts +10 -10
- package/dist/sandbox/reaper.js +4 -6
- package/dist/sandbox/sandbox-error.d.ts +2 -9
- package/dist/sandbox/sandbox-error.js +21 -8
- package/dist/sandbox/sandbox-step-translate.d.ts +8 -5
- package/dist/sandbox/sandbox-step-translate.js +22 -8
- package/dist/sandbox/step-sandbox.d.ts +47 -0
- package/dist/sandbox/step-sandbox.js +53 -0
- package/dist/sandbox/types.d.ts +18 -19
- package/dist/sandbox/types.js +1 -1
- package/dist/schemas/artifact-manifest.d.ts +4 -4
- package/dist/schemas/data-profile-schemas.d.ts +343 -298
- package/dist/schemas/file-metadata.js +2 -4
- package/dist/schemas/plan-schemas.d.ts +31 -31
- package/dist/schemas/run-synthesis.d.ts +95 -26
- package/dist/schemas/run-synthesis.js +3 -1
- package/dist/schemas/validate-plan.d.ts +4 -4
- package/dist/schemas/validate-plan.js +17 -5
- package/dist/schemas/workflow-state.d.ts +19 -19
- package/dist/schemas/workflow-state.js +2 -2
- package/dist/state/active-turns.d.ts +36 -0
- package/dist/state/active-turns.js +67 -0
- package/dist/state/analyses-metrics.d.ts +8 -8
- package/dist/state/analyses-metrics.js +4 -4
- package/dist/state/analyses.d.ts +0 -14
- package/dist/state/analyses.js +0 -32
- package/dist/state/artifacts.d.ts +32 -19
- package/dist/state/artifacts.js +28 -5
- package/dist/state/data-profile.d.ts +2 -2
- package/dist/state/db.d.ts +12 -2
- package/dist/state/db.js +5 -0
- package/dist/state/edit-intents.d.ts +4 -0
- package/dist/state/edit-intents.js +71 -0
- package/dist/state/index.d.ts +4 -4
- package/dist/state/index.js +2 -2
- package/dist/state/init.d.ts +2 -1
- package/dist/state/init.js +5 -2
- package/dist/state/migrations/20260927120000_baseline.js +3 -1
- package/dist/state/migrations/20261026120000_add_the_edit_intents.d.ts +7 -0
- package/dist/state/migrations/20261026120000_add_the_edit_intents.js +21 -0
- package/dist/state/migrations/20261027120000_record_the_applied_memory_edits.d.ts +7 -0
- package/dist/state/migrations/20261027120000_record_the_applied_memory_edits.js +16 -0
- package/dist/state/migrations/20261027120100_store_the_authoring_results.d.ts +8 -0
- package/dist/state/migrations/20261027120100_store_the_authoring_results.js +20 -0
- package/dist/state/migrations/20261027120200_key_the_groups_of_a_turn.d.ts +7 -0
- package/dist/state/migrations/20261027120200_key_the_groups_of_a_turn.js +12 -0
- package/dist/state/migrations/20261027120300_mark_the_active_turn_of_a_thread.d.ts +7 -0
- package/dist/state/migrations/20261027120300_mark_the_active_turn_of_a_thread.js +11 -0
- package/dist/state/migrations/20261028120000_record_the_paused_work.d.ts +7 -0
- package/dist/state/migrations/20261028120000_record_the_paused_work.js +25 -0
- package/dist/state/migrations/20261028120100_end_the_suspended_runs.d.ts +8 -0
- package/dist/state/migrations/20261028120100_end_the_suspended_runs.js +13 -0
- package/dist/state/migrations/20261029120000_reference_the_run_mandate.d.ts +7 -0
- package/dist/state/migrations/20261029120000_reference_the_run_mandate.js +23 -0
- package/dist/state/migrations/20261029120100_record_the_run_session_of_a_pause.d.ts +7 -0
- package/dist/state/migrations/20261029120100_record_the_run_session_of_a_pause.js +11 -0
- package/dist/state/migrations/index.js +18 -0
- package/dist/state/paused-work.d.ts +52 -0
- package/dist/state/paused-work.js +105 -0
- package/dist/state/plans.d.ts +27 -8
- package/dist/state/plans.js +14 -11
- package/dist/state/purge-analysis.d.ts +6 -6
- package/dist/state/purge-analysis.js +10 -2
- package/dist/state/report-session-state.d.ts +43 -18
- package/dist/state/report-session-state.js +43 -4
- package/dist/state/report-versions.d.ts +16 -11
- package/dist/state/report-versions.js +5 -3
- package/dist/state/runs.d.ts +30 -19
- package/dist/state/runs.js +43 -51
- package/dist/state/schema.d.ts +18 -21
- package/dist/state/schema.js +4 -5
- package/dist/state/snapshot-parse.d.ts +2 -2
- package/dist/state/snapshot-parse.js +14 -8
- package/dist/state/step-executions.d.ts +20 -8
- package/dist/state/step-executions.js +6 -4
- package/dist/state/tool-outputs.d.ts +2 -2
- package/dist/state/tool-outputs.js +2 -1
- package/dist/state/vector-store.d.ts +16 -16
- package/dist/state/vector-store.js +11 -7
- package/dist/tasks/data-profile-absorb.d.ts +3 -3
- package/dist/tasks/data-profile-absorb.js +21 -16
- package/dist/tasks/data-profile-activity.d.ts +5 -5
- package/dist/tasks/data-profile-activity.js +5 -5
- package/dist/tasks/data-profile-index.d.ts +4 -4
- package/dist/tasks/data-profile-index.js +32 -17
- package/dist/tasks/data-profile-resolve.d.ts +8 -8
- package/dist/tasks/data-profile-resolve.js +88 -62
- package/dist/tasks/data-profile.d.ts +40 -31
- package/dist/tasks/data-profile.js +138 -95
- package/dist/tasks/extract-values.d.ts +26 -79
- package/dist/tasks/extract-values.js +48 -108
- package/dist/tasks/refresh-regulatory-corpus.d.ts +4 -20
- package/dist/tasks/refresh-regulatory-corpus.js +12 -8
- package/dist/tasks/regulatory-corpus-boot-refresh.d.ts +2 -2
- package/dist/tasks/regulatory-corpus-boot-refresh.js +12 -10
- package/dist/testing.d.ts +60 -0
- package/dist/testing.js +96 -0
- package/dist/tools/ad-hoc-router.d.ts +9 -9
- package/dist/tools/ad-hoc-router.js +65 -52
- package/dist/tools/analysis-invocation.d.ts +7 -0
- package/dist/tools/analysis-invocation.js +29 -5
- package/dist/tools/approval/contract.d.ts +8 -52
- package/dist/tools/approval/contract.js +7 -36
- package/dist/tools/approval/gateway.d.ts +27 -28
- package/dist/tools/approval/gateway.js +33 -130
- package/dist/tools/approval/queries.d.ts +6 -11
- package/dist/tools/approval/queries.js +43 -29
- package/dist/tools/approval/uuidv7.js +2 -2
- package/dist/tools/bio/chembl.d.ts +3 -3
- package/dist/tools/bio/chembl.js +10 -0
- package/dist/tools/bio/comptox.d.ts +25 -8
- package/dist/tools/bio/comptox.js +4 -2
- package/dist/tools/bio/drug-gene-interactions.d.ts +27 -17
- package/dist/tools/bio/drug-gene-interactions.js +11 -8
- package/dist/tools/bio/gene-disease-evidence.d.ts +61 -15
- package/dist/tools/bio/gene-disease-evidence.js +10 -6
- package/dist/tools/bio/gene-preclinical-profile.d.ts +11 -11
- package/dist/tools/bio/keys.d.ts +2 -2
- package/dist/tools/bio/keys.js +3 -3
- package/dist/tools/bio/lookup-annotation.d.ts +5 -5
- package/dist/tools/bio/lookup-annotation.js +3 -0
- package/dist/tools/bio/opentargets.d.ts +1 -1
- package/dist/tools/bio/opentargets.js +6 -0
- package/dist/tools/bio/pubchem.d.ts +2 -2
- package/dist/tools/bio/pubchem.js +6 -0
- package/dist/tools/bio/pubmed.d.ts +26 -16
- package/dist/tools/bio/pubmed.js +9 -3
- package/dist/tools/bio/search-clinical-trials.d.ts +4 -4
- package/dist/tools/bio/search-clinical-trials.js +5 -1
- package/dist/tools/bio/search-faers.d.ts +2 -2
- package/dist/tools/bio/search-faers.js +1 -1
- package/dist/tools/bio/search-gene.d.ts +2 -2
- package/dist/tools/bio/search-gene.js +1 -0
- package/dist/tools/bio/search-geo-datasets.d.ts +4 -4
- package/dist/tools/bio/search-geo-datasets.js +5 -5
- package/dist/tools/bio/search-interactions.d.ts +1 -1
- package/dist/tools/bio/search-patents.d.ts +28 -22
- package/dist/tools/bio/search-patents.js +20 -17
- package/dist/tools/bio/search-protein.d.ts +2 -2
- package/dist/tools/bio/search-protein.js +1 -1
- package/dist/tools/bio/search-regulatory-approvals.d.ts +64 -18
- package/dist/tools/bio/search-regulatory-approvals.js +21 -16
- package/dist/tools/bio/target-safety.d.ts +8 -8
- package/dist/tools/bio/target-safety.js +11 -6
- package/dist/tools/capability-data.d.ts +9 -5
- package/dist/tools/capability-data.js +2 -1
- package/dist/tools/define-tool.d.ts +55 -46
- package/dist/tools/define-tool.js +39 -27
- package/dist/tools/display/normalize-echart-spec.d.ts +2 -2
- package/dist/tools/display/normalize-echart-spec.js +51 -27
- package/dist/tools/display/show-user.d.ts +2 -2
- package/dist/tools/display/show-user.js +1 -1
- package/dist/tools/execute-analysis.d.ts +19 -10
- package/dist/tools/execute-analysis.js +83 -62
- package/dist/tools/knowledge/check.d.ts +166 -44
- package/dist/tools/knowledge/check.js +5 -3
- package/dist/tools/knowledge/client.d.ts +31 -62
- package/dist/tools/knowledge/client.js +44 -27
- package/dist/tools/knowledge/environment.d.ts +6 -6
- package/dist/tools/knowledge/environment.js +18 -7
- package/dist/tools/knowledge/index.d.ts +2 -2
- package/dist/tools/knowledge/index.js +9 -9
- package/dist/tools/knowledge/local-slots.d.ts +4 -4
- package/dist/tools/knowledge/local-slots.js +11 -4
- package/dist/tools/knowledge/pin.d.ts +2 -2
- package/dist/tools/knowledge/recommend.d.ts +20 -45
- package/dist/tools/knowledge/recommend.js +27 -19
- package/dist/tools/knowledge/situation.d.ts +40 -40
- package/dist/tools/knowledge/situation.js +2 -9
- package/dist/tools/knowledge/skeleton.d.ts +4 -4
- package/dist/tools/knowledge/skeleton.js +10 -11
- package/dist/tools/knowledge/template.d.ts +20 -18
- package/dist/tools/knowledge/template.js +38 -32
- package/dist/tools/lib/alphafold-client.js +2 -1
- package/dist/tools/lib/amass-client.d.ts +28 -28
- package/dist/tools/lib/amass-client.js +20 -10
- package/dist/tools/lib/api-utils.d.ts +13 -3
- package/dist/tools/lib/api-utils.js +17 -3
- package/dist/tools/lib/bgee-client.d.ts +6 -6
- package/dist/tools/lib/bgee-client.js +16 -10
- package/dist/tools/lib/cbioportal-client.d.ts +4 -4
- package/dist/tools/lib/cbioportal-client.js +9 -8
- package/dist/tools/lib/chembl-client.d.ts +14 -14
- package/dist/tools/lib/chembl-client.js +11 -4
- package/dist/tools/lib/clinical-benchmarks-client.d.ts +4 -4
- package/dist/tools/lib/clinical-benchmarks-client.js +4 -7
- package/dist/tools/lib/clinical-trials-client.d.ts +18 -18
- package/dist/tools/lib/clinical-trials-client.js +10 -10
- package/dist/tools/lib/clinvar-client.d.ts +2 -2
- package/dist/tools/lib/clinvar-client.js +6 -6
- package/dist/tools/lib/ctx-ops.d.ts +23 -23
- package/dist/tools/lib/ctx-ops.js +13 -10
- package/dist/tools/lib/dgidb-client.d.ts +6 -6
- package/dist/tools/lib/dgidb-client.js +10 -12
- package/dist/tools/lib/disgenet-client.d.ts +4 -4
- package/dist/tools/lib/ema-client.d.ts +2 -2
- package/dist/tools/lib/ensembl-client.d.ts +4 -4
- package/dist/tools/lib/ensembl-client.js +5 -4
- package/dist/tools/lib/gwas-catalog-client.d.ts +4 -4
- package/dist/tools/lib/gwas-catalog-client.js +17 -17
- package/dist/tools/lib/html-text.d.ts +6 -0
- package/dist/tools/lib/html-text.js +9 -0
- package/dist/tools/lib/identifier-resolver.d.ts +4 -4
- package/dist/tools/lib/identifier-resolver.js +7 -3
- package/dist/tools/lib/impc-client.d.ts +8 -8
- package/dist/tools/lib/impc-client.js +46 -35
- package/dist/tools/lib/iuphar-client.d.ts +2 -2
- package/dist/tools/lib/iuphar-client.js +7 -16
- package/dist/tools/lib/monarch-client.d.ts +4 -4
- package/dist/tools/lib/openfda-client.d.ts +22 -22
- package/dist/tools/lib/openfda-client.js +23 -22
- package/dist/tools/lib/opentargets-client.d.ts +12 -12
- package/dist/tools/lib/pathway-client.d.ts +4 -4
- package/dist/tools/lib/pathway-client.js +15 -19
- package/dist/tools/lib/pharmgkb-client.d.ts +2 -2
- package/dist/tools/lib/pharmgkb-client.js +1 -1
- package/dist/tools/lib/protein-family-modality.d.ts +2 -2
- package/dist/tools/lib/protein-family-modality.js +0 -2
- package/dist/tools/lib/protein-family-normalize.js +7 -0
- package/dist/tools/lib/pubchem-client.d.ts +2 -2
- package/dist/tools/lib/pubchem-client.js +1 -0
- package/dist/tools/lib/pubchem-ops.d.ts +4 -4
- package/dist/tools/lib/pubchem-ops.js +8 -0
- package/dist/tools/lib/pubmed-client.d.ts +9 -9
- package/dist/tools/lib/pubmed-client.js +1 -1
- package/dist/tools/lib/string-client.d.ts +6 -6
- package/dist/tools/lib/uniprot-client.d.ts +8 -8
- package/dist/tools/lib/uniprot-client.js +5 -1
- package/dist/tools/memory/update-working-memory.d.ts +16 -13
- package/dist/tools/memory/update-working-memory.js +21 -3
- package/dist/tools/read-tool-output.js +8 -2
- package/dist/tools/registry.d.ts +2 -2
- package/dist/tools/report-authoring/authoring-tools.d.ts +54 -23
- package/dist/tools/report-authoring/authoring-tools.js +128 -62
- package/dist/tools/report-session/derive-table.d.ts +19 -59
- package/dist/tools/report-session/derive-table.js +120 -122
- package/dist/tools/report-session/examine-page.d.ts +6 -6
- package/dist/tools/report-session/examine-page.js +14 -12
- package/dist/tools/report-session/list-artifacts.d.ts +6 -6
- package/dist/tools/report-session/list-artifacts.js +5 -5
- package/dist/tools/report-session/page-faults.d.ts +6 -6
- package/dist/tools/report-session/page-faults.js +3 -1
- package/dist/tools/report-session/preview-report.d.ts +4 -3
- package/dist/tools/report-session/preview-report.js +26 -7
- package/dist/tools/report-session/record-version.d.ts +9 -4
- package/dist/tools/report-session/record-version.js +16 -9
- package/dist/tools/report-session/session-page-publisher.d.ts +6 -6
- package/dist/tools/research/generate-analogy-report.d.ts +14 -7
- package/dist/tools/research/generate-analogy-report.js +80 -76
- package/dist/tools/research/generate-plan.d.ts +16 -16
- package/dist/tools/research/generate-plan.js +410 -374
- package/dist/tools/research/guarded-address.js +3 -2
- package/dist/tools/research/inspect-data-profile.d.ts +27 -20
- package/dist/tools/research/inspect-data-profile.js +26 -25
- package/dist/tools/research/inspect-run.d.ts +54 -27
- package/dist/tools/research/inspect-run.js +50 -40
- package/dist/tools/research/literature-reviewer.d.ts +8 -7
- package/dist/tools/research/literature-reviewer.js +29 -28
- package/dist/tools/research/search-arxiv.d.ts +1 -1
- package/dist/tools/research/search-arxiv.js +1 -1
- package/dist/tools/research/search-github-repos.d.ts +10 -7
- package/dist/tools/research/search-github-repos.js +25 -22
- package/dist/tools/research/search-semantic-scholar.js +1 -1
- package/dist/tools/research/searxng-engine.d.ts +2 -2
- package/dist/tools/research/searxng-engine.js +6 -4
- package/dist/tools/research/web-fetch.d.ts +24 -21
- package/dist/tools/research/web-fetch.js +65 -74
- package/dist/tools/research/web-search.d.ts +26 -17
- package/dist/tools/research/web-search.js +26 -21
- package/dist/tools/sandbox/link-packages.d.ts +11 -7
- package/dist/tools/sandbox/link-packages.js +11 -8
- package/dist/tools/sandbox/list-available-packages.d.ts +17 -8
- package/dist/tools/sandbox/list-available-packages.js +31 -25
- package/dist/tools/sandbox/list-available-refs.d.ts +17 -14
- package/dist/tools/sandbox/list-available-refs.js +61 -36
- package/dist/tools/sandbox/report-blocker.d.ts +30 -37
- package/dist/tools/sandbox/report-blocker.js +23 -73
- package/dist/tools/sandbox/skills.d.ts +16 -12
- package/dist/tools/sandbox/skills.js +16 -12
- package/dist/tools/sandbox/submit-file-metadata.d.ts +12 -9
- package/dist/tools/sandbox/submit-file-metadata.js +18 -21
- package/dist/tools/start-report-session.d.ts +13 -5
- package/dist/tools/start-report-session.js +35 -8
- package/dist/tools/terminal-text.d.ts +5 -2
- package/dist/tools/terminal-text.js +35 -3
- package/dist/tools/workspace/decision-record.d.ts +4 -4
- package/dist/tools/workspace/decision-record.js +23 -13
- package/dist/tools/workspace/edit-file.d.ts +59 -20
- package/dist/tools/workspace/edit-file.js +81 -16
- package/dist/tools/workspace/execute-command.d.ts +15 -13
- package/dist/tools/workspace/execute-command.js +11 -9
- package/dist/tools/workspace/file-stat.d.ts +6 -3
- package/dist/tools/workspace/grep.d.ts +10 -7
- package/dist/tools/workspace/grep.js +9 -3
- package/dist/tools/workspace/list-files.d.ts +6 -3
- package/dist/tools/workspace/mutator.d.ts +28 -15
- package/dist/tools/workspace/mutator.js +107 -53
- package/dist/tools/workspace/read-file.d.ts +8 -5
- package/dist/tools/workspace/result-bounds.d.ts +5 -5
- package/dist/tools/workspace/result-bounds.js +4 -2
- package/dist/tools/workspace/run-exec.d.ts +2 -2
- package/dist/tools/workspace/run-exec.js +3 -3
- package/dist/tools/workspace/scan-inputs.d.ts +8 -5
- package/dist/tools/workspace/scan-inputs.js +17 -5
- package/dist/tools/workspace/show-file.d.ts +1 -1
- package/dist/tools/workspace/show-file.js +2 -1
- package/dist/tools/workspace/show-plan.d.ts +8 -5
- package/dist/tools/workspace/show-plan.js +9 -8
- package/dist/tools/workspace/workspace-search.d.ts +41 -13
- package/dist/tools/workspace/workspace-search.js +27 -14
- package/dist/tools/workspace/write-file.d.ts +9 -7
- package/dist/workflows/execute-analysis-scheduler.d.ts +9 -9
- package/dist/workflows/execute-analysis-scheduler.js +6 -3
- package/dist/workflows/execute-analysis.d.ts +46 -62
- package/dist/workflows/execute-analysis.js +137 -219
- package/dist/workflows/pause.d.ts +71 -0
- package/dist/workflows/pause.js +173 -0
- package/dist/workflows/sandbox-step.d.ts +38 -61
- package/dist/workflows/sandbox-step.js +99 -106
- package/dist/workflows/test/sql-writes.d.ts +21 -0
- package/dist/workflows/test/sql-writes.js +36 -0
- package/dist/workspace/filesystem.d.ts +6 -6
- package/dist/workspace/filesystem.js +10 -8
- package/dist/workspace/paths.d.ts +1 -1
- package/dist/workspace/paths.js +15 -4
- package/dist/workspace/search-config.d.ts +2 -2
- package/dist/workspace/search-config.js +1 -1
- package/package.json +21 -22
- package/dist/loop/call-guard.d.ts +0 -50
- package/dist/loop/call-guard.js +0 -90
- package/dist/loop/continue-agent.d.ts +0 -40
- package/dist/loop/continue-agent.js +0 -38
- package/dist/loop/genai-spans.d.ts +0 -47
- package/dist/loop/genai-spans.js +0 -134
- package/dist/loop/run-agent.d.ts +0 -245
- package/dist/loop/run-agent.js +0 -1124
- package/dist/loop/run-step.d.ts +0 -29
- package/dist/loop/run-step.js +0 -34
- package/dist/loop/run-to-terminal.d.ts +0 -66
- package/dist/loop/run-to-terminal.js +0 -93
- package/dist/loop/tool-mask.d.ts +0 -23
- package/dist/loop/tool-mask.js +0 -46
- package/dist/providers/streaming-chat.d.ts +0 -32
- package/dist/providers/streaming-chat.js +0 -91
- package/dist/tasks/derive-table-exec.d.ts +0 -54
- package/dist/tasks/derive-table-exec.js +0 -86
- package/dist/workflows/suspension.d.ts +0 -32
- package/dist/workflows/suspension.js +0 -38
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The pause of durable work (work-pause spec).
|
|
3
|
+
*
|
|
4
|
+
* A failure that a person or time can repair does not fail the work. The workflow that meets it waits in its own
|
|
5
|
+
* body with `DBOS.recv`, on the topic of its pause, and the work goes on when the wait ends. The workflow stays
|
|
6
|
+
* active, thus a recovery after a crash replays it to the same wait: the failed call, the row, and the part of the
|
|
7
|
+
* pause come back from the checkpoints. A `recv` that completed replays its message, thus a resume never runs
|
|
8
|
+
* twice.
|
|
9
|
+
*
|
|
10
|
+
* A wait in `retrying` ends at its deadline, and the work sends the request again. A wait in `paused` ends only
|
|
11
|
+
* with the message of a resume, or with a stop. The server never sends that message by itself.
|
|
12
|
+
*/
|
|
13
|
+
import type { RunSession } from "../auth/types.js";
|
|
14
|
+
import type { PauseCause, WorkKind, PausePart } from "../contracts/chat-parts.js";
|
|
15
|
+
import type { RunAuthorizer } from "../execution/run-authorizer.js";
|
|
16
|
+
import type { Logger } from "../lib/logger.js";
|
|
17
|
+
import type { Querier } from "../state/db.js";
|
|
18
|
+
/** The delays of the timer of an outage: 1, 5, 15, and 30 minutes. After the last one, the work waits in `paused`. */
|
|
19
|
+
export declare const DEFAULT_PAUSE_RETRY_DELAYS_MS: readonly number[];
|
|
20
|
+
/** The message that ends a wait. */
|
|
21
|
+
export declare const RESUME_MESSAGE: {
|
|
22
|
+
readonly kind: "resume";
|
|
23
|
+
};
|
|
24
|
+
/** The message that moves a wait in `retrying` to `paused`: the work waits for a resume, and the timer stops. */
|
|
25
|
+
export declare const HOLD_MESSAGE: {
|
|
26
|
+
readonly kind: "hold";
|
|
27
|
+
};
|
|
28
|
+
/** The topic of the resume message of one pause. Each pause has its own topic, thus a late message never ends a later pause. */
|
|
29
|
+
export declare function pauseTopic(pauseId: string): string;
|
|
30
|
+
/** The cause of a pause in a failure, or `undefined` for a failure that no person or time can repair. */
|
|
31
|
+
export declare function pauseCauseOf(failure: unknown): PauseCause | undefined;
|
|
32
|
+
/** How a wait ended: the deadline of `retrying`, the message of a resume, or a stop of the work. */
|
|
33
|
+
export type PauseEnd = "retry" | "resume" | "abort";
|
|
34
|
+
/** The work that a pause belongs to, and where the part of the pause goes. */
|
|
35
|
+
export type PauseScope = {
|
|
36
|
+
readonly pool: Querier;
|
|
37
|
+
/** The turn id, the run id, or the id of the profile workflow. A sub-agent names its turn, and a step its run. */
|
|
38
|
+
readonly workId: string;
|
|
39
|
+
readonly workKind: WorkKind;
|
|
40
|
+
readonly analysisId: string;
|
|
41
|
+
readonly threadId?: string;
|
|
42
|
+
/** Writes the part of the pause to the stream of the work. */
|
|
43
|
+
readonly emit: (part: PausePart) => Promise<void>;
|
|
44
|
+
/** The delays of the timer of an outage. Absent: {@link DEFAULT_PAUSE_RETRY_DELAYS_MS}. */
|
|
45
|
+
readonly retryDelaysMs?: readonly number[];
|
|
46
|
+
/**
|
|
47
|
+
* The run credential of a run or a profile. A wait for a person suspends it, and the row keeps the run session
|
|
48
|
+
* for the renewal at the resume. Absent for a turn, whose credential comes with the person who resumes it.
|
|
49
|
+
*/
|
|
50
|
+
readonly run?: {
|
|
51
|
+
readonly session: RunSession;
|
|
52
|
+
readonly authorizer: RunAuthorizer;
|
|
53
|
+
};
|
|
54
|
+
readonly logger?: Logger;
|
|
55
|
+
};
|
|
56
|
+
export type WorkPause = {
|
|
57
|
+
/**
|
|
58
|
+
* Wait out a failure. `attempt` is the count of timer retries of this pause so far. `undefined`: the failure has
|
|
59
|
+
* no cause, or the code runs where no wait is possible, outside a workflow or inside a step.
|
|
60
|
+
*/
|
|
61
|
+
readonly afterFailure: (failure: unknown, attempt: number, signal?: AbortSignal) => Promise<PauseEnd | undefined>;
|
|
62
|
+
/** Wait out a cause, for example a gate refusal with the suspend flag. `undefined` where no wait is possible. */
|
|
63
|
+
readonly forCause: (cause: PauseCause, attempt: number, signal?: AbortSignal) => Promise<PauseEnd | undefined>;
|
|
64
|
+
};
|
|
65
|
+
/** The pause of the work of one workflow body. */
|
|
66
|
+
export declare function workPause(scope: PauseScope): WorkPause;
|
|
67
|
+
/**
|
|
68
|
+
* Wait out a gate refusal with the suspend flag, in the body of a workflow. The body calls the gate again after the
|
|
69
|
+
* wait. A gate inside a workflow body can always wait, thus no wait is a defect of the call site.
|
|
70
|
+
*/
|
|
71
|
+
export declare function pauseAtGate(pause: WorkPause, reason: string, signal?: AbortSignal): Promise<PauseEnd>;
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The pause of durable work (work-pause spec).
|
|
3
|
+
*
|
|
4
|
+
* A failure that a person or time can repair does not fail the work. The workflow that meets it waits in its own
|
|
5
|
+
* body with `DBOS.recv`, on the topic of its pause, and the work goes on when the wait ends. The workflow stays
|
|
6
|
+
* active, thus a recovery after a crash replays it to the same wait: the failed call, the row, and the part of the
|
|
7
|
+
* pause come back from the checkpoints. A `recv` that completed replays its message, thus a resume never runs
|
|
8
|
+
* twice.
|
|
9
|
+
*
|
|
10
|
+
* A wait in `retrying` ends at its deadline, and the work sends the request again. A wait in `paused` ends only
|
|
11
|
+
* with the message of a resume, or with a stop. The server never sends that message by itself.
|
|
12
|
+
*/
|
|
13
|
+
import { DBOS } from "@dbos-inc/dbos-sdk";
|
|
14
|
+
import { z } from "zod";
|
|
15
|
+
import { createNoopLogger } from "../lib/console-logger.js";
|
|
16
|
+
import { deliverNotice } from "../lib/hooks.js";
|
|
17
|
+
import { unwrapOrThrow } from "../lib/result.js";
|
|
18
|
+
import { isTurnCredentialMissing } from "../loop/turn-credentials.js";
|
|
19
|
+
import { modelFailureOf } from "../providers/errors.js";
|
|
20
|
+
import { clearPause, recordPause } from "../state/paused-work.js";
|
|
21
|
+
/** The delays of the timer of an outage: 1, 5, 15, and 30 minutes. After the last one, the work waits in `paused`. */
|
|
22
|
+
export const DEFAULT_PAUSE_RETRY_DELAYS_MS = [60_000, 300_000, 900_000, 1_800_000];
|
|
23
|
+
/**
|
|
24
|
+
* One wait of the state `paused`, in seconds. The wait loops on it. A stop in the process of the turn leaves its
|
|
25
|
+
* `recv` behind, and that `recv` polls no longer than this.
|
|
26
|
+
*/
|
|
27
|
+
const PAUSED_WAIT_SECONDS = 60 * 60;
|
|
28
|
+
/** The message that ends a wait. */
|
|
29
|
+
export const RESUME_MESSAGE = { kind: "resume" };
|
|
30
|
+
/** The message that moves a wait in `retrying` to `paused`: the work waits for a resume, and the timer stops. */
|
|
31
|
+
export const HOLD_MESSAGE = { kind: "hold" };
|
|
32
|
+
const ResumeMessageSchema = z.object({ kind: z.literal("resume") });
|
|
33
|
+
const HoldMessageSchema = z.object({ kind: z.literal("hold") });
|
|
34
|
+
/** The topic of the resume message of one pause. Each pause has its own topic, thus a late message never ends a later pause. */
|
|
35
|
+
export function pauseTopic(pauseId) {
|
|
36
|
+
return `pause:${pauseId}`;
|
|
37
|
+
}
|
|
38
|
+
/** The cause of a pause in a failure, or `undefined` for a failure that no person or time can repair. */
|
|
39
|
+
export function pauseCauseOf(failure) {
|
|
40
|
+
if (isTurnCredentialMissing(failure))
|
|
41
|
+
return { kind: "credential" };
|
|
42
|
+
const model = modelFailureOf(failure);
|
|
43
|
+
switch (model.kind) {
|
|
44
|
+
case "billing":
|
|
45
|
+
return { kind: "host", reason: model.reason };
|
|
46
|
+
case "credential":
|
|
47
|
+
return { kind: "credential" };
|
|
48
|
+
case "outage":
|
|
49
|
+
return { kind: "outage" };
|
|
50
|
+
case "other":
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
const STOPPED = Symbol("stopped");
|
|
55
|
+
/** Settles when the signal aborts, and never when there is no signal. */
|
|
56
|
+
function stopOf(signal) {
|
|
57
|
+
return new Promise((resolve) => {
|
|
58
|
+
if (signal === undefined)
|
|
59
|
+
return;
|
|
60
|
+
if (signal.aborted)
|
|
61
|
+
resolve(STOPPED);
|
|
62
|
+
else
|
|
63
|
+
signal.addEventListener("abort", () => resolve(STOPPED), { once: true });
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
async function waitForMessage(topic, delayMs, signal) {
|
|
67
|
+
const stopped = stopOf(signal);
|
|
68
|
+
if (delayMs !== undefined) {
|
|
69
|
+
// DBOS records the deadline of the timeout at the first call, thus a recovery waits until the same time.
|
|
70
|
+
const message = await Promise.race([DBOS.recv(topic, Math.ceil(delayMs / 1000)), stopped]);
|
|
71
|
+
if (message === STOPPED)
|
|
72
|
+
return "abort";
|
|
73
|
+
if (HoldMessageSchema.safeParse(message).success)
|
|
74
|
+
return "hold";
|
|
75
|
+
return ResumeMessageSchema.safeParse(message).success ? "resume" : "retry";
|
|
76
|
+
}
|
|
77
|
+
for (;;) {
|
|
78
|
+
const message = await Promise.race([DBOS.recv(topic, PAUSED_WAIT_SECONDS), stopped]);
|
|
79
|
+
if (message === STOPPED)
|
|
80
|
+
return "abort";
|
|
81
|
+
if (ResumeMessageSchema.safeParse(message).success)
|
|
82
|
+
return "resume";
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/** The pause of the work of one workflow body. */
|
|
86
|
+
export function workPause(scope) {
|
|
87
|
+
const log = (scope.logger ?? createNoopLogger()).named("pause");
|
|
88
|
+
const delays = scope.retryDelaysMs ?? DEFAULT_PAUSE_RETRY_DELAYS_MS;
|
|
89
|
+
const forCause = async (cause, attempt, signal) => {
|
|
90
|
+
const workflowId = DBOS.workflowID;
|
|
91
|
+
if (!DBOS.isInWorkflow() || DBOS.isInStep() || workflowId === undefined)
|
|
92
|
+
return undefined;
|
|
93
|
+
if (signal?.aborted === true)
|
|
94
|
+
return "abort";
|
|
95
|
+
const delayMs = cause.kind === "outage" ? delays[attempt] : undefined;
|
|
96
|
+
const state = delayMs === undefined ? "paused" : "retrying";
|
|
97
|
+
const pauseId = await DBOS.randomUUID();
|
|
98
|
+
const pausedAt = await DBOS.now();
|
|
99
|
+
const retryAt = delayMs === undefined ? undefined : new Date(pausedAt + delayMs).toISOString();
|
|
100
|
+
const topic = pauseTopic(pauseId);
|
|
101
|
+
const work = { workId: scope.workId, workKind: scope.workKind };
|
|
102
|
+
await DBOS.runStep(async () => unwrapOrThrow(await recordPause(scope.pool, {
|
|
103
|
+
workflowId,
|
|
104
|
+
...work,
|
|
105
|
+
analysisId: scope.analysisId,
|
|
106
|
+
threadId: scope.threadId,
|
|
107
|
+
state,
|
|
108
|
+
cause,
|
|
109
|
+
attempt,
|
|
110
|
+
retryAt,
|
|
111
|
+
topic,
|
|
112
|
+
pausedAt: new Date(pausedAt).toISOString(),
|
|
113
|
+
runSession: scope.run?.session,
|
|
114
|
+
})), { name: "pause.record" });
|
|
115
|
+
// Only a person ends a wait in `paused`, thus the credential stops until the renewal of the resume.
|
|
116
|
+
const suspendCredential = async (stepName) => {
|
|
117
|
+
const run = scope.run;
|
|
118
|
+
if (run === undefined)
|
|
119
|
+
return;
|
|
120
|
+
await DBOS.runStep(() => deliverNotice(log.with({ workflowId }), "RunAuthorizer.suspend", run.authorizer.suspend(run.session, `paused:${cause.kind}`)), { name: stepName });
|
|
121
|
+
};
|
|
122
|
+
if (state === "paused")
|
|
123
|
+
await suspendCredential("pause.suspend");
|
|
124
|
+
await scope.emit({ type: "data-pause", id: workflowId, ...work, state, cause, attempt, retryAt });
|
|
125
|
+
log.warn("work paused", { workflowId, ...work, state, cause: cause.kind, attempt });
|
|
126
|
+
const waited = await waitForMessage(topic, delayMs, signal);
|
|
127
|
+
let end;
|
|
128
|
+
if (waited === "hold") {
|
|
129
|
+
// A person held the work: the timer stops, and the work waits for a resume.
|
|
130
|
+
await DBOS.runStep(async () => unwrapOrThrow(await recordPause(scope.pool, {
|
|
131
|
+
workflowId,
|
|
132
|
+
...work,
|
|
133
|
+
analysisId: scope.analysisId,
|
|
134
|
+
threadId: scope.threadId,
|
|
135
|
+
state: "paused",
|
|
136
|
+
cause,
|
|
137
|
+
attempt,
|
|
138
|
+
topic,
|
|
139
|
+
pausedAt: new Date(pausedAt).toISOString(),
|
|
140
|
+
runSession: scope.run?.session,
|
|
141
|
+
})), { name: "pause.hold" });
|
|
142
|
+
await suspendCredential("pause.hold.suspend");
|
|
143
|
+
await scope.emit({ type: "data-pause", id: workflowId, ...work, state: "paused", cause, attempt });
|
|
144
|
+
log.info("work held", { workflowId, ...work, attempt });
|
|
145
|
+
const held = await waitForMessage(topic, undefined, signal);
|
|
146
|
+
end = held === "hold" ? "resume" : held;
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
end = waited;
|
|
150
|
+
}
|
|
151
|
+
await DBOS.runStep(async () => unwrapOrThrow(await clearPause(scope.pool, workflowId)), { name: "pause.clear" });
|
|
152
|
+
await scope.emit({ type: "data-pause", id: workflowId, ...work, state: "running" });
|
|
153
|
+
log.info("pause ended", { workflowId, ...work, end });
|
|
154
|
+
return end;
|
|
155
|
+
};
|
|
156
|
+
return {
|
|
157
|
+
afterFailure: async (failure, attempt, signal) => {
|
|
158
|
+
const cause = pauseCauseOf(failure);
|
|
159
|
+
return cause === undefined ? undefined : forCause(cause, attempt, signal);
|
|
160
|
+
},
|
|
161
|
+
forCause,
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Wait out a gate refusal with the suspend flag, in the body of a workflow. The body calls the gate again after the
|
|
166
|
+
* wait. A gate inside a workflow body can always wait, thus no wait is a defect of the call site.
|
|
167
|
+
*/
|
|
168
|
+
export async function pauseAtGate(pause, reason, signal) {
|
|
169
|
+
const end = await pause.forCause({ kind: "host", reason }, 0, signal);
|
|
170
|
+
if (end === undefined)
|
|
171
|
+
throw new Error("A gate refusal with the suspend flag cannot wait outside the body of a workflow.");
|
|
172
|
+
return end;
|
|
173
|
+
}
|
|
@@ -7,10 +7,10 @@
|
|
|
7
7
|
*
|
|
8
8
|
* 1. `mark-running` — update `cortex_step_executions` to running.
|
|
9
9
|
* 2. `createSandbox` — provision the sandbox; persist its handle.
|
|
10
|
-
* 3. `
|
|
11
|
-
* call inside is its own
|
|
12
|
-
* 4. `generateFileMetadata`— the file-metadata
|
|
13
|
-
* 5. `generateStepSummary` — the summary
|
|
10
|
+
* 3. `runLoop` — the harness agent loop. Every model call and
|
|
11
|
+
* tool call inside is its own durable step.
|
|
12
|
+
* 4. `generateFileMetadata`— the file-metadata follow-up request of the step agent.
|
|
13
|
+
* 5. `generateStepSummary` — the summary follow-up request of the step agent,
|
|
14
14
|
* producing `output/summary.md`.
|
|
15
15
|
* 6. `reconcile + register`— write artifact manifest entries to cortex_artifacts.
|
|
16
16
|
* 7. `syncArtifacts` — register provenance + upload missing file_ids
|
|
@@ -20,22 +20,22 @@
|
|
|
20
20
|
* 10. `mark-terminal` — write the final status, emit `data-step-activity`
|
|
21
21
|
* onto the parent's DBOS stream.
|
|
22
22
|
*
|
|
23
|
-
* The parent owns sibling lifecycle
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
* `CHILD_SUSPENDED_TOPIC`, and self-cancels to CANCELLED (resumable, not ERROR).
|
|
23
|
+
* The parent owns sibling lifecycle. This child owns its own teardown and its
|
|
24
|
+
* own pause (work-pause spec): a failed model request of the agent loop with a
|
|
25
|
+
* cause of a pause, or a refusal with the suspend flag of the label gate or the
|
|
26
|
+
* register gate. The child waits in place, and the run row stays `running`. The
|
|
27
|
+
* other steps go on, and each one pauses at its own failure.
|
|
29
28
|
*/
|
|
30
29
|
import type { TokenUsageRollup } from "@inflexa-ai/harness/contracts/usage.js";
|
|
31
|
-
import type {
|
|
30
|
+
import type { Querier } from "../state/db.js";
|
|
32
31
|
import type { Logger } from "../lib/logger.js";
|
|
33
32
|
import type { UsageRecorder } from "../billing/usage-recorder.js";
|
|
34
33
|
import type { CitationResolver } from "../citations/types.js";
|
|
35
34
|
import type { AgentDefinition, LoopMessage } from "../loop/types.js";
|
|
36
35
|
import { type ToolOutputStore } from "../loop/tool-output.js";
|
|
37
|
-
import type {
|
|
36
|
+
import type { ChatProvider, EmbeddingProvider } from "../providers/types.js";
|
|
38
37
|
import { type RunSession, type SpawnSession } from "../auth/types.js";
|
|
38
|
+
import type { RunAuthorizer } from "../execution/run-authorizer.js";
|
|
39
39
|
import type { FileMetadataEntry } from "../execution/artifact-metadata.js";
|
|
40
40
|
import type { ArtifactManifestEntry } from "../schemas/artifact-manifest.js";
|
|
41
41
|
import type { StepSummary } from "../schemas/step-summary.js";
|
|
@@ -47,14 +47,13 @@ import { type StepFileMetadata } from "../execution/post-step-pipeline.js";
|
|
|
47
47
|
import type { ResourceSpec } from "../config/resource-limits.js";
|
|
48
48
|
import type { SandboxRef } from "../sandbox/types.js";
|
|
49
49
|
import { ProvenanceCollector } from "../provenance/collector.js";
|
|
50
|
-
import { type BlockerHolder } from "../tools/sandbox/report-blocker.js";
|
|
51
50
|
import { type FileMetadataCell } from "../tools/sandbox/submit-file-metadata.js";
|
|
52
51
|
import type { TemplateBinding } from "../tools/knowledge/template.js";
|
|
53
52
|
/**
|
|
54
53
|
* Input the parent hands the child. Must be JSON-serialisable — DBOS
|
|
55
54
|
* persists this as the workflow's input row.
|
|
56
55
|
*/
|
|
57
|
-
export
|
|
56
|
+
export type SandboxStepInput = {
|
|
58
57
|
readonly analysisId: string;
|
|
59
58
|
readonly runId: string;
|
|
60
59
|
readonly stepId: string;
|
|
@@ -86,15 +85,6 @@ export interface SandboxStepInput {
|
|
|
86
85
|
readonly level: number;
|
|
87
86
|
/** User-content prompt the agent receives as its initial message. */
|
|
88
87
|
readonly prompt: string;
|
|
89
|
-
/**
|
|
90
|
-
* DBOS workflow id of the parent (`executeAnalysis`). The child uses
|
|
91
|
-
* this to address the parent for its typed suspension
|
|
92
|
-
* (`DBOS.send(parent, …, CHILD_SUSPENDED_TOPIC)`) — the parent's
|
|
93
|
-
* scheduler-loop classifier relies on it to disambiguate a suspension
|
|
94
|
-
* self-cancel from an operator-driven sibling cancel (CANCELLED is the
|
|
95
|
-
* same terminal state for both).
|
|
96
|
-
*/
|
|
97
|
-
readonly parentWorkflowId: string;
|
|
98
88
|
/** Sandbox image override; falls back to the child's configured default. */
|
|
99
89
|
readonly image?: string;
|
|
100
90
|
/** Per-step env overrides forwarded to sandbox-server. */
|
|
@@ -115,7 +105,7 @@ export interface SandboxStepInput {
|
|
|
115
105
|
* from `cortex_runs`.
|
|
116
106
|
*/
|
|
117
107
|
readonly runSession: SpawnSession;
|
|
118
|
-
}
|
|
108
|
+
};
|
|
119
109
|
/**
|
|
120
110
|
* Fallback when the plan step omits `timeout`. Plans that need 3-hour runs
|
|
121
111
|
* declare it explicitly.
|
|
@@ -128,21 +118,7 @@ export declare const DEFAULT_STEP_TIMEOUT_SECONDS = 3600;
|
|
|
128
118
|
*/
|
|
129
119
|
export declare const CAPPED_OUT_EMPTY_REASON = "The step hit its iteration cap with no output files persisted.";
|
|
130
120
|
export type SandboxStepStatus = "complete" | "failed" | "canceled" | "blocked";
|
|
131
|
-
|
|
132
|
-
* DBOS message topic the child uses to tell the parent that it suspends. The
|
|
133
|
-
* message goes BEFORE `DBOS.cancelWorkflow(self)`, thus the parent's recv
|
|
134
|
-
* accumulator records the child before the child's terminal state lands.
|
|
135
|
-
* Without it the parent observes only `DBOSWorkflowCancelledError` from
|
|
136
|
-
* `getResult`, and it cannot tell a suspension from a cancel.
|
|
137
|
-
*/
|
|
138
|
-
export declare const CHILD_SUSPENDED_TOPIC = "child-suspended";
|
|
139
|
-
export interface ChildSuspended {
|
|
140
|
-
readonly kind: "suspended";
|
|
141
|
-
readonly childWorkflowId: string;
|
|
142
|
-
readonly stepId: string;
|
|
143
|
-
readonly reason: string;
|
|
144
|
-
}
|
|
145
|
-
export interface SandboxStepResult {
|
|
121
|
+
export type SandboxStepResult = {
|
|
146
122
|
readonly status: SandboxStepStatus;
|
|
147
123
|
readonly durationMs: number;
|
|
148
124
|
readonly finishReason: string | null;
|
|
@@ -158,27 +134,27 @@ export interface SandboxStepResult {
|
|
|
158
134
|
* result shape recovers without it.
|
|
159
135
|
*/
|
|
160
136
|
readonly usage?: TokenUsageRollup;
|
|
161
|
-
}
|
|
137
|
+
};
|
|
162
138
|
/** One file in the step's terminal file tree / output listing. */
|
|
163
|
-
export
|
|
139
|
+
export type StepFileEntry = {
|
|
164
140
|
readonly path: string;
|
|
165
141
|
readonly size: number;
|
|
166
142
|
/** Schema-conformant `StepOutputFile.fileType`. */
|
|
167
143
|
readonly fileType: "script" | "output" | "figure" | "log" | "notebook" | "summary";
|
|
168
144
|
readonly description: string;
|
|
169
|
-
}
|
|
145
|
+
};
|
|
170
146
|
/**
|
|
171
147
|
* Post-step detail the body emits to the run stream once the bookkeeping
|
|
172
148
|
* helpers have run. Derived from the metadata entries, the generated step
|
|
173
149
|
* summary, and the reconciled artifact manifest. `collectStepOutputs`
|
|
174
150
|
* assembles it from the same stash the vector-index step consumes.
|
|
175
151
|
*/
|
|
176
|
-
export
|
|
152
|
+
export type StepOutputs = {
|
|
177
153
|
/** Reconciled artifact files with category + description + size. */
|
|
178
154
|
readonly files: readonly StepFileEntry[];
|
|
179
155
|
/** Generated step summary markdown (empty when none produced). */
|
|
180
156
|
readonly summaryMarkdown: string;
|
|
181
|
-
}
|
|
157
|
+
};
|
|
182
158
|
/**
|
|
183
159
|
* The typed post-step products threaded through the workflow body: file
|
|
184
160
|
* descriptions, the interpretive summary, and the reconciled (phantom-dropped)
|
|
@@ -187,17 +163,17 @@ export interface StepOutputs {
|
|
|
187
163
|
* composition, so the producer→consumer ordering is a type constraint rather
|
|
188
164
|
* than an implicit contract over shared mutable state.
|
|
189
165
|
*/
|
|
190
|
-
export
|
|
166
|
+
export type PostStepArtifacts = {
|
|
191
167
|
readonly metadataEntries: readonly FileMetadataEntry[];
|
|
192
168
|
readonly summary: StepSummary | undefined;
|
|
193
169
|
readonly reconciledManifest: readonly ArtifactManifestEntry[];
|
|
194
|
-
}
|
|
170
|
+
};
|
|
195
171
|
/**
|
|
196
172
|
* Per-step coordinates the workflow body computes once and threads to the
|
|
197
173
|
* deps factory. The parent supplies the durable inputs; the factory
|
|
198
174
|
* supplies the live sandbox ref and the deadline.
|
|
199
175
|
*/
|
|
200
|
-
export
|
|
176
|
+
export type SandboxAgentBuildContext = {
|
|
201
177
|
readonly input: SandboxStepInput;
|
|
202
178
|
readonly session: RunSession;
|
|
203
179
|
readonly sandbox: SandboxRef;
|
|
@@ -210,11 +186,8 @@ export interface SandboxAgentBuildContext {
|
|
|
210
186
|
* input/script edges). Same instance on both paths.
|
|
211
187
|
*/
|
|
212
188
|
readonly lineageCollector: ProvenanceCollector;
|
|
213
|
-
/**
|
|
214
|
-
|
|
215
|
-
* blocker read from the transcript and falls back to this cell.
|
|
216
|
-
*/
|
|
217
|
-
readonly blockerHolder: BlockerHolder;
|
|
189
|
+
/** The step agent declares `report_blocker`, and the body selects the blocker from the recorded calls. */
|
|
190
|
+
readonly reportsBlocker: true;
|
|
218
191
|
/**
|
|
219
192
|
* Cell for the file-metadata continuation. `submit_file_metadata` is
|
|
220
193
|
* declared up front for prefix stability but masked until then.
|
|
@@ -224,15 +197,15 @@ export interface SandboxAgentBuildContext {
|
|
|
224
197
|
readonly citationResolver: CitationResolver;
|
|
225
198
|
/** Give it to `SandboxAgentDeps.toolOutputStore`: each loop of the step keeps its texts in it. */
|
|
226
199
|
readonly toolOutputStore?: ToolOutputStore;
|
|
227
|
-
}
|
|
200
|
+
};
|
|
228
201
|
/**
|
|
229
202
|
* Inversion of control: the parent supplies the live agent, the parent's
|
|
230
203
|
* stream emitter, and the post-step helpers. Keeping the workflow body
|
|
231
204
|
* free of per-agent imports means it can drive every agent in the catalog
|
|
232
205
|
* without becoming a switch on agentId.
|
|
233
206
|
*/
|
|
234
|
-
export
|
|
235
|
-
readonly pool:
|
|
207
|
+
export type SandboxStepDeps = {
|
|
208
|
+
readonly pool: Querier;
|
|
236
209
|
/**
|
|
237
210
|
* Operational logging seam. Omit it and the body falls back to a no-op —
|
|
238
211
|
* but a failed step's cause is written here and NOWHERE else (`failStep`
|
|
@@ -250,8 +223,8 @@ export interface SandboxStepDeps {
|
|
|
250
223
|
readonly toolOutputStore?: ToolOutputStore;
|
|
251
224
|
/** Shared resolver threaded from `assembleCoreRuntime`. */
|
|
252
225
|
readonly citationResolver: CitationResolver;
|
|
253
|
-
/**
|
|
254
|
-
readonly provider:
|
|
226
|
+
/** Drives the agent loop and the post-step follow-up requests. */
|
|
227
|
+
readonly provider: ChatProvider;
|
|
255
228
|
/** Write-side embedder for the post-step vector index. */
|
|
256
229
|
readonly embedding: EmbeddingProvider;
|
|
257
230
|
readonly sandboxClient: SandboxClient;
|
|
@@ -261,6 +234,10 @@ export interface SandboxStepDeps {
|
|
|
261
234
|
* cloud-free build, external provenance ledger in the managed build).
|
|
262
235
|
*/
|
|
263
236
|
readonly artifactRegistry: ArtifactRegistry;
|
|
237
|
+
/** The delays of the timer of an outage. Absent: the default of the pause. */
|
|
238
|
+
readonly pauseRetryDelaysMs?: readonly number[];
|
|
239
|
+
/** The run authorizer of the runtime. A pause of the step for a person suspends the run credential through it. */
|
|
240
|
+
readonly runAuthorizer: RunAuthorizer;
|
|
264
241
|
/**
|
|
265
242
|
* No longer read by the step body; kept because `src/index.ts` exports
|
|
266
243
|
* this type and an embedder builds it as an object literal.
|
|
@@ -273,7 +250,7 @@ export interface SandboxStepDeps {
|
|
|
273
250
|
/**
|
|
274
251
|
* Build the agent definition for this step. The parent resolves the
|
|
275
252
|
* agent from the catalog, wires its workspace tools, and returns the
|
|
276
|
-
* configured `AgentDefinition`
|
|
253
|
+
* configured `AgentDefinition` that `runLoop` will drive.
|
|
277
254
|
*/
|
|
278
255
|
buildAgent(ctx: SandboxAgentBuildContext): Promise<AgentDefinition>;
|
|
279
256
|
/**
|
|
@@ -281,7 +258,7 @@ export interface SandboxStepDeps {
|
|
|
281
258
|
* workspace mutate tools enforce write confinement against this path.
|
|
282
259
|
*/
|
|
283
260
|
resolveWritePrefix(input: SandboxStepInput): Promise<string>;
|
|
284
|
-
}
|
|
261
|
+
};
|
|
285
262
|
/**
|
|
286
263
|
* Per-step context passed to every post-step dep. Carries the durable input
|
|
287
264
|
* (analysisId/runId/stepId/agentId), the durable `RunSession`, the in-memory
|
|
@@ -290,7 +267,7 @@ export interface SandboxStepDeps {
|
|
|
290
267
|
* `lineageCollector` carries the runtime-observed input/script edges the
|
|
291
268
|
* step loop accumulated, which registration translates into managed-root parents.
|
|
292
269
|
*/
|
|
293
|
-
export
|
|
270
|
+
export type PostStepContext = {
|
|
294
271
|
readonly input: SandboxStepInput;
|
|
295
272
|
readonly session: RunSession;
|
|
296
273
|
readonly transcript: readonly LoopMessage[];
|
|
@@ -304,7 +281,7 @@ export interface PostStepContext {
|
|
|
304
281
|
readonly sandboxId: string;
|
|
305
282
|
/** Same step-scoped collector the agent loop fed each exec frame into. */
|
|
306
283
|
readonly lineageCollector: ProvenanceCollector;
|
|
307
|
-
}
|
|
284
|
+
};
|
|
308
285
|
/** Normalizes a pre-`messages` checkpoint (a bare entries array) for replay. */
|
|
309
286
|
export declare function readStepFileMetadata(checkpoint: StepFileMetadata | readonly FileMetadataEntry[]): StepFileMetadata;
|
|
310
287
|
/**
|