@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
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CONTINUATION_CLOSED_ERROR } from "../../coding/continuation-wording.js";
|
|
1
|
+
import { budgetStoppedChangesSentence, CONTINUATION_CLOSED_ERROR } from "../../coding/continuation-wording.js";
|
|
2
2
|
import { normalizeGitHubRepository, normalizeGitRef } from "../../coding/protocol.js";
|
|
3
3
|
import { logger } from "../../core/logger.js";
|
|
4
4
|
import { validateChangedPath } from "./git.js";
|
|
@@ -79,7 +79,57 @@ export class GitHubRemote {
|
|
|
79
79
|
if (!open)
|
|
80
80
|
throw new Error(CONTINUATION_CLOSED_ERROR);
|
|
81
81
|
}
|
|
82
|
-
|
|
82
|
+
/** See GitRemote.pullRequestBase: the root run's open PR's current base branch. Never throws. */
|
|
83
|
+
async pullRequestBase(input) {
|
|
84
|
+
const github = this.options.github;
|
|
85
|
+
if (!input.continuation || !github.openPullRequestBase)
|
|
86
|
+
return null;
|
|
87
|
+
try {
|
|
88
|
+
const found = await github.openPullRequestBase({
|
|
89
|
+
runId: input.continuation.rootRunId,
|
|
90
|
+
repository: input.repository,
|
|
91
|
+
baseRef: input.baseRef,
|
|
92
|
+
headRef: input.headRef,
|
|
93
|
+
});
|
|
94
|
+
return found ? { ref: found.baseRef } : null;
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
logger.warn({ err: error, runId: input.runId }, "could not read the continuation pull request's base branch; continuing without merging it");
|
|
98
|
+
return null;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
/** See VcsProvider.continuationPullRequestDraft: GitHub's draft flag on the root run's open PR. Never throws. */
|
|
102
|
+
async continuationPullRequestDraft(workspace) {
|
|
103
|
+
const github = this.options.github;
|
|
104
|
+
if (!workspace.continuation || !github.openPullRequestDraft)
|
|
105
|
+
return undefined;
|
|
106
|
+
try {
|
|
107
|
+
const draft = await github.openPullRequestDraft({
|
|
108
|
+
runId: workspace.continuation.rootRunId,
|
|
109
|
+
repository: workspace.repository,
|
|
110
|
+
baseRef: workspace.baseRef,
|
|
111
|
+
headRef: workspace.headRef,
|
|
112
|
+
});
|
|
113
|
+
return draft ?? undefined;
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
logger.warn({ err: error, runId: workspace.runId }, "could not read the continuation pull request's draft state");
|
|
117
|
+
return undefined;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
/** A continuation's description comment, written before the push (see GitRemote.proposeDescriptionBeforePush). Never throws. */
|
|
121
|
+
async proposeDescriptionBeforePush({ workspace: prepared, details, changedPaths, commitSha, }) {
|
|
122
|
+
const github = this.options.github;
|
|
123
|
+
if (!prepared.continuation || !details?.description || !github.proposeDescriptionComment)
|
|
124
|
+
return;
|
|
125
|
+
try {
|
|
126
|
+
await github.proposeDescriptionComment(this.descriptionInput({ ...prepared, continuation: prepared.continuation }, { ...details, description: details.description }, changedPaths, commitSha));
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
logger.warn({ err: error, runId: prepared.runId }, "pre-push description comment failed");
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
async publish({ workspace: prepared, details, changedPaths, commitSha }) {
|
|
83
133
|
// Revision-in-place: identify the PR by the run that originally opened
|
|
84
134
|
// it (createOrFindDraftPullRequest's marker-based lookup keys on that
|
|
85
135
|
// run's id), not this run's own -- this finds the existing open PR and
|
|
@@ -99,11 +149,65 @@ export class GitHubRemote {
|
|
|
99
149
|
tag: details?.tag,
|
|
100
150
|
packages: details?.packages,
|
|
101
151
|
packageRefusals: details?.packageRefusals,
|
|
152
|
+
...(details?.packageAudit ? { packageAudit: details.packageAudit } : {}),
|
|
153
|
+
...(details?.restoredDependencies?.length ? { restoredDependencies: details.restoredDependencies } : {}),
|
|
102
154
|
changedLockfiles: changedPaths.filter(isLockfilePath),
|
|
103
155
|
...(details?.issue ? { issue: details.issue } : {}),
|
|
156
|
+
...(details?.issueNumber !== undefined ? { issueNumber: details.issueNumber } : {}),
|
|
104
157
|
...(details?.related ? { related: details.related } : {}),
|
|
105
158
|
});
|
|
106
|
-
|
|
159
|
+
let description;
|
|
160
|
+
if (prepared.continuation) {
|
|
161
|
+
description = await this.updateDescription(prepared, details, changedPaths, commitSha);
|
|
162
|
+
}
|
|
163
|
+
else if (pullRequest.descriptionSha256) {
|
|
164
|
+
description = { kind: "written", sha256: pullRequest.descriptionSha256 };
|
|
165
|
+
}
|
|
166
|
+
return {
|
|
167
|
+
kind: "pull_request",
|
|
168
|
+
number: pullRequest.number,
|
|
169
|
+
url: pullRequest.url,
|
|
170
|
+
...(description ? { description } : {}),
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
/** The no-push path: a fix round that changed nothing still re-derives its PR description. */
|
|
174
|
+
async refreshDescription(workspace, details) {
|
|
175
|
+
// No push: the head is the commit the workspace was checked out at.
|
|
176
|
+
return this.updateDescription(workspace, details, [], workspace.baseCommit);
|
|
177
|
+
}
|
|
178
|
+
/** Never throws: a description problem must not fail an already-pushed run. */
|
|
179
|
+
async updateDescription(prepared, details, changedPaths, headSha) {
|
|
180
|
+
const github = this.options.github;
|
|
181
|
+
if (!prepared.continuation || !details?.description || !github.updatePullRequestDescription)
|
|
182
|
+
return undefined;
|
|
183
|
+
try {
|
|
184
|
+
return await github.updatePullRequestDescription(this.descriptionInput({ ...prepared, continuation: prepared.continuation }, { ...details, description: details.description }, changedPaths, headSha));
|
|
185
|
+
}
|
|
186
|
+
catch (error) {
|
|
187
|
+
logger.warn({ err: error, runId: prepared.runId }, "pull request description update failed");
|
|
188
|
+
return { kind: "skipped", reason: "error" };
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
descriptionInput(prepared, details, changedPaths, headSha) {
|
|
192
|
+
return {
|
|
193
|
+
rootRunId: prepared.continuation.rootRunId,
|
|
194
|
+
runId: prepared.runId,
|
|
195
|
+
repository: prepared.repository,
|
|
196
|
+
baseRef: prepared.baseRef,
|
|
197
|
+
headRef: prepared.headRef,
|
|
198
|
+
...(headSha && /^[0-9a-f]{40}$/.test(headSha) ? { headSha } : {}),
|
|
199
|
+
summary: details.summary,
|
|
200
|
+
tests: details.tests,
|
|
201
|
+
tag: details.tag,
|
|
202
|
+
packages: details.packages,
|
|
203
|
+
packageRefusals: details.packageRefusals,
|
|
204
|
+
...(details.packageAudit ? { packageAudit: details.packageAudit } : {}),
|
|
205
|
+
...(details.restoredDependencies?.length ? { restoredDependencies: details.restoredDependencies } : {}),
|
|
206
|
+
changedLockfiles: changedPaths.filter(isLockfilePath),
|
|
207
|
+
...(details.issue ? { issue: details.issue } : {}),
|
|
208
|
+
...(details.issueNumber !== undefined ? { issueNumber: details.issueNumber } : {}),
|
|
209
|
+
baseline: details.description.baseline,
|
|
210
|
+
};
|
|
107
211
|
}
|
|
108
212
|
/**
|
|
109
213
|
* Best-effort "wardby is working on this PR" signal (see VcsProvider) --
|
|
@@ -163,21 +267,27 @@ export class GitHubRemote {
|
|
|
163
267
|
const summarySuffix = details?.summary ? `\n\n${details.summary}` : "";
|
|
164
268
|
const budgetSuffix = details?.budgetSentence ? ` ${details.budgetSentence}` : "";
|
|
165
269
|
const body = outcome === "succeeded"
|
|
166
|
-
? `✅ ${label} finished.${summarySuffix}`
|
|
167
|
-
: outcome === "budget_exhausted"
|
|
168
|
-
?
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
270
|
+
? `✅ ${label} finished.${details?.mergeSentence ? ` ${details.mergeSentence}` : ""}${details?.overrunSentence ? ` ${details.overrunSentence}` : ""}${summarySuffix}`
|
|
271
|
+
: outcome === "budget_exhausted" && details?.changesPushed
|
|
272
|
+
? `⚠️ ${label} ran out of budget before finishing.${budgetSuffix} ${budgetStoppedChangesSentence(details.changesPushed.pullRequestNumber
|
|
273
|
+
? `#${details.changesPushed.pullRequestNumber}`
|
|
274
|
+
: "this pull request", false)}${details?.mergeSentence ? ` ${details.mergeSentence}` : ""}${summarySuffix}`
|
|
275
|
+
: outcome === "budget_exhausted"
|
|
276
|
+
? `❌ ${label} ran out of budget.${budgetSuffix}${summarySuffix}`
|
|
277
|
+
: details?.serviceSentence
|
|
278
|
+
? `❌ ${label} could not start: ${details.serviceSentence}${summarySuffix}`
|
|
279
|
+
: details?.providerSentence
|
|
280
|
+
? `❌ ${label} could not run: ${details.providerSentence}${summarySuffix}`
|
|
281
|
+
: details?.protectedPathSentence
|
|
282
|
+
? `❌ ${label} could not open its changes: ${details.protectedPathSentence}${summarySuffix}`
|
|
283
|
+
: details?.conflictMarkersSentence
|
|
284
|
+
? `❌ ${label} could not push its changes: ${details.conflictMarkersSentence}${summarySuffix}`
|
|
285
|
+
: `❌ ${label} failed.${summarySuffix}`;
|
|
176
286
|
await Promise.allSettled([
|
|
177
287
|
this.options.github.updateContinuationStatusComment({ ...identity, body }),
|
|
178
288
|
this.options.github.completeContinuationCheckRun({
|
|
179
289
|
repository: workspace.repository,
|
|
180
|
-
headSha: workspace.baseCommit,
|
|
290
|
+
...(workspace.baseCommit ? { headSha: workspace.baseCommit } : { headRef: workspace.headRef }),
|
|
181
291
|
runId: workspace.runId,
|
|
182
292
|
outcome: outcome === "succeeded" ? "succeeded" : "failed",
|
|
183
293
|
}),
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
import { type PackageAuditReport } from "../../coding/registry/audit-mode.js";
|
|
2
|
+
import { RELATED_SECTION_END, RELATED_SECTION_START } from "./pr-description.js";
|
|
3
|
+
import type { DescriptionBaseline, DescriptionUpdateResult, RelatedPullRequestEntry, RelatedPullRequestState, RelatedPullRequestsInput, RepositoryFileInput } from "./types.js";
|
|
4
|
+
export type { DescriptionBaseline, DescriptionUpdateResult, RelatedPullRequestEntry, RelatedPullRequestState, RelatedPullRequestsInput, RepositoryFileInput, };
|
|
5
|
+
export { RELATED_SECTION_END, RELATED_SECTION_START };
|
|
1
6
|
export interface GitHubAppConfig {
|
|
2
7
|
appId: string;
|
|
3
8
|
privateKey: string;
|
|
@@ -13,6 +18,9 @@ export interface PackageReport {
|
|
|
13
18
|
ecosystem: string;
|
|
14
19
|
name: string;
|
|
15
20
|
version: string;
|
|
21
|
+
/** Blocking advisories the run's packagePolicy.acceptedAdvisories waived
|
|
22
|
+
* to serve it; listed under "Accepted advisories". */
|
|
23
|
+
acceptedAdvisories?: readonly string[];
|
|
16
24
|
}
|
|
17
25
|
/** One package the registry proxy refused during the run (RegistryFetch outcome "refused"). */
|
|
18
26
|
export interface PackageRefusal {
|
|
@@ -32,6 +40,15 @@ export interface PullRequestInput {
|
|
|
32
40
|
/** Deduplicated by the caller isn't required — pullRequestBody dedupes itself (ecosystem+name+version / +reason). */
|
|
33
41
|
packages?: readonly PackageReport[];
|
|
34
42
|
packageRefusals?: readonly PackageRefusal[];
|
|
43
|
+
/**
|
|
44
|
+
* Package audit mode (control-plane records, never model output): rendered
|
|
45
|
+
* as a [!CAUTION] banner with the packages installed outside the allowlist
|
|
46
|
+
* (and, in full mode, versions served past advisories). Kept when the
|
|
47
|
+
* packages section is dropped for size.
|
|
48
|
+
*/
|
|
49
|
+
packageAudit?: PackageAuditReport;
|
|
50
|
+
/** Folders whose node_modules the dependency cache restored from a snapshot ("." for the root); control-plane data. */
|
|
51
|
+
restoredDependencies?: readonly string[];
|
|
35
52
|
/** Lock files the run changed (repository paths); with refusals, the PR body warns they may be incomplete. */
|
|
36
53
|
changedLockfiles?: readonly string[];
|
|
37
54
|
/**
|
|
@@ -55,15 +72,57 @@ export interface PullRequestInput {
|
|
|
55
72
|
url?: string;
|
|
56
73
|
trackerName?: string;
|
|
57
74
|
};
|
|
75
|
+
/**
|
|
76
|
+
* The issue in this pull request's own repository the run came from (a
|
|
77
|
+
* mention on a GitHub issue; control-plane data, never model output): the
|
|
78
|
+
* body's first visible line is `From issue #N`, the GitHub issue's form of
|
|
79
|
+
* the issue line above. It links the issue but never closes it: whether
|
|
80
|
+
* merging closes it is the agent's choice (`Resolves #N` or `Refs #N` in
|
|
81
|
+
* its summary). Used only when `issue` renders no line.
|
|
82
|
+
*/
|
|
83
|
+
issueNumber?: number;
|
|
58
84
|
/**
|
|
59
85
|
* The request's other pull requests (control-plane rows only), rendered as
|
|
60
86
|
* the marked "Related pull requests" section. Rendering failures omit it.
|
|
61
87
|
*/
|
|
62
88
|
related?: RelatedPullRequestsInput;
|
|
89
|
+
/**
|
|
90
|
+
* The run that last wrote this description (a fix round), rendered as the
|
|
91
|
+
* hidden `<!-- wardby-latest:<runId> -->` last line. The root run marker
|
|
92
|
+
* stays first. Dropped when it isn't a safe run id.
|
|
93
|
+
*/
|
|
94
|
+
latestRunId?: string;
|
|
95
|
+
/**
|
|
96
|
+
* What the packages list covers: this run (the default), or every run on
|
|
97
|
+
* the pull request (a later run's description update, whose `packages` are
|
|
98
|
+
* cumulative). Only the section title differs.
|
|
99
|
+
*/
|
|
100
|
+
packagesScope?: "run" | "pull_request";
|
|
63
101
|
}
|
|
64
102
|
export interface PullRequestResult {
|
|
65
103
|
number: number;
|
|
66
104
|
url: string;
|
|
105
|
+
/**
|
|
106
|
+
* Hash (descriptionSha256) of the body in GitHub's create response. Set only
|
|
107
|
+
* when this call created the pull request; absent when it found one.
|
|
108
|
+
*/
|
|
109
|
+
descriptionSha256?: string;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* A fix round's description update. `runId` is this (latest) run; the pull
|
|
113
|
+
* request is re-found by `rootRunId`'s marker. `related` is ignored: the
|
|
114
|
+
* current body's Related block is kept verbatim.
|
|
115
|
+
*/
|
|
116
|
+
export interface UpdateDescriptionInput extends Omit<PullRequestInput, "runId" | "acceptReadyForReview"> {
|
|
117
|
+
rootRunId: string;
|
|
118
|
+
runId: string;
|
|
119
|
+
baseline: DescriptionBaseline;
|
|
120
|
+
/**
|
|
121
|
+
* The head commit this description describes (the run's pushed commit, or
|
|
122
|
+
* the unchanged head of a no-change round); stamped on the fallback
|
|
123
|
+
* comment so a reviewer only trusts a proposal for the head it reviews.
|
|
124
|
+
*/
|
|
125
|
+
headSha?: string;
|
|
67
126
|
}
|
|
68
127
|
/** See VcsProvider.notifyContinuationStarted/Finished (types.ts) — these back that GitHub-specific mechanism. */
|
|
69
128
|
export interface ContinuationStatusCommentInput {
|
|
@@ -82,17 +141,18 @@ export interface ContinuationCheckRunInput {
|
|
|
82
141
|
/** Stored as the check run's external_id — the re-lookup key, so no numeric id needs to be cached anywhere. */
|
|
83
142
|
runId: string;
|
|
84
143
|
}
|
|
85
|
-
export interface ContinuationCheckRunCompleteInput
|
|
86
|
-
outcome: "succeeded" | "failed";
|
|
87
|
-
}
|
|
88
|
-
/** One file at one ref, read through the API without a clone. */
|
|
89
|
-
export interface RepositoryFileInput {
|
|
144
|
+
export interface ContinuationCheckRunCompleteInput {
|
|
90
145
|
repository: string;
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
146
|
+
runId: string;
|
|
147
|
+
outcome: "succeeded" | "failed";
|
|
148
|
+
/** The commit the check run was created on. */
|
|
149
|
+
headSha?: string;
|
|
150
|
+
/**
|
|
151
|
+
* Used when headSha is unknown (the run's workspace is gone): the check run is
|
|
152
|
+
* looked up on the pull request's head branch, which a run that pushed nothing
|
|
153
|
+
* left at that commit.
|
|
154
|
+
*/
|
|
155
|
+
headRef?: string;
|
|
96
156
|
}
|
|
97
157
|
export interface GitHubRepositoryAccess {
|
|
98
158
|
withRepositoryToken<T>(repository: string, action: (token: string) => Promise<T>): Promise<T>;
|
|
@@ -108,6 +168,46 @@ export interface GitHubRepositoryAccess {
|
|
|
108
168
|
baseRef: string;
|
|
109
169
|
headRef: string;
|
|
110
170
|
}): Promise<PullRequestResult | null>;
|
|
171
|
+
/**
|
|
172
|
+
* Whether the root run's marked open pull request is still a draft: true or
|
|
173
|
+
* false, or null when it is not open (merged, closed, or gone). Optional:
|
|
174
|
+
* without it a caller treats the draft state as unknown.
|
|
175
|
+
*/
|
|
176
|
+
openPullRequestDraft?(input: {
|
|
177
|
+
runId: string;
|
|
178
|
+
repository: string;
|
|
179
|
+
baseRef: string;
|
|
180
|
+
headRef: string;
|
|
181
|
+
}): Promise<boolean | null>;
|
|
182
|
+
/**
|
|
183
|
+
* The current base branch of the root run's marked open pull request (it
|
|
184
|
+
* changes when someone retargets the PR), or null when the PR is not open or
|
|
185
|
+
* its head or base is in another repository (a fork). Optional: without it,
|
|
186
|
+
* continuations are not brought up to date with their target branch.
|
|
187
|
+
*/
|
|
188
|
+
openPullRequestBase?(input: {
|
|
189
|
+
runId: string;
|
|
190
|
+
repository: string;
|
|
191
|
+
baseRef: string;
|
|
192
|
+
headRef: string;
|
|
193
|
+
}): Promise<{
|
|
194
|
+
number: number;
|
|
195
|
+
baseRef: string;
|
|
196
|
+
} | null>;
|
|
197
|
+
/**
|
|
198
|
+
* Rewrites the root run's open pull request description for a fix round,
|
|
199
|
+
* or, when a person edited it since wardby last wrote it, upserts a comment
|
|
200
|
+
* carrying the proposed description instead. Never throws. Optional:
|
|
201
|
+
* without it, descriptions are not updated after the first run.
|
|
202
|
+
*/
|
|
203
|
+
updatePullRequestDescription?(input: UpdateDescriptionInput): Promise<DescriptionUpdateResult>;
|
|
204
|
+
/**
|
|
205
|
+
* Before a fix round's push: when wardby can't write the description
|
|
206
|
+
* directly, writes (or updates) the fallback comment stamped with the head
|
|
207
|
+
* about to be pushed, so it already exists when the push starts a review.
|
|
208
|
+
* True when it wrote one. Never throws. Optional.
|
|
209
|
+
*/
|
|
210
|
+
proposeDescriptionComment?(input: UpdateDescriptionInput): Promise<boolean>;
|
|
111
211
|
/** Creates the status comment if none exists yet for this run, else updates it. */
|
|
112
212
|
upsertContinuationStatusComment(input: ContinuationStatusCommentInput): Promise<void>;
|
|
113
213
|
/** Updates the status comment if one already exists for this run; a no-op otherwise (never creates). */
|
|
@@ -124,48 +224,19 @@ export interface GitHubRepositoryAccess {
|
|
|
124
224
|
readFileAtRef?(input: RepositoryFileInput): Promise<string | null>;
|
|
125
225
|
}
|
|
126
226
|
type Fetch = typeof globalThis.fetch;
|
|
127
|
-
/** Accepts bounded opaque installation tokens without allowing control characters. */
|
|
128
|
-
export declare function isSafeGitHubInstallationToken(value: unknown): value is string;
|
|
129
227
|
/**
|
|
130
228
|
* Same shape as ISSUE_KEY (issue-tracker/types.ts); duplicated so the VCS layer
|
|
131
229
|
* stays free of issue-tracker imports (a test keeps the two in step). The
|
|
132
230
|
* executor validates with the shared one.
|
|
133
231
|
*/
|
|
134
232
|
export declare const PR_ISSUE_KEY: RegExp;
|
|
233
|
+
/** Same shape as GITHUB_ISSUE_KEY (issue-tracker/types.ts), duplicated likewise. Only the Related section shows one. */
|
|
234
|
+
export declare const PR_GITHUB_ISSUE_KEY: RegExp;
|
|
135
235
|
export declare function pullRequestTitle(input: PullRequestInput): string;
|
|
136
|
-
export declare const RELATED_SECTION_START = "<!-- wardby-related:start -->";
|
|
137
|
-
export declare const RELATED_SECTION_END = "<!-- wardby-related:end -->";
|
|
138
236
|
/** At most this many pull requests are listed; the rest are counted. */
|
|
139
237
|
export declare const MAX_RELATED_PULL_REQUESTS = 20;
|
|
140
238
|
/** GitHub rejects a pull request body longer than this. */
|
|
141
239
|
export declare const MAX_PULL_REQUEST_BODY_CHARS = 65536;
|
|
142
|
-
export type RelatedPullRequestState = "open" | "draft" | "merged" | "closed";
|
|
143
|
-
/** One pull request of the request's set, from stored control-plane rows only. */
|
|
144
|
-
export interface RelatedPullRequestEntry {
|
|
145
|
-
repository: string;
|
|
146
|
-
/** Absent only for `self` while the pull request is being created. */
|
|
147
|
-
number?: number;
|
|
148
|
-
/** Live state; absent when unknown (at creation). */
|
|
149
|
-
state?: RelatedPullRequestState;
|
|
150
|
-
/** The pull request whose description this section is in. */
|
|
151
|
-
self?: boolean;
|
|
152
|
-
/**
|
|
153
|
-
* Step in the delegating agent's declared merge order (1-99), from
|
|
154
|
-
* CodingRun.mergeOrder; absent = the delegating agent set no order
|
|
155
|
-
* (an open entry is listed under "Not ordered:" when any other entry,
|
|
156
|
-
* open or done, has one).
|
|
157
|
-
*/
|
|
158
|
-
mergeOrder?: number;
|
|
159
|
-
}
|
|
160
|
-
export interface RelatedPullRequestsInput {
|
|
161
|
-
/** In merge order: by mergeOrder when set, else the order the request's coding runs were dispatched. */
|
|
162
|
-
entries: readonly RelatedPullRequestEntry[];
|
|
163
|
-
issue?: {
|
|
164
|
-
key: string;
|
|
165
|
-
url?: string;
|
|
166
|
-
trackerName?: string;
|
|
167
|
-
};
|
|
168
|
-
}
|
|
169
240
|
/**
|
|
170
241
|
* The "Related pull requests" block, markers included, built only from
|
|
171
242
|
* stored rows (never agent text). Open (and draft, and not-yet-known) pull
|
|
@@ -204,8 +275,15 @@ export declare function isLockfilePath(path: string): boolean;
|
|
|
204
275
|
*/
|
|
205
276
|
/** Rendered verbatim in refusalWarning's first line, and used to locate it in tests. */
|
|
206
277
|
export declare const DEPENDENCY_INSTALL_INCOMPLETE = "Dependency install incomplete.";
|
|
207
|
-
/**
|
|
208
|
-
|
|
278
|
+
/**
|
|
279
|
+
* The pull request body, within GitHub's MAX_PULL_REQUEST_BODY_CHARS. When it
|
|
280
|
+
* would be longer, the informational Packages section goes first; if that is
|
|
281
|
+
* not enough, the agent's summary is truncated to fit (fitSummary keeps its
|
|
282
|
+
* closing-keyword line). The other sections are bounded and stay whole.
|
|
283
|
+
*/
|
|
284
|
+
export declare function pullRequestBody(input: PullRequestInput, options?: {
|
|
285
|
+
omitPackages?: boolean;
|
|
286
|
+
}): string;
|
|
209
287
|
export declare class GitHubAppClient implements GitHubRepositoryAccess {
|
|
210
288
|
private readonly config;
|
|
211
289
|
private readonly fetchImpl;
|
|
@@ -276,6 +354,59 @@ export declare class GitHubAppClient implements GitHubRepositoryAccess {
|
|
|
276
354
|
baseRef: string;
|
|
277
355
|
headRef: string;
|
|
278
356
|
}): Promise<PullRequestResult | null>;
|
|
357
|
+
/** See GitHubRepositoryAccess.openPullRequestDraft: GitHub's own `draft` flag on the marked open PR. */
|
|
358
|
+
openPullRequestDraft(input: {
|
|
359
|
+
runId: string;
|
|
360
|
+
repository: string;
|
|
361
|
+
baseRef: string;
|
|
362
|
+
headRef: string;
|
|
363
|
+
}): Promise<boolean | null>;
|
|
364
|
+
/** See GitHubRepositoryAccess.openPullRequestBase: the marked open PR's current base, same repository only. */
|
|
365
|
+
openPullRequestBase(input: {
|
|
366
|
+
runId: string;
|
|
367
|
+
repository: string;
|
|
368
|
+
baseRef: string;
|
|
369
|
+
headRef: string;
|
|
370
|
+
}): Promise<{
|
|
371
|
+
number: number;
|
|
372
|
+
baseRef: string;
|
|
373
|
+
} | null>;
|
|
374
|
+
/**
|
|
375
|
+
* A fix round's description update (see GitHubRepositoryAccess). One
|
|
376
|
+
* repository token; every failure becomes `skipped:error`.
|
|
377
|
+
*/
|
|
378
|
+
updatePullRequestDescription(input: UpdateDescriptionInput): Promise<DescriptionUpdateResult>;
|
|
379
|
+
/** See GitHubRepositoryAccess.proposeDescriptionComment. */
|
|
380
|
+
proposeDescriptionComment(input: UpdateDescriptionInput): Promise<boolean>;
|
|
381
|
+
/** The validated repository and refs; throws unless this is wardby's own pull request branch. */
|
|
382
|
+
private descriptionTarget;
|
|
383
|
+
/**
|
|
384
|
+
* The open pull request, the description this run proposes, and whether
|
|
385
|
+
* wardby may write it directly: it is unedited (recorded or rebuilt hash),
|
|
386
|
+
* or a person copied wardby's latest proposal in (taken back). Null when
|
|
387
|
+
* the pull request isn't open. `comments` is set when it was read.
|
|
388
|
+
*/
|
|
389
|
+
private descriptionState;
|
|
390
|
+
/**
|
|
391
|
+
* The rebuilt description: the generated sections from this run with
|
|
392
|
+
* `summary` as the agent text, the latest-run marker last, and the current
|
|
393
|
+
* body's Related block re-inserted verbatim. `proposed` drops the Packages
|
|
394
|
+
* section when `full` exceeds GitHub's limit, and is undefined when it still
|
|
395
|
+
* would.
|
|
396
|
+
*/
|
|
397
|
+
private proposedDescription;
|
|
398
|
+
/**
|
|
399
|
+
* Creates the pull request's one description comment, or edits the newest
|
|
400
|
+
* one this App wrote (unchanged text is not re-sent); older duplicates are
|
|
401
|
+
* rewritten to point at it. A comment anyone else wrote is never edited.
|
|
402
|
+
*/
|
|
403
|
+
private upsertDescriptionComment;
|
|
404
|
+
/** Once a run applied its description, a pending proposal in the description comment is marked applied. */
|
|
405
|
+
private markDescriptionCommentApplied;
|
|
406
|
+
/** Rewrites duplicate description comments to a pointer at the one in use. */
|
|
407
|
+
private supersedeDescriptionComments;
|
|
408
|
+
/** The description comments this App wrote (see findDescriptionComments; the reviewer reads them the same way). */
|
|
409
|
+
private findDescriptionComments;
|
|
279
410
|
private appJwt;
|
|
280
411
|
private mintRepositoryToken;
|
|
281
412
|
/**
|
|
@@ -289,8 +420,17 @@ export declare class GitHubAppClient implements GitHubRepositoryAccess {
|
|
|
289
420
|
private mintScopedToken;
|
|
290
421
|
private revokeToken;
|
|
291
422
|
private findPullRequest;
|
|
423
|
+
/**
|
|
424
|
+
* findPullRequest, plus the matched pull request's raw body and payload. Not
|
|
425
|
+
* filtered by base: a person may retarget the PR, and the head branch plus the
|
|
426
|
+
* run marker already identify it. When several open PRs match, the one on
|
|
427
|
+
* `baseRef` wins.
|
|
428
|
+
*/
|
|
429
|
+
private findMarkedPullRequest;
|
|
292
430
|
private parsePullRequest;
|
|
293
431
|
private findStatusComment;
|
|
432
|
+
/** The first comment on the pull request (first page) whose body `matches`. */
|
|
433
|
+
private findMarkedComment;
|
|
294
434
|
private findCheckRun;
|
|
295
435
|
/** Public for the code-review host, which issues its own REST calls with tokens minted here. */
|
|
296
436
|
requestJson(path: string, bearer: string, init?: RequestInit, expectedStatuses?: number[]): Promise<Response>;
|
|
@@ -300,4 +440,3 @@ export declare class GitHubAppClient implements GitHubRepositoryAccess {
|
|
|
300
440
|
*/
|
|
301
441
|
graphql(bearer: string, query: string, variables: Record<string, unknown>): Promise<Record<string, unknown>>;
|
|
302
442
|
}
|
|
303
|
-
export {};
|