@treeseed/sdk 0.10.28 → 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 +213 -7
- 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 +118 -59
- package/dist/capacity-provider.js +235 -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 +3 -2
- package/dist/control-plane.js +38 -13
- 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 +50900 -11018
- package/dist/db/market-schema.js +2313 -467
- package/dist/db/node-sqlite.d.ts +1 -232
- package/dist/db/node-sqlite.js +7 -2
- 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 +12 -0
- package/dist/hosting/apps.js +107 -0
- package/dist/hosting/builtins.d.ts +25 -0
- package/dist/hosting/builtins.js +602 -0
- package/dist/hosting/contracts.d.ts +208 -0
- package/dist/hosting/contracts.js +0 -0
- package/dist/hosting/graph.d.ts +195 -0
- package/dist/hosting/graph.js +1092 -0
- package/dist/hosting/index.d.ts +4 -0
- package/dist/hosting/index.js +4 -0
- package/dist/index.d.ts +88 -67
- package/dist/index.js +142 -14
- 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 -9
- package/dist/market-client.d.ts +327 -9
- package/dist/market-client.js +464 -20
- 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 +4 -2
- package/dist/operations/services/bootstrap-runner.js +22 -2
- 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 +83 -24
- package/dist/operations/services/config-runtime.js +449 -130
- package/dist/operations/services/deploy.d.ts +106 -624
- package/dist/operations/services/deploy.js +746 -263
- package/dist/operations/services/deployment-readiness.d.ts +30 -0
- package/dist/operations/services/deployment-readiness.js +206 -0
- 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 +45 -6
- package/dist/operations/services/git-workflow.js +251 -23
- package/dist/operations/services/github-actions-verification.d.ts +4 -1
- package/dist/operations/services/github-actions-verification.js +12 -3
- package/dist/operations/services/github-api.js +22 -6
- package/dist/operations/services/github-automation.d.ts +4 -4
- package/dist/operations/services/github-automation.js +19 -21
- package/dist/operations/services/github-credentials.d.ts +13 -0
- package/dist/operations/services/github-credentials.js +59 -0
- package/dist/operations/services/hosted-service-checks.d.ts +81 -0
- package/dist/operations/services/hosted-service-checks.js +478 -0
- 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 +22 -17
- package/dist/operations/services/live-hosted-service-checks.d.ts +26 -0
- package/dist/operations/services/live-hosted-service-checks.js +463 -0
- 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-host-security.js +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 +31 -0
- package/dist/operations/services/operations-runner-smoke.js +198 -0
- package/dist/operations/services/package-adapters.d.ts +170 -0
- package/dist/operations/services/package-adapters.js +859 -0
- package/dist/operations/services/package-reference-policy.d.ts +13 -88
- package/dist/operations/services/package-reference-policy.js +96 -215
- package/dist/operations/services/project-host-operations.d.ts +4 -4
- package/dist/operations/services/project-platform.d.ts +57 -173
- package/dist/operations/services/project-platform.js +80 -111
- package/dist/operations/services/project-web-monitor.d.ts +2 -2
- package/dist/operations/services/project-web-monitor.js +122 -5
- package/dist/operations/services/railway-api.d.ts +117 -5
- package/dist/operations/services/railway-api.js +915 -93
- package/dist/operations/services/railway-deploy.d.ts +30 -112
- package/dist/operations/services/railway-deploy.js +521 -961
- 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 +8 -7
- package/dist/operations/services/repository-save-orchestrator.js +604 -212
- 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 -191
- package/dist/operations/services/runtime-tools.js +4 -443
- 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/verification-cache.d.ts +25 -0
- package/dist/operations/services/verification-cache.js +71 -0
- 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 +50 -5
- 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 +42 -19
- package/dist/operations/services/workspace-tools.js +42 -7
- 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 +38 -2
- package/dist/platform/deploy-config.d.ts +1 -1
- package/dist/platform/deploy-config.js +80 -9
- 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 +568 -45
- package/dist/platform/environment.d.ts +3 -2
- package/dist/platform/environment.js +122 -21
- 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 +13 -4
- 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/platform-operation-store.js +2 -2
- package/dist/platform-operations.js +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 +5 -5
- package/dist/reconcile/builtin-adapters.d.ts +7 -1
- package/dist/reconcile/builtin-adapters.js +3190 -429
- package/dist/reconcile/contracts.d.ts +23 -6
- package/dist/reconcile/desired-state.d.ts +2 -192
- package/dist/reconcile/desired-state.js +29 -38
- package/dist/reconcile/engine.d.ts +61 -395
- package/dist/reconcile/engine.js +229 -44
- package/dist/reconcile/index.d.ts +10 -8
- package/dist/reconcile/index.js +2 -0
- package/dist/reconcile/live-acceptance.d.ts +100 -0
- package/dist/reconcile/live-acceptance.js +2027 -0
- package/dist/reconcile/platform.d.ts +104 -0
- package/dist/reconcile/platform.js +100 -0
- 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 +7 -44
- package/dist/reconcile/units.d.ts +1 -1
- package/dist/reconcile/units.js +9 -3
- 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/deployment-readiness.js +20 -0
- package/dist/scripts/generate-treedx-openapi-types.js +186 -0
- package/dist/scripts/migrate-journey-csv-to-guarantees.js +140 -0
- package/dist/scripts/operations-runner-smoke.js +16 -0
- package/dist/scripts/package-tools.js +12 -1
- package/dist/scripts/prepare.js +3 -7
- package/dist/scripts/release-verify.js +6 -6
- 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/tenant-workflow-action.js +10 -1
- 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 +1352 -116
- package/dist/sdk-types.js +413 -2
- package/dist/sdk.d.ts +106 -100
- package/dist/sdk.js +211 -51
- 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-requirements.js +9 -0
- package/dist/template-launch-ui.d.ts +2 -2
- package/dist/treedx/adapters.d.ts +6 -0
- package/dist/treedx/adapters.js +36 -0
- package/dist/treedx/client.d.ts +222 -0
- package/dist/treedx/client.js +871 -0
- package/dist/treedx/errors.d.ts +13 -0
- package/dist/treedx/errors.js +17 -0
- package/dist/treedx/federated-client.d.ts +27 -0
- package/dist/treedx/federated-client.js +158 -0
- package/dist/treedx/generated/openapi-types.d.ts +3558 -0
- package/dist/treedx/generated/openapi-types.js +0 -0
- package/dist/treedx/graph-adapter.d.ts +33 -0
- package/dist/treedx/graph-adapter.js +156 -0
- package/dist/treedx/index.d.ts +14 -0
- package/dist/treedx/index.js +48 -0
- package/dist/treedx/market-integration.d.ts +27 -0
- package/dist/treedx/market-integration.js +131 -0
- package/dist/treedx/ports.d.ts +166 -0
- package/dist/treedx/ports.js +231 -0
- package/dist/treedx/query-adapter.d.ts +19 -0
- package/dist/treedx/query-adapter.js +62 -0
- package/dist/treedx/registry-client.d.ts +11 -0
- package/dist/treedx/registry-client.js +19 -0
- package/dist/treedx/repository-adapter.d.ts +45 -0
- package/dist/treedx/repository-adapter.js +319 -0
- package/dist/treedx/sdk-integration.d.ts +27 -0
- package/dist/treedx/sdk-integration.js +63 -0
- package/dist/treedx/types.d.ts +1084 -0
- package/dist/treedx/types.js +8 -0
- package/dist/treedx/workspace-adapter.d.ts +27 -0
- package/dist/treedx/workspace-adapter.js +65 -0
- package/dist/treedx-backends.d.ts +220 -0
- package/dist/treedx-backends.js +634 -0
- package/dist/treedx-client.d.ts +89 -0
- package/dist/treedx-client.js +184 -0
- package/dist/treeseed/services/compose.yml +2 -3
- package/dist/treeseed/template-catalog/catalog.fixture.json +27 -27
- 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 +580 -523
- package/dist/workflow/operations.js +2084 -1279
- 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 +17 -4
- package/dist/workflow-state.js +68 -41
- package/dist/workflow-support.d.ts +26 -17
- package/dist/workflow-support.js +84 -24
- package/dist/workflow.d.ts +51 -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/0004_treedx_market_integration.sql +99 -0
- 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 +106 -18
- package/scripts/{verify-driver.mjs → verify-driver.ts} +19 -4
- package/templates/github/deploy-web.workflow.yml +49 -12
- 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 -41
- package/dist/operations/services/release-candidate.js +0 -616
- 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,5 +1,5 @@
|
|
|
1
1
|
export type TreeseedOperationGroup = 'Workflow' | 'Local Development' | 'Validation' | 'Release Utilities' | 'Utilities' | 'Passthrough';
|
|
2
|
-
export type TreeseedOperationId = 'workspace.status' | 'workspace.doctor' | 'branch.tasks' | 'branch.switch' | 'branch.save' | 'branch.close' | 'branch.stage' | 'deploy.release' | 'deploy.rollback' | 'deploy.destroy' | 'workspace.resume' | 'workspace.recover' | 'template.list' | 'template.show' | 'template.validate' | 'template.sync' | 'project.init' | 'project.config' | 'local.dev' | 'local.devWatch' | 'local.build' | 'local.check' | 'local.preview' | 'local.lint' | 'local.test' | 'validation.testUnit' | 'validation.preflight' | 'validation.authCheck' | 'auth.login' | 'auth.logout' | 'auth.whoami' | 'release.testE2e' | 'release.testE2eLocal' | 'release.testE2eStaging' | 'release.testE2eFull' | 'release.testFast' | 'release.verify' | 'release.publishChanged' | '
|
|
2
|
+
export type TreeseedOperationId = 'workspace.status' | 'workspace.doctor' | 'branch.tasks' | 'branch.switch' | 'branch.save' | 'branch.close' | 'branch.stage' | 'deploy.release' | 'deploy.rollback' | 'deploy.destroy' | 'workspace.resume' | 'workspace.recover' | 'template.list' | 'template.show' | 'template.validate' | 'template.sync' | 'project.init' | 'project.config' | 'local.dev' | 'local.devWatch' | 'local.build' | 'local.check' | 'local.preview' | 'local.lint' | 'local.test' | 'validation.testUnit' | 'validation.preflight' | 'validation.authCheck' | 'auth.login' | 'auth.logout' | 'auth.whoami' | 'release.testE2e' | 'release.testE2eLocal' | 'release.testE2eStaging' | 'release.testE2eFull' | 'release.testFast' | 'release.verify' | 'release.publishChanged' | 'data.d1MigrateLocal' | 'content.cleanupMarkdown' | 'content.cleanupMarkdownCheck' | 'project.export' | 'tools.astro' | 'tools.syncDevvars' | 'tools.starlightPatch' | 'agents.run';
|
|
3
3
|
export type TreeseedOperationProviderId = 'default';
|
|
4
4
|
export type TreeseedOperationMetadata = {
|
|
5
5
|
id: TreeseedOperationId;
|
package/dist/operations.d.ts
CHANGED
|
@@ -1,11 +1,17 @@
|
|
|
1
|
-
export { TRESEED_OPERATION_SPECS, findTreeseedOperation, listTreeseedOperationNames, } from './operations-registry.
|
|
2
|
-
export { collectTreeseedConfigSeedValues } from './operations/services/config-runtime.
|
|
3
|
-
export { createKnowledgeHubRepositories, defaultHubContentResolutionPolicy, executeKnowledgeHubLaunch, normalizeKnowledgeHubLaunchIntent, planKnowledgeHubLaunch, planKnowledgeHubRepositories, validateRepositoryHost, } from './operations/services/hub-launch.
|
|
4
|
-
export { TreeseedOperationsSdk } from './operations/runtime.
|
|
5
|
-
export { cancelGitHubWorkflowRun,
|
|
6
|
-
export
|
|
7
|
-
export
|
|
8
|
-
export {
|
|
9
|
-
export {
|
|
10
|
-
export {
|
|
11
|
-
export type
|
|
1
|
+
export { TRESEED_OPERATION_SPECS, findTreeseedOperation, listTreeseedOperationNames, } from './operations-registry.js';
|
|
2
|
+
export { collectTreeseedConfigSeedValues } from './operations/services/config-runtime.js';
|
|
3
|
+
export { createKnowledgeHubRepositories, defaultHubContentResolutionPolicy, executeKnowledgeHubLaunch, normalizeKnowledgeHubLaunchIntent, planKnowledgeHubLaunch, planKnowledgeHubRepositories, validateRepositoryHost, } from './operations/services/hub-launch.js';
|
|
4
|
+
export { TreeseedOperationsSdk } from './operations/runtime.js';
|
|
5
|
+
export { cancelGitHubWorkflowRun, formatGitHubWorkflowFailure, waitForGitHubWorkflowRunCompletion, type GitHubWorkflowCancellationResult, type GitHubWorkflowFailureSummary, type GitHubWorkflowFailureSummaryInput, type GitHubWorkflowProgressEvent, } from './operations/services/github-api.js';
|
|
6
|
+
export { computeProofInputHash, createProofRecord, proofIdFor, type TreeseedProofDriver, type TreeseedProofInput, type TreeseedProofRecord, type TreeseedProofStatus, type TreeseedProofSubject, type TreeseedProofSubjectKind, } from './operations/services/release-proof.js';
|
|
7
|
+
export { cleanProofLedger, findReusableProof, invalidateProofs, readProofLedger, writeProofRecord, } from './operations/services/release-proof-ledger.js';
|
|
8
|
+
export { buildTreeseedProofPlan, summarizeTreeseedProofLedger, type TreeseedProofPlan, type TreeseedProofPlanSubject, type TreeseedProofTarget, } from './operations/services/release-proof-planner.js';
|
|
9
|
+
export { runTreeseedProof, type TreeseedProofRunResult, } from './operations/services/release-proof-runner.js';
|
|
10
|
+
export { createTreeseedWorkflowTimer, formatTreeseedDuration, slowestTreeseedWorkflowPhases, type TreeseedWorkflowTiming, type TreeseedWorkflowTimingPhase, } from './operations/services/workflow-timing.js';
|
|
11
|
+
export { classifyTreeseedGitMode, inspectTreeseedGitLocks, inspectTreeseedWorkspaceGitLocks, recoverTreeseedGitLocks, runTreeseedGit, runTreeseedGitBatch, runTreeseedGitOk, runTreeseedGitText, type TreeseedGitBatchOperation, type TreeseedGitLockDiagnostic, type TreeseedGitRunnerMode, type TreeseedGitRunnerResult, type TreeseedGitWorkspaceLockDiagnostics, } from './operations/services/git-runner.js';
|
|
12
|
+
export type { HubContentResolutionPolicy, KnowledgeHubLaunchIntent, KnowledgeHubLaunchPhase, KnowledgeHubLaunchPlan, KnowledgeHubLaunchResult, KnowledgeHubRepositoryPlan, RepositoryHost, } from './operations/services/hub-launch.js';
|
|
13
|
+
export type { TreeseedOperationContext, TreeseedOperationImplementation, TreeseedOperationId, TreeseedOperationMetadata, TreeseedOperationProvider, TreeseedOperationProviderId, TreeseedOperationRequest, TreeseedOperationResult, TreeseedOperationGroup, } from './operations-types.js';
|
|
14
|
+
export { TreeseedOperationError } from './operations-types.js';
|
|
15
|
+
export { AGENT_OPERATION_MODES, AGENT_OPERATION_NAMES, createAgentOperationEvent, decideAgentOperationPermission, deniedAgentOperationResult, isAgentOperationName, resolveAgentOperationGrant, type AgentDeterministicOperationStep, type AgentOperationEvent, type AgentOperationGrant, type AgentOperationMergeFailure, type AgentOperationMode, type AgentOperationName, type AgentOperationPermissionCode, type AgentOperationPermissionDecision, type AgentOperationRequest, type AgentOperationResult, type AgentOperationStatus, } from './operations/agent-tools.js';
|
|
16
|
+
export { TreeseedWorkflowSdk } from './workflow.js';
|
|
17
|
+
export type * from './workflow.js';
|
package/dist/operations.js
CHANGED
|
@@ -16,10 +16,43 @@ import {
|
|
|
16
16
|
import { TreeseedOperationsSdk } from "./operations/runtime.js";
|
|
17
17
|
import {
|
|
18
18
|
cancelGitHubWorkflowRun,
|
|
19
|
-
dispatchGitHubWorkflowRun,
|
|
20
19
|
formatGitHubWorkflowFailure,
|
|
21
20
|
waitForGitHubWorkflowRunCompletion
|
|
22
21
|
} from "./operations/services/github-api.js";
|
|
22
|
+
import {
|
|
23
|
+
computeProofInputHash,
|
|
24
|
+
createProofRecord,
|
|
25
|
+
proofIdFor
|
|
26
|
+
} from "./operations/services/release-proof.js";
|
|
27
|
+
import {
|
|
28
|
+
cleanProofLedger,
|
|
29
|
+
findReusableProof,
|
|
30
|
+
invalidateProofs,
|
|
31
|
+
readProofLedger,
|
|
32
|
+
writeProofRecord
|
|
33
|
+
} from "./operations/services/release-proof-ledger.js";
|
|
34
|
+
import {
|
|
35
|
+
buildTreeseedProofPlan,
|
|
36
|
+
summarizeTreeseedProofLedger
|
|
37
|
+
} from "./operations/services/release-proof-planner.js";
|
|
38
|
+
import {
|
|
39
|
+
runTreeseedProof
|
|
40
|
+
} from "./operations/services/release-proof-runner.js";
|
|
41
|
+
import {
|
|
42
|
+
createTreeseedWorkflowTimer,
|
|
43
|
+
formatTreeseedDuration,
|
|
44
|
+
slowestTreeseedWorkflowPhases
|
|
45
|
+
} from "./operations/services/workflow-timing.js";
|
|
46
|
+
import {
|
|
47
|
+
classifyTreeseedGitMode,
|
|
48
|
+
inspectTreeseedGitLocks,
|
|
49
|
+
inspectTreeseedWorkspaceGitLocks,
|
|
50
|
+
recoverTreeseedGitLocks,
|
|
51
|
+
runTreeseedGit,
|
|
52
|
+
runTreeseedGitBatch,
|
|
53
|
+
runTreeseedGitOk,
|
|
54
|
+
runTreeseedGitText
|
|
55
|
+
} from "./operations/services/git-runner.js";
|
|
23
56
|
import { TreeseedOperationError } from "./operations-types.js";
|
|
24
57
|
import {
|
|
25
58
|
AGENT_OPERATION_MODES,
|
|
@@ -38,23 +71,44 @@ export {
|
|
|
38
71
|
TreeseedOperationError,
|
|
39
72
|
TreeseedOperationsSdk,
|
|
40
73
|
TreeseedWorkflowSdk,
|
|
74
|
+
buildTreeseedProofPlan,
|
|
41
75
|
cancelGitHubWorkflowRun,
|
|
76
|
+
classifyTreeseedGitMode,
|
|
77
|
+
cleanProofLedger,
|
|
42
78
|
collectTreeseedConfigSeedValues,
|
|
79
|
+
computeProofInputHash,
|
|
43
80
|
createAgentOperationEvent,
|
|
44
81
|
createKnowledgeHubRepositories,
|
|
82
|
+
createProofRecord,
|
|
83
|
+
createTreeseedWorkflowTimer,
|
|
45
84
|
decideAgentOperationPermission,
|
|
46
85
|
defaultHubContentResolutionPolicy,
|
|
47
86
|
deniedAgentOperationResult,
|
|
48
|
-
dispatchGitHubWorkflowRun,
|
|
49
87
|
executeKnowledgeHubLaunch,
|
|
88
|
+
findReusableProof,
|
|
50
89
|
findTreeseedOperation,
|
|
51
90
|
formatGitHubWorkflowFailure,
|
|
91
|
+
formatTreeseedDuration,
|
|
92
|
+
inspectTreeseedGitLocks,
|
|
93
|
+
inspectTreeseedWorkspaceGitLocks,
|
|
94
|
+
invalidateProofs,
|
|
52
95
|
isAgentOperationName,
|
|
53
96
|
listTreeseedOperationNames,
|
|
54
97
|
normalizeKnowledgeHubLaunchIntent,
|
|
55
98
|
planKnowledgeHubLaunch,
|
|
56
99
|
planKnowledgeHubRepositories,
|
|
100
|
+
proofIdFor,
|
|
101
|
+
readProofLedger,
|
|
102
|
+
recoverTreeseedGitLocks,
|
|
57
103
|
resolveAgentOperationGrant,
|
|
104
|
+
runTreeseedGit,
|
|
105
|
+
runTreeseedGitBatch,
|
|
106
|
+
runTreeseedGitOk,
|
|
107
|
+
runTreeseedGitText,
|
|
108
|
+
runTreeseedProof,
|
|
109
|
+
slowestTreeseedWorkflowPhases,
|
|
110
|
+
summarizeTreeseedProofLedger,
|
|
58
111
|
validateRepositoryHost,
|
|
59
|
-
waitForGitHubWorkflowRunCompletion
|
|
112
|
+
waitForGitHubWorkflowRunCompletion,
|
|
113
|
+
writeProofRecord
|
|
60
114
|
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { discoverTreeseedApplications } from '../hosting/apps.js';
|
|
2
|
+
import { discoverTreeseedPackageAdapters } from '../operations/services/package-adapters.js';
|
|
3
|
+
import { collectTreeseedEnvironmentContext } from '../operations/services/config-runtime.js';
|
|
4
|
+
import type { TreeseedDeployConfig } from './contracts.js';
|
|
5
|
+
export type TreeseedPlatformConfigInput = {
|
|
6
|
+
tenantRoot: string;
|
|
7
|
+
environment: 'local' | 'staging' | 'prod';
|
|
8
|
+
env?: Record<string, string | undefined>;
|
|
9
|
+
capacityConfigPath?: string | null;
|
|
10
|
+
};
|
|
11
|
+
declare function loadCapacityLaunchFromPackageManifest(tenantRoot: string): {
|
|
12
|
+
path: string;
|
|
13
|
+
manifest: import("../capacity-provider.js").CapacityProviderLaunchManifest;
|
|
14
|
+
plan: import("../capacity-provider.js").CapacityProviderLaunchPlan;
|
|
15
|
+
} | null;
|
|
16
|
+
declare function loadTreeseedDevManifest(tenantRoot: string): Record<string, unknown>;
|
|
17
|
+
export declare function loadTreeseedPlatformConfig(input: TreeseedPlatformConfigInput): {
|
|
18
|
+
tenantRoot: string;
|
|
19
|
+
environment: 'local' | 'staging' | 'prod';
|
|
20
|
+
deployConfig: TreeseedDeployConfig;
|
|
21
|
+
packages: ReturnType<typeof discoverTreeseedPackageAdapters>;
|
|
22
|
+
applications: ReturnType<typeof discoverTreeseedApplications>;
|
|
23
|
+
capacityLaunch: ReturnType<typeof loadCapacityLaunchFromPackageManifest>;
|
|
24
|
+
dev: ReturnType<typeof loadTreeseedDevManifest>;
|
|
25
|
+
envRegistry: ReturnType<typeof collectTreeseedEnvironmentContext> | null;
|
|
26
|
+
};
|
|
27
|
+
export {};
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
2
|
+
import { resolve } from "node:path";
|
|
3
|
+
import { parse as parseYaml } from "yaml";
|
|
4
|
+
import { parseCapacityProviderLaunchManifest, resolveCapacityProviderLaunchPlan } from "../capacity-provider.js";
|
|
5
|
+
import { discoverTreeseedApplications } from "../hosting/apps.js";
|
|
6
|
+
import { discoverTreeseedPackageAdapters } from "../operations/services/package-adapters.js";
|
|
7
|
+
import { collectTreeseedEnvironmentContext } from "../operations/services/config-runtime.js";
|
|
8
|
+
import { loadTreeseedDeployConfigFromPath, resolveTreeseedDeployConfigPathFromRoot } from "./deploy-config.js";
|
|
9
|
+
function loadOptionalYaml(filePath) {
|
|
10
|
+
if (!existsSync(filePath)) return null;
|
|
11
|
+
return parseYaml(readFileSync(filePath, "utf8"));
|
|
12
|
+
}
|
|
13
|
+
function loadCapacityLaunchFromPackageManifest(tenantRoot) {
|
|
14
|
+
const agentManifestPath = resolve(tenantRoot, "packages", "agent", "treeseed.package.yaml");
|
|
15
|
+
const manifest = loadOptionalYaml(agentManifestPath);
|
|
16
|
+
const capacityProvider = manifest?.capacityProvider;
|
|
17
|
+
if (!capacityProvider || typeof capacityProvider !== "object" || Array.isArray(capacityProvider)) return null;
|
|
18
|
+
const local = capacityProvider.local ?? {};
|
|
19
|
+
const roles = capacityProvider.roles ?? {};
|
|
20
|
+
const launchManifest = {
|
|
21
|
+
schemaVersion: 1,
|
|
22
|
+
provider: {
|
|
23
|
+
dataDir: local.dataDir ?? ".treeseed/local-capacity-provider/data",
|
|
24
|
+
environment: "local"
|
|
25
|
+
},
|
|
26
|
+
runtime: {
|
|
27
|
+
images: {
|
|
28
|
+
roles: {
|
|
29
|
+
manager: { image: roles.manager?.image ?? "treeseed/agent-manager", tag: roles.manager?.tag ?? "latest" },
|
|
30
|
+
runner: { image: roles.runner?.image ?? "treeseed/agent-runner", tag: roles.runner?.tag ?? "latest" }
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
const parsed = parseCapacityProviderLaunchManifest(launchManifest);
|
|
36
|
+
return {
|
|
37
|
+
path: agentManifestPath,
|
|
38
|
+
manifest: parsed,
|
|
39
|
+
plan: resolveCapacityProviderLaunchPlan(parsed)
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
function loadCapacityLaunchFromPath(configPath) {
|
|
43
|
+
if (!configPath) return null;
|
|
44
|
+
const absolutePath = resolve(configPath);
|
|
45
|
+
if (!existsSync(absolutePath)) {
|
|
46
|
+
throw new Error(`Capacity launch config was not found: ${absolutePath}`);
|
|
47
|
+
}
|
|
48
|
+
const parsed = parseCapacityProviderLaunchManifest(readFileSync(absolutePath, "utf8"));
|
|
49
|
+
return {
|
|
50
|
+
path: absolutePath,
|
|
51
|
+
manifest: parsed,
|
|
52
|
+
plan: resolveCapacityProviderLaunchPlan(parsed)
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
function loadTreeseedDevManifest(tenantRoot) {
|
|
56
|
+
return loadOptionalYaml(resolve(tenantRoot, "treeseed.dev.yaml")) ?? {
|
|
57
|
+
schemaVersion: 1,
|
|
58
|
+
dev: {
|
|
59
|
+
processes: {
|
|
60
|
+
"market-web": { package: "@treeseed/market", cwd: ".", surface: "web" },
|
|
61
|
+
api: { package: "@treeseed/api", cwd: "packages/api", surface: "api" },
|
|
62
|
+
"operations-runner": { package: "@treeseed/api", cwd: "packages/api", surface: "operations-runner" }
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
function discoverPlatformPackages(tenantRoot) {
|
|
68
|
+
if (!existsSync(resolve(tenantRoot, "package.json"))) {
|
|
69
|
+
return [];
|
|
70
|
+
}
|
|
71
|
+
return discoverTreeseedPackageAdapters(tenantRoot);
|
|
72
|
+
}
|
|
73
|
+
function loadTreeseedPlatformConfig(input) {
|
|
74
|
+
const tenantRoot = resolve(input.tenantRoot);
|
|
75
|
+
const deployConfigPath = resolveTreeseedDeployConfigPathFromRoot(tenantRoot);
|
|
76
|
+
const deployConfig = loadTreeseedDeployConfigFromPath(deployConfigPath);
|
|
77
|
+
const packages = discoverPlatformPackages(tenantRoot);
|
|
78
|
+
const applications = discoverTreeseedApplications(tenantRoot);
|
|
79
|
+
const capacityLaunch = loadCapacityLaunchFromPath(input.capacityConfigPath ?? input.env?.TREESEED_CAPACITY_CONFIG_PATH) ?? loadCapacityLaunchFromPackageManifest(tenantRoot);
|
|
80
|
+
const dev = loadTreeseedDevManifest(tenantRoot);
|
|
81
|
+
let envRegistry = null;
|
|
82
|
+
try {
|
|
83
|
+
envRegistry = collectTreeseedEnvironmentContext(tenantRoot, input.environment, { env: input.env });
|
|
84
|
+
} catch {
|
|
85
|
+
envRegistry = null;
|
|
86
|
+
}
|
|
87
|
+
return {
|
|
88
|
+
tenantRoot,
|
|
89
|
+
environment: input.environment,
|
|
90
|
+
deployConfig,
|
|
91
|
+
packages,
|
|
92
|
+
applications,
|
|
93
|
+
capacityLaunch,
|
|
94
|
+
dev,
|
|
95
|
+
envRegistry
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
export {
|
|
99
|
+
loadTreeseedPlatformConfig
|
|
100
|
+
};
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { SeedContentRuntimeSource, SeedProjectArchitecture } from '../seeds/types.js';
|
|
2
|
+
export type TreeseedEffectiveContentSource = SeedContentRuntimeSource | 'missing';
|
|
3
|
+
export type TreeseedContentRuntimeMode = 'local' | 'treedx' | 'r2' | 'missing';
|
|
4
|
+
export type TreeseedContentRuntimeDiagnosticStatus = 'ready' | 'missing' | 'site_not_prepared' | 'unsupported_structure';
|
|
5
|
+
export type TreeseedContentRuntimeDiagnostic = {
|
|
6
|
+
code: string;
|
|
7
|
+
status: TreeseedContentRuntimeDiagnosticStatus;
|
|
8
|
+
source: TreeseedContentRuntimeMode;
|
|
9
|
+
summary: string;
|
|
10
|
+
relativePath?: string;
|
|
11
|
+
};
|
|
12
|
+
export type TreeseedLocalContentRuntimeSummary = {
|
|
13
|
+
requestedLocalContentMode?: 'auto' | 'none' | 'preview' | 'edit' | string;
|
|
14
|
+
materializationStatus?: string | null;
|
|
15
|
+
effectiveLocalPath?: string | null;
|
|
16
|
+
localPathExists?: boolean;
|
|
17
|
+
};
|
|
18
|
+
export type TreeseedR2ContentRuntimeMetadata = {
|
|
19
|
+
manifestKey?: string | null;
|
|
20
|
+
overlayKey?: string | null;
|
|
21
|
+
revision?: string | null;
|
|
22
|
+
};
|
|
23
|
+
export type TreeseedTreeDxContentRuntimeMetadata = {
|
|
24
|
+
libraryId?: string | null;
|
|
25
|
+
repositoryId?: string | null;
|
|
26
|
+
snapshotId?: string | null;
|
|
27
|
+
};
|
|
28
|
+
export type TreeseedContentRuntimeResolution = {
|
|
29
|
+
contentRuntimeSource: SeedContentRuntimeSource;
|
|
30
|
+
effectiveContentSource: TreeseedEffectiveContentSource;
|
|
31
|
+
mode: TreeseedContentRuntimeMode;
|
|
32
|
+
ready: boolean;
|
|
33
|
+
manifestKey: string | null;
|
|
34
|
+
overlayKey: string | null;
|
|
35
|
+
revision: string | null;
|
|
36
|
+
snapshotId: string | null;
|
|
37
|
+
diagnostics: TreeseedContentRuntimeDiagnostic[];
|
|
38
|
+
localPath?: string | null;
|
|
39
|
+
};
|
|
40
|
+
export declare function resolveTreeseedContentRuntimeSource(input: {
|
|
41
|
+
architecture: Pick<SeedProjectArchitecture, 'contentRuntimeSource' | 'contentPublishTarget'>;
|
|
42
|
+
local?: TreeseedLocalContentRuntimeSummary | null;
|
|
43
|
+
r2?: TreeseedR2ContentRuntimeMetadata | null;
|
|
44
|
+
treeDx?: TreeseedTreeDxContentRuntimeMetadata | null;
|
|
45
|
+
includeLocalPath?: boolean;
|
|
46
|
+
}): TreeseedContentRuntimeResolution;
|
|
47
|
+
export declare function inspectTreeseedContentStructure(input: {
|
|
48
|
+
projectRoot: string;
|
|
49
|
+
architecture: Pick<SeedProjectArchitecture, 'rootPath' | 'sitePath' | 'contentPath'>;
|
|
50
|
+
}): TreeseedContentRuntimeDiagnostic;
|
|
51
|
+
export declare function contentRuntimeMetadataFromTarget(target: unknown): {
|
|
52
|
+
r2: TreeseedR2ContentRuntimeMetadata;
|
|
53
|
+
treeDx: TreeseedTreeDxContentRuntimeMetadata;
|
|
54
|
+
};
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { existsSync, readdirSync, statSync } from "node:fs";
|
|
2
|
+
import { resolve } from "node:path";
|
|
3
|
+
function isRecord(value) {
|
|
4
|
+
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
5
|
+
}
|
|
6
|
+
function text(value, fallback = "") {
|
|
7
|
+
return typeof value === "string" && value.trim() ? value.trim() : fallback;
|
|
8
|
+
}
|
|
9
|
+
function cleanRelativePath(value, fallback = ".") {
|
|
10
|
+
const raw = text(value, fallback).replace(/\\/gu, "/").replace(/^\/+/u, "");
|
|
11
|
+
const parts = raw.split("/").filter((part) => part && part !== ".");
|
|
12
|
+
if (parts.some((part) => part === "..")) return fallback;
|
|
13
|
+
return parts.length > 0 ? parts.join("/") : ".";
|
|
14
|
+
}
|
|
15
|
+
function contentRuntimeMode(source) {
|
|
16
|
+
if (source === "local_directory") return "local";
|
|
17
|
+
if (source === "treedx_snapshot") return "treedx";
|
|
18
|
+
if (source === "r2_published_manifest" || source === "r2_preview_overlay") return "r2";
|
|
19
|
+
return "missing";
|
|
20
|
+
}
|
|
21
|
+
function localStatusReady(status) {
|
|
22
|
+
return status === "existing_path_ready" || status === "managed_clone_ready" || status === "submodule_ready";
|
|
23
|
+
}
|
|
24
|
+
function localContentRequested(architecture, local) {
|
|
25
|
+
const mode = local?.requestedLocalContentMode;
|
|
26
|
+
return architecture.contentRuntimeSource === "local_directory" || mode === "preview" || mode === "edit";
|
|
27
|
+
}
|
|
28
|
+
function defaultManifestKey(architecture) {
|
|
29
|
+
const target = architecture.contentPublishTarget;
|
|
30
|
+
return target?.kind === "cloudflare_r2" && typeof target.manifestPath === "string" && target.manifestPath.trim() ? target.manifestPath.trim() : null;
|
|
31
|
+
}
|
|
32
|
+
function resolveTreeseedContentRuntimeSource(input) {
|
|
33
|
+
const diagnostics = [];
|
|
34
|
+
const localReady = input.local?.localPathExists === true || localStatusReady(input.local?.materializationStatus);
|
|
35
|
+
const localSelected = localReady && localContentRequested(input.architecture, input.local);
|
|
36
|
+
const source = localSelected ? "local_directory" : input.architecture.contentRuntimeSource ?? "r2_published_manifest";
|
|
37
|
+
const mode = contentRuntimeMode(source);
|
|
38
|
+
const manifestKey = input.r2?.manifestKey ?? defaultManifestKey(input.architecture);
|
|
39
|
+
const overlayKey = source === "r2_preview_overlay" ? input.r2?.overlayKey ?? null : null;
|
|
40
|
+
const snapshotId = source === "treedx_snapshot" ? input.treeDx?.snapshotId ?? null : null;
|
|
41
|
+
const revision = source === "r2_published_manifest" || source === "r2_preview_overlay" ? input.r2?.revision ?? null : null;
|
|
42
|
+
if (source === "local_directory") {
|
|
43
|
+
diagnostics.push({
|
|
44
|
+
code: localReady ? "local_content_ready" : "local_content_missing",
|
|
45
|
+
status: localReady ? "ready" : "missing",
|
|
46
|
+
source: "local",
|
|
47
|
+
summary: localReady ? "Local content path is available for runtime preview." : "Local content path is not available."
|
|
48
|
+
});
|
|
49
|
+
} else if (source === "treedx_snapshot") {
|
|
50
|
+
const ready = Boolean(snapshotId || input.treeDx?.libraryId || input.treeDx?.repositoryId);
|
|
51
|
+
diagnostics.push({
|
|
52
|
+
code: ready ? "treedx_snapshot_ready" : "treedx_snapshot_missing",
|
|
53
|
+
status: ready ? "ready" : "missing",
|
|
54
|
+
source: "treedx",
|
|
55
|
+
summary: ready ? "TreeDX content snapshot metadata is available." : "TreeDX content snapshot metadata is missing."
|
|
56
|
+
});
|
|
57
|
+
} else if (source === "r2_published_manifest" || source === "r2_preview_overlay") {
|
|
58
|
+
const ready = Boolean(manifestKey);
|
|
59
|
+
diagnostics.push({
|
|
60
|
+
code: ready ? "r2_manifest_ready" : "r2_manifest_missing",
|
|
61
|
+
status: ready ? "ready" : "missing",
|
|
62
|
+
source: "r2",
|
|
63
|
+
summary: ready ? "R2 published content manifest metadata is available." : "R2 published content manifest metadata is missing."
|
|
64
|
+
});
|
|
65
|
+
if (source === "r2_preview_overlay" && !overlayKey) {
|
|
66
|
+
diagnostics.push({
|
|
67
|
+
code: "r2_preview_overlay_missing",
|
|
68
|
+
status: "missing",
|
|
69
|
+
source: "r2",
|
|
70
|
+
summary: "R2 preview overlay metadata is missing."
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return {
|
|
75
|
+
contentRuntimeSource: input.architecture.contentRuntimeSource,
|
|
76
|
+
effectiveContentSource: source,
|
|
77
|
+
mode,
|
|
78
|
+
ready: diagnostics.every((entry) => entry.status === "ready"),
|
|
79
|
+
manifestKey,
|
|
80
|
+
overlayKey,
|
|
81
|
+
revision,
|
|
82
|
+
snapshotId,
|
|
83
|
+
diagnostics,
|
|
84
|
+
...input.includeLocalPath ? { localPath: input.local?.effectiveLocalPath ?? null } : {}
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
function hasMarkdownFile(root) {
|
|
88
|
+
if (!existsSync(root)) return false;
|
|
89
|
+
const stats = statSync(root);
|
|
90
|
+
if (stats.isFile()) return root.endsWith(".md") || root.endsWith(".mdx");
|
|
91
|
+
if (!stats.isDirectory()) return false;
|
|
92
|
+
return readdirSync(root, { withFileTypes: true }).some((entry) => {
|
|
93
|
+
const fullPath = resolve(root, entry.name);
|
|
94
|
+
if (entry.isDirectory()) return hasMarkdownFile(fullPath);
|
|
95
|
+
return entry.isFile() && (entry.name.endsWith(".md") || entry.name.endsWith(".mdx"));
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
function inspectTreeseedContentStructure(input) {
|
|
99
|
+
const rootPath = cleanRelativePath(input.architecture.rootPath);
|
|
100
|
+
const sitePath = cleanRelativePath(input.architecture.sitePath);
|
|
101
|
+
const contentPath = input.architecture.contentPath ? cleanRelativePath(input.architecture.contentPath) : null;
|
|
102
|
+
const siteRoot = resolve(input.projectRoot, rootPath === "." ? "" : rootPath, sitePath === "." ? "" : sitePath);
|
|
103
|
+
if (!existsSync(siteRoot)) {
|
|
104
|
+
return {
|
|
105
|
+
code: "site_not_prepared",
|
|
106
|
+
status: "site_not_prepared",
|
|
107
|
+
source: "local",
|
|
108
|
+
summary: "Site path is not prepared yet.",
|
|
109
|
+
relativePath: sitePath
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
const candidatePaths = [
|
|
113
|
+
contentPath,
|
|
114
|
+
sitePath === "." ? "src/content" : `${sitePath}/src/content`,
|
|
115
|
+
sitePath,
|
|
116
|
+
"content"
|
|
117
|
+
].filter((entry) => Boolean(entry));
|
|
118
|
+
for (const candidate of [...new Set(candidatePaths)]) {
|
|
119
|
+
const absolute = resolve(input.projectRoot, rootPath === "." ? "" : rootPath, candidate === "." ? "" : candidate);
|
|
120
|
+
if (!existsSync(absolute)) continue;
|
|
121
|
+
if (hasMarkdownFile(absolute)) {
|
|
122
|
+
return {
|
|
123
|
+
code: "content_structure_ready",
|
|
124
|
+
status: "ready",
|
|
125
|
+
source: "local",
|
|
126
|
+
summary: "Content structure contains Markdown or MDX files.",
|
|
127
|
+
relativePath: candidate
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
return {
|
|
131
|
+
code: "unsupported_content_structure",
|
|
132
|
+
status: "unsupported_structure",
|
|
133
|
+
source: "local",
|
|
134
|
+
summary: "Content path exists but does not contain Markdown or MDX files.",
|
|
135
|
+
relativePath: candidate
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
return {
|
|
139
|
+
code: "content_structure_missing",
|
|
140
|
+
status: "missing",
|
|
141
|
+
source: "local",
|
|
142
|
+
summary: "No supported local content path was found.",
|
|
143
|
+
relativePath: contentPath ?? "src/content"
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
function contentRuntimeMetadataFromTarget(target) {
|
|
147
|
+
const record = isRecord(target) ? target : {};
|
|
148
|
+
const contentRuntime = isRecord(record.contentRuntime) ? record.contentRuntime : {};
|
|
149
|
+
const contentPublish = isRecord(record.contentPublish) ? record.contentPublish : {};
|
|
150
|
+
const r2 = isRecord(contentRuntime.r2) ? contentRuntime.r2 : isRecord(contentPublish.r2) ? contentPublish.r2 : {};
|
|
151
|
+
const treeDx = isRecord(contentRuntime.treeDx) ? contentRuntime.treeDx : contentPublish.provider === "treedx" ? contentPublish : {};
|
|
152
|
+
return {
|
|
153
|
+
r2: {
|
|
154
|
+
manifestKey: text(contentRuntime.manifestKey) || text(r2.manifestKey) || text(r2.manifestPath) || null,
|
|
155
|
+
overlayKey: text(contentRuntime.overlayKey) || text(r2.overlayKey) || null,
|
|
156
|
+
revision: text(contentRuntime.revision) || text(r2.revision) || null
|
|
157
|
+
},
|
|
158
|
+
treeDx: {
|
|
159
|
+
libraryId: text(treeDx.libraryId) || null,
|
|
160
|
+
repositoryId: text(treeDx.repositoryId) || null,
|
|
161
|
+
snapshotId: text(treeDx.snapshotId) || text(contentPublish.snapshotId) || null
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
export {
|
|
166
|
+
contentRuntimeMetadataFromTarget,
|
|
167
|
+
inspectTreeseedContentStructure,
|
|
168
|
+
resolveTreeseedContentRuntimeSource
|
|
169
|
+
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CapacityProviderRegistrationRequest } from '../capacity-provider.
|
|
1
|
+
import type { CapacityProviderRegistrationRequest } from '../capacity-provider.js';
|
|
2
2
|
export type TreeseedFeatureName = 'docs' | 'books' | 'notes' | 'questions' | 'objectives' | 'proposals' | 'decisions' | 'agents' | 'forms';
|
|
3
3
|
export type TreeseedContentCollection = 'pages' | 'notes' | 'questions' | 'objectives' | 'proposals' | 'decisions' | 'people' | 'agents' | 'books' | 'docs' | 'templates' | 'knowledge_packs' | 'workdays';
|
|
4
4
|
export interface TreeseedFeatureModules {
|
|
@@ -177,9 +177,10 @@ export interface TreeseedCloudflarePagesConfig {
|
|
|
177
177
|
previewProjectName?: string;
|
|
178
178
|
productionBranch?: string;
|
|
179
179
|
stagingBranch?: string;
|
|
180
|
+
buildCommand?: string;
|
|
180
181
|
buildOutputDir?: string;
|
|
181
182
|
}
|
|
182
|
-
export type TreeseedHostingKind = '
|
|
183
|
+
export type TreeseedHostingKind = 'treeseed_control_plane' | 'hosted_project' | 'self_hosted_project';
|
|
183
184
|
export type TreeseedHostingRegistration = 'optional' | 'none';
|
|
184
185
|
export type TreeseedHubMode = 'treeseed_hosted' | 'customer_hosted';
|
|
185
186
|
export type TreeseedRuntimeMode = 'none' | 'byo_attached' | 'treeseed_managed';
|
|
@@ -225,6 +226,11 @@ export interface TreeseedManagedServiceRailwayConfig {
|
|
|
225
226
|
serviceId?: string;
|
|
226
227
|
serviceName?: string;
|
|
227
228
|
rootDir?: string;
|
|
229
|
+
imageRef?: string;
|
|
230
|
+
sourceMode?: 'git' | 'image';
|
|
231
|
+
sourceRepo?: string;
|
|
232
|
+
sourceBranch?: string;
|
|
233
|
+
sourceRootDirectory?: string;
|
|
228
234
|
buildCommand?: string;
|
|
229
235
|
startCommand?: string;
|
|
230
236
|
healthcheckPath?: string;
|
|
@@ -232,6 +238,15 @@ export interface TreeseedManagedServiceRailwayConfig {
|
|
|
232
238
|
healthcheckIntervalSeconds?: number;
|
|
233
239
|
restartPolicy?: string;
|
|
234
240
|
runtimeMode?: string;
|
|
241
|
+
resourceType?: string;
|
|
242
|
+
environmentVariable?: string;
|
|
243
|
+
serviceTargets?: string[];
|
|
244
|
+
volumeMountPath?: string;
|
|
245
|
+
runnerPool?: {
|
|
246
|
+
bootstrapCount?: number;
|
|
247
|
+
maxRunners?: number;
|
|
248
|
+
volumeMountPath?: string;
|
|
249
|
+
};
|
|
235
250
|
schedule?: string | string[];
|
|
236
251
|
}
|
|
237
252
|
export interface TreeseedManagedServiceConfig {
|
|
@@ -248,6 +263,14 @@ export interface TreeseedManagedServicesConfig {
|
|
|
248
263
|
api?: TreeseedManagedServiceConfig;
|
|
249
264
|
[key: string]: TreeseedManagedServiceConfig | undefined;
|
|
250
265
|
}
|
|
266
|
+
export interface TreeseedPublicTreeDxFederationConfig {
|
|
267
|
+
railway?: {
|
|
268
|
+
nodePool?: {
|
|
269
|
+
bootstrapCount?: number;
|
|
270
|
+
maxNodes?: number;
|
|
271
|
+
};
|
|
272
|
+
};
|
|
273
|
+
}
|
|
251
274
|
export interface TreeseedPlatformSurfacesConfig {
|
|
252
275
|
web?: TreeseedPlatformSurfaceConfig;
|
|
253
276
|
api?: TreeseedPlatformSurfaceConfig;
|
|
@@ -278,6 +301,14 @@ export interface TreeseedExportConfig {
|
|
|
278
301
|
ignore?: string[];
|
|
279
302
|
bundledPaths?: string[];
|
|
280
303
|
}
|
|
304
|
+
export interface TreeseedApiConnectionConfig {
|
|
305
|
+
proxyPrefix?: string;
|
|
306
|
+
localBaseUrl?: string;
|
|
307
|
+
environments?: Partial<Record<'local' | 'staging' | 'prod', {
|
|
308
|
+
baseUrl?: string;
|
|
309
|
+
domain?: string;
|
|
310
|
+
}>>;
|
|
311
|
+
}
|
|
281
312
|
export interface TreeseedDeployConfig {
|
|
282
313
|
name: string;
|
|
283
314
|
slug: string;
|
|
@@ -302,6 +333,11 @@ export interface TreeseedDeployConfig {
|
|
|
302
333
|
providers: TreeseedProviderSelections;
|
|
303
334
|
surfaces?: TreeseedPlatformSurfacesConfig;
|
|
304
335
|
services?: TreeseedManagedServicesConfig;
|
|
336
|
+
publicTreeDxFederation?: TreeseedPublicTreeDxFederationConfig;
|
|
337
|
+
connections?: {
|
|
338
|
+
api?: TreeseedApiConnectionConfig;
|
|
339
|
+
[key: string]: unknown;
|
|
340
|
+
};
|
|
305
341
|
processing?: TreeseedProcessingConfig;
|
|
306
342
|
capacityProviders?: Record<string, CapacityProviderRegistrationRequest>;
|
|
307
343
|
smtp?: {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { TreeseedDeployConfig, TreeseedWebCachePolicyConfig } from './contracts.
|
|
1
|
+
import type { TreeseedDeployConfig, TreeseedWebCachePolicyConfig } from './contracts.js';
|
|
2
2
|
export declare function resolveTreeseedDeployConfigPath(configPath?: string): string;
|
|
3
3
|
export declare function resolveTreeseedDeployConfigPathFromRoot(tenantRoot: string, configPath?: string): string;
|
|
4
4
|
export declare function deriveCloudflareWorkerName(config: TreeseedDeployConfig): string;
|