@wardby/cli 0.2.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +53 -4
- package/README.md +52 -13
- package/dist/claude-coding-worker/driver.d.ts +6 -1
- package/dist/claude-coding-worker/driver.js +27 -1
- package/dist/claude-coding-worker/main.js +2 -0
- package/dist/claude-coding-worker/tool-socket.d.ts +9 -0
- package/dist/claude-coding-worker/tool-socket.js +26 -0
- package/dist/cli-help.d.ts +1 -1
- package/dist/cli-help.js +14 -4
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +284 -36
- package/dist/coding/base-commit.d.ts +6 -0
- package/dist/coding/base-commit.js +12 -0
- package/dist/coding/collect-exclude.d.ts +25 -0
- package/dist/coding/collect-exclude.js +76 -0
- package/dist/coding/profile.d.ts +67 -22
- package/dist/coding/profile.js +58 -25
- package/dist/coding/protected-path-wording.d.ts +24 -0
- package/dist/coding/protected-path-wording.js +55 -0
- package/dist/coding/protected-paths.d.ts +31 -0
- package/dist/coding/protected-paths.js +48 -0
- package/dist/coding/protocol.d.ts +91 -4
- package/dist/coding/protocol.js +123 -12
- package/dist/coding/provider.d.ts +6 -1
- package/dist/coding/provider.js +16 -9
- package/dist/coding/registry/adapters.d.ts +2 -0
- package/dist/coding/registry/adapters.js +9 -0
- package/dist/coding/registry/allowlist.d.ts +9 -0
- package/dist/coding/registry/allowlist.js +28 -0
- package/dist/coding/registry/json-scan.d.ts +55 -0
- package/dist/coding/registry/json-scan.js +191 -0
- package/dist/coding/registry/lockfiles.d.ts +6 -0
- package/dist/coding/registry/lockfiles.js +89 -0
- package/dist/coding/registry/npm-lockfile.d.ts +9 -0
- package/dist/coding/registry/npm-lockfile.js +73 -0
- package/dist/coding/registry/npm-plan.d.ts +29 -0
- package/dist/coding/registry/npm-plan.js +289 -0
- package/dist/coding/registry/npm.d.ts +7 -0
- package/dist/coding/registry/npm.js +252 -0
- package/dist/coding/registry/pypi.d.ts +4 -0
- package/dist/coding/registry/pypi.js +210 -0
- package/dist/coding/registry/report.d.ts +37 -0
- package/dist/coding/registry/report.js +31 -0
- package/dist/coding/registry/token.d.ts +4 -0
- package/dist/coding/registry/token.js +7 -0
- package/dist/coding/registry/types.d.ts +286 -0
- package/dist/coding/registry/types.js +19 -0
- package/dist/coding/registry/worker-config.d.ts +14 -0
- package/dist/coding/registry/worker-config.js +31 -0
- package/dist/coding/services/builtins.d.ts +22 -0
- package/dist/coding/services/builtins.js +85 -0
- package/dist/coding/services/catalog.d.ts +443 -0
- package/dist/coding/services/catalog.js +159 -0
- package/dist/coding/services/declaration.d.ts +11 -0
- package/dist/coding/services/declaration.js +114 -0
- package/dist/coding/services/note.d.ts +8 -0
- package/dist/coding/services/note.js +15 -0
- package/dist/coding/services/resolve.d.ts +25 -0
- package/dist/coding/services/resolve.js +50 -0
- package/dist/coding/services/wording.d.ts +25 -0
- package/dist/coding/services/wording.js +70 -0
- package/dist/coding-proxy/main.js +24 -4
- package/dist/coding-worker/artifact.d.ts +6 -0
- package/dist/coding-worker/debug-trace.d.ts +37 -0
- package/dist/coding-worker/debug-trace.js +117 -0
- package/dist/coding-worker/driver.d.ts +13 -1
- package/dist/coding-worker/driver.js +102 -13
- package/dist/coding-worker/errors.js +8 -0
- package/dist/coding-worker/main.js +10 -2
- package/dist/coding-worker/sdk.d.ts +2 -2
- package/dist/coding-worker/sdk.js +7 -2
- package/dist/coding-worker/types.d.ts +3 -0
- package/dist/config/providers.d.ts +66 -0
- package/dist/config/providers.js +137 -0
- package/dist/core/attribution.d.ts +101 -0
- package/dist/core/attribution.js +208 -0
- package/dist/core/budget-groups.d.ts +120 -10
- package/dist/core/budget-groups.js +133 -24
- package/dist/core/budget-wording.d.ts +22 -0
- package/dist/core/budget-wording.js +55 -0
- package/dist/core/coding-queue.d.ts +3 -0
- package/dist/core/coding-queue.js +6 -2
- package/dist/core/coding-service-status.d.ts +11 -0
- package/dist/core/coding-service-status.js +17 -0
- package/dist/core/cost-report.d.ts +88 -0
- package/dist/core/cost-report.js +248 -0
- package/dist/core/datastores.js +18 -2
- package/dist/core/db.d.ts +5 -1
- package/dist/core/db.js +8 -2
- package/dist/core/dispatch.d.ts +74 -7
- package/dist/core/dispatch.js +382 -47
- package/dist/core/engine-native.js +44 -14
- package/dist/core/glob.d.ts +10 -0
- package/dist/core/glob.js +33 -0
- package/dist/core/grants.d.ts +86 -0
- package/dist/core/grants.js +126 -0
- package/dist/core/host-events.d.ts +72 -0
- package/dist/core/host-events.js +597 -0
- package/dist/core/host-identity-links.d.ts +54 -0
- package/dist/core/host-identity-links.js +189 -0
- package/dist/core/host-status.d.ts +78 -0
- package/dist/core/host-status.js +228 -0
- package/dist/core/in-flight-runs.d.ts +8 -0
- package/dist/core/in-flight-runs.js +56 -0
- package/dist/core/issue-bridge.d.ts +60 -0
- package/dist/core/issue-bridge.js +189 -0
- package/dist/core/issue-dedupe.d.ts +70 -0
- package/dist/core/issue-dedupe.js +255 -0
- package/dist/core/issue-events.d.ts +42 -0
- package/dist/core/issue-events.js +155 -0
- package/dist/core/issue-status.d.ts +29 -0
- package/dist/core/issue-status.js +241 -0
- package/dist/core/issue-tracker-tools.d.ts +64 -0
- package/dist/core/issue-tracker-tools.js +850 -0
- package/dist/core/model-usage.d.ts +10 -0
- package/dist/core/model-usage.js +24 -0
- package/dist/core/provider-wording.d.ts +12 -0
- package/dist/core/provider-wording.js +44 -0
- package/dist/core/reconciler.d.ts +42 -2
- package/dist/core/reconciler.js +97 -2
- package/dist/core/repo-access.d.ts +99 -0
- package/dist/core/repo-access.js +136 -0
- package/dist/core/review-host-checks.d.ts +11 -0
- package/dist/core/review-host-checks.js +41 -0
- package/dist/core/review-host-tools.d.ts +47 -0
- package/dist/core/review-host-tools.js +354 -0
- package/dist/core/run-heartbeat.d.ts +27 -0
- package/dist/core/run-heartbeat.js +54 -0
- package/dist/core/run-pricing.d.ts +61 -0
- package/dist/core/run-pricing.js +56 -0
- package/dist/core/runner.d.ts +33 -8
- package/dist/core/runner.js +410 -62
- package/dist/core/scheduler.d.ts +4 -1
- package/dist/core/scheduler.js +3 -2
- package/dist/core/secrets.d.ts +11 -2
- package/dist/core/secrets.js +25 -6
- package/dist/core/self-defects.d.ts +80 -0
- package/dist/core/self-defects.js +180 -0
- package/dist/core/subagent-memory-tools.d.ts +1 -1
- package/dist/core/subagent-memory-tools.js +16 -3
- package/dist/core/tool-admin.d.ts +81 -0
- package/dist/core/tool-admin.js +129 -0
- package/dist/core/tool-names.d.ts +42 -0
- package/dist/core/tool-names.js +67 -0
- package/dist/core/untrusted-content.d.ts +32 -0
- package/dist/core/untrusted-content.js +72 -0
- package/dist/core/webhooks.d.ts +17 -2
- package/dist/core/webhooks.js +42 -3
- package/dist/generated/prisma/browser.d.ts +166 -0
- package/dist/generated/prisma/client.d.ts +166 -0
- package/dist/generated/prisma/commonInputTypes.d.ts +152 -52
- package/dist/generated/prisma/enums.d.ts +13 -0
- package/dist/generated/prisma/enums.js +12 -1
- package/dist/generated/prisma/internal/class.d.ts +242 -0
- package/dist/generated/prisma/internal/class.js +4 -4
- package/dist/generated/prisma/internal/prismaNamespace.d.ts +2571 -577
- package/dist/generated/prisma/internal/prismaNamespace.js +312 -6
- package/dist/generated/prisma/internal/prismaNamespaceBrowser.d.ts +328 -0
- package/dist/generated/prisma/internal/prismaNamespaceBrowser.js +312 -6
- package/dist/generated/prisma/models/Agent.d.ts +682 -1
- package/dist/generated/prisma/models/AgentIssueProject.d.ts +1838 -0
- package/dist/generated/prisma/models/AgentIssueProject.js +1 -0
- package/dist/generated/prisma/models/AgentRepository.d.ts +1425 -0
- package/dist/generated/prisma/models/AgentRepository.js +1 -0
- package/dist/generated/prisma/models/AgentTool.d.ts +95 -1
- package/dist/generated/prisma/models/AuthUser.d.ts +56 -1
- package/dist/generated/prisma/models/CodingAgentProfile.d.ts +258 -7
- package/dist/generated/prisma/models/CodingProxySession.d.ts +195 -2
- package/dist/generated/prisma/models/CodingRun.d.ts +1405 -95
- package/dist/generated/prisma/models/CodingRunServiceStatus.d.ts +1404 -0
- package/dist/generated/prisma/models/CodingRunServiceStatus.js +1 -0
- package/dist/generated/prisma/models/CodingService.d.ts +1348 -0
- package/dist/generated/prisma/models/CodingService.js +1 -0
- package/dist/generated/prisma/models/HostEventDelivery.d.ts +946 -0
- package/dist/generated/prisma/models/HostEventDelivery.js +1 -0
- package/dist/generated/prisma/models/HostIdentity.d.ts +1232 -0
- package/dist/generated/prisma/models/HostIdentity.js +1 -0
- package/dist/generated/prisma/models/HostIdentityLinkRequest.d.ts +1473 -0
- package/dist/generated/prisma/models/HostIdentityLinkRequest.js +1 -0
- package/dist/generated/prisma/models/IssueFingerprint.d.ts +1183 -0
- package/dist/generated/prisma/models/IssueFingerprint.js +1 -0
- package/dist/generated/prisma/models/IssuePullRequest.d.ts +1255 -0
- package/dist/generated/prisma/models/IssuePullRequest.js +1 -0
- package/dist/generated/prisma/models/ModelCatalogEntry.d.ts +1322 -0
- package/dist/generated/prisma/models/ModelCatalogEntry.js +1 -0
- package/dist/generated/prisma/models/Principal.d.ts +455 -0
- package/dist/generated/prisma/models/RegistryAllowance.d.ts +1148 -0
- package/dist/generated/prisma/models/RegistryAllowance.js +1 -0
- package/dist/generated/prisma/models/RegistryApprovedVersion.d.ts +1219 -0
- package/dist/generated/prisma/models/RegistryApprovedVersion.js +1 -0
- package/dist/generated/prisma/models/RegistryFetch.d.ts +1428 -0
- package/dist/generated/prisma/models/RegistryFetch.js +1 -0
- package/dist/generated/prisma/models/RegistryPlanRefusal.d.ts +1294 -0
- package/dist/generated/prisma/models/RegistryPlanRefusal.js +1 -0
- package/dist/generated/prisma/models/RegistryVersionFact.d.ts +1085 -0
- package/dist/generated/prisma/models/RegistryVersionFact.js +1 -0
- package/dist/generated/prisma/models/ResourceGrant.d.ts +1437 -0
- package/dist/generated/prisma/models/ResourceGrant.js +1 -0
- package/dist/generated/prisma/models/Run.d.ts +1402 -82
- package/dist/generated/prisma/models/RunAttribution.d.ts +1259 -0
- package/dist/generated/prisma/models/RunAttribution.js +1 -0
- package/dist/generated/prisma/models/RunHostCheck.d.ts +1239 -0
- package/dist/generated/prisma/models/RunHostCheck.js +1 -0
- package/dist/generated/prisma/models/RunHostStatus.d.ts +1315 -0
- package/dist/generated/prisma/models/RunHostStatus.js +1 -0
- package/dist/generated/prisma/models/RunIssueStatus.d.ts +1199 -0
- package/dist/generated/prisma/models/RunIssueStatus.js +1 -0
- package/dist/generated/prisma/models/RunModelUsage.d.ts +1316 -0
- package/dist/generated/prisma/models/RunModelUsage.js +1 -0
- package/dist/generated/prisma/models/Tool.d.ts +15 -3
- package/dist/generated/prisma/models/WorkItem.d.ts +1408 -0
- package/dist/generated/prisma/models/WorkItem.js +1 -0
- package/dist/generated/prisma/models.d.ts +22 -0
- package/dist/help/build.d.ts +1 -0
- package/dist/help/build.js +9 -0
- package/dist/help/catalog.d.ts +24 -0
- package/dist/help/catalog.js +160 -0
- package/dist/help/cli.d.ts +2 -0
- package/dist/help/cli.js +65 -0
- package/dist/help/runtime.d.ts +3 -0
- package/dist/help/runtime.js +44 -0
- package/dist/help/search.d.ts +9 -0
- package/dist/help/search.js +104 -0
- package/dist/help-index.json +999 -0
- package/dist/import/cli-args.js +3 -2
- package/dist/import/create.d.ts +5 -0
- package/dist/import/create.js +67 -13
- package/dist/import/index.js +19 -9
- package/dist/import/neutral-schema.d.ts +18 -18
- package/dist/knowledge/check.d.ts +13 -0
- package/dist/knowledge/check.js +69 -0
- package/dist/knowledge/cli.d.ts +14 -0
- package/dist/knowledge/cli.js +67 -0
- package/dist/knowledge/concept.d.ts +54 -0
- package/dist/knowledge/concept.js +78 -0
- package/dist/knowledge/note.d.ts +11 -0
- package/dist/knowledge/note.js +39 -0
- package/dist/knowledge/relevance.d.ts +11 -0
- package/dist/knowledge/relevance.js +14 -0
- package/dist/knowledge/span-hash.d.ts +3 -0
- package/dist/knowledge/span-hash.js +16 -0
- package/dist/mcp/auth/access.d.ts +72 -0
- package/dist/mcp/auth/access.js +58 -0
- package/dist/mcp/auth/grants-cli.d.ts +149 -0
- package/dist/mcp/auth/grants-cli.js +518 -0
- package/dist/mcp/auth/host-account-cli.d.ts +2 -0
- package/dist/mcp/auth/host-account-cli.js +47 -0
- package/dist/mcp/auth/ownership.d.ts +25 -51
- package/dist/mcp/auth/ownership.js +19 -14
- package/dist/mcp/auth/repo-authorization.d.ts +22 -0
- package/dist/mcp/auth/repo-authorization.js +51 -0
- package/dist/mcp/auth/resource-server.d.ts +33 -2
- package/dist/mcp/auth/resource-server.js +99 -3
- package/dist/mcp/auth/self-hosted/browser.js +2 -2
- package/dist/mcp/auth/self-hosted/cli.js +47 -13
- package/dist/mcp/auth/self-hosted/credentials.d.ts +23 -5
- package/dist/mcp/auth/self-hosted/credentials.js +62 -4
- package/dist/mcp/auth/self-hosted/session.d.ts +7 -6
- package/dist/mcp/context.d.ts +30 -1
- package/dist/mcp/errors.d.ts +25 -6
- package/dist/mcp/errors.js +98 -0
- package/dist/mcp/host-events/deliveries.d.ts +9 -0
- package/dist/mcp/host-events/deliveries.js +17 -0
- package/dist/mcp/host-events/github-ingress.d.ts +38 -0
- package/dist/mcp/host-events/github-ingress.js +83 -0
- package/dist/mcp/host-events/github-user-callback.d.ts +18 -0
- package/dist/mcp/host-events/github-user-callback.js +50 -0
- package/dist/mcp/host-events/jira-ingress.d.ts +29 -0
- package/dist/mcp/host-events/jira-ingress.js +92 -0
- package/dist/mcp/index.d.ts +10 -1
- package/dist/mcp/index.js +187 -19
- package/dist/mcp/server.js +32 -11
- package/dist/mcp/tools/agents.js +519 -50
- package/dist/mcp/tools/budget-groups.js +3 -3
- package/dist/mcp/tools/cost-report.d.ts +8 -0
- package/dist/mcp/tools/cost-report.js +60 -0
- package/dist/mcp/tools/datastore.js +22 -15
- package/dist/mcp/tools/grants.d.ts +2 -0
- package/dist/mcp/tools/grants.js +239 -0
- package/dist/mcp/tools/help.d.ts +5 -0
- package/dist/mcp/tools/help.js +67 -0
- package/dist/mcp/tools/host-accounts.d.ts +2 -0
- package/dist/mcp/tools/host-accounts.js +114 -0
- package/dist/mcp/tools/issue-projects.d.ts +2 -0
- package/dist/mcp/tools/issue-projects.js +238 -0
- package/dist/mcp/tools/memory.d.ts +7 -1
- package/dist/mcp/tools/memory.js +5 -5
- package/dist/mcp/tools/model-catalog.d.ts +22 -0
- package/dist/mcp/tools/model-catalog.js +423 -0
- package/dist/mcp/tools/repositories.d.ts +2 -0
- package/dist/mcp/tools/repositories.js +182 -0
- package/dist/mcp/tools/runs.d.ts +6 -0
- package/dist/mcp/tools/runs.js +60 -6
- package/dist/mcp/tools/scheduling.js +3 -6
- package/dist/mcp/tools/secrets.js +18 -6
- package/dist/mcp/tools/services.d.ts +2 -0
- package/dist/mcp/tools/services.js +222 -0
- package/dist/mcp/tools/subagents.js +52 -16
- package/dist/mcp/tools/tools.d.ts +41 -0
- package/dist/mcp/tools/tools.js +201 -40
- package/dist/mcp/tools/trigger.js +65 -7
- package/dist/mcp/tools/webhooks.js +15 -4
- package/dist/mcp/transport/streamable-http.d.ts +15 -0
- package/dist/mcp/transport/streamable-http.js +55 -3
- package/dist/mcp/webhooks/ingress.d.ts +2 -1
- package/dist/mcp/webhooks/ingress.js +9 -2
- package/dist/providers/auth/delegating.d.ts +19 -0
- package/dist/providers/auth/delegating.js +71 -0
- package/dist/providers/auth/index.d.ts +2 -0
- package/dist/providers/auth/index.js +11 -0
- package/dist/providers/auth/self-hosted.d.ts +10 -2
- package/dist/providers/auth/self-hosted.js +55 -6
- package/dist/providers/auth/types.d.ts +6 -0
- package/dist/providers/coding-proxy/memory-ledger.d.ts +4 -1
- package/dist/providers/coding-proxy/memory-ledger.js +31 -3
- package/dist/providers/coding-proxy/metering.d.ts +6 -1
- package/dist/providers/coding-proxy/metering.js +41 -4
- package/dist/providers/coding-proxy/prisma-ledger.d.ts +17 -0
- package/dist/providers/coding-proxy/prisma-ledger.js +106 -8
- package/dist/providers/coding-proxy/proxy.d.ts +25 -2
- package/dist/providers/coding-proxy/proxy.js +561 -38
- package/dist/providers/coding-proxy/registry/audit.d.ts +131 -0
- package/dist/providers/coding-proxy/registry/audit.js +380 -0
- package/dist/providers/coding-proxy/registry/bounded-fetch.d.ts +16 -0
- package/dist/providers/coding-proxy/registry/bounded-fetch.js +77 -0
- package/dist/providers/coding-proxy/registry/plan.d.ts +58 -0
- package/dist/providers/coding-proxy/registry/plan.js +304 -0
- package/dist/providers/coding-proxy/registry/prisma-store.d.ts +34 -0
- package/dist/providers/coding-proxy/registry/prisma-store.js +151 -0
- package/dist/providers/coding-proxy/registry/service.d.ts +213 -0
- package/dist/providers/coding-proxy/registry/service.js +1137 -0
- package/dist/providers/coding-proxy/registry/store.d.ts +127 -0
- package/dist/providers/coding-proxy/registry/store.js +70 -0
- package/dist/providers/coding-proxy/runtime.d.ts +17 -0
- package/dist/providers/coding-proxy/runtime.js +63 -0
- package/dist/providers/coding-proxy/secure-fetch.js +0 -1
- package/dist/providers/coding-proxy/server.d.ts +11 -0
- package/dist/providers/coding-proxy/server.js +163 -0
- package/dist/providers/coding-proxy/types.d.ts +33 -1
- package/dist/providers/coding-proxy/types.js +12 -1
- package/dist/providers/engine/types.d.ts +29 -0
- package/dist/providers/executor/build.d.ts +2 -2
- package/dist/providers/executor/composition.d.ts +3 -0
- package/dist/providers/executor/composition.js +28 -1
- package/dist/providers/executor/container.d.ts +134 -4
- package/dist/providers/executor/container.js +394 -37
- package/dist/providers/executor/dbos.d.ts +4 -3
- package/dist/providers/executor/dbos.js +7 -5
- package/dist/providers/executor/in-process.d.ts +2 -3
- package/dist/providers/executor/routing.d.ts +13 -0
- package/dist/providers/executor/routing.js +18 -0
- package/dist/providers/executor/types.d.ts +34 -0
- package/dist/providers/issue-tracker/adf.d.ts +31 -0
- package/dist/providers/issue-tracker/adf.js +181 -0
- package/dist/providers/issue-tracker/index.d.ts +5 -0
- package/dist/providers/issue-tracker/index.js +12 -0
- package/dist/providers/issue-tracker/jira-client.d.ts +41 -0
- package/dist/providers/issue-tracker/jira-client.js +151 -0
- package/dist/providers/issue-tracker/jira-events.d.ts +3 -0
- package/dist/providers/issue-tracker/jira-events.js +98 -0
- package/dist/providers/issue-tracker/jira.d.ts +116 -0
- package/dist/providers/issue-tracker/jira.js +502 -0
- package/dist/providers/issue-tracker/types.d.ts +269 -0
- package/dist/providers/issue-tracker/types.js +16 -0
- package/dist/providers/jobs/claude-tool-setup.d.ts +23 -0
- package/dist/providers/jobs/claude-tool-setup.js +50 -0
- package/dist/providers/jobs/collect-prune.d.ts +7 -0
- package/dist/providers/jobs/collect-prune.js +27 -0
- package/dist/providers/jobs/docker-isolation.d.ts +48 -3
- package/dist/providers/jobs/docker-isolation.js +213 -22
- package/dist/providers/jobs/docker-services.d.ts +35 -0
- package/dist/providers/jobs/docker-services.js +191 -0
- package/dist/providers/jobs/docker.d.ts +53 -2
- package/dist/providers/jobs/docker.js +307 -32
- package/dist/providers/jobs/fake-kubernetes-api.d.ts +1 -0
- package/dist/providers/jobs/fake-kubernetes-api.js +12 -3
- package/dist/providers/jobs/kubernetes-isolation.d.ts +17 -2
- package/dist/providers/jobs/kubernetes-isolation.js +238 -57
- package/dist/providers/jobs/kubernetes-platform.d.ts +10 -4
- package/dist/providers/jobs/kubernetes-platform.js +11 -5
- package/dist/providers/jobs/kubernetes-preflight.js +3 -0
- package/dist/providers/jobs/kubernetes.d.ts +24 -2
- package/dist/providers/jobs/kubernetes.js +153 -22
- package/dist/providers/jobs/service-state.d.ts +22 -0
- package/dist/providers/jobs/service-state.js +17 -0
- package/dist/providers/jobs/types.d.ts +18 -0
- package/dist/providers/llm/anthropic.d.ts +3 -3
- package/dist/providers/llm/anthropic.js +3 -5
- package/dist/providers/llm/bedrock.d.ts +3 -3
- package/dist/providers/llm/bedrock.js +3 -8
- package/dist/providers/llm/catalog-lookup.d.ts +10 -0
- package/dist/providers/llm/catalog-lookup.js +15 -0
- package/dist/providers/llm/catalog-shipped.d.ts +18 -0
- package/dist/providers/llm/catalog-shipped.js +197 -0
- package/dist/providers/llm/catalog-store.d.ts +58 -0
- package/dist/providers/llm/catalog-store.js +138 -0
- package/dist/providers/llm/catalog-types.d.ts +66 -0
- package/dist/providers/llm/catalog-types.js +64 -0
- package/dist/providers/llm/catalog.d.ts +61 -0
- package/dist/providers/llm/catalog.js +147 -0
- package/dist/providers/llm/claude-messages.d.ts +5 -1
- package/dist/providers/llm/claude-messages.js +1 -0
- package/dist/providers/llm/claude-provider.d.ts +10 -12
- package/dist/providers/llm/claude-provider.js +15 -6
- package/dist/providers/llm/index.d.ts +9 -6
- package/dist/providers/llm/index.js +8 -5
- package/dist/providers/llm/openai.d.ts +14 -5
- package/dist/providers/llm/openai.js +24 -14
- package/dist/providers/llm/pricing-core.d.ts +5 -3
- package/dist/providers/llm/registration.js +8 -12
- package/dist/providers/llm/routing.d.ts +21 -11
- package/dist/providers/llm/routing.js +47 -13
- package/dist/providers/llm/types.d.ts +12 -0
- package/dist/providers/llm/types.js +8 -1
- package/dist/providers/review-host/diff-lines.d.ts +16 -0
- package/dist/providers/review-host/diff-lines.js +59 -0
- package/dist/providers/review-host/github-events.d.ts +6 -0
- package/dist/providers/review-host/github-events.js +226 -0
- package/dist/providers/review-host/github-user-auth.d.ts +38 -0
- package/dist/providers/review-host/github-user-auth.js +128 -0
- package/dist/providers/review-host/github.d.ts +57 -0
- package/dist/providers/review-host/github.js +568 -0
- package/dist/providers/review-host/index.d.ts +12 -0
- package/dist/providers/review-host/index.js +30 -0
- package/dist/providers/review-host/review-format.d.ts +19 -0
- package/dist/providers/review-host/review-format.js +59 -0
- package/dist/providers/review-host/types.d.ts +309 -0
- package/dist/providers/review-host/types.js +24 -0
- package/dist/providers/vcs/git.d.ts +16 -6
- package/dist/providers/vcs/git.js +78 -34
- package/dist/providers/vcs/github.d.ts +94 -3
- package/dist/providers/vcs/github.js +223 -17
- package/dist/providers/vcs/types.d.ts +48 -4
- package/dist/quickstart/index.d.ts +2 -0
- package/dist/quickstart/index.js +36 -8
- package/dist/sandbox/fetch-policy.d.ts +20 -2
- package/dist/sandbox/fetch-policy.js +64 -3
- package/dist/sandbox/host-functions.d.ts +9 -1
- package/dist/sandbox/host-functions.js +12 -5
- package/dist/serve.js +8 -2
- package/dist/viewer/api-schema.d.ts +2757 -0
- package/dist/viewer/api-schema.js +165 -0
- package/dist/viewer/build-schemas.d.ts +2 -0
- package/dist/viewer/build-schemas.js +18 -0
- package/dist/viewer/event-bus.d.ts +38 -0
- package/dist/viewer/event-bus.js +232 -0
- package/dist/viewer/graph.d.ts +40 -0
- package/dist/viewer/graph.js +243 -0
- package/dist/viewer/http.d.ts +30 -0
- package/dist/viewer/http.js +133 -0
- package/dist/viewer/run-detail.d.ts +4 -0
- package/dist/viewer/run-detail.js +61 -0
- package/dist/wardby-bin.js +11 -0
- package/docs/README.md +40 -0
- package/docs/agent-recipes.md +383 -0
- package/docs/architecture-runtime.md +90 -0
- package/docs/assets/brand/wardby-icon-512.png +0 -0
- package/docs/assets/brand/wardby-icon.svg +16 -0
- package/docs/assets/brand/wardby-mascot-profile-512.png +0 -0
- package/docs/assets/brand/wardby-mascot.png +0 -0
- package/docs/assets/brand/wardby-mascot.svg +5 -0
- package/docs/assets/wardby-workflow.svg +106 -0
- package/docs/code-review-agents.md +508 -0
- package/docs/coding-agent-setup.md +175 -0
- package/docs/coding-packages.md +455 -0
- package/docs/coding-services.md +300 -0
- package/docs/coding-worker-byo-images.md +98 -0
- package/docs/coding-worker-isolation.md +1068 -0
- package/docs/getting-started-gke.md +632 -0
- package/docs/getting-started-identity-provider.md +319 -0
- package/docs/getting-started.md +147 -0
- package/docs/jira-agents.md +649 -0
- package/docs/knowledge.md +387 -0
- package/docs/models.md +221 -0
- package/docs/observability.md +53 -0
- package/docs/release-verification.md +66 -0
- package/docs/security-deployment.md +667 -0
- package/docs/viewer-api.md +142 -0
- package/help/admin-viewer.md +39 -0
- package/help/agent-recipes.md +173 -0
- package/help/architecture-agent.md +189 -0
- package/help/builder-agent.md +80 -0
- package/help/code-review-agents.md +37 -0
- package/help/coding-packages.md +31 -0
- package/help/coding-services.md +71 -0
- package/help/cost-attribution.md +67 -0
- package/help/creating-agents.md +90 -0
- package/help/deploy-gke.md +45 -0
- package/help/deployment-targets.md +39 -0
- package/help/errors/budget-group-exhausted.md +25 -0
- package/help/errors/docker-isolation-unsupported.md +26 -0
- package/help/errors/model-unavailable.md +63 -0
- package/help/errors/protected-path.md +45 -0
- package/help/errors/repo-access.md +27 -0
- package/help/errors/service-declaration-invalid.md +27 -0
- package/help/errors/service-declaration-unavailable.md +25 -0
- package/help/errors/service-launcher-unsupported.md +30 -0
- package/help/errors/service-not-allowed.md +27 -0
- package/help/errors/service-unknown.md +23 -0
- package/help/errors/service-unready.md +49 -0
- package/help/getting-started.md +32 -0
- package/help/github.md +48 -0
- package/help/identity-and-access.md +44 -0
- package/help/jira.md +135 -0
- package/help/knowledge.md +47 -0
- package/help/mcp.md +30 -0
- package/help/models.md +90 -0
- package/help/native-capabilities.md +30 -0
- package/help/observability.md +41 -0
- package/help/operating-agents.md +36 -0
- package/help/security.md +27 -0
- package/help/troubleshooting/budgets.md +32 -0
- package/help/troubleshooting/coding-workers.md +47 -0
- package/help/troubleshooting/repository-access.md +27 -0
- package/package.json +14 -3
- package/prisma/migrations/20260925010000_coding_collect_exclude/migration.sql +8 -0
- package/prisma/migrations/20260925015000_allowed_egress_default/migration.sql +8 -0
- package/prisma/migrations/20260925020000_coding_package_registry/migration.sql +55 -0
- package/prisma/migrations/20260925030000_tool_name_per_owner/migration.sql +11 -0
- package/prisma/migrations/20260926010000_run_trigger_host_event/migration.sql +7 -0
- package/prisma/migrations/20260926020000_code_review_hosts/migration.sql +53 -0
- package/prisma/migrations/20260926030000_auth_user_roles/migration.sql +9 -0
- package/prisma/migrations/20260926040000_agent_effort/migration.sql +6 -0
- package/prisma/migrations/20260926050000_registry_lockfile_plan/migration.sql +32 -0
- package/prisma/migrations/20260926050000_repo_access_authorization/migration.sql +82 -0
- package/prisma/migrations/20260926060000_registry_plan_refusal/migration.sql +19 -0
- package/prisma/migrations/20260926100000_registry_plan_refusal_published_at/migration.sql +5 -0
- package/prisma/migrations/20260926190000_run_host_status/migration.sql +18 -0
- package/prisma/migrations/20260926210000_run_host_status_at_dispatch/migration.sql +5 -0
- package/prisma/migrations/20260927010000_resource_grants/migration.sql +72 -0
- package/prisma/migrations/20260927020000_proxy_session_budget_exhausted/migration.sql +3 -0
- package/prisma/migrations/20260927030000_coding_debug_trace/migration.sql +4 -0
- package/prisma/migrations/20260927040000_proxy_session_upstream_failure/migration.sql +3 -0
- package/prisma/migrations/20260927050000_coding_run_services/migration.sql +74 -0
- package/prisma/migrations/20260928000000_coding_run_tool_image/migration.sql +5 -0
- package/prisma/migrations/20260930000000_jira_issue_projects/migration.sql +34 -0
- package/prisma/migrations/20261001000000_jira_phase2_allowlists/migration.sql +3 -0
- package/prisma/migrations/20261001010000_jira_link_types_allowlist/migration.sql +2 -0
- package/prisma/migrations/20261002000000_jira_coding_bridge/migration.sql +28 -0
- package/prisma/migrations/20261002010000_jira_issue_creation/migration.sql +25 -0
- package/prisma/migrations/20261003000000_issue_cost_attribution/migration.sql +56 -0
- package/prisma/migrations/20261003010000_coding_run_service_status/migration.sql +23 -0
- package/prisma/migrations/20261003020000_viewer_notify/migration.sql +54 -0
- package/prisma/migrations/20261003030000_viewer_notify_fixes/migration.sql +47 -0
- package/prisma/migrations/20261003040000_viewer_indexes/migration.sql +12 -0
- package/prisma/migrations/20261004000000_model_catalog/migration.sql +26 -0
- package/prisma/schema.prisma +663 -21
- package/dist/mcp/tools/models.d.ts +0 -8
- package/dist/mcp/tools/models.js +0 -15
- package/dist/providers/llm/pricing-anthropic.d.ts +0 -4
- package/dist/providers/llm/pricing-anthropic.js +0 -30
- package/dist/providers/llm/pricing-bedrock-claude.d.ts +0 -12
- package/dist/providers/llm/pricing-bedrock-claude.js +0 -37
- package/dist/providers/llm/pricing.d.ts +0 -30
- package/dist/providers/llm/pricing.js +0 -74
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
import { logger } from "../../core/logger.js";
|
|
2
|
+
import { normalizeProxyModelTerms } from "./types.js";
|
|
3
|
+
const log = logger.child({ module: "coding-proxy-ledger" });
|
|
4
|
+
/** How long a ledger transaction waits for a pool connection (Prisma's
|
|
5
|
+
* default is 2 s). A model request fails outright when this runs out, so it
|
|
6
|
+
* gets more room than the default; its pool is also kept apart from the
|
|
7
|
+
* package registry's (coding-proxy/main.ts). */
|
|
8
|
+
export const LEDGER_TRANSACTION_MAX_WAIT_MS = 5_000;
|
|
9
|
+
/** How long a ledger transaction may run once started (Prisma's default is
|
|
10
|
+
* 5 s). Each is a handful of small queries, but a proxy busy with package
|
|
11
|
+
* installs (the registry's dependency walk parses large npm documents on the
|
|
12
|
+
* same event loop) can stall between them; a live lockfile install expired
|
|
13
|
+
* one ("A commit cannot be executed on an expired transaction") and failed
|
|
14
|
+
* the model request. The row lock it holds is per session, so a longer
|
|
15
|
+
* window only delays that run's own next request. */
|
|
16
|
+
export const LEDGER_TRANSACTION_TIMEOUT_MS = 20_000;
|
|
1
17
|
function sessionFromRow(row) {
|
|
2
18
|
if (!Array.isArray(row.allowedModels) || !row.allowedModels.every((model) => typeof model === "string")) {
|
|
3
19
|
throw new Error("invalid_proxy_session_models");
|
|
@@ -15,8 +31,24 @@ function sessionFromRow(row) {
|
|
|
15
31
|
deadlineAt: row.deadlineAt,
|
|
16
32
|
budgetUsd: Number(row.budgetUsd),
|
|
17
33
|
status: row.status,
|
|
34
|
+
registryTokenHash: row.registryTokenHash,
|
|
35
|
+
budgetExhaustedAt: row.budgetExhaustedAt ?? null,
|
|
36
|
+
upstreamFailure: row.upstreamFailure ?? null,
|
|
37
|
+
terms: sessionTerms(row),
|
|
18
38
|
};
|
|
19
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* The session's stored model terms. Null only when both columns are null (a session from before
|
|
42
|
+
* the catalog, which prices from the shipped fallback); terms that are partly present or cannot be
|
|
43
|
+
* read throw, so the session is refused rather than billed at fallback rates.
|
|
44
|
+
*/
|
|
45
|
+
function sessionTerms(row) {
|
|
46
|
+
const version = row.pricingVersion ?? null;
|
|
47
|
+
const stored = row.catalogEntry ?? null;
|
|
48
|
+
if (version === null && stored === null)
|
|
49
|
+
return null;
|
|
50
|
+
return normalizeProxyModelTerms({ version, entry: stored });
|
|
51
|
+
}
|
|
20
52
|
function requestFromRow(row) {
|
|
21
53
|
const pricing = row.pricingSnapshot;
|
|
22
54
|
const hasUsage = row.inputTokens !== null && row.outputTokens !== null;
|
|
@@ -57,26 +89,36 @@ export class PrismaProxyLedger {
|
|
|
57
89
|
constructor(db) {
|
|
58
90
|
this.db = db;
|
|
59
91
|
}
|
|
92
|
+
transaction(fn) {
|
|
93
|
+
return this.db.$transaction(fn, {
|
|
94
|
+
maxWait: LEDGER_TRANSACTION_MAX_WAIT_MS,
|
|
95
|
+
timeout: LEDGER_TRANSACTION_TIMEOUT_MS,
|
|
96
|
+
});
|
|
97
|
+
}
|
|
60
98
|
async createSession(input) {
|
|
61
99
|
const models = JSON.stringify(input.allowedModels);
|
|
100
|
+
const terms = input.terms ? normalizeProxyModelTerms(input.terms) : undefined;
|
|
62
101
|
await this.db.$executeRaw `
|
|
63
102
|
INSERT INTO "CodingProxySession"
|
|
64
103
|
("id", "runId", "capabilityHash", "credentialRef", "protocol", "allowedModels", "deadlineAt",
|
|
65
|
-
"budgetUsd", "status", "createdAt", "updatedAt")
|
|
104
|
+
"budgetUsd", "status", "registryTokenHash", "pricingVersion", "catalogEntry", "createdAt", "updatedAt")
|
|
66
105
|
VALUES
|
|
67
106
|
(${input.id}, ${input.runId}, ${input.capabilityHash}, ${input.credentialRef}, ${input.protocol}, ${models}::jsonb,
|
|
68
|
-
${input.deadlineAt}, ${input.budgetUsd}, 'active',
|
|
107
|
+
${input.deadlineAt}, ${input.budgetUsd}, 'active', ${input.registryTokenHash},
|
|
108
|
+
${terms?.version ?? null}, ${terms ? JSON.stringify(terms.entry) : null}::jsonb,
|
|
109
|
+
CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)
|
|
69
110
|
`;
|
|
70
111
|
}
|
|
71
112
|
async findSessionByCapabilityHash(capabilityHash) {
|
|
72
113
|
const rows = await this.db.$queryRaw `
|
|
73
|
-
SELECT "id", "runId", "capabilityHash", "credentialRef", "protocol", "allowedModels", "deadlineAt", "budgetUsd", "status"
|
|
114
|
+
SELECT "id", "runId", "capabilityHash", "credentialRef", "protocol", "allowedModels", "deadlineAt", "budgetUsd", "status", "registryTokenHash",
|
|
115
|
+
"budgetExhaustedAt", "upstreamFailure", "pricingVersion", "catalogEntry"
|
|
74
116
|
FROM "CodingProxySession" WHERE "capabilityHash" = ${capabilityHash}
|
|
75
117
|
`;
|
|
76
118
|
return rows[0] ? sessionFromRow(rows[0]) : null;
|
|
77
119
|
}
|
|
78
120
|
async reserve(input) {
|
|
79
|
-
return this.
|
|
121
|
+
return this.transaction(async (tx) => {
|
|
80
122
|
const sessions = await tx.$queryRaw `
|
|
81
123
|
SELECT "id", "runId", "capabilityHash", "credentialRef", "protocol", "allowedModels", "deadlineAt", "budgetUsd", "status"
|
|
82
124
|
FROM "CodingProxySession" WHERE "id" = ${input.sessionId} FOR UPDATE
|
|
@@ -107,6 +149,10 @@ export class PrismaProxyLedger {
|
|
|
107
149
|
FROM "CodingProxyRequest" WHERE "sessionId" = ${input.sessionId}
|
|
108
150
|
`;
|
|
109
151
|
if (Number(totals[0]?.held ?? 0) + input.reservationUsd >= Number(row.budgetUsd)) {
|
|
152
|
+
await tx.$executeRaw `
|
|
153
|
+
UPDATE "CodingProxySession" SET "budgetExhaustedAt" = COALESCE("budgetExhaustedAt", ${input.now})
|
|
154
|
+
WHERE "id" = ${input.sessionId}
|
|
155
|
+
`;
|
|
110
156
|
return { outcome: "budget_exhausted" };
|
|
111
157
|
}
|
|
112
158
|
const pricing = JSON.stringify({
|
|
@@ -132,7 +178,7 @@ export class PrismaProxyLedger {
|
|
|
132
178
|
});
|
|
133
179
|
}
|
|
134
180
|
async complete(requestId, usage, actualCostUsd, upstreamStatus) {
|
|
135
|
-
return this.
|
|
181
|
+
return this.transaction(async (tx) => {
|
|
136
182
|
const initial = await requestById(tx, requestId);
|
|
137
183
|
if (!initial)
|
|
138
184
|
throw new Error("unknown_proxy_request");
|
|
@@ -167,20 +213,54 @@ export class PrismaProxyLedger {
|
|
|
167
213
|
"completedAt" = CURRENT_TIMESTAMP, "updatedAt" = CURRENT_TIMESTAMP
|
|
168
214
|
WHERE "id" = ${requestId} AND "status" IN ('reserved', 'uncertain')
|
|
169
215
|
`;
|
|
170
|
-
await tx.$
|
|
216
|
+
const [updatedRun] = await tx.$queryRaw `
|
|
171
217
|
UPDATE "Run" AS r
|
|
172
|
-
SET "tokensIn" = totals."tokensIn", "tokensOut" = totals."tokensOut", "costUsd" = totals."costUsd"
|
|
218
|
+
SET "tokensIn" = totals."tokensIn", "tokensOut" = totals."tokensOut", "costUsd" = totals."costUsd",
|
|
219
|
+
"turns" = totals."turns"
|
|
173
220
|
FROM (
|
|
174
221
|
SELECT s."runId", COALESCE(SUM(q."inputTokens"), 0)::integer AS "tokensIn",
|
|
175
222
|
COALESCE(SUM(q."outputTokens"), 0)::integer AS "tokensOut",
|
|
176
|
-
COALESCE(SUM(q."actualCostUsd"), 0) AS "costUsd"
|
|
223
|
+
COALESCE(SUM(q."actualCostUsd"), 0) AS "costUsd",
|
|
224
|
+
COUNT(*)::integer AS "turns"
|
|
177
225
|
FROM "CodingProxySession" s
|
|
178
226
|
JOIN "CodingProxyRequest" q ON q."sessionId" = s."id" AND q."status" = 'completed'
|
|
179
227
|
WHERE s."id" = ${prior.sessionId}
|
|
180
228
|
GROUP BY s."runId"
|
|
181
229
|
) AS totals
|
|
182
230
|
WHERE r."id" = totals."runId"
|
|
231
|
+
RETURNING r."id"
|
|
183
232
|
`;
|
|
233
|
+
// Per-model usage (RunModelUsage), recomputed for this request's model and set, never incremented.
|
|
234
|
+
// Best effort inside a savepoint: Run totals and the ledger are the budget truth, so a failed
|
|
235
|
+
// write here (e.g. a role without the RunModelUsage grant) must never fail the completion.
|
|
236
|
+
await tx.$executeRaw `SAVEPOINT run_model_usage`;
|
|
237
|
+
try {
|
|
238
|
+
await tx.$executeRaw `
|
|
239
|
+
INSERT INTO "RunModelUsage"
|
|
240
|
+
("runId", "model", "freshInputTokens", "cachedInputTokens", "cacheWriteTokens", "outputTokens", "costUsd")
|
|
241
|
+
SELECT s."runId", q."model",
|
|
242
|
+
COALESCE(SUM(COALESCE(q."inputTokens", 0) - COALESCE(q."cachedInputTokens", 0)), 0)::integer,
|
|
243
|
+
COALESCE(SUM(q."cachedInputTokens"), 0)::integer,
|
|
244
|
+
COALESCE(SUM(q."cacheWriteTokens"), 0)::integer,
|
|
245
|
+
COALESCE(SUM(q."outputTokens"), 0)::integer,
|
|
246
|
+
COALESCE(SUM(q."actualCostUsd"), 0)
|
|
247
|
+
FROM "CodingProxySession" s
|
|
248
|
+
JOIN "CodingProxyRequest" q ON q."sessionId" = s."id" AND q."status" = 'completed'
|
|
249
|
+
WHERE s."id" = ${prior.sessionId} AND q."model" = ${prior.model}
|
|
250
|
+
GROUP BY s."runId", q."model"
|
|
251
|
+
ON CONFLICT ("runId", "model") DO UPDATE SET
|
|
252
|
+
"freshInputTokens" = EXCLUDED."freshInputTokens",
|
|
253
|
+
"cachedInputTokens" = EXCLUDED."cachedInputTokens",
|
|
254
|
+
"cacheWriteTokens" = EXCLUDED."cacheWriteTokens",
|
|
255
|
+
"outputTokens" = EXCLUDED."outputTokens",
|
|
256
|
+
"costUsd" = EXCLUDED."costUsd"
|
|
257
|
+
`;
|
|
258
|
+
await tx.$executeRaw `RELEASE SAVEPOINT run_model_usage`;
|
|
259
|
+
}
|
|
260
|
+
catch (err) {
|
|
261
|
+
await tx.$executeRaw `ROLLBACK TO SAVEPOINT run_model_usage`;
|
|
262
|
+
log.warn({ err, runId: updatedRun?.id, sessionId: prior.sessionId, model: prior.model }, "could not record the run's model usage");
|
|
263
|
+
}
|
|
184
264
|
const request = await requestById(tx, requestId);
|
|
185
265
|
if (!request)
|
|
186
266
|
throw new Error("proxy_completion_not_persisted");
|
|
@@ -207,6 +287,24 @@ export class PrismaProxyLedger {
|
|
|
207
287
|
WHERE "id" = ${sessionId} AND "status" = 'active'
|
|
208
288
|
`;
|
|
209
289
|
}
|
|
290
|
+
async budgetExhausted(sessionId) {
|
|
291
|
+
const rows = await this.db.$queryRaw `
|
|
292
|
+
SELECT "id" FROM "CodingProxySession" WHERE "id" = ${sessionId} AND "budgetExhaustedAt" IS NOT NULL
|
|
293
|
+
`;
|
|
294
|
+
return rows.length > 0;
|
|
295
|
+
}
|
|
296
|
+
async recordUpstreamFailure(sessionId, code) {
|
|
297
|
+
await this.db.$executeRaw `
|
|
298
|
+
UPDATE "CodingProxySession" SET "upstreamFailure" = ${code}, "updatedAt" = CURRENT_TIMESTAMP
|
|
299
|
+
WHERE "id" = ${sessionId} AND "upstreamFailure" IS NULL
|
|
300
|
+
`;
|
|
301
|
+
}
|
|
302
|
+
async upstreamFailure(sessionId) {
|
|
303
|
+
const rows = await this.db.$queryRaw `
|
|
304
|
+
SELECT "upstreamFailure" FROM "CodingProxySession" WHERE "id" = ${sessionId}
|
|
305
|
+
`;
|
|
306
|
+
return rows[0]?.upstreamFailure ?? null;
|
|
307
|
+
}
|
|
210
308
|
getRequest(requestId) {
|
|
211
309
|
return requestById(this.db, requestId);
|
|
212
310
|
}
|
|
@@ -1,9 +1,21 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type { CredentialResolver, ProxyAuditSink, ProxyLedger, ProxyProtocol } from "./types.js";
|
|
1
|
+
import type { ModelPricing } from "../llm/pricing-core.js";
|
|
2
|
+
import type { CredentialResolver, ProxyAuditSink, ProxyLedger, ProxyModelTerms, ProxyProtocol } from "./types.js";
|
|
3
3
|
export declare const PROXY_MAX_BODY_BYTES: number;
|
|
4
4
|
export declare const PROXY_MAX_OUTPUT_TOKENS = 1000000;
|
|
5
5
|
export declare const PROXY_DEFAULT_MAX_OUTPUT_TOKENS = 4096;
|
|
6
6
|
export declare const CLAUDE_CODE_ANTHROPIC_BETAS: readonly ["claude-code-20250219", "context-management-2025-06-27", "effort-2025-11-24", "interleaved-thinking-2025-05-14", "mid-conversation-system-2026-04-07", "prompt-caching-scope-2026-01-05", "thinking-token-count-2026-05-13"];
|
|
7
|
+
/**
|
|
8
|
+
* Betas Claude Code sends only for some models. per-turn-control is sent for Claude Opus 5.5; it is
|
|
9
|
+
* required only by an effort-only system message (per-turn effort), and every body field is still
|
|
10
|
+
* checked against the reviewed shape, so the header alone unlocks nothing.
|
|
11
|
+
*/
|
|
12
|
+
export declare const OPTIONAL_ANTHROPIC_BETAS: readonly ["per-turn-control-2026-07-01"];
|
|
13
|
+
/**
|
|
14
|
+
* The longest run_command timeout the Claude tool runner offers the model (its MAX_TIMEOUT_MS,
|
|
15
|
+
* src/claude-tool-runner/command.mjs; the proxy tests keep the two equal). A lower limit here let the
|
|
16
|
+
* command run, then refused the next request, which replays that tool call, as unsupported.
|
|
17
|
+
*/
|
|
18
|
+
export declare const MAX_COMMAND_TIMEOUT_MS = 120000;
|
|
7
19
|
export declare class CodingProxyError extends Error {
|
|
8
20
|
readonly status: number;
|
|
9
21
|
readonly code: string;
|
|
@@ -29,6 +41,8 @@ export interface CreateCodingProxySession {
|
|
|
29
41
|
allowedModels: string[];
|
|
30
42
|
deadlineAt: Date;
|
|
31
43
|
budgetUsd: number;
|
|
44
|
+
/** The run's catalog entry recorded at dispatch; the session then prices and shapes requests from it. */
|
|
45
|
+
terms?: ProxyModelTerms;
|
|
32
46
|
}
|
|
33
47
|
export interface CreatedCodingProxySession {
|
|
34
48
|
id: string;
|
|
@@ -51,6 +65,7 @@ export interface CodingProxyOptions {
|
|
|
51
65
|
pricing?: (model: string, protocol: ProxyProtocol) => ModelPricing;
|
|
52
66
|
pricingVersion?: string;
|
|
53
67
|
}
|
|
68
|
+
export declare function capabilityHash(capability: string): string;
|
|
54
69
|
export declare class CodingProxy {
|
|
55
70
|
private readonly ledger;
|
|
56
71
|
private readonly credentials;
|
|
@@ -64,12 +79,20 @@ export declare class CodingProxy {
|
|
|
64
79
|
constructor(options: CodingProxyOptions);
|
|
65
80
|
createSession(input: CreateCodingProxySession): Promise<CreatedCodingProxySession>;
|
|
66
81
|
cancelSession(sessionId: string): Promise<void>;
|
|
82
|
+
/** Whether this session's run was refused a model request for budget. */
|
|
83
|
+
budgetExhausted(sessionId: string): Promise<boolean>;
|
|
84
|
+
/** The code of the first upstream failure relayed for this session's run, if any. */
|
|
85
|
+
upstreamFailure(sessionId: string): Promise<string | null>;
|
|
67
86
|
execute(input: ExecuteProxyRequest, sink: ProxyResponseSink): Promise<void>;
|
|
87
|
+
/** A session's model terms: its stored catalog entry, or the fallback for sessions from before the catalog. */
|
|
88
|
+
private termsFor;
|
|
68
89
|
private authenticate;
|
|
69
90
|
private trackActive;
|
|
70
91
|
private handleDuplicate;
|
|
71
92
|
private complete;
|
|
72
93
|
private forwardJson;
|
|
73
94
|
private forwardStream;
|
|
95
|
+
/** Best effort: the executor reads it to name the failure; it must never break the relay. */
|
|
96
|
+
private recordUpstreamFailure;
|
|
74
97
|
private markUncertain;
|
|
75
98
|
}
|