@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
@@ -2,6 +2,7 @@ import {
2
2
  TREESEED_REMOTE_CONTRACT_HEADER,
3
3
  TREESEED_REMOTE_CONTRACT_VERSION
4
4
  } from "./remote.js";
5
+ import { parse as parseYaml } from "yaml";
5
6
  import {
6
7
  collectTreeseedConfigSeedValues,
7
8
  collectTreeseedEnvironmentContext,
@@ -11,12 +12,19 @@ import {
11
12
  const CAPACITY_PROVIDER_ENDPOINTS = {
12
13
  register: "/v1/provider/register",
13
14
  heartbeat: "/v1/provider/heartbeat",
15
+ checkIn: "/v1/provider/check-in",
16
+ sessions: "/v1/provider/sessions",
14
17
  portfolio: "/v1/provider/portfolio",
15
18
  workdays: "/v1/provider/workdays",
16
- claimTask: "/v1/provider/tasks/claim",
17
- taskEvents: (taskId) => `/v1/provider/tasks/${encodeURIComponent(taskId)}/events`,
18
- completeTask: (taskId) => `/v1/provider/tasks/${encodeURIComponent(taskId)}/complete`,
19
- failTask: (taskId) => `/v1/provider/tasks/${encodeURIComponent(taskId)}/fail`,
19
+ nextAssignment: "/v1/provider/assignments/next",
20
+ assignment: (assignmentId) => `/v1/provider/assignments/${encodeURIComponent(assignmentId)}`,
21
+ assignmentRenew: (assignmentId) => `/v1/provider/assignments/${encodeURIComponent(assignmentId)}/renew`,
22
+ assignmentReturn: (assignmentId) => `/v1/provider/assignments/${encodeURIComponent(assignmentId)}/return`,
23
+ assignmentComplete: (assignmentId) => `/v1/provider/assignments/${encodeURIComponent(assignmentId)}/complete`,
24
+ assignmentFail: (assignmentId) => `/v1/provider/assignments/${encodeURIComponent(assignmentId)}/fail`,
25
+ assignmentModeRuns: (assignmentId) => `/v1/provider/assignments/${encodeURIComponent(assignmentId)}/mode-runs`,
26
+ assignmentWorkflowOperationDispatch: (assignmentId, operationId) => `/v1/provider/assignments/${encodeURIComponent(assignmentId)}/workflow-operations/${encodeURIComponent(operationId)}/dispatch`,
27
+ assignmentExplanation: (assignmentId) => `/v1/provider/assignments/${encodeURIComponent(assignmentId)}/explanation`,
20
28
  usage: "/v1/provider/usage",
21
29
  reports: "/v1/provider/reports"
22
30
  };
@@ -24,20 +32,23 @@ const CAPACITY_PROVIDER_SCOPES = [
24
32
  "provider:register",
25
33
  "provider:heartbeat",
26
34
  "provider:portfolio:read",
27
- "provider:tasks:claim",
28
- "provider:tasks:update",
35
+ "provider:assignments:read",
36
+ "provider:assignments:write",
29
37
  "provider:usage:report",
30
38
  "provider:reports:write",
31
39
  "provider:capabilities:write"
32
40
  ];
33
41
  const CAPACITY_PROVIDER_ENV_KEYS = [
42
+ "TREESEED_MANAGEMENT_API_URL",
34
43
  "TREESEED_MARKET_URL",
44
+ "TREESEED_MARKET_ID",
35
45
  "TREESEED_MANAGER_ID",
46
+ "TREESEED_CAPACITY_PROVIDER_ID",
47
+ "TREESEED_CAPACITY_PROVIDER_TEAM_ID",
36
48
  "TREESEED_CAPACITY_PROVIDER_API_KEY",
37
49
  "TREESEED_PROVIDER_HOST_DATA_DIR",
50
+ "TREESEED_HOST_CODEX_AUTH_FILE",
38
51
  "TREESEED_PROVIDER_DATA_DIR",
39
- "TREESEED_PROVIDER_API_PORT",
40
- "TREESEED_PROVIDER_HOST_API_PORT",
41
52
  "TREESEED_PROVIDER_ENVIRONMENT",
42
53
  "TREESEED_PROVIDER_CAPABILITIES_FILE",
43
54
  "TREESEED_PROVIDER_BUDGET_FILE",
@@ -48,9 +59,25 @@ const CAPACITY_PROVIDER_ENV_KEYS = [
48
59
  "TREESEED_PROVIDER_STARTUP_MODE",
49
60
  "TREESEED_CODEX_AUTH_FILE",
50
61
  "TREESEED_CODEX_AUTH_JSON_B64",
51
- "TREESEED_CODEX_AUTH_OVERWRITE"
62
+ "TREESEED_CODEX_AUTH_OVERWRITE",
63
+ "TREESEED_TREEDX_BASE_URL",
64
+ "TREESEED_TREEDX_URL",
65
+ "TREESEED_TREEDX_TOKEN",
66
+ "TREESEED_TREEDX_REPO_ID",
67
+ "TREESEED_TREEDX_REF",
68
+ "TREESEED_TREEDX_WORKSPACE_ID",
69
+ "TREESEED_TREEDX_JWT_ISSUER",
70
+ "TREESEED_TREEDX_JWT_AUDIENCE",
71
+ "TREESEED_TREEDX_JWT_HS256_SECRET",
72
+ "TREESEED_TREEDX_PROXY_ACTOR_ID",
73
+ "TREESEED_TREEDX_PROXY_TENANT_ID"
52
74
  ];
53
75
  const CAPACITY_PROVIDER_DEPLOYMENT_SERVICE_ROLES = ["api", "manager", "runner"];
76
+ const DEFAULT_CAPACITY_PROVIDER_ROLE_IMAGES = {
77
+ api: "treeseed/agent-provider-api",
78
+ manager: "treeseed/agent-manager",
79
+ runner: "treeseed/agent-runner"
80
+ };
54
81
  class CapacityProviderApiError extends Error {
55
82
  constructor(message, status, payload) {
56
83
  super(message);
@@ -185,14 +212,16 @@ function assertCapacityProviderPortfolioManifest(value) {
185
212
  function resolveCapacityProviderEnvironment(input) {
186
213
  const env = {
187
214
  TREESEED_MARKET_URL: normalizeBaseUrl(input.marketUrl),
215
+ TREESEED_MARKET_ID: input.marketId.trim(),
188
216
  TREESEED_MANAGER_ID: input.marketId.trim(),
189
217
  TREESEED_CAPACITY_PROVIDER_API_KEY: input.apiKey.trim(),
190
218
  TREESEED_PROVIDER_DATA_DIR: input.providerDataDir ?? "/data",
191
- TREESEED_PROVIDER_API_PORT: stringValue(input.providerApiPort, "3100"),
192
219
  TREESEED_PROVIDER_ENVIRONMENT: input.providerEnvironment ?? "local"
193
220
  };
194
- if (!env.TREESEED_MANAGER_ID) throw new Error("Capacity provider Market ID is required.");
221
+ env.TREESEED_MANAGEMENT_API_URL = env.TREESEED_MARKET_URL || "https://api.treeseed.dev";
195
222
  if (!env.TREESEED_CAPACITY_PROVIDER_API_KEY) throw new Error("Capacity provider API key is required.");
223
+ if (input.providerId) env.TREESEED_CAPACITY_PROVIDER_ID = input.providerId;
224
+ if (input.teamId) env.TREESEED_CAPACITY_PROVIDER_TEAM_ID = input.teamId;
196
225
  if (input.providerHostDataDir) env.TREESEED_PROVIDER_HOST_DATA_DIR = input.providerHostDataDir;
197
226
  if (input.capabilitiesFile) env.TREESEED_PROVIDER_CAPABILITIES_FILE = input.capabilitiesFile;
198
227
  if (input.budgetFile) env.TREESEED_PROVIDER_BUDGET_FILE = input.budgetFile;
@@ -235,12 +264,14 @@ function resolveCapacityProviderLaunchEnvironment(input = {}) {
235
264
  const diagnostic = input.diagnostic === true || values.TREESEED_PROVIDER_STARTUP_MODE === "diagnostic";
236
265
  const resolved = {
237
266
  TREESEED_PROVIDER_DATA_DIR: "/data",
238
- TREESEED_PROVIDER_API_PORT: "3100",
239
267
  TREESEED_PROVIDER_ENVIRONMENT: scope,
240
268
  ...values
241
269
  };
242
- if (!resolved.TREESEED_PROVIDER_HOST_API_PORT) {
243
- resolved.TREESEED_PROVIDER_HOST_API_PORT = resolved.TREESEED_PROVIDER_API_PORT;
270
+ if (!resolved.TREESEED_MARKET_ID && resolved.TREESEED_MANAGER_ID) {
271
+ resolved.TREESEED_MARKET_ID = resolved.TREESEED_MANAGER_ID;
272
+ }
273
+ if (!resolved.TREESEED_MANAGER_ID && resolved.TREESEED_MARKET_ID) {
274
+ resolved.TREESEED_MANAGER_ID = resolved.TREESEED_MARKET_ID;
244
275
  }
245
276
  if (!resolved.TREESEED_PROVIDER_HOST_DATA_DIR) {
246
277
  resolved.TREESEED_PROVIDER_HOST_DATA_DIR = ".treeseed/local-capacity-provider/data";
@@ -249,8 +280,6 @@ function resolveCapacityProviderLaunchEnvironment(input = {}) {
249
280
  resolved.TREESEED_PROVIDER_STARTUP_MODE = "diagnostic";
250
281
  }
251
282
  const required = [
252
- "TREESEED_MARKET_URL",
253
- "TREESEED_MANAGER_ID",
254
283
  ...diagnostic ? [] : ["TREESEED_CAPACITY_PROVIDER_API_KEY"],
255
284
  "TREESEED_PROVIDER_HOST_DATA_DIR"
256
285
  ];
@@ -281,8 +310,12 @@ function persistCapacityProviderConnectionToTreeseedConfig(input) {
281
310
  }
282
311
  const entryById = new Map(registryEntries.map((entry) => [entry.id, entry]));
283
312
  const keys = [
313
+ "TREESEED_MANAGEMENT_API_URL",
284
314
  "TREESEED_MARKET_URL",
315
+ "TREESEED_MARKET_ID",
285
316
  "TREESEED_MANAGER_ID",
317
+ "TREESEED_CAPACITY_PROVIDER_ID",
318
+ "TREESEED_CAPACITY_PROVIDER_TEAM_ID",
286
319
  "TREESEED_CAPACITY_PROVIDER_API_KEY",
287
320
  "TREESEED_PROVIDER_HOST_DATA_DIR",
288
321
  "TREESEED_PROVIDER_ENVIRONMENT"
@@ -312,6 +345,63 @@ function redactCapacityProviderEnv(env) {
312
345
  }
313
346
  return redacted;
314
347
  }
348
+ function manifestRecord(value) {
349
+ return value && typeof value === "object" && !Array.isArray(value) ? value : {};
350
+ }
351
+ function manifestRoleImage(role, manifest) {
352
+ const tag = manifest.runtime?.images?.tag ?? "latest";
353
+ const roleConfig = manifest.runtime?.images?.roles?.[role] ?? {};
354
+ const extension = manifest.extensions?.[role];
355
+ if (extension?.enabled && extension.image) {
356
+ return `${extension.image}:${extension.tag ?? tag}`;
357
+ }
358
+ return `${roleConfig.image ?? DEFAULT_CAPACITY_PROVIDER_ROLE_IMAGES[role]}:${roleConfig.tag ?? tag}`;
359
+ }
360
+ function assertSafeCapacityProviderManifest(value) {
361
+ for (const [role, extension] of Object.entries(value.extensions ?? {})) {
362
+ if (!extension) continue;
363
+ for (const [key, entryValue] of Object.entries(extension.buildArgs ?? {})) {
364
+ if (entryValue === void 0 || entryValue === null || entryValue === "") continue;
365
+ if (isCapacityProviderSecretEnvKey(key) || /(?:tscp_|tsp_|sk-|ghp_|gho_|github_pat_)/u.test(String(entryValue))) {
366
+ throw new Error(`Capacity provider ${role} extension build arg ${key} looks secret-like. Store secrets in Treeseed config or the host secret manager instead.`);
367
+ }
368
+ }
369
+ }
370
+ }
371
+ function parseCapacityProviderLaunchManifest(source) {
372
+ const parsed = typeof source === "string" ? parseYaml(source) : source;
373
+ const record = manifestRecord(parsed);
374
+ if (record.schemaVersion !== 1) {
375
+ throw new Error("Capacity provider launch manifest schemaVersion must be 1.");
376
+ }
377
+ const manifest = record;
378
+ assertSafeCapacityProviderManifest(manifest);
379
+ return manifest;
380
+ }
381
+ function resolveCapacityProviderLaunchPlan(manifest) {
382
+ assertSafeCapacityProviderManifest(manifest);
383
+ const roleImages = {
384
+ api: manifestRoleImage("api", manifest),
385
+ manager: manifestRoleImage("manager", manifest),
386
+ runner: manifestRoleImage("runner", manifest)
387
+ };
388
+ const composeEnv = {
389
+ ...manifest.provider?.dataDir ? { TREESEED_PROVIDER_HOST_DATA_DIR: manifest.provider.dataDir } : {},
390
+ ...manifest.provider?.environment ? { TREESEED_PROVIDER_ENVIRONMENT: manifest.provider.environment } : {},
391
+ ...manifest.provider?.market?.url ? { TREESEED_MARKET_URL: manifest.provider.market.url } : {},
392
+ ...manifest.provider?.market?.id ? { TREESEED_MANAGER_ID: manifest.provider.market.id, TREESEED_MARKET_ID: manifest.provider.market.id } : {},
393
+ ...manifest.runtime?.runners?.maxConcurrent ? { TREESEED_PROVIDER_MAX_CONCURRENT_RUNNERS: String(manifest.runtime.runners.maxConcurrent) } : {},
394
+ TREESEED_AGENT_API_IMAGE: roleImages.api,
395
+ TREESEED_AGENT_MANAGER_IMAGE: roleImages.manager,
396
+ TREESEED_AGENT_RUNNER_IMAGE: roleImages.runner
397
+ };
398
+ return {
399
+ manifest,
400
+ roleImages,
401
+ composeEnv,
402
+ redactedEnv: redactCapacityProviderEnv(composeEnv)
403
+ };
404
+ }
315
405
  function renderCapacityProviderSelfHostInstructions(input) {
316
406
  const env = resolveCapacityProviderEnvironment(input);
317
407
  return {
@@ -338,7 +428,7 @@ function defaultProviderDeploymentAdapter(hostKind) {
338
428
  role: spec.role,
339
429
  serviceName: spec.serviceName,
340
430
  serviceId: `${hostKind}:${spec.serviceName}`,
341
- url: spec.role === "api" ? `https://${spec.serviceName}.example.invalid` : null,
431
+ url: null,
342
432
  status: "deployed",
343
433
  envRefs: Object.fromEntries(
344
434
  Object.keys(spec.env).map((key) => [key, isCapacityProviderSecretEnvKey(key) ? `${spec.serviceName}:${key}` : spec.redactedEnv[key] ?? spec.env[key]])
@@ -348,7 +438,11 @@ function defaultProviderDeploymentAdapter(hostKind) {
348
438
  };
349
439
  }
350
440
  async function deployCapacityProviderWithAdapter(input, launchMode, hostKind) {
351
- const imageRef = input.imageRef ?? input.intent.imageRef ?? "ghcr.io/treeseed-ai/agent:capacity-provider";
441
+ const roleImageRefs = {
442
+ api: input.roleImageRefs?.api ?? input.imageRef ?? input.intent.imageRef ?? "treeseed/agent-provider-api:latest",
443
+ manager: input.roleImageRefs?.manager ?? input.imageRef ?? input.intent.imageRef ?? "treeseed/agent-manager:latest",
444
+ runner: input.roleImageRefs?.runner ?? input.imageRef ?? input.intent.imageRef ?? "treeseed/agent-runner:latest"
445
+ };
352
446
  const serviceNamePrefix = input.serviceNamePrefix ?? `${input.intent.capacityProviderId || "capacity-provider"}`.replace(/^cp[_-]?/u, "capacity-provider-").replace(/[^a-zA-Z0-9_.-]+/gu, "-");
353
447
  const env = { ...input.env };
354
448
  const redactedEnv = input.redactedEnv ?? redactCapacityProviderEnv(env);
@@ -360,7 +454,7 @@ async function deployCapacityProviderWithAdapter(input, launchMode, hostKind) {
360
454
  const result = await adapter.provisionService({
361
455
  role,
362
456
  serviceName: providerDeploymentServiceName(serviceNamePrefix, role),
363
- imageRef,
457
+ imageRef: roleImageRefs[role],
364
458
  startCommand: providerDeploymentStartCommand(role),
365
459
  env,
366
460
  redactedEnv
@@ -379,7 +473,7 @@ async function deployCapacityProviderWithAdapter(input, launchMode, hostKind) {
379
473
  ok: true,
380
474
  launchMode,
381
475
  hostKind,
382
- imageRef,
476
+ roleImageRefs,
383
477
  status: "deployed",
384
478
  serviceRefs: services,
385
479
  envRefs: Object.fromEntries(Object.keys(env).map((key) => [key, isCapacityProviderSecretEnvKey(key) ? "<host-secret>" : redactedEnv[key] ?? env[key]])),
@@ -392,7 +486,7 @@ async function deployCapacityProviderWithAdapter(input, launchMode, hostKind) {
392
486
  ok: false,
393
487
  launchMode,
394
488
  hostKind,
395
- imageRef,
489
+ roleImageRefs,
396
490
  status: "failed",
397
491
  serviceRefs: services,
398
492
  envRefs: Object.fromEntries(Object.keys(env).map((key) => [key, isCapacityProviderSecretEnvKey(key) ? "<host-secret>" : redactedEnv[key] ?? env[key]])),
@@ -414,14 +508,15 @@ class MarketProviderClient {
414
508
  apiKey;
415
509
  fetchImpl;
416
510
  userAgent;
511
+ requestTimeoutMs;
417
512
  constructor(options) {
418
513
  this.marketUrl = normalizeBaseUrl(options.marketUrl);
419
514
  this.marketId = options.marketId.trim();
420
515
  this.apiKey = options.apiKey.trim();
421
- if (!this.marketId) throw new Error("Capacity provider Market ID is required.");
422
516
  if (!this.apiKey) throw new Error("Capacity provider API key is required.");
423
517
  this.fetchImpl = options.fetchImpl ?? fetch;
424
518
  this.userAgent = options.userAgent;
519
+ this.requestTimeoutMs = Math.max(1e3, Number(options.requestTimeoutMs ?? 3e4) || 3e4);
425
520
  }
426
521
  async requestJson(path, options = {}) {
427
522
  const headers = {
@@ -431,11 +526,22 @@ class MarketProviderClient {
431
526
  };
432
527
  if (this.userAgent) headers["user-agent"] = this.userAgent;
433
528
  if (options.body !== void 0) headers["content-type"] = "application/json";
434
- const response = await this.fetchImpl(`${this.marketUrl}${path}`, {
435
- method: options.method ?? "GET",
436
- headers,
437
- body: options.body === void 0 ? void 0 : JSON.stringify(options.body)
438
- });
529
+ const controller = new AbortController();
530
+ const timeout = setTimeout(() => controller.abort(), this.requestTimeoutMs);
531
+ let response;
532
+ try {
533
+ response = await this.fetchImpl(`${this.marketUrl}${path}`, {
534
+ method: options.method ?? "GET",
535
+ headers,
536
+ body: options.body === void 0 ? void 0 : JSON.stringify(options.body),
537
+ signal: controller.signal
538
+ });
539
+ } catch (error) {
540
+ const message = error instanceof Error && error.name === "AbortError" ? `Capacity provider request timed out after ${this.requestTimeoutMs}ms: ${path}` : error instanceof Error ? error.message : String(error);
541
+ throw new CapacityProviderApiError(message, 0, { path, timeoutMs: this.requestTimeoutMs });
542
+ } finally {
543
+ clearTimeout(timeout);
544
+ }
439
545
  const payload = await response.json().catch(() => ({}));
440
546
  if (!response.ok) {
441
547
  const message = isRecord(payload) && typeof payload.error === "string" ? payload.error : `Capacity provider request failed with ${response.status}.`;
@@ -444,23 +550,48 @@ class MarketProviderClient {
444
550
  return payload;
445
551
  }
446
552
  register(request) {
553
+ const marketId = request.marketId ?? this.marketId;
554
+ const body = marketId ? { ...request, marketId } : request;
447
555
  return this.requestJson(CAPACITY_PROVIDER_ENDPOINTS.register, {
448
556
  method: "POST",
449
- body: { ...request, marketId: request.marketId ?? this.marketId }
557
+ body
450
558
  }).then((response) => {
451
559
  assertCapacityProviderRegistrationResponse(response);
560
+ if (typeof response.sessionToken === "string" && response.sessionToken.trim()) {
561
+ this.apiKey = response.sessionToken.trim();
562
+ }
452
563
  return response;
453
564
  });
454
565
  }
455
566
  heartbeat(request = {}) {
567
+ const marketId = request.marketId ?? this.marketId;
568
+ const body = marketId ? { ...request, marketId } : request;
456
569
  return this.requestJson(CAPACITY_PROVIDER_ENDPOINTS.heartbeat, {
457
570
  method: "POST",
458
- body: { ...request, marketId: request.marketId ?? this.marketId }
571
+ body
459
572
  }).then((response) => {
460
573
  assertCapacityProviderOkEnvelope(response, "Capacity provider heartbeat response");
461
574
  return response;
462
575
  });
463
576
  }
577
+ createAvailabilitySession(request = {}) {
578
+ return this.requestJson(CAPACITY_PROVIDER_ENDPOINTS.sessions, {
579
+ method: "POST",
580
+ body: request
581
+ }).then((response) => {
582
+ assertCapacityProviderOkEnvelope(response, "Capacity provider availability session response");
583
+ return response;
584
+ });
585
+ }
586
+ checkIn(request = {}) {
587
+ return this.requestJson(CAPACITY_PROVIDER_ENDPOINTS.checkIn, {
588
+ method: "POST",
589
+ body: request
590
+ }).then((response) => {
591
+ assertCapacityProviderOkEnvelope(response, "Capacity provider check-in response");
592
+ return response;
593
+ });
594
+ }
464
595
  portfolio() {
465
596
  return this.requestJson(CAPACITY_PROVIDER_ENDPOINTS.portfolio).then((response) => {
466
597
  assertCapacityProviderPortfolioManifest(response);
@@ -476,40 +607,78 @@ class MarketProviderClient {
476
607
  return response;
477
608
  });
478
609
  }
479
- claimTask(request = {}) {
480
- return this.requestJson(CAPACITY_PROVIDER_ENDPOINTS.claimTask, {
610
+ assignment(assignmentId) {
611
+ return this.requestJson(CAPACITY_PROVIDER_ENDPOINTS.assignment(assignmentId)).then((response) => {
612
+ assertCapacityProviderOkEnvelope(response, "Capacity provider assignment response");
613
+ return response;
614
+ });
615
+ }
616
+ assignmentExplanation(assignmentId) {
617
+ return this.requestJson(CAPACITY_PROVIDER_ENDPOINTS.assignmentExplanation(assignmentId)).then((response) => {
618
+ assertCapacityProviderOkEnvelope(response, "Capacity provider assignment explanation response");
619
+ return response;
620
+ });
621
+ }
622
+ nextAssignment(request = {}) {
623
+ return this.requestJson(CAPACITY_PROVIDER_ENDPOINTS.nextAssignment, {
624
+ method: "POST",
625
+ body: request
626
+ }).then((response) => {
627
+ assertCapacityProviderOkEnvelope(response, "Capacity provider next assignment response");
628
+ return response;
629
+ });
630
+ }
631
+ renewAssignment(assignmentId, request = {}) {
632
+ return this.requestJson(CAPACITY_PROVIDER_ENDPOINTS.assignmentRenew(assignmentId), {
633
+ method: "POST",
634
+ body: request
635
+ }).then((response) => {
636
+ assertCapacityProviderOkEnvelope(response, "Capacity provider assignment renew response");
637
+ return response;
638
+ });
639
+ }
640
+ returnAssignment(assignmentId, request = {}) {
641
+ return this.requestJson(CAPACITY_PROVIDER_ENDPOINTS.assignmentReturn(assignmentId), {
642
+ method: "POST",
643
+ body: request
644
+ }).then((response) => {
645
+ assertCapacityProviderOkEnvelope(response, "Capacity provider assignment return response");
646
+ return response;
647
+ });
648
+ }
649
+ completeAssignment(assignmentId, request = {}) {
650
+ return this.requestJson(CAPACITY_PROVIDER_ENDPOINTS.assignmentComplete(assignmentId), {
481
651
  method: "POST",
482
652
  body: request
483
653
  }).then((response) => {
484
- assertCapacityProviderOkEnvelope(response, "Capacity provider task claim response");
485
- if (!Array.isArray(response.tasks)) throw new Error("Capacity provider task claim response is missing tasks.");
654
+ assertCapacityProviderOkEnvelope(response, "Capacity provider assignment complete response");
486
655
  return response;
487
656
  });
488
657
  }
489
- appendTaskEvent(taskId, request) {
490
- return this.requestJson(CAPACITY_PROVIDER_ENDPOINTS.taskEvents(taskId), {
658
+ failAssignment(assignmentId, request = {}) {
659
+ return this.requestJson(CAPACITY_PROVIDER_ENDPOINTS.assignmentFail(assignmentId), {
491
660
  method: "POST",
492
661
  body: request
493
662
  }).then((response) => {
494
- assertCapacityProviderOkEnvelope(response, "Capacity provider task event response");
663
+ assertCapacityProviderOkEnvelope(response, "Capacity provider assignment fail response");
495
664
  return response;
496
665
  });
497
666
  }
498
- completeTask(taskId, request = {}) {
499
- return this.requestJson(CAPACITY_PROVIDER_ENDPOINTS.completeTask(taskId), {
667
+ createAssignmentModeRun(assignmentId, request) {
668
+ return this.requestJson(CAPACITY_PROVIDER_ENDPOINTS.assignmentModeRuns(assignmentId), {
500
669
  method: "POST",
501
670
  body: request
502
671
  }).then((response) => {
503
- assertCapacityProviderOkEnvelope(response, "Capacity provider task completion response");
672
+ assertCapacityProviderOkEnvelope(response, "Capacity provider mode run response");
504
673
  return response;
505
674
  });
506
675
  }
507
- failTask(taskId, request) {
508
- return this.requestJson(CAPACITY_PROVIDER_ENDPOINTS.failTask(taskId), {
676
+ dispatchAssignmentWorkflowOperation(assignmentId, operationId, request) {
677
+ return this.requestJson(CAPACITY_PROVIDER_ENDPOINTS.assignmentWorkflowOperationDispatch(assignmentId, operationId), {
509
678
  method: "POST",
510
679
  body: request
511
680
  }).then((response) => {
512
- assertCapacityProviderOkEnvelope(response, "Capacity provider task failure response");
681
+ assertCapacityProviderOkEnvelope(response, "Capacity provider workflow operation dispatch response");
513
682
  return response;
514
683
  });
515
684
  }
@@ -538,6 +707,7 @@ export {
538
707
  CAPACITY_PROVIDER_ENV_KEYS,
539
708
  CAPACITY_PROVIDER_SCOPES,
540
709
  CapacityProviderApiError,
710
+ DEFAULT_CAPACITY_PROVIDER_ROLE_IMAGES,
541
711
  MarketProviderClient,
542
712
  assertCapacityProviderOkEnvelope,
543
713
  assertCapacityProviderPortfolioManifest,
@@ -546,10 +716,12 @@ export {
546
716
  deployCapacityProviderToManagedMarketHost,
547
717
  deployCapacityProviderToRailway,
548
718
  isCapacityProviderSecretEnvKey,
719
+ parseCapacityProviderLaunchManifest,
549
720
  persistCapacityProviderConnectionToTreeseedConfig,
550
721
  redactCapacityProviderEnv,
551
722
  redactCapacityProviderSecret,
552
723
  renderCapacityProviderSelfHostInstructions,
553
724
  resolveCapacityProviderEnvironment,
554
- resolveCapacityProviderLaunchEnvironment
725
+ resolveCapacityProviderLaunchEnvironment,
726
+ resolveCapacityProviderLaunchPlan
555
727
  };
@@ -1,5 +1,5 @@
1
- import type { AttentionEstimate, AttentionPolicy, CapacityEstimateConfidence, CapacityGrant, CapacityPlan, CapacityProvider, CapacityProviderLane, CapacityReservation, CreditConversionProfile, CreateCapacityReservationRequest, CreateCapacityRoutingDecisionRequest, DerivedCapacityAvailability, DerivedCapacityInput, ExecutionProfile, HybridExecutionPlan, NativeUsageObservation, PlannedTaskNode, PlanningAdmissionResult, PlanningPolicy, PredictiveReservePolicy, ProjectEnvironmentName, RecordCapacityUsageRequest, ReservePrediction, TaskAdmissionDecision, TaskAdmissionPolicy, TaskClassification, TaskEstimateProfile, TaskPlanProposal, TaskMutationScope, TaskUsageActual, UtilityEstimate, UtilityPolicy, WorkdayBudgetEnvelope } from './sdk-types.ts';
2
- import type { AgentProviderProfile } from './types/agents.ts';
1
+ import type { AttentionEstimate, AttentionPolicy, CapacityEstimateConfidence, CapacityGrant, CapacityPlan, CapacityProvider, CapacityProviderLane, CapacityReservation, CreditConversionProfile, CreateCapacityReservationRequest, CreateCapacityRoutingDecisionRequest, DerivedCapacityAvailability, DerivedCapacityInput, ExecutionProfile, HybridExecutionPlan, NativeUsageObservation, PlannedTaskNode, PlanningAdmissionResult, PlanningPolicy, PredictiveReservePolicy, ProjectEnvironmentName, RecordCapacityUsageRequest, ReservePrediction, TaskAdmissionDecision, TaskAdmissionPolicy, TaskClassification, TaskEstimateProfile, TaskPlanProposal, TaskMutationScope, TaskUsageActual, UtilityEstimate, UtilityPolicy, WorkdayBudgetEnvelope } from './sdk-types.js';
2
+ import type { AgentProviderProfile } from './types/agents.js';
3
3
  export declare const ACTUAL_CREDIT_FORMULA_VERSION = "treeseed.actual-credits.v1";
4
4
  export interface ActualCreditCalculationInput {
5
5
  nativeUsage?: NativeUsageObservation | Record<string, unknown> | null;
@@ -1,3 +1,3 @@
1
- import type { AgentCliOptions } from './types/agents.ts';
1
+ import type { AgentCliOptions } from './types/agents.js';
2
2
  export declare function normalizeAgentCliOptions(input: unknown): AgentCliOptions;
3
3
  export declare function buildCopilotAllowToolArgs(allowTools?: AgentCliOptions['allowTools']): string[];
@@ -0,0 +1,97 @@
1
+ import type { SdkModelRegistry } from './sdk-types.js';
2
+ export type TreeseedContentAction = 'describe' | 'query' | 'read' | 'create' | 'update' | 'link' | 'validate' | 'commit';
3
+ export type TreeseedContentModel = 'page' | 'note' | 'question' | 'proposal' | 'decision' | 'book' | 'knowledge' | 'objective' | 'person' | 'agent';
4
+ export interface TreeseedContentRelationInput {
5
+ field: string;
6
+ targetModel?: TreeseedContentModel | string;
7
+ targetSlug: string;
8
+ }
9
+ export interface TreeseedContentPlacement {
10
+ bookSlug?: string;
11
+ parentPath?: string;
12
+ path?: string;
13
+ }
14
+ export interface TreeseedContentOperationInput {
15
+ action: TreeseedContentAction;
16
+ model?: TreeseedContentModel | string;
17
+ id?: string;
18
+ slug?: string;
19
+ title?: string;
20
+ fields?: Record<string, unknown>;
21
+ body?: string;
22
+ query?: string;
23
+ filters?: unknown[];
24
+ relations?: TreeseedContentRelationInput[];
25
+ placement?: TreeseedContentPlacement;
26
+ commit?: {
27
+ enabled: boolean;
28
+ message?: string;
29
+ };
30
+ }
31
+ export interface TreeseedContentRef {
32
+ model: TreeseedContentModel;
33
+ collection: string;
34
+ slug: string;
35
+ id?: string;
36
+ path?: string;
37
+ href?: string;
38
+ }
39
+ export interface TreeseedContentDiagnostic {
40
+ severity: 'info' | 'warning' | 'error';
41
+ code: string;
42
+ message: string;
43
+ field?: string;
44
+ }
45
+ export interface TreeseedContentOperationResult {
46
+ ok: true;
47
+ action: TreeseedContentAction;
48
+ refs: TreeseedContentRef[];
49
+ changedPaths?: string[];
50
+ diagnostics: TreeseedContentDiagnostic[];
51
+ payload?: Record<string, unknown>;
52
+ }
53
+ export interface RenderTreeseedContentInput {
54
+ model: TreeseedContentModel | string;
55
+ slug?: string;
56
+ title?: string;
57
+ fields?: Record<string, unknown>;
58
+ body?: string;
59
+ relations?: TreeseedContentRelationInput[];
60
+ placement?: TreeseedContentPlacement;
61
+ existingFrontmatter?: Record<string, unknown>;
62
+ registry?: SdkModelRegistry;
63
+ now?: string;
64
+ }
65
+ export interface RenderedTreeseedContentRecord {
66
+ model: TreeseedContentModel;
67
+ collection: string;
68
+ slug: string;
69
+ path: string;
70
+ frontmatter: Record<string, unknown>;
71
+ body: string;
72
+ content: string;
73
+ ref: TreeseedContentRef;
74
+ diagnostics: TreeseedContentDiagnostic[];
75
+ }
76
+ export interface TreeseedContentToolPreset {
77
+ id: string;
78
+ action: TreeseedContentAction;
79
+ model?: TreeseedContentModel;
80
+ title: string;
81
+ description: string;
82
+ inputSchema: Record<string, unknown>;
83
+ }
84
+ export declare const TREESEED_CONTENT_ACTIONS: TreeseedContentAction[];
85
+ export declare const TREESEED_CONTENT_READ_ACTIONS: Set<TreeseedContentAction>;
86
+ export declare const TREESEED_CONTENT_WRITE_ACTIONS: Set<TreeseedContentAction>;
87
+ export declare function slugifyTreeseedContent(value: unknown): string;
88
+ export declare function renderTreeseedContentRecord(input: RenderTreeseedContentInput): RenderedTreeseedContentRecord;
89
+ export declare function validateTreeseedContentRecord(model: string, source: string, registry?: SdkModelRegistry): {
90
+ ok: boolean;
91
+ frontmatter: Record<string, unknown>;
92
+ body: string;
93
+ diagnostics: TreeseedContentDiagnostic[];
94
+ };
95
+ export declare function genericTreeseedContentInputSchema(action: TreeseedContentAction): Record<string, unknown>;
96
+ export declare function createTreeseedContentToolPresets(registry?: SdkModelRegistry): TreeseedContentToolPreset[];
97
+ export declare function findTreeseedContentToolPreset(id: string, registry?: SdkModelRegistry): TreeseedContentToolPreset | null;