@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,4 +1,4 @@
1
- import { type PlatformOperation, type PlatformOperationEvent, type PlatformRunnerClaimRequest, type PlatformRunnerHeartbeatRequest, type PlatformRunnerJobUpdateRequest, type PlatformRunnerRegistrationRequest } from './platform-operations.ts';
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?.TREESEED_MARKET_DATABASE_URL ?? null;
215
- if (!databaseUrl?.trim()) throw new Error("TREESEED_MARKET_DATABASE_URL is required for direct database platform operations.");
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("Market API URL is required.");
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;
@@ -22,7 +22,7 @@ declare const _default: {
22
22
  site: string[];
23
23
  };
24
24
  graphRankingProviders: {
25
- default: import("./sdk-types.ts").SdkGraphRankingProvider;
25
+ default: import("./sdk-types.js").SdkGraphRankingProvider;
26
26
  };
27
27
  };
28
28
  export default _default;
@@ -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: ["stub", "manual", "copilot", "codex", "codex_subscription"],
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: ["stub", "git"],
12
- verification: ["stub", "local"],
13
- notification: ["stub", "sdk_message"],
14
- research: ["stub", "project_graph"],
28
+ repository: ["git"],
29
+ verification: ["local"],
30
+ notification: ["sdk_message"],
31
+ research: ["project_graph"],
15
32
  handlers: [
16
- "planner",
17
- "architect",
18
- "engineer",
19
- "notifier",
20
- "researcher",
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.ts';
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.ts';
2
- import type { TreeseedDesiredUnit } from './contracts.ts';
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 = ["marketOperationsRunner", "workdayManager", "workerRunner"].some((serviceKey) => serviceEnabled(config, serviceKey));
59
- return enabled ? null : "No agent or market operations runner Railway services are enabled.";
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, "GH_TOKEN") || hasValue(env, "GITHUB_TOKEN") ? [] : ["GH_TOKEN"];
67
+ return hasValue(env, "TREESEED_GITHUB_TOKEN") ? [] : ["TREESEED_GITHUB_TOKEN"];
68
68
  case "data":
69
69
  case "web":
70
- return hasValue(env, "CLOUDFLARE_API_TOKEN") ? [] : ["CLOUDFLARE_API_TOKEN"];
70
+ return hasValue(env, "TREESEED_CLOUDFLARE_API_TOKEN") ? [] : ["TREESEED_CLOUDFLARE_API_TOKEN"];
71
71
  case "api":
72
72
  case "agents":
73
- return hasValue(env, "RAILWAY_API_TOKEN") ? [] : ["RAILWAY_API_TOKEN"];
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.ts';
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[];