@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
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* `npm run build:viewer-schemas`, and commit the regenerated files.
|
|
7
7
|
*/
|
|
8
8
|
import { z } from "zod";
|
|
9
|
+
import { legacyJsonSchema } from "../core/zod-json-schema.js";
|
|
9
10
|
export const RunStatusSchema = z.enum([
|
|
10
11
|
"pending",
|
|
11
12
|
"running",
|
|
@@ -210,3 +211,9 @@ export const VIEWER_SCHEMAS = {
|
|
|
210
211
|
"viewer-event": ViewerEventSchema,
|
|
211
212
|
"infra-info": InfraInfoSchema,
|
|
212
213
|
};
|
|
214
|
+
/** A viewer schema's JSON Schema (draft-07 keywords, no `$schema`), as the published files spell it. */
|
|
215
|
+
export function viewerJsonSchema(schema) {
|
|
216
|
+
const json = legacyJsonSchema(z.toJSONSchema(schema, { target: "draft-07", io: "output" }));
|
|
217
|
+
delete json.$schema;
|
|
218
|
+
return json;
|
|
219
|
+
}
|
|
@@ -2,14 +2,18 @@
|
|
|
2
2
|
import { mkdir, readFile, writeFile } from "node:fs/promises";
|
|
3
3
|
import { dirname, join } from "node:path";
|
|
4
4
|
import { fileURLToPath } from "node:url";
|
|
5
|
-
import { zodToJsonSchema } from "zod-to-json-schema";
|
|
6
5
|
import { VIEWER_SCHEMAS } from "./api-schema.js";
|
|
6
|
+
import { viewerJsonSchema } from "./api-schema.js";
|
|
7
7
|
import { OPENAPI_PATH, renderViewerOpenApi } from "./openapi.js";
|
|
8
8
|
export const SCHEMA_DIR = join(dirname(fileURLToPath(import.meta.url)), "schemas");
|
|
9
9
|
export function renderSchemas() {
|
|
10
10
|
return Object.fromEntries(Object.entries(VIEWER_SCHEMAS).map(([name, schema]) => [
|
|
11
11
|
`${name}.schema.json`,
|
|
12
|
-
`${JSON.stringify(
|
|
12
|
+
`${JSON.stringify({
|
|
13
|
+
$ref: `#/definitions/${name}`,
|
|
14
|
+
definitions: { [name]: viewerJsonSchema(schema) },
|
|
15
|
+
$schema: "http://json-schema.org/draft-07/schema#",
|
|
16
|
+
}, null, 2)}\n`,
|
|
13
17
|
]));
|
|
14
18
|
}
|
|
15
19
|
if (process.argv[1] === fileURLToPath(import.meta.url)) {
|
package/dist/viewer/graph.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { periodStart } from "../core/budget-groups.js";
|
|
2
|
+
import { codeProviderOf } from "../coding/code-host.js";
|
|
2
3
|
import { publicCodingRunResult } from "../coding/protocol.js";
|
|
3
4
|
const DEFAULT_SINCE_MS = 60 * 60 * 1000;
|
|
4
5
|
const RELATIVE_SINCE_MS = {
|
|
@@ -102,7 +103,7 @@ function outcomesFor(row, pullRequests, sites) {
|
|
|
102
103
|
!pullRequests.some((pr) => pr.url === result.pullRequestUrl)) {
|
|
103
104
|
outcomes.push({
|
|
104
105
|
kind: "pull_request",
|
|
105
|
-
provider:
|
|
106
|
+
provider: codeProviderOf(result.repository),
|
|
106
107
|
repository: result.repository,
|
|
107
108
|
number: result.pullRequestNumber,
|
|
108
109
|
url: result.pullRequestUrl,
|
package/dist/viewer/openapi.js
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
import { dirname, join } from "node:path";
|
|
7
7
|
import { fileURLToPath } from "node:url";
|
|
8
8
|
import { stringify } from "yaml";
|
|
9
|
-
import { zodToJsonSchema } from "zod-to-json-schema";
|
|
10
9
|
import { VIEWER_SCHEMAS } from "./api-schema.js";
|
|
10
|
+
import { viewerJsonSchema } from "./api-schema.js";
|
|
11
11
|
import { DEFAULT_GRAPH_LIMIT, MAX_GRAPH_LIMIT, SSE_HEARTBEAT_MS } from "./limits.js";
|
|
12
12
|
export const OPENAPI_PATH = join(dirname(fileURLToPath(import.meta.url)), "../../docs/viewer-api.openapi.yml");
|
|
13
13
|
const AUTH_NOTE = "Requires a bearer token with the `admin:view` scope, held by a caller with the admin role.";
|
|
@@ -103,9 +103,7 @@ export const VIEWER_ROUTES = [
|
|
|
103
103
|
function componentSchemas() {
|
|
104
104
|
const schemas = {};
|
|
105
105
|
for (const [name, schema] of Object.entries(VIEWER_SCHEMAS)) {
|
|
106
|
-
|
|
107
|
-
delete json.$schema;
|
|
108
|
-
schemas[name] = json;
|
|
106
|
+
schemas[name] = viewerJsonSchema(schema);
|
|
109
107
|
}
|
|
110
108
|
schemas.ViewerError = {
|
|
111
109
|
type: "object",
|
package/dist/wardby-bin.js
CHANGED
|
@@ -42,6 +42,21 @@ async function main() {
|
|
|
42
42
|
const { helpCommand } = await import("./help/cli.js");
|
|
43
43
|
await helpCommand(process.argv.slice(3));
|
|
44
44
|
}
|
|
45
|
+
else if (command === "resume") {
|
|
46
|
+
// Runs on a developer's machine: no environment, database, or server runtime.
|
|
47
|
+
const { resumeCommand } = await import("./coding/transcript/resume/command.js");
|
|
48
|
+
process.exitCode = await resumeCommand(process.argv.slice(3));
|
|
49
|
+
}
|
|
50
|
+
else if (command === "resume-tools") {
|
|
51
|
+
// Hidden: the stand-in tool server `wardby resume` configures Claude Code to start.
|
|
52
|
+
const { resumeToolsCommand } = await import("./coding/transcript/resume/stand-in.js");
|
|
53
|
+
await resumeToolsCommand(process.argv.slice(3));
|
|
54
|
+
}
|
|
55
|
+
else if (command === "claude-plugin") {
|
|
56
|
+
// Sets up the Claude Code plugin on this machine: no environment, database, or server runtime.
|
|
57
|
+
const { claudePluginCommand } = await import("./claude-plugin/command.js");
|
|
58
|
+
process.exitCode = await claudePluginCommand(process.argv.slice(3));
|
|
59
|
+
}
|
|
45
60
|
else if (command === "knowledge") {
|
|
46
61
|
// Offline bundle validation: no environment, database, or HTTP runtime.
|
|
47
62
|
const { knowledgeCommand } = await import("./knowledge/cli.js");
|
package/docs/README.md
CHANGED
|
@@ -13,16 +13,26 @@
|
|
|
13
13
|
runs are billed.
|
|
14
14
|
- [Agent recipes](agent-recipes.md) gives two copyable setups, an architecture
|
|
15
15
|
keeper and a per-language builder, with the prerequisites each needs.
|
|
16
|
+
- [Debugging an agent run](debugging-agent-runs.md) triages a run that failed,
|
|
17
|
+
opened no pull request, or missed what you expected.
|
|
16
18
|
- [Coding-agent setup](coding-agent-setup.md) configures the local trusted proxy
|
|
17
19
|
and isolated Codex or Claude Code workers.
|
|
20
|
+
- [Claude Code plugin](claude-code-plugin.md) (0.8.0+) installs the `wardby-runs`
|
|
21
|
+
pane: your runs beside the chat, grouped by pull request, with run details and
|
|
22
|
+
Continue locally.
|
|
18
23
|
- [Architecture knowledge bundles](knowledge.md) covers `docs/knowledge/`: the
|
|
19
24
|
concept format, how coding runs and reviewers use it, `wardby knowledge check`,
|
|
20
25
|
and the scheduled architecture agent.
|
|
21
|
-
- [Native sandbox](native-sandbox.md) (0.
|
|
26
|
+
- [Native sandbox](native-sandbox.md) (0.6.0+) runs a native agent's turn loop and user
|
|
22
27
|
tools in a single-use, credential-free container behind a native gateway.
|
|
23
28
|
- [Secrets and tools](tool-secrets.md) covers readable and brokered secrets
|
|
24
29
|
(brokered secrets require 0.6.0+):
|
|
25
30
|
attaching secrets to tools, `set_secret_broker`, placements, and errors.
|
|
31
|
+
- [Remote MCP servers](mcp-servers.md) (0.8.0+) registers a remote MCP server and
|
|
32
|
+
attaches an allowlist of its tools to a native agent.
|
|
33
|
+
- [Host providers](host-providers.md) (0.8.0+) covers adding a code host with
|
|
34
|
+
your own custom tools: registering, approving, testing and removing a
|
|
35
|
+
provider.
|
|
26
36
|
- [Coding-worker isolation](coding-worker-isolation.md) documents the threat
|
|
27
37
|
model and enforced worker boundary.
|
|
28
38
|
- [Bring-your-own worker images](coding-worker-byo-images.md) explains how to
|
package/docs/agent-recipes.md
CHANGED
|
@@ -231,22 +231,32 @@ to include secrets or internal details. See
|
|
|
231
231
|
<details>
|
|
232
232
|
<summary>Builder (coding agent) fields that matter</summary>
|
|
233
233
|
|
|
234
|
-
| Field (`codingProfile`)
|
|
235
|
-
|
|
|
236
|
-
| `model` (agent field)
|
|
237
|
-
| `provider`
|
|
238
|
-
| `repository`
|
|
239
|
-
| `baseRef`
|
|
240
|
-
| `toolchain`
|
|
241
|
-
| `toolchainVersion`
|
|
242
|
-
| `packageAllowlist`
|
|
243
|
-
| `packagePolicy`
|
|
244
|
-
| `services`
|
|
245
|
-
| `protectedPaths`
|
|
246
|
-
| `timeoutSec`
|
|
247
|
-
| `workerImageRef`
|
|
248
|
-
| `defaultTask`
|
|
249
|
-
| Agent `budgetUsd`
|
|
234
|
+
| Field (`codingProfile`) | What to set |
|
|
235
|
+
| ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
236
|
+
| `model` (agent field) | A capable coding model the chosen provider supports, for example `gpt-5.6-terra` with `codex` or `claude-sonnet-5` with `claude-code`; a mismatch is refused |
|
|
237
|
+
| `provider` | `codex` or `claude-code`; the agent's `model` must be one that provider supports |
|
|
238
|
+
| `repository` | `your-org/your-repo`; your linked GitHub account needs write access |
|
|
239
|
+
| `baseRef` | The branch runs start from, usually your default branch |
|
|
240
|
+
| `toolchain` | `node` or `node-python` (per language below) |
|
|
241
|
+
| `toolchainVersion` | `"3.12"` for `node-python`; omit for `node` |
|
|
242
|
+
| `packageAllowlist` | Top-level packages per ecosystem (`npm`, `pypi`). Needs `packages:approve` or `agents:admin` |
|
|
243
|
+
| `packagePolicy` | Optional `minReleaseAgeDays` (0 to 30) |
|
|
244
|
+
| `services` | Catalog service names the agent may start, for example `["postgres"]`; see [Services](coding-services.md) |
|
|
245
|
+
| `protectedPaths` | Globs a run may not change, for example `[".github/**", "CODEOWNERS"]`. `.wardby/**` is always protected except `.wardby/services.yaml` |
|
|
246
|
+
| `timeoutSec` | 60 to 7200; for example `1800` |
|
|
247
|
+
| `workerImageRef` | Digest-pinned custom image; needs `agents:admin` (see "Other languages") |
|
|
248
|
+
| `defaultTask` | Needed only to schedule the agent |
|
|
249
|
+
| Agent `budgetUsd` | Per-run budget, reserved at dispatch, for example `5` |
|
|
250
|
+
| Agent `allowedOverrunPercent` | Optional whole percent (0 to 100, default 0) beyond `budgetUsd`, for example `10`. On a coding agent it raises each run's limit; on a lead agent that delegates, it raises its run tree's ceiling for coding sub-agents. It is never reserved: a run is topped up past its base only from room its budget group and run tree have when it needs it. Native runs' own model calls are not affected |
|
|
251
|
+
|
|
252
|
+
To allow a small overrun on an existing coding agent, call `update_agent`
|
|
253
|
+
(it needs the same permission as changing `budgetUsd`):
|
|
254
|
+
|
|
255
|
+
```json
|
|
256
|
+
{ "id": "<coding agent id>", "allowedOverrunPercent": 10 }
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
See [Budgets](coding-agent-setup.md#budgets).
|
|
250
260
|
|
|
251
261
|
The agent's `systemPrompt` is placed ahead of each request as standing
|
|
252
262
|
instructions. The template below is generic.
|
|
@@ -373,8 +383,9 @@ the lead's `maxDelegationsPerRun` (1 to 20) with `create_agent` or
|
|
|
373
383
|
{ "id": "<lead agent id>", "maxDelegationsPerRun": 6 }
|
|
374
384
|
```
|
|
375
385
|
|
|
376
|
-
-
|
|
377
|
-
|
|
386
|
+
- A run delegates to each sub-agent and repository at most once: a second call
|
|
387
|
+
to the same sub-agent in the same run (for a coding sub-agent with a list of
|
|
388
|
+
repositories, in the same repository) is refused with `already_dispatched`.
|
|
378
389
|
A delegation waiting for budget (see below) also holds its place against
|
|
379
390
|
`maxDelegationsPerRun`: a call beyond the limit is refused with
|
|
380
391
|
`already_dispatched` and a message naming both counts, e.g. "This run
|
|
@@ -407,8 +418,10 @@ the lead's `maxDelegationsPerRun` (1 to 20) with `create_agent` or
|
|
|
407
418
|
- Each coding sub-agent's result tells the lead its `status`, its summary
|
|
408
419
|
(`finalText`), cost and tokens, and, when it opened or pushed to a pull
|
|
409
420
|
request, `pullRequest` (`outcome` `opened` or `updated`, `repository`,
|
|
410
|
-
`number`, `url`) taken from Wardby's own record of the run. A
|
|
411
|
-
|
|
421
|
+
`number`, `url`) taken from Wardby's own record of the run. A failed builder's
|
|
422
|
+
result also carries `errorCode`, the leading code of its error (such as
|
|
423
|
+
`coding_queue_timeout`); the full error stays on the run (`get_run`). A lead
|
|
424
|
+
prompt can ask the agent to report those links and codes.
|
|
412
425
|
- The whole run tree shares one budget: give the lead a `budgetUsd` that
|
|
413
426
|
covers every builder it may start, plus its own planning. Builders started
|
|
414
427
|
together each reserve their own `budgetUsd` up front, so the ones admitted
|
|
@@ -424,8 +437,8 @@ the lead's `maxDelegationsPerRun` (1 to 20) with `create_agent` or
|
|
|
424
437
|
boundary (routes, field names and types, error codes), word for word the same.
|
|
425
438
|
- Wardby adds a **Related pull requests** section to each pull request the
|
|
426
439
|
builders open, listing the others with links, states (open, draft, merged,
|
|
427
|
-
closed) and the originating issue. With a Jira issue, the list
|
|
428
|
-
pull request recorded for that issue in any run. When no pull request in the
|
|
440
|
+
closed) and the originating issue. With a Jira or GitHub issue, the list
|
|
441
|
+
covers every pull request recorded for that issue in any run. When no pull request in the
|
|
429
442
|
set carries a `mergeOrder` (see below), open ones are numbered as a
|
|
430
443
|
**Suggested merge order** — the order the lead delegated in, not a
|
|
431
444
|
guarantee. When any pull request in the set carries one (open, merged or
|
|
@@ -480,6 +493,14 @@ the lead's `maxDelegationsPerRun` (1 to 20) with `create_agent` or
|
|
|
480
493
|
blocks a merge by itself: add `wardby merge order` as a required status
|
|
481
494
|
check in branch protection to gate on it. See
|
|
482
495
|
[The wardby merge order check](../help/merge-order-check.md).
|
|
496
|
+
- With Wardby 0.7.0 or later, set `markReadyWhenPassing: true` on the
|
|
497
|
+
lead's write link (`link_repository`) to have Wardby mark the draft pull
|
|
498
|
+
requests its builders open ready for review once they pass, instead of
|
|
499
|
+
leaving that to a person; the coding builders need no link of their own.
|
|
500
|
+
With a `mergeOrder` set, a later step only becomes ready this way once the
|
|
501
|
+
`wardby merge order` check above reports `success` on it — that is, once
|
|
502
|
+
the steps it depends on have merged. See [Mark ready
|
|
503
|
+
when passing](code-review-agents.md#mark-ready-when-passing-markreadywhenpassing).
|
|
483
504
|
- The section, and the follow-up hints below, list every pull request in the
|
|
484
505
|
set by repository name and number. A request that spans repositories of
|
|
485
506
|
different visibility can therefore show a private repository's name in a
|
|
@@ -487,6 +508,37 @@ the lead's `maxDelegationsPerRun` (1 to 20) with `create_agent` or
|
|
|
487
508
|
repositories, keep that work in separate requests (separate Jira issues, or
|
|
488
509
|
separate lead agents).
|
|
489
510
|
|
|
511
|
+
#### One coding agent, several repositories
|
|
512
|
+
|
|
513
|
+
Instead of one builder per repository, give one coding builder a list: its default in
|
|
514
|
+
`codingProfile.repository`, and each other repository with `link_repository`
|
|
515
|
+
(`access: "write"`, no triggers). The lead then names the repository on each
|
|
516
|
+
call, and may delegate to the same builder once per repository:
|
|
517
|
+
|
|
518
|
+
```json
|
|
519
|
+
{ "task": "Add the /quotes endpoint the client will call.", "repository": "your-org/api", "mergeOrder": 1 }
|
|
520
|
+
```
|
|
521
|
+
|
|
522
|
+
```json
|
|
523
|
+
{ "task": "Add the quotes page that calls /quotes.", "repository": "your-org/web", "mergeOrder": 2 }
|
|
524
|
+
```
|
|
525
|
+
|
|
526
|
+
Set `maxDelegationsPerRun` (up to 20) for the number of calls, and use
|
|
527
|
+
`mergeOrder` where the pull requests must land in order. A call without
|
|
528
|
+
`repository` is refused with `repository_required` when the builder has extra
|
|
529
|
+
repositories (unless it continues a prior run with `continuePriorRun`), and a
|
|
530
|
+
repository not on the list with `repository_not_listed`. A native sub-agent
|
|
531
|
+
refuses `repository` with `repository_requires_coding_agent`. The lead sees the
|
|
532
|
+
list in the tool definition only when it has the same owner as the builder, or
|
|
533
|
+
another owner with execute access to a builder that sets
|
|
534
|
+
`allowWebhookTaskOverride`. All repositories share the builder's toolchain,
|
|
535
|
+
budget and prompt.
|
|
536
|
+
|
|
537
|
+
Being on the list lets a run work in a repository; it starts nothing there. Link
|
|
538
|
+
the lead and the reviewer on each listed GitHub repository with the triggers
|
|
539
|
+
they need, or a pull request opened there gets no review, mention follow-up, fix
|
|
540
|
+
round or mark-ready.
|
|
541
|
+
|
|
490
542
|
#### Follow-ups across the set
|
|
491
543
|
|
|
492
544
|
A human-triggered follow-up task (an `@<app-slug>` mention, or a Jira issue
|
|
@@ -500,8 +552,9 @@ too:
|
|
|
500
552
|
repository that already has an open sibling for this request.
|
|
501
553
|
|
|
502
554
|
The usual delegation rails still apply on top of this: `maxDelegationsPerRun`
|
|
503
|
-
caps calls per run; a
|
|
504
|
-
|
|
555
|
+
caps calls per run; a run delegates to each sub-agent and repository at most
|
|
556
|
+
once, and a second such call is refused with `already_dispatched`; dispatch
|
|
557
|
+
re-checks every
|
|
505
558
|
`continuePriorRun` id (refusing with `continuation_refused` when this
|
|
506
559
|
deployment can't continue the run it names — for example it belongs to a
|
|
507
560
|
different owner's agent); every push to a sibling pull request still gets its
|
|
@@ -512,6 +565,11 @@ fails with category `continuation_closed` and pushes nothing — see
|
|
|
512
565
|
|
|
513
566
|
#### Limits
|
|
514
567
|
|
|
568
|
+
- If two executions of one delegation step overlap (for example a stalled
|
|
569
|
+
process and the process that took the run over) and the call id is already
|
|
570
|
+
held by a run of a different sub-agent, the call returns
|
|
571
|
+
`delegation_conflict` to the lead without starting a run or failing it; see
|
|
572
|
+
[Delegation conflict](../help/errors/delegation-conflict.md).
|
|
515
573
|
- Cancelling the lead run does not stop a native sub-agent that is already
|
|
516
574
|
running; it keeps running to completion. A coding sub-agent is stopped.
|
|
517
575
|
- If Wardby restarts mid-batch, the batch's delegation calls replay and each
|
|
@@ -546,6 +604,19 @@ the run; the pull request description says which. A person
|
|
|
546
604
|
reviews and merges; Wardby never merges for you. A later mention on that pull
|
|
547
605
|
request continues the same branch.
|
|
548
606
|
|
|
607
|
+
When a mention run finishes without opening a pull request or failing a
|
|
608
|
+
sub-run and its reply is longer than about 2,000 characters (for example a
|
|
609
|
+
plan), the status comment does not cut the reply short. It says "✅ Finished
|
|
610
|
+
without opening a pull request. The full reply follows in the next
|
|
611
|
+
comment(s)." (in a review thread: "...follows in this pull request's
|
|
612
|
+
conversation."), and the reply is posted in up to four numbered comments
|
|
613
|
+
("Reply, part i of n") of about 60,000 characters each, split at headings,
|
|
614
|
+
paragraphs or lines. Anything beyond four parts is cut with a note; the full
|
|
615
|
+
text stays on the run (`get_run`, `finalText`). `@`-mentions in the reply are
|
|
616
|
+
defused. Each part is posted once; if one cannot be posted, the rest are
|
|
617
|
+
skipped. Shorter replies, and runs that opened a pull request or had a failed
|
|
618
|
+
sub-run, keep the status comment that quotes up to 2,000 characters.
|
|
619
|
+
|
|
549
620
|
## Next steps
|
|
550
621
|
|
|
551
622
|
- [Architecture knowledge bundles](knowledge.md)
|
|
@@ -95,7 +95,7 @@ and GKE Autopilot overlays.
|
|
|
95
95
|
|
|
96
96
|
### Native agents in a sandbox
|
|
97
97
|
|
|
98
|
-
Native sandbox requires Wardby 0.
|
|
98
|
+
Native sandbox requires Wardby 0.6.0 or later.
|
|
99
99
|
|
|
100
100
|
Native agents run in the server process by default. A native agent set to
|
|
101
101
|
`nativeExecutionMode=sandbox` instead runs its turn loop and user tools in a
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
# Claude Code plugin: the wardby runs pane
|
|
2
|
+
|
|
3
|
+
From Wardby 0.8.0, the `wardby-runs` Claude Code plugin shows your wardby agent
|
|
4
|
+
runs in a pane beside the chat. It lists runs grouped by pull request, shows a
|
|
5
|
+
run's request, outcomes, services, errors and final answer, and can continue a
|
|
6
|
+
finished Claude Code run in your own terminal.
|
|
7
|
+
|
|
8
|
+
The plugin lives in this repository under `plugins/claude-code/`, and the
|
|
9
|
+
repository is its marketplace (`.claude-plugin/marketplace.json`). It talks only
|
|
10
|
+
to the wardby MCP server your Claude Code session already has, through
|
|
11
|
+
`list_runs`, `list_agents`, `get_run` and `get_run_transcript`, so it shows
|
|
12
|
+
exactly what those tools show you and needs no token of its own.
|
|
13
|
+
|
|
14
|
+
## Install
|
|
15
|
+
|
|
16
|
+
### With the wardby CLI
|
|
17
|
+
|
|
18
|
+
```sh
|
|
19
|
+
npx @wardby/cli@latest claude-plugin install
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
This installs the plugin from `wardby/wardby` and offers to allow the pane's
|
|
23
|
+
read-only tools for auto mode (see [Permissions](#permissions)). Options:
|
|
24
|
+
|
|
25
|
+
| Option | What it does |
|
|
26
|
+
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
27
|
+
| `--server-url <url>` | Registers the wardby MCP server at this `https` URL (for example `https://wardby.example.com/mcp`) when Claude Code has none named `wardby` |
|
|
28
|
+
| `--server-name <name>` | The MCP server the pane uses, as `/mcp` lists it (default `wardby`); the allow rules it adds follow the name, for example `mcp__wardby-prod__list_runs` |
|
|
29
|
+
| `--marketplace <src>` | Installs from another marketplace: an operator's own repository (`your-org/claude-plugins`) or a local folder |
|
|
30
|
+
| `--allow-tools` | Allows the pane's read-only tools without asking; `--no-allow-tools` leaves permission rules alone |
|
|
31
|
+
| `--fullscreen` | Also switches Claude Code's terminal to its fullscreen view (see [Terminal](#in-the-terminal)); it applies to every session |
|
|
32
|
+
| `--yes` | Answers yes to every question |
|
|
33
|
+
|
|
34
|
+
`wardby quickstart` offers the same install once it has connected Claude Code
|
|
35
|
+
(`--claude-plugin` installs it without asking, `--no-claude-plugin` skips it),
|
|
36
|
+
and `wardby doctor` lists the plugin, the MCP server and the allow rules
|
|
37
|
+
alongside its other checks, without failing when the optional pane is missing.
|
|
38
|
+
|
|
39
|
+
`wardby claude-plugin status` reports whether the plugin, the MCP server and
|
|
40
|
+
the allow rules are in place. `wardby claude-plugin uninstall` removes the
|
|
41
|
+
plugin and only the settings install added: the rules it added and the
|
|
42
|
+
fullscreen view if it switched it on. It leaves the MCP server in place.
|
|
43
|
+
|
|
44
|
+
The CLI writes to the settings file of the Claude Code it finds:
|
|
45
|
+
`$CLAUDE_CONFIG_DIR/settings.json`, else `~/.claude/settings.json`. It refuses a
|
|
46
|
+
settings file that isn't valid JSON instead of overwriting it.
|
|
47
|
+
|
|
48
|
+
### In Claude Code
|
|
49
|
+
|
|
50
|
+
At the prompt of a terminal session:
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
/plugin install wardby-runs --marketplace wardby/wardby
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
In the desktop app, where `/plugin` doesn't run: click **+** next to the prompt
|
|
57
|
+
box, then **Plugins**, **Add marketplace** with `wardby/wardby`, then **Add
|
|
58
|
+
plugin**. A plugin installed from a terminal at user scope also loads in the
|
|
59
|
+
desktop app's local Code sessions that read the same Claude Code configuration.
|
|
60
|
+
|
|
61
|
+
Open the pane with `/wardby-runs`; `/wardby-runs close` closes it and
|
|
62
|
+
`/wardby-runs clear` clears its filters.
|
|
63
|
+
|
|
64
|
+
### The MCP server
|
|
65
|
+
|
|
66
|
+
The pane needs an MCP server named `wardby` in Claude Code. `wardby quickstart`
|
|
67
|
+
registers one; for a deployed instance, add it with `--server-url` above or:
|
|
68
|
+
|
|
69
|
+
```sh
|
|
70
|
+
claude mcp add --transport http --scope user wardby https://wardby.example.com/mcp
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
then sign in with `/mcp`. Another name works too: set the plugin's **wardby MCP
|
|
74
|
+
server** option to it. A server added through the Claude apps' **Connectors**
|
|
75
|
+
settings is not a Claude Code MCP server and the pane doesn't use it. With another
|
|
76
|
+
name, install with `--server-name <name>` so the allow rules match it, and the
|
|
77
|
+
pane's own hints name it too.
|
|
78
|
+
|
|
79
|
+
## Permissions
|
|
80
|
+
|
|
81
|
+
The pane reads only, with the caller's own access:
|
|
82
|
+
|
|
83
|
+
| Pane feature | MCP tool | Scope | What you see |
|
|
84
|
+
| -------------------- | -------------------- | ------------- | ------------------------------------------------------------------------------ |
|
|
85
|
+
| Run list | `list_runs` | `agents:read` | All runs of agents you own, and the runs you started on agents shared with you |
|
|
86
|
+
| Agent names, budgets | `list_agents` | `agents:read` | Agents you can see (the pane asks for `summary: true`) |
|
|
87
|
+
| Run detail | `get_run` | `agents:read` | Runs you started, or of agents you own |
|
|
88
|
+
| Continue locally | `get_run_transcript` | `agents:read` | Same as `get_run` |
|
|
89
|
+
|
|
90
|
+
Under Claude Code's auto mode, a plugin's MCP calls go through the same safety
|
|
91
|
+
check as any other, and calls the pane makes on its own timer are refused
|
|
92
|
+
unless allowed. Allow these in `/permissions` (or let `wardby claude-plugin
|
|
93
|
+
install` add them): `mcp__wardby__list_runs`, `mcp__wardby__list_agents`,
|
|
94
|
+
`mcp__wardby__get_run` and `mcp__wardby__get_run_transcript`. The pane never
|
|
95
|
+
calls `stop_run` or any other tool that changes something. When a call is
|
|
96
|
+
refused, the pane says which rules to add.
|
|
97
|
+
|
|
98
|
+
Plugins are not sandboxed: they run as you. **Continue locally** runs
|
|
99
|
+
`npx @wardby/cli@latest resume - --print` in the folder you give it, passing the
|
|
100
|
+
transcript's download link on standard input; the link is never drawn, stored
|
|
101
|
+
or logged. The import writes only under `~/.wardby/` and the new worktree.
|
|
102
|
+
|
|
103
|
+
## Using the pane
|
|
104
|
+
|
|
105
|
+
- **Ledger** (desktop): runs grouped by pull request (or Jira issue), each group
|
|
106
|
+
one row with its state and total cost, folded once every run in it finished.
|
|
107
|
+
A pull request with one run is one line. Runs that touch no pull request are
|
|
108
|
+
under **Other**. Each line names its step (opened, review, fix 1, …), with
|
|
109
|
+
sub-agent runs under their lead.
|
|
110
|
+
- **Strips** (desktop): one card per pull request, its steps drawn as a row of
|
|
111
|
+
dots; click a step's name to see it.
|
|
112
|
+
- **Filters**: show all, active, failed or finished runs, or type to match an
|
|
113
|
+
agent, status, trigger or task.
|
|
114
|
+
- **Run detail**: what started the run and what it produced, its request and
|
|
115
|
+
final answer (as markdown; **Show full text** for all of it), services,
|
|
116
|
+
errors, the run tree, and **Continue locally** for finished Claude Code runs
|
|
117
|
+
with `sessionResume` on (see [Resume Claude Code runs locally](coding-agent-setup.md#resume-a-run-locally)).
|
|
118
|
+
|
|
119
|
+
The pane refreshes every 10 seconds while a run is active and every 60 seconds
|
|
120
|
+
otherwise (the plugin's **pollSeconds** and **idleSeconds** options), asks only
|
|
121
|
+
for what changed since its last refresh, backs off when the server fails, and
|
|
122
|
+
polls only while it is open.
|
|
123
|
+
|
|
124
|
+
### In the terminal
|
|
125
|
+
|
|
126
|
+
Claude Code's classic terminal view draws a plugin pane as a band above the
|
|
127
|
+
prompt and doesn't pass mouse clicks to plugins: use the keyboard (ctrl+x tab
|
|
128
|
+
focuses the pane, then `1`–`9` open a run, `r` refreshes, `b` goes back, `x` or
|
|
129
|
+
Escape closes). In the fullscreen view the pane is a side bar beside the chat
|
|
130
|
+
and takes clicks. Turn it on with `"tui": "fullscreen"` in your Claude Code
|
|
131
|
+
settings (or `--fullscreen` above, or `CLAUDE_CODE_NO_FLICKER=1`), then restart
|
|
132
|
+
Claude Code. The desktop app needs none of this.
|
|
133
|
+
|
|
134
|
+
## Add it to your own marketplace
|
|
135
|
+
|
|
136
|
+
The plugin keeps everything it needs in `plugins/claude-code/` and has no
|
|
137
|
+
instance-specific values, so an operator can list it in their organization's
|
|
138
|
+
marketplace. Point an entry at this repository's subfolder, pinned to a
|
|
139
|
+
release:
|
|
140
|
+
|
|
141
|
+
```json
|
|
142
|
+
{
|
|
143
|
+
"name": "wardby-runs",
|
|
144
|
+
"source": {
|
|
145
|
+
"source": "git-subdir",
|
|
146
|
+
"url": "wardby/wardby",
|
|
147
|
+
"path": "plugins/claude-code",
|
|
148
|
+
"ref": "v0.8.0"
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
Preset its options for your users in managed settings under
|
|
154
|
+
`pluginConfigs["wardby-runs@<your marketplace>"].options` (for example the MCP
|
|
155
|
+
server's name), and ship the allow rules above in the same managed settings.
|
|
156
|
+
When managed settings set `allowManagedHooksOnly`, a plugin a user installs
|
|
157
|
+
loads no hooks: install it through managed settings instead.
|
|
158
|
+
|
|
159
|
+
## Limits
|
|
160
|
+
|
|
161
|
+
- Plugins draw in the Claude Code terminal, the desktop app's Code tab and VS
|
|
162
|
+
Code; not in claude.ai/code, `claude -p`, the Agent SDK or WSL.
|
|
163
|
+
- The pane polls; there is no push.
|
|
164
|
+
- A run's live steps and a readable transcript are not shown yet.
|