@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,4 +1,4 @@
|
|
|
1
|
-
import { type PlatformOperation, type PlatformOperationEvent, type PlatformRunnerClaimRequest, type PlatformRunnerHeartbeatRequest, type PlatformRunnerJobUpdateRequest, type PlatformRunnerRegistrationRequest } from './platform-operations.
|
|
1
|
+
import { type PlatformOperation, type PlatformOperationEvent, type PlatformRunnerClaimRequest, type PlatformRunnerHeartbeatRequest, type PlatformRunnerJobUpdateRequest, type PlatformRunnerRegistrationRequest } from './platform-operations.js';
|
|
2
2
|
export type DatabaseProvider = 'd1' | 'sqlite' | 'postgres';
|
|
3
3
|
export interface RelationalDatabaseAdapter {
|
|
4
4
|
readonly provider: DatabaseProvider;
|
|
@@ -211,8 +211,8 @@ async function createRelationalAdapterFromUrl(databaseUrl) {
|
|
|
211
211
|
return createSqliteRelationalAdapter(value);
|
|
212
212
|
}
|
|
213
213
|
async function createPlatformOperationStoreFromEnv(options = {}) {
|
|
214
|
-
const databaseUrl = options.databaseUrl ?? globalThis.process?.env?.
|
|
215
|
-
if (!databaseUrl?.trim()) throw new Error("
|
|
214
|
+
const databaseUrl = options.databaseUrl ?? globalThis.process?.env?.TREESEED_DATABASE_URL ?? null;
|
|
215
|
+
if (!databaseUrl?.trim()) throw new Error("TREESEED_DATABASE_URL is required for direct database platform operations.");
|
|
216
216
|
const database = await createRelationalAdapterFromUrl(databaseUrl);
|
|
217
217
|
return new PlatformOperationStore({ database, initializeSchema: options.initializeSchema ?? true });
|
|
218
218
|
}
|
|
@@ -295,7 +295,7 @@ class PlatformRunnerClient {
|
|
|
295
295
|
this.marketUrl = normalizeBaseUrl(options.marketUrl);
|
|
296
296
|
this.marketId = options.marketId.trim();
|
|
297
297
|
this.runnerSecret = options.runnerSecret.trim();
|
|
298
|
-
if (!this.marketUrl) throw new Error("
|
|
298
|
+
if (!this.marketUrl) throw new Error("API URL is required.");
|
|
299
299
|
if (!this.marketId) throw new Error("Market ID is required.");
|
|
300
300
|
if (!this.runnerSecret) throw new Error("Platform runner secret is required.");
|
|
301
301
|
this.fetchImpl = options.fetchImpl ?? fetch;
|
package/dist/plugin-default.d.ts
CHANGED
package/dist/plugin-default.js
CHANGED
|
@@ -6,20 +6,35 @@ var plugin_default_default = defineTreeseedPlugin({
|
|
|
6
6
|
forms: ["store_only", "notify_admin", "full_email"],
|
|
7
7
|
operations: ["default"],
|
|
8
8
|
agents: {
|
|
9
|
-
execution: [
|
|
9
|
+
execution: [
|
|
10
|
+
"copilot",
|
|
11
|
+
"codex",
|
|
12
|
+
"codex_subscription",
|
|
13
|
+
"jira",
|
|
14
|
+
"jira_issue_queue",
|
|
15
|
+
"human_issue_queue",
|
|
16
|
+
"github_issues",
|
|
17
|
+
"github_issue_queue",
|
|
18
|
+
"issue_queue",
|
|
19
|
+
"discord",
|
|
20
|
+
"discord_thread",
|
|
21
|
+
"workflow",
|
|
22
|
+
"workflow_operation",
|
|
23
|
+
"deterministic_workflow",
|
|
24
|
+
"github_actions",
|
|
25
|
+
"github_actions_workflow"
|
|
26
|
+
],
|
|
10
27
|
mutation: ["local_branch"],
|
|
11
|
-
repository: ["
|
|
12
|
-
verification: ["
|
|
13
|
-
notification: ["
|
|
14
|
-
research: ["
|
|
28
|
+
repository: ["git"],
|
|
29
|
+
verification: ["local"],
|
|
30
|
+
notification: ["sdk_message"],
|
|
31
|
+
research: ["project_graph"],
|
|
15
32
|
handlers: [
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"reviewer",
|
|
22
|
-
"releaser"
|
|
33
|
+
"plan",
|
|
34
|
+
"research",
|
|
35
|
+
"act",
|
|
36
|
+
"review",
|
|
37
|
+
"report"
|
|
23
38
|
]
|
|
24
39
|
},
|
|
25
40
|
deploy: ["cloudflare"],
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import type { SeedProjectArchitecture, SeedProjectContentPublishTarget } from './seeds/types.js';
|
|
2
|
+
export { githubRepositoryCredentialEnvName } from './operations/services/github-credentials.js';
|
|
3
|
+
export type TreeseedRepositoryImportProvider = 'github';
|
|
4
|
+
export type TreeseedRepositoryImportVisibility = 'public' | 'private';
|
|
5
|
+
export interface TreeseedGitHubRepositoryObservation {
|
|
6
|
+
provider?: TreeseedRepositoryImportProvider | string;
|
|
7
|
+
owner?: string;
|
|
8
|
+
name?: string;
|
|
9
|
+
repository?: string;
|
|
10
|
+
defaultBranch?: string;
|
|
11
|
+
visibility?: TreeseedRepositoryImportVisibility | string;
|
|
12
|
+
htmlUrl?: string;
|
|
13
|
+
cloneUrl?: string;
|
|
14
|
+
files?: string[];
|
|
15
|
+
directories?: string[];
|
|
16
|
+
manifests?: Record<string, unknown>;
|
|
17
|
+
}
|
|
18
|
+
export interface TreeseedRepositoryImportInput {
|
|
19
|
+
team: string;
|
|
20
|
+
repository: string;
|
|
21
|
+
observation?: TreeseedGitHubRepositoryObservation;
|
|
22
|
+
rootPath?: string;
|
|
23
|
+
sitePath?: string;
|
|
24
|
+
contentPath?: string | null;
|
|
25
|
+
visibility?: TreeseedRepositoryImportVisibility | string;
|
|
26
|
+
credentialRef?: string;
|
|
27
|
+
contentPublishTarget?: SeedProjectContentPublishTarget;
|
|
28
|
+
env?: Record<string, string | undefined>;
|
|
29
|
+
}
|
|
30
|
+
export interface TreeseedRepositoryImportDiagnostic {
|
|
31
|
+
severity: 'info' | 'warning' | 'error';
|
|
32
|
+
code: string;
|
|
33
|
+
message: string;
|
|
34
|
+
path?: string;
|
|
35
|
+
}
|
|
36
|
+
export interface TreeseedRepositoryImportPathCandidates {
|
|
37
|
+
rootPath: string[];
|
|
38
|
+
sitePath: string[];
|
|
39
|
+
contentPath: string[];
|
|
40
|
+
manifests: string[];
|
|
41
|
+
}
|
|
42
|
+
export interface TreeseedRepositoryImportPlan {
|
|
43
|
+
ok: boolean;
|
|
44
|
+
provider: TreeseedRepositoryImportProvider;
|
|
45
|
+
team: string;
|
|
46
|
+
repository: {
|
|
47
|
+
owner: string;
|
|
48
|
+
name: string;
|
|
49
|
+
slug: string;
|
|
50
|
+
defaultBranch: string;
|
|
51
|
+
visibility: TreeseedRepositoryImportVisibility;
|
|
52
|
+
htmlUrl: string;
|
|
53
|
+
cloneUrl: string;
|
|
54
|
+
};
|
|
55
|
+
credentialRef: string;
|
|
56
|
+
credential: {
|
|
57
|
+
ref: string;
|
|
58
|
+
configured: boolean;
|
|
59
|
+
source: 'repository' | 'fallback' | 'missing' | 'explicit';
|
|
60
|
+
repositoryScopedRef: string;
|
|
61
|
+
};
|
|
62
|
+
architecture: SeedProjectArchitecture;
|
|
63
|
+
candidates: TreeseedRepositoryImportPathCandidates;
|
|
64
|
+
diagnostics: TreeseedRepositoryImportDiagnostic[];
|
|
65
|
+
plannedRecords: {
|
|
66
|
+
project: {
|
|
67
|
+
slug: string;
|
|
68
|
+
name: string;
|
|
69
|
+
visibility: TreeseedRepositoryImportVisibility;
|
|
70
|
+
};
|
|
71
|
+
hubRepository: {
|
|
72
|
+
role: 'software';
|
|
73
|
+
provider: 'github';
|
|
74
|
+
owner: string;
|
|
75
|
+
name: string;
|
|
76
|
+
url: string;
|
|
77
|
+
defaultBranch: string;
|
|
78
|
+
credentialRef: string;
|
|
79
|
+
};
|
|
80
|
+
contentSource: {
|
|
81
|
+
contentRuntimeSource: SeedProjectArchitecture['contentRuntimeSource'];
|
|
82
|
+
contentPath: string | null;
|
|
83
|
+
contentPublishTarget: SeedProjectContentPublishTarget | null;
|
|
84
|
+
};
|
|
85
|
+
treeDxLibrary: {
|
|
86
|
+
libraryId: string;
|
|
87
|
+
contentPath: string | null;
|
|
88
|
+
};
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
export declare function planTreeseedRepositoryImport(input: TreeseedRepositoryImportInput): TreeseedRepositoryImportPlan;
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
import { TREESEED_GITHUB_TOKEN_ENV } from "./service-credentials.js";
|
|
2
|
+
import {
|
|
3
|
+
githubRepositoryCredentialEnvName,
|
|
4
|
+
resolveGitHubCredentialForRepository
|
|
5
|
+
} from "./operations/services/github-credentials.js";
|
|
6
|
+
import { githubRepositoryCredentialEnvName as githubRepositoryCredentialEnvName2 } from "./operations/services/github-credentials.js";
|
|
7
|
+
const SITE_PATH_CANDIDATES = [".", "docs", "site", "apps/web"];
|
|
8
|
+
const CONTENT_PATH_CANDIDATES = ["src/content", "docs/src/content", "docs", "content"];
|
|
9
|
+
const KNOWN_MANIFESTS = ["treeseed.site.yaml", "treeseed.package.yaml", "src/manifest.yaml"];
|
|
10
|
+
function trim(value) {
|
|
11
|
+
return typeof value === "string" ? value.trim() : "";
|
|
12
|
+
}
|
|
13
|
+
function unique(values) {
|
|
14
|
+
return [...new Set(values.filter(Boolean))];
|
|
15
|
+
}
|
|
16
|
+
function normalizeRepoSlug(repository) {
|
|
17
|
+
const raw = String(repository ?? "").trim().replace(/^https?:\/\/github\.com\//iu, "").replace(/^git@github\.com:/iu, "").replace(/^ssh:\/\/git@github\.com\//iu, "").replace(/\.git$/iu, "").replace(/^\/+|\/+$/gu, "");
|
|
18
|
+
const [owner, name, ...extra] = raw.split("/").filter(Boolean);
|
|
19
|
+
if (!owner || !name || extra.length > 0) {
|
|
20
|
+
throw new Error(`Invalid GitHub repository "${repository}". Expected owner/name.`);
|
|
21
|
+
}
|
|
22
|
+
return { owner, name, slug: `${owner}/${name}` };
|
|
23
|
+
}
|
|
24
|
+
function slugifyProject(value) {
|
|
25
|
+
return value.trim().toLowerCase().replace(/[^a-z0-9]+/gu, "-").replace(/^-+|-+$/gu, "") || "project";
|
|
26
|
+
}
|
|
27
|
+
function titleFromRepositoryName(name) {
|
|
28
|
+
return name.split(/[-_\s]+/gu).filter(Boolean).map((part) => `${part.charAt(0).toUpperCase()}${part.slice(1)}`).join(" ") || name;
|
|
29
|
+
}
|
|
30
|
+
function normalizePathList(values) {
|
|
31
|
+
if (!Array.isArray(values)) return [];
|
|
32
|
+
return unique(values.map((entry) => trim(entry).replace(/^\/+|\/+$/gu, "") || "."));
|
|
33
|
+
}
|
|
34
|
+
function pathExists(path, files, directories) {
|
|
35
|
+
if (path === ".") return true;
|
|
36
|
+
return files.has(path) || directories.has(path) || [...files].some((entry) => entry.startsWith(`${path}/`));
|
|
37
|
+
}
|
|
38
|
+
function hasFile(path, files) {
|
|
39
|
+
return files.has(path);
|
|
40
|
+
}
|
|
41
|
+
function hasAnyFileUnder(path, files, pattern) {
|
|
42
|
+
const prefix = path === "." ? "" : `${path}/`;
|
|
43
|
+
return [...files].some((entry) => entry.startsWith(prefix) && pattern.test(entry.slice(prefix.length)));
|
|
44
|
+
}
|
|
45
|
+
function assertNoSecretMaterial(value, path = "input") {
|
|
46
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) return;
|
|
47
|
+
const forbiddenKeys = /* @__PURE__ */ new Set([
|
|
48
|
+
"plaintext",
|
|
49
|
+
"plainText",
|
|
50
|
+
"value",
|
|
51
|
+
"raw",
|
|
52
|
+
"rawSecret",
|
|
53
|
+
"secretValue",
|
|
54
|
+
"unencrypted",
|
|
55
|
+
"token",
|
|
56
|
+
"accessToken",
|
|
57
|
+
"privateKey",
|
|
58
|
+
"sshPrivateKey",
|
|
59
|
+
"passphrase",
|
|
60
|
+
"password",
|
|
61
|
+
"derivedKey",
|
|
62
|
+
"decrypted",
|
|
63
|
+
"decryptedPayload",
|
|
64
|
+
"decryptedSecret",
|
|
65
|
+
"credentialValue"
|
|
66
|
+
]);
|
|
67
|
+
for (const [key, nested] of Object.entries(value)) {
|
|
68
|
+
if (key === "env") continue;
|
|
69
|
+
if (forbiddenKeys.has(key)) {
|
|
70
|
+
throw new Error(`Repository import ${path} cannot include plaintext credentials, tokens, or secret material.`);
|
|
71
|
+
}
|
|
72
|
+
if (nested && typeof nested === "object" && !Array.isArray(nested)) {
|
|
73
|
+
assertNoSecretMaterial(nested, `${path}.${key}`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
function selectSitePath(files, directories, override, diagnostics) {
|
|
78
|
+
if (override) return override;
|
|
79
|
+
const candidates = SITE_PATH_CANDIDATES.filter((candidate) => {
|
|
80
|
+
if (candidate === ".") {
|
|
81
|
+
return hasFile("treeseed.site.yaml", files) || hasFile("package.json", files) || hasAnyFileUnder("src/pages", files, /.+/u) || hasAnyFileUnder("src/routes", files, /.+/u) || hasFile("astro.config.ts", files) || hasFile("astro.config.ts", files);
|
|
82
|
+
}
|
|
83
|
+
return pathExists(candidate, files, directories) && (hasFile(`${candidate}/treeseed.site.yaml`, files) || hasFile(`${candidate}/package.json`, files) || hasFile(`${candidate}/astro.config.ts`, files) || hasFile(`${candidate}/astro.config.ts`, files) || hasAnyFileUnder(`${candidate}/src/pages`, files, /.+/u) || hasAnyFileUnder(candidate, files, /\.(md|mdx)$/iu));
|
|
84
|
+
});
|
|
85
|
+
if (candidates.includes("docs")) return "docs";
|
|
86
|
+
if (candidates.length > 0) return candidates[0];
|
|
87
|
+
diagnostics.push({
|
|
88
|
+
severity: "warning",
|
|
89
|
+
code: "site_path_assumed_root",
|
|
90
|
+
message: 'No obvious site path was observed; import will use sitePath "." without restructuring the repository.'
|
|
91
|
+
});
|
|
92
|
+
return ".";
|
|
93
|
+
}
|
|
94
|
+
function selectContentPath(files, directories, override, sitePath, diagnostics) {
|
|
95
|
+
if (override) return override;
|
|
96
|
+
const candidates = CONTENT_PATH_CANDIDATES.filter((candidate) => {
|
|
97
|
+
if (!pathExists(candidate, files, directories)) return false;
|
|
98
|
+
if (candidate.endsWith("src/content")) return true;
|
|
99
|
+
return hasAnyFileUnder(candidate, files, /\.(md|mdx|json|ya?ml)$/iu);
|
|
100
|
+
});
|
|
101
|
+
if (sitePath === "docs" && candidates.includes("docs/src/content")) return "docs/src/content";
|
|
102
|
+
if (candidates.includes("src/content")) return "src/content";
|
|
103
|
+
if (sitePath === "docs" && candidates.includes("docs")) return "docs";
|
|
104
|
+
if (candidates.length > 0) return candidates[0];
|
|
105
|
+
diagnostics.push({
|
|
106
|
+
severity: "info",
|
|
107
|
+
code: "content_path_not_observed",
|
|
108
|
+
message: "No local content path was observed; hosted runtime can use TreeDX/R2 content sources until content is materialized."
|
|
109
|
+
});
|
|
110
|
+
return "";
|
|
111
|
+
}
|
|
112
|
+
function discoverCandidates(files, directories) {
|
|
113
|
+
return {
|
|
114
|
+
rootPath: ["."],
|
|
115
|
+
sitePath: SITE_PATH_CANDIDATES.filter((candidate) => pathExists(candidate, files, directories)),
|
|
116
|
+
contentPath: CONTENT_PATH_CANDIDATES.filter((candidate) => pathExists(candidate, files, directories)),
|
|
117
|
+
manifests: KNOWN_MANIFESTS.filter((manifest) => hasFile(manifest, files))
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
function normalizeCredentialRef(input, repositorySlug) {
|
|
121
|
+
const explicit = trim(input.credentialRef);
|
|
122
|
+
const repositoryScopedEnvName = githubRepositoryCredentialEnvName(repositorySlug);
|
|
123
|
+
if (explicit) {
|
|
124
|
+
if (!explicit.startsWith("env:TREESEED_GITHUB_TOKEN")) {
|
|
125
|
+
throw new Error("Repository import credentialRef must be an env:TREESEED_GITHUB_TOKEN reference.");
|
|
126
|
+
}
|
|
127
|
+
return {
|
|
128
|
+
credentialRef: explicit,
|
|
129
|
+
credential: {
|
|
130
|
+
ref: explicit,
|
|
131
|
+
configured: Boolean(input.env?.[explicit.slice(4)]),
|
|
132
|
+
source: "explicit",
|
|
133
|
+
repositoryScopedRef: `env:${repositoryScopedEnvName}`
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
const resolution = resolveGitHubCredentialForRepository(repositorySlug, { env: input.env ?? process.env });
|
|
138
|
+
const envName = resolution.source === "repository" ? resolution.envName : TREESEED_GITHUB_TOKEN_ENV;
|
|
139
|
+
return {
|
|
140
|
+
credentialRef: `env:${envName}`,
|
|
141
|
+
credential: {
|
|
142
|
+
ref: `env:${envName}`,
|
|
143
|
+
configured: resolution.configured,
|
|
144
|
+
source: resolution.source,
|
|
145
|
+
repositoryScopedRef: `env:${repositoryScopedEnvName}`
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
function planTreeseedRepositoryImport(input) {
|
|
150
|
+
assertNoSecretMaterial({
|
|
151
|
+
...input,
|
|
152
|
+
env: void 0
|
|
153
|
+
});
|
|
154
|
+
assertNoSecretMaterial(input.observation ?? {}, "observation");
|
|
155
|
+
const team = trim(input.team);
|
|
156
|
+
if (!team) throw new Error("Repository import requires a team slug or id.");
|
|
157
|
+
const repo = normalizeRepoSlug(input.repository);
|
|
158
|
+
const observation = input.observation ?? {};
|
|
159
|
+
const observedRepo = normalizeRepoSlug(trim(observation.repository) || `${trim(observation.owner) || repo.owner}/${trim(observation.name) || repo.name}`);
|
|
160
|
+
const owner = observedRepo.owner;
|
|
161
|
+
const name = observedRepo.name;
|
|
162
|
+
const repositorySlug = `${owner}/${name}`;
|
|
163
|
+
const files = new Set(normalizePathList(observation.files));
|
|
164
|
+
const directories = new Set(normalizePathList(observation.directories));
|
|
165
|
+
for (const manifest of Object.keys(observation.manifests ?? {})) {
|
|
166
|
+
files.add(manifest);
|
|
167
|
+
}
|
|
168
|
+
const diagnostics = [];
|
|
169
|
+
if (observation.provider && observation.provider !== "github") {
|
|
170
|
+
throw new Error(`Unsupported repository import provider "${observation.provider}". GitHub is the only v1 import provider.`);
|
|
171
|
+
}
|
|
172
|
+
const candidates = discoverCandidates(files, directories);
|
|
173
|
+
if (candidates.sitePath.length > 1) {
|
|
174
|
+
diagnostics.push({
|
|
175
|
+
severity: "warning",
|
|
176
|
+
code: "ambiguous_site_path",
|
|
177
|
+
message: `Multiple site path candidates were observed: ${candidates.sitePath.join(", ")}. Override with --site-path if needed.`
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
const rootPath = trim(input.rootPath) || ".";
|
|
181
|
+
const sitePath = selectSitePath(files, directories, trim(input.sitePath), diagnostics);
|
|
182
|
+
const contentPath = selectContentPath(files, directories, trim(input.contentPath), sitePath, diagnostics);
|
|
183
|
+
const contentPublishTarget = input.contentPublishTarget ?? {
|
|
184
|
+
kind: "cloudflare_r2",
|
|
185
|
+
manifestPath: `teams/${slugifyProject(team)}/projects/${slugifyProject(name)}/published/common.json`
|
|
186
|
+
};
|
|
187
|
+
const architecture = {
|
|
188
|
+
topology: "single_repository_site",
|
|
189
|
+
rootPath,
|
|
190
|
+
sitePath,
|
|
191
|
+
...contentPath ? { contentPath } : {},
|
|
192
|
+
contentRuntimeSource: "r2_published_manifest",
|
|
193
|
+
localContentMaterialization: contentPath ? "existing_path" : "none",
|
|
194
|
+
contentPublishTarget,
|
|
195
|
+
requiresLocalContentForCi: false,
|
|
196
|
+
requiresLocalContentForDeploy: false
|
|
197
|
+
};
|
|
198
|
+
const credential = normalizeCredentialRef(input, repositorySlug);
|
|
199
|
+
if (!credential.credential.configured) {
|
|
200
|
+
diagnostics.push({
|
|
201
|
+
severity: "warning",
|
|
202
|
+
code: "github_credential_missing",
|
|
203
|
+
message: `No configured GitHub token was observed for ${credential.credential.repositoryScopedRef} or env:${TREESEED_GITHUB_TOKEN_ENV}. The import plan is safe, but execute may require credentials.`
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
const visibility = trim(input.visibility || observation.visibility) === "private" ? "private" : "public";
|
|
207
|
+
const htmlUrl = trim(observation.htmlUrl) || `https://github.com/${repositorySlug}`;
|
|
208
|
+
const cloneUrl = trim(observation.cloneUrl) || `${htmlUrl}.git`;
|
|
209
|
+
return {
|
|
210
|
+
ok: true,
|
|
211
|
+
provider: "github",
|
|
212
|
+
team,
|
|
213
|
+
repository: {
|
|
214
|
+
owner,
|
|
215
|
+
name,
|
|
216
|
+
slug: repositorySlug,
|
|
217
|
+
defaultBranch: trim(observation.defaultBranch) || "main",
|
|
218
|
+
visibility,
|
|
219
|
+
htmlUrl,
|
|
220
|
+
cloneUrl
|
|
221
|
+
},
|
|
222
|
+
credentialRef: credential.credentialRef,
|
|
223
|
+
credential: credential.credential,
|
|
224
|
+
architecture,
|
|
225
|
+
candidates,
|
|
226
|
+
diagnostics,
|
|
227
|
+
plannedRecords: {
|
|
228
|
+
project: {
|
|
229
|
+
slug: slugifyProject(name),
|
|
230
|
+
name: titleFromRepositoryName(name),
|
|
231
|
+
visibility
|
|
232
|
+
},
|
|
233
|
+
hubRepository: {
|
|
234
|
+
role: "software",
|
|
235
|
+
provider: "github",
|
|
236
|
+
owner,
|
|
237
|
+
name,
|
|
238
|
+
url: htmlUrl,
|
|
239
|
+
defaultBranch: trim(observation.defaultBranch) || "main",
|
|
240
|
+
credentialRef: credential.credentialRef
|
|
241
|
+
},
|
|
242
|
+
contentSource: {
|
|
243
|
+
contentRuntimeSource: architecture.contentRuntimeSource,
|
|
244
|
+
contentPath: architecture.contentPath ?? null,
|
|
245
|
+
contentPublishTarget
|
|
246
|
+
},
|
|
247
|
+
treeDxLibrary: {
|
|
248
|
+
libraryId: `${slugifyProject(team)}/${slugifyProject(name)}`,
|
|
249
|
+
contentPath: architecture.contentPath ?? null
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
};
|
|
253
|
+
}
|
|
254
|
+
export {
|
|
255
|
+
githubRepositoryCredentialEnvName2 as githubRepositoryCredentialEnvName,
|
|
256
|
+
planTreeseedRepositoryImport
|
|
257
|
+
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ProjectConnection, ProjectLaunchHostBindingInput, RemoteJobStatus } from './sdk-types.
|
|
1
|
+
import type { ProjectConnection, ProjectLaunchHostBindingInput, RemoteJobStatus } from './sdk-types.js';
|
|
2
2
|
export declare const PROJECT_TEAM_CAPABILITIES: readonly ["launch_projects", "edit_direct", "manage_workstreams", "stage_releases", "publish_releases", "publish_market_listings", "manage_products", "manage_billing", "approve_remote_execution"];
|
|
3
3
|
export declare const PROJECT_JOB_STATUSES: readonly ["queued", "running", "waiting_for_approval", "failed", "completed", "rolled_back", "cancelled"];
|
|
4
4
|
export declare const WORKSTREAM_STATES: readonly ["drafting", "active_local", "verifying", "saved_remote", "in_staging", "archived"];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { TreeseedDeployConfig } from '../platform/contracts.
|
|
2
|
-
import type { TreeseedDesiredUnit } from './contracts.
|
|
1
|
+
import type { TreeseedDeployConfig } from '../platform/contracts.js';
|
|
2
|
+
import type { TreeseedDesiredUnit } from './contracts.js';
|
|
3
3
|
export declare const TREESEED_BOOTSTRAP_SYSTEMS: readonly ["github", "data", "web", "api", "agents"];
|
|
4
4
|
export type TreeseedBootstrapSystem = typeof TREESEED_BOOTSTRAP_SYSTEMS[number] | 'all';
|
|
5
5
|
export type TreeseedRunnableBootstrapSystem = Exclude<TreeseedBootstrapSystem, 'all'>;
|
|
@@ -55,8 +55,8 @@ function agentsSystemDisabled(config) {
|
|
|
55
55
|
if (config.runtime?.mode === "none") {
|
|
56
56
|
return "runtime.mode is none.";
|
|
57
57
|
}
|
|
58
|
-
const enabled = ["
|
|
59
|
-
return enabled ? null : "No agent or
|
|
58
|
+
const enabled = ["operationsRunner", "workdayManager", "workerRunner"].some((serviceKey) => serviceEnabled(config, serviceKey));
|
|
59
|
+
return enabled ? null : "No agent or Treeseed operations runner Railway services are enabled.";
|
|
60
60
|
}
|
|
61
61
|
function hasValue(env, key) {
|
|
62
62
|
return typeof env[key] === "string" && String(env[key]).trim().length > 0;
|
|
@@ -64,13 +64,13 @@ function hasValue(env, key) {
|
|
|
64
64
|
function missingForSystem(system, env) {
|
|
65
65
|
switch (system) {
|
|
66
66
|
case "github":
|
|
67
|
-
return hasValue(env, "
|
|
67
|
+
return hasValue(env, "TREESEED_GITHUB_TOKEN") ? [] : ["TREESEED_GITHUB_TOKEN"];
|
|
68
68
|
case "data":
|
|
69
69
|
case "web":
|
|
70
|
-
return hasValue(env, "
|
|
70
|
+
return hasValue(env, "TREESEED_CLOUDFLARE_API_TOKEN") ? [] : ["TREESEED_CLOUDFLARE_API_TOKEN"];
|
|
71
71
|
case "api":
|
|
72
72
|
case "agents":
|
|
73
|
-
return hasValue(env, "
|
|
73
|
+
return hasValue(env, "TREESEED_RAILWAY_API_TOKEN") ? [] : ["TREESEED_RAILWAY_API_TOKEN"];
|
|
74
74
|
default:
|
|
75
75
|
return [];
|
|
76
76
|
}
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
-
import type { TreeseedReconcileAdapter } from './contracts.
|
|
1
|
+
import type { TreeseedReconcileAdapter } from './contracts.js';
|
|
2
2
|
export declare function createCloudflareReconcileAdapters(): TreeseedReconcileAdapter[];
|
|
3
3
|
export declare function createRailwayReconcileAdapters(): TreeseedReconcileAdapter[];
|
|
4
|
+
export declare function createPackageReconcileAdapters(): TreeseedReconcileAdapter[];
|
|
5
|
+
export declare function createGitHubReconcileAdapters(): TreeseedReconcileAdapter[];
|
|
6
|
+
export declare function createDockerReconcileAdapters(): TreeseedReconcileAdapter[];
|
|
7
|
+
export declare function createLocalProcessReconcileAdapters(): TreeseedReconcileAdapter[];
|
|
8
|
+
export declare function createCapacityProviderReconcileAdapters(): TreeseedReconcileAdapter[];
|
|
9
|
+
export declare function createReleaseGateReconcileAdapters(): TreeseedReconcileAdapter[];
|