@wardby/cli 0.5.3 → 0.7.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/.env.example +33 -0
- package/README.md +25 -14
- package/deploy/local/docker-compose.quickstart-coding.yml +13 -0
- package/dist/claude-coding-worker/context.d.ts +22 -0
- package/dist/claude-coding-worker/context.js +92 -0
- package/dist/claude-coding-worker/driver.d.ts +27 -3
- package/dist/claude-coding-worker/driver.js +161 -20
- package/dist/claude-coding-worker/main.js +34 -6
- package/dist/claude-coding-worker/sdk.js +25 -5
- package/dist/claude-coding-worker/tool-socket.d.ts +27 -0
- package/dist/claude-coding-worker/tool-socket.js +111 -0
- package/dist/claude-coding-worker/transcript.d.ts +18 -0
- package/dist/claude-coding-worker/transcript.js +77 -0
- package/dist/cli-help.d.ts +1 -1
- package/dist/cli-help.js +6 -2
- package/dist/cli-native-mode.d.ts +9 -0
- package/dist/cli-native-mode.js +20 -0
- package/dist/cli.d.ts +3 -1
- package/dist/cli.js +161 -11
- package/dist/coding/claude-context.d.ts +45 -0
- package/dist/coding/claude-context.js +434 -0
- package/dist/coding/continuation-wording.d.ts +35 -0
- package/dist/coding/continuation-wording.js +73 -0
- package/dist/coding/linked-issue-note.d.ts +23 -0
- package/dist/coding/linked-issue-note.js +47 -0
- package/dist/coding/merge-wording.d.ts +28 -0
- package/dist/coding/merge-wording.js +78 -0
- package/dist/coding/pr-description-note.d.ts +9 -0
- package/dist/coding/pr-description-note.js +32 -0
- package/dist/coding/profile.d.ts +50 -118
- package/dist/coding/profile.js +51 -4
- package/dist/coding/protected-path-wording.d.ts +8 -0
- package/dist/coding/protected-path-wording.js +1 -1
- package/dist/coding/protocol.d.ts +292 -270
- package/dist/coding/protocol.js +322 -15
- package/dist/coding/redact.d.ts +3 -0
- package/dist/coding/redact.js +12 -0
- package/dist/coding/registry/allowlist.d.ts +12 -0
- package/dist/coding/registry/allowlist.js +14 -1
- package/dist/coding/registry/audit-mode.d.ts +153 -0
- package/dist/coding/registry/audit-mode.js +304 -0
- package/dist/coding/registry/lockfile-shared.d.ts +36 -0
- package/dist/coding/registry/lockfile-shared.js +128 -0
- package/dist/coding/registry/lockfiles.js +1 -1
- package/dist/coding/registry/npm-lockfile-formats.d.ts +11 -0
- package/dist/coding/registry/npm-lockfile-formats.js +41 -0
- package/dist/coding/registry/npm-lockfile.d.ts +8 -4
- package/dist/coding/registry/npm-lockfile.js +4 -6
- package/dist/coding/registry/npm.js +78 -8
- package/dist/coding/registry/pnpm-lockfile.d.ts +17 -0
- package/dist/coding/registry/pnpm-lockfile.js +189 -0
- package/dist/coding/registry/pypi-plan.d.ts +50 -0
- package/dist/coding/registry/pypi-plan.js +406 -0
- package/dist/coding/registry/pypi-requirements.d.ts +58 -0
- package/dist/coding/registry/pypi-requirements.js +155 -0
- package/dist/coding/registry/pypi.d.ts +3 -27
- package/dist/coding/registry/pypi.js +40 -154
- package/dist/coding/registry/refusal-hints.d.ts +20 -0
- package/dist/coding/registry/refusal-hints.js +61 -0
- package/dist/coding/registry/refusal-wording.d.ts +11 -0
- package/dist/coding/registry/refusal-wording.js +56 -0
- package/dist/coding/registry/report.d.ts +70 -8
- package/dist/coding/registry/report.js +112 -5
- package/dist/coding/registry/types.d.ts +58 -8
- package/dist/coding/registry/yarn-lockfile.d.ts +30 -0
- package/dist/coding/registry/yarn-lockfile.js +367 -0
- package/dist/coding/services/catalog.d.ts +37 -351
- package/dist/coding/transcript/claude-code.d.ts +13 -0
- package/dist/coding/transcript/claude-code.js +273 -0
- package/dist/coding/transcript/download-protocol.d.ts +30 -0
- package/dist/coding/transcript/download-protocol.js +18 -0
- package/dist/coding/transcript/format.d.ts +20 -0
- package/dist/coding/transcript/format.js +32 -0
- package/dist/coding/transcript/recorder.d.ts +51 -0
- package/dist/coding/transcript/recorder.js +225 -0
- package/dist/coding/transcript/resume/checkout.d.ts +31 -0
- package/dist/coding/transcript/resume/checkout.js +203 -0
- package/dist/coding/transcript/resume/command.d.ts +17 -0
- package/dist/coding/transcript/resume/command.js +176 -0
- package/dist/coding/transcript/resume/download.d.ts +20 -0
- package/dist/coding/transcript/resume/download.js +153 -0
- package/dist/coding/transcript/resume/launch.d.ts +38 -0
- package/dist/coding/transcript/resume/launch.js +128 -0
- package/dist/coding/transcript/resume/session-file.d.ts +13 -0
- package/dist/coding/transcript/resume/session-file.js +79 -0
- package/dist/coding/transcript/resume/stand-in.d.ts +11 -0
- package/dist/coding/transcript/resume/stand-in.js +49 -0
- package/dist/coding-worker/artifact.d.ts +16 -3
- package/dist/coding-worker/artifact.js +5 -3
- package/dist/coding-worker/debug-trace.d.ts +6 -5
- package/dist/coding-worker/debug-trace.js +13 -18
- package/dist/coding-worker/dependency-cache.d.mts +229 -0
- package/dist/coding-worker/dependency-cache.mjs +2123 -0
- package/dist/coding-worker/driver.d.ts +4 -3
- package/dist/coding-worker/driver.js +118 -38
- package/dist/coding-worker/errors.d.ts +1 -0
- package/dist/coding-worker/errors.js +32 -0
- package/dist/coding-worker/sdk.d.ts +6 -0
- package/dist/coding-worker/sdk.js +1 -0
- package/dist/coding-worker/skills.d.ts +23 -0
- package/dist/coding-worker/skills.js +117 -0
- package/dist/coding-worker/task-note.d.ts +11 -0
- package/dist/coding-worker/task-note.js +13 -0
- package/dist/coding-worker/types.d.ts +13 -0
- package/dist/config/dependency-cache.d.ts +23 -0
- package/dist/config/dependency-cache.js +32 -0
- package/dist/config/github-allowed-accounts.d.ts +15 -0
- package/dist/config/github-allowed-accounts.js +36 -0
- package/dist/config/low-power.d.ts +12 -0
- package/dist/config/low-power.js +18 -0
- package/dist/config/mobile.d.ts +12 -0
- package/dist/config/mobile.js +18 -0
- package/dist/config/providers.d.ts +65 -3
- package/dist/config/providers.js +147 -11
- package/dist/config/test-simulators.d.ts +82 -0
- package/dist/config/test-simulators.js +305 -0
- package/dist/core/async-context.d.ts +2 -0
- package/dist/core/async-context.js +12 -0
- package/dist/core/budget-events.d.ts +108 -0
- package/dist/core/budget-events.js +346 -0
- package/dist/core/budget-groups.d.ts +50 -1
- package/dist/core/budget-groups.js +236 -27
- package/dist/core/budget-stopped-head.d.ts +46 -0
- package/dist/core/budget-stopped-head.js +81 -0
- package/dist/core/budget-topup.d.ts +51 -0
- package/dist/core/budget-topup.js +156 -0
- package/dist/core/budget-wording.d.ts +16 -2
- package/dist/core/budget-wording.js +40 -2
- package/dist/core/coding-queue.d.ts +2 -1
- package/dist/core/coding-queue.js +7 -0
- package/dist/core/cron.d.ts +19 -1
- package/dist/core/cron.js +17 -0
- package/dist/core/datastores.js +1 -1
- package/dist/core/db.d.ts +16 -6
- package/dist/core/db.js +12 -10
- package/dist/core/deferred-coding.d.ts +14 -0
- package/dist/core/deferred-coding.js +62 -0
- package/dist/core/delegation-child.d.ts +25 -0
- package/dist/core/delegation-child.js +37 -0
- package/dist/core/dispatch.d.ts +53 -0
- package/dist/core/dispatch.js +167 -57
- package/dist/core/engine-native.js +10 -6
- package/dist/core/error-code.d.ts +38 -0
- package/dist/core/error-code.js +168 -0
- package/dist/core/grants.d.ts +19 -6
- package/dist/core/grants.js +55 -6
- package/dist/core/host-events.d.ts +67 -5
- package/dist/core/host-events.js +571 -37
- package/dist/core/host-status.d.ts +85 -3
- package/dist/core/host-status.js +298 -20
- package/dist/core/issue-bridge.d.ts +50 -6
- package/dist/core/issue-bridge.js +151 -20
- package/dist/core/issue-events.d.ts +1 -1
- package/dist/core/issue-events.js +16 -11
- package/dist/core/issue-status.d.ts +1 -1
- package/dist/core/issue-status.js +68 -29
- package/dist/core/logger.d.ts +5 -0
- package/dist/core/logger.js +14 -1
- package/dist/core/lost-run-children.d.ts +6 -0
- package/dist/core/lost-run-children.js +32 -0
- package/dist/core/mark-ready.d.ts +34 -0
- package/dist/core/mark-ready.js +152 -0
- package/dist/core/markdown-code.d.ts +8 -0
- package/dist/core/markdown-code.js +107 -0
- package/dist/core/memory-tools.js +7 -0
- package/dist/core/merge-order-check.d.ts +130 -0
- package/dist/core/merge-order-check.js +343 -0
- package/dist/core/notification-dispatcher.d.ts +70 -0
- package/dist/core/notification-dispatcher.js +368 -0
- package/dist/core/notification-templates.d.ts +19 -0
- package/dist/core/notification-templates.js +139 -0
- package/dist/core/notifications.d.ts +10 -0
- package/dist/core/notifications.js +38 -0
- package/dist/core/pg-auth.d.ts +22 -0
- package/dist/core/pg-auth.js +152 -0
- package/dist/core/power-composition.d.ts +16 -0
- package/dist/core/power-composition.js +37 -0
- package/dist/core/power-idle.d.ts +14 -0
- package/dist/core/power-idle.js +30 -0
- package/dist/core/power.d.ts +71 -0
- package/dist/core/power.js +202 -0
- package/dist/core/pull-request-state-sync.js +2 -2
- package/dist/core/reconciler.d.ts +8 -5
- package/dist/core/reconciler.js +37 -6
- package/dist/core/related-pull-requests.d.ts +59 -7
- package/dist/core/related-pull-requests.js +140 -25
- package/dist/core/reply-parts.d.ts +21 -0
- package/dist/core/reply-parts.js +73 -0
- package/dist/core/repo-access.d.ts +15 -0
- package/dist/core/repo-access.js +66 -0
- package/dist/core/review-fix.d.ts +38 -1
- package/dist/core/review-fix.js +209 -7
- package/dist/core/review-host-checks.d.ts +1 -1
- package/dist/core/review-host-tools.d.ts +23 -0
- package/dist/core/review-host-tools.js +156 -14
- package/dist/core/review-reads.d.ts +55 -0
- package/dist/core/review-reads.js +233 -0
- package/dist/core/run-status.d.ts +12 -0
- package/dist/core/run-status.js +12 -0
- package/dist/core/runner.d.ts +384 -5
- package/dist/core/runner.js +1244 -372
- package/dist/core/schedule-start.d.ts +12 -0
- package/dist/core/schedule-start.js +14 -0
- package/dist/core/secret-broker-config.d.ts +39 -0
- package/dist/core/secret-broker-config.js +112 -0
- package/dist/core/secret-guard.d.ts +46 -0
- package/dist/core/secret-guard.js +104 -0
- package/dist/core/secret-guarded-stores.d.ts +12 -0
- package/dist/core/secret-guarded-stores.js +41 -0
- package/dist/core/secret-spans.d.ts +50 -0
- package/dist/core/secret-spans.js +94 -0
- package/dist/core/secrets.d.ts +39 -4
- package/dist/core/secrets.js +148 -40
- package/dist/core/stop-run.d.ts +46 -0
- package/dist/core/stop-run.js +61 -0
- package/dist/core/workflow-event-recorder.d.ts +14 -0
- package/dist/core/workflow-event-recorder.js +120 -0
- package/dist/core/workflow-events.d.ts +94 -0
- package/dist/core/workflow-events.js +48 -0
- package/dist/core/workflow-run-events.d.ts +18 -0
- package/dist/core/workflow-run-events.js +75 -0
- package/dist/core/zod-json-schema.d.ts +4 -0
- package/dist/core/zod-json-schema.js +39 -0
- package/dist/core/zod3-window.d.ts +35 -0
- package/dist/core/zod3-window.js +124 -0
- package/dist/generated/prisma/browser.d.ts +92 -3
- package/dist/generated/prisma/client.d.ts +92 -3
- package/dist/generated/prisma/commonInputTypes.d.ts +364 -54
- package/dist/generated/prisma/enums.d.ts +37 -0
- package/dist/generated/prisma/enums.js +31 -0
- package/dist/generated/prisma/internal/class.d.ts +132 -0
- package/dist/generated/prisma/internal/class.js +4 -4
- package/dist/generated/prisma/internal/prismaNamespace.d.ts +1332 -142
- package/dist/generated/prisma/internal/prismaNamespace.js +227 -5
- package/dist/generated/prisma/internal/prismaNamespaceBrowser.d.ts +234 -0
- package/dist/generated/prisma/internal/prismaNamespaceBrowser.js +227 -5
- package/dist/generated/prisma/models/Agent.d.ts +464 -7
- package/dist/generated/prisma/models/AgentRepository.d.ts +42 -1
- package/dist/generated/prisma/models/CodingAgentProfile.d.ts +301 -1
- package/dist/generated/prisma/models/CodingProxyRequest.d.ts +207 -3
- package/dist/generated/prisma/models/CodingProxySession.d.ts +114 -1
- package/dist/generated/prisma/models/CodingRun.d.ts +1841 -1
- package/dist/generated/prisma/models/DeferredReview.d.ts +78 -1
- package/dist/generated/prisma/models/DependencySnapshot.d.ts +1668 -0
- package/dist/generated/prisma/models/DependencySnapshot.js +1 -0
- package/dist/generated/prisma/models/IssuePullRequest.d.ts +6 -2
- package/dist/generated/prisma/models/LocalReview.d.ts +40 -1
- package/dist/generated/prisma/models/NativeGatewayCall.d.ts +1713 -0
- package/dist/generated/prisma/models/NativeGatewayCall.js +1 -0
- package/dist/generated/prisma/models/NativeGatewaySession.d.ts +1551 -0
- package/dist/generated/prisma/models/NativeGatewaySession.js +1 -0
- package/dist/generated/prisma/models/NativeWarmWorker.d.ts +1296 -0
- package/dist/generated/prisma/models/NativeWarmWorker.js +1 -0
- package/dist/generated/prisma/models/NotificationChannel.d.ts +1543 -0
- package/dist/generated/prisma/models/NotificationChannel.js +1 -0
- package/dist/generated/prisma/models/NotificationDelivery.d.ts +1502 -0
- package/dist/generated/prisma/models/NotificationDelivery.js +1 -0
- package/dist/generated/prisma/models/NotificationThread.d.ts +1090 -0
- package/dist/generated/prisma/models/NotificationThread.js +1 -0
- package/dist/generated/prisma/models/RegistryAllowance.d.ts +41 -1
- package/dist/generated/prisma/models/RegistryApprovedVersion.d.ts +75 -1
- package/dist/generated/prisma/models/RegistryAuditRecord.d.ts +1364 -0
- package/dist/generated/prisma/models/RegistryAuditRecord.js +1 -0
- package/dist/generated/prisma/models/Run.d.ts +1619 -58
- package/dist/generated/prisma/models/RunBudgetEvent.d.ts +1211 -0
- package/dist/generated/prisma/models/RunBudgetEvent.js +1 -0
- package/dist/generated/prisma/models/RunHostCheck.d.ts +36 -1
- package/dist/generated/prisma/models/RunTranscript.d.ts +1339 -0
- package/dist/generated/prisma/models/RunTranscript.js +1 -0
- package/dist/generated/prisma/models/Secret.d.ts +37 -1
- package/dist/generated/prisma/models/SecretBrokerChange.d.ts +1101 -0
- package/dist/generated/prisma/models/SecretBrokerChange.js +1 -0
- package/dist/generated/prisma/models/WorkflowEvent.d.ts +1422 -0
- package/dist/generated/prisma/models/WorkflowEvent.js +1 -0
- package/dist/generated/prisma/models.d.ts +12 -0
- package/dist/help/build.js +4 -2
- package/dist/help/catalog.d.ts +1 -1
- package/dist/help/catalog.js +31 -6
- package/dist/help-index.json +2584 -146
- package/dist/import/create.js +49 -3
- package/dist/import/neutral-schema.d.ts +50 -277
- package/dist/import/neutral-schema.js +7 -4
- package/dist/knowledge/check.d.ts +1 -1
- package/dist/knowledge/cli.d.ts +11 -1
- package/dist/knowledge/cli.js +37 -4
- package/dist/knowledge/concept.d.ts +3 -19
- package/dist/knowledge/location.d.ts +31 -0
- package/dist/knowledge/location.js +78 -0
- package/dist/mcp/auth/access.d.ts +11 -2
- package/dist/mcp/auth/access.js +15 -1
- package/dist/mcp/auth/ownership.d.ts +7 -7
- package/dist/mcp/auth/repo-authorization.js +14 -0
- package/dist/mcp/auth/resource-server.d.ts +2 -1
- package/dist/mcp/auth/resource-server.js +7 -2
- package/dist/mcp/auth/self-hosted/browser.d.ts +1 -1
- package/dist/mcp/auth/self-hosted/browser.js +19 -6
- package/dist/mcp/auth/self-hosted/credentials.d.ts +3 -3
- package/dist/mcp/auth/self-hosted/session.d.ts +2 -2
- package/dist/mcp/context.d.ts +6 -0
- package/dist/mcp/host-events/github-ingress.d.ts +25 -1
- package/dist/mcp/host-events/github-ingress.js +70 -1
- package/dist/mcp/index.d.ts +19 -0
- package/dist/mcp/index.js +117 -20
- package/dist/mcp/server.d.ts +13 -0
- package/dist/mcp/server.js +33 -14
- package/dist/mcp/tools/agents.d.ts +4 -0
- package/dist/mcp/tools/agents.js +277 -24
- package/dist/mcp/tools/datastore.js +17 -8
- package/dist/mcp/tools/grants.js +9 -3
- package/dist/mcp/tools/memory.js +11 -1
- package/dist/mcp/tools/notification-channels.d.ts +2 -0
- package/dist/mcp/tools/notification-channels.js +293 -0
- package/dist/mcp/tools/packages.d.ts +2 -0
- package/dist/mcp/tools/packages.js +195 -0
- package/dist/mcp/tools/power.d.ts +2 -0
- package/dist/mcp/tools/power.js +77 -0
- package/dist/mcp/tools/repositories.js +18 -5
- package/dist/mcp/tools/run-access.d.ts +16 -0
- package/dist/mcp/tools/run-access.js +25 -0
- package/dist/mcp/tools/run-transcript-download.d.ts +30 -0
- package/dist/mcp/tools/run-transcript-download.js +129 -0
- package/dist/mcp/tools/run-transcript.d.ts +19 -0
- package/dist/mcp/tools/run-transcript.js +70 -0
- package/dist/mcp/tools/runs.d.ts +0 -6
- package/dist/mcp/tools/runs.js +41 -14
- package/dist/mcp/tools/scheduling.js +3 -1
- package/dist/mcp/tools/secret-broker-compat.d.ts +12 -0
- package/dist/mcp/tools/secret-broker-compat.js +23 -0
- package/dist/mcp/tools/secret-elicitation-form.d.ts +22 -2
- package/dist/mcp/tools/secret-elicitation-form.js +205 -10
- package/dist/mcp/tools/secret-elicitation-server.d.ts +6 -0
- package/dist/mcp/tools/secret-elicitation-server.js +10 -54
- package/dist/mcp/tools/secret-elicitation.d.ts +38 -3
- package/dist/mcp/tools/secret-elicitation.js +110 -12
- package/dist/mcp/tools/secrets.js +186 -9
- package/dist/mcp/tools/stop-run.d.ts +2 -0
- package/dist/mcp/tools/stop-run.js +82 -0
- package/dist/mcp/tools/subagents.js +2 -2
- package/dist/mcp/tools/tools.d.ts +2 -2
- package/dist/mcp/tools/tools.js +47 -11
- package/dist/mcp/transport/stdio-link-host.d.ts +20 -0
- package/dist/mcp/transport/stdio-link-host.js +67 -0
- package/dist/mcp/transport/streamable-http.d.ts +13 -0
- package/dist/mcp/transport/streamable-http.js +41 -1
- package/dist/native-worker/composition.d.ts +23 -0
- package/dist/native-worker/composition.js +77 -0
- package/dist/native-worker/docker-isolation.d.ts +65 -0
- package/dist/native-worker/docker-isolation.js +183 -0
- package/dist/native-worker/docker-launcher.d.ts +110 -0
- package/dist/native-worker/docker-launcher.js +297 -0
- package/dist/native-worker/gateway-server.d.ts +77 -0
- package/dist/native-worker/gateway-server.js +412 -0
- package/dist/native-worker/gateway.d.ts +70 -0
- package/dist/native-worker/gateway.js +263 -0
- package/dist/native-worker/http-server.d.ts +24 -0
- package/dist/native-worker/http-server.js +113 -0
- package/dist/native-worker/http-transport.d.ts +17 -0
- package/dist/native-worker/http-transport.js +88 -0
- package/dist/native-worker/kubernetes-isolation.d.ts +90 -0
- package/dist/native-worker/kubernetes-isolation.js +218 -0
- package/dist/native-worker/kubernetes-launcher.d.ts +106 -0
- package/dist/native-worker/kubernetes-launcher.js +375 -0
- package/dist/native-worker/launch.d.ts +62 -0
- package/dist/native-worker/launch.js +49 -0
- package/dist/native-worker/ledger.d.ts +125 -0
- package/dist/native-worker/ledger.js +245 -0
- package/dist/native-worker/loopback.d.ts +12 -0
- package/dist/native-worker/loopback.js +44 -0
- package/dist/native-worker/main.d.ts +8 -0
- package/dist/native-worker/main.js +85 -0
- package/dist/native-worker/protocol.d.ts +296 -0
- package/dist/native-worker/protocol.js +246 -0
- package/dist/native-worker/sandbox-executor.d.ts +83 -0
- package/dist/native-worker/sandbox-executor.js +284 -0
- package/dist/native-worker/stderr-redaction.d.ts +77 -0
- package/dist/native-worker/stderr-redaction.js +237 -0
- package/dist/native-worker/stdio.d.ts +29 -0
- package/dist/native-worker/stdio.js +189 -0
- package/dist/native-worker/warm-delivery.d.ts +16 -0
- package/dist/native-worker/warm-delivery.js +33 -0
- package/dist/native-worker/warm-pool-ledger.d.ts +39 -0
- package/dist/native-worker/warm-pool-ledger.js +73 -0
- package/dist/native-worker/warm-pool.d.ts +107 -0
- package/dist/native-worker/warm-pool.js +283 -0
- package/dist/native-worker/worker.d.ts +17 -0
- package/dist/native-worker/worker.js +141 -0
- package/dist/observability/metrics.js +6 -1
- package/dist/providers/auth/authorization-server.d.ts +3 -0
- package/dist/providers/auth/index.js +2 -0
- package/dist/providers/auth/self-hosted.d.ts +14 -2
- package/dist/providers/auth/self-hosted.js +54 -4
- package/dist/providers/chat/fake.d.ts +46 -0
- package/dist/providers/chat/fake.js +39 -0
- package/dist/providers/chat/index.d.ts +4 -0
- package/dist/providers/chat/index.js +8 -0
- package/dist/providers/chat/slack.d.ts +37 -0
- package/dist/providers/chat/slack.js +105 -0
- package/dist/providers/chat/types.d.ts +42 -0
- package/dist/providers/chat/types.js +19 -0
- package/dist/providers/coding-proxy/dependency-cache/eviction.d.ts +29 -0
- package/dist/providers/coding-proxy/dependency-cache/eviction.js +87 -0
- package/dist/providers/coding-proxy/dependency-cache/key.d.ts +33 -0
- package/dist/providers/coding-proxy/dependency-cache/key.js +86 -0
- package/dist/providers/coding-proxy/dependency-cache/model-request-seal.d.ts +18 -0
- package/dist/providers/coding-proxy/dependency-cache/model-request-seal.js +40 -0
- package/dist/providers/coding-proxy/dependency-cache/prisma-store.d.ts +25 -0
- package/dist/providers/coding-proxy/dependency-cache/prisma-store.js +131 -0
- package/dist/providers/coding-proxy/dependency-cache/service.d.ts +70 -0
- package/dist/providers/coding-proxy/dependency-cache/service.js +409 -0
- package/dist/providers/coding-proxy/dependency-cache/store.d.ts +85 -0
- package/dist/providers/coding-proxy/dependency-cache/store.js +95 -0
- package/dist/providers/coding-proxy/hold.d.ts +32 -0
- package/dist/providers/coding-proxy/hold.js +86 -0
- package/dist/providers/coding-proxy/interrupted.d.ts +70 -0
- package/dist/providers/coding-proxy/interrupted.js +104 -0
- package/dist/providers/coding-proxy/memory-ledger.d.ts +15 -2
- package/dist/providers/coding-proxy/memory-ledger.js +84 -8
- package/dist/providers/coding-proxy/metering.d.ts +16 -0
- package/dist/providers/coding-proxy/metering.js +27 -4
- package/dist/providers/coding-proxy/prisma-ledger.d.ts +15 -2
- package/dist/providers/coding-proxy/prisma-ledger.js +179 -67
- package/dist/providers/coding-proxy/proxy.d.ts +14 -1
- package/dist/providers/coding-proxy/proxy.js +166 -14
- package/dist/providers/coding-proxy/registry/audit.d.ts +53 -10
- package/dist/providers/coding-proxy/registry/audit.js +94 -17
- package/dist/providers/coding-proxy/registry/lockfile-parse-worker.d.ts +36 -0
- package/dist/providers/coding-proxy/registry/lockfile-parse-worker.js +67 -0
- package/dist/providers/coding-proxy/registry/lockfile-parse.d.ts +16 -0
- package/dist/providers/coding-proxy/registry/lockfile-parse.js +110 -0
- package/dist/providers/coding-proxy/registry/plan.d.ts +9 -0
- package/dist/providers/coding-proxy/registry/plan.js +201 -48
- package/dist/providers/coding-proxy/registry/prisma-store.d.ts +11 -5
- package/dist/providers/coding-proxy/registry/prisma-store.js +120 -17
- package/dist/providers/coding-proxy/registry/service.d.ts +97 -16
- package/dist/providers/coding-proxy/registry/service.js +579 -112
- package/dist/providers/coding-proxy/registry/store.d.ts +84 -9
- package/dist/providers/coding-proxy/registry/store.js +54 -1
- package/dist/providers/coding-proxy/runtime.d.ts +4 -0
- package/dist/providers/coding-proxy/runtime.js +78 -16
- package/dist/providers/coding-proxy/server.d.ts +6 -1
- package/dist/providers/coding-proxy/server.js +45 -1
- package/dist/providers/coding-proxy/types.d.ts +65 -1
- package/dist/providers/datastore/types.d.ts +5 -0
- package/dist/providers/engine/types.d.ts +36 -2
- package/dist/providers/engine/types.js +39 -0
- package/dist/providers/executor/composition.d.ts +31 -1
- package/dist/providers/executor/composition.js +81 -8
- package/dist/providers/executor/container.d.ts +385 -9
- package/dist/providers/executor/container.js +1234 -99
- package/dist/providers/executor/dbos-status.d.ts +31 -0
- package/dist/providers/executor/dbos-status.js +64 -0
- package/dist/providers/executor/dbos.d.ts +91 -0
- package/dist/providers/executor/dbos.js +319 -26
- package/dist/providers/executor/deferred.d.ts +44 -0
- package/dist/providers/executor/deferred.js +100 -0
- package/dist/providers/executor/in-process.d.ts +9 -1
- package/dist/providers/executor/in-process.js +14 -4
- package/dist/providers/executor/linked-issue-reader.d.ts +16 -0
- package/dist/providers/executor/linked-issue-reader.js +30 -0
- package/dist/providers/executor/routing.d.ts +39 -10
- package/dist/providers/executor/routing.js +77 -32
- package/dist/providers/executor/types.d.ts +25 -0
- package/dist/providers/index.d.ts +2 -1
- package/dist/providers/issue-tracker/types.d.ts +17 -0
- package/dist/providers/issue-tracker/types.js +39 -1
- package/dist/providers/jobs/claude-tool-setup.d.ts +4 -0
- package/dist/providers/jobs/claude-tool-setup.js +5 -2
- package/dist/providers/jobs/docker-isolation.d.ts +8 -0
- package/dist/providers/jobs/docker-isolation.js +17 -0
- package/dist/providers/jobs/docker.d.ts +1 -0
- package/dist/providers/jobs/docker.js +29 -4
- package/dist/providers/jobs/fake-kubernetes-api.d.ts +23 -2
- package/dist/providers/jobs/fake-kubernetes-api.js +45 -1
- package/dist/providers/jobs/kubernetes-api.d.ts +25 -1
- package/dist/providers/jobs/kubernetes-api.js +17 -0
- package/dist/providers/jobs/kubernetes-client.d.ts +10 -1
- package/dist/providers/jobs/kubernetes-client.js +61 -3
- package/dist/providers/jobs/kubernetes-dry-run-fixture.d.ts +6 -1
- package/dist/providers/jobs/kubernetes-dry-run-fixture.js +6 -3
- package/dist/providers/jobs/kubernetes-isolation.d.ts +5 -1
- package/dist/providers/jobs/kubernetes-isolation.js +23 -1
- package/dist/providers/jobs/kubernetes-platform.d.ts +4 -1
- package/dist/providers/jobs/kubernetes-platform.js +38 -1
- package/dist/providers/jobs/kubernetes-preflight.d.ts +2 -1
- package/dist/providers/jobs/kubernetes-preflight.js +4 -2
- package/dist/providers/jobs/kubernetes.d.ts +42 -2
- package/dist/providers/jobs/kubernetes.js +178 -19
- package/dist/providers/jobs/metadata-probes.d.ts +11 -0
- package/dist/providers/jobs/metadata-probes.js +13 -0
- package/dist/providers/jobs/types.d.ts +42 -0
- package/dist/providers/jobs/types.js +13 -1
- package/dist/providers/llm/anthropic.js +5 -1
- package/dist/providers/llm/bedrock.d.ts +0 -12
- package/dist/providers/llm/bedrock.js +4 -0
- package/dist/providers/llm/claude-messages.d.ts +3 -1
- package/dist/providers/llm/claude-messages.js +4 -1
- package/dist/providers/llm/claude-provider.d.ts +2 -2
- package/dist/providers/llm/claude-provider.js +2 -2
- package/dist/providers/llm/openai.d.ts +2 -2
- package/dist/providers/llm/openai.js +6 -2
- package/dist/providers/llm/routing.d.ts +2 -2
- package/dist/providers/llm/routing.js +2 -2
- package/dist/providers/llm/types.d.ts +12 -2
- package/dist/providers/review-host/github-events.d.ts +9 -1
- package/dist/providers/review-host/github-events.js +34 -12
- package/dist/providers/review-host/github.d.ts +39 -2
- package/dist/providers/review-host/github.js +274 -29
- package/dist/providers/review-host/local.d.ts +8 -4
- package/dist/providers/review-host/local.js +49 -31
- package/dist/providers/review-host/patch-pages.d.ts +41 -0
- package/dist/providers/review-host/patch-pages.js +176 -0
- package/dist/providers/review-host/review-format.d.ts +19 -1
- package/dist/providers/review-host/review-format.js +38 -7
- package/dist/providers/review-host/types.d.ts +157 -2
- package/dist/providers/review-host/types.js +8 -0
- package/dist/providers/storage/gcs.d.ts +63 -0
- package/dist/providers/storage/gcs.js +69 -0
- package/dist/providers/storage/index.d.ts +15 -0
- package/dist/providers/storage/index.js +14 -0
- package/dist/providers/storage/local.d.ts +24 -0
- package/dist/providers/storage/local.js +92 -0
- package/dist/providers/storage/meter.d.ts +14 -0
- package/dist/providers/storage/meter.js +34 -0
- package/dist/providers/storage/s3.d.ts +41 -0
- package/dist/providers/storage/s3.js +107 -0
- package/dist/providers/storage/types.d.ts +37 -3
- package/dist/providers/storage/types.js +21 -4
- package/dist/providers/vcs/git.d.ts +33 -2
- package/dist/providers/vcs/git.js +324 -22
- package/dist/providers/vcs/github-remote.d.ts +26 -3
- package/dist/providers/vcs/github-remote.js +124 -14
- package/dist/providers/vcs/github.d.ts +246 -12
- package/dist/providers/vcs/github.js +521 -61
- package/dist/providers/vcs/index.js +8 -1
- package/dist/providers/vcs/pr-description.d.ts +127 -0
- package/dist/providers/vcs/pr-description.js +270 -0
- package/dist/providers/vcs/remote.d.ts +33 -1
- package/dist/providers/vcs/routing.d.ts +4 -2
- package/dist/providers/vcs/routing.js +6 -0
- package/dist/providers/vcs/types.d.ts +80 -3
- package/dist/quickstart/coding-seed.d.ts +21 -3
- package/dist/quickstart/coding-seed.js +283 -3
- package/dist/quickstart/images.d.ts +2 -0
- package/dist/quickstart/images.js +7 -1
- package/dist/quickstart/reviewer-prompt.d.ts +1 -1
- package/dist/quickstart/reviewer-prompt.js +6 -6
- package/dist/quickstart-images.json +1 -1
- package/dist/sandbox/brokered-fetch.d.ts +23 -0
- package/dist/sandbox/brokered-fetch.js +37 -0
- package/dist/sandbox/generated/zod.bundle.js +62 -1
- package/dist/sandbox/generated/zod3.bundle.js +5 -0
- package/dist/sandbox/host-functions.d.ts +35 -0
- package/dist/sandbox/host-functions.js +150 -91
- package/dist/sandbox/prelude.js +7 -1
- package/dist/sandbox/run-in-sandbox.d.ts +19 -0
- package/dist/sandbox/run-in-sandbox.js +28 -10
- package/dist/sandbox/safe-fetch.d.ts +2 -0
- package/dist/sandbox/safe-fetch.js +3 -1
- package/dist/sandbox/secret-broker-sigv4.d.ts +2 -0
- package/dist/sandbox/secret-broker-sigv4.js +49 -0
- package/dist/sandbox/secret-broker.d.ts +34 -0
- package/dist/sandbox/secret-broker.js +161 -0
- package/dist/sandbox/tool-capabilities.d.ts +10 -30
- package/dist/sandbox/user-tool.d.ts +14 -0
- package/dist/sandbox/user-tool.js +32 -0
- package/dist/sandbox/zod-params.d.ts +37 -5
- package/dist/sandbox/zod-params.js +181 -26
- package/dist/serve.js +25 -0
- package/dist/viewer/api-schema.d.ts +372 -2454
- package/dist/viewer/api-schema.js +29 -0
- package/dist/viewer/build-schemas.js +10 -3
- package/dist/viewer/event-bus.d.ts +6 -0
- package/dist/viewer/event-bus.js +16 -7
- package/dist/viewer/graph.d.ts +5 -2
- package/dist/viewer/graph.js +7 -2
- package/dist/viewer/http.d.ts +0 -1
- package/dist/viewer/http.js +2 -2
- package/dist/viewer/infra.js +25 -2
- package/dist/viewer/limits.d.ts +4 -0
- package/dist/viewer/limits.js +4 -0
- package/dist/viewer/openapi.d.ts +15 -0
- package/dist/viewer/openapi.js +170 -0
- package/dist/wardby-bin.js +10 -0
- package/docs/README.md +7 -0
- package/docs/agent-recipes.md +114 -27
- package/docs/architecture-runtime.md +16 -1
- package/docs/code-review-agents.md +689 -45
- package/docs/coding-agent-setup.md +602 -12
- package/docs/coding-packages.md +1037 -92
- package/docs/coding-services.md +30 -13
- package/docs/coding-worker-byo-images.md +218 -6
- package/docs/coding-worker-isolation.md +173 -44
- package/docs/getting-started-gke.md +332 -129
- package/docs/getting-started-identity-provider.md +31 -11
- package/docs/getting-started.md +14 -4
- package/docs/jira-agents.md +22 -9
- package/docs/knowledge/blob-not-found-semantics.md +41 -0
- package/docs/knowledge/bounded-file-descriptor.md +52 -0
- package/docs/knowledge/delegation-admission-slots.md +52 -0
- package/docs/knowledge/http-dispatcher-bootstrap.md +61 -0
- package/docs/knowledge/import-rename-target.md +52 -0
- package/docs/knowledge/index.md +57 -0
- package/docs/knowledge/log.md +9 -0
- package/docs/knowledge/mcp-cancelled-task-precedence.md +41 -0
- package/docs/knowledge/mcp-http-prompt-discovery.md +41 -0
- package/docs/knowledge/mcp-schema-module-boundary.md +41 -0
- package/docs/knowledge/nullable-tool-uniqueness.md +52 -0
- package/docs/knowledge/overview-cli.md +74 -0
- package/docs/knowledge/overview-coding-proxy.md +72 -0
- package/docs/knowledge/overview-coding.md +72 -0
- package/docs/knowledge/overview-config.md +60 -0
- package/docs/knowledge/overview-core.md +72 -0
- package/docs/knowledge/overview-deploy.md +83 -0
- package/docs/knowledge/overview-mcp.md +61 -0
- package/docs/knowledge/overview-prisma.md +72 -0
- package/docs/knowledge/overview-providers.md +89 -0
- package/docs/knowledge/overview-sandbox.md +83 -0
- package/docs/knowledge/overview-surfaces.md +83 -0
- package/docs/knowledge/private-datastore-shared-boundary.md +54 -0
- package/docs/knowledge/proxy-settlement-projections.md +41 -0
- package/docs/knowledge/run-pricing-first-writer.md +43 -0
- package/docs/knowledge/schedule-claim-transaction.md +41 -0
- package/docs/knowledge/secret-entry-replica-contract.md +52 -0
- package/docs/knowledge/terminal-run-first-writer.md +41 -0
- package/docs/knowledge/transactional-agent-authorization.md +52 -0
- package/docs/knowledge/viewer-notify-write-isolation.md +30 -0
- package/docs/knowledge/warm-input-publication.md +30 -0
- package/docs/knowledge/workspace-staging-failure.md +54 -0
- package/docs/knowledge.md +54 -14
- package/docs/native-sandbox.md +731 -0
- package/docs/observability.md +4 -0
- package/docs/release-verification.md +9 -0
- package/docs/security-deployment.md +146 -14
- package/docs/slack-notifications.md +268 -0
- package/docs/tool-secrets.md +284 -0
- package/docs/viewer-api.md +46 -5
- package/docs/viewer-api.openapi.yml +1404 -0
- package/help/admin-viewer.md +29 -3
- package/help/agent-recipes.md +27 -0
- package/help/architecture-agent.md +11 -6
- package/help/brokered-secrets.md +79 -0
- package/help/build-claude-code-image.md +131 -0
- package/help/build-worker-image.md +6 -7
- package/help/builder-agent.md +19 -6
- package/help/code-review-agents.md +243 -10
- package/help/coding-packages.md +156 -6
- package/help/cost-attribution.md +9 -5
- package/help/creating-agents.md +14 -1
- package/help/dependency-cache.md +143 -0
- package/help/deploy-gke.md +23 -9
- package/help/deployment-targets.md +25 -14
- package/help/errors/budget-exhausted.md +187 -0
- package/help/errors/budget-group-exhausted.md +5 -1
- package/help/errors/coding-provider-not-configured.md +2 -2
- package/help/errors/coding-stream-quota-exceeded.md +33 -0
- package/help/errors/coding-workspace-disk-exceeds-limit.md +39 -0
- package/help/errors/continuation-closed.md +9 -12
- package/help/errors/database-auth-invalid.md +28 -0
- package/help/errors/delegation-conflict.md +24 -0
- package/help/errors/file-list-truncated.md +45 -0
- package/help/errors/full-read-required.md +49 -0
- package/help/errors/github-account-not-allowed.md +29 -0
- package/help/errors/graph-incomplete.md +43 -0
- package/help/errors/graph-limit.md +43 -0
- package/help/errors/low-power-disabled.md +29 -0
- package/help/errors/low-power-scale-forbidden.md +35 -0
- package/help/errors/low-power-wake-timeout.md +30 -0
- package/help/errors/merge-conflict.md +49 -0
- package/help/errors/mobile-disabled.md +31 -0
- package/help/errors/native-sandbox-capacity.md +22 -0
- package/help/errors/native-sandbox-deadline-exceeded.md +19 -0
- package/help/errors/native-sandbox-docker-failed.md +20 -0
- package/help/errors/native-sandbox-gateway-error.md +20 -0
- package/help/errors/native-sandbox-gateway-unavailable.md +21 -0
- package/help/errors/native-sandbox-image-not-pinned.md +19 -0
- package/help/errors/native-sandbox-isolation-mismatch.md +20 -0
- package/help/errors/native-sandbox-launch-abandoned.md +21 -0
- package/help/errors/native-sandbox-network-unenforced.md +22 -0
- package/help/errors/native-sandbox-requires-catalog.md +31 -0
- package/help/errors/native-sandbox-unavailable.md +19 -0
- package/help/errors/native-sandbox-warm-delivery-failed.md +21 -0
- package/help/errors/native-sandbox-worker-exited.md +21 -0
- package/help/errors/native-sandbox-worker-lost.md +20 -0
- package/help/errors/native-sandbox-worker-unready.md +22 -0
- package/help/errors/package-not-allowed-pending.md +52 -0
- package/help/errors/package-not-allowed.md +51 -0
- package/help/errors/package-refusals.md +43 -0
- package/help/errors/patch-cursor-malformed.md +31 -0
- package/help/errors/run-lost.md +39 -0
- package/help/errors/run-transcript-download.md +44 -0
- package/help/errors/secret-broker-body-invalid.md +26 -0
- package/help/errors/secret-broker-changed.md +20 -0
- package/help/errors/secret-broker-config-invalid.md +30 -0
- package/help/errors/secret-broker-conflict.md +27 -0
- package/help/errors/secret-broker-destination-denied.md +28 -0
- package/help/errors/secret-broker-value-invalid.md +28 -0
- package/help/errors/secret-brokered.md +24 -0
- package/help/errors/secret-in-value.md +69 -0
- package/help/errors/secret-not-brokered.md +25 -0
- package/help/errors/slack-auth-failed.md +48 -0
- package/help/errors/slack-channel-unreachable.md +39 -0
- package/help/errors/slack-not-configured.md +33 -0
- package/help/errors/target-merge.md +40 -0
- package/help/fix-merge-conflicts.md +73 -0
- package/help/getting-started.md +4 -5
- package/help/github-app-setup.md +132 -0
- package/help/github.md +40 -1
- package/help/identity-and-access.md +7 -1
- package/help/jira.md +23 -6
- package/help/knowledge.md +16 -7
- package/help/local-repositories.md +3 -4
- package/help/low-power-mode.md +131 -0
- package/help/merge-order-check.md +122 -0
- package/help/mobile-app.md +54 -0
- package/help/native-capabilities.md +29 -1
- package/help/native-sandbox.md +150 -0
- package/help/observability.md +8 -0
- package/help/operating-agents.md +5 -0
- package/help/package-audit-mode.md +91 -0
- package/help/related-pull-requests.md +80 -16
- package/help/repo-instructions-and-skills.md +91 -0
- package/help/resume-runs-locally.md +131 -0
- package/help/review-fix-rounds.md +43 -1
- package/help/sharing-agents.md +59 -0
- package/help/slack-notifications.md +76 -0
- package/help/status-comments.md +31 -0
- package/help/stop-run.md +58 -0
- package/help/troubleshooting/budgets.md +28 -0
- package/help/troubleshooting/coding-workers.md +99 -7
- package/package.json +27 -13
- package/prisma/migrations/20261009000003_native_execution_mode/migration.sql +12 -0
- package/prisma/migrations/20261009000004_native_gateway_ledger/migration.sql +65 -0
- package/prisma/migrations/20261009000005_native_gateway_call_child_agent/migration.sql +5 -0
- package/prisma/migrations/20261009000006_run_deferred_start_stop/migration.sql +14 -0
- package/prisma/migrations/20261009000007_native_gateway_network_ready/migration.sql +5 -0
- package/prisma/migrations/20261010000001_workflow_notifications/migration.sql +99 -0
- package/prisma/migrations/20261011000001_native_gateway_session_status_index/migration.sql +2 -0
- package/prisma/migrations/20261012000001_native_warm_worker/migration.sql +32 -0
- package/prisma/migrations/20261013000001_coding_run_merge_order/migration.sql +2 -0
- package/prisma/migrations/20261013000001_secret_broker/migration.sql +17 -0
- package/prisma/migrations/20261013000002_deferred_review_request/migration.sql +4 -0
- package/prisma/migrations/20261014000000_repo_skills/migration.sql +15 -0
- package/prisma/migrations/20261015000001_coding_run_merge_order_index/migration.sql +2 -0
- package/prisma/migrations/20261015000002_no_change_rereview/migration.sql +2 -0
- package/prisma/migrations/20261016000000_registry_approved_accepted_advisories/migration.sql +3 -0
- package/prisma/migrations/20261016000001_mark_ready_when_passing/migration.sql +3 -0
- package/prisma/migrations/20261017000000_debug_trace_max_mb/migration.sql +4 -0
- package/prisma/migrations/20261018000000_dependency_cache/migration.sql +53 -0
- package/prisma/migrations/20261019000000_claude_max_output_tokens/migration.sql +5 -0
- package/prisma/migrations/20261021000000_pr_description_hash/migration.sql +4 -0
- package/prisma/migrations/20261022000000_dependency_snapshot_validation_metadata/migration.sql +4 -0
- package/prisma/migrations/20261023000000_package_audit_mode/migration.sql +27 -0
- package/prisma/migrations/20261024000000_budget_events/migration.sql +26 -0
- package/prisma/migrations/20261025000000_cache_aware_holds/migration.sql +9 -0
- package/prisma/migrations/20261026000000_budget_overrun/migration.sql +4 -0
- package/prisma/migrations/20261027000000_coding_run_request/migration.sql +1 -0
- package/prisma/migrations/20261028000000_native_gateway_review_reads/migration.sql +6 -0
- package/prisma/migrations/20261029000000_lead_survives_deploy/migration.sql +6 -0
- package/prisma/migrations/20261030000000_local_review_covered_sha/migration.sql +2 -0
- package/prisma/migrations/20261031000000_coding_run_budget_limit/migration.sql +9 -0
- package/prisma/migrations/20261101000000_run_transcripts/migration.sql +22 -0
- package/prisma/schema.prisma +631 -146
- package/dist/sandbox/generated/zod-to-json-schema.bundle.js +0 -5
package/dist/core/runner.d.ts
CHANGED
|
@@ -16,20 +16,96 @@
|
|
|
16
16
|
* down) lives inside the engine now — there is exactly one place that
|
|
17
17
|
* reasons about cost, not one here plus one in the engine.
|
|
18
18
|
*/
|
|
19
|
-
import
|
|
19
|
+
import { z } from "zod";
|
|
20
|
+
import { Prisma, type PrismaClient, type Run, type RunTrigger } from "#prisma";
|
|
20
21
|
import type { ProviderRegistry } from "../providers/index.js";
|
|
21
|
-
import {
|
|
22
|
+
import type { EngineProgress, EngineResult, LoadedTool } from "../providers/engine/types.js";
|
|
23
|
+
import { RunOwnershipLostError, type StepRunner } from "../providers/engine/types.js";
|
|
24
|
+
import { type PrivilegedHost } from "../sandbox/host-functions.js";
|
|
25
|
+
import type { safeFetch } from "../sandbox/safe-fetch.js";
|
|
26
|
+
import { type RunDrivability, type WorkerLauncher } from "../native-worker/gateway.js";
|
|
27
|
+
import { type WorkerInput } from "../native-worker/protocol.js";
|
|
28
|
+
import type { PrismaGatewayLedger } from "../native-worker/ledger.js";
|
|
29
|
+
import { type SecretsAccessor } from "./secrets.js";
|
|
22
30
|
import type { Executor } from "../providers/executor/types.js";
|
|
23
31
|
import type { ReviewHostRegistry } from "../providers/review-host/types.js";
|
|
24
32
|
import type { IssueTrackerRegistry } from "../providers/issue-tracker/types.js";
|
|
33
|
+
import { type RepositoryLink } from "./review-host-tools.js";
|
|
34
|
+
import { type IssueProjectLink } from "./issue-tracker-tools.js";
|
|
35
|
+
import { ReviewReadLedger } from "./review-reads.js";
|
|
25
36
|
import { type RepoAccessGate } from "./repo-access.js";
|
|
37
|
+
import { type BudgetEventView } from "./budget-events.js";
|
|
38
|
+
export declare const runnerLog: import("pino").Logger<never, boolean>;
|
|
39
|
+
declare const DelegateArgs: z.ZodObject<{
|
|
40
|
+
task: z.ZodString;
|
|
41
|
+
datastoreRef: z.ZodOptional<z.ZodObject<{
|
|
42
|
+
name: z.ZodString;
|
|
43
|
+
key: z.ZodString;
|
|
44
|
+
}, z.core.$strict>>;
|
|
45
|
+
grantParentMemoryKeys: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
46
|
+
continuePriorRun: z.ZodOptional<z.ZodString>;
|
|
47
|
+
mergeOrder: z.ZodOptional<z.ZodNumber>;
|
|
48
|
+
}, z.core.$strict>;
|
|
49
|
+
/** A delegate_to_* call's arguments, or the tool result refusing them. */
|
|
50
|
+
export declare function parseDelegateArgs(argsJson: string): {
|
|
51
|
+
args: z.infer<typeof DelegateArgs>;
|
|
52
|
+
} | {
|
|
53
|
+
refusal: string;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* At most `limit` dispatches per run (default one: a classifier deciding plan-vs-implement
|
|
57
|
+
* commits to exactly one child), and never the same child twice, so a retry can't leave two
|
|
58
|
+
* children racing on the same task. A delegation waiting for budget holds its place.
|
|
59
|
+
*/
|
|
60
|
+
export declare function delegationLimitRefusal(input: {
|
|
61
|
+
priorChildAgentIds: readonly string[];
|
|
62
|
+
waitingChildAgentIds: readonly string[];
|
|
63
|
+
childAgentId: string;
|
|
64
|
+
boundName: string;
|
|
65
|
+
limit: number;
|
|
66
|
+
}): string | null;
|
|
67
|
+
declare const DELEGATION_CHILD_SELECT: {
|
|
68
|
+
readonly id: true;
|
|
69
|
+
readonly kind: true;
|
|
70
|
+
readonly budgetGroupId: true;
|
|
71
|
+
readonly budgetUsd: true;
|
|
72
|
+
readonly ownerId: true;
|
|
73
|
+
readonly nativeExecutionMode: true;
|
|
74
|
+
readonly codingProfile: {
|
|
75
|
+
readonly select: {
|
|
76
|
+
readonly allowWebhookTaskOverride: true;
|
|
77
|
+
readonly timeoutSec: true;
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
/** The child agent fields a delegation decides on. */
|
|
82
|
+
export type DelegationChildAgent = Prisma.AgentGetPayload<{
|
|
83
|
+
select: typeof DELEGATION_CHILD_SELECT;
|
|
84
|
+
}>;
|
|
85
|
+
/**
|
|
86
|
+
* The live authorization of one delegation, and the child agent as it is now. Owners are re-read
|
|
87
|
+
* on every delegation (resource-sharing grants spec §3.4.4, N1): the child must have the parent's
|
|
88
|
+
* current owner, or that owner must still hold execute on the child. A revoked grant or a
|
|
89
|
+
* make_owner transfer stops the very next call.
|
|
90
|
+
*/
|
|
91
|
+
export declare function authorizeDelegation(db: RunnerDb, parentAgentId: string, edge: {
|
|
92
|
+
childAgentId: string;
|
|
93
|
+
}, boundName: string, args: z.infer<typeof DelegateArgs>): Promise<{
|
|
94
|
+
refusal: string;
|
|
95
|
+
} | {
|
|
96
|
+
childAgent: DelegationChildAgent;
|
|
97
|
+
}>;
|
|
98
|
+
/** A native child's task text: the delegated task, with any datastore reference as a note. */
|
|
99
|
+
export declare function delegationTaskOverride(args: z.infer<typeof DelegateArgs>): string | undefined;
|
|
100
|
+
/** The tool result a native child's terminal run reports to its parent. `note` surfaces e.g. an ignored mergeOrder. */
|
|
101
|
+
export declare function nativeChildResult(run: Pick<Run, "status" | "finalText" | "costUsd" | "tokensIn" | "tokensOut" | "error">, note?: string): string;
|
|
26
102
|
/**
|
|
27
103
|
* The subset of the Prisma client the runner touches — mockable in tests.
|
|
28
104
|
* Includes `codingRun`/`task`/`webhook`/`$transaction`/`$queryRaw` so this
|
|
29
105
|
* also satisfies `dispatch.ts`'s `DispatchDb`, needed for dispatching a
|
|
30
106
|
* coding-kind sub-agent from inside a running native turn loop.
|
|
31
107
|
*/
|
|
32
|
-
export type RunnerDb = Pick<PrismaClient, "agent" | "run" | "agentTool" | "agentSecret" | "agentDatastore" | "budgetGroup" | "agentSubAgent" | "resourceGrant" | "codingRun" | "task" | "webhook" | "$transaction" | "$queryRaw" | "agentRepository" | "runModelUsage" | "runHostCheck" | "runHostStatus" | "hostIdentity" | "agentIssueProject" | "issuePullRequest" | "runIssueStatus" | "issueFingerprint" | "workItem">;
|
|
108
|
+
export type RunnerDb = Pick<PrismaClient, "agent" | "run" | "agentTool" | "agentSecret" | "agentDatastore" | "budgetGroup" | "agentSubAgent" | "resourceGrant" | "codingRun" | "registryFetch" | "registryAuditRecord" | "task" | "webhook" | "$transaction" | "$queryRaw" | "agentRepository" | "runModelUsage" | "runHostCheck" | "runBudgetEvent" | "runHostStatus" | "hostIdentity" | "agentIssueProject" | "issuePullRequest" | "runIssueStatus" | "issueFingerprint" | "workItem" | "deferredReview" | "runAttribution">;
|
|
33
109
|
/** The providers a native run needs; `executor`, `reviewHosts` and `issueTrackers` are optional capabilities. */
|
|
34
110
|
export type NativeRunProviders = Pick<ProviderRegistry, "llm" | "engine" | "datastore" | "secrets" | "memory"> & {
|
|
35
111
|
executor?: ProviderRegistry["executor"];
|
|
@@ -38,6 +114,13 @@ export type NativeRunProviders = Pick<ProviderRegistry, "llm" | "engine" | "data
|
|
|
38
114
|
issueTrackers?: IssueTrackerRegistry;
|
|
39
115
|
/** Repository authorization for repo_* calls; built from reviewHosts when absent. */
|
|
40
116
|
repoAccess?: RepoAccessGate;
|
|
117
|
+
/**
|
|
118
|
+
* Runs sandbox-mode native runs: the engine runs in a worker this launcher starts, served by the
|
|
119
|
+
* native gateway (src/native-worker). Absent: a run whose snapshot says sandbox fails closed.
|
|
120
|
+
*/
|
|
121
|
+
nativeSandbox?: WorkerLauncher;
|
|
122
|
+
/** Overrides the sandbox's outbound network call — tests only. */
|
|
123
|
+
sandboxFetch?: typeof safeFetch;
|
|
41
124
|
};
|
|
42
125
|
/**
|
|
43
126
|
* Raised when a run's step boundary observed a cancellation (DbosExecutor's
|
|
@@ -47,12 +130,60 @@ export type NativeRunProviders = Pick<ProviderRegistry, "llm" | "engine" | "data
|
|
|
47
130
|
export declare class RunCancelledError extends Error {
|
|
48
131
|
constructor(message: string);
|
|
49
132
|
}
|
|
133
|
+
/** Re-exported beside RunCancelledError: thrown by a step runner when another attempt owns the run. */
|
|
134
|
+
export { RunOwnershipLostError };
|
|
135
|
+
/** Options for a durable executor's use of stopAwareStep (DbosExecutor); inline runs pass none. */
|
|
136
|
+
export interface StopAwareStepOptions {
|
|
137
|
+
/**
|
|
138
|
+
* A failed read lets the step run, so the check adds no new way for a run to fail. The cost: in an
|
|
139
|
+
* attempt that is already superseded, a step whose read fails still runs (at most that one step,
|
|
140
|
+
* since the next read that succeeds fences it).
|
|
141
|
+
*/
|
|
142
|
+
failOpen?: boolean;
|
|
143
|
+
/**
|
|
144
|
+
* Fences an attempt whose workflow the run has moved off. When the run's `executionWorkflowId`
|
|
145
|
+
* was forked from the workflow driving this attempt (a takeover recorded its fork), this attempt
|
|
146
|
+
* no longer owns the run and stops with a RunOwnershipLostError: no terminal write, no settle side
|
|
147
|
+
* effects. Only a fork *of this workflow* fences it: a null id, or an older id (a fork of a fork
|
|
148
|
+
* whose own id is not recorded yet, or failed to record), fences nothing, so a takeover's fork is
|
|
149
|
+
* never fenced out of the run it drives.
|
|
150
|
+
*/
|
|
151
|
+
ownership?: {
|
|
152
|
+
/** The workflow driving this attempt, read when the step is called. */
|
|
153
|
+
workflowId: () => string | undefined;
|
|
154
|
+
/** Whether `recorded` was forked, directly or through further forks, from `own`. */
|
|
155
|
+
forkedFrom: (recorded: string, own: string) => boolean;
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* A step runner made to notice a stop. Before each step this reads the run's own row: once anything
|
|
160
|
+
* else has made it terminal (stop_run, an MCP task's cancel, a parent run's stop, the reconciler),
|
|
161
|
+
* the run stops at this boundary with a RunCancelledError. The terminal row is never rewritten
|
|
162
|
+
* (finishRunClaimed matches zero rows), so the stop keeps its reason. Inline runs need it because
|
|
163
|
+
* nothing else interrupts their steps. DbosExecutor wraps its own step runner in it too: DBOS stops
|
|
164
|
+
* only a workflow it was told to cancel, and stop() can name only the workflow the run records.
|
|
165
|
+
*/
|
|
166
|
+
export declare function stopAwareStep(db: Pick<RunnerDb, "run">, runId: string, inner?: StepRunner, options?: StopAwareStepOptions): StepRunner;
|
|
167
|
+
/**
|
|
168
|
+
* Why a sandbox-mode native run is not executed here. The runner only ever
|
|
169
|
+
* executes native runs in the control plane; a run whose snapshot says
|
|
170
|
+
* `sandbox` reaches it only when no native sandbox executor is composed in
|
|
171
|
+
* (RoutingExecutor sends it to the native executor), and must fail closed
|
|
172
|
+
* rather than run unisolated.
|
|
173
|
+
*/
|
|
174
|
+
export declare const NATIVE_SANDBOX_NOT_CONFIGURED: string;
|
|
50
175
|
/**
|
|
51
176
|
* Slack past the child's own queue wait + container deadline before the
|
|
52
177
|
* parent gives up: the executor needs a moment after a deadline kill to
|
|
53
178
|
* write the terminal row, and the queue timeout only fires on a drain tick.
|
|
54
179
|
*/
|
|
55
180
|
export declare const CODING_CHILD_WAIT_GRACE_SEC = 60;
|
|
181
|
+
/**
|
|
182
|
+
* How long a parent waits for a sandbox-mode native child before stopping it. Native runs have
|
|
183
|
+
* no run timeout of their own; until the sandbox executor brings a per-run deadline, this bounds
|
|
184
|
+
* a parent left waiting on a child that never finishes.
|
|
185
|
+
*/
|
|
186
|
+
export declare const SANDBOX_CHILD_WAIT_SEC: number;
|
|
56
187
|
export type CodingChildWaitOutcome = {
|
|
57
188
|
kind: "terminal";
|
|
58
189
|
run: Run;
|
|
@@ -73,10 +204,12 @@ export interface WaitForCodingChildOptions {
|
|
|
73
204
|
now?: () => number;
|
|
74
205
|
sleep?: (ms: number) => Promise<void>;
|
|
75
206
|
}
|
|
207
|
+
/** The leading snake_case code of an error message (`code: sentence`); messages can carry internals. */
|
|
76
208
|
/**
|
|
77
209
|
* What a coding sub-agent's run tells the parent run's model. A run refused
|
|
78
210
|
* over its services carries the host sentence (never the raw Run.error), so
|
|
79
|
-
* the parent can pass it on — for a mention, that is the requester.
|
|
211
|
+
* the parent can pass it on — for a mention, that is the requester. A failed
|
|
212
|
+
* run carries only its error code, so the parent can say why without seeing internals.
|
|
80
213
|
*/
|
|
81
214
|
export declare function codingChildResult(run: {
|
|
82
215
|
status: string;
|
|
@@ -85,7 +218,12 @@ export declare function codingChildResult(run: {
|
|
|
85
218
|
tokensIn: number;
|
|
86
219
|
tokensOut: number;
|
|
87
220
|
error: string | null;
|
|
88
|
-
}, codingResult?: unknown
|
|
221
|
+
}, codingResult?: unknown,
|
|
222
|
+
/** The child's recorded budget refusal (loadBudgetEvent), if any. */
|
|
223
|
+
budgetEvent?: {
|
|
224
|
+
event: BudgetEventView;
|
|
225
|
+
agentName: string;
|
|
226
|
+
} | null): string;
|
|
89
227
|
/**
|
|
90
228
|
* Polls a dispatched coding child until it reaches a terminal status. Needed
|
|
91
229
|
* because a queued child (every concurrency slot taken) makes Executor.start
|
|
@@ -102,6 +240,247 @@ export declare function codingChildResult(run: {
|
|
|
102
240
|
export declare function waitForCodingChild(options: WaitForCodingChildOptions): Promise<CodingChildWaitOutcome>;
|
|
103
241
|
/** Persists a new pending Run for the named agent. Throws if the agent is unknown. */
|
|
104
242
|
export declare function createRun(db: RunnerDb, agentName: string, trigger?: RunTrigger): Promise<Run>;
|
|
243
|
+
export interface LoadNativeRunOptions {
|
|
244
|
+
runId: string;
|
|
245
|
+
existingRun: Run;
|
|
246
|
+
providers: NativeRunProviders;
|
|
247
|
+
db: RunnerDb;
|
|
248
|
+
step: StepRunner;
|
|
249
|
+
reviewHosts: ReviewHostRegistry | undefined;
|
|
250
|
+
issueTrackers: IssueTrackerRegistry | undefined;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* The trusted load of a native run: the agent, its attached tools and their
|
|
254
|
+
* consented capabilities, the pinned catalog entry, the effective budget,
|
|
255
|
+
* sub-agent edges, and repository/issue links. Shared by in-process execution
|
|
256
|
+
* and the native sandbox gateway, which hands the worker this result.
|
|
257
|
+
*
|
|
258
|
+
* Pinned in one checkpointed step: on replay after a crash, the agent row
|
|
259
|
+
* or its budget group may have changed since first execution. The
|
|
260
|
+
* engine's control flow depends on budgetUsd and maxTurns, so they must
|
|
261
|
+
* be pinned to the values seen on first execution or the replay's step
|
|
262
|
+
* order diverges from the record.
|
|
263
|
+
*/
|
|
264
|
+
export declare function loadNativeRun(options: LoadNativeRunOptions): Promise<{
|
|
265
|
+
repositoryLinks: RepositoryLink[];
|
|
266
|
+
issueProjectLinks: IssueProjectLink[];
|
|
267
|
+
agent: {
|
|
268
|
+
untrustedContext?: string | undefined;
|
|
269
|
+
effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
|
|
270
|
+
systemPrompt: string;
|
|
271
|
+
model: string;
|
|
272
|
+
budgetUsd: number;
|
|
273
|
+
maxTurns: number;
|
|
274
|
+
};
|
|
275
|
+
tools: LoadedTool[];
|
|
276
|
+
toolsByName: {
|
|
277
|
+
[k: string]: {
|
|
278
|
+
code: string;
|
|
279
|
+
paramsZod: string;
|
|
280
|
+
allowedSecrets: string[];
|
|
281
|
+
allowedDatastorePrefixes: string[];
|
|
282
|
+
allowedHosts: string[];
|
|
283
|
+
allowedSharedDatastorePrefixes: Record<string, string[]>;
|
|
284
|
+
};
|
|
285
|
+
};
|
|
286
|
+
parallelDelegations?: boolean | undefined;
|
|
287
|
+
maxDelegationsPerRun?: number | undefined;
|
|
288
|
+
agentId: string;
|
|
289
|
+
kind: import("#prisma").AgentKind;
|
|
290
|
+
pricing: import("./run-pricing.js").PinnedPricing | undefined;
|
|
291
|
+
memoryEnabled: boolean;
|
|
292
|
+
subAgentEdges: {
|
|
293
|
+
boundName: string;
|
|
294
|
+
childAgentId: string;
|
|
295
|
+
}[];
|
|
296
|
+
} | {
|
|
297
|
+
readonly unavailable: string;
|
|
298
|
+
}>;
|
|
299
|
+
/** A loaded native run (loadNativeRun without its model-unavailable outcome). */
|
|
300
|
+
export type LoadedNativeRun = Exclude<Awaited<ReturnType<typeof loadNativeRun>>, {
|
|
301
|
+
unavailable: string;
|
|
302
|
+
}>;
|
|
303
|
+
export interface NativeRunToolsOptions {
|
|
304
|
+
runId: string;
|
|
305
|
+
existingRun: Run;
|
|
306
|
+
loaded: LoadedNativeRun;
|
|
307
|
+
providers: NativeRunProviders;
|
|
308
|
+
db: RunnerDb;
|
|
309
|
+
reviewHosts: ReviewHostRegistry | undefined;
|
|
310
|
+
repoAccess: RepoAccessGate | undefined;
|
|
311
|
+
issueTrackers: IssueTrackerRegistry | undefined;
|
|
312
|
+
/** What earlier requests of this run read (a sandbox run's gateway restores it per request); fresh otherwise. */
|
|
313
|
+
reviewReads?: ReviewReadLedger;
|
|
314
|
+
}
|
|
315
|
+
/** An attached user tool as the load step pinned it: its code, schema, and consented capabilities. */
|
|
316
|
+
export type LoadedUserTool = LoadedNativeRun["toolsByName"][string];
|
|
317
|
+
/**
|
|
318
|
+
* A built-in tool's handler for one call; built-ins run on the trusted side, never in a sandbox.
|
|
319
|
+
* `callId` is the model's id for the tool call, when the caller has one: a delegation keys its
|
|
320
|
+
* child on it (Run.parentCallId), so a re-executed call re-attaches instead of dispatching twice.
|
|
321
|
+
*/
|
|
322
|
+
export type BuiltinToolHandler = (argsJson: string, callId?: string) => Promise<string>;
|
|
323
|
+
/**
|
|
324
|
+
* Every value of the secrets `names` (readable or brokered; a SigV4 secret's key and token alone
|
|
325
|
+
* too, the same set the in-process host redacts), as a redaction list. Rejects when ANY read
|
|
326
|
+
* fails: a list missing one secret would let that secret through, so a caller treats a rejection
|
|
327
|
+
* as "no list" and fails closed. A secret with no value contributes nothing.
|
|
328
|
+
*/
|
|
329
|
+
export declare function readRedactionValues(accessor: SecretsAccessor, names: readonly string[]): Promise<string[]>;
|
|
330
|
+
/**
|
|
331
|
+
* One attempt's tool surface for a native run. `builtinHandler(name)` is the
|
|
332
|
+
* single source of truth for which names are trusted built-ins (memory,
|
|
333
|
+
* repo_*, jira_*, sub-agent/parent memory, delegate_to_*) and returns undefined
|
|
334
|
+
* for everything else, which `runUserTool` runs in the WASM sandbox. Per-attempt
|
|
335
|
+
* state (the delegation gate, siblings, issue creation counters) lives here.
|
|
336
|
+
*/
|
|
337
|
+
export declare function createNativeRunTools(options: NativeRunToolsOptions): {
|
|
338
|
+
toolsByName: Map<string, {
|
|
339
|
+
code: string;
|
|
340
|
+
paramsZod: string;
|
|
341
|
+
allowedSecrets: string[];
|
|
342
|
+
allowedDatastorePrefixes: string[];
|
|
343
|
+
allowedHosts: string[];
|
|
344
|
+
allowedSharedDatastorePrefixes: Record<string, string[]>;
|
|
345
|
+
}>;
|
|
346
|
+
builtinHandler: (name: string) => BuiltinToolHandler | undefined;
|
|
347
|
+
privilegedHostFor: (name: string, signal: AbortSignal, redactSecretValues?: readonly string[]) => PrivilegedHost | undefined;
|
|
348
|
+
readableSecretValues: (name: string) => Promise<string[]>;
|
|
349
|
+
runUserTool: (name: string, argsJson: string) => Promise<string>;
|
|
350
|
+
runSandboxTool: (name: string, argsJson: string, callId?: string) => Promise<string>;
|
|
351
|
+
};
|
|
352
|
+
/**
|
|
353
|
+
* Live progress for observers (MCP get_run, the viewer). Absolute totals, so a DBOS replay
|
|
354
|
+
* re-writing them is harmless. Written into the run's own cost columns on purpose: the run
|
|
355
|
+
* tree's shared budget (computeRunTreeSpend) then counts a running parent's spend so far, as it
|
|
356
|
+
* already does for coding runs, whose proxy ledger writes their totals live. Best-effort: a
|
|
357
|
+
* failed write only delays what observers see, and finishRun writes the final totals anyway.
|
|
358
|
+
* A cancelled run takes them too: a stop lands mid-step, and that step's spend is real, while the
|
|
359
|
+
* cancelled run's terminal write (failNativeRun) records no totals of its own.
|
|
360
|
+
*/
|
|
361
|
+
export declare function recordNativeRunProgress(db: RunnerDb, runId: string, progress: EngineProgress): Promise<void>;
|
|
362
|
+
/** What finishing a native run needs: the run, and the integrations its trigger may have opened. */
|
|
363
|
+
export interface NativeRunFinishContext {
|
|
364
|
+
runId: string;
|
|
365
|
+
db: RunnerDb;
|
|
366
|
+
providers: NativeRunProviders;
|
|
367
|
+
reviewHosts: ReviewHostRegistry | undefined;
|
|
368
|
+
repoAccess: RepoAccessGate | undefined;
|
|
369
|
+
issueTrackers: IssueTrackerRegistry | undefined;
|
|
370
|
+
}
|
|
371
|
+
/** The terminal write for an engine result, then its usage, host/issue status, and follow-ups. */
|
|
372
|
+
export declare function finishNativeRun(ctx: NativeRunFinishContext, model: string, result: EngineResult): Promise<Run>;
|
|
373
|
+
/** The backstop terminal write for a run that threw. A cancellation is not a failure: it carries the operator's own reason. */
|
|
374
|
+
export declare function failNativeRun(ctx: NativeRunFinishContext, err: unknown): Promise<Run>;
|
|
375
|
+
/** The terminal write for a run that cannot continue (it ends `lost` with `reason`), then the same settle path. */
|
|
376
|
+
export declare function loseNativeRun(ctx: NativeRunFinishContext, reason: string): Promise<Run>;
|
|
377
|
+
/** Where a run stands for the native gateway: still drivable, cancelled (its task), or otherwise ended. */
|
|
378
|
+
export declare function runDrivability(db: RunnerDb, runId: string): Promise<RunDrivability>;
|
|
379
|
+
/**
|
|
380
|
+
* What a sandbox worker is given: the pinned agent and tool definitions, which names are built-ins
|
|
381
|
+
* (served by the gateway), and each user tool's code and schema only — never its capabilities,
|
|
382
|
+
* secret names, or values, which stay with the gateway's privileged host.
|
|
383
|
+
*/
|
|
384
|
+
export declare function sandboxWorkerInput(runId: string, loaded: LoadedNativeRun, tools: Pick<ReturnType<typeof createNativeRunTools>, "builtinHandler" | "toolsByName">): WorkerInput;
|
|
385
|
+
/** What the durable delegation needs from the gateway ledger (src/native-worker/ledger.ts). */
|
|
386
|
+
export type DelegationLedger = Pick<PrismaGatewayLedger, "claim" | "recordResult" | "setDelegation" | "delegation" | "waitingChildAgentIds">;
|
|
387
|
+
export interface DurableDelegationContext {
|
|
388
|
+
runId: string;
|
|
389
|
+
existingRun: Run;
|
|
390
|
+
loaded: LoadedNativeRun;
|
|
391
|
+
providers: NativeRunProviders;
|
|
392
|
+
db: RunnerDb;
|
|
393
|
+
issueTrackers: IssueTrackerRegistry | undefined;
|
|
394
|
+
ledger: DelegationLedger;
|
|
395
|
+
sessionId: string;
|
|
396
|
+
/** Every secret value the run can read, to redact its logs by exact value (unset or failing: nothing is logged of an error but its name and code). */
|
|
397
|
+
secretValues?: () => Promise<string[]>;
|
|
398
|
+
/** How long one call waits on the child before answering `pending` (the worker calls again). */
|
|
399
|
+
pollWindowMs?: number;
|
|
400
|
+
pollIntervalMs?: number;
|
|
401
|
+
now?: () => number;
|
|
402
|
+
sleep?: (ms: number) => Promise<void>;
|
|
403
|
+
}
|
|
404
|
+
export type DurableDelegationOutcome = {
|
|
405
|
+
result: string;
|
|
406
|
+
} | {
|
|
407
|
+
pending: true;
|
|
408
|
+
};
|
|
409
|
+
/** Long-poll window: well under common proxy and load-balancer idle timeouts. */
|
|
410
|
+
export declare const DELEGATION_POLL_WINDOW_MS = 20000;
|
|
411
|
+
/**
|
|
412
|
+
* A delegate_to_* call from a sandboxed run, served by the native gateway. The in-process branch
|
|
413
|
+
* holds its admission, budget wait, and child wait in one process's memory for the child's whole
|
|
414
|
+
* life; this one keeps them on the call's ledger row, so the worker can call again with the same
|
|
415
|
+
* callId — on any control-plane replica, before or after a restart — and continue where it was:
|
|
416
|
+
*
|
|
417
|
+
* - every child, native or coding, is a managed run dispatched through dispatchRun and the
|
|
418
|
+
* Executor (never inline: an inline child dies with the replica, and the reconciler does not
|
|
419
|
+
* reap unmanaged runs);
|
|
420
|
+
* - admission re-checks the per-run delegation limit under a run-scoped advisory lock inside the
|
|
421
|
+
* child's own transaction, so parallel delegations on different replicas cannot exceed it;
|
|
422
|
+
* - a delegation the budget would refuse while sibling children still run is recorded as waiting
|
|
423
|
+
* and re-evaluated on each call (parallelDelegations), up to the same bound as in process;
|
|
424
|
+
* - each call waits on the child row up to `pollWindowMs`, then answers `pending`.
|
|
425
|
+
*
|
|
426
|
+
* Every refusal and result uses the same helpers, and so the same messages, as in process.
|
|
427
|
+
*/
|
|
428
|
+
export declare function durableDelegate(ctx: DurableDelegationContext, callId: string, name: string, argsJson: string): Promise<DurableDelegationOutcome>;
|
|
429
|
+
/** The integrations a native run uses, as executeRun derives them from its providers. */
|
|
430
|
+
export declare function nativeRunIntegrations(providers: NativeRunProviders, db: RunnerDb): {
|
|
431
|
+
reviewHosts: Partial<Record<import("../providers/review-host/types.js").ReviewHostProvider, import("../providers/review-host/types.js").CodeReviewHost>> | undefined;
|
|
432
|
+
repoAccess: RepoAccessGate | undefined;
|
|
433
|
+
issueTrackers: Partial<Record<"jira", import("../providers/issue-tracker/types.js").IssueTracker>> | undefined;
|
|
434
|
+
};
|
|
435
|
+
/** How long a sandbox run's gateway session (and so its capability) stays valid. */
|
|
436
|
+
export declare const SANDBOX_RUN_MAX_SEC: number;
|
|
437
|
+
/** What a sandbox session pins: the worker's input (without its capability) and the trusted load. */
|
|
438
|
+
export interface SandboxSessionSnapshot {
|
|
439
|
+
input: WorkerInput;
|
|
440
|
+
loaded: LoadedNativeRun;
|
|
441
|
+
}
|
|
442
|
+
export type SandboxSessionOutcome = {
|
|
443
|
+
kind: "started";
|
|
444
|
+
input: WorkerInput;
|
|
445
|
+
capability: string;
|
|
446
|
+
sessionId: string;
|
|
447
|
+
/** Every secret value the run's user tools may read, read on demand (never stored); rejects when any read fails. */
|
|
448
|
+
secretValues: () => Promise<string[]>;
|
|
449
|
+
}
|
|
450
|
+
/** The run ended before a worker was needed (already terminal, or failed at load). */
|
|
451
|
+
| {
|
|
452
|
+
kind: "ended";
|
|
453
|
+
run: Run;
|
|
454
|
+
};
|
|
455
|
+
/**
|
|
456
|
+
* Starts a sandbox-mode run's trusted half: loads and pins the run, marks it running, records its
|
|
457
|
+
* gateway session (capability hash, deadline, budget, snapshot), and records `native-sandbox` as
|
|
458
|
+
* its execution backend — all before any worker exists. The caller launches the worker with the
|
|
459
|
+
* returned input, which carries the gateway URL and the one-time capability.
|
|
460
|
+
*/
|
|
461
|
+
export declare function createSandboxSession(options: {
|
|
462
|
+
runId: string;
|
|
463
|
+
providers: NativeRunProviders;
|
|
464
|
+
db: RunnerDb;
|
|
465
|
+
ledger: Pick<PrismaGatewayLedger, "createSession">;
|
|
466
|
+
gatewayUrl: string;
|
|
467
|
+
now?: Date;
|
|
468
|
+
/**
|
|
469
|
+
* Whether the worker's network isolation exists before the worker does (Docker's internal
|
|
470
|
+
* network). False (Kubernetes): the gateway refuses calls until the launcher proves it.
|
|
471
|
+
*/
|
|
472
|
+
networkReady?: boolean;
|
|
473
|
+
}): Promise<SandboxSessionOutcome>;
|
|
474
|
+
/**
|
|
475
|
+
* Every secret value the sandbox run's user tools `names` may read (readable or brokered): what its
|
|
476
|
+
* worker can be handed, so what the gateway checks its cause codes against and a launcher masks
|
|
477
|
+
* from the worker's output tail. Rejects when any read fails (readRedactionValues).
|
|
478
|
+
*/
|
|
479
|
+
export declare function userToolSecretValues(tools: Pick<ReturnType<typeof createNativeRunTools>, "readableSecretValues">, names: readonly string[]): Promise<string[]>;
|
|
480
|
+
/** Run.executionBackend for a sandbox-mode run whose worker is (or was) launched. */
|
|
481
|
+
export declare const NATIVE_SANDBOX_BACKEND = "native-sandbox";
|
|
482
|
+
/** The stored form of a sandbox capability: never the token itself. */
|
|
483
|
+
export declare function sandboxCapabilityHash(capability: string): string;
|
|
105
484
|
/** Drives an existing Run (created by `createRun` or the scheduler) to a terminal state. */
|
|
106
485
|
export declare function executeRun(runId: string, providers: NativeRunProviders, db?: RunnerDb, onText?: (delta: string) => void, step?: StepRunner): Promise<Run>;
|
|
107
486
|
/**
|