@wardby/cli 0.2.0 → 0.3.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 +34 -4
- package/README.md +183 -71
- package/dist/claude-coding-worker/driver.d.ts +7 -1
- package/dist/claude-coding-worker/driver.js +31 -2
- package/dist/claude-coding-worker/main.js +5 -2
- 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 +13 -4
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +219 -29
- 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 +99 -3
- package/dist/coding/protocol.js +155 -4
- 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 +18 -0
- package/dist/coding-worker/artifact.js +48 -6
- 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 +14 -1
- package/dist/coding-worker/driver.js +106 -14
- package/dist/coding-worker/errors.d.ts +7 -0
- package/dist/coding-worker/errors.js +26 -0
- package/dist/coding-worker/main.js +13 -4
- 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 +41 -0
- package/dist/config/providers.js +66 -0
- package/dist/core/budget-groups.d.ts +109 -6
- package/dist/core/budget-groups.js +125 -19
- package/dist/core/budget-wording.d.ts +22 -0
- package/dist/core/budget-wording.js +55 -0
- package/dist/core/coding-queue.d.ts +1 -1
- package/dist/core/datastores.d.ts +1 -1
- package/dist/core/datastores.js +18 -2
- package/dist/core/db.d.ts +40 -2
- package/dist/core/db.js +75 -2
- package/dist/core/dispatch.d.ts +49 -7
- package/dist/core/dispatch.js +290 -45
- package/dist/core/engine-native.js +27 -10
- package/dist/core/grants.d.ts +86 -0
- package/dist/core/grants.js +126 -0
- package/dist/core/host-events.d.ts +49 -0
- package/dist/core/host-events.js +257 -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 +61 -0
- package/dist/core/host-status.js +211 -0
- package/dist/core/http-runtime.js +3 -4
- package/dist/core/in-flight-runs.d.ts +8 -0
- package/dist/core/in-flight-runs.js +56 -0
- package/dist/core/lease.d.ts +1 -1
- package/dist/core/private-directory.d.ts +20 -0
- package/dist/core/private-directory.js +36 -0
- package/dist/core/provider-wording.d.ts +12 -0
- package/dist/core/provider-wording.js +44 -0
- package/dist/core/reconciler.d.ts +39 -3
- package/dist/core/reconciler.js +86 -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 +347 -0
- package/dist/core/run-heartbeat.d.ts +27 -0
- package/dist/core/run-heartbeat.js +54 -0
- package/dist/core/runner.d.ts +31 -9
- package/dist/core/runner.js +237 -40
- package/dist/core/scheduler.d.ts +1 -1
- package/dist/core/secrets.d.ts +12 -3
- package/dist/core/secrets.js +25 -6
- package/dist/core/subagent-memory-tools.d.ts +2 -2
- 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 +64 -0
- package/dist/core/untrusted-content.d.ts +32 -0
- package/dist/core/untrusted-content.js +72 -0
- package/dist/core/webhooks.d.ts +9 -2
- package/dist/core/webhooks.js +23 -2
- package/dist/generated/prisma/browser.d.ts +328 -0
- package/dist/generated/prisma/browser.js +17 -0
- package/dist/generated/prisma/client.d.ts +347 -0
- package/dist/generated/prisma/client.js +34 -0
- package/dist/generated/prisma/commonInputTypes.d.ts +839 -0
- package/dist/generated/prisma/commonInputTypes.js +10 -0
- package/dist/generated/prisma/enums.d.ts +59 -0
- package/dist/generated/prisma/enums.js +59 -0
- package/dist/generated/prisma/internal/class.d.ts +605 -0
- package/dist/generated/prisma/internal/class.js +49 -0
- package/dist/generated/prisma/internal/prismaNamespace.d.ts +4494 -0
- package/dist/generated/prisma/internal/prismaNamespace.js +628 -0
- package/dist/generated/prisma/internal/prismaNamespaceBrowser.d.ts +635 -0
- package/dist/generated/prisma/internal/prismaNamespaceBrowser.js +599 -0
- package/dist/generated/prisma/models/Agent.d.ts +3560 -0
- package/dist/generated/prisma/models/Agent.js +1 -0
- package/dist/generated/prisma/models/AgentDatastore.d.ts +1210 -0
- package/dist/generated/prisma/models/AgentDatastore.js +1 -0
- package/dist/generated/prisma/models/AgentMemory.d.ts +986 -0
- package/dist/generated/prisma/models/AgentMemory.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/AgentSecret.d.ts +1212 -0
- package/dist/generated/prisma/models/AgentSecret.js +1 -0
- package/dist/generated/prisma/models/AgentSubAgent.d.ts +1217 -0
- package/dist/generated/prisma/models/AgentSubAgent.js +1 -0
- package/dist/generated/prisma/models/AgentTool.d.ts +1403 -0
- package/dist/generated/prisma/models/AgentTool.js +1 -0
- package/dist/generated/prisma/models/AuthFormChallenge.d.ts +1298 -0
- package/dist/generated/prisma/models/AuthFormChallenge.js +1 -0
- package/dist/generated/prisma/models/AuthLoginKey.d.ts +1245 -0
- package/dist/generated/prisma/models/AuthLoginKey.js +1 -0
- package/dist/generated/prisma/models/AuthRateLimit.d.ts +979 -0
- package/dist/generated/prisma/models/AuthRateLimit.js +1 -0
- package/dist/generated/prisma/models/AuthSession.d.ts +1376 -0
- package/dist/generated/prisma/models/AuthSession.js +1 -0
- package/dist/generated/prisma/models/AuthUser.d.ts +1700 -0
- package/dist/generated/prisma/models/AuthUser.js +1 -0
- package/dist/generated/prisma/models/BudgetGroup.d.ts +1548 -0
- package/dist/generated/prisma/models/BudgetGroup.js +1 -0
- package/dist/generated/prisma/models/CodingAgentProfile.d.ts +1681 -0
- package/dist/generated/prisma/models/CodingAgentProfile.js +1 -0
- package/dist/generated/prisma/models/CodingProxyRequest.d.ts +1749 -0
- package/dist/generated/prisma/models/CodingProxyRequest.js +1 -0
- package/dist/generated/prisma/models/CodingProxySession.d.ts +1626 -0
- package/dist/generated/prisma/models/CodingProxySession.js +1 -0
- package/dist/generated/prisma/models/CodingRun.d.ts +3583 -0
- package/dist/generated/prisma/models/CodingRun.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/Datastore.d.ts +1434 -0
- package/dist/generated/prisma/models/Datastore.js +1 -0
- package/dist/generated/prisma/models/DatastoreEntry.d.ts +1314 -0
- package/dist/generated/prisma/models/DatastoreEntry.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/OAuthAuthorizationCode.d.ts +1526 -0
- package/dist/generated/prisma/models/OAuthAuthorizationCode.js +1 -0
- package/dist/generated/prisma/models/OAuthAuthorizationRequest.d.ts +1350 -0
- package/dist/generated/prisma/models/OAuthAuthorizationRequest.js +1 -0
- package/dist/generated/prisma/models/OAuthClient.d.ts +1289 -0
- package/dist/generated/prisma/models/OAuthClient.js +1 -0
- package/dist/generated/prisma/models/OAuthFamily.d.ts +1540 -0
- package/dist/generated/prisma/models/OAuthFamily.js +1 -0
- package/dist/generated/prisma/models/OAuthGrant.d.ts +1280 -0
- package/dist/generated/prisma/models/OAuthGrant.js +1 -0
- package/dist/generated/prisma/models/Principal.d.ts +2245 -0
- package/dist/generated/prisma/models/Principal.js +1 -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 +2669 -0
- package/dist/generated/prisma/models/Run.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/SchedulerLease.d.ts +970 -0
- package/dist/generated/prisma/models/SchedulerLease.js +1 -0
- package/dist/generated/prisma/models/Secret.d.ts +1399 -0
- package/dist/generated/prisma/models/Secret.js +1 -0
- package/dist/generated/prisma/models/SecretElicitationOutcome.d.ts +973 -0
- package/dist/generated/prisma/models/SecretElicitationOutcome.js +1 -0
- package/dist/generated/prisma/models/Task.d.ts +1176 -0
- package/dist/generated/prisma/models/Task.js +1 -0
- package/dist/generated/prisma/models/Tool.d.ts +1490 -0
- package/dist/generated/prisma/models/Tool.js +1 -0
- package/dist/generated/prisma/models/Webhook.d.ts +1386 -0
- package/dist/generated/prisma/models/Webhook.js +1 -0
- package/dist/generated/prisma/models.d.ts +45 -0
- package/dist/generated/prisma/models.js +1 -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 +660 -0
- package/dist/import/cli-args.js +3 -2
- package/dist/import/create.d.ts +6 -1
- package/dist/import/create.js +68 -14
- package/dist/import/index.d.ts +1 -1
- package/dist/import/index.js +19 -9
- package/dist/import/neutral-schema.d.ts +11 -11
- package/dist/mcp/auth/access.d.ts +70 -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 +37 -63
- package/dist/mcp/auth/ownership.js +19 -14
- package/dist/mcp/auth/principal.d.ts +1 -1
- 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 +32 -3
- package/dist/mcp/auth/resource-server.js +84 -3
- package/dist/mcp/auth/self-hosted/browser.js +22 -8
- package/dist/mcp/auth/self-hosted/cli.d.ts +1 -1
- package/dist/mcp/auth/self-hosted/cli.js +47 -13
- package/dist/mcp/auth/self-hosted/credentials.d.ts +21 -3
- package/dist/mcp/auth/self-hosted/credentials.js +62 -4
- package/dist/mcp/auth/self-hosted/rate-limit.d.ts +1 -1
- package/dist/mcp/auth/self-hosted/session.d.ts +3 -2
- package/dist/mcp/context.d.ts +28 -2
- package/dist/mcp/errors.d.ts +25 -6
- package/dist/mcp/errors.js +98 -0
- package/dist/mcp/host-events/github-ingress.d.ts +36 -0
- package/dist/mcp/host-events/github-ingress.js +92 -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/index.d.ts +8 -1
- package/dist/mcp/index.js +106 -16
- package/dist/mcp/server.d.ts +1 -1
- package/dist/mcp/server.js +27 -9
- package/dist/mcp/shared/page-style.d.ts +16 -0
- package/dist/mcp/shared/page-style.js +129 -0
- package/dist/mcp/tasks/manager.d.ts +1 -1
- package/dist/mcp/tools/agents.js +447 -49
- package/dist/mcp/tools/budget-groups.js +3 -3
- package/dist/mcp/tools/datastore.js +23 -16
- 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/memory.d.ts +7 -1
- package/dist/mcp/tools/memory.js +5 -5
- package/dist/mcp/tools/repositories.d.ts +2 -0
- package/dist/mcp/tools/repositories.js +181 -0
- package/dist/mcp/tools/runs.d.ts +6 -0
- package/dist/mcp/tools/runs.js +60 -6
- package/dist/mcp/tools/scheduling.js +4 -7
- package/dist/mcp/tools/secret-elicitation-form.d.ts +1 -1
- package/dist/mcp/tools/secret-elicitation-form.js +10 -28
- package/dist/mcp/tools/secret-elicitation.d.ts +1 -1
- 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 +53 -17
- package/dist/mcp/tools/tools.d.ts +41 -0
- package/dist/mcp/tools/tools.js +202 -41
- package/dist/mcp/tools/trigger.js +36 -6
- package/dist/mcp/tools/webhooks.js +15 -4
- package/dist/mcp/transport/streamable-http.d.ts +11 -1
- package/dist/mcp/transport/streamable-http.js +32 -2
- package/dist/mcp/unattended-schedules.d.ts +1 -1
- package/dist/mcp/webhooks/ingress.d.ts +1 -1
- package/dist/providers/auth/delegating.d.ts +19 -0
- package/dist/providers/auth/delegating.js +71 -0
- package/dist/providers/auth/index.d.ts +3 -1
- package/dist/providers/auth/index.js +11 -0
- package/dist/providers/auth/self-hosted.d.ts +4 -3
- package/dist/providers/auth/self-hosted.js +16 -4
- package/dist/providers/auth/types.d.ts +6 -0
- package/dist/providers/coding-proxy/memory-ledger.d.ts +3 -0
- package/dist/providers/coding-proxy/memory-ledger.js +21 -2
- package/dist/providers/coding-proxy/metering.d.ts +4 -0
- package/dist/providers/coding-proxy/metering.js +28 -2
- package/dist/providers/coding-proxy/prisma-ledger.d.ts +18 -1
- package/dist/providers/coding-proxy/prisma-ledger.js +50 -5
- package/dist/providers/coding-proxy/proxy.d.ts +13 -0
- package/dist/providers/coding-proxy/proxy.js +479 -18
- 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 +18 -1
- 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 +15 -0
- package/dist/providers/datastore/postgres.d.ts +1 -1
- package/dist/providers/engine/types.d.ts +10 -0
- package/dist/providers/executor/build.d.ts +3 -3
- package/dist/providers/executor/composition.d.ts +4 -1
- package/dist/providers/executor/composition.js +19 -0
- package/dist/providers/executor/container.d.ts +106 -4
- package/dist/providers/executor/container.js +305 -22
- package/dist/providers/executor/dbos.d.ts +3 -4
- package/dist/providers/executor/in-process.d.ts +2 -3
- package/dist/providers/executor/routing.d.ts +7 -0
- package/dist/providers/executor/routing.js +13 -0
- package/dist/providers/executor/types.d.ts +22 -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 +60 -2
- package/dist/providers/jobs/docker.js +313 -50
- 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 +21 -2
- package/dist/providers/jobs/kubernetes.js +117 -31
- package/dist/providers/jobs/types.d.ts +20 -0
- package/dist/providers/llm/anthropic.js +6 -2
- package/dist/providers/llm/bedrock.js +2 -1
- 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 +3 -1
- package/dist/providers/llm/claude-provider.js +5 -1
- package/dist/providers/llm/index.d.ts +1 -1
- package/dist/providers/llm/index.js +1 -1
- package/dist/providers/llm/pricing-anthropic.d.ts +10 -0
- package/dist/providers/llm/pricing-anthropic.js +32 -14
- package/dist/providers/llm/pricing-bedrock-claude.d.ts +8 -0
- package/dist/providers/llm/pricing-bedrock-claude.js +9 -0
- package/dist/providers/llm/routing.d.ts +10 -1
- package/dist/providers/llm/routing.js +18 -0
- package/dist/providers/llm/types.d.ts +12 -0
- package/dist/providers/llm/types.js +8 -1
- package/dist/providers/memory/postgres.d.ts +1 -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 +180 -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 +567 -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 +284 -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 +79 -14
- package/dist/providers/vcs/github.d.ts +74 -3
- package/dist/providers/vcs/github.js +195 -15
- package/dist/providers/vcs/types.d.ts +42 -4
- package/dist/quickstart/index.js +34 -32
- package/dist/quickstart/migrate.d.ts +23 -0
- package/dist/quickstart/migrate.js +125 -0
- 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 +1 -1
- package/dist/wardby-bin.js +6 -0
- package/docs/README.md +30 -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 +481 -0
- package/docs/coding-agent-setup.md +172 -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 +1061 -0
- package/docs/getting-started-gke.md +615 -0
- package/docs/getting-started-identity-provider.md +308 -0
- package/docs/getting-started.md +133 -0
- package/docs/observability.md +53 -0
- package/docs/release-verification.md +66 -0
- package/docs/security-deployment.md +657 -0
- package/help/code-review-agents.md +31 -0
- package/help/coding-packages.md +31 -0
- package/help/coding-services.md +71 -0
- package/help/creating-agents.md +68 -0
- package/help/deploy-gke.md +39 -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/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 +31 -0
- package/help/github.md +30 -0
- package/help/identity-and-access.md +39 -0
- package/help/mcp.md +30 -0
- package/help/native-capabilities.md +30 -0
- package/help/observability.md +41 -0
- package/help/operating-agents.md +30 -0
- package/help/security.md +27 -0
- package/help/troubleshooting/budgets.md +26 -0
- package/help/troubleshooting/coding-workers.md +47 -0
- package/help/troubleshooting/repository-access.md +27 -0
- package/package.json +30 -11
- package/prisma/migrate.config.mjs +20 -0
- 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/schema.prisma +417 -23
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
import { RegistryError, type Integrity, type RegistryAdapter, type UpstreamFetch } from "../../../coding/registry/types.js";
|
|
2
|
+
import type { OsvAudit } from "./audit.js";
|
|
3
|
+
import type { RegistryStore } from "./store.js";
|
|
4
|
+
export declare const DEFAULT_MAX_GRAPH_PACKAGES = 3000;
|
|
5
|
+
export declare const DEFAULT_GRAPH_TIMEOUT_MS = 180000;
|
|
6
|
+
/** Graph-walk expansions in flight at once across every run, so one run's
|
|
7
|
+
* walk cannot starve the others' upstream fetches -- or the proxy's event
|
|
8
|
+
* loop: parsing packuments is CPU work on the same loop that carries model
|
|
9
|
+
* traffic (per-walk 2 and global 3 since a live install at 4/6 on 500m
|
|
10
|
+
* expired a ledger transaction). The walk is only the fallback now; lockfile
|
|
11
|
+
* verification answers most installs without it. */
|
|
12
|
+
export declare const DEFAULT_MAX_GRAPH_CONCURRENCY = 3;
|
|
13
|
+
/** Lockfile plans read and verified at once across every run: with the
|
|
14
|
+
* 20 MiB body cap, this bounds the lockfile text held at once. */
|
|
15
|
+
export declare const DEFAULT_PLAN_CONCURRENCY = 2;
|
|
16
|
+
/** Lockfile plans one run may make (REGISTRY_PLAN_MAX_PER_RUN). */
|
|
17
|
+
export declare const DEFAULT_PLAN_MAX_PER_RUN = 20;
|
|
18
|
+
/** The `filename` of a refused RegistryFetch row a lockfile plan recorded
|
|
19
|
+
* (the route it came from), which is how get_run tells plan refusals from
|
|
20
|
+
* download refusals. */
|
|
21
|
+
export declare const PLAN_FETCH_FILENAME = "-/plan";
|
|
22
|
+
/** Largest lockfile a plan reads (the HTTP layer enforces it: 413). */
|
|
23
|
+
export declare const MAX_PLAN_BODY_BYTES: number;
|
|
24
|
+
export interface RegistryLimits {
|
|
25
|
+
maxFileBytes: number;
|
|
26
|
+
maxTotalBytes: number;
|
|
27
|
+
maxFiles: number;
|
|
28
|
+
idleTimeoutMs: number;
|
|
29
|
+
/** Refused RegistryFetch rows recorded per run (default 500). Further
|
|
30
|
+
* refusals still get their normal error, but no row. */
|
|
31
|
+
maxRefusalRecords?: number;
|
|
32
|
+
}
|
|
33
|
+
export declare const DEFAULT_MAX_REFUSAL_RECORDS = 500;
|
|
34
|
+
export type RegistryResponse = {
|
|
35
|
+
status: number;
|
|
36
|
+
contentType: string;
|
|
37
|
+
body: string;
|
|
38
|
+
} | {
|
|
39
|
+
status: 200;
|
|
40
|
+
contentType: string;
|
|
41
|
+
stream: ReadableStream<Uint8Array>;
|
|
42
|
+
};
|
|
43
|
+
export interface RegistryRequest {
|
|
44
|
+
method: string;
|
|
45
|
+
ecosystem: string;
|
|
46
|
+
subpath: string;
|
|
47
|
+
token: string;
|
|
48
|
+
signal: AbortSignal;
|
|
49
|
+
}
|
|
50
|
+
export interface RegistryPlanRequest {
|
|
51
|
+
ecosystem: string;
|
|
52
|
+
token: string;
|
|
53
|
+
/** Reads the lockfile (at most MAX_PLAN_BODY_BYTES). Called only once the
|
|
54
|
+
* token is authenticated and a plan slot is held, so an unauthenticated
|
|
55
|
+
* or queued request never has its body buffered. Throws a RegistryError
|
|
56
|
+
* (413 or 400) for a body it cannot read. */
|
|
57
|
+
readBody(): Promise<string>;
|
|
58
|
+
signal: AbortSignal;
|
|
59
|
+
}
|
|
60
|
+
export declare function errorResponse(error: RegistryError): RegistryResponse;
|
|
61
|
+
export declare const DEFAULT_METADATA_CACHE_ENTRIES = 500;
|
|
62
|
+
/** Byte budget of the metadata cache, by each entry's approximate retained
|
|
63
|
+
* size. Entries are trimmed (an npm package's is a few MB at most, for
|
|
64
|
+
* thousands of versions), but 500 of them could still add up. */
|
|
65
|
+
export declare const DEFAULT_METADATA_CACHE_BYTES: number;
|
|
66
|
+
/** The strongest supported hash of an SRI integrity string (`sha512-…`,
|
|
67
|
+
* possibly several space-separated), or null when it has none. */
|
|
68
|
+
export declare function parseSri(value: string): Integrity | null;
|
|
69
|
+
export declare class RegistryService {
|
|
70
|
+
private readonly options;
|
|
71
|
+
/** Parsed, trimmed metadata (adapters keep only the fields the proxy
|
|
72
|
+
* reads, never the upstream document), least recently used first.
|
|
73
|
+
* Bounded to `metadataCacheEntries` and `metadataCacheBytes`; expired
|
|
74
|
+
* entries are dropped on access and on insert. */
|
|
75
|
+
private readonly metadataCache;
|
|
76
|
+
/** Sum of the cached entries' `bytes`. */
|
|
77
|
+
private metadataCacheTotal;
|
|
78
|
+
/** Single-flight: concurrent misses for one package (and render need)
|
|
79
|
+
* share one upstream fetch. */
|
|
80
|
+
private readonly metadataLoads;
|
|
81
|
+
private readonly now;
|
|
82
|
+
private readonly metadataTtlMs;
|
|
83
|
+
private readonly metadataCacheEntries;
|
|
84
|
+
private readonly metadataCacheBytes;
|
|
85
|
+
private readonly metadataUpstream;
|
|
86
|
+
/** Per-run in-flight download usage: files and bytes reserved by downloads
|
|
87
|
+
* that are streaming right now but not yet recorded to the store. Without
|
|
88
|
+
* this, `usage()` (which only counts already-served rows) is read once
|
|
89
|
+
* per request, so concurrent downloads for the same run (e.g. npm's
|
|
90
|
+
* parallel installs) count toward neither the file nor the byte limit
|
|
91
|
+
* until each finishes, letting them overshoot both. This reservation is
|
|
92
|
+
* in-process only — it holds per replica of the registry proxy, not
|
|
93
|
+
* across replicas. */
|
|
94
|
+
private readonly inFlight;
|
|
95
|
+
private readonly tallies;
|
|
96
|
+
private readonly walkSlots;
|
|
97
|
+
private readonly planSlots;
|
|
98
|
+
private readonly versionUpstream;
|
|
99
|
+
constructor(options: {
|
|
100
|
+
adapters: ReadonlyMap<string, RegistryAdapter>;
|
|
101
|
+
store: RegistryStore;
|
|
102
|
+
audit: Pick<OsvAudit, "audit"> & Partial<Pick<OsvAudit, "auditVersions">>;
|
|
103
|
+
upstream: UpstreamFetch;
|
|
104
|
+
proxyBase: string;
|
|
105
|
+
limits: RegistryLimits;
|
|
106
|
+
now?: () => Date;
|
|
107
|
+
metadataTtlMs?: number;
|
|
108
|
+
metadataCacheEntries?: number;
|
|
109
|
+
/** Byte budget of the metadata cache (default 64 MiB), by each
|
|
110
|
+
* entry's approximate retained size. */
|
|
111
|
+
metadataCacheBytes?: number;
|
|
112
|
+
/** Timeout for one metadata request, body included (default 30 s). */
|
|
113
|
+
metadataTimeoutMs?: number;
|
|
114
|
+
/** Largest metadata document read from upstream (default 64 MiB). */
|
|
115
|
+
maxMetadataBytes?: number;
|
|
116
|
+
/** Distinct packages an on-demand graph walk may expand per run and
|
|
117
|
+
* ecosystem (default 3000). */
|
|
118
|
+
maxGraphPackages?: number;
|
|
119
|
+
/** Time one on-demand graph walk may take (default 180 s). */
|
|
120
|
+
graphTimeoutMs?: number;
|
|
121
|
+
/** Graph-walk expansions in flight at once across every run
|
|
122
|
+
* (default 16). */
|
|
123
|
+
maxGraphConcurrency?: number;
|
|
124
|
+
/** Entries a lockfile plan may have (default 5000). */
|
|
125
|
+
planMaxEntries?: number;
|
|
126
|
+
/** Time one lockfile plan may take (default 120 s). */
|
|
127
|
+
planTimeoutMs?: number;
|
|
128
|
+
/** Lockfile plans read and verified at once across every run (default 2). */
|
|
129
|
+
planConcurrency?: number;
|
|
130
|
+
/** Lockfile plans one run may make (default 20). */
|
|
131
|
+
planMaxPerRun?: number;
|
|
132
|
+
});
|
|
133
|
+
/** `POST /registry/<ecosystem>/-/plan`: verifies a lockfile against the
|
|
134
|
+
* registry and approves exactly its verified, reachable name@version
|
|
135
|
+
* pairs for the run (plan.ts). Answers `{ approved, refused }`. */
|
|
136
|
+
plan(request: RegistryPlanRequest): Promise<RegistryResponse>;
|
|
137
|
+
private planLockfile;
|
|
138
|
+
private verifyPlan;
|
|
139
|
+
/** One refused row per plan refusal, within the run's refusal cap, and
|
|
140
|
+
* once per run however often the same lockfile is planned. */
|
|
141
|
+
private recordPlanRefusals;
|
|
142
|
+
handle(request: RegistryRequest): Promise<RegistryResponse>;
|
|
143
|
+
private dispatch;
|
|
144
|
+
private hostAllowed;
|
|
145
|
+
/** Served usage for the run, seeded once from the store and then kept
|
|
146
|
+
* current in-process as downloads complete. */
|
|
147
|
+
private servedUsage;
|
|
148
|
+
private authorize;
|
|
149
|
+
/** Whether `name` is in the run's approved graph for this ecosystem:
|
|
150
|
+
* the allowlist's exact roots plus the dependencies of every kept
|
|
151
|
+
* version (the same filter the metadata path applies: root range,
|
|
152
|
+
* release age, advisories), transitively. Each newly found name is
|
|
153
|
+
* recorded as an allowance as the walk goes, exactly as if its
|
|
154
|
+
* parent's metadata had been served. A scoped wildcard root cannot be
|
|
155
|
+
* enumerated, so it is never a starting point. */
|
|
156
|
+
private resolveInGraph;
|
|
157
|
+
/** The answer for a name the walk did not find: unavailable while any
|
|
158
|
+
* node could not be expanded (the audit, if any failure was the
|
|
159
|
+
* audit's), otherwise absent. */
|
|
160
|
+
private graphMiss;
|
|
161
|
+
private walkGraph;
|
|
162
|
+
/** The kept versions of one package inside the edge's range, and each
|
|
163
|
+
* one's declared dependencies, through the same metadata cache and
|
|
164
|
+
* `keptVersions` filter the metadata path uses (a root's allowlist range
|
|
165
|
+
* applies there), within the process-wide walk concurrency cap. `"*"`
|
|
166
|
+
* selects every kept version; a range no kept version satisfies selects
|
|
167
|
+
* none. A package npm doesn't have, or whose metadata is too large,
|
|
168
|
+
* definitively selects nothing; any other failure (upstream error or
|
|
169
|
+
* timeout, audit unavailable) is transient and reported for retry. */
|
|
170
|
+
private graphNode;
|
|
171
|
+
/** A package's metadata, cached. `render` asks for the form
|
|
172
|
+
* `renderMetadata` can serve; a cached entry fetched without it (by the
|
|
173
|
+
* graph walk or a download) is fetched again with it, and replaces it. */
|
|
174
|
+
private metadata;
|
|
175
|
+
private dropCached;
|
|
176
|
+
private putCached;
|
|
177
|
+
/** Caches `meta`, least recently used evicted first, within both the entry
|
|
178
|
+
* and the byte budget. An entry larger than the whole byte budget is not
|
|
179
|
+
* cached at all. A live entry that can render is not replaced by one that
|
|
180
|
+
* cannot. */
|
|
181
|
+
private cacheMetadata;
|
|
182
|
+
private keptVersions;
|
|
183
|
+
private tally;
|
|
184
|
+
/** Releases a run's in-process state when its deadline passes, whether or
|
|
185
|
+
* not any other request ever arrives: the timer does not keep the process
|
|
186
|
+
* alive. */
|
|
187
|
+
private scheduleRelease;
|
|
188
|
+
/** Drops a run's tally and graph walks, and stops any walk still running. */
|
|
189
|
+
private releaseRun;
|
|
190
|
+
/** Releases every run's in-process state (timers included), e.g. when the
|
|
191
|
+
* server shuts down. */
|
|
192
|
+
close(): void;
|
|
193
|
+
/** Records a refused row, at most `maxRefusalRecords` per run so a worker
|
|
194
|
+
* hammering refused names cannot grow the table (or get_run and the PR
|
|
195
|
+
* body) without bound. Callers still return the refusal's error. */
|
|
196
|
+
private refuse;
|
|
197
|
+
private inFlightUsage;
|
|
198
|
+
/** Reserve one file slot for a download that is about to start, and its
|
|
199
|
+
* declared size when known. An unknown size (`null`) reserves no bytes
|
|
200
|
+
* up front; those are added incrementally as they stream, via
|
|
201
|
+
* `trackStreamedBytes`. */
|
|
202
|
+
private reserveDownload;
|
|
203
|
+
/** Only called for downloads whose declared size was unknown at
|
|
204
|
+
* reservation time; adds each chunk's bytes to the in-flight total as it
|
|
205
|
+
* arrives, so the shared budget check sees them immediately. */
|
|
206
|
+
private trackStreamedBytes;
|
|
207
|
+
/** Release a download's reservation on every exit path (served, failed,
|
|
208
|
+
* cancelled, or refused before it ever reserved streaming). Undoes
|
|
209
|
+
* exactly what was reserved: the declared size when known, or the bytes
|
|
210
|
+
* actually streamed when it was not. */
|
|
211
|
+
private releaseDownload;
|
|
212
|
+
private download;
|
|
213
|
+
}
|