@wardby/cli 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/deploy/local/docker-compose.quickstart-coding.yml +13 -0
- package/dist/claude-coding-worker/driver.d.ts +21 -3
- package/dist/claude-coding-worker/driver.js +125 -17
- package/dist/claude-coding-worker/main.js +34 -6
- package/dist/claude-coding-worker/sdk.js +12 -1
- package/dist/claude-coding-worker/tool-socket.d.ts +27 -0
- package/dist/claude-coding-worker/tool-socket.js +111 -0
- package/dist/claude-coding-worker/transcript.d.ts +18 -0
- package/dist/claude-coding-worker/transcript.js +77 -0
- package/dist/cli-help.d.ts +1 -1
- package/dist/cli-help.js +1 -0
- package/dist/cli.js +24 -10
- package/dist/coding/continuation-wording.d.ts +35 -0
- package/dist/coding/continuation-wording.js +73 -0
- package/dist/coding/linked-issue-note.d.ts +23 -0
- package/dist/coding/linked-issue-note.js +47 -0
- package/dist/coding/merge-wording.d.ts +28 -0
- package/dist/coding/merge-wording.js +78 -0
- package/dist/coding/pr-description-note.d.ts +9 -0
- package/dist/coding/pr-description-note.js +32 -0
- package/dist/coding/profile.d.ts +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 +235 -12
- package/dist/coding/redact.d.ts +3 -0
- package/dist/coding/redact.js +12 -0
- package/dist/coding/registry/allowlist.d.ts +12 -0
- package/dist/coding/registry/allowlist.js +14 -1
- package/dist/coding/registry/audit-mode.d.ts +153 -0
- package/dist/coding/registry/audit-mode.js +304 -0
- package/dist/coding/registry/lockfile-shared.d.ts +36 -0
- package/dist/coding/registry/lockfile-shared.js +128 -0
- package/dist/coding/registry/lockfiles.js +1 -1
- package/dist/coding/registry/npm-lockfile-formats.d.ts +11 -0
- package/dist/coding/registry/npm-lockfile-formats.js +41 -0
- package/dist/coding/registry/npm-lockfile.d.ts +8 -4
- package/dist/coding/registry/npm-lockfile.js +4 -6
- package/dist/coding/registry/npm.js +78 -8
- package/dist/coding/registry/pnpm-lockfile.d.ts +17 -0
- package/dist/coding/registry/pnpm-lockfile.js +189 -0
- package/dist/coding/registry/pypi-plan.d.ts +50 -0
- package/dist/coding/registry/pypi-plan.js +406 -0
- package/dist/coding/registry/pypi-requirements.d.ts +58 -0
- package/dist/coding/registry/pypi-requirements.js +155 -0
- package/dist/coding/registry/pypi.d.ts +3 -27
- package/dist/coding/registry/pypi.js +40 -154
- package/dist/coding/registry/refusal-hints.d.ts +20 -0
- package/dist/coding/registry/refusal-hints.js +61 -0
- package/dist/coding/registry/refusal-wording.d.ts +11 -0
- package/dist/coding/registry/refusal-wording.js +56 -0
- package/dist/coding/registry/report.d.ts +70 -8
- package/dist/coding/registry/report.js +112 -5
- package/dist/coding/registry/types.d.ts +58 -8
- package/dist/coding/registry/yarn-lockfile.d.ts +30 -0
- package/dist/coding/registry/yarn-lockfile.js +367 -0
- package/dist/coding/services/catalog.d.ts +37 -351
- package/dist/coding/transcript/claude-code.d.ts +13 -0
- package/dist/coding/transcript/claude-code.js +273 -0
- package/dist/coding/transcript/download-protocol.d.ts +30 -0
- package/dist/coding/transcript/download-protocol.js +18 -0
- package/dist/coding/transcript/format.d.ts +20 -0
- package/dist/coding/transcript/format.js +32 -0
- package/dist/coding/transcript/recorder.d.ts +51 -0
- package/dist/coding/transcript/recorder.js +225 -0
- package/dist/coding/transcript/resume/checkout.d.ts +31 -0
- package/dist/coding/transcript/resume/checkout.js +203 -0
- package/dist/coding/transcript/resume/command.d.ts +17 -0
- package/dist/coding/transcript/resume/command.js +176 -0
- package/dist/coding/transcript/resume/download.d.ts +20 -0
- package/dist/coding/transcript/resume/download.js +153 -0
- package/dist/coding/transcript/resume/launch.d.ts +38 -0
- package/dist/coding/transcript/resume/launch.js +128 -0
- package/dist/coding/transcript/resume/session-file.d.ts +13 -0
- package/dist/coding/transcript/resume/session-file.js +79 -0
- package/dist/coding/transcript/resume/stand-in.d.ts +11 -0
- package/dist/coding/transcript/resume/stand-in.js +49 -0
- package/dist/coding-worker/artifact.d.ts +8 -3
- package/dist/coding-worker/artifact.js +3 -1
- package/dist/coding-worker/debug-trace.d.ts +6 -5
- package/dist/coding-worker/debug-trace.js +13 -18
- package/dist/coding-worker/dependency-cache.d.mts +229 -0
- package/dist/coding-worker/dependency-cache.mjs +2123 -0
- package/dist/coding-worker/driver.d.ts +4 -3
- package/dist/coding-worker/driver.js +116 -38
- package/dist/coding-worker/errors.d.ts +1 -0
- package/dist/coding-worker/errors.js +32 -0
- package/dist/coding-worker/task-note.d.ts +11 -0
- package/dist/coding-worker/task-note.js +13 -0
- package/dist/coding-worker/types.d.ts +11 -0
- package/dist/config/dependency-cache.d.ts +23 -0
- package/dist/config/dependency-cache.js +32 -0
- package/dist/config/providers.d.ts +12 -3
- package/dist/config/providers.js +55 -5
- package/dist/config/test-simulators.d.ts +82 -0
- package/dist/config/test-simulators.js +305 -0
- package/dist/core/async-context.d.ts +2 -0
- package/dist/core/async-context.js +12 -0
- package/dist/core/budget-events.d.ts +108 -0
- package/dist/core/budget-events.js +346 -0
- package/dist/core/budget-groups.d.ts +50 -1
- package/dist/core/budget-groups.js +236 -27
- package/dist/core/budget-stopped-head.d.ts +46 -0
- package/dist/core/budget-stopped-head.js +81 -0
- package/dist/core/budget-topup.d.ts +51 -0
- package/dist/core/budget-topup.js +156 -0
- package/dist/core/budget-wording.d.ts +16 -2
- package/dist/core/budget-wording.js +40 -2
- package/dist/core/coding-queue.d.ts +2 -1
- package/dist/core/coding-queue.js +7 -0
- package/dist/core/cron.d.ts +19 -1
- package/dist/core/cron.js +17 -0
- package/dist/core/datastores.js +1 -1
- package/dist/core/deferred-coding.d.ts +14 -0
- package/dist/core/deferred-coding.js +62 -0
- package/dist/core/delegation-child.d.ts +25 -0
- package/dist/core/delegation-child.js +37 -0
- package/dist/core/dispatch.d.ts +42 -0
- package/dist/core/dispatch.js +131 -56
- package/dist/core/engine-native.js +1 -1
- package/dist/core/error-code.d.ts +38 -0
- package/dist/core/error-code.js +168 -0
- package/dist/core/grants.d.ts +19 -6
- package/dist/core/grants.js +55 -6
- package/dist/core/host-events.d.ts +18 -2
- package/dist/core/host-events.js +284 -24
- package/dist/core/host-status.d.ts +85 -3
- package/dist/core/host-status.js +298 -20
- package/dist/core/issue-bridge.d.ts +50 -6
- package/dist/core/issue-bridge.js +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 +54 -26
- package/dist/core/logger.d.ts +5 -0
- package/dist/core/logger.js +14 -1
- package/dist/core/lost-run-children.d.ts +6 -0
- package/dist/core/lost-run-children.js +32 -0
- package/dist/core/mark-ready.d.ts +34 -0
- package/dist/core/mark-ready.js +152 -0
- package/dist/core/markdown-code.d.ts +8 -0
- package/dist/core/markdown-code.js +107 -0
- package/dist/core/memory-tools.js +7 -0
- package/dist/core/merge-order-check.d.ts +2 -1
- package/dist/core/merge-order-check.js +8 -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 +27 -14
- 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 +2 -1
- 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 +99 -13
- 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 +80 -34
- package/dist/core/runner.js +439 -144
- 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 +10 -74
- package/dist/core/secret-guard.d.ts +46 -0
- package/dist/core/secret-guard.js +104 -0
- package/dist/core/secret-guarded-stores.d.ts +12 -0
- package/dist/core/secret-guarded-stores.js +41 -0
- package/dist/core/secret-spans.d.ts +50 -0
- package/dist/core/secret-spans.js +94 -0
- package/dist/core/stop-run.d.ts +46 -0
- package/dist/core/stop-run.js +61 -0
- 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 +43 -8
- 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 +34 -3
- package/dist/generated/prisma/client.d.ts +34 -3
- package/dist/generated/prisma/commonInputTypes.d.ts +220 -60
- 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 +44 -0
- package/dist/generated/prisma/internal/class.js +4 -4
- package/dist/generated/prisma/internal/prismaNamespace.d.ts +428 -9
- package/dist/generated/prisma/internal/prismaNamespace.js +92 -1
- package/dist/generated/prisma/internal/prismaNamespaceBrowser.d.ts +95 -0
- package/dist/generated/prisma/internal/prismaNamespaceBrowser.js +92 -1
- package/dist/generated/prisma/models/Agent.d.ts +106 -8
- package/dist/generated/prisma/models/AgentRepository.d.ts +42 -1
- package/dist/generated/prisma/models/CodingAgentProfile.d.ts +229 -1
- package/dist/generated/prisma/models/CodingProxyRequest.d.ts +207 -3
- package/dist/generated/prisma/models/CodingProxySession.d.ts +114 -1
- package/dist/generated/prisma/models/CodingRun.d.ts +1637 -1
- package/dist/generated/prisma/models/DependencySnapshot.d.ts +1668 -0
- package/dist/generated/prisma/models/DependencySnapshot.js +1 -0
- package/dist/generated/prisma/models/IssuePullRequest.d.ts +6 -2
- package/dist/generated/prisma/models/LocalReview.d.ts +40 -1
- package/dist/generated/prisma/models/NativeGatewayCall.d.ts +39 -1
- package/dist/generated/prisma/models/NativeGatewaySession.d.ts +35 -1
- package/dist/generated/prisma/models/RegistryAllowance.d.ts +41 -1
- package/dist/generated/prisma/models/RegistryApprovedVersion.d.ts +75 -1
- package/dist/generated/prisma/models/RegistryAuditRecord.d.ts +1364 -0
- package/dist/generated/prisma/models/RegistryAuditRecord.js +1 -0
- package/dist/generated/prisma/models/Run.d.ts +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.d.ts +4 -0
- package/dist/help-index.json +1320 -69
- package/dist/import/create.js +32 -3
- package/dist/import/neutral-schema.d.ts +50 -281
- package/dist/import/neutral-schema.js +5 -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/ownership.d.ts +7 -7
- 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/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 +58 -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 +198 -16
- package/dist/mcp/tools/datastore.js +17 -8
- package/dist/mcp/tools/grants.js +9 -3
- package/dist/mcp/tools/memory.js +11 -1
- package/dist/mcp/tools/notification-channels.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 +18 -5
- package/dist/mcp/tools/run-access.d.ts +16 -0
- package/dist/mcp/tools/run-access.js +25 -0
- package/dist/mcp/tools/run-transcript-download.d.ts +30 -0
- package/dist/mcp/tools/run-transcript-download.js +129 -0
- package/dist/mcp/tools/run-transcript.d.ts +19 -0
- package/dist/mcp/tools/run-transcript.js +70 -0
- package/dist/mcp/tools/runs.js +34 -12
- 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/secrets.js +2 -2
- 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 +1 -1
- package/dist/mcp/tools/tools.js +25 -9
- package/dist/mcp/transport/stdio-link-host.d.ts +20 -0
- package/dist/mcp/transport/stdio-link-host.js +67 -0
- package/dist/mcp/transport/streamable-http.d.ts +13 -0
- package/dist/mcp/transport/streamable-http.js +41 -1
- package/dist/native-worker/docker-launcher.d.ts +38 -2
- package/dist/native-worker/docker-launcher.js +65 -5
- package/dist/native-worker/gateway-server.d.ts +41 -3
- package/dist/native-worker/gateway-server.js +124 -27
- package/dist/native-worker/gateway.d.ts +27 -1
- package/dist/native-worker/gateway.js +70 -4
- package/dist/native-worker/http-server.d.ts +3 -1
- package/dist/native-worker/http-server.js +11 -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 +18 -2
- package/dist/native-worker/ledger.js +57 -4
- 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 +129 -577
- package/dist/native-worker/protocol.js +47 -1
- 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/dependency-cache/eviction.d.ts +29 -0
- package/dist/providers/coding-proxy/dependency-cache/eviction.js +87 -0
- package/dist/providers/coding-proxy/dependency-cache/key.d.ts +33 -0
- package/dist/providers/coding-proxy/dependency-cache/key.js +86 -0
- package/dist/providers/coding-proxy/dependency-cache/model-request-seal.d.ts +18 -0
- package/dist/providers/coding-proxy/dependency-cache/model-request-seal.js +40 -0
- package/dist/providers/coding-proxy/dependency-cache/prisma-store.d.ts +25 -0
- package/dist/providers/coding-proxy/dependency-cache/prisma-store.js +131 -0
- package/dist/providers/coding-proxy/dependency-cache/service.d.ts +70 -0
- package/dist/providers/coding-proxy/dependency-cache/service.js +409 -0
- package/dist/providers/coding-proxy/dependency-cache/store.d.ts +85 -0
- package/dist/providers/coding-proxy/dependency-cache/store.js +95 -0
- package/dist/providers/coding-proxy/hold.d.ts +32 -0
- package/dist/providers/coding-proxy/hold.js +86 -0
- package/dist/providers/coding-proxy/interrupted.d.ts +70 -0
- package/dist/providers/coding-proxy/interrupted.js +104 -0
- package/dist/providers/coding-proxy/memory-ledger.d.ts +15 -2
- package/dist/providers/coding-proxy/memory-ledger.js +84 -8
- package/dist/providers/coding-proxy/metering.d.ts +16 -0
- package/dist/providers/coding-proxy/metering.js +27 -4
- package/dist/providers/coding-proxy/prisma-ledger.d.ts +15 -2
- package/dist/providers/coding-proxy/prisma-ledger.js +179 -67
- package/dist/providers/coding-proxy/proxy.d.ts +14 -1
- package/dist/providers/coding-proxy/proxy.js +166 -14
- package/dist/providers/coding-proxy/registry/audit.d.ts +53 -10
- package/dist/providers/coding-proxy/registry/audit.js +94 -17
- package/dist/providers/coding-proxy/registry/lockfile-parse-worker.d.ts +36 -0
- package/dist/providers/coding-proxy/registry/lockfile-parse-worker.js +67 -0
- package/dist/providers/coding-proxy/registry/lockfile-parse.d.ts +16 -0
- package/dist/providers/coding-proxy/registry/lockfile-parse.js +110 -0
- package/dist/providers/coding-proxy/registry/plan.d.ts +9 -0
- package/dist/providers/coding-proxy/registry/plan.js +201 -48
- package/dist/providers/coding-proxy/registry/prisma-store.d.ts +11 -5
- package/dist/providers/coding-proxy/registry/prisma-store.js +120 -17
- package/dist/providers/coding-proxy/registry/service.d.ts +97 -16
- package/dist/providers/coding-proxy/registry/service.js +579 -112
- package/dist/providers/coding-proxy/registry/store.d.ts +84 -9
- package/dist/providers/coding-proxy/registry/store.js +54 -1
- package/dist/providers/coding-proxy/runtime.d.ts +4 -0
- package/dist/providers/coding-proxy/runtime.js +78 -16
- package/dist/providers/coding-proxy/server.d.ts +6 -1
- package/dist/providers/coding-proxy/server.js +45 -1
- package/dist/providers/coding-proxy/types.d.ts +65 -1
- package/dist/providers/datastore/types.d.ts +5 -0
- package/dist/providers/engine/types.d.ts +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 +47 -7
- package/dist/providers/executor/container.d.ts +361 -8
- package/dist/providers/executor/container.js +1136 -91
- 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/index.d.ts +2 -1
- package/dist/providers/issue-tracker/types.d.ts +17 -0
- package/dist/providers/issue-tracker/types.js +39 -1
- package/dist/providers/jobs/claude-tool-setup.d.ts +4 -0
- package/dist/providers/jobs/claude-tool-setup.js +5 -2
- package/dist/providers/jobs/docker-isolation.d.ts +8 -0
- package/dist/providers/jobs/docker-isolation.js +17 -0
- package/dist/providers/jobs/docker.d.ts +1 -0
- package/dist/providers/jobs/docker.js +27 -2
- 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 +2 -0
- package/dist/providers/jobs/kubernetes-isolation.js +17 -1
- package/dist/providers/jobs/kubernetes.d.ts +6 -1
- package/dist/providers/jobs/kubernetes.js +105 -16
- package/dist/providers/jobs/types.d.ts +33 -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 +134 -2
- package/dist/providers/review-host/types.js +8 -0
- package/dist/providers/storage/gcs.d.ts +63 -0
- package/dist/providers/storage/gcs.js +69 -0
- package/dist/providers/storage/index.d.ts +15 -0
- package/dist/providers/storage/index.js +14 -0
- package/dist/providers/storage/local.d.ts +24 -0
- package/dist/providers/storage/local.js +92 -0
- package/dist/providers/storage/meter.d.ts +14 -0
- package/dist/providers/storage/meter.js +34 -0
- package/dist/providers/storage/s3.d.ts +41 -0
- package/dist/providers/storage/s3.js +107 -0
- package/dist/providers/storage/types.d.ts +37 -3
- package/dist/providers/storage/types.js +21 -4
- package/dist/providers/vcs/git.d.ts +33 -2
- package/dist/providers/vcs/git.js +324 -22
- package/dist/providers/vcs/github-remote.d.ts +26 -3
- package/dist/providers/vcs/github-remote.js +124 -14
- package/dist/providers/vcs/github.d.ts +214 -6
- package/dist/providers/vcs/github.js +447 -45
- package/dist/providers/vcs/index.js +8 -1
- package/dist/providers/vcs/pr-description.d.ts +127 -0
- package/dist/providers/vcs/pr-description.js +270 -0
- package/dist/providers/vcs/remote.d.ts +33 -1
- package/dist/providers/vcs/routing.d.ts +4 -2
- package/dist/providers/vcs/routing.js +6 -0
- package/dist/providers/vcs/types.d.ts +80 -3
- package/dist/quickstart/coding-seed.d.ts +14 -3
- package/dist/quickstart/coding-seed.js +213 -4
- 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/generated/zod.bundle.js +62 -1
- package/dist/sandbox/generated/zod3.bundle.js +5 -0
- package/dist/sandbox/host-functions.d.ts +1 -0
- package/dist/sandbox/host-functions.js +6 -11
- package/dist/sandbox/secret-broker.js +3 -4
- package/dist/sandbox/tool-capabilities.d.ts +10 -30
- 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/openapi.js +2 -4
- package/dist/wardby-bin.js +10 -0
- package/docs/agent-recipes.md +58 -20
- package/docs/code-review-agents.md +551 -41
- package/docs/coding-agent-setup.md +489 -7
- package/docs/coding-packages.md +1033 -90
- package/docs/coding-services.md +27 -12
- package/docs/coding-worker-byo-images.md +20 -0
- package/docs/coding-worker-isolation.md +105 -30
- package/docs/getting-started-gke.md +124 -137
- package/docs/getting-started-identity-provider.md +10 -1
- package/docs/getting-started.md +9 -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/native-sandbox.md +119 -23
- package/docs/observability.md +4 -0
- package/docs/security-deployment.md +33 -2
- package/docs/slack-notifications.md +35 -19
- package/docs/tool-secrets.md +42 -10
- package/docs/viewer-api.openapi.yml +1 -1
- package/help/admin-viewer.md +24 -2
- package/help/architecture-agent.md +11 -6
- package/help/build-worker-image.md +3 -1
- package/help/builder-agent.md +19 -6
- 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-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/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/merge-conflict.md +49 -0
- package/help/errors/native-sandbox-gateway-error.md +20 -0
- package/help/errors/native-sandbox-launch-abandoned.md +21 -0
- package/help/errors/native-sandbox-worker-exited.md +3 -2
- package/help/errors/package-not-allowed-pending.md +52 -0
- package/help/errors/package-not-allowed.md +51 -0
- package/help/errors/package-refusals.md +43 -0
- package/help/errors/patch-cursor-malformed.md +31 -0
- package/help/errors/run-lost.md +39 -0
- package/help/errors/run-transcript-download.md +44 -0
- package/help/errors/secret-in-value.md +69 -0
- package/help/errors/target-merge.md +40 -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/identity-and-access.md +2 -0
- 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/merge-order-check.md +5 -0
- package/help/native-capabilities.md +29 -1
- package/help/native-sandbox.md +15 -1
- package/help/operating-agents.md +5 -0
- package/help/package-audit-mode.md +91 -0
- package/help/related-pull-requests.md +10 -7
- package/help/resume-runs-locally.md +131 -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 +78 -7
- package/package.json +17 -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/schema.prisma +311 -97
- package/dist/sandbox/generated/zod-to-json-schema.bundle.js +0 -5
package/prisma/schema.prisma
CHANGED
|
@@ -25,6 +25,8 @@ model Agent {
|
|
|
25
25
|
systemPrompt String
|
|
26
26
|
model String
|
|
27
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)
|
|
28
30
|
createdAt DateTime @default(now())
|
|
29
31
|
updatedAt DateTime @updatedAt
|
|
30
32
|
runs Run[]
|
|
@@ -361,17 +363,22 @@ model Run {
|
|
|
361
363
|
/// in-process runs. The reconciler consults the backend before declaring a
|
|
362
364
|
/// stale run lost, and can adopt one orphaned by a dead instance.
|
|
363
365
|
executionBackend String?
|
|
366
|
+
/// The DBOS workflow that currently holds this run, when it is not the run id: set when
|
|
367
|
+
/// recover() forks the run's workflow under a new application version. Null = the run id.
|
|
368
|
+
executionWorkflowId String?
|
|
364
369
|
/// The agent's nativeExecutionMode when this run was created, fixed for the
|
|
365
370
|
/// run's life and what the executor routes on. Null for coding runs and for
|
|
366
371
|
/// native runs from before the field existed, which run in the control plane.
|
|
367
372
|
nativeExecutionMode NativeExecutionMode?
|
|
368
373
|
codingRun CodingRun?
|
|
374
|
+
transcript RunTranscript?
|
|
369
375
|
hostCheck RunHostCheck?
|
|
370
376
|
hostStatus RunHostStatus?
|
|
371
377
|
issueStatus RunIssueStatus?
|
|
372
378
|
attribution RunAttribution?
|
|
373
379
|
modelUsage RunModelUsage[]
|
|
374
380
|
serviceStatuses CodingRunServiceStatus[]
|
|
381
|
+
budgetEvents RunBudgetEvent[]
|
|
375
382
|
/// A manual review of a local branch: this run is the review run dispatched for it.
|
|
376
383
|
localPullRequest LocalPullRequest?
|
|
377
384
|
/// A sandbox-mode native run's gateway session (native sandbox phase 3).
|
|
@@ -396,6 +403,9 @@ model Run {
|
|
|
396
403
|
parentRunId String?
|
|
397
404
|
parentRun Run? @relation("RunTree", fields: [parentRunId], references: [id])
|
|
398
405
|
childRuns Run[] @relation("RunTree")
|
|
406
|
+
/// The parent's delegation call (the model's tool-call id) that created this child, so a
|
|
407
|
+
/// re-executed delegate step finds the same child instead of starting another.
|
|
408
|
+
parentCallId String?
|
|
399
409
|
/// Ephemeral, per-dispatch grant: exactly the parent-memory keys this
|
|
400
410
|
/// one child run was handed permission to read via parent_memory_get.
|
|
401
411
|
/// Never a standing allowlist — re-granted on every dispatch call.
|
|
@@ -423,45 +433,60 @@ model Run {
|
|
|
423
433
|
@@index([parentRunId])
|
|
424
434
|
@@index([startDeferredAt])
|
|
425
435
|
@@index([stopRequestedAt])
|
|
436
|
+
@@unique([parentRunId, parentCallId])
|
|
426
437
|
}
|
|
427
438
|
|
|
428
439
|
/// Phase 5: owner-configured coding behavior. Runtime credentials and opaque
|
|
429
440
|
/// launcher handles never live on the reusable profile.
|
|
430
441
|
model CodingAgentProfile {
|
|
431
|
-
agentId String
|
|
432
|
-
agent Agent
|
|
433
|
-
provider String
|
|
442
|
+
agentId String @id
|
|
443
|
+
agent Agent @relation(fields: [agentId], references: [id], onDelete: Cascade)
|
|
444
|
+
provider String @default("codex")
|
|
434
445
|
repository String
|
|
435
|
-
baseRef String
|
|
446
|
+
baseRef String @default("main")
|
|
436
447
|
defaultTask String?
|
|
437
|
-
allowWebhookTaskOverride Boolean
|
|
438
|
-
timeoutSec Int
|
|
448
|
+
allowWebhookTaskOverride Boolean @default(false)
|
|
449
|
+
timeoutSec Int @default(1800)
|
|
439
450
|
/// Claude Code runs only: the most agent turns a run may take. Null = the worker default (200).
|
|
440
451
|
maxTurns Int?
|
|
452
|
+
/// Claude Code runs only: the most output tokens per model reply (1024-128000). Null = the worker default (32000).
|
|
453
|
+
maxOutputTokens Int?
|
|
441
454
|
/// Unused; dropped after rollout (see the package-registry plan, Task 14).
|
|
442
|
-
allowedEgress Json
|
|
455
|
+
allowedEgress Json @default("[]")
|
|
443
456
|
protectedPaths Json
|
|
444
|
-
collectExclude Json
|
|
445
|
-
toolchain String
|
|
457
|
+
collectExclude Json @default("[]")
|
|
458
|
+
toolchain String @default("node")
|
|
446
459
|
toolchainVersion String?
|
|
447
460
|
workerImageRef String?
|
|
448
461
|
/// Per-agent workspace size in MiB; null = CODING_DISK_MB.
|
|
449
462
|
workspaceDiskMb Int?
|
|
450
|
-
packageAllowlist Json
|
|
451
|
-
packagePolicy Json
|
|
463
|
+
packageAllowlist Json @default("{}")
|
|
464
|
+
packagePolicy Json @default("{}")
|
|
452
465
|
/// Admin-requested debug trace: while now < debugTraceUntil, every coding
|
|
453
466
|
/// run of this agent is dispatched with CodingRun.debugTrace set. Null = off.
|
|
454
467
|
debugTraceUntil DateTime?
|
|
468
|
+
/// Admin-set cap on one traced run's trace output, in MiB; null = the worker default (2).
|
|
469
|
+
debugTraceMaxMb Int?
|
|
455
470
|
/// Coding-run services (docs/coding-services.md): the catalog names
|
|
456
471
|
/// (CodingService.name) this agent's runs may start, any version the catalog
|
|
457
472
|
/// has. Empty = none. Owner-set through update_agent.
|
|
458
|
-
services Json
|
|
473
|
+
services Json @default("[]")
|
|
459
474
|
/// Load the repository's agent skills into coding runs (Codex: .agents/skills, .codex/skills;
|
|
460
475
|
/// Claude Code: .claude/skills). Repo instructions (AGENTS.md / CLAUDE.md) load regardless.
|
|
461
|
-
repoSkills Boolean
|
|
476
|
+
repoSkills Boolean @default(true)
|
|
462
477
|
/// Claude Code runs only: keep Claude Code's bare mode (CLAUDE_CODE_SIMPLE=1); wardby injects
|
|
463
478
|
/// repo instructions and the skill list into the system prompt. False = Claude Code's native loading.
|
|
464
|
-
claudeBareMode Boolean
|
|
479
|
+
claudeBareMode Boolean @default(true)
|
|
480
|
+
/// Restore node_modules from a cached snapshot (written only by trusted wardby code before the
|
|
481
|
+
/// agent starts) instead of a full install. Owner-set; off by default.
|
|
482
|
+
dependencyCache Boolean @default(false)
|
|
483
|
+
/// Keep each Claude Code run's session transcript so it can be resumed in a local CLI
|
|
484
|
+
/// (docs/coding-agent-setup.md#resume-a-run-locally). Owner-set; off by default.
|
|
485
|
+
sessionResume Boolean @default(false)
|
|
486
|
+
/// Owner-set package audit mode (docs/coding-packages.md#package-audit-mode); active while now < packageAuditUntil.
|
|
487
|
+
packageAuditMode PackageAuditMode?
|
|
488
|
+
/// End of the audit window; null = off.
|
|
489
|
+
packageAuditUntil DateTime?
|
|
465
490
|
|
|
466
491
|
/// How `repository` was authorized for this agent (see AgentRepository.authorizedVia):
|
|
467
492
|
/// "host_permission", "admin", or "grandfathered". Null = never authorized; runs are refused.
|
|
@@ -474,64 +499,103 @@ model CodingAgentProfile {
|
|
|
474
499
|
/// Phase 5: immutable dispatch inputs plus opaque execution/result state for
|
|
475
500
|
/// one coding run. Policy is copied from the profile before work starts.
|
|
476
501
|
model CodingRun {
|
|
477
|
-
runId
|
|
478
|
-
run
|
|
479
|
-
task
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
502
|
+
runId String @id
|
|
503
|
+
run Run @relation(fields: [runId], references: [id], onDelete: Cascade)
|
|
504
|
+
task String
|
|
505
|
+
/// 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.
|
|
506
|
+
request String? @db.Text
|
|
507
|
+
repository String
|
|
508
|
+
baseRef String
|
|
509
|
+
headRef String
|
|
510
|
+
provider String
|
|
511
|
+
model String
|
|
512
|
+
timeoutSec Int
|
|
486
513
|
/// 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
|
|
514
|
+
allowedEgress Json @default("[]")
|
|
515
|
+
protectedPaths Json
|
|
516
|
+
collectExclude Json @default("[]")
|
|
517
|
+
jobBackend String?
|
|
518
|
+
jobHandle String?
|
|
519
|
+
result Json?
|
|
520
|
+
resultSchema Int @default(1)
|
|
494
521
|
/// Sanitized terminal classification and an opaque log correlation reference.
|
|
495
522
|
/// Neither field may contain task, repository, environment, or credential data.
|
|
496
|
-
failureCategory
|
|
497
|
-
diagnosticId
|
|
498
|
-
workerImage
|
|
523
|
+
failureCategory String?
|
|
524
|
+
diagnosticId String?
|
|
525
|
+
workerImage String?
|
|
499
526
|
/// Claude Code's tool-runner image, resolved from the agent's toolchain at dispatch; null for Codex runs.
|
|
500
|
-
toolImage
|
|
501
|
-
|
|
527
|
+
toolImage String?
|
|
528
|
+
/// What the run may spend now: its base, plus every overrun top-up granted so
|
|
529
|
+
/// far (on runs with budgetLimitUsd). Budget groups and run trees hold it.
|
|
530
|
+
budgetReservedUsd Decimal @db.Decimal(10, 6)
|
|
531
|
+
/// The budget before the agent's allowed overrun. Null on older runs.
|
|
532
|
+
budgetBaseUsd Decimal? @db.Decimal(10, 6)
|
|
533
|
+
/// The most the run may spend: its base budget raised by the agent's allowed
|
|
534
|
+
/// overrun, never reserved up front; top-ups raise budgetReservedUsd toward it
|
|
535
|
+
/// only from room its group and run tree have left. Null = no top-ups (older
|
|
536
|
+
/// runs, or no allowed overrun): budgetReservedUsd is the limit.
|
|
537
|
+
budgetLimitUsd Decimal? @db.Decimal(10, 6)
|
|
538
|
+
/// What set budgetReservedUsd below the agent's own budget at dispatch:
|
|
539
|
+
/// run-tree, day, week or month. Null = the agent's own budget.
|
|
540
|
+
budgetLimitedBy String?
|
|
502
541
|
/// Phase 12 concurrency queue: set when start() found every coding slot
|
|
503
542
|
/// taken (CODING_MAX_CONCURRENT), cleared when the run claims a slot. A
|
|
504
543
|
/// pending run with queuedAt set is waiting, not orphaned.
|
|
505
|
-
queuedAt
|
|
544
|
+
queuedAt DateTime?
|
|
506
545
|
/// Per-agent workspace size in MiB; null = CODING_DISK_MB.
|
|
507
|
-
workspaceDiskMb
|
|
508
|
-
packageAllowlist
|
|
509
|
-
packagePolicy
|
|
546
|
+
workspaceDiskMb Int?
|
|
547
|
+
packageAllowlist Json @default("{}")
|
|
548
|
+
packagePolicy Json @default("{}")
|
|
510
549
|
/// Fixed at dispatch from the profile's debugTraceUntil: the worker writes a
|
|
511
550
|
/// full stream trace to its own pod log (never to the database).
|
|
512
|
-
debugTrace
|
|
551
|
+
debugTrace Boolean @default(false)
|
|
552
|
+
/// Fixed at dispatch from the profile's debugTraceMaxMb, only on a traced run. Null = the worker default.
|
|
553
|
+
debugTraceMaxMb Int?
|
|
513
554
|
/// Fixed at dispatch from the profile's maxTurns: the Claude Code worker's turn limit. Null = the worker default.
|
|
514
|
-
maxTurns
|
|
555
|
+
maxTurns Int?
|
|
556
|
+
/// Fixed at dispatch from the profile's maxOutputTokens: Claude Code's output tokens per reply. Null = the worker default.
|
|
557
|
+
maxOutputTokens Int?
|
|
515
558
|
/// Fixed at dispatch from the profile's repoSkills.
|
|
516
|
-
repoSkills
|
|
559
|
+
repoSkills Boolean @default(true)
|
|
517
560
|
/// Fixed at dispatch from the profile's claudeBareMode.
|
|
518
|
-
claudeBareMode
|
|
561
|
+
claudeBareMode Boolean @default(true)
|
|
519
562
|
/// Coding-run services resolved at dispatch from the base branch's
|
|
520
563
|
/// .wardby/services.yaml: one snapshot per service (the catalog entry minus
|
|
521
564
|
/// kind), fixed for the run's lifetime. Empty = none.
|
|
522
|
-
services
|
|
565
|
+
services Json @default("[]")
|
|
523
566
|
/// The originating tracker issue ("jira" + key), set by the control plane from the run tree, never from model output.
|
|
524
|
-
issueProvider
|
|
525
|
-
issueKey
|
|
567
|
+
issueProvider String?
|
|
568
|
+
issueKey String?
|
|
526
569
|
/// The branch a run pushed to a local repository (no pull request exists); null otherwise.
|
|
527
|
-
resultBranch
|
|
570
|
+
resultBranch String?
|
|
528
571
|
/// The commit the run started from (the base ref's tip when the workspace was prepared).
|
|
529
|
-
baseSha
|
|
572
|
+
baseSha String?
|
|
530
573
|
/// Step in the request's merge order set by the delegating agent (1 = first); null = no order.
|
|
531
|
-
mergeOrder
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
574
|
+
mergeOrder Int?
|
|
575
|
+
/// When Wardby marked this run's pull request ready for review (at most once;
|
|
576
|
+
/// a person moving it back to draft is final). Only set on a root coding run.
|
|
577
|
+
markedReadyAt DateTime?
|
|
578
|
+
/// Root coding run only: SHA-256 (hex) of the pull request description Wardby last wrote,
|
|
579
|
+
/// normalized (CRLF→LF, Related pull requests section removed, blank lines collapsed, trimmed).
|
|
580
|
+
/// Null = never recorded (pull requests opened before this column, or a lost first write).
|
|
581
|
+
prDescriptionSha256 String?
|
|
582
|
+
/// Root coding run only: the coding run whose final message is that description's agent-written part.
|
|
583
|
+
prDescriptionRunId String?
|
|
584
|
+
/// This run's description update: written | replaced | refreshed:<reason> | unchanged |
|
|
585
|
+
/// edited_by_hand | skipped:<reason>. Null = not attempted.
|
|
586
|
+
prDescriptionOutcome String?
|
|
587
|
+
/// Fixed at dispatch from the profile's dependencyCache.
|
|
588
|
+
dependencyCache Boolean @default(false)
|
|
589
|
+
/// Fixed at dispatch from the profile's sessionResume.
|
|
590
|
+
sessionResume Boolean @default(false)
|
|
591
|
+
/// What the run's dependency cache did, written by the control plane when it collects the run:
|
|
592
|
+
/// { result, key?, sizeBytes?, restoreMs?, installMs?, reason? }. Null = not used or not reported.
|
|
593
|
+
dependencyCacheResult Json?
|
|
594
|
+
/// Fixed at dispatch: the profile's packageAuditMode when its window was open, else null.
|
|
595
|
+
packageAuditMode PackageAuditMode?
|
|
596
|
+
createdAt DateTime @default(now())
|
|
597
|
+
updatedAt DateTime @updatedAt
|
|
598
|
+
proxySession CodingProxySession?
|
|
535
599
|
|
|
536
600
|
/// Revision-in-place for continuing an existing coding pull request.
|
|
537
601
|
/// Points directly at the ROOT CodingRun that actually owns the branch/PR
|
|
@@ -547,6 +611,8 @@ model CodingRun {
|
|
|
547
611
|
registryFetches RegistryFetch[]
|
|
548
612
|
registryApprovedVersions RegistryApprovedVersion[]
|
|
549
613
|
registryPlanRefusals RegistryPlanRefusal[]
|
|
614
|
+
registryAuditRecords RegistryAuditRecord[]
|
|
615
|
+
dependencySnapshots DependencySnapshot[]
|
|
550
616
|
|
|
551
617
|
@@index([jobBackend, jobHandle])
|
|
552
618
|
@@index([failureCategory])
|
|
@@ -555,6 +621,27 @@ model CodingRun {
|
|
|
555
621
|
@@index([mergeOrder])
|
|
556
622
|
}
|
|
557
623
|
|
|
624
|
+
/// A coding run's session transcript for local resume: metadata only. The redacted content lives in
|
|
625
|
+
/// the blob store under blobKey; the unredacted transcript is never stored.
|
|
626
|
+
model RunTranscript {
|
|
627
|
+
runId String @id
|
|
628
|
+
run Run @relation(fields: [runId], references: [id], onDelete: Cascade)
|
|
629
|
+
/// "claude-code" (Codex later).
|
|
630
|
+
provider String
|
|
631
|
+
/// stored | too_large | not_captured | failed
|
|
632
|
+
status String
|
|
633
|
+
/// Fixed code for a status other than stored (e.g. missing, no_blob_store, secrets_unavailable); never content.
|
|
634
|
+
reason String?
|
|
635
|
+
sessionId String?
|
|
636
|
+
blobKey String?
|
|
637
|
+
sizeBytes Int?
|
|
638
|
+
sha256 String?
|
|
639
|
+
createdAt DateTime @default(now())
|
|
640
|
+
expiresAt DateTime
|
|
641
|
+
|
|
642
|
+
@@index([expiresAt])
|
|
643
|
+
}
|
|
644
|
+
|
|
558
645
|
/// Coding-run services (docs/coding-services.md): the catalog a repository's
|
|
559
646
|
/// .wardby/services.yaml names entries from. Admin-managed over MCP
|
|
560
647
|
/// (list/get_service: agents:read; create/update/delete_service:
|
|
@@ -634,6 +721,28 @@ enum CodingProxyRequestStatus {
|
|
|
634
721
|
uncertain
|
|
635
722
|
}
|
|
636
723
|
|
|
724
|
+
enum RunBudgetEventKind {
|
|
725
|
+
refused
|
|
726
|
+
/// A coding run's overrun top-up found no room in its budget group or run tree.
|
|
727
|
+
overrun_unavailable
|
|
728
|
+
}
|
|
729
|
+
|
|
730
|
+
/// One budget decision about a run: a refusal by the coding proxy or at
|
|
731
|
+
/// dispatch, or an overrun top-up with no room, with the numbers behind it.
|
|
732
|
+
/// `limit` names what refused it: run, run-tree, day, week or month. `details`
|
|
733
|
+
/// holds amounts, the model and the turn; never secrets or message text.
|
|
734
|
+
model RunBudgetEvent {
|
|
735
|
+
id String @id @default(cuid())
|
|
736
|
+
runId String
|
|
737
|
+
run Run @relation(fields: [runId], references: [id], onDelete: Cascade)
|
|
738
|
+
kind RunBudgetEventKind
|
|
739
|
+
limit String
|
|
740
|
+
at DateTime @default(now())
|
|
741
|
+
details Json
|
|
742
|
+
|
|
743
|
+
@@index([runId, at])
|
|
744
|
+
}
|
|
745
|
+
|
|
637
746
|
enum NativeGatewaySessionStatus {
|
|
638
747
|
active
|
|
639
748
|
finished
|
|
@@ -677,6 +786,9 @@ model NativeGatewaySession {
|
|
|
677
786
|
/// probe; a Docker run's network exists before its container). The gateway
|
|
678
787
|
/// serves nothing before this is set.
|
|
679
788
|
networkReadyAt DateTime?
|
|
789
|
+
/// What the run's review tools have read (ReviewReadsState), saved between gateway requests
|
|
790
|
+
/// for repo_publish_review's unread_files check. Null until the run reads a pull request.
|
|
791
|
+
reviewReads Json?
|
|
680
792
|
createdAt DateTime @default(now())
|
|
681
793
|
updatedAt DateTime @updatedAt
|
|
682
794
|
calls NativeGatewayCall[]
|
|
@@ -723,6 +835,8 @@ model NativeGatewayCall {
|
|
|
723
835
|
status NativeGatewayCallStatus
|
|
724
836
|
reservationUsd Decimal? @db.Decimal(18, 10)
|
|
725
837
|
actualCostUsd Decimal? @db.Decimal(18, 10)
|
|
838
|
+
/// actualCostUsd is an estimate for an interrupted call, not provider usage.
|
|
839
|
+
costEstimated Boolean @default(false)
|
|
726
840
|
inputTokens Int?
|
|
727
841
|
outputTokens Int?
|
|
728
842
|
cachedInputTokens Int?
|
|
@@ -743,41 +857,49 @@ model NativeGatewayCall {
|
|
|
743
857
|
/// Trusted-boundary state for one coding run. Only a capability digest and an
|
|
744
858
|
/// upstream credential reference are persisted; neither secret value enters the DB.
|
|
745
859
|
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
|
|
860
|
+
id String @id @default(cuid())
|
|
861
|
+
runId String @unique
|
|
862
|
+
run CodingRun @relation(fields: [runId], references: [runId], onDelete: Cascade)
|
|
863
|
+
capabilityHash String @unique
|
|
864
|
+
credentialRef String
|
|
865
|
+
protocol String @default("openai-responses")
|
|
866
|
+
allowedModels Json
|
|
867
|
+
deadlineAt DateTime
|
|
868
|
+
budgetUsd Decimal @db.Decimal(18, 10)
|
|
869
|
+
status CodingProxySessionStatus @default(active)
|
|
870
|
+
createdAt DateTime @default(now())
|
|
871
|
+
updatedAt DateTime @updatedAt
|
|
872
|
+
requests CodingProxyRequest[]
|
|
759
873
|
/// Hash of the derived registry-only token (see deriveRegistryToken); the
|
|
760
874
|
/// token itself is never persisted.
|
|
761
|
-
registryTokenHash
|
|
875
|
+
registryTokenHash String? @unique
|
|
762
876
|
/// Set the first time the proxy refuses a request of this session for
|
|
763
877
|
/// budget; lets the executor report the run as out of budget.
|
|
764
|
-
budgetExhaustedAt
|
|
878
|
+
budgetExhaustedAt DateTime?
|
|
879
|
+
/// 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.
|
|
880
|
+
budgetRefusal Json?
|
|
765
881
|
/// The upstream error code (a fixed identifier, never a message) of the
|
|
766
882
|
/// first provider failure the proxy relayed for this session; lets the
|
|
767
883
|
/// executor say the model provider refused the run.
|
|
768
|
-
upstreamFailure
|
|
884
|
+
upstreamFailure String?
|
|
769
885
|
/// The run's catalog entry, copied from Run.pricingSnapshot when the session
|
|
770
886
|
/// is created; the proxy prices and shapes requests from it. Null on
|
|
771
887
|
/// sessions from before the model catalog (the proxy falls back to the
|
|
772
888
|
/// shipped catalog).
|
|
773
|
-
pricingVersion
|
|
774
|
-
catalogEntry
|
|
889
|
+
pricingVersion String?
|
|
890
|
+
catalogEntry Json?
|
|
891
|
+
/// Dependency cache: every lockfile hash this session's plans approved (with
|
|
892
|
+
/// no refusals) while unsealed, at most 8. Only these may be restored or uploaded.
|
|
893
|
+
dependencyCacheLockHashes String[] @default([])
|
|
894
|
+
/// Set when the run's dependency step is over; after it the cache refuses this session.
|
|
895
|
+
dependencyCacheSealedAt DateTime?
|
|
775
896
|
|
|
776
897
|
@@index([deadlineAt])
|
|
777
898
|
}
|
|
778
899
|
|
|
779
|
-
/// Monotonic per-upstream-call ledger.
|
|
780
|
-
///
|
|
900
|
+
/// Monotonic per-upstream-call ledger. An uncertain request without an
|
|
901
|
+
/// estimate stays held in full; one the proxy estimated (costEstimated) counts
|
|
902
|
+
/// at that estimate.
|
|
781
903
|
model CodingProxyRequest {
|
|
782
904
|
id String @id @default(cuid())
|
|
783
905
|
sessionId String
|
|
@@ -788,6 +910,17 @@ model CodingProxyRequest {
|
|
|
788
910
|
status CodingProxyRequestStatus @default(reserved)
|
|
789
911
|
reservationUsd Decimal @db.Decimal(18, 10)
|
|
790
912
|
actualCostUsd Decimal? @db.Decimal(18, 10)
|
|
913
|
+
/// actualCostUsd is the proxy's estimate for an interrupted (uncertain)
|
|
914
|
+
/// reply, not provider-reported usage.
|
|
915
|
+
costEstimated Boolean @default(false)
|
|
916
|
+
/// UTF-8 bytes of the forwarded request body; the next request's hold compares against it.
|
|
917
|
+
requestBytes Int?
|
|
918
|
+
/// The worst-case hold (whole body as uncached input); a reply costing more cancels the session.
|
|
919
|
+
ceilingUsd Decimal? @db.Decimal(18, 10)
|
|
920
|
+
/// "cached" (priced from the conversation's previous reply) or "full" (= ceilingUsd).
|
|
921
|
+
reservationBasis String?
|
|
922
|
+
/// sha256 of what identifies the conversation (first message, or OpenAI prompt_cache_key).
|
|
923
|
+
conversationKey String?
|
|
791
924
|
pricingVersion String
|
|
792
925
|
pricingSnapshot Json
|
|
793
926
|
inputTokens Int?
|
|
@@ -802,6 +935,33 @@ model CodingProxyRequest {
|
|
|
802
935
|
|
|
803
936
|
@@unique([sessionId, requestKey])
|
|
804
937
|
@@index([sessionId, status])
|
|
938
|
+
@@index([sessionId, conversationKey])
|
|
939
|
+
}
|
|
940
|
+
|
|
941
|
+
/// Package audit mode (docs/coding-packages.md#package-audit-mode).
|
|
942
|
+
enum PackageAuditMode {
|
|
943
|
+
audit
|
|
944
|
+
full
|
|
945
|
+
}
|
|
946
|
+
|
|
947
|
+
/// One package version a run's registry served only because of package audit mode (or, in full mode,
|
|
948
|
+
/// served despite blocking advisories). Insert-only for the proxy.
|
|
949
|
+
model RegistryAuditRecord {
|
|
950
|
+
runId String
|
|
951
|
+
ecosystem String
|
|
952
|
+
name String
|
|
953
|
+
version String
|
|
954
|
+
/// "top-level" | "transitive" | "unknown" | "allowed" (allowed = on the allowlist graph, recorded only for advisories)
|
|
955
|
+
relation String
|
|
956
|
+
/// The top-level audited package that pulled it in (transitive only).
|
|
957
|
+
via String?
|
|
958
|
+
sizeBytes Int?
|
|
959
|
+
/// Full mode: [{ id, severity, summary }] served past; [] otherwise.
|
|
960
|
+
advisories Json @default("[]")
|
|
961
|
+
createdAt DateTime @default(now())
|
|
962
|
+
run CodingRun @relation(fields: [runId], references: [runId], onDelete: Cascade)
|
|
963
|
+
|
|
964
|
+
@@id([runId, ecosystem, name, version])
|
|
805
965
|
}
|
|
806
966
|
|
|
807
967
|
enum RegistryFetchOutcome {
|
|
@@ -813,11 +973,15 @@ enum RegistryFetchOutcome {
|
|
|
813
973
|
/// once at dispatch (see CodingRun.packageAllowlist) and used to gate every
|
|
814
974
|
/// proxy fetch for the run's lifetime.
|
|
815
975
|
model RegistryAllowance {
|
|
816
|
-
runId
|
|
817
|
-
ecosystem
|
|
818
|
-
name
|
|
819
|
-
|
|
820
|
-
|
|
976
|
+
runId String
|
|
977
|
+
ecosystem String
|
|
978
|
+
name String
|
|
979
|
+
/// Set only in an audit-mode run: the top-level audited package whose metadata or file declared this
|
|
980
|
+
/// name (its own name for a top-level audited package; empty when a lockfile plan could not tell). Null = a
|
|
981
|
+
/// normal allowance.
|
|
982
|
+
auditedVia String?
|
|
983
|
+
createdAt DateTime @default(now())
|
|
984
|
+
run CodingRun @relation(fields: [runId], references: [runId], onDelete: Cascade)
|
|
821
985
|
|
|
822
986
|
@@id([runId, ecosystem, name])
|
|
823
987
|
}
|
|
@@ -863,13 +1027,20 @@ model RegistryVersionFact {
|
|
|
863
1027
|
/// /registry/<ecosystem>/-/plan) verified and approved: a download of it is
|
|
864
1028
|
/// served directly, integrity-checked against this value.
|
|
865
1029
|
model RegistryApprovedVersion {
|
|
866
|
-
runId
|
|
867
|
-
ecosystem
|
|
868
|
-
name
|
|
869
|
-
version
|
|
870
|
-
integrity
|
|
871
|
-
|
|
872
|
-
|
|
1030
|
+
runId String
|
|
1031
|
+
ecosystem String
|
|
1032
|
+
name String
|
|
1033
|
+
version String
|
|
1034
|
+
integrity String
|
|
1035
|
+
/// Blocking advisories this run's packagePolicy.acceptedAdvisories waived
|
|
1036
|
+
/// for this version: empty unless the plan kept it only by that waiver. A
|
|
1037
|
+
/// download of it records them on its served RegistryFetch row.
|
|
1038
|
+
acceptedAdvisories String[] @default([])
|
|
1039
|
+
/// Audit-mode plans only: { relation, via?, advisories? } for an approval outside the allowlist, or
|
|
1040
|
+
/// one kept past advisories in full mode. Null = a normal approval.
|
|
1041
|
+
audit Json?
|
|
1042
|
+
createdAt DateTime @default(now())
|
|
1043
|
+
run CodingRun @relation(fields: [runId], references: [runId], onDelete: Cascade)
|
|
873
1044
|
|
|
874
1045
|
@@id([runId, ecosystem, name, version])
|
|
875
1046
|
}
|
|
@@ -894,6 +1065,39 @@ model RegistryPlanRefusal {
|
|
|
894
1065
|
@@id([runId, ecosystem, name, version])
|
|
895
1066
|
}
|
|
896
1067
|
|
|
1068
|
+
/// A cached node_modules snapshot for one npm project of a repository, keyed
|
|
1069
|
+
/// server-side by the coding proxy. The archive lives in the blob store under
|
|
1070
|
+
/// blobKey; only trusted wardby code writes it, before a run's agent starts.
|
|
1071
|
+
/// Outlives the run that created it (createdByRunId is cleared when that run is
|
|
1072
|
+
/// deleted); evicted least-recently-used.
|
|
1073
|
+
model DependencySnapshot {
|
|
1074
|
+
id String @id @default(cuid())
|
|
1075
|
+
ecosystem String
|
|
1076
|
+
repository String
|
|
1077
|
+
/// The project's folder relative to the repository root; "." = the root.
|
|
1078
|
+
projectPath String @default(".")
|
|
1079
|
+
lockHash String
|
|
1080
|
+
workerImage String
|
|
1081
|
+
policyHash String
|
|
1082
|
+
blobKey String @unique
|
|
1083
|
+
sha256 String
|
|
1084
|
+
sizeBytes BigInt
|
|
1085
|
+
/// The format/version and bounds trusted worker code verified before upload.
|
|
1086
|
+
/// Null on snapshots made before validation metadata was introduced.
|
|
1087
|
+
archiveScanVersion Int?
|
|
1088
|
+
archiveEntries Int?
|
|
1089
|
+
unpackedBytes BigInt?
|
|
1090
|
+
createdAt DateTime @default(now())
|
|
1091
|
+
lastUsedAt DateTime @default(now())
|
|
1092
|
+
createdByRunId String?
|
|
1093
|
+
createdByRun CodingRun? @relation(fields: [createdByRunId], references: [runId], onDelete: SetNull)
|
|
1094
|
+
|
|
1095
|
+
@@unique([ecosystem, repository, projectPath, lockHash, workerImage, policyHash])
|
|
1096
|
+
@@index([ecosystem, repository, projectPath, workerImage, policyHash, createdAt])
|
|
1097
|
+
@@index([lastUsedAt])
|
|
1098
|
+
@@index([createdByRunId, projectPath])
|
|
1099
|
+
}
|
|
1100
|
+
|
|
897
1101
|
/// Phase 2: single-row-per-scope lease so exactly one scheduler process
|
|
898
1102
|
/// ticks at a time. `holder` is a process instance id (crypto.randomUUID()).
|
|
899
1103
|
model SchedulerLease {
|
|
@@ -1235,29 +1439,34 @@ model AuthRateLimit {
|
|
|
1235
1439
|
/// and which host events trigger it. See
|
|
1236
1440
|
/// docs/private/2026-09-25-code-review-host-design.md §4.1.
|
|
1237
1441
|
model AgentRepository {
|
|
1238
|
-
id
|
|
1239
|
-
agentId
|
|
1240
|
-
agent
|
|
1442
|
+
id String @id @default(cuid())
|
|
1443
|
+
agentId String
|
|
1444
|
+
agent Agent @relation(fields: [agentId], references: [id], onDelete: Cascade)
|
|
1241
1445
|
/// "github" today; validated in code so adding a host needs no enum migration.
|
|
1242
|
-
provider
|
|
1446
|
+
provider String
|
|
1243
1447
|
/// Canonical lower-case owner/name for the provider.
|
|
1244
|
-
repository
|
|
1448
|
+
repository String
|
|
1245
1449
|
/// "read" or "write".
|
|
1246
|
-
access
|
|
1450
|
+
access String
|
|
1247
1451
|
/// Subset of "pull_request", "mention", "push", "review_fix".
|
|
1248
|
-
triggers
|
|
1452
|
+
triggers String[] @default([])
|
|
1249
1453
|
/// Only with the "pull_request" trigger (required there); names the agent's
|
|
1250
1454
|
/// check. Unique per repository across all links (NULLs are distinct).
|
|
1251
|
-
checkName
|
|
1455
|
+
checkName String?
|
|
1252
1456
|
/// Only with the "review_fix" trigger: how many automatic fix rounds a
|
|
1253
1457
|
/// pull request gets before wardby stops. Null = the default (2).
|
|
1254
|
-
reviewFixMaxRounds
|
|
1458
|
+
reviewFixMaxRounds Int?
|
|
1255
1459
|
/// Only with the "pull_request" trigger: holds this agent's review on a
|
|
1256
1460
|
/// pushed head until that head's own CI finishes (see DeferredReview),
|
|
1257
1461
|
/// instead of racing it. Default off: existing links review immediately,
|
|
1258
1462
|
/// exactly as today.
|
|
1259
|
-
waitForCi
|
|
1260
|
-
|
|
1463
|
+
waitForCi Boolean @default(false)
|
|
1464
|
+
/// Only on a write (builder) link: Wardby marks the draft pull requests this
|
|
1465
|
+
/// agent opened in the repository ready for review, once, after every Wardby
|
|
1466
|
+
/// review check passed, CI is green and the merge order check (if any) is
|
|
1467
|
+
/// success. Default off.
|
|
1468
|
+
markReadyWhenPassing Boolean @default(false)
|
|
1469
|
+
createdAt DateTime @default(now())
|
|
1261
1470
|
|
|
1262
1471
|
/// How this link was authorized: "host_permission" (the agent owner's
|
|
1263
1472
|
/// verified host identity had enough access), "admin" (a wardby admin
|
|
@@ -1481,12 +1690,14 @@ model IssueFingerprint {
|
|
|
1481
1690
|
@@index([createdByRunId])
|
|
1482
1691
|
}
|
|
1483
1692
|
|
|
1484
|
-
/// A pull request wardby opened for
|
|
1693
|
+
/// A pull request wardby opened for an issue (a Jira issue, a GitHub issue): one shape for every issue
|
|
1694
|
+
/// provider. Provider-neutral on both sides.
|
|
1485
1695
|
/// Deliberately no foreign keys to Agent or Run: audit-style rows that survive agent/run deletion.
|
|
1486
1696
|
model IssuePullRequest {
|
|
1487
1697
|
id String @id @default(cuid())
|
|
1488
|
-
/// "jira"
|
|
1698
|
+
/// "jira" or "github" (an issue on a repository).
|
|
1489
1699
|
issueProvider String
|
|
1700
|
+
/// A Jira key ("PROJ-7"), or a GitHub issue's "<owner>/<repo>#<number>" (githubIssueKey).
|
|
1490
1701
|
issueKey String
|
|
1491
1702
|
/// "github" today; "bitbucket" next.
|
|
1492
1703
|
codeProvider String
|
|
@@ -1636,6 +1847,9 @@ model LocalReview {
|
|
|
1636
1847
|
pullRequest LocalPullRequest @relation(fields: [pullRequestId], references: [id], onDelete: Cascade)
|
|
1637
1848
|
agentId String
|
|
1638
1849
|
headSha String
|
|
1850
|
+
/// headSha when this review read every file of it (null otherwise): the head a later
|
|
1851
|
+
/// re-review may compare from and still APPROVE (repo_pr_read's lastCoveredSha).
|
|
1852
|
+
coveredSha String?
|
|
1639
1853
|
/// APPROVE | CHANGES_REQUESTED | COMMENT
|
|
1640
1854
|
verdict String
|
|
1641
1855
|
summary String
|