@treeseed/sdk 0.11.0 → 0.12.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (473) hide show
  1. package/README.md +9 -4
  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 +117 -60
  27. package/dist/capacity-provider.js +215 -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 +2 -2
  36. package/dist/copilot.d.ts +3 -0
  37. package/dist/copilot.js +16 -1
  38. package/dist/d1-http.d.ts +1 -1
  39. package/dist/d1-store.d.ts +32 -57
  40. package/dist/d1-store.js +115 -318
  41. package/dist/db/d1.d.ts +1 -232
  42. package/dist/db/index.d.ts +3 -3
  43. package/dist/db/market-schema.d.ts +49037 -11843
  44. package/dist/db/market-schema.js +1788 -50
  45. package/dist/db/node-sqlite.d.ts +1 -232
  46. package/dist/db/schema.d.ts +0 -462
  47. package/dist/db/schema.js +2 -22
  48. package/dist/dispatch.d.ts +1 -1
  49. package/dist/dispatch.js +0 -11
  50. package/dist/fixture-support.js +52 -4
  51. package/dist/governance.d.ts +133 -0
  52. package/dist/governance.js +285 -0
  53. package/dist/graph/build.d.ts +2 -2
  54. package/dist/graph/context-query-contracts.d.ts +1 -1
  55. package/dist/graph/dsl.d.ts +1 -1
  56. package/dist/graph/query.d.ts +4 -4
  57. package/dist/graph/ranking.d.ts +1 -1
  58. package/dist/graph/schema.d.ts +1 -1
  59. package/dist/graph.d.ts +11 -11
  60. package/dist/guarantees/index.d.ts +425 -0
  61. package/dist/guarantees/index.js +1146 -0
  62. package/dist/hosting/apps.d.ts +1 -1
  63. package/dist/hosting/builtins.d.ts +1 -1
  64. package/dist/hosting/builtins.js +9 -198
  65. package/dist/hosting/contracts.d.ts +3 -2
  66. package/dist/hosting/graph.d.ts +24 -21
  67. package/dist/hosting/graph.js +280 -294
  68. package/dist/hosting/index.d.ts +4 -4
  69. package/dist/index.d.ts +88 -74
  70. package/dist/index.js +81 -10
  71. package/dist/local-dev/managed-dev.d.ts +85 -0
  72. package/dist/local-dev/managed-dev.js +368 -0
  73. package/dist/managed-dependencies.d.ts +9 -0
  74. package/dist/managed-dependencies.js +10 -8
  75. package/dist/market-client.d.ts +265 -7
  76. package/dist/market-client.js +381 -9
  77. package/dist/model-registry.d.ts +1 -1
  78. package/dist/model-registry.js +19 -19
  79. package/dist/operations/agent-tools.d.ts +2 -11
  80. package/dist/operations/agent-tools.js +2 -14
  81. package/dist/operations/providers/default.d.ts +1 -1
  82. package/dist/operations/providers/default.js +20 -37
  83. package/dist/operations/repository-operations.d.ts +26 -2
  84. package/dist/operations/repository-operations.js +159 -1
  85. package/dist/operations/runtime.d.ts +3 -3
  86. package/dist/operations/services/bootstrap-runner.d.ts +1 -1
  87. package/dist/operations/services/build-warning-policy.d.ts +34 -0
  88. package/dist/operations/services/build-warning-policy.js +81 -82
  89. package/dist/operations/services/commit-message-provider.js +4 -4
  90. package/dist/operations/services/config-runtime.d.ts +73 -19
  91. package/dist/operations/services/config-runtime.js +276 -100
  92. package/dist/operations/services/deploy.d.ts +41 -622
  93. package/dist/operations/services/deploy.js +181 -213
  94. package/dist/operations/services/deployment-readiness.d.ts +1 -1
  95. package/dist/operations/services/deployment-readiness.js +38 -7
  96. package/dist/operations/services/git-remote-policy.js +12 -4
  97. package/dist/operations/services/git-runner.d.ts +66 -0
  98. package/dist/operations/services/git-runner.js +479 -0
  99. package/dist/operations/services/git-workflow.d.ts +43 -5
  100. package/dist/operations/services/git-workflow.js +242 -20
  101. package/dist/operations/services/github-actions-verification.d.ts +3 -1
  102. package/dist/operations/services/github-actions-verification.js +11 -3
  103. package/dist/operations/services/github-api.js +21 -5
  104. package/dist/operations/services/github-automation.d.ts +3 -3
  105. package/dist/operations/services/github-automation.js +15 -18
  106. package/dist/operations/services/github-credentials.js +2 -1
  107. package/dist/operations/services/hosted-service-checks.d.ts +19 -1
  108. package/dist/operations/services/hosted-service-checks.js +162 -11
  109. package/dist/operations/services/hosting-audit.d.ts +2 -2
  110. package/dist/operations/services/hosting-audit.js +7 -7
  111. package/dist/operations/services/hub-launch.d.ts +1 -1
  112. package/dist/operations/services/hub-provider-launch.d.ts +5 -5
  113. package/dist/operations/services/hub-provider-launch.js +19 -14
  114. package/dist/operations/services/live-hosted-service-checks.d.ts +2 -1
  115. package/dist/operations/services/live-hosted-service-checks.js +193 -80
  116. package/dist/operations/services/local-dev.js +0 -1
  117. package/dist/operations/services/managed-host-security.d.ts +1 -1
  118. package/dist/operations/services/managed-repositories.d.ts +37 -0
  119. package/dist/operations/services/managed-repositories.js +177 -0
  120. package/dist/operations/services/operations-runner-smoke.d.ts +3 -2
  121. package/dist/operations/services/operations-runner-smoke.js +22 -4
  122. package/dist/operations/services/package-adapters.d.ts +77 -2
  123. package/dist/operations/services/package-adapters.js +627 -56
  124. package/dist/operations/services/package-reference-policy.d.ts +12 -88
  125. package/dist/operations/services/package-reference-policy.js +81 -213
  126. package/dist/operations/services/project-host-operations.d.ts +4 -4
  127. package/dist/operations/services/project-platform.d.ts +19 -193
  128. package/dist/operations/services/project-platform.js +31 -103
  129. package/dist/operations/services/project-web-monitor.d.ts +2 -2
  130. package/dist/operations/services/project-web-monitor.js +97 -2
  131. package/dist/operations/services/railway-api.d.ts +36 -7
  132. package/dist/operations/services/railway-api.js +331 -100
  133. package/dist/operations/services/railway-deploy.d.ts +7 -95
  134. package/dist/operations/services/railway-deploy.js +334 -742
  135. package/dist/operations/services/release-history.js +3 -4
  136. package/dist/operations/services/release-proof-ledger.d.ts +13 -0
  137. package/dist/operations/services/release-proof-ledger.js +81 -0
  138. package/dist/operations/services/release-proof-planner.d.ts +48 -0
  139. package/dist/operations/services/release-proof-planner.js +195 -0
  140. package/dist/operations/services/release-proof-runner.d.ts +16 -0
  141. package/dist/operations/services/release-proof-runner.js +169 -0
  142. package/dist/operations/services/release-proof.d.ts +81 -0
  143. package/dist/operations/services/release-proof.js +79 -0
  144. package/dist/operations/services/repository-save-orchestrator.d.ts +6 -7
  145. package/dist/operations/services/repository-save-orchestrator.js +353 -174
  146. package/dist/operations/services/runtime-paths.d.ts +1 -3
  147. package/dist/operations/services/runtime-paths.js +0 -4
  148. package/dist/operations/services/runtime-tools.d.ts +1 -192
  149. package/dist/operations/services/runtime-tools.js +4 -444
  150. package/dist/operations/services/save-deploy-preflight.js +9 -1
  151. package/dist/operations/services/template-host-bindings.d.ts +2 -2
  152. package/dist/operations/services/template-host-bindings.js +3 -2
  153. package/dist/operations/services/template-registry.d.ts +6 -6
  154. package/dist/operations/services/template-registry.js +33 -14
  155. package/dist/operations/services/template-secret-sync.d.ts +3 -3
  156. package/dist/operations/services/workflow-timing.d.ts +25 -0
  157. package/dist/operations/services/workflow-timing.js +79 -0
  158. package/dist/operations/services/workspace-dependency-mode.js +41 -4
  159. package/dist/operations/services/workspace-preflight.js +8 -8
  160. package/dist/operations/services/workspace-save-script.d.ts +4 -4
  161. package/dist/operations/services/workspace-save.d.ts +1 -0
  162. package/dist/operations/services/workspace-save.js +41 -18
  163. package/dist/operations/services/workspace-tools.js +40 -6
  164. package/dist/operations-registry.d.ts +1 -1
  165. package/dist/operations-registry.js +5 -6
  166. package/dist/operations-types.d.ts +1 -1
  167. package/dist/operations.d.ts +17 -11
  168. package/dist/operations.js +57 -3
  169. package/dist/platform/book-export.js +2 -0
  170. package/dist/platform/books-data.d.ts +1 -1
  171. package/dist/platform/config.d.ts +27 -0
  172. package/dist/platform/config.js +100 -0
  173. package/dist/platform/content-runtime-source.d.ts +54 -0
  174. package/dist/platform/content-runtime-source.js +169 -0
  175. package/dist/platform/contracts.d.ts +6 -1
  176. package/dist/platform/deploy-config.d.ts +1 -1
  177. package/dist/platform/deploy-config.js +7 -1
  178. package/dist/platform/deploy-runtime.d.ts +1 -1
  179. package/dist/platform/desired-state.d.ts +63 -0
  180. package/dist/platform/desired-state.js +1021 -0
  181. package/dist/platform/env.yaml +414 -19
  182. package/dist/platform/environment.d.ts +2 -2
  183. package/dist/platform/environment.js +54 -22
  184. package/dist/platform/local-content-materialization.d.ts +9 -0
  185. package/dist/platform/local-content-materialization.js +212 -0
  186. package/dist/platform/plugin.d.ts +5 -5
  187. package/dist/platform/plugins/runtime.d.ts +3 -3
  188. package/dist/platform/plugins/runtime.js +62 -1
  189. package/dist/platform/plugins.d.ts +6 -6
  190. package/dist/platform/published-content-pipeline.d.ts +3 -3
  191. package/dist/platform/published-content-pipeline.js +5 -1
  192. package/dist/platform/published-content.d.ts +4 -3
  193. package/dist/platform/site-config-schema.d.ts +1 -0
  194. package/dist/platform/site-config-schema.js +4 -1
  195. package/dist/platform/tenant/runtime-config.d.ts +152 -2
  196. package/dist/platform/tenant-config.d.ts +1 -1
  197. package/dist/platform/utils/site-config-schema.d.ts +154 -0
  198. package/dist/platform/utils/site-config-schema.js +400 -461
  199. package/dist/platform-operation-store.d.ts +1 -1
  200. package/dist/plugin-default.d.ts +1 -1
  201. package/dist/plugin-default.js +27 -12
  202. package/dist/project-import.d.ts +91 -0
  203. package/dist/project-import.js +257 -0
  204. package/dist/project-workflow.d.ts +1 -1
  205. package/dist/reconcile/bootstrap-systems.d.ts +2 -2
  206. package/dist/reconcile/bootstrap-systems.js +3 -3
  207. package/dist/reconcile/builtin-adapters.d.ts +7 -1
  208. package/dist/reconcile/builtin-adapters.js +2924 -346
  209. package/dist/reconcile/contracts.d.ts +15 -2
  210. package/dist/reconcile/desired-state.d.ts +2 -193
  211. package/dist/reconcile/desired-state.js +24 -33
  212. package/dist/reconcile/engine.d.ts +60 -397
  213. package/dist/reconcile/engine.js +182 -18
  214. package/dist/reconcile/index.d.ts +10 -10
  215. package/dist/reconcile/live-acceptance.d.ts +22 -1
  216. package/dist/reconcile/live-acceptance.js +456 -44
  217. package/dist/reconcile/providers/docker-private.d.ts +54 -0
  218. package/dist/reconcile/providers/docker-private.js +101 -0
  219. package/dist/reconcile/providers/github-private.d.ts +65 -0
  220. package/dist/reconcile/providers/github-private.js +119 -0
  221. package/dist/reconcile/providers/local-private.d.ts +28 -0
  222. package/dist/reconcile/providers/local-private.js +75 -0
  223. package/dist/reconcile/providers/railway-iac.d.ts +66 -0
  224. package/dist/reconcile/providers/railway-iac.js +275 -0
  225. package/dist/reconcile/providers/release-private.d.ts +92 -0
  226. package/dist/reconcile/providers/release-private.js +152 -0
  227. package/dist/reconcile/registry.d.ts +2 -2
  228. package/dist/reconcile/registry.js +16 -1
  229. package/dist/reconcile/state.d.ts +1 -1
  230. package/dist/reconcile/state.js +3 -40
  231. package/dist/reconcile/units.d.ts +1 -1
  232. package/dist/reconcile/units.js +7 -1
  233. package/dist/remote.d.ts +6 -6
  234. package/dist/scenes/artifacts.d.ts +16 -0
  235. package/dist/scenes/artifacts.js +61 -0
  236. package/dist/scenes/auth.d.ts +2 -0
  237. package/dist/scenes/auth.js +28 -0
  238. package/dist/scenes/base-url.d.ts +12 -0
  239. package/dist/scenes/base-url.js +123 -0
  240. package/dist/scenes/builtin-plugins.d.ts +2 -0
  241. package/dist/scenes/builtin-plugins.js +447 -0
  242. package/dist/scenes/checkpoints.d.ts +14 -0
  243. package/dist/scenes/checkpoints.js +33 -0
  244. package/dist/scenes/device-matrix.d.ts +2 -0
  245. package/dist/scenes/device-matrix.js +97 -0
  246. package/dist/scenes/devices.d.ts +11 -0
  247. package/dist/scenes/devices.js +22 -0
  248. package/dist/scenes/diagnostics.d.ts +5 -0
  249. package/dist/scenes/diagnostics.js +22 -0
  250. package/dist/scenes/diagram-providers.d.ts +2 -0
  251. package/dist/scenes/diagram-providers.js +181 -0
  252. package/dist/scenes/diagram-validation.d.ts +22 -0
  253. package/dist/scenes/diagram-validation.js +74 -0
  254. package/dist/scenes/environment.d.ts +2 -0
  255. package/dist/scenes/environment.js +65 -0
  256. package/dist/scenes/evidence-bundle.d.ts +5 -0
  257. package/dist/scenes/evidence-bundle.js +42 -0
  258. package/dist/scenes/evidence-report.d.ts +10 -0
  259. package/dist/scenes/evidence-report.js +73 -0
  260. package/dist/scenes/evidence.d.ts +16 -0
  261. package/dist/scenes/evidence.js +277 -0
  262. package/dist/scenes/index.d.ts +48 -0
  263. package/dist/scenes/index.js +312 -0
  264. package/dist/scenes/inspect.d.ts +9 -0
  265. package/dist/scenes/inspect.js +64 -0
  266. package/dist/scenes/loader.d.ts +3 -0
  267. package/dist/scenes/loader.js +38 -0
  268. package/dist/scenes/logs.d.ts +2 -0
  269. package/dist/scenes/logs.js +47 -0
  270. package/dist/scenes/operations.d.ts +3 -0
  271. package/dist/scenes/operations.js +128 -0
  272. package/dist/scenes/phase0.d.ts +9 -0
  273. package/dist/scenes/phase0.js +637 -0
  274. package/dist/scenes/planner.d.ts +12 -0
  275. package/dist/scenes/planner.js +166 -0
  276. package/dist/scenes/playwright-adapter.d.ts +2 -0
  277. package/dist/scenes/playwright-adapter.js +63 -0
  278. package/dist/scenes/plugins.d.ts +5 -0
  279. package/dist/scenes/plugins.js +115 -0
  280. package/dist/scenes/progress.d.ts +17 -0
  281. package/dist/scenes/progress.js +24 -0
  282. package/dist/scenes/publish-destinations.d.ts +12 -0
  283. package/dist/scenes/publish-destinations.js +99 -0
  284. package/dist/scenes/publish-plan-report.d.ts +10 -0
  285. package/dist/scenes/publish-plan-report.js +70 -0
  286. package/dist/scenes/publish-plan.d.ts +15 -0
  287. package/dist/scenes/publish-plan.js +248 -0
  288. package/dist/scenes/publish-redaction.d.ts +16 -0
  289. package/dist/scenes/publish-redaction.js +148 -0
  290. package/dist/scenes/publish-release-record.d.ts +13 -0
  291. package/dist/scenes/publish-release-record.js +34 -0
  292. package/dist/scenes/publish-report.d.ts +10 -0
  293. package/dist/scenes/publish-report.js +67 -0
  294. package/dist/scenes/publish.d.ts +16 -0
  295. package/dist/scenes/publish.js +298 -0
  296. package/dist/scenes/registry.d.ts +12 -0
  297. package/dist/scenes/registry.js +65 -0
  298. package/dist/scenes/remotion-adapter.d.ts +3 -0
  299. package/dist/scenes/remotion-adapter.js +94 -0
  300. package/dist/scenes/remotion-composition-registry.d.ts +2 -0
  301. package/dist/scenes/remotion-composition-registry.js +12 -0
  302. package/dist/scenes/remotion-compositions.d.ts +15 -0
  303. package/dist/scenes/remotion-compositions.js +464 -0
  304. package/dist/scenes/remotion-diagrams.d.ts +9 -0
  305. package/dist/scenes/remotion-diagrams.js +188 -0
  306. package/dist/scenes/remotion-input.d.ts +13 -0
  307. package/dist/scenes/remotion-input.js +291 -0
  308. package/dist/scenes/remotion-visuals.d.ts +29 -0
  309. package/dist/scenes/remotion-visuals.js +198 -0
  310. package/dist/scenes/render-media-assets.d.ts +9 -0
  311. package/dist/scenes/render-media-assets.js +117 -0
  312. package/dist/scenes/render-report.d.ts +10 -0
  313. package/dist/scenes/render-report.js +27 -0
  314. package/dist/scenes/render.d.ts +2 -0
  315. package/dist/scenes/render.js +218 -0
  316. package/dist/scenes/reporter.d.ts +3 -0
  317. package/dist/scenes/reporter.js +101 -0
  318. package/dist/scenes/resume.d.ts +2 -0
  319. package/dist/scenes/resume.js +79 -0
  320. package/dist/scenes/runner.d.ts +2 -0
  321. package/dist/scenes/runner.js +674 -0
  322. package/dist/scenes/schema.d.ts +6 -0
  323. package/dist/scenes/schema.js +994 -0
  324. package/dist/scenes/seed.d.ts +2 -0
  325. package/dist/scenes/seed.js +83 -0
  326. package/dist/scenes/segments.d.ts +15 -0
  327. package/dist/scenes/segments.js +79 -0
  328. package/dist/scenes/selectors.d.ts +3 -0
  329. package/dist/scenes/selectors.js +21 -0
  330. package/dist/scenes/timeline.d.ts +11 -0
  331. package/dist/scenes/timeline.js +26 -0
  332. package/dist/scenes/timeouts.d.ts +6 -0
  333. package/dist/scenes/timeouts.js +17 -0
  334. package/dist/scenes/training-captions.d.ts +14 -0
  335. package/dist/scenes/training-captions.js +98 -0
  336. package/dist/scenes/training-report.d.ts +10 -0
  337. package/dist/scenes/training-report.js +78 -0
  338. package/dist/scenes/training-transcript.d.ts +24 -0
  339. package/dist/scenes/training-transcript.js +204 -0
  340. package/dist/scenes/training.d.ts +10 -0
  341. package/dist/scenes/training.js +134 -0
  342. package/dist/scenes/types.d.ts +1872 -0
  343. package/dist/scenes/types.js +8 -0
  344. package/dist/scenes/visual-audit-contact-sheets.d.ts +6 -0
  345. package/dist/scenes/visual-audit-contact-sheets.js +119 -0
  346. package/dist/scenes/visual-audit-fixtures.d.ts +25 -0
  347. package/dist/scenes/visual-audit-fixtures.js +210 -0
  348. package/dist/scenes/visual-audit-report.d.ts +11 -0
  349. package/dist/scenes/visual-audit-report.js +85 -0
  350. package/dist/scenes/visual-audit-review.d.ts +23 -0
  351. package/dist/scenes/visual-audit-review.js +829 -0
  352. package/dist/scenes/visual-audit-routes.d.ts +13 -0
  353. package/dist/scenes/visual-audit-routes.js +308 -0
  354. package/dist/scenes/visual-audit.d.ts +3 -0
  355. package/dist/scenes/visual-audit.js +596 -0
  356. package/dist/scripts/build-dist.js +154 -40
  357. package/dist/scripts/check-build-warnings.js +42 -53
  358. package/dist/scripts/cleanup-markdown.js +1 -1
  359. package/dist/scripts/cli-test-fixtures.js +24 -28
  360. package/dist/scripts/migrate-journey-csv-to-guarantees.js +140 -0
  361. package/dist/scripts/package-tools.js +12 -1
  362. package/dist/scripts/prepare.js +3 -7
  363. package/dist/scripts/release-verify.js +2 -5
  364. package/dist/scripts/run-fixture-astro-command.js +1 -1
  365. package/dist/scripts/template-catalog.test.js +68 -82
  366. package/dist/scripts/tenant-dev.js +0 -10
  367. package/dist/scripts/test-cloudflare-local.js +1 -1
  368. package/dist/scripts/test-scaffold.js +0 -1
  369. package/dist/scripts/test-smoke.js +3 -3
  370. package/dist/scripts/treeseed-build-dist.js +4 -7
  371. package/dist/scripts/treeseed-release-verify.js +1 -1
  372. package/dist/scripts/verify-driver.js +30 -21
  373. package/dist/scripts/workflow-commands.test.js +18 -27
  374. package/dist/scripts/workspace-command-e2e.js +1 -1
  375. package/dist/scripts/workspace-lint.js +6 -0
  376. package/dist/scripts/workspace-release-test.js +90 -1
  377. package/dist/scripts/workspace-test.js +6 -0
  378. package/dist/sdk-dispatch.d.ts +1 -1
  379. package/dist/sdk-dispatch.js +0 -16
  380. package/dist/sdk-fields.d.ts +1 -1
  381. package/dist/sdk-filters.d.ts +1 -1
  382. package/dist/sdk-types.d.ts +1184 -113
  383. package/dist/sdk-types.js +393 -0
  384. package/dist/sdk.d.ts +74 -79
  385. package/dist/sdk.js +27 -36
  386. package/dist/secrets-capability.d.ts +421 -0
  387. package/dist/secrets-capability.js +530 -0
  388. package/dist/seeds/normalize.js +1 -0
  389. package/dist/seeds/planner.js +38 -0
  390. package/dist/seeds/schema.js +293 -4
  391. package/dist/seeds/types.d.ts +60 -0
  392. package/dist/seeds/types.js +9 -1
  393. package/dist/service-credentials.d.ts +54 -0
  394. package/dist/service-credentials.js +112 -0
  395. package/dist/stores/cursor-store.d.ts +2 -2
  396. package/dist/stores/envelopes.d.ts +1 -1
  397. package/dist/stores/helpers.d.ts +1 -1
  398. package/dist/stores/lease-store.d.ts +2 -2
  399. package/dist/stores/message-store.d.ts +2 -2
  400. package/dist/stores/operational-store.d.ts +3 -26
  401. package/dist/stores/operational-store.js +0 -225
  402. package/dist/stores/project-workflow-store.d.ts +2 -2
  403. package/dist/stores/run-store.d.ts +2 -3
  404. package/dist/stores/run-store.js +0 -98
  405. package/dist/stores/subscription-store.d.ts +2 -3
  406. package/dist/stores/subscription-store.js +0 -100
  407. package/dist/template-catalog.d.ts +1 -1
  408. package/dist/template-launch-requirements.d.ts +2 -2
  409. package/dist/template-launch-ui.d.ts +2 -2
  410. package/dist/treedx/adapters.d.ts +6 -6
  411. package/dist/treedx/client.d.ts +1 -1
  412. package/dist/treedx/errors.d.ts +1 -1
  413. package/dist/treedx/federated-client.d.ts +3 -3
  414. package/dist/treedx/graph-adapter.d.ts +2 -2
  415. package/dist/treedx/index.d.ts +14 -14
  416. package/dist/treedx/market-integration.d.ts +1 -1
  417. package/dist/treedx/ports.d.ts +30 -30
  418. package/dist/treedx/query-adapter.d.ts +3 -3
  419. package/dist/treedx/registry-client.d.ts +2 -2
  420. package/dist/treedx/repository-adapter.d.ts +4 -4
  421. package/dist/treedx/repository-adapter.js +14 -3
  422. package/dist/treedx/sdk-integration.d.ts +3 -3
  423. package/dist/treedx/types.d.ts +2 -2
  424. package/dist/treedx/workspace-adapter.d.ts +2 -2
  425. package/dist/treedx-backends.d.ts +13 -11
  426. package/dist/treedx-backends.js +52 -50
  427. package/dist/treedx-client.d.ts +3 -0
  428. package/dist/treedx-client.js +10 -1
  429. package/dist/treeseed/services/compose.yml +2 -3
  430. package/dist/treeseed/template-catalog/catalog.fixture.json +4 -4
  431. package/dist/types/agents.d.ts +256 -0
  432. package/dist/types/agents.js +42 -1
  433. package/dist/verification.d.ts +1 -0
  434. package/dist/verification.js +143 -14
  435. package/dist/workflow/operations.d.ts +510 -559
  436. package/dist/workflow/operations.js +1891 -1342
  437. package/dist/workflow/policy.js +19 -7
  438. package/dist/workflow/runs.d.ts +9 -3
  439. package/dist/workflow/runs.js +66 -26
  440. package/dist/workflow/session.d.ts +4 -1
  441. package/dist/workflow/session.js +50 -10
  442. package/dist/workflow/worktrees.d.ts +6 -2
  443. package/dist/workflow/worktrees.js +98 -15
  444. package/dist/workflow-state.d.ts +5 -5
  445. package/dist/workflow-state.js +27 -17
  446. package/dist/workflow-support.d.ts +26 -25
  447. package/dist/workflow-support.js +27 -31
  448. package/dist/workflow.d.ts +46 -16
  449. package/dist/workflow.js +19 -7
  450. package/drizzle/d1/0000_treeseed_d1.sql +0 -18
  451. package/drizzle/market/0000_market_control_plane.sql +1793 -1499
  452. package/drizzle/market/0005_agent_capacity_coordination.sql +145 -0
  453. package/drizzle/market/0006_provider_assignment_lifecycle.sql +9 -0
  454. package/drizzle/market/0007_agent_architecture_gap_closure.sql +157 -0
  455. package/drizzle/market/0008_agent_capacity_operational_closure.sql +27 -0
  456. package/drizzle/market/0009_agent_capacity_runtime_hardening.sql +29 -0
  457. package/drizzle/market/0010_secrets_capability_persistence.sql +130 -0
  458. package/drizzle/market/0011_github_app_adapter.sql +47 -0
  459. package/drizzle/market/0012_workday_test_runs.sql +44 -0
  460. package/drizzle/market/0013_runtime_task_lifecycle.sql +39 -0
  461. package/drizzle/market/0014_governance_pipeline.sql +189 -0
  462. package/package.json +75 -18
  463. package/scripts/{verify-driver.mjs → verify-driver.ts} +19 -4
  464. package/templates/github/deploy-web.workflow.yml +12 -8
  465. package/dist/operations/services/mailpit-runtime.d.ts +0 -20
  466. package/dist/operations/services/mailpit-runtime.js +0 -67
  467. package/dist/operations/services/release-candidate.d.ts +0 -60
  468. package/dist/operations/services/release-candidate.js +0 -953
  469. package/dist/scripts/ensure-mailpit.js +0 -48
  470. package/dist/scripts/logs-mailpit.js +0 -2
  471. package/dist/scripts/run-ts.js +0 -45
  472. package/dist/scripts/stop-mailpit.js +0 -5
  473. package/dist/scripts/treeseed-run-ts.js +0 -45
@@ -0,0 +1,298 @@
1
+ import { copyFileSync, existsSync, mkdirSync, readFileSync, statSync, writeFileSync } from "node:fs";
2
+ import { dirname, join, relative } from "node:path";
3
+ import { sceneErrorDiagnostic, sceneWarningDiagnostic } from "./diagnostics.js";
4
+ import { generateTreeseedSceneEvidence } from "./evidence.js";
5
+ import { resolveTreeseedSceneRunRoot } from "./inspect.js";
6
+ import { validateTreeseedScene } from "./planner.js";
7
+ import {
8
+ createDefaultTreeseedSceneRedactionPolicy,
9
+ readTreeseedSceneRedactionPolicyFile,
10
+ resolveTreeseedSceneRedactionRule,
11
+ validateTreeseedSceneRedactionPolicy
12
+ } from "./publish-redaction.js";
13
+ import { appendTreeseedScenePublishPaths, writeTreeseedScenePublishReport } from "./publish-report.js";
14
+ import { treeseedSceneReleaseEvidenceRecordPath, writeTreeseedSceneReleaseEvidenceRecord } from "./publish-release-record.js";
15
+ function readJson(path) {
16
+ return JSON.parse(readFileSync(path, "utf8"));
17
+ }
18
+ function writeJson(path, value) {
19
+ mkdirSync(dirname(path), { recursive: true });
20
+ writeFileSync(path, `${JSON.stringify(value, null, 2)}
21
+ `, "utf8");
22
+ }
23
+ function nowIso() {
24
+ return (/* @__PURE__ */ new Date()).toISOString();
25
+ }
26
+ function safeBundlePath(bundleRoot, relativePath) {
27
+ return join(bundleRoot, relativePath.replace(/^(\.\.[/\\])+/u, "").replace(/^[/\\]+/u, ""));
28
+ }
29
+ function failedReport(input) {
30
+ const blockers = input.blockers ?? input.diagnostics.filter((diagnostic) => diagnostic.severity === "error");
31
+ return {
32
+ ok: false,
33
+ phase: 10,
34
+ status: "blocked",
35
+ sceneId: input.sceneId ?? null,
36
+ sourceRunId: input.sourceRunId ?? null,
37
+ scenePath: input.scenePath,
38
+ runRoot: input.runRoot,
39
+ evidenceRoot: input.evidenceRoot ?? (input.runRoot ? join(input.runRoot, "evidence") : null),
40
+ publishRoot: input.publishRoot ?? (input.runRoot ? join(input.runRoot, "publish") : null),
41
+ manifest: input.manifest ?? null,
42
+ paths: input.paths ?? null,
43
+ diagnostics: input.diagnostics,
44
+ warnings: input.warnings ?? input.diagnostics.filter((diagnostic) => diagnostic.severity === "warning"),
45
+ blockers
46
+ };
47
+ }
48
+ function defaultIncluded(input) {
49
+ return input.policy.id === "treeseed.scene.redaction.default" && input.artifact.kind === "screenshot" && !input.artifact.includedInBundle ? false : true;
50
+ }
51
+ function publishDecision(input) {
52
+ if (!existsSync(input.artifact.path) || !statSync(input.artifact.path).isFile()) {
53
+ return {
54
+ id: input.artifact.id,
55
+ kind: input.artifact.kind,
56
+ sourcePath: input.artifact.path,
57
+ publishedPath: null,
58
+ relativePath: input.artifact.relativePath,
59
+ sha256: input.artifact.sha256,
60
+ bytes: input.artifact.bytes,
61
+ decision: "missing",
62
+ reason: "Source artifact is missing."
63
+ };
64
+ }
65
+ if (input.artifact.redactionStatus === "excluded-sensitive") {
66
+ return {
67
+ id: input.artifact.id,
68
+ kind: input.artifact.kind,
69
+ sourcePath: input.artifact.path,
70
+ publishedPath: null,
71
+ relativePath: input.artifact.relativePath,
72
+ sha256: input.artifact.sha256,
73
+ bytes: input.artifact.bytes,
74
+ decision: "exclude-sensitive",
75
+ reason: "Artifact was marked sensitive by evidence generation."
76
+ };
77
+ }
78
+ const rule = resolveTreeseedSceneRedactionRule({
79
+ policy: input.policy,
80
+ artifactKind: input.artifact.kind,
81
+ target: input.target,
82
+ workflowStatus: input.workflowStatus
83
+ });
84
+ if (!rule || !defaultIncluded({ artifact: input.artifact, policy: input.policy })) {
85
+ return {
86
+ id: input.artifact.id,
87
+ kind: input.artifact.kind,
88
+ sourcePath: input.artifact.path,
89
+ publishedPath: null,
90
+ relativePath: input.artifact.relativePath,
91
+ sha256: input.artifact.sha256,
92
+ bytes: input.artifact.bytes,
93
+ decision: "exclude-not-allowed",
94
+ reason: rule?.reason ?? "No redaction rule allowed this artifact."
95
+ };
96
+ }
97
+ if (!rule.include) {
98
+ return {
99
+ id: input.artifact.id,
100
+ kind: input.artifact.kind,
101
+ sourcePath: input.artifact.path,
102
+ publishedPath: null,
103
+ relativePath: input.artifact.relativePath,
104
+ sha256: input.artifact.sha256,
105
+ bytes: input.artifact.bytes,
106
+ decision: input.artifact.redactionStatus === "excluded-sensitive" ? "exclude-sensitive" : "exclude-not-allowed",
107
+ reason: rule.reason
108
+ };
109
+ }
110
+ return {
111
+ id: input.artifact.id,
112
+ kind: input.artifact.kind,
113
+ sourcePath: input.artifact.path,
114
+ publishedPath: null,
115
+ relativePath: input.artifact.relativePath,
116
+ sha256: input.artifact.sha256,
117
+ bytes: input.artifact.bytes,
118
+ decision: "include",
119
+ reason: rule.reason
120
+ };
121
+ }
122
+ function buildTreeseedScenePublishManifest(input) {
123
+ const redactionPolicy = input.redactionPolicy ?? createDefaultTreeseedSceneRedactionPolicy(input.target);
124
+ const policyDiagnostics = validateTreeseedSceneRedactionPolicy({ policy: redactionPolicy });
125
+ const artifacts = input.evidence.artifacts.map((artifact) => publishDecision({
126
+ artifact,
127
+ policy: redactionPolicy,
128
+ target: input.target,
129
+ workflowStatus: input.evidence.summary.workflowStatus
130
+ }));
131
+ const diagnostics = [...input.evidence.diagnostics, ...policyDiagnostics];
132
+ if (artifacts.every((artifact) => artifact.decision !== "include")) {
133
+ diagnostics.push(sceneErrorDiagnostic("scene.publish_no_artifacts", "Redaction policy did not include any publishable evidence artifacts.", "publish"));
134
+ }
135
+ return {
136
+ schemaVersion: "treeseed.scene.publish/v1",
137
+ phase: 10,
138
+ generatedAt: input.timestamp ?? nowIso(),
139
+ target: input.target,
140
+ sourceEvidenceManifestPath: input.evidencePath,
141
+ sourceRunRoot: input.runRoot,
142
+ sceneId: input.evidence.summary.sceneId,
143
+ sourceRunId: input.evidence.summary.runId,
144
+ workflowStatus: input.evidence.summary.workflowStatus,
145
+ redactionPolicy,
146
+ artifacts,
147
+ releaseRecordPath: null,
148
+ diagnostics
149
+ };
150
+ }
151
+ function writeTreeseedScenePublish(input) {
152
+ const publishRoot = join(input.runRoot, "publish", input.manifest.target);
153
+ const paths = {
154
+ publishRoot,
155
+ manifestPath: join(publishRoot, "manifest.json"),
156
+ reportPath: join(publishRoot, "report.md"),
157
+ bundleRoot: join(publishRoot, "bundle"),
158
+ releaseRecordPath: input.manifest.target === "release" && input.projectRoot ? treeseedSceneReleaseEvidenceRecordPath({ projectRoot: input.projectRoot, sceneId: input.manifest.sceneId, runId: input.manifest.sourceRunId }) : null
159
+ };
160
+ const copiedArtifacts = input.manifest.artifacts.map((artifact) => {
161
+ if (artifact.decision !== "include" || !existsSync(artifact.sourcePath)) return artifact;
162
+ const targetPath = safeBundlePath(paths.bundleRoot, artifact.relativePath);
163
+ mkdirSync(dirname(targetPath), { recursive: true });
164
+ copyFileSync(artifact.sourcePath, targetPath);
165
+ return {
166
+ ...artifact,
167
+ publishedPath: targetPath,
168
+ relativePath: relative(paths.bundleRoot, targetPath)
169
+ };
170
+ });
171
+ const manifest = {
172
+ ...input.manifest,
173
+ releaseRecordPath: paths.releaseRecordPath,
174
+ artifacts: copiedArtifacts
175
+ };
176
+ mkdirSync(paths.bundleRoot, { recursive: true });
177
+ writeJson(join(paths.bundleRoot, "bundle-manifest.json"), {
178
+ schemaVersion: "treeseed.scene.publish-bundle/v1",
179
+ generatedAt: manifest.generatedAt,
180
+ target: manifest.target,
181
+ sceneId: manifest.sceneId,
182
+ sourceRunId: manifest.sourceRunId,
183
+ artifacts: copiedArtifacts
184
+ });
185
+ if (manifest.target === "release" && input.projectRoot) {
186
+ writeTreeseedSceneReleaseEvidenceRecord({
187
+ projectRoot: input.projectRoot,
188
+ manifest,
189
+ manifestPath: paths.manifestPath,
190
+ reportPath: paths.reportPath,
191
+ bundleRoot: paths.bundleRoot
192
+ });
193
+ }
194
+ writeTreeseedScenePublishReport({ manifest, paths });
195
+ return paths;
196
+ }
197
+ function loadOrGenerateEvidence(input) {
198
+ const evidencePath = join(input.runRoot, "evidence", "manifest.json");
199
+ if (existsSync(evidencePath)) {
200
+ return { evidence: readJson(evidencePath), evidencePath, warnings: [], diagnostics: [] };
201
+ }
202
+ const report = generateTreeseedSceneEvidence({
203
+ projectRoot: input.projectRoot,
204
+ scene: input.scene,
205
+ from: input.from,
206
+ target: input.target === "release" ? "release" : "local",
207
+ bundlePolicy: "sanitized",
208
+ timestamp: input.timestamp
209
+ });
210
+ if (!report.ok || !report.manifest || !report.paths) {
211
+ return { evidence: null, evidencePath, warnings: report.warnings, diagnostics: report.diagnostics };
212
+ }
213
+ const warning = sceneWarningDiagnostic("scene.publish_generated_evidence", "Evidence manifest was missing, so publish generated sanitized Phase 9 evidence first.", "evidence");
214
+ return { evidence: report.manifest, evidencePath: report.paths.manifestPath, warnings: [warning, ...report.warnings], diagnostics: [warning, ...report.diagnostics] };
215
+ }
216
+ async function publishTreeseedSceneEvidence(input) {
217
+ const target = input.target ?? "local";
218
+ if (!["local", "release"].includes(target)) {
219
+ const diagnostic = sceneErrorDiagnostic("scene.publish_target_unsupported", `Unsupported scene publish target "${String(target)}".`, "target");
220
+ return failedReport({ scenePath: input.scene, runRoot: null, diagnostics: [diagnostic], blockers: [diagnostic] });
221
+ }
222
+ const resolved = resolveTreeseedSceneRunRoot(input.projectRoot, input.from);
223
+ if (!resolved.runRoot) return failedReport({ scenePath: input.scene, runRoot: null, diagnostics: resolved.diagnostics });
224
+ const scenePath = join(resolved.runRoot, "scene.normalized.json");
225
+ const runPath = join(resolved.runRoot, "run.json");
226
+ const timelinePath = join(resolved.runRoot, "timeline.json");
227
+ const blockers = [];
228
+ if (!existsSync(scenePath)) blockers.push(sceneErrorDiagnostic("scene.publish_missing_evidence", `Normalized scene artifact not found: ${scenePath}.`, "scene"));
229
+ if (!existsSync(runPath)) blockers.push(sceneErrorDiagnostic("scene.publish_missing_evidence", `Run report artifact not found: ${runPath}.`, "from"));
230
+ if (!existsSync(timelinePath)) blockers.push(sceneErrorDiagnostic("scene.publish_missing_evidence", `Timeline artifact not found: ${timelinePath}.`, "from"));
231
+ if (blockers.length > 0) return failedReport({ scenePath: input.scene, runRoot: resolved.runRoot, diagnostics: [...resolved.diagnostics, ...blockers], blockers });
232
+ const sourceScene = readJson(scenePath);
233
+ const run = readJson(runPath);
234
+ const validation = validateTreeseedScene({ projectRoot: input.projectRoot, scene: input.scene });
235
+ if (!validation.ok) return failedReport({ scenePath: validation.scenePath, runRoot: resolved.runRoot, diagnostics: validation.diagnostics });
236
+ if (validation.scene?.id !== sourceScene.id) {
237
+ const diagnostic = sceneErrorDiagnostic("scene.publish_scene_mismatch", `Scene manifest "${validation.scene?.id ?? "(unknown)"}" does not match source run scene "${sourceScene.id}".`, "scene");
238
+ return failedReport({ scenePath: validation.scenePath, runRoot: resolved.runRoot, diagnostics: [diagnostic], blockers: [diagnostic], sceneId: sourceScene.id, sourceRunId: run.runId });
239
+ }
240
+ const policyResult = input.redactionPolicyPath ? readTreeseedSceneRedactionPolicyFile(input.redactionPolicyPath) : { policy: createDefaultTreeseedSceneRedactionPolicy(target), diagnostics: [] };
241
+ if (!policyResult.policy || policyResult.diagnostics.some((diagnostic) => diagnostic.severity === "error")) {
242
+ return failedReport({ scenePath: validation.scenePath, runRoot: resolved.runRoot, diagnostics: policyResult.diagnostics, blockers: policyResult.diagnostics.filter((diagnostic) => diagnostic.severity === "error"), sceneId: sourceScene.id, sourceRunId: run.runId });
243
+ }
244
+ const evidenceResult = loadOrGenerateEvidence({ projectRoot: input.projectRoot, scene: input.scene, from: input.from, runRoot: resolved.runRoot, target, timestamp: input.timestamp });
245
+ if (!evidenceResult.evidence) return failedReport({ scenePath: validation.scenePath, runRoot: resolved.runRoot, diagnostics: evidenceResult.diagnostics, warnings: evidenceResult.warnings, blockers: evidenceResult.diagnostics.filter((diagnostic) => diagnostic.severity === "error"), sceneId: sourceScene.id, sourceRunId: run.runId });
246
+ const manifest = buildTreeseedScenePublishManifest({
247
+ evidence: evidenceResult.evidence,
248
+ evidencePath: evidenceResult.evidencePath,
249
+ runRoot: resolved.runRoot,
250
+ target,
251
+ redactionPolicy: policyResult.policy,
252
+ timestamp: input.timestamp
253
+ });
254
+ const manifestErrors = manifest.diagnostics.filter((diagnostic) => diagnostic.severity === "error" && diagnostic.code.startsWith("scene.publish_"));
255
+ if (target === "release" && manifest.workflowStatus !== "passed") {
256
+ manifestErrors.push(sceneErrorDiagnostic("scene.publish_release_blocked", "Release evidence publication is blocked until the scene workflow passes.", "target"));
257
+ }
258
+ if (manifestErrors.length > 0) {
259
+ return failedReport({
260
+ scenePath: validation.scenePath,
261
+ runRoot: resolved.runRoot,
262
+ diagnostics: [...evidenceResult.diagnostics, ...manifest.diagnostics, ...manifestErrors],
263
+ warnings: evidenceResult.warnings,
264
+ blockers: manifestErrors,
265
+ sceneId: sourceScene.id,
266
+ sourceRunId: run.runId,
267
+ manifest
268
+ });
269
+ }
270
+ try {
271
+ const paths = writeTreeseedScenePublish({ runRoot: resolved.runRoot, manifest, evidence: evidenceResult.evidence, projectRoot: input.projectRoot });
272
+ const updateWarnings = appendTreeseedScenePublishPaths({ runPath, paths });
273
+ return {
274
+ ok: true,
275
+ phase: 10,
276
+ status: "published",
277
+ sceneId: sourceScene.id,
278
+ sourceRunId: run.runId,
279
+ scenePath: validation.scenePath,
280
+ runRoot: resolved.runRoot,
281
+ evidenceRoot: join(resolved.runRoot, "evidence"),
282
+ publishRoot: paths.publishRoot,
283
+ manifest: readJson(paths.manifestPath),
284
+ paths,
285
+ diagnostics: [...evidenceResult.diagnostics, ...updateWarnings],
286
+ warnings: [...evidenceResult.warnings, ...updateWarnings],
287
+ blockers: []
288
+ };
289
+ } catch (error) {
290
+ const diagnostic = sceneErrorDiagnostic("scene.publish_write_failed", `Publish artifacts could not be written. ${error instanceof Error ? error.message : String(error ?? "")}`.trim(), "publish");
291
+ return failedReport({ scenePath: validation.scenePath, runRoot: resolved.runRoot, diagnostics: [diagnostic], warnings: evidenceResult.warnings, blockers: [diagnostic], sceneId: sourceScene.id, sourceRunId: run.runId, manifest });
292
+ }
293
+ }
294
+ export {
295
+ buildTreeseedScenePublishManifest,
296
+ publishTreeseedSceneEvidence,
297
+ writeTreeseedScenePublish
298
+ };
@@ -0,0 +1,12 @@
1
+ import type { TreeseedSceneActionDefinition, TreeseedSceneAssertionDefinition, TreeseedSceneDiagramDefinition, TreeseedScenePlugin, TreeseedSceneRendererDefinition } from './types.js';
2
+ export declare function createBuiltInTreeseedScenePluginRegistry(): import("./types.js").TreeseedScenePluginRegistry;
3
+ export declare function resolveTreeseedScenePlugins(input?: {
4
+ plugins?: TreeseedScenePlugin[];
5
+ }): import("./types.js").TreeseedScenePluginResolution;
6
+ export declare function listBuiltInTreeseedScenePlugins(): import("./types.js").TreeseedScenePluginSummary[];
7
+ export declare function listBuiltInTreeseedSceneActions(): TreeseedSceneActionDefinition[];
8
+ export declare function listBuiltInTreeseedSceneAssertions(): TreeseedSceneAssertionDefinition[];
9
+ export declare function listBuiltInTreeseedSceneRenderers(): TreeseedSceneRendererDefinition[];
10
+ export declare function listBuiltInTreeseedSceneDiagrams(): TreeseedSceneDiagramDefinition[];
11
+ export declare function findBuiltInTreeseedSceneAction(id: string): TreeseedSceneActionDefinition | null;
12
+ export declare function findBuiltInTreeseedSceneAssertion(id: string): TreeseedSceneAssertionDefinition | null;
@@ -0,0 +1,65 @@
1
+ import { createBuiltInTreeseedScenePlugins } from "./builtin-plugins.js";
2
+ import { createTreeseedScenePluginRegistry, pluginResolutionFromRegistry, summarizeTreeseedScenePlugins } from "./plugins.js";
3
+ function createBuiltInTreeseedScenePluginRegistry() {
4
+ return createTreeseedScenePluginRegistry(createBuiltInTreeseedScenePlugins());
5
+ }
6
+ function resolveTreeseedScenePlugins(input = {}) {
7
+ return pluginResolutionFromRegistry(createTreeseedScenePluginRegistry([
8
+ ...createBuiltInTreeseedScenePlugins(),
9
+ ...input.plugins ?? []
10
+ ]));
11
+ }
12
+ function listBuiltInTreeseedScenePlugins() {
13
+ return summarizeTreeseedScenePlugins(createBuiltInTreeseedScenePlugins());
14
+ }
15
+ function listBuiltInTreeseedSceneActions() {
16
+ const registry = createBuiltInTreeseedScenePluginRegistry();
17
+ return [...registry.actions.entries()].map(([id, action]) => ({
18
+ id,
19
+ phase: action.phase,
20
+ pluginId: registry.actionPlugins.get(id) ?? "unknown",
21
+ status: action.status,
22
+ summary: action.summary
23
+ })).sort((a, b) => a.id.localeCompare(b.id));
24
+ }
25
+ function listBuiltInTreeseedSceneAssertions() {
26
+ const registry = createBuiltInTreeseedScenePluginRegistry();
27
+ return [...registry.assertions.entries()].map(([id, assertion]) => ({
28
+ id,
29
+ phase: assertion.phase,
30
+ pluginId: registry.assertionPlugins.get(id) ?? "unknown",
31
+ status: assertion.status,
32
+ summary: assertion.summary
33
+ })).sort((a, b) => a.id.localeCompare(b.id));
34
+ }
35
+ function listBuiltInTreeseedSceneRenderers() {
36
+ const registry = createBuiltInTreeseedScenePluginRegistry();
37
+ return [...registry.renderers.entries()].map(([id, renderer]) => ({
38
+ id,
39
+ phase: renderer.phase,
40
+ pluginId: registry.rendererPlugins.get(id) ?? "unknown",
41
+ status: renderer.status,
42
+ summary: renderer.summary
43
+ })).sort((a, b) => a.id.localeCompare(b.id));
44
+ }
45
+ function listBuiltInTreeseedSceneDiagrams() {
46
+ const registry = createBuiltInTreeseedScenePluginRegistry();
47
+ return [...registry.diagrams.values()].flatMap((provider) => Object.values(provider.diagrams)).sort((a, b) => a.component.localeCompare(b.component));
48
+ }
49
+ function findBuiltInTreeseedSceneAction(id) {
50
+ return listBuiltInTreeseedSceneActions().find((action) => action.id === id) ?? null;
51
+ }
52
+ function findBuiltInTreeseedSceneAssertion(id) {
53
+ return listBuiltInTreeseedSceneAssertions().find((assertion) => assertion.id === id) ?? null;
54
+ }
55
+ export {
56
+ createBuiltInTreeseedScenePluginRegistry,
57
+ findBuiltInTreeseedSceneAction,
58
+ findBuiltInTreeseedSceneAssertion,
59
+ listBuiltInTreeseedSceneActions,
60
+ listBuiltInTreeseedSceneAssertions,
61
+ listBuiltInTreeseedSceneDiagrams,
62
+ listBuiltInTreeseedScenePlugins,
63
+ listBuiltInTreeseedSceneRenderers,
64
+ resolveTreeseedScenePlugins
65
+ };
@@ -0,0 +1,3 @@
1
+ import type { TreeseedSceneRendererAdapter } from './types.js';
2
+ export declare function createRemotionTreeseedSceneRendererAdapter(): TreeseedSceneRendererAdapter;
3
+ export declare function resolveTreeseedSceneRemotionEntryPoint(): string;
@@ -0,0 +1,94 @@
1
+ import { dirname, join } from "node:path";
2
+ import { availableParallelism } from "node:os";
3
+ import { fileURLToPath } from "node:url";
4
+ import { sceneErrorDiagnostic } from "./diagnostics.js";
5
+ function remotionEntryPoint() {
6
+ const current = fileURLToPath(import.meta.url);
7
+ const extension = current.endsWith(".ts") ? ".ts" : ".js";
8
+ return join(dirname(current), `remotion-compositions${extension}`);
9
+ }
10
+ function remotionDiagnostic(error, fallbackCode, fallbackMessage) {
11
+ const message = error instanceof Error ? error.message : String(error ?? fallbackMessage);
12
+ const lower = message.toLowerCase();
13
+ if (lower.includes("browser") || lower.includes("chrome") || lower.includes("chromium")) {
14
+ return sceneErrorDiagnostic("scene.remotion_browser_missing", `${fallbackMessage} ${message}`.trim(), "renderer");
15
+ }
16
+ return sceneErrorDiagnostic(fallbackCode, `${fallbackMessage} ${message}`.trim(), "renderer");
17
+ }
18
+ function remotionConcurrency() {
19
+ const raw = process.env.TREESEED_SCENE_REMOTION_CONCURRENCY;
20
+ const parsed = raw ? Number(raw) : 4;
21
+ const max = Math.max(1, availableParallelism());
22
+ if (!Number.isFinite(parsed)) return 4;
23
+ return Math.max(1, Math.min(max, Math.floor(parsed)));
24
+ }
25
+ function createRemotionTreeseedSceneRendererAdapter() {
26
+ return {
27
+ id: "remotion",
28
+ async render(input) {
29
+ let bundle;
30
+ let selectComposition;
31
+ let renderMedia;
32
+ try {
33
+ const [bundler, renderer] = await Promise.all([
34
+ import("@remotion/bundler"),
35
+ import("@remotion/renderer")
36
+ ]);
37
+ bundle = bundler.bundle;
38
+ selectComposition = renderer.selectComposition;
39
+ renderMedia = renderer.renderMedia;
40
+ } catch (error) {
41
+ return {
42
+ ok: false,
43
+ outputPath: null,
44
+ diagnostics: [sceneErrorDiagnostic("scene.remotion_unavailable", `Install SDK dependencies and ensure remotion, @remotion/renderer, and @remotion/bundler are available. ${error instanceof Error ? error.message : String(error ?? "")}`.trim(), "renderer")]
45
+ };
46
+ }
47
+ let serveUrl;
48
+ try {
49
+ input.onProgress?.({ type: "bundle.started" });
50
+ serveUrl = await bundle({
51
+ entryPoint: input.entryPoint || remotionEntryPoint(),
52
+ ...input.publicDir ? { publicDir: input.publicDir } : {}
53
+ });
54
+ input.onProgress?.({ type: "bundle.finished", serveUrl });
55
+ } catch (error) {
56
+ return { ok: false, outputPath: null, diagnostics: [remotionDiagnostic(error, "scene.remotion_bundle_failed", "Unable to bundle Remotion scene composition.")] };
57
+ }
58
+ let composition;
59
+ try {
60
+ input.onProgress?.({ type: "composition.selected", compositionId: input.compositionId });
61
+ composition = await selectComposition({
62
+ serveUrl,
63
+ id: input.compositionId,
64
+ inputProps: input.inputProps
65
+ });
66
+ } catch (error) {
67
+ return { ok: false, outputPath: null, diagnostics: [remotionDiagnostic(error, "scene.remotion_composition_failed", "Unable to select Remotion scene composition.")] };
68
+ }
69
+ try {
70
+ input.onProgress?.({ type: "media.started", outputPath: input.outputPath });
71
+ await renderMedia({
72
+ serveUrl,
73
+ composition,
74
+ codec: input.codec,
75
+ outputLocation: input.outputPath,
76
+ inputProps: input.inputProps,
77
+ concurrency: remotionConcurrency(),
78
+ onProgress: (progress) => input.onProgress?.({ type: "media.progress", ...progress })
79
+ });
80
+ input.onProgress?.({ type: "media.finished", outputPath: input.outputPath });
81
+ return { ok: true, outputPath: input.outputPath, diagnostics: [] };
82
+ } catch (error) {
83
+ return { ok: false, outputPath: null, diagnostics: [remotionDiagnostic(error, "scene.remotion_render_failed", "Unable to render Remotion scene video.")] };
84
+ }
85
+ }
86
+ };
87
+ }
88
+ function resolveTreeseedSceneRemotionEntryPoint() {
89
+ return remotionEntryPoint();
90
+ }
91
+ export {
92
+ createRemotionTreeseedSceneRendererAdapter,
93
+ resolveTreeseedSceneRemotionEntryPoint
94
+ };
@@ -0,0 +1,2 @@
1
+ import type { TreeseedSceneRemotionCompositionDefinition } from './types.js';
2
+ export declare function listTreeseedSceneRemotionCompositions(): TreeseedSceneRemotionCompositionDefinition[];
@@ -0,0 +1,12 @@
1
+ const COMPOSITIONS = [
2
+ { id: "treeseed-demo-default", phase: 6, mode: "demo", summary: "Default Treeseed demo video with browser evidence, chapters, lower thirds, and callouts." },
3
+ { id: "treeseed-training-default", phase: 6, mode: "training", summary: "Training-oriented render profile with larger context and persistent chapter labels." },
4
+ { id: "treeseed-failure-review", phase: 6, mode: "failure-review", summary: "Failure review render focused on failed step diagnostics and evidence." },
5
+ { id: "treeseed-diagram-only", phase: 6, mode: "diagram-only", summary: "Render typed scene diagrams from validated diagram provider input." }
6
+ ];
7
+ function listTreeseedSceneRemotionCompositions() {
8
+ return [...COMPOSITIONS];
9
+ }
10
+ export {
11
+ listTreeseedSceneRemotionCompositions
12
+ };
@@ -0,0 +1,15 @@
1
+ import type { TreeseedSceneRenderInput } from './types.js';
2
+ export declare function treeseedSceneRenderLayout(input: TreeseedSceneRenderInput): {
3
+ introFrames: number;
4
+ interstitialFrames: number;
5
+ evidenceStartFrame: number;
6
+ evidenceDurationInFrames: number;
7
+ };
8
+ export declare function resolveEvidenceViewport(input: TreeseedSceneRenderInput): {
9
+ width: number;
10
+ height: number;
11
+ scale: number;
12
+ left: number;
13
+ top: number;
14
+ };
15
+ export declare function TreeseedSceneRemotionRoot(): any;