@wardby/cli 0.5.3 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +33 -0
- package/README.md +25 -14
- package/deploy/local/docker-compose.quickstart-coding.yml +13 -0
- package/dist/claude-coding-worker/context.d.ts +22 -0
- package/dist/claude-coding-worker/context.js +92 -0
- package/dist/claude-coding-worker/driver.d.ts +27 -3
- package/dist/claude-coding-worker/driver.js +161 -20
- package/dist/claude-coding-worker/main.js +34 -6
- package/dist/claude-coding-worker/sdk.js +25 -5
- package/dist/claude-coding-worker/tool-socket.d.ts +27 -0
- package/dist/claude-coding-worker/tool-socket.js +111 -0
- package/dist/claude-coding-worker/transcript.d.ts +18 -0
- package/dist/claude-coding-worker/transcript.js +77 -0
- package/dist/cli-help.d.ts +1 -1
- package/dist/cli-help.js +6 -2
- package/dist/cli-native-mode.d.ts +9 -0
- package/dist/cli-native-mode.js +20 -0
- package/dist/cli.d.ts +3 -1
- package/dist/cli.js +161 -11
- package/dist/coding/claude-context.d.ts +45 -0
- package/dist/coding/claude-context.js +434 -0
- package/dist/coding/continuation-wording.d.ts +35 -0
- package/dist/coding/continuation-wording.js +73 -0
- package/dist/coding/linked-issue-note.d.ts +23 -0
- package/dist/coding/linked-issue-note.js +47 -0
- package/dist/coding/merge-wording.d.ts +28 -0
- package/dist/coding/merge-wording.js +78 -0
- package/dist/coding/pr-description-note.d.ts +9 -0
- package/dist/coding/pr-description-note.js +32 -0
- package/dist/coding/profile.d.ts +50 -118
- package/dist/coding/profile.js +51 -4
- package/dist/coding/protected-path-wording.d.ts +8 -0
- package/dist/coding/protected-path-wording.js +1 -1
- package/dist/coding/protocol.d.ts +292 -270
- package/dist/coding/protocol.js +322 -15
- package/dist/coding/redact.d.ts +3 -0
- package/dist/coding/redact.js +12 -0
- package/dist/coding/registry/allowlist.d.ts +12 -0
- package/dist/coding/registry/allowlist.js +14 -1
- package/dist/coding/registry/audit-mode.d.ts +153 -0
- package/dist/coding/registry/audit-mode.js +304 -0
- package/dist/coding/registry/lockfile-shared.d.ts +36 -0
- package/dist/coding/registry/lockfile-shared.js +128 -0
- package/dist/coding/registry/lockfiles.js +1 -1
- package/dist/coding/registry/npm-lockfile-formats.d.ts +11 -0
- package/dist/coding/registry/npm-lockfile-formats.js +41 -0
- package/dist/coding/registry/npm-lockfile.d.ts +8 -4
- package/dist/coding/registry/npm-lockfile.js +4 -6
- package/dist/coding/registry/npm.js +78 -8
- package/dist/coding/registry/pnpm-lockfile.d.ts +17 -0
- package/dist/coding/registry/pnpm-lockfile.js +189 -0
- package/dist/coding/registry/pypi-plan.d.ts +50 -0
- package/dist/coding/registry/pypi-plan.js +406 -0
- package/dist/coding/registry/pypi-requirements.d.ts +58 -0
- package/dist/coding/registry/pypi-requirements.js +155 -0
- package/dist/coding/registry/pypi.d.ts +3 -27
- package/dist/coding/registry/pypi.js +40 -154
- package/dist/coding/registry/refusal-hints.d.ts +20 -0
- package/dist/coding/registry/refusal-hints.js +61 -0
- package/dist/coding/registry/refusal-wording.d.ts +11 -0
- package/dist/coding/registry/refusal-wording.js +56 -0
- package/dist/coding/registry/report.d.ts +70 -8
- package/dist/coding/registry/report.js +112 -5
- package/dist/coding/registry/types.d.ts +58 -8
- package/dist/coding/registry/yarn-lockfile.d.ts +30 -0
- package/dist/coding/registry/yarn-lockfile.js +367 -0
- package/dist/coding/services/catalog.d.ts +37 -351
- package/dist/coding/transcript/claude-code.d.ts +13 -0
- package/dist/coding/transcript/claude-code.js +273 -0
- package/dist/coding/transcript/download-protocol.d.ts +30 -0
- package/dist/coding/transcript/download-protocol.js +18 -0
- package/dist/coding/transcript/format.d.ts +20 -0
- package/dist/coding/transcript/format.js +32 -0
- package/dist/coding/transcript/recorder.d.ts +51 -0
- package/dist/coding/transcript/recorder.js +225 -0
- package/dist/coding/transcript/resume/checkout.d.ts +31 -0
- package/dist/coding/transcript/resume/checkout.js +203 -0
- package/dist/coding/transcript/resume/command.d.ts +17 -0
- package/dist/coding/transcript/resume/command.js +176 -0
- package/dist/coding/transcript/resume/download.d.ts +20 -0
- package/dist/coding/transcript/resume/download.js +153 -0
- package/dist/coding/transcript/resume/launch.d.ts +38 -0
- package/dist/coding/transcript/resume/launch.js +128 -0
- package/dist/coding/transcript/resume/session-file.d.ts +13 -0
- package/dist/coding/transcript/resume/session-file.js +79 -0
- package/dist/coding/transcript/resume/stand-in.d.ts +11 -0
- package/dist/coding/transcript/resume/stand-in.js +49 -0
- package/dist/coding-worker/artifact.d.ts +16 -3
- package/dist/coding-worker/artifact.js +5 -3
- package/dist/coding-worker/debug-trace.d.ts +6 -5
- package/dist/coding-worker/debug-trace.js +13 -18
- package/dist/coding-worker/dependency-cache.d.mts +229 -0
- package/dist/coding-worker/dependency-cache.mjs +2123 -0
- package/dist/coding-worker/driver.d.ts +4 -3
- package/dist/coding-worker/driver.js +118 -38
- package/dist/coding-worker/errors.d.ts +1 -0
- package/dist/coding-worker/errors.js +32 -0
- package/dist/coding-worker/sdk.d.ts +6 -0
- package/dist/coding-worker/sdk.js +1 -0
- package/dist/coding-worker/skills.d.ts +23 -0
- package/dist/coding-worker/skills.js +117 -0
- package/dist/coding-worker/task-note.d.ts +11 -0
- package/dist/coding-worker/task-note.js +13 -0
- package/dist/coding-worker/types.d.ts +13 -0
- package/dist/config/dependency-cache.d.ts +23 -0
- package/dist/config/dependency-cache.js +32 -0
- package/dist/config/github-allowed-accounts.d.ts +15 -0
- package/dist/config/github-allowed-accounts.js +36 -0
- package/dist/config/low-power.d.ts +12 -0
- package/dist/config/low-power.js +18 -0
- package/dist/config/mobile.d.ts +12 -0
- package/dist/config/mobile.js +18 -0
- package/dist/config/providers.d.ts +65 -3
- package/dist/config/providers.js +147 -11
- package/dist/config/test-simulators.d.ts +82 -0
- package/dist/config/test-simulators.js +305 -0
- package/dist/core/async-context.d.ts +2 -0
- package/dist/core/async-context.js +12 -0
- package/dist/core/budget-events.d.ts +108 -0
- package/dist/core/budget-events.js +346 -0
- package/dist/core/budget-groups.d.ts +50 -1
- package/dist/core/budget-groups.js +236 -27
- package/dist/core/budget-stopped-head.d.ts +46 -0
- package/dist/core/budget-stopped-head.js +81 -0
- package/dist/core/budget-topup.d.ts +51 -0
- package/dist/core/budget-topup.js +156 -0
- package/dist/core/budget-wording.d.ts +16 -2
- package/dist/core/budget-wording.js +40 -2
- package/dist/core/coding-queue.d.ts +2 -1
- package/dist/core/coding-queue.js +7 -0
- package/dist/core/cron.d.ts +19 -1
- package/dist/core/cron.js +17 -0
- package/dist/core/datastores.js +1 -1
- package/dist/core/db.d.ts +16 -6
- package/dist/core/db.js +12 -10
- package/dist/core/deferred-coding.d.ts +14 -0
- package/dist/core/deferred-coding.js +62 -0
- package/dist/core/delegation-child.d.ts +25 -0
- package/dist/core/delegation-child.js +37 -0
- package/dist/core/dispatch.d.ts +53 -0
- package/dist/core/dispatch.js +167 -57
- package/dist/core/engine-native.js +10 -6
- package/dist/core/error-code.d.ts +38 -0
- package/dist/core/error-code.js +168 -0
- package/dist/core/grants.d.ts +19 -6
- package/dist/core/grants.js +55 -6
- package/dist/core/host-events.d.ts +67 -5
- package/dist/core/host-events.js +571 -37
- package/dist/core/host-status.d.ts +85 -3
- package/dist/core/host-status.js +298 -20
- package/dist/core/issue-bridge.d.ts +50 -6
- package/dist/core/issue-bridge.js +151 -20
- package/dist/core/issue-events.d.ts +1 -1
- package/dist/core/issue-events.js +16 -11
- package/dist/core/issue-status.d.ts +1 -1
- package/dist/core/issue-status.js +68 -29
- package/dist/core/logger.d.ts +5 -0
- package/dist/core/logger.js +14 -1
- package/dist/core/lost-run-children.d.ts +6 -0
- package/dist/core/lost-run-children.js +32 -0
- package/dist/core/mark-ready.d.ts +34 -0
- package/dist/core/mark-ready.js +152 -0
- package/dist/core/markdown-code.d.ts +8 -0
- package/dist/core/markdown-code.js +107 -0
- package/dist/core/memory-tools.js +7 -0
- package/dist/core/merge-order-check.d.ts +130 -0
- package/dist/core/merge-order-check.js +343 -0
- package/dist/core/notification-dispatcher.d.ts +70 -0
- package/dist/core/notification-dispatcher.js +368 -0
- package/dist/core/notification-templates.d.ts +19 -0
- package/dist/core/notification-templates.js +139 -0
- package/dist/core/notifications.d.ts +10 -0
- package/dist/core/notifications.js +38 -0
- package/dist/core/pg-auth.d.ts +22 -0
- package/dist/core/pg-auth.js +152 -0
- package/dist/core/power-composition.d.ts +16 -0
- package/dist/core/power-composition.js +37 -0
- package/dist/core/power-idle.d.ts +14 -0
- package/dist/core/power-idle.js +30 -0
- package/dist/core/power.d.ts +71 -0
- package/dist/core/power.js +202 -0
- package/dist/core/pull-request-state-sync.js +2 -2
- package/dist/core/reconciler.d.ts +8 -5
- package/dist/core/reconciler.js +37 -6
- package/dist/core/related-pull-requests.d.ts +59 -7
- package/dist/core/related-pull-requests.js +140 -25
- package/dist/core/reply-parts.d.ts +21 -0
- package/dist/core/reply-parts.js +73 -0
- package/dist/core/repo-access.d.ts +15 -0
- package/dist/core/repo-access.js +66 -0
- package/dist/core/review-fix.d.ts +38 -1
- package/dist/core/review-fix.js +209 -7
- package/dist/core/review-host-checks.d.ts +1 -1
- package/dist/core/review-host-tools.d.ts +23 -0
- package/dist/core/review-host-tools.js +156 -14
- package/dist/core/review-reads.d.ts +55 -0
- package/dist/core/review-reads.js +233 -0
- package/dist/core/run-status.d.ts +12 -0
- package/dist/core/run-status.js +12 -0
- package/dist/core/runner.d.ts +384 -5
- package/dist/core/runner.js +1244 -372
- package/dist/core/schedule-start.d.ts +12 -0
- package/dist/core/schedule-start.js +14 -0
- package/dist/core/secret-broker-config.d.ts +39 -0
- package/dist/core/secret-broker-config.js +112 -0
- package/dist/core/secret-guard.d.ts +46 -0
- package/dist/core/secret-guard.js +104 -0
- package/dist/core/secret-guarded-stores.d.ts +12 -0
- package/dist/core/secret-guarded-stores.js +41 -0
- package/dist/core/secret-spans.d.ts +50 -0
- package/dist/core/secret-spans.js +94 -0
- package/dist/core/secrets.d.ts +39 -4
- package/dist/core/secrets.js +148 -40
- package/dist/core/stop-run.d.ts +46 -0
- package/dist/core/stop-run.js +61 -0
- package/dist/core/workflow-event-recorder.d.ts +14 -0
- package/dist/core/workflow-event-recorder.js +120 -0
- package/dist/core/workflow-events.d.ts +94 -0
- package/dist/core/workflow-events.js +48 -0
- package/dist/core/workflow-run-events.d.ts +18 -0
- package/dist/core/workflow-run-events.js +75 -0
- package/dist/core/zod-json-schema.d.ts +4 -0
- package/dist/core/zod-json-schema.js +39 -0
- package/dist/core/zod3-window.d.ts +35 -0
- package/dist/core/zod3-window.js +124 -0
- package/dist/generated/prisma/browser.d.ts +92 -3
- package/dist/generated/prisma/client.d.ts +92 -3
- package/dist/generated/prisma/commonInputTypes.d.ts +364 -54
- package/dist/generated/prisma/enums.d.ts +37 -0
- package/dist/generated/prisma/enums.js +31 -0
- package/dist/generated/prisma/internal/class.d.ts +132 -0
- package/dist/generated/prisma/internal/class.js +4 -4
- package/dist/generated/prisma/internal/prismaNamespace.d.ts +1332 -142
- package/dist/generated/prisma/internal/prismaNamespace.js +227 -5
- package/dist/generated/prisma/internal/prismaNamespaceBrowser.d.ts +234 -0
- package/dist/generated/prisma/internal/prismaNamespaceBrowser.js +227 -5
- package/dist/generated/prisma/models/Agent.d.ts +464 -7
- package/dist/generated/prisma/models/AgentRepository.d.ts +42 -1
- package/dist/generated/prisma/models/CodingAgentProfile.d.ts +301 -1
- package/dist/generated/prisma/models/CodingProxyRequest.d.ts +207 -3
- package/dist/generated/prisma/models/CodingProxySession.d.ts +114 -1
- package/dist/generated/prisma/models/CodingRun.d.ts +1841 -1
- package/dist/generated/prisma/models/DeferredReview.d.ts +78 -1
- package/dist/generated/prisma/models/DependencySnapshot.d.ts +1668 -0
- package/dist/generated/prisma/models/DependencySnapshot.js +1 -0
- package/dist/generated/prisma/models/IssuePullRequest.d.ts +6 -2
- package/dist/generated/prisma/models/LocalReview.d.ts +40 -1
- package/dist/generated/prisma/models/NativeGatewayCall.d.ts +1713 -0
- package/dist/generated/prisma/models/NativeGatewayCall.js +1 -0
- package/dist/generated/prisma/models/NativeGatewaySession.d.ts +1551 -0
- package/dist/generated/prisma/models/NativeGatewaySession.js +1 -0
- package/dist/generated/prisma/models/NativeWarmWorker.d.ts +1296 -0
- package/dist/generated/prisma/models/NativeWarmWorker.js +1 -0
- package/dist/generated/prisma/models/NotificationChannel.d.ts +1543 -0
- package/dist/generated/prisma/models/NotificationChannel.js +1 -0
- package/dist/generated/prisma/models/NotificationDelivery.d.ts +1502 -0
- package/dist/generated/prisma/models/NotificationDelivery.js +1 -0
- package/dist/generated/prisma/models/NotificationThread.d.ts +1090 -0
- package/dist/generated/prisma/models/NotificationThread.js +1 -0
- package/dist/generated/prisma/models/RegistryAllowance.d.ts +41 -1
- package/dist/generated/prisma/models/RegistryApprovedVersion.d.ts +75 -1
- package/dist/generated/prisma/models/RegistryAuditRecord.d.ts +1364 -0
- package/dist/generated/prisma/models/RegistryAuditRecord.js +1 -0
- package/dist/generated/prisma/models/Run.d.ts +1619 -58
- package/dist/generated/prisma/models/RunBudgetEvent.d.ts +1211 -0
- package/dist/generated/prisma/models/RunBudgetEvent.js +1 -0
- package/dist/generated/prisma/models/RunHostCheck.d.ts +36 -1
- package/dist/generated/prisma/models/RunTranscript.d.ts +1339 -0
- package/dist/generated/prisma/models/RunTranscript.js +1 -0
- package/dist/generated/prisma/models/Secret.d.ts +37 -1
- package/dist/generated/prisma/models/SecretBrokerChange.d.ts +1101 -0
- package/dist/generated/prisma/models/SecretBrokerChange.js +1 -0
- package/dist/generated/prisma/models/WorkflowEvent.d.ts +1422 -0
- package/dist/generated/prisma/models/WorkflowEvent.js +1 -0
- package/dist/generated/prisma/models.d.ts +12 -0
- package/dist/help/build.js +4 -2
- package/dist/help/catalog.d.ts +1 -1
- package/dist/help/catalog.js +31 -6
- package/dist/help-index.json +2584 -146
- package/dist/import/create.js +49 -3
- package/dist/import/neutral-schema.d.ts +50 -277
- package/dist/import/neutral-schema.js +7 -4
- package/dist/knowledge/check.d.ts +1 -1
- package/dist/knowledge/cli.d.ts +11 -1
- package/dist/knowledge/cli.js +37 -4
- package/dist/knowledge/concept.d.ts +3 -19
- package/dist/knowledge/location.d.ts +31 -0
- package/dist/knowledge/location.js +78 -0
- package/dist/mcp/auth/access.d.ts +11 -2
- package/dist/mcp/auth/access.js +15 -1
- package/dist/mcp/auth/ownership.d.ts +7 -7
- package/dist/mcp/auth/repo-authorization.js +14 -0
- package/dist/mcp/auth/resource-server.d.ts +2 -1
- package/dist/mcp/auth/resource-server.js +7 -2
- package/dist/mcp/auth/self-hosted/browser.d.ts +1 -1
- package/dist/mcp/auth/self-hosted/browser.js +19 -6
- package/dist/mcp/auth/self-hosted/credentials.d.ts +3 -3
- package/dist/mcp/auth/self-hosted/session.d.ts +2 -2
- package/dist/mcp/context.d.ts +6 -0
- package/dist/mcp/host-events/github-ingress.d.ts +25 -1
- package/dist/mcp/host-events/github-ingress.js +70 -1
- package/dist/mcp/index.d.ts +19 -0
- package/dist/mcp/index.js +117 -20
- package/dist/mcp/server.d.ts +13 -0
- package/dist/mcp/server.js +33 -14
- package/dist/mcp/tools/agents.d.ts +4 -0
- package/dist/mcp/tools/agents.js +277 -24
- package/dist/mcp/tools/datastore.js +17 -8
- package/dist/mcp/tools/grants.js +9 -3
- package/dist/mcp/tools/memory.js +11 -1
- package/dist/mcp/tools/notification-channels.d.ts +2 -0
- package/dist/mcp/tools/notification-channels.js +293 -0
- package/dist/mcp/tools/packages.d.ts +2 -0
- package/dist/mcp/tools/packages.js +195 -0
- package/dist/mcp/tools/power.d.ts +2 -0
- package/dist/mcp/tools/power.js +77 -0
- package/dist/mcp/tools/repositories.js +18 -5
- package/dist/mcp/tools/run-access.d.ts +16 -0
- package/dist/mcp/tools/run-access.js +25 -0
- package/dist/mcp/tools/run-transcript-download.d.ts +30 -0
- package/dist/mcp/tools/run-transcript-download.js +129 -0
- package/dist/mcp/tools/run-transcript.d.ts +19 -0
- package/dist/mcp/tools/run-transcript.js +70 -0
- package/dist/mcp/tools/runs.d.ts +0 -6
- package/dist/mcp/tools/runs.js +41 -14
- package/dist/mcp/tools/scheduling.js +3 -1
- package/dist/mcp/tools/secret-broker-compat.d.ts +12 -0
- package/dist/mcp/tools/secret-broker-compat.js +23 -0
- package/dist/mcp/tools/secret-elicitation-form.d.ts +22 -2
- package/dist/mcp/tools/secret-elicitation-form.js +205 -10
- package/dist/mcp/tools/secret-elicitation-server.d.ts +6 -0
- package/dist/mcp/tools/secret-elicitation-server.js +10 -54
- package/dist/mcp/tools/secret-elicitation.d.ts +38 -3
- package/dist/mcp/tools/secret-elicitation.js +110 -12
- package/dist/mcp/tools/secrets.js +186 -9
- package/dist/mcp/tools/stop-run.d.ts +2 -0
- package/dist/mcp/tools/stop-run.js +82 -0
- package/dist/mcp/tools/subagents.js +2 -2
- package/dist/mcp/tools/tools.d.ts +2 -2
- package/dist/mcp/tools/tools.js +47 -11
- package/dist/mcp/transport/stdio-link-host.d.ts +20 -0
- package/dist/mcp/transport/stdio-link-host.js +67 -0
- package/dist/mcp/transport/streamable-http.d.ts +13 -0
- package/dist/mcp/transport/streamable-http.js +41 -1
- package/dist/native-worker/composition.d.ts +23 -0
- package/dist/native-worker/composition.js +77 -0
- package/dist/native-worker/docker-isolation.d.ts +65 -0
- package/dist/native-worker/docker-isolation.js +183 -0
- package/dist/native-worker/docker-launcher.d.ts +110 -0
- package/dist/native-worker/docker-launcher.js +297 -0
- package/dist/native-worker/gateway-server.d.ts +77 -0
- package/dist/native-worker/gateway-server.js +412 -0
- package/dist/native-worker/gateway.d.ts +70 -0
- package/dist/native-worker/gateway.js +263 -0
- package/dist/native-worker/http-server.d.ts +24 -0
- package/dist/native-worker/http-server.js +113 -0
- package/dist/native-worker/http-transport.d.ts +17 -0
- package/dist/native-worker/http-transport.js +88 -0
- package/dist/native-worker/kubernetes-isolation.d.ts +90 -0
- package/dist/native-worker/kubernetes-isolation.js +218 -0
- package/dist/native-worker/kubernetes-launcher.d.ts +106 -0
- package/dist/native-worker/kubernetes-launcher.js +375 -0
- package/dist/native-worker/launch.d.ts +62 -0
- package/dist/native-worker/launch.js +49 -0
- package/dist/native-worker/ledger.d.ts +125 -0
- package/dist/native-worker/ledger.js +245 -0
- package/dist/native-worker/loopback.d.ts +12 -0
- package/dist/native-worker/loopback.js +44 -0
- package/dist/native-worker/main.d.ts +8 -0
- package/dist/native-worker/main.js +85 -0
- package/dist/native-worker/protocol.d.ts +296 -0
- package/dist/native-worker/protocol.js +246 -0
- package/dist/native-worker/sandbox-executor.d.ts +83 -0
- package/dist/native-worker/sandbox-executor.js +284 -0
- package/dist/native-worker/stderr-redaction.d.ts +77 -0
- package/dist/native-worker/stderr-redaction.js +237 -0
- package/dist/native-worker/stdio.d.ts +29 -0
- package/dist/native-worker/stdio.js +189 -0
- package/dist/native-worker/warm-delivery.d.ts +16 -0
- package/dist/native-worker/warm-delivery.js +33 -0
- package/dist/native-worker/warm-pool-ledger.d.ts +39 -0
- package/dist/native-worker/warm-pool-ledger.js +73 -0
- package/dist/native-worker/warm-pool.d.ts +107 -0
- package/dist/native-worker/warm-pool.js +283 -0
- package/dist/native-worker/worker.d.ts +17 -0
- package/dist/native-worker/worker.js +141 -0
- package/dist/observability/metrics.js +6 -1
- package/dist/providers/auth/authorization-server.d.ts +3 -0
- package/dist/providers/auth/index.js +2 -0
- package/dist/providers/auth/self-hosted.d.ts +14 -2
- package/dist/providers/auth/self-hosted.js +54 -4
- package/dist/providers/chat/fake.d.ts +46 -0
- package/dist/providers/chat/fake.js +39 -0
- package/dist/providers/chat/index.d.ts +4 -0
- package/dist/providers/chat/index.js +8 -0
- package/dist/providers/chat/slack.d.ts +37 -0
- package/dist/providers/chat/slack.js +105 -0
- package/dist/providers/chat/types.d.ts +42 -0
- package/dist/providers/chat/types.js +19 -0
- package/dist/providers/coding-proxy/dependency-cache/eviction.d.ts +29 -0
- package/dist/providers/coding-proxy/dependency-cache/eviction.js +87 -0
- package/dist/providers/coding-proxy/dependency-cache/key.d.ts +33 -0
- package/dist/providers/coding-proxy/dependency-cache/key.js +86 -0
- package/dist/providers/coding-proxy/dependency-cache/model-request-seal.d.ts +18 -0
- package/dist/providers/coding-proxy/dependency-cache/model-request-seal.js +40 -0
- package/dist/providers/coding-proxy/dependency-cache/prisma-store.d.ts +25 -0
- package/dist/providers/coding-proxy/dependency-cache/prisma-store.js +131 -0
- package/dist/providers/coding-proxy/dependency-cache/service.d.ts +70 -0
- package/dist/providers/coding-proxy/dependency-cache/service.js +409 -0
- package/dist/providers/coding-proxy/dependency-cache/store.d.ts +85 -0
- package/dist/providers/coding-proxy/dependency-cache/store.js +95 -0
- package/dist/providers/coding-proxy/hold.d.ts +32 -0
- package/dist/providers/coding-proxy/hold.js +86 -0
- package/dist/providers/coding-proxy/interrupted.d.ts +70 -0
- package/dist/providers/coding-proxy/interrupted.js +104 -0
- package/dist/providers/coding-proxy/memory-ledger.d.ts +15 -2
- package/dist/providers/coding-proxy/memory-ledger.js +84 -8
- package/dist/providers/coding-proxy/metering.d.ts +16 -0
- package/dist/providers/coding-proxy/metering.js +27 -4
- package/dist/providers/coding-proxy/prisma-ledger.d.ts +15 -2
- package/dist/providers/coding-proxy/prisma-ledger.js +179 -67
- package/dist/providers/coding-proxy/proxy.d.ts +14 -1
- package/dist/providers/coding-proxy/proxy.js +166 -14
- package/dist/providers/coding-proxy/registry/audit.d.ts +53 -10
- package/dist/providers/coding-proxy/registry/audit.js +94 -17
- package/dist/providers/coding-proxy/registry/lockfile-parse-worker.d.ts +36 -0
- package/dist/providers/coding-proxy/registry/lockfile-parse-worker.js +67 -0
- package/dist/providers/coding-proxy/registry/lockfile-parse.d.ts +16 -0
- package/dist/providers/coding-proxy/registry/lockfile-parse.js +110 -0
- package/dist/providers/coding-proxy/registry/plan.d.ts +9 -0
- package/dist/providers/coding-proxy/registry/plan.js +201 -48
- package/dist/providers/coding-proxy/registry/prisma-store.d.ts +11 -5
- package/dist/providers/coding-proxy/registry/prisma-store.js +120 -17
- package/dist/providers/coding-proxy/registry/service.d.ts +97 -16
- package/dist/providers/coding-proxy/registry/service.js +579 -112
- package/dist/providers/coding-proxy/registry/store.d.ts +84 -9
- package/dist/providers/coding-proxy/registry/store.js +54 -1
- package/dist/providers/coding-proxy/runtime.d.ts +4 -0
- package/dist/providers/coding-proxy/runtime.js +78 -16
- package/dist/providers/coding-proxy/server.d.ts +6 -1
- package/dist/providers/coding-proxy/server.js +45 -1
- package/dist/providers/coding-proxy/types.d.ts +65 -1
- package/dist/providers/datastore/types.d.ts +5 -0
- package/dist/providers/engine/types.d.ts +36 -2
- package/dist/providers/engine/types.js +39 -0
- package/dist/providers/executor/composition.d.ts +31 -1
- package/dist/providers/executor/composition.js +81 -8
- package/dist/providers/executor/container.d.ts +385 -9
- package/dist/providers/executor/container.js +1234 -99
- package/dist/providers/executor/dbos-status.d.ts +31 -0
- package/dist/providers/executor/dbos-status.js +64 -0
- package/dist/providers/executor/dbos.d.ts +91 -0
- package/dist/providers/executor/dbos.js +319 -26
- package/dist/providers/executor/deferred.d.ts +44 -0
- package/dist/providers/executor/deferred.js +100 -0
- package/dist/providers/executor/in-process.d.ts +9 -1
- package/dist/providers/executor/in-process.js +14 -4
- package/dist/providers/executor/linked-issue-reader.d.ts +16 -0
- package/dist/providers/executor/linked-issue-reader.js +30 -0
- package/dist/providers/executor/routing.d.ts +39 -10
- package/dist/providers/executor/routing.js +77 -32
- package/dist/providers/executor/types.d.ts +25 -0
- package/dist/providers/index.d.ts +2 -1
- package/dist/providers/issue-tracker/types.d.ts +17 -0
- package/dist/providers/issue-tracker/types.js +39 -1
- package/dist/providers/jobs/claude-tool-setup.d.ts +4 -0
- package/dist/providers/jobs/claude-tool-setup.js +5 -2
- package/dist/providers/jobs/docker-isolation.d.ts +8 -0
- package/dist/providers/jobs/docker-isolation.js +17 -0
- package/dist/providers/jobs/docker.d.ts +1 -0
- package/dist/providers/jobs/docker.js +29 -4
- package/dist/providers/jobs/fake-kubernetes-api.d.ts +23 -2
- package/dist/providers/jobs/fake-kubernetes-api.js +45 -1
- package/dist/providers/jobs/kubernetes-api.d.ts +25 -1
- package/dist/providers/jobs/kubernetes-api.js +17 -0
- package/dist/providers/jobs/kubernetes-client.d.ts +10 -1
- package/dist/providers/jobs/kubernetes-client.js +61 -3
- package/dist/providers/jobs/kubernetes-dry-run-fixture.d.ts +6 -1
- package/dist/providers/jobs/kubernetes-dry-run-fixture.js +6 -3
- package/dist/providers/jobs/kubernetes-isolation.d.ts +5 -1
- package/dist/providers/jobs/kubernetes-isolation.js +23 -1
- package/dist/providers/jobs/kubernetes-platform.d.ts +4 -1
- package/dist/providers/jobs/kubernetes-platform.js +38 -1
- package/dist/providers/jobs/kubernetes-preflight.d.ts +2 -1
- package/dist/providers/jobs/kubernetes-preflight.js +4 -2
- package/dist/providers/jobs/kubernetes.d.ts +42 -2
- package/dist/providers/jobs/kubernetes.js +178 -19
- package/dist/providers/jobs/metadata-probes.d.ts +11 -0
- package/dist/providers/jobs/metadata-probes.js +13 -0
- package/dist/providers/jobs/types.d.ts +42 -0
- package/dist/providers/jobs/types.js +13 -1
- package/dist/providers/llm/anthropic.js +5 -1
- package/dist/providers/llm/bedrock.d.ts +0 -12
- package/dist/providers/llm/bedrock.js +4 -0
- package/dist/providers/llm/claude-messages.d.ts +3 -1
- package/dist/providers/llm/claude-messages.js +4 -1
- package/dist/providers/llm/claude-provider.d.ts +2 -2
- package/dist/providers/llm/claude-provider.js +2 -2
- package/dist/providers/llm/openai.d.ts +2 -2
- package/dist/providers/llm/openai.js +6 -2
- package/dist/providers/llm/routing.d.ts +2 -2
- package/dist/providers/llm/routing.js +2 -2
- package/dist/providers/llm/types.d.ts +12 -2
- package/dist/providers/review-host/github-events.d.ts +9 -1
- package/dist/providers/review-host/github-events.js +34 -12
- package/dist/providers/review-host/github.d.ts +39 -2
- package/dist/providers/review-host/github.js +274 -29
- package/dist/providers/review-host/local.d.ts +8 -4
- package/dist/providers/review-host/local.js +49 -31
- package/dist/providers/review-host/patch-pages.d.ts +41 -0
- package/dist/providers/review-host/patch-pages.js +176 -0
- package/dist/providers/review-host/review-format.d.ts +19 -1
- package/dist/providers/review-host/review-format.js +38 -7
- package/dist/providers/review-host/types.d.ts +157 -2
- package/dist/providers/review-host/types.js +8 -0
- package/dist/providers/storage/gcs.d.ts +63 -0
- package/dist/providers/storage/gcs.js +69 -0
- package/dist/providers/storage/index.d.ts +15 -0
- package/dist/providers/storage/index.js +14 -0
- package/dist/providers/storage/local.d.ts +24 -0
- package/dist/providers/storage/local.js +92 -0
- package/dist/providers/storage/meter.d.ts +14 -0
- package/dist/providers/storage/meter.js +34 -0
- package/dist/providers/storage/s3.d.ts +41 -0
- package/dist/providers/storage/s3.js +107 -0
- package/dist/providers/storage/types.d.ts +37 -3
- package/dist/providers/storage/types.js +21 -4
- package/dist/providers/vcs/git.d.ts +33 -2
- package/dist/providers/vcs/git.js +324 -22
- package/dist/providers/vcs/github-remote.d.ts +26 -3
- package/dist/providers/vcs/github-remote.js +124 -14
- package/dist/providers/vcs/github.d.ts +246 -12
- package/dist/providers/vcs/github.js +521 -61
- package/dist/providers/vcs/index.js +8 -1
- package/dist/providers/vcs/pr-description.d.ts +127 -0
- package/dist/providers/vcs/pr-description.js +270 -0
- package/dist/providers/vcs/remote.d.ts +33 -1
- package/dist/providers/vcs/routing.d.ts +4 -2
- package/dist/providers/vcs/routing.js +6 -0
- package/dist/providers/vcs/types.d.ts +80 -3
- package/dist/quickstart/coding-seed.d.ts +21 -3
- package/dist/quickstart/coding-seed.js +283 -3
- package/dist/quickstart/images.d.ts +2 -0
- package/dist/quickstart/images.js +7 -1
- package/dist/quickstart/reviewer-prompt.d.ts +1 -1
- package/dist/quickstart/reviewer-prompt.js +6 -6
- package/dist/quickstart-images.json +1 -1
- package/dist/sandbox/brokered-fetch.d.ts +23 -0
- package/dist/sandbox/brokered-fetch.js +37 -0
- package/dist/sandbox/generated/zod.bundle.js +62 -1
- package/dist/sandbox/generated/zod3.bundle.js +5 -0
- package/dist/sandbox/host-functions.d.ts +35 -0
- package/dist/sandbox/host-functions.js +150 -91
- package/dist/sandbox/prelude.js +7 -1
- package/dist/sandbox/run-in-sandbox.d.ts +19 -0
- package/dist/sandbox/run-in-sandbox.js +28 -10
- package/dist/sandbox/safe-fetch.d.ts +2 -0
- package/dist/sandbox/safe-fetch.js +3 -1
- package/dist/sandbox/secret-broker-sigv4.d.ts +2 -0
- package/dist/sandbox/secret-broker-sigv4.js +49 -0
- package/dist/sandbox/secret-broker.d.ts +34 -0
- package/dist/sandbox/secret-broker.js +161 -0
- package/dist/sandbox/tool-capabilities.d.ts +10 -30
- package/dist/sandbox/user-tool.d.ts +14 -0
- package/dist/sandbox/user-tool.js +32 -0
- package/dist/sandbox/zod-params.d.ts +37 -5
- package/dist/sandbox/zod-params.js +181 -26
- package/dist/serve.js +25 -0
- package/dist/viewer/api-schema.d.ts +372 -2454
- package/dist/viewer/api-schema.js +29 -0
- package/dist/viewer/build-schemas.js +10 -3
- package/dist/viewer/event-bus.d.ts +6 -0
- package/dist/viewer/event-bus.js +16 -7
- package/dist/viewer/graph.d.ts +5 -2
- package/dist/viewer/graph.js +7 -2
- package/dist/viewer/http.d.ts +0 -1
- package/dist/viewer/http.js +2 -2
- package/dist/viewer/infra.js +25 -2
- package/dist/viewer/limits.d.ts +4 -0
- package/dist/viewer/limits.js +4 -0
- package/dist/viewer/openapi.d.ts +15 -0
- package/dist/viewer/openapi.js +170 -0
- package/dist/wardby-bin.js +10 -0
- package/docs/README.md +7 -0
- package/docs/agent-recipes.md +114 -27
- package/docs/architecture-runtime.md +16 -1
- package/docs/code-review-agents.md +689 -45
- package/docs/coding-agent-setup.md +602 -12
- package/docs/coding-packages.md +1037 -92
- package/docs/coding-services.md +30 -13
- package/docs/coding-worker-byo-images.md +218 -6
- package/docs/coding-worker-isolation.md +173 -44
- package/docs/getting-started-gke.md +332 -129
- package/docs/getting-started-identity-provider.md +31 -11
- package/docs/getting-started.md +14 -4
- package/docs/jira-agents.md +22 -9
- package/docs/knowledge/blob-not-found-semantics.md +41 -0
- package/docs/knowledge/bounded-file-descriptor.md +52 -0
- package/docs/knowledge/delegation-admission-slots.md +52 -0
- package/docs/knowledge/http-dispatcher-bootstrap.md +61 -0
- package/docs/knowledge/import-rename-target.md +52 -0
- package/docs/knowledge/index.md +57 -0
- package/docs/knowledge/log.md +9 -0
- package/docs/knowledge/mcp-cancelled-task-precedence.md +41 -0
- package/docs/knowledge/mcp-http-prompt-discovery.md +41 -0
- package/docs/knowledge/mcp-schema-module-boundary.md +41 -0
- package/docs/knowledge/nullable-tool-uniqueness.md +52 -0
- package/docs/knowledge/overview-cli.md +74 -0
- package/docs/knowledge/overview-coding-proxy.md +72 -0
- package/docs/knowledge/overview-coding.md +72 -0
- package/docs/knowledge/overview-config.md +60 -0
- package/docs/knowledge/overview-core.md +72 -0
- package/docs/knowledge/overview-deploy.md +83 -0
- package/docs/knowledge/overview-mcp.md +61 -0
- package/docs/knowledge/overview-prisma.md +72 -0
- package/docs/knowledge/overview-providers.md +89 -0
- package/docs/knowledge/overview-sandbox.md +83 -0
- package/docs/knowledge/overview-surfaces.md +83 -0
- package/docs/knowledge/private-datastore-shared-boundary.md +54 -0
- package/docs/knowledge/proxy-settlement-projections.md +41 -0
- package/docs/knowledge/run-pricing-first-writer.md +43 -0
- package/docs/knowledge/schedule-claim-transaction.md +41 -0
- package/docs/knowledge/secret-entry-replica-contract.md +52 -0
- package/docs/knowledge/terminal-run-first-writer.md +41 -0
- package/docs/knowledge/transactional-agent-authorization.md +52 -0
- package/docs/knowledge/viewer-notify-write-isolation.md +30 -0
- package/docs/knowledge/warm-input-publication.md +30 -0
- package/docs/knowledge/workspace-staging-failure.md +54 -0
- package/docs/knowledge.md +54 -14
- package/docs/native-sandbox.md +731 -0
- package/docs/observability.md +4 -0
- package/docs/release-verification.md +9 -0
- package/docs/security-deployment.md +146 -14
- package/docs/slack-notifications.md +268 -0
- package/docs/tool-secrets.md +284 -0
- package/docs/viewer-api.md +46 -5
- package/docs/viewer-api.openapi.yml +1404 -0
- package/help/admin-viewer.md +29 -3
- package/help/agent-recipes.md +27 -0
- package/help/architecture-agent.md +11 -6
- package/help/brokered-secrets.md +79 -0
- package/help/build-claude-code-image.md +131 -0
- package/help/build-worker-image.md +6 -7
- package/help/builder-agent.md +19 -6
- package/help/code-review-agents.md +243 -10
- package/help/coding-packages.md +156 -6
- package/help/cost-attribution.md +9 -5
- package/help/creating-agents.md +14 -1
- package/help/dependency-cache.md +143 -0
- package/help/deploy-gke.md +23 -9
- package/help/deployment-targets.md +25 -14
- package/help/errors/budget-exhausted.md +187 -0
- package/help/errors/budget-group-exhausted.md +5 -1
- package/help/errors/coding-provider-not-configured.md +2 -2
- package/help/errors/coding-stream-quota-exceeded.md +33 -0
- package/help/errors/coding-workspace-disk-exceeds-limit.md +39 -0
- package/help/errors/continuation-closed.md +9 -12
- package/help/errors/database-auth-invalid.md +28 -0
- package/help/errors/delegation-conflict.md +24 -0
- package/help/errors/file-list-truncated.md +45 -0
- package/help/errors/full-read-required.md +49 -0
- package/help/errors/github-account-not-allowed.md +29 -0
- package/help/errors/graph-incomplete.md +43 -0
- package/help/errors/graph-limit.md +43 -0
- package/help/errors/low-power-disabled.md +29 -0
- package/help/errors/low-power-scale-forbidden.md +35 -0
- package/help/errors/low-power-wake-timeout.md +30 -0
- package/help/errors/merge-conflict.md +49 -0
- package/help/errors/mobile-disabled.md +31 -0
- package/help/errors/native-sandbox-capacity.md +22 -0
- package/help/errors/native-sandbox-deadline-exceeded.md +19 -0
- package/help/errors/native-sandbox-docker-failed.md +20 -0
- package/help/errors/native-sandbox-gateway-error.md +20 -0
- package/help/errors/native-sandbox-gateway-unavailable.md +21 -0
- package/help/errors/native-sandbox-image-not-pinned.md +19 -0
- package/help/errors/native-sandbox-isolation-mismatch.md +20 -0
- package/help/errors/native-sandbox-launch-abandoned.md +21 -0
- package/help/errors/native-sandbox-network-unenforced.md +22 -0
- package/help/errors/native-sandbox-requires-catalog.md +31 -0
- package/help/errors/native-sandbox-unavailable.md +19 -0
- package/help/errors/native-sandbox-warm-delivery-failed.md +21 -0
- package/help/errors/native-sandbox-worker-exited.md +21 -0
- package/help/errors/native-sandbox-worker-lost.md +20 -0
- package/help/errors/native-sandbox-worker-unready.md +22 -0
- package/help/errors/package-not-allowed-pending.md +52 -0
- package/help/errors/package-not-allowed.md +51 -0
- package/help/errors/package-refusals.md +43 -0
- package/help/errors/patch-cursor-malformed.md +31 -0
- package/help/errors/run-lost.md +39 -0
- package/help/errors/run-transcript-download.md +44 -0
- package/help/errors/secret-broker-body-invalid.md +26 -0
- package/help/errors/secret-broker-changed.md +20 -0
- package/help/errors/secret-broker-config-invalid.md +30 -0
- package/help/errors/secret-broker-conflict.md +27 -0
- package/help/errors/secret-broker-destination-denied.md +28 -0
- package/help/errors/secret-broker-value-invalid.md +28 -0
- package/help/errors/secret-brokered.md +24 -0
- package/help/errors/secret-in-value.md +69 -0
- package/help/errors/secret-not-brokered.md +25 -0
- package/help/errors/slack-auth-failed.md +48 -0
- package/help/errors/slack-channel-unreachable.md +39 -0
- package/help/errors/slack-not-configured.md +33 -0
- package/help/errors/target-merge.md +40 -0
- package/help/fix-merge-conflicts.md +73 -0
- package/help/getting-started.md +4 -5
- package/help/github-app-setup.md +132 -0
- package/help/github.md +40 -1
- package/help/identity-and-access.md +7 -1
- package/help/jira.md +23 -6
- package/help/knowledge.md +16 -7
- package/help/local-repositories.md +3 -4
- package/help/low-power-mode.md +131 -0
- package/help/merge-order-check.md +122 -0
- package/help/mobile-app.md +54 -0
- package/help/native-capabilities.md +29 -1
- package/help/native-sandbox.md +150 -0
- package/help/observability.md +8 -0
- package/help/operating-agents.md +5 -0
- package/help/package-audit-mode.md +91 -0
- package/help/related-pull-requests.md +80 -16
- package/help/repo-instructions-and-skills.md +91 -0
- package/help/resume-runs-locally.md +131 -0
- package/help/review-fix-rounds.md +43 -1
- package/help/sharing-agents.md +59 -0
- package/help/slack-notifications.md +76 -0
- package/help/status-comments.md +31 -0
- package/help/stop-run.md +58 -0
- package/help/troubleshooting/budgets.md +28 -0
- package/help/troubleshooting/coding-workers.md +99 -7
- package/package.json +27 -13
- package/prisma/migrations/20261009000003_native_execution_mode/migration.sql +12 -0
- package/prisma/migrations/20261009000004_native_gateway_ledger/migration.sql +65 -0
- package/prisma/migrations/20261009000005_native_gateway_call_child_agent/migration.sql +5 -0
- package/prisma/migrations/20261009000006_run_deferred_start_stop/migration.sql +14 -0
- package/prisma/migrations/20261009000007_native_gateway_network_ready/migration.sql +5 -0
- package/prisma/migrations/20261010000001_workflow_notifications/migration.sql +99 -0
- package/prisma/migrations/20261011000001_native_gateway_session_status_index/migration.sql +2 -0
- package/prisma/migrations/20261012000001_native_warm_worker/migration.sql +32 -0
- package/prisma/migrations/20261013000001_coding_run_merge_order/migration.sql +2 -0
- package/prisma/migrations/20261013000001_secret_broker/migration.sql +17 -0
- package/prisma/migrations/20261013000002_deferred_review_request/migration.sql +4 -0
- package/prisma/migrations/20261014000000_repo_skills/migration.sql +15 -0
- package/prisma/migrations/20261015000001_coding_run_merge_order_index/migration.sql +2 -0
- package/prisma/migrations/20261015000002_no_change_rereview/migration.sql +2 -0
- package/prisma/migrations/20261016000000_registry_approved_accepted_advisories/migration.sql +3 -0
- package/prisma/migrations/20261016000001_mark_ready_when_passing/migration.sql +3 -0
- package/prisma/migrations/20261017000000_debug_trace_max_mb/migration.sql +4 -0
- package/prisma/migrations/20261018000000_dependency_cache/migration.sql +53 -0
- package/prisma/migrations/20261019000000_claude_max_output_tokens/migration.sql +5 -0
- package/prisma/migrations/20261021000000_pr_description_hash/migration.sql +4 -0
- package/prisma/migrations/20261022000000_dependency_snapshot_validation_metadata/migration.sql +4 -0
- package/prisma/migrations/20261023000000_package_audit_mode/migration.sql +27 -0
- package/prisma/migrations/20261024000000_budget_events/migration.sql +26 -0
- package/prisma/migrations/20261025000000_cache_aware_holds/migration.sql +9 -0
- package/prisma/migrations/20261026000000_budget_overrun/migration.sql +4 -0
- package/prisma/migrations/20261027000000_coding_run_request/migration.sql +1 -0
- package/prisma/migrations/20261028000000_native_gateway_review_reads/migration.sql +6 -0
- package/prisma/migrations/20261029000000_lead_survives_deploy/migration.sql +6 -0
- package/prisma/migrations/20261030000000_local_review_covered_sha/migration.sql +2 -0
- package/prisma/migrations/20261031000000_coding_run_budget_limit/migration.sql +9 -0
- package/prisma/migrations/20261101000000_run_transcripts/migration.sql +22 -0
- package/prisma/schema.prisma +631 -146
- package/dist/sandbox/generated/zod-to-json-schema.bundle.js +0 -5
package/dist/cli.js
CHANGED
|
@@ -2,12 +2,14 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Minimal CLI.
|
|
4
4
|
*
|
|
5
|
-
* wardby agent create --name <n> --model <m> --prompt <p> --budget <usd> [--schedule "<cron>"] [--timezone <tz>] [--memory-enabled] [--effort <level>]
|
|
5
|
+
* wardby agent create --name <n> --model <m> --prompt <p> --budget <usd> [--schedule "<cron>"] [--timezone <tz>] [--memory-enabled] [--effort <level>] [--native-execution-mode control-plane|sandbox]
|
|
6
6
|
* wardby agent list
|
|
7
|
+
* wardby agent mode <name> control-plane|sandbox
|
|
7
8
|
* wardby agent schedule <name> --cron "<expr>" [--timezone <tz>] [--disable]
|
|
8
9
|
* wardby run <name>
|
|
9
10
|
* wardby runs [--agent <name>] [--limit N] [--status <s>]
|
|
10
11
|
* wardby scheduler [--scope default]
|
|
12
|
+
* wardby native-gateway (the native sandbox gateway only; NATIVE_GATEWAY_LISTEN)
|
|
11
13
|
* wardby mcp (MCP_TRANSPORT=stdio|http selects the transport; authoring/
|
|
12
14
|
* control is MCP-first from here — this floor keeps working
|
|
13
15
|
* before/without an MCP client)
|
|
@@ -28,26 +30,40 @@ import { describePreflightFailure, kubernetesPreflight, preflightCanaryImage, }
|
|
|
28
30
|
import { RoutingLlmProvider, isLlmEffort, modelSupportedEfforts, resolveLlmRegistrations, } from "./providers/llm/index.js";
|
|
29
31
|
import { startModelCatalog } from "./providers/llm/catalog-store.js";
|
|
30
32
|
import { buildConfiguredExecutor, buildExecutor } from "./providers/executor/index.js";
|
|
33
|
+
import { DeferredExecutor, drainDeferredRuns } from "./providers/executor/deferred.js";
|
|
34
|
+
import { resolveDeferredCodingRun } from "./core/deferred-coding.js";
|
|
35
|
+
import { parseGatewayListen, startGatewayServer } from "./native-worker/http-server.js";
|
|
36
|
+
import { NATIVE_GATEWAY_DENY_PORT } from "./native-worker/docker-isolation.js";
|
|
37
|
+
import { startDenyPortListener } from "./providers/coding-proxy/deny-port.js";
|
|
38
|
+
import { buildNativeSandboxExecutor } from "./native-worker/composition.js";
|
|
31
39
|
import { PostgresDatastore } from "./providers/datastore/index.js";
|
|
32
40
|
import { PostgresAgentMemory } from "./providers/memory/index.js";
|
|
33
41
|
import { buildSecretCipher } from "./providers/secrets/index.js";
|
|
34
42
|
import { prisma } from "./core/db.js";
|
|
43
|
+
import { guardDatastore, guardAgentMemory } from "./core/secret-guarded-stores.js";
|
|
44
|
+
import { createDbSecretWriteGuard } from "./core/secret-guard.js";
|
|
35
45
|
import { runAgent } from "./core/runner.js";
|
|
36
46
|
import { cancelRunOnSignal } from "./core/run-heartbeat.js";
|
|
37
47
|
import { buildIssueTrackers } from "./providers/issue-tracker/index.js";
|
|
48
|
+
import { buildChatProviders } from "./providers/chat/index.js";
|
|
38
49
|
import { buildReviewHosts } from "./providers/review-host/index.js";
|
|
39
50
|
import { createRepoAccessGate } from "./core/repo-access.js";
|
|
40
51
|
import { validateCronExpression } from "./core/cron.js";
|
|
52
|
+
import { scheduleStartFields } from "./core/schedule-start.js";
|
|
41
53
|
import { assertAgentModelAvailable } from "./core/run-pricing.js";
|
|
54
|
+
import { markRunFailedFromExecutorError } from "./core/dispatch.js";
|
|
42
55
|
import { startScheduler } from "./core/scheduler.js";
|
|
43
56
|
import { startReconciler } from "./core/reconciler.js";
|
|
57
|
+
import { startNotifications } from "./core/notifications.js";
|
|
44
58
|
import { NativeEngine } from "./core/engine-native.js";
|
|
45
59
|
import { logger } from "./core/logger.js";
|
|
60
|
+
import { buildPower } from "./core/power-composition.js";
|
|
46
61
|
import { deriveJsonSchema } from "./sandbox/zod-params.js";
|
|
62
|
+
import { toolSubject, zod3ToolWarnings } from "./core/zod3-window.js";
|
|
47
63
|
import { findSameNamedAttachedTool, reservedToolNameReason, resolveToolRef } from "./core/tool-names.js";
|
|
48
64
|
import { ToolAttachedError, deleteToolGuarded, formatAttachedAgents, formatToolLine, hasToolChanges, prepareToolUpdate, updateToolGuarded, } from "./core/tool-admin.js";
|
|
49
65
|
import { ToolCapabilitiesPatchSchema } from "./sandbox/tool-capabilities.js";
|
|
50
|
-
import { startMcp } from "./mcp/index.js";
|
|
66
|
+
import { startMcp, warmUpExecutor } from "./mcp/index.js";
|
|
51
67
|
import { startServe } from "./serve.js";
|
|
52
68
|
import { authCommand } from "./mcp/auth/self-hosted/cli.js";
|
|
53
69
|
import { hostAccountCommand } from "./mcp/auth/host-account-cli.js";
|
|
@@ -56,6 +72,7 @@ import { everyoneGrantData } from "./core/grants.js";
|
|
|
56
72
|
import { parseImportArgs } from "./import/cli-args.js";
|
|
57
73
|
import { runImport } from "./import/index.js";
|
|
58
74
|
import { CLI_USAGE } from "./cli-help.js";
|
|
75
|
+
import { parseCliNativeExecutionMode } from "./cli-native-mode.js";
|
|
59
76
|
import { helpCommand } from "./help/cli.js";
|
|
60
77
|
const cliLog = logger.child({ module: "cli" });
|
|
61
78
|
const RUN_STATUSES = [
|
|
@@ -92,10 +109,10 @@ function buildDatastore(cipher) {
|
|
|
92
109
|
if (config.datastore !== "postgres") {
|
|
93
110
|
fail(`DATASTORE "${String(config.datastore)}" has no adapter yet (only "postgres").`);
|
|
94
111
|
}
|
|
95
|
-
return new PostgresDatastore(prisma, cipher);
|
|
112
|
+
return guardDatastore(new PostgresDatastore(prisma, cipher), createDbSecretWriteGuard(prisma, cipher));
|
|
96
113
|
}
|
|
97
|
-
function buildMemory() {
|
|
98
|
-
return new PostgresAgentMemory(prisma);
|
|
114
|
+
function buildMemory(cipher) {
|
|
115
|
+
return guardAgentMemory(new PostgresAgentMemory(prisma), createDbSecretWriteGuard(prisma, cipher));
|
|
99
116
|
}
|
|
100
117
|
function buildSecrets() {
|
|
101
118
|
const config = loadProviderConfig();
|
|
@@ -121,6 +138,7 @@ async function agentCreate(args) {
|
|
|
121
138
|
effort: { type: "string" },
|
|
122
139
|
owner: { type: "string" },
|
|
123
140
|
public: { type: "boolean" },
|
|
141
|
+
"native-execution-mode": { type: "string" },
|
|
124
142
|
},
|
|
125
143
|
});
|
|
126
144
|
if (!values.name || !values.model || !values.prompt || !values.budget) {
|
|
@@ -134,6 +152,15 @@ async function agentCreate(args) {
|
|
|
134
152
|
if (!Number.isInteger(maxTurns) || maxTurns <= 0) {
|
|
135
153
|
fail(`--max-turns must be a positive integer, got "${values["max-turns"]}".`);
|
|
136
154
|
}
|
|
155
|
+
let nativeExecutionMode;
|
|
156
|
+
if (values["native-execution-mode"] !== undefined) {
|
|
157
|
+
try {
|
|
158
|
+
nativeExecutionMode = parseCliNativeExecutionMode(values["native-execution-mode"]);
|
|
159
|
+
}
|
|
160
|
+
catch (err) {
|
|
161
|
+
fail(err instanceof Error ? err.message : String(err));
|
|
162
|
+
}
|
|
163
|
+
}
|
|
137
164
|
const timezone = values.timezone ?? "UTC";
|
|
138
165
|
if (values.schedule) {
|
|
139
166
|
try {
|
|
@@ -188,6 +215,7 @@ async function agentCreate(args) {
|
|
|
188
215
|
maxTurns,
|
|
189
216
|
memoryEnabled: values["memory-enabled"] ?? false,
|
|
190
217
|
effort: values.effort ?? null,
|
|
218
|
+
...(nativeExecutionMode ? { nativeExecutionMode } : {}),
|
|
191
219
|
ownerId: ownerId,
|
|
192
220
|
},
|
|
193
221
|
});
|
|
@@ -251,6 +279,8 @@ async function toolCreate(args) {
|
|
|
251
279
|
code: code,
|
|
252
280
|
},
|
|
253
281
|
});
|
|
282
|
+
for (const warning of await zod3ToolWarnings(toolSubject(tool.name), paramsZod))
|
|
283
|
+
console.error(`warning: ${warning}`);
|
|
254
284
|
console.log(tool.id);
|
|
255
285
|
}
|
|
256
286
|
async function toolAttach(args, detach) {
|
|
@@ -500,12 +530,36 @@ async function agentSchedule(args) {
|
|
|
500
530
|
catch (err) {
|
|
501
531
|
fail(`invalid --cron/--timezone: ${err instanceof Error ? err.message : String(err)}`);
|
|
502
532
|
}
|
|
533
|
+
const next = { schedule, timezone, scheduleEnabled: true };
|
|
503
534
|
await prisma.agent.update({
|
|
504
535
|
where: { name: name },
|
|
505
|
-
data: {
|
|
536
|
+
data: { ...next, ...(await scheduleStartFields(prisma, agent, next)) },
|
|
506
537
|
});
|
|
507
538
|
console.log(`schedule set for "${name}": "${schedule}" (${timezone}).`);
|
|
508
539
|
}
|
|
540
|
+
/** Where a native agent's later runs execute; runs already created keep their mode. */
|
|
541
|
+
async function agentMode(args) {
|
|
542
|
+
const [name, value, ...extra] = args;
|
|
543
|
+
if (!name || !value || extra.length > 0) {
|
|
544
|
+
fail("agent mode requires an agent name and a mode: wardby agent mode <name> control-plane|sandbox");
|
|
545
|
+
}
|
|
546
|
+
let nativeExecutionMode;
|
|
547
|
+
try {
|
|
548
|
+
nativeExecutionMode = parseCliNativeExecutionMode(value);
|
|
549
|
+
}
|
|
550
|
+
catch (err) {
|
|
551
|
+
fail(err instanceof Error ? err.message : String(err));
|
|
552
|
+
}
|
|
553
|
+
const agent = await prisma.agent.findUnique({ where: { name } });
|
|
554
|
+
if (!agent) {
|
|
555
|
+
fail(`unknown agent "${name}".`);
|
|
556
|
+
}
|
|
557
|
+
if (agent.kind !== "native") {
|
|
558
|
+
fail(`"${name}" is a coding agent; the native execution mode only applies to native agents.`);
|
|
559
|
+
}
|
|
560
|
+
await prisma.agent.update({ where: { id: agent.id }, data: { nativeExecutionMode } });
|
|
561
|
+
console.log(`native execution mode for "${name}": ${value}.`);
|
|
562
|
+
}
|
|
509
563
|
async function agentList() {
|
|
510
564
|
const agents = await prisma.agent.findMany({ orderBy: { name: "asc" } });
|
|
511
565
|
if (agents.length === 0) {
|
|
@@ -517,7 +571,8 @@ async function agentList() {
|
|
|
517
571
|
? `${agent.scheduleEnabled ? "enabled" : "disabled"}: ${agent.schedule} (${agent.timezone})`
|
|
518
572
|
: "manual";
|
|
519
573
|
console.log(`${agent.name} ${agent.kind.padEnd(6)} ${agent.model} ` +
|
|
520
|
-
`$${Number(agent.budgetUsd).toFixed(4)} ${agent.maxTurns} turns memory ${agent.memoryEnabled ? "on" : "off"} ${schedule}`
|
|
574
|
+
`$${Number(agent.budgetUsd).toFixed(4)} ${agent.maxTurns} turns memory ${agent.memoryEnabled ? "on" : "off"} ${schedule}` +
|
|
575
|
+
(agent.kind === "native" && agent.nativeExecutionMode === "sandbox" ? " sandbox" : ""));
|
|
521
576
|
}
|
|
522
577
|
}
|
|
523
578
|
async function run(name) {
|
|
@@ -541,7 +596,7 @@ async function run(name) {
|
|
|
541
596
|
const engine = buildEngine();
|
|
542
597
|
const secrets = buildSecrets();
|
|
543
598
|
const datastore = buildDatastore(secrets);
|
|
544
|
-
const memory = buildMemory();
|
|
599
|
+
const memory = buildMemory(secrets);
|
|
545
600
|
let run;
|
|
546
601
|
// Ctrl-C (or a SIGTERM) records the run as cancelled rather than leaving a
|
|
547
602
|
// `running` row behind.
|
|
@@ -710,14 +765,46 @@ async function scheduler(args) {
|
|
|
710
765
|
const engine = buildEngine();
|
|
711
766
|
const secrets = buildSecrets();
|
|
712
767
|
const datastore = buildDatastore(secrets);
|
|
713
|
-
const memory = buildMemory();
|
|
768
|
+
const memory = buildMemory(secrets);
|
|
714
769
|
const reviewHosts = buildReviewHosts(process.env, prisma);
|
|
715
770
|
const issueTrackers = buildIssueTrackers();
|
|
771
|
+
const chat = buildChatProviders();
|
|
716
772
|
// One repository-access gate (and cache) for native repo_* calls and coding runs.
|
|
717
773
|
const repoAccess = createRepoAccessGate({ db: prisma, hosts: reviewHosts });
|
|
718
|
-
|
|
719
|
-
|
|
774
|
+
// Patched with the composed executor below, as startMcp does: native runs read
|
|
775
|
+
// `providers.executor` at call time, so their delegate_to_* calls can dispatch coding and
|
|
776
|
+
// sandbox-mode sub-agents through the same RoutingExecutor.
|
|
777
|
+
const nativeProviders = {
|
|
778
|
+
llm,
|
|
779
|
+
engine,
|
|
780
|
+
datastore,
|
|
781
|
+
secrets,
|
|
782
|
+
memory,
|
|
783
|
+
reviewHosts,
|
|
784
|
+
issueTrackers,
|
|
785
|
+
repoAccess,
|
|
786
|
+
};
|
|
787
|
+
const nativeExecutor = buildExecutor(config, nativeProviders, prisma);
|
|
788
|
+
const power = buildPower({ env: process.env, db: prisma });
|
|
789
|
+
if (power.enabled) {
|
|
790
|
+
void power.checkAccess().then((missing) => {
|
|
791
|
+
if (missing.length)
|
|
792
|
+
cliLog.warn(`low_power_scale_forbidden: missing ${missing.join(", ")}`);
|
|
793
|
+
}, (err) => cliLog.warn({ err }, "low_power_access_check_failed"));
|
|
794
|
+
}
|
|
795
|
+
const executor = buildConfiguredExecutor({
|
|
796
|
+
native: nativeExecutor,
|
|
797
|
+
db: prisma,
|
|
798
|
+
providerConfig: config,
|
|
799
|
+
repoAccess,
|
|
800
|
+
power,
|
|
801
|
+
secretCipher: nativeProviders.secrets,
|
|
802
|
+
// Sandbox-mode native runs (docs/native-sandbox.md); undefined when NATIVE_SANDBOX_LAUNCHER is unset.
|
|
803
|
+
nativeSandbox: buildNativeSandboxExecutor({ db: prisma, providers: nativeProviders, power }),
|
|
804
|
+
});
|
|
805
|
+
nativeProviders.executor = executor;
|
|
720
806
|
await executor.launch?.();
|
|
807
|
+
warmUpExecutor(executor);
|
|
721
808
|
const reconciler = startReconciler({
|
|
722
809
|
db: prisma,
|
|
723
810
|
executor,
|
|
@@ -725,6 +812,7 @@ async function scheduler(args) {
|
|
|
725
812
|
issueTrackers,
|
|
726
813
|
deferredReviews: { db: prisma, executor, hosts: reviewHosts, repoAccess, issueTrackers },
|
|
727
814
|
});
|
|
815
|
+
const notifications = await startNotifications({ db: prisma, chat });
|
|
728
816
|
const selfDefects = { db: prisma, issueTrackers };
|
|
729
817
|
const sched = startScheduler({
|
|
730
818
|
executor,
|
|
@@ -733,6 +821,14 @@ async function scheduler(args) {
|
|
|
733
821
|
selfDefects,
|
|
734
822
|
onLeaderTick: async () => {
|
|
735
823
|
await drainCodingQueue({ db: prisma, executor, ...concurrency, selfDefects });
|
|
824
|
+
// Runs the native sandbox gateway dispatched (or asked to stop): it holds no executor of its own.
|
|
825
|
+
await drainDeferredRuns({
|
|
826
|
+
db: prisma,
|
|
827
|
+
executor,
|
|
828
|
+
beforeStart: (runId) => resolveDeferredCodingRun({ db: prisma, executor, runId }),
|
|
829
|
+
onStartFailed: (runId, err) => markRunFailedFromExecutorError(prisma, runId, err, selfDefects),
|
|
830
|
+
});
|
|
831
|
+
await power.sleepIfIdle().catch((err) => cliLog.warn({ err }, "power_sleep_failed"));
|
|
736
832
|
},
|
|
737
833
|
});
|
|
738
834
|
console.log(`wardby scheduler started (scope "${scope}"). Press Ctrl+C to stop.`);
|
|
@@ -741,6 +837,7 @@ async function scheduler(args) {
|
|
|
741
837
|
console.log("\nwardby scheduler shutting down...");
|
|
742
838
|
sched.stop();
|
|
743
839
|
reconciler.stop();
|
|
840
|
+
notifications.stop();
|
|
744
841
|
void Promise.resolve(executor.close?.())
|
|
745
842
|
.catch((err) => cliLog.warn({ err }, "executor close failed during scheduler shutdown"))
|
|
746
843
|
.finally(() => {
|
|
@@ -752,6 +849,53 @@ async function scheduler(args) {
|
|
|
752
849
|
process.once("SIGTERM", shutdown);
|
|
753
850
|
});
|
|
754
851
|
}
|
|
852
|
+
/**
|
|
853
|
+
* The native sandbox gateway on its own (docs/native-sandbox.md): only the internal listener
|
|
854
|
+
* sandbox workers call, on NATIVE_GATEWAY_LISTEN (default 0.0.0.0:8790). It never starts or
|
|
855
|
+
* stops a run itself — workers can reach it, so it holds no Docker socket or cluster
|
|
856
|
+
* credential: a delegation it makes is started by the scheduler leader (DeferredExecutor).
|
|
857
|
+
* It needs the server's database and LLM/integration settings, nothing more.
|
|
858
|
+
*/
|
|
859
|
+
async function nativeGateway() {
|
|
860
|
+
const listen = parseGatewayListen(process.env.NATIVE_GATEWAY_LISTEN) ?? { host: "0.0.0.0", port: 8790 };
|
|
861
|
+
let modelCatalog;
|
|
862
|
+
try {
|
|
863
|
+
modelCatalog = await startModelCatalog(prisma);
|
|
864
|
+
}
|
|
865
|
+
catch (err) {
|
|
866
|
+
fail(err instanceof Error ? err.message : String(err));
|
|
867
|
+
}
|
|
868
|
+
const secrets = buildSecrets();
|
|
869
|
+
const reviewHosts = buildReviewHosts(process.env, prisma);
|
|
870
|
+
const providers = {
|
|
871
|
+
llm: buildLlmProvider(),
|
|
872
|
+
engine: buildEngine(),
|
|
873
|
+
datastore: buildDatastore(secrets),
|
|
874
|
+
secrets,
|
|
875
|
+
memory: buildMemory(secrets),
|
|
876
|
+
reviewHosts,
|
|
877
|
+
issueTrackers: buildIssueTrackers(),
|
|
878
|
+
repoAccess: createRepoAccessGate({ db: prisma, hosts: reviewHosts }),
|
|
879
|
+
executor: new DeferredExecutor(prisma),
|
|
880
|
+
};
|
|
881
|
+
const server = await startGatewayServer(listen, { db: prisma, providers });
|
|
882
|
+
// The deny port (NATIVE_GATEWAY_DENY_PORT, default 8791) serves nothing: a worker that can reach the
|
|
883
|
+
// gateway port but not this one proves its NetworkPolicy is programmed and port-scoped.
|
|
884
|
+
const denyPort = Number(process.env.NATIVE_GATEWAY_DENY_PORT ?? NATIVE_GATEWAY_DENY_PORT);
|
|
885
|
+
const deny = await startDenyPortListener(listen.host, denyPort);
|
|
886
|
+
console.error(`wardby native-gateway listening on ${listen.host}:${listen.port}. Press Ctrl+C to stop.`);
|
|
887
|
+
await new Promise((resolve) => {
|
|
888
|
+
const shutdown = () => {
|
|
889
|
+
server.close(() => {
|
|
890
|
+
modelCatalog.close();
|
|
891
|
+
void deny.close().finally(resolve);
|
|
892
|
+
});
|
|
893
|
+
server.closeIdleConnections();
|
|
894
|
+
};
|
|
895
|
+
process.once("SIGINT", shutdown);
|
|
896
|
+
process.once("SIGTERM", shutdown);
|
|
897
|
+
});
|
|
898
|
+
}
|
|
755
899
|
async function mcp() {
|
|
756
900
|
const handle = await startMcp();
|
|
757
901
|
// startMcp() resolves once the transport is up (bound/listening), not
|
|
@@ -843,6 +987,9 @@ async function main() {
|
|
|
843
987
|
else if (command === "agent" && rest[0] === "schedule") {
|
|
844
988
|
await agentSchedule(rest.slice(1));
|
|
845
989
|
}
|
|
990
|
+
else if (command === "agent" && rest[0] === "mode") {
|
|
991
|
+
await agentMode(rest.slice(1));
|
|
992
|
+
}
|
|
846
993
|
else if (command === "tool" && rest[0] === "create") {
|
|
847
994
|
await toolCreate(rest.slice(1));
|
|
848
995
|
}
|
|
@@ -873,6 +1020,9 @@ async function main() {
|
|
|
873
1020
|
else if (command === "scheduler") {
|
|
874
1021
|
await scheduler(rest);
|
|
875
1022
|
}
|
|
1023
|
+
else if (command === "native-gateway") {
|
|
1024
|
+
await nativeGateway();
|
|
1025
|
+
}
|
|
876
1026
|
else if (command === "mcp") {
|
|
877
1027
|
await mcp();
|
|
878
1028
|
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { type ClaudeContextFile } from "./protocol.js";
|
|
2
|
+
export interface ClaudeContextSkip {
|
|
3
|
+
path: string;
|
|
4
|
+
reason: "symlink" | "not_file" | "too_large" | "not_utf8" | "limit" | "outside_repo" | "not_allowed";
|
|
5
|
+
}
|
|
6
|
+
export interface ClaudeContext {
|
|
7
|
+
files: ClaudeContextFile[];
|
|
8
|
+
/** Files left out and why, at most `MAX_RECORDED_SKIPS` entries. */
|
|
9
|
+
skipped: ClaudeContextSkip[];
|
|
10
|
+
/**
|
|
11
|
+
* How many further files were left out without an entry in `skipped`: skips
|
|
12
|
+
* beyond `MAX_RECORDED_SKIPS`, plus `@imports` beyond `MAX_IMPORTS_PER_FILE`
|
|
13
|
+
* in a single file, which are not followed at all, plus 1 when `.claude/skills` has more than
|
|
14
|
+
* `MAX_SKILL_ENTRIES` entries. 0 when nothing overflowed.
|
|
15
|
+
*/
|
|
16
|
+
skippedOverflow: number;
|
|
17
|
+
}
|
|
18
|
+
/** Content of the `CLAUDE.md` synthesized for a repository that only has `AGENTS.md`. */
|
|
19
|
+
export declare const AGENTS_BRIDGE = "@AGENTS.md\n";
|
|
20
|
+
/** At most this many `skipped` entries are recorded; the rest are only counted in `skippedOverflow`. */
|
|
21
|
+
export declare const MAX_RECORDED_SKIPS = 50;
|
|
22
|
+
/** Only the first this-many distinct `@imports` of each file are followed; the rest are counted in `skippedOverflow`. */
|
|
23
|
+
export declare const MAX_IMPORTS_PER_FILE = 100;
|
|
24
|
+
/**
|
|
25
|
+
* At most this many `.claude/skills` entries are considered (matching the Codex worker's scan cap);
|
|
26
|
+
* if there are more, the rest are neither read nor counted beyond adding one to `skippedOverflow`.
|
|
27
|
+
*/
|
|
28
|
+
export declare const MAX_SKILL_ENTRIES = 2000;
|
|
29
|
+
/**
|
|
30
|
+
* Returns the `@path` imports in a Markdown instruction file, in order and
|
|
31
|
+
* de-duplicated. Imports inside fenced code blocks and inline code spans are
|
|
32
|
+
* ignored, as is an `@` not preceded by whitespace (an e-mail address). Runs
|
|
33
|
+
* in time linear in the input, whatever the repository puts in it.
|
|
34
|
+
*/
|
|
35
|
+
export declare function importsOf(markdown: string): string[];
|
|
36
|
+
/**
|
|
37
|
+
* Builds the Claude Code context for the checkout at `workspace`. Files are
|
|
38
|
+
* ordered roots first, then imports breadth-first, then skills by directory
|
|
39
|
+
* name. A file reached more than once is read once. Once the next file would
|
|
40
|
+
* exceed the file-count or total-size limit, it and every later candidate are
|
|
41
|
+
* reported as `limit` without being read.
|
|
42
|
+
*/
|
|
43
|
+
export declare function buildClaudeContext(workspace: string, options: {
|
|
44
|
+
skills: boolean;
|
|
45
|
+
}): Promise<ClaudeContext>;
|