@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
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: status-comments
|
|
3
|
+
title: Run status comments
|
|
4
|
+
summary: Read GitHub and Jira run outcomes, package registry blocked statuses, and Slack notifications.
|
|
5
|
+
audience: operator
|
|
6
|
+
tags: [status, comments, github, jira, slack, blocked, packages, mentions]
|
|
7
|
+
appliesTo: >=0.2.1
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Run status comments
|
|
11
|
+
|
|
12
|
+
Mentioning the GitHub App starts a run and posts a working status comment.
|
|
13
|
+
The comment is updated when the run finishes, with pull request links, an
|
|
14
|
+
answer, or a failure. This includes a run that a deploy moved to a new
|
|
15
|
+
control-plane process. Jira requests also report their outcome in a status
|
|
16
|
+
comment.
|
|
17
|
+
|
|
18
|
+
When coding sub-runs record package refusals and no pull request or pushed
|
|
19
|
+
changes result, the comment shows ⛔ **Blocked by the package registry: no
|
|
20
|
+
changes were made.** It lists refused packages, registry codes, and fixes.
|
|
21
|
+
Slack notifications use the same blocked wording. Lists are limited to ten
|
|
22
|
+
distinct entries with a count of remaining refusals; use `get_run` for all.
|
|
23
|
+
When changes were pushed despite refusals, the pull request link stays and
|
|
24
|
+
there is a ⚠️ dependency install warning. Without refusals, the usual ✅
|
|
25
|
+
success or ❌ failure wording remains.
|
|
26
|
+
|
|
27
|
+
An approver can update the coding agent's package allowlist or policy with
|
|
28
|
+
`update_agent` (requires `packages:approve` or `agents:admin`), then mention
|
|
29
|
+
`@wardby` again. See [Package refusal errors](errors/package-refusals.md) for
|
|
30
|
+
code-specific fixes and [Approve packages for coding agents](coding-packages.md)
|
|
31
|
+
for policy details. Malware checks cannot be bypassed.
|
package/help/stop-run.md
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: stop-run
|
|
3
|
+
title: Stop or cancel a run
|
|
4
|
+
summary: Use stop_run to stop a pending, queued, or running run and its in-flight sub-agent runs; it ends as cancelled.
|
|
5
|
+
audience: operator
|
|
6
|
+
tags: [runs, stop run, cancel run, stop_run, cancelled, schedules, coding-agents, native-agents, sandbox]
|
|
7
|
+
appliesTo: ">=0.7.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Stop or cancel a run
|
|
11
|
+
|
|
12
|
+
Call the MCP tool `stop_run` with the run's id to stop a run that has not
|
|
13
|
+
finished. Add an optional `reason`; it is recorded on the run.
|
|
14
|
+
|
|
15
|
+
```text
|
|
16
|
+
stop_run {"runId": "<run id>", "reason": "unwanted scheduled run"}
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Find the id with `list_runs` (filter with `"status": "pending"` or
|
|
20
|
+
`"running"`). To stop a schedule from creating more runs, disable it with
|
|
21
|
+
`disable_schedule` as well; `stop_run` stops one run, not the schedule.
|
|
22
|
+
|
|
23
|
+
## What happens
|
|
24
|
+
|
|
25
|
+
The run ends as `cancelled`, with `Stopped by <your id> with stop_run: <reason>`
|
|
26
|
+
in its `stopRequestReason` (and, for a native run, in its `error`).
|
|
27
|
+
|
|
28
|
+
| The run is | `stop_run` |
|
|
29
|
+
| ------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
30
|
+
| Pending, or a coding run queued for a slot | Ends it now. It never starts. |
|
|
31
|
+
| A running native run in the control plane | Ends it now; the run stops at its next step (the model turn or tool call already under way finishes first). |
|
|
32
|
+
| A running native run in the sandbox | Ends it now and ends its gateway session, so the worker's next call is refused and it exits. A worker still running after a short grace (5 seconds) is killed and removed; a warm pool worker is never reused. |
|
|
33
|
+
| A running coding run | Ends it, cancels its model proxy session, and stops and removes its worker. It opens or updates no pull request afterwards. |
|
|
34
|
+
| Already finished (any other status) | Changes nothing and returns its status. Calling `stop_run` again is safe. |
|
|
35
|
+
|
|
36
|
+
Sub-agent runs the stopped run delegated, and that are still pending or running,
|
|
37
|
+
are stopped too (their ids are in `stoppedChildRunIds`).
|
|
38
|
+
|
|
39
|
+
Spend already recorded stays counted against the budget. A stopped run is not a
|
|
40
|
+
failure: Slack notifications say it was cancelled, and no defect is filed.
|
|
41
|
+
|
|
42
|
+
If the result still shows `pending` or `running`, the stop has been recorded
|
|
43
|
+
but has not landed yet; check again with `get_run`.
|
|
44
|
+
|
|
45
|
+
## Who can stop a run
|
|
46
|
+
|
|
47
|
+
You need the `runs:trigger` scope and `execute` access to the run's agent, the
|
|
48
|
+
same as `trigger_agent`. The agent's owner can stop any of its runs, including
|
|
49
|
+
scheduled ones; anyone else can stop only runs they triggered. A run you cannot
|
|
50
|
+
see returns `Run "<id>" not found.`, exactly like a missing one; a run you
|
|
51
|
+
triggered but whose agent you can no longer execute returns a 403.
|
|
52
|
+
|
|
53
|
+
## Related
|
|
54
|
+
|
|
55
|
+
- [Operate managed agents](operating-agents.md)
|
|
56
|
+
- [Run native agents in a sandbox](native-sandbox.md)
|
|
57
|
+
- [Slack notifications](slack-notifications.md)
|
|
58
|
+
- [Run lost](errors/run-lost.md), for runs a deploy interrupted
|
|
@@ -41,3 +41,31 @@ with `already_dispatched` and a message naming how many delegations were
|
|
|
41
41
|
made and how many are waiting for budget.
|
|
42
42
|
|
|
43
43
|
For a shared-group refusal, read [Budget group exhausted](../errors/budget-group-exhausted.md).
|
|
44
|
+
|
|
45
|
+
To see exactly which limit stopped a run and with what numbers, read
|
|
46
|
+
`budgetEvents` in `get_run`; see the help article `errors/budget-exhausted`.
|
|
47
|
+
A lead and the sub-agents it starts in the same budget group hold the lead's
|
|
48
|
+
budget once (or its live sub-agent runs' unspent holds, if the lead's overrun
|
|
49
|
+
let them be topped up past it), and `get_budget_group` reports `heldRuns` for
|
|
50
|
+
each period.
|
|
51
|
+
|
|
52
|
+
A coding run's per-request holds price the cached part of the input at the
|
|
53
|
+
cache-read rate after the first reply of a conversation; see the help article
|
|
54
|
+
`errors/budget-exhausted`.
|
|
55
|
+
|
|
56
|
+
## Allowing a small overrun
|
|
57
|
+
|
|
58
|
+
If coding runs stop just short of finishing, set `allowedOverrunPercent` (0 to
|
|
59
|
+
100, default 0) on the coding agent so a run may spend that percent beyond
|
|
60
|
+
`budgetUsd`. Set it on a lead agent that delegates to raise its run tree's
|
|
61
|
+
ceiling for coding sub-agents; native runs' own model calls are not affected.
|
|
62
|
+
|
|
63
|
+
The overrun is not reserved. A run reserves its base budget, and is topped up
|
|
64
|
+
toward its limit while it works, only from room its budget group and run tree
|
|
65
|
+
have at that moment. Budget group and run-tree caps stay hard: in a full group
|
|
66
|
+
the run stops at what it was granted, and its budget sentence says so ("Only
|
|
67
|
+
$0.40 of its 10% allowed overrun was available because the "team" group had no
|
|
68
|
+
more left of its daily cap."). `get_run` shows `budgetBaseUsd`, the limit in `budgetLimitUsd`, and what
|
|
69
|
+
has been granted so far in `budgetReservedUsd`. A run still stopped for budget
|
|
70
|
+
keeps its work as a draft pull request you can continue. See
|
|
71
|
+
`errors/budget-exhausted`.
|
|
@@ -3,7 +3,7 @@ id: troubleshooting/coding-workers
|
|
|
3
3
|
title: Troubleshoot coding workers
|
|
4
4
|
summary: Investigate coding-worker setup, isolation preflight, and safe failure handling.
|
|
5
5
|
audience: operator
|
|
6
|
-
tags: [coding-agents, docker, kubernetes, isolation, services]
|
|
6
|
+
tags: [coding-agents, quota, coding_queue_timeout, docker, kubernetes, isolation, services, debug-trace, debugTraceMinutes, debugTraceMaxMb, maxOutputTokens, output-tokens, claude-code, codex, memory, CODING_MEMORY_MB, CODING_CPUS, out-of-memory]
|
|
7
7
|
appliesTo: >=0.2.1
|
|
8
8
|
---
|
|
9
9
|
|
|
@@ -23,6 +23,27 @@ Review the deployment guide for your target before assigning a coding profile.
|
|
|
23
23
|
|
|
24
24
|
For the specific isolation refusal, read [Coding-worker isolation unavailable](../errors/docker-isolation-unsupported.md).
|
|
25
25
|
|
|
26
|
+
## Cluster preflight at start-up (Kubernetes)
|
|
27
|
+
|
|
28
|
+
With `JOB_LAUNCHER=kubernetes`, a long-running server process (`wardby
|
|
29
|
+
serve`, `wardby mcp` over either transport, or `wardby scheduler`) starts
|
|
30
|
+
the cluster preflight as soon as it starts, instead of waiting for the
|
|
31
|
+
first coding run. Check the process's start-up log for the result: an info
|
|
32
|
+
line when the preflight passes, or a warning naming the failure code (the
|
|
33
|
+
same `kubernetes_isolation_unsupported:<check>` codes `wardby coding
|
|
34
|
+
preflight` reports) when it does not.
|
|
35
|
+
|
|
36
|
+
A failed start-up preflight is logged and retried on the next coding run,
|
|
37
|
+
not left failing until a restart: fix the underlying configuration and the
|
|
38
|
+
next run checks the cluster again on its own. If a run was already
|
|
39
|
+
starting at the moment the start-up preflight failed, that one run still
|
|
40
|
+
fails with the logged error — it was waiting on that same check — but the
|
|
41
|
+
run after it retries. This differs from a preflight failure a coding run
|
|
42
|
+
triggers itself (no start-up check ran, or the cluster is still broken when
|
|
43
|
+
the next run checks it): that failure does stick, failing every subsequent
|
|
44
|
+
run in that process until it is restarted. Run `wardby coding preflight` at
|
|
45
|
+
any time for a one-off check against the same cluster.
|
|
46
|
+
|
|
26
47
|
## Runs that stop at the turn limit
|
|
27
48
|
|
|
28
49
|
A Claude Code run whose failure category is `turn_limit` reached its agent's
|
|
@@ -33,14 +54,85 @@ raise `codingProfile.maxTurns` (up to 1000) with `update_agent` for the first,
|
|
|
33
54
|
or narrow the task for the second. Codex runs have no turn limit. See
|
|
34
55
|
[Coding run reached its turn limit](../errors/coding-turn-limit.md).
|
|
35
56
|
|
|
57
|
+
## Claude Code replies that exceed the output token maximum
|
|
58
|
+
|
|
59
|
+
A Claude Code run caps each model reply at 32000 output tokens by default,
|
|
60
|
+
thinking included. When a reply needs more, Claude Code ends with an error
|
|
61
|
+
that the response exceeded the output token maximum and the run fails as a
|
|
62
|
+
stream failure. Raise `codingProfile.maxOutputTokens` (1024 to 128000; `null`
|
|
63
|
+
restores the default) with `update_agent`, for example
|
|
64
|
+
`{ "id": "<agent id>", "codingProfile": { "maxOutputTokens": 64000 } }`. The
|
|
65
|
+
coding proxy reserves `maxOutputTokens` × the model's output price against the
|
|
66
|
+
run's budget for every model request, so a higher value needs a larger
|
|
67
|
+
`budgetUsd`; a request whose reservation does not fit ends the run as
|
|
68
|
+
`budget_exhausted` (see the help article `errors/budget-exhausted`), so a small
|
|
69
|
+
budget runs out sooner. Codex agents refuse the
|
|
70
|
+
setting. The default and the setting need a Claude Code worker image from
|
|
71
|
+
Wardby 0.7.0 or later: an older pinned image still caps replies at 4096 tokens
|
|
72
|
+
and rejects a run whose agent sets `maxOutputTokens`.
|
|
73
|
+
|
|
74
|
+
## Runs refused because the provider is out of credit
|
|
75
|
+
|
|
76
|
+
A diagnostic of `job_coding_stream_quota_exceeded` means the model provider
|
|
77
|
+
behind the coding proxy refused the run because its account is out of credit or
|
|
78
|
+
over a spend limit, not that the run's own budget ran out. Every run on that
|
|
79
|
+
account fails the same way until the limit is raised; see the help article
|
|
80
|
+
`errors/coding-stream-quota-exceeded`.
|
|
81
|
+
|
|
82
|
+
## Runs that die while running checks (out of memory)
|
|
83
|
+
|
|
84
|
+
A run that fails with `coding_failure_executor` while it runs a linter, a type
|
|
85
|
+
check or a test suite has often run out of memory. Each coding pod gets
|
|
86
|
+
`CODING_MEMORY_MB` (2048 MiB by default) and `CODING_CPUS` (1 by default). In a
|
|
87
|
+
Codex run the agent and its commands share that pod. In a Claude Code run the
|
|
88
|
+
commands run in a tool-runner container limited to at most 512 MiB and 0.25 CPU.
|
|
89
|
+
|
|
90
|
+
1. Turn on a debug trace (below) and run it again. A Node.js crash shows as
|
|
91
|
+
`Aborted` with exit code 134 in a command's output.
|
|
92
|
+
2. Raise `CODING_MEMORY_MB` and `CODING_CPUS` on the control plane. On GKE, deploy
|
|
93
|
+
with `CODING_MEMORY_MB=6144 CODING_CPUS=2 deploy/gke/up.sh` (see the GKE deploy
|
|
94
|
+
guide). This applies to every coding run.
|
|
95
|
+
3. For a Claude Code agent with heavy checks, run it on Codex instead, since raising
|
|
96
|
+
the pod's memory doesn't raise the tool runner's limit.
|
|
97
|
+
|
|
98
|
+
## Debug trace
|
|
99
|
+
|
|
100
|
+
When a run's fixed error code or a slow run doesn't say enough, an admin can
|
|
101
|
+
trace the agent's runs for a while:
|
|
102
|
+
`update_agent { "id": "<agent id>", "codingProfile": { "debugTraceMinutes": 30 } }`.
|
|
103
|
+
Each run dispatched in that window writes its whole agent stream, redacted, to
|
|
104
|
+
its worker container's log under a `debugTrace` key. That covers Codex events,
|
|
105
|
+
or, for Claude Code (Wardby 0.7.0 or later), every Agent SDK message:
|
|
106
|
+
each command the agent ran with its output, the final usage and duration, plus
|
|
107
|
+
stream failures in full. For Claude Code, the time between a command's
|
|
108
|
+
`tool_use` and its `tool_result` line is how long that command took. A run's
|
|
109
|
+
trace stops at 2 MiB by default; set `codingProfile.debugTraceMaxMb` (1 to 64,
|
|
110
|
+
admin only) for more. The trace can hold prompts and repository content, so
|
|
111
|
+
keep it on briefly. See
|
|
112
|
+
[the debug trace section](../../docs/coding-worker-isolation.md#debug-trace)
|
|
113
|
+
for where the log lives and what is redacted.
|
|
114
|
+
|
|
36
115
|
## Runs that wait for cluster capacity
|
|
37
116
|
|
|
38
|
-
On Kubernetes
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
117
|
+
On Kubernetes, a run whose pod would not fit the namespace quota waits instead
|
|
118
|
+
of failing. With `KUBERNETES_RESOURCE_QUOTA` set, it is held before it starts;
|
|
119
|
+
without it, or if the quota fills up meanwhile, the cluster refuses the pod and
|
|
120
|
+
the run returns to the queue. Either way it stays `pending` with
|
|
121
|
+
`codingQueuedAt` set, like a run over `CODING_MAX_CONCURRENT`, and is retried
|
|
122
|
+
(a refused run no sooner than about a minute later). A refused run shows
|
|
123
|
+
`running` briefly, then `pending` again.
|
|
124
|
+
|
|
125
|
+
A run still waiting after `CODING_QUEUE_TIMEOUT_SEC` fails with
|
|
126
|
+
`coding_queue_timeout`. That can mean either the concurrency limit or the
|
|
127
|
+
namespace quota. To tell which, look for the control-plane log line
|
|
128
|
+
`coding run waiting for capacity: the cluster refused its pod` (quota), and run
|
|
129
|
+
`kubectl describe resourcequota -n <namespace>` to compare used against hard
|
|
130
|
+
limits. If the quota is full, raise it, lower the run pods' size, or lower
|
|
131
|
+
`CODING_MAX_CONCURRENT` so fewer runs compete; size the quota for
|
|
132
|
+
`CODING_MAX_CONCURRENT` times the run pod's requests. If the log line
|
|
133
|
+
`kubernetes_resource_quota_unconfigured` appears, set `KUBERNETES_RESOURCE_QUOTA`
|
|
134
|
+
to the named quota and grant the launcher `get` on it. See
|
|
135
|
+
[the queue section](../../docs/coding-worker-isolation.md#control-plane-configuration).
|
|
44
136
|
|
|
45
137
|
A lead agent with `parallelDelegations` starts several coding runs together;
|
|
46
138
|
expect some of them to queue when the lead fans out wider than the free slots.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wardby/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "Self-hosted control plane for budget-guarded AI agents.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"homepage": "https://github.com/wardby/wardby#readme",
|
|
@@ -58,16 +58,20 @@
|
|
|
58
58
|
"build:help": "tsx src/help/build.ts",
|
|
59
59
|
"sync:reviewer-prompt": "tsx src/quickstart/sync-reviewer-prompt.ts",
|
|
60
60
|
"build:viewer-schemas": "tsx src/viewer/build-schemas.ts",
|
|
61
|
-
"build": "npm run build:vendor && PRISMA_HIDE_UPDATE_MESSAGE=1 prisma generate && tsc -p tsconfig.build.json && npm run build:help",
|
|
61
|
+
"build": "npm run build:vendor && PRISMA_HIDE_UPDATE_MESSAGE=1 prisma generate && tsc -p tsconfig.build.json && node scripts/copy-build-modules.mjs && npm run build:help",
|
|
62
62
|
"prepare": "npm run build:vendor && PRISMA_HIDE_UPDATE_MESSAGE=1 prisma generate",
|
|
63
63
|
"prepack": "npm run build",
|
|
64
|
-
"cli": "tsx --conditions=wardby-source src/
|
|
64
|
+
"cli": "tsx --conditions=wardby-source src/wardby-bin.ts",
|
|
65
65
|
"codex:rerecord": "tsx --conditions=wardby-source src/tools/codex-rerecord.ts",
|
|
66
66
|
"capture:autopilot": "tsx --conditions=wardby-source src/tools/capture-autopilot-dry-run.ts",
|
|
67
67
|
"test": "npm run build:vendor && vitest run",
|
|
68
68
|
"test:package": "node scripts/npm-package-acceptance.mjs",
|
|
69
69
|
"test:contract": "vitest run --config vitest.contract.config.ts",
|
|
70
|
+
"test:release": "npm run build:vendor && vitest run --config vitest.release.config.ts",
|
|
70
71
|
"test:kubernetes": "WARDBY_KUBERNETES_TEST=1 vitest run src/providers/jobs/kubernetes.integration.test.ts",
|
|
72
|
+
"test:native-docker": "WARDBY_NATIVE_DOCKER_TEST=1 vitest run src/native-worker/docker.acceptance.test.ts",
|
|
73
|
+
"test:native-kind": "WARDBY_NATIVE_KIND_TEST=1 vitest run src/native-worker/kubernetes.acceptance.test.ts",
|
|
74
|
+
"test:native-cluster": "WARDBY_NATIVE_CLUSTER_TEST=1 vitest run src/native-worker/kubernetes-cluster.acceptance.test.ts",
|
|
71
75
|
"prisma:generate": "PRISMA_HIDE_UPDATE_MESSAGE=1 prisma generate",
|
|
72
76
|
"prisma:migrate": "prisma migrate deploy",
|
|
73
77
|
"dbos:migrate": "dbos schema \"$DATABASE_URL\"",
|
|
@@ -79,13 +83,14 @@
|
|
|
79
83
|
"observability:smoke": "node scripts/grafana-smoke.mjs",
|
|
80
84
|
"observability:down": "docker compose --env-file .env.local -f deploy/local/docker-compose.yml -f deploy/local/docker-compose.phase5.yml -f deploy/observability/docker-compose.grafana.yml down",
|
|
81
85
|
"worker:image:local": "node scripts/build-local-coding-worker.mjs",
|
|
86
|
+
"native-worker:image:local": "docker build -f src/native-worker/Dockerfile -t wardby-native-worker:local .",
|
|
82
87
|
"test:phase5": "vitest run src/coding/observability.test.ts src/coding/profile.test.ts src/coding/protocol.test.ts src/providers/coding-proxy/proxy.test.ts src/providers/coding-proxy/secure-fetch.test.ts src/providers/coding-proxy/metering.test.ts src/providers/coding-proxy/runtime.test.ts src/providers/executor/container.test.ts src/providers/jobs/docker.test.ts src/providers/jobs/docker-isolation.test.ts src/providers/jobs/fake.test.ts src/providers/vcs/github.test.ts src/mcp/tools/trigger.test.ts src/core/webhooks.test.ts src/claude-coding-worker/driver.test.ts src/claude-coding-worker/sdk.test.ts src/claude-coding-worker/image-policy.test.ts src/claude-tool-runner/command.test.mjs src/claude-tool-runner/main.test.mjs src/claude-tool-runner/image-policy.test.ts",
|
|
83
88
|
"test:phase5:database": "vitest run src/coding/schema.database.test.ts src/providers/coding-proxy/prisma-ledger.database.test.ts src/providers/executor/container.database.test.ts src/core/coding-concurrency.database.test.ts src/core/scheduler.test.ts src/mcp/integration.test.ts",
|
|
84
89
|
"verify:phase5": "npm run typecheck && npm run test:phase5 && npm run build && npm run worker:image:policy",
|
|
85
90
|
"test:docker-isolation": "node scripts/docker-isolation-acceptance.mjs",
|
|
86
91
|
"test:docker-job": "node scripts/docker-job-acceptance.mjs",
|
|
87
92
|
"test:docker-services": "node scripts/docker-services-acceptance.mjs",
|
|
88
|
-
"claude:images:local": "docker build -f src/claude-coding-worker/Dockerfile -t wardby-claude-coding-worker:phase5 . && docker build -f src/claude-tool-runner/Dockerfile -t wardby-claude-tool-runner:phase5 . && docker build -f src/claude-tool-runner/Dockerfile --target node-python -t wardby-claude-tool-runner:phase5-node-python .",
|
|
93
|
+
"claude:images:local": "docker build -f src/claude-coding-worker/Dockerfile -t wardby-claude-coding-worker:phase5 . && docker build -f src/claude-tool-runner/Dockerfile -t wardby-claude-tool-runner:phase5 . && docker build -f src/claude-tool-runner/Dockerfile --target node-python -t wardby-claude-tool-runner:phase5-node-python . && docker build -f src/claude-tool-runner/Dockerfile.custom-example -t wardby-claude-tool-runner-custom:phase5 .",
|
|
89
94
|
"test:claude-compatibility": "docker build -f src/claude-coding-worker/Dockerfile.compatibility -t wardby-claude-compat:phase5 . && docker run --rm wardby-claude-compat:phase5",
|
|
90
95
|
"test:claude-docker": "node scripts/claude-docker-acceptance.mjs",
|
|
91
96
|
"test:production-boundary": "node scripts/production-boundary-policy.mjs",
|
|
@@ -95,15 +100,22 @@
|
|
|
95
100
|
"dependencies": {
|
|
96
101
|
"@anthropic-ai/bedrock-sdk": "^0.33.4",
|
|
97
102
|
"@anthropic-ai/sdk": "^0.124.0",
|
|
103
|
+
"@aws-crypto/sha256-js": "4.0.0",
|
|
104
|
+
"@aws-sdk/client-s3": "3.1140.0",
|
|
105
|
+
"@aws-sdk/lib-storage": "3.1140.0",
|
|
106
|
+
"@aws-sdk/rds-signer": "3.1140.0",
|
|
107
|
+
"@aws-sdk/s3-request-presigner": "3.1140.0",
|
|
98
108
|
"@dbos-inc/dbos-sdk": "4.27.6",
|
|
109
|
+
"@google-cloud/storage": "8.2.0",
|
|
99
110
|
"@kubernetes/client-node": "^2.0.0",
|
|
100
|
-
"@modelcontextprotocol/client": "^2.
|
|
101
|
-
"@modelcontextprotocol/node": "^2.
|
|
102
|
-
"@modelcontextprotocol/server": "^2.
|
|
111
|
+
"@modelcontextprotocol/client": "^2.4.0",
|
|
112
|
+
"@modelcontextprotocol/node": "^2.1.2",
|
|
113
|
+
"@modelcontextprotocol/server": "^2.4.0",
|
|
103
114
|
"@prisma/adapter-pg": "7.10.0",
|
|
104
115
|
"@prisma/client": "7.10.0",
|
|
105
116
|
"@prometheus-io/client": "^0.16.1",
|
|
106
117
|
"@renovatebot/pep440": "^5.0.1",
|
|
118
|
+
"@smithy/signature-v4": "5.7.4",
|
|
107
119
|
"croner": "^10.0.1",
|
|
108
120
|
"dotenv-flow": "^4.1.0",
|
|
109
121
|
"fast-xml-parser": "^5.11.1",
|
|
@@ -117,15 +129,15 @@
|
|
|
117
129
|
"pino": "^9.14.0",
|
|
118
130
|
"quickjs-emscripten": "^0.32.0",
|
|
119
131
|
"semver": "^7.8.5",
|
|
132
|
+
"smol-toml": "1.9.0",
|
|
120
133
|
"tar-stream": "^3.2.1",
|
|
121
|
-
"undici": "^8.
|
|
134
|
+
"undici": "^8.12.3",
|
|
122
135
|
"yaml": "^2.9.1",
|
|
123
|
-
"zod": "^
|
|
124
|
-
"zod-to-json-schema": "^3.25.2"
|
|
136
|
+
"zod": "^4.6.7"
|
|
125
137
|
},
|
|
126
138
|
"devDependencies": {
|
|
127
139
|
"@eslint/js": "^10.0.1",
|
|
128
|
-
"@openai/codex-sdk": "0.
|
|
140
|
+
"@openai/codex-sdk": "0.160.1",
|
|
129
141
|
"@types/node": "^24.0.0",
|
|
130
142
|
"@types/papaparse": "^5.5.2",
|
|
131
143
|
"@types/pg": "8.23.1",
|
|
@@ -141,10 +153,12 @@
|
|
|
141
153
|
"tsx": "^4.19.0",
|
|
142
154
|
"typescript": "^5.6.0",
|
|
143
155
|
"typescript-eslint": "^8.69.0",
|
|
144
|
-
"vitest": "^4.1.
|
|
156
|
+
"vitest": "^4.1.12",
|
|
157
|
+
"zod-to-json-schema": "^3.25.2"
|
|
145
158
|
},
|
|
146
159
|
"overrides": {
|
|
147
160
|
"deepmerge-ts": "8.0.2",
|
|
148
|
-
"mysql2": "3.24.4"
|
|
161
|
+
"mysql2": "3.24.4",
|
|
162
|
+
"uuid": "11.1.1"
|
|
149
163
|
}
|
|
150
164
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
-- Additive: per-agent native execution mode (control-plane or sandbox) and the
|
|
2
|
+
-- per-run snapshot the executor routes on. Existing agents default to
|
|
3
|
+
-- control-plane; existing runs keep a null snapshot (legacy = control plane).
|
|
4
|
+
|
|
5
|
+
-- CreateEnum
|
|
6
|
+
CREATE TYPE "NativeExecutionMode" AS ENUM ('control-plane', 'sandbox');
|
|
7
|
+
|
|
8
|
+
-- AlterTable
|
|
9
|
+
ALTER TABLE "Agent" ADD COLUMN "nativeExecutionMode" "NativeExecutionMode" NOT NULL DEFAULT 'control-plane';
|
|
10
|
+
|
|
11
|
+
-- AlterTable
|
|
12
|
+
ALTER TABLE "Run" ADD COLUMN "nativeExecutionMode" "NativeExecutionMode";
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
-- Additive: the native sandbox gateway's session and call ledger. A session
|
|
2
|
+
-- authenticates a sandbox worker by capability hash and pins what its run
|
|
3
|
+
-- loaded; calls reserve and settle model spend and keep replayable results.
|
|
4
|
+
|
|
5
|
+
-- CreateEnum
|
|
6
|
+
CREATE TYPE "NativeGatewaySessionStatus" AS ENUM ('active', 'finished', 'cancelled');
|
|
7
|
+
|
|
8
|
+
-- CreateEnum
|
|
9
|
+
CREATE TYPE "NativeGatewayCallStatus" AS ENUM ('reserved', 'completed', 'released', 'uncertain', 'pending', 'waiting_budget');
|
|
10
|
+
|
|
11
|
+
-- CreateTable
|
|
12
|
+
CREATE TABLE "NativeGatewaySession" (
|
|
13
|
+
"id" TEXT NOT NULL,
|
|
14
|
+
"runId" TEXT NOT NULL,
|
|
15
|
+
"capabilityHash" TEXT NOT NULL,
|
|
16
|
+
"status" "NativeGatewaySessionStatus" NOT NULL DEFAULT 'active',
|
|
17
|
+
"deadlineAt" TIMESTAMP(3) NOT NULL,
|
|
18
|
+
"budgetUsd" DECIMAL(18,10) NOT NULL,
|
|
19
|
+
"snapshot" JSONB NOT NULL,
|
|
20
|
+
"budgetExhaustedAt" TIMESTAMP(3),
|
|
21
|
+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
22
|
+
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
23
|
+
|
|
24
|
+
CONSTRAINT "NativeGatewaySession_pkey" PRIMARY KEY ("id")
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
-- CreateTable
|
|
28
|
+
CREATE TABLE "NativeGatewayCall" (
|
|
29
|
+
"id" TEXT NOT NULL,
|
|
30
|
+
"sessionId" TEXT NOT NULL,
|
|
31
|
+
"callId" TEXT NOT NULL,
|
|
32
|
+
"method" TEXT NOT NULL,
|
|
33
|
+
"status" "NativeGatewayCallStatus" NOT NULL,
|
|
34
|
+
"reservationUsd" DECIMAL(18,10),
|
|
35
|
+
"actualCostUsd" DECIMAL(18,10),
|
|
36
|
+
"inputTokens" INTEGER,
|
|
37
|
+
"outputTokens" INTEGER,
|
|
38
|
+
"cachedInputTokens" INTEGER,
|
|
39
|
+
"cacheWriteTokens" INTEGER,
|
|
40
|
+
"result" JSONB,
|
|
41
|
+
"childRunId" TEXT,
|
|
42
|
+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
43
|
+
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
44
|
+
"completedAt" TIMESTAMP(3),
|
|
45
|
+
|
|
46
|
+
CONSTRAINT "NativeGatewayCall_pkey" PRIMARY KEY ("id")
|
|
47
|
+
);
|
|
48
|
+
|
|
49
|
+
-- CreateIndex
|
|
50
|
+
CREATE UNIQUE INDEX "NativeGatewaySession_runId_key" ON "NativeGatewaySession"("runId");
|
|
51
|
+
|
|
52
|
+
-- CreateIndex
|
|
53
|
+
CREATE UNIQUE INDEX "NativeGatewaySession_capabilityHash_key" ON "NativeGatewaySession"("capabilityHash");
|
|
54
|
+
|
|
55
|
+
-- CreateIndex
|
|
56
|
+
CREATE INDEX "NativeGatewayCall_sessionId_status_idx" ON "NativeGatewayCall"("sessionId", "status");
|
|
57
|
+
|
|
58
|
+
-- CreateIndex
|
|
59
|
+
CREATE UNIQUE INDEX "NativeGatewayCall_sessionId_callId_key" ON "NativeGatewayCall"("sessionId", "callId");
|
|
60
|
+
|
|
61
|
+
-- AddForeignKey
|
|
62
|
+
ALTER TABLE "NativeGatewaySession" ADD CONSTRAINT "NativeGatewaySession_runId_fkey" FOREIGN KEY ("runId") REFERENCES "Run"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
63
|
+
|
|
64
|
+
-- AddForeignKey
|
|
65
|
+
ALTER TABLE "NativeGatewayCall" ADD CONSTRAINT "NativeGatewayCall_sessionId_fkey" FOREIGN KEY ("sessionId") REFERENCES "NativeGatewaySession"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
-- Additive: runs dispatched (or asked to stop) by a process that holds no
|
|
2
|
+
-- executor -- the native sandbox gateway -- are started (or stopped) by the
|
|
3
|
+
-- scheduler leader through the server's executor.
|
|
4
|
+
|
|
5
|
+
-- AlterTable
|
|
6
|
+
ALTER TABLE "Run" ADD COLUMN "startDeferredAt" TIMESTAMP(3),
|
|
7
|
+
ADD COLUMN "stopRequestedAt" TIMESTAMP(3),
|
|
8
|
+
ADD COLUMN "stopRequestReason" TEXT;
|
|
9
|
+
|
|
10
|
+
-- CreateIndex
|
|
11
|
+
CREATE INDEX "Run_startDeferredAt_idx" ON "Run"("startDeferredAt");
|
|
12
|
+
|
|
13
|
+
-- CreateIndex
|
|
14
|
+
CREATE INDEX "Run_stopRequestedAt_idx" ON "Run"("stopRequestedAt");
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
-- Workflow notifications (Slack): channel links, the event outbox, per-channel
|
|
2
|
+
-- deliveries, and thread parents. Additive only.
|
|
3
|
+
|
|
4
|
+
CREATE TABLE "NotificationChannel" (
|
|
5
|
+
"id" TEXT NOT NULL,
|
|
6
|
+
"provider" TEXT NOT NULL,
|
|
7
|
+
"channelId" TEXT NOT NULL,
|
|
8
|
+
"channelName" TEXT,
|
|
9
|
+
"issueProvider" TEXT,
|
|
10
|
+
"projectKey" TEXT,
|
|
11
|
+
"agentId" TEXT,
|
|
12
|
+
"events" TEXT[] DEFAULT ARRAY[]::TEXT[],
|
|
13
|
+
"includeCost" BOOLEAN NOT NULL DEFAULT false,
|
|
14
|
+
"lastError" TEXT,
|
|
15
|
+
"lastErrorAt" TIMESTAMP(3),
|
|
16
|
+
"authorizedById" TEXT NOT NULL,
|
|
17
|
+
"authorizedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
18
|
+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
19
|
+
CONSTRAINT "NotificationChannel_pkey" PRIMARY KEY ("id"),
|
|
20
|
+
CONSTRAINT "NotificationChannel_one_subject" CHECK (
|
|
21
|
+
("agentId" IS NOT NULL AND "issueProvider" IS NULL AND "projectKey" IS NULL)
|
|
22
|
+
OR ("agentId" IS NULL AND "issueProvider" IS NOT NULL AND "projectKey" IS NOT NULL)
|
|
23
|
+
)
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
-- Name truncated the way Prisma does for PostgreSQL's 63-byte identifier limit,
|
|
27
|
+
-- so `migrate diff` sees it as the @@unique([provider, channelId, issueProvider, projectKey]).
|
|
28
|
+
-- The one-subject CHECK above has no schema.prisma equivalent; migrate diff ignores it.
|
|
29
|
+
CREATE UNIQUE INDEX "NotificationChannel_provider_channelId_issueProvider_projec_key"
|
|
30
|
+
ON "NotificationChannel"("provider", "channelId", "issueProvider", "projectKey");
|
|
31
|
+
CREATE UNIQUE INDEX "NotificationChannel_provider_channelId_agentId_key"
|
|
32
|
+
ON "NotificationChannel"("provider", "channelId", "agentId");
|
|
33
|
+
CREATE INDEX "NotificationChannel_issueProvider_projectKey_idx"
|
|
34
|
+
ON "NotificationChannel"("issueProvider", "projectKey");
|
|
35
|
+
CREATE INDEX "NotificationChannel_agentId_idx" ON "NotificationChannel"("agentId");
|
|
36
|
+
|
|
37
|
+
ALTER TABLE "NotificationChannel" ADD CONSTRAINT "NotificationChannel_agentId_fkey"
|
|
38
|
+
FOREIGN KEY ("agentId") REFERENCES "Agent"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
39
|
+
|
|
40
|
+
CREATE TABLE "WorkflowEvent" (
|
|
41
|
+
"id" TEXT NOT NULL,
|
|
42
|
+
"kind" TEXT NOT NULL,
|
|
43
|
+
"dedupeKey" TEXT NOT NULL,
|
|
44
|
+
"runId" TEXT,
|
|
45
|
+
"agentId" TEXT,
|
|
46
|
+
"workItemProvider" TEXT,
|
|
47
|
+
"workItemKey" TEXT,
|
|
48
|
+
"codeProvider" TEXT,
|
|
49
|
+
"repository" TEXT,
|
|
50
|
+
"prNumber" INTEGER,
|
|
51
|
+
"payload" JSONB NOT NULL,
|
|
52
|
+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
53
|
+
CONSTRAINT "WorkflowEvent_pkey" PRIMARY KEY ("id")
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
CREATE UNIQUE INDEX "WorkflowEvent_dedupeKey_key" ON "WorkflowEvent"("dedupeKey");
|
|
57
|
+
CREATE INDEX "WorkflowEvent_createdAt_idx" ON "WorkflowEvent"("createdAt");
|
|
58
|
+
|
|
59
|
+
CREATE TABLE "NotificationDelivery" (
|
|
60
|
+
"id" TEXT NOT NULL,
|
|
61
|
+
"eventId" TEXT NOT NULL,
|
|
62
|
+
"provider" TEXT NOT NULL,
|
|
63
|
+
"channelId" TEXT NOT NULL,
|
|
64
|
+
"threadKey" TEXT NOT NULL,
|
|
65
|
+
"includeCost" BOOLEAN NOT NULL DEFAULT false,
|
|
66
|
+
"state" TEXT NOT NULL DEFAULT 'pending',
|
|
67
|
+
"attempts" INTEGER NOT NULL DEFAULT 0,
|
|
68
|
+
"nextAttemptAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
69
|
+
"lastError" TEXT,
|
|
70
|
+
"messageTs" TEXT,
|
|
71
|
+
"deliveredAt" TIMESTAMP(3),
|
|
72
|
+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
73
|
+
CONSTRAINT "NotificationDelivery_pkey" PRIMARY KEY ("id")
|
|
74
|
+
);
|
|
75
|
+
|
|
76
|
+
CREATE UNIQUE INDEX "NotificationDelivery_eventId_provider_channelId_key"
|
|
77
|
+
ON "NotificationDelivery"("eventId", "provider", "channelId");
|
|
78
|
+
CREATE INDEX "NotificationDelivery_state_nextAttemptAt_idx"
|
|
79
|
+
ON "NotificationDelivery"("state", "nextAttemptAt");
|
|
80
|
+
CREATE INDEX "NotificationDelivery_provider_channelId_threadKey_createdAt_idx"
|
|
81
|
+
ON "NotificationDelivery"("provider", "channelId", "threadKey", "createdAt");
|
|
82
|
+
|
|
83
|
+
ALTER TABLE "NotificationDelivery" ADD CONSTRAINT "NotificationDelivery_eventId_fkey"
|
|
84
|
+
FOREIGN KEY ("eventId") REFERENCES "WorkflowEvent"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
85
|
+
|
|
86
|
+
CREATE TABLE "NotificationThread" (
|
|
87
|
+
"id" TEXT NOT NULL,
|
|
88
|
+
"provider" TEXT NOT NULL,
|
|
89
|
+
"channelId" TEXT NOT NULL,
|
|
90
|
+
"threadKey" TEXT NOT NULL,
|
|
91
|
+
"parentTs" TEXT NOT NULL,
|
|
92
|
+
"status" TEXT NOT NULL,
|
|
93
|
+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
94
|
+
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
95
|
+
CONSTRAINT "NotificationThread_pkey" PRIMARY KEY ("id")
|
|
96
|
+
);
|
|
97
|
+
|
|
98
|
+
CREATE UNIQUE INDEX "NotificationThread_provider_channelId_threadKey_key"
|
|
99
|
+
ON "NotificationThread"("provider", "channelId", "threadKey");
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
-- Additive: the native sandbox warm pool. One row per pool worker, inserted
|
|
2
|
+
-- before the worker exists; a run claims an idle row with a conditional update.
|
|
3
|
+
|
|
4
|
+
-- CreateEnum
|
|
5
|
+
CREATE TYPE "NativeWarmWorkerStatus" AS ENUM ('warming', 'idle', 'claimed', 'retiring');
|
|
6
|
+
|
|
7
|
+
-- CreateTable
|
|
8
|
+
CREATE TABLE "NativeWarmWorker" (
|
|
9
|
+
"id" TEXT NOT NULL,
|
|
10
|
+
"name" TEXT NOT NULL,
|
|
11
|
+
"status" "NativeWarmWorkerStatus" NOT NULL DEFAULT 'warming',
|
|
12
|
+
"specHash" TEXT NOT NULL,
|
|
13
|
+
"runId" TEXT,
|
|
14
|
+
"readyAt" TIMESTAMP(3),
|
|
15
|
+
"claimedAt" TIMESTAMP(3),
|
|
16
|
+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
17
|
+
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
18
|
+
|
|
19
|
+
CONSTRAINT "NativeWarmWorker_pkey" PRIMARY KEY ("id")
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
-- CreateIndex
|
|
23
|
+
CREATE UNIQUE INDEX "NativeWarmWorker_name_key" ON "NativeWarmWorker"("name");
|
|
24
|
+
|
|
25
|
+
-- CreateIndex
|
|
26
|
+
CREATE UNIQUE INDEX "NativeWarmWorker_runId_key" ON "NativeWarmWorker"("runId");
|
|
27
|
+
|
|
28
|
+
-- CreateIndex
|
|
29
|
+
CREATE INDEX "NativeWarmWorker_status_specHash_idx" ON "NativeWarmWorker"("status", "specHash");
|
|
30
|
+
|
|
31
|
+
-- AddForeignKey
|
|
32
|
+
ALTER TABLE "NativeWarmWorker" ADD CONSTRAINT "NativeWarmWorker_runId_fkey" FOREIGN KEY ("runId") REFERENCES "Run"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
ALTER TABLE "Secret" ADD COLUMN "broker" JSONB;
|
|
2
|
+
|
|
3
|
+
CREATE TABLE "SecretBrokerChange" (
|
|
4
|
+
"id" TEXT NOT NULL,
|
|
5
|
+
"secretId" TEXT NOT NULL,
|
|
6
|
+
"ownerId" TEXT NOT NULL,
|
|
7
|
+
"secretName" TEXT NOT NULL,
|
|
8
|
+
"actorId" TEXT NOT NULL,
|
|
9
|
+
"before" JSONB,
|
|
10
|
+
"after" JSONB,
|
|
11
|
+
"via" TEXT NOT NULL,
|
|
12
|
+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
13
|
+
CONSTRAINT "SecretBrokerChange_pkey" PRIMARY KEY ("id")
|
|
14
|
+
);
|
|
15
|
+
|
|
16
|
+
CREATE INDEX "SecretBrokerChange_secretId_createdAt_idx" ON "SecretBrokerChange"("secretId", "createdAt");
|
|
17
|
+
CREATE INDEX "SecretBrokerChange_ownerId_createdAt_idx" ON "SecretBrokerChange"("ownerId", "createdAt");
|