@treeseed/sdk 0.11.0 → 0.12.5

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 +629 -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 +66 -0
  180. package/dist/platform/desired-state.js +1052 -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
@@ -11,7 +11,7 @@ import {
11
11
  setTreeseedRemoteSession,
12
12
  clearTreeseedRemoteSession
13
13
  } from "./operations/services/config-runtime.js";
14
- const DEFAULT_TREESEED_MARKET_BASE_URL = "https://api.treeseed.ai";
14
+ const DEFAULT_TREESEED_MARKET_BASE_URL = "https://api.treeseed.dev";
15
15
  const TREESEED_CENTRAL_MARKET_API_BASE_URL_ENV = "TREESEED_CENTRAL_MARKET_API_BASE_URL";
16
16
  const TREESEED_API_BASE_URL_ENV = "TREESEED_API_BASE_URL";
17
17
  const TREESEED_CATALOG_MARKET_API_BASE_URLS_ENV = "TREESEED_CATALOG_MARKET_API_BASE_URLS";
@@ -162,7 +162,12 @@ function resolveMarketProfile(selector) {
162
162
  return profile;
163
163
  }
164
164
  function resolveMarketSession(tenantRoot, marketId) {
165
- const session = resolveTreeseedRemoteSession(tenantRoot, marketId);
165
+ let session;
166
+ try {
167
+ session = resolveTreeseedRemoteSession(tenantRoot, marketId);
168
+ } catch {
169
+ return null;
170
+ }
166
171
  return session?.accessToken ? {
167
172
  marketId,
168
173
  accessToken: session.accessToken,
@@ -254,7 +259,8 @@ class MarketClient {
254
259
  async request(path, options = {}) {
255
260
  const headers = {
256
261
  accept: "application/json",
257
- [TREESEED_REMOTE_CONTRACT_HEADER]: String(TREESEED_REMOTE_CONTRACT_VERSION)
262
+ [TREESEED_REMOTE_CONTRACT_HEADER]: String(TREESEED_REMOTE_CONTRACT_VERSION),
263
+ ...options.headers ?? {}
258
264
  };
259
265
  if (this.userAgent) {
260
266
  headers["user-agent"] = this.userAgent;
@@ -467,6 +473,69 @@ class MarketClient {
467
473
  { requireAuth: true }
468
474
  );
469
475
  }
476
+ projectSecretEscrowRecords(projectId, filters = {}) {
477
+ const query = new URLSearchParams();
478
+ if (filters.secretId) query.set("secretId", String(filters.secretId));
479
+ if (filters.status) query.set("status", String(filters.status));
480
+ if (filters.limit) query.set("limit", String(filters.limit));
481
+ return this.request(
482
+ `/v1/projects/${encodeURIComponent(projectId)}/secrets/escrow${query.toString() ? `?${query}` : ""}`,
483
+ { requireAuth: true }
484
+ );
485
+ }
486
+ createProjectSecretEscrow(projectId, body) {
487
+ return this.request(
488
+ `/v1/projects/${encodeURIComponent(projectId)}/secrets/escrow`,
489
+ { method: "POST", body, requireAuth: true }
490
+ );
491
+ }
492
+ projectSecretEscrow(projectId, escrowId) {
493
+ return this.request(
494
+ `/v1/projects/${encodeURIComponent(projectId)}/secrets/escrow/${encodeURIComponent(escrowId)}`,
495
+ { requireAuth: true }
496
+ );
497
+ }
498
+ updateProjectSecretEscrow(projectId, escrowId, body) {
499
+ return this.request(
500
+ `/v1/projects/${encodeURIComponent(projectId)}/secrets/escrow/${encodeURIComponent(escrowId)}`,
501
+ { method: "PATCH", body, requireAuth: true }
502
+ );
503
+ }
504
+ migrateProjectSecretEscrow(projectId, escrowId, body) {
505
+ return this.request(
506
+ `/v1/projects/${encodeURIComponent(projectId)}/secrets/escrow/${encodeURIComponent(escrowId)}/migrate`,
507
+ { method: "POST", body, requireAuth: true }
508
+ );
509
+ }
510
+ tombstoneProjectSecretEscrow(projectId, escrowId) {
511
+ return this.request(
512
+ `/v1/projects/${encodeURIComponent(projectId)}/secrets/escrow/${encodeURIComponent(escrowId)}`,
513
+ { method: "DELETE", requireAuth: true }
514
+ );
515
+ }
516
+ projectGitHubActionsSecretPublicKey(projectId, input) {
517
+ const query = new URLSearchParams();
518
+ if (input.installationId) query.set("installationId", String(input.installationId));
519
+ query.set("repository", input.repository);
520
+ if (input.scope) query.set("scope", String(input.scope));
521
+ if (input.environment) query.set("environment", String(input.environment));
522
+ return this.request(
523
+ `/v1/projects/${encodeURIComponent(projectId)}/secrets/github-actions/public-key?${query}`,
524
+ { requireAuth: true }
525
+ );
526
+ }
527
+ deployProjectGitHubActionsSecret(projectId, body) {
528
+ return this.request(
529
+ `/v1/projects/${encodeURIComponent(projectId)}/secrets/github-actions/deploy`,
530
+ { method: "POST", body, requireAuth: true }
531
+ );
532
+ }
533
+ dispatchProjectWorkflowOperation(projectId, operationId, body) {
534
+ return this.request(
535
+ `/v1/projects/${encodeURIComponent(projectId)}/workflow-operations/${encodeURIComponent(operationId)}/dispatch`,
536
+ { method: "POST", body, requireAuth: true }
537
+ );
538
+ }
470
539
  teamTreeDx(teamId) {
471
540
  return this.request(
472
541
  `/v1/teams/${encodeURIComponent(teamId)}/treedx`,
@@ -533,12 +602,67 @@ class MarketClient {
533
602
  { requireAuth: true }
534
603
  );
535
604
  }
605
+ projectTreeDxProxyAudit(projectId, options = {}) {
606
+ const query = new URLSearchParams();
607
+ if (options.assignmentId) query.set("assignmentId", options.assignmentId);
608
+ if (options.actorType) query.set("actorType", options.actorType);
609
+ return this.request(
610
+ `/v1/projects/${encodeURIComponent(projectId)}/treedx-proxy-audit${query.toString() ? `?${query}` : ""}`,
611
+ { requireAuth: true }
612
+ );
613
+ }
614
+ createCapacityReservation(projectId, body) {
615
+ return this.request(
616
+ `/v1/projects/${encodeURIComponent(projectId)}/capacity/reservations`,
617
+ { method: "POST", body, requireAuth: true }
618
+ );
619
+ }
620
+ projectAgentFallbackOutputs(projectId, options = {}) {
621
+ const query = new URLSearchParams();
622
+ if (options.assignmentId) query.set("assignmentId", options.assignmentId);
623
+ if (options.mode) query.set("mode", options.mode);
624
+ if (options.status) query.set("status", options.status);
625
+ return this.request(
626
+ `/v1/projects/${encodeURIComponent(projectId)}/agent-fallback-outputs${query.toString() ? `?${query}` : ""}`,
627
+ { requireAuth: true }
628
+ );
629
+ }
630
+ treeDxBuildContext(projectId, repoId, body, headers = {}) {
631
+ return this.request(
632
+ `/v1/dx/projects/${encodeURIComponent(projectId)}/repos/${encodeURIComponent(repoId)}/context/build`,
633
+ { method: "POST", body, headers, requireAuth: true }
634
+ );
635
+ }
636
+ treeDxReadRepositoryFiles(projectId, repoId, body, headers = {}) {
637
+ return this.request(
638
+ `/v1/dx/projects/${encodeURIComponent(projectId)}/repos/${encodeURIComponent(repoId)}/files/read`,
639
+ { method: "POST", body, headers, requireAuth: true }
640
+ );
641
+ }
642
+ createTreeDxWorkspace(projectId, repoId, body, headers = {}) {
643
+ return this.request(
644
+ `/v1/dx/projects/${encodeURIComponent(projectId)}/repos/${encodeURIComponent(repoId)}/workspaces`,
645
+ { method: "POST", body, headers, requireAuth: true }
646
+ );
647
+ }
536
648
  updateProjectRepositoryTopology(projectId, body) {
537
649
  return this.request(
538
650
  `/v1/projects/${encodeURIComponent(projectId)}/repository-topology`,
539
651
  { method: "PUT", body, requireAuth: true }
540
652
  );
541
653
  }
654
+ initializeProjectRepository(projectId, role, body = {}) {
655
+ return this.request(
656
+ `/v1/projects/${encodeURIComponent(projectId)}/repositories/${encodeURIComponent(role)}/initialize`,
657
+ { method: "POST", body, requireAuth: true }
658
+ );
659
+ }
660
+ importProjectRepository(teamId, plan) {
661
+ return this.request(
662
+ `/v1/teams/${encodeURIComponent(teamId)}/projects/import`,
663
+ { method: "POST", body: { plan }, requireAuth: true }
664
+ );
665
+ }
542
666
  auditProjectHosts(projectId, body = {}) {
543
667
  return this.request(
544
668
  `/v1/projects/${encodeURIComponent(projectId)}/hosts/audit`,
@@ -696,6 +820,63 @@ class MarketClient {
696
820
  { method: "POST", body, requireAuth: true }
697
821
  );
698
822
  }
823
+ capacityAllocationSets(teamId) {
824
+ return this.request(
825
+ `/v1/teams/${encodeURIComponent(teamId)}/capacity/allocation-sets`,
826
+ { requireAuth: true }
827
+ );
828
+ }
829
+ createCapacityAllocationSet(teamId, body) {
830
+ return this.request(
831
+ `/v1/teams/${encodeURIComponent(teamId)}/capacity/allocation-sets`,
832
+ { method: "POST", body, requireAuth: true }
833
+ );
834
+ }
835
+ capacityAllocationSet(teamId, allocationSetId) {
836
+ return this.request(
837
+ `/v1/teams/${encodeURIComponent(teamId)}/capacity/allocation-sets/${encodeURIComponent(allocationSetId)}`,
838
+ { requireAuth: true }
839
+ );
840
+ }
841
+ activateCapacityAllocationSet(teamId, allocationSetId) {
842
+ return this.request(
843
+ `/v1/teams/${encodeURIComponent(teamId)}/capacity/allocation-sets/${encodeURIComponent(allocationSetId)}/activate`,
844
+ { method: "POST", requireAuth: true }
845
+ );
846
+ }
847
+ providerAvailabilitySessions(teamId, options = {}) {
848
+ const params = new URLSearchParams();
849
+ if (options.providerId) params.set("providerId", options.providerId);
850
+ if (options.status) params.set("status", options.status);
851
+ const query = params.toString() ? `?${params.toString()}` : "";
852
+ return this.request(
853
+ `/v1/teams/${encodeURIComponent(teamId)}/capacity/provider-sessions${query}`,
854
+ { requireAuth: true }
855
+ );
856
+ }
857
+ providerAssignments(teamId, options = {}) {
858
+ const params = new URLSearchParams();
859
+ if (options.projectId) params.set("projectId", options.projectId);
860
+ if (options.providerId) params.set("providerId", options.providerId);
861
+ if (options.status) params.set("status", options.status);
862
+ const query = params.toString() ? `?${params.toString()}` : "";
863
+ return this.request(
864
+ `/v1/teams/${encodeURIComponent(teamId)}/capacity/assignments${query}`,
865
+ { requireAuth: true }
866
+ );
867
+ }
868
+ createProviderAssignment(teamId, body) {
869
+ return this.request(
870
+ `/v1/teams/${encodeURIComponent(teamId)}/capacity/assignments`,
871
+ { method: "POST", body, requireAuth: true }
872
+ );
873
+ }
874
+ providerAssignmentExplanation(teamId, assignmentId) {
875
+ return this.request(
876
+ `/v1/teams/${encodeURIComponent(teamId)}/capacity/assignments/${encodeURIComponent(assignmentId)}/explanation`,
877
+ { requireAuth: true }
878
+ );
879
+ }
699
880
  projectCapacityPlan(projectId, environment) {
700
881
  const query = environment ? `?environment=${encodeURIComponent(environment)}` : "";
701
882
  return this.request(
@@ -703,6 +884,203 @@ class MarketClient {
703
884
  { requireAuth: true }
704
885
  );
705
886
  }
887
+ projectAgentClasses(projectId) {
888
+ return this.request(
889
+ `/v1/projects/${encodeURIComponent(projectId)}/agent-classes`,
890
+ { requireAuth: true }
891
+ );
892
+ }
893
+ createProjectAgentClass(projectId, body) {
894
+ return this.request(
895
+ `/v1/projects/${encodeURIComponent(projectId)}/agent-classes`,
896
+ { method: "POST", body, requireAuth: true }
897
+ );
898
+ }
899
+ projectAgentClass(projectId, classId) {
900
+ return this.request(
901
+ `/v1/projects/${encodeURIComponent(projectId)}/agent-classes/${encodeURIComponent(classId)}`,
902
+ { requireAuth: true }
903
+ );
904
+ }
905
+ updateProjectAgentClass(projectId, classId, body) {
906
+ return this.request(
907
+ `/v1/projects/${encodeURIComponent(projectId)}/agent-classes/${encodeURIComponent(classId)}`,
908
+ { method: "PATCH", body, requireAuth: true }
909
+ );
910
+ }
911
+ projectAgentModeRuns(projectId, options = {}) {
912
+ const params = new URLSearchParams();
913
+ if (options.mode) params.set("mode", options.mode);
914
+ if (options.assignmentId) params.set("assignmentId", options.assignmentId);
915
+ const query = params.toString() ? `?${params.toString()}` : "";
916
+ return this.request(
917
+ `/v1/projects/${encodeURIComponent(projectId)}/agent-mode-runs${query}`,
918
+ { requireAuth: true }
919
+ );
920
+ }
921
+ projectCapacityRuntimeDiagnostics(projectId, teamId) {
922
+ const query = new URLSearchParams({ teamId });
923
+ return this.request(
924
+ `/v1/projects/${encodeURIComponent(projectId)}/capacity-runtime-diagnostics?${query.toString()}`,
925
+ { requireAuth: true }
926
+ );
927
+ }
928
+ decisionPlanningStatus(decisionId) {
929
+ return this.request(
930
+ `/v1/decisions/${encodeURIComponent(decisionId)}/planning-status`,
931
+ { requireAuth: true }
932
+ );
933
+ }
934
+ createPlanningInputRequest(decisionId, body) {
935
+ return this.request(
936
+ `/v1/decisions/${encodeURIComponent(decisionId)}/planning-input-requests`,
937
+ { method: "POST", body, requireAuth: true }
938
+ );
939
+ }
940
+ decisionExecutionInputs(decisionId, options = {}) {
941
+ const query = options.status ? `?status=${encodeURIComponent(options.status)}` : "";
942
+ return this.request(
943
+ `/v1/decisions/${encodeURIComponent(decisionId)}/execution-inputs${query}`,
944
+ { requireAuth: true }
945
+ );
946
+ }
947
+ createDecisionExecutionInput(decisionId, body) {
948
+ return this.request(
949
+ `/v1/decisions/${encodeURIComponent(decisionId)}/execution-inputs`,
950
+ { method: "POST", body, requireAuth: true }
951
+ );
952
+ }
953
+ acceptDecisionExecutionInput(inputId, body = {}) {
954
+ return this.request(
955
+ `/v1/decision-execution-inputs/${encodeURIComponent(inputId)}/accept`,
956
+ { method: "POST", body, requireAuth: true }
957
+ );
958
+ }
959
+ requestDecisionExecutionInputRevision(inputId, body = {}) {
960
+ return this.request(
961
+ `/v1/decision-execution-inputs/${encodeURIComponent(inputId)}/request-revision`,
962
+ { method: "POST", body, requireAuth: true }
963
+ );
964
+ }
965
+ decisionCapacityPlans(decisionId, options = {}) {
966
+ const query = options.status ? `?status=${encodeURIComponent(options.status)}` : "";
967
+ return this.request(
968
+ `/v1/decisions/${encodeURIComponent(decisionId)}/capacity-plans${query}`,
969
+ { requireAuth: true }
970
+ );
971
+ }
972
+ createDecisionCapacityPlan(decisionId, body) {
973
+ return this.request(
974
+ `/v1/decisions/${encodeURIComponent(decisionId)}/capacity-plans`,
975
+ { method: "POST", body, requireAuth: true }
976
+ );
977
+ }
978
+ capacityPlan(capacityPlanId) {
979
+ return this.request(
980
+ `/v1/capacity-plans/${encodeURIComponent(capacityPlanId)}`,
981
+ { requireAuth: true }
982
+ );
983
+ }
984
+ acceptCapacityPlan(capacityPlanId, body = {}) {
985
+ return this.request(
986
+ `/v1/capacity-plans/${encodeURIComponent(capacityPlanId)}/accept`,
987
+ { method: "POST", body, requireAuth: true }
988
+ );
989
+ }
990
+ requestCapacityPlanRevision(capacityPlanId, body = {}) {
991
+ return this.request(
992
+ `/v1/capacity-plans/${encodeURIComponent(capacityPlanId)}/request-revision`,
993
+ { method: "POST", body, requireAuth: true }
994
+ );
995
+ }
996
+ scheduleCapacityPlan(capacityPlanId, body = {}) {
997
+ return this.request(
998
+ `/v1/capacity-plans/${encodeURIComponent(capacityPlanId)}/schedule`,
999
+ { method: "POST", body, requireAuth: true }
1000
+ );
1001
+ }
1002
+ supersedeCapacityPlan(capacityPlanId, body = {}) {
1003
+ return this.request(
1004
+ `/v1/capacity-plans/${encodeURIComponent(capacityPlanId)}/supersede`,
1005
+ { method: "POST", body, requireAuth: true }
1006
+ );
1007
+ }
1008
+ createWorkday(body) {
1009
+ return this.request(
1010
+ "/v1/workdays",
1011
+ { method: "POST", body, requireAuth: true }
1012
+ );
1013
+ }
1014
+ workday(workdayId) {
1015
+ return this.request(
1016
+ `/v1/workdays/${encodeURIComponent(workdayId)}`,
1017
+ { requireAuth: true }
1018
+ );
1019
+ }
1020
+ startWorkday(workdayId) {
1021
+ return this.request(
1022
+ `/v1/workdays/${encodeURIComponent(workdayId)}/start`,
1023
+ { method: "POST", requireAuth: true }
1024
+ );
1025
+ }
1026
+ pauseWorkday(workdayId) {
1027
+ return this.request(
1028
+ `/v1/workdays/${encodeURIComponent(workdayId)}/pause`,
1029
+ { method: "POST", requireAuth: true }
1030
+ );
1031
+ }
1032
+ completeWorkday(workdayId) {
1033
+ return this.request(
1034
+ `/v1/workdays/${encodeURIComponent(workdayId)}/complete`,
1035
+ { method: "POST", requireAuth: true }
1036
+ );
1037
+ }
1038
+ workdaySummary(workdayId) {
1039
+ return this.request(
1040
+ `/v1/workdays/${encodeURIComponent(workdayId)}/summary`,
1041
+ { requireAuth: true }
1042
+ );
1043
+ }
1044
+ workdayRuns(teamId, options = {}) {
1045
+ const params = new URLSearchParams();
1046
+ if (options.status) params.set("status", options.status);
1047
+ if (options.providerId) params.set("providerId", options.providerId);
1048
+ const query = params.toString() ? `?${params.toString()}` : "";
1049
+ return this.request(
1050
+ `/v1/teams/${encodeURIComponent(teamId)}/workday-runs${query}`,
1051
+ { requireAuth: true }
1052
+ );
1053
+ }
1054
+ createWorkdayRun(teamId, body) {
1055
+ return this.request(
1056
+ `/v1/teams/${encodeURIComponent(teamId)}/workday-runs`,
1057
+ { method: "POST", body, requireAuth: true }
1058
+ );
1059
+ }
1060
+ workdayRun(teamId, runId) {
1061
+ return this.request(
1062
+ `/v1/teams/${encodeURIComponent(teamId)}/workday-runs/${encodeURIComponent(runId)}`,
1063
+ { requireAuth: true }
1064
+ );
1065
+ }
1066
+ updateWorkdayRun(teamId, runId, body) {
1067
+ return this.request(
1068
+ `/v1/teams/${encodeURIComponent(teamId)}/workday-runs/${encodeURIComponent(runId)}`,
1069
+ { method: "PATCH", body, requireAuth: true }
1070
+ );
1071
+ }
1072
+ workdayEvents(teamId, runId) {
1073
+ return this.request(
1074
+ `/v1/teams/${encodeURIComponent(teamId)}/workday-runs/${encodeURIComponent(runId)}/events`,
1075
+ { requireAuth: true }
1076
+ );
1077
+ }
1078
+ createWorkdayEvent(teamId, runId, body) {
1079
+ return this.request(
1080
+ `/v1/teams/${encodeURIComponent(teamId)}/workday-runs/${encodeURIComponent(runId)}/events`,
1081
+ { method: "POST", body, requireAuth: true }
1082
+ );
1083
+ }
706
1084
  planSeed(seedName, body) {
707
1085
  return this.request(
708
1086
  `/v1/seeds/${encodeURIComponent(seedName)}/plan`,
@@ -725,12 +1103,6 @@ class MarketClient {
725
1103
  { method: "POST", body, requireAuth: true }
726
1104
  );
727
1105
  }
728
- enqueueAgentTask(projectId, body) {
729
- return this.request(
730
- `/v1/projects/${encodeURIComponent(projectId)}/agent-tasks`,
731
- { method: "POST", body, requireAuth: true }
732
- );
733
- }
734
1106
  catalog(kind) {
735
1107
  const query = kind ? `?kind=${encodeURIComponent(kind)}` : "";
736
1108
  return this.request(`/v1/catalog${query}`, { requireAuth: Boolean(this.accessToken) });
@@ -1,4 +1,4 @@
1
- import type { SdkBuiltinModelName, SdkModelDefinition, SdkModelRegistry } from './sdk-types.ts';
1
+ import type { SdkBuiltinModelName, SdkModelDefinition, SdkModelRegistry } from './sdk-types.js';
2
2
  export declare function buildBuiltinModelRegistry(repoRoot?: string): Record<SdkBuiltinModelName, SdkModelDefinition>;
3
3
  export declare function mergeModelRegistries(baseRegistry: SdkModelRegistry, definitions?: SdkModelDefinition[]): SdkModelRegistry;
4
4
  export declare function buildModelRegistry(definitions?: SdkModelDefinition[]): SdkModelRegistry;
@@ -350,21 +350,20 @@ function buildBuiltinModelRegistry(repoRoot) {
350
350
  name: "task",
351
351
  aliases: ["tasks"],
352
352
  storage: "d1",
353
- operations: ["get", "read", "search", "pick", "create", "update"],
353
+ operations: ["get", "read", "search", "create", "update"],
354
354
  fields: {
355
- id: field("id", { filterable: true, dbColumns: ["id"], writeDbColumn: "id" }),
355
+ id: field("id", { filterable: true, dbColumns: ["id"], payloadPaths: ["id"], writeDbColumn: "id" }),
356
356
  work_day_id: field("work_day_id", { aliases: ["workDayId"], filterable: true, dbColumns: ["work_day_id"], payloadPaths: ["workDayId"], writeDbColumn: "work_day_id" }),
357
357
  agent_id: field("agent_id", { aliases: ["agentId"], filterable: true, dbColumns: ["agent_id"], payloadPaths: ["agentId"], writeDbColumn: "agent_id" }),
358
- type: field("type", { filterable: true, dbColumns: ["type"], writeDbColumn: "type" }),
359
- state: field("state", { filterable: true, dbColumns: ["state"], writeDbColumn: "state" }),
360
- priority: field("priority", { filterable: true, sortable: true, comparableAs: "number", dbColumns: ["priority"], writeDbColumn: "priority" }),
358
+ type: field("type", { filterable: true, dbColumns: ["type"], payloadPaths: ["type"], writeDbColumn: "type" }),
359
+ state: field("state", { filterable: true, dbColumns: ["state"], payloadPaths: ["state"], writeDbColumn: "state" }),
361
360
  idempotency_key: field("idempotency_key", { aliases: ["idempotencyKey"], filterable: true, dbColumns: ["idempotency_key"], payloadPaths: ["idempotencyKey"], writeDbColumn: "idempotency_key" }),
362
- available_at: field("available_at", { aliases: ["availableAt"], filterable: true, sortable: true, comparableAs: "date", dbColumns: ["available_at"], payloadPaths: ["availableAt"], writeDbColumn: "available_at" }),
361
+ created_at: field("created_at", { aliases: ["createdAt"], filterable: true, sortable: true, comparableAs: "date", dbColumns: ["created_at"], payloadPaths: ["createdAt"], writeDbColumn: "created_at" }),
363
362
  updated_at: field("updated_at", { aliases: ["updatedAt"], filterable: true, sortable: true, comparableAs: "date", dbColumns: ["updated_at"], payloadPaths: ["updatedAt"], writeDbColumn: "updated_at" })
364
363
  },
365
- filterableFields: ["id", "work_day_id", "agent_id", "type", "state", "priority", "idempotency_key", "available_at", "updated_at"],
366
- sortableFields: ["priority", "available_at", "updated_at"],
367
- pickField: "available_at"
364
+ filterableFields: ["id", "work_day_id", "agent_id", "type", "state", "idempotency_key", "created_at", "updated_at"],
365
+ sortableFields: ["created_at", "updated_at"],
366
+ pickField: "updated_at"
368
367
  },
369
368
  task_event: {
370
369
  name: "task_event",
@@ -372,14 +371,13 @@ function buildBuiltinModelRegistry(repoRoot) {
372
371
  storage: "d1",
373
372
  operations: ["get", "read", "search", "create"],
374
373
  fields: {
375
- id: field("id", { filterable: true, dbColumns: ["id"], writeDbColumn: "id" }),
374
+ id: field("id", { filterable: true, dbColumns: ["id"], payloadPaths: ["id"], writeDbColumn: "id" }),
376
375
  task_id: field("task_id", { aliases: ["taskId"], filterable: true, dbColumns: ["task_id"], payloadPaths: ["taskId"], writeDbColumn: "task_id" }),
377
- kind: field("kind", { filterable: true, dbColumns: ["kind"], writeDbColumn: "kind" }),
378
- seq: field("seq", { filterable: true, sortable: true, comparableAs: "number", dbColumns: ["seq"], writeDbColumn: "seq" }),
376
+ kind: field("kind", { filterable: true, dbColumns: ["kind"], payloadPaths: ["kind"], writeDbColumn: "kind" }),
379
377
  created_at: field("created_at", { aliases: ["createdAt"], filterable: true, sortable: true, comparableAs: "date", dbColumns: ["created_at"], payloadPaths: ["createdAt"], writeDbColumn: "created_at" })
380
378
  },
381
- filterableFields: ["id", "task_id", "kind", "seq", "created_at"],
382
- sortableFields: ["seq", "created_at"],
379
+ filterableFields: ["id", "task_id", "kind", "created_at"],
380
+ sortableFields: ["created_at"],
383
381
  pickField: "created_at"
384
382
  },
385
383
  task_output: {
@@ -388,13 +386,15 @@ function buildBuiltinModelRegistry(repoRoot) {
388
386
  storage: "d1",
389
387
  operations: ["get", "read", "search", "create"],
390
388
  fields: {
391
- id: field("id", { filterable: true, dbColumns: ["id"], writeDbColumn: "id" }),
389
+ id: field("id", { filterable: true, dbColumns: ["id"], payloadPaths: ["id"], writeDbColumn: "id" }),
392
390
  task_id: field("task_id", { aliases: ["taskId"], filterable: true, dbColumns: ["task_id"], payloadPaths: ["taskId"], writeDbColumn: "task_id" }),
393
- created_at: field("created_at", { aliases: ["createdAt"], filterable: true, sortable: true, comparableAs: "date", dbColumns: ["created_at"], payloadPaths: ["createdAt"], writeDbColumn: "created_at" })
391
+ output_ref: field("output_ref", { aliases: ["outputRef"], filterable: true, dbColumns: ["output_ref"], payloadPaths: ["outputRef"], writeDbColumn: "output_ref" }),
392
+ created_at: field("created_at", { aliases: ["createdAt"], filterable: true, sortable: true, comparableAs: "date", dbColumns: ["created_at"], payloadPaths: ["createdAt"], writeDbColumn: "created_at" }),
393
+ updated_at: field("updated_at", { aliases: ["updatedAt"], filterable: true, sortable: true, comparableAs: "date", dbColumns: ["updated_at"], payloadPaths: ["updatedAt"], writeDbColumn: "updated_at" })
394
394
  },
395
- filterableFields: ["id", "task_id", "created_at"],
396
- sortableFields: ["created_at"],
397
- pickField: "created_at"
395
+ filterableFields: ["id", "task_id", "output_ref", "created_at", "updated_at"],
396
+ sortableFields: ["created_at", "updated_at"],
397
+ pickField: "updated_at"
398
398
  },
399
399
  graph_run: {
400
400
  name: "graph_run",
@@ -1,13 +1,8 @@
1
- export declare const AGENT_OPERATION_NAMES: readonly ["switch", "dev", "verify", "save", "stage", "merge_to_staging", "close", "release"];
1
+ export declare const AGENT_OPERATION_NAMES: readonly ["switch", "dev", "verify", "save", "update", "stage", "close", "release"];
2
2
  export declare const AGENT_OPERATION_MODES: readonly ["dry_run", "read_only", "mutating"];
3
3
  export type AgentOperationName = (typeof AGENT_OPERATION_NAMES)[number];
4
4
  export type AgentOperationMode = (typeof AGENT_OPERATION_MODES)[number];
5
5
  export type AgentOperationStatus = 'completed' | 'waiting' | 'failed' | 'skipped' | 'retry_created';
6
- export interface AgentOperationApprovalRef {
7
- id: string;
8
- kind?: string;
9
- state: 'pending' | 'approved' | 'rejected' | 'expired' | 'superseded';
10
- }
11
6
  export interface AgentOperationRequest {
12
7
  operation: AgentOperationName;
13
8
  mode: AgentOperationMode;
@@ -22,8 +17,6 @@ export interface AgentOperationRequest {
22
17
  worktreeRoot?: string;
23
18
  featureBranch?: string;
24
19
  stagingBranch?: string;
25
- approvalId?: string;
26
- approval?: AgentOperationApprovalRef;
27
20
  permissionGrantId?: string;
28
21
  allowedPaths?: string[];
29
22
  forbiddenPaths?: string[];
@@ -48,8 +41,6 @@ export interface AgentOperationGrant {
48
41
  environments?: string[];
49
42
  allowedPaths?: string[];
50
43
  forbiddenPaths?: string[];
51
- requiresApproval?: boolean;
52
- approvalIds?: string[];
53
44
  expiresAt?: string;
54
45
  metadata?: Record<string, unknown>;
55
46
  }
@@ -80,7 +71,7 @@ export interface AgentOperationResult {
80
71
  };
81
72
  metadata: Record<string, unknown>;
82
73
  }
83
- export type AgentOperationPermissionCode = 'allowed' | 'invalid_operation' | 'operation_permission_required' | 'operation_grant_inactive' | 'operation_grant_expired' | 'operation_mode_not_granted' | 'operation_role_not_granted' | 'operation_task_kind_not_granted' | 'operation_project_not_granted' | 'operation_environment_not_granted' | 'operation_approval_required' | 'operation_release_approval_required' | 'operation_worktree_required' | 'operation_allowed_paths_required' | 'operation_path_not_allowed' | 'operation_path_forbidden';
74
+ export type AgentOperationPermissionCode = 'allowed' | 'invalid_operation' | 'operation_permission_required' | 'operation_grant_inactive' | 'operation_grant_expired' | 'operation_mode_not_granted' | 'operation_role_not_granted' | 'operation_task_kind_not_granted' | 'operation_project_not_granted' | 'operation_environment_not_granted' | 'operation_worktree_required' | 'operation_allowed_paths_required' | 'operation_path_not_allowed' | 'operation_path_forbidden';
84
75
  export interface AgentOperationPermissionDecision {
85
76
  allowed: boolean;
86
77
  status: 'completed' | 'waiting' | 'failed';
@@ -3,8 +3,8 @@ const AGENT_OPERATION_NAMES = [
3
3
  "dev",
4
4
  "verify",
5
5
  "save",
6
+ "update",
6
7
  "stage",
7
- "merge_to_staging",
8
8
  "close",
9
9
  "release"
10
10
  ];
@@ -73,12 +73,6 @@ function decideAgentOperationPermission(input) {
73
73
  if (!isAgentOperationName(request.operation)) {
74
74
  return deny("invalid_operation", `Unsupported agent operation "${String(request.operation)}".`, { status: "failed" });
75
75
  }
76
- if (request.operation === "release") {
77
- const approval = request.approval;
78
- if (!approval || approval.state !== "approved" || request.approvalId && approval.id !== request.approvalId) {
79
- return deny("operation_release_approval_required", "Release requires an explicit approved release approval.");
80
- }
81
- }
82
76
  const grant = resolveAgentOperationGrant(request, input.grants, now);
83
77
  if (!grant) {
84
78
  return deny("operation_permission_required", `No operation grant allows ${request.agentRole} to run ${request.operation}.`);
@@ -102,19 +96,13 @@ function decideAgentOperationPermission(input) {
102
96
  if (!listMatches(request.environment, grant.environments)) {
103
97
  return deny("operation_environment_not_granted", `Operation grant ${grant.id} does not allow environment ${request.environment}.`, { grant });
104
98
  }
105
- if (grant.requiresApproval && (!request.approval || request.approval.state !== "approved")) {
106
- return deny("operation_approval_required", `Operation grant ${grant.id} requires approval.`, { grant });
107
- }
108
- if (grant.approvalIds?.length && (!request.approval || !grant.approvalIds.includes(request.approval.id) || request.approval.state !== "approved")) {
109
- return deny("operation_approval_required", `Operation grant ${grant.id} requires one of its approved approval ids.`, { grant });
110
- }
111
99
  if (request.mode === "mutating" && !request.worktreeRoot && request.operation !== "release") {
112
100
  return deny("operation_worktree_required", `Mutating operation ${request.operation} requires an assigned worktree root.`, { grant });
113
101
  }
114
102
  const allowedPaths = request.allowedPaths?.length ? request.allowedPaths : grant.allowedPaths ?? [];
115
103
  const forbiddenPaths = [...grant.forbiddenPaths ?? [], ...request.forbiddenPaths ?? []];
116
104
  const changedPaths = request.changedPaths ?? [];
117
- if ((request.operation === "stage" || request.operation === "merge_to_staging") && allowedPaths.length === 0) {
105
+ if (request.operation === "stage" && allowedPaths.length === 0) {
118
106
  return deny("operation_allowed_paths_required", `${request.operation} requires allowed paths.`, { grant });
119
107
  }
120
108
  for (const changedPath of changedPaths) {
@@ -1,4 +1,4 @@
1
- import type { TreeseedOperationImplementation, TreeseedOperationMetadata, TreeseedOperationProvider } from '../../operations-types.ts';
1
+ import type { TreeseedOperationImplementation, TreeseedOperationMetadata, TreeseedOperationProvider } from '../../operations-types.js';
2
2
  export declare class DefaultTreeseedOperationsProvider implements TreeseedOperationProvider {
3
3
  readonly id = "default";
4
4
  private readonly operations;