@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,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: errors/delegation-conflict
|
|
3
|
+
title: Delegation conflict
|
|
4
|
+
summary: A delegate_to_* call returned delegation_conflict because its call id is already used by a run of another sub-agent.
|
|
5
|
+
audience: operator
|
|
6
|
+
tags: [error, delegation, sub-agents, runs, delegation_conflict]
|
|
7
|
+
appliesTo: ">=0.7.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Delegation conflict
|
|
11
|
+
|
|
12
|
+
`delegation_conflict` is the error a `delegate_to_*` call returns to the model when wardby could not create the sub-agent run: each sub-agent run records the parent's tool-call id, and that id is already used by a run of a different sub-agent of the same parent.
|
|
13
|
+
|
|
14
|
+
It can happen when two executions of the same delegate step overlap (for example, a stalled process and the process that took the run over). When the other execution already started this sub-agent, wardby waits on that run instead and no error is returned. Only when the existing run belongs to a different sub-agent does the call return `delegation_conflict`.
|
|
15
|
+
|
|
16
|
+
No new sub-agent run is started, and the parent run is not failed: the model gets the error as the tool result ("The sub-agent run could not be created: its call id is already used by another sub-agent run.") and can report it or try again.
|
|
17
|
+
|
|
18
|
+
## What to do
|
|
19
|
+
|
|
20
|
+
1. List the runs of the parent's sub-agents with `list_runs` (by each sub-agent's `agentId`) and look for those whose `parentRunId` is the parent run.
|
|
21
|
+
2. Check the server logs for `delegation child create hit a unique key held by no child of this agent`, which names the run and the sub-agent.
|
|
22
|
+
3. If the model did not delegate again on its own, trigger the request again.
|
|
23
|
+
|
|
24
|
+
See [Run lost](run-lost.md) for how runs continue after a restart, and [Native capabilities](../native-capabilities.md) for sub-agents.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: errors/file-list-truncated
|
|
3
|
+
title: APPROVE refused on a cut file list (file_list_truncated)
|
|
4
|
+
summary: The pull request has more changed files than repo_pr_read lists, so repo_publish_review refuses the agent's APPROVE; it can still request changes or comment.
|
|
5
|
+
audience: operator
|
|
6
|
+
tags: [error, code-review, repo_publish_review, repo_pr_read, file_list_truncated, fileListComplete, large-pull-request]
|
|
7
|
+
appliesTo: ">=0.7.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# APPROVE refused on a cut file list
|
|
11
|
+
|
|
12
|
+
`repo_publish_review` returns the tool error `file_list_truncated` when a
|
|
13
|
+
review agent publishes `APPROVE` on a pull request head after a
|
|
14
|
+
`repo_pr_read` of that head in the run reported `fileListComplete: false`,
|
|
15
|
+
and no complete read of the whole pull request (without `sinceSha`) has
|
|
16
|
+
followed. The host lists at most
|
|
17
|
+
1,000 changed files of a pull request (a GitHub compare, used when the agent
|
|
18
|
+
passes `sinceSha`, lists at most 300). Files past that cut never reach the
|
|
19
|
+
agent, so an approval would cover code nobody reviewed.
|
|
20
|
+
|
|
21
|
+
Nothing is published and nothing else changes. `CHANGES_REQUESTED` and
|
|
22
|
+
`COMMENT` are still allowed on the same head.
|
|
23
|
+
|
|
24
|
+
## What the agent should do
|
|
25
|
+
|
|
26
|
+
- If it passed `sinceSha`, call `repo_pr_read` again without it. When the
|
|
27
|
+
whole pull request fits in the list, `fileListComplete` becomes `true` and
|
|
28
|
+
`APPROVE` is allowed again (once every listed source, test or config file
|
|
29
|
+
is read; see `unread_files`). A complete `sinceSha` read does not lift the
|
|
30
|
+
refusal.
|
|
31
|
+
- Otherwise publish `CHANGES_REQUESTED` on what it read, and say the pull
|
|
32
|
+
request is too large to review in full. That review does not cover the
|
|
33
|
+
head, so a later run cannot approve it through a `sinceSha` delta either
|
|
34
|
+
(see `full_read_required`). `COMMENT` completes the check as
|
|
35
|
+
neutral, which branch protection treats as passing.
|
|
36
|
+
|
|
37
|
+
## What the owner does
|
|
38
|
+
|
|
39
|
+
Split the change into smaller pull requests, each under the limit, or have
|
|
40
|
+
a person review it. The limit is the same for GitHub and local repositories.
|
|
41
|
+
|
|
42
|
+
## Related
|
|
43
|
+
|
|
44
|
+
- [Run GitHub code-review agents](../code-review-agents.md)
|
|
45
|
+
- [Large pull requests](../../docs/code-review-agents.md#large-pull-requests)
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: errors/full-read-required
|
|
3
|
+
title: APPROVE refused after a partial compare (full_read_required)
|
|
4
|
+
summary: The review agent compared the pull request from a commit wardby did not vouch for, so it never saw the full change; it must read the whole pull request before approving.
|
|
5
|
+
audience: operator
|
|
6
|
+
tags: [error, code-review, repo_publish_review, repo_pr_read, full_read_required, sinceSha, lastCoveredSha]
|
|
7
|
+
appliesTo: ">=0.7.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# APPROVE refused after a partial compare
|
|
11
|
+
|
|
12
|
+
`repo_publish_review` returns the tool error `full_read_required` when a
|
|
13
|
+
review agent publishes `APPROVE` on a pull request head and, in that run:
|
|
14
|
+
|
|
15
|
+
- no `repo_pr_read` of the head was made without `sinceSha`, and
|
|
16
|
+
- a `repo_pr_read` of the head passed a `sinceSha` other than the
|
|
17
|
+
`lastCoveredSha` that same read returned.
|
|
18
|
+
|
|
19
|
+
A read with `sinceSha` lists only the files changed since that commit. Any
|
|
20
|
+
earlier commit of the branch is accepted as `sinceSha`, so a compare from a
|
|
21
|
+
commit wardby did not record as covered hides every change made before it.
|
|
22
|
+
`lastCoveredSha` is the latest head this agent reviewed after reading every
|
|
23
|
+
file. Any other commit, such as one named in the pull request's text, or a
|
|
24
|
+
`lastReviewedSha` whose review did not read everything, is not a safe base. An approval would
|
|
25
|
+
then cover code nobody reviewed.
|
|
26
|
+
|
|
27
|
+
Nothing is published and nothing else changes. `CHANGES_REQUESTED` and
|
|
28
|
+
`COMMENT` are still allowed on the same head.
|
|
29
|
+
|
|
30
|
+
## What the agent should do
|
|
31
|
+
|
|
32
|
+
Call `repo_pr_read` without `sinceSha`, read the source, test and config
|
|
33
|
+
files it lists, and publish again. Or, for a re-review, pass the
|
|
34
|
+
`lastCoveredSha` the read returns as `sinceSha`. If neither is possible,
|
|
35
|
+
publish `CHANGES_REQUESTED` on what it read.
|
|
36
|
+
|
|
37
|
+
## What the owner does
|
|
38
|
+
|
|
39
|
+
Nothing, normally: the refusal tells the agent what to do. If it recurs, check
|
|
40
|
+
the reviewer's system prompt: it should pass only the `lastCoveredSha` that
|
|
41
|
+
`repo_pr_read` returned as `sinceSha`, never `lastReviewedSha` or a commit
|
|
42
|
+
named in the pull request's text. Reviewer prompts written before 0.7.0 pass
|
|
43
|
+
`lastReviewedSha`; update the re-review step from the shipped reviewer prompt.
|
|
44
|
+
|
|
45
|
+
## Related
|
|
46
|
+
|
|
47
|
+
- [Run GitHub code-review agents](../code-review-agents.md)
|
|
48
|
+
- [APPROVE refused on a cut file list: `file_list_truncated`](file-list-truncated.md)
|
|
49
|
+
- [Large pull requests](../../docs/code-review-agents.md#large-pull-requests)
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: errors/github-account-not-allowed
|
|
3
|
+
title: The repository's GitHub account is not served by this server
|
|
4
|
+
summary: The repository belongs to a GitHub user or organization that is neither the GitHub App's owner nor listed in WARDBY_GITHUB_ALLOWED_ACCOUNTS, so wardby refuses to link or use it.
|
|
5
|
+
audience: operator
|
|
6
|
+
tags: [error, github, repositories, configuration, WARDBY_GITHUB_ALLOWED_ACCOUNTS, link_repository]
|
|
7
|
+
appliesTo: ">=0.6.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# The repository's GitHub account is not served by this server
|
|
11
|
+
|
|
12
|
+
`github_account_not_allowed` means the repository's owner is not one of the
|
|
13
|
+
accounts this server serves through its GitHub App: the App's owner and the
|
|
14
|
+
accounts in `WARDBY_GITHUB_ALLOWED_ACCOUNTS`. `link_repository` and coding
|
|
15
|
+
profiles refuse such a repository, even with `adminOverride`, and runs on an
|
|
16
|
+
existing link to it are refused.
|
|
17
|
+
|
|
18
|
+
## What to do
|
|
19
|
+
|
|
20
|
+
- **The repository should be served:** an operator adds its owner's login to
|
|
21
|
+
`WARDBY_GITHUB_ALLOWED_ACCOUNTS` and restarts the server, then links it again.
|
|
22
|
+
- **Only sandboxed runs are refused** (the same link works for a
|
|
23
|
+
`control-plane` agent): the native sandbox gateway runs a sandboxed agent's
|
|
24
|
+
repository tools and needs the same `WARDBY_GITHUB_ALLOWED_ACCOUNTS` as the
|
|
25
|
+
control plane. Set it on both, then restart the gateway.
|
|
26
|
+
- **It should not:** use a repository owned by a served account, or another
|
|
27
|
+
wardby server with its own GitHub App.
|
|
28
|
+
|
|
29
|
+
Related: [Connect GitHub repositories](../github.md).
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: errors/graph-incomplete
|
|
3
|
+
title: Package still being checked (wardby_graph_incomplete)
|
|
4
|
+
summary: The registry's walk reached the package but timed out before checking its versions, usually a slow upstream; retry shortly.
|
|
5
|
+
audience: operator
|
|
6
|
+
tags: [error, coding-agents, packages, allowlist, wardby_graph_incomplete]
|
|
7
|
+
appliesTo: ">=0.7.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Package still being checked
|
|
11
|
+
|
|
12
|
+
`wardby_graph_incomplete` (HTTP 503) means the requested package is still
|
|
13
|
+
being checked against the allowed packages' dependency graph. It arises only when the
|
|
14
|
+
registry walks the graph: for a tarball download the run hasn't resolved (a
|
|
15
|
+
lockfile install), or for a metadata request after a lockfile plan of the run
|
|
16
|
+
failed or refused an entry. The walk reached
|
|
17
|
+
the name (an expanded version declares it) but timed out
|
|
18
|
+
(`REGISTRY_GRAPH_TIMEOUT_MS`) before the name's own versions were checked. That
|
|
19
|
+
is usually a slow or failing upstream for that package, or another request's
|
|
20
|
+
walk running out of time. The error message shows the walk's progress. It never
|
|
21
|
+
means the package is outside the graph. When a completed walk has failed
|
|
22
|
+
nodes, the answer is `wardby_upstream_error` or `wardby_audit_unavailable`
|
|
23
|
+
instead.
|
|
24
|
+
|
|
25
|
+
## What the agent should do
|
|
26
|
+
|
|
27
|
+
This is the one allowlist-related code worth retrying: try again shortly (npm
|
|
28
|
+
retries a 5xx on its own). If it keeps happening, report the package so its
|
|
29
|
+
owner can allowlist it directly.
|
|
30
|
+
|
|
31
|
+
## What the owner does
|
|
32
|
+
|
|
33
|
+
If retries do not clear it, add the package to
|
|
34
|
+
`codingProfile.packageAllowlist` with `update_agent` (needs
|
|
35
|
+
`packages:approve` or `agents:admin`).
|
|
36
|
+
|
|
37
|
+
## Related
|
|
38
|
+
|
|
39
|
+
- [Package not reached: `wardby_package_not_allowed_pending`](package-not-allowed-pending.md)
|
|
40
|
+
- [Not allowed: `wardby_package_not_allowed`](package-not-allowed.md)
|
|
41
|
+
- [Graph limit: `wardby_graph_limit`](graph-limit.md)
|
|
42
|
+
- [Package audit mode](../package-audit-mode.md): find out which packages a task needs without refusals, for a limited time.
|
|
43
|
+
- [Coding packages](../coding-packages.md)
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: errors/graph-limit
|
|
3
|
+
title: Dependency graph over the limit (wardby_graph_limit)
|
|
4
|
+
summary: The run's dependency graph walk hit REGISTRY_MAX_GRAPH_PACKAGES before reaching the package; the owner can allowlist it directly, or the operator can raise the limit.
|
|
5
|
+
audience: operator
|
|
6
|
+
tags: [error, coding-agents, packages, allowlist, wardby_graph_limit, REGISTRY_MAX_GRAPH_PACKAGES]
|
|
7
|
+
appliesTo: ">=0.7.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Dependency graph over the limit
|
|
11
|
+
|
|
12
|
+
`wardby_graph_limit` (HTTP 403) means this run's dependency graph walk reached
|
|
13
|
+
its limit of `REGISTRY_MAX_GRAPH_PACKAGES` package names (default 3000, counted
|
|
14
|
+
per run and ecosystem) before it reached the requested package, so the package
|
|
15
|
+
may not be in the graph at all. The bound is permanent for the run, so
|
|
16
|
+
retrying does not help. It arises only when the
|
|
17
|
+
registry walks the graph: for a tarball download the run hasn't resolved (a
|
|
18
|
+
lockfile install), or for a metadata request after a lockfile plan of the run
|
|
19
|
+
failed or refused an entry.
|
|
20
|
+
|
|
21
|
+
Large frameworks (for example Expo) can exceed the limit, because the walk
|
|
22
|
+
follows every in-range kept version plus optional and peer dependencies, so its
|
|
23
|
+
graph is usually several times larger than a single install.
|
|
24
|
+
|
|
25
|
+
## What the agent should do
|
|
26
|
+
|
|
27
|
+
Stop retrying. Report the package so its owner can act.
|
|
28
|
+
|
|
29
|
+
## What the owner does
|
|
30
|
+
|
|
31
|
+
1. Open the agent with `get_agent`, then add the package (or the top-level package that needs it) to `codingProfile.packageAllowlist` with `update_agent`. This needs `packages:approve` or `agents:admin`.
|
|
32
|
+
2. Run the request again. Allowing a package name allows all of its kept versions, subject to the release-age and vulnerability checks.
|
|
33
|
+
|
|
34
|
+
The operator, not the owner, can instead raise `REGISTRY_MAX_GRAPH_PACKAGES` on the
|
|
35
|
+
coding proxy. A higher limit uses more proxy memory and walk time.
|
|
36
|
+
|
|
37
|
+
## Related
|
|
38
|
+
|
|
39
|
+
- [Package not reached: `wardby_package_not_allowed_pending`](package-not-allowed-pending.md)
|
|
40
|
+
- [Not allowed: `wardby_package_not_allowed`](package-not-allowed.md)
|
|
41
|
+
- [Still being checked: `wardby_graph_incomplete`](graph-incomplete.md)
|
|
42
|
+
- [Package audit mode](../package-audit-mode.md): find out which packages a task needs without refusals, for a limited time.
|
|
43
|
+
- [Coding packages](../../docs/coding-packages.md#operator-limits)
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: errors/low-power-disabled
|
|
3
|
+
title: Scale-down refused, mode not enabled
|
|
4
|
+
summary: A request to put the coding proxy or native gateway to sleep was refused because WARDBY_LOW_POWER is not 1 on this deployment.
|
|
5
|
+
audience: operator
|
|
6
|
+
tags: [error, gke, kubernetes, low_power_disabled]
|
|
7
|
+
appliesTo: ">=0.6.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Sleep refused: low-power mode not enabled
|
|
11
|
+
|
|
12
|
+
`low_power_disabled` (HTTP 409) means `power_sleep` was called, but low-power
|
|
13
|
+
mode is not on for this deployment: `WARDBY_LOW_POWER` is not `1` on the
|
|
14
|
+
control plane, or the control plane does not use `JOB_LAUNCHER=kubernetes` (it
|
|
15
|
+
then logs `low_power_ignored` at start-up). Nothing was scaled.
|
|
16
|
+
|
|
17
|
+
With the mode off, the coding proxy and native gateway always run, so there is
|
|
18
|
+
nothing to put to sleep. `power_status` returns `{ "enabled": false }` in the
|
|
19
|
+
same case.
|
|
20
|
+
|
|
21
|
+
To turn the mode on:
|
|
22
|
+
|
|
23
|
+
1. Deploy with the flag: `WARDBY_HOSTNAME=wardby.example.com WARDBY_LOW_POWER=1 deploy/gke/up.sh`.
|
|
24
|
+
On a local kind cluster, use `WARDBY_LOW_POWER=1 deploy/kind-coding/up.sh` and
|
|
25
|
+
also set `WARDBY_LOW_POWER=1` in the environment of `wardby serve`.
|
|
26
|
+
2. Check that the control plane runs with `JOB_LAUNCHER=kubernetes`.
|
|
27
|
+
3. Call `power_status`; it reports `"enabled": true` once the mode is on.
|
|
28
|
+
|
|
29
|
+
See [Low-power mode on GKE](../low-power-mode.md).
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: errors/low-power-scale-forbidden
|
|
3
|
+
title: Scaling forbidden by RBAC
|
|
4
|
+
summary: In low-power mode, the control plane is not allowed to read or scale the coding proxy or native gateway Deployment, or read its Endpoints, because the wardby-power Role is missing or out of date.
|
|
5
|
+
audience: operator
|
|
6
|
+
tags: [error, low-power, gke, kubernetes, rbac, low_power_scale_forbidden]
|
|
7
|
+
appliesTo: ">=0.6.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Low-power scale forbidden
|
|
11
|
+
|
|
12
|
+
`low_power_scale_forbidden` means the Kubernetes API refused the control plane
|
|
13
|
+
something low-power mode needs: reading or scaling the coding proxy or native
|
|
14
|
+
gateway Deployment, or reading its Endpoints to see whether a woken target is
|
|
15
|
+
ready. The message names the action and the object, for example
|
|
16
|
+
`may not get Endpoints "wardby-native-gateway"`. It can come from a run waking a
|
|
17
|
+
target, from `power_status`, or from `power_sleep`.
|
|
18
|
+
|
|
19
|
+
Low-power mode needs the Role `wardby-power` (and its RoleBinding) in the
|
|
20
|
+
namespace. It grants `get` and `patch` on the two Deployments and `get` on
|
|
21
|
+
their Endpoints, by name. At start-up the control plane warns
|
|
22
|
+
`low_power_scale_forbidden: missing ...` naming each missing permission (for
|
|
23
|
+
example `get endpoints/wardby-native-gateway`); if the check itself fails it
|
|
24
|
+
logs `low_power_access_check_failed`.
|
|
25
|
+
|
|
26
|
+
1. Re-run the deploy with the mode on: `WARDBY_LOW_POWER=1 deploy/gke/up.sh`
|
|
27
|
+
(on kind, `WARDBY_LOW_POWER=1 deploy/kind-coding/up.sh`). It applies the
|
|
28
|
+
current Role, including the Endpoints rule an older Role may lack.
|
|
29
|
+
2. Confirm: `kubectl -n wardby-coding describe role wardby-power` lists both
|
|
30
|
+
rules, and `kubectl -n wardby-coding get rolebinding wardby-power` exists.
|
|
31
|
+
3. If you meant to turn the mode off, unset `WARDBY_LOW_POWER` on the control
|
|
32
|
+
plane too, then re-run `up.sh` without it.
|
|
33
|
+
4. Trigger the run again.
|
|
34
|
+
|
|
35
|
+
See [Low-power mode on GKE](../low-power-mode.md).
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: errors/low-power-wake-timeout
|
|
3
|
+
title: Wake timed out (scale to zero)
|
|
4
|
+
summary: When scaling from zero, the coding proxy or native gateway did not become ready after being scaled up, or its Deployment does not exist.
|
|
5
|
+
audience: operator
|
|
6
|
+
tags: [error, low-power, gke, kubernetes, scale-to-zero, low_power_wake_timeout]
|
|
7
|
+
appliesTo: ">=0.6.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Low-power wake timed out
|
|
11
|
+
|
|
12
|
+
`low_power_wake_timeout` means a run needed the coding proxy (or, for a sandbox
|
|
13
|
+
run, the native gateway), Wardby scaled it from 0 to 1, and no ready endpoint
|
|
14
|
+
appeared within the bound. The bound is 5 minutes, or
|
|
15
|
+
`KUBERNETES_READY_TIMEOUT_MS` for the proxy and
|
|
16
|
+
`NATIVE_SANDBOX_READY_TIMEOUT_MS` for the gateway when that is higher. It is
|
|
17
|
+
also raised when the target Deployment does not exist.
|
|
18
|
+
|
|
19
|
+
1. Check the Deployment exists: `kubectl -n wardby-coding get deploy wardby-coding-proxy wardby-native-gateway`
|
|
20
|
+
(names follow `KUBERNETES_PROXY_SERVICE` and `NATIVE_GATEWAY_SERVICE`). If
|
|
21
|
+
one is missing, re-run `deploy/gke/up.sh`.
|
|
22
|
+
2. If it exists, look at why its Pod is not ready: `kubectl -n wardby-coding describe pod -l app.kubernetes.io/name=wardby-coding-proxy`.
|
|
23
|
+
A cold Autopilot node can take 1 to 2 minutes; unschedulable Pods, image
|
|
24
|
+
pull errors or a failing sidecar are the usual causes.
|
|
25
|
+
3. If the node is simply slow, raise the timeout for that target above 5
|
|
26
|
+
minutes (300000): set `KUBERNETES_READY_TIMEOUT_MS` (proxy) or
|
|
27
|
+
`NATIVE_SANDBOX_READY_TIMEOUT_MS` (gateway) on the control-plane Deployment.
|
|
28
|
+
4. Trigger the run again.
|
|
29
|
+
|
|
30
|
+
See [Low-power mode on GKE](../low-power-mode.md).
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: errors/merge-conflict
|
|
3
|
+
title: Conflict markers remain
|
|
4
|
+
summary: A follow-up run left conflict markers in a file the target-branch merge conflicted, so nothing was pushed.
|
|
5
|
+
audience: operator
|
|
6
|
+
tags: [error, coding-agents, vcs, merge-conflict, pull-requests]
|
|
7
|
+
appliesTo: ">=0.7.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Conflict markers remain
|
|
11
|
+
|
|
12
|
+
A follow-up run on a wardby pull request merges the pull request's target
|
|
13
|
+
branch into the branch before the agent starts (see
|
|
14
|
+
[Fix merge conflicts on a wardby pull request](../fix-merge-conflicts.md)).
|
|
15
|
+
When that merge conflicts, the agent is given the conflicted files to
|
|
16
|
+
resolve. A run that finished while one of those files still held a
|
|
17
|
+
`<<<<<<<` … `>>>>>>>` marker pair stops with failure category
|
|
18
|
+
`merge_conflict` (error `vcs_conflict_markers_remain`), and nothing is
|
|
19
|
+
pushed: the pull request is unchanged.
|
|
20
|
+
|
|
21
|
+
Only the files the merge conflicted are checked, so marker-like lines in
|
|
22
|
+
other files (test fixtures, documentation about merging) never trigger this.
|
|
23
|
+
|
|
24
|
+
## What the requester sees
|
|
25
|
+
|
|
26
|
+
The run's status comment on the pull request names the file, for example:
|
|
27
|
+
|
|
28
|
+
> `src/app.ts` still has conflict markers after merging this pull request's
|
|
29
|
+
> target branch, so none of its changes were pushed. Ask again to resolve the
|
|
30
|
+
> conflicts.
|
|
31
|
+
|
|
32
|
+
A lead agent that delegated the follow-up sees the sub-run's error code
|
|
33
|
+
`coding_failure_merge_conflict`.
|
|
34
|
+
|
|
35
|
+
## What to do
|
|
36
|
+
|
|
37
|
+
- Ask again on the pull request (for example "please fix the merge
|
|
38
|
+
conflicts"). The next follow-up merges the target again and gives the agent
|
|
39
|
+
the same list.
|
|
40
|
+
- If the conflicts are too large for the agent's budget or turn limit, raise
|
|
41
|
+
them for that agent, or resolve the conflicts by hand and push.
|
|
42
|
+
- An agent that keeps stopping early may need instructions that put
|
|
43
|
+
resolving the listed conflicts first.
|
|
44
|
+
- A conflict in a path this agent may not edit cannot be resolved by the
|
|
45
|
+
agent (resolving it is an edit, which is refused): resolve that file by hand
|
|
46
|
+
and push.
|
|
47
|
+
|
|
48
|
+
Related: [Run changed a protected path](protected-path.md),
|
|
49
|
+
[Target branch could not be merged](target-merge.md).
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: errors/mobile-disabled
|
|
3
|
+
title: Mobile sign-in is not enabled
|
|
4
|
+
summary: The server refused the mobile app's sign-in or registration because WARDBY_MOBILE_ENABLED is not true.
|
|
5
|
+
audience: operator
|
|
6
|
+
tags: [error, mobile, sign-in, oauth, mobile_disabled, WARDBY_MOBILE_ENABLED]
|
|
7
|
+
appliesTo: ">=0.6.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Mobile sign-in is not enabled
|
|
11
|
+
|
|
12
|
+
Mobile sign-in is switched off. An operator turns it on with
|
|
13
|
+
`WARDBY_MOBILE_ENABLED`.
|
|
14
|
+
|
|
15
|
+
Only client registration returns the reason: `400 invalid_redirect_uri` with the
|
|
16
|
+
description `mobile_disabled: mobile sign-in is not enabled on this server
|
|
17
|
+
(WARDBY_MOBILE_ENABLED)`. Sign-in (authorize) and token refresh return the
|
|
18
|
+
generic `invalid_request` or `invalid_grant` with an `id`. The `mobile_disabled`
|
|
19
|
+
reason appears only in the control-plane log line "self-hosted OAuth request
|
|
20
|
+
rejected" for that `id`, so look the `id` up in the control-plane logs.
|
|
21
|
+
|
|
22
|
+
1. Set `WARDBY_MOBILE_ENABLED=true` on the control plane and restart it. On GKE,
|
|
23
|
+
redeploy with `WARDBY_MOBILE_ENABLED=true` passed to `deploy/gke/up.sh`; a
|
|
24
|
+
run without it turns mobile sign-in off again.
|
|
25
|
+
2. If you use a white-label build, check that `WARDBY_MOBILE_REDIRECT_URI`
|
|
26
|
+
matches the redirect URI the app uses.
|
|
27
|
+
3. Sign in again from the app.
|
|
28
|
+
|
|
29
|
+
With an external identity provider this error does not come from Wardby; check
|
|
30
|
+
that the IdP client lists the mobile redirect URI. See
|
|
31
|
+
[Use the wardby mobile app](../mobile-app.md).
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: errors/native-sandbox-capacity
|
|
3
|
+
title: Native sandbox is at capacity
|
|
4
|
+
summary: A sandbox run could not start because the concurrent sandbox run limit or the namespace ResourceQuota has no room; the run failed at start and was not queued.
|
|
5
|
+
audience: operator
|
|
6
|
+
tags: [error, native-agents, sandbox, kubernetes, capacity, quota, native_sandbox_capacity]
|
|
7
|
+
appliesTo: ">=0.5.4"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Native sandbox is at capacity
|
|
11
|
+
|
|
12
|
+
`native_sandbox_capacity` means a sandbox-mode run could not start because there was no room for it. The run failed at start; it is not queued. The message gives one of two reasons:
|
|
13
|
+
|
|
14
|
+
- **"N sandbox runs are already active (NATIVE_SANDBOX_MAX_CONCURRENT)"**: the cap on concurrent sandbox runs, counted across all server replicas as active gateway sessions, has been reached.
|
|
15
|
+
- **"the namespace's ResourceQuota has no room for another native worker pod"**: with `NATIVE_SANDBOX_LAUNCHER=kubernetes`, the run namespace's quota on pods, CPU, or memory is full.
|
|
16
|
+
|
|
17
|
+
1. Wait for running sandbox runs to finish, then trigger the run again.
|
|
18
|
+
2. To allow more at once, raise `NATIVE_SANDBOX_MAX_CONCURRENT` (unset means no cap) and raise the namespace ResourceQuota with it. Each worker pod needs its CPU and memory limits (`NATIVE_SANDBOX_CPUS`, `NATIVE_SANDBOX_MEMORY_MB`) from the quota, which coding runs and the gateway share. Idle warm-pool workers (`NATIVE_SANDBOX_WARM_POOL_SIZE`) take quota too, so leave room for `NATIVE_SANDBOX_MAX_CONCURRENT` plus the pool size.
|
|
19
|
+
3. Check current usage with `kubectl describe resourcequota -n <namespace>` and `kubectl get pods -n <namespace> -l wardby.io/component=native-run`.
|
|
20
|
+
|
|
21
|
+
See [Run native agents in a sandbox](../native-sandbox.md) and the
|
|
22
|
+
[native sandbox guide](../../docs/native-sandbox.md).
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: errors/native-sandbox-deadline-exceeded
|
|
3
|
+
title: Native run deadline exceeded
|
|
4
|
+
summary: A sandbox run passed its 60-minute maximum lifetime and its worker was stopped.
|
|
5
|
+
audience: operator
|
|
6
|
+
tags: [error, native-agents, sandbox, native_sandbox_deadline_exceeded]
|
|
7
|
+
appliesTo: ">=0.5.4"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Native run deadline exceeded
|
|
11
|
+
|
|
12
|
+
`native_sandbox_deadline_exceeded` means the run was still going when it reached the sandbox's maximum lifetime of 60 minutes, so the worker was stopped and the run failed. The limit protects against stuck runs and is not configurable.
|
|
13
|
+
|
|
14
|
+
1. Look for a tool that waits forever or a loop that does not converge.
|
|
15
|
+
2. Split long work into smaller runs, or delegate parts to sub-agents (each is its own run).
|
|
16
|
+
3. Trigger the run again.
|
|
17
|
+
|
|
18
|
+
See [Run native agents in a sandbox](../native-sandbox.md) and the
|
|
19
|
+
[native sandbox guide](../../docs/native-sandbox.md).
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: errors/native-sandbox-docker-failed
|
|
3
|
+
title: Native worker Docker command failed
|
|
4
|
+
summary: A Docker command Wardby ran to start or clean up a sandbox worker failed.
|
|
5
|
+
audience: operator
|
|
6
|
+
tags: [error, native-agents, sandbox, native_sandbox_docker_failed]
|
|
7
|
+
appliesTo: ">=0.5.4"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Native worker Docker command failed
|
|
11
|
+
|
|
12
|
+
`native_sandbox_docker_failed` means a Docker command needed to launch a worker (pull the image, create the run network, join the gateway to it, or start the container) failed. The message names the step and includes Docker's error output.
|
|
13
|
+
|
|
14
|
+
1. Confirm the server can reach the Docker daemon (`docker info` as the server's user).
|
|
15
|
+
2. For an image step, confirm the image exists on the host (a local id must already be present; a digest must be pullable without registry credentials, or pull it beforehand).
|
|
16
|
+
3. For a network step, confirm `NATIVE_GATEWAY_CONTAINER` names a running gateway container on this Docker host.
|
|
17
|
+
4. Trigger the run again.
|
|
18
|
+
|
|
19
|
+
See [Run native agents in a sandbox](../native-sandbox.md) and the
|
|
20
|
+
[native sandbox guide](../../docs/native-sandbox.md).
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: errors/native-sandbox-gateway-error
|
|
3
|
+
title: Native worker's gateway call failed
|
|
4
|
+
summary: The sandbox worker's call to the gateway failed with an error the run could not continue from.
|
|
5
|
+
audience: operator
|
|
6
|
+
tags: [error, native-agents, sandbox, native_sandbox_gateway_error]
|
|
7
|
+
appliesTo: ">=0.5.4"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Native worker's gateway call failed
|
|
11
|
+
|
|
12
|
+
`native_sandbox_gateway_error: <code>: <message>` means the sandbox worker called the gateway (a model turn, a tool, or a delegation) and got an error the run could not continue from. The worker reports the run failed with this error instead of exiting, so it is not `native_sandbox_worker_exited`.
|
|
13
|
+
|
|
14
|
+
1. Read the code and message in the run's error (`get_run`).
|
|
15
|
+
2. For the gateway's `internal` code the message is never recorded. When the gateway's error named one of wardby's own declared codes, that code follows (any other leading word, and any code that matches a secret value the run can read, never leaves the gateway), for example `native_sandbox_gateway_error: internal: coding_execution_not_configured` (the gateway that served the call cannot start coding runs); otherwise the error is `native_sandbox_gateway_error: internal`. Read the gateway's logs (`native gateway request failed`) for the details: the line carries the error's message and stack with the run's secret values replaced by `[REDACTED]`; when the gateway could not read the run's secret values, or the failure was not an error object, it carries only the error's name (`errName`) and declared code (`causeCode`).
|
|
16
|
+
3. Fix the cause the message names, or check that the gateway can reach the database and the LLM provider.
|
|
17
|
+
4. Trigger the run again.
|
|
18
|
+
|
|
19
|
+
See [Run native agents in a sandbox](../native-sandbox.md) and the
|
|
20
|
+
[native sandbox guide](../../docs/native-sandbox.md).
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: errors/native-sandbox-gateway-unavailable
|
|
3
|
+
title: Native gateway Service unavailable
|
|
4
|
+
summary: On Kubernetes, Wardby could not find a usable native gateway Service, so a sandbox run could not start.
|
|
5
|
+
audience: operator
|
|
6
|
+
tags: [error, native-agents, sandbox, kubernetes, native_sandbox_gateway_unavailable]
|
|
7
|
+
appliesTo: ">=0.5.4"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Native gateway Service unavailable
|
|
11
|
+
|
|
12
|
+
`native_sandbox_gateway_unavailable` means that with `NATIVE_SANDBOX_LAUNCHER=kubernetes`, the Service named by `NATIVE_GATEWAY_SERVICE` (default `wardby-native-gateway`) does not exist in the sandbox namespace or has no ClusterIP. Workers dial the Service's ClusterIP, so Wardby needs one.
|
|
13
|
+
|
|
14
|
+
1. Confirm the namespace: `NATIVE_SANDBOX_NAMESPACE`, else `KUBERNETES_NAMESPACE`, else `wardby-coding`.
|
|
15
|
+
2. Create the Service there as a regular ClusterIP Service (not headless) that selects the gateway pods (`app.kubernetes.io/name: wardby-native-gateway`) and exposes both 8790 and the deny port 8791.
|
|
16
|
+
3. Confirm the server's Role allows `get` on `services` in that namespace.
|
|
17
|
+
4. Alternatively set `NATIVE_GATEWAY_URL` to an address workers can dial, and keep the gateway's NetworkPolicy and the workers' egress consistent with it.
|
|
18
|
+
5. Trigger the run again.
|
|
19
|
+
|
|
20
|
+
See [Run native agents in a sandbox](../native-sandbox.md) and the
|
|
21
|
+
[native sandbox guide](../../docs/native-sandbox.md).
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: errors/native-sandbox-image-not-pinned
|
|
3
|
+
title: Native worker image not pinned
|
|
4
|
+
summary: NATIVE_SANDBOX_WORKER_IMAGE is a mutable tag, so Wardby refused to launch a sandbox worker.
|
|
5
|
+
audience: operator
|
|
6
|
+
tags: [error, native-agents, sandbox, native_sandbox_image_not_pinned]
|
|
7
|
+
appliesTo: ">=0.5.4"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Native worker image not pinned
|
|
11
|
+
|
|
12
|
+
`native_sandbox_image_not_pinned` means `NATIVE_SANDBOX_WORKER_IMAGE` is not immutable. Wardby only launches a worker from a digest (`repo@sha256:...`) or a local image id, so the code it isolates cannot change underneath it.
|
|
13
|
+
|
|
14
|
+
1. Use the digest-pinned reference listed as `nativeWorker` in `dist/quickstart-images.json` for your version, or build locally with `npm run native-worker:image:local` and use the image id from `docker image inspect --format '{{.Id}}' wardby-native-worker:local`.
|
|
15
|
+
2. On Kubernetes (`NATIVE_SANDBOX_LAUNCHER=kubernetes`) a local image id is not accepted: the image must be a registry digest, `repo@sha256:...`, that the cluster can pull. Push your build to a registry and use its digest.
|
|
16
|
+
3. Set it as `NATIVE_SANDBOX_WORKER_IMAGE`, restart the server, and trigger the run again.
|
|
17
|
+
|
|
18
|
+
See [Run native agents in a sandbox](../native-sandbox.md) and the
|
|
19
|
+
[native sandbox guide](../../docs/native-sandbox.md).
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: errors/native-sandbox-isolation-mismatch
|
|
3
|
+
title: Native worker pod differs from what Wardby built
|
|
4
|
+
summary: On Kubernetes, the sandbox pod or its NetworkPolicy as stored by the cluster differs from what Wardby created, so the run failed before starting.
|
|
5
|
+
audience: operator
|
|
6
|
+
tags: [error, native-agents, sandbox, kubernetes, native_sandbox_isolation_mismatch]
|
|
7
|
+
appliesTo: ">=0.5.4"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Native worker pod differs from what Wardby built
|
|
11
|
+
|
|
12
|
+
`native_sandbox_isolation_mismatch` means that with `NATIVE_SANDBOX_LAUNCHER=kubernetes`, Wardby read back the worker pod and NetworkPolicy it had just created and found a security-relevant difference: a service-account token, host networking, a different runtime class, priority class, image, container resources, or container security context or environment, an extra init container, or a changed NetworkPolicy. Something in the cluster modified the objects after creation, typically a mutating admission webhook, policy engine, or service mesh injector. The run is failed and the pod removed.
|
|
13
|
+
|
|
14
|
+
1. Inspect an equivalent pod while a run is starting: `kubectl get pods -n <namespace> -l wardby.io/component=native-run -o yaml`.
|
|
15
|
+
2. Find the admission controller that changes it (`kubectl get mutatingwebhookconfigurations`) and exempt pods labeled `wardby.io/component: native-run` and the run namespace's NetworkPolicies, for example by namespace or label selector. Do not disable sidecar-style injection by editing the pod after the fact.
|
|
16
|
+
3. If `NATIVE_SANDBOX_RUNTIME_CLASS` or `NATIVE_SANDBOX_PRIORITY_CLASS` is set, confirm no policy overrides it. On GKE Autopilot set `KUBERNETES_PLATFORM=gke-autopilot` so pod resources are already in the form Autopilot admits and are not rewritten.
|
|
17
|
+
4. Trigger the run again.
|
|
18
|
+
|
|
19
|
+
See [Run native agents in a sandbox](../native-sandbox.md) and the
|
|
20
|
+
[native sandbox guide](../../docs/native-sandbox.md).
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: errors/native-sandbox-launch-abandoned
|
|
3
|
+
title: Native worker launch abandoned
|
|
4
|
+
summary: A sandbox run ended while its worker was launching (usually stopped during a low-power gateway wake), so no worker pod was created.
|
|
5
|
+
audience: operator
|
|
6
|
+
tags: [error, native-agents, sandbox, kubernetes, low-power, native_sandbox_launch_abandoned]
|
|
7
|
+
appliesTo: ">=0.7.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Native worker launch abandoned
|
|
11
|
+
|
|
12
|
+
`native_sandbox_launch_abandoned` means a sandbox run ended while its worker was being launched, so Wardby did not create the worker pod. Most often the run was stopped (`stop_run`, or its parent run was cancelled) while the native gateway was waking in low-power mode, which can take a few minutes on a cold node.
|
|
13
|
+
|
|
14
|
+
The run already has its own final status, such as `cancelled`. This code only appears in the control-plane log, as the reason the launch stopped. Nothing is left to clean up.
|
|
15
|
+
|
|
16
|
+
1. If the run was stopped on purpose, there is nothing to do.
|
|
17
|
+
2. If you did not stop it, check the run with `get_run`: its status and error say what ended it.
|
|
18
|
+
3. Trigger the run again if you still want it.
|
|
19
|
+
|
|
20
|
+
See [Low-power mode](../low-power-mode.md) and the
|
|
21
|
+
[native sandbox guide](../../docs/native-sandbox.md).
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: errors/native-sandbox-network-unenforced
|
|
3
|
+
title: Native worker network isolation not proven
|
|
4
|
+
summary: On Kubernetes, Wardby could not prove a sandbox pod's network isolation in time, so it removed the pod and failed the run.
|
|
5
|
+
audience: operator
|
|
6
|
+
tags: [error, native-agents, sandbox, kubernetes, native_sandbox_network_unenforced]
|
|
7
|
+
appliesTo: ">=0.5.4"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Native worker network isolation not proven
|
|
11
|
+
|
|
12
|
+
`native_sandbox_network_unenforced` means that with `NATIVE_SANDBOX_LAUNCHER=kubernetes`, Wardby ran a check inside the worker pod and it did not pass before the time limit. The check requires the gateway to be reachable on port 8790 while the gateway's deny port (8791 by default), an outside address, and the cloud metadata endpoints (`169.254.169.254:80`, the EKS Pod Identity agent `169.254.170.23:80` and `[fd00:ec2::23]:80`, and EC2's IPv6 metadata address `[fd00:ec2::254]:80`) are not. The message says which part failed. The pod is removed and the run never started.
|
|
13
|
+
|
|
14
|
+
- **"the gateway was unreachable"**: confirm the gateway Deployment has ready pods, the `wardby-native-gateway` Service (or `NATIVE_GATEWAY_SERVICE`) exposes 8790 and 8791, and the gateway's own NetworkPolicy admits `wardby.io/component: native-run` pods on port 8790.
|
|
15
|
+
- **"the gateway's deny port was reachable"** or **"an outside address was reachable"** (or a metadata endpoint): the cluster is not enforcing the per-run NetworkPolicy. Confirm your CNI enforces `NetworkPolicy` (some local clusters need a policy-capable CNI such as Calico), and that no other policy or mesh adds egress for these pods.
|
|
16
|
+
- If the Service lacks port 8791, or the gateway's policy does not admit 8791, unprogrammed pods would look isolated. Keep both in place; the check depends on them.
|
|
17
|
+
- On a slow node the policy can take longer to program. Retrigger the run once, or raise `NATIVE_SANDBOX_ENFORCEMENT_TIMEOUT_MS` (default 30000), before changing anything.
|
|
18
|
+
|
|
19
|
+
A cluster that does not enforce NetworkPolicy fails every sandbox run this way, by design. Switch the agent back to `control-plane` if you cannot enable enforcement.
|
|
20
|
+
|
|
21
|
+
See [Run native agents in a sandbox](../native-sandbox.md) and the
|
|
22
|
+
[native sandbox guide](../../docs/native-sandbox.md).
|