@wardby/cli 0.6.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +5 -5
- package/README.md +6 -1
- package/deploy/local/docker-compose.quickstart-coding.yml +19 -0
- package/dist/claude-coding-worker/driver.d.ts +33 -3
- package/dist/claude-coding-worker/driver.js +151 -21
- package/dist/claude-coding-worker/main.js +38 -6
- package/dist/claude-coding-worker/sdk.js +29 -2
- package/dist/claude-coding-worker/tool-socket.d.ts +27 -0
- package/dist/claude-coding-worker/tool-socket.js +111 -0
- package/dist/claude-coding-worker/transcript.d.ts +18 -0
- package/dist/claude-coding-worker/transcript.js +77 -0
- package/dist/claude-plugin/command.d.ts +61 -0
- package/dist/claude-plugin/command.js +376 -0
- package/dist/cli-help.d.ts +1 -1
- package/dist/cli-help.js +3 -1
- package/dist/cli.js +71 -13
- package/dist/coding/code-host.d.ts +16 -0
- package/dist/coding/code-host.js +60 -0
- package/dist/coding/continuation-wording.d.ts +35 -0
- package/dist/coding/continuation-wording.js +73 -0
- package/dist/coding/linked-issue-note.d.ts +23 -0
- package/dist/coding/linked-issue-note.js +47 -0
- package/dist/coding/mcp-token.d.ts +12 -0
- package/dist/coding/mcp-token.js +26 -0
- package/dist/coding/merge-wording.d.ts +28 -0
- package/dist/coding/merge-wording.js +78 -0
- package/dist/coding/pr-description-note.d.ts +9 -0
- package/dist/coding/pr-description-note.js +32 -0
- package/dist/coding/profile.d.ts +46 -126
- package/dist/coding/profile.js +45 -4
- package/dist/coding/protected-path-wording.d.ts +8 -0
- package/dist/coding/protected-path-wording.js +1 -1
- package/dist/coding/protocol.d.ts +264 -346
- package/dist/coding/protocol.js +237 -12
- package/dist/coding/redact.d.ts +3 -0
- package/dist/coding/redact.js +17 -0
- package/dist/coding/registry/allowlist.d.ts +12 -0
- package/dist/coding/registry/allowlist.js +14 -1
- package/dist/coding/registry/audit-mode.d.ts +153 -0
- package/dist/coding/registry/audit-mode.js +304 -0
- package/dist/coding/registry/lockfile-shared.d.ts +36 -0
- package/dist/coding/registry/lockfile-shared.js +128 -0
- package/dist/coding/registry/lockfiles.js +1 -1
- package/dist/coding/registry/npm-lockfile-formats.d.ts +11 -0
- package/dist/coding/registry/npm-lockfile-formats.js +41 -0
- package/dist/coding/registry/npm-lockfile.d.ts +8 -4
- package/dist/coding/registry/npm-lockfile.js +4 -6
- package/dist/coding/registry/npm.js +78 -8
- package/dist/coding/registry/pnpm-lockfile.d.ts +17 -0
- package/dist/coding/registry/pnpm-lockfile.js +189 -0
- package/dist/coding/registry/pypi-plan.d.ts +50 -0
- package/dist/coding/registry/pypi-plan.js +406 -0
- package/dist/coding/registry/pypi-requirements.d.ts +58 -0
- package/dist/coding/registry/pypi-requirements.js +155 -0
- package/dist/coding/registry/pypi.d.ts +3 -27
- package/dist/coding/registry/pypi.js +40 -154
- package/dist/coding/registry/refusal-hints.d.ts +20 -0
- package/dist/coding/registry/refusal-hints.js +61 -0
- package/dist/coding/registry/refusal-wording.d.ts +11 -0
- package/dist/coding/registry/refusal-wording.js +56 -0
- package/dist/coding/registry/report.d.ts +70 -8
- package/dist/coding/registry/report.js +112 -5
- package/dist/coding/registry/types.d.ts +58 -8
- package/dist/coding/registry/yarn-lockfile.d.ts +30 -0
- package/dist/coding/registry/yarn-lockfile.js +367 -0
- package/dist/coding/services/catalog.d.ts +37 -351
- package/dist/coding/transcript/claude-code.d.ts +13 -0
- package/dist/coding/transcript/claude-code.js +273 -0
- package/dist/coding/transcript/download-protocol.d.ts +30 -0
- package/dist/coding/transcript/download-protocol.js +18 -0
- package/dist/coding/transcript/format.d.ts +20 -0
- package/dist/coding/transcript/format.js +32 -0
- package/dist/coding/transcript/recorder.d.ts +52 -0
- package/dist/coding/transcript/recorder.js +225 -0
- package/dist/coding/transcript/resume/checkout.d.ts +31 -0
- package/dist/coding/transcript/resume/checkout.js +203 -0
- package/dist/coding/transcript/resume/command.d.ts +17 -0
- package/dist/coding/transcript/resume/command.js +176 -0
- package/dist/coding/transcript/resume/download.d.ts +20 -0
- package/dist/coding/transcript/resume/download.js +153 -0
- package/dist/coding/transcript/resume/launch.d.ts +38 -0
- package/dist/coding/transcript/resume/launch.js +128 -0
- package/dist/coding/transcript/resume/session-file.d.ts +13 -0
- package/dist/coding/transcript/resume/session-file.js +79 -0
- package/dist/coding/transcript/resume/stand-in.d.ts +11 -0
- package/dist/coding/transcript/resume/stand-in.js +49 -0
- package/dist/coding-worker/artifact.d.ts +8 -3
- package/dist/coding-worker/artifact.js +3 -1
- package/dist/coding-worker/debug-trace.d.ts +9 -6
- package/dist/coding-worker/debug-trace.js +16 -19
- package/dist/coding-worker/dependency-cache.d.mts +229 -0
- package/dist/coding-worker/dependency-cache.mjs +2123 -0
- package/dist/coding-worker/driver.d.ts +4 -3
- package/dist/coding-worker/driver.js +124 -39
- package/dist/coding-worker/errors.d.ts +1 -0
- package/dist/coding-worker/errors.js +32 -0
- package/dist/coding-worker/main.js +5 -1
- package/dist/coding-worker/mcp-config.d.ts +27 -0
- package/dist/coding-worker/mcp-config.js +32 -0
- package/dist/coding-worker/sdk.d.ts +36 -0
- package/dist/coding-worker/sdk.js +28 -1
- package/dist/coding-worker/task-note.d.ts +11 -0
- package/dist/coding-worker/task-note.js +13 -0
- package/dist/coding-worker/types.d.ts +15 -0
- package/dist/config/dependency-cache.d.ts +23 -0
- package/dist/config/dependency-cache.js +32 -0
- package/dist/config/mcp-call-limit.d.ts +8 -0
- package/dist/config/mcp-call-limit.js +18 -0
- package/dist/config/mcp-servers.d.ts +8 -0
- package/dist/config/mcp-servers.js +12 -0
- package/dist/config/providers.d.ts +12 -3
- package/dist/config/providers.js +55 -5
- package/dist/config/test-simulators.d.ts +92 -0
- package/dist/config/test-simulators.js +333 -0
- package/dist/config/tool-timeout.d.ts +1 -0
- package/dist/config/tool-timeout.js +18 -0
- package/dist/core/async-context.d.ts +2 -0
- package/dist/core/async-context.js +12 -0
- package/dist/core/budget-events.d.ts +108 -0
- package/dist/core/budget-events.js +346 -0
- package/dist/core/budget-groups.d.ts +50 -1
- package/dist/core/budget-groups.js +236 -27
- package/dist/core/budget-stopped-head.d.ts +46 -0
- package/dist/core/budget-stopped-head.js +81 -0
- package/dist/core/budget-topup.d.ts +51 -0
- package/dist/core/budget-topup.js +156 -0
- package/dist/core/budget-wording.d.ts +16 -2
- package/dist/core/budget-wording.js +40 -2
- package/dist/core/coding-mcp.d.ts +36 -0
- package/dist/core/coding-mcp.js +253 -0
- package/dist/core/coding-queue.d.ts +2 -1
- package/dist/core/coding-queue.js +7 -0
- package/dist/core/coding-repository.d.ts +46 -0
- package/dist/core/coding-repository.js +92 -0
- package/dist/core/cron.d.ts +19 -1
- package/dist/core/cron.js +17 -0
- package/dist/core/datastores.js +1 -1
- package/dist/core/deferred-coding.d.ts +14 -0
- package/dist/core/deferred-coding.js +62 -0
- package/dist/core/delegation-child.d.ts +25 -0
- package/dist/core/delegation-child.js +37 -0
- package/dist/core/delegation-slots.d.ts +27 -0
- package/dist/core/delegation-slots.js +44 -0
- package/dist/core/dispatch.d.ts +48 -2
- package/dist/core/dispatch.js +166 -66
- package/dist/core/engine-native.js +1 -1
- package/dist/core/error-code.d.ts +38 -0
- package/dist/core/error-code.js +169 -0
- package/dist/core/grants.d.ts +46 -8
- package/dist/core/grants.js +99 -8
- package/dist/core/host-events.d.ts +18 -2
- package/dist/core/host-events.js +291 -27
- package/dist/core/host-status.d.ts +85 -3
- package/dist/core/host-status.js +300 -22
- package/dist/core/issue-bridge.d.ts +50 -6
- package/dist/core/issue-bridge.js +124 -33
- package/dist/core/issue-events.d.ts +1 -1
- package/dist/core/issue-events.js +4 -10
- package/dist/core/issue-status.d.ts +1 -1
- package/dist/core/issue-status.js +58 -29
- package/dist/core/logger.d.ts +5 -0
- package/dist/core/logger.js +14 -1
- package/dist/core/lost-run-children.d.ts +6 -0
- package/dist/core/lost-run-children.js +32 -0
- package/dist/core/mark-ready.d.ts +34 -0
- package/dist/core/mark-ready.js +152 -0
- package/dist/core/markdown-code.d.ts +8 -0
- package/dist/core/markdown-code.js +107 -0
- package/dist/core/mcp-client/client.d.ts +47 -0
- package/dist/core/mcp-client/client.js +141 -0
- package/dist/core/mcp-client/jsonrpc.d.ts +15 -0
- package/dist/core/mcp-client/jsonrpc.js +54 -0
- package/dist/core/mcp-client/results.d.ts +13 -0
- package/dist/core/mcp-client/results.js +42 -0
- package/dist/core/mcp-servers.d.ts +90 -0
- package/dist/core/mcp-servers.js +230 -0
- package/dist/core/mcp-tools.d.ts +108 -0
- package/dist/core/mcp-tools.js +287 -0
- package/dist/core/memory-tools.js +7 -0
- package/dist/core/merge-order-check.d.ts +2 -1
- package/dist/core/merge-order-check.js +44 -18
- package/dist/core/notification-dispatcher.js +2 -1
- package/dist/core/notification-templates.d.ts +1 -7
- package/dist/core/notification-templates.js +36 -2
- package/dist/core/pull-request-state-sync.js +2 -2
- package/dist/core/reconciler.d.ts +4 -3
- package/dist/core/reconciler.js +8 -1
- package/dist/core/related-pull-requests.d.ts +11 -3
- package/dist/core/related-pull-requests.js +49 -20
- package/dist/core/reply-parts.d.ts +21 -0
- package/dist/core/reply-parts.js +73 -0
- package/dist/core/review-fix.d.ts +1 -1
- package/dist/core/review-fix.js +4 -3
- package/dist/core/review-host-checks.d.ts +1 -1
- package/dist/core/review-host-tools.d.ts +3 -0
- package/dist/core/review-host-tools.js +102 -14
- package/dist/core/review-reads.d.ts +55 -0
- package/dist/core/review-reads.js +233 -0
- package/dist/core/run-status.d.ts +12 -0
- package/dist/core/run-status.js +12 -0
- package/dist/core/runner.d.ts +145 -49
- package/dist/core/runner.js +719 -216
- package/dist/core/schedule-start.d.ts +12 -0
- package/dist/core/schedule-start.js +14 -0
- package/dist/core/secret-broker-config.d.ts +12 -74
- package/dist/core/secret-broker-config.js +1 -1
- package/dist/core/secret-guard.d.ts +49 -0
- package/dist/core/secret-guard.js +119 -0
- package/dist/core/secret-guarded-stores.d.ts +12 -0
- package/dist/core/secret-guarded-stores.js +41 -0
- package/dist/core/secret-spans.d.ts +50 -0
- package/dist/core/secret-spans.js +94 -0
- package/dist/core/secrets.d.ts +11 -1
- package/dist/core/secrets.js +27 -1
- package/dist/core/serializable-retry.d.ts +18 -0
- package/dist/core/serializable-retry.js +43 -0
- package/dist/core/stop-run.d.ts +46 -0
- package/dist/core/stop-run.js +61 -0
- package/dist/core/tool-admin.d.ts +5 -1
- package/dist/core/tool-admin.js +7 -2
- package/dist/core/tool-names.d.ts +13 -0
- package/dist/core/tool-names.js +20 -0
- package/dist/core/webhooks.d.ts +4 -0
- package/dist/core/webhooks.js +68 -49
- package/dist/core/workflow-events.d.ts +14 -2
- package/dist/core/workflow-events.js +4 -0
- package/dist/core/workflow-run-events.d.ts +5 -3
- package/dist/core/workflow-run-events.js +45 -9
- package/dist/core/zod-json-schema.d.ts +4 -0
- package/dist/core/zod-json-schema.js +39 -0
- package/dist/core/zod3-window.d.ts +35 -0
- package/dist/core/zod3-window.js +124 -0
- package/dist/generated/prisma/browser.d.ts +65 -3
- package/dist/generated/prisma/client.d.ts +65 -3
- package/dist/generated/prisma/commonInputTypes.d.ts +266 -106
- package/dist/generated/prisma/enums.d.ts +10 -0
- package/dist/generated/prisma/enums.js +8 -0
- package/dist/generated/prisma/internal/class.d.ts +110 -0
- package/dist/generated/prisma/internal/class.js +4 -4
- package/dist/generated/prisma/internal/prismaNamespace.d.ts +957 -9
- package/dist/generated/prisma/internal/prismaNamespace.js +166 -2
- package/dist/generated/prisma/internal/prismaNamespaceBrowser.d.ts +174 -0
- package/dist/generated/prisma/internal/prismaNamespaceBrowser.js +166 -2
- package/dist/generated/prisma/models/Agent.d.ts +377 -8
- package/dist/generated/prisma/models/AgentMcpServer.d.ts +1412 -0
- package/dist/generated/prisma/models/AgentMcpServer.js +1 -0
- package/dist/generated/prisma/models/AgentRepository.d.ts +81 -1
- package/dist/generated/prisma/models/AuthUser.d.ts +1 -1
- package/dist/generated/prisma/models/CodingAgentProfile.d.ts +228 -7
- package/dist/generated/prisma/models/CodingProxyRequest.d.ts +207 -3
- package/dist/generated/prisma/models/CodingProxySession.d.ts +232 -2
- package/dist/generated/prisma/models/CodingRun.d.ts +1712 -1
- package/dist/generated/prisma/models/DependencySnapshot.d.ts +1668 -0
- package/dist/generated/prisma/models/DependencySnapshot.js +1 -0
- package/dist/generated/prisma/models/HostProvider.d.ts +2176 -0
- package/dist/generated/prisma/models/HostProvider.js +1 -0
- package/dist/generated/prisma/models/HostProviderCredential.d.ts +1285 -0
- package/dist/generated/prisma/models/HostProviderCredential.js +1 -0
- package/dist/generated/prisma/models/HostProviderOperation.d.ts +1470 -0
- package/dist/generated/prisma/models/HostProviderOperation.js +1 -0
- package/dist/generated/prisma/models/HostProviderTrustedAccount.d.ts +1145 -0
- package/dist/generated/prisma/models/HostProviderTrustedAccount.js +1 -0
- package/dist/generated/prisma/models/IssuePullRequest.d.ts +6 -2
- package/dist/generated/prisma/models/LocalReview.d.ts +40 -1
- package/dist/generated/prisma/models/McpServer.d.ts +1500 -0
- package/dist/generated/prisma/models/McpServer.js +1 -0
- package/dist/generated/prisma/models/NativeGatewayCall.d.ts +77 -1
- package/dist/generated/prisma/models/NativeGatewaySession.d.ts +35 -1
- package/dist/generated/prisma/models/Principal.d.ts +167 -0
- package/dist/generated/prisma/models/RegistryAllowance.d.ts +41 -1
- package/dist/generated/prisma/models/RegistryApprovedVersion.d.ts +75 -1
- package/dist/generated/prisma/models/RegistryAuditRecord.d.ts +1364 -0
- package/dist/generated/prisma/models/RegistryAuditRecord.js +1 -0
- package/dist/generated/prisma/models/ResourceGrant.d.ts +1 -1
- package/dist/generated/prisma/models/Run.d.ts +738 -2
- package/dist/generated/prisma/models/RunBudgetEvent.d.ts +1211 -0
- package/dist/generated/prisma/models/RunBudgetEvent.js +1 -0
- package/dist/generated/prisma/models/RunTranscript.d.ts +1339 -0
- package/dist/generated/prisma/models/RunTranscript.js +1 -0
- package/dist/generated/prisma/models/Secret.d.ts +387 -0
- package/dist/generated/prisma/models/Tool.d.ts +223 -1
- package/dist/generated/prisma/models.d.ts +10 -0
- package/dist/help/search.js +12 -3
- package/dist/help-index.json +2033 -110
- package/dist/import/create.js +48 -4
- package/dist/import/neutral-schema.d.ts +51 -281
- package/dist/import/neutral-schema.js +7 -4
- package/dist/knowledge/check.d.ts +1 -1
- package/dist/knowledge/cli.d.ts +11 -1
- package/dist/knowledge/cli.js +37 -4
- package/dist/knowledge/concept.d.ts +3 -19
- package/dist/knowledge/location.d.ts +31 -0
- package/dist/knowledge/location.js +78 -0
- package/dist/mcp/auth/access.d.ts +10 -2
- package/dist/mcp/auth/access.js +15 -1
- package/dist/mcp/auth/grants-cli.d.ts +6 -4
- package/dist/mcp/auth/grants-cli.js +42 -3
- package/dist/mcp/auth/ownership.d.ts +7 -7
- package/dist/mcp/auth/resource-server.d.ts +3 -1
- package/dist/mcp/auth/resource-server.js +17 -2
- package/dist/mcp/auth/self-hosted/credentials.d.ts +3 -3
- package/dist/mcp/auth/self-hosted/session.d.ts +2 -2
- package/dist/mcp/context.d.ts +3 -0
- package/dist/mcp/host-events/github-ingress.d.ts +2 -0
- package/dist/mcp/host-events/github-ingress.js +2 -1
- package/dist/mcp/index.d.ts +6 -0
- package/dist/mcp/index.js +69 -10
- package/dist/mcp/server.d.ts +13 -0
- package/dist/mcp/server.js +33 -14
- package/dist/mcp/tools/agents.d.ts +4 -0
- package/dist/mcp/tools/agents.js +295 -28
- package/dist/mcp/tools/datastore.js +17 -8
- package/dist/mcp/tools/grants.js +73 -29
- package/dist/mcp/tools/host-providers.d.ts +2 -0
- package/dist/mcp/tools/host-providers.js +215 -0
- package/dist/mcp/tools/mcp-servers.d.ts +26 -0
- package/dist/mcp/tools/mcp-servers.js +481 -0
- package/dist/mcp/tools/memory.js +11 -1
- package/dist/mcp/tools/notification-channels.js +2 -2
- package/dist/mcp/tools/packages.d.ts +2 -0
- package/dist/mcp/tools/packages.js +195 -0
- package/dist/mcp/tools/repositories.js +65 -12
- package/dist/mcp/tools/run-access.d.ts +16 -0
- package/dist/mcp/tools/run-access.js +25 -0
- package/dist/mcp/tools/run-transcript-download.d.ts +30 -0
- package/dist/mcp/tools/run-transcript-download.js +129 -0
- package/dist/mcp/tools/run-transcript.d.ts +19 -0
- package/dist/mcp/tools/run-transcript.js +70 -0
- package/dist/mcp/tools/runs.js +209 -27
- package/dist/mcp/tools/scheduling.js +3 -1
- package/dist/mcp/tools/secret-elicitation-form.js +5 -0
- package/dist/mcp/tools/secret-elicitation-server.d.ts +6 -0
- package/dist/mcp/tools/secret-elicitation-server.js +10 -61
- package/dist/mcp/tools/secret-elicitation.d.ts +2 -0
- package/dist/mcp/tools/secret-elicitation.js +25 -2
- package/dist/mcp/tools/secrets.js +40 -6
- package/dist/mcp/tools/stop-run.d.ts +2 -0
- package/dist/mcp/tools/stop-run.js +82 -0
- package/dist/mcp/tools/subagents.js +2 -2
- package/dist/mcp/tools/tools.d.ts +7 -5
- package/dist/mcp/tools/tools.js +64 -16
- package/dist/mcp/tools/trigger.js +28 -6
- package/dist/mcp/transport/http-limits.d.ts +2 -0
- package/dist/mcp/transport/http-limits.js +6 -2
- package/dist/mcp/transport/stdio-link-host.d.ts +20 -0
- package/dist/mcp/transport/stdio-link-host.js +67 -0
- package/dist/mcp/transport/streamable-http.d.ts +13 -0
- package/dist/mcp/transport/streamable-http.js +41 -1
- package/dist/mcp/webhooks/ingress.js +10 -0
- package/dist/native-worker/docker-launcher.d.ts +38 -2
- package/dist/native-worker/docker-launcher.js +65 -5
- package/dist/native-worker/gateway-server.d.ts +55 -3
- package/dist/native-worker/gateway-server.js +152 -34
- package/dist/native-worker/gateway.d.ts +29 -1
- package/dist/native-worker/gateway.js +74 -4
- package/dist/native-worker/http-server.d.ts +7 -1
- package/dist/native-worker/http-server.js +62 -7
- package/dist/native-worker/http-transport.js +1 -1
- package/dist/native-worker/kubernetes-launcher.d.ts +7 -3
- package/dist/native-worker/kubernetes-launcher.js +43 -3
- package/dist/native-worker/launch.d.ts +18 -1
- package/dist/native-worker/launch.js +6 -1
- package/dist/native-worker/ledger.d.ts +24 -4
- package/dist/native-worker/ledger.js +62 -8
- package/dist/native-worker/loopback.js +3 -8
- package/dist/native-worker/main.d.ts +2 -1
- package/dist/native-worker/main.js +14 -3
- package/dist/native-worker/protocol.d.ts +130 -577
- package/dist/native-worker/protocol.js +51 -2
- package/dist/native-worker/sandbox-executor.d.ts +17 -2
- package/dist/native-worker/sandbox-executor.js +78 -4
- package/dist/native-worker/stderr-redaction.d.ts +77 -0
- package/dist/native-worker/stderr-redaction.js +237 -0
- package/dist/native-worker/stdio.d.ts +1 -1
- package/dist/native-worker/stdio.js +6 -5
- package/dist/native-worker/warm-pool.d.ts +2 -2
- package/dist/native-worker/warm-pool.js +4 -4
- package/dist/native-worker/worker.js +28 -2
- package/dist/observability/metrics.js +6 -1
- package/dist/providers/auth/self-hosted.d.ts +1 -1
- package/dist/providers/coding-proxy/capability-hash.d.ts +2 -0
- package/dist/providers/coding-proxy/capability-hash.js +5 -0
- package/dist/providers/coding-proxy/dependency-cache/eviction.d.ts +29 -0
- package/dist/providers/coding-proxy/dependency-cache/eviction.js +87 -0
- package/dist/providers/coding-proxy/dependency-cache/key.d.ts +33 -0
- package/dist/providers/coding-proxy/dependency-cache/key.js +86 -0
- package/dist/providers/coding-proxy/dependency-cache/model-request-seal.d.ts +18 -0
- package/dist/providers/coding-proxy/dependency-cache/model-request-seal.js +40 -0
- package/dist/providers/coding-proxy/dependency-cache/prisma-store.d.ts +25 -0
- package/dist/providers/coding-proxy/dependency-cache/prisma-store.js +131 -0
- package/dist/providers/coding-proxy/dependency-cache/service.d.ts +70 -0
- package/dist/providers/coding-proxy/dependency-cache/service.js +409 -0
- package/dist/providers/coding-proxy/dependency-cache/store.d.ts +85 -0
- package/dist/providers/coding-proxy/dependency-cache/store.js +95 -0
- package/dist/providers/coding-proxy/hold.d.ts +32 -0
- package/dist/providers/coding-proxy/hold.js +86 -0
- package/dist/providers/coding-proxy/interrupted.d.ts +70 -0
- package/dist/providers/coding-proxy/interrupted.js +104 -0
- package/dist/providers/coding-proxy/mcp-route.d.ts +34 -0
- package/dist/providers/coding-proxy/mcp-route.js +166 -0
- package/dist/providers/coding-proxy/memory-ledger.d.ts +17 -2
- package/dist/providers/coding-proxy/memory-ledger.js +99 -8
- package/dist/providers/coding-proxy/metering.d.ts +16 -0
- package/dist/providers/coding-proxy/metering.js +27 -4
- package/dist/providers/coding-proxy/prisma-ledger.d.ts +16 -2
- package/dist/providers/coding-proxy/prisma-ledger.js +209 -69
- package/dist/providers/coding-proxy/proxy.d.ts +21 -2
- package/dist/providers/coding-proxy/proxy.js +300 -48
- package/dist/providers/coding-proxy/registry/audit.d.ts +53 -10
- package/dist/providers/coding-proxy/registry/audit.js +94 -17
- package/dist/providers/coding-proxy/registry/lockfile-parse-worker.d.ts +36 -0
- package/dist/providers/coding-proxy/registry/lockfile-parse-worker.js +67 -0
- package/dist/providers/coding-proxy/registry/lockfile-parse.d.ts +16 -0
- package/dist/providers/coding-proxy/registry/lockfile-parse.js +110 -0
- package/dist/providers/coding-proxy/registry/plan.d.ts +9 -0
- package/dist/providers/coding-proxy/registry/plan.js +201 -48
- package/dist/providers/coding-proxy/registry/prisma-store.d.ts +11 -5
- package/dist/providers/coding-proxy/registry/prisma-store.js +120 -17
- package/dist/providers/coding-proxy/registry/service.d.ts +97 -16
- package/dist/providers/coding-proxy/registry/service.js +579 -112
- package/dist/providers/coding-proxy/registry/store.d.ts +84 -9
- package/dist/providers/coding-proxy/registry/store.js +54 -1
- package/dist/providers/coding-proxy/runtime.d.ts +10 -0
- package/dist/providers/coding-proxy/runtime.js +109 -16
- package/dist/providers/coding-proxy/server.d.ts +9 -1
- package/dist/providers/coding-proxy/server.js +55 -1
- package/dist/providers/coding-proxy/types.d.ts +78 -1
- package/dist/providers/datastore/types.d.ts +5 -0
- package/dist/providers/engine/types.d.ts +17 -2
- package/dist/providers/engine/types.js +17 -0
- package/dist/providers/executor/composition.d.ts +10 -3
- package/dist/providers/executor/composition.js +52 -7
- package/dist/providers/executor/container.d.ts +394 -9
- package/dist/providers/executor/container.js +1210 -96
- package/dist/providers/executor/dbos-status.d.ts +31 -0
- package/dist/providers/executor/dbos-status.js +64 -0
- package/dist/providers/executor/dbos.d.ts +50 -1
- package/dist/providers/executor/dbos.js +207 -20
- package/dist/providers/executor/deferred.d.ts +12 -24
- package/dist/providers/executor/deferred.js +10 -29
- package/dist/providers/executor/in-process.d.ts +9 -1
- package/dist/providers/executor/in-process.js +14 -4
- package/dist/providers/executor/linked-issue-reader.d.ts +16 -0
- package/dist/providers/executor/linked-issue-reader.js +30 -0
- package/dist/providers/executor/routing.d.ts +2 -0
- package/dist/providers/executor/routing.js +4 -0
- package/dist/providers/executor/types.d.ts +13 -0
- package/dist/providers/host-tools/invoke.d.ts +37 -0
- package/dist/providers/host-tools/invoke.js +117 -0
- package/dist/providers/host-tools/operations.d.ts +65 -0
- package/dist/providers/host-tools/operations.js +149 -0
- package/dist/providers/host-tools/registry.d.ts +79 -0
- package/dist/providers/host-tools/registry.js +362 -0
- package/dist/providers/host-tools/request-guard.d.ts +17 -0
- package/dist/providers/host-tools/request-guard.js +99 -0
- package/dist/providers/host-tools/self-test.d.ts +64 -0
- package/dist/providers/host-tools/self-test.js +142 -0
- package/dist/providers/index.d.ts +2 -1
- package/dist/providers/issue-tracker/types.d.ts +17 -0
- package/dist/providers/issue-tracker/types.js +39 -1
- package/dist/providers/jobs/claude-tool-setup.d.ts +4 -0
- package/dist/providers/jobs/claude-tool-setup.js +5 -2
- package/dist/providers/jobs/docker-isolation.d.ts +10 -2
- package/dist/providers/jobs/docker-isolation.js +47 -8
- package/dist/providers/jobs/docker.d.ts +9 -0
- package/dist/providers/jobs/docker.js +60 -11
- package/dist/providers/jobs/fake-kubernetes-api.d.ts +2 -0
- package/dist/providers/jobs/fake-kubernetes-api.js +3 -0
- package/dist/providers/jobs/kubernetes-api.d.ts +8 -0
- package/dist/providers/jobs/kubernetes-api.js +10 -0
- package/dist/providers/jobs/kubernetes-client.js +10 -1
- package/dist/providers/jobs/kubernetes-isolation.d.ts +5 -1
- package/dist/providers/jobs/kubernetes-isolation.js +32 -3
- package/dist/providers/jobs/kubernetes.d.ts +11 -1
- package/dist/providers/jobs/kubernetes.js +111 -17
- package/dist/providers/jobs/types.d.ts +39 -0
- package/dist/providers/jobs/types.js +13 -1
- package/dist/providers/llm/anthropic.js +5 -1
- package/dist/providers/llm/bedrock.d.ts +0 -12
- package/dist/providers/llm/bedrock.js +4 -0
- package/dist/providers/llm/claude-messages.d.ts +3 -1
- package/dist/providers/llm/claude-messages.js +4 -1
- package/dist/providers/llm/claude-provider.d.ts +2 -2
- package/dist/providers/llm/claude-provider.js +2 -2
- package/dist/providers/llm/openai.d.ts +2 -2
- package/dist/providers/llm/openai.js +6 -2
- package/dist/providers/llm/routing.d.ts +2 -2
- package/dist/providers/llm/routing.js +2 -2
- package/dist/providers/llm/types.d.ts +12 -2
- package/dist/providers/review-host/github-events.d.ts +9 -1
- package/dist/providers/review-host/github-events.js +34 -12
- package/dist/providers/review-host/github.d.ts +29 -2
- package/dist/providers/review-host/github.js +224 -29
- package/dist/providers/review-host/local.d.ts +8 -4
- package/dist/providers/review-host/local.js +49 -31
- package/dist/providers/review-host/patch-pages.d.ts +41 -0
- package/dist/providers/review-host/patch-pages.js +176 -0
- package/dist/providers/review-host/review-format.d.ts +19 -1
- package/dist/providers/review-host/review-format.js +38 -7
- package/dist/providers/review-host/types.d.ts +140 -6
- package/dist/providers/review-host/types.js +9 -1
- package/dist/providers/storage/gcs.d.ts +63 -0
- package/dist/providers/storage/gcs.js +69 -0
- package/dist/providers/storage/index.d.ts +15 -0
- package/dist/providers/storage/index.js +14 -0
- package/dist/providers/storage/local.d.ts +24 -0
- package/dist/providers/storage/local.js +92 -0
- package/dist/providers/storage/meter.d.ts +14 -0
- package/dist/providers/storage/meter.js +34 -0
- package/dist/providers/storage/s3.d.ts +41 -0
- package/dist/providers/storage/s3.js +107 -0
- package/dist/providers/storage/types.d.ts +37 -3
- package/dist/providers/storage/types.js +21 -4
- package/dist/providers/vcs/git.d.ts +39 -4
- package/dist/providers/vcs/git.js +339 -26
- package/dist/providers/vcs/github-remote.d.ts +26 -3
- package/dist/providers/vcs/github-remote.js +124 -14
- package/dist/providers/vcs/github.d.ts +183 -44
- package/dist/providers/vcs/github.js +455 -56
- package/dist/providers/vcs/index.d.ts +1 -1
- package/dist/providers/vcs/index.js +9 -2
- package/dist/providers/vcs/pr-description.d.ts +127 -0
- package/dist/providers/vcs/pr-description.js +270 -0
- package/dist/providers/vcs/remote.d.ts +37 -1
- package/dist/providers/vcs/remote.js +7 -1
- package/dist/providers/vcs/routing.d.ts +16 -8
- package/dist/providers/vcs/routing.js +27 -6
- package/dist/providers/vcs/types.d.ts +150 -5
- package/dist/quickstart/coding-seed.d.ts +14 -3
- package/dist/quickstart/coding-seed.js +213 -4
- package/dist/quickstart/index.d.ts +5 -0
- package/dist/quickstart/index.js +21 -0
- package/dist/quickstart/reviewer-prompt.d.ts +1 -1
- package/dist/quickstart/reviewer-prompt.js +6 -6
- package/dist/quickstart-images.json +1 -1
- package/dist/sandbox/eval-core.d.ts +12 -2
- package/dist/sandbox/eval-core.js +20 -4
- package/dist/sandbox/generated/zod.bundle.js +62 -1
- package/dist/sandbox/generated/zod3.bundle.js +5 -0
- package/dist/sandbox/host-functions.d.ts +5 -0
- package/dist/sandbox/host-functions.js +13 -13
- package/dist/sandbox/limits.d.ts +4 -1
- package/dist/sandbox/limits.js +4 -1
- package/dist/sandbox/run-in-sandbox.d.ts +6 -0
- package/dist/sandbox/run-in-sandbox.js +14 -2
- package/dist/sandbox/safe-fetch.d.ts +2 -0
- package/dist/sandbox/safe-fetch.js +1 -1
- package/dist/sandbox/secret-broker.d.ts +1 -0
- package/dist/sandbox/secret-broker.js +4 -5
- package/dist/sandbox/tool-capabilities.d.ts +10 -30
- package/dist/sandbox/tool-timeout.d.ts +32 -0
- package/dist/sandbox/tool-timeout.js +52 -0
- package/dist/sandbox/user-tool.d.ts +8 -1
- package/dist/sandbox/user-tool.js +9 -3
- package/dist/sandbox/zod-params.d.ts +37 -5
- package/dist/sandbox/zod-params.js +181 -26
- package/dist/serve.js +8 -1
- package/dist/viewer/api-schema.d.ts +349 -2627
- package/dist/viewer/api-schema.js +7 -0
- package/dist/viewer/build-schemas.js +6 -2
- package/dist/viewer/graph.js +2 -1
- package/dist/viewer/openapi.js +2 -4
- package/dist/wardby-bin.js +15 -0
- package/docs/README.md +11 -1
- package/docs/agent-recipes.md +95 -24
- package/docs/architecture-runtime.md +1 -1
- package/docs/claude-code-plugin.md +164 -0
- package/docs/code-review-agents.md +557 -41
- package/docs/coding-agent-setup.md +566 -8
- package/docs/coding-packages.md +1033 -90
- package/docs/coding-services.md +27 -12
- package/docs/coding-worker-byo-images.md +24 -2
- package/docs/coding-worker-isolation.md +183 -37
- package/docs/debugging-agent-runs.md +242 -0
- package/docs/getting-started-gke.md +129 -141
- package/docs/getting-started-identity-provider.md +53 -38
- package/docs/getting-started.md +17 -0
- package/docs/host-providers.md +294 -0
- package/docs/jira-agents.md +17 -8
- package/docs/knowledge/blob-not-found-semantics.md +41 -0
- package/docs/knowledge/bounded-file-descriptor.md +52 -0
- package/docs/knowledge/delegation-admission-slots.md +52 -0
- package/docs/knowledge/http-dispatcher-bootstrap.md +61 -0
- package/docs/knowledge/import-rename-target.md +52 -0
- package/docs/knowledge/index.md +57 -0
- package/docs/knowledge/log.md +9 -0
- package/docs/knowledge/mcp-cancelled-task-precedence.md +41 -0
- package/docs/knowledge/mcp-http-prompt-discovery.md +41 -0
- package/docs/knowledge/mcp-schema-module-boundary.md +41 -0
- package/docs/knowledge/nullable-tool-uniqueness.md +52 -0
- package/docs/knowledge/overview-cli.md +74 -0
- package/docs/knowledge/overview-coding-proxy.md +72 -0
- package/docs/knowledge/overview-coding.md +72 -0
- package/docs/knowledge/overview-config.md +60 -0
- package/docs/knowledge/overview-core.md +72 -0
- package/docs/knowledge/overview-deploy.md +83 -0
- package/docs/knowledge/overview-mcp.md +61 -0
- package/docs/knowledge/overview-prisma.md +72 -0
- package/docs/knowledge/overview-providers.md +89 -0
- package/docs/knowledge/overview-sandbox.md +83 -0
- package/docs/knowledge/overview-surfaces.md +83 -0
- package/docs/knowledge/private-datastore-shared-boundary.md +54 -0
- package/docs/knowledge/proxy-settlement-projections.md +41 -0
- package/docs/knowledge/run-pricing-first-writer.md +43 -0
- package/docs/knowledge/schedule-claim-transaction.md +41 -0
- package/docs/knowledge/secret-entry-replica-contract.md +52 -0
- package/docs/knowledge/terminal-run-first-writer.md +41 -0
- package/docs/knowledge/transactional-agent-authorization.md +52 -0
- package/docs/knowledge/viewer-notify-write-isolation.md +30 -0
- package/docs/knowledge/warm-input-publication.md +30 -0
- package/docs/knowledge/workspace-staging-failure.md +54 -0
- package/docs/knowledge.md +54 -14
- package/docs/mcp-servers.md +254 -0
- package/docs/native-sandbox.md +143 -31
- package/docs/observability.md +4 -0
- package/docs/security-deployment.md +139 -29
- package/docs/slack-notifications.md +35 -19
- package/docs/tool-secrets.md +45 -10
- package/docs/viewer-api.md +6 -0
- package/docs/viewer-api.openapi.yml +1 -1
- package/help/admin-viewer.md +28 -2
- package/help/agent-recipes.md +33 -2
- package/help/architecture-agent.md +11 -6
- package/help/brokered-secrets.md +3 -0
- package/help/build-claude-code-image.md +1 -1
- package/help/build-worker-image.md +3 -1
- package/help/builder-agent.md +19 -6
- package/help/claude-code-run-pane.md +40 -0
- package/help/code-review-agents.md +177 -6
- package/help/coding-packages.md +156 -6
- package/help/cost-attribution.md +9 -5
- package/help/creating-agents.md +14 -1
- package/help/dependency-cache.md +143 -0
- package/help/deploy-gke.md +15 -8
- package/help/errors/budget-exhausted.md +187 -0
- package/help/errors/budget-group-exhausted.md +5 -1
- package/help/errors/coding-mcp-pins-unavailable.md +35 -0
- package/help/errors/coding-stream-quota-exceeded.md +33 -0
- package/help/errors/coding-workspace-disk-exceeds-limit.md +39 -0
- package/help/errors/continuation-closed.md +9 -12
- package/help/errors/database-auth-invalid.md +1 -1
- package/help/errors/delegation-conflict.md +24 -0
- package/help/errors/file-list-truncated.md +45 -0
- package/help/errors/full-read-required.md +49 -0
- package/help/errors/github-account-not-allowed.md +4 -0
- package/help/errors/graph-incomplete.md +43 -0
- package/help/errors/graph-limit.md +43 -0
- package/help/errors/host-provider-error.md +40 -0
- package/help/errors/host-tool-failed.md +36 -0
- package/help/errors/mcp-call-limit.md +22 -0
- package/help/errors/mcp-call-timeout.md +22 -0
- package/help/errors/mcp-server-auth-failed.md +22 -0
- package/help/errors/mcp-server-credentials-unavailable.md +45 -0
- package/help/errors/mcp-server-error.md +28 -0
- package/help/errors/mcp-server-unreachable.md +22 -0
- package/help/errors/mcp-servers-off.md +21 -0
- package/help/errors/mcp-tool-not-allowed.md +26 -0
- package/help/errors/mcp-tool-removed.md +22 -0
- package/help/errors/mcp-unavailable.md +25 -0
- package/help/errors/merge-conflict.md +49 -0
- package/help/errors/native-sandbox-capacity.md +1 -1
- package/help/errors/native-sandbox-deadline-exceeded.md +1 -1
- package/help/errors/native-sandbox-docker-failed.md +1 -1
- package/help/errors/native-sandbox-gateway-error.md +20 -0
- package/help/errors/native-sandbox-gateway-unavailable.md +1 -1
- package/help/errors/native-sandbox-image-not-pinned.md +1 -1
- package/help/errors/native-sandbox-isolation-mismatch.md +1 -1
- package/help/errors/native-sandbox-launch-abandoned.md +21 -0
- package/help/errors/native-sandbox-network-unenforced.md +1 -1
- package/help/errors/native-sandbox-requires-catalog.md +1 -1
- package/help/errors/native-sandbox-unavailable.md +1 -1
- package/help/errors/native-sandbox-warm-delivery-failed.md +1 -1
- package/help/errors/native-sandbox-worker-exited.md +4 -3
- package/help/errors/native-sandbox-worker-lost.md +1 -1
- package/help/errors/native-sandbox-worker-unready.md +1 -1
- package/help/errors/package-not-allowed-pending.md +52 -0
- package/help/errors/package-not-allowed.md +51 -0
- package/help/errors/package-refusals.md +43 -0
- package/help/errors/patch-cursor-malformed.md +31 -0
- package/help/errors/repository-not-listed.md +36 -0
- package/help/errors/repository-required.md +36 -0
- package/help/errors/run-lost.md +39 -0
- package/help/errors/run-transcript-download.md +44 -0
- package/help/errors/secret-in-value.md +69 -0
- package/help/errors/target-merge.md +40 -0
- package/help/errors/tool-timeout.md +38 -0
- package/help/fix-merge-conflicts.md +73 -0
- package/help/github-app-setup.md +132 -0
- package/help/github.md +22 -0
- package/help/host-providers.md +40 -0
- package/help/identity-and-access.md +6 -1
- package/help/jira.md +23 -6
- package/help/knowledge.md +16 -7
- package/help/local-repositories.md +1 -1
- package/help/low-power-mode.md +7 -1
- package/help/mcp-servers.md +73 -0
- package/help/mcp.md +7 -2
- package/help/merge-order-check.md +5 -0
- package/help/native-capabilities.md +55 -1
- package/help/native-sandbox.md +16 -2
- package/help/operating-agents.md +21 -0
- package/help/package-audit-mode.md +91 -0
- package/help/related-pull-requests.md +17 -10
- package/help/repo-instructions-and-skills.md +3 -1
- package/help/resume-runs-locally.md +134 -0
- package/help/review-fix-rounds.md +33 -1
- package/help/sharing-agents.md +59 -0
- package/help/slack-notifications.md +19 -5
- package/help/status-comments.md +31 -0
- package/help/stop-run.md +58 -0
- package/help/troubleshooting/budgets.md +28 -0
- package/help/troubleshooting/coding-workers.md +86 -7
- package/help/troubleshooting/debugging-agent-runs.md +29 -0
- package/package.json +18 -10
- package/prisma/migrations/20261016000000_registry_approved_accepted_advisories/migration.sql +3 -0
- package/prisma/migrations/20261016000001_mark_ready_when_passing/migration.sql +3 -0
- package/prisma/migrations/20261017000000_debug_trace_max_mb/migration.sql +4 -0
- package/prisma/migrations/20261018000000_dependency_cache/migration.sql +53 -0
- package/prisma/migrations/20261019000000_claude_max_output_tokens/migration.sql +5 -0
- package/prisma/migrations/20261021000000_pr_description_hash/migration.sql +4 -0
- package/prisma/migrations/20261022000000_dependency_snapshot_validation_metadata/migration.sql +4 -0
- package/prisma/migrations/20261023000000_package_audit_mode/migration.sql +27 -0
- package/prisma/migrations/20261024000000_budget_events/migration.sql +26 -0
- package/prisma/migrations/20261025000000_cache_aware_holds/migration.sql +9 -0
- package/prisma/migrations/20261026000000_budget_overrun/migration.sql +4 -0
- package/prisma/migrations/20261027000000_coding_run_request/migration.sql +1 -0
- package/prisma/migrations/20261028000000_native_gateway_review_reads/migration.sql +6 -0
- package/prisma/migrations/20261029000000_lead_survives_deploy/migration.sql +6 -0
- package/prisma/migrations/20261030000000_local_review_covered_sha/migration.sql +2 -0
- package/prisma/migrations/20261031000000_coding_run_budget_limit/migration.sql +9 -0
- package/prisma/migrations/20261101000000_run_transcripts/migration.sql +22 -0
- package/prisma/migrations/20261102000000_host_providers/migration.sql +56 -0
- package/prisma/migrations/20261104000000_coding_agent_repository_list/migration.sql +5 -0
- package/prisma/migrations/20261106000000_tool_timeout/migration.sql +4 -0
- package/prisma/migrations/20261107000000_mcp_servers/migration.sql +33 -0
- package/prisma/migrations/20261108000000_coding_mcp/migration.sql +5 -0
- package/prisma/migrations/20261109000000_task_run_index/migration.sql +3 -0
- package/prisma/schema.prisma +468 -109
- package/scripts/git-askpass.sh +1 -1
- package/dist/sandbox/generated/zod-to-json-schema.bundle.js +0 -5
package/prisma/schema.prisma
CHANGED
|
@@ -20,16 +20,18 @@ datasource db {
|
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
model Agent {
|
|
23
|
-
id
|
|
24
|
-
name
|
|
25
|
-
systemPrompt
|
|
26
|
-
model
|
|
27
|
-
budgetUsd
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
23
|
+
id String @id @default(cuid())
|
|
24
|
+
name String @unique
|
|
25
|
+
systemPrompt String
|
|
26
|
+
model String
|
|
27
|
+
budgetUsd Decimal @db.Decimal(10, 4)
|
|
28
|
+
/// Percent above budgetUsd a run may spend: each coding run's limit, or (on a lead agent) its run tree's ceiling for coding sub-agents; native model calls are unaffected; group caps still apply.
|
|
29
|
+
allowedOverrunPercent Int @default(0)
|
|
30
|
+
createdAt DateTime @default(now())
|
|
31
|
+
updatedAt DateTime @updatedAt
|
|
32
|
+
runs Run[]
|
|
33
|
+
kind AgentKind @default(native)
|
|
34
|
+
codingProfile CodingAgentProfile?
|
|
33
35
|
|
|
34
36
|
// Phase 2: scheduling. `schedule` is a cron expression; null = manual-only.
|
|
35
37
|
schedule String?
|
|
@@ -58,6 +60,7 @@ model Agent {
|
|
|
58
60
|
repositories AgentRepository[]
|
|
59
61
|
deferredReviews DeferredReview[]
|
|
60
62
|
issueProjects AgentIssueProject[]
|
|
63
|
+
mcpServers AgentMcpServer[]
|
|
61
64
|
notificationChannels NotificationChannel[]
|
|
62
65
|
|
|
63
66
|
/// Self-defects opt-in: the Jira project and issue type wardby files the agent's own failures into. Both or neither.
|
|
@@ -184,6 +187,10 @@ model Tool {
|
|
|
184
187
|
jsonSchema Json
|
|
185
188
|
/// Tool body source; run inside the sandbox with the validated params.
|
|
186
189
|
code String
|
|
190
|
+
/// The tool's own time limit per call (ms). Null = the default (10 s). A
|
|
191
|
+
/// run uses the lower of this and WARDBY_TOOL_MAX_TIMEOUT_MS, and pins the
|
|
192
|
+
/// value its load step read, like the code.
|
|
193
|
+
timeoutMs Int?
|
|
187
194
|
createdAt DateTime @default(now())
|
|
188
195
|
updatedAt DateTime @updatedAt
|
|
189
196
|
agents AgentTool[]
|
|
@@ -193,6 +200,8 @@ model Tool {
|
|
|
193
200
|
ownerId String?
|
|
194
201
|
owner Principal? @relation(fields: [ownerId], references: [id])
|
|
195
202
|
|
|
203
|
+
hostProviderOperations HostProviderOperation[]
|
|
204
|
+
|
|
196
205
|
@@unique([ownerId, name])
|
|
197
206
|
}
|
|
198
207
|
|
|
@@ -361,17 +370,22 @@ model Run {
|
|
|
361
370
|
/// in-process runs. The reconciler consults the backend before declaring a
|
|
362
371
|
/// stale run lost, and can adopt one orphaned by a dead instance.
|
|
363
372
|
executionBackend String?
|
|
373
|
+
/// The DBOS workflow that currently holds this run, when it is not the run id: set when
|
|
374
|
+
/// recover() forks the run's workflow under a new application version. Null = the run id.
|
|
375
|
+
executionWorkflowId String?
|
|
364
376
|
/// The agent's nativeExecutionMode when this run was created, fixed for the
|
|
365
377
|
/// run's life and what the executor routes on. Null for coding runs and for
|
|
366
378
|
/// native runs from before the field existed, which run in the control plane.
|
|
367
379
|
nativeExecutionMode NativeExecutionMode?
|
|
368
380
|
codingRun CodingRun?
|
|
381
|
+
transcript RunTranscript?
|
|
369
382
|
hostCheck RunHostCheck?
|
|
370
383
|
hostStatus RunHostStatus?
|
|
371
384
|
issueStatus RunIssueStatus?
|
|
372
385
|
attribution RunAttribution?
|
|
373
386
|
modelUsage RunModelUsage[]
|
|
374
387
|
serviceStatuses CodingRunServiceStatus[]
|
|
388
|
+
budgetEvents RunBudgetEvent[]
|
|
375
389
|
/// A manual review of a local branch: this run is the review run dispatched for it.
|
|
376
390
|
localPullRequest LocalPullRequest?
|
|
377
391
|
/// A sandbox-mode native run's gateway session (native sandbox phase 3).
|
|
@@ -396,6 +410,9 @@ model Run {
|
|
|
396
410
|
parentRunId String?
|
|
397
411
|
parentRun Run? @relation("RunTree", fields: [parentRunId], references: [id])
|
|
398
412
|
childRuns Run[] @relation("RunTree")
|
|
413
|
+
/// The parent's delegation call (the model's tool-call id) that created this child, so a
|
|
414
|
+
/// re-executed delegate step finds the same child instead of starting another.
|
|
415
|
+
parentCallId String?
|
|
399
416
|
/// Ephemeral, per-dispatch grant: exactly the parent-memory keys this
|
|
400
417
|
/// one child run was handed permission to read via parent_memory_get.
|
|
401
418
|
/// Never a standing allowlist — re-granted on every dispatch call.
|
|
@@ -415,6 +432,7 @@ model Run {
|
|
|
415
432
|
/// text, no FK.
|
|
416
433
|
triggeredById String?
|
|
417
434
|
|
|
435
|
+
@@unique([parentRunId, parentCallId])
|
|
418
436
|
@@index([agentId, triggeredById])
|
|
419
437
|
/// The admin viewer's graph window (runs started since a time, or still
|
|
420
438
|
/// pending/running) and its ancestor/children walks (docs/viewer-api.md).
|
|
@@ -428,40 +446,54 @@ model Run {
|
|
|
428
446
|
/// Phase 5: owner-configured coding behavior. Runtime credentials and opaque
|
|
429
447
|
/// launcher handles never live on the reusable profile.
|
|
430
448
|
model CodingAgentProfile {
|
|
431
|
-
agentId String
|
|
432
|
-
agent Agent
|
|
433
|
-
provider String
|
|
449
|
+
agentId String @id
|
|
450
|
+
agent Agent @relation(fields: [agentId], references: [id], onDelete: Cascade)
|
|
451
|
+
provider String @default("codex")
|
|
434
452
|
repository String
|
|
435
|
-
baseRef String
|
|
453
|
+
baseRef String @default("main")
|
|
436
454
|
defaultTask String?
|
|
437
|
-
allowWebhookTaskOverride Boolean
|
|
438
|
-
timeoutSec Int
|
|
455
|
+
allowWebhookTaskOverride Boolean @default(false)
|
|
456
|
+
timeoutSec Int @default(1800)
|
|
439
457
|
/// Claude Code runs only: the most agent turns a run may take. Null = the worker default (200).
|
|
440
458
|
maxTurns Int?
|
|
459
|
+
/// Claude Code runs only: the most output tokens per model reply (1024-128000). Null = the worker default (32000).
|
|
460
|
+
maxOutputTokens Int?
|
|
441
461
|
/// Unused; dropped after rollout (see the package-registry plan, Task 14).
|
|
442
|
-
allowedEgress Json
|
|
462
|
+
allowedEgress Json @default("[]")
|
|
443
463
|
protectedPaths Json
|
|
444
|
-
collectExclude Json
|
|
445
|
-
toolchain String
|
|
464
|
+
collectExclude Json @default("[]")
|
|
465
|
+
toolchain String @default("node")
|
|
446
466
|
toolchainVersion String?
|
|
447
467
|
workerImageRef String?
|
|
448
468
|
/// Per-agent workspace size in MiB; null = CODING_DISK_MB.
|
|
449
469
|
workspaceDiskMb Int?
|
|
450
|
-
packageAllowlist Json
|
|
451
|
-
packagePolicy Json
|
|
470
|
+
packageAllowlist Json @default("{}")
|
|
471
|
+
packagePolicy Json @default("{}")
|
|
452
472
|
/// Admin-requested debug trace: while now < debugTraceUntil, every coding
|
|
453
473
|
/// run of this agent is dispatched with CodingRun.debugTrace set. Null = off.
|
|
454
474
|
debugTraceUntil DateTime?
|
|
475
|
+
/// Admin-set cap on one traced run's trace output, in MiB; null = the worker default (2).
|
|
476
|
+
debugTraceMaxMb Int?
|
|
455
477
|
/// Coding-run services (docs/coding-services.md): the catalog names
|
|
456
478
|
/// (CodingService.name) this agent's runs may start, any version the catalog
|
|
457
479
|
/// has. Empty = none. Owner-set through update_agent.
|
|
458
|
-
services Json
|
|
480
|
+
services Json @default("[]")
|
|
459
481
|
/// Load the repository's agent skills into coding runs (Codex: .agents/skills, .codex/skills;
|
|
460
482
|
/// Claude Code: .claude/skills). Repo instructions (AGENTS.md / CLAUDE.md) load regardless.
|
|
461
|
-
repoSkills Boolean
|
|
483
|
+
repoSkills Boolean @default(true)
|
|
462
484
|
/// Claude Code runs only: keep Claude Code's bare mode (CLAUDE_CODE_SIMPLE=1); wardby injects
|
|
463
485
|
/// repo instructions and the skill list into the system prompt. False = Claude Code's native loading.
|
|
464
|
-
claudeBareMode Boolean
|
|
486
|
+
claudeBareMode Boolean @default(true)
|
|
487
|
+
/// Restore node_modules from a cached snapshot (written only by trusted wardby code before the
|
|
488
|
+
/// agent starts) instead of a full install. Owner-set; off by default.
|
|
489
|
+
dependencyCache Boolean @default(false)
|
|
490
|
+
/// Keep each Claude Code run's session transcript so it can be resumed in a local CLI
|
|
491
|
+
/// (docs/coding-agent-setup.md#resume-a-run-locally). Owner-set; off by default.
|
|
492
|
+
sessionResume Boolean @default(false)
|
|
493
|
+
/// Owner-set package audit mode (docs/coding-packages.md#package-audit-mode); active while now < packageAuditUntil.
|
|
494
|
+
packageAuditMode PackageAuditMode?
|
|
495
|
+
/// End of the audit window; null = off.
|
|
496
|
+
packageAuditUntil DateTime?
|
|
465
497
|
|
|
466
498
|
/// How `repository` was authorized for this agent (see AgentRepository.authorizedVia):
|
|
467
499
|
/// "host_permission", "admin", or "grandfathered". Null = never authorized; runs are refused.
|
|
@@ -474,64 +506,106 @@ model CodingAgentProfile {
|
|
|
474
506
|
/// Phase 5: immutable dispatch inputs plus opaque execution/result state for
|
|
475
507
|
/// one coding run. Policy is copied from the profile before work starts.
|
|
476
508
|
model CodingRun {
|
|
477
|
-
runId
|
|
478
|
-
run
|
|
479
|
-
task
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
509
|
+
runId String @id
|
|
510
|
+
run Run @relation(fields: [runId], references: [id], onDelete: Cascade)
|
|
511
|
+
task String
|
|
512
|
+
/// The run's own request (the trigger's task or the agent's default task), without the agent's standing instructions. Null on older runs.
|
|
513
|
+
request String? @db.Text
|
|
514
|
+
repository String
|
|
515
|
+
baseRef String
|
|
516
|
+
headRef String
|
|
517
|
+
provider String
|
|
518
|
+
model String
|
|
519
|
+
timeoutSec Int
|
|
486
520
|
/// Unused; dropped after rollout (see the package-registry plan, Task 14).
|
|
487
|
-
allowedEgress
|
|
488
|
-
protectedPaths
|
|
489
|
-
collectExclude
|
|
490
|
-
jobBackend
|
|
491
|
-
jobHandle
|
|
492
|
-
result
|
|
493
|
-
resultSchema
|
|
521
|
+
allowedEgress Json @default("[]")
|
|
522
|
+
protectedPaths Json
|
|
523
|
+
collectExclude Json @default("[]")
|
|
524
|
+
jobBackend String?
|
|
525
|
+
jobHandle String?
|
|
526
|
+
result Json?
|
|
527
|
+
resultSchema Int @default(1)
|
|
494
528
|
/// Sanitized terminal classification and an opaque log correlation reference.
|
|
495
529
|
/// Neither field may contain task, repository, environment, or credential data.
|
|
496
|
-
failureCategory
|
|
497
|
-
diagnosticId
|
|
498
|
-
workerImage
|
|
530
|
+
failureCategory String?
|
|
531
|
+
diagnosticId String?
|
|
532
|
+
workerImage String?
|
|
499
533
|
/// Claude Code's tool-runner image, resolved from the agent's toolchain at dispatch; null for Codex runs.
|
|
500
|
-
toolImage
|
|
501
|
-
|
|
534
|
+
toolImage String?
|
|
535
|
+
/// What the run may spend now: its base, plus every overrun top-up granted so
|
|
536
|
+
/// far (on runs with budgetLimitUsd). Budget groups and run trees hold it.
|
|
537
|
+
budgetReservedUsd Decimal @db.Decimal(10, 6)
|
|
538
|
+
/// The budget before the agent's allowed overrun. Null on older runs.
|
|
539
|
+
budgetBaseUsd Decimal? @db.Decimal(10, 6)
|
|
540
|
+
/// The most the run may spend: its base budget raised by the agent's allowed
|
|
541
|
+
/// overrun, never reserved up front; top-ups raise budgetReservedUsd toward it
|
|
542
|
+
/// only from room its group and run tree have left. Null = no top-ups (older
|
|
543
|
+
/// runs, or no allowed overrun): budgetReservedUsd is the limit.
|
|
544
|
+
budgetLimitUsd Decimal? @db.Decimal(10, 6)
|
|
545
|
+
/// What set budgetReservedUsd below the agent's own budget at dispatch:
|
|
546
|
+
/// run-tree, day, week or month. Null = the agent's own budget.
|
|
547
|
+
budgetLimitedBy String?
|
|
502
548
|
/// Phase 12 concurrency queue: set when start() found every coding slot
|
|
503
549
|
/// taken (CODING_MAX_CONCURRENT), cleared when the run claims a slot. A
|
|
504
550
|
/// pending run with queuedAt set is waiting, not orphaned.
|
|
505
|
-
queuedAt
|
|
551
|
+
queuedAt DateTime?
|
|
506
552
|
/// Per-agent workspace size in MiB; null = CODING_DISK_MB.
|
|
507
|
-
workspaceDiskMb
|
|
508
|
-
packageAllowlist
|
|
509
|
-
packagePolicy
|
|
553
|
+
workspaceDiskMb Int?
|
|
554
|
+
packageAllowlist Json @default("{}")
|
|
555
|
+
packagePolicy Json @default("{}")
|
|
510
556
|
/// Fixed at dispatch from the profile's debugTraceUntil: the worker writes a
|
|
511
557
|
/// full stream trace to its own pod log (never to the database).
|
|
512
|
-
debugTrace
|
|
558
|
+
debugTrace Boolean @default(false)
|
|
559
|
+
/// Fixed at dispatch from the profile's debugTraceMaxMb, only on a traced run. Null = the worker default.
|
|
560
|
+
debugTraceMaxMb Int?
|
|
513
561
|
/// Fixed at dispatch from the profile's maxTurns: the Claude Code worker's turn limit. Null = the worker default.
|
|
514
|
-
maxTurns
|
|
562
|
+
maxTurns Int?
|
|
563
|
+
/// Fixed at dispatch from the profile's maxOutputTokens: Claude Code's output tokens per reply. Null = the worker default.
|
|
564
|
+
maxOutputTokens Int?
|
|
515
565
|
/// Fixed at dispatch from the profile's repoSkills.
|
|
516
|
-
repoSkills
|
|
566
|
+
repoSkills Boolean @default(true)
|
|
517
567
|
/// Fixed at dispatch from the profile's claudeBareMode.
|
|
518
|
-
claudeBareMode
|
|
568
|
+
claudeBareMode Boolean @default(true)
|
|
519
569
|
/// Coding-run services resolved at dispatch from the base branch's
|
|
520
570
|
/// .wardby/services.yaml: one snapshot per service (the catalog entry minus
|
|
521
571
|
/// kind), fixed for the run's lifetime. Empty = none.
|
|
522
|
-
services
|
|
572
|
+
services Json @default("[]")
|
|
523
573
|
/// The originating tracker issue ("jira" + key), set by the control plane from the run tree, never from model output.
|
|
524
|
-
issueProvider
|
|
525
|
-
issueKey
|
|
574
|
+
issueProvider String?
|
|
575
|
+
issueKey String?
|
|
526
576
|
/// The branch a run pushed to a local repository (no pull request exists); null otherwise.
|
|
527
|
-
resultBranch
|
|
577
|
+
resultBranch String?
|
|
528
578
|
/// The commit the run started from (the base ref's tip when the workspace was prepared).
|
|
529
|
-
baseSha
|
|
579
|
+
baseSha String?
|
|
530
580
|
/// Step in the request's merge order set by the delegating agent (1 = first); null = no order.
|
|
531
|
-
mergeOrder
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
581
|
+
mergeOrder Int?
|
|
582
|
+
/// Fixed at dispatch: this run's repository came from an AgentRepository link, not the
|
|
583
|
+
/// profile, so that link must still exist whenever the run uses the repository.
|
|
584
|
+
viaRepositoryLink Boolean @default(false)
|
|
585
|
+
/// When Wardby marked this run's pull request ready for review (at most once;
|
|
586
|
+
/// a person moving it back to draft is final). Only set on a root coding run.
|
|
587
|
+
markedReadyAt DateTime?
|
|
588
|
+
/// Root coding run only: SHA-256 (hex) of the pull request description Wardby last wrote,
|
|
589
|
+
/// normalized (CRLF→LF, Related pull requests section removed, blank lines collapsed, trimmed).
|
|
590
|
+
/// Null = never recorded (pull requests opened before this column, or a lost first write).
|
|
591
|
+
prDescriptionSha256 String?
|
|
592
|
+
/// Root coding run only: the coding run whose final message is that description's agent-written part.
|
|
593
|
+
prDescriptionRunId String?
|
|
594
|
+
/// This run's description update: written | replaced | refreshed:<reason> | unchanged |
|
|
595
|
+
/// edited_by_hand | skipped:<reason>. Null = not attempted.
|
|
596
|
+
prDescriptionOutcome String?
|
|
597
|
+
/// Fixed at dispatch from the profile's dependencyCache.
|
|
598
|
+
dependencyCache Boolean @default(false)
|
|
599
|
+
/// Fixed at dispatch from the profile's sessionResume.
|
|
600
|
+
sessionResume Boolean @default(false)
|
|
601
|
+
/// What the run's dependency cache did, written by the control plane when it collects the run:
|
|
602
|
+
/// { result, key?, sizeBytes?, restoreMs?, installMs?, reason? }. Null = not used or not reported.
|
|
603
|
+
dependencyCacheResult Json?
|
|
604
|
+
/// Fixed at dispatch: the profile's packageAuditMode when its window was open, else null.
|
|
605
|
+
packageAuditMode PackageAuditMode?
|
|
606
|
+
createdAt DateTime @default(now())
|
|
607
|
+
updatedAt DateTime @updatedAt
|
|
608
|
+
proxySession CodingProxySession?
|
|
535
609
|
|
|
536
610
|
/// Revision-in-place for continuing an existing coding pull request.
|
|
537
611
|
/// Points directly at the ROOT CodingRun that actually owns the branch/PR
|
|
@@ -547,6 +621,8 @@ model CodingRun {
|
|
|
547
621
|
registryFetches RegistryFetch[]
|
|
548
622
|
registryApprovedVersions RegistryApprovedVersion[]
|
|
549
623
|
registryPlanRefusals RegistryPlanRefusal[]
|
|
624
|
+
registryAuditRecords RegistryAuditRecord[]
|
|
625
|
+
dependencySnapshots DependencySnapshot[]
|
|
550
626
|
|
|
551
627
|
@@index([jobBackend, jobHandle])
|
|
552
628
|
@@index([failureCategory])
|
|
@@ -555,6 +631,27 @@ model CodingRun {
|
|
|
555
631
|
@@index([mergeOrder])
|
|
556
632
|
}
|
|
557
633
|
|
|
634
|
+
/// A coding run's session transcript for local resume: metadata only. The redacted content lives in
|
|
635
|
+
/// the blob store under blobKey; the unredacted transcript is never stored.
|
|
636
|
+
model RunTranscript {
|
|
637
|
+
runId String @id
|
|
638
|
+
run Run @relation(fields: [runId], references: [id], onDelete: Cascade)
|
|
639
|
+
/// "claude-code" (Codex later).
|
|
640
|
+
provider String
|
|
641
|
+
/// stored | too_large | not_captured | failed
|
|
642
|
+
status String
|
|
643
|
+
/// Fixed code for a status other than stored (e.g. missing, no_blob_store, secrets_unavailable); never content.
|
|
644
|
+
reason String?
|
|
645
|
+
sessionId String?
|
|
646
|
+
blobKey String?
|
|
647
|
+
sizeBytes Int?
|
|
648
|
+
sha256 String?
|
|
649
|
+
createdAt DateTime @default(now())
|
|
650
|
+
expiresAt DateTime
|
|
651
|
+
|
|
652
|
+
@@index([expiresAt])
|
|
653
|
+
}
|
|
654
|
+
|
|
558
655
|
/// Coding-run services (docs/coding-services.md): the catalog a repository's
|
|
559
656
|
/// .wardby/services.yaml names entries from. Admin-managed over MCP
|
|
560
657
|
/// (list/get_service: agents:read; create/update/delete_service:
|
|
@@ -634,6 +731,28 @@ enum CodingProxyRequestStatus {
|
|
|
634
731
|
uncertain
|
|
635
732
|
}
|
|
636
733
|
|
|
734
|
+
enum RunBudgetEventKind {
|
|
735
|
+
refused
|
|
736
|
+
/// A coding run's overrun top-up found no room in its budget group or run tree.
|
|
737
|
+
overrun_unavailable
|
|
738
|
+
}
|
|
739
|
+
|
|
740
|
+
/// One budget decision about a run: a refusal by the coding proxy or at
|
|
741
|
+
/// dispatch, or an overrun top-up with no room, with the numbers behind it.
|
|
742
|
+
/// `limit` names what refused it: run, run-tree, day, week or month. `details`
|
|
743
|
+
/// holds amounts, the model and the turn; never secrets or message text.
|
|
744
|
+
model RunBudgetEvent {
|
|
745
|
+
id String @id @default(cuid())
|
|
746
|
+
runId String
|
|
747
|
+
run Run @relation(fields: [runId], references: [id], onDelete: Cascade)
|
|
748
|
+
kind RunBudgetEventKind
|
|
749
|
+
limit String
|
|
750
|
+
at DateTime @default(now())
|
|
751
|
+
details Json
|
|
752
|
+
|
|
753
|
+
@@index([runId, at])
|
|
754
|
+
}
|
|
755
|
+
|
|
637
756
|
enum NativeGatewaySessionStatus {
|
|
638
757
|
active
|
|
639
758
|
finished
|
|
@@ -677,6 +796,9 @@ model NativeGatewaySession {
|
|
|
677
796
|
/// probe; a Docker run's network exists before its container). The gateway
|
|
678
797
|
/// serves nothing before this is set.
|
|
679
798
|
networkReadyAt DateTime?
|
|
799
|
+
/// What the run's review tools have read (ReviewReadsState), saved between gateway requests
|
|
800
|
+
/// for repo_publish_review's unread_files check. Null until the run reads a pull request.
|
|
801
|
+
reviewReads Json?
|
|
680
802
|
createdAt DateTime @default(now())
|
|
681
803
|
updatedAt DateTime @updatedAt
|
|
682
804
|
calls NativeGatewayCall[]
|
|
@@ -723,6 +845,8 @@ model NativeGatewayCall {
|
|
|
723
845
|
status NativeGatewayCallStatus
|
|
724
846
|
reservationUsd Decimal? @db.Decimal(18, 10)
|
|
725
847
|
actualCostUsd Decimal? @db.Decimal(18, 10)
|
|
848
|
+
/// actualCostUsd is an estimate for an interrupted call, not provider usage.
|
|
849
|
+
costEstimated Boolean @default(false)
|
|
726
850
|
inputTokens Int?
|
|
727
851
|
outputTokens Int?
|
|
728
852
|
cachedInputTokens Int?
|
|
@@ -732,6 +856,8 @@ model NativeGatewayCall {
|
|
|
732
856
|
childRunId String?
|
|
733
857
|
/// A delegation's sub-agent, recorded at admission (it holds a place while waiting for budget).
|
|
734
858
|
childAgentId String?
|
|
859
|
+
/// A coding delegation's repository, recorded with childAgentId. Null = the child's default.
|
|
860
|
+
childRepository String?
|
|
735
861
|
createdAt DateTime @default(now())
|
|
736
862
|
updatedAt DateTime @updatedAt
|
|
737
863
|
completedAt DateTime?
|
|
@@ -743,41 +869,55 @@ model NativeGatewayCall {
|
|
|
743
869
|
/// Trusted-boundary state for one coding run. Only a capability digest and an
|
|
744
870
|
/// upstream credential reference are persisted; neither secret value enters the DB.
|
|
745
871
|
model CodingProxySession {
|
|
746
|
-
id
|
|
747
|
-
runId
|
|
748
|
-
run
|
|
749
|
-
capabilityHash
|
|
750
|
-
credentialRef
|
|
751
|
-
protocol
|
|
752
|
-
allowedModels
|
|
753
|
-
deadlineAt
|
|
754
|
-
budgetUsd
|
|
755
|
-
status
|
|
756
|
-
createdAt
|
|
757
|
-
updatedAt
|
|
758
|
-
requests
|
|
872
|
+
id String @id @default(cuid())
|
|
873
|
+
runId String @unique
|
|
874
|
+
run CodingRun @relation(fields: [runId], references: [runId], onDelete: Cascade)
|
|
875
|
+
capabilityHash String @unique
|
|
876
|
+
credentialRef String
|
|
877
|
+
protocol String @default("openai-responses")
|
|
878
|
+
allowedModels Json
|
|
879
|
+
deadlineAt DateTime
|
|
880
|
+
budgetUsd Decimal @db.Decimal(18, 10)
|
|
881
|
+
status CodingProxySessionStatus @default(active)
|
|
882
|
+
createdAt DateTime @default(now())
|
|
883
|
+
updatedAt DateTime @updatedAt
|
|
884
|
+
requests CodingProxyRequest[]
|
|
759
885
|
/// Hash of the derived registry-only token (see deriveRegistryToken); the
|
|
760
886
|
/// token itself is never persisted.
|
|
761
|
-
registryTokenHash
|
|
887
|
+
registryTokenHash String? @unique
|
|
762
888
|
/// Set the first time the proxy refuses a request of this session for
|
|
763
889
|
/// budget; lets the executor report the run as out of budget.
|
|
764
|
-
budgetExhaustedAt
|
|
890
|
+
budgetExhaustedAt DateTime?
|
|
891
|
+
/// The numbers behind the first budget refusal of this session (budget, spent, holds, refused hold, model, turn); the control plane copies them into RunBudgetEvent. Never secrets.
|
|
892
|
+
budgetRefusal Json?
|
|
765
893
|
/// The upstream error code (a fixed identifier, never a message) of the
|
|
766
894
|
/// first provider failure the proxy relayed for this session; lets the
|
|
767
895
|
/// executor say the model provider refused the run.
|
|
768
|
-
upstreamFailure
|
|
896
|
+
upstreamFailure String?
|
|
769
897
|
/// The run's catalog entry, copied from Run.pricingSnapshot when the session
|
|
770
898
|
/// is created; the proxy prices and shapes requests from it. Null on
|
|
771
899
|
/// sessions from before the model catalog (the proxy falls back to the
|
|
772
900
|
/// shipped catalog).
|
|
773
|
-
pricingVersion
|
|
774
|
-
catalogEntry
|
|
901
|
+
pricingVersion String?
|
|
902
|
+
catalogEntry Json?
|
|
903
|
+
/// Dependency cache: every lockfile hash this session's plans approved (with
|
|
904
|
+
/// no refusals) while unsealed, at most 8. Only these may be restored or uploaded.
|
|
905
|
+
dependencyCacheLockHashes String[] @default([])
|
|
906
|
+
/// Set when the run's dependency step is over; after it the cache refuses this session.
|
|
907
|
+
dependencyCacheSealedAt DateTime?
|
|
908
|
+
/// Phase 2 of remote MCP servers: the run's pinned MCP tools (no URLs or secrets), or null.
|
|
909
|
+
mcpTools Json?
|
|
910
|
+
/// SHA-256 (base64url) of the run's MCP token; null when the run has no MCP tools.
|
|
911
|
+
mcpTokenHash String? @unique
|
|
912
|
+
/// MCP tools/call count for this run (capped by WARDBY_MCP_MAX_CALLS_PER_RUN).
|
|
913
|
+
mcpCallCount Int @default(0)
|
|
775
914
|
|
|
776
915
|
@@index([deadlineAt])
|
|
777
916
|
}
|
|
778
917
|
|
|
779
|
-
/// Monotonic per-upstream-call ledger.
|
|
780
|
-
///
|
|
918
|
+
/// Monotonic per-upstream-call ledger. An uncertain request without an
|
|
919
|
+
/// estimate stays held in full; one the proxy estimated (costEstimated) counts
|
|
920
|
+
/// at that estimate.
|
|
781
921
|
model CodingProxyRequest {
|
|
782
922
|
id String @id @default(cuid())
|
|
783
923
|
sessionId String
|
|
@@ -788,6 +928,17 @@ model CodingProxyRequest {
|
|
|
788
928
|
status CodingProxyRequestStatus @default(reserved)
|
|
789
929
|
reservationUsd Decimal @db.Decimal(18, 10)
|
|
790
930
|
actualCostUsd Decimal? @db.Decimal(18, 10)
|
|
931
|
+
/// actualCostUsd is the proxy's estimate for an interrupted (uncertain)
|
|
932
|
+
/// reply, not provider-reported usage.
|
|
933
|
+
costEstimated Boolean @default(false)
|
|
934
|
+
/// UTF-8 bytes of the forwarded request body; the next request's hold compares against it.
|
|
935
|
+
requestBytes Int?
|
|
936
|
+
/// The worst-case hold (whole body as uncached input); a reply costing more cancels the session.
|
|
937
|
+
ceilingUsd Decimal? @db.Decimal(18, 10)
|
|
938
|
+
/// "cached" (priced from the conversation's previous reply) or "full" (= ceilingUsd).
|
|
939
|
+
reservationBasis String?
|
|
940
|
+
/// sha256 of what identifies the conversation (first message, or OpenAI prompt_cache_key).
|
|
941
|
+
conversationKey String?
|
|
791
942
|
pricingVersion String
|
|
792
943
|
pricingSnapshot Json
|
|
793
944
|
inputTokens Int?
|
|
@@ -802,6 +953,33 @@ model CodingProxyRequest {
|
|
|
802
953
|
|
|
803
954
|
@@unique([sessionId, requestKey])
|
|
804
955
|
@@index([sessionId, status])
|
|
956
|
+
@@index([sessionId, conversationKey])
|
|
957
|
+
}
|
|
958
|
+
|
|
959
|
+
/// Package audit mode (docs/coding-packages.md#package-audit-mode).
|
|
960
|
+
enum PackageAuditMode {
|
|
961
|
+
audit
|
|
962
|
+
full
|
|
963
|
+
}
|
|
964
|
+
|
|
965
|
+
/// One package version a run's registry served only because of package audit mode (or, in full mode,
|
|
966
|
+
/// served despite blocking advisories). Insert-only for the proxy.
|
|
967
|
+
model RegistryAuditRecord {
|
|
968
|
+
runId String
|
|
969
|
+
ecosystem String
|
|
970
|
+
name String
|
|
971
|
+
version String
|
|
972
|
+
/// "top-level" | "transitive" | "unknown" | "allowed" (allowed = on the allowlist graph, recorded only for advisories)
|
|
973
|
+
relation String
|
|
974
|
+
/// The top-level audited package that pulled it in (transitive only).
|
|
975
|
+
via String?
|
|
976
|
+
sizeBytes Int?
|
|
977
|
+
/// Full mode: [{ id, severity, summary }] served past; [] otherwise.
|
|
978
|
+
advisories Json @default("[]")
|
|
979
|
+
createdAt DateTime @default(now())
|
|
980
|
+
run CodingRun @relation(fields: [runId], references: [runId], onDelete: Cascade)
|
|
981
|
+
|
|
982
|
+
@@id([runId, ecosystem, name, version])
|
|
805
983
|
}
|
|
806
984
|
|
|
807
985
|
enum RegistryFetchOutcome {
|
|
@@ -813,11 +991,15 @@ enum RegistryFetchOutcome {
|
|
|
813
991
|
/// once at dispatch (see CodingRun.packageAllowlist) and used to gate every
|
|
814
992
|
/// proxy fetch for the run's lifetime.
|
|
815
993
|
model RegistryAllowance {
|
|
816
|
-
runId
|
|
817
|
-
ecosystem
|
|
818
|
-
name
|
|
819
|
-
|
|
820
|
-
|
|
994
|
+
runId String
|
|
995
|
+
ecosystem String
|
|
996
|
+
name String
|
|
997
|
+
/// Set only in an audit-mode run: the top-level audited package whose metadata or file declared this
|
|
998
|
+
/// name (its own name for a top-level audited package; empty when a lockfile plan could not tell). Null = a
|
|
999
|
+
/// normal allowance.
|
|
1000
|
+
auditedVia String?
|
|
1001
|
+
createdAt DateTime @default(now())
|
|
1002
|
+
run CodingRun @relation(fields: [runId], references: [runId], onDelete: Cascade)
|
|
821
1003
|
|
|
822
1004
|
@@id([runId, ecosystem, name])
|
|
823
1005
|
}
|
|
@@ -863,13 +1045,20 @@ model RegistryVersionFact {
|
|
|
863
1045
|
/// /registry/<ecosystem>/-/plan) verified and approved: a download of it is
|
|
864
1046
|
/// served directly, integrity-checked against this value.
|
|
865
1047
|
model RegistryApprovedVersion {
|
|
866
|
-
runId
|
|
867
|
-
ecosystem
|
|
868
|
-
name
|
|
869
|
-
version
|
|
870
|
-
integrity
|
|
871
|
-
|
|
872
|
-
|
|
1048
|
+
runId String
|
|
1049
|
+
ecosystem String
|
|
1050
|
+
name String
|
|
1051
|
+
version String
|
|
1052
|
+
integrity String
|
|
1053
|
+
/// Blocking advisories this run's packagePolicy.acceptedAdvisories waived
|
|
1054
|
+
/// for this version: empty unless the plan kept it only by that waiver. A
|
|
1055
|
+
/// download of it records them on its served RegistryFetch row.
|
|
1056
|
+
acceptedAdvisories String[] @default([])
|
|
1057
|
+
/// Audit-mode plans only: { relation, via?, advisories? } for an approval outside the allowlist, or
|
|
1058
|
+
/// one kept past advisories in full mode. Null = a normal approval.
|
|
1059
|
+
audit Json?
|
|
1060
|
+
createdAt DateTime @default(now())
|
|
1061
|
+
run CodingRun @relation(fields: [runId], references: [runId], onDelete: Cascade)
|
|
873
1062
|
|
|
874
1063
|
@@id([runId, ecosystem, name, version])
|
|
875
1064
|
}
|
|
@@ -894,6 +1083,39 @@ model RegistryPlanRefusal {
|
|
|
894
1083
|
@@id([runId, ecosystem, name, version])
|
|
895
1084
|
}
|
|
896
1085
|
|
|
1086
|
+
/// A cached node_modules snapshot for one npm project of a repository, keyed
|
|
1087
|
+
/// server-side by the coding proxy. The archive lives in the blob store under
|
|
1088
|
+
/// blobKey; only trusted wardby code writes it, before a run's agent starts.
|
|
1089
|
+
/// Outlives the run that created it (createdByRunId is cleared when that run is
|
|
1090
|
+
/// deleted); evicted least-recently-used.
|
|
1091
|
+
model DependencySnapshot {
|
|
1092
|
+
id String @id @default(cuid())
|
|
1093
|
+
ecosystem String
|
|
1094
|
+
repository String
|
|
1095
|
+
/// The project's folder relative to the repository root; "." = the root.
|
|
1096
|
+
projectPath String @default(".")
|
|
1097
|
+
lockHash String
|
|
1098
|
+
workerImage String
|
|
1099
|
+
policyHash String
|
|
1100
|
+
blobKey String @unique
|
|
1101
|
+
sha256 String
|
|
1102
|
+
sizeBytes BigInt
|
|
1103
|
+
/// The format/version and bounds trusted worker code verified before upload.
|
|
1104
|
+
/// Null on snapshots made before validation metadata was introduced.
|
|
1105
|
+
archiveScanVersion Int?
|
|
1106
|
+
archiveEntries Int?
|
|
1107
|
+
unpackedBytes BigInt?
|
|
1108
|
+
createdAt DateTime @default(now())
|
|
1109
|
+
lastUsedAt DateTime @default(now())
|
|
1110
|
+
createdByRunId String?
|
|
1111
|
+
createdByRun CodingRun? @relation(fields: [createdByRunId], references: [runId], onDelete: SetNull)
|
|
1112
|
+
|
|
1113
|
+
@@unique([ecosystem, repository, projectPath, lockHash, workerImage, policyHash])
|
|
1114
|
+
@@index([ecosystem, repository, projectPath, workerImage, policyHash, createdAt])
|
|
1115
|
+
@@index([lastUsedAt])
|
|
1116
|
+
@@index([createdByRunId, projectPath])
|
|
1117
|
+
}
|
|
1118
|
+
|
|
897
1119
|
/// Phase 2: single-row-per-scope lease so exactly one scheduler process
|
|
898
1120
|
/// ticks at a time. `holder` is a process instance id (crypto.randomUUID()).
|
|
899
1121
|
model SchedulerLease {
|
|
@@ -917,6 +1139,7 @@ model Principal {
|
|
|
917
1139
|
webhooks Webhook[]
|
|
918
1140
|
authUser AuthUser?
|
|
919
1141
|
budgetGroups BudgetGroup[]
|
|
1142
|
+
mcpServers McpServer[]
|
|
920
1143
|
|
|
921
1144
|
hostIdentities HostIdentity[]
|
|
922
1145
|
hostIdentityLinkRequests HostIdentityLinkRequest[]
|
|
@@ -931,7 +1154,7 @@ model Principal {
|
|
|
931
1154
|
/// AgentRepository.provider, so a new type or level needs no enum migration.
|
|
932
1155
|
model ResourceGrant {
|
|
933
1156
|
id String @id @default(cuid())
|
|
934
|
-
/// "agent" | "tool" | "budget_group" (later "secret" | "datastore").
|
|
1157
|
+
/// "agent" | "tool" | "budget_group" | "mcp_server" (later "secret" | "datastore").
|
|
935
1158
|
resourceType String
|
|
936
1159
|
resourceId String
|
|
937
1160
|
/// "principal" | "everyone" (later "group").
|
|
@@ -989,6 +1212,9 @@ model Task {
|
|
|
989
1212
|
ttlAt DateTime
|
|
990
1213
|
createdAt DateTime @default(now())
|
|
991
1214
|
updatedAt DateTime @updatedAt
|
|
1215
|
+
|
|
1216
|
+
/// The run-drivability and cancelled-task lookups: findFirst({ runId, status: "cancelled" }).
|
|
1217
|
+
@@index([runId, status])
|
|
992
1218
|
}
|
|
993
1219
|
|
|
994
1220
|
/// Phase 4: a secret value, encrypted at rest via the SecretCipher seam.
|
|
@@ -1007,6 +1233,10 @@ model Secret {
|
|
|
1007
1233
|
updatedAt DateTime @updatedAt
|
|
1008
1234
|
agents AgentSecret[]
|
|
1009
1235
|
|
|
1236
|
+
hostProviderWebhooks HostProvider[] @relation("HostProviderWebhookSecret")
|
|
1237
|
+
hostProviderPermissions HostProvider[] @relation("HostProviderPermissionSecret")
|
|
1238
|
+
hostProviderCredentials HostProviderCredential[] @relation("HostProviderCredentialSecret")
|
|
1239
|
+
|
|
1010
1240
|
@@unique([ownerId, name])
|
|
1011
1241
|
}
|
|
1012
1242
|
|
|
@@ -1116,7 +1346,7 @@ model AuthUser {
|
|
|
1116
1346
|
displayName String?
|
|
1117
1347
|
status String @default("enabled")
|
|
1118
1348
|
/// wardby roles (src/mcp/auth/resource-server.ts ROLE_PERMISSIONS: admin,
|
|
1119
|
-
/// package-approver, service-manager, model-manager), set with `wardby auth user grant`. Empty = member.
|
|
1349
|
+
/// package-approver, service-manager, model-manager, host-manager), set with `wardby auth user grant`. Empty = member.
|
|
1120
1350
|
/// A privileged operation needs its scope on the token AND a role here
|
|
1121
1351
|
/// that grants it; unknown values grant nothing.
|
|
1122
1352
|
roles String[] @default([])
|
|
@@ -1235,29 +1465,37 @@ model AuthRateLimit {
|
|
|
1235
1465
|
/// and which host events trigger it. See
|
|
1236
1466
|
/// docs/private/2026-09-25-code-review-host-design.md §4.1.
|
|
1237
1467
|
model AgentRepository {
|
|
1238
|
-
id
|
|
1239
|
-
agentId
|
|
1240
|
-
agent
|
|
1468
|
+
id String @id @default(cuid())
|
|
1469
|
+
agentId String
|
|
1470
|
+
agent Agent @relation(fields: [agentId], references: [id], onDelete: Cascade)
|
|
1241
1471
|
/// "github" today; validated in code so adding a host needs no enum migration.
|
|
1242
|
-
provider
|
|
1472
|
+
provider String
|
|
1243
1473
|
/// Canonical lower-case owner/name for the provider.
|
|
1244
|
-
repository
|
|
1474
|
+
repository String
|
|
1245
1475
|
/// "read" or "write".
|
|
1246
|
-
access
|
|
1476
|
+
access String
|
|
1247
1477
|
/// Subset of "pull_request", "mention", "push", "review_fix".
|
|
1248
|
-
triggers
|
|
1478
|
+
triggers String[] @default([])
|
|
1249
1479
|
/// Only with the "pull_request" trigger (required there); names the agent's
|
|
1250
1480
|
/// check. Unique per repository across all links (NULLs are distinct).
|
|
1251
|
-
checkName
|
|
1481
|
+
checkName String?
|
|
1252
1482
|
/// Only with the "review_fix" trigger: how many automatic fix rounds a
|
|
1253
1483
|
/// pull request gets before wardby stops. Null = the default (2).
|
|
1254
|
-
reviewFixMaxRounds
|
|
1484
|
+
reviewFixMaxRounds Int?
|
|
1255
1485
|
/// Only with the "pull_request" trigger: holds this agent's review on a
|
|
1256
1486
|
/// pushed head until that head's own CI finishes (see DeferredReview),
|
|
1257
1487
|
/// instead of racing it. Default off: existing links review immediately,
|
|
1258
1488
|
/// exactly as today.
|
|
1259
|
-
waitForCi
|
|
1260
|
-
|
|
1489
|
+
waitForCi Boolean @default(false)
|
|
1490
|
+
/// Only on a write (builder) link: Wardby marks the draft pull requests this
|
|
1491
|
+
/// agent opened in the repository ready for review, once, after every Wardby
|
|
1492
|
+
/// review check passed, CI is green and the merge order check (if any) is
|
|
1493
|
+
/// success. Default off.
|
|
1494
|
+
markReadyWhenPassing Boolean @default(false)
|
|
1495
|
+
/// Only on a coding agent's link: the base branch for runs in this repository.
|
|
1496
|
+
/// Null = the coding profile's baseRef.
|
|
1497
|
+
baseRef String?
|
|
1498
|
+
createdAt DateTime @default(now())
|
|
1261
1499
|
|
|
1262
1500
|
/// How this link was authorized: "host_permission" (the agent owner's
|
|
1263
1501
|
/// verified host identity had enough access), "admin" (a wardby admin
|
|
@@ -1462,6 +1700,48 @@ model AgentIssueProject {
|
|
|
1462
1700
|
@@index([provider, projectKey])
|
|
1463
1701
|
}
|
|
1464
1702
|
|
|
1703
|
+
/// A remote MCP server an owner registered (Streamable HTTP, HTTPS only).
|
|
1704
|
+
model McpServer {
|
|
1705
|
+
id String @id @default(cuid())
|
|
1706
|
+
ownerId String
|
|
1707
|
+
owner Principal @relation(fields: [ownerId], references: [id], onDelete: Cascade)
|
|
1708
|
+
/// Unique per owner; the prefix of the tool names the model sees.
|
|
1709
|
+
name String
|
|
1710
|
+
/// https only; no userinfo, no fragment; the query string is kept.
|
|
1711
|
+
url String
|
|
1712
|
+
/// The owner's brokered secrets sent on every request (each brokered to the URL's host).
|
|
1713
|
+
secretNames String[] @default([])
|
|
1714
|
+
/// Last tools/list result, redacted: [{ name, description, inputSchema, annotations? }].
|
|
1715
|
+
toolSnapshot Json @default("[]")
|
|
1716
|
+
snapshotAt DateTime?
|
|
1717
|
+
/// From initialize: { name?, version?, protocolVersion }.
|
|
1718
|
+
serverInfo Json?
|
|
1719
|
+
createdAt DateTime @default(now())
|
|
1720
|
+
updatedAt DateTime @updatedAt
|
|
1721
|
+
agents AgentMcpServer[]
|
|
1722
|
+
|
|
1723
|
+
@@unique([ownerId, name])
|
|
1724
|
+
@@index([ownerId])
|
|
1725
|
+
}
|
|
1726
|
+
|
|
1727
|
+
/// An MCP server attached to an agent, with the server tools it may call.
|
|
1728
|
+
model AgentMcpServer {
|
|
1729
|
+
agentId String
|
|
1730
|
+
agent Agent @relation(fields: [agentId], references: [id], onDelete: Cascade)
|
|
1731
|
+
serverId String
|
|
1732
|
+
server McpServer @relation(fields: [serverId], references: [id], onDelete: Cascade)
|
|
1733
|
+
/// Exact tool names from the server's saved list. Never empty.
|
|
1734
|
+
allowedTools String[]
|
|
1735
|
+
/// Per call; null = 30000. Capped by WARDBY_TOOL_MAX_TIMEOUT_MS at call time.
|
|
1736
|
+
callTimeoutMs Int?
|
|
1737
|
+
attachedById String
|
|
1738
|
+
createdAt DateTime @default(now())
|
|
1739
|
+
updatedAt DateTime @updatedAt
|
|
1740
|
+
|
|
1741
|
+
@@id([agentId, serverId])
|
|
1742
|
+
@@index([serverId])
|
|
1743
|
+
}
|
|
1744
|
+
|
|
1465
1745
|
/// Dedupe record: an issue wardby created for a fingerprint (several over time — regressions).
|
|
1466
1746
|
model IssueFingerprint {
|
|
1467
1747
|
id String @id @default(cuid())
|
|
@@ -1481,12 +1761,14 @@ model IssueFingerprint {
|
|
|
1481
1761
|
@@index([createdByRunId])
|
|
1482
1762
|
}
|
|
1483
1763
|
|
|
1484
|
-
/// A pull request wardby opened for
|
|
1764
|
+
/// A pull request wardby opened for an issue (a Jira issue, a GitHub issue): one shape for every issue
|
|
1765
|
+
/// provider. Provider-neutral on both sides.
|
|
1485
1766
|
/// Deliberately no foreign keys to Agent or Run: audit-style rows that survive agent/run deletion.
|
|
1486
1767
|
model IssuePullRequest {
|
|
1487
1768
|
id String @id @default(cuid())
|
|
1488
|
-
/// "jira"
|
|
1769
|
+
/// "jira" or "github" (an issue on a repository).
|
|
1489
1770
|
issueProvider String
|
|
1771
|
+
/// A Jira key ("PROJ-7"), or a GitHub issue's "<owner>/<repo>#<number>" (githubIssueKey).
|
|
1490
1772
|
issueKey String
|
|
1491
1773
|
/// "github" today; "bitbucket" next.
|
|
1492
1774
|
codeProvider String
|
|
@@ -1636,6 +1918,9 @@ model LocalReview {
|
|
|
1636
1918
|
pullRequest LocalPullRequest @relation(fields: [pullRequestId], references: [id], onDelete: Cascade)
|
|
1637
1919
|
agentId String
|
|
1638
1920
|
headSha String
|
|
1921
|
+
/// headSha when this review read every file of it (null otherwise): the head a later
|
|
1922
|
+
/// re-review may compare from and still APPROVE (repo_pr_read's lastCoveredSha).
|
|
1923
|
+
coveredSha String?
|
|
1639
1924
|
/// APPROVE | CHANGES_REQUESTED | COMMENT
|
|
1640
1925
|
verdict String
|
|
1641
1926
|
summary String
|
|
@@ -1739,3 +2024,77 @@ model NotificationThread {
|
|
|
1739
2024
|
|
|
1740
2025
|
@@unique([provider, channelId, threadKey])
|
|
1741
2026
|
}
|
|
2027
|
+
|
|
2028
|
+
/// A code host implemented by operator-approved custom tools (docs/host-providers.md).
|
|
2029
|
+
/// `name` is the prefix of its repository ids: `<name>:<workspace>/<repo>`. Holds no secret values.
|
|
2030
|
+
model HostProvider {
|
|
2031
|
+
name String @id
|
|
2032
|
+
contractVersion Int
|
|
2033
|
+
gitHost String
|
|
2034
|
+
apiHosts String[]
|
|
2035
|
+
gitUsername String
|
|
2036
|
+
pullRequestUrlTemplate String
|
|
2037
|
+
/// Where one repository lives on the API, with `{repository}`: a repository-scoped tool's requests stay under it.
|
|
2038
|
+
repositoryApiPath String
|
|
2039
|
+
/// The effective-permission endpoint, with `{workspace}` and `{repo}`. Set with a permission secret.
|
|
2040
|
+
permissionApiPath String?
|
|
2041
|
+
/// How to verify and read a webhook: header names and algorithm, never the secret.
|
|
2042
|
+
webhook Json
|
|
2043
|
+
webhookSecretId String
|
|
2044
|
+
webhookSecret Secret @relation("HostProviderWebhookSecret", fields: [webhookSecretId], references: [id], onDelete: Restrict)
|
|
2045
|
+
/// Set: ask the host who has access. Unset: trustedAccounts decides.
|
|
2046
|
+
permissionSecretId String?
|
|
2047
|
+
permissionSecret Secret? @relation("HostProviderPermissionSecret", fields: [permissionSecretId], references: [id], onDelete: Restrict)
|
|
2048
|
+
createdById String
|
|
2049
|
+
createdAt DateTime @default(now())
|
|
2050
|
+
updatedAt DateTime @updatedAt
|
|
2051
|
+
|
|
2052
|
+
operations HostProviderOperation[]
|
|
2053
|
+
credentials HostProviderCredential[]
|
|
2054
|
+
trustedAccounts HostProviderTrustedAccount[]
|
|
2055
|
+
}
|
|
2056
|
+
|
|
2057
|
+
/// One approved snapshot: the code Wardby runs. `update_tool` changes nothing here until approved again.
|
|
2058
|
+
model HostProviderOperation {
|
|
2059
|
+
provider String
|
|
2060
|
+
operation String
|
|
2061
|
+
/// The tool it was copied from. Null once that tool is deleted; the snapshot keeps working.
|
|
2062
|
+
toolId String?
|
|
2063
|
+
code String
|
|
2064
|
+
paramsZod String
|
|
2065
|
+
/// The tool's timeoutMs when it was approved; null = the default limit.
|
|
2066
|
+
timeoutMs Int?
|
|
2067
|
+
approvedById String
|
|
2068
|
+
approvedAt DateTime @default(now())
|
|
2069
|
+
|
|
2070
|
+
hostProvider HostProvider @relation(fields: [provider], references: [name], onDelete: Cascade)
|
|
2071
|
+
tool Tool? @relation(fields: [toolId], references: [id], onDelete: SetNull)
|
|
2072
|
+
|
|
2073
|
+
@@id([provider, operation])
|
|
2074
|
+
}
|
|
2075
|
+
|
|
2076
|
+
/// Which brokered secret serves which repositories. `credentialKind` is `static` only in v1.
|
|
2077
|
+
model HostProviderCredential {
|
|
2078
|
+
id String @id @default(cuid())
|
|
2079
|
+
provider String
|
|
2080
|
+
repositoryPattern String
|
|
2081
|
+
secretId String
|
|
2082
|
+
credentialKind String @default("static")
|
|
2083
|
+
|
|
2084
|
+
hostProvider HostProvider @relation(fields: [provider], references: [name], onDelete: Cascade)
|
|
2085
|
+
secret Secret @relation("HostProviderCredentialSecret", fields: [secretId], references: [id], onDelete: Restrict)
|
|
2086
|
+
|
|
2087
|
+
@@unique([provider, repositoryPattern])
|
|
2088
|
+
}
|
|
2089
|
+
|
|
2090
|
+
/// Host accounts allowed to start runs when the provider has no permission secret.
|
|
2091
|
+
model HostProviderTrustedAccount {
|
|
2092
|
+
provider String
|
|
2093
|
+
accountId String
|
|
2094
|
+
addedById String
|
|
2095
|
+
addedAt DateTime @default(now())
|
|
2096
|
+
|
|
2097
|
+
hostProvider HostProvider @relation(fields: [provider], references: [name], onDelete: Cascade)
|
|
2098
|
+
|
|
2099
|
+
@@id([provider, accountId])
|
|
2100
|
+
}
|