@wardby/cli 0.1.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 +131 -0
- package/LICENSE +202 -0
- package/NOTICE +2 -0
- package/README.md +282 -0
- package/bin/wardby.js +3 -0
- package/deploy/local/docker-compose.yml +19 -0
- package/dist/claude-coding-worker/driver.d.ts +70 -0
- package/dist/claude-coding-worker/driver.js +128 -0
- package/dist/claude-coding-worker/main.d.ts +2 -0
- package/dist/claude-coding-worker/main.js +41 -0
- package/dist/claude-coding-worker/sdk.d.ts +4 -0
- package/dist/claude-coding-worker/sdk.js +43 -0
- package/dist/claude-coding-worker/tool-relay.d.ts +1 -0
- package/dist/claude-coding-worker/tool-relay.js +9 -0
- package/dist/cli-help.d.ts +1 -0
- package/dist/cli-help.js +20 -0
- package/dist/cli.d.ts +18 -0
- package/dist/cli.js +629 -0
- package/dist/coding/observability.d.ts +59 -0
- package/dist/coding/observability.js +77 -0
- package/dist/coding/profile.d.ts +88 -0
- package/dist/coding/profile.js +137 -0
- package/dist/coding/protocol.d.ts +345 -0
- package/dist/coding/protocol.js +445 -0
- package/dist/coding/provider.d.ts +4 -0
- package/dist/coding/provider.js +18 -0
- package/dist/coding-proxy/main.d.ts +1 -0
- package/dist/coding-proxy/main.js +51 -0
- package/dist/coding-worker/artifact.d.ts +16 -0
- package/dist/coding-worker/artifact.js +37 -0
- package/dist/coding-worker/driver.d.ts +46 -0
- package/dist/coding-worker/driver.js +158 -0
- package/dist/coding-worker/errors.d.ts +1 -0
- package/dist/coding-worker/errors.js +23 -0
- package/dist/coding-worker/isolation-probe.d.ts +1 -0
- package/dist/coding-worker/isolation-probe.js +146 -0
- package/dist/coding-worker/keeper.d.ts +4 -0
- package/dist/coding-worker/keeper.js +29 -0
- package/dist/coding-worker/main.d.ts +2 -0
- package/dist/coding-worker/main.js +43 -0
- package/dist/coding-worker/sdk.d.ts +26 -0
- package/dist/coding-worker/sdk.js +28 -0
- package/dist/coding-worker/types.d.ts +64 -0
- package/dist/coding-worker/types.js +1 -0
- package/dist/config/providers.d.ts +158 -0
- package/dist/config/providers.js +162 -0
- package/dist/core/budget-groups.d.ts +72 -0
- package/dist/core/budget-groups.js +149 -0
- package/dist/core/budget.d.ts +63 -0
- package/dist/core/budget.js +69 -0
- package/dist/core/coding-queue.d.ts +32 -0
- package/dist/core/coding-queue.js +54 -0
- package/dist/core/cron.d.ts +31 -0
- package/dist/core/cron.js +43 -0
- package/dist/core/datastores.d.ts +41 -0
- package/dist/core/datastores.js +105 -0
- package/dist/core/db.d.ts +2 -0
- package/dist/core/db.js +2 -0
- package/dist/core/dispatch.d.ts +81 -0
- package/dist/core/dispatch.js +184 -0
- package/dist/core/engine-native.d.ts +29 -0
- package/dist/core/engine-native.js +259 -0
- package/dist/core/http-runtime.d.ts +7 -0
- package/dist/core/http-runtime.js +101 -0
- package/dist/core/lease.d.ts +13 -0
- package/dist/core/lease.js +22 -0
- package/dist/core/logger.d.ts +13 -0
- package/dist/core/logger.js +45 -0
- package/dist/core/memory-tools.d.ts +11 -0
- package/dist/core/memory-tools.js +122 -0
- package/dist/core/reconciler.d.ts +45 -0
- package/dist/core/reconciler.js +152 -0
- package/dist/core/runner.d.ts +87 -0
- package/dist/core/runner.js +529 -0
- package/dist/core/scheduler.d.ts +47 -0
- package/dist/core/scheduler.js +121 -0
- package/dist/core/secrets.d.ts +46 -0
- package/dist/core/secrets.js +100 -0
- package/dist/core/subagent-memory-tools.d.ts +18 -0
- package/dist/core/subagent-memory-tools.js +121 -0
- package/dist/core/timing.d.ts +7 -0
- package/dist/core/timing.js +7 -0
- package/dist/core/webhooks.d.ts +23 -0
- package/dist/core/webhooks.js +113 -0
- package/dist/env.d.ts +11 -0
- package/dist/env.js +13 -0
- package/dist/import/budgets.d.ts +16 -0
- package/dist/import/budgets.js +21 -0
- package/dist/import/bundle.d.ts +16 -0
- package/dist/import/bundle.js +61 -0
- package/dist/import/cli-args.d.ts +2 -0
- package/dist/import/cli-args.js +44 -0
- package/dist/import/create.d.ts +34 -0
- package/dist/import/create.js +363 -0
- package/dist/import/index.d.ts +25 -0
- package/dist/import/index.js +130 -0
- package/dist/import/model-gate.d.ts +1 -0
- package/dist/import/model-gate.js +3 -0
- package/dist/import/neutral-schema.d.ts +369 -0
- package/dist/import/neutral-schema.js +109 -0
- package/dist/import/preflight.d.ts +41 -0
- package/dist/import/preflight.js +71 -0
- package/dist/import/report.d.ts +5 -0
- package/dist/import/report.js +98 -0
- package/dist/import/tool-scan.d.ts +8 -0
- package/dist/import/tool-scan.js +20 -0
- package/dist/mcp/auth/ownership.d.ts +113 -0
- package/dist/mcp/auth/ownership.js +87 -0
- package/dist/mcp/auth/principal.d.ts +9 -0
- package/dist/mcp/auth/principal.js +9 -0
- package/dist/mcp/auth/resource-server.d.ts +47 -0
- package/dist/mcp/auth/resource-server.js +82 -0
- package/dist/mcp/auth/self-hosted/browser.d.ts +3 -0
- package/dist/mcp/auth/self-hosted/browser.js +273 -0
- package/dist/mcp/auth/self-hosted/cli.d.ts +2 -0
- package/dist/mcp/auth/self-hosted/cli.js +39 -0
- package/dist/mcp/auth/self-hosted/credentials.d.ts +58 -0
- package/dist/mcp/auth/self-hosted/credentials.js +106 -0
- package/dist/mcp/auth/self-hosted/rate-limit.d.ts +13 -0
- package/dist/mcp/auth/self-hosted/rate-limit.js +20 -0
- package/dist/mcp/auth/self-hosted/session.d.ts +36 -0
- package/dist/mcp/auth/self-hosted/session.js +110 -0
- package/dist/mcp/capabilities.d.ts +11 -0
- package/dist/mcp/capabilities.js +10 -0
- package/dist/mcp/context.d.ts +46 -0
- package/dist/mcp/context.js +1 -0
- package/dist/mcp/errors.d.ts +13 -0
- package/dist/mcp/errors.js +22 -0
- package/dist/mcp/index.d.ts +32 -0
- package/dist/mcp/index.js +187 -0
- package/dist/mcp/jsonrpc.d.ts +8 -0
- package/dist/mcp/jsonrpc.js +1 -0
- package/dist/mcp/server.d.ts +107 -0
- package/dist/mcp/server.js +203 -0
- package/dist/mcp/tasks/manager.d.ts +63 -0
- package/dist/mcp/tasks/manager.js +103 -0
- package/dist/mcp/tools/agents.d.ts +2 -0
- package/dist/mcp/tools/agents.js +375 -0
- package/dist/mcp/tools/budget-groups.d.ts +2 -0
- package/dist/mcp/tools/budget-groups.js +136 -0
- package/dist/mcp/tools/datastore.d.ts +2 -0
- package/dist/mcp/tools/datastore.js +217 -0
- package/dist/mcp/tools/memory.d.ts +3 -0
- package/dist/mcp/tools/memory.js +60 -0
- package/dist/mcp/tools/models.d.ts +8 -0
- package/dist/mcp/tools/models.js +15 -0
- package/dist/mcp/tools/runs.d.ts +2 -0
- package/dist/mcp/tools/runs.js +61 -0
- package/dist/mcp/tools/scheduling.d.ts +2 -0
- package/dist/mcp/tools/scheduling.js +48 -0
- package/dist/mcp/tools/secret-elicitation-form.d.ts +22 -0
- package/dist/mcp/tools/secret-elicitation-form.js +93 -0
- package/dist/mcp/tools/secret-elicitation-server.d.ts +5 -0
- package/dist/mcp/tools/secret-elicitation-server.js +57 -0
- package/dist/mcp/tools/secret-elicitation.d.ts +38 -0
- package/dist/mcp/tools/secret-elicitation.js +52 -0
- package/dist/mcp/tools/secrets.d.ts +13 -0
- package/dist/mcp/tools/secrets.js +124 -0
- package/dist/mcp/tools/subagents.d.ts +2 -0
- package/dist/mcp/tools/subagents.js +133 -0
- package/dist/mcp/tools/text-result.d.ts +6 -0
- package/dist/mcp/tools/text-result.js +3 -0
- package/dist/mcp/tools/tools.d.ts +2 -0
- package/dist/mcp/tools/tools.js +211 -0
- package/dist/mcp/tools/trigger.d.ts +2 -0
- package/dist/mcp/tools/trigger.js +120 -0
- package/dist/mcp/tools/webhooks.d.ts +2 -0
- package/dist/mcp/tools/webhooks.js +34 -0
- package/dist/mcp/transport/http-limits.d.ts +17 -0
- package/dist/mcp/transport/http-limits.js +92 -0
- package/dist/mcp/transport/stdio.d.ts +23 -0
- package/dist/mcp/transport/stdio.js +6 -0
- package/dist/mcp/transport/streamable-http.d.ts +34 -0
- package/dist/mcp/transport/streamable-http.js +158 -0
- package/dist/mcp/unattended-schedules.d.ts +15 -0
- package/dist/mcp/unattended-schedules.js +21 -0
- package/dist/mcp/webhooks/ingress.d.ts +17 -0
- package/dist/mcp/webhooks/ingress.js +33 -0
- package/dist/observability/config.d.ts +6 -0
- package/dist/observability/config.js +20 -0
- package/dist/observability/metrics-server.d.ts +11 -0
- package/dist/observability/metrics-server.js +47 -0
- package/dist/observability/metrics.d.ts +36 -0
- package/dist/observability/metrics.js +158 -0
- package/dist/providers/auth/authorization-server.d.ts +41 -0
- package/dist/providers/auth/authorization-server.js +1 -0
- package/dist/providers/auth/delegating.d.ts +44 -0
- package/dist/providers/auth/delegating.js +105 -0
- package/dist/providers/auth/index.d.ts +11 -0
- package/dist/providers/auth/index.js +20 -0
- package/dist/providers/auth/release-gate.d.ts +1 -0
- package/dist/providers/auth/release-gate.js +4 -0
- package/dist/providers/auth/self-hosted.d.ts +78 -0
- package/dist/providers/auth/self-hosted.js +377 -0
- package/dist/providers/auth/subject.d.ts +1 -0
- package/dist/providers/auth/subject.js +6 -0
- package/dist/providers/auth/types.d.ts +63 -0
- package/dist/providers/auth/types.js +22 -0
- package/dist/providers/coding-proxy/deny-port.d.ts +5 -0
- package/dist/providers/coding-proxy/deny-port.js +45 -0
- package/dist/providers/coding-proxy/environment-credentials.d.ts +7 -0
- package/dist/providers/coding-proxy/environment-credentials.js +16 -0
- package/dist/providers/coding-proxy/index.d.ts +7 -0
- package/dist/providers/coding-proxy/index.js +7 -0
- package/dist/providers/coding-proxy/memory-ledger.d.ts +17 -0
- package/dist/providers/coding-proxy/memory-ledger.js +103 -0
- package/dist/providers/coding-proxy/metering.d.ts +20 -0
- package/dist/providers/coding-proxy/metering.js +161 -0
- package/dist/providers/coding-proxy/prisma-ledger.d.ts +15 -0
- package/dist/providers/coding-proxy/prisma-ledger.js +213 -0
- package/dist/providers/coding-proxy/proxy.d.ts +75 -0
- package/dist/providers/coding-proxy/proxy.js +721 -0
- package/dist/providers/coding-proxy/runtime.d.ts +18 -0
- package/dist/providers/coding-proxy/runtime.js +39 -0
- package/dist/providers/coding-proxy/secure-fetch.d.ts +9 -0
- package/dist/providers/coding-proxy/secure-fetch.js +72 -0
- package/dist/providers/coding-proxy/server.d.ts +17 -0
- package/dist/providers/coding-proxy/server.js +139 -0
- package/dist/providers/coding-proxy/types.d.ts +99 -0
- package/dist/providers/coding-proxy/types.js +1 -0
- package/dist/providers/datastore/index.d.ts +2 -0
- package/dist/providers/datastore/index.js +2 -0
- package/dist/providers/datastore/postgres.d.ts +20 -0
- package/dist/providers/datastore/postgres.js +130 -0
- package/dist/providers/datastore/scoped.d.ts +10 -0
- package/dist/providers/datastore/scoped.js +46 -0
- package/dist/providers/datastore/types.d.ts +31 -0
- package/dist/providers/datastore/types.js +7 -0
- package/dist/providers/email/types.d.ts +46 -0
- package/dist/providers/email/types.js +8 -0
- package/dist/providers/engine/index.d.ts +1 -0
- package/dist/providers/engine/index.js +1 -0
- package/dist/providers/engine/types.d.ts +67 -0
- package/dist/providers/engine/types.js +16 -0
- package/dist/providers/executor/build.d.ts +6 -0
- package/dist/providers/executor/build.js +15 -0
- package/dist/providers/executor/composition.d.ts +14 -0
- package/dist/providers/executor/composition.js +123 -0
- package/dist/providers/executor/container.d.ts +184 -0
- package/dist/providers/executor/container.js +936 -0
- package/dist/providers/executor/dbos-status.d.ts +50 -0
- package/dist/providers/executor/dbos-status.js +64 -0
- package/dist/providers/executor/dbos.d.ts +53 -0
- package/dist/providers/executor/dbos.js +269 -0
- package/dist/providers/executor/in-process.d.ts +18 -0
- package/dist/providers/executor/in-process.js +38 -0
- package/dist/providers/executor/index.d.ts +8 -0
- package/dist/providers/executor/index.js +8 -0
- package/dist/providers/executor/routing.d.ts +48 -0
- package/dist/providers/executor/routing.js +70 -0
- package/dist/providers/executor/types.d.ts +55 -0
- package/dist/providers/executor/types.js +1 -0
- package/dist/providers/index.d.ts +43 -0
- package/dist/providers/index.js +18 -0
- package/dist/providers/jobs/docker-isolation.d.ts +166 -0
- package/dist/providers/jobs/docker-isolation.js +724 -0
- package/dist/providers/jobs/docker.d.ts +127 -0
- package/dist/providers/jobs/docker.js +1027 -0
- package/dist/providers/jobs/fake-kubernetes-api.d.ts +98 -0
- package/dist/providers/jobs/fake-kubernetes-api.js +142 -0
- package/dist/providers/jobs/fake.d.ts +23 -0
- package/dist/providers/jobs/fake.js +132 -0
- package/dist/providers/jobs/kubernetes-api.d.ts +60 -0
- package/dist/providers/jobs/kubernetes-api.js +20 -0
- package/dist/providers/jobs/kubernetes-client.d.ts +36 -0
- package/dist/providers/jobs/kubernetes-client.js +171 -0
- package/dist/providers/jobs/kubernetes-dry-run-fixture.d.ts +49 -0
- package/dist/providers/jobs/kubernetes-dry-run-fixture.js +141 -0
- package/dist/providers/jobs/kubernetes-isolation.d.ts +147 -0
- package/dist/providers/jobs/kubernetes-isolation.js +607 -0
- package/dist/providers/jobs/kubernetes-platform.d.ts +177 -0
- package/dist/providers/jobs/kubernetes-platform.js +280 -0
- package/dist/providers/jobs/kubernetes-preflight.d.ts +59 -0
- package/dist/providers/jobs/kubernetes-preflight.js +339 -0
- package/dist/providers/jobs/kubernetes-witness.d.ts +10 -0
- package/dist/providers/jobs/kubernetes-witness.js +193 -0
- package/dist/providers/jobs/kubernetes.d.ts +127 -0
- package/dist/providers/jobs/kubernetes.js +874 -0
- package/dist/providers/jobs/safe-extract.d.ts +9 -0
- package/dist/providers/jobs/safe-extract.js +325 -0
- package/dist/providers/jobs/types.d.ts +78 -0
- package/dist/providers/jobs/types.js +6 -0
- package/dist/providers/jobs/workspace-swap.d.ts +2 -0
- package/dist/providers/jobs/workspace-swap.js +47 -0
- package/dist/providers/llm/anthropic.d.ts +13 -0
- package/dist/providers/llm/anthropic.js +21 -0
- package/dist/providers/llm/bedrock.d.ts +19 -0
- package/dist/providers/llm/bedrock.js +33 -0
- package/dist/providers/llm/claude-messages.d.ts +106 -0
- package/dist/providers/llm/claude-messages.js +157 -0
- package/dist/providers/llm/claude-provider.d.ts +40 -0
- package/dist/providers/llm/claude-provider.js +31 -0
- package/dist/providers/llm/index.d.ts +10 -0
- package/dist/providers/llm/index.js +10 -0
- package/dist/providers/llm/openai.d.ts +23 -0
- package/dist/providers/llm/openai.js +156 -0
- package/dist/providers/llm/pricing-anthropic.d.ts +4 -0
- package/dist/providers/llm/pricing-anthropic.js +30 -0
- package/dist/providers/llm/pricing-bedrock-claude.d.ts +12 -0
- package/dist/providers/llm/pricing-bedrock-claude.js +37 -0
- package/dist/providers/llm/pricing-core.d.ts +26 -0
- package/dist/providers/llm/pricing-core.js +17 -0
- package/dist/providers/llm/pricing.d.ts +30 -0
- package/dist/providers/llm/pricing.js +74 -0
- package/dist/providers/llm/registration.d.ts +8 -0
- package/dist/providers/llm/registration.js +39 -0
- package/dist/providers/llm/routing.d.ts +25 -0
- package/dist/providers/llm/routing.js +32 -0
- package/dist/providers/llm/types.d.ts +85 -0
- package/dist/providers/llm/types.js +12 -0
- package/dist/providers/memory/index.d.ts +2 -0
- package/dist/providers/memory/index.js +2 -0
- package/dist/providers/memory/postgres.d.ts +20 -0
- package/dist/providers/memory/postgres.js +72 -0
- package/dist/providers/memory/types.d.ts +32 -0
- package/dist/providers/memory/types.js +17 -0
- package/dist/providers/secrets/app-key.d.ts +8 -0
- package/dist/providers/secrets/app-key.js +50 -0
- package/dist/providers/secrets/index.d.ts +10 -0
- package/dist/providers/secrets/index.js +13 -0
- package/dist/providers/secrets/transfer-envelope.d.ts +12 -0
- package/dist/providers/secrets/transfer-envelope.js +35 -0
- package/dist/providers/secrets/types.d.ts +18 -0
- package/dist/providers/secrets/types.js +12 -0
- package/dist/providers/storage/types.d.ts +18 -0
- package/dist/providers/storage/types.js +7 -0
- package/dist/providers/vcs/git.d.ts +105 -0
- package/dist/providers/vcs/git.js +710 -0
- package/dist/providers/vcs/github.d.ts +105 -0
- package/dist/providers/vcs/github.js +394 -0
- package/dist/providers/vcs/index.d.ts +6 -0
- package/dist/providers/vcs/index.js +26 -0
- package/dist/providers/vcs/types.d.ts +118 -0
- package/dist/providers/vcs/types.js +1 -0
- package/dist/sandbox/bounded-json.d.ts +2 -0
- package/dist/sandbox/bounded-json.js +36 -0
- package/dist/sandbox/bridge.d.ts +15 -0
- package/dist/sandbox/bridge.js +78 -0
- package/dist/sandbox/eval-core.d.ts +37 -0
- package/dist/sandbox/eval-core.js +159 -0
- package/dist/sandbox/fetch-policy.d.ts +24 -0
- package/dist/sandbox/fetch-policy.js +96 -0
- package/dist/sandbox/generated/zod-to-json-schema.bundle.js +5 -0
- package/dist/sandbox/generated/zod.bundle.js +1 -0
- package/dist/sandbox/host-functions.d.ts +29 -0
- package/dist/sandbox/host-functions.js +168 -0
- package/dist/sandbox/limits.d.ts +39 -0
- package/dist/sandbox/limits.js +39 -0
- package/dist/sandbox/parser-worker/__fixtures__/crash.d.ts +1 -0
- package/dist/sandbox/parser-worker/__fixtures__/crash.js +6 -0
- package/dist/sandbox/parser-worker/__fixtures__/echo.d.ts +1 -0
- package/dist/sandbox/parser-worker/__fixtures__/echo.js +5 -0
- package/dist/sandbox/parser-worker/__fixtures__/reject.d.ts +1 -0
- package/dist/sandbox/parser-worker/__fixtures__/reject.js +5 -0
- package/dist/sandbox/parser-worker/__fixtures__/spin-forever.d.ts +1 -0
- package/dist/sandbox/parser-worker/__fixtures__/spin-forever.js +11 -0
- package/dist/sandbox/parser-worker/pool.d.ts +13 -0
- package/dist/sandbox/parser-worker/pool.js +111 -0
- package/dist/sandbox/parser-worker/worker.d.ts +14 -0
- package/dist/sandbox/parser-worker/worker.js +63 -0
- package/dist/sandbox/pii-redaction.d.ts +1 -0
- package/dist/sandbox/pii-redaction.js +29 -0
- package/dist/sandbox/prelude.d.ts +26 -0
- package/dist/sandbox/prelude.js +408 -0
- package/dist/sandbox/quickjs-module.d.ts +13 -0
- package/dist/sandbox/quickjs-module.js +19 -0
- package/dist/sandbox/run-in-sandbox.d.ts +34 -0
- package/dist/sandbox/run-in-sandbox.js +53 -0
- package/dist/sandbox/safe-fetch.d.ts +26 -0
- package/dist/sandbox/safe-fetch.js +140 -0
- package/dist/sandbox/tool-capabilities.d.ts +66 -0
- package/dist/sandbox/tool-capabilities.js +103 -0
- package/dist/sandbox/zod-params.d.ts +22 -0
- package/dist/sandbox/zod-params.js +60 -0
- package/dist/serve.d.ts +14 -0
- package/dist/serve.js +54 -0
- package/dist/wardby-bin.d.ts +2 -0
- package/dist/wardby-bin.js +20 -0
- package/package.json +123 -0
- package/prisma/migrations/20260905000000_init/migration.sql +34 -0
- package/prisma/migrations/20260905010000_scheduler_durability/migration.sql +31 -0
- package/prisma/migrations/20260905020000_tools_multiturn/migration.sql +47 -0
- package/prisma/migrations/20260905030000_cache_tool_json_schema/migration.sql +13 -0
- package/prisma/migrations/20260906000000_mcp_phase4/migration.sql +115 -0
- package/prisma/migrations/20260906010000_run_final_text/migration.sql +7 -0
- package/prisma/migrations/20260906020000_run_turns/migration.sql +6 -0
- package/prisma/migrations/20260906030000_task_principal_id/migration.sql +5 -0
- package/prisma/migrations/20260906040000_secure_self_hosted_oauth/migration.sql +67 -0
- package/prisma/migrations/20260906050000_phase5_coding_agents/migration.sql +52 -0
- package/prisma/migrations/20260906060000_tool_capability_scoping/migration.sql +22 -0
- package/prisma/migrations/20260906070000_datastore_pii_flag/migration.sql +6 -0
- package/prisma/migrations/20260906080000_secret_elicitation_outcomes/migration.sql +13 -0
- package/prisma/migrations/20260907010000_coding_proxy_ledger/migration.sql +57 -0
- package/prisma/migrations/20260907020000_budget_groups/migration.sql +24 -0
- package/prisma/migrations/20260907030000_coding_webhook_task_override/migration.sql +4 -0
- package/prisma/migrations/20260908010000_run_execution_backend/migration.sql +2 -0
- package/prisma/migrations/20260908020000_coding_run_audit_metadata/migration.sql +7 -0
- package/prisma/migrations/20260910010000_agent_secret_bound_name/migration.sql +16 -0
- package/prisma/migrations/20260911010000_coding_worker_toolchains/migration.sql +5 -0
- package/prisma/migrations/20260912010000_coding_provider_contract/migration.sql +24 -0
- package/prisma/migrations/20260912020000_coding_proxy_protocol/migration.sql +10 -0
- package/prisma/migrations/20260912030000_agent_memory/migration.sql +18 -0
- package/prisma/migrations/20260912040000_named_shared_datastores/migration.sql +68 -0
- package/prisma/migrations/20260913000000_run_trigger_webhook/migration.sql +2 -0
- package/prisma/migrations/20260913010000_agent_sub_agent/migration.sql +32 -0
- package/prisma/migrations/20260913020000_run_task_override/migration.sql +5 -0
- package/prisma/migrations/20260913030000_coding_run_root/migration.sql +11 -0
- package/prisma/migrations/20260922010000_coding_run_queued_at/migration.sql +8 -0
- package/prisma/migrations/20260922020000_coding_workspace_disk/migration.sql +8 -0
- package/prisma/migrations/migration_lock.toml +3 -0
- package/prisma/schema.prisma +723 -0
- package/scripts/git-askpass.sh +11 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Executor seam — how the scheduler durably runs a `Run` to a terminal
|
|
3
|
+
* state.
|
|
4
|
+
*
|
|
5
|
+
* Phase 2's default (`InProcessExecutor`) provides durability via a
|
|
6
|
+
* heartbeat plus an external reconciler. Phase 3 can add a `DbosExecutor`
|
|
7
|
+
* backed by durable workflow steps with no scheduler or CLI change — the
|
|
8
|
+
* scheduler only ever calls `start(runId)` and never sees the mechanism.
|
|
9
|
+
*/
|
|
10
|
+
export interface PersistedExecutionHandle {
|
|
11
|
+
runId: string;
|
|
12
|
+
backend: string;
|
|
13
|
+
id: string;
|
|
14
|
+
}
|
|
15
|
+
export type ExecutionRecoveryResult = {
|
|
16
|
+
state: "active";
|
|
17
|
+
} | {
|
|
18
|
+
state: "terminal";
|
|
19
|
+
} | {
|
|
20
|
+
state: "lost";
|
|
21
|
+
reason?: string;
|
|
22
|
+
};
|
|
23
|
+
export interface CodingImageSelector {
|
|
24
|
+
provider: CodingProvider;
|
|
25
|
+
toolchain: string;
|
|
26
|
+
toolchainVersion: string | null;
|
|
27
|
+
workerImageRef: string | null;
|
|
28
|
+
}
|
|
29
|
+
export interface Executor {
|
|
30
|
+
start: (runId: string) => Promise<void>;
|
|
31
|
+
stop: (runId: string, reason?: string) => Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Implementations must query the persisted handle and, before returning
|
|
34
|
+
* `lost`, best-effort stop and collect it. `terminal` means collection and
|
|
35
|
+
* terminal Run persistence completed. Recovery must never relaunch a job.
|
|
36
|
+
*/
|
|
37
|
+
recover?: (handle: PersistedExecutionHandle) => Promise<ExecutionRecoveryResult>;
|
|
38
|
+
/**
|
|
39
|
+
* Optional one-time startup. A durable backend connects and re-drives the
|
|
40
|
+
* workflows it owned before the last restart. Composition roots call it
|
|
41
|
+
* before starting the scheduler or MCP server.
|
|
42
|
+
*/
|
|
43
|
+
launch?: () => Promise<void>;
|
|
44
|
+
/** Optional graceful shutdown counterpart to `launch`. */
|
|
45
|
+
close?: () => Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* Resolves a coding agent's profile selection to an immutable worker
|
|
48
|
+
* image digest, once, at dispatch time (src/core/dispatch.ts) — never
|
|
49
|
+
* called from the hot path. Must throw on an unresolvable
|
|
50
|
+
* (provider, toolchain, toolchainVersion) tuple, fail-closed, same convention as
|
|
51
|
+
* the LLM pricing tables' unknown-model throw.
|
|
52
|
+
*/
|
|
53
|
+
resolveCodingWorkerImage?(selector: CodingImageSelector): string;
|
|
54
|
+
}
|
|
55
|
+
import type { CodingProvider } from "../../coding/provider.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider seams — the interfaces the core depends on.
|
|
3
|
+
*
|
|
4
|
+
* The core imports only from here; it never references a concrete adapter or a
|
|
5
|
+
* cloud SDK. Adapters live alongside each interface (e.g. `jobs/local.ts`,
|
|
6
|
+
* `jobs/kubernetes.ts`) and are wired up from configuration.
|
|
7
|
+
*/
|
|
8
|
+
export * from "./jobs/types.js";
|
|
9
|
+
export * from "./email/types.js";
|
|
10
|
+
export * from "./llm/types.js";
|
|
11
|
+
export * from "./secrets/types.js";
|
|
12
|
+
export * from "./auth/types.js";
|
|
13
|
+
export * from "./storage/types.js";
|
|
14
|
+
export * from "./executor/types.js";
|
|
15
|
+
export * from "./datastore/types.js";
|
|
16
|
+
export * from "./memory/types.js";
|
|
17
|
+
export * from "./engine/types.js";
|
|
18
|
+
export * from "./vcs/types.js";
|
|
19
|
+
import type { JobLauncher } from "./jobs/types.js";
|
|
20
|
+
import type { EmailProvider } from "./email/types.js";
|
|
21
|
+
import type { LlmProvider } from "./llm/types.js";
|
|
22
|
+
import type { SecretCipher } from "./secrets/types.js";
|
|
23
|
+
import type { AuthProvider } from "./auth/types.js";
|
|
24
|
+
import type { BlobStore } from "./storage/types.js";
|
|
25
|
+
import type { Executor } from "./executor/types.js";
|
|
26
|
+
import type { Datastore } from "./datastore/types.js";
|
|
27
|
+
import type { AgentMemoryStore } from "./memory/types.js";
|
|
28
|
+
import type { Engine } from "./engine/types.js";
|
|
29
|
+
import type { VcsProvider } from "./vcs/types.js";
|
|
30
|
+
/** The full set of providers the core is given at startup. */
|
|
31
|
+
export interface ProviderRegistry {
|
|
32
|
+
jobs: JobLauncher;
|
|
33
|
+
email: EmailProvider;
|
|
34
|
+
llm: LlmProvider;
|
|
35
|
+
secrets: SecretCipher;
|
|
36
|
+
auth: AuthProvider;
|
|
37
|
+
storage: BlobStore;
|
|
38
|
+
executor: Executor;
|
|
39
|
+
datastore: Datastore;
|
|
40
|
+
memory: AgentMemoryStore;
|
|
41
|
+
engine: Engine;
|
|
42
|
+
vcs: VcsProvider;
|
|
43
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider seams — the interfaces the core depends on.
|
|
3
|
+
*
|
|
4
|
+
* The core imports only from here; it never references a concrete adapter or a
|
|
5
|
+
* cloud SDK. Adapters live alongside each interface (e.g. `jobs/local.ts`,
|
|
6
|
+
* `jobs/kubernetes.ts`) and are wired up from configuration.
|
|
7
|
+
*/
|
|
8
|
+
export * from "./jobs/types.js";
|
|
9
|
+
export * from "./email/types.js";
|
|
10
|
+
export * from "./llm/types.js";
|
|
11
|
+
export * from "./secrets/types.js";
|
|
12
|
+
export * from "./auth/types.js";
|
|
13
|
+
export * from "./storage/types.js";
|
|
14
|
+
export * from "./executor/types.js";
|
|
15
|
+
export * from "./datastore/types.js";
|
|
16
|
+
export * from "./memory/types.js";
|
|
17
|
+
export * from "./engine/types.js";
|
|
18
|
+
export * from "./vcs/types.js";
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import type { JobSpec } from "./types.js";
|
|
2
|
+
export declare const CODING_WORKER_UID = 10001;
|
|
3
|
+
export declare const CODING_WORKER_GID = 10001;
|
|
4
|
+
export declare const CODING_PROXY_ALIAS = "wardby-proxy";
|
|
5
|
+
export declare const CODING_PROXY_PORT = 8787;
|
|
6
|
+
/**
|
|
7
|
+
* The proxy's deny port. Nothing is served here (see coding-proxy/deny-port.ts);
|
|
8
|
+
* it is the enforcement witness — the one destination a run's NetworkPolicy must
|
|
9
|
+
* refuse while permitting CODING_PROXY_PORT on the same pod.
|
|
10
|
+
*/
|
|
11
|
+
export declare const CODING_PROXY_DENY_PORT = 8788;
|
|
12
|
+
export declare const DOCKER_ISOLATION_ERROR = "docker_isolation_unsupported";
|
|
13
|
+
export declare const WORKER_STOP_GRACE_SECONDS = 10;
|
|
14
|
+
export declare const WORKER_PATHS: {
|
|
15
|
+
readonly workspace: "/workspace";
|
|
16
|
+
readonly git: "/workspace/.git";
|
|
17
|
+
readonly input: "/run/wardby/input";
|
|
18
|
+
readonly output: "/run/wardby/output";
|
|
19
|
+
readonly tool: "/run/wardby/tool";
|
|
20
|
+
readonly storage: "/run/wardby/storage";
|
|
21
|
+
};
|
|
22
|
+
export interface DockerIsolationNames {
|
|
23
|
+
network: string;
|
|
24
|
+
storageVolume: string;
|
|
25
|
+
keeperContainer: string;
|
|
26
|
+
workerContainer: string;
|
|
27
|
+
toolContainer: string;
|
|
28
|
+
}
|
|
29
|
+
export interface DockerIsolationPlan {
|
|
30
|
+
names: DockerIsolationNames;
|
|
31
|
+
deadlineMs: number;
|
|
32
|
+
stopGraceSeconds: number;
|
|
33
|
+
networkCreateArgs: string[];
|
|
34
|
+
storageVolumeCreateArgs: string[];
|
|
35
|
+
keeperCreateArgs: string[];
|
|
36
|
+
workerCreateArgs: string[];
|
|
37
|
+
toolCreateArgs?: string[];
|
|
38
|
+
proxyNetworkConnectArgs: string[];
|
|
39
|
+
}
|
|
40
|
+
export interface DockerHostInfo {
|
|
41
|
+
OSType?: string;
|
|
42
|
+
CgroupVersion?: string;
|
|
43
|
+
MemoryLimit?: boolean;
|
|
44
|
+
SwapLimit?: boolean;
|
|
45
|
+
CpuCfsQuota?: boolean;
|
|
46
|
+
PidsLimit?: boolean;
|
|
47
|
+
SecurityOptions?: string[];
|
|
48
|
+
Plugins?: {
|
|
49
|
+
Volume?: string[];
|
|
50
|
+
Network?: string[];
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
export interface DockerNetworkInspection {
|
|
54
|
+
Name?: string;
|
|
55
|
+
Driver?: string;
|
|
56
|
+
Internal?: boolean;
|
|
57
|
+
EnableIPv6?: boolean;
|
|
58
|
+
Attachable?: boolean;
|
|
59
|
+
Ingress?: boolean;
|
|
60
|
+
Labels?: Record<string, string>;
|
|
61
|
+
Options?: Record<string, string>;
|
|
62
|
+
Containers?: Record<string, {
|
|
63
|
+
Name?: string;
|
|
64
|
+
}>;
|
|
65
|
+
}
|
|
66
|
+
export interface DockerVolumeInspection {
|
|
67
|
+
Name?: string;
|
|
68
|
+
Driver?: string;
|
|
69
|
+
Labels?: Record<string, string>;
|
|
70
|
+
Options?: Record<string, string>;
|
|
71
|
+
}
|
|
72
|
+
export interface DockerContainerInspection {
|
|
73
|
+
Config?: {
|
|
74
|
+
Env?: string[];
|
|
75
|
+
User?: string;
|
|
76
|
+
Image?: string;
|
|
77
|
+
Labels?: Record<string, string>;
|
|
78
|
+
};
|
|
79
|
+
HostConfig?: {
|
|
80
|
+
AutoRemove?: boolean;
|
|
81
|
+
Binds?: string[] | null;
|
|
82
|
+
CapAdd?: string[] | null;
|
|
83
|
+
CapDrop?: string[] | null;
|
|
84
|
+
CgroupnsMode?: string;
|
|
85
|
+
CpuQuota?: number;
|
|
86
|
+
CpuPeriod?: number;
|
|
87
|
+
Devices?: unknown[];
|
|
88
|
+
DeviceRequests?: unknown[] | null;
|
|
89
|
+
Dns?: string[] | null;
|
|
90
|
+
DnsOptions?: string[] | null;
|
|
91
|
+
DnsSearch?: string[] | null;
|
|
92
|
+
ExtraHosts?: string[] | null;
|
|
93
|
+
GroupAdd?: string[] | null;
|
|
94
|
+
IpcMode?: string;
|
|
95
|
+
Init?: boolean;
|
|
96
|
+
LogConfig?: {
|
|
97
|
+
Type?: string;
|
|
98
|
+
Config?: Record<string, string>;
|
|
99
|
+
};
|
|
100
|
+
Memory?: number;
|
|
101
|
+
MemorySwap?: number;
|
|
102
|
+
MemorySwappiness?: number | null;
|
|
103
|
+
NetworkMode?: string;
|
|
104
|
+
NanoCpus?: number;
|
|
105
|
+
PidsLimit?: number | null;
|
|
106
|
+
PortBindings?: Record<string, unknown>;
|
|
107
|
+
PublishAllPorts?: boolean;
|
|
108
|
+
PidMode?: string;
|
|
109
|
+
Privileged?: boolean;
|
|
110
|
+
ReadonlyRootfs?: boolean;
|
|
111
|
+
RestartPolicy?: {
|
|
112
|
+
Name?: string;
|
|
113
|
+
};
|
|
114
|
+
SecurityOpt?: string[] | null;
|
|
115
|
+
ShmSize?: number;
|
|
116
|
+
Tmpfs?: Record<string, string>;
|
|
117
|
+
Mounts?: Array<{
|
|
118
|
+
Type?: string;
|
|
119
|
+
Source?: string;
|
|
120
|
+
Target?: string;
|
|
121
|
+
ReadOnly?: boolean;
|
|
122
|
+
VolumeOptions?: {
|
|
123
|
+
NoCopy?: boolean;
|
|
124
|
+
Subpath?: string;
|
|
125
|
+
};
|
|
126
|
+
}>;
|
|
127
|
+
};
|
|
128
|
+
Mounts?: Array<{
|
|
129
|
+
Type?: string;
|
|
130
|
+
Name?: string;
|
|
131
|
+
Destination?: string;
|
|
132
|
+
RW?: boolean;
|
|
133
|
+
}>;
|
|
134
|
+
NetworkSettings?: {
|
|
135
|
+
Networks?: Record<string, {
|
|
136
|
+
Aliases?: string[] | null;
|
|
137
|
+
DNSNames?: string[] | null;
|
|
138
|
+
Gateway?: string;
|
|
139
|
+
}>;
|
|
140
|
+
Ports?: Record<string, unknown>;
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
/** A registry digest reference (`[host[:port]/]path@sha256:<64 hex>`); no local image IDs, no tags. */
|
|
144
|
+
export declare function isRepositoryDigest(image: string): boolean;
|
|
145
|
+
/** Accepts a registry digest or Docker's content-addressed local image ID. */
|
|
146
|
+
export declare function isImmutableDockerImage(image: string): boolean;
|
|
147
|
+
export declare function isolationNames(runId: string): DockerIsolationNames;
|
|
148
|
+
export declare function buildIsolationNetworkCreateArgs(runId: string): string[];
|
|
149
|
+
export declare function buildStorageVolumeCreateArgs(spec: JobSpec): string[];
|
|
150
|
+
export declare function buildKeeperCreateArgs(spec: JobSpec): string[];
|
|
151
|
+
export declare function buildWorkerCreateArgs(spec: JobSpec, proxyPort?: number): string[];
|
|
152
|
+
/** The Claude agent sees the task/result and socket, never the repository workspace. */
|
|
153
|
+
export declare function buildClaudeAgentCreateArgs(spec: JobSpec, proxyPort?: number): string[];
|
|
154
|
+
/** The tool runner receives only the checkout and socket; it never joins the proxy network. */
|
|
155
|
+
export declare function buildClaudeToolRunnerCreateArgs(spec: JobSpec): string[];
|
|
156
|
+
export declare function buildProxyNetworkConnectArgs(runId: string, proxyContainer: string): string[];
|
|
157
|
+
export declare function buildDockerIsolationPlan(spec: JobSpec, proxyContainer: string): DockerIsolationPlan;
|
|
158
|
+
export declare function assertDockerHostSupportsIsolation(info: DockerHostInfo): void;
|
|
159
|
+
export declare function assertIsolationNetworkInspection(network: DockerNetworkInspection, runId: string): void;
|
|
160
|
+
export declare function assertIsolationNetworkParticipants(network: DockerNetworkInspection, expectedContainerNames: string[]): void;
|
|
161
|
+
export declare function assertStorageVolumeInspection(volume: DockerVolumeInspection, spec: JobSpec): void;
|
|
162
|
+
export declare function assertKeeperContainerInspection(container: DockerContainerInspection, spec: JobSpec): void;
|
|
163
|
+
export declare function assertProxyContainerInspection(container: DockerContainerInspection, runId: string): void;
|
|
164
|
+
export declare function assertWorkerContainerInspection(container: DockerContainerInspection, spec: JobSpec, expectedCapability: string): void;
|
|
165
|
+
export declare function assertClaudeAgentContainerInspection(container: DockerContainerInspection, spec: JobSpec, expectedCapability: string): void;
|
|
166
|
+
export declare function assertClaudeToolRunnerContainerInspection(container: DockerContainerInspection, spec: JobSpec): void;
|