@treeseed/sdk 0.11.0 → 0.12.4
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/README.md +9 -4
- package/dist/agent-capacity.d.ts +916 -0
- package/dist/agent-capacity.js +1600 -0
- package/dist/agent-tools.d.ts +37 -0
- package/dist/agent-tools.js +301 -0
- package/dist/api/app.d.ts +1 -1
- package/dist/api/auth/d1-database.d.ts +2 -2
- package/dist/api/auth/d1-provider.d.ts +4 -4
- package/dist/api/auth/d1-store.d.ts +2 -2
- package/dist/api/auth/memory-provider.d.ts +1 -1
- package/dist/api/auth/tokens.d.ts +1 -1
- package/dist/api/config.d.ts +3 -1
- package/dist/api/config.js +34 -10
- package/dist/api/http.d.ts +2 -2
- package/dist/api/index.d.ts +10 -10
- package/dist/api/index.js +4 -2
- package/dist/api/operations-routes.d.ts +3 -3
- package/dist/api/operations.d.ts +1 -1
- package/dist/api/providers.d.ts +1 -1
- package/dist/api/providers.js +21 -4
- package/dist/api/railway.d.ts +3 -2
- package/dist/api/sdk-dispatch.d.ts +4 -4
- package/dist/api/sdk-routes.d.ts +2 -2
- package/dist/api/templates.d.ts +2 -2
- package/dist/api/types.d.ts +3 -2
- package/dist/capacity-provider.d.ts +117 -60
- package/dist/capacity-provider.js +215 -43
- package/dist/capacity.d.ts +2 -2
- package/dist/cli-tools.d.ts +1 -1
- package/dist/content-operations.d.ts +97 -0
- package/dist/content-operations.js +250 -0
- package/dist/content-store.d.ts +4 -4
- package/dist/control-plane-client.d.ts +13 -18
- package/dist/control-plane-client.js +8 -86
- package/dist/control-plane.d.ts +2 -2
- package/dist/copilot.d.ts +3 -0
- package/dist/copilot.js +16 -1
- package/dist/d1-http.d.ts +1 -1
- package/dist/d1-store.d.ts +32 -57
- package/dist/d1-store.js +115 -318
- package/dist/db/d1.d.ts +1 -232
- package/dist/db/index.d.ts +3 -3
- package/dist/db/market-schema.d.ts +49037 -11843
- package/dist/db/market-schema.js +1788 -50
- package/dist/db/node-sqlite.d.ts +1 -232
- package/dist/db/schema.d.ts +0 -462
- package/dist/db/schema.js +2 -22
- package/dist/dispatch.d.ts +1 -1
- package/dist/dispatch.js +0 -11
- package/dist/fixture-support.js +52 -4
- package/dist/governance.d.ts +133 -0
- package/dist/governance.js +285 -0
- package/dist/graph/build.d.ts +2 -2
- package/dist/graph/context-query-contracts.d.ts +1 -1
- package/dist/graph/dsl.d.ts +1 -1
- package/dist/graph/query.d.ts +4 -4
- package/dist/graph/ranking.d.ts +1 -1
- package/dist/graph/schema.d.ts +1 -1
- package/dist/graph.d.ts +11 -11
- package/dist/guarantees/index.d.ts +425 -0
- package/dist/guarantees/index.js +1146 -0
- package/dist/hosting/apps.d.ts +1 -1
- package/dist/hosting/builtins.d.ts +1 -1
- package/dist/hosting/builtins.js +9 -198
- package/dist/hosting/contracts.d.ts +3 -2
- package/dist/hosting/graph.d.ts +24 -21
- package/dist/hosting/graph.js +280 -294
- package/dist/hosting/index.d.ts +4 -4
- package/dist/index.d.ts +88 -74
- package/dist/index.js +81 -10
- package/dist/local-dev/managed-dev.d.ts +85 -0
- package/dist/local-dev/managed-dev.js +368 -0
- package/dist/managed-dependencies.d.ts +9 -0
- package/dist/managed-dependencies.js +10 -8
- package/dist/market-client.d.ts +265 -7
- package/dist/market-client.js +381 -9
- package/dist/model-registry.d.ts +1 -1
- package/dist/model-registry.js +19 -19
- package/dist/operations/agent-tools.d.ts +2 -11
- package/dist/operations/agent-tools.js +2 -14
- package/dist/operations/providers/default.d.ts +1 -1
- package/dist/operations/providers/default.js +20 -37
- package/dist/operations/repository-operations.d.ts +26 -2
- package/dist/operations/repository-operations.js +159 -1
- package/dist/operations/runtime.d.ts +3 -3
- package/dist/operations/services/bootstrap-runner.d.ts +1 -1
- package/dist/operations/services/build-warning-policy.d.ts +34 -0
- package/dist/operations/services/build-warning-policy.js +81 -82
- package/dist/operations/services/commit-message-provider.js +4 -4
- package/dist/operations/services/config-runtime.d.ts +73 -19
- package/dist/operations/services/config-runtime.js +276 -100
- package/dist/operations/services/deploy.d.ts +41 -622
- package/dist/operations/services/deploy.js +181 -213
- package/dist/operations/services/deployment-readiness.d.ts +1 -1
- package/dist/operations/services/deployment-readiness.js +38 -7
- package/dist/operations/services/git-remote-policy.js +12 -4
- package/dist/operations/services/git-runner.d.ts +66 -0
- package/dist/operations/services/git-runner.js +479 -0
- package/dist/operations/services/git-workflow.d.ts +43 -5
- package/dist/operations/services/git-workflow.js +242 -20
- package/dist/operations/services/github-actions-verification.d.ts +3 -1
- package/dist/operations/services/github-actions-verification.js +11 -3
- package/dist/operations/services/github-api.js +21 -5
- package/dist/operations/services/github-automation.d.ts +3 -3
- package/dist/operations/services/github-automation.js +15 -18
- package/dist/operations/services/github-credentials.js +2 -1
- package/dist/operations/services/hosted-service-checks.d.ts +19 -1
- package/dist/operations/services/hosted-service-checks.js +162 -11
- package/dist/operations/services/hosting-audit.d.ts +2 -2
- package/dist/operations/services/hosting-audit.js +7 -7
- package/dist/operations/services/hub-launch.d.ts +1 -1
- package/dist/operations/services/hub-provider-launch.d.ts +5 -5
- package/dist/operations/services/hub-provider-launch.js +19 -14
- package/dist/operations/services/live-hosted-service-checks.d.ts +2 -1
- package/dist/operations/services/live-hosted-service-checks.js +193 -80
- package/dist/operations/services/local-dev.js +0 -1
- package/dist/operations/services/managed-host-security.d.ts +1 -1
- package/dist/operations/services/managed-repositories.d.ts +37 -0
- package/dist/operations/services/managed-repositories.js +177 -0
- package/dist/operations/services/operations-runner-smoke.d.ts +3 -2
- package/dist/operations/services/operations-runner-smoke.js +22 -4
- package/dist/operations/services/package-adapters.d.ts +77 -2
- package/dist/operations/services/package-adapters.js +627 -56
- package/dist/operations/services/package-reference-policy.d.ts +12 -88
- package/dist/operations/services/package-reference-policy.js +81 -213
- package/dist/operations/services/project-host-operations.d.ts +4 -4
- package/dist/operations/services/project-platform.d.ts +19 -193
- package/dist/operations/services/project-platform.js +31 -103
- package/dist/operations/services/project-web-monitor.d.ts +2 -2
- package/dist/operations/services/project-web-monitor.js +97 -2
- package/dist/operations/services/railway-api.d.ts +36 -7
- package/dist/operations/services/railway-api.js +331 -100
- package/dist/operations/services/railway-deploy.d.ts +7 -95
- package/dist/operations/services/railway-deploy.js +334 -742
- package/dist/operations/services/release-history.js +3 -4
- package/dist/operations/services/release-proof-ledger.d.ts +13 -0
- package/dist/operations/services/release-proof-ledger.js +81 -0
- package/dist/operations/services/release-proof-planner.d.ts +48 -0
- package/dist/operations/services/release-proof-planner.js +195 -0
- package/dist/operations/services/release-proof-runner.d.ts +16 -0
- package/dist/operations/services/release-proof-runner.js +169 -0
- package/dist/operations/services/release-proof.d.ts +81 -0
- package/dist/operations/services/release-proof.js +79 -0
- package/dist/operations/services/repository-save-orchestrator.d.ts +6 -7
- package/dist/operations/services/repository-save-orchestrator.js +353 -174
- package/dist/operations/services/runtime-paths.d.ts +1 -3
- package/dist/operations/services/runtime-paths.js +0 -4
- package/dist/operations/services/runtime-tools.d.ts +1 -192
- package/dist/operations/services/runtime-tools.js +4 -444
- package/dist/operations/services/save-deploy-preflight.js +9 -1
- package/dist/operations/services/template-host-bindings.d.ts +2 -2
- package/dist/operations/services/template-host-bindings.js +3 -2
- package/dist/operations/services/template-registry.d.ts +6 -6
- package/dist/operations/services/template-registry.js +33 -14
- package/dist/operations/services/template-secret-sync.d.ts +3 -3
- package/dist/operations/services/workflow-timing.d.ts +25 -0
- package/dist/operations/services/workflow-timing.js +79 -0
- package/dist/operations/services/workspace-dependency-mode.js +41 -4
- package/dist/operations/services/workspace-preflight.js +8 -8
- package/dist/operations/services/workspace-save-script.d.ts +4 -4
- package/dist/operations/services/workspace-save.d.ts +1 -0
- package/dist/operations/services/workspace-save.js +41 -18
- package/dist/operations/services/workspace-tools.js +40 -6
- package/dist/operations-registry.d.ts +1 -1
- package/dist/operations-registry.js +5 -6
- package/dist/operations-types.d.ts +1 -1
- package/dist/operations.d.ts +17 -11
- package/dist/operations.js +57 -3
- package/dist/platform/book-export.js +2 -0
- package/dist/platform/books-data.d.ts +1 -1
- package/dist/platform/config.d.ts +27 -0
- package/dist/platform/config.js +100 -0
- package/dist/platform/content-runtime-source.d.ts +54 -0
- package/dist/platform/content-runtime-source.js +169 -0
- package/dist/platform/contracts.d.ts +6 -1
- package/dist/platform/deploy-config.d.ts +1 -1
- package/dist/platform/deploy-config.js +7 -1
- package/dist/platform/deploy-runtime.d.ts +1 -1
- package/dist/platform/desired-state.d.ts +63 -0
- package/dist/platform/desired-state.js +1021 -0
- package/dist/platform/env.yaml +414 -19
- package/dist/platform/environment.d.ts +2 -2
- package/dist/platform/environment.js +54 -22
- package/dist/platform/local-content-materialization.d.ts +9 -0
- package/dist/platform/local-content-materialization.js +212 -0
- package/dist/platform/plugin.d.ts +5 -5
- package/dist/platform/plugins/runtime.d.ts +3 -3
- package/dist/platform/plugins/runtime.js +62 -1
- package/dist/platform/plugins.d.ts +6 -6
- package/dist/platform/published-content-pipeline.d.ts +3 -3
- package/dist/platform/published-content-pipeline.js +5 -1
- package/dist/platform/published-content.d.ts +4 -3
- package/dist/platform/site-config-schema.d.ts +1 -0
- package/dist/platform/site-config-schema.js +4 -1
- package/dist/platform/tenant/runtime-config.d.ts +152 -2
- package/dist/platform/tenant-config.d.ts +1 -1
- package/dist/platform/utils/site-config-schema.d.ts +154 -0
- package/dist/platform/utils/site-config-schema.js +400 -461
- package/dist/platform-operation-store.d.ts +1 -1
- package/dist/plugin-default.d.ts +1 -1
- package/dist/plugin-default.js +27 -12
- package/dist/project-import.d.ts +91 -0
- package/dist/project-import.js +257 -0
- package/dist/project-workflow.d.ts +1 -1
- package/dist/reconcile/bootstrap-systems.d.ts +2 -2
- package/dist/reconcile/bootstrap-systems.js +3 -3
- package/dist/reconcile/builtin-adapters.d.ts +7 -1
- package/dist/reconcile/builtin-adapters.js +2924 -346
- package/dist/reconcile/contracts.d.ts +15 -2
- package/dist/reconcile/desired-state.d.ts +2 -193
- package/dist/reconcile/desired-state.js +24 -33
- package/dist/reconcile/engine.d.ts +60 -397
- package/dist/reconcile/engine.js +182 -18
- package/dist/reconcile/index.d.ts +10 -10
- package/dist/reconcile/live-acceptance.d.ts +22 -1
- package/dist/reconcile/live-acceptance.js +456 -44
- package/dist/reconcile/providers/docker-private.d.ts +54 -0
- package/dist/reconcile/providers/docker-private.js +101 -0
- package/dist/reconcile/providers/github-private.d.ts +65 -0
- package/dist/reconcile/providers/github-private.js +119 -0
- package/dist/reconcile/providers/local-private.d.ts +28 -0
- package/dist/reconcile/providers/local-private.js +75 -0
- package/dist/reconcile/providers/railway-iac.d.ts +66 -0
- package/dist/reconcile/providers/railway-iac.js +275 -0
- package/dist/reconcile/providers/release-private.d.ts +92 -0
- package/dist/reconcile/providers/release-private.js +152 -0
- package/dist/reconcile/registry.d.ts +2 -2
- package/dist/reconcile/registry.js +16 -1
- package/dist/reconcile/state.d.ts +1 -1
- package/dist/reconcile/state.js +3 -40
- package/dist/reconcile/units.d.ts +1 -1
- package/dist/reconcile/units.js +7 -1
- package/dist/remote.d.ts +6 -6
- package/dist/scenes/artifacts.d.ts +16 -0
- package/dist/scenes/artifacts.js +61 -0
- package/dist/scenes/auth.d.ts +2 -0
- package/dist/scenes/auth.js +28 -0
- package/dist/scenes/base-url.d.ts +12 -0
- package/dist/scenes/base-url.js +123 -0
- package/dist/scenes/builtin-plugins.d.ts +2 -0
- package/dist/scenes/builtin-plugins.js +447 -0
- package/dist/scenes/checkpoints.d.ts +14 -0
- package/dist/scenes/checkpoints.js +33 -0
- package/dist/scenes/device-matrix.d.ts +2 -0
- package/dist/scenes/device-matrix.js +97 -0
- package/dist/scenes/devices.d.ts +11 -0
- package/dist/scenes/devices.js +22 -0
- package/dist/scenes/diagnostics.d.ts +5 -0
- package/dist/scenes/diagnostics.js +22 -0
- package/dist/scenes/diagram-providers.d.ts +2 -0
- package/dist/scenes/diagram-providers.js +181 -0
- package/dist/scenes/diagram-validation.d.ts +22 -0
- package/dist/scenes/diagram-validation.js +74 -0
- package/dist/scenes/environment.d.ts +2 -0
- package/dist/scenes/environment.js +65 -0
- package/dist/scenes/evidence-bundle.d.ts +5 -0
- package/dist/scenes/evidence-bundle.js +42 -0
- package/dist/scenes/evidence-report.d.ts +10 -0
- package/dist/scenes/evidence-report.js +73 -0
- package/dist/scenes/evidence.d.ts +16 -0
- package/dist/scenes/evidence.js +277 -0
- package/dist/scenes/index.d.ts +48 -0
- package/dist/scenes/index.js +312 -0
- package/dist/scenes/inspect.d.ts +9 -0
- package/dist/scenes/inspect.js +64 -0
- package/dist/scenes/loader.d.ts +3 -0
- package/dist/scenes/loader.js +38 -0
- package/dist/scenes/logs.d.ts +2 -0
- package/dist/scenes/logs.js +47 -0
- package/dist/scenes/operations.d.ts +3 -0
- package/dist/scenes/operations.js +128 -0
- package/dist/scenes/phase0.d.ts +9 -0
- package/dist/scenes/phase0.js +637 -0
- package/dist/scenes/planner.d.ts +12 -0
- package/dist/scenes/planner.js +166 -0
- package/dist/scenes/playwright-adapter.d.ts +2 -0
- package/dist/scenes/playwright-adapter.js +63 -0
- package/dist/scenes/plugins.d.ts +5 -0
- package/dist/scenes/plugins.js +115 -0
- package/dist/scenes/progress.d.ts +17 -0
- package/dist/scenes/progress.js +24 -0
- package/dist/scenes/publish-destinations.d.ts +12 -0
- package/dist/scenes/publish-destinations.js +99 -0
- package/dist/scenes/publish-plan-report.d.ts +10 -0
- package/dist/scenes/publish-plan-report.js +70 -0
- package/dist/scenes/publish-plan.d.ts +15 -0
- package/dist/scenes/publish-plan.js +248 -0
- package/dist/scenes/publish-redaction.d.ts +16 -0
- package/dist/scenes/publish-redaction.js +148 -0
- package/dist/scenes/publish-release-record.d.ts +13 -0
- package/dist/scenes/publish-release-record.js +34 -0
- package/dist/scenes/publish-report.d.ts +10 -0
- package/dist/scenes/publish-report.js +67 -0
- package/dist/scenes/publish.d.ts +16 -0
- package/dist/scenes/publish.js +298 -0
- package/dist/scenes/registry.d.ts +12 -0
- package/dist/scenes/registry.js +65 -0
- package/dist/scenes/remotion-adapter.d.ts +3 -0
- package/dist/scenes/remotion-adapter.js +94 -0
- package/dist/scenes/remotion-composition-registry.d.ts +2 -0
- package/dist/scenes/remotion-composition-registry.js +12 -0
- package/dist/scenes/remotion-compositions.d.ts +15 -0
- package/dist/scenes/remotion-compositions.js +464 -0
- package/dist/scenes/remotion-diagrams.d.ts +9 -0
- package/dist/scenes/remotion-diagrams.js +188 -0
- package/dist/scenes/remotion-input.d.ts +13 -0
- package/dist/scenes/remotion-input.js +291 -0
- package/dist/scenes/remotion-visuals.d.ts +29 -0
- package/dist/scenes/remotion-visuals.js +198 -0
- package/dist/scenes/render-media-assets.d.ts +9 -0
- package/dist/scenes/render-media-assets.js +117 -0
- package/dist/scenes/render-report.d.ts +10 -0
- package/dist/scenes/render-report.js +27 -0
- package/dist/scenes/render.d.ts +2 -0
- package/dist/scenes/render.js +218 -0
- package/dist/scenes/reporter.d.ts +3 -0
- package/dist/scenes/reporter.js +101 -0
- package/dist/scenes/resume.d.ts +2 -0
- package/dist/scenes/resume.js +79 -0
- package/dist/scenes/runner.d.ts +2 -0
- package/dist/scenes/runner.js +674 -0
- package/dist/scenes/schema.d.ts +6 -0
- package/dist/scenes/schema.js +994 -0
- package/dist/scenes/seed.d.ts +2 -0
- package/dist/scenes/seed.js +83 -0
- package/dist/scenes/segments.d.ts +15 -0
- package/dist/scenes/segments.js +79 -0
- package/dist/scenes/selectors.d.ts +3 -0
- package/dist/scenes/selectors.js +21 -0
- package/dist/scenes/timeline.d.ts +11 -0
- package/dist/scenes/timeline.js +26 -0
- package/dist/scenes/timeouts.d.ts +6 -0
- package/dist/scenes/timeouts.js +17 -0
- package/dist/scenes/training-captions.d.ts +14 -0
- package/dist/scenes/training-captions.js +98 -0
- package/dist/scenes/training-report.d.ts +10 -0
- package/dist/scenes/training-report.js +78 -0
- package/dist/scenes/training-transcript.d.ts +24 -0
- package/dist/scenes/training-transcript.js +204 -0
- package/dist/scenes/training.d.ts +10 -0
- package/dist/scenes/training.js +134 -0
- package/dist/scenes/types.d.ts +1872 -0
- package/dist/scenes/types.js +8 -0
- package/dist/scenes/visual-audit-contact-sheets.d.ts +6 -0
- package/dist/scenes/visual-audit-contact-sheets.js +119 -0
- package/dist/scenes/visual-audit-fixtures.d.ts +25 -0
- package/dist/scenes/visual-audit-fixtures.js +210 -0
- package/dist/scenes/visual-audit-report.d.ts +11 -0
- package/dist/scenes/visual-audit-report.js +85 -0
- package/dist/scenes/visual-audit-review.d.ts +23 -0
- package/dist/scenes/visual-audit-review.js +829 -0
- package/dist/scenes/visual-audit-routes.d.ts +13 -0
- package/dist/scenes/visual-audit-routes.js +308 -0
- package/dist/scenes/visual-audit.d.ts +3 -0
- package/dist/scenes/visual-audit.js +596 -0
- package/dist/scripts/build-dist.js +154 -40
- package/dist/scripts/check-build-warnings.js +42 -53
- package/dist/scripts/cleanup-markdown.js +1 -1
- package/dist/scripts/cli-test-fixtures.js +24 -28
- package/dist/scripts/migrate-journey-csv-to-guarantees.js +140 -0
- package/dist/scripts/package-tools.js +12 -1
- package/dist/scripts/prepare.js +3 -7
- package/dist/scripts/release-verify.js +2 -5
- package/dist/scripts/run-fixture-astro-command.js +1 -1
- package/dist/scripts/template-catalog.test.js +68 -82
- package/dist/scripts/tenant-dev.js +0 -10
- package/dist/scripts/test-cloudflare-local.js +1 -1
- package/dist/scripts/test-scaffold.js +0 -1
- package/dist/scripts/test-smoke.js +3 -3
- package/dist/scripts/treeseed-build-dist.js +4 -7
- package/dist/scripts/treeseed-release-verify.js +1 -1
- package/dist/scripts/verify-driver.js +30 -21
- package/dist/scripts/workflow-commands.test.js +18 -27
- package/dist/scripts/workspace-command-e2e.js +1 -1
- package/dist/scripts/workspace-lint.js +6 -0
- package/dist/scripts/workspace-release-test.js +90 -1
- package/dist/scripts/workspace-test.js +6 -0
- package/dist/sdk-dispatch.d.ts +1 -1
- package/dist/sdk-dispatch.js +0 -16
- package/dist/sdk-fields.d.ts +1 -1
- package/dist/sdk-filters.d.ts +1 -1
- package/dist/sdk-types.d.ts +1184 -113
- package/dist/sdk-types.js +393 -0
- package/dist/sdk.d.ts +74 -79
- package/dist/sdk.js +27 -36
- package/dist/secrets-capability.d.ts +421 -0
- package/dist/secrets-capability.js +530 -0
- package/dist/seeds/normalize.js +1 -0
- package/dist/seeds/planner.js +38 -0
- package/dist/seeds/schema.js +293 -4
- package/dist/seeds/types.d.ts +60 -0
- package/dist/seeds/types.js +9 -1
- package/dist/service-credentials.d.ts +54 -0
- package/dist/service-credentials.js +112 -0
- package/dist/stores/cursor-store.d.ts +2 -2
- package/dist/stores/envelopes.d.ts +1 -1
- package/dist/stores/helpers.d.ts +1 -1
- package/dist/stores/lease-store.d.ts +2 -2
- package/dist/stores/message-store.d.ts +2 -2
- package/dist/stores/operational-store.d.ts +3 -26
- package/dist/stores/operational-store.js +0 -225
- package/dist/stores/project-workflow-store.d.ts +2 -2
- package/dist/stores/run-store.d.ts +2 -3
- package/dist/stores/run-store.js +0 -98
- package/dist/stores/subscription-store.d.ts +2 -3
- package/dist/stores/subscription-store.js +0 -100
- package/dist/template-catalog.d.ts +1 -1
- package/dist/template-launch-requirements.d.ts +2 -2
- package/dist/template-launch-ui.d.ts +2 -2
- package/dist/treedx/adapters.d.ts +6 -6
- package/dist/treedx/client.d.ts +1 -1
- package/dist/treedx/errors.d.ts +1 -1
- package/dist/treedx/federated-client.d.ts +3 -3
- package/dist/treedx/graph-adapter.d.ts +2 -2
- package/dist/treedx/index.d.ts +14 -14
- package/dist/treedx/market-integration.d.ts +1 -1
- package/dist/treedx/ports.d.ts +30 -30
- package/dist/treedx/query-adapter.d.ts +3 -3
- package/dist/treedx/registry-client.d.ts +2 -2
- package/dist/treedx/repository-adapter.d.ts +4 -4
- package/dist/treedx/repository-adapter.js +14 -3
- package/dist/treedx/sdk-integration.d.ts +3 -3
- package/dist/treedx/types.d.ts +2 -2
- package/dist/treedx/workspace-adapter.d.ts +2 -2
- package/dist/treedx-backends.d.ts +13 -11
- package/dist/treedx-backends.js +52 -50
- package/dist/treedx-client.d.ts +3 -0
- package/dist/treedx-client.js +10 -1
- package/dist/treeseed/services/compose.yml +2 -3
- package/dist/treeseed/template-catalog/catalog.fixture.json +4 -4
- package/dist/types/agents.d.ts +256 -0
- package/dist/types/agents.js +42 -1
- package/dist/verification.d.ts +1 -0
- package/dist/verification.js +143 -14
- package/dist/workflow/operations.d.ts +510 -559
- package/dist/workflow/operations.js +1891 -1342
- package/dist/workflow/policy.js +19 -7
- package/dist/workflow/runs.d.ts +9 -3
- package/dist/workflow/runs.js +66 -26
- package/dist/workflow/session.d.ts +4 -1
- package/dist/workflow/session.js +50 -10
- package/dist/workflow/worktrees.d.ts +6 -2
- package/dist/workflow/worktrees.js +98 -15
- package/dist/workflow-state.d.ts +5 -5
- package/dist/workflow-state.js +27 -17
- package/dist/workflow-support.d.ts +26 -25
- package/dist/workflow-support.js +27 -31
- package/dist/workflow.d.ts +46 -16
- package/dist/workflow.js +19 -7
- package/drizzle/d1/0000_treeseed_d1.sql +0 -18
- package/drizzle/market/0000_market_control_plane.sql +1793 -1499
- package/drizzle/market/0005_agent_capacity_coordination.sql +145 -0
- package/drizzle/market/0006_provider_assignment_lifecycle.sql +9 -0
- package/drizzle/market/0007_agent_architecture_gap_closure.sql +157 -0
- package/drizzle/market/0008_agent_capacity_operational_closure.sql +27 -0
- package/drizzle/market/0009_agent_capacity_runtime_hardening.sql +29 -0
- package/drizzle/market/0010_secrets_capability_persistence.sql +130 -0
- package/drizzle/market/0011_github_app_adapter.sql +47 -0
- package/drizzle/market/0012_workday_test_runs.sql +44 -0
- package/drizzle/market/0013_runtime_task_lifecycle.sql +39 -0
- package/drizzle/market/0014_governance_pipeline.sql +189 -0
- package/package.json +75 -18
- package/scripts/{verify-driver.mjs → verify-driver.ts} +19 -4
- package/templates/github/deploy-web.workflow.yml +12 -8
- package/dist/operations/services/mailpit-runtime.d.ts +0 -20
- package/dist/operations/services/mailpit-runtime.js +0 -67
- package/dist/operations/services/release-candidate.d.ts +0 -60
- package/dist/operations/services/release-candidate.js +0 -953
- package/dist/scripts/ensure-mailpit.js +0 -48
- package/dist/scripts/logs-mailpit.js +0 -2
- package/dist/scripts/run-ts.js +0 -45
- package/dist/scripts/stop-mailpit.js +0 -5
- package/dist/scripts/treeseed-run-ts.js +0 -45
|
@@ -2,6 +2,7 @@ import {
|
|
|
2
2
|
TREESEED_REMOTE_CONTRACT_HEADER,
|
|
3
3
|
TREESEED_REMOTE_CONTRACT_VERSION
|
|
4
4
|
} from "./remote.js";
|
|
5
|
+
import { parse as parseYaml } from "yaml";
|
|
5
6
|
import {
|
|
6
7
|
collectTreeseedConfigSeedValues,
|
|
7
8
|
collectTreeseedEnvironmentContext,
|
|
@@ -11,12 +12,19 @@ import {
|
|
|
11
12
|
const CAPACITY_PROVIDER_ENDPOINTS = {
|
|
12
13
|
register: "/v1/provider/register",
|
|
13
14
|
heartbeat: "/v1/provider/heartbeat",
|
|
15
|
+
checkIn: "/v1/provider/check-in",
|
|
16
|
+
sessions: "/v1/provider/sessions",
|
|
14
17
|
portfolio: "/v1/provider/portfolio",
|
|
15
18
|
workdays: "/v1/provider/workdays",
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
nextAssignment: "/v1/provider/assignments/next",
|
|
20
|
+
assignment: (assignmentId) => `/v1/provider/assignments/${encodeURIComponent(assignmentId)}`,
|
|
21
|
+
assignmentRenew: (assignmentId) => `/v1/provider/assignments/${encodeURIComponent(assignmentId)}/renew`,
|
|
22
|
+
assignmentReturn: (assignmentId) => `/v1/provider/assignments/${encodeURIComponent(assignmentId)}/return`,
|
|
23
|
+
assignmentComplete: (assignmentId) => `/v1/provider/assignments/${encodeURIComponent(assignmentId)}/complete`,
|
|
24
|
+
assignmentFail: (assignmentId) => `/v1/provider/assignments/${encodeURIComponent(assignmentId)}/fail`,
|
|
25
|
+
assignmentModeRuns: (assignmentId) => `/v1/provider/assignments/${encodeURIComponent(assignmentId)}/mode-runs`,
|
|
26
|
+
assignmentWorkflowOperationDispatch: (assignmentId, operationId) => `/v1/provider/assignments/${encodeURIComponent(assignmentId)}/workflow-operations/${encodeURIComponent(operationId)}/dispatch`,
|
|
27
|
+
assignmentExplanation: (assignmentId) => `/v1/provider/assignments/${encodeURIComponent(assignmentId)}/explanation`,
|
|
20
28
|
usage: "/v1/provider/usage",
|
|
21
29
|
reports: "/v1/provider/reports"
|
|
22
30
|
};
|
|
@@ -24,20 +32,23 @@ const CAPACITY_PROVIDER_SCOPES = [
|
|
|
24
32
|
"provider:register",
|
|
25
33
|
"provider:heartbeat",
|
|
26
34
|
"provider:portfolio:read",
|
|
27
|
-
"provider:
|
|
28
|
-
"provider:
|
|
35
|
+
"provider:assignments:read",
|
|
36
|
+
"provider:assignments:write",
|
|
29
37
|
"provider:usage:report",
|
|
30
38
|
"provider:reports:write",
|
|
31
39
|
"provider:capabilities:write"
|
|
32
40
|
];
|
|
33
41
|
const CAPACITY_PROVIDER_ENV_KEYS = [
|
|
42
|
+
"TREESEED_MANAGEMENT_API_URL",
|
|
34
43
|
"TREESEED_MARKET_URL",
|
|
44
|
+
"TREESEED_MARKET_ID",
|
|
35
45
|
"TREESEED_MANAGER_ID",
|
|
46
|
+
"TREESEED_CAPACITY_PROVIDER_ID",
|
|
47
|
+
"TREESEED_CAPACITY_PROVIDER_TEAM_ID",
|
|
36
48
|
"TREESEED_CAPACITY_PROVIDER_API_KEY",
|
|
37
49
|
"TREESEED_PROVIDER_HOST_DATA_DIR",
|
|
50
|
+
"TREESEED_HOST_CODEX_AUTH_FILE",
|
|
38
51
|
"TREESEED_PROVIDER_DATA_DIR",
|
|
39
|
-
"TREESEED_PROVIDER_API_PORT",
|
|
40
|
-
"TREESEED_PROVIDER_HOST_API_PORT",
|
|
41
52
|
"TREESEED_PROVIDER_ENVIRONMENT",
|
|
42
53
|
"TREESEED_PROVIDER_CAPABILITIES_FILE",
|
|
43
54
|
"TREESEED_PROVIDER_BUDGET_FILE",
|
|
@@ -48,9 +59,25 @@ const CAPACITY_PROVIDER_ENV_KEYS = [
|
|
|
48
59
|
"TREESEED_PROVIDER_STARTUP_MODE",
|
|
49
60
|
"TREESEED_CODEX_AUTH_FILE",
|
|
50
61
|
"TREESEED_CODEX_AUTH_JSON_B64",
|
|
51
|
-
"TREESEED_CODEX_AUTH_OVERWRITE"
|
|
62
|
+
"TREESEED_CODEX_AUTH_OVERWRITE",
|
|
63
|
+
"TREESEED_TREEDX_BASE_URL",
|
|
64
|
+
"TREESEED_TREEDX_URL",
|
|
65
|
+
"TREESEED_TREEDX_TOKEN",
|
|
66
|
+
"TREESEED_TREEDX_REPO_ID",
|
|
67
|
+
"TREESEED_TREEDX_REF",
|
|
68
|
+
"TREESEED_TREEDX_WORKSPACE_ID",
|
|
69
|
+
"TREESEED_TREEDX_JWT_ISSUER",
|
|
70
|
+
"TREESEED_TREEDX_JWT_AUDIENCE",
|
|
71
|
+
"TREESEED_TREEDX_JWT_HS256_SECRET",
|
|
72
|
+
"TREESEED_TREEDX_PROXY_ACTOR_ID",
|
|
73
|
+
"TREESEED_TREEDX_PROXY_TENANT_ID"
|
|
52
74
|
];
|
|
53
75
|
const CAPACITY_PROVIDER_DEPLOYMENT_SERVICE_ROLES = ["api", "manager", "runner"];
|
|
76
|
+
const DEFAULT_CAPACITY_PROVIDER_ROLE_IMAGES = {
|
|
77
|
+
api: "treeseed/agent-provider-api",
|
|
78
|
+
manager: "treeseed/agent-manager",
|
|
79
|
+
runner: "treeseed/agent-runner"
|
|
80
|
+
};
|
|
54
81
|
class CapacityProviderApiError extends Error {
|
|
55
82
|
constructor(message, status, payload) {
|
|
56
83
|
super(message);
|
|
@@ -185,14 +212,16 @@ function assertCapacityProviderPortfolioManifest(value) {
|
|
|
185
212
|
function resolveCapacityProviderEnvironment(input) {
|
|
186
213
|
const env = {
|
|
187
214
|
TREESEED_MARKET_URL: normalizeBaseUrl(input.marketUrl),
|
|
215
|
+
TREESEED_MARKET_ID: input.marketId.trim(),
|
|
188
216
|
TREESEED_MANAGER_ID: input.marketId.trim(),
|
|
189
217
|
TREESEED_CAPACITY_PROVIDER_API_KEY: input.apiKey.trim(),
|
|
190
218
|
TREESEED_PROVIDER_DATA_DIR: input.providerDataDir ?? "/data",
|
|
191
|
-
TREESEED_PROVIDER_API_PORT: stringValue(input.providerApiPort, "3100"),
|
|
192
219
|
TREESEED_PROVIDER_ENVIRONMENT: input.providerEnvironment ?? "local"
|
|
193
220
|
};
|
|
194
|
-
|
|
221
|
+
env.TREESEED_MANAGEMENT_API_URL = env.TREESEED_MARKET_URL || "https://api.treeseed.dev";
|
|
195
222
|
if (!env.TREESEED_CAPACITY_PROVIDER_API_KEY) throw new Error("Capacity provider API key is required.");
|
|
223
|
+
if (input.providerId) env.TREESEED_CAPACITY_PROVIDER_ID = input.providerId;
|
|
224
|
+
if (input.teamId) env.TREESEED_CAPACITY_PROVIDER_TEAM_ID = input.teamId;
|
|
196
225
|
if (input.providerHostDataDir) env.TREESEED_PROVIDER_HOST_DATA_DIR = input.providerHostDataDir;
|
|
197
226
|
if (input.capabilitiesFile) env.TREESEED_PROVIDER_CAPABILITIES_FILE = input.capabilitiesFile;
|
|
198
227
|
if (input.budgetFile) env.TREESEED_PROVIDER_BUDGET_FILE = input.budgetFile;
|
|
@@ -235,12 +264,14 @@ function resolveCapacityProviderLaunchEnvironment(input = {}) {
|
|
|
235
264
|
const diagnostic = input.diagnostic === true || values.TREESEED_PROVIDER_STARTUP_MODE === "diagnostic";
|
|
236
265
|
const resolved = {
|
|
237
266
|
TREESEED_PROVIDER_DATA_DIR: "/data",
|
|
238
|
-
TREESEED_PROVIDER_API_PORT: "3100",
|
|
239
267
|
TREESEED_PROVIDER_ENVIRONMENT: scope,
|
|
240
268
|
...values
|
|
241
269
|
};
|
|
242
|
-
if (!resolved.
|
|
243
|
-
resolved.
|
|
270
|
+
if (!resolved.TREESEED_MARKET_ID && resolved.TREESEED_MANAGER_ID) {
|
|
271
|
+
resolved.TREESEED_MARKET_ID = resolved.TREESEED_MANAGER_ID;
|
|
272
|
+
}
|
|
273
|
+
if (!resolved.TREESEED_MANAGER_ID && resolved.TREESEED_MARKET_ID) {
|
|
274
|
+
resolved.TREESEED_MANAGER_ID = resolved.TREESEED_MARKET_ID;
|
|
244
275
|
}
|
|
245
276
|
if (!resolved.TREESEED_PROVIDER_HOST_DATA_DIR) {
|
|
246
277
|
resolved.TREESEED_PROVIDER_HOST_DATA_DIR = ".treeseed/local-capacity-provider/data";
|
|
@@ -249,8 +280,6 @@ function resolveCapacityProviderLaunchEnvironment(input = {}) {
|
|
|
249
280
|
resolved.TREESEED_PROVIDER_STARTUP_MODE = "diagnostic";
|
|
250
281
|
}
|
|
251
282
|
const required = [
|
|
252
|
-
"TREESEED_MARKET_URL",
|
|
253
|
-
"TREESEED_MANAGER_ID",
|
|
254
283
|
...diagnostic ? [] : ["TREESEED_CAPACITY_PROVIDER_API_KEY"],
|
|
255
284
|
"TREESEED_PROVIDER_HOST_DATA_DIR"
|
|
256
285
|
];
|
|
@@ -281,8 +310,12 @@ function persistCapacityProviderConnectionToTreeseedConfig(input) {
|
|
|
281
310
|
}
|
|
282
311
|
const entryById = new Map(registryEntries.map((entry) => [entry.id, entry]));
|
|
283
312
|
const keys = [
|
|
313
|
+
"TREESEED_MANAGEMENT_API_URL",
|
|
284
314
|
"TREESEED_MARKET_URL",
|
|
315
|
+
"TREESEED_MARKET_ID",
|
|
285
316
|
"TREESEED_MANAGER_ID",
|
|
317
|
+
"TREESEED_CAPACITY_PROVIDER_ID",
|
|
318
|
+
"TREESEED_CAPACITY_PROVIDER_TEAM_ID",
|
|
286
319
|
"TREESEED_CAPACITY_PROVIDER_API_KEY",
|
|
287
320
|
"TREESEED_PROVIDER_HOST_DATA_DIR",
|
|
288
321
|
"TREESEED_PROVIDER_ENVIRONMENT"
|
|
@@ -312,6 +345,63 @@ function redactCapacityProviderEnv(env) {
|
|
|
312
345
|
}
|
|
313
346
|
return redacted;
|
|
314
347
|
}
|
|
348
|
+
function manifestRecord(value) {
|
|
349
|
+
return value && typeof value === "object" && !Array.isArray(value) ? value : {};
|
|
350
|
+
}
|
|
351
|
+
function manifestRoleImage(role, manifest) {
|
|
352
|
+
const tag = manifest.runtime?.images?.tag ?? "latest";
|
|
353
|
+
const roleConfig = manifest.runtime?.images?.roles?.[role] ?? {};
|
|
354
|
+
const extension = manifest.extensions?.[role];
|
|
355
|
+
if (extension?.enabled && extension.image) {
|
|
356
|
+
return `${extension.image}:${extension.tag ?? tag}`;
|
|
357
|
+
}
|
|
358
|
+
return `${roleConfig.image ?? DEFAULT_CAPACITY_PROVIDER_ROLE_IMAGES[role]}:${roleConfig.tag ?? tag}`;
|
|
359
|
+
}
|
|
360
|
+
function assertSafeCapacityProviderManifest(value) {
|
|
361
|
+
for (const [role, extension] of Object.entries(value.extensions ?? {})) {
|
|
362
|
+
if (!extension) continue;
|
|
363
|
+
for (const [key, entryValue] of Object.entries(extension.buildArgs ?? {})) {
|
|
364
|
+
if (entryValue === void 0 || entryValue === null || entryValue === "") continue;
|
|
365
|
+
if (isCapacityProviderSecretEnvKey(key) || /(?:tscp_|tsp_|sk-|ghp_|gho_|github_pat_)/u.test(String(entryValue))) {
|
|
366
|
+
throw new Error(`Capacity provider ${role} extension build arg ${key} looks secret-like. Store secrets in Treeseed config or the host secret manager instead.`);
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
function parseCapacityProviderLaunchManifest(source) {
|
|
372
|
+
const parsed = typeof source === "string" ? parseYaml(source) : source;
|
|
373
|
+
const record = manifestRecord(parsed);
|
|
374
|
+
if (record.schemaVersion !== 1) {
|
|
375
|
+
throw new Error("Capacity provider launch manifest schemaVersion must be 1.");
|
|
376
|
+
}
|
|
377
|
+
const manifest = record;
|
|
378
|
+
assertSafeCapacityProviderManifest(manifest);
|
|
379
|
+
return manifest;
|
|
380
|
+
}
|
|
381
|
+
function resolveCapacityProviderLaunchPlan(manifest) {
|
|
382
|
+
assertSafeCapacityProviderManifest(manifest);
|
|
383
|
+
const roleImages = {
|
|
384
|
+
api: manifestRoleImage("api", manifest),
|
|
385
|
+
manager: manifestRoleImage("manager", manifest),
|
|
386
|
+
runner: manifestRoleImage("runner", manifest)
|
|
387
|
+
};
|
|
388
|
+
const composeEnv = {
|
|
389
|
+
...manifest.provider?.dataDir ? { TREESEED_PROVIDER_HOST_DATA_DIR: manifest.provider.dataDir } : {},
|
|
390
|
+
...manifest.provider?.environment ? { TREESEED_PROVIDER_ENVIRONMENT: manifest.provider.environment } : {},
|
|
391
|
+
...manifest.provider?.market?.url ? { TREESEED_MARKET_URL: manifest.provider.market.url } : {},
|
|
392
|
+
...manifest.provider?.market?.id ? { TREESEED_MANAGER_ID: manifest.provider.market.id, TREESEED_MARKET_ID: manifest.provider.market.id } : {},
|
|
393
|
+
...manifest.runtime?.runners?.maxConcurrent ? { TREESEED_PROVIDER_MAX_CONCURRENT_RUNNERS: String(manifest.runtime.runners.maxConcurrent) } : {},
|
|
394
|
+
TREESEED_AGENT_API_IMAGE: roleImages.api,
|
|
395
|
+
TREESEED_AGENT_MANAGER_IMAGE: roleImages.manager,
|
|
396
|
+
TREESEED_AGENT_RUNNER_IMAGE: roleImages.runner
|
|
397
|
+
};
|
|
398
|
+
return {
|
|
399
|
+
manifest,
|
|
400
|
+
roleImages,
|
|
401
|
+
composeEnv,
|
|
402
|
+
redactedEnv: redactCapacityProviderEnv(composeEnv)
|
|
403
|
+
};
|
|
404
|
+
}
|
|
315
405
|
function renderCapacityProviderSelfHostInstructions(input) {
|
|
316
406
|
const env = resolveCapacityProviderEnvironment(input);
|
|
317
407
|
return {
|
|
@@ -338,7 +428,7 @@ function defaultProviderDeploymentAdapter(hostKind) {
|
|
|
338
428
|
role: spec.role,
|
|
339
429
|
serviceName: spec.serviceName,
|
|
340
430
|
serviceId: `${hostKind}:${spec.serviceName}`,
|
|
341
|
-
url:
|
|
431
|
+
url: null,
|
|
342
432
|
status: "deployed",
|
|
343
433
|
envRefs: Object.fromEntries(
|
|
344
434
|
Object.keys(spec.env).map((key) => [key, isCapacityProviderSecretEnvKey(key) ? `${spec.serviceName}:${key}` : spec.redactedEnv[key] ?? spec.env[key]])
|
|
@@ -348,7 +438,11 @@ function defaultProviderDeploymentAdapter(hostKind) {
|
|
|
348
438
|
};
|
|
349
439
|
}
|
|
350
440
|
async function deployCapacityProviderWithAdapter(input, launchMode, hostKind) {
|
|
351
|
-
const
|
|
441
|
+
const roleImageRefs = {
|
|
442
|
+
api: input.roleImageRefs?.api ?? input.imageRef ?? input.intent.imageRef ?? "treeseed/agent-provider-api:latest",
|
|
443
|
+
manager: input.roleImageRefs?.manager ?? input.imageRef ?? input.intent.imageRef ?? "treeseed/agent-manager:latest",
|
|
444
|
+
runner: input.roleImageRefs?.runner ?? input.imageRef ?? input.intent.imageRef ?? "treeseed/agent-runner:latest"
|
|
445
|
+
};
|
|
352
446
|
const serviceNamePrefix = input.serviceNamePrefix ?? `${input.intent.capacityProviderId || "capacity-provider"}`.replace(/^cp[_-]?/u, "capacity-provider-").replace(/[^a-zA-Z0-9_.-]+/gu, "-");
|
|
353
447
|
const env = { ...input.env };
|
|
354
448
|
const redactedEnv = input.redactedEnv ?? redactCapacityProviderEnv(env);
|
|
@@ -360,7 +454,7 @@ async function deployCapacityProviderWithAdapter(input, launchMode, hostKind) {
|
|
|
360
454
|
const result = await adapter.provisionService({
|
|
361
455
|
role,
|
|
362
456
|
serviceName: providerDeploymentServiceName(serviceNamePrefix, role),
|
|
363
|
-
imageRef,
|
|
457
|
+
imageRef: roleImageRefs[role],
|
|
364
458
|
startCommand: providerDeploymentStartCommand(role),
|
|
365
459
|
env,
|
|
366
460
|
redactedEnv
|
|
@@ -379,7 +473,7 @@ async function deployCapacityProviderWithAdapter(input, launchMode, hostKind) {
|
|
|
379
473
|
ok: true,
|
|
380
474
|
launchMode,
|
|
381
475
|
hostKind,
|
|
382
|
-
|
|
476
|
+
roleImageRefs,
|
|
383
477
|
status: "deployed",
|
|
384
478
|
serviceRefs: services,
|
|
385
479
|
envRefs: Object.fromEntries(Object.keys(env).map((key) => [key, isCapacityProviderSecretEnvKey(key) ? "<host-secret>" : redactedEnv[key] ?? env[key]])),
|
|
@@ -392,7 +486,7 @@ async function deployCapacityProviderWithAdapter(input, launchMode, hostKind) {
|
|
|
392
486
|
ok: false,
|
|
393
487
|
launchMode,
|
|
394
488
|
hostKind,
|
|
395
|
-
|
|
489
|
+
roleImageRefs,
|
|
396
490
|
status: "failed",
|
|
397
491
|
serviceRefs: services,
|
|
398
492
|
envRefs: Object.fromEntries(Object.keys(env).map((key) => [key, isCapacityProviderSecretEnvKey(key) ? "<host-secret>" : redactedEnv[key] ?? env[key]])),
|
|
@@ -414,14 +508,15 @@ class MarketProviderClient {
|
|
|
414
508
|
apiKey;
|
|
415
509
|
fetchImpl;
|
|
416
510
|
userAgent;
|
|
511
|
+
requestTimeoutMs;
|
|
417
512
|
constructor(options) {
|
|
418
513
|
this.marketUrl = normalizeBaseUrl(options.marketUrl);
|
|
419
514
|
this.marketId = options.marketId.trim();
|
|
420
515
|
this.apiKey = options.apiKey.trim();
|
|
421
|
-
if (!this.marketId) throw new Error("Capacity provider Market ID is required.");
|
|
422
516
|
if (!this.apiKey) throw new Error("Capacity provider API key is required.");
|
|
423
517
|
this.fetchImpl = options.fetchImpl ?? fetch;
|
|
424
518
|
this.userAgent = options.userAgent;
|
|
519
|
+
this.requestTimeoutMs = Math.max(1e3, Number(options.requestTimeoutMs ?? 3e4) || 3e4);
|
|
425
520
|
}
|
|
426
521
|
async requestJson(path, options = {}) {
|
|
427
522
|
const headers = {
|
|
@@ -431,11 +526,22 @@ class MarketProviderClient {
|
|
|
431
526
|
};
|
|
432
527
|
if (this.userAgent) headers["user-agent"] = this.userAgent;
|
|
433
528
|
if (options.body !== void 0) headers["content-type"] = "application/json";
|
|
434
|
-
const
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
529
|
+
const controller = new AbortController();
|
|
530
|
+
const timeout = setTimeout(() => controller.abort(), this.requestTimeoutMs);
|
|
531
|
+
let response;
|
|
532
|
+
try {
|
|
533
|
+
response = await this.fetchImpl(`${this.marketUrl}${path}`, {
|
|
534
|
+
method: options.method ?? "GET",
|
|
535
|
+
headers,
|
|
536
|
+
body: options.body === void 0 ? void 0 : JSON.stringify(options.body),
|
|
537
|
+
signal: controller.signal
|
|
538
|
+
});
|
|
539
|
+
} catch (error) {
|
|
540
|
+
const message = error instanceof Error && error.name === "AbortError" ? `Capacity provider request timed out after ${this.requestTimeoutMs}ms: ${path}` : error instanceof Error ? error.message : String(error);
|
|
541
|
+
throw new CapacityProviderApiError(message, 0, { path, timeoutMs: this.requestTimeoutMs });
|
|
542
|
+
} finally {
|
|
543
|
+
clearTimeout(timeout);
|
|
544
|
+
}
|
|
439
545
|
const payload = await response.json().catch(() => ({}));
|
|
440
546
|
if (!response.ok) {
|
|
441
547
|
const message = isRecord(payload) && typeof payload.error === "string" ? payload.error : `Capacity provider request failed with ${response.status}.`;
|
|
@@ -444,23 +550,48 @@ class MarketProviderClient {
|
|
|
444
550
|
return payload;
|
|
445
551
|
}
|
|
446
552
|
register(request) {
|
|
553
|
+
const marketId = request.marketId ?? this.marketId;
|
|
554
|
+
const body = marketId ? { ...request, marketId } : request;
|
|
447
555
|
return this.requestJson(CAPACITY_PROVIDER_ENDPOINTS.register, {
|
|
448
556
|
method: "POST",
|
|
449
|
-
body
|
|
557
|
+
body
|
|
450
558
|
}).then((response) => {
|
|
451
559
|
assertCapacityProviderRegistrationResponse(response);
|
|
560
|
+
if (typeof response.sessionToken === "string" && response.sessionToken.trim()) {
|
|
561
|
+
this.apiKey = response.sessionToken.trim();
|
|
562
|
+
}
|
|
452
563
|
return response;
|
|
453
564
|
});
|
|
454
565
|
}
|
|
455
566
|
heartbeat(request = {}) {
|
|
567
|
+
const marketId = request.marketId ?? this.marketId;
|
|
568
|
+
const body = marketId ? { ...request, marketId } : request;
|
|
456
569
|
return this.requestJson(CAPACITY_PROVIDER_ENDPOINTS.heartbeat, {
|
|
457
570
|
method: "POST",
|
|
458
|
-
body
|
|
571
|
+
body
|
|
459
572
|
}).then((response) => {
|
|
460
573
|
assertCapacityProviderOkEnvelope(response, "Capacity provider heartbeat response");
|
|
461
574
|
return response;
|
|
462
575
|
});
|
|
463
576
|
}
|
|
577
|
+
createAvailabilitySession(request = {}) {
|
|
578
|
+
return this.requestJson(CAPACITY_PROVIDER_ENDPOINTS.sessions, {
|
|
579
|
+
method: "POST",
|
|
580
|
+
body: request
|
|
581
|
+
}).then((response) => {
|
|
582
|
+
assertCapacityProviderOkEnvelope(response, "Capacity provider availability session response");
|
|
583
|
+
return response;
|
|
584
|
+
});
|
|
585
|
+
}
|
|
586
|
+
checkIn(request = {}) {
|
|
587
|
+
return this.requestJson(CAPACITY_PROVIDER_ENDPOINTS.checkIn, {
|
|
588
|
+
method: "POST",
|
|
589
|
+
body: request
|
|
590
|
+
}).then((response) => {
|
|
591
|
+
assertCapacityProviderOkEnvelope(response, "Capacity provider check-in response");
|
|
592
|
+
return response;
|
|
593
|
+
});
|
|
594
|
+
}
|
|
464
595
|
portfolio() {
|
|
465
596
|
return this.requestJson(CAPACITY_PROVIDER_ENDPOINTS.portfolio).then((response) => {
|
|
466
597
|
assertCapacityProviderPortfolioManifest(response);
|
|
@@ -476,40 +607,78 @@ class MarketProviderClient {
|
|
|
476
607
|
return response;
|
|
477
608
|
});
|
|
478
609
|
}
|
|
479
|
-
|
|
480
|
-
return this.requestJson(CAPACITY_PROVIDER_ENDPOINTS.
|
|
610
|
+
assignment(assignmentId) {
|
|
611
|
+
return this.requestJson(CAPACITY_PROVIDER_ENDPOINTS.assignment(assignmentId)).then((response) => {
|
|
612
|
+
assertCapacityProviderOkEnvelope(response, "Capacity provider assignment response");
|
|
613
|
+
return response;
|
|
614
|
+
});
|
|
615
|
+
}
|
|
616
|
+
assignmentExplanation(assignmentId) {
|
|
617
|
+
return this.requestJson(CAPACITY_PROVIDER_ENDPOINTS.assignmentExplanation(assignmentId)).then((response) => {
|
|
618
|
+
assertCapacityProviderOkEnvelope(response, "Capacity provider assignment explanation response");
|
|
619
|
+
return response;
|
|
620
|
+
});
|
|
621
|
+
}
|
|
622
|
+
nextAssignment(request = {}) {
|
|
623
|
+
return this.requestJson(CAPACITY_PROVIDER_ENDPOINTS.nextAssignment, {
|
|
624
|
+
method: "POST",
|
|
625
|
+
body: request
|
|
626
|
+
}).then((response) => {
|
|
627
|
+
assertCapacityProviderOkEnvelope(response, "Capacity provider next assignment response");
|
|
628
|
+
return response;
|
|
629
|
+
});
|
|
630
|
+
}
|
|
631
|
+
renewAssignment(assignmentId, request = {}) {
|
|
632
|
+
return this.requestJson(CAPACITY_PROVIDER_ENDPOINTS.assignmentRenew(assignmentId), {
|
|
633
|
+
method: "POST",
|
|
634
|
+
body: request
|
|
635
|
+
}).then((response) => {
|
|
636
|
+
assertCapacityProviderOkEnvelope(response, "Capacity provider assignment renew response");
|
|
637
|
+
return response;
|
|
638
|
+
});
|
|
639
|
+
}
|
|
640
|
+
returnAssignment(assignmentId, request = {}) {
|
|
641
|
+
return this.requestJson(CAPACITY_PROVIDER_ENDPOINTS.assignmentReturn(assignmentId), {
|
|
642
|
+
method: "POST",
|
|
643
|
+
body: request
|
|
644
|
+
}).then((response) => {
|
|
645
|
+
assertCapacityProviderOkEnvelope(response, "Capacity provider assignment return response");
|
|
646
|
+
return response;
|
|
647
|
+
});
|
|
648
|
+
}
|
|
649
|
+
completeAssignment(assignmentId, request = {}) {
|
|
650
|
+
return this.requestJson(CAPACITY_PROVIDER_ENDPOINTS.assignmentComplete(assignmentId), {
|
|
481
651
|
method: "POST",
|
|
482
652
|
body: request
|
|
483
653
|
}).then((response) => {
|
|
484
|
-
assertCapacityProviderOkEnvelope(response, "Capacity provider
|
|
485
|
-
if (!Array.isArray(response.tasks)) throw new Error("Capacity provider task claim response is missing tasks.");
|
|
654
|
+
assertCapacityProviderOkEnvelope(response, "Capacity provider assignment complete response");
|
|
486
655
|
return response;
|
|
487
656
|
});
|
|
488
657
|
}
|
|
489
|
-
|
|
490
|
-
return this.requestJson(CAPACITY_PROVIDER_ENDPOINTS.
|
|
658
|
+
failAssignment(assignmentId, request = {}) {
|
|
659
|
+
return this.requestJson(CAPACITY_PROVIDER_ENDPOINTS.assignmentFail(assignmentId), {
|
|
491
660
|
method: "POST",
|
|
492
661
|
body: request
|
|
493
662
|
}).then((response) => {
|
|
494
|
-
assertCapacityProviderOkEnvelope(response, "Capacity provider
|
|
663
|
+
assertCapacityProviderOkEnvelope(response, "Capacity provider assignment fail response");
|
|
495
664
|
return response;
|
|
496
665
|
});
|
|
497
666
|
}
|
|
498
|
-
|
|
499
|
-
return this.requestJson(CAPACITY_PROVIDER_ENDPOINTS.
|
|
667
|
+
createAssignmentModeRun(assignmentId, request) {
|
|
668
|
+
return this.requestJson(CAPACITY_PROVIDER_ENDPOINTS.assignmentModeRuns(assignmentId), {
|
|
500
669
|
method: "POST",
|
|
501
670
|
body: request
|
|
502
671
|
}).then((response) => {
|
|
503
|
-
assertCapacityProviderOkEnvelope(response, "Capacity provider
|
|
672
|
+
assertCapacityProviderOkEnvelope(response, "Capacity provider mode run response");
|
|
504
673
|
return response;
|
|
505
674
|
});
|
|
506
675
|
}
|
|
507
|
-
|
|
508
|
-
return this.requestJson(CAPACITY_PROVIDER_ENDPOINTS.
|
|
676
|
+
dispatchAssignmentWorkflowOperation(assignmentId, operationId, request) {
|
|
677
|
+
return this.requestJson(CAPACITY_PROVIDER_ENDPOINTS.assignmentWorkflowOperationDispatch(assignmentId, operationId), {
|
|
509
678
|
method: "POST",
|
|
510
679
|
body: request
|
|
511
680
|
}).then((response) => {
|
|
512
|
-
assertCapacityProviderOkEnvelope(response, "Capacity provider
|
|
681
|
+
assertCapacityProviderOkEnvelope(response, "Capacity provider workflow operation dispatch response");
|
|
513
682
|
return response;
|
|
514
683
|
});
|
|
515
684
|
}
|
|
@@ -538,6 +707,7 @@ export {
|
|
|
538
707
|
CAPACITY_PROVIDER_ENV_KEYS,
|
|
539
708
|
CAPACITY_PROVIDER_SCOPES,
|
|
540
709
|
CapacityProviderApiError,
|
|
710
|
+
DEFAULT_CAPACITY_PROVIDER_ROLE_IMAGES,
|
|
541
711
|
MarketProviderClient,
|
|
542
712
|
assertCapacityProviderOkEnvelope,
|
|
543
713
|
assertCapacityProviderPortfolioManifest,
|
|
@@ -546,10 +716,12 @@ export {
|
|
|
546
716
|
deployCapacityProviderToManagedMarketHost,
|
|
547
717
|
deployCapacityProviderToRailway,
|
|
548
718
|
isCapacityProviderSecretEnvKey,
|
|
719
|
+
parseCapacityProviderLaunchManifest,
|
|
549
720
|
persistCapacityProviderConnectionToTreeseedConfig,
|
|
550
721
|
redactCapacityProviderEnv,
|
|
551
722
|
redactCapacityProviderSecret,
|
|
552
723
|
renderCapacityProviderSelfHostInstructions,
|
|
553
724
|
resolveCapacityProviderEnvironment,
|
|
554
|
-
resolveCapacityProviderLaunchEnvironment
|
|
725
|
+
resolveCapacityProviderLaunchEnvironment,
|
|
726
|
+
resolveCapacityProviderLaunchPlan
|
|
555
727
|
};
|
package/dist/capacity.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { AttentionEstimate, AttentionPolicy, CapacityEstimateConfidence, CapacityGrant, CapacityPlan, CapacityProvider, CapacityProviderLane, CapacityReservation, CreditConversionProfile, CreateCapacityReservationRequest, CreateCapacityRoutingDecisionRequest, DerivedCapacityAvailability, DerivedCapacityInput, ExecutionProfile, HybridExecutionPlan, NativeUsageObservation, PlannedTaskNode, PlanningAdmissionResult, PlanningPolicy, PredictiveReservePolicy, ProjectEnvironmentName, RecordCapacityUsageRequest, ReservePrediction, TaskAdmissionDecision, TaskAdmissionPolicy, TaskClassification, TaskEstimateProfile, TaskPlanProposal, TaskMutationScope, TaskUsageActual, UtilityEstimate, UtilityPolicy, WorkdayBudgetEnvelope } from './sdk-types.
|
|
2
|
-
import type { AgentProviderProfile } from './types/agents.
|
|
1
|
+
import type { AttentionEstimate, AttentionPolicy, CapacityEstimateConfidence, CapacityGrant, CapacityPlan, CapacityProvider, CapacityProviderLane, CapacityReservation, CreditConversionProfile, CreateCapacityReservationRequest, CreateCapacityRoutingDecisionRequest, DerivedCapacityAvailability, DerivedCapacityInput, ExecutionProfile, HybridExecutionPlan, NativeUsageObservation, PlannedTaskNode, PlanningAdmissionResult, PlanningPolicy, PredictiveReservePolicy, ProjectEnvironmentName, RecordCapacityUsageRequest, ReservePrediction, TaskAdmissionDecision, TaskAdmissionPolicy, TaskClassification, TaskEstimateProfile, TaskPlanProposal, TaskMutationScope, TaskUsageActual, UtilityEstimate, UtilityPolicy, WorkdayBudgetEnvelope } from './sdk-types.js';
|
|
2
|
+
import type { AgentProviderProfile } from './types/agents.js';
|
|
3
3
|
export declare const ACTUAL_CREDIT_FORMULA_VERSION = "treeseed.actual-credits.v1";
|
|
4
4
|
export interface ActualCreditCalculationInput {
|
|
5
5
|
nativeUsage?: NativeUsageObservation | Record<string, unknown> | null;
|
package/dist/cli-tools.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { AgentCliOptions } from './types/agents.
|
|
1
|
+
import type { AgentCliOptions } from './types/agents.js';
|
|
2
2
|
export declare function normalizeAgentCliOptions(input: unknown): AgentCliOptions;
|
|
3
3
|
export declare function buildCopilotAllowToolArgs(allowTools?: AgentCliOptions['allowTools']): string[];
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import type { SdkModelRegistry } from './sdk-types.js';
|
|
2
|
+
export type TreeseedContentAction = 'describe' | 'query' | 'read' | 'create' | 'update' | 'link' | 'validate' | 'commit';
|
|
3
|
+
export type TreeseedContentModel = 'page' | 'note' | 'question' | 'proposal' | 'decision' | 'book' | 'knowledge' | 'objective' | 'person' | 'agent';
|
|
4
|
+
export interface TreeseedContentRelationInput {
|
|
5
|
+
field: string;
|
|
6
|
+
targetModel?: TreeseedContentModel | string;
|
|
7
|
+
targetSlug: string;
|
|
8
|
+
}
|
|
9
|
+
export interface TreeseedContentPlacement {
|
|
10
|
+
bookSlug?: string;
|
|
11
|
+
parentPath?: string;
|
|
12
|
+
path?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface TreeseedContentOperationInput {
|
|
15
|
+
action: TreeseedContentAction;
|
|
16
|
+
model?: TreeseedContentModel | string;
|
|
17
|
+
id?: string;
|
|
18
|
+
slug?: string;
|
|
19
|
+
title?: string;
|
|
20
|
+
fields?: Record<string, unknown>;
|
|
21
|
+
body?: string;
|
|
22
|
+
query?: string;
|
|
23
|
+
filters?: unknown[];
|
|
24
|
+
relations?: TreeseedContentRelationInput[];
|
|
25
|
+
placement?: TreeseedContentPlacement;
|
|
26
|
+
commit?: {
|
|
27
|
+
enabled: boolean;
|
|
28
|
+
message?: string;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
export interface TreeseedContentRef {
|
|
32
|
+
model: TreeseedContentModel;
|
|
33
|
+
collection: string;
|
|
34
|
+
slug: string;
|
|
35
|
+
id?: string;
|
|
36
|
+
path?: string;
|
|
37
|
+
href?: string;
|
|
38
|
+
}
|
|
39
|
+
export interface TreeseedContentDiagnostic {
|
|
40
|
+
severity: 'info' | 'warning' | 'error';
|
|
41
|
+
code: string;
|
|
42
|
+
message: string;
|
|
43
|
+
field?: string;
|
|
44
|
+
}
|
|
45
|
+
export interface TreeseedContentOperationResult {
|
|
46
|
+
ok: true;
|
|
47
|
+
action: TreeseedContentAction;
|
|
48
|
+
refs: TreeseedContentRef[];
|
|
49
|
+
changedPaths?: string[];
|
|
50
|
+
diagnostics: TreeseedContentDiagnostic[];
|
|
51
|
+
payload?: Record<string, unknown>;
|
|
52
|
+
}
|
|
53
|
+
export interface RenderTreeseedContentInput {
|
|
54
|
+
model: TreeseedContentModel | string;
|
|
55
|
+
slug?: string;
|
|
56
|
+
title?: string;
|
|
57
|
+
fields?: Record<string, unknown>;
|
|
58
|
+
body?: string;
|
|
59
|
+
relations?: TreeseedContentRelationInput[];
|
|
60
|
+
placement?: TreeseedContentPlacement;
|
|
61
|
+
existingFrontmatter?: Record<string, unknown>;
|
|
62
|
+
registry?: SdkModelRegistry;
|
|
63
|
+
now?: string;
|
|
64
|
+
}
|
|
65
|
+
export interface RenderedTreeseedContentRecord {
|
|
66
|
+
model: TreeseedContentModel;
|
|
67
|
+
collection: string;
|
|
68
|
+
slug: string;
|
|
69
|
+
path: string;
|
|
70
|
+
frontmatter: Record<string, unknown>;
|
|
71
|
+
body: string;
|
|
72
|
+
content: string;
|
|
73
|
+
ref: TreeseedContentRef;
|
|
74
|
+
diagnostics: TreeseedContentDiagnostic[];
|
|
75
|
+
}
|
|
76
|
+
export interface TreeseedContentToolPreset {
|
|
77
|
+
id: string;
|
|
78
|
+
action: TreeseedContentAction;
|
|
79
|
+
model?: TreeseedContentModel;
|
|
80
|
+
title: string;
|
|
81
|
+
description: string;
|
|
82
|
+
inputSchema: Record<string, unknown>;
|
|
83
|
+
}
|
|
84
|
+
export declare const TREESEED_CONTENT_ACTIONS: TreeseedContentAction[];
|
|
85
|
+
export declare const TREESEED_CONTENT_READ_ACTIONS: Set<TreeseedContentAction>;
|
|
86
|
+
export declare const TREESEED_CONTENT_WRITE_ACTIONS: Set<TreeseedContentAction>;
|
|
87
|
+
export declare function slugifyTreeseedContent(value: unknown): string;
|
|
88
|
+
export declare function renderTreeseedContentRecord(input: RenderTreeseedContentInput): RenderedTreeseedContentRecord;
|
|
89
|
+
export declare function validateTreeseedContentRecord(model: string, source: string, registry?: SdkModelRegistry): {
|
|
90
|
+
ok: boolean;
|
|
91
|
+
frontmatter: Record<string, unknown>;
|
|
92
|
+
body: string;
|
|
93
|
+
diagnostics: TreeseedContentDiagnostic[];
|
|
94
|
+
};
|
|
95
|
+
export declare function genericTreeseedContentInputSchema(action: TreeseedContentAction): Record<string, unknown>;
|
|
96
|
+
export declare function createTreeseedContentToolPresets(registry?: SdkModelRegistry): TreeseedContentToolPreset[];
|
|
97
|
+
export declare function findTreeseedContentToolPreset(id: string, registry?: SdkModelRegistry): TreeseedContentToolPreset | null;
|