@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
@@ -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;