@wardby/cli 0.6.0 → 0.8.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 +5 -5
- package/README.md +6 -1
- package/deploy/local/docker-compose.quickstart-coding.yml +19 -0
- package/dist/claude-coding-worker/driver.d.ts +33 -3
- package/dist/claude-coding-worker/driver.js +151 -21
- package/dist/claude-coding-worker/main.js +38 -6
- package/dist/claude-coding-worker/sdk.js +29 -2
- 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/claude-plugin/command.d.ts +61 -0
- package/dist/claude-plugin/command.js +376 -0
- package/dist/cli-help.d.ts +1 -1
- package/dist/cli-help.js +3 -1
- package/dist/cli.js +71 -13
- package/dist/coding/code-host.d.ts +16 -0
- package/dist/coding/code-host.js +60 -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/mcp-token.d.ts +12 -0
- package/dist/coding/mcp-token.js +26 -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 +46 -126
- package/dist/coding/profile.js +45 -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 +264 -346
- package/dist/coding/protocol.js +237 -12
- package/dist/coding/redact.d.ts +3 -0
- package/dist/coding/redact.js +17 -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 +52 -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 +8 -3
- package/dist/coding-worker/artifact.js +3 -1
- package/dist/coding-worker/debug-trace.d.ts +9 -6
- package/dist/coding-worker/debug-trace.js +16 -19
- 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 +124 -39
- package/dist/coding-worker/errors.d.ts +1 -0
- package/dist/coding-worker/errors.js +32 -0
- package/dist/coding-worker/main.js +5 -1
- package/dist/coding-worker/mcp-config.d.ts +27 -0
- package/dist/coding-worker/mcp-config.js +32 -0
- package/dist/coding-worker/sdk.d.ts +36 -0
- package/dist/coding-worker/sdk.js +28 -1
- 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 +15 -0
- package/dist/config/dependency-cache.d.ts +23 -0
- package/dist/config/dependency-cache.js +32 -0
- package/dist/config/mcp-call-limit.d.ts +8 -0
- package/dist/config/mcp-call-limit.js +18 -0
- package/dist/config/mcp-servers.d.ts +8 -0
- package/dist/config/mcp-servers.js +12 -0
- package/dist/config/providers.d.ts +12 -3
- package/dist/config/providers.js +55 -5
- package/dist/config/test-simulators.d.ts +92 -0
- package/dist/config/test-simulators.js +333 -0
- package/dist/config/tool-timeout.d.ts +1 -0
- package/dist/config/tool-timeout.js +18 -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-mcp.d.ts +36 -0
- package/dist/core/coding-mcp.js +253 -0
- package/dist/core/coding-queue.d.ts +2 -1
- package/dist/core/coding-queue.js +7 -0
- package/dist/core/coding-repository.d.ts +46 -0
- package/dist/core/coding-repository.js +92 -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/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/delegation-slots.d.ts +27 -0
- package/dist/core/delegation-slots.js +44 -0
- package/dist/core/dispatch.d.ts +48 -2
- package/dist/core/dispatch.js +166 -66
- package/dist/core/engine-native.js +1 -1
- package/dist/core/error-code.d.ts +38 -0
- package/dist/core/error-code.js +169 -0
- package/dist/core/grants.d.ts +46 -8
- package/dist/core/grants.js +99 -8
- package/dist/core/host-events.d.ts +18 -2
- package/dist/core/host-events.js +291 -27
- package/dist/core/host-status.d.ts +85 -3
- package/dist/core/host-status.js +300 -22
- package/dist/core/issue-bridge.d.ts +50 -6
- package/dist/core/issue-bridge.js +124 -33
- package/dist/core/issue-events.d.ts +1 -1
- package/dist/core/issue-events.js +4 -10
- package/dist/core/issue-status.d.ts +1 -1
- package/dist/core/issue-status.js +58 -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/mcp-client/client.d.ts +47 -0
- package/dist/core/mcp-client/client.js +141 -0
- package/dist/core/mcp-client/jsonrpc.d.ts +15 -0
- package/dist/core/mcp-client/jsonrpc.js +54 -0
- package/dist/core/mcp-client/results.d.ts +13 -0
- package/dist/core/mcp-client/results.js +42 -0
- package/dist/core/mcp-servers.d.ts +90 -0
- package/dist/core/mcp-servers.js +230 -0
- package/dist/core/mcp-tools.d.ts +108 -0
- package/dist/core/mcp-tools.js +287 -0
- package/dist/core/memory-tools.js +7 -0
- package/dist/core/merge-order-check.d.ts +2 -1
- package/dist/core/merge-order-check.js +44 -18
- package/dist/core/notification-dispatcher.js +2 -1
- package/dist/core/notification-templates.d.ts +1 -7
- package/dist/core/notification-templates.js +36 -2
- package/dist/core/pull-request-state-sync.js +2 -2
- package/dist/core/reconciler.d.ts +4 -3
- package/dist/core/reconciler.js +8 -1
- package/dist/core/related-pull-requests.d.ts +11 -3
- package/dist/core/related-pull-requests.js +49 -20
- package/dist/core/reply-parts.d.ts +21 -0
- package/dist/core/reply-parts.js +73 -0
- package/dist/core/review-fix.d.ts +1 -1
- package/dist/core/review-fix.js +4 -3
- package/dist/core/review-host-checks.d.ts +1 -1
- package/dist/core/review-host-tools.d.ts +3 -0
- package/dist/core/review-host-tools.js +102 -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 +145 -49
- package/dist/core/runner.js +719 -216
- 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 +12 -74
- package/dist/core/secret-broker-config.js +1 -1
- package/dist/core/secret-guard.d.ts +49 -0
- package/dist/core/secret-guard.js +119 -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 +11 -1
- package/dist/core/secrets.js +27 -1
- package/dist/core/serializable-retry.d.ts +18 -0
- package/dist/core/serializable-retry.js +43 -0
- package/dist/core/stop-run.d.ts +46 -0
- package/dist/core/stop-run.js +61 -0
- package/dist/core/tool-admin.d.ts +5 -1
- package/dist/core/tool-admin.js +7 -2
- package/dist/core/tool-names.d.ts +13 -0
- package/dist/core/tool-names.js +20 -0
- package/dist/core/webhooks.d.ts +4 -0
- package/dist/core/webhooks.js +68 -49
- package/dist/core/workflow-events.d.ts +14 -2
- package/dist/core/workflow-events.js +4 -0
- package/dist/core/workflow-run-events.d.ts +5 -3
- package/dist/core/workflow-run-events.js +45 -9
- 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 +65 -3
- package/dist/generated/prisma/client.d.ts +65 -3
- package/dist/generated/prisma/commonInputTypes.d.ts +266 -106
- package/dist/generated/prisma/enums.d.ts +10 -0
- package/dist/generated/prisma/enums.js +8 -0
- package/dist/generated/prisma/internal/class.d.ts +110 -0
- package/dist/generated/prisma/internal/class.js +4 -4
- package/dist/generated/prisma/internal/prismaNamespace.d.ts +957 -9
- package/dist/generated/prisma/internal/prismaNamespace.js +166 -2
- package/dist/generated/prisma/internal/prismaNamespaceBrowser.d.ts +174 -0
- package/dist/generated/prisma/internal/prismaNamespaceBrowser.js +166 -2
- package/dist/generated/prisma/models/Agent.d.ts +377 -8
- package/dist/generated/prisma/models/AgentMcpServer.d.ts +1412 -0
- package/dist/generated/prisma/models/AgentMcpServer.js +1 -0
- package/dist/generated/prisma/models/AgentRepository.d.ts +81 -1
- package/dist/generated/prisma/models/AuthUser.d.ts +1 -1
- package/dist/generated/prisma/models/CodingAgentProfile.d.ts +228 -7
- package/dist/generated/prisma/models/CodingProxyRequest.d.ts +207 -3
- package/dist/generated/prisma/models/CodingProxySession.d.ts +232 -2
- package/dist/generated/prisma/models/CodingRun.d.ts +1712 -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/HostProvider.d.ts +2176 -0
- package/dist/generated/prisma/models/HostProvider.js +1 -0
- package/dist/generated/prisma/models/HostProviderCredential.d.ts +1285 -0
- package/dist/generated/prisma/models/HostProviderCredential.js +1 -0
- package/dist/generated/prisma/models/HostProviderOperation.d.ts +1470 -0
- package/dist/generated/prisma/models/HostProviderOperation.js +1 -0
- package/dist/generated/prisma/models/HostProviderTrustedAccount.d.ts +1145 -0
- package/dist/generated/prisma/models/HostProviderTrustedAccount.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/McpServer.d.ts +1500 -0
- package/dist/generated/prisma/models/McpServer.js +1 -0
- package/dist/generated/prisma/models/NativeGatewayCall.d.ts +77 -1
- package/dist/generated/prisma/models/NativeGatewaySession.d.ts +35 -1
- package/dist/generated/prisma/models/Principal.d.ts +167 -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/ResourceGrant.d.ts +1 -1
- package/dist/generated/prisma/models/Run.d.ts +738 -2
- package/dist/generated/prisma/models/RunBudgetEvent.d.ts +1211 -0
- package/dist/generated/prisma/models/RunBudgetEvent.js +1 -0
- 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 +387 -0
- package/dist/generated/prisma/models/Tool.d.ts +223 -1
- package/dist/generated/prisma/models.d.ts +10 -0
- package/dist/help/search.js +12 -3
- package/dist/help-index.json +2033 -110
- package/dist/import/create.js +48 -4
- package/dist/import/neutral-schema.d.ts +51 -281
- 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 +10 -2
- package/dist/mcp/auth/access.js +15 -1
- package/dist/mcp/auth/grants-cli.d.ts +6 -4
- package/dist/mcp/auth/grants-cli.js +42 -3
- package/dist/mcp/auth/ownership.d.ts +7 -7
- package/dist/mcp/auth/resource-server.d.ts +3 -1
- package/dist/mcp/auth/resource-server.js +17 -2
- 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 +3 -0
- package/dist/mcp/host-events/github-ingress.d.ts +2 -0
- package/dist/mcp/host-events/github-ingress.js +2 -1
- package/dist/mcp/index.d.ts +6 -0
- package/dist/mcp/index.js +69 -10
- 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 +295 -28
- package/dist/mcp/tools/datastore.js +17 -8
- package/dist/mcp/tools/grants.js +73 -29
- package/dist/mcp/tools/host-providers.d.ts +2 -0
- package/dist/mcp/tools/host-providers.js +215 -0
- package/dist/mcp/tools/mcp-servers.d.ts +26 -0
- package/dist/mcp/tools/mcp-servers.js +481 -0
- package/dist/mcp/tools/memory.js +11 -1
- package/dist/mcp/tools/notification-channels.js +2 -2
- package/dist/mcp/tools/packages.d.ts +2 -0
- package/dist/mcp/tools/packages.js +195 -0
- package/dist/mcp/tools/repositories.js +65 -12
- 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.js +209 -27
- package/dist/mcp/tools/scheduling.js +3 -1
- package/dist/mcp/tools/secret-elicitation-form.js +5 -0
- package/dist/mcp/tools/secret-elicitation-server.d.ts +6 -0
- package/dist/mcp/tools/secret-elicitation-server.js +10 -61
- package/dist/mcp/tools/secret-elicitation.d.ts +2 -0
- package/dist/mcp/tools/secret-elicitation.js +25 -2
- package/dist/mcp/tools/secrets.js +40 -6
- 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 +7 -5
- package/dist/mcp/tools/tools.js +64 -16
- package/dist/mcp/tools/trigger.js +28 -6
- package/dist/mcp/transport/http-limits.d.ts +2 -0
- package/dist/mcp/transport/http-limits.js +6 -2
- 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/mcp/webhooks/ingress.js +10 -0
- package/dist/native-worker/docker-launcher.d.ts +38 -2
- package/dist/native-worker/docker-launcher.js +65 -5
- package/dist/native-worker/gateway-server.d.ts +55 -3
- package/dist/native-worker/gateway-server.js +152 -34
- package/dist/native-worker/gateway.d.ts +29 -1
- package/dist/native-worker/gateway.js +74 -4
- package/dist/native-worker/http-server.d.ts +7 -1
- package/dist/native-worker/http-server.js +62 -7
- package/dist/native-worker/http-transport.js +1 -1
- package/dist/native-worker/kubernetes-launcher.d.ts +7 -3
- package/dist/native-worker/kubernetes-launcher.js +43 -3
- package/dist/native-worker/launch.d.ts +18 -1
- package/dist/native-worker/launch.js +6 -1
- package/dist/native-worker/ledger.d.ts +24 -4
- package/dist/native-worker/ledger.js +62 -8
- package/dist/native-worker/loopback.js +3 -8
- package/dist/native-worker/main.d.ts +2 -1
- package/dist/native-worker/main.js +14 -3
- package/dist/native-worker/protocol.d.ts +130 -577
- package/dist/native-worker/protocol.js +51 -2
- package/dist/native-worker/sandbox-executor.d.ts +17 -2
- package/dist/native-worker/sandbox-executor.js +78 -4
- 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 +1 -1
- package/dist/native-worker/stdio.js +6 -5
- package/dist/native-worker/warm-pool.d.ts +2 -2
- package/dist/native-worker/warm-pool.js +4 -4
- package/dist/native-worker/worker.js +28 -2
- package/dist/observability/metrics.js +6 -1
- package/dist/providers/auth/self-hosted.d.ts +1 -1
- package/dist/providers/coding-proxy/capability-hash.d.ts +2 -0
- package/dist/providers/coding-proxy/capability-hash.js +5 -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/mcp-route.d.ts +34 -0
- package/dist/providers/coding-proxy/mcp-route.js +166 -0
- package/dist/providers/coding-proxy/memory-ledger.d.ts +17 -2
- package/dist/providers/coding-proxy/memory-ledger.js +99 -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 +16 -2
- package/dist/providers/coding-proxy/prisma-ledger.js +209 -69
- package/dist/providers/coding-proxy/proxy.d.ts +21 -2
- package/dist/providers/coding-proxy/proxy.js +300 -48
- 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 +10 -0
- package/dist/providers/coding-proxy/runtime.js +109 -16
- package/dist/providers/coding-proxy/server.d.ts +9 -1
- package/dist/providers/coding-proxy/server.js +55 -1
- package/dist/providers/coding-proxy/types.d.ts +78 -1
- package/dist/providers/datastore/types.d.ts +5 -0
- package/dist/providers/engine/types.d.ts +17 -2
- package/dist/providers/engine/types.js +17 -0
- package/dist/providers/executor/composition.d.ts +10 -3
- package/dist/providers/executor/composition.js +52 -7
- package/dist/providers/executor/container.d.ts +394 -9
- package/dist/providers/executor/container.js +1210 -96
- 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 +50 -1
- package/dist/providers/executor/dbos.js +207 -20
- package/dist/providers/executor/deferred.d.ts +12 -24
- package/dist/providers/executor/deferred.js +10 -29
- 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 +2 -0
- package/dist/providers/executor/routing.js +4 -0
- package/dist/providers/executor/types.d.ts +13 -0
- package/dist/providers/host-tools/invoke.d.ts +37 -0
- package/dist/providers/host-tools/invoke.js +117 -0
- package/dist/providers/host-tools/operations.d.ts +65 -0
- package/dist/providers/host-tools/operations.js +149 -0
- package/dist/providers/host-tools/registry.d.ts +79 -0
- package/dist/providers/host-tools/registry.js +362 -0
- package/dist/providers/host-tools/request-guard.d.ts +17 -0
- package/dist/providers/host-tools/request-guard.js +99 -0
- package/dist/providers/host-tools/self-test.d.ts +64 -0
- package/dist/providers/host-tools/self-test.js +142 -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 +10 -2
- package/dist/providers/jobs/docker-isolation.js +47 -8
- package/dist/providers/jobs/docker.d.ts +9 -0
- package/dist/providers/jobs/docker.js +60 -11
- package/dist/providers/jobs/fake-kubernetes-api.d.ts +2 -0
- package/dist/providers/jobs/fake-kubernetes-api.js +3 -0
- package/dist/providers/jobs/kubernetes-api.d.ts +8 -0
- package/dist/providers/jobs/kubernetes-api.js +10 -0
- package/dist/providers/jobs/kubernetes-client.js +10 -1
- package/dist/providers/jobs/kubernetes-isolation.d.ts +5 -1
- package/dist/providers/jobs/kubernetes-isolation.js +32 -3
- package/dist/providers/jobs/kubernetes.d.ts +11 -1
- package/dist/providers/jobs/kubernetes.js +111 -17
- package/dist/providers/jobs/types.d.ts +39 -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 +29 -2
- package/dist/providers/review-host/github.js +224 -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 +140 -6
- package/dist/providers/review-host/types.js +9 -1
- 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 +39 -4
- package/dist/providers/vcs/git.js +339 -26
- 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 +183 -44
- package/dist/providers/vcs/github.js +455 -56
- package/dist/providers/vcs/index.d.ts +1 -1
- package/dist/providers/vcs/index.js +9 -2
- 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 +37 -1
- package/dist/providers/vcs/remote.js +7 -1
- package/dist/providers/vcs/routing.d.ts +16 -8
- package/dist/providers/vcs/routing.js +27 -6
- package/dist/providers/vcs/types.d.ts +150 -5
- package/dist/quickstart/coding-seed.d.ts +14 -3
- package/dist/quickstart/coding-seed.js +213 -4
- package/dist/quickstart/index.d.ts +5 -0
- package/dist/quickstart/index.js +21 -0
- 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/eval-core.d.ts +12 -2
- package/dist/sandbox/eval-core.js +20 -4
- 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 +5 -0
- package/dist/sandbox/host-functions.js +13 -13
- package/dist/sandbox/limits.d.ts +4 -1
- package/dist/sandbox/limits.js +4 -1
- package/dist/sandbox/run-in-sandbox.d.ts +6 -0
- package/dist/sandbox/run-in-sandbox.js +14 -2
- package/dist/sandbox/safe-fetch.d.ts +2 -0
- package/dist/sandbox/safe-fetch.js +1 -1
- package/dist/sandbox/secret-broker.d.ts +1 -0
- package/dist/sandbox/secret-broker.js +4 -5
- package/dist/sandbox/tool-capabilities.d.ts +10 -30
- package/dist/sandbox/tool-timeout.d.ts +32 -0
- package/dist/sandbox/tool-timeout.js +52 -0
- package/dist/sandbox/user-tool.d.ts +8 -1
- package/dist/sandbox/user-tool.js +9 -3
- package/dist/sandbox/zod-params.d.ts +37 -5
- package/dist/sandbox/zod-params.js +181 -26
- package/dist/serve.js +8 -1
- package/dist/viewer/api-schema.d.ts +349 -2627
- package/dist/viewer/api-schema.js +7 -0
- package/dist/viewer/build-schemas.js +6 -2
- package/dist/viewer/graph.js +2 -1
- package/dist/viewer/openapi.js +2 -4
- package/dist/wardby-bin.js +15 -0
- package/docs/README.md +11 -1
- package/docs/agent-recipes.md +95 -24
- package/docs/architecture-runtime.md +1 -1
- package/docs/claude-code-plugin.md +164 -0
- package/docs/code-review-agents.md +557 -41
- package/docs/coding-agent-setup.md +566 -8
- package/docs/coding-packages.md +1033 -90
- package/docs/coding-services.md +27 -12
- package/docs/coding-worker-byo-images.md +24 -2
- package/docs/coding-worker-isolation.md +183 -37
- package/docs/debugging-agent-runs.md +242 -0
- package/docs/getting-started-gke.md +129 -141
- package/docs/getting-started-identity-provider.md +53 -38
- package/docs/getting-started.md +17 -0
- package/docs/host-providers.md +294 -0
- package/docs/jira-agents.md +17 -8
- 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/mcp-servers.md +254 -0
- package/docs/native-sandbox.md +143 -31
- package/docs/observability.md +4 -0
- package/docs/security-deployment.md +139 -29
- package/docs/slack-notifications.md +35 -19
- package/docs/tool-secrets.md +45 -10
- package/docs/viewer-api.md +6 -0
- package/docs/viewer-api.openapi.yml +1 -1
- package/help/admin-viewer.md +28 -2
- package/help/agent-recipes.md +33 -2
- package/help/architecture-agent.md +11 -6
- package/help/brokered-secrets.md +3 -0
- package/help/build-claude-code-image.md +1 -1
- package/help/build-worker-image.md +3 -1
- package/help/builder-agent.md +19 -6
- package/help/claude-code-run-pane.md +40 -0
- package/help/code-review-agents.md +177 -6
- 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 +15 -8
- package/help/errors/budget-exhausted.md +187 -0
- package/help/errors/budget-group-exhausted.md +5 -1
- package/help/errors/coding-mcp-pins-unavailable.md +35 -0
- 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 +1 -1
- 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 +4 -0
- package/help/errors/graph-incomplete.md +43 -0
- package/help/errors/graph-limit.md +43 -0
- package/help/errors/host-provider-error.md +40 -0
- package/help/errors/host-tool-failed.md +36 -0
- package/help/errors/mcp-call-limit.md +22 -0
- package/help/errors/mcp-call-timeout.md +22 -0
- package/help/errors/mcp-server-auth-failed.md +22 -0
- package/help/errors/mcp-server-credentials-unavailable.md +45 -0
- package/help/errors/mcp-server-error.md +28 -0
- package/help/errors/mcp-server-unreachable.md +22 -0
- package/help/errors/mcp-servers-off.md +21 -0
- package/help/errors/mcp-tool-not-allowed.md +26 -0
- package/help/errors/mcp-tool-removed.md +22 -0
- package/help/errors/mcp-unavailable.md +25 -0
- package/help/errors/merge-conflict.md +49 -0
- package/help/errors/native-sandbox-capacity.md +1 -1
- package/help/errors/native-sandbox-deadline-exceeded.md +1 -1
- package/help/errors/native-sandbox-docker-failed.md +1 -1
- package/help/errors/native-sandbox-gateway-error.md +20 -0
- package/help/errors/native-sandbox-gateway-unavailable.md +1 -1
- package/help/errors/native-sandbox-image-not-pinned.md +1 -1
- package/help/errors/native-sandbox-isolation-mismatch.md +1 -1
- package/help/errors/native-sandbox-launch-abandoned.md +21 -0
- package/help/errors/native-sandbox-network-unenforced.md +1 -1
- package/help/errors/native-sandbox-requires-catalog.md +1 -1
- package/help/errors/native-sandbox-unavailable.md +1 -1
- package/help/errors/native-sandbox-warm-delivery-failed.md +1 -1
- package/help/errors/native-sandbox-worker-exited.md +4 -3
- package/help/errors/native-sandbox-worker-lost.md +1 -1
- package/help/errors/native-sandbox-worker-unready.md +1 -1
- 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/repository-not-listed.md +36 -0
- package/help/errors/repository-required.md +36 -0
- package/help/errors/run-lost.md +39 -0
- package/help/errors/run-transcript-download.md +44 -0
- package/help/errors/secret-in-value.md +69 -0
- package/help/errors/target-merge.md +40 -0
- package/help/errors/tool-timeout.md +38 -0
- package/help/fix-merge-conflicts.md +73 -0
- package/help/github-app-setup.md +132 -0
- package/help/github.md +22 -0
- package/help/host-providers.md +40 -0
- package/help/identity-and-access.md +6 -1
- package/help/jira.md +23 -6
- package/help/knowledge.md +16 -7
- package/help/local-repositories.md +1 -1
- package/help/low-power-mode.md +7 -1
- package/help/mcp-servers.md +73 -0
- package/help/mcp.md +7 -2
- package/help/merge-order-check.md +5 -0
- package/help/native-capabilities.md +55 -1
- package/help/native-sandbox.md +16 -2
- package/help/operating-agents.md +21 -0
- package/help/package-audit-mode.md +91 -0
- package/help/related-pull-requests.md +17 -10
- package/help/repo-instructions-and-skills.md +3 -1
- package/help/resume-runs-locally.md +134 -0
- package/help/review-fix-rounds.md +33 -1
- package/help/sharing-agents.md +59 -0
- package/help/slack-notifications.md +19 -5
- 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 +86 -7
- package/help/troubleshooting/debugging-agent-runs.md +29 -0
- package/package.json +18 -10
- 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/migrations/20261102000000_host_providers/migration.sql +56 -0
- package/prisma/migrations/20261104000000_coding_agent_repository_list/migration.sql +5 -0
- package/prisma/migrations/20261106000000_tool_timeout/migration.sql +4 -0
- package/prisma/migrations/20261107000000_mcp_servers/migration.sql +33 -0
- package/prisma/migrations/20261108000000_coding_mcp/migration.sql +5 -0
- package/prisma/migrations/20261109000000_task_run_index/migration.sql +3 -0
- package/prisma/schema.prisma +468 -109
- package/scripts/git-askpass.sh +1 -1
- package/dist/sandbox/generated/zod-to-json-schema.bundle.js +0 -5
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: fix-merge-conflicts
|
|
3
|
+
title: Fix merge conflicts on a wardby pull request
|
|
4
|
+
summary: Follow-up runs merge the PR's current target branch first and resolve its conflicts; ask to update a PR that fell behind.
|
|
5
|
+
audience: operator
|
|
6
|
+
tags: [github, pull-requests, merge-conflict, update-pr, target-branch, continuation, review_fix]
|
|
7
|
+
appliesTo: ">=0.7.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Fix merge conflicts on a wardby pull request
|
|
11
|
+
|
|
12
|
+
Every follow-up run on a pull request a wardby coding run opened (a mention on
|
|
13
|
+
the PR, a delegated `continuePriorRun`, a review fix round) first brings the
|
|
14
|
+
branch up to date with the branch the pull request **currently** targets:
|
|
15
|
+
|
|
16
|
+
1. Before the agent starts, wardby asks GitHub for the pull request's base
|
|
17
|
+
branch. A pull request retargeted since it opened (a stacked PR whose
|
|
18
|
+
parent merged, a release branch) merges its new base, not the one the
|
|
19
|
+
first run used.
|
|
20
|
+
2. wardby fetches that branch from the same repository (never a fork) and
|
|
21
|
+
merges it into the workspace, in trusted code, before the agent sees it.
|
|
22
|
+
A branch that already contains its target is left exactly as it was.
|
|
23
|
+
3. **No conflicts:** the agent works on the updated branch as usual.
|
|
24
|
+
**Conflicts:** the agent's task lists the conflicted files and which side
|
|
25
|
+
is which (this pull request's branch, then the target). It is asked to
|
|
26
|
+
resolve every conflict keeping both sides' intent, fix the tests the
|
|
27
|
+
combination broke, and run the repository's checks.
|
|
28
|
+
4. The push is one merge commit authored by Wardby, with the pull request's
|
|
29
|
+
head and the target as its parents. It is pushed even when the agent
|
|
30
|
+
changed nothing else, so asking a wardby agent on the pull request to
|
|
31
|
+
"update this PR" or "fix the merge conflicts" is enough.
|
|
32
|
+
5. The run's status comment on the pull request says what was merged, for
|
|
33
|
+
example "Merged `main` @ `1a2b3c4` into this branch; resolved conflicts
|
|
34
|
+
in 2 files."
|
|
35
|
+
|
|
36
|
+
## Ask to update this PR
|
|
37
|
+
|
|
38
|
+
Mention the wardby agent on the pull request with "please update this PR" or
|
|
39
|
+
"please fix the merge conflicts". The follow-up merges the target branch,
|
|
40
|
+
resolves any conflicts, and pushes the merge commit.
|
|
41
|
+
|
|
42
|
+
## What is checked
|
|
43
|
+
|
|
44
|
+
- **Conflict markers.** A file the merge left conflicted that still holds
|
|
45
|
+
conflict markers when the run finishes stops the push: the run fails with
|
|
46
|
+
category `merge_conflict` and nothing is pushed — see
|
|
47
|
+
[Conflict markers remain](errors/merge-conflict.md).
|
|
48
|
+
- **Protected paths and size limits** apply to the agent's own changes,
|
|
49
|
+
measured against the automatic merge: a change the target branch made to a
|
|
50
|
+
protected path is merged as it is, while resolving a conflict in a protected
|
|
51
|
+
path, or reverting the target's change to one, is an edit by the agent and
|
|
52
|
+
is refused as usual (see [Protected path](errors/protected-path.md)).
|
|
53
|
+
- **Someone else pushed meanwhile.** The push is still a fast-forward of the
|
|
54
|
+
head the run started from, so a push by anyone else in the meantime fails
|
|
55
|
+
the run the same way it did before, with nothing pushed.
|
|
56
|
+
- **No merge base.** A target branch that cannot be fetched, or shares no
|
|
57
|
+
history with the pull request, fails the run before the agent starts — see
|
|
58
|
+
[Target branch could not be merged](errors/target-merge.md).
|
|
59
|
+
|
|
60
|
+
## Limits
|
|
61
|
+
|
|
62
|
+
- Local repositories (`local:`) have no pull requests, so a continuation there
|
|
63
|
+
is not merged with anything.
|
|
64
|
+
- A conflicted file with no markers (a binary file, or one deleted on one side
|
|
65
|
+
and changed on the other) holds one side's version, or the changed version.
|
|
66
|
+
The agent is told to check it, but nothing stops it from leaving that version
|
|
67
|
+
as it is.
|
|
68
|
+
- A conflict in a protected path cannot be resolved by the agent: resolving it
|
|
69
|
+
is an edit to that path, which is refused. Resolve that file by hand and push.
|
|
70
|
+
|
|
71
|
+
Related: [Run GitHub code-review agents](code-review-agents.md),
|
|
72
|
+
[Automatic review fix rounds](review-fix-rounds.md),
|
|
73
|
+
[Related pull requests across repositories](related-pull-requests.md).
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: github-app-setup
|
|
3
|
+
title: Set up the GitHub App
|
|
4
|
+
summary: Step by step, create Wardby's GitHub App, choose its events and permissions, install it on your repositories, and give the server its credentials.
|
|
5
|
+
audience: operator
|
|
6
|
+
tags: [github, github-app, setup, permissions, webhooks, GITHUB_APP_ID, GITHUB_APP_WEBHOOK_SECRET, link_host_account]
|
|
7
|
+
appliesTo: ">=0.2.1"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Set up the GitHub App
|
|
11
|
+
|
|
12
|
+
Wardby reaches GitHub through a GitHub App that you create and own. Each Wardby
|
|
13
|
+
server needs its own App, because an App has exactly one webhook URL. For an
|
|
14
|
+
overview of how Wardby uses the App, see
|
|
15
|
+
[Connect GitHub repositories](github.md).
|
|
16
|
+
|
|
17
|
+
Decide first what the App is for:
|
|
18
|
+
|
|
19
|
+
- **Coding agents only**, triggered with `trigger_agent` or on a schedule:
|
|
20
|
+
GitHub never calls your server, so you can skip the webhook (step 2) and the
|
|
21
|
+
events (step 4).
|
|
22
|
+
- **Review agents, `@`-mentions, review fix rounds, merge watchers, or
|
|
23
|
+
marking pull requests ready**: these start from GitHub webhooks, so your
|
|
24
|
+
server must be reachable over public HTTPS at the host of
|
|
25
|
+
`MCP_CANONICAL_URI`.
|
|
26
|
+
|
|
27
|
+
## 1. Create the App
|
|
28
|
+
|
|
29
|
+
In the GitHub settings of the user or organization that will own it, open
|
|
30
|
+
**Developer settings**, then **GitHub Apps**, then **New GitHub App**. Give
|
|
31
|
+
it a name and a homepage URL. The owner matters: Wardby always serves the
|
|
32
|
+
App's owner, and other accounts only when you list them (step 7).
|
|
33
|
+
|
|
34
|
+
## 2. Webhook
|
|
35
|
+
|
|
36
|
+
- **Webhook URL**: `https://<your-host>/hosts/github/events`, where
|
|
37
|
+
`<your-host>` is the host of `MCP_CANONICAL_URI`. Requests naming any other
|
|
38
|
+
host are rejected.
|
|
39
|
+
- **Webhook secret**: a random value, for example from `openssl rand -hex 32`.
|
|
40
|
+
The same value goes into `GITHUB_APP_WEBHOOK_SECRET` (step 7). Until that
|
|
41
|
+
variable is set, the endpoint answers 404.
|
|
42
|
+
|
|
43
|
+
For coding agents only, untick **Active** under Webhook instead.
|
|
44
|
+
|
|
45
|
+
## 3. Repository permissions
|
|
46
|
+
|
|
47
|
+
| Permission | Access |
|
|
48
|
+
| --------------- | -------------------------------------------------- |
|
|
49
|
+
| Contents | Read and write (Read for an App that only reviews) |
|
|
50
|
+
| Pull requests | Read and write |
|
|
51
|
+
| Checks | Read and write |
|
|
52
|
+
| Issues | Read and write |
|
|
53
|
+
| Commit statuses | Read (optional) |
|
|
54
|
+
|
|
55
|
+
- **Contents: Read and write** lets coding agents push a branch for each pull
|
|
56
|
+
request. A review-only App can have Read, but its reviewers then can't
|
|
57
|
+
resolve their own fixed review threads.
|
|
58
|
+
- **Checks** carries the `wardby review` and `wardby merge order` checks.
|
|
59
|
+
- **Issues** covers mentions in issues and the labels used by
|
|
60
|
+
[automatic review fix rounds](review-fix-rounds.md).
|
|
61
|
+
- **Commit statuses** lets reviewers see CI that reports commit statuses
|
|
62
|
+
rather than check runs.
|
|
63
|
+
|
|
64
|
+
If you change permissions later, every installation must accept the new set
|
|
65
|
+
before its webhooks resume.
|
|
66
|
+
|
|
67
|
+
## 4. Events
|
|
68
|
+
|
|
69
|
+
Tick each one; every event is its own checkbox.
|
|
70
|
+
|
|
71
|
+
| Event | Needed for |
|
|
72
|
+
| --------------------------- | ----------------------------------------------------------------------------------------------------------- |
|
|
73
|
+
| Pull request | `pull_request` reviewers and `review_fix` |
|
|
74
|
+
| Check run | Re-running the review check |
|
|
75
|
+
| Check suite | Reviews that wait for CI (`waitForCi`), and `markReadyWhenPassing` marking a draft ready once CI goes green |
|
|
76
|
+
| Issue comment | `@`-mentions in issue and pull request comments |
|
|
77
|
+
| Issues | `@`-mentions in a newly opened or edited issue |
|
|
78
|
+
| Pull request review comment | `@`-mentions in inline review threads |
|
|
79
|
+
| Push | The `push` trigger (merge-watcher agents) |
|
|
80
|
+
|
|
81
|
+
Missing an event fails quietly: the matching trigger never starts. A common
|
|
82
|
+
case is leaving out Check suite, so drafts that should be marked ready stay
|
|
83
|
+
drafts.
|
|
84
|
+
|
|
85
|
+
## 5. Account linking
|
|
86
|
+
|
|
87
|
+
`link_host_account` lets a Wardby user prove which GitHub account they are, so
|
|
88
|
+
Wardby can check their repository access. In the App's **General** settings:
|
|
89
|
+
|
|
90
|
+
- **Callback URL**: `https://<your-host>/hosts/github/user-callback`.
|
|
91
|
+
- Leave **Request user authorization (OAuth) during installation** unticked.
|
|
92
|
+
- Note the **Client ID** (not the numeric App ID) and generate a **client
|
|
93
|
+
secret**.
|
|
94
|
+
|
|
95
|
+
## 6. Private key and installation
|
|
96
|
+
|
|
97
|
+
1. Save the App, note its numeric **App ID**, and generate a **private key**
|
|
98
|
+
(a `.pem` file).
|
|
99
|
+
2. Under **Install App**, install it on your account or organization and
|
|
100
|
+
choose **Only select repositories**: pick only the repositories your agents
|
|
101
|
+
may use.
|
|
102
|
+
|
|
103
|
+
## 7. Configure Wardby
|
|
104
|
+
|
|
105
|
+
| Variable | Value |
|
|
106
|
+
| -------------------------------- | --------------------------------------------------------------------------- |
|
|
107
|
+
| `GITHUB_APP_ID` | The numeric App ID |
|
|
108
|
+
| `GITHUB_APP_PRIVATE_KEY` | The contents of the `.pem` file |
|
|
109
|
+
| `GITHUB_APP_WEBHOOK_SECRET` | The webhook secret from step 2 |
|
|
110
|
+
| `GITHUB_APP_CLIENT_ID` | The Client ID from step 5 (set together with the client secret, or neither) |
|
|
111
|
+
| `GITHUB_APP_CLIENT_SECRET` | The client secret from step 5 |
|
|
112
|
+
| `WARDBY_GITHUB_ALLOWED_ACCOUNTS` | Optional: accounts other than the App's owner to serve, comma-separated |
|
|
113
|
+
| `WARDBY_MENTION_EXPLANATIONS` | Optional: `false` = no reply saying why a mention started nothing |
|
|
114
|
+
|
|
115
|
+
Restart the server after setting them. Without `GITHUB_APP_ID` and
|
|
116
|
+
`GITHUB_APP_PRIVATE_KEY`, coding runs on GitHub repositories fail with
|
|
117
|
+
[`vcs_github_not_configured`](errors/vcs-github-not-configured.md).
|
|
118
|
+
Repositories of accounts that aren't served are refused with
|
|
119
|
+
[`github_account_not_allowed`](errors/github-account-not-allowed.md).
|
|
120
|
+
|
|
121
|
+
## 8. Check it
|
|
122
|
+
|
|
123
|
+
- Run `link_host_account` and finish the GitHub sign-in it opens.
|
|
124
|
+
- Link an agent with `link_repository`, or create a coding agent on the
|
|
125
|
+
repository (see [builder agents](builder-agent.md) and
|
|
126
|
+
[Run GitHub code-review agents](code-review-agents.md)).
|
|
127
|
+
- In the App's **Advanced** settings, **Recent Deliveries** should show your
|
|
128
|
+
server answering webhooks with a 2xx status. A signature failure there means
|
|
129
|
+
the webhook secret and `GITHUB_APP_WEBHOOK_SECRET` differ.
|
|
130
|
+
|
|
131
|
+
The full reference, including rollout order on Kubernetes deployments, is
|
|
132
|
+
[Registering the GitHub App](../docs/code-review-agents.md#registering-the-github-app).
|
package/help/github.md
CHANGED
|
@@ -23,6 +23,8 @@ Workers do not receive the GitHub App private key. A trusted component validates
|
|
|
23
23
|
the changes, pushes a controlled branch, and opens at most one draft pull
|
|
24
24
|
request. Wardby does not auto-merge coding-agent output.
|
|
25
25
|
|
|
26
|
+
To create and install the App, follow [Set up the GitHub App](github-app-setup.md).
|
|
27
|
+
|
|
26
28
|
Set the App's credentials as `GITHUB_APP_ID` and `GITHUB_APP_PRIVATE_KEY` on
|
|
27
29
|
the wardby server. Without them, a coding run on a GitHub repository fails with
|
|
28
30
|
[`vcs_github_not_configured`](errors/vcs-github-not-configured.md).
|
|
@@ -69,6 +71,19 @@ The `review_fix` trigger lets Wardby fix its own review's findings
|
|
|
69
71
|
automatically, up to a round cap, on pull requests its own coding runs
|
|
70
72
|
opened. See [Automatic review fix rounds](review-fix-rounds.md).
|
|
71
73
|
|
|
74
|
+
When a mention run finishes without opening a pull request or failing a
|
|
75
|
+
sub-run and its reply is longer than about 2,000 characters (for example a
|
|
76
|
+
plan), the status comment does not cut the reply short. It says "✅ Finished
|
|
77
|
+
without opening a pull request. The full reply follows in the next
|
|
78
|
+
comment(s)." (in a review thread: "...follows in this pull request's
|
|
79
|
+
conversation."), and the reply is posted in up to four numbered comments
|
|
80
|
+
("Reply, part i of n") of about 60,000 characters each, split at headings,
|
|
81
|
+
paragraphs or lines. Anything beyond four parts is cut with a note; the full
|
|
82
|
+
text stays on the run (`get_run`, `finalText`). `@`-mentions in the reply are
|
|
83
|
+
defused. Each part is posted once; if one cannot be posted, the rest are
|
|
84
|
+
skipped. Shorter replies, and runs that opened a pull request or had a failed
|
|
85
|
+
sub-run, keep the status comment that quotes up to 2,000 characters.
|
|
86
|
+
|
|
72
87
|
`waitForCi` holds a reviewer's review until that pull request's own CI
|
|
73
88
|
finishes, and gates its ability to approve on CI passing. See
|
|
74
89
|
[Review after CI (`waitForCi`)](code-review-agents.md#review-after-ci-waitforci).
|
|
@@ -79,4 +94,11 @@ opening coding run was delegated by a lead agent. See [Reviewing a pull
|
|
|
79
94
|
request a delegated run
|
|
80
95
|
opened](code-review-agents.md#reviewing-a-pull-request-a-delegated-run-opened).
|
|
81
96
|
|
|
97
|
+
With Wardby 0.7.0 or later, `markReadyWhenPassing` on the write link of the
|
|
98
|
+
agent the event triggers (a builder, or a lead that delegates to a coding
|
|
99
|
+
builder) has Wardby mark the draft pull requests it opens here ready for review
|
|
100
|
+
on its own, once every Wardby reviewer check and CI on the head are green
|
|
101
|
+
and, for a merge-ordered set, the steps it depends on have merged. See [Mark
|
|
102
|
+
ready when passing](code-review-agents.md#mark-ready-when-passing).
|
|
103
|
+
|
|
82
104
|
For Jira Cloud instead of GitHub, see [Run Jira agents](jira.md).
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: host-providers
|
|
3
|
+
title: Add a code host with your own tools (host providers)
|
|
4
|
+
summary: Register a code host implemented by custom tools, approve changes to them, and test them with read-only calls. Agents can't use a provider yet.
|
|
5
|
+
audience: operator
|
|
6
|
+
tags: [host provider, register_host_provider, approve_host_provider_tools, hosts:admin, host-manager]
|
|
7
|
+
appliesTo: >=0.8.0
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Host providers
|
|
11
|
+
|
|
12
|
+
A host provider adds a code host using your own custom tools. This release lets you register
|
|
13
|
+
a provider, approve its tools and test them. Agents can't use a registered provider yet.
|
|
14
|
+
|
|
15
|
+
You need the `hosts:admin` scope and a role that grants it (`admin` or `host-manager`). See
|
|
16
|
+
[Identity and access](identity-and-access.md).
|
|
17
|
+
|
|
18
|
+
1. Write one tool per operation with `create_tool`.
|
|
19
|
+
2. Broker each credential with `set_secret_broker`, allowing the API hosts and the git host. The
|
|
20
|
+
permission credential needs only the API hosts ([Brokered secrets](brokered-secrets.md)).
|
|
21
|
+
3. Call `register_host_provider`. No restart is needed today, because agents can't use a provider
|
|
22
|
+
yet; a new provider will need one once they can. A refusal has a
|
|
23
|
+
[`host_provider_*` code](errors/host-provider-error.md).
|
|
24
|
+
4. Call `test_host_provider` to check each read-only tool. Failures have
|
|
25
|
+
[fixed codes](errors/host-tool-failed.md).
|
|
26
|
+
|
|
27
|
+
`update_tool` changes nothing until you call `approve_host_provider_tools`, a new `timeoutMs`
|
|
28
|
+
included. See which tools have changes with `get_host_provider`.
|
|
29
|
+
|
|
30
|
+
A bound tool reaches only the provider's API hosts, inside one repository's path, and Wardby
|
|
31
|
+
follows no redirects; the tool must fetch the `Location` itself. Any host manager can read and re-register any
|
|
32
|
+
provider.
|
|
33
|
+
|
|
34
|
+
Replacing a secret a provider uses, or changing its broker config, needs `hosts:admin` as well as
|
|
35
|
+
`secrets:write`. A webhook secret stays at 16 characters or more.
|
|
36
|
+
|
|
37
|
+
Keep provider credentials unattached: an agent's own tools can use an attached one without the
|
|
38
|
+
provider's path guard.
|
|
39
|
+
|
|
40
|
+
See [docs/host-providers.md](../docs/host-providers.md) for the full guide.
|
|
@@ -21,7 +21,7 @@ audience, and the granted Wardby scopes in `scope` or `scp`.
|
|
|
21
21
|
|
|
22
22
|
Scopes authorize normal operations such as managing agents, runs, tools,
|
|
23
23
|
datastores, secrets, webhooks, budgets, packages, services, memory, and
|
|
24
|
-
models.
|
|
24
|
+
models. Seven sensitive permissions have an additional role requirement:
|
|
25
25
|
|
|
26
26
|
- `agents:admin` requires the Wardby `admin` role.
|
|
27
27
|
- `packages:approve` requires the `admin` or `package-approver` role.
|
|
@@ -31,6 +31,9 @@ models. Six sensitive permissions have an additional role requirement:
|
|
|
31
31
|
- `models:admin` requires the `admin` or `model-manager` role. It adds,
|
|
32
32
|
overrides, disables, and resets model catalog entries; see
|
|
33
33
|
[Models and pricing](models.md).
|
|
34
|
+
- `hosts:admin` requires the `admin` or `host-manager` role. It registers host
|
|
35
|
+
providers, approves their tools and, with `secrets:write`, replaces their secrets; see
|
|
36
|
+
[Host providers](../docs/host-providers.md).
|
|
34
37
|
- `power:manage` requires the `admin` role. It reads low-power state and
|
|
35
38
|
sleeps the coding proxy and native gateway now (`power_status`,
|
|
36
39
|
`power_sleep`); see
|
|
@@ -46,3 +49,5 @@ that request every advertised scope otherwise fail with `invalid_scope`.
|
|
|
46
49
|
Read [`docs/getting-started-identity-provider.md`](../docs/getting-started-identity-provider.md)
|
|
47
50
|
for the required claims, scope list, role mapping, provider examples, and
|
|
48
51
|
client registration.
|
|
52
|
+
|
|
53
|
+
From Wardby 0.7.0, to share an agent with one person or with everyone signed in, see the help article `sharing-agents`.
|
package/help/jira.md
CHANGED
|
@@ -65,13 +65,24 @@ the `Jira acting as` startup line to confirm the account.
|
|
|
65
65
|
Beyond reading, searching and commenting, linked agents get
|
|
66
66
|
`jira_list_transitions`, `jira_transition`, `jira_update_fields`,
|
|
67
67
|
`jira_link_issues`, and `jira_get_property` / `jira_set_property` for
|
|
68
|
-
per-issue state, plus `jira_create_issue` and `jira_read_attachment`. Each
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
68
|
+
per-issue state, plus `jira_create_issue` and `jira_read_attachment`. Each
|
|
69
|
+
authorizes against the issue's own project and the agent's live link.
|
|
70
|
+
Properties are not allowlisted: any `write` link can set them and any link can
|
|
71
|
+
read them. They are stored as `wardby.<agentId>.<name>`, and anyone with Jira
|
|
72
|
+
API access to the issue can read or overwrite them, so never store secrets
|
|
73
|
+
there. Run status comments include an `Agent spend: $...` line. To see what
|
|
74
|
+
work on a card, epic, or project cost, read
|
|
74
75
|
[Attribute agent spend to issues](cost-attribution.md).
|
|
76
|
+
|
|
77
|
+
When a run succeeds, opens no pull request, has no failed sub-run, and its
|
|
78
|
+
reply is longer than about 2,000 characters (for example a plan), the status
|
|
79
|
+
comment says "✅ The full reply follows in the next comment(s)." and the reply
|
|
80
|
+
follows in up to four numbered comments ("Reply, part i of n") of about 15,000
|
|
81
|
+
characters each, split at headings, paragraphs or lines. Anything beyond is
|
|
82
|
+
cut with a note, and the full text stays on the run (`get_run`, `finalText`).
|
|
83
|
+
`@`-mentions are defused. Each part is posted once; if one cannot be posted,
|
|
84
|
+
the rest are skipped. Shorter replies stay in the status comment.
|
|
85
|
+
|
|
75
86
|
If the token belongs to a person, Wardby refuses to act: startup logs an error
|
|
76
87
|
and the webhook answers 503 `jira_personal_account`. Deliveries with a
|
|
77
88
|
timestamp older than two hours (or more than five minutes ahead) are ignored.
|
|
@@ -125,6 +136,12 @@ agent how to continue each open one; see
|
|
|
125
136
|
[Related pull requests across repositories](related-pull-requests.md). See
|
|
126
137
|
the full guide for the recipe.
|
|
127
138
|
|
|
139
|
+
To have a code reviewer check such a pull request against the ticket's own
|
|
140
|
+
acceptance criteria, link the reviewer to the Jira project too (read access
|
|
141
|
+
is enough): it then reads the ticket with `jira_get_issue`. Without that link
|
|
142
|
+
it can only judge the criteria from the pull request's description; see
|
|
143
|
+
[Run GitHub code-review agents](code-review-agents.md#reading-the-issue-a-pull-request-resolves).
|
|
144
|
+
|
|
128
145
|
## Trust rules
|
|
129
146
|
|
|
130
147
|
Only people (not customers, apps, or the service account itself) can trigger
|
package/help/knowledge.md
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: knowledge
|
|
3
3
|
title: Architecture knowledge bundles
|
|
4
|
-
summary: Keep cited, non-obvious architecture knowledge in docs/knowledge/ so coding runs, reviewers, and live sessions (through the AGENTS.md pointer) use it; validate it with wardby knowledge check.
|
|
4
|
+
summary: Keep cited, non-obvious architecture knowledge in docs/knowledge/ (or a folder you pick in .wardby/knowledge.yaml) so coding runs, reviewers, and live sessions (through the AGENTS.md pointer) use it; validate it with wardby knowledge check.
|
|
5
5
|
audience: operator
|
|
6
|
-
tags: [knowledge, architecture, coding-agents, okf, cli, drift, push]
|
|
6
|
+
tags: [knowledge, architecture, coding-agents, okf, cli, drift, push, knowledge.yaml, bundle-path]
|
|
7
7
|
appliesTo: >=0.4.0
|
|
8
8
|
---
|
|
9
9
|
|
|
@@ -16,9 +16,18 @@ their reasons, and cross-module contracts. It uses the Open Knowledge Format
|
|
|
16
16
|
for, the paths it affects, and citations to the code it describes. Each citation
|
|
17
17
|
carries a commit `sha` and a `spanHash` so staleness can be detected.
|
|
18
18
|
|
|
19
|
-
- `
|
|
20
|
-
|
|
21
|
-
-
|
|
19
|
+
- `index.md` lists every concept in one line; `log.md` records changes to the
|
|
20
|
+
bundle.
|
|
21
|
+
- **Pick your own folder:** add `.wardby/knowledge.yaml` with one line,
|
|
22
|
+
`path: .okf` (any repo-relative folder outside `.wardby/` and `.git/`). Wardby
|
|
23
|
+
then reads the bundle there for the coding-run note, merge-watcher drift runs,
|
|
24
|
+
and `wardby knowledge check`. Without the file it uses `docs/knowledge/`; an
|
|
25
|
+
invalid file is ignored with a warning (`knowledge_config_invalid` from the
|
|
26
|
+
check). Or skip wardby's reading entirely: tell your agents where knowledge
|
|
27
|
+
lives in their prompts or `AGENTS.md`, and they use that folder; you lose
|
|
28
|
+
only the automatic note and drift scoping on merge. Update any prompt that
|
|
29
|
+
names `docs/knowledge/` to your folder.
|
|
30
|
+
- When the bundle's `index.md` exists on a coding run's base branch, the run's
|
|
22
31
|
task includes the index automatically (up to 8 KiB). It never fails a
|
|
23
32
|
dispatch; an unreadable index just means no note.
|
|
24
33
|
- When the run's commit is known (it always is for a normal clone) and the
|
|
@@ -26,8 +35,8 @@ carries a commit `sha` and a `spanHash` so staleness can be detected.
|
|
|
26
35
|
has no git metadata, so use that value for citation `sha` fields.
|
|
27
36
|
- Validate the bundle with `wardby knowledge check` (add `--strict` to fail on
|
|
28
37
|
warnings, `--json` for machine output, `--root` to point at the repository).
|
|
29
|
-
Errors are `concept_invalid`, `concept_secret`, `index_missing`,
|
|
30
|
-
`index_link_broken`; warnings are `concept_not_indexed`,
|
|
38
|
+
Errors are `concept_invalid`, `concept_secret`, `index_missing`,
|
|
39
|
+
`index_link_broken`, and `knowledge_config_invalid`; warnings are `concept_not_indexed`,
|
|
31
40
|
`citation_unverifiable`, and `citation_stale`.
|
|
32
41
|
- Builders may edit concept prose. Citations can go stale afterward; the
|
|
33
42
|
architecture agent re-anchors them.
|
|
@@ -50,7 +50,7 @@ The easiest way to try it is the optional coding step of
|
|
|
50
50
|
machine cannot see the folder: it ignores a trusted folder that does not
|
|
51
51
|
exist, so the repository fails with `local_repo_not_allowed`, and `doctor`
|
|
52
52
|
reports the folder as missing.
|
|
53
|
-
- **git 2.
|
|
53
|
+
- **git 2.38 or newer** on the machine that runs the wardby server.
|
|
54
54
|
- **Worker images from this release or later.** An older worker image rejects
|
|
55
55
|
a `local:` repository and the run fails with `worker_input_failed`. That
|
|
56
56
|
includes a bring-your-own `workerImageRef` image: rebuild it on a current
|
package/help/low-power-mode.md
CHANGED
|
@@ -46,7 +46,11 @@ only when `WARDBY_LOW_POWER=1`.
|
|
|
46
46
|
a sandbox run does the same for the gateway. The wait is at least 5 minutes.
|
|
47
47
|
A `KUBERNETES_READY_TIMEOUT_MS` (proxy) or `NATIVE_SANDBOX_READY_TIMEOUT_MS`
|
|
48
48
|
(gateway) above that, set on the control-plane Deployment, raises it. Expect
|
|
49
|
-
about 1 to 2 minutes extra on a cold node. Log: `power: proxy woke`.
|
|
49
|
+
about 1 to 2 minutes extra on a cold node. Log: `power: proxy woke`. A
|
|
50
|
+
sandbox run woken this way may then wait for a gVisor node for its worker
|
|
51
|
+
pod, so its first model call can come several minutes after it started. From
|
|
52
|
+
0.7.0 it shows as running the whole time and is not reaped as orphaned; only
|
|
53
|
+
the wake and pod-start limits above can fail it.
|
|
50
54
|
- **Preflight.** The first coding run after a control-plane restart also runs
|
|
51
55
|
the cluster preflight canary, because start-up preflight is deferred while the
|
|
52
56
|
proxy sleeps (`kubernetes_preflight_deferred`).
|
|
@@ -107,6 +111,8 @@ full table.
|
|
|
107
111
|
|
|
108
112
|
- [`low_power_wake_timeout`](errors/low-power-wake-timeout.md): the target did
|
|
109
113
|
not become ready in time, or its Deployment does not exist.
|
|
114
|
+
- `native_sandbox_launch_abandoned` (0.7.0 and later): a sandbox run was
|
|
115
|
+
stopped while the gateway woke, so no worker pod was made.
|
|
110
116
|
- [`low_power_disabled`](errors/low-power-disabled.md): `power_sleep` was
|
|
111
117
|
called while the mode is off.
|
|
112
118
|
- [`low_power_scale_forbidden`](errors/low-power-scale-forbidden.md): the
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: mcp-servers
|
|
3
|
+
title: Remote MCP server tools for native and coding agents
|
|
4
|
+
summary: Register a remote MCP server, then attach an allowlist of its tools to a native, Claude Code or Codex agent; credentials stay in brokered secrets.
|
|
5
|
+
audience: operator
|
|
6
|
+
tags: [mcp, mcp server, coding-agent, codex, register_mcp_server, attach_mcp_server, readOnlyHint, WARDBY_MCP_SERVERS]
|
|
7
|
+
appliesTo: ">=0.8.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Remote MCP server tools for native and coding agents
|
|
11
|
+
|
|
12
|
+
A native, Claude Code or Codex agent can call tools from a remote MCP server (Streamable HTTP, HTTPS only).
|
|
13
|
+
|
|
14
|
+
1. Create a [brokered secret](brokered-secrets.md) for the server's host, for example
|
|
15
|
+
`Authorization: Bearer {value}`.
|
|
16
|
+
2. `register_mcp_server` with a `name`, the `url` (`https://mcp.example.com/mcp`) and
|
|
17
|
+
`secretNames`. Wardby saves the server's tool list.
|
|
18
|
+
3. `attach_mcp_server` with the agent, the server and `allowedTools` (exact names, at least one).
|
|
19
|
+
The agent sees each as `<server name>__<tool name>`.
|
|
20
|
+
4. After the server changes its tools, `refresh_mcp_server` applies the new list at once. Allowed
|
|
21
|
+
tools the server dropped show as `missingTools` in `get_agent`.
|
|
22
|
+
|
|
23
|
+
Each call has `callTimeoutMs` (default `30000`, at most `WARDBY_TOOL_MAX_TIMEOUT_MS`, and never
|
|
24
|
+
past the run's deadline). Results are untrusted input; the allowlist is the control. stdio servers
|
|
25
|
+
and OAuth are not supported.
|
|
26
|
+
|
|
27
|
+
`WARDBY_MCP_SERVERS` is `owners` (default), `admins` (registering needs `hosts:admin`) or `off`
|
|
28
|
+
(only `detach_mcp_server` and `delete_mcp_server` still work, for cleanup).
|
|
29
|
+
|
|
30
|
+
Each call opens a fresh MCP session, so a server that keeps state between calls in one session
|
|
31
|
+
won't see it. Arguments that aren't a JSON object return `invalid_arguments`.
|
|
32
|
+
|
|
33
|
+
## Coding agents
|
|
34
|
+
|
|
35
|
+
`attach_mcp_server` also takes a Claude Code or Codex agent. Its run reaches the tools only through
|
|
36
|
+
the coding proxy and the native gateway; the worker never sees the server's URL or secrets.
|
|
37
|
+
|
|
38
|
+
- Claude Code agents see each tool as `mcp__wardby_mcp__<server name>__<tool name>` and may use any
|
|
39
|
+
allowed tool.
|
|
40
|
+
- Codex agents may use only tools the server marks `readOnlyHint: true`. Wardby checks this when
|
|
41
|
+
you attach, when a run loads and on every call. Repository code in a Codex run can read the run's
|
|
42
|
+
MCP token, so a Codex agent must not be given tools that change things. `readOnlyHint` is the
|
|
43
|
+
server's claim, which Wardby can't verify, so the allowlist stays your control.
|
|
44
|
+
- A run may make `WARDBY_MCP_MAX_CALLS_PER_RUN` calls (default `100`, failed calls count); more are
|
|
45
|
+
refused with [`mcp_call_limit`](errors/mcp-call-limit.md).
|
|
46
|
+
- The proxy needs `WARDBY_MCP_GATEWAY_URL`. Without it coding agents get no MCP tools
|
|
47
|
+
([`mcp_unavailable`](errors/mcp-unavailable.md)).
|
|
48
|
+
- MCP for coding agents needs this release's Claude worker image and a new Codex driver image.
|
|
49
|
+
Older images get no MCP tools, and runs don't fail.
|
|
50
|
+
- A repository's MCP configuration is still never loaded.
|
|
51
|
+
- Codex models that use tool search load MCP tools on demand. They need this release's coding
|
|
52
|
+
proxy; an older one refuses their requests with `openai_tool_not_allowed:tool_search`.
|
|
53
|
+
- Switching an agent to Codex with `update_agent` keeps its attachments, but tools not marked
|
|
54
|
+
read-only won't reach Codex runs; the result's `warnings` names them.
|
|
55
|
+
- The proxy gives up on a coding run's MCP call after 5 minutes, whatever
|
|
56
|
+
`WARDBY_TOOL_MAX_TIMEOUT_MS` says ([`mcp_unavailable`](errors/mcp-unavailable.md)).
|
|
57
|
+
|
|
58
|
+
Share a server with `grant_access` (`resourceType: "mcp_server"`; needs the `agents:write` scope,
|
|
59
|
+
registering needs `tools:write`). `use` lets the grantee attach it, and its tools then run with your
|
|
60
|
+
secrets. Revoking the grant, or lowering it to `read`, detaches the server from the grantee's agents
|
|
61
|
+
at once, and their runs' next call is refused with `mcp_tool_not_allowed`.
|
|
62
|
+
|
|
63
|
+
Errors a call can return: [`mcp_server_unreachable`](errors/mcp-server-unreachable.md),
|
|
64
|
+
[`mcp_server_auth_failed`](errors/mcp-server-auth-failed.md),
|
|
65
|
+
[`mcp_server_credentials_unavailable`](errors/mcp-server-credentials-unavailable.md),
|
|
66
|
+
[`mcp_server_error`](errors/mcp-server-error.md),
|
|
67
|
+
[`mcp_tool_not_allowed`](errors/mcp-tool-not-allowed.md),
|
|
68
|
+
[`mcp_tool_removed`](errors/mcp-tool-removed.md),
|
|
69
|
+
[`mcp_call_timeout`](errors/mcp-call-timeout.md),
|
|
70
|
+
[`mcp_servers_off`](errors/mcp-servers-off.md), and for coding agents
|
|
71
|
+
[`mcp_call_limit`](errors/mcp-call-limit.md) and [`mcp_unavailable`](errors/mcp-unavailable.md).
|
|
72
|
+
|
|
73
|
+
Full guide: [Remote MCP servers](../docs/mcp-servers.md).
|
package/help/mcp.md
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: mcp-access
|
|
3
|
-
title: Connect
|
|
3
|
+
title: Connect a client to Wardby
|
|
4
4
|
summary: Use Wardby's local stdio or protected HTTP MCP transport safely.
|
|
5
5
|
audience: developer
|
|
6
6
|
tags: [mcp, oauth, codex, claude-code]
|
|
7
7
|
appliesTo: >=0.2.1
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
-
# Connect
|
|
10
|
+
# Connect a client to Wardby
|
|
11
11
|
|
|
12
12
|
For local use, `wardby quickstart` can register the local stdio MCP server with
|
|
13
13
|
Codex or Claude Code. Local stdio trusts the local operator.
|
|
@@ -28,3 +28,8 @@ offline catalog as `wardby help`; they expose no instance data or credentials.
|
|
|
28
28
|
|
|
29
29
|
See [`docs/getting-started-identity-provider.md`](../docs/getting-started-identity-provider.md)
|
|
30
30
|
for the supported self-hosted and delegated identity-provider setup.
|
|
31
|
+
|
|
32
|
+
From Wardby 0.8.0, Claude Code can show your runs in a pane beside the chat
|
|
33
|
+
through the `wardby-runs` plugin: run `wardby claude-plugin install`, then
|
|
34
|
+
`/wardby-runs`. Search help for "claude code plugin" (article
|
|
35
|
+
`claude-code-run-pane`, Wardby 0.8.0 and later).
|
|
@@ -51,6 +51,11 @@ merge order set by the delegating agent," counted over the whole set
|
|
|
51
51
|
(merged and closed pull requests included), so a pull request's step
|
|
52
52
|
number doesn't change as earlier steps merge.
|
|
53
53
|
|
|
54
|
+
With Wardby 0.7.0 or later, when the delegating lead is linked with
|
|
55
|
+
`markReadyWhenPassing`, later steps become ready for review only once this
|
|
56
|
+
check is `success`. See
|
|
57
|
+
[Mark ready when passing](code-review-agents.md#mark-ready-when-passing).
|
|
58
|
+
|
|
54
59
|
### Waiting for the delegating run to finish
|
|
55
60
|
|
|
56
61
|
While the delegating (lead) agent's run that produced this set is still
|
|
@@ -3,7 +3,7 @@ id: native-capabilities
|
|
|
3
3
|
title: Use native agents, tools, and data
|
|
4
4
|
summary: Attach scoped tools, secrets, datastores, memory, schedules, and sub-agents to a native Wardby agent.
|
|
5
5
|
audience: developer
|
|
6
|
-
tags: [agents, tools, secrets, datastores, memory, schedules, subagents]
|
|
6
|
+
tags: [agents, tools, secrets, datastores, memory, schedules, subagents, zod, create_tool, dry_run_tool, timeoutMs, mcp]
|
|
7
7
|
appliesTo: >=0.2.1
|
|
8
8
|
---
|
|
9
9
|
|
|
@@ -20,11 +20,65 @@ checkout. Give each agent only the capabilities its job needs:
|
|
|
20
20
|
- **Schedules and webhooks** to start event-driven work.
|
|
21
21
|
- **Sub-agents** for delegated, bounded work with their own capability set.
|
|
22
22
|
|
|
23
|
+
A tool's parameters are a Zod schema written as source text (`paramsZod` on
|
|
24
|
+
`create_tool` and `update_tool`). Wardby compiles it inside the sandbox, both to
|
|
25
|
+
derive the JSON Schema the model sees and to validate each call's arguments.
|
|
26
|
+
|
|
27
|
+
Wardby itself now uses Zod 4. For this release only, a tool's `paramsZod` is
|
|
28
|
+
still compiled with Zod 3 (Zod 4's built-in `zod/v3` API), so existing tools keep
|
|
29
|
+
working unchanged; a schema Zod 3 can't compile, such as one using `z.email()`,
|
|
30
|
+
is compiled with Zod 4. **Zod 3 schemas stop working in the next release**,
|
|
31
|
+
which compiles `paramsZod` with Zod 4 only. A schema that calls something Zod 4
|
|
32
|
+
removed, such as `.nonstrict()`, `.deepPartial()`, `z.ostring()` or
|
|
33
|
+
`z.string().ip()`, will then fail every call's validation.
|
|
34
|
+
|
|
35
|
+
Wardby warns about each such tool now:
|
|
36
|
+
|
|
37
|
+
- `create_tool`, `update_tool` and `dry_run_tool` results include a `warnings`
|
|
38
|
+
list naming the tool and the removed methods;
|
|
39
|
+
- in `list_tools` and in `get_agent`'s attached tools, each tool you own that is
|
|
40
|
+
affected carries the same `warnings` list;
|
|
41
|
+
- `wardby tool create` and bundle imports print the same warning;
|
|
42
|
+
- the server logs one warning per affected tool at startup.
|
|
43
|
+
|
|
44
|
+
To check a schema before the next release, call `dry_run_tool` with the tool's
|
|
45
|
+
`paramsZod` and sample arguments. With no `warnings` in the result, the schema
|
|
46
|
+
compiles with Zod 4 and Zod 4 treats those arguments the same way. Otherwise,
|
|
47
|
+
rewrite the schema with the Zod 4 API (for example `z.looseObject()` for
|
|
48
|
+
`.nonstrict()`, `z.string().optional()` for `z.ostring()`, and `z.ipv4()` or
|
|
49
|
+
`z.ipv6()` for `.ip()`), dry-run it again, and save it with `update_tool`.
|
|
50
|
+
|
|
51
|
+
## Tool time limits
|
|
52
|
+
|
|
53
|
+
Wardby 0.8.0 and later. Each call of a tool has 10 seconds by default. A tool that calls a slow API can
|
|
54
|
+
ask for more with `timeoutMs` (milliseconds, at least `1000`) on `create_tool`,
|
|
55
|
+
`update_tool` or `dry_run_tool`, or `--timeout-ms` on `wardby tool create` and
|
|
56
|
+
`wardby tool update`. Pass `timeoutMs: null` to `update_tool` (or
|
|
57
|
+
`--timeout-ms default` to `wardby tool update`) to go back to the default.
|
|
58
|
+
|
|
59
|
+
- The limit covers the whole call. Each `fetch` may run until the limit, and a
|
|
60
|
+
timer (`setTimeout`) can't be set for longer than it.
|
|
61
|
+
- The server's `WARDBY_TOOL_MAX_TIMEOUT_MS` (default `300000`, five minutes)
|
|
62
|
+
caps it. A larger `timeoutMs` is refused with an error naming the ceiling. If
|
|
63
|
+
the operator lowers the ceiling later, existing tools run with the ceiling.
|
|
64
|
+
- A run keeps the value it loaded, as it does the tool's code.
|
|
65
|
+
- A call never outlasts its run: stopping the run aborts it, and a sandboxed
|
|
66
|
+
run's deadline cuts it off.
|
|
67
|
+
- `list_tools` and `get_agent` show each tool's `timeoutMs` (`null` means the
|
|
68
|
+
default).
|
|
69
|
+
|
|
70
|
+
Test a slow tool with `dry_run_tool` and the same `timeoutMs` before you attach
|
|
71
|
+
it. A call that runs out of time fails with a `timeout` error; the help article
|
|
72
|
+
`errors/tool-timeout` explains what to do.
|
|
73
|
+
|
|
23
74
|
Use a budget or shared budget group on every agent, and inspect runs before
|
|
24
75
|
expanding its access. An access grant is intentional delegation: use it only
|
|
25
76
|
when an owner permits one agent to use another resource. Creating or changing
|
|
26
77
|
tools, secrets, datastores, schedules, webhooks, memory, and budget groups
|
|
27
78
|
requires the matching MCP scope.
|
|
28
79
|
|
|
80
|
+
Native agents can also call tools from remote MCP servers; see
|
|
81
|
+
[Remote MCP servers](../docs/mcp-servers.md) (0.8.0+).
|
|
82
|
+
|
|
29
83
|
See [Operate agents](operating-agents.md) for run and budget management, and
|
|
30
84
|
[`README.md`](../README.md) for the feature overview and MCP operations.
|