@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,91 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: package-audit-mode
|
|
3
|
+
title: Package audit mode
|
|
4
|
+
summary: Let a coding agent install packages outside its allowlist for a limited time, recorded for approval afterwards; full mode also installs versions with high-severity advisories. Malware and the release-age limit are always enforced.
|
|
5
|
+
audience: operator
|
|
6
|
+
tags: [coding-agents, packages, allowlist, package audit, package audit mode, audit mode, packageAuditMode, packageAuditMinutes, approve_audited_packages, packages_audited, npm, pypi, supply-chain]
|
|
7
|
+
appliesTo: >=0.7.0
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Package audit mode
|
|
11
|
+
|
|
12
|
+
From Wardby 0.7.0, a coding agent's registry can run in package audit mode for
|
|
13
|
+
a limited time. Instead of refusing a package that is not on the agent's
|
|
14
|
+
allowlist, the registry installs it and records it. Use it to find out which
|
|
15
|
+
packages a task needs, then approve them and turn the mode off.
|
|
16
|
+
|
|
17
|
+
## Modes
|
|
18
|
+
|
|
19
|
+
| Mode | Packages outside the allowlist | High or critical advisories | Malware | Release age |
|
|
20
|
+
| ------- | ------------------------------ | --------------------------- | ------- | ----------- |
|
|
21
|
+
| off | refused | withheld unless accepted | refused | enforced |
|
|
22
|
+
| `audit` | installed and recorded | withheld unless accepted | refused | enforced |
|
|
23
|
+
| `full` | installed and recorded | installed and recorded | refused | enforced |
|
|
24
|
+
|
|
25
|
+
Everything else still applies in every mode: integrity checks, source
|
|
26
|
+
distributions, size and file limits, and a version outside an allowlist
|
|
27
|
+
entry's own range (`foo@^1` never serves `foo@2`).
|
|
28
|
+
|
|
29
|
+
## Turn it on and off
|
|
30
|
+
|
|
31
|
+
The agent's owner sets it with `update_agent` (needs `packages:approve` or
|
|
32
|
+
`agents:admin`):
|
|
33
|
+
|
|
34
|
+
```json
|
|
35
|
+
{ "id": "<agent id>", "codingProfile": { "packageAuditMode": "audit", "packageAuditMinutes": 1440 } }
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
- `packageAuditMinutes` defaults to 1440 (24 hours); the most is 10080 (7 days).
|
|
39
|
+
- `packageAuditMinutes` alone re-arms the stored mode for that long.
|
|
40
|
+
- `"packageAuditMode": null` turns it off.
|
|
41
|
+
- `create_agent` does not accept it.
|
|
42
|
+
|
|
43
|
+
`get_agent` shows `packageAuditActive` and a warning while the window is
|
|
44
|
+
open. Each coding run takes the mode when it is dispatched and keeps it for
|
|
45
|
+
its whole life, so a run that starts just before the window ends still runs
|
|
46
|
+
with it.
|
|
47
|
+
|
|
48
|
+
## Where audited packages show up
|
|
49
|
+
|
|
50
|
+
- `get_run`: `packageAuditMode` and `packageAudit`, one entry per version
|
|
51
|
+
with its `relation` (`top-level`, `transitive` with `via`, `unknown`, or
|
|
52
|
+
`allowed`) and, in `full` mode, its `advisories` (the high and critical ones it was served despite).
|
|
53
|
+
- The pull request body: a caution banner, **Packages outside the
|
|
54
|
+
allowlist**, and in `full` mode **Served despite advisories**.
|
|
55
|
+
- The run's status comment on GitHub or Jira, and a `packages_audited` Slack
|
|
56
|
+
message on linked channels (see [Slack notifications](slack-notifications.md)).
|
|
57
|
+
- The proxy log: one `registry.audited` line per version.
|
|
58
|
+
|
|
59
|
+
A lockfile plan in audit mode approves what passes every other check, and the
|
|
60
|
+
dependency cache never restores or saves a lockfile whose plan audited
|
|
61
|
+
anything.
|
|
62
|
+
|
|
63
|
+
## Keep the packages
|
|
64
|
+
|
|
65
|
+
Approve the names a run recorded with `approve_audited_packages`
|
|
66
|
+
(`{ "runId": "<run id>" }`), or add them to `codingProfile.packageAllowlist`
|
|
67
|
+
with `update_agent`. Then turn the mode off.
|
|
68
|
+
|
|
69
|
+
Without `names`, the tool adds only `top-level` packages. A package recorded
|
|
70
|
+
as `unknown` (installed with no metadata or plan to show its parent) may be a
|
|
71
|
+
dependency of an allowlisted package, so every report lists it apart as
|
|
72
|
+
"Relation unknown — may be a dependency; approve only if needed directly".
|
|
73
|
+
Add one only if the project uses it directly, by listing it in `names`.
|
|
74
|
+
|
|
75
|
+
## Risks
|
|
76
|
+
|
|
77
|
+
Audit mode weakens the supply-chain guard while it is on. `audit` keeps the
|
|
78
|
+
malware, advisory and release-age checks; `full` keeps only malware and
|
|
79
|
+
release age. A confused or prompt-injected agent could install a lookalike
|
|
80
|
+
package that has no advisory yet. Install scripts stay off, but tests and
|
|
81
|
+
builds still run what was installed. Keep the window short, review the
|
|
82
|
+
caution banner on every affected pull request, and never leave it on.
|
|
83
|
+
|
|
84
|
+
## Related
|
|
85
|
+
|
|
86
|
+
- [Coding packages](coding-packages.md)
|
|
87
|
+
- [Not allowed: `wardby_package_not_allowed`](errors/package-not-allowed.md)
|
|
88
|
+
- [Package not reached: `wardby_package_not_allowed_pending`](errors/package-not-allowed-pending.md)
|
|
89
|
+
- [Graph limit: `wardby_graph_limit`](errors/graph-limit.md)
|
|
90
|
+
- [Still being checked: `wardby_graph_incomplete`](errors/graph-incomplete.md)
|
|
91
|
+
- [Package audit mode guide](../docs/coding-packages.md#package-audit-mode)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: related-pull-requests
|
|
3
3
|
title: Related pull requests across repositories
|
|
4
|
-
summary: Wardby lists the other pull requests from the same request in each pull request's description,
|
|
4
|
+
summary: Wardby lists the other pull requests from the same request in each pull request's description, in the merge order the delegating agent set (mergeOrder) or else a suggested merge order.
|
|
5
5
|
audience: operator
|
|
6
6
|
tags: [github, pull-requests, multi-repo, merge-order, related, siblings, continuePriorRun, coding-agents, jira]
|
|
7
7
|
appliesTo: ">=0.4.2"
|
|
@@ -11,16 +11,19 @@ appliesTo: ">=0.4.2"
|
|
|
11
11
|
|
|
12
12
|
When one request produces pull requests in several repositories — a lead
|
|
13
13
|
agent that delegates to one coding agent per repository, or several runs for
|
|
14
|
-
the same Jira issue — Wardby adds a **Related pull requests** section to each
|
|
14
|
+
the same Jira or GitHub issue — Wardby adds a **Related pull requests** section to each
|
|
15
15
|
of those pull requests' descriptions. It lists the others with links and
|
|
16
16
|
their state, names the originating issue when there is one, and gives a
|
|
17
|
-
|
|
17
|
+
merge order: the one the delegating agent set, or else a suggested one.
|
|
18
18
|
|
|
19
|
-
Without a tracked
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
19
|
+
Without a tracked issue, the list covers the pull requests opened by runs in
|
|
20
|
+
the same delegation tree (the same lead run and everything it started). With
|
|
21
|
+
a tracked issue (a Jira issue, or a GitHub issue whose `@<app-slug>` mention
|
|
22
|
+
started the request), the list covers every pull request Wardby has recorded
|
|
23
|
+
for that issue across every run, merged and closed ones included, plus that
|
|
24
|
+
run tree's own siblings. The section names the issue the same way for both,
|
|
25
|
+
for example "for Jira issue PROJ-123" or "for GitHub issue owner/repo#7",
|
|
26
|
+
linked to the issue.
|
|
24
27
|
|
|
25
28
|
- **Written by Wardby, not the model.** The list comes from Wardby's own run
|
|
26
29
|
records, never from the agent's text. Edits you make inside the section
|
|
@@ -30,13 +33,33 @@ included, plus that run tree's own siblings.
|
|
|
30
33
|
section on every open pull request of the request with the full list and
|
|
31
34
|
current states. A later run that pushes to any pull request in the set
|
|
32
35
|
refreshes the section on all of them the same way, and never removes it.
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
36
|
+
With Wardby 0.6.0 or later, a reviewer linked to one of these pull requests does
|
|
37
|
+
not review it until that same lead run finishes, however it ends. When the
|
|
38
|
+
lead finishes normally the section has already been rewritten by then;
|
|
39
|
+
when it is ended another way, such as being cancelled, reviews start
|
|
40
|
+
without that rewrite, so reviewers should rely on `repo_pr_read`'s
|
|
41
|
+
`relatedPullRequests` either way — see [Reviewing a pull request a
|
|
42
|
+
delegated run
|
|
43
|
+
opened](code-review-agents.md#reviewing-a-pull-request-a-delegated-run-opened).
|
|
44
|
+
- **Merge order.** Without a `mergeOrder` (see below) on any pull request in
|
|
45
|
+
the set, open (and draft) pull requests are numbered as a **Suggested merge
|
|
46
|
+
order (the order Wardby's agent opened them in)** — delegation order, not a
|
|
47
|
+
dependency analysis, and only reliable when the lead delegates repositories
|
|
48
|
+
that own shared data first (see
|
|
37
49
|
[Fanning out to several builders](../docs/agent-recipes.md#fanning-out-to-several-builders)).
|
|
38
|
-
|
|
39
|
-
|
|
50
|
+
When any pull request in the set has a `mergeOrder` (open, merged or
|
|
51
|
+
closed), the open ones that have one are numbered under **Merge order (set
|
|
52
|
+
by the delegating agent; equal steps can merge in either order)** and
|
|
53
|
+
labelled "step k of n" (equal values share a step and merge in either
|
|
54
|
+
order relative to each other), and any open pull request without one is
|
|
55
|
+
listed after under "Not ordered:". If only merged or closed pull requests
|
|
56
|
+
have a `mergeOrder`, every open one is listed under "Not ordered:" and the
|
|
57
|
+
"Merge order" heading is left out. Steps are counted over the whole set,
|
|
58
|
+
merged and closed pull requests included, so "step 2 of 3" keeps its label
|
|
59
|
+
after step 1 merges. Either way, check it before merging — neither is a
|
|
60
|
+
guarantee. Merged and closed pull requests follow in a separate "Already
|
|
61
|
+
merged or closed" list, as context only, with their step label when they
|
|
62
|
+
have one.
|
|
40
63
|
- Only open pull requests that Wardby's own GitHub App opened are edited;
|
|
41
64
|
merged or closed ones are listed but never changed, and a pull request
|
|
42
65
|
from a different Wardby deployment sharing the same App is never touched.
|
|
@@ -45,13 +68,54 @@ included, plus that run tree's own siblings.
|
|
|
45
68
|
name and number, so a request that spans repositories of different
|
|
46
69
|
visibility can show a private repository's name in a public repository's
|
|
47
70
|
pull request. If you mix public and private repositories, keep such work in
|
|
48
|
-
separate requests: separate
|
|
71
|
+
separate requests: separate issues, or separate lead agents.
|
|
49
72
|
|
|
50
73
|
Reviewers see the section in the pull request description, so a reviewer
|
|
51
74
|
agent can tell that a field, route, or schema a change relies on is added by
|
|
52
|
-
a sibling pull request rather than missing.
|
|
75
|
+
a sibling pull request rather than missing. Because the description is only
|
|
76
|
+
rewritten at the points above, a sibling opened (or merged, or closed) since
|
|
77
|
+
then can be missing from it or shown with an old state. With Wardby 0.6.0 or later,
|
|
78
|
+
`repo_pr_read`'s `relatedPullRequests` field lists the request's pull
|
|
79
|
+
requests fresh on every call instead, so a reviewer should prefer it over
|
|
80
|
+
the description's section when they disagree. Its entry for the pull request
|
|
81
|
+
just read always carries that pull request's live state; another entry
|
|
82
|
+
carries a state only when Wardby has one stored (pull requests linked to an
|
|
83
|
+
issue) and omits it otherwise, so call `repo_pr_read` on that pull request
|
|
84
|
+
for its live state. `relatedPullRequests` is empty for a pull request on a
|
|
85
|
+
local repository, which has no App-authored marker to resolve the request
|
|
86
|
+
from. See the
|
|
87
|
+
reviewer step in
|
|
53
88
|
[Run GitHub code-review agents](code-review-agents.md#ci-and-sibling-pull-requests).
|
|
54
89
|
|
|
90
|
+
## Setting a merge order
|
|
91
|
+
|
|
92
|
+
A lead agent sets the order explicitly by passing `mergeOrder` on its
|
|
93
|
+
`delegate_to_<name>` call to a coding sub-agent: an integer from 1 to 99,
|
|
94
|
+
where 1 merges first. Give a repository that other repositories' changes
|
|
95
|
+
depend on a lower number than the ones that use it — for example a shared
|
|
96
|
+
service `1`, the API that calls it `2`, the client that calls the API `3`.
|
|
97
|
+
Give two changes the same number when there is no order between them; they
|
|
98
|
+
share a step and either can merge first. A bad value (not an integer, or
|
|
99
|
+
outside 1-99) is refused as a tool error, not silently dropped or clamped.
|
|
100
|
+
|
|
101
|
+
Set it whenever one request's change spans several repositories and the
|
|
102
|
+
pull requests need to land in a specific sequence; leave it out and the set
|
|
103
|
+
keeps the delegation-order suggestion above. `mergeOrder` applies only to
|
|
104
|
+
coding sub-agents, since only a coding run's pull request can be ordered: a
|
|
105
|
+
native sub-agent ignores it, and its tool result notes that it did.
|
|
106
|
+
|
|
107
|
+
Each pull request shows the value most recently set for it, by the run that
|
|
108
|
+
opened it or a later continuation of it. A `continuePriorRun` call that
|
|
109
|
+
omits `mergeOrder` keeps that current value, so a follow-up does not need to
|
|
110
|
+
repeat it to keep a pull request in its place; one that sets `mergeOrder`
|
|
111
|
+
replaces it.
|
|
112
|
+
|
|
113
|
+
With Wardby 0.6.0 or later, once a set has more than one `mergeOrder`, each
|
|
114
|
+
open or draft pull request Wardby opened in it also gets a check run named
|
|
115
|
+
`wardby merge order`, tracking whether the pull requests it depends on have
|
|
116
|
+
merged yet. It's an informational check by default; search help for "merge
|
|
117
|
+
order check" for its states and for requiring it in branch protection.
|
|
118
|
+
|
|
55
119
|
## Follow-up runs and sibling pull requests
|
|
56
120
|
|
|
57
121
|
When someone asks for a follow-up on one of these pull requests (an
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: repo-instructions-and-skills
|
|
3
|
+
title: Repository instructions and skills in coding runs
|
|
4
|
+
summary: What AGENTS.md, CLAUDE.md, and repo skills a coding run loads, and how to turn repo skills off per agent with codingProfile.repoSkills.
|
|
5
|
+
audience: all
|
|
6
|
+
tags: [coding, skills, repoSkills, claudeBareMode, CLAUDE.md, AGENTS.md, SKILL.md, codex, claude-code]
|
|
7
|
+
appliesTo: ">=0.5.4"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Repository instructions and skills in coding runs
|
|
11
|
+
|
|
12
|
+
Every coding run loads the repository's own instructions, and by default
|
|
13
|
+
also loads whatever agent skills the repository ships. This is on for both
|
|
14
|
+
builders and cannot be turned off for instructions; skills can be turned off
|
|
15
|
+
per agent.
|
|
16
|
+
|
|
17
|
+
## Repository instructions (always on)
|
|
18
|
+
|
|
19
|
+
| Builder | Gets |
|
|
20
|
+
| ----------- | --------------------------------------------------------------------------------- |
|
|
21
|
+
| Codex | `AGENTS.md`, read directly from the checkout |
|
|
22
|
+
| Claude Code | `CLAUDE.md`, `.claude/CLAUDE.md`, and their `@path` imports (up to 5 levels deep) |
|
|
23
|
+
|
|
24
|
+
A repository that only has `AGENTS.md` still gets it in Claude Code, through
|
|
25
|
+
a one-line `CLAUDE.md` wardby synthesizes for it. Subdirectory `CLAUDE.md`
|
|
26
|
+
files (anything other than the repository root and `.claude/CLAUDE.md`) are
|
|
27
|
+
not loaded unless an imported file pulls them in.
|
|
28
|
+
|
|
29
|
+
Claude Code's instructions and skills are bounded: at most 64 KiB per file,
|
|
30
|
+
200 files, and 256 KiB combined; symlinks and non-UTF-8 files are refused. A
|
|
31
|
+
file that doesn't pass is left out of the run rather than failing it.
|
|
32
|
+
Repository settings, hooks, `.mcp.json`, agents, and commands are never sent
|
|
33
|
+
to Claude Code — only Markdown instruction files and
|
|
34
|
+
`.claude/skills/<name>/SKILL.md` files are allowed through, whatever an
|
|
35
|
+
instruction file imports.
|
|
36
|
+
|
|
37
|
+
Repository instructions and skills are untrusted guidance: they can shape a
|
|
38
|
+
run's work but never relax the worker's sandbox rules.
|
|
39
|
+
|
|
40
|
+
## Repository skills
|
|
41
|
+
|
|
42
|
+
`codingProfile.repoSkills` loads the repository's own agent skills into a
|
|
43
|
+
run. It defaults to `true`, and the agent owner or an admin can set it with
|
|
44
|
+
`create_agent`/`update_agent`:
|
|
45
|
+
|
|
46
|
+
```json
|
|
47
|
+
{ "id": "<agent-id>", "codingProfile": { "repoSkills": false } }
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
| Builder | Reads skills from | `repoSkills: false` |
|
|
51
|
+
| ----------- | ----------------------------------- | ---------------------------------- |
|
|
52
|
+
| Codex | `.agents/skills/`, `.codex/skills/` | Every repository skill is disabled |
|
|
53
|
+
| Claude Code | `.claude/skills/<name>/SKILL.md` | No skill context is collected |
|
|
54
|
+
|
|
55
|
+
Codex's own four built-in skills (`imagegen`, `openai-docs`, `skill-creator`,
|
|
56
|
+
`skill-installer`) are always disabled, whatever `repoSkills` is set to.
|
|
57
|
+
|
|
58
|
+
A Claude Code skill ships to the worker as its `SKILL.md` only; its other
|
|
59
|
+
files (scripts, references, data) stay in the repository checkout, read or
|
|
60
|
+
run through the command runner at `/workspace/.claude/skills/<name>/`.
|
|
61
|
+
|
|
62
|
+
## Claude Code loading mode
|
|
63
|
+
|
|
64
|
+
`codingProfile.claudeBareMode` (Claude Code agents only, default `true`)
|
|
65
|
+
decides how Claude Code uses its repository instructions and skills:
|
|
66
|
+
|
|
67
|
+
- **`true` (default).** Claude Code's hardened bare mode stays on. Wardby
|
|
68
|
+
adds the repository's instruction files to the system prompt in full, and
|
|
69
|
+
lists each skill by name, description, and path; the model reads a
|
|
70
|
+
skill's full `SKILL.md` itself with `run_command`.
|
|
71
|
+
- **`false`.** Bare mode is off and Claude Code loads `CLAUDE.md` and skills
|
|
72
|
+
itself, through its native Skill tool, instead of reading them from the
|
|
73
|
+
system prompt.
|
|
74
|
+
|
|
75
|
+
Repository settings, hooks, MCP configuration, agents, and commands are
|
|
76
|
+
never loaded in either mode.
|
|
77
|
+
|
|
78
|
+
```json
|
|
79
|
+
{ "id": "<agent-id>", "codingProfile": { "claudeBareMode": false } }
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## See also
|
|
83
|
+
|
|
84
|
+
- [Choose a native or coding agent](creating-agents.md) for `codingProfile`
|
|
85
|
+
basics and the other fields it accepts.
|
|
86
|
+
- [Bring-Your-Own Coding-Worker Images](../docs/coding-worker-byo-images.md)
|
|
87
|
+
— a custom `workerImageRef` image must be rebuilt for the current release. A
|
|
88
|
+
Codex agent's image built on an older driver base rejects
|
|
89
|
+
`repoSkills: false` and keeps offering Codex's built-in skills.
|
|
90
|
+
- [Build a tool runner image for a Claude Code agent](build-claude-code-image.md)
|
|
91
|
+
to give a Claude Code agent's commands the tools your project needs.
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: resume-runs-locally
|
|
3
|
+
title: Resume Claude Code runs locally (sessionResume, get_run_transcript, wardby resume)
|
|
4
|
+
summary: Keep each Claude Code run's redacted conversation with sessionResume, then continue it on your machine with get_run_transcript and npx @wardby/cli@latest resume.
|
|
5
|
+
audience: operator
|
|
6
|
+
tags: [sessionResume, wardby resume, get_run_transcript, transcript, blob-store, WARDBY_SESSION_TRANSCRIPTS]
|
|
7
|
+
appliesTo: ">=0.7.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Resume Claude Code runs locally
|
|
11
|
+
|
|
12
|
+
`sessionResume` makes a Claude Code agent keep a redacted copy of each run's
|
|
13
|
+
conversation, so the session can be continued locally in Claude Code with
|
|
14
|
+
`get_run_transcript` and `npx @wardby/cli@latest resume`. It is off by default and is not
|
|
15
|
+
available for Codex agents. It needs Claude Code worker images from Wardby
|
|
16
|
+
0.7.0 or later.
|
|
17
|
+
|
|
18
|
+
## Turn it on
|
|
19
|
+
|
|
20
|
+
```json
|
|
21
|
+
{ "id": "<coding agent id>", "codingProfile": { "sessionResume": true } }
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Use `update_agent` or `create_agent`. The server needs a blob store
|
|
25
|
+
(`BLOB_STORE`, with `BLOB_STORE_LOCAL_DIR`, `BLOB_STORE_GCS_BUCKET`, or
|
|
26
|
+
`BLOB_STORE_S3_BUCKET` and `BLOB_STORE_S3_REGION`, plus the optional
|
|
27
|
+
`BLOB_STORE_S3_ENDPOINT` for an S3-compatible store) set on the **server
|
|
28
|
+
process** that launches coding runs, not only on the coding proxy. Without a
|
|
29
|
+
blob store nothing is stored, and `update_agent` warns you.
|
|
30
|
+
|
|
31
|
+
## What is stored
|
|
32
|
+
|
|
33
|
+
- The conversation as Claude Code recorded it: user and assistant messages,
|
|
34
|
+
tool calls and their results, compaction summaries, files and skills the
|
|
35
|
+
agent loaded, and a session title (`wardby run <id>: <task>` when Claude
|
|
36
|
+
Code made none).
|
|
37
|
+
- Removed: thinking blocks, the system prompt, the worker's environment, date
|
|
38
|
+
and budget reminders, account and organisation details, and billing
|
|
39
|
+
records.
|
|
40
|
+
- Redacted: the values of the agent's attached secrets, plus the run's
|
|
41
|
+
capability and registry token by their token shape. If the agent's secrets
|
|
42
|
+
cannot be loaded, nothing is stored.
|
|
43
|
+
- Stored for runs that finish, stop at their budget, or fail. Not stored for
|
|
44
|
+
runs stopped with `stop_run` or ended by their timeout.
|
|
45
|
+
- Stored gzip-compressed under the `run-transcripts/` prefix. When the run's
|
|
46
|
+
context was compacted, only what a resume loads is kept: the last
|
|
47
|
+
compaction's summary, the messages it kept, and everything after it.
|
|
48
|
+
- At most `RUN_TRANSCRIPT_MAX_BYTES` per run, measured before compression
|
|
49
|
+
(default 10 MiB, at most 64 MiB). Each run records a status (`stored`,
|
|
50
|
+
`too_large`, `not_captured` or `failed`) with a reason code.
|
|
51
|
+
|
|
52
|
+
## Who can read it
|
|
53
|
+
|
|
54
|
+
Transcripts are stored from the first run with `sessionResume` on. Anyone
|
|
55
|
+
who can read a run (its triggerer and the agent's owner, as for `get_run`)
|
|
56
|
+
can download its transcript, which includes
|
|
57
|
+
what the agent saw in the repository and in command output. Redaction removes secret
|
|
58
|
+
values, not other sensitive text. Turn this on only for agents whose runs you
|
|
59
|
+
are comfortable sharing with everyone who can read them.
|
|
60
|
+
|
|
61
|
+
## Continue a run on your machine
|
|
62
|
+
|
|
63
|
+
1. Ask your MCP client to call `get_run_transcript` with the run id (same
|
|
64
|
+
access as `get_run`). For a stored transcript it returns a download link
|
|
65
|
+
that works for 10 minutes and the command to run; otherwise the status
|
|
66
|
+
(`none`, `too_large`, `not_captured`, `failed`, `expired`, `unavailable`,
|
|
67
|
+
`unsupported`) and what it means.
|
|
68
|
+
2. Run the command in a terminal, `npx @wardby/cli@latest resume -`, and paste the link
|
|
69
|
+
when it asks. (A link given as an argument stays in shell history and the
|
|
70
|
+
process list.) For a GitHub repository, run it inside a clone of that
|
|
71
|
+
repository. A `local:` repository is used only when the link comes from
|
|
72
|
+
this machine (a stdio MCP server); otherwise pass `--here` or `--dir`.
|
|
73
|
+
|
|
74
|
+
It verifies the download's SHA-256, writes the session to
|
|
75
|
+
`~/.wardby/sessions/<run id>/<session id>.jsonl` (mode 0600, never into
|
|
76
|
+
Claude Code's own config directory), adds a detached git worktree of the
|
|
77
|
+
run's branch next to the repository (the base commit, with a warning, when
|
|
78
|
+
the branch is gone), and starts `claude --resume` there. A stand-in
|
|
79
|
+
`wardby_tools` server shows the run's `run_command` calls but runs nothing,
|
|
80
|
+
and a note tells the model `/workspace` is now the worktree.
|
|
81
|
+
|
|
82
|
+
Options: `--dir <path>` (worktree location), `--here` (no checkout),
|
|
83
|
+
`--force` (replace a different imported session file), `--print` (print the
|
|
84
|
+
`claude` command instead of starting it). The command passes
|
|
85
|
+
`--system-prompt-snapshot off` so the move note applies; remove it for a
|
|
86
|
+
Claude Code older than 2.1.257 when the version could not be read. Under
|
|
87
|
+
`npx`, the MCP config points into the npx cache: run `wardby resume` again if
|
|
88
|
+
the cache was cleaned.
|
|
89
|
+
|
|
90
|
+
The link is a credential until it expires: do not share it. Over stdio it
|
|
91
|
+
points at a local port the MCP server opens, so keep your MCP client
|
|
92
|
+
connected until the download finishes. The token is in the link's query
|
|
93
|
+
string: keep `/run-transcripts/download` out of load-balancer and ingress
|
|
94
|
+
access logs. Refusals:
|
|
95
|
+
[Run transcript download refused](errors/run-transcript-download.md).
|
|
96
|
+
|
|
97
|
+
## Retention
|
|
98
|
+
|
|
99
|
+
`RUN_TRANSCRIPT_RETENTION_DAYS` is a whole number from 1 to 3650 (default 30).
|
|
100
|
+
Expired transcripts are pruned when new ones are stored. On GCS or S3 also add
|
|
101
|
+
a bucket lifecycle rule on the `run-transcripts/` prefix.
|
|
102
|
+
|
|
103
|
+
## Set it up per deployment
|
|
104
|
+
|
|
105
|
+
Give transcripts a bucket of their own, not the dependency cache bucket, that
|
|
106
|
+
only the control plane can use.
|
|
107
|
+
|
|
108
|
+
- GKE: `session_transcripts_enabled` and `session_transcripts_bucket_name` in
|
|
109
|
+
Terraform (optionally `session_transcripts_retention_days`), then
|
|
110
|
+
`WARDBY_SESSION_TRANSCRIPTS=true deploy/gke/up.sh`. Terraform adds the
|
|
111
|
+
lifecycle rule; `up.sh` passes the same retention to the control plane.
|
|
112
|
+
- AWS: the same Terraform variables, then give the control plane `BLOB_STORE=s3`,
|
|
113
|
+
the `session_transcripts_bucket` output as `BLOB_STORE_S3_BUCKET`,
|
|
114
|
+
`BLOB_STORE_S3_REGION`, and the `session_transcripts_retention_days` output as
|
|
115
|
+
`RUN_TRANSCRIPT_RETENTION_DAYS`.
|
|
116
|
+
- kind harness and Docker quickstart: the server runs on your host. Set
|
|
117
|
+
`BLOB_STORE=local` and `BLOB_STORE_LOCAL_DIR` in its environment (for the
|
|
118
|
+
quickstart, in `.wardby/.env`).
|
|
119
|
+
|
|
120
|
+
## Startup and custom images
|
|
121
|
+
|
|
122
|
+
With `JOB_LAUNCHER` set to `docker` or `kubernetes`, a half-set `BLOB_STORE`
|
|
123
|
+
or an invalid `RUN_TRANSCRIPT_RETENTION_DAYS` or `RUN_TRANSCRIPT_MAX_BYTES` stops
|
|
124
|
+
the server at startup,
|
|
125
|
+
naming the variable. An agent with its own `workerImageRef` image must rebuild
|
|
126
|
+
it from a release that includes session resume (see
|
|
127
|
+
[Build a tool runner image for a Claude Code agent](help://build-claude-code-image)),
|
|
128
|
+
or its runs fail at input with `worker_input_failed`.
|
|
129
|
+
|
|
130
|
+
Full setup: [Resume a run locally](../docs/coding-agent-setup.md#resume-a-run-locally).
|
|
131
|
+
See also [Choose a native or coding agent](help://creating-agents).
|
|
@@ -3,7 +3,7 @@ id: review-fix-rounds
|
|
|
3
3
|
title: Automatic review fix rounds
|
|
4
4
|
summary: Let wardby fix its own review's findings on pull requests its coding runs opened, with a round cap.
|
|
5
5
|
audience: operator
|
|
6
|
-
tags: [github, code-review, review_fix, autofix, fix-round, pull-requests]
|
|
6
|
+
tags: [github, code-review, review_fix, autofix, fix-round, pull-requests, pr-description, description, linked-issue]
|
|
7
7
|
appliesTo: ">=0.4.2"
|
|
8
8
|
---
|
|
9
9
|
|
|
@@ -37,6 +37,16 @@ still running. Clicking **Re-run** on the review check isn't counted as a
|
|
|
37
37
|
round itself; if the re-run's review requests changes, that starts a round
|
|
38
38
|
like any other review.
|
|
39
39
|
|
|
40
|
+
With Wardby 0.6.0 or later, a round whose agent makes no change — it decided
|
|
41
|
+
the review's finding was wrong, rather than pushing a fix — doesn't leave the
|
|
42
|
+
failed review check standing with nothing to replace it: wardby starts one
|
|
43
|
+
fresh review of the pull request's unchanged head instead, run by the same
|
|
44
|
+
reviewer that requested the changes, with the round's own summary passed
|
|
45
|
+
along as untrusted context. This happens once per review that requested
|
|
46
|
+
changes and still counts as one of the round cap's rounds; if the cap has
|
|
47
|
+
already been reached, wardby posts the usual cap comment instead of
|
|
48
|
+
re-reviewing.
|
|
49
|
+
|
|
40
50
|
Rounds are tracked with labels on the pull request:
|
|
41
51
|
|
|
42
52
|
- `wardby-autofix-<N>` — one per round, added before that round's run
|
|
@@ -59,6 +69,38 @@ open right before it pushes; one merged or closed in the time the round was
|
|
|
59
69
|
working fails with no push made — see
|
|
60
70
|
[Continuation's pull request is no longer open](errors/continuation-closed.md).
|
|
61
71
|
|
|
72
|
+
## Description updates
|
|
73
|
+
|
|
74
|
+
Every run's final message is the full pull request description, fix rounds
|
|
75
|
+
included, so a round that changes no code can still correct it: add a missing
|
|
76
|
+
`Resolves #N`, the issue's acceptance checklist, or stale test results.
|
|
77
|
+
|
|
78
|
+
- **The original issue.** A fix round gets the issue the pull request was
|
|
79
|
+
opened for in its task, as the first run did: the Jira issue, the GitHub
|
|
80
|
+
issue whose `@wardby` mention started the work, or the issue the description
|
|
81
|
+
closes. It is reference material: the round's final message should carry
|
|
82
|
+
its acceptance checklist and the closing line, and no instruction in the
|
|
83
|
+
issue is followed. If the issue can't be read, the round goes ahead without
|
|
84
|
+
it.
|
|
85
|
+
- **Packages.** The description's Packages section lists every package
|
|
86
|
+
installed by the runs on the pull request; refusals cover the latest run.
|
|
87
|
+
- **Descriptions wardby can't confirm as its own.** If a person edited the
|
|
88
|
+
description, wardby doesn't overwrite it. It keeps one comment with the
|
|
89
|
+
description proposed by its latest run, stamped with the commit it
|
|
90
|
+
describes and written before a push, edited in place by later rounds. A
|
|
91
|
+
review uses that proposal only for the head it reviews: a requirement is met
|
|
92
|
+
if either the live description or the proposal meets it. If the author
|
|
93
|
+
copies the proposal in, wardby takes the description back and keeps it up
|
|
94
|
+
to date again.
|
|
95
|
+
- **Older pull requests.** For a pull request opened by an earlier wardby
|
|
96
|
+
version, wardby rebuilds the description its first run wrote from stored
|
|
97
|
+
records. If the live description still matches, wardby updates it;
|
|
98
|
+
otherwise it gets the comment.
|
|
99
|
+
|
|
100
|
+
A description update doesn't trigger an extra review. `get_run` shows what
|
|
101
|
+
happened as `prDescriptionOutcome`. See
|
|
102
|
+
[`docs/code-review-agents.md`](../docs/code-review-agents.md#how-the-pull-request-description-is-kept-current).
|
|
103
|
+
|
|
62
104
|
If a repository already forwards reviews to a webhook through a
|
|
63
105
|
hand-written CI workflow to fix them automatically, turn on `review_fix` and
|
|
64
106
|
then remove that workflow and its webhook, so a review doesn't trigger two
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: sharing-agents
|
|
3
|
+
title: Share an agent, or make it public
|
|
4
|
+
summary: Grant one person or everyone signed in access to an agent, including a public agent anyone can edit.
|
|
5
|
+
audience: operator
|
|
6
|
+
tags: [sharing, grant_access, public, access-control, agents]
|
|
7
|
+
appliesTo: ">=0.7.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Share an agent, or make it public
|
|
11
|
+
|
|
12
|
+
An agent's owner controls who else can reach it with `grant_access`,
|
|
13
|
+
`revoke_access` and `list_access`. Levels, lowest first:
|
|
14
|
+
|
|
15
|
+
- `read`: see the agent in `list_agents` and `get_agent`.
|
|
16
|
+
- `execute`: also run it (`trigger_agent`).
|
|
17
|
+
- `write`: also change it (`update_agent`, schedule, webhooks, tools).
|
|
18
|
+
|
|
19
|
+
The grantee is one person, `{"subject": "..."}` or `{"principalId": "..."}`,
|
|
20
|
+
who must have signed in once, or `"everyone"`: any principal signed in to the
|
|
21
|
+
MCP server.
|
|
22
|
+
|
|
23
|
+
## Public agents
|
|
24
|
+
|
|
25
|
+
Grant `everyone` at `read` or `execute` for an agent anyone can see or run.
|
|
26
|
+
Grant `everyone` at `write` for an agent anyone can also edit.
|
|
27
|
+
|
|
28
|
+
Everyone-`write` is refused while the agent holds any of its owner's bindings:
|
|
29
|
+
secrets, datastores, repositories, sub-agents, tool capabilities, or a coding
|
|
30
|
+
repository, so a coding agent can't be public-write. Otherwise anyone could
|
|
31
|
+
rewrite its prompt and use them. Detach them first, or grant `execute` instead.
|
|
32
|
+
The reverse holds too: `attach_secret`, `attach_datastore`, `link_repository`,
|
|
33
|
+
`attach_subagent`, `attach_tool` with capabilities, and `update_agent` making
|
|
34
|
+
it a coding agent are refused on an agent everyone can write. Revoke or lower
|
|
35
|
+
the everyone grant first.
|
|
36
|
+
|
|
37
|
+
### Cap what a public-write agent can spend
|
|
38
|
+
|
|
39
|
+
Runs of a shared agent are charged to its owner. With `write`, anyone signed in
|
|
40
|
+
can change the agent's model, per-run budget, turns and schedule, and create
|
|
41
|
+
webhooks that trigger it. Before granting everyone `write`, put the agent in a
|
|
42
|
+
budget group (`create_budget_group`, then `update_agent` with `budgetGroupId`).
|
|
43
|
+
Only the owner can change
|
|
44
|
+
budget-group membership, so the group's limit caps total spend whatever anyone
|
|
45
|
+
else changes.
|
|
46
|
+
|
|
47
|
+
### After you revoke or lower the grant
|
|
48
|
+
|
|
49
|
+
- **Webhooks:** a webhook fires only while its creator can still run the
|
|
50
|
+
agent. Revoking the everyone grant stops webhooks other people created;
|
|
51
|
+
lowering it to `execute` keeps them firing. Use `list_webhooks` and
|
|
52
|
+
`delete_webhook` to remove them; the owner can delete any webhook on the
|
|
53
|
+
agent.
|
|
54
|
+
- **Schedule:** a schedule someone else set stays on the agent. Check it with
|
|
55
|
+
`get_agent` and remove it with `disable_schedule`.
|
|
56
|
+
- **Prompt and settings:** edits stay. Check the prompt, model and budget with
|
|
57
|
+
`get_agent`.
|
|
58
|
+
|
|
59
|
+
See [Identity and access](identity-and-access.md) for sign-in and scopes.
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: slack-notifications
|
|
3
|
+
title: Send workflow updates to Slack
|
|
4
|
+
summary: Link a Slack channel to a Jira project or an agent to follow cards from pickup to merge, one thread per card.
|
|
5
|
+
audience: operator
|
|
6
|
+
tags: [slack, notifications, channels, jira, pull-requests, link_notification_channel]
|
|
7
|
+
appliesTo: >=0.6.0
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Send workflow updates to Slack
|
|
11
|
+
|
|
12
|
+
Link a Slack channel to a Jira project or to an agent (native or coding) and wardby posts
|
|
13
|
+
that project's or agent's workflow updates there — a card picked up, a pull
|
|
14
|
+
request opened, a review verdict, fix rounds, and the merge — with one thread
|
|
15
|
+
per card. This is outbound only: nothing in Slack starts or affects a run.
|
|
16
|
+
|
|
17
|
+
## Setup checklist
|
|
18
|
+
|
|
19
|
+
1. Create the Slack app from [`deploy/slack/app-manifest.yaml`](../deploy/slack/app-manifest.yaml)
|
|
20
|
+
and install it to your workspace.
|
|
21
|
+
2. Copy the Bot User OAuth Token (`xoxb-…`).
|
|
22
|
+
3. Set `WARDBY_SLACK_BOT_TOKEN` (store it like any other provider credential)
|
|
23
|
+
and restart wardby.
|
|
24
|
+
4. Link a channel with `link_notification_channel` — to a Jira project
|
|
25
|
+
(`projectKey`) or to an agent (`agentId`).
|
|
26
|
+
5. Call `test_notification_channel` and confirm "✅ wardby is connected to
|
|
27
|
+
this channel." posts there.
|
|
28
|
+
|
|
29
|
+
## Events
|
|
30
|
+
|
|
31
|
+
`issue_picked_up`, `run_failed` and `run_blocked` (top-level runs only),
|
|
32
|
+
`pr_opened`, `review_posted` (approve / changes requested / comment),
|
|
33
|
+
`review_fix` (round started, or stopped at the cap), `pr_closed` (merged or
|
|
34
|
+
closed, with any Jira status move), and `packages_audited` (from Wardby 0.7.0,
|
|
35
|
+
top-level runs only: what its coding runs installed under package audit mode,
|
|
36
|
+
described in the `package-audit-mode` help article; it doesn't change the
|
|
37
|
+
thread's status). `events` on a link narrows which of these post; omitted
|
|
38
|
+
means all eight. `includeCost` appends the run's spend line.
|
|
39
|
+
|
|
40
|
+
A pull request opened from a GitHub issue mention posts `pr_opened` and
|
|
41
|
+
`pr_closed` too, the same as one opened for a Jira issue. Its thread is the
|
|
42
|
+
issue's, one per GitHub issue, not one per pull request; once the pull request
|
|
43
|
+
is recorded for the issue, its `review_posted` and `review_fix` events reply
|
|
44
|
+
there as well. The run events of a run a GitHub issue mention started keep a
|
|
45
|
+
thread of their own.
|
|
46
|
+
|
|
47
|
+
A `run_blocked` event uses the same ⛔ package registry wording and fixes as
|
|
48
|
+
[Run status comments](status-comments.md). See [Package refusal errors](errors/package-refusals.md)
|
|
49
|
+
for allowlist, release-age, advisory, and malware guidance.
|
|
50
|
+
|
|
51
|
+
wardby never posts code, diffs, review text, or run output to Slack.
|
|
52
|
+
|
|
53
|
+
## If something isn't posting
|
|
54
|
+
|
|
55
|
+
- The link's `lastError` (from `list_notification_channels`) names the
|
|
56
|
+
problem. A channel error means the bot can't write there — see
|
|
57
|
+
[`errors/slack-channel-unreachable`](errors/slack-channel-unreachable.md).
|
|
58
|
+
- No deliveries at all, for every channel, usually means the bot token is
|
|
59
|
+
invalid, revoked, or missing a scope — see
|
|
60
|
+
[`errors/slack-auth-failed`](errors/slack-auth-failed.md).
|
|
61
|
+
- A channel that recovers gets new events again right away; deliveries that
|
|
62
|
+
already failed are not resent.
|
|
63
|
+
- Linking or testing refused outright means Slack isn't configured yet — see
|
|
64
|
+
[`errors/slack-not-configured`](errors/slack-not-configured.md).
|
|
65
|
+
|
|
66
|
+
## Related
|
|
67
|
+
|
|
68
|
+
- [Run Jira agents](jira.md) — link a channel to the same project a Jira
|
|
69
|
+
agent is linked to, to see its cards move end to end.
|
|
70
|
+
- [Automatic review fix rounds](review-fix-rounds.md) — the `review_fix`
|
|
71
|
+
event covers these rounds.
|
|
72
|
+
- [Connect GitHub repositories](github.md) — pull-request events come from
|
|
73
|
+
the same App your coding and review agents already use.
|
|
74
|
+
|
|
75
|
+
For the full guide, including scopes, threads, and failure modes, see
|
|
76
|
+
[`docs/slack-notifications.md`](../docs/slack-notifications.md).
|