@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
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { type TreeseedTimingEntry } from '../../timing.
|
|
2
|
-
import { type ControlPlaneReporter } from '../../control-plane.
|
|
3
|
-
import type { TreeseedRunnableBootstrapSystem } from '../../reconcile/index.
|
|
4
|
-
import { type TreeseedBootstrapExecution, type TreeseedBootstrapWriter } from './bootstrap-runner.
|
|
1
|
+
import { type TreeseedTimingEntry } from '../../timing.js';
|
|
2
|
+
import { type ControlPlaneReporter } from '../../control-plane.js';
|
|
3
|
+
import type { TreeseedRunnableBootstrapSystem } from '../../reconcile/index.js';
|
|
4
|
+
import { type TreeseedBootstrapExecution, type TreeseedBootstrapWriter } from './bootstrap-runner.js';
|
|
5
5
|
export type ProjectPlatformScope = 'local' | 'staging' | 'prod';
|
|
6
6
|
export type ProjectPlatformAction = 'deploy_web' | 'publish_content' | 'monitor';
|
|
7
7
|
type ProjectPlatformContentPublishMode = 'production' | 'editorial_overlay';
|
|
@@ -55,27 +55,27 @@ export declare function provisionProjectPlatform(options: ProjectPlatformActionO
|
|
|
55
55
|
scope: ProjectPlatformScope;
|
|
56
56
|
target: any;
|
|
57
57
|
summary: {
|
|
58
|
-
target: import("../../reconcile/contracts.
|
|
59
|
-
units: import("../../reconcile/contracts.
|
|
60
|
-
plans: import("../../reconcile/contracts.
|
|
61
|
-
results: import("../../reconcile/contracts.
|
|
62
|
-
state: import("../../reconcile/contracts.
|
|
58
|
+
target: import("../../reconcile/contracts.js").TreeseedReconcileTarget;
|
|
59
|
+
units: import("../../reconcile/contracts.js").TreeseedDesiredUnit[];
|
|
60
|
+
plans: import("../../reconcile/contracts.js").TreeseedReconcilePlan[];
|
|
61
|
+
results: import("../../reconcile/contracts.js").TreeseedReconcileResult[];
|
|
62
|
+
state: import("../../reconcile/contracts.js").TreeseedReconcileStateRecord;
|
|
63
63
|
timings: TreeseedTimingEntry[];
|
|
64
64
|
};
|
|
65
65
|
verification: {
|
|
66
|
-
target: import("../../reconcile/contracts.
|
|
66
|
+
target: import("../../reconcile/contracts.js").TreeseedReconcileTarget;
|
|
67
67
|
ready: boolean;
|
|
68
68
|
blockers: string[];
|
|
69
69
|
warnings: string[];
|
|
70
70
|
units: {
|
|
71
71
|
unitId: string;
|
|
72
|
-
unitType: import("../../reconcile/contracts.
|
|
72
|
+
unitType: import("../../reconcile/contracts.js").TreeseedReconcileUnitType;
|
|
73
73
|
provider: string;
|
|
74
|
-
status: import("../../reconcile/contracts.
|
|
74
|
+
status: import("../../reconcile/contracts.js").TreeseedReconcileStatusKind;
|
|
75
75
|
exists: boolean;
|
|
76
76
|
locators: Record<string, string | null>;
|
|
77
77
|
warnings: string[];
|
|
78
|
-
verification: import("../../reconcile/contracts.
|
|
78
|
+
verification: import("../../reconcile/contracts.js").TreeseedUnitVerificationResult | null;
|
|
79
79
|
}[];
|
|
80
80
|
};
|
|
81
81
|
timings: TreeseedTimingEntry[];
|
|
@@ -163,39 +163,6 @@ export declare function deployProjectPlatform(options: ProjectPlatformActionOpti
|
|
|
163
163
|
skipped: boolean;
|
|
164
164
|
reason: string;
|
|
165
165
|
};
|
|
166
|
-
queue: {
|
|
167
|
-
ok: boolean;
|
|
168
|
-
skipped: boolean;
|
|
169
|
-
reason: string;
|
|
170
|
-
messageId?: undefined;
|
|
171
|
-
detail?: undefined;
|
|
172
|
-
attempts?: undefined;
|
|
173
|
-
} | {
|
|
174
|
-
ok: boolean;
|
|
175
|
-
skipped: boolean;
|
|
176
|
-
reason: string;
|
|
177
|
-
messageId: string;
|
|
178
|
-
detail: string;
|
|
179
|
-
attempts?: undefined;
|
|
180
|
-
} | {
|
|
181
|
-
ok: boolean;
|
|
182
|
-
reason: string;
|
|
183
|
-
skipped?: undefined;
|
|
184
|
-
messageId?: undefined;
|
|
185
|
-
detail?: undefined;
|
|
186
|
-
attempts?: undefined;
|
|
187
|
-
} | {
|
|
188
|
-
ok: boolean;
|
|
189
|
-
messageId: string;
|
|
190
|
-
attempts: number;
|
|
191
|
-
skipped?: undefined;
|
|
192
|
-
reason?: undefined;
|
|
193
|
-
detail?: undefined;
|
|
194
|
-
} | {
|
|
195
|
-
ok: boolean;
|
|
196
|
-
skipped: boolean;
|
|
197
|
-
reason: string;
|
|
198
|
-
};
|
|
199
166
|
scaleProbe: {
|
|
200
167
|
ok: boolean;
|
|
201
168
|
mocked: boolean;
|
|
@@ -209,7 +176,7 @@ export declare function deployProjectPlatform(options: ProjectPlatformActionOpti
|
|
|
209
176
|
skipped: boolean;
|
|
210
177
|
reason: string;
|
|
211
178
|
mocked: boolean;
|
|
212
|
-
serviceId:
|
|
179
|
+
serviceId: null;
|
|
213
180
|
serviceName?: undefined;
|
|
214
181
|
runnerKind?: undefined;
|
|
215
182
|
} | {
|
|
@@ -253,7 +220,7 @@ export declare function deployProjectPlatform(options: ProjectPlatformActionOpti
|
|
|
253
220
|
hostingRepair: {
|
|
254
221
|
ok: boolean;
|
|
255
222
|
phase: "repaired" | "already_ready";
|
|
256
|
-
environment: import("./hosting-audit.
|
|
223
|
+
environment: import("./hosting-audit.js").TreeseedHostingAuditResolvedEnvironment;
|
|
257
224
|
repairMode: boolean;
|
|
258
225
|
repaired: boolean;
|
|
259
226
|
repairedChecks: number;
|
|
@@ -302,27 +269,6 @@ export declare function deployProjectPlatform(options: ProjectPlatformActionOpti
|
|
|
302
269
|
runtimeMode: any;
|
|
303
270
|
volume: any;
|
|
304
271
|
} | null;
|
|
305
|
-
} | {
|
|
306
|
-
service: any;
|
|
307
|
-
status: string;
|
|
308
|
-
command: string;
|
|
309
|
-
cwd: any;
|
|
310
|
-
publicBaseUrl: any;
|
|
311
|
-
timings: TreeseedTimingEntry[];
|
|
312
|
-
transport: {
|
|
313
|
-
railway: {
|
|
314
|
-
reconcile: string;
|
|
315
|
-
deploy: string;
|
|
316
|
-
};
|
|
317
|
-
};
|
|
318
|
-
runtimeConfiguration: {
|
|
319
|
-
updated: any;
|
|
320
|
-
healthcheckPath: any;
|
|
321
|
-
healthcheckTimeoutSeconds: any;
|
|
322
|
-
runtimeMode: any;
|
|
323
|
-
volume: any;
|
|
324
|
-
} | null;
|
|
325
|
-
deploymentId?: undefined;
|
|
326
272
|
} | undefined)[];
|
|
327
273
|
timings: TreeseedTimingEntry[];
|
|
328
274
|
}>;
|
|
@@ -410,39 +356,6 @@ export declare function monitorProjectPlatform(options: ProjectPlatformActionOpt
|
|
|
410
356
|
skipped: boolean;
|
|
411
357
|
reason: string;
|
|
412
358
|
};
|
|
413
|
-
queue: {
|
|
414
|
-
ok: boolean;
|
|
415
|
-
skipped: boolean;
|
|
416
|
-
reason: string;
|
|
417
|
-
messageId?: undefined;
|
|
418
|
-
detail?: undefined;
|
|
419
|
-
attempts?: undefined;
|
|
420
|
-
} | {
|
|
421
|
-
ok: boolean;
|
|
422
|
-
skipped: boolean;
|
|
423
|
-
reason: string;
|
|
424
|
-
messageId: string;
|
|
425
|
-
detail: string;
|
|
426
|
-
attempts?: undefined;
|
|
427
|
-
} | {
|
|
428
|
-
ok: boolean;
|
|
429
|
-
reason: string;
|
|
430
|
-
skipped?: undefined;
|
|
431
|
-
messageId?: undefined;
|
|
432
|
-
detail?: undefined;
|
|
433
|
-
attempts?: undefined;
|
|
434
|
-
} | {
|
|
435
|
-
ok: boolean;
|
|
436
|
-
messageId: string;
|
|
437
|
-
attempts: number;
|
|
438
|
-
skipped?: undefined;
|
|
439
|
-
reason?: undefined;
|
|
440
|
-
detail?: undefined;
|
|
441
|
-
} | {
|
|
442
|
-
ok: boolean;
|
|
443
|
-
skipped: boolean;
|
|
444
|
-
reason: string;
|
|
445
|
-
};
|
|
446
359
|
scaleProbe: {
|
|
447
360
|
ok: boolean;
|
|
448
361
|
mocked: boolean;
|
|
@@ -456,7 +369,7 @@ export declare function monitorProjectPlatform(options: ProjectPlatformActionOpt
|
|
|
456
369
|
skipped: boolean;
|
|
457
370
|
reason: string;
|
|
458
371
|
mocked: boolean;
|
|
459
|
-
serviceId:
|
|
372
|
+
serviceId: null;
|
|
460
373
|
serviceName?: undefined;
|
|
461
374
|
runnerKind?: undefined;
|
|
462
375
|
} | {
|
|
@@ -576,39 +489,6 @@ export declare function runProjectPlatformAction(action: ProjectPlatformAction,
|
|
|
576
489
|
skipped: boolean;
|
|
577
490
|
reason: string;
|
|
578
491
|
};
|
|
579
|
-
queue: {
|
|
580
|
-
ok: boolean;
|
|
581
|
-
skipped: boolean;
|
|
582
|
-
reason: string;
|
|
583
|
-
messageId?: undefined;
|
|
584
|
-
detail?: undefined;
|
|
585
|
-
attempts?: undefined;
|
|
586
|
-
} | {
|
|
587
|
-
ok: boolean;
|
|
588
|
-
skipped: boolean;
|
|
589
|
-
reason: string;
|
|
590
|
-
messageId: string;
|
|
591
|
-
detail: string;
|
|
592
|
-
attempts?: undefined;
|
|
593
|
-
} | {
|
|
594
|
-
ok: boolean;
|
|
595
|
-
reason: string;
|
|
596
|
-
skipped?: undefined;
|
|
597
|
-
messageId?: undefined;
|
|
598
|
-
detail?: undefined;
|
|
599
|
-
attempts?: undefined;
|
|
600
|
-
} | {
|
|
601
|
-
ok: boolean;
|
|
602
|
-
messageId: string;
|
|
603
|
-
attempts: number;
|
|
604
|
-
skipped?: undefined;
|
|
605
|
-
reason?: undefined;
|
|
606
|
-
detail?: undefined;
|
|
607
|
-
} | {
|
|
608
|
-
ok: boolean;
|
|
609
|
-
skipped: boolean;
|
|
610
|
-
reason: string;
|
|
611
|
-
};
|
|
612
492
|
scaleProbe: {
|
|
613
493
|
ok: boolean;
|
|
614
494
|
mocked: boolean;
|
|
@@ -622,7 +502,7 @@ export declare function runProjectPlatformAction(action: ProjectPlatformAction,
|
|
|
622
502
|
skipped: boolean;
|
|
623
503
|
reason: string;
|
|
624
504
|
mocked: boolean;
|
|
625
|
-
serviceId:
|
|
505
|
+
serviceId: null;
|
|
626
506
|
serviceName?: undefined;
|
|
627
507
|
runnerKind?: undefined;
|
|
628
508
|
} | {
|
|
@@ -735,39 +615,6 @@ export declare function runProjectPlatformAction(action: ProjectPlatformAction,
|
|
|
735
615
|
skipped: boolean;
|
|
736
616
|
reason: string;
|
|
737
617
|
};
|
|
738
|
-
queue: {
|
|
739
|
-
ok: boolean;
|
|
740
|
-
skipped: boolean;
|
|
741
|
-
reason: string;
|
|
742
|
-
messageId?: undefined;
|
|
743
|
-
detail?: undefined;
|
|
744
|
-
attempts?: undefined;
|
|
745
|
-
} | {
|
|
746
|
-
ok: boolean;
|
|
747
|
-
skipped: boolean;
|
|
748
|
-
reason: string;
|
|
749
|
-
messageId: string;
|
|
750
|
-
detail: string;
|
|
751
|
-
attempts?: undefined;
|
|
752
|
-
} | {
|
|
753
|
-
ok: boolean;
|
|
754
|
-
reason: string;
|
|
755
|
-
skipped?: undefined;
|
|
756
|
-
messageId?: undefined;
|
|
757
|
-
detail?: undefined;
|
|
758
|
-
attempts?: undefined;
|
|
759
|
-
} | {
|
|
760
|
-
ok: boolean;
|
|
761
|
-
messageId: string;
|
|
762
|
-
attempts: number;
|
|
763
|
-
skipped?: undefined;
|
|
764
|
-
reason?: undefined;
|
|
765
|
-
detail?: undefined;
|
|
766
|
-
} | {
|
|
767
|
-
ok: boolean;
|
|
768
|
-
skipped: boolean;
|
|
769
|
-
reason: string;
|
|
770
|
-
};
|
|
771
618
|
scaleProbe: {
|
|
772
619
|
ok: boolean;
|
|
773
620
|
mocked: boolean;
|
|
@@ -781,7 +628,7 @@ export declare function runProjectPlatformAction(action: ProjectPlatformAction,
|
|
|
781
628
|
skipped: boolean;
|
|
782
629
|
reason: string;
|
|
783
630
|
mocked: boolean;
|
|
784
|
-
serviceId:
|
|
631
|
+
serviceId: null;
|
|
785
632
|
serviceName?: undefined;
|
|
786
633
|
runnerKind?: undefined;
|
|
787
634
|
} | {
|
|
@@ -825,7 +672,7 @@ export declare function runProjectPlatformAction(action: ProjectPlatformAction,
|
|
|
825
672
|
hostingRepair: {
|
|
826
673
|
ok: boolean;
|
|
827
674
|
phase: "repaired" | "already_ready";
|
|
828
|
-
environment: import("./hosting-audit.
|
|
675
|
+
environment: import("./hosting-audit.js").TreeseedHostingAuditResolvedEnvironment;
|
|
829
676
|
repairMode: boolean;
|
|
830
677
|
repaired: boolean;
|
|
831
678
|
repairedChecks: number;
|
|
@@ -874,27 +721,6 @@ export declare function runProjectPlatformAction(action: ProjectPlatformAction,
|
|
|
874
721
|
runtimeMode: any;
|
|
875
722
|
volume: any;
|
|
876
723
|
} | null;
|
|
877
|
-
} | {
|
|
878
|
-
service: any;
|
|
879
|
-
status: string;
|
|
880
|
-
command: string;
|
|
881
|
-
cwd: any;
|
|
882
|
-
publicBaseUrl: any;
|
|
883
|
-
timings: TreeseedTimingEntry[];
|
|
884
|
-
transport: {
|
|
885
|
-
railway: {
|
|
886
|
-
reconcile: string;
|
|
887
|
-
deploy: string;
|
|
888
|
-
};
|
|
889
|
-
};
|
|
890
|
-
runtimeConfiguration: {
|
|
891
|
-
updated: any;
|
|
892
|
-
healthcheckPath: any;
|
|
893
|
-
healthcheckTimeoutSeconds: any;
|
|
894
|
-
runtimeMode: any;
|
|
895
|
-
volume: any;
|
|
896
|
-
} | null;
|
|
897
|
-
deploymentId?: undefined;
|
|
898
724
|
} | undefined)[];
|
|
899
725
|
timings: TreeseedTimingEntry[];
|
|
900
726
|
}>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
2
|
import { spawnSync } from "node:child_process";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { runTreeseedGit } from "./git-runner.js";
|
|
4
|
+
import { mkdirSync, mkdtempSync, readFileSync, rmSync, statSync, writeFileSync } from "node:fs";
|
|
5
5
|
import { basename, extname, join, resolve } from "node:path";
|
|
6
6
|
import { elapsedMs, formatTimingMarkdown, formatTimingSummary } from "../../timing.js";
|
|
7
7
|
import {
|
|
@@ -44,7 +44,6 @@ import {
|
|
|
44
44
|
} from "./railway-deploy.js";
|
|
45
45
|
import { loadCliDeployConfig, packageScriptPath } from "./runtime-tools.js";
|
|
46
46
|
import { resolveTreeseedToolCommand } from "../../managed-dependencies.js";
|
|
47
|
-
import { CloudflareQueuePullClient, CloudflareQueuePushClient } from "../../remote.js";
|
|
48
47
|
import { runPrefixedCommand, runTreeseedBootstrapDag, sleep, writeTreeseedBootstrapLine } from "./bootstrap-runner.js";
|
|
49
48
|
import { runTenantDeployPreflight } from "./save-deploy-preflight.js";
|
|
50
49
|
const PROJECT_PLATFORM_BOOTSTRAP_SYSTEMS = ["data", "web", "api", "agents"];
|
|
@@ -111,18 +110,18 @@ function resolveScope(environment) {
|
|
|
111
110
|
return scope;
|
|
112
111
|
}
|
|
113
112
|
function currentCommit(tenantRoot) {
|
|
114
|
-
const result =
|
|
113
|
+
const result = runTreeseedGit(["rev-parse", "HEAD"], {
|
|
115
114
|
cwd: tenantRoot,
|
|
116
|
-
|
|
117
|
-
|
|
115
|
+
mode: "read",
|
|
116
|
+
allowFailure: true
|
|
118
117
|
});
|
|
119
118
|
return result.status === 0 ? result.stdout.trim() : null;
|
|
120
119
|
}
|
|
121
120
|
function currentRef(tenantRoot) {
|
|
122
|
-
const result =
|
|
121
|
+
const result = runTreeseedGit(["rev-parse", "--abbrev-ref", "HEAD"], {
|
|
123
122
|
cwd: tenantRoot,
|
|
124
|
-
|
|
125
|
-
|
|
123
|
+
mode: "read",
|
|
124
|
+
allowFailure: true
|
|
126
125
|
});
|
|
127
126
|
return result.status === 0 ? result.stdout.trim() : null;
|
|
128
127
|
}
|
|
@@ -372,6 +371,11 @@ function writeTempFile(root, name, body) {
|
|
|
372
371
|
writeFileSync(filePath, body);
|
|
373
372
|
return filePath;
|
|
374
373
|
}
|
|
374
|
+
function projectPlatformTempRoot(tenantRoot, scope) {
|
|
375
|
+
const base = resolve(tenantRoot, ".treeseed", "tmp", scope);
|
|
376
|
+
mkdirSync(base, { recursive: true });
|
|
377
|
+
return base;
|
|
378
|
+
}
|
|
375
379
|
function toBuffer(body) {
|
|
376
380
|
if (typeof body === "string") {
|
|
377
381
|
return Buffer.from(body);
|
|
@@ -382,7 +386,7 @@ function toBuffer(body) {
|
|
|
382
386
|
return Buffer.from(body.buffer, body.byteOffset, body.byteLength);
|
|
383
387
|
}
|
|
384
388
|
function readR2JsonObject(tenantRoot, bucketName, objectKey, wranglerPath, wranglerEnv) {
|
|
385
|
-
const tempRoot = mkdtempSync(join(
|
|
389
|
+
const tempRoot = mkdtempSync(join(projectPlatformTempRoot(tenantRoot, "r2-read"), "treeseed-r2-read-"));
|
|
386
390
|
const filePath = resolve(tempRoot, basename(objectKey) || "payload.json");
|
|
387
391
|
try {
|
|
388
392
|
const result = runWrangler(tenantRoot, [
|
|
@@ -622,20 +626,6 @@ async function probeHttp(url, { attempts = 1, delayMs = 2e3 } = {}) {
|
|
|
622
626
|
}
|
|
623
627
|
return result;
|
|
624
628
|
}
|
|
625
|
-
function queueClientConfig(siteConfig, state) {
|
|
626
|
-
const accountId = String(process.env.CLOUDFLARE_ACCOUNT_ID ?? siteConfig.cloudflare.accountId ?? "").trim();
|
|
627
|
-
const queueId = state.queues?.agentWork?.queueId;
|
|
628
|
-
const token = process.env.TREESEED_QUEUE_PUSH_TOKEN?.trim() || process.env.TREESEED_QUEUE_PULL_TOKEN?.trim() || process.env.CLOUDFLARE_API_TOKEN?.trim() || "";
|
|
629
|
-
if (!accountId || !queueId || !token) {
|
|
630
|
-
return null;
|
|
631
|
-
}
|
|
632
|
-
return {
|
|
633
|
-
accountId,
|
|
634
|
-
queueId,
|
|
635
|
-
token,
|
|
636
|
-
apiBaseUrl: process.env.TREESEED_QUEUE_API_BASE_URL?.trim() || void 0
|
|
637
|
-
};
|
|
638
|
-
}
|
|
639
629
|
function findFirstMatchingString(value, matcher, seen = /* @__PURE__ */ new Set()) {
|
|
640
630
|
if (typeof value === "string") {
|
|
641
631
|
return matcher(value) ? value : null;
|
|
@@ -665,6 +655,9 @@ function findFirstMatchingString(value, matcher, seen = /* @__PURE__ */ new Set(
|
|
|
665
655
|
return null;
|
|
666
656
|
}
|
|
667
657
|
function resolveImmediatePagesProbeUrl(siteConfig, state, target) {
|
|
658
|
+
if (target.kind === "persistent" && target.scope === "prod" && state.pages?.projectName) {
|
|
659
|
+
return `https://${state.pages.projectName}.pages.dev`;
|
|
660
|
+
}
|
|
668
661
|
const configuredUrl = resolveConfiguredSurfaceBaseUrl(siteConfig, target, "web");
|
|
669
662
|
if (configuredUrl) {
|
|
670
663
|
return configuredUrl;
|
|
@@ -707,57 +700,6 @@ function resolveApiMonitorEndpoints(siteConfig, apiBaseUrl) {
|
|
|
707
700
|
processingAgentApi: false
|
|
708
701
|
};
|
|
709
702
|
}
|
|
710
|
-
async function probeQueue(siteConfig, state) {
|
|
711
|
-
const config = queueClientConfig(siteConfig, state);
|
|
712
|
-
if (!config) {
|
|
713
|
-
return { ok: false, skipped: true, reason: "queue_probe_unconfigured" };
|
|
714
|
-
}
|
|
715
|
-
const pushClient = new CloudflareQueuePushClient(config);
|
|
716
|
-
const pullClient = new CloudflareQueuePullClient(config);
|
|
717
|
-
const messageId = `health-${Date.now()}`;
|
|
718
|
-
await pushClient.enqueue({
|
|
719
|
-
message: {
|
|
720
|
-
messageId,
|
|
721
|
-
taskId: messageId,
|
|
722
|
-
workDayId: "health-check",
|
|
723
|
-
agentId: "health-check",
|
|
724
|
-
taskType: "health_check",
|
|
725
|
-
idempotencyKey: messageId,
|
|
726
|
-
payloadRef: "health",
|
|
727
|
-
graphVersion: null,
|
|
728
|
-
budgetHint: 0
|
|
729
|
-
}
|
|
730
|
-
});
|
|
731
|
-
let pulled;
|
|
732
|
-
try {
|
|
733
|
-
pulled = await pullClient.pull({
|
|
734
|
-
batchSize: 1,
|
|
735
|
-
visibilityTimeoutMs: 1e4
|
|
736
|
-
});
|
|
737
|
-
} catch (error) {
|
|
738
|
-
const detail = error instanceof Error ? error.message : String(error);
|
|
739
|
-
if (/http_pull mode is enabled/iu.test(detail)) {
|
|
740
|
-
return {
|
|
741
|
-
ok: true,
|
|
742
|
-
skipped: true,
|
|
743
|
-
reason: "queue_push_only",
|
|
744
|
-
messageId,
|
|
745
|
-
detail
|
|
746
|
-
};
|
|
747
|
-
}
|
|
748
|
-
throw error;
|
|
749
|
-
}
|
|
750
|
-
const message = pulled.messages.find((entry) => entry.body?.messageId === messageId) ?? pulled.messages[0] ?? null;
|
|
751
|
-
if (!message) {
|
|
752
|
-
return { ok: false, reason: "queue_pull_empty" };
|
|
753
|
-
}
|
|
754
|
-
await pullClient.ack([message.leaseId]);
|
|
755
|
-
return {
|
|
756
|
-
ok: true,
|
|
757
|
-
messageId,
|
|
758
|
-
attempts: message.attempts
|
|
759
|
-
};
|
|
760
|
-
}
|
|
761
703
|
function r2HealthKey(state) {
|
|
762
704
|
return `${state.content?.manifestKey?.replace(/\/common\.json$/u, "") ?? "health"}/healthchecks/${Date.now()}.json`;
|
|
763
705
|
}
|
|
@@ -774,13 +716,13 @@ function deleteR2Object(tenantRoot, bucketName, objectKey, wranglerPath, wrangle
|
|
|
774
716
|
}
|
|
775
717
|
function probeR2(tenantRoot, siteConfig, state, target) {
|
|
776
718
|
const bucketName = state.content?.bucketName;
|
|
777
|
-
const cloudflareAccountId = String(process.env.
|
|
719
|
+
const cloudflareAccountId = String(process.env.TREESEED_CLOUDFLARE_ACCOUNT_ID ?? siteConfig.cloudflare.accountId ?? "").trim();
|
|
778
720
|
if (!bucketName) {
|
|
779
721
|
return { ok: false, skipped: true, reason: "r2_unconfigured" };
|
|
780
722
|
}
|
|
781
723
|
const { wranglerPath } = ensureGeneratedWranglerConfig(tenantRoot, { target });
|
|
782
724
|
const wranglerEnv = { CLOUDFLARE_ACCOUNT_ID: cloudflareAccountId };
|
|
783
|
-
const tempRoot = mkdtempSync(join(
|
|
725
|
+
const tempRoot = mkdtempSync(join(projectPlatformTempRoot(tenantRoot, "r2-health"), "treeseed-r2-health-"));
|
|
784
726
|
const objectKey = r2HealthKey(state);
|
|
785
727
|
try {
|
|
786
728
|
const payload = JSON.stringify({ ok: true, createdAt: (/* @__PURE__ */ new Date()).toISOString() });
|
|
@@ -810,12 +752,10 @@ function probeR2(tenantRoot, siteConfig, state, target) {
|
|
|
810
752
|
}
|
|
811
753
|
}
|
|
812
754
|
function probeScaleConfiguration(siteConfig, state) {
|
|
813
|
-
const worker = state.services?.workerRunner ?? state.services?.worker ?? {};
|
|
814
|
-
const workerConfig = siteConfig.services?.workerRunner ?? siteConfig.services?.worker ?? {};
|
|
815
755
|
const marketRunner = state.services?.operationsRunner ?? {};
|
|
816
756
|
const marketRunnerConfig = siteConfig.services?.operationsRunner ?? {};
|
|
817
757
|
const scalerKind = String(process.env.TREESEED_WORKER_POOL_SCALER ?? "").trim();
|
|
818
|
-
if (marketRunnerConfig.provider === "railway"
|
|
758
|
+
if (marketRunnerConfig.provider === "railway") {
|
|
819
759
|
const runnerServiceId = marketRunner.serviceId ?? null;
|
|
820
760
|
const runnerServiceName = marketRunner.serviceName ?? marketRunnerConfig.railway?.serviceName ?? null;
|
|
821
761
|
return {
|
|
@@ -826,18 +766,18 @@ function probeScaleConfiguration(siteConfig, state) {
|
|
|
826
766
|
runnerKind: "market_operations_runner"
|
|
827
767
|
};
|
|
828
768
|
}
|
|
829
|
-
if (scalerKind !== "railway"
|
|
769
|
+
if (scalerKind !== "railway") {
|
|
830
770
|
return {
|
|
831
771
|
ok: true,
|
|
832
772
|
skipped: true,
|
|
833
773
|
reason: "scaler_unconfigured",
|
|
834
774
|
mocked: true,
|
|
835
|
-
serviceId:
|
|
775
|
+
serviceId: null
|
|
836
776
|
};
|
|
837
777
|
}
|
|
838
|
-
const serviceIdentifier =
|
|
839
|
-
const environmentIdentifier = process.env.TREESEED_RAILWAY_ENVIRONMENT_ID
|
|
840
|
-
const projectIdentifier = process.env.TREESEED_RAILWAY_PROJECT_ID
|
|
778
|
+
const serviceIdentifier = process.env.TREESEED_RAILWAY_WORKER_SERVICE_ID;
|
|
779
|
+
const environmentIdentifier = process.env.TREESEED_RAILWAY_ENVIRONMENT_ID;
|
|
780
|
+
const projectIdentifier = process.env.TREESEED_RAILWAY_PROJECT_ID;
|
|
841
781
|
return {
|
|
842
782
|
ok: Boolean(serviceIdentifier && (environmentIdentifier || projectIdentifier)),
|
|
843
783
|
mocked: true,
|
|
@@ -856,7 +796,7 @@ async function publishContent(options, reporter, publishOptions = {}) {
|
|
|
856
796
|
const previewId = options.previewId ?? `staging-${sanitizeSegment(branchName, "preview")}-${sanitizeSegment(commitSha?.slice(0, 12), "latest")}`;
|
|
857
797
|
const locator = resolveTeamScopedContentLocator(siteConfig, teamId);
|
|
858
798
|
const { wranglerPath } = ensureGeneratedWranglerConfig(options.tenantRoot, { target });
|
|
859
|
-
const wranglerEnv = { CLOUDFLARE_ACCOUNT_ID: String(process.env.
|
|
799
|
+
const wranglerEnv = { CLOUDFLARE_ACCOUNT_ID: String(process.env.TREESEED_CLOUDFLARE_ACCOUNT_ID ?? siteConfig.cloudflare.accountId ?? "").trim() };
|
|
860
800
|
const bucketName = String(process.env.TREESEED_CONTENT_BUCKET_NAME ?? siteConfig.cloudflare.r2?.bucketName ?? "").trim();
|
|
861
801
|
if (!bucketName) {
|
|
862
802
|
throw new Error("Treeseed content publish requires TREESEED_CONTENT_BUCKET_NAME to be configured.");
|
|
@@ -959,7 +899,7 @@ async function publishContent(options, reporter, publishOptions = {}) {
|
|
|
959
899
|
contentPurgeUrls.add(absoluteUrl(siteConfig.siteUrl, freshnessPath) ?? "");
|
|
960
900
|
}
|
|
961
901
|
}
|
|
962
|
-
const tempRoot = mkdtempSync(join(
|
|
902
|
+
const tempRoot = mkdtempSync(join(projectPlatformTempRoot(options.tenantRoot, "content-publish"), "treeseed-content-publish-"));
|
|
963
903
|
try {
|
|
964
904
|
if (!options.dryRun) {
|
|
965
905
|
const uploadOptions = {
|
|
@@ -1123,12 +1063,11 @@ async function provisionProjectPlatform(options) {
|
|
|
1123
1063
|
environment: options.scope,
|
|
1124
1064
|
deploymentProfile: siteConfig.hosting?.kind ?? "self_hosted_project",
|
|
1125
1065
|
baseUrl: state.lastDeployedUrl,
|
|
1126
|
-
cloudflareAccountId: String(process.env.
|
|
1066
|
+
cloudflareAccountId: String(process.env.TREESEED_CLOUDFLARE_ACCOUNT_ID ?? siteConfig.cloudflare.accountId ?? "").trim() || null,
|
|
1127
1067
|
pagesProjectName: state.pages?.projectName ?? null,
|
|
1128
1068
|
workerName: state.workerName,
|
|
1129
1069
|
r2BucketName: state.content?.bucketName ?? null,
|
|
1130
1070
|
d1DatabaseName: state.d1Databases?.SITE_DATA_DB?.databaseName ?? null,
|
|
1131
|
-
queueName: state.queues?.agentWork?.name ?? null,
|
|
1132
1071
|
railwayProjectName: railwayValidation.services[0]?.projectName ?? null,
|
|
1133
1072
|
metadata: {
|
|
1134
1073
|
target: deployTargetLabel(target),
|
|
@@ -1184,14 +1123,6 @@ async function provisionProjectPlatform(options) {
|
|
|
1184
1123
|
logicalName: state.d1Databases?.SITE_DATA_DB?.databaseName ?? "site-data",
|
|
1185
1124
|
locator: state.d1Databases?.SITE_DATA_DB?.databaseId ?? null,
|
|
1186
1125
|
metadata: state.d1Databases?.SITE_DATA_DB ?? {}
|
|
1187
|
-
},
|
|
1188
|
-
{
|
|
1189
|
-
environment: options.scope,
|
|
1190
|
-
provider: "cloudflare",
|
|
1191
|
-
resourceKind: "queue",
|
|
1192
|
-
logicalName: state.queues?.agentWork?.name ?? "agent-work",
|
|
1193
|
-
locator: state.queues?.agentWork?.binding ?? null,
|
|
1194
|
-
metadata: state.queues?.agentWork ?? {}
|
|
1195
1126
|
}
|
|
1196
1127
|
];
|
|
1197
1128
|
for (const resource of resourceReports) {
|
|
@@ -1510,14 +1441,14 @@ async function monitorProjectPlatform(options) {
|
|
|
1510
1441
|
const skippedApiCheck = apiSelected ? { ok: false, skipped: true, reason: "api_url_unconfigured" } : { ok: true, skipped: true, reason: "api_not_selected" };
|
|
1511
1442
|
const skippedAgentCheck = agentsSelected ? { ok: false, skipped: true, reason: "api_url_unconfigured" } : { ok: true, skipped: true, reason: "agents_not_selected" };
|
|
1512
1443
|
const skippedD1Check = apiMonitorEndpoints.processingAgentApi ? { ok: true, skipped: true, reason: "processing_agent_api" } : skippedApiCheck;
|
|
1444
|
+
const pagesProbeOptions = options.scope === "prod" ? { attempts: 18, delayMs: 1e4 } : { attempts: 3, delayMs: 5e3 };
|
|
1513
1445
|
const checks = {
|
|
1514
|
-
pages: timedPhase(timings, "monitor:probe-pages", () => probeHttp(webProbeUrl,
|
|
1446
|
+
pages: timedPhase(timings, "monitor:probe-pages", () => probeHttp(webProbeUrl, pagesProbeOptions)),
|
|
1515
1447
|
apiHealth: apiSelected && apiMonitorEndpoints.apiHealth ? timedPhase(timings, "monitor:probe-api-health", () => probeHttp(apiMonitorEndpoints.apiHealth, { attempts: 8, delayMs: 1e4 })) : Promise.resolve(skippedApiCheck),
|
|
1516
1448
|
apiReady: apiSelected && apiMonitorEndpoints.apiReady ? timedPhase(timings, "monitor:probe-api-ready", () => probeHttp(apiMonitorEndpoints.apiReady, { attempts: 8, delayMs: 1e4 })) : Promise.resolve(skippedApiCheck),
|
|
1517
1449
|
d1Health: apiSelected && apiMonitorEndpoints.d1Health ? timedPhase(timings, "monitor:probe-d1-health", () => probeHttp(apiMonitorEndpoints.d1Health, { attempts: 8, delayMs: 1e4 })) : Promise.resolve(skippedD1Check),
|
|
1518
1450
|
agentHealth: agentsSelected && apiMonitorEndpoints.agentHealth ? timedPhase(timings, "monitor:probe-agent-health", () => probeHttp(apiMonitorEndpoints.agentHealth, { attempts: 8, delayMs: 1e4 })) : Promise.resolve(skippedAgentCheck),
|
|
1519
1451
|
r2: options.dryRun ? Promise.resolve({ ok: true, skipped: true, reason: "dry_run" }) : timedPhase(timings, "monitor:probe-r2", () => probeR2(options.tenantRoot, siteConfig, state, target)),
|
|
1520
|
-
queue: options.dryRun ? Promise.resolve({ ok: true, skipped: true, reason: "dry_run" }) : timedPhase(timings, "monitor:probe-queue", () => probeQueue(siteConfig, state)),
|
|
1521
1452
|
scaleProbe: timedPhase(timings, "monitor:probe-scale", () => probeScaleConfiguration(siteConfig, state)),
|
|
1522
1453
|
railwayResources: Promise.resolve(railwayResourcesPromise),
|
|
1523
1454
|
readiness: state.readiness,
|
|
@@ -1535,7 +1466,6 @@ async function monitorProjectPlatform(options) {
|
|
|
1535
1466
|
d1Health: await checks.d1Health,
|
|
1536
1467
|
agentHealth: await checks.agentHealth,
|
|
1537
1468
|
r2: await checks.r2,
|
|
1538
|
-
queue: await checks.queue,
|
|
1539
1469
|
scaleProbe: await checks.scaleProbe,
|
|
1540
1470
|
railwayResources: await checks.railwayResources
|
|
1541
1471
|
};
|
|
@@ -1546,7 +1476,6 @@ async function monitorProjectPlatform(options) {
|
|
|
1546
1476
|
resolvedChecks.d1Health,
|
|
1547
1477
|
resolvedChecks.agentHealth,
|
|
1548
1478
|
resolvedChecks.r2,
|
|
1549
|
-
resolvedChecks.queue,
|
|
1550
1479
|
resolvedChecks.scaleProbe,
|
|
1551
1480
|
resolvedChecks.railwayResources
|
|
1552
1481
|
].every((check) => check?.ok === true || check?.skipped === true);
|
|
@@ -1586,12 +1515,11 @@ async function syncControlPlaneState(options) {
|
|
|
1586
1515
|
environment: options.scope,
|
|
1587
1516
|
deploymentProfile: siteConfig.hosting?.kind ?? "self_hosted_project",
|
|
1588
1517
|
baseUrl: state.lastDeployedUrl,
|
|
1589
|
-
cloudflareAccountId: String(process.env.
|
|
1518
|
+
cloudflareAccountId: String(process.env.TREESEED_CLOUDFLARE_ACCOUNT_ID ?? siteConfig.cloudflare.accountId ?? "").trim() || null,
|
|
1590
1519
|
pagesProjectName: state.pages?.projectName ?? null,
|
|
1591
1520
|
workerName: state.workerName,
|
|
1592
1521
|
r2BucketName: state.content?.bucketName ?? null,
|
|
1593
1522
|
d1DatabaseName: state.d1Databases?.SITE_DATA_DB?.databaseName ?? null,
|
|
1594
|
-
queueName: state.queues?.agentWork?.name ?? null,
|
|
1595
1523
|
railwayProjectName: state.services.api?.provider === "railway" ? state.services.api?.lastDeployedUrl ?? null : null,
|
|
1596
1524
|
metadata: { target: deployTargetLabel(target) }
|
|
1597
1525
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { type GitHubApiClient } from './github-api.
|
|
2
|
-
import type { ProjectDeploymentEnvironment, ProjectWebMonitorResult } from '../../sdk-types.
|
|
1
|
+
import { type GitHubApiClient } from './github-api.js';
|
|
2
|
+
import type { ProjectDeploymentEnvironment, ProjectWebMonitorResult } from '../../sdk-types.js';
|
|
3
3
|
export declare function buildProjectWebMonitorResult(input: {
|
|
4
4
|
environment: ProjectDeploymentEnvironment;
|
|
5
5
|
action?: string | null;
|