@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
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
* JSON error result. Worker-safe: it touches no database or provider, only the
|
|
6
6
|
* privileged host it is given, so the native sandbox worker runs it as is.
|
|
7
7
|
*/
|
|
8
|
-
import { runToolCode } from "./run-in-sandbox.js";
|
|
8
|
+
import { runToolCode, toolLimits } from "./run-in-sandbox.js";
|
|
9
9
|
import { validateParams } from "./zod-params.js";
|
|
10
|
-
export async function runUserToolCall(tool, argsJson, privileged,
|
|
10
|
+
export async function runUserToolCall(tool, argsJson, privileged, options = {}) {
|
|
11
11
|
let parsedArgs;
|
|
12
12
|
try {
|
|
13
13
|
// Some providers stream no JSON delta at all for a zero-parameter
|
|
@@ -24,7 +24,13 @@ export async function runUserToolCall(tool, argsJson, privileged, limits) {
|
|
|
24
24
|
if (!validation.ok) {
|
|
25
25
|
return JSON.stringify({ error: "validation_failed", message: validation.errorMessage });
|
|
26
26
|
}
|
|
27
|
-
const result = await runToolCode({
|
|
27
|
+
const result = await runToolCode({
|
|
28
|
+
code: tool.code,
|
|
29
|
+
params: validation.value,
|
|
30
|
+
limits: toolLimits(tool.timeoutMs, options.limits),
|
|
31
|
+
signal: options.signal,
|
|
32
|
+
privileged,
|
|
33
|
+
});
|
|
28
34
|
if (!result.ok) {
|
|
29
35
|
return JSON.stringify({ error: result.errorKind, message: result.errorMessage });
|
|
30
36
|
}
|
|
@@ -5,18 +5,50 @@
|
|
|
5
5
|
* eval (pure computation, no host I/O — `installExtras` is a no-op):
|
|
6
6
|
*
|
|
7
7
|
* - `deriveJsonSchema`: registration-time. Compiles the schema and derives
|
|
8
|
-
* its JSON Schema
|
|
9
|
-
*
|
|
10
|
-
* not at call time.
|
|
8
|
+
* its JSON Schema — what's sent to the model as the tool's `parameters`.
|
|
9
|
+
* A malformed schema fails here, not at call time.
|
|
11
10
|
* - `validateParams`: call-time. Compiles the same schema (again, inside
|
|
12
11
|
* the sandbox) and parses the model-supplied arguments against it.
|
|
13
12
|
* Zod's own validation error (a real thrown `ZodError`, whose `.message`
|
|
14
13
|
* is already a readable issue list) becomes the sandbox failure the
|
|
15
14
|
* engine feeds back to the model as a tool-result error — not a run
|
|
16
15
|
* failure.
|
|
16
|
+
*
|
|
17
|
+
* Zod 3 compatibility window (this release only): wardby itself runs Zod 4,
|
|
18
|
+
* but a custom tool's paramsZod is still compiled with Zod 4's built-in Zod 3
|
|
19
|
+
* API (`zod/v3`) first, so a schema written for Zod 3 keeps working exactly as
|
|
20
|
+
* before, and its JSON Schema comes from zod-to-json-schema (the converter it
|
|
21
|
+
* was derived with before). Source Zod 3 can't compile (a schema written for
|
|
22
|
+
* Zod 4, such as one using `z.email()`) falls back to Zod 4, whose JSON Schema
|
|
23
|
+
* is `z.toJSONSchema` rewritten in zod-to-json-schema's spelling
|
|
24
|
+
* (core/zod-json-schema.ts). `zod4Compatibility` finds the schemas the next
|
|
25
|
+
* release, which compiles with Zod 4 only, would break; zod3-window.ts warns
|
|
26
|
+
* about them. To close the window: set PARAMS_ZOD_APIS to ["v4"], and drop the
|
|
27
|
+
* Zod 3 bundle (scripts/build-sandbox-vendor.mjs) and the window's warnings.
|
|
17
28
|
*/
|
|
18
29
|
import { type SandboxResult } from "./eval-core.js";
|
|
30
|
+
/** A Zod API a tool's paramsZod can compile against. */
|
|
31
|
+
export type ZodApi = "v3" | "v4";
|
|
32
|
+
/** The APIs a tool's paramsZod is compiled with, in order: the first that compiles it is used. */
|
|
33
|
+
export declare const PARAMS_ZOD_APIS: readonly ZodApi[];
|
|
19
34
|
/** Registration-time: compiles the schema source and derives its JSON Schema. */
|
|
20
|
-
export declare function deriveJsonSchema(paramsZodSource: string): Promise<SandboxResult>;
|
|
35
|
+
export declare function deriveJsonSchema(paramsZodSource: string, apis?: readonly ZodApi[]): Promise<SandboxResult>;
|
|
21
36
|
/** Call-time: compiles the schema source and validates the model-supplied args against it. */
|
|
22
|
-
export declare function validateParams(paramsZodSource: string, rawArgs: unknown): Promise<SandboxResult>;
|
|
37
|
+
export declare function validateParams(paramsZodSource: string, rawArgs: unknown, apis?: readonly ZodApi[]): Promise<SandboxResult>;
|
|
38
|
+
export type Zod4Compatibility = {
|
|
39
|
+
compatible: true;
|
|
40
|
+
}
|
|
41
|
+
/** `removed` lists the removed Zod 3 API it uses (fixed labels); empty when it fails some other way. */
|
|
42
|
+
| {
|
|
43
|
+
compatible: false;
|
|
44
|
+
removed: string[];
|
|
45
|
+
}
|
|
46
|
+
/** The probe hit a sandbox limit, or the source compiles under neither API: nothing to report. */
|
|
47
|
+
| {
|
|
48
|
+
compatible: "unknown";
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Whether the source compiles with Zod 4 alone, as it must from the next
|
|
52
|
+
* release on. Only meaningful for source the current release accepts.
|
|
53
|
+
*/
|
|
54
|
+
export declare function zod4Compatibility(paramsZodSource: string): Promise<Zod4Compatibility>;
|
|
@@ -5,56 +5,211 @@
|
|
|
5
5
|
* eval (pure computation, no host I/O — `installExtras` is a no-op):
|
|
6
6
|
*
|
|
7
7
|
* - `deriveJsonSchema`: registration-time. Compiles the schema and derives
|
|
8
|
-
* its JSON Schema
|
|
9
|
-
*
|
|
10
|
-
* not at call time.
|
|
8
|
+
* its JSON Schema — what's sent to the model as the tool's `parameters`.
|
|
9
|
+
* A malformed schema fails here, not at call time.
|
|
11
10
|
* - `validateParams`: call-time. Compiles the same schema (again, inside
|
|
12
11
|
* the sandbox) and parses the model-supplied arguments against it.
|
|
13
12
|
* Zod's own validation error (a real thrown `ZodError`, whose `.message`
|
|
14
13
|
* is already a readable issue list) becomes the sandbox failure the
|
|
15
14
|
* engine feeds back to the model as a tool-result error — not a run
|
|
16
15
|
* failure.
|
|
16
|
+
*
|
|
17
|
+
* Zod 3 compatibility window (this release only): wardby itself runs Zod 4,
|
|
18
|
+
* but a custom tool's paramsZod is still compiled with Zod 4's built-in Zod 3
|
|
19
|
+
* API (`zod/v3`) first, so a schema written for Zod 3 keeps working exactly as
|
|
20
|
+
* before, and its JSON Schema comes from zod-to-json-schema (the converter it
|
|
21
|
+
* was derived with before). Source Zod 3 can't compile (a schema written for
|
|
22
|
+
* Zod 4, such as one using `z.email()`) falls back to Zod 4, whose JSON Schema
|
|
23
|
+
* is `z.toJSONSchema` rewritten in zod-to-json-schema's spelling
|
|
24
|
+
* (core/zod-json-schema.ts). `zod4Compatibility` finds the schemas the next
|
|
25
|
+
* release, which compiles with Zod 4 only, would break; zod3-window.ts warns
|
|
26
|
+
* about them. To close the window: set PARAMS_ZOD_APIS to ["v4"], and drop the
|
|
27
|
+
* Zod 3 bundle (scripts/build-sandbox-vendor.mjs) and the window's warnings.
|
|
17
28
|
*/
|
|
18
29
|
import { readFileSync } from "node:fs";
|
|
19
30
|
import { fileURLToPath } from "node:url";
|
|
20
31
|
import path from "node:path";
|
|
21
32
|
import { evalToJson } from "./eval-core.js";
|
|
33
|
+
import { legacyJsonSchema } from "../core/zod-json-schema.js";
|
|
22
34
|
const GENERATED_DIR = fileURLToPath(new URL("./generated/", import.meta.url));
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
35
|
+
/** The APIs a tool's paramsZod is compiled with, in order: the first that compiles it is used. */
|
|
36
|
+
export const PARAMS_ZOD_APIS = ["v3", "v4"];
|
|
37
|
+
const BUNDLES = {
|
|
38
|
+
v4: { file: "zod.bundle.js", prelude: "const z = __zodModule.default.z;" },
|
|
39
|
+
v3: {
|
|
40
|
+
file: "zod3.bundle.js",
|
|
41
|
+
prelude: "const z = __zod3Module.default.z;\nconst zodToJsonSchema = __zod3Module.default.zodToJsonSchema;",
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
const vendorPreludeCache = new Map();
|
|
45
|
+
function getVendorPrelude(api) {
|
|
46
|
+
const cached = vendorPreludeCache.get(api);
|
|
47
|
+
if (cached)
|
|
48
|
+
return cached;
|
|
49
|
+
let bundle;
|
|
29
50
|
try {
|
|
30
|
-
|
|
31
|
-
zodToJsonSchemaBundle = readFileSync(path.join(GENERATED_DIR, "zod-to-json-schema.bundle.js"), "utf8");
|
|
51
|
+
bundle = readFileSync(path.join(GENERATED_DIR, BUNDLES[api].file), "utf8");
|
|
32
52
|
}
|
|
33
53
|
catch (err) {
|
|
34
54
|
throw new Error(`Sandbox vendor bundles missing (run "npm run build:vendor" first): ${err instanceof Error ? err.message : String(err)}`, { cause: err });
|
|
35
55
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
`const zodToJsonSchema = __zodToJsonSchemaModule.default.zodToJsonSchema;\n`;
|
|
40
|
-
return vendorPreludeCache;
|
|
56
|
+
const prelude = `${bundle}\n${BUNDLES[api].prelude}\n`;
|
|
57
|
+
vendorPreludeCache.set(api, prelude);
|
|
58
|
+
return prelude;
|
|
41
59
|
}
|
|
42
|
-
/**
|
|
43
|
-
|
|
44
|
-
|
|
60
|
+
/**
|
|
61
|
+
* Prefixed to the message of an error thrown while compiling the schema
|
|
62
|
+
* source (as opposed to parsing arguments with it), so the host can tell "this
|
|
63
|
+
* API can't compile it" from a validation failure. Never shown: stripped below.
|
|
64
|
+
*/
|
|
65
|
+
const COMPILE_FAILED = "__wardby_zod_compile_failed__:";
|
|
66
|
+
/**
|
|
67
|
+
* Compiles the source into `schema`. A sandbox limit (QuickJS's uncatchable
|
|
68
|
+
* interrupt, or an out-of-memory InternalError) is rethrown as is: only an
|
|
69
|
+
* ordinary compile error is marked.
|
|
70
|
+
*/
|
|
71
|
+
function compileStatement(paramsZodSource) {
|
|
72
|
+
return `let schema;
|
|
73
|
+
try {
|
|
74
|
+
schema = (${paramsZodSource});
|
|
75
|
+
if (schema === null || typeof schema !== "object" || typeof schema.safeParse !== "function") {
|
|
76
|
+
throw new TypeError("paramsZod did not evaluate to a Zod schema");
|
|
77
|
+
}
|
|
78
|
+
} catch (e) {
|
|
79
|
+
if (e instanceof InternalError) throw e;
|
|
80
|
+
const marked = new Error(${JSON.stringify(COMPILE_FAILED)} + (e && e.message !== undefined ? e.message : String(e)));
|
|
81
|
+
marked.name = e && typeof e.name === "string" ? e.name : "Error";
|
|
82
|
+
throw marked;
|
|
83
|
+
}`;
|
|
84
|
+
}
|
|
85
|
+
function isCompileFailure(result) {
|
|
86
|
+
return !result.ok && result.errorKind === "thrown" && result.errorMessage.includes(COMPILE_FAILED);
|
|
87
|
+
}
|
|
88
|
+
function unmark(result) {
|
|
89
|
+
return result.ok ? result : { ...result, errorMessage: result.errorMessage.replace(COMPILE_FAILED, "") };
|
|
90
|
+
}
|
|
91
|
+
/** Runs `attempt` with each API in turn until one compiles the source; the first API's failure otherwise. */
|
|
92
|
+
async function withFirstCompilingApi(apis, attempt) {
|
|
93
|
+
let first;
|
|
94
|
+
for (const api of apis) {
|
|
95
|
+
const result = await attempt(api);
|
|
96
|
+
if (!isCompileFailure(result))
|
|
97
|
+
return unmark(result);
|
|
98
|
+
first ??= result;
|
|
99
|
+
}
|
|
100
|
+
if (!first)
|
|
101
|
+
throw new Error("withFirstCompilingApi needs at least one API");
|
|
102
|
+
return unmark(first);
|
|
103
|
+
}
|
|
104
|
+
async function deriveWith(paramsZodSource, api) {
|
|
105
|
+
const toJson = api === "v4"
|
|
106
|
+
? `z.toJSONSchema(schema, { target: "draft-07", io: "input", unrepresentable: "any" })`
|
|
107
|
+
: `zodToJsonSchema(schema)`;
|
|
108
|
+
const code = `${getVendorPrelude(api)}
|
|
45
109
|
(async () => {
|
|
46
|
-
|
|
47
|
-
return JSON.stringify(
|
|
110
|
+
${compileStatement(paramsZodSource)}
|
|
111
|
+
return JSON.stringify(${toJson});
|
|
48
112
|
})()`;
|
|
49
|
-
|
|
113
|
+
const result = await evalToJson(code, undefined, () => { });
|
|
114
|
+
if (!result.ok || api === "v3")
|
|
115
|
+
return result;
|
|
116
|
+
return { ...result, value: legacyJsonSchema(result.value, { closeObjects: true }) };
|
|
50
117
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
const code = `${getVendorPrelude()}
|
|
118
|
+
async function validateWith(paramsZodSource, rawArgs, api) {
|
|
119
|
+
const code = `${getVendorPrelude(api)}
|
|
54
120
|
(async () => {
|
|
55
|
-
|
|
121
|
+
${compileStatement(paramsZodSource)}
|
|
56
122
|
const args = ${JSON.stringify(rawArgs)};
|
|
57
123
|
return JSON.stringify(schema.parse(args));
|
|
58
124
|
})()`;
|
|
59
125
|
return evalToJson(code, undefined, () => { });
|
|
60
126
|
}
|
|
127
|
+
/** Registration-time: compiles the schema source and derives its JSON Schema. */
|
|
128
|
+
export async function deriveJsonSchema(paramsZodSource, apis = PARAMS_ZOD_APIS) {
|
|
129
|
+
return withFirstCompilingApi(apis, (api) => deriveWith(paramsZodSource, api));
|
|
130
|
+
}
|
|
131
|
+
/** Call-time: compiles the schema source and validates the model-supplied args against it. */
|
|
132
|
+
export async function validateParams(paramsZodSource, rawArgs, apis = PARAMS_ZOD_APIS) {
|
|
133
|
+
return withFirstCompilingApi(apis, (api) => validateWith(paramsZodSource, rawArgs, api));
|
|
134
|
+
}
|
|
135
|
+
/** Zod 3 schema methods Zod 4 removed. */
|
|
136
|
+
const REMOVED_METHODS = [
|
|
137
|
+
"nonstrict",
|
|
138
|
+
"deepPartial",
|
|
139
|
+
"augment",
|
|
140
|
+
"setKey",
|
|
141
|
+
"ip",
|
|
142
|
+
"cidr",
|
|
143
|
+
"refinement",
|
|
144
|
+
"promise",
|
|
145
|
+
"args",
|
|
146
|
+
"returns",
|
|
147
|
+
];
|
|
148
|
+
/** Zod 3 `z.*` functions Zod 4 removed, each with a stand-in that keeps the probe compiling. */
|
|
149
|
+
const REMOVED_FUNCTIONS = {
|
|
150
|
+
ostring: "() => real.string().optional()",
|
|
151
|
+
onumber: "() => real.number().optional()",
|
|
152
|
+
oboolean: "() => real.boolean().optional()",
|
|
153
|
+
effect: "(s) => s",
|
|
154
|
+
transformer: "(s) => s",
|
|
155
|
+
pipeline: "(a, b) => a.pipe(b)",
|
|
156
|
+
};
|
|
157
|
+
/** A label the probe may report: one of the fixed names above, never the schema's own text. */
|
|
158
|
+
const LABEL = /^(z)?\.[A-Za-z]+\(\)$/;
|
|
159
|
+
/**
|
|
160
|
+
* Compiles the source with Zod 4, with a recording stand-in for each removed
|
|
161
|
+
* Zod 3 method or function (so one run finds all of them, not only the
|
|
162
|
+
* first), then derives its JSON Schema as registration would.
|
|
163
|
+
*/
|
|
164
|
+
function zod4ProbeCode(paramsZodSource) {
|
|
165
|
+
const shimEntries = Object.entries(REMOVED_FUNCTIONS)
|
|
166
|
+
.map(([name, fn]) => `${name}: (...a) => (hit("z.${name}()"), (${fn})(...a))`)
|
|
167
|
+
.join(", ");
|
|
168
|
+
return `${getVendorPrelude("v4")}
|
|
169
|
+
(async () => {
|
|
170
|
+
const real = z;
|
|
171
|
+
const hits = [];
|
|
172
|
+
const hit = (label) => { if (!hits.includes(label)) hits.push(label); };
|
|
173
|
+
for (const value of Object.values(real)) {
|
|
174
|
+
if (typeof value !== "function" || !value.prototype || !/^Zod/.test(value.name)) continue;
|
|
175
|
+
for (const name of ${JSON.stringify(REMOVED_METHODS)}) {
|
|
176
|
+
if (name in value.prototype) continue;
|
|
177
|
+
Object.defineProperty(value.prototype, name, {
|
|
178
|
+
configurable: true,
|
|
179
|
+
value: function () { hit("." + name + "()"); return this; },
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
const shim = { ...real, ${shimEntries} };
|
|
184
|
+
let compiled = true;
|
|
185
|
+
try {
|
|
186
|
+
const schema = ((z) => (${paramsZodSource}))(shim);
|
|
187
|
+
if (schema === null || typeof schema !== "object" || typeof schema.safeParse !== "function") throw new TypeError();
|
|
188
|
+
real.toJSONSchema(schema, { target: "draft-07", io: "input", unrepresentable: "any" });
|
|
189
|
+
} catch (e) {
|
|
190
|
+
if (e instanceof InternalError) throw e;
|
|
191
|
+
compiled = false;
|
|
192
|
+
}
|
|
193
|
+
return JSON.stringify({ compiled: compiled && hits.length === 0, removed: hits });
|
|
194
|
+
})()`;
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Whether the source compiles with Zod 4 alone, as it must from the next
|
|
198
|
+
* release on. Only meaningful for source the current release accepts.
|
|
199
|
+
*/
|
|
200
|
+
export async function zod4Compatibility(paramsZodSource) {
|
|
201
|
+
const probe = await evalToJson(zod4ProbeCode(paramsZodSource), undefined, () => { });
|
|
202
|
+
if (!probe.ok)
|
|
203
|
+
return { compatible: "unknown" };
|
|
204
|
+
const { compiled, removed } = probe.value;
|
|
205
|
+
if (compiled)
|
|
206
|
+
return { compatible: true };
|
|
207
|
+
const labels = removed.filter((label) => LABEL.test(label));
|
|
208
|
+
if (labels.length === 0) {
|
|
209
|
+
// Zod 4 can't compile it and it uses none of the known removed API: does Zod 3 compile it?
|
|
210
|
+
const v3 = await deriveJsonSchema(paramsZodSource, ["v3"]);
|
|
211
|
+
if (!v3.ok)
|
|
212
|
+
return { compatible: "unknown" };
|
|
213
|
+
}
|
|
214
|
+
return { compatible: false, removed: labels };
|
|
215
|
+
}
|
package/dist/serve.js
CHANGED
|
@@ -24,8 +24,10 @@ import { DISABLED_POWER } from "./core/power.js";
|
|
|
24
24
|
import { startNotifications } from "./core/notifications.js";
|
|
25
25
|
import { startReconciler } from "./core/reconciler.js";
|
|
26
26
|
import { createRepoAccessGate } from "./core/repo-access.js";
|
|
27
|
+
import { markRunFailedFromExecutorError } from "./core/dispatch.js";
|
|
27
28
|
import { startScheduler } from "./core/scheduler.js";
|
|
28
29
|
import { drainDeferredRuns } from "./providers/executor/deferred.js";
|
|
30
|
+
import { resolveDeferredCodingRun } from "./core/deferred-coding.js";
|
|
29
31
|
import { buildMcpProviders, startMcp } from "./mcp/index.js";
|
|
30
32
|
const serveLog = logger.child({ module: "serve" });
|
|
31
33
|
export async function startServe(options = {}) {
|
|
@@ -72,7 +74,12 @@ export async function startServe(options = {}) {
|
|
|
72
74
|
onLeaderTick: async () => {
|
|
73
75
|
await drainCodingQueue({ db: prisma, executor: providers.executor, ...concurrency, selfDefects });
|
|
74
76
|
// Runs the native sandbox gateway dispatched (or asked to stop): it holds no executor of its own.
|
|
75
|
-
await drainDeferredRuns({
|
|
77
|
+
await drainDeferredRuns({
|
|
78
|
+
db: prisma,
|
|
79
|
+
executor: providers.executor,
|
|
80
|
+
beforeStart: (runId) => resolveDeferredCodingRun({ db: prisma, executor: providers.executor, runId }),
|
|
81
|
+
onStartFailed: (runId, err) => markRunFailedFromExecutorError(prisma, runId, err, selfDefects),
|
|
82
|
+
});
|
|
76
83
|
// Scale idle coding-proxy/native-gateway Deployments to zero (no-op unless WARDBY_LOW_POWER=1).
|
|
77
84
|
await power.sleepIfIdle().catch((err) => serveLog.warn({ err }, "power_sleep_failed"));
|
|
78
85
|
},
|