@wardby/cli 0.2.1 → 0.4.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 +53 -4
- package/README.md +52 -13
- 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 +14 -4
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +284 -36
- package/dist/coding/base-commit.d.ts +6 -0
- package/dist/coding/base-commit.js +12 -0
- 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 +91 -4
- package/dist/coding/protocol.js +123 -12
- package/dist/coding/provider.d.ts +6 -1
- package/dist/coding/provider.js +16 -9
- 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 +66 -0
- package/dist/config/providers.js +137 -0
- package/dist/core/attribution.d.ts +101 -0
- package/dist/core/attribution.js +208 -0
- package/dist/core/budget-groups.d.ts +120 -10
- package/dist/core/budget-groups.js +133 -24
- package/dist/core/budget-wording.d.ts +22 -0
- package/dist/core/budget-wording.js +55 -0
- package/dist/core/coding-queue.d.ts +3 -0
- package/dist/core/coding-queue.js +6 -2
- package/dist/core/coding-service-status.d.ts +11 -0
- package/dist/core/coding-service-status.js +17 -0
- package/dist/core/cost-report.d.ts +88 -0
- package/dist/core/cost-report.js +248 -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 +74 -7
- package/dist/core/dispatch.js +382 -47
- package/dist/core/engine-native.js +44 -14
- package/dist/core/glob.d.ts +10 -0
- package/dist/core/glob.js +33 -0
- package/dist/core/grants.d.ts +86 -0
- package/dist/core/grants.js +126 -0
- package/dist/core/host-events.d.ts +72 -0
- package/dist/core/host-events.js +597 -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 +78 -0
- package/dist/core/host-status.js +228 -0
- package/dist/core/in-flight-runs.d.ts +8 -0
- package/dist/core/in-flight-runs.js +56 -0
- package/dist/core/issue-bridge.d.ts +60 -0
- package/dist/core/issue-bridge.js +189 -0
- package/dist/core/issue-dedupe.d.ts +70 -0
- package/dist/core/issue-dedupe.js +255 -0
- package/dist/core/issue-events.d.ts +42 -0
- package/dist/core/issue-events.js +155 -0
- package/dist/core/issue-status.d.ts +29 -0
- package/dist/core/issue-status.js +241 -0
- package/dist/core/issue-tracker-tools.d.ts +64 -0
- package/dist/core/issue-tracker-tools.js +850 -0
- package/dist/core/model-usage.d.ts +10 -0
- package/dist/core/model-usage.js +24 -0
- package/dist/core/provider-wording.d.ts +12 -0
- package/dist/core/provider-wording.js +44 -0
- package/dist/core/reconciler.d.ts +42 -2
- package/dist/core/reconciler.js +97 -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 +354 -0
- package/dist/core/run-heartbeat.d.ts +27 -0
- package/dist/core/run-heartbeat.js +54 -0
- package/dist/core/run-pricing.d.ts +61 -0
- package/dist/core/run-pricing.js +56 -0
- package/dist/core/runner.d.ts +33 -8
- package/dist/core/runner.js +410 -62
- package/dist/core/scheduler.d.ts +4 -1
- package/dist/core/scheduler.js +3 -2
- package/dist/core/secrets.d.ts +11 -2
- package/dist/core/secrets.js +25 -6
- package/dist/core/self-defects.d.ts +80 -0
- package/dist/core/self-defects.js +180 -0
- 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 +67 -0
- package/dist/core/untrusted-content.d.ts +32 -0
- package/dist/core/untrusted-content.js +72 -0
- package/dist/core/webhooks.d.ts +17 -2
- package/dist/core/webhooks.js +42 -3
- package/dist/generated/prisma/browser.d.ts +166 -0
- package/dist/generated/prisma/client.d.ts +166 -0
- package/dist/generated/prisma/commonInputTypes.d.ts +152 -52
- package/dist/generated/prisma/enums.d.ts +13 -0
- package/dist/generated/prisma/enums.js +12 -1
- package/dist/generated/prisma/internal/class.d.ts +242 -0
- package/dist/generated/prisma/internal/class.js +4 -4
- package/dist/generated/prisma/internal/prismaNamespace.d.ts +2571 -577
- package/dist/generated/prisma/internal/prismaNamespace.js +312 -6
- package/dist/generated/prisma/internal/prismaNamespaceBrowser.d.ts +328 -0
- package/dist/generated/prisma/internal/prismaNamespaceBrowser.js +312 -6
- package/dist/generated/prisma/models/Agent.d.ts +682 -1
- package/dist/generated/prisma/models/AgentIssueProject.d.ts +1838 -0
- package/dist/generated/prisma/models/AgentIssueProject.js +1 -0
- 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 +195 -2
- package/dist/generated/prisma/models/CodingRun.d.ts +1405 -95
- package/dist/generated/prisma/models/CodingRunServiceStatus.d.ts +1404 -0
- package/dist/generated/prisma/models/CodingRunServiceStatus.js +1 -0
- 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/IssueFingerprint.d.ts +1183 -0
- package/dist/generated/prisma/models/IssueFingerprint.js +1 -0
- package/dist/generated/prisma/models/IssuePullRequest.d.ts +1255 -0
- package/dist/generated/prisma/models/IssuePullRequest.js +1 -0
- package/dist/generated/prisma/models/ModelCatalogEntry.d.ts +1322 -0
- package/dist/generated/prisma/models/ModelCatalogEntry.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 +1402 -82
- package/dist/generated/prisma/models/RunAttribution.d.ts +1259 -0
- package/dist/generated/prisma/models/RunAttribution.js +1 -0
- 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/RunIssueStatus.d.ts +1199 -0
- package/dist/generated/prisma/models/RunIssueStatus.js +1 -0
- package/dist/generated/prisma/models/RunModelUsage.d.ts +1316 -0
- package/dist/generated/prisma/models/RunModelUsage.js +1 -0
- package/dist/generated/prisma/models/Tool.d.ts +15 -3
- package/dist/generated/prisma/models/WorkItem.d.ts +1408 -0
- package/dist/generated/prisma/models/WorkItem.js +1 -0
- package/dist/generated/prisma/models.d.ts +22 -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 +999 -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 +18 -18
- package/dist/knowledge/check.d.ts +13 -0
- package/dist/knowledge/check.js +69 -0
- package/dist/knowledge/cli.d.ts +14 -0
- package/dist/knowledge/cli.js +67 -0
- package/dist/knowledge/concept.d.ts +54 -0
- package/dist/knowledge/concept.js +78 -0
- package/dist/knowledge/note.d.ts +11 -0
- package/dist/knowledge/note.js +39 -0
- package/dist/knowledge/relevance.d.ts +11 -0
- package/dist/knowledge/relevance.js +14 -0
- package/dist/knowledge/span-hash.d.ts +3 -0
- package/dist/knowledge/span-hash.js +16 -0
- package/dist/mcp/auth/access.d.ts +72 -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 +25 -51
- 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 +33 -2
- package/dist/mcp/auth/resource-server.js +99 -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 +23 -5
- package/dist/mcp/auth/self-hosted/credentials.js +62 -4
- package/dist/mcp/auth/self-hosted/session.d.ts +7 -6
- package/dist/mcp/context.d.ts +30 -1
- package/dist/mcp/errors.d.ts +25 -6
- package/dist/mcp/errors.js +98 -0
- package/dist/mcp/host-events/deliveries.d.ts +9 -0
- package/dist/mcp/host-events/deliveries.js +17 -0
- package/dist/mcp/host-events/github-ingress.d.ts +38 -0
- package/dist/mcp/host-events/github-ingress.js +83 -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/host-events/jira-ingress.d.ts +29 -0
- package/dist/mcp/host-events/jira-ingress.js +92 -0
- package/dist/mcp/index.d.ts +10 -1
- package/dist/mcp/index.js +187 -19
- package/dist/mcp/server.js +32 -11
- package/dist/mcp/tools/agents.js +519 -50
- package/dist/mcp/tools/budget-groups.js +3 -3
- package/dist/mcp/tools/cost-report.d.ts +8 -0
- package/dist/mcp/tools/cost-report.js +60 -0
- 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/issue-projects.d.ts +2 -0
- package/dist/mcp/tools/issue-projects.js +238 -0
- package/dist/mcp/tools/memory.d.ts +7 -1
- package/dist/mcp/tools/memory.js +5 -5
- package/dist/mcp/tools/model-catalog.d.ts +22 -0
- package/dist/mcp/tools/model-catalog.js +423 -0
- package/dist/mcp/tools/repositories.d.ts +2 -0
- package/dist/mcp/tools/repositories.js +182 -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 +65 -7
- package/dist/mcp/tools/webhooks.js +15 -4
- package/dist/mcp/transport/streamable-http.d.ts +15 -0
- package/dist/mcp/transport/streamable-http.js +55 -3
- package/dist/mcp/webhooks/ingress.d.ts +2 -1
- package/dist/mcp/webhooks/ingress.js +9 -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 +10 -2
- package/dist/providers/auth/self-hosted.js +55 -6
- package/dist/providers/auth/types.d.ts +6 -0
- package/dist/providers/coding-proxy/memory-ledger.d.ts +4 -1
- package/dist/providers/coding-proxy/memory-ledger.js +31 -3
- package/dist/providers/coding-proxy/metering.d.ts +6 -1
- package/dist/providers/coding-proxy/metering.js +41 -4
- package/dist/providers/coding-proxy/prisma-ledger.d.ts +17 -0
- package/dist/providers/coding-proxy/prisma-ledger.js +106 -8
- package/dist/providers/coding-proxy/proxy.d.ts +25 -2
- package/dist/providers/coding-proxy/proxy.js +561 -38
- 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 +33 -1
- package/dist/providers/coding-proxy/types.js +12 -1
- package/dist/providers/engine/types.d.ts +29 -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 +28 -1
- package/dist/providers/executor/container.d.ts +134 -4
- package/dist/providers/executor/container.js +394 -37
- package/dist/providers/executor/dbos.d.ts +4 -3
- package/dist/providers/executor/dbos.js +7 -5
- package/dist/providers/executor/in-process.d.ts +2 -3
- package/dist/providers/executor/routing.d.ts +13 -0
- package/dist/providers/executor/routing.js +18 -0
- package/dist/providers/executor/types.d.ts +34 -0
- package/dist/providers/issue-tracker/adf.d.ts +31 -0
- package/dist/providers/issue-tracker/adf.js +181 -0
- package/dist/providers/issue-tracker/index.d.ts +5 -0
- package/dist/providers/issue-tracker/index.js +12 -0
- package/dist/providers/issue-tracker/jira-client.d.ts +41 -0
- package/dist/providers/issue-tracker/jira-client.js +151 -0
- package/dist/providers/issue-tracker/jira-events.d.ts +3 -0
- package/dist/providers/issue-tracker/jira-events.js +98 -0
- package/dist/providers/issue-tracker/jira.d.ts +116 -0
- package/dist/providers/issue-tracker/jira.js +502 -0
- package/dist/providers/issue-tracker/types.d.ts +269 -0
- package/dist/providers/issue-tracker/types.js +16 -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 +53 -2
- package/dist/providers/jobs/docker.js +307 -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 +24 -2
- package/dist/providers/jobs/kubernetes.js +153 -22
- package/dist/providers/jobs/service-state.d.ts +22 -0
- package/dist/providers/jobs/service-state.js +17 -0
- package/dist/providers/jobs/types.d.ts +18 -0
- package/dist/providers/llm/anthropic.d.ts +3 -3
- package/dist/providers/llm/anthropic.js +3 -5
- package/dist/providers/llm/bedrock.d.ts +3 -3
- package/dist/providers/llm/bedrock.js +3 -8
- package/dist/providers/llm/catalog-lookup.d.ts +10 -0
- package/dist/providers/llm/catalog-lookup.js +15 -0
- package/dist/providers/llm/catalog-shipped.d.ts +18 -0
- package/dist/providers/llm/catalog-shipped.js +197 -0
- package/dist/providers/llm/catalog-store.d.ts +58 -0
- package/dist/providers/llm/catalog-store.js +138 -0
- package/dist/providers/llm/catalog-types.d.ts +66 -0
- package/dist/providers/llm/catalog-types.js +64 -0
- package/dist/providers/llm/catalog.d.ts +61 -0
- package/dist/providers/llm/catalog.js +147 -0
- 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 +10 -12
- package/dist/providers/llm/claude-provider.js +15 -6
- package/dist/providers/llm/index.d.ts +9 -6
- package/dist/providers/llm/index.js +8 -5
- package/dist/providers/llm/openai.d.ts +14 -5
- package/dist/providers/llm/openai.js +24 -14
- package/dist/providers/llm/pricing-core.d.ts +5 -3
- package/dist/providers/llm/registration.js +8 -12
- package/dist/providers/llm/routing.d.ts +21 -11
- package/dist/providers/llm/routing.js +47 -13
- 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 +226 -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 +568 -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 +309 -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 +78 -34
- package/dist/providers/vcs/github.d.ts +94 -3
- package/dist/providers/vcs/github.js +223 -17
- package/dist/providers/vcs/types.d.ts +48 -4
- package/dist/quickstart/index.d.ts +2 -0
- package/dist/quickstart/index.js +36 -8
- 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 +8 -2
- package/dist/viewer/api-schema.d.ts +2757 -0
- package/dist/viewer/api-schema.js +165 -0
- package/dist/viewer/build-schemas.d.ts +2 -0
- package/dist/viewer/build-schemas.js +18 -0
- package/dist/viewer/event-bus.d.ts +38 -0
- package/dist/viewer/event-bus.js +232 -0
- package/dist/viewer/graph.d.ts +40 -0
- package/dist/viewer/graph.js +243 -0
- package/dist/viewer/http.d.ts +30 -0
- package/dist/viewer/http.js +133 -0
- package/dist/viewer/run-detail.d.ts +4 -0
- package/dist/viewer/run-detail.js +61 -0
- package/dist/wardby-bin.js +11 -0
- package/docs/README.md +40 -0
- package/docs/agent-recipes.md +383 -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 +508 -0
- package/docs/coding-agent-setup.md +175 -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 +1068 -0
- package/docs/getting-started-gke.md +632 -0
- package/docs/getting-started-identity-provider.md +319 -0
- package/docs/getting-started.md +147 -0
- package/docs/jira-agents.md +649 -0
- package/docs/knowledge.md +387 -0
- package/docs/models.md +221 -0
- package/docs/observability.md +53 -0
- package/docs/release-verification.md +66 -0
- package/docs/security-deployment.md +667 -0
- package/docs/viewer-api.md +142 -0
- package/help/admin-viewer.md +39 -0
- package/help/agent-recipes.md +173 -0
- package/help/architecture-agent.md +189 -0
- package/help/builder-agent.md +80 -0
- package/help/code-review-agents.md +37 -0
- package/help/coding-packages.md +31 -0
- package/help/coding-services.md +71 -0
- package/help/cost-attribution.md +67 -0
- package/help/creating-agents.md +90 -0
- package/help/deploy-gke.md +45 -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/model-unavailable.md +63 -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 +32 -0
- package/help/github.md +48 -0
- package/help/identity-and-access.md +44 -0
- package/help/jira.md +135 -0
- package/help/knowledge.md +47 -0
- package/help/mcp.md +30 -0
- package/help/models.md +90 -0
- package/help/native-capabilities.md +30 -0
- package/help/observability.md +41 -0
- package/help/operating-agents.md +36 -0
- package/help/security.md +27 -0
- package/help/troubleshooting/budgets.md +32 -0
- package/help/troubleshooting/coding-workers.md +47 -0
- package/help/troubleshooting/repository-access.md +27 -0
- package/package.json +14 -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/migrations/20260930000000_jira_issue_projects/migration.sql +34 -0
- package/prisma/migrations/20261001000000_jira_phase2_allowlists/migration.sql +3 -0
- package/prisma/migrations/20261001010000_jira_link_types_allowlist/migration.sql +2 -0
- package/prisma/migrations/20261002000000_jira_coding_bridge/migration.sql +28 -0
- package/prisma/migrations/20261002010000_jira_issue_creation/migration.sql +25 -0
- package/prisma/migrations/20261003000000_issue_cost_attribution/migration.sql +56 -0
- package/prisma/migrations/20261003010000_coding_run_service_status/migration.sql +23 -0
- package/prisma/migrations/20261003020000_viewer_notify/migration.sql +54 -0
- package/prisma/migrations/20261003030000_viewer_notify_fixes/migration.sql +47 -0
- package/prisma/migrations/20261003040000_viewer_indexes/migration.sql +12 -0
- package/prisma/migrations/20261004000000_model_catalog/migration.sql +26 -0
- package/prisma/schema.prisma +663 -21
- package/dist/mcp/tools/models.d.ts +0 -8
- package/dist/mcp/tools/models.js +0 -15
- package/dist/providers/llm/pricing-anthropic.d.ts +0 -4
- package/dist/providers/llm/pricing-anthropic.js +0 -30
- package/dist/providers/llm/pricing-bedrock-claude.d.ts +0 -12
- package/dist/providers/llm/pricing-bedrock-claude.js +0 -37
- package/dist/providers/llm/pricing.d.ts +0 -30
- package/dist/providers/llm/pricing.js +0 -74
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: troubleshooting/budgets
|
|
3
|
+
title: Troubleshoot budgets and reservations
|
|
4
|
+
summary: Diagnose run refusals caused by an exhausted agent, shared budget group, or sub-agent run tree.
|
|
5
|
+
audience: operator
|
|
6
|
+
tags: [budgets, reservations, refusals, scheduling]
|
|
7
|
+
appliesTo: >=0.2.1
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Troubleshoot budgets and reservations
|
|
11
|
+
|
|
12
|
+
Wardby reserves budget when it dispatches a run. The reservation is limited by
|
|
13
|
+
the agent's `budgetUsd`, the remaining shared daily, weekly, or monthly budget
|
|
14
|
+
group capacity, and the remaining parent run-tree capacity for a sub-agent.
|
|
15
|
+
|
|
16
|
+
When no capacity remains, Wardby records the run as refused and does not start
|
|
17
|
+
a worker. Common errors include `budget_group_exhausted:day`,
|
|
18
|
+
`budget_group_exhausted:week`, `budget_group_exhausted:month`, and
|
|
19
|
+
`run_tree_exhausted`.
|
|
20
|
+
|
|
21
|
+
Inspect the agent, its budget group, and recent runs before increasing a limit.
|
|
22
|
+
In-progress runs retain their unspent reservation, so overlapping scheduled,
|
|
23
|
+
webhook, and manual runs share one cap rather than each assuming the full
|
|
24
|
+
remaining balance.
|
|
25
|
+
|
|
26
|
+
A run's spend is recorded as it goes, not only when it finishes. A sub-agent
|
|
27
|
+
dispatched partway through a run therefore gets the run tree's capacity minus
|
|
28
|
+
what the parent (and any earlier sub-agents) have already spent, so a parent
|
|
29
|
+
that spends heavily before delegating can leave a sub-agent refused with
|
|
30
|
+
`run_tree_exhausted`.
|
|
31
|
+
|
|
32
|
+
For a shared-group refusal, read [Budget group exhausted](../errors/budget-group-exhausted.md).
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: troubleshooting/coding-workers
|
|
3
|
+
title: Troubleshoot coding workers
|
|
4
|
+
summary: Investigate coding-worker setup, isolation preflight, and safe failure handling.
|
|
5
|
+
audience: operator
|
|
6
|
+
tags: [coding-agents, docker, kubernetes, isolation, services]
|
|
7
|
+
appliesTo: >=0.2.1
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Troubleshoot coding workers
|
|
11
|
+
|
|
12
|
+
Before enabling a coding agent, configure an immutable worker image, the
|
|
13
|
+
trusted coding proxy, a scoped GitHub App installation, and the selected job
|
|
14
|
+
launcher. Run `wardby coding preflight` after changing the Docker or Kubernetes
|
|
15
|
+
configuration.
|
|
16
|
+
|
|
17
|
+
Wardby refuses to weaken an isolation profile when a required host feature,
|
|
18
|
+
network setting, mount, environment, or cleanup guarantee cannot be verified.
|
|
19
|
+
Investigate the host configuration instead of bypassing the refusal.
|
|
20
|
+
|
|
21
|
+
Codex and Claude Code workers have different supported launcher combinations.
|
|
22
|
+
Review the deployment guide for your target before assigning a coding profile.
|
|
23
|
+
|
|
24
|
+
For the specific isolation refusal, read [Coding-worker isolation unavailable](../errors/docker-isolation-unsupported.md).
|
|
25
|
+
|
|
26
|
+
## Service refusals and failures
|
|
27
|
+
|
|
28
|
+
A repository can declare services such as PostgreSQL in `.wardby/services.yaml`
|
|
29
|
+
on its base branch. Wardby checks the declaration, the service catalog, and the
|
|
30
|
+
agent's `codingProfile.services` before a run starts, and refuses the run with a
|
|
31
|
+
`service_*` code when they disagree. The run's `error` (from `get_run`) is the
|
|
32
|
+
code followed by a sentence the requester also sees on the run's status comment.
|
|
33
|
+
|
|
34
|
+
- [`service_declaration_invalid`](../errors/service-declaration-invalid.md):
|
|
35
|
+
the file on the base branch is not a valid declaration.
|
|
36
|
+
- [`service_declaration_unavailable`](../errors/service-declaration-unavailable.md):
|
|
37
|
+
Wardby could not read the file through the GitHub App.
|
|
38
|
+
- [`service_unknown`](../errors/service-unknown.md): the catalog has no such
|
|
39
|
+
name and version.
|
|
40
|
+
- [`service_not_allowed`](../errors/service-not-allowed.md): the agent does not
|
|
41
|
+
allow that service.
|
|
42
|
+
- [`service_launcher_unsupported`](../errors/service-launcher-unsupported.md):
|
|
43
|
+
services need the Kubernetes or Docker job launcher.
|
|
44
|
+
- [`service_unready`](../errors/service-unready.md): the run started but a
|
|
45
|
+
service never became ready (launcher error `coding_service_unready:<name>`).
|
|
46
|
+
|
|
47
|
+
See [Coding services](../coding-services.md).
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: troubleshooting/repository-access
|
|
3
|
+
title: Troubleshoot repository access
|
|
4
|
+
summary: Diagnose why Wardby refused repository work or could not verify the agent owner's GitHub access.
|
|
5
|
+
audience: operator
|
|
6
|
+
tags: [github, repositories, authorization, refusals]
|
|
7
|
+
appliesTo: >=0.2.1
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Troubleshoot repository access
|
|
11
|
+
|
|
12
|
+
Wardby checks that the owner of a coding or repository-linked agent has the
|
|
13
|
+
required current GitHub permission. A coding repository requires write access;
|
|
14
|
+
a read-only repository link requires read access. An administrator can record a
|
|
15
|
+
repository approval when no individual's access is appropriate.
|
|
16
|
+
|
|
17
|
+
`repo_access` means the current owner no longer has the required permission,
|
|
18
|
+
has unlinked their account, or the repository was not authorized. Restore the
|
|
19
|
+
owner's GitHub link and permission, or have an administrator review and record
|
|
20
|
+
the appropriate repository authorization.
|
|
21
|
+
|
|
22
|
+
`repo_access_unavailable` means Wardby could not verify GitHub access after its
|
|
23
|
+
retry. Do not treat it as permission granted: resolve the GitHub/API condition
|
|
24
|
+
and re-run the work later.
|
|
25
|
+
|
|
26
|
+
Read [Repository access refused](../errors/repo-access.md) for the safe
|
|
27
|
+
remediation sequence.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wardby/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Self-hosted control plane for budget-guarded AI agents.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"homepage": "https://github.com/wardby/wardby#readme",
|
|
@@ -35,8 +35,10 @@
|
|
|
35
35
|
".env.example",
|
|
36
36
|
"NOTICE",
|
|
37
37
|
"bin/",
|
|
38
|
+
"docs/",
|
|
38
39
|
"deploy/local/docker-compose.yml",
|
|
39
40
|
"dist/",
|
|
41
|
+
"help/",
|
|
40
42
|
"prisma/migrations/",
|
|
41
43
|
"prisma/migrate.config.mjs",
|
|
42
44
|
"prisma/schema.prisma",
|
|
@@ -52,7 +54,9 @@
|
|
|
52
54
|
"format": "prettier --write .",
|
|
53
55
|
"format:check": "prettier --check .",
|
|
54
56
|
"build:vendor": "node scripts/build-sandbox-vendor.mjs",
|
|
55
|
-
"build": "
|
|
57
|
+
"build:help": "tsx src/help/build.ts",
|
|
58
|
+
"build:viewer-schemas": "tsx src/viewer/build-schemas.ts",
|
|
59
|
+
"build": "npm run build:vendor && PRISMA_HIDE_UPDATE_MESSAGE=1 prisma generate && tsc -p tsconfig.build.json && npm run build:help",
|
|
56
60
|
"prepare": "npm run build:vendor && PRISMA_HIDE_UPDATE_MESSAGE=1 prisma generate",
|
|
57
61
|
"prepack": "npm run build",
|
|
58
62
|
"cli": "tsx --conditions=wardby-source src/cli.ts",
|
|
@@ -63,6 +67,7 @@
|
|
|
63
67
|
"test:kubernetes": "WARDBY_KUBERNETES_TEST=1 vitest run src/providers/jobs/kubernetes.integration.test.ts",
|
|
64
68
|
"prisma:generate": "PRISMA_HIDE_UPDATE_MESSAGE=1 prisma generate",
|
|
65
69
|
"prisma:migrate": "prisma migrate deploy",
|
|
70
|
+
"dbos:migrate": "dbos schema \"$DATABASE_URL\"",
|
|
66
71
|
"db:up": "docker compose -f deploy/local/docker-compose.yml up -d",
|
|
67
72
|
"db:down": "docker compose -f deploy/local/docker-compose.yml down",
|
|
68
73
|
"coding:local:up": "docker compose --env-file .env.local -f deploy/local/docker-compose.yml -f deploy/local/docker-compose.phase5.yml up --build -d coding-proxy",
|
|
@@ -76,7 +81,8 @@
|
|
|
76
81
|
"verify:phase5": "npm run typecheck && npm run test:phase5 && npm run build && npm run worker:image:policy",
|
|
77
82
|
"test:docker-isolation": "node scripts/docker-isolation-acceptance.mjs",
|
|
78
83
|
"test:docker-job": "node scripts/docker-job-acceptance.mjs",
|
|
79
|
-
"
|
|
84
|
+
"test:docker-services": "node scripts/docker-services-acceptance.mjs",
|
|
85
|
+
"claude:images:local": "docker build -f src/claude-coding-worker/Dockerfile -t wardby-claude-coding-worker:phase5 . && docker build -f src/claude-tool-runner/Dockerfile -t wardby-claude-tool-runner:phase5 . && docker build -f src/claude-tool-runner/Dockerfile --target node-python -t wardby-claude-tool-runner:phase5-node-python .",
|
|
80
86
|
"test:claude-compatibility": "docker build -f src/claude-coding-worker/Dockerfile.compatibility -t wardby-claude-compat:phase5 . && docker run --rm wardby-claude-compat:phase5",
|
|
81
87
|
"test:claude-docker": "node scripts/claude-docker-acceptance.mjs",
|
|
82
88
|
"test:production-boundary": "node scripts/production-boundary-policy.mjs",
|
|
@@ -94,9 +100,11 @@
|
|
|
94
100
|
"@prisma/adapter-pg": "7.10.0",
|
|
95
101
|
"@prisma/client": "7.10.0",
|
|
96
102
|
"@prometheus-io/client": "^0.16.1",
|
|
103
|
+
"@renovatebot/pep440": "^5.0.1",
|
|
97
104
|
"croner": "^10.0.1",
|
|
98
105
|
"dotenv-flow": "^4.1.0",
|
|
99
106
|
"fast-xml-parser": "^5.11.1",
|
|
107
|
+
"fflate": "^0.8.3",
|
|
100
108
|
"gpt-tokenizer": "^2.5.0",
|
|
101
109
|
"jose": "^6.2.12",
|
|
102
110
|
"node-html-parser": "^9.0.3",
|
|
@@ -105,8 +113,10 @@
|
|
|
105
113
|
"pg": "8.23.0",
|
|
106
114
|
"pino": "^9.14.0",
|
|
107
115
|
"quickjs-emscripten": "^0.32.0",
|
|
116
|
+
"semver": "^7.8.5",
|
|
108
117
|
"tar-stream": "^3.2.1",
|
|
109
118
|
"undici": "^8.7.0",
|
|
119
|
+
"yaml": "^2.9.1",
|
|
110
120
|
"zod": "^3.25.76",
|
|
111
121
|
"zod-to-json-schema": "^3.25.2"
|
|
112
122
|
},
|
|
@@ -116,6 +126,7 @@
|
|
|
116
126
|
"@types/node": "^24.0.0",
|
|
117
127
|
"@types/papaparse": "^5.5.2",
|
|
118
128
|
"@types/pg": "8.23.1",
|
|
129
|
+
"@types/semver": "^7.8.0",
|
|
119
130
|
"@types/tar-stream": "^3.1.4",
|
|
120
131
|
"esbuild": "^0.28.2",
|
|
121
132
|
"eslint": "^10.10.0",
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
-- Additive: per-agent workspace paths never collected from a coding run. See
|
|
2
|
+
-- docs/superpowers/specs/2026-09-25-coding-package-registry-design.md §4.
|
|
3
|
+
|
|
4
|
+
-- AlterTable
|
|
5
|
+
ALTER TABLE "CodingAgentProfile" ADD COLUMN "collectExclude" JSONB NOT NULL DEFAULT '[]';
|
|
6
|
+
|
|
7
|
+
-- AlterTable
|
|
8
|
+
ALTER TABLE "CodingRun" ADD COLUMN "collectExclude" JSONB NOT NULL DEFAULT '[]';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
-- allowedEgress was stored but never enforced and is no longer written. A default
|
|
2
|
+
-- lets new rows omit it; the columns are dropped in a later release.
|
|
3
|
+
|
|
4
|
+
-- AlterTable
|
|
5
|
+
ALTER TABLE "CodingAgentProfile" ALTER COLUMN "allowedEgress" SET DEFAULT '[]';
|
|
6
|
+
|
|
7
|
+
-- AlterTable
|
|
8
|
+
ALTER TABLE "CodingRun" ALTER COLUMN "allowedEgress" SET DEFAULT '[]';
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
-- Additive: coding package registry. See
|
|
2
|
+
-- docs/superpowers/specs/2026-09-25-coding-package-registry-design.md.
|
|
3
|
+
|
|
4
|
+
-- CreateEnum
|
|
5
|
+
CREATE TYPE "RegistryFetchOutcome" AS ENUM ('served', 'refused');
|
|
6
|
+
|
|
7
|
+
-- AlterTable
|
|
8
|
+
ALTER TABLE "CodingAgentProfile" ADD COLUMN "packageAllowlist" JSONB NOT NULL DEFAULT '{}',
|
|
9
|
+
ADD COLUMN "packagePolicy" JSONB NOT NULL DEFAULT '{}';
|
|
10
|
+
|
|
11
|
+
-- AlterTable
|
|
12
|
+
ALTER TABLE "CodingRun" ADD COLUMN "packageAllowlist" JSONB NOT NULL DEFAULT '{}',
|
|
13
|
+
ADD COLUMN "packagePolicy" JSONB NOT NULL DEFAULT '{}';
|
|
14
|
+
|
|
15
|
+
-- AlterTable
|
|
16
|
+
ALTER TABLE "CodingProxySession" ADD COLUMN "registryTokenHash" TEXT;
|
|
17
|
+
|
|
18
|
+
-- CreateTable
|
|
19
|
+
CREATE TABLE "RegistryAllowance" (
|
|
20
|
+
"runId" TEXT NOT NULL,
|
|
21
|
+
"ecosystem" TEXT NOT NULL,
|
|
22
|
+
"name" TEXT NOT NULL,
|
|
23
|
+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
24
|
+
|
|
25
|
+
CONSTRAINT "RegistryAllowance_pkey" PRIMARY KEY ("runId","ecosystem","name")
|
|
26
|
+
);
|
|
27
|
+
|
|
28
|
+
-- CreateTable
|
|
29
|
+
CREATE TABLE "RegistryFetch" (
|
|
30
|
+
"id" TEXT NOT NULL,
|
|
31
|
+
"runId" TEXT NOT NULL,
|
|
32
|
+
"ecosystem" TEXT NOT NULL,
|
|
33
|
+
"name" TEXT NOT NULL,
|
|
34
|
+
"version" TEXT,
|
|
35
|
+
"filename" TEXT,
|
|
36
|
+
"integrity" TEXT,
|
|
37
|
+
"sizeBytes" INTEGER,
|
|
38
|
+
"outcome" "RegistryFetchOutcome" NOT NULL,
|
|
39
|
+
"reason" TEXT,
|
|
40
|
+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
41
|
+
|
|
42
|
+
CONSTRAINT "RegistryFetch_pkey" PRIMARY KEY ("id")
|
|
43
|
+
);
|
|
44
|
+
|
|
45
|
+
-- CreateIndex
|
|
46
|
+
CREATE UNIQUE INDEX "CodingProxySession_registryTokenHash_key" ON "CodingProxySession"("registryTokenHash");
|
|
47
|
+
|
|
48
|
+
-- CreateIndex
|
|
49
|
+
CREATE INDEX "RegistryFetch_runId_createdAt_idx" ON "RegistryFetch"("runId", "createdAt");
|
|
50
|
+
|
|
51
|
+
-- AddForeignKey
|
|
52
|
+
ALTER TABLE "RegistryAllowance" ADD CONSTRAINT "RegistryAllowance_runId_fkey" FOREIGN KEY ("runId") REFERENCES "CodingRun"("runId") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
53
|
+
|
|
54
|
+
-- AddForeignKey
|
|
55
|
+
ALTER TABLE "RegistryFetch" ADD CONSTRAINT "RegistryFetch_runId_fkey" FOREIGN KEY ("runId") REFERENCES "CodingRun"("runId") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
-- Tool names become unique per owner instead of globally, matching
|
|
2
|
+
-- BudgetGroup / Datastore / Secret. Safe on existing data: global uniqueness
|
|
3
|
+
-- already implies per-owner uniqueness. As with those models, PostgreSQL
|
|
4
|
+
-- treats NULLs as distinct, so public (null-owner) tools are not deduplicated
|
|
5
|
+
-- by this index; `wardby tool create` checks that case in the application.
|
|
6
|
+
|
|
7
|
+
-- DropIndex
|
|
8
|
+
DROP INDEX "Tool_name_key";
|
|
9
|
+
|
|
10
|
+
-- CreateIndex
|
|
11
|
+
CREATE UNIQUE INDEX "Tool_ownerId_name_key" ON "Tool"("ownerId", "name");
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
-- Additive: a run started by a code-review host event (GitHub App webhook).
|
|
2
|
+
-- Its own migration: Postgres cannot use a newly added enum value in the
|
|
3
|
+
-- same transaction that adds it. See
|
|
4
|
+
-- docs/private/2026-09-25-code-review-host-design.md §4.
|
|
5
|
+
|
|
6
|
+
-- AlterEnum
|
|
7
|
+
ALTER TYPE "RunTrigger" ADD VALUE 'host_event';
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
-- Additive: repository links for native agents, the check a run owns, and
|
|
2
|
+
-- host webhook delivery de-duplication. See
|
|
3
|
+
-- docs/private/2026-09-25-code-review-host-design.md §4.
|
|
4
|
+
|
|
5
|
+
-- CreateTable
|
|
6
|
+
CREATE TABLE "AgentRepository" (
|
|
7
|
+
"id" TEXT NOT NULL,
|
|
8
|
+
"agentId" TEXT NOT NULL,
|
|
9
|
+
"provider" TEXT NOT NULL,
|
|
10
|
+
"repository" TEXT NOT NULL,
|
|
11
|
+
"access" TEXT NOT NULL,
|
|
12
|
+
"triggers" TEXT[] DEFAULT ARRAY[]::TEXT[],
|
|
13
|
+
"checkName" TEXT,
|
|
14
|
+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
15
|
+
|
|
16
|
+
CONSTRAINT "AgentRepository_pkey" PRIMARY KEY ("id")
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
-- CreateTable
|
|
20
|
+
CREATE TABLE "RunHostCheck" (
|
|
21
|
+
"runId" TEXT NOT NULL,
|
|
22
|
+
"provider" TEXT NOT NULL,
|
|
23
|
+
"repository" TEXT NOT NULL,
|
|
24
|
+
"checkId" TEXT NOT NULL,
|
|
25
|
+
"headSha" TEXT NOT NULL,
|
|
26
|
+
"completedAt" TIMESTAMP(3),
|
|
27
|
+
|
|
28
|
+
CONSTRAINT "RunHostCheck_pkey" PRIMARY KEY ("runId")
|
|
29
|
+
);
|
|
30
|
+
|
|
31
|
+
-- CreateTable
|
|
32
|
+
CREATE TABLE "HostEventDelivery" (
|
|
33
|
+
"provider" TEXT NOT NULL,
|
|
34
|
+
"deliveryId" TEXT NOT NULL,
|
|
35
|
+
"receivedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
36
|
+
|
|
37
|
+
CONSTRAINT "HostEventDelivery_pkey" PRIMARY KEY ("provider","deliveryId")
|
|
38
|
+
);
|
|
39
|
+
|
|
40
|
+
-- CreateIndex
|
|
41
|
+
CREATE UNIQUE INDEX "AgentRepository_agentId_provider_repository_key" ON "AgentRepository"("agentId", "provider", "repository");
|
|
42
|
+
|
|
43
|
+
-- CreateIndex
|
|
44
|
+
CREATE INDEX "AgentRepository_provider_repository_idx" ON "AgentRepository"("provider", "repository");
|
|
45
|
+
|
|
46
|
+
-- CreateIndex
|
|
47
|
+
CREATE INDEX "HostEventDelivery_receivedAt_idx" ON "HostEventDelivery"("receivedAt");
|
|
48
|
+
|
|
49
|
+
-- AddForeignKey
|
|
50
|
+
ALTER TABLE "AgentRepository" ADD CONSTRAINT "AgentRepository_agentId_fkey" FOREIGN KEY ("agentId") REFERENCES "Agent"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
51
|
+
|
|
52
|
+
-- AddForeignKey
|
|
53
|
+
ALTER TABLE "RunHostCheck" ADD CONSTRAINT "RunHostCheck_runId_fkey" FOREIGN KEY ("runId") REFERENCES "Run"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
-- Additive: roles for self-hosted users (security finding A1). A privileged
|
|
2
|
+
-- operation (make_owner, setting workerImageRef, package approval) needs its
|
|
3
|
+
-- scope on the token AND one of the user's roles granting it, checked on
|
|
4
|
+
-- every request. Role names are validated in code (admin, package-approver).
|
|
5
|
+
-- Existing users get no roles (member) - an operator re-grants admin with
|
|
6
|
+
-- `wardby auth user grant --subject <subject> --role admin`.
|
|
7
|
+
|
|
8
|
+
-- AlterTable
|
|
9
|
+
ALTER TABLE "AuthUser" ADD COLUMN "roles" TEXT[] DEFAULT ARRAY[]::TEXT[];
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
-- Additive: per-agent reasoning effort for native agents. Nullable, so every
|
|
2
|
+
-- existing agent keeps the provider's default. Levels are validated in code
|
|
3
|
+
-- against the agent's model (low, medium, high, xhigh, max), not a DB enum.
|
|
4
|
+
|
|
5
|
+
-- AlterTable
|
|
6
|
+
ALTER TABLE "Agent" ADD COLUMN "effort" TEXT;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
-- Additive: npm lockfile verification (POST /registry/npm/-/plan). See
|
|
2
|
+
-- docs/coding-packages.md. Immutable per-version facts read from the
|
|
3
|
+
-- registry, and the exact versions a run's lockfile plan approved.
|
|
4
|
+
|
|
5
|
+
-- CreateTable
|
|
6
|
+
CREATE TABLE "RegistryVersionFact" (
|
|
7
|
+
"ecosystem" TEXT NOT NULL,
|
|
8
|
+
"name" TEXT NOT NULL,
|
|
9
|
+
"version" TEXT NOT NULL,
|
|
10
|
+
"publishedAt" TIMESTAMP(3) NOT NULL,
|
|
11
|
+
"integrity" TEXT NOT NULL,
|
|
12
|
+
"downloadUrl" TEXT NOT NULL,
|
|
13
|
+
"dependencies" JSONB NOT NULL,
|
|
14
|
+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
15
|
+
|
|
16
|
+
CONSTRAINT "RegistryVersionFact_pkey" PRIMARY KEY ("ecosystem","name","version")
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
-- CreateTable
|
|
20
|
+
CREATE TABLE "RegistryApprovedVersion" (
|
|
21
|
+
"runId" TEXT NOT NULL,
|
|
22
|
+
"ecosystem" TEXT NOT NULL,
|
|
23
|
+
"name" TEXT NOT NULL,
|
|
24
|
+
"version" TEXT NOT NULL,
|
|
25
|
+
"integrity" TEXT NOT NULL,
|
|
26
|
+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
27
|
+
|
|
28
|
+
CONSTRAINT "RegistryApprovedVersion_pkey" PRIMARY KEY ("runId","ecosystem","name","version")
|
|
29
|
+
);
|
|
30
|
+
|
|
31
|
+
-- AddForeignKey
|
|
32
|
+
ALTER TABLE "RegistryApprovedVersion" ADD CONSTRAINT "RegistryApprovedVersion_runId_fkey" FOREIGN KEY ("runId") REFERENCES "CodingRun"("runId") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
@@ -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;
|