@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.
Files changed (509) hide show
  1. package/README.md +213 -7
  2. package/dist/agent-capacity.d.ts +916 -0
  3. package/dist/agent-capacity.js +1600 -0
  4. package/dist/agent-tools.d.ts +37 -0
  5. package/dist/agent-tools.js +301 -0
  6. package/dist/api/app.d.ts +1 -1
  7. package/dist/api/auth/d1-database.d.ts +2 -2
  8. package/dist/api/auth/d1-provider.d.ts +4 -4
  9. package/dist/api/auth/d1-store.d.ts +2 -2
  10. package/dist/api/auth/memory-provider.d.ts +1 -1
  11. package/dist/api/auth/tokens.d.ts +1 -1
  12. package/dist/api/config.d.ts +3 -1
  13. package/dist/api/config.js +34 -10
  14. package/dist/api/http.d.ts +2 -2
  15. package/dist/api/index.d.ts +10 -10
  16. package/dist/api/index.js +4 -2
  17. package/dist/api/operations-routes.d.ts +3 -3
  18. package/dist/api/operations.d.ts +1 -1
  19. package/dist/api/providers.d.ts +1 -1
  20. package/dist/api/providers.js +21 -4
  21. package/dist/api/railway.d.ts +3 -2
  22. package/dist/api/sdk-dispatch.d.ts +4 -4
  23. package/dist/api/sdk-routes.d.ts +2 -2
  24. package/dist/api/templates.d.ts +2 -2
  25. package/dist/api/types.d.ts +3 -2
  26. package/dist/capacity-provider.d.ts +118 -59
  27. package/dist/capacity-provider.js +235 -43
  28. package/dist/capacity.d.ts +2 -2
  29. package/dist/cli-tools.d.ts +1 -1
  30. package/dist/content-operations.d.ts +97 -0
  31. package/dist/content-operations.js +250 -0
  32. package/dist/content-store.d.ts +4 -4
  33. package/dist/control-plane-client.d.ts +13 -18
  34. package/dist/control-plane-client.js +8 -86
  35. package/dist/control-plane.d.ts +3 -2
  36. package/dist/control-plane.js +38 -13
  37. package/dist/copilot.d.ts +3 -0
  38. package/dist/copilot.js +16 -1
  39. package/dist/d1-http.d.ts +1 -1
  40. package/dist/d1-store.d.ts +32 -57
  41. package/dist/d1-store.js +115 -318
  42. package/dist/db/d1.d.ts +1 -232
  43. package/dist/db/index.d.ts +3 -3
  44. package/dist/db/market-schema.d.ts +50900 -11018
  45. package/dist/db/market-schema.js +2313 -467
  46. package/dist/db/node-sqlite.d.ts +1 -232
  47. package/dist/db/node-sqlite.js +7 -2
  48. package/dist/db/schema.d.ts +0 -462
  49. package/dist/db/schema.js +2 -22
  50. package/dist/dispatch.d.ts +1 -1
  51. package/dist/dispatch.js +0 -11
  52. package/dist/fixture-support.js +52 -4
  53. package/dist/governance.d.ts +133 -0
  54. package/dist/governance.js +285 -0
  55. package/dist/graph/build.d.ts +2 -2
  56. package/dist/graph/context-query-contracts.d.ts +1 -1
  57. package/dist/graph/dsl.d.ts +1 -1
  58. package/dist/graph/query.d.ts +4 -4
  59. package/dist/graph/ranking.d.ts +1 -1
  60. package/dist/graph/schema.d.ts +1 -1
  61. package/dist/graph.d.ts +11 -11
  62. package/dist/guarantees/index.d.ts +425 -0
  63. package/dist/guarantees/index.js +1146 -0
  64. package/dist/hosting/apps.d.ts +12 -0
  65. package/dist/hosting/apps.js +107 -0
  66. package/dist/hosting/builtins.d.ts +25 -0
  67. package/dist/hosting/builtins.js +602 -0
  68. package/dist/hosting/contracts.d.ts +208 -0
  69. package/dist/hosting/contracts.js +0 -0
  70. package/dist/hosting/graph.d.ts +195 -0
  71. package/dist/hosting/graph.js +1092 -0
  72. package/dist/hosting/index.d.ts +4 -0
  73. package/dist/hosting/index.js +4 -0
  74. package/dist/index.d.ts +88 -67
  75. package/dist/index.js +142 -14
  76. package/dist/local-dev/managed-dev.d.ts +85 -0
  77. package/dist/local-dev/managed-dev.js +368 -0
  78. package/dist/managed-dependencies.d.ts +9 -0
  79. package/dist/managed-dependencies.js +10 -9
  80. package/dist/market-client.d.ts +327 -9
  81. package/dist/market-client.js +464 -20
  82. package/dist/model-registry.d.ts +1 -1
  83. package/dist/model-registry.js +19 -19
  84. package/dist/operations/agent-tools.d.ts +2 -11
  85. package/dist/operations/agent-tools.js +2 -14
  86. package/dist/operations/providers/default.d.ts +1 -1
  87. package/dist/operations/providers/default.js +20 -37
  88. package/dist/operations/repository-operations.d.ts +26 -2
  89. package/dist/operations/repository-operations.js +159 -1
  90. package/dist/operations/runtime.d.ts +3 -3
  91. package/dist/operations/services/bootstrap-runner.d.ts +4 -2
  92. package/dist/operations/services/bootstrap-runner.js +22 -2
  93. package/dist/operations/services/build-warning-policy.d.ts +34 -0
  94. package/dist/operations/services/build-warning-policy.js +81 -82
  95. package/dist/operations/services/commit-message-provider.js +4 -4
  96. package/dist/operations/services/config-runtime.d.ts +83 -24
  97. package/dist/operations/services/config-runtime.js +449 -130
  98. package/dist/operations/services/deploy.d.ts +106 -624
  99. package/dist/operations/services/deploy.js +746 -263
  100. package/dist/operations/services/deployment-readiness.d.ts +30 -0
  101. package/dist/operations/services/deployment-readiness.js +206 -0
  102. package/dist/operations/services/git-remote-policy.js +12 -4
  103. package/dist/operations/services/git-runner.d.ts +66 -0
  104. package/dist/operations/services/git-runner.js +479 -0
  105. package/dist/operations/services/git-workflow.d.ts +45 -6
  106. package/dist/operations/services/git-workflow.js +251 -23
  107. package/dist/operations/services/github-actions-verification.d.ts +4 -1
  108. package/dist/operations/services/github-actions-verification.js +12 -3
  109. package/dist/operations/services/github-api.js +22 -6
  110. package/dist/operations/services/github-automation.d.ts +4 -4
  111. package/dist/operations/services/github-automation.js +19 -21
  112. package/dist/operations/services/github-credentials.d.ts +13 -0
  113. package/dist/operations/services/github-credentials.js +59 -0
  114. package/dist/operations/services/hosted-service-checks.d.ts +81 -0
  115. package/dist/operations/services/hosted-service-checks.js +478 -0
  116. package/dist/operations/services/hosting-audit.d.ts +2 -2
  117. package/dist/operations/services/hosting-audit.js +7 -7
  118. package/dist/operations/services/hub-launch.d.ts +1 -1
  119. package/dist/operations/services/hub-provider-launch.d.ts +5 -5
  120. package/dist/operations/services/hub-provider-launch.js +22 -17
  121. package/dist/operations/services/live-hosted-service-checks.d.ts +26 -0
  122. package/dist/operations/services/live-hosted-service-checks.js +463 -0
  123. package/dist/operations/services/local-dev.js +0 -1
  124. package/dist/operations/services/managed-host-security.d.ts +1 -1
  125. package/dist/operations/services/managed-host-security.js +1 -1
  126. package/dist/operations/services/managed-repositories.d.ts +37 -0
  127. package/dist/operations/services/managed-repositories.js +177 -0
  128. package/dist/operations/services/operations-runner-smoke.d.ts +31 -0
  129. package/dist/operations/services/operations-runner-smoke.js +198 -0
  130. package/dist/operations/services/package-adapters.d.ts +170 -0
  131. package/dist/operations/services/package-adapters.js +859 -0
  132. package/dist/operations/services/package-reference-policy.d.ts +13 -88
  133. package/dist/operations/services/package-reference-policy.js +96 -215
  134. package/dist/operations/services/project-host-operations.d.ts +4 -4
  135. package/dist/operations/services/project-platform.d.ts +57 -173
  136. package/dist/operations/services/project-platform.js +80 -111
  137. package/dist/operations/services/project-web-monitor.d.ts +2 -2
  138. package/dist/operations/services/project-web-monitor.js +122 -5
  139. package/dist/operations/services/railway-api.d.ts +117 -5
  140. package/dist/operations/services/railway-api.js +915 -93
  141. package/dist/operations/services/railway-deploy.d.ts +30 -112
  142. package/dist/operations/services/railway-deploy.js +521 -961
  143. package/dist/operations/services/release-history.js +3 -4
  144. package/dist/operations/services/release-proof-ledger.d.ts +13 -0
  145. package/dist/operations/services/release-proof-ledger.js +81 -0
  146. package/dist/operations/services/release-proof-planner.d.ts +48 -0
  147. package/dist/operations/services/release-proof-planner.js +195 -0
  148. package/dist/operations/services/release-proof-runner.d.ts +16 -0
  149. package/dist/operations/services/release-proof-runner.js +169 -0
  150. package/dist/operations/services/release-proof.d.ts +81 -0
  151. package/dist/operations/services/release-proof.js +79 -0
  152. package/dist/operations/services/repository-save-orchestrator.d.ts +8 -7
  153. package/dist/operations/services/repository-save-orchestrator.js +604 -212
  154. package/dist/operations/services/runtime-paths.d.ts +1 -3
  155. package/dist/operations/services/runtime-paths.js +0 -4
  156. package/dist/operations/services/runtime-tools.d.ts +1 -191
  157. package/dist/operations/services/runtime-tools.js +4 -443
  158. package/dist/operations/services/save-deploy-preflight.js +9 -1
  159. package/dist/operations/services/template-host-bindings.d.ts +2 -2
  160. package/dist/operations/services/template-host-bindings.js +3 -2
  161. package/dist/operations/services/template-registry.d.ts +6 -6
  162. package/dist/operations/services/template-registry.js +33 -14
  163. package/dist/operations/services/template-secret-sync.d.ts +3 -3
  164. package/dist/operations/services/verification-cache.d.ts +25 -0
  165. package/dist/operations/services/verification-cache.js +71 -0
  166. package/dist/operations/services/workflow-timing.d.ts +25 -0
  167. package/dist/operations/services/workflow-timing.js +79 -0
  168. package/dist/operations/services/workspace-dependency-mode.js +50 -5
  169. package/dist/operations/services/workspace-preflight.js +8 -8
  170. package/dist/operations/services/workspace-save-script.d.ts +4 -4
  171. package/dist/operations/services/workspace-save.d.ts +1 -0
  172. package/dist/operations/services/workspace-save.js +42 -19
  173. package/dist/operations/services/workspace-tools.js +42 -7
  174. package/dist/operations-registry.d.ts +1 -1
  175. package/dist/operations-registry.js +5 -6
  176. package/dist/operations-types.d.ts +1 -1
  177. package/dist/operations.d.ts +17 -11
  178. package/dist/operations.js +57 -3
  179. package/dist/platform/book-export.js +2 -0
  180. package/dist/platform/books-data.d.ts +1 -1
  181. package/dist/platform/config.d.ts +27 -0
  182. package/dist/platform/config.js +100 -0
  183. package/dist/platform/content-runtime-source.d.ts +54 -0
  184. package/dist/platform/content-runtime-source.js +169 -0
  185. package/dist/platform/contracts.d.ts +38 -2
  186. package/dist/platform/deploy-config.d.ts +1 -1
  187. package/dist/platform/deploy-config.js +80 -9
  188. package/dist/platform/deploy-runtime.d.ts +1 -1
  189. package/dist/platform/desired-state.d.ts +63 -0
  190. package/dist/platform/desired-state.js +1021 -0
  191. package/dist/platform/env.yaml +568 -45
  192. package/dist/platform/environment.d.ts +3 -2
  193. package/dist/platform/environment.js +122 -21
  194. package/dist/platform/local-content-materialization.d.ts +9 -0
  195. package/dist/platform/local-content-materialization.js +212 -0
  196. package/dist/platform/plugin.d.ts +13 -4
  197. package/dist/platform/plugins/runtime.d.ts +3 -3
  198. package/dist/platform/plugins/runtime.js +62 -1
  199. package/dist/platform/plugins.d.ts +6 -6
  200. package/dist/platform/published-content-pipeline.d.ts +3 -3
  201. package/dist/platform/published-content-pipeline.js +5 -1
  202. package/dist/platform/published-content.d.ts +4 -3
  203. package/dist/platform/site-config-schema.d.ts +1 -0
  204. package/dist/platform/site-config-schema.js +4 -1
  205. package/dist/platform/tenant/runtime-config.d.ts +152 -2
  206. package/dist/platform/tenant-config.d.ts +1 -1
  207. package/dist/platform/utils/site-config-schema.d.ts +154 -0
  208. package/dist/platform/utils/site-config-schema.js +400 -461
  209. package/dist/platform-operation-store.d.ts +1 -1
  210. package/dist/platform-operation-store.js +2 -2
  211. package/dist/platform-operations.js +1 -1
  212. package/dist/plugin-default.d.ts +1 -1
  213. package/dist/plugin-default.js +27 -12
  214. package/dist/project-import.d.ts +91 -0
  215. package/dist/project-import.js +257 -0
  216. package/dist/project-workflow.d.ts +1 -1
  217. package/dist/reconcile/bootstrap-systems.d.ts +2 -2
  218. package/dist/reconcile/bootstrap-systems.js +5 -5
  219. package/dist/reconcile/builtin-adapters.d.ts +7 -1
  220. package/dist/reconcile/builtin-adapters.js +3190 -429
  221. package/dist/reconcile/contracts.d.ts +23 -6
  222. package/dist/reconcile/desired-state.d.ts +2 -192
  223. package/dist/reconcile/desired-state.js +29 -38
  224. package/dist/reconcile/engine.d.ts +61 -395
  225. package/dist/reconcile/engine.js +229 -44
  226. package/dist/reconcile/index.d.ts +10 -8
  227. package/dist/reconcile/index.js +2 -0
  228. package/dist/reconcile/live-acceptance.d.ts +100 -0
  229. package/dist/reconcile/live-acceptance.js +2027 -0
  230. package/dist/reconcile/platform.d.ts +104 -0
  231. package/dist/reconcile/platform.js +100 -0
  232. package/dist/reconcile/providers/docker-private.d.ts +54 -0
  233. package/dist/reconcile/providers/docker-private.js +101 -0
  234. package/dist/reconcile/providers/github-private.d.ts +65 -0
  235. package/dist/reconcile/providers/github-private.js +119 -0
  236. package/dist/reconcile/providers/local-private.d.ts +28 -0
  237. package/dist/reconcile/providers/local-private.js +75 -0
  238. package/dist/reconcile/providers/railway-iac.d.ts +66 -0
  239. package/dist/reconcile/providers/railway-iac.js +275 -0
  240. package/dist/reconcile/providers/release-private.d.ts +92 -0
  241. package/dist/reconcile/providers/release-private.js +152 -0
  242. package/dist/reconcile/registry.d.ts +2 -2
  243. package/dist/reconcile/registry.js +16 -1
  244. package/dist/reconcile/state.d.ts +1 -1
  245. package/dist/reconcile/state.js +7 -44
  246. package/dist/reconcile/units.d.ts +1 -1
  247. package/dist/reconcile/units.js +9 -3
  248. package/dist/remote.d.ts +6 -6
  249. package/dist/scenes/artifacts.d.ts +16 -0
  250. package/dist/scenes/artifacts.js +61 -0
  251. package/dist/scenes/auth.d.ts +2 -0
  252. package/dist/scenes/auth.js +28 -0
  253. package/dist/scenes/base-url.d.ts +12 -0
  254. package/dist/scenes/base-url.js +123 -0
  255. package/dist/scenes/builtin-plugins.d.ts +2 -0
  256. package/dist/scenes/builtin-plugins.js +447 -0
  257. package/dist/scenes/checkpoints.d.ts +14 -0
  258. package/dist/scenes/checkpoints.js +33 -0
  259. package/dist/scenes/device-matrix.d.ts +2 -0
  260. package/dist/scenes/device-matrix.js +97 -0
  261. package/dist/scenes/devices.d.ts +11 -0
  262. package/dist/scenes/devices.js +22 -0
  263. package/dist/scenes/diagnostics.d.ts +5 -0
  264. package/dist/scenes/diagnostics.js +22 -0
  265. package/dist/scenes/diagram-providers.d.ts +2 -0
  266. package/dist/scenes/diagram-providers.js +181 -0
  267. package/dist/scenes/diagram-validation.d.ts +22 -0
  268. package/dist/scenes/diagram-validation.js +74 -0
  269. package/dist/scenes/environment.d.ts +2 -0
  270. package/dist/scenes/environment.js +65 -0
  271. package/dist/scenes/evidence-bundle.d.ts +5 -0
  272. package/dist/scenes/evidence-bundle.js +42 -0
  273. package/dist/scenes/evidence-report.d.ts +10 -0
  274. package/dist/scenes/evidence-report.js +73 -0
  275. package/dist/scenes/evidence.d.ts +16 -0
  276. package/dist/scenes/evidence.js +277 -0
  277. package/dist/scenes/index.d.ts +48 -0
  278. package/dist/scenes/index.js +312 -0
  279. package/dist/scenes/inspect.d.ts +9 -0
  280. package/dist/scenes/inspect.js +64 -0
  281. package/dist/scenes/loader.d.ts +3 -0
  282. package/dist/scenes/loader.js +38 -0
  283. package/dist/scenes/logs.d.ts +2 -0
  284. package/dist/scenes/logs.js +47 -0
  285. package/dist/scenes/operations.d.ts +3 -0
  286. package/dist/scenes/operations.js +128 -0
  287. package/dist/scenes/phase0.d.ts +9 -0
  288. package/dist/scenes/phase0.js +637 -0
  289. package/dist/scenes/planner.d.ts +12 -0
  290. package/dist/scenes/planner.js +166 -0
  291. package/dist/scenes/playwright-adapter.d.ts +2 -0
  292. package/dist/scenes/playwright-adapter.js +63 -0
  293. package/dist/scenes/plugins.d.ts +5 -0
  294. package/dist/scenes/plugins.js +115 -0
  295. package/dist/scenes/progress.d.ts +17 -0
  296. package/dist/scenes/progress.js +24 -0
  297. package/dist/scenes/publish-destinations.d.ts +12 -0
  298. package/dist/scenes/publish-destinations.js +99 -0
  299. package/dist/scenes/publish-plan-report.d.ts +10 -0
  300. package/dist/scenes/publish-plan-report.js +70 -0
  301. package/dist/scenes/publish-plan.d.ts +15 -0
  302. package/dist/scenes/publish-plan.js +248 -0
  303. package/dist/scenes/publish-redaction.d.ts +16 -0
  304. package/dist/scenes/publish-redaction.js +148 -0
  305. package/dist/scenes/publish-release-record.d.ts +13 -0
  306. package/dist/scenes/publish-release-record.js +34 -0
  307. package/dist/scenes/publish-report.d.ts +10 -0
  308. package/dist/scenes/publish-report.js +67 -0
  309. package/dist/scenes/publish.d.ts +16 -0
  310. package/dist/scenes/publish.js +298 -0
  311. package/dist/scenes/registry.d.ts +12 -0
  312. package/dist/scenes/registry.js +65 -0
  313. package/dist/scenes/remotion-adapter.d.ts +3 -0
  314. package/dist/scenes/remotion-adapter.js +94 -0
  315. package/dist/scenes/remotion-composition-registry.d.ts +2 -0
  316. package/dist/scenes/remotion-composition-registry.js +12 -0
  317. package/dist/scenes/remotion-compositions.d.ts +15 -0
  318. package/dist/scenes/remotion-compositions.js +464 -0
  319. package/dist/scenes/remotion-diagrams.d.ts +9 -0
  320. package/dist/scenes/remotion-diagrams.js +188 -0
  321. package/dist/scenes/remotion-input.d.ts +13 -0
  322. package/dist/scenes/remotion-input.js +291 -0
  323. package/dist/scenes/remotion-visuals.d.ts +29 -0
  324. package/dist/scenes/remotion-visuals.js +198 -0
  325. package/dist/scenes/render-media-assets.d.ts +9 -0
  326. package/dist/scenes/render-media-assets.js +117 -0
  327. package/dist/scenes/render-report.d.ts +10 -0
  328. package/dist/scenes/render-report.js +27 -0
  329. package/dist/scenes/render.d.ts +2 -0
  330. package/dist/scenes/render.js +218 -0
  331. package/dist/scenes/reporter.d.ts +3 -0
  332. package/dist/scenes/reporter.js +101 -0
  333. package/dist/scenes/resume.d.ts +2 -0
  334. package/dist/scenes/resume.js +79 -0
  335. package/dist/scenes/runner.d.ts +2 -0
  336. package/dist/scenes/runner.js +674 -0
  337. package/dist/scenes/schema.d.ts +6 -0
  338. package/dist/scenes/schema.js +994 -0
  339. package/dist/scenes/seed.d.ts +2 -0
  340. package/dist/scenes/seed.js +83 -0
  341. package/dist/scenes/segments.d.ts +15 -0
  342. package/dist/scenes/segments.js +79 -0
  343. package/dist/scenes/selectors.d.ts +3 -0
  344. package/dist/scenes/selectors.js +21 -0
  345. package/dist/scenes/timeline.d.ts +11 -0
  346. package/dist/scenes/timeline.js +26 -0
  347. package/dist/scenes/timeouts.d.ts +6 -0
  348. package/dist/scenes/timeouts.js +17 -0
  349. package/dist/scenes/training-captions.d.ts +14 -0
  350. package/dist/scenes/training-captions.js +98 -0
  351. package/dist/scenes/training-report.d.ts +10 -0
  352. package/dist/scenes/training-report.js +78 -0
  353. package/dist/scenes/training-transcript.d.ts +24 -0
  354. package/dist/scenes/training-transcript.js +204 -0
  355. package/dist/scenes/training.d.ts +10 -0
  356. package/dist/scenes/training.js +134 -0
  357. package/dist/scenes/types.d.ts +1872 -0
  358. package/dist/scenes/types.js +8 -0
  359. package/dist/scenes/visual-audit-contact-sheets.d.ts +6 -0
  360. package/dist/scenes/visual-audit-contact-sheets.js +119 -0
  361. package/dist/scenes/visual-audit-fixtures.d.ts +25 -0
  362. package/dist/scenes/visual-audit-fixtures.js +210 -0
  363. package/dist/scenes/visual-audit-report.d.ts +11 -0
  364. package/dist/scenes/visual-audit-report.js +85 -0
  365. package/dist/scenes/visual-audit-review.d.ts +23 -0
  366. package/dist/scenes/visual-audit-review.js +829 -0
  367. package/dist/scenes/visual-audit-routes.d.ts +13 -0
  368. package/dist/scenes/visual-audit-routes.js +308 -0
  369. package/dist/scenes/visual-audit.d.ts +3 -0
  370. package/dist/scenes/visual-audit.js +596 -0
  371. package/dist/scripts/build-dist.js +154 -40
  372. package/dist/scripts/check-build-warnings.js +42 -53
  373. package/dist/scripts/cleanup-markdown.js +1 -1
  374. package/dist/scripts/cli-test-fixtures.js +24 -28
  375. package/dist/scripts/deployment-readiness.js +20 -0
  376. package/dist/scripts/generate-treedx-openapi-types.js +186 -0
  377. package/dist/scripts/migrate-journey-csv-to-guarantees.js +140 -0
  378. package/dist/scripts/operations-runner-smoke.js +16 -0
  379. package/dist/scripts/package-tools.js +12 -1
  380. package/dist/scripts/prepare.js +3 -7
  381. package/dist/scripts/release-verify.js +6 -6
  382. package/dist/scripts/run-fixture-astro-command.js +1 -1
  383. package/dist/scripts/template-catalog.test.js +68 -82
  384. package/dist/scripts/tenant-dev.js +0 -10
  385. package/dist/scripts/tenant-workflow-action.js +10 -1
  386. package/dist/scripts/test-cloudflare-local.js +1 -1
  387. package/dist/scripts/test-scaffold.js +0 -1
  388. package/dist/scripts/test-smoke.js +3 -3
  389. package/dist/scripts/treeseed-build-dist.js +4 -7
  390. package/dist/scripts/treeseed-release-verify.js +1 -1
  391. package/dist/scripts/verify-driver.js +30 -21
  392. package/dist/scripts/workflow-commands.test.js +18 -27
  393. package/dist/scripts/workspace-command-e2e.js +1 -1
  394. package/dist/scripts/workspace-lint.js +6 -0
  395. package/dist/scripts/workspace-release-test.js +90 -1
  396. package/dist/scripts/workspace-test.js +6 -0
  397. package/dist/sdk-dispatch.d.ts +1 -1
  398. package/dist/sdk-dispatch.js +0 -16
  399. package/dist/sdk-fields.d.ts +1 -1
  400. package/dist/sdk-filters.d.ts +1 -1
  401. package/dist/sdk-types.d.ts +1352 -116
  402. package/dist/sdk-types.js +413 -2
  403. package/dist/sdk.d.ts +106 -100
  404. package/dist/sdk.js +211 -51
  405. package/dist/secrets-capability.d.ts +421 -0
  406. package/dist/secrets-capability.js +530 -0
  407. package/dist/seeds/normalize.js +1 -0
  408. package/dist/seeds/planner.js +38 -0
  409. package/dist/seeds/schema.js +293 -4
  410. package/dist/seeds/types.d.ts +60 -0
  411. package/dist/seeds/types.js +9 -1
  412. package/dist/service-credentials.d.ts +54 -0
  413. package/dist/service-credentials.js +112 -0
  414. package/dist/stores/cursor-store.d.ts +2 -2
  415. package/dist/stores/envelopes.d.ts +1 -1
  416. package/dist/stores/helpers.d.ts +1 -1
  417. package/dist/stores/lease-store.d.ts +2 -2
  418. package/dist/stores/message-store.d.ts +2 -2
  419. package/dist/stores/operational-store.d.ts +3 -26
  420. package/dist/stores/operational-store.js +0 -225
  421. package/dist/stores/project-workflow-store.d.ts +2 -2
  422. package/dist/stores/run-store.d.ts +2 -3
  423. package/dist/stores/run-store.js +0 -98
  424. package/dist/stores/subscription-store.d.ts +2 -3
  425. package/dist/stores/subscription-store.js +0 -100
  426. package/dist/template-catalog.d.ts +1 -1
  427. package/dist/template-launch-requirements.d.ts +2 -2
  428. package/dist/template-launch-requirements.js +9 -0
  429. package/dist/template-launch-ui.d.ts +2 -2
  430. package/dist/treedx/adapters.d.ts +6 -0
  431. package/dist/treedx/adapters.js +36 -0
  432. package/dist/treedx/client.d.ts +222 -0
  433. package/dist/treedx/client.js +871 -0
  434. package/dist/treedx/errors.d.ts +13 -0
  435. package/dist/treedx/errors.js +17 -0
  436. package/dist/treedx/federated-client.d.ts +27 -0
  437. package/dist/treedx/federated-client.js +158 -0
  438. package/dist/treedx/generated/openapi-types.d.ts +3558 -0
  439. package/dist/treedx/generated/openapi-types.js +0 -0
  440. package/dist/treedx/graph-adapter.d.ts +33 -0
  441. package/dist/treedx/graph-adapter.js +156 -0
  442. package/dist/treedx/index.d.ts +14 -0
  443. package/dist/treedx/index.js +48 -0
  444. package/dist/treedx/market-integration.d.ts +27 -0
  445. package/dist/treedx/market-integration.js +131 -0
  446. package/dist/treedx/ports.d.ts +166 -0
  447. package/dist/treedx/ports.js +231 -0
  448. package/dist/treedx/query-adapter.d.ts +19 -0
  449. package/dist/treedx/query-adapter.js +62 -0
  450. package/dist/treedx/registry-client.d.ts +11 -0
  451. package/dist/treedx/registry-client.js +19 -0
  452. package/dist/treedx/repository-adapter.d.ts +45 -0
  453. package/dist/treedx/repository-adapter.js +319 -0
  454. package/dist/treedx/sdk-integration.d.ts +27 -0
  455. package/dist/treedx/sdk-integration.js +63 -0
  456. package/dist/treedx/types.d.ts +1084 -0
  457. package/dist/treedx/types.js +8 -0
  458. package/dist/treedx/workspace-adapter.d.ts +27 -0
  459. package/dist/treedx/workspace-adapter.js +65 -0
  460. package/dist/treedx-backends.d.ts +220 -0
  461. package/dist/treedx-backends.js +634 -0
  462. package/dist/treedx-client.d.ts +89 -0
  463. package/dist/treedx-client.js +184 -0
  464. package/dist/treeseed/services/compose.yml +2 -3
  465. package/dist/treeseed/template-catalog/catalog.fixture.json +27 -27
  466. package/dist/types/agents.d.ts +256 -0
  467. package/dist/types/agents.js +42 -1
  468. package/dist/verification.d.ts +1 -0
  469. package/dist/verification.js +143 -14
  470. package/dist/workflow/operations.d.ts +580 -523
  471. package/dist/workflow/operations.js +2084 -1279
  472. package/dist/workflow/policy.js +19 -7
  473. package/dist/workflow/runs.d.ts +9 -3
  474. package/dist/workflow/runs.js +66 -26
  475. package/dist/workflow/session.d.ts +4 -1
  476. package/dist/workflow/session.js +50 -10
  477. package/dist/workflow/worktrees.d.ts +6 -2
  478. package/dist/workflow/worktrees.js +98 -15
  479. package/dist/workflow-state.d.ts +17 -4
  480. package/dist/workflow-state.js +68 -41
  481. package/dist/workflow-support.d.ts +26 -17
  482. package/dist/workflow-support.js +84 -24
  483. package/dist/workflow.d.ts +51 -16
  484. package/dist/workflow.js +19 -7
  485. package/drizzle/d1/0000_treeseed_d1.sql +0 -18
  486. package/drizzle/market/0000_market_control_plane.sql +1793 -1499
  487. package/drizzle/market/0004_treedx_market_integration.sql +99 -0
  488. package/drizzle/market/0005_agent_capacity_coordination.sql +145 -0
  489. package/drizzle/market/0006_provider_assignment_lifecycle.sql +9 -0
  490. package/drizzle/market/0007_agent_architecture_gap_closure.sql +157 -0
  491. package/drizzle/market/0008_agent_capacity_operational_closure.sql +27 -0
  492. package/drizzle/market/0009_agent_capacity_runtime_hardening.sql +29 -0
  493. package/drizzle/market/0010_secrets_capability_persistence.sql +130 -0
  494. package/drizzle/market/0011_github_app_adapter.sql +47 -0
  495. package/drizzle/market/0012_workday_test_runs.sql +44 -0
  496. package/drizzle/market/0013_runtime_task_lifecycle.sql +39 -0
  497. package/drizzle/market/0014_governance_pipeline.sql +189 -0
  498. package/package.json +106 -18
  499. package/scripts/{verify-driver.mjs → verify-driver.ts} +19 -4
  500. package/templates/github/deploy-web.workflow.yml +49 -12
  501. package/dist/operations/services/mailpit-runtime.d.ts +0 -20
  502. package/dist/operations/services/mailpit-runtime.js +0 -67
  503. package/dist/operations/services/release-candidate.d.ts +0 -41
  504. package/dist/operations/services/release-candidate.js +0 -616
  505. package/dist/scripts/ensure-mailpit.js +0 -48
  506. package/dist/scripts/logs-mailpit.js +0 -2
  507. package/dist/scripts/run-ts.js +0 -45
  508. package/dist/scripts/stop-mailpit.js +0 -5
  509. 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' | 'services.mailpitUp' | 'services.mailpitDown' | 'services.mailpitLogs' | 'data.d1MigrateLocal' | 'content.cleanupMarkdown' | 'content.cleanupMarkdownCheck' | 'project.export' | 'tools.astro' | 'tools.syncDevvars' | 'tools.starlightPatch' | 'agents.run';
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;
@@ -1,11 +1,17 @@
1
- export { TRESEED_OPERATION_SPECS, findTreeseedOperation, listTreeseedOperationNames, } from './operations-registry.ts';
2
- export { collectTreeseedConfigSeedValues } from './operations/services/config-runtime.ts';
3
- export { createKnowledgeHubRepositories, defaultHubContentResolutionPolicy, executeKnowledgeHubLaunch, normalizeKnowledgeHubLaunchIntent, planKnowledgeHubLaunch, planKnowledgeHubRepositories, validateRepositoryHost, } from './operations/services/hub-launch.ts';
4
- export { TreeseedOperationsSdk } from './operations/runtime.ts';
5
- export { cancelGitHubWorkflowRun, dispatchGitHubWorkflowRun, formatGitHubWorkflowFailure, waitForGitHubWorkflowRunCompletion, type GitHubWorkflowCancellationResult, type GitHubWorkflowDispatchResult, type GitHubWorkflowFailureSummary, type GitHubWorkflowFailureSummaryInput, type GitHubWorkflowProgressEvent, } from './operations/services/github-api.ts';
6
- export type { HubContentResolutionPolicy, KnowledgeHubLaunchIntent, KnowledgeHubLaunchPhase, KnowledgeHubLaunchPlan, KnowledgeHubLaunchResult, KnowledgeHubRepositoryPlan, RepositoryHost, } from './operations/services/hub-launch.ts';
7
- export type { TreeseedOperationContext, TreeseedOperationImplementation, TreeseedOperationId, TreeseedOperationMetadata, TreeseedOperationProvider, TreeseedOperationProviderId, TreeseedOperationRequest, TreeseedOperationResult, TreeseedOperationGroup, } from './operations-types.ts';
8
- export { TreeseedOperationError } from './operations-types.ts';
9
- export { AGENT_OPERATION_MODES, AGENT_OPERATION_NAMES, createAgentOperationEvent, decideAgentOperationPermission, deniedAgentOperationResult, isAgentOperationName, resolveAgentOperationGrant, type AgentDeterministicOperationStep, type AgentOperationApprovalRef, type AgentOperationEvent, type AgentOperationGrant, type AgentOperationMergeFailure, type AgentOperationMode, type AgentOperationName, type AgentOperationPermissionCode, type AgentOperationPermissionDecision, type AgentOperationRequest, type AgentOperationResult, type AgentOperationStatus, } from './operations/agent-tools.ts';
10
- export { TreeseedWorkflowSdk } from './workflow.ts';
11
- export type * from './workflow.ts';
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';
@@ -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
  };
@@ -217,6 +217,8 @@ async function renderRepomixMarkdown(stageRoot, outputPath) {
217
217
  output: outputPath,
218
218
  style: "markdown",
219
219
  ignore: "",
220
+ gitignore: false,
221
+ dotIgnore: false,
220
222
  quiet: true,
221
223
  skipLocalConfig: true,
222
224
  copy: false,
@@ -1,4 +1,4 @@
1
- import type { TreeseedBookDefinition, TreeseedTenantConfig } from './contracts.ts';
1
+ import type { TreeseedBookDefinition, TreeseedTenantConfig } from './contracts.js';
2
2
  export interface DocsLibraryDownload {
3
3
  downloadFileName: string;
4
4
  downloadHref: string;
@@ -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.ts';
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 = 'market_control_plane' | 'hosted_project' | 'self_hosted_project';
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.ts';
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;