@wardby/cli 0.2.1 → 0.3.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 +34 -4
- package/README.md +41 -4
- package/dist/claude-coding-worker/driver.d.ts +6 -1
- package/dist/claude-coding-worker/driver.js +27 -1
- package/dist/claude-coding-worker/main.js +2 -0
- package/dist/claude-coding-worker/tool-socket.d.ts +9 -0
- package/dist/claude-coding-worker/tool-socket.js +26 -0
- package/dist/cli-help.d.ts +1 -1
- package/dist/cli-help.js +13 -4
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +219 -29
- package/dist/coding/collect-exclude.d.ts +25 -0
- package/dist/coding/collect-exclude.js +76 -0
- package/dist/coding/profile.d.ts +67 -22
- package/dist/coding/profile.js +58 -25
- package/dist/coding/protected-path-wording.d.ts +24 -0
- package/dist/coding/protected-path-wording.js +55 -0
- package/dist/coding/protected-paths.d.ts +31 -0
- package/dist/coding/protected-paths.js +48 -0
- package/dist/coding/protocol.d.ts +75 -4
- package/dist/coding/protocol.js +107 -7
- package/dist/coding/registry/adapters.d.ts +2 -0
- package/dist/coding/registry/adapters.js +9 -0
- package/dist/coding/registry/allowlist.d.ts +9 -0
- package/dist/coding/registry/allowlist.js +28 -0
- package/dist/coding/registry/json-scan.d.ts +55 -0
- package/dist/coding/registry/json-scan.js +191 -0
- package/dist/coding/registry/lockfiles.d.ts +6 -0
- package/dist/coding/registry/lockfiles.js +89 -0
- package/dist/coding/registry/npm-lockfile.d.ts +9 -0
- package/dist/coding/registry/npm-lockfile.js +73 -0
- package/dist/coding/registry/npm-plan.d.ts +29 -0
- package/dist/coding/registry/npm-plan.js +289 -0
- package/dist/coding/registry/npm.d.ts +7 -0
- package/dist/coding/registry/npm.js +252 -0
- package/dist/coding/registry/pypi.d.ts +4 -0
- package/dist/coding/registry/pypi.js +210 -0
- package/dist/coding/registry/report.d.ts +37 -0
- package/dist/coding/registry/report.js +31 -0
- package/dist/coding/registry/token.d.ts +4 -0
- package/dist/coding/registry/token.js +7 -0
- package/dist/coding/registry/types.d.ts +286 -0
- package/dist/coding/registry/types.js +19 -0
- package/dist/coding/registry/worker-config.d.ts +14 -0
- package/dist/coding/registry/worker-config.js +31 -0
- package/dist/coding/services/builtins.d.ts +22 -0
- package/dist/coding/services/builtins.js +85 -0
- package/dist/coding/services/catalog.d.ts +443 -0
- package/dist/coding/services/catalog.js +159 -0
- package/dist/coding/services/declaration.d.ts +11 -0
- package/dist/coding/services/declaration.js +114 -0
- package/dist/coding/services/note.d.ts +8 -0
- package/dist/coding/services/note.js +15 -0
- package/dist/coding/services/resolve.d.ts +25 -0
- package/dist/coding/services/resolve.js +50 -0
- package/dist/coding/services/wording.d.ts +25 -0
- package/dist/coding/services/wording.js +70 -0
- package/dist/coding-proxy/main.js +24 -4
- package/dist/coding-worker/artifact.d.ts +6 -0
- package/dist/coding-worker/debug-trace.d.ts +37 -0
- package/dist/coding-worker/debug-trace.js +117 -0
- package/dist/coding-worker/driver.d.ts +13 -1
- package/dist/coding-worker/driver.js +102 -13
- package/dist/coding-worker/errors.js +8 -0
- package/dist/coding-worker/main.js +10 -2
- package/dist/coding-worker/sdk.d.ts +2 -2
- package/dist/coding-worker/sdk.js +7 -2
- package/dist/coding-worker/types.d.ts +3 -0
- package/dist/config/providers.d.ts +41 -0
- package/dist/config/providers.js +66 -0
- package/dist/core/budget-groups.d.ts +108 -5
- package/dist/core/budget-groups.js +125 -19
- package/dist/core/budget-wording.d.ts +22 -0
- package/dist/core/budget-wording.js +55 -0
- package/dist/core/datastores.js +18 -2
- package/dist/core/db.d.ts +5 -1
- package/dist/core/db.js +8 -2
- package/dist/core/dispatch.d.ts +33 -6
- package/dist/core/dispatch.js +260 -43
- package/dist/core/engine-native.js +27 -10
- package/dist/core/grants.d.ts +86 -0
- package/dist/core/grants.js +126 -0
- package/dist/core/host-events.d.ts +49 -0
- package/dist/core/host-events.js +257 -0
- package/dist/core/host-identity-links.d.ts +54 -0
- package/dist/core/host-identity-links.js +189 -0
- package/dist/core/host-status.d.ts +61 -0
- package/dist/core/host-status.js +211 -0
- package/dist/core/in-flight-runs.d.ts +8 -0
- package/dist/core/in-flight-runs.js +56 -0
- package/dist/core/provider-wording.d.ts +12 -0
- package/dist/core/provider-wording.js +44 -0
- package/dist/core/reconciler.d.ts +38 -2
- package/dist/core/reconciler.js +86 -2
- package/dist/core/repo-access.d.ts +99 -0
- package/dist/core/repo-access.js +136 -0
- package/dist/core/review-host-checks.d.ts +11 -0
- package/dist/core/review-host-checks.js +41 -0
- package/dist/core/review-host-tools.d.ts +47 -0
- package/dist/core/review-host-tools.js +347 -0
- package/dist/core/run-heartbeat.d.ts +27 -0
- package/dist/core/run-heartbeat.js +54 -0
- package/dist/core/runner.d.ts +30 -8
- package/dist/core/runner.js +237 -40
- package/dist/core/secrets.d.ts +11 -2
- package/dist/core/secrets.js +25 -6
- package/dist/core/subagent-memory-tools.d.ts +1 -1
- package/dist/core/subagent-memory-tools.js +16 -3
- package/dist/core/tool-admin.d.ts +81 -0
- package/dist/core/tool-admin.js +129 -0
- package/dist/core/tool-names.d.ts +42 -0
- package/dist/core/tool-names.js +64 -0
- package/dist/core/untrusted-content.d.ts +32 -0
- package/dist/core/untrusted-content.js +72 -0
- package/dist/core/webhooks.d.ts +8 -1
- package/dist/core/webhooks.js +23 -2
- package/dist/generated/prisma/browser.d.ts +100 -0
- package/dist/generated/prisma/client.d.ts +100 -0
- package/dist/generated/prisma/commonInputTypes.d.ts +30 -0
- package/dist/generated/prisma/enums.d.ts +6 -0
- package/dist/generated/prisma/enums.js +6 -1
- package/dist/generated/prisma/internal/class.d.ts +143 -0
- package/dist/generated/prisma/internal/class.js +4 -4
- package/dist/generated/prisma/internal/prismaNamespace.d.ts +1746 -577
- package/dist/generated/prisma/internal/prismaNamespace.js +179 -6
- package/dist/generated/prisma/internal/prismaNamespaceBrowser.d.ts +186 -0
- package/dist/generated/prisma/internal/prismaNamespaceBrowser.js +179 -6
- package/dist/generated/prisma/models/Agent.d.ts +294 -1
- package/dist/generated/prisma/models/AgentRepository.d.ts +1425 -0
- package/dist/generated/prisma/models/AgentRepository.js +1 -0
- package/dist/generated/prisma/models/AgentTool.d.ts +95 -1
- package/dist/generated/prisma/models/AuthUser.d.ts +56 -1
- package/dist/generated/prisma/models/CodingAgentProfile.d.ts +258 -7
- package/dist/generated/prisma/models/CodingProxySession.d.ts +123 -2
- package/dist/generated/prisma/models/CodingRun.d.ts +1276 -95
- package/dist/generated/prisma/models/CodingService.d.ts +1348 -0
- package/dist/generated/prisma/models/CodingService.js +1 -0
- package/dist/generated/prisma/models/HostEventDelivery.d.ts +946 -0
- package/dist/generated/prisma/models/HostEventDelivery.js +1 -0
- package/dist/generated/prisma/models/HostIdentity.d.ts +1232 -0
- package/dist/generated/prisma/models/HostIdentity.js +1 -0
- package/dist/generated/prisma/models/HostIdentityLinkRequest.d.ts +1473 -0
- package/dist/generated/prisma/models/HostIdentityLinkRequest.js +1 -0
- package/dist/generated/prisma/models/Principal.d.ts +455 -0
- package/dist/generated/prisma/models/RegistryAllowance.d.ts +1148 -0
- package/dist/generated/prisma/models/RegistryAllowance.js +1 -0
- package/dist/generated/prisma/models/RegistryApprovedVersion.d.ts +1219 -0
- package/dist/generated/prisma/models/RegistryApprovedVersion.js +1 -0
- package/dist/generated/prisma/models/RegistryFetch.d.ts +1428 -0
- package/dist/generated/prisma/models/RegistryFetch.js +1 -0
- package/dist/generated/prisma/models/RegistryPlanRefusal.d.ts +1294 -0
- package/dist/generated/prisma/models/RegistryPlanRefusal.js +1 -0
- package/dist/generated/prisma/models/RegistryVersionFact.d.ts +1085 -0
- package/dist/generated/prisma/models/RegistryVersionFact.js +1 -0
- package/dist/generated/prisma/models/ResourceGrant.d.ts +1437 -0
- package/dist/generated/prisma/models/ResourceGrant.js +1 -0
- package/dist/generated/prisma/models/Run.d.ts +389 -1
- package/dist/generated/prisma/models/RunHostCheck.d.ts +1239 -0
- package/dist/generated/prisma/models/RunHostCheck.js +1 -0
- package/dist/generated/prisma/models/RunHostStatus.d.ts +1315 -0
- package/dist/generated/prisma/models/RunHostStatus.js +1 -0
- package/dist/generated/prisma/models/Tool.d.ts +15 -3
- package/dist/generated/prisma/models.d.ts +13 -0
- package/dist/help/build.d.ts +1 -0
- package/dist/help/build.js +9 -0
- package/dist/help/catalog.d.ts +24 -0
- package/dist/help/catalog.js +160 -0
- package/dist/help/cli.d.ts +2 -0
- package/dist/help/cli.js +65 -0
- package/dist/help/runtime.d.ts +3 -0
- package/dist/help/runtime.js +44 -0
- package/dist/help/search.d.ts +9 -0
- package/dist/help/search.js +104 -0
- package/dist/help-index.json +660 -0
- package/dist/import/cli-args.js +3 -2
- package/dist/import/create.d.ts +5 -0
- package/dist/import/create.js +67 -13
- package/dist/import/index.js +19 -9
- package/dist/import/neutral-schema.d.ts +11 -11
- package/dist/mcp/auth/access.d.ts +70 -0
- package/dist/mcp/auth/access.js +58 -0
- package/dist/mcp/auth/grants-cli.d.ts +149 -0
- package/dist/mcp/auth/grants-cli.js +518 -0
- package/dist/mcp/auth/host-account-cli.d.ts +2 -0
- package/dist/mcp/auth/host-account-cli.js +47 -0
- package/dist/mcp/auth/ownership.d.ts +26 -52
- package/dist/mcp/auth/ownership.js +19 -14
- package/dist/mcp/auth/repo-authorization.d.ts +22 -0
- package/dist/mcp/auth/repo-authorization.js +51 -0
- package/dist/mcp/auth/resource-server.d.ts +31 -2
- package/dist/mcp/auth/resource-server.js +84 -3
- package/dist/mcp/auth/self-hosted/browser.js +2 -2
- package/dist/mcp/auth/self-hosted/cli.js +47 -13
- package/dist/mcp/auth/self-hosted/credentials.d.ts +20 -2
- package/dist/mcp/auth/self-hosted/credentials.js +62 -4
- package/dist/mcp/auth/self-hosted/session.d.ts +2 -1
- package/dist/mcp/context.d.ts +27 -1
- package/dist/mcp/errors.d.ts +25 -6
- package/dist/mcp/errors.js +98 -0
- package/dist/mcp/host-events/github-ingress.d.ts +36 -0
- package/dist/mcp/host-events/github-ingress.js +92 -0
- package/dist/mcp/host-events/github-user-callback.d.ts +18 -0
- package/dist/mcp/host-events/github-user-callback.js +50 -0
- package/dist/mcp/index.d.ts +8 -1
- package/dist/mcp/index.js +106 -16
- package/dist/mcp/server.js +27 -9
- package/dist/mcp/tools/agents.js +446 -48
- package/dist/mcp/tools/budget-groups.js +3 -3
- package/dist/mcp/tools/datastore.js +22 -15
- package/dist/mcp/tools/grants.d.ts +2 -0
- package/dist/mcp/tools/grants.js +239 -0
- package/dist/mcp/tools/help.d.ts +5 -0
- package/dist/mcp/tools/help.js +67 -0
- package/dist/mcp/tools/host-accounts.d.ts +2 -0
- package/dist/mcp/tools/host-accounts.js +114 -0
- package/dist/mcp/tools/memory.d.ts +7 -1
- package/dist/mcp/tools/memory.js +5 -5
- package/dist/mcp/tools/repositories.d.ts +2 -0
- package/dist/mcp/tools/repositories.js +181 -0
- package/dist/mcp/tools/runs.d.ts +6 -0
- package/dist/mcp/tools/runs.js +60 -6
- package/dist/mcp/tools/scheduling.js +3 -6
- package/dist/mcp/tools/secrets.js +18 -6
- package/dist/mcp/tools/services.d.ts +2 -0
- package/dist/mcp/tools/services.js +222 -0
- package/dist/mcp/tools/subagents.js +52 -16
- package/dist/mcp/tools/tools.d.ts +41 -0
- package/dist/mcp/tools/tools.js +201 -40
- package/dist/mcp/tools/trigger.js +36 -6
- package/dist/mcp/tools/webhooks.js +15 -4
- package/dist/mcp/transport/streamable-http.d.ts +10 -0
- package/dist/mcp/transport/streamable-http.js +32 -2
- package/dist/providers/auth/delegating.d.ts +19 -0
- package/dist/providers/auth/delegating.js +71 -0
- package/dist/providers/auth/index.d.ts +2 -0
- package/dist/providers/auth/index.js +11 -0
- package/dist/providers/auth/self-hosted.d.ts +2 -1
- package/dist/providers/auth/self-hosted.js +16 -4
- package/dist/providers/auth/types.d.ts +6 -0
- package/dist/providers/coding-proxy/memory-ledger.d.ts +3 -0
- package/dist/providers/coding-proxy/memory-ledger.js +21 -2
- package/dist/providers/coding-proxy/metering.d.ts +4 -0
- package/dist/providers/coding-proxy/metering.js +28 -2
- package/dist/providers/coding-proxy/prisma-ledger.d.ts +17 -0
- package/dist/providers/coding-proxy/prisma-ledger.js +50 -5
- package/dist/providers/coding-proxy/proxy.d.ts +13 -0
- package/dist/providers/coding-proxy/proxy.js +479 -18
- package/dist/providers/coding-proxy/registry/audit.d.ts +131 -0
- package/dist/providers/coding-proxy/registry/audit.js +380 -0
- package/dist/providers/coding-proxy/registry/bounded-fetch.d.ts +16 -0
- package/dist/providers/coding-proxy/registry/bounded-fetch.js +77 -0
- package/dist/providers/coding-proxy/registry/plan.d.ts +58 -0
- package/dist/providers/coding-proxy/registry/plan.js +304 -0
- package/dist/providers/coding-proxy/registry/prisma-store.d.ts +34 -0
- package/dist/providers/coding-proxy/registry/prisma-store.js +151 -0
- package/dist/providers/coding-proxy/registry/service.d.ts +213 -0
- package/dist/providers/coding-proxy/registry/service.js +1137 -0
- package/dist/providers/coding-proxy/registry/store.d.ts +127 -0
- package/dist/providers/coding-proxy/registry/store.js +70 -0
- package/dist/providers/coding-proxy/runtime.d.ts +17 -0
- package/dist/providers/coding-proxy/runtime.js +63 -0
- package/dist/providers/coding-proxy/secure-fetch.js +0 -1
- package/dist/providers/coding-proxy/server.d.ts +11 -0
- package/dist/providers/coding-proxy/server.js +163 -0
- package/dist/providers/coding-proxy/types.d.ts +15 -0
- package/dist/providers/engine/types.d.ts +10 -0
- package/dist/providers/executor/build.d.ts +2 -2
- package/dist/providers/executor/composition.d.ts +3 -0
- package/dist/providers/executor/composition.js +19 -0
- package/dist/providers/executor/container.d.ts +105 -3
- package/dist/providers/executor/container.js +296 -20
- package/dist/providers/executor/dbos.d.ts +2 -3
- package/dist/providers/executor/in-process.d.ts +2 -3
- package/dist/providers/executor/routing.d.ts +7 -0
- package/dist/providers/executor/routing.js +13 -0
- package/dist/providers/executor/types.d.ts +22 -0
- package/dist/providers/jobs/claude-tool-setup.d.ts +23 -0
- package/dist/providers/jobs/claude-tool-setup.js +50 -0
- package/dist/providers/jobs/collect-prune.d.ts +7 -0
- package/dist/providers/jobs/collect-prune.js +27 -0
- package/dist/providers/jobs/docker-isolation.d.ts +48 -3
- package/dist/providers/jobs/docker-isolation.js +213 -22
- package/dist/providers/jobs/docker-services.d.ts +35 -0
- package/dist/providers/jobs/docker-services.js +191 -0
- package/dist/providers/jobs/docker.d.ts +49 -2
- package/dist/providers/jobs/docker.js +279 -32
- package/dist/providers/jobs/fake-kubernetes-api.d.ts +1 -0
- package/dist/providers/jobs/fake-kubernetes-api.js +12 -3
- package/dist/providers/jobs/kubernetes-isolation.d.ts +17 -2
- package/dist/providers/jobs/kubernetes-isolation.js +238 -57
- package/dist/providers/jobs/kubernetes-platform.d.ts +10 -4
- package/dist/providers/jobs/kubernetes-platform.js +11 -5
- package/dist/providers/jobs/kubernetes-preflight.js +3 -0
- package/dist/providers/jobs/kubernetes.d.ts +21 -2
- package/dist/providers/jobs/kubernetes.js +112 -21
- package/dist/providers/jobs/types.d.ts +18 -0
- package/dist/providers/llm/anthropic.js +6 -2
- package/dist/providers/llm/bedrock.js +2 -1
- package/dist/providers/llm/claude-messages.d.ts +5 -1
- package/dist/providers/llm/claude-messages.js +1 -0
- package/dist/providers/llm/claude-provider.d.ts +3 -1
- package/dist/providers/llm/claude-provider.js +5 -1
- package/dist/providers/llm/index.d.ts +1 -1
- package/dist/providers/llm/index.js +1 -1
- package/dist/providers/llm/pricing-anthropic.d.ts +10 -0
- package/dist/providers/llm/pricing-anthropic.js +32 -14
- package/dist/providers/llm/pricing-bedrock-claude.d.ts +8 -0
- package/dist/providers/llm/pricing-bedrock-claude.js +9 -0
- package/dist/providers/llm/routing.d.ts +10 -1
- package/dist/providers/llm/routing.js +18 -0
- package/dist/providers/llm/types.d.ts +12 -0
- package/dist/providers/llm/types.js +8 -1
- package/dist/providers/review-host/diff-lines.d.ts +16 -0
- package/dist/providers/review-host/diff-lines.js +59 -0
- package/dist/providers/review-host/github-events.d.ts +6 -0
- package/dist/providers/review-host/github-events.js +180 -0
- package/dist/providers/review-host/github-user-auth.d.ts +38 -0
- package/dist/providers/review-host/github-user-auth.js +128 -0
- package/dist/providers/review-host/github.d.ts +57 -0
- package/dist/providers/review-host/github.js +567 -0
- package/dist/providers/review-host/index.d.ts +12 -0
- package/dist/providers/review-host/index.js +30 -0
- package/dist/providers/review-host/review-format.d.ts +19 -0
- package/dist/providers/review-host/review-format.js +59 -0
- package/dist/providers/review-host/types.d.ts +284 -0
- package/dist/providers/review-host/types.js +24 -0
- package/dist/providers/vcs/git.d.ts +16 -6
- package/dist/providers/vcs/git.js +77 -13
- package/dist/providers/vcs/github.d.ts +74 -3
- package/dist/providers/vcs/github.js +195 -15
- package/dist/providers/vcs/types.d.ts +42 -4
- package/dist/quickstart/index.js +13 -2
- package/dist/sandbox/fetch-policy.d.ts +20 -2
- package/dist/sandbox/fetch-policy.js +64 -3
- package/dist/sandbox/host-functions.d.ts +9 -1
- package/dist/sandbox/host-functions.js +12 -5
- package/dist/serve.js +1 -1
- package/dist/wardby-bin.js +6 -0
- package/docs/README.md +30 -0
- package/docs/architecture-runtime.md +90 -0
- package/docs/assets/brand/wardby-icon-512.png +0 -0
- package/docs/assets/brand/wardby-icon.svg +16 -0
- package/docs/assets/brand/wardby-mascot-profile-512.png +0 -0
- package/docs/assets/brand/wardby-mascot.png +0 -0
- package/docs/assets/brand/wardby-mascot.svg +5 -0
- package/docs/assets/wardby-workflow.svg +106 -0
- package/docs/code-review-agents.md +481 -0
- package/docs/coding-agent-setup.md +172 -0
- package/docs/coding-packages.md +455 -0
- package/docs/coding-services.md +300 -0
- package/docs/coding-worker-byo-images.md +98 -0
- package/docs/coding-worker-isolation.md +1061 -0
- package/docs/getting-started-gke.md +615 -0
- package/docs/getting-started-identity-provider.md +308 -0
- package/docs/getting-started.md +133 -0
- package/docs/observability.md +53 -0
- package/docs/release-verification.md +66 -0
- package/docs/security-deployment.md +657 -0
- package/help/code-review-agents.md +31 -0
- package/help/coding-packages.md +31 -0
- package/help/coding-services.md +71 -0
- package/help/creating-agents.md +68 -0
- package/help/deploy-gke.md +39 -0
- package/help/deployment-targets.md +39 -0
- package/help/errors/budget-group-exhausted.md +25 -0
- package/help/errors/docker-isolation-unsupported.md +26 -0
- package/help/errors/protected-path.md +45 -0
- package/help/errors/repo-access.md +27 -0
- package/help/errors/service-declaration-invalid.md +27 -0
- package/help/errors/service-declaration-unavailable.md +25 -0
- package/help/errors/service-launcher-unsupported.md +30 -0
- package/help/errors/service-not-allowed.md +27 -0
- package/help/errors/service-unknown.md +23 -0
- package/help/errors/service-unready.md +49 -0
- package/help/getting-started.md +31 -0
- package/help/github.md +30 -0
- package/help/identity-and-access.md +39 -0
- package/help/mcp.md +30 -0
- package/help/native-capabilities.md +30 -0
- package/help/observability.md +41 -0
- package/help/operating-agents.md +30 -0
- package/help/security.md +27 -0
- package/help/troubleshooting/budgets.md +26 -0
- package/help/troubleshooting/coding-workers.md +47 -0
- package/help/troubleshooting/repository-access.md +27 -0
- package/package.json +12 -3
- package/prisma/migrations/20260925010000_coding_collect_exclude/migration.sql +8 -0
- package/prisma/migrations/20260925015000_allowed_egress_default/migration.sql +8 -0
- package/prisma/migrations/20260925020000_coding_package_registry/migration.sql +55 -0
- package/prisma/migrations/20260925030000_tool_name_per_owner/migration.sql +11 -0
- package/prisma/migrations/20260926010000_run_trigger_host_event/migration.sql +7 -0
- package/prisma/migrations/20260926020000_code_review_hosts/migration.sql +53 -0
- package/prisma/migrations/20260926030000_auth_user_roles/migration.sql +9 -0
- package/prisma/migrations/20260926040000_agent_effort/migration.sql +6 -0
- package/prisma/migrations/20260926050000_registry_lockfile_plan/migration.sql +32 -0
- package/prisma/migrations/20260926050000_repo_access_authorization/migration.sql +82 -0
- package/prisma/migrations/20260926060000_registry_plan_refusal/migration.sql +19 -0
- package/prisma/migrations/20260926100000_registry_plan_refusal_published_at/migration.sql +5 -0
- package/prisma/migrations/20260926190000_run_host_status/migration.sql +18 -0
- package/prisma/migrations/20260926210000_run_host_status_at_dispatch/migration.sql +5 -0
- package/prisma/migrations/20260927010000_resource_grants/migration.sql +72 -0
- package/prisma/migrations/20260927020000_proxy_session_budget_exhausted/migration.sql +3 -0
- package/prisma/migrations/20260927030000_coding_debug_trace/migration.sql +4 -0
- package/prisma/migrations/20260927040000_proxy_session_upstream_failure/migration.sql +3 -0
- package/prisma/migrations/20260927050000_coding_run_services/migration.sql +74 -0
- package/prisma/migrations/20260928000000_coding_run_tool_image/migration.sql +5 -0
- package/prisma/schema.prisma +407 -21
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
-- Repository access authorization (security findings H5-1/A3/C3-2, H5-2,
|
|
2
|
+
-- E-08/H5-4). A principal can give an agent authority over a repository only
|
|
3
|
+
-- through its own verified host identity's access, or an explicit, recorded
|
|
4
|
+
-- admin approval; the authorization is stamped on the row that grants it.
|
|
5
|
+
-- See docs/private/2026-09-26-repo-access-authorization-spec-and-plan.md §5.
|
|
6
|
+
|
|
7
|
+
-- CreateTable
|
|
8
|
+
CREATE TABLE "HostIdentity" (
|
|
9
|
+
"principalId" TEXT NOT NULL,
|
|
10
|
+
"provider" TEXT NOT NULL,
|
|
11
|
+
"hostUserId" TEXT NOT NULL,
|
|
12
|
+
"login" TEXT NOT NULL,
|
|
13
|
+
"linkedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
14
|
+
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
15
|
+
|
|
16
|
+
CONSTRAINT "HostIdentity_pkey" PRIMARY KEY ("principalId","provider")
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
-- CreateTable
|
|
20
|
+
CREATE TABLE "HostIdentityLinkRequest" (
|
|
21
|
+
"id" TEXT NOT NULL,
|
|
22
|
+
"principalId" TEXT NOT NULL,
|
|
23
|
+
"provider" TEXT NOT NULL,
|
|
24
|
+
"stateHash" TEXT NOT NULL,
|
|
25
|
+
"codeVerifier" TEXT NOT NULL,
|
|
26
|
+
"hostUserId" TEXT,
|
|
27
|
+
"login" TEXT,
|
|
28
|
+
"confirmHash" TEXT,
|
|
29
|
+
"attempts" INTEGER NOT NULL DEFAULT 0,
|
|
30
|
+
"callbackAt" TIMESTAMP(3),
|
|
31
|
+
"expiresAt" TIMESTAMP(3) NOT NULL,
|
|
32
|
+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
33
|
+
|
|
34
|
+
CONSTRAINT "HostIdentityLinkRequest_pkey" PRIMARY KEY ("id")
|
|
35
|
+
);
|
|
36
|
+
|
|
37
|
+
-- CreateIndex
|
|
38
|
+
CREATE UNIQUE INDEX "HostIdentity_provider_hostUserId_key" ON "HostIdentity"("provider", "hostUserId");
|
|
39
|
+
|
|
40
|
+
-- CreateIndex
|
|
41
|
+
CREATE UNIQUE INDEX "HostIdentityLinkRequest_stateHash_key" ON "HostIdentityLinkRequest"("stateHash");
|
|
42
|
+
|
|
43
|
+
-- CreateIndex
|
|
44
|
+
CREATE INDEX "HostIdentityLinkRequest_principalId_idx" ON "HostIdentityLinkRequest"("principalId");
|
|
45
|
+
|
|
46
|
+
-- CreateIndex
|
|
47
|
+
CREATE INDEX "HostIdentityLinkRequest_expiresAt_idx" ON "HostIdentityLinkRequest"("expiresAt");
|
|
48
|
+
|
|
49
|
+
-- AddForeignKey
|
|
50
|
+
ALTER TABLE "HostIdentity" ADD CONSTRAINT "HostIdentity_principalId_fkey" FOREIGN KEY ("principalId") REFERENCES "Principal"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
51
|
+
|
|
52
|
+
-- AddForeignKey
|
|
53
|
+
ALTER TABLE "HostIdentityLinkRequest" ADD CONSTRAINT "HostIdentityLinkRequest_principalId_fkey" FOREIGN KEY ("principalId") REFERENCES "Principal"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
54
|
+
|
|
55
|
+
-- AlterTable
|
|
56
|
+
ALTER TABLE "AgentRepository" ADD COLUMN "authorizedAt" TIMESTAMP(3),
|
|
57
|
+
ADD COLUMN "authorizedById" TEXT,
|
|
58
|
+
ADD COLUMN "authorizedVia" TEXT;
|
|
59
|
+
|
|
60
|
+
-- AlterTable
|
|
61
|
+
ALTER TABLE "CodingAgentProfile" ADD COLUMN "repositoryAuthorizedAt" TIMESTAMP(3),
|
|
62
|
+
ADD COLUMN "repositoryAuthorizedById" TEXT,
|
|
63
|
+
ADD COLUMN "repositoryAuthorizedVia" TEXT;
|
|
64
|
+
|
|
65
|
+
-- AlterTable
|
|
66
|
+
ALTER TABLE "RunHostCheck" ADD COLUMN "prNumber" INTEGER;
|
|
67
|
+
|
|
68
|
+
-- Backfill: every existing assignment is the operator's own and keeps
|
|
69
|
+
-- working ("grandfathered", not re-checked at use). New or changed
|
|
70
|
+
-- assignments go through the check.
|
|
71
|
+
UPDATE "AgentRepository" SET "authorizedVia" = 'grandfathered', "authorizedAt" = CURRENT_TIMESTAMP;
|
|
72
|
+
UPDATE "CodingAgentProfile" SET "repositoryAuthorizedVia" = 'grandfathered', "repositoryAuthorizedAt" = CURRENT_TIMESTAMP;
|
|
73
|
+
|
|
74
|
+
-- Deliberate: a check name is only meaningful with the pull_request trigger
|
|
75
|
+
-- (a check is only ever published for the PR a run was dispatched for), so
|
|
76
|
+
-- names on other links are cleared before the name becomes unique per
|
|
77
|
+
-- repository. Existing pull_request links were already unique by name.
|
|
78
|
+
UPDATE "AgentRepository" SET "checkName" = NULL
|
|
79
|
+
WHERE "triggers" IS NULL OR NOT ('pull_request' = ANY("triggers"));
|
|
80
|
+
|
|
81
|
+
-- CreateIndex
|
|
82
|
+
CREATE UNIQUE INDEX "AgentRepository_provider_repository_checkName_key" ON "AgentRepository"("provider", "repository", "checkName");
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
-- Additive: the exact versions a run's lockfile plan definitively refused,
|
|
2
|
+
-- so a download of one is answered from the plan (no graph walk). See
|
|
3
|
+
-- docs/coding-packages.md.
|
|
4
|
+
|
|
5
|
+
-- CreateTable
|
|
6
|
+
CREATE TABLE "RegistryPlanRefusal" (
|
|
7
|
+
"runId" TEXT NOT NULL,
|
|
8
|
+
"ecosystem" TEXT NOT NULL,
|
|
9
|
+
"name" TEXT NOT NULL,
|
|
10
|
+
"version" TEXT NOT NULL,
|
|
11
|
+
"code" TEXT NOT NULL,
|
|
12
|
+
"reason" TEXT NOT NULL,
|
|
13
|
+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
14
|
+
|
|
15
|
+
CONSTRAINT "RegistryPlanRefusal_pkey" PRIMARY KEY ("runId","ecosystem","name","version")
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
-- AddForeignKey
|
|
19
|
+
ALTER TABLE "RegistryPlanRefusal" ADD CONSTRAINT "RegistryPlanRefusal_runId_fkey" FOREIGN KEY ("runId") REFERENCES "CodingRun"("runId") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
-- The status comment posted for a mention-started run, edited with its outcome.
|
|
2
|
+
|
|
3
|
+
-- CreateTable
|
|
4
|
+
CREATE TABLE "RunHostStatus" (
|
|
5
|
+
"runId" TEXT NOT NULL,
|
|
6
|
+
"provider" TEXT NOT NULL,
|
|
7
|
+
"repository" TEXT NOT NULL,
|
|
8
|
+
"number" INTEGER NOT NULL,
|
|
9
|
+
"commentKind" TEXT NOT NULL,
|
|
10
|
+
"commentId" TEXT NOT NULL,
|
|
11
|
+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
12
|
+
"completedAt" TIMESTAMP(3),
|
|
13
|
+
|
|
14
|
+
CONSTRAINT "RunHostStatus_pkey" PRIMARY KEY ("runId")
|
|
15
|
+
);
|
|
16
|
+
|
|
17
|
+
-- AddForeignKey
|
|
18
|
+
ALTER TABLE "RunHostStatus" ADD CONSTRAINT "RunHostStatus_runId_fkey" FOREIGN KEY ("runId") REFERENCES "Run"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
-- Resource sharing grants (A2/S2-2, N1, R2-1, A6). Replaces "null owner =
|
|
2
|
+
-- public and mutable by anyone" with explicit grants. See
|
|
3
|
+
-- docs/private/2026-09-26-resource-sharing-grants-spec-and-plan.md.
|
|
4
|
+
-- Needs PostgreSQL 13+ for gen_random_uuid() (core since 13).
|
|
5
|
+
|
|
6
|
+
-- CreateTable
|
|
7
|
+
CREATE TABLE "ResourceGrant" (
|
|
8
|
+
"id" TEXT NOT NULL,
|
|
9
|
+
"resourceType" TEXT NOT NULL,
|
|
10
|
+
"resourceId" TEXT NOT NULL,
|
|
11
|
+
"granteeKind" TEXT NOT NULL,
|
|
12
|
+
"granteePrincipalId" TEXT,
|
|
13
|
+
"granteeKey" TEXT NOT NULL,
|
|
14
|
+
"level" TEXT NOT NULL,
|
|
15
|
+
"source" TEXT NOT NULL DEFAULT 'owner',
|
|
16
|
+
"grantedById" TEXT,
|
|
17
|
+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
18
|
+
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
19
|
+
|
|
20
|
+
CONSTRAINT "ResourceGrant_pkey" PRIMARY KEY ("id")
|
|
21
|
+
);
|
|
22
|
+
|
|
23
|
+
-- CreateIndex
|
|
24
|
+
CREATE UNIQUE INDEX "ResourceGrant_resourceType_resourceId_granteeKey_key" ON "ResourceGrant"("resourceType", "resourceId", "granteeKey");
|
|
25
|
+
|
|
26
|
+
-- CreateIndex
|
|
27
|
+
CREATE INDEX "ResourceGrant_granteeKey_resourceType_idx" ON "ResourceGrant"("granteeKey", "resourceType");
|
|
28
|
+
|
|
29
|
+
-- CreateIndex
|
|
30
|
+
CREATE INDEX "ResourceGrant_granteePrincipalId_idx" ON "ResourceGrant"("granteePrincipalId");
|
|
31
|
+
|
|
32
|
+
-- AddForeignKey
|
|
33
|
+
ALTER TABLE "ResourceGrant" ADD CONSTRAINT "ResourceGrant_granteePrincipalId_fkey" FOREIGN KEY ("granteePrincipalId") REFERENCES "Principal"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
34
|
+
|
|
35
|
+
-- Grantee shape. Not representable in schema.prisma (like DatastoreEntry_scope_xor,
|
|
36
|
+
-- 20260912040000_named_shared_datastores), so invisible to migrate diff.
|
|
37
|
+
ALTER TABLE "ResourceGrant" ADD CONSTRAINT "ResourceGrant_grantee_shape" CHECK (
|
|
38
|
+
("granteeKind" = 'principal' AND "granteePrincipalId" IS NOT NULL
|
|
39
|
+
AND "granteeKey" = 'principal:' || "granteePrincipalId")
|
|
40
|
+
OR ("granteeKind" = 'everyone' AND "granteePrincipalId" IS NULL AND "granteeKey" = 'everyone')
|
|
41
|
+
);
|
|
42
|
+
|
|
43
|
+
-- AlterTable
|
|
44
|
+
ALTER TABLE "Run" ADD COLUMN "triggeredById" TEXT;
|
|
45
|
+
|
|
46
|
+
-- CreateIndex
|
|
47
|
+
CREATE INDEX "Run_agentId_triggeredById_idx" ON "Run"("agentId", "triggeredById");
|
|
48
|
+
|
|
49
|
+
-- AlterTable
|
|
50
|
+
ALTER TABLE "AgentTool" ADD COLUMN "attachedById" TEXT,
|
|
51
|
+
ADD COLUMN "capabilitiesGrantedById" TEXT;
|
|
52
|
+
|
|
53
|
+
-- Data: owner-less agents keep working at execute-for-everyone; nobody can edit them.
|
|
54
|
+
INSERT INTO "ResourceGrant" ("id", "resourceType", "resourceId", "granteeKind", "granteeKey", "level", "source", "updatedAt")
|
|
55
|
+
SELECT gen_random_uuid()::text, 'agent', a."id", 'everyone', 'everyone', 'execute', 'migration_public', CURRENT_TIMESTAMP
|
|
56
|
+
FROM "Agent" a WHERE a."ownerId" IS NULL;
|
|
57
|
+
|
|
58
|
+
-- Data: capabilities on an owned agent whose tool is the owner's or owner-less
|
|
59
|
+
-- were set by that owner (only the owner could attach to an owned agent, and
|
|
60
|
+
-- only its own or an owner-less tool), so they carry its consent. Every other
|
|
61
|
+
-- attachment stays unstamped = inert until the owner re-grants.
|
|
62
|
+
UPDATE "AgentTool" at
|
|
63
|
+
SET "capabilitiesGrantedById" = a."ownerId", "attachedById" = a."ownerId"
|
|
64
|
+
FROM "Agent" a, "Tool" t
|
|
65
|
+
WHERE a."id" = at."agentId" AND t."id" = at."toolId"
|
|
66
|
+
AND a."ownerId" IS NOT NULL
|
|
67
|
+
AND (t."ownerId" IS NULL OR t."ownerId" = a."ownerId");
|
|
68
|
+
|
|
69
|
+
-- Data: triggerer of historic runs, where a Task recorded it.
|
|
70
|
+
UPDATE "Run" r SET "triggeredById" = t."principalId"
|
|
71
|
+
FROM "Task" t
|
|
72
|
+
WHERE t."runId" = r."id" AND t."kind" = 'run' AND t."principalId" IS NOT NULL;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
-- Admin-requested debug trace for coding runs: the profile carries an expiry,
|
|
2
|
+
-- and each run records at dispatch whether it was traced.
|
|
3
|
+
ALTER TABLE "CodingAgentProfile" ADD COLUMN "debugTraceUntil" TIMESTAMP(3);
|
|
4
|
+
ALTER TABLE "CodingRun" ADD COLUMN "debugTrace" BOOLEAN NOT NULL DEFAULT false;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
-- Coding-run services (docs/coding-services.md): the admin-managed catalog a
|
|
2
|
+
-- repository's .wardby/services.yaml names entries from, the service names each
|
|
3
|
+
-- coding agent may use, and the services resolved for each run at dispatch.
|
|
4
|
+
-- Additive: one new table, two new columns with defaults, and the built-in rows
|
|
5
|
+
-- (src/coding/services/builtins.ts; builtins.database.test.ts keeps them equal).
|
|
6
|
+
|
|
7
|
+
-- CreateTable
|
|
8
|
+
CREATE TABLE "CodingService" (
|
|
9
|
+
"id" TEXT NOT NULL,
|
|
10
|
+
"name" TEXT NOT NULL,
|
|
11
|
+
"version" TEXT NOT NULL,
|
|
12
|
+
"kind" TEXT NOT NULL DEFAULT 'sidecar',
|
|
13
|
+
"image" TEXT NOT NULL,
|
|
14
|
+
"port" INTEGER NOT NULL,
|
|
15
|
+
"serviceEnv" JSONB NOT NULL DEFAULT '{}',
|
|
16
|
+
"testEnv" JSONB NOT NULL DEFAULT '{}',
|
|
17
|
+
"readiness" JSONB NOT NULL,
|
|
18
|
+
"resources" JSONB NOT NULL,
|
|
19
|
+
"dataPath" TEXT NOT NULL,
|
|
20
|
+
"writablePaths" JSONB NOT NULL DEFAULT '[]',
|
|
21
|
+
"builtin" BOOLEAN NOT NULL DEFAULT false,
|
|
22
|
+
"createdById" TEXT,
|
|
23
|
+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
24
|
+
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
25
|
+
|
|
26
|
+
CONSTRAINT "CodingService_pkey" PRIMARY KEY ("id")
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
-- CreateIndex
|
|
30
|
+
CREATE UNIQUE INDEX "CodingService_name_version_key" ON "CodingService"("name", "version");
|
|
31
|
+
|
|
32
|
+
-- AlterTable
|
|
33
|
+
ALTER TABLE "CodingAgentProfile" ADD COLUMN "services" JSONB NOT NULL DEFAULT '[]';
|
|
34
|
+
|
|
35
|
+
-- AlterTable
|
|
36
|
+
ALTER TABLE "CodingRun" ADD COLUMN "services" JSONB NOT NULL DEFAULT '[]';
|
|
37
|
+
|
|
38
|
+
-- Built-in catalog entries.
|
|
39
|
+
INSERT INTO "CodingService" ("id", "name", "version", "kind", "image", "port", "serviceEnv", "testEnv", "readiness", "resources", "dataPath", "writablePaths", "builtin", "updatedAt") VALUES
|
|
40
|
+
('builtin-postgres-15', 'postgres', '15', 'sidecar',
|
|
41
|
+
'docker.io/library/postgres@sha256:724292da1f2e50bdccfc3302ce75bbba7f4a6076701b588cc795fcac65683550', 5432,
|
|
42
|
+
'{"POSTGRES_USER":"test","POSTGRES_PASSWORD":"test","POSTGRES_DB":"test","PGDATA":"/var/lib/postgresql/data/pgdata"}',
|
|
43
|
+
'{"DATABASE_URL":"postgres://test:test@127.0.0.1:5432/test","PGHOST":"127.0.0.1","PGPORT":"5432","PGUSER":"test","PGPASSWORD":"test","PGDATABASE":"test"}',
|
|
44
|
+
'{"command":["pg_isready","-h","127.0.0.1","-p","5432","-U","test","-d","test"],"periodSeconds":2,"timeoutSeconds":2,"failureThreshold":30}',
|
|
45
|
+
'{"cpuMillicores":500,"memoryMib":512,"diskMib":1024}',
|
|
46
|
+
'/var/lib/postgresql/data', '["/var/run/postgresql","/tmp"]', true, CURRENT_TIMESTAMP),
|
|
47
|
+
('builtin-postgres-16', 'postgres', '16', 'sidecar',
|
|
48
|
+
'docker.io/library/postgres@sha256:1a6ab3f5345eb6dbe04a1349529caabdb0ab09293a09590fad07b2246bfa4b54', 5432,
|
|
49
|
+
'{"POSTGRES_USER":"test","POSTGRES_PASSWORD":"test","POSTGRES_DB":"test","PGDATA":"/var/lib/postgresql/data/pgdata"}',
|
|
50
|
+
'{"DATABASE_URL":"postgres://test:test@127.0.0.1:5432/test","PGHOST":"127.0.0.1","PGPORT":"5432","PGUSER":"test","PGPASSWORD":"test","PGDATABASE":"test"}',
|
|
51
|
+
'{"command":["pg_isready","-h","127.0.0.1","-p","5432","-U","test","-d","test"],"periodSeconds":2,"timeoutSeconds":2,"failureThreshold":30}',
|
|
52
|
+
'{"cpuMillicores":500,"memoryMib":512,"diskMib":1024}',
|
|
53
|
+
'/var/lib/postgresql/data', '["/var/run/postgresql","/tmp"]', true, CURRENT_TIMESTAMP),
|
|
54
|
+
('builtin-postgres-17', 'postgres', '17', 'sidecar',
|
|
55
|
+
'docker.io/library/postgres@sha256:d74eeac9a635390a49bc21bd49fccd973de707e2a53a76ac49b552b8712ec46f', 5432,
|
|
56
|
+
'{"POSTGRES_USER":"test","POSTGRES_PASSWORD":"test","POSTGRES_DB":"test","PGDATA":"/var/lib/postgresql/data/pgdata"}',
|
|
57
|
+
'{"DATABASE_URL":"postgres://test:test@127.0.0.1:5432/test","PGHOST":"127.0.0.1","PGPORT":"5432","PGUSER":"test","PGPASSWORD":"test","PGDATABASE":"test"}',
|
|
58
|
+
'{"command":["pg_isready","-h","127.0.0.1","-p","5432","-U","test","-d","test"],"periodSeconds":2,"timeoutSeconds":2,"failureThreshold":30}',
|
|
59
|
+
'{"cpuMillicores":500,"memoryMib":512,"diskMib":1024}',
|
|
60
|
+
'/var/lib/postgresql/data', '["/var/run/postgresql","/tmp"]', true, CURRENT_TIMESTAMP),
|
|
61
|
+
('builtin-redis-7', 'redis', '7', 'sidecar',
|
|
62
|
+
'docker.io/library/redis@sha256:c6eabf748fc7a61dbb5a705c78bcf3d6377b1127a97d0ce965c11c44ba46896f', 6379,
|
|
63
|
+
'{}',
|
|
64
|
+
'{"REDIS_URL":"redis://127.0.0.1:6379/0","REDIS_HOST":"127.0.0.1","REDIS_PORT":"6379"}',
|
|
65
|
+
'{"command":["redis-cli","-h","127.0.0.1","-p","6379","ping"],"periodSeconds":1,"timeoutSeconds":2,"failureThreshold":30}',
|
|
66
|
+
'{"cpuMillicores":250,"memoryMib":256,"diskMib":256}',
|
|
67
|
+
'/data', '[]', true, CURRENT_TIMESTAMP),
|
|
68
|
+
('builtin-mysql-8', 'mysql', '8', 'sidecar',
|
|
69
|
+
'docker.io/library/mysql@sha256:0744ee5ef89ce6ccfa13de3e579fe6b9e27f93dd70da9c06d2c908b1b193fb8d', 3306,
|
|
70
|
+
'{"MYSQL_ROOT_PASSWORD":"test","MYSQL_DATABASE":"test","MYSQL_USER":"test","MYSQL_PASSWORD":"test"}',
|
|
71
|
+
'{"DATABASE_URL":"mysql://test:test@127.0.0.1:3306/test","MYSQL_HOST":"127.0.0.1","MYSQL_TCP_PORT":"3306","MYSQL_USER":"test","MYSQL_PASSWORD":"test","MYSQL_DATABASE":"test"}',
|
|
72
|
+
'{"command":["mysqladmin","ping","-h","127.0.0.1","-P","3306","-utest","-ptest","--silent"],"periodSeconds":2,"timeoutSeconds":3,"failureThreshold":45}',
|
|
73
|
+
'{"cpuMillicores":500,"memoryMib":1024,"diskMib":2048}',
|
|
74
|
+
'/var/lib/mysql', '["/var/run/mysqld","/tmp"]', true, CURRENT_TIMESTAMP);
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
-- Claude Code's tool-runner image (the container that runs its commands) for the
|
|
2
|
+
-- agent's toolchain, resolved at dispatch alongside workerImage so a run keeps the
|
|
3
|
+
-- image it was dispatched with. Additive and nullable: existing rows and Codex runs
|
|
4
|
+
-- leave it null, and the launcher falls back to the deployment's default image.
|
|
5
|
+
ALTER TABLE "CodingRun" ADD COLUMN "toolImage" TEXT;
|