@treeseed/sdk 0.11.0 → 0.12.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (473) hide show
  1. package/README.md +9 -4
  2. package/dist/agent-capacity.d.ts +916 -0
  3. package/dist/agent-capacity.js +1600 -0
  4. package/dist/agent-tools.d.ts +37 -0
  5. package/dist/agent-tools.js +301 -0
  6. package/dist/api/app.d.ts +1 -1
  7. package/dist/api/auth/d1-database.d.ts +2 -2
  8. package/dist/api/auth/d1-provider.d.ts +4 -4
  9. package/dist/api/auth/d1-store.d.ts +2 -2
  10. package/dist/api/auth/memory-provider.d.ts +1 -1
  11. package/dist/api/auth/tokens.d.ts +1 -1
  12. package/dist/api/config.d.ts +3 -1
  13. package/dist/api/config.js +34 -10
  14. package/dist/api/http.d.ts +2 -2
  15. package/dist/api/index.d.ts +10 -10
  16. package/dist/api/index.js +4 -2
  17. package/dist/api/operations-routes.d.ts +3 -3
  18. package/dist/api/operations.d.ts +1 -1
  19. package/dist/api/providers.d.ts +1 -1
  20. package/dist/api/providers.js +21 -4
  21. package/dist/api/railway.d.ts +3 -2
  22. package/dist/api/sdk-dispatch.d.ts +4 -4
  23. package/dist/api/sdk-routes.d.ts +2 -2
  24. package/dist/api/templates.d.ts +2 -2
  25. package/dist/api/types.d.ts +3 -2
  26. package/dist/capacity-provider.d.ts +117 -60
  27. package/dist/capacity-provider.js +215 -43
  28. package/dist/capacity.d.ts +2 -2
  29. package/dist/cli-tools.d.ts +1 -1
  30. package/dist/content-operations.d.ts +97 -0
  31. package/dist/content-operations.js +250 -0
  32. package/dist/content-store.d.ts +4 -4
  33. package/dist/control-plane-client.d.ts +13 -18
  34. package/dist/control-plane-client.js +8 -86
  35. package/dist/control-plane.d.ts +2 -2
  36. package/dist/copilot.d.ts +3 -0
  37. package/dist/copilot.js +16 -1
  38. package/dist/d1-http.d.ts +1 -1
  39. package/dist/d1-store.d.ts +32 -57
  40. package/dist/d1-store.js +115 -318
  41. package/dist/db/d1.d.ts +1 -232
  42. package/dist/db/index.d.ts +3 -3
  43. package/dist/db/market-schema.d.ts +49037 -11843
  44. package/dist/db/market-schema.js +1788 -50
  45. package/dist/db/node-sqlite.d.ts +1 -232
  46. package/dist/db/schema.d.ts +0 -462
  47. package/dist/db/schema.js +2 -22
  48. package/dist/dispatch.d.ts +1 -1
  49. package/dist/dispatch.js +0 -11
  50. package/dist/fixture-support.js +52 -4
  51. package/dist/governance.d.ts +133 -0
  52. package/dist/governance.js +285 -0
  53. package/dist/graph/build.d.ts +2 -2
  54. package/dist/graph/context-query-contracts.d.ts +1 -1
  55. package/dist/graph/dsl.d.ts +1 -1
  56. package/dist/graph/query.d.ts +4 -4
  57. package/dist/graph/ranking.d.ts +1 -1
  58. package/dist/graph/schema.d.ts +1 -1
  59. package/dist/graph.d.ts +11 -11
  60. package/dist/guarantees/index.d.ts +425 -0
  61. package/dist/guarantees/index.js +1146 -0
  62. package/dist/hosting/apps.d.ts +1 -1
  63. package/dist/hosting/builtins.d.ts +1 -1
  64. package/dist/hosting/builtins.js +9 -198
  65. package/dist/hosting/contracts.d.ts +3 -2
  66. package/dist/hosting/graph.d.ts +24 -21
  67. package/dist/hosting/graph.js +280 -294
  68. package/dist/hosting/index.d.ts +4 -4
  69. package/dist/index.d.ts +88 -74
  70. package/dist/index.js +81 -10
  71. package/dist/local-dev/managed-dev.d.ts +85 -0
  72. package/dist/local-dev/managed-dev.js +368 -0
  73. package/dist/managed-dependencies.d.ts +9 -0
  74. package/dist/managed-dependencies.js +10 -8
  75. package/dist/market-client.d.ts +265 -7
  76. package/dist/market-client.js +381 -9
  77. package/dist/model-registry.d.ts +1 -1
  78. package/dist/model-registry.js +19 -19
  79. package/dist/operations/agent-tools.d.ts +2 -11
  80. package/dist/operations/agent-tools.js +2 -14
  81. package/dist/operations/providers/default.d.ts +1 -1
  82. package/dist/operations/providers/default.js +20 -37
  83. package/dist/operations/repository-operations.d.ts +26 -2
  84. package/dist/operations/repository-operations.js +159 -1
  85. package/dist/operations/runtime.d.ts +3 -3
  86. package/dist/operations/services/bootstrap-runner.d.ts +1 -1
  87. package/dist/operations/services/build-warning-policy.d.ts +34 -0
  88. package/dist/operations/services/build-warning-policy.js +81 -82
  89. package/dist/operations/services/commit-message-provider.js +4 -4
  90. package/dist/operations/services/config-runtime.d.ts +73 -19
  91. package/dist/operations/services/config-runtime.js +276 -100
  92. package/dist/operations/services/deploy.d.ts +41 -622
  93. package/dist/operations/services/deploy.js +181 -213
  94. package/dist/operations/services/deployment-readiness.d.ts +1 -1
  95. package/dist/operations/services/deployment-readiness.js +38 -7
  96. package/dist/operations/services/git-remote-policy.js +12 -4
  97. package/dist/operations/services/git-runner.d.ts +66 -0
  98. package/dist/operations/services/git-runner.js +479 -0
  99. package/dist/operations/services/git-workflow.d.ts +43 -5
  100. package/dist/operations/services/git-workflow.js +242 -20
  101. package/dist/operations/services/github-actions-verification.d.ts +3 -1
  102. package/dist/operations/services/github-actions-verification.js +11 -3
  103. package/dist/operations/services/github-api.js +21 -5
  104. package/dist/operations/services/github-automation.d.ts +3 -3
  105. package/dist/operations/services/github-automation.js +15 -18
  106. package/dist/operations/services/github-credentials.js +2 -1
  107. package/dist/operations/services/hosted-service-checks.d.ts +19 -1
  108. package/dist/operations/services/hosted-service-checks.js +162 -11
  109. package/dist/operations/services/hosting-audit.d.ts +2 -2
  110. package/dist/operations/services/hosting-audit.js +7 -7
  111. package/dist/operations/services/hub-launch.d.ts +1 -1
  112. package/dist/operations/services/hub-provider-launch.d.ts +5 -5
  113. package/dist/operations/services/hub-provider-launch.js +19 -14
  114. package/dist/operations/services/live-hosted-service-checks.d.ts +2 -1
  115. package/dist/operations/services/live-hosted-service-checks.js +193 -80
  116. package/dist/operations/services/local-dev.js +0 -1
  117. package/dist/operations/services/managed-host-security.d.ts +1 -1
  118. package/dist/operations/services/managed-repositories.d.ts +37 -0
  119. package/dist/operations/services/managed-repositories.js +177 -0
  120. package/dist/operations/services/operations-runner-smoke.d.ts +3 -2
  121. package/dist/operations/services/operations-runner-smoke.js +22 -4
  122. package/dist/operations/services/package-adapters.d.ts +77 -2
  123. package/dist/operations/services/package-adapters.js +627 -56
  124. package/dist/operations/services/package-reference-policy.d.ts +12 -88
  125. package/dist/operations/services/package-reference-policy.js +81 -213
  126. package/dist/operations/services/project-host-operations.d.ts +4 -4
  127. package/dist/operations/services/project-platform.d.ts +19 -193
  128. package/dist/operations/services/project-platform.js +31 -103
  129. package/dist/operations/services/project-web-monitor.d.ts +2 -2
  130. package/dist/operations/services/project-web-monitor.js +97 -2
  131. package/dist/operations/services/railway-api.d.ts +36 -7
  132. package/dist/operations/services/railway-api.js +331 -100
  133. package/dist/operations/services/railway-deploy.d.ts +7 -95
  134. package/dist/operations/services/railway-deploy.js +334 -742
  135. package/dist/operations/services/release-history.js +3 -4
  136. package/dist/operations/services/release-proof-ledger.d.ts +13 -0
  137. package/dist/operations/services/release-proof-ledger.js +81 -0
  138. package/dist/operations/services/release-proof-planner.d.ts +48 -0
  139. package/dist/operations/services/release-proof-planner.js +195 -0
  140. package/dist/operations/services/release-proof-runner.d.ts +16 -0
  141. package/dist/operations/services/release-proof-runner.js +169 -0
  142. package/dist/operations/services/release-proof.d.ts +81 -0
  143. package/dist/operations/services/release-proof.js +79 -0
  144. package/dist/operations/services/repository-save-orchestrator.d.ts +6 -7
  145. package/dist/operations/services/repository-save-orchestrator.js +353 -174
  146. package/dist/operations/services/runtime-paths.d.ts +1 -3
  147. package/dist/operations/services/runtime-paths.js +0 -4
  148. package/dist/operations/services/runtime-tools.d.ts +1 -192
  149. package/dist/operations/services/runtime-tools.js +4 -444
  150. package/dist/operations/services/save-deploy-preflight.js +9 -1
  151. package/dist/operations/services/template-host-bindings.d.ts +2 -2
  152. package/dist/operations/services/template-host-bindings.js +3 -2
  153. package/dist/operations/services/template-registry.d.ts +6 -6
  154. package/dist/operations/services/template-registry.js +33 -14
  155. package/dist/operations/services/template-secret-sync.d.ts +3 -3
  156. package/dist/operations/services/workflow-timing.d.ts +25 -0
  157. package/dist/operations/services/workflow-timing.js +79 -0
  158. package/dist/operations/services/workspace-dependency-mode.js +41 -4
  159. package/dist/operations/services/workspace-preflight.js +8 -8
  160. package/dist/operations/services/workspace-save-script.d.ts +4 -4
  161. package/dist/operations/services/workspace-save.d.ts +1 -0
  162. package/dist/operations/services/workspace-save.js +41 -18
  163. package/dist/operations/services/workspace-tools.js +40 -6
  164. package/dist/operations-registry.d.ts +1 -1
  165. package/dist/operations-registry.js +5 -6
  166. package/dist/operations-types.d.ts +1 -1
  167. package/dist/operations.d.ts +17 -11
  168. package/dist/operations.js +57 -3
  169. package/dist/platform/book-export.js +2 -0
  170. package/dist/platform/books-data.d.ts +1 -1
  171. package/dist/platform/config.d.ts +27 -0
  172. package/dist/platform/config.js +100 -0
  173. package/dist/platform/content-runtime-source.d.ts +54 -0
  174. package/dist/platform/content-runtime-source.js +169 -0
  175. package/dist/platform/contracts.d.ts +6 -1
  176. package/dist/platform/deploy-config.d.ts +1 -1
  177. package/dist/platform/deploy-config.js +7 -1
  178. package/dist/platform/deploy-runtime.d.ts +1 -1
  179. package/dist/platform/desired-state.d.ts +63 -0
  180. package/dist/platform/desired-state.js +1021 -0
  181. package/dist/platform/env.yaml +414 -19
  182. package/dist/platform/environment.d.ts +2 -2
  183. package/dist/platform/environment.js +54 -22
  184. package/dist/platform/local-content-materialization.d.ts +9 -0
  185. package/dist/platform/local-content-materialization.js +212 -0
  186. package/dist/platform/plugin.d.ts +5 -5
  187. package/dist/platform/plugins/runtime.d.ts +3 -3
  188. package/dist/platform/plugins/runtime.js +62 -1
  189. package/dist/platform/plugins.d.ts +6 -6
  190. package/dist/platform/published-content-pipeline.d.ts +3 -3
  191. package/dist/platform/published-content-pipeline.js +5 -1
  192. package/dist/platform/published-content.d.ts +4 -3
  193. package/dist/platform/site-config-schema.d.ts +1 -0
  194. package/dist/platform/site-config-schema.js +4 -1
  195. package/dist/platform/tenant/runtime-config.d.ts +152 -2
  196. package/dist/platform/tenant-config.d.ts +1 -1
  197. package/dist/platform/utils/site-config-schema.d.ts +154 -0
  198. package/dist/platform/utils/site-config-schema.js +400 -461
  199. package/dist/platform-operation-store.d.ts +1 -1
  200. package/dist/plugin-default.d.ts +1 -1
  201. package/dist/plugin-default.js +27 -12
  202. package/dist/project-import.d.ts +91 -0
  203. package/dist/project-import.js +257 -0
  204. package/dist/project-workflow.d.ts +1 -1
  205. package/dist/reconcile/bootstrap-systems.d.ts +2 -2
  206. package/dist/reconcile/bootstrap-systems.js +3 -3
  207. package/dist/reconcile/builtin-adapters.d.ts +7 -1
  208. package/dist/reconcile/builtin-adapters.js +2924 -346
  209. package/dist/reconcile/contracts.d.ts +15 -2
  210. package/dist/reconcile/desired-state.d.ts +2 -193
  211. package/dist/reconcile/desired-state.js +24 -33
  212. package/dist/reconcile/engine.d.ts +60 -397
  213. package/dist/reconcile/engine.js +182 -18
  214. package/dist/reconcile/index.d.ts +10 -10
  215. package/dist/reconcile/live-acceptance.d.ts +22 -1
  216. package/dist/reconcile/live-acceptance.js +456 -44
  217. package/dist/reconcile/providers/docker-private.d.ts +54 -0
  218. package/dist/reconcile/providers/docker-private.js +101 -0
  219. package/dist/reconcile/providers/github-private.d.ts +65 -0
  220. package/dist/reconcile/providers/github-private.js +119 -0
  221. package/dist/reconcile/providers/local-private.d.ts +28 -0
  222. package/dist/reconcile/providers/local-private.js +75 -0
  223. package/dist/reconcile/providers/railway-iac.d.ts +66 -0
  224. package/dist/reconcile/providers/railway-iac.js +275 -0
  225. package/dist/reconcile/providers/release-private.d.ts +92 -0
  226. package/dist/reconcile/providers/release-private.js +152 -0
  227. package/dist/reconcile/registry.d.ts +2 -2
  228. package/dist/reconcile/registry.js +16 -1
  229. package/dist/reconcile/state.d.ts +1 -1
  230. package/dist/reconcile/state.js +3 -40
  231. package/dist/reconcile/units.d.ts +1 -1
  232. package/dist/reconcile/units.js +7 -1
  233. package/dist/remote.d.ts +6 -6
  234. package/dist/scenes/artifacts.d.ts +16 -0
  235. package/dist/scenes/artifacts.js +61 -0
  236. package/dist/scenes/auth.d.ts +2 -0
  237. package/dist/scenes/auth.js +28 -0
  238. package/dist/scenes/base-url.d.ts +12 -0
  239. package/dist/scenes/base-url.js +123 -0
  240. package/dist/scenes/builtin-plugins.d.ts +2 -0
  241. package/dist/scenes/builtin-plugins.js +447 -0
  242. package/dist/scenes/checkpoints.d.ts +14 -0
  243. package/dist/scenes/checkpoints.js +33 -0
  244. package/dist/scenes/device-matrix.d.ts +2 -0
  245. package/dist/scenes/device-matrix.js +97 -0
  246. package/dist/scenes/devices.d.ts +11 -0
  247. package/dist/scenes/devices.js +22 -0
  248. package/dist/scenes/diagnostics.d.ts +5 -0
  249. package/dist/scenes/diagnostics.js +22 -0
  250. package/dist/scenes/diagram-providers.d.ts +2 -0
  251. package/dist/scenes/diagram-providers.js +181 -0
  252. package/dist/scenes/diagram-validation.d.ts +22 -0
  253. package/dist/scenes/diagram-validation.js +74 -0
  254. package/dist/scenes/environment.d.ts +2 -0
  255. package/dist/scenes/environment.js +65 -0
  256. package/dist/scenes/evidence-bundle.d.ts +5 -0
  257. package/dist/scenes/evidence-bundle.js +42 -0
  258. package/dist/scenes/evidence-report.d.ts +10 -0
  259. package/dist/scenes/evidence-report.js +73 -0
  260. package/dist/scenes/evidence.d.ts +16 -0
  261. package/dist/scenes/evidence.js +277 -0
  262. package/dist/scenes/index.d.ts +48 -0
  263. package/dist/scenes/index.js +312 -0
  264. package/dist/scenes/inspect.d.ts +9 -0
  265. package/dist/scenes/inspect.js +64 -0
  266. package/dist/scenes/loader.d.ts +3 -0
  267. package/dist/scenes/loader.js +38 -0
  268. package/dist/scenes/logs.d.ts +2 -0
  269. package/dist/scenes/logs.js +47 -0
  270. package/dist/scenes/operations.d.ts +3 -0
  271. package/dist/scenes/operations.js +128 -0
  272. package/dist/scenes/phase0.d.ts +9 -0
  273. package/dist/scenes/phase0.js +637 -0
  274. package/dist/scenes/planner.d.ts +12 -0
  275. package/dist/scenes/planner.js +166 -0
  276. package/dist/scenes/playwright-adapter.d.ts +2 -0
  277. package/dist/scenes/playwright-adapter.js +63 -0
  278. package/dist/scenes/plugins.d.ts +5 -0
  279. package/dist/scenes/plugins.js +115 -0
  280. package/dist/scenes/progress.d.ts +17 -0
  281. package/dist/scenes/progress.js +24 -0
  282. package/dist/scenes/publish-destinations.d.ts +12 -0
  283. package/dist/scenes/publish-destinations.js +99 -0
  284. package/dist/scenes/publish-plan-report.d.ts +10 -0
  285. package/dist/scenes/publish-plan-report.js +70 -0
  286. package/dist/scenes/publish-plan.d.ts +15 -0
  287. package/dist/scenes/publish-plan.js +248 -0
  288. package/dist/scenes/publish-redaction.d.ts +16 -0
  289. package/dist/scenes/publish-redaction.js +148 -0
  290. package/dist/scenes/publish-release-record.d.ts +13 -0
  291. package/dist/scenes/publish-release-record.js +34 -0
  292. package/dist/scenes/publish-report.d.ts +10 -0
  293. package/dist/scenes/publish-report.js +67 -0
  294. package/dist/scenes/publish.d.ts +16 -0
  295. package/dist/scenes/publish.js +298 -0
  296. package/dist/scenes/registry.d.ts +12 -0
  297. package/dist/scenes/registry.js +65 -0
  298. package/dist/scenes/remotion-adapter.d.ts +3 -0
  299. package/dist/scenes/remotion-adapter.js +94 -0
  300. package/dist/scenes/remotion-composition-registry.d.ts +2 -0
  301. package/dist/scenes/remotion-composition-registry.js +12 -0
  302. package/dist/scenes/remotion-compositions.d.ts +15 -0
  303. package/dist/scenes/remotion-compositions.js +464 -0
  304. package/dist/scenes/remotion-diagrams.d.ts +9 -0
  305. package/dist/scenes/remotion-diagrams.js +188 -0
  306. package/dist/scenes/remotion-input.d.ts +13 -0
  307. package/dist/scenes/remotion-input.js +291 -0
  308. package/dist/scenes/remotion-visuals.d.ts +29 -0
  309. package/dist/scenes/remotion-visuals.js +198 -0
  310. package/dist/scenes/render-media-assets.d.ts +9 -0
  311. package/dist/scenes/render-media-assets.js +117 -0
  312. package/dist/scenes/render-report.d.ts +10 -0
  313. package/dist/scenes/render-report.js +27 -0
  314. package/dist/scenes/render.d.ts +2 -0
  315. package/dist/scenes/render.js +218 -0
  316. package/dist/scenes/reporter.d.ts +3 -0
  317. package/dist/scenes/reporter.js +101 -0
  318. package/dist/scenes/resume.d.ts +2 -0
  319. package/dist/scenes/resume.js +79 -0
  320. package/dist/scenes/runner.d.ts +2 -0
  321. package/dist/scenes/runner.js +674 -0
  322. package/dist/scenes/schema.d.ts +6 -0
  323. package/dist/scenes/schema.js +994 -0
  324. package/dist/scenes/seed.d.ts +2 -0
  325. package/dist/scenes/seed.js +83 -0
  326. package/dist/scenes/segments.d.ts +15 -0
  327. package/dist/scenes/segments.js +79 -0
  328. package/dist/scenes/selectors.d.ts +3 -0
  329. package/dist/scenes/selectors.js +21 -0
  330. package/dist/scenes/timeline.d.ts +11 -0
  331. package/dist/scenes/timeline.js +26 -0
  332. package/dist/scenes/timeouts.d.ts +6 -0
  333. package/dist/scenes/timeouts.js +17 -0
  334. package/dist/scenes/training-captions.d.ts +14 -0
  335. package/dist/scenes/training-captions.js +98 -0
  336. package/dist/scenes/training-report.d.ts +10 -0
  337. package/dist/scenes/training-report.js +78 -0
  338. package/dist/scenes/training-transcript.d.ts +24 -0
  339. package/dist/scenes/training-transcript.js +204 -0
  340. package/dist/scenes/training.d.ts +10 -0
  341. package/dist/scenes/training.js +134 -0
  342. package/dist/scenes/types.d.ts +1872 -0
  343. package/dist/scenes/types.js +8 -0
  344. package/dist/scenes/visual-audit-contact-sheets.d.ts +6 -0
  345. package/dist/scenes/visual-audit-contact-sheets.js +119 -0
  346. package/dist/scenes/visual-audit-fixtures.d.ts +25 -0
  347. package/dist/scenes/visual-audit-fixtures.js +210 -0
  348. package/dist/scenes/visual-audit-report.d.ts +11 -0
  349. package/dist/scenes/visual-audit-report.js +85 -0
  350. package/dist/scenes/visual-audit-review.d.ts +23 -0
  351. package/dist/scenes/visual-audit-review.js +829 -0
  352. package/dist/scenes/visual-audit-routes.d.ts +13 -0
  353. package/dist/scenes/visual-audit-routes.js +308 -0
  354. package/dist/scenes/visual-audit.d.ts +3 -0
  355. package/dist/scenes/visual-audit.js +596 -0
  356. package/dist/scripts/build-dist.js +154 -40
  357. package/dist/scripts/check-build-warnings.js +42 -53
  358. package/dist/scripts/cleanup-markdown.js +1 -1
  359. package/dist/scripts/cli-test-fixtures.js +24 -28
  360. package/dist/scripts/migrate-journey-csv-to-guarantees.js +140 -0
  361. package/dist/scripts/package-tools.js +12 -1
  362. package/dist/scripts/prepare.js +3 -7
  363. package/dist/scripts/release-verify.js +2 -5
  364. package/dist/scripts/run-fixture-astro-command.js +1 -1
  365. package/dist/scripts/template-catalog.test.js +68 -82
  366. package/dist/scripts/tenant-dev.js +0 -10
  367. package/dist/scripts/test-cloudflare-local.js +1 -1
  368. package/dist/scripts/test-scaffold.js +0 -1
  369. package/dist/scripts/test-smoke.js +3 -3
  370. package/dist/scripts/treeseed-build-dist.js +4 -7
  371. package/dist/scripts/treeseed-release-verify.js +1 -1
  372. package/dist/scripts/verify-driver.js +30 -21
  373. package/dist/scripts/workflow-commands.test.js +18 -27
  374. package/dist/scripts/workspace-command-e2e.js +1 -1
  375. package/dist/scripts/workspace-lint.js +6 -0
  376. package/dist/scripts/workspace-release-test.js +90 -1
  377. package/dist/scripts/workspace-test.js +6 -0
  378. package/dist/sdk-dispatch.d.ts +1 -1
  379. package/dist/sdk-dispatch.js +0 -16
  380. package/dist/sdk-fields.d.ts +1 -1
  381. package/dist/sdk-filters.d.ts +1 -1
  382. package/dist/sdk-types.d.ts +1184 -113
  383. package/dist/sdk-types.js +393 -0
  384. package/dist/sdk.d.ts +74 -79
  385. package/dist/sdk.js +27 -36
  386. package/dist/secrets-capability.d.ts +421 -0
  387. package/dist/secrets-capability.js +530 -0
  388. package/dist/seeds/normalize.js +1 -0
  389. package/dist/seeds/planner.js +38 -0
  390. package/dist/seeds/schema.js +293 -4
  391. package/dist/seeds/types.d.ts +60 -0
  392. package/dist/seeds/types.js +9 -1
  393. package/dist/service-credentials.d.ts +54 -0
  394. package/dist/service-credentials.js +112 -0
  395. package/dist/stores/cursor-store.d.ts +2 -2
  396. package/dist/stores/envelopes.d.ts +1 -1
  397. package/dist/stores/helpers.d.ts +1 -1
  398. package/dist/stores/lease-store.d.ts +2 -2
  399. package/dist/stores/message-store.d.ts +2 -2
  400. package/dist/stores/operational-store.d.ts +3 -26
  401. package/dist/stores/operational-store.js +0 -225
  402. package/dist/stores/project-workflow-store.d.ts +2 -2
  403. package/dist/stores/run-store.d.ts +2 -3
  404. package/dist/stores/run-store.js +0 -98
  405. package/dist/stores/subscription-store.d.ts +2 -3
  406. package/dist/stores/subscription-store.js +0 -100
  407. package/dist/template-catalog.d.ts +1 -1
  408. package/dist/template-launch-requirements.d.ts +2 -2
  409. package/dist/template-launch-ui.d.ts +2 -2
  410. package/dist/treedx/adapters.d.ts +6 -6
  411. package/dist/treedx/client.d.ts +1 -1
  412. package/dist/treedx/errors.d.ts +1 -1
  413. package/dist/treedx/federated-client.d.ts +3 -3
  414. package/dist/treedx/graph-adapter.d.ts +2 -2
  415. package/dist/treedx/index.d.ts +14 -14
  416. package/dist/treedx/market-integration.d.ts +1 -1
  417. package/dist/treedx/ports.d.ts +30 -30
  418. package/dist/treedx/query-adapter.d.ts +3 -3
  419. package/dist/treedx/registry-client.d.ts +2 -2
  420. package/dist/treedx/repository-adapter.d.ts +4 -4
  421. package/dist/treedx/repository-adapter.js +14 -3
  422. package/dist/treedx/sdk-integration.d.ts +3 -3
  423. package/dist/treedx/types.d.ts +2 -2
  424. package/dist/treedx/workspace-adapter.d.ts +2 -2
  425. package/dist/treedx-backends.d.ts +13 -11
  426. package/dist/treedx-backends.js +52 -50
  427. package/dist/treedx-client.d.ts +3 -0
  428. package/dist/treedx-client.js +10 -1
  429. package/dist/treeseed/services/compose.yml +2 -3
  430. package/dist/treeseed/template-catalog/catalog.fixture.json +4 -4
  431. package/dist/types/agents.d.ts +256 -0
  432. package/dist/types/agents.js +42 -1
  433. package/dist/verification.d.ts +1 -0
  434. package/dist/verification.js +143 -14
  435. package/dist/workflow/operations.d.ts +510 -559
  436. package/dist/workflow/operations.js +1891 -1342
  437. package/dist/workflow/policy.js +19 -7
  438. package/dist/workflow/runs.d.ts +9 -3
  439. package/dist/workflow/runs.js +66 -26
  440. package/dist/workflow/session.d.ts +4 -1
  441. package/dist/workflow/session.js +50 -10
  442. package/dist/workflow/worktrees.d.ts +6 -2
  443. package/dist/workflow/worktrees.js +98 -15
  444. package/dist/workflow-state.d.ts +5 -5
  445. package/dist/workflow-state.js +27 -17
  446. package/dist/workflow-support.d.ts +26 -25
  447. package/dist/workflow-support.js +27 -31
  448. package/dist/workflow.d.ts +46 -16
  449. package/dist/workflow.js +19 -7
  450. package/drizzle/d1/0000_treeseed_d1.sql +0 -18
  451. package/drizzle/market/0000_market_control_plane.sql +1793 -1499
  452. package/drizzle/market/0005_agent_capacity_coordination.sql +145 -0
  453. package/drizzle/market/0006_provider_assignment_lifecycle.sql +9 -0
  454. package/drizzle/market/0007_agent_architecture_gap_closure.sql +157 -0
  455. package/drizzle/market/0008_agent_capacity_operational_closure.sql +27 -0
  456. package/drizzle/market/0009_agent_capacity_runtime_hardening.sql +29 -0
  457. package/drizzle/market/0010_secrets_capability_persistence.sql +130 -0
  458. package/drizzle/market/0011_github_app_adapter.sql +47 -0
  459. package/drizzle/market/0012_workday_test_runs.sql +44 -0
  460. package/drizzle/market/0013_runtime_task_lifecycle.sql +39 -0
  461. package/drizzle/market/0014_governance_pipeline.sql +189 -0
  462. package/package.json +75 -18
  463. package/scripts/{verify-driver.mjs → verify-driver.ts} +19 -4
  464. package/templates/github/deploy-web.workflow.yml +12 -8
  465. package/dist/operations/services/mailpit-runtime.d.ts +0 -20
  466. package/dist/operations/services/mailpit-runtime.js +0 -67
  467. package/dist/operations/services/release-candidate.d.ts +0 -60
  468. package/dist/operations/services/release-candidate.js +0 -953
  469. package/dist/scripts/ensure-mailpit.js +0 -48
  470. package/dist/scripts/logs-mailpit.js +0 -2
  471. package/dist/scripts/run-ts.js +0 -45
  472. package/dist/scripts/stop-mailpit.js +0 -5
  473. package/dist/scripts/treeseed-run-ts.js +0 -45
@@ -0,0 +1,37 @@
1
+ import type { SdkDispatchNamespace, SdkDispatchPolicy } from './sdk-types.js';
2
+ import { type TreeseedContentAction, type TreeseedContentModel } from './content-operations.js';
3
+ export type AgentToolExecutionTarget = 'sdk_dispatch' | 'treedx_proxy' | 'treeseed_content' | 'provider_runner';
4
+ export type AgentToolMutability = 'read' | 'content_write' | 'worktree_write' | 'shared_state_write';
5
+ export type AgentToolTelemetryCategory = 'treedx' | 'treeseed' | 'repository' | 'capacity' | 'content';
6
+ export type AgentToolRequirement = 'treedx_proxy_handle' | 'assignment_worktree' | 'sdk_dispatch' | 'provider_runner_git' | 'treedx_writable_workspace' | 'content_access' | 'content_commit';
7
+ export interface AgentToolDispatchMapping {
8
+ namespace: SdkDispatchNamespace;
9
+ operation: string;
10
+ preferredMode?: SdkDispatchPolicy;
11
+ assignmentPreferredMode?: SdkDispatchPolicy;
12
+ }
13
+ export interface AgentToolDefinition {
14
+ id: string;
15
+ title: string;
16
+ description: string;
17
+ inputSchema: Record<string, unknown>;
18
+ outputSchema: Record<string, unknown>;
19
+ executionTarget: AgentToolExecutionTarget;
20
+ mutability: AgentToolMutability;
21
+ telemetryCategory: AgentToolTelemetryCategory;
22
+ requirements: AgentToolRequirement[];
23
+ dispatch?: AgentToolDispatchMapping;
24
+ content?: {
25
+ action: TreeseedContentAction;
26
+ model?: TreeseedContentModel;
27
+ preset?: string;
28
+ };
29
+ }
30
+ export declare const TREESEED_AGENT_TOOL_DEFINITIONS: AgentToolDefinition[];
31
+ export declare function findAgentToolDefinition(id: string | null | undefined): AgentToolDefinition | null;
32
+ export declare function listAgentToolIds(): string[];
33
+ export declare function assertKnownAgentToolIds(ids: string[]): {
34
+ known: string[];
35
+ unknown: string[];
36
+ duplicates: string[];
37
+ };
@@ -0,0 +1,301 @@
1
+ import {
2
+ createTreeseedContentToolPresets,
3
+ genericTreeseedContentInputSchema
4
+ } from "./content-operations.js";
5
+ const EMPTY_OBJECT_SCHEMA = {
6
+ type: "object",
7
+ properties: {},
8
+ additionalProperties: false
9
+ };
10
+ const GENERIC_RESULT_SCHEMA = {
11
+ type: "object",
12
+ additionalProperties: true
13
+ };
14
+ const CONTENT_RESULT_SCHEMA = {
15
+ type: "object",
16
+ properties: {
17
+ ok: { type: "boolean" },
18
+ action: { type: "string" },
19
+ refs: { type: "array", items: { type: "object", additionalProperties: true } },
20
+ changedPaths: { type: "array", items: { type: "string" } },
21
+ diagnostics: { type: "array", items: { type: "object", additionalProperties: true } }
22
+ },
23
+ additionalProperties: true
24
+ };
25
+ function contentRequirements(action) {
26
+ if (action === "commit") return ["treedx_proxy_handle", "treedx_writable_workspace", "content_access", "content_commit"];
27
+ if (action === "create" || action === "update" || action === "link" || action === "validate") {
28
+ return ["treedx_proxy_handle", "treedx_writable_workspace", "content_access"];
29
+ }
30
+ return ["treedx_proxy_handle", "content_access"];
31
+ }
32
+ function contentMutability(action) {
33
+ return action === "describe" || action === "query" || action === "read" ? "read" : "content_write";
34
+ }
35
+ const GENERIC_CONTENT_TOOLS = [
36
+ ["describe", "Describe content model", "Describe TreeSeed content models, fields, relations, and allowed operations."],
37
+ ["query", "Query content", "Query TreeSeed content records through model-aware TreeDX access."],
38
+ ["read", "Read content", "Read a TreeSeed content record through model-aware TreeDX access."],
39
+ ["create", "Create content", "Create a TreeSeed content record using SDK frontmatter and markdown serialization."],
40
+ ["update", "Update content", "Update a TreeSeed content record using SDK frontmatter and markdown serialization."],
41
+ ["link", "Link content", "Create or update TreeSeed content relationships with model-aware validation."],
42
+ ["validate", "Validate content", "Validate a TreeSeed content record before committing it."],
43
+ ["commit", "Commit content workspace", "Commit staged TreeSeed content workspace changes when agent policy permits it."]
44
+ ].map(([action, title, description]) => ({
45
+ id: `treeseed.content.${action}`,
46
+ title,
47
+ description,
48
+ inputSchema: genericTreeseedContentInputSchema(action),
49
+ outputSchema: CONTENT_RESULT_SCHEMA,
50
+ executionTarget: "treeseed_content",
51
+ mutability: contentMutability(action),
52
+ telemetryCategory: "content",
53
+ requirements: contentRequirements(action),
54
+ content: { action }
55
+ }));
56
+ const PRESET_CONTENT_TOOLS = createTreeseedContentToolPresets().map((preset) => ({
57
+ id: preset.id,
58
+ title: preset.title,
59
+ description: preset.description,
60
+ inputSchema: preset.inputSchema,
61
+ outputSchema: CONTENT_RESULT_SCHEMA,
62
+ executionTarget: "treeseed_content",
63
+ mutability: contentMutability(preset.action),
64
+ telemetryCategory: "content",
65
+ requirements: contentRequirements(preset.action),
66
+ content: { action: preset.action, model: preset.model, preset: preset.id }
67
+ }));
68
+ const TREESEED_AGENT_TOOL_DEFINITIONS = [
69
+ {
70
+ id: "treedx.build_context",
71
+ title: "Build TreeDX context",
72
+ description: "Build assignment-scoped TreeDX repository context for a query or path set.",
73
+ inputSchema: {
74
+ type: "object",
75
+ properties: {
76
+ repoId: { type: "string" },
77
+ query: { type: "string" },
78
+ paths: { type: "array", items: { type: "string" } }
79
+ },
80
+ additionalProperties: false
81
+ },
82
+ outputSchema: GENERIC_RESULT_SCHEMA,
83
+ executionTarget: "treedx_proxy",
84
+ mutability: "read",
85
+ telemetryCategory: "treedx",
86
+ requirements: ["treedx_proxy_handle"]
87
+ },
88
+ {
89
+ id: "treedx.read_repository_files",
90
+ title: "Read TreeDX repository files",
91
+ description: "Read repository files through the assignment-scoped TreeDX proxy.",
92
+ inputSchema: {
93
+ type: "object",
94
+ properties: {
95
+ repoId: { type: "string" },
96
+ paths: { type: "array", items: { type: "string" } },
97
+ ref: { type: "string" }
98
+ },
99
+ required: ["paths"],
100
+ additionalProperties: false
101
+ },
102
+ outputSchema: GENERIC_RESULT_SCHEMA,
103
+ executionTarget: "treedx_proxy",
104
+ mutability: "read",
105
+ telemetryCategory: "treedx",
106
+ requirements: ["treedx_proxy_handle"]
107
+ },
108
+ {
109
+ id: "treedx.search_workspace",
110
+ title: "Search TreeDX workspace",
111
+ description: "Search the assignment-scoped TreeDX workspace.",
112
+ inputSchema: {
113
+ type: "object",
114
+ properties: {
115
+ workspaceId: { type: "string" },
116
+ query: { type: "string" }
117
+ },
118
+ required: ["query"],
119
+ additionalProperties: false
120
+ },
121
+ outputSchema: GENERIC_RESULT_SCHEMA,
122
+ executionTarget: "treedx_proxy",
123
+ mutability: "read",
124
+ telemetryCategory: "treedx",
125
+ requirements: ["treedx_proxy_handle"]
126
+ },
127
+ {
128
+ id: "treedx.read_workspace_file",
129
+ title: "Read TreeDX workspace file",
130
+ description: "Read a file from the assignment-scoped TreeDX workspace.",
131
+ inputSchema: {
132
+ type: "object",
133
+ properties: {
134
+ workspaceId: { type: "string" },
135
+ path: { type: "string" }
136
+ },
137
+ required: ["path"],
138
+ additionalProperties: false
139
+ },
140
+ outputSchema: GENERIC_RESULT_SCHEMA,
141
+ executionTarget: "treedx_proxy",
142
+ mutability: "read",
143
+ telemetryCategory: "treedx",
144
+ requirements: ["treedx_proxy_handle"]
145
+ },
146
+ {
147
+ id: "treedx.write_workspace_file",
148
+ title: "Write TreeDX workspace file",
149
+ description: "Write a file through the assignment-scoped TreeDX workspace proxy.",
150
+ inputSchema: {
151
+ type: "object",
152
+ properties: {
153
+ workspaceId: { type: "string" },
154
+ path: { type: "string" },
155
+ content: { type: "string" }
156
+ },
157
+ required: ["path", "content"],
158
+ additionalProperties: false
159
+ },
160
+ outputSchema: GENERIC_RESULT_SCHEMA,
161
+ executionTarget: "treedx_proxy",
162
+ mutability: "content_write",
163
+ telemetryCategory: "treedx",
164
+ requirements: ["treedx_proxy_handle"]
165
+ },
166
+ {
167
+ id: "treedx.commit_workspace",
168
+ title: "Commit TreeDX workspace",
169
+ description: "Commit pending assignment-scoped TreeDX workspace changes.",
170
+ inputSchema: {
171
+ type: "object",
172
+ properties: {
173
+ workspaceId: { type: "string" },
174
+ message: { type: "string" }
175
+ },
176
+ required: ["message"],
177
+ additionalProperties: false
178
+ },
179
+ outputSchema: GENERIC_RESULT_SCHEMA,
180
+ executionTarget: "treedx_proxy",
181
+ mutability: "content_write",
182
+ telemetryCategory: "treedx",
183
+ requirements: ["treedx_proxy_handle"]
184
+ },
185
+ {
186
+ id: "treeseed.status",
187
+ title: "TreeSeed status",
188
+ description: "Inspect TreeSeed workspace and runtime status through SDK dispatch.",
189
+ inputSchema: EMPTY_OBJECT_SCHEMA,
190
+ outputSchema: GENERIC_RESULT_SCHEMA,
191
+ executionTarget: "sdk_dispatch",
192
+ mutability: "read",
193
+ telemetryCategory: "treeseed",
194
+ requirements: ["sdk_dispatch"],
195
+ dispatch: {
196
+ namespace: "workflow",
197
+ operation: "status",
198
+ preferredMode: "prefer_local",
199
+ assignmentPreferredMode: "auto"
200
+ }
201
+ },
202
+ {
203
+ id: "treeseed.dev_plan",
204
+ title: "TreeSeed dev plan",
205
+ description: "Inspect the local development plan without starting services.",
206
+ inputSchema: {
207
+ type: "object",
208
+ properties: {
209
+ webRuntime: { type: "string" },
210
+ app: { type: "string" }
211
+ },
212
+ additionalProperties: false
213
+ },
214
+ outputSchema: GENERIC_RESULT_SCHEMA,
215
+ executionTarget: "sdk_dispatch",
216
+ mutability: "read",
217
+ telemetryCategory: "treeseed",
218
+ requirements: ["sdk_dispatch"],
219
+ dispatch: {
220
+ namespace: "workflow",
221
+ operation: "dev",
222
+ preferredMode: "prefer_local",
223
+ assignmentPreferredMode: "prefer_local"
224
+ }
225
+ },
226
+ {
227
+ id: "treeseed.changed_paths",
228
+ title: "Changed paths",
229
+ description: "Inspect changed paths in the assignment worktree.",
230
+ inputSchema: {
231
+ type: "object",
232
+ properties: {
233
+ includeDiffSummary: { type: "boolean" }
234
+ },
235
+ additionalProperties: false
236
+ },
237
+ outputSchema: GENERIC_RESULT_SCHEMA,
238
+ executionTarget: "provider_runner",
239
+ mutability: "read",
240
+ telemetryCategory: "repository",
241
+ requirements: ["assignment_worktree", "provider_runner_git"]
242
+ },
243
+ {
244
+ id: "treeseed.verify",
245
+ title: "TreeSeed verify",
246
+ description: "Run assignment-scoped verification through SDK dispatch.",
247
+ inputSchema: {
248
+ type: "object",
249
+ properties: {
250
+ commands: { type: "array", items: { type: "string" } },
251
+ reason: { type: "string" }
252
+ },
253
+ additionalProperties: false
254
+ },
255
+ outputSchema: GENERIC_RESULT_SCHEMA,
256
+ executionTarget: "sdk_dispatch",
257
+ mutability: "worktree_write",
258
+ telemetryCategory: "treeseed",
259
+ requirements: ["sdk_dispatch", "assignment_worktree"],
260
+ dispatch: {
261
+ namespace: "workflow",
262
+ operation: "test",
263
+ preferredMode: "prefer_local",
264
+ assignmentPreferredMode: "prefer_local"
265
+ }
266
+ },
267
+ ...GENERIC_CONTENT_TOOLS,
268
+ ...PRESET_CONTENT_TOOLS
269
+ ];
270
+ const AGENT_TOOL_INDEX = new Map(TREESEED_AGENT_TOOL_DEFINITIONS.map((definition) => [definition.id, definition]));
271
+ function findAgentToolDefinition(id) {
272
+ return id ? AGENT_TOOL_INDEX.get(id) ?? null : null;
273
+ }
274
+ function listAgentToolIds() {
275
+ return TREESEED_AGENT_TOOL_DEFINITIONS.map((definition) => definition.id);
276
+ }
277
+ function assertKnownAgentToolIds(ids) {
278
+ const seen = /* @__PURE__ */ new Set();
279
+ const known = [];
280
+ const unknown = [];
281
+ const duplicates = [];
282
+ for (const id of ids) {
283
+ if (seen.has(id)) {
284
+ duplicates.push(id);
285
+ continue;
286
+ }
287
+ seen.add(id);
288
+ if (AGENT_TOOL_INDEX.has(id)) {
289
+ known.push(id);
290
+ } else {
291
+ unknown.push(id);
292
+ }
293
+ }
294
+ return { known, unknown, duplicates };
295
+ }
296
+ export {
297
+ TREESEED_AGENT_TOOL_DEFINITIONS,
298
+ assertKnownAgentToolIds,
299
+ findAgentToolDefinition,
300
+ listAgentToolIds
301
+ };
package/dist/api/app.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Hono } from 'hono';
2
- import type { ApiServerOptions, AppVariables } from './types.ts';
2
+ import type { ApiServerOptions, AppVariables } from './types.js';
3
3
  export declare function createTreeseedApiRouter(options?: ApiServerOptions): Hono<{
4
4
  Variables: AppVariables;
5
5
  }, import("hono/types").BlankSchema, "/">;
@@ -1,3 +1,3 @@
1
- import type { D1DatabaseLike } from '../../types/cloudflare.ts';
2
- import type { ApiConfig } from '../types.ts';
1
+ import type { D1DatabaseLike } from '../../types/cloudflare.js';
2
+ import type { ApiConfig } from '../types.js';
3
3
  export declare function resolveApiD1Database(config: ApiConfig): D1DatabaseLike;
@@ -1,5 +1,5 @@
1
- import type { D1DatabaseLike } from '../../types/cloudflare.ts';
2
- import type { ApiAuthProvider, ApiConfig, ApiCredential, ApiPrincipal, DeviceCodeApproveRequest, DeviceCodePollRequest, DeviceCodePollResponse, DeviceCodeStartRequest, DeviceCodeStartResponse, TokenRefreshRequest, TokenRefreshResponse, TrustedUserAssertionClaims, UserIdentityProfileInput } from '../types.ts';
1
+ import type { D1DatabaseLike } from '../../types/cloudflare.js';
2
+ import type { ApiAuthProvider, ApiConfig, ApiCredential, ApiPrincipal, DeviceCodeApproveRequest, DeviceCodePollRequest, DeviceCodePollResponse, DeviceCodeStartRequest, DeviceCodeStartResponse, TokenRefreshRequest, TokenRefreshResponse, TrustedUserAssertionClaims, UserIdentityProfileInput } from '../types.js';
3
3
  export declare class D1AuthProvider implements ApiAuthProvider {
4
4
  private readonly config;
5
5
  readonly id = "d1";
@@ -69,8 +69,8 @@ export declare class D1AuthProvider implements ApiAuthProvider {
69
69
  name: string;
70
70
  roles?: string[];
71
71
  permissions?: string[];
72
- }): Promise<import("./d1-store.ts").ServiceCredentialResult>;
73
- rotateServiceToken(serviceId: string): Promise<import("./d1-store.ts").ServiceCredentialResult>;
72
+ }): Promise<import("./d1-store.js").ServiceCredentialResult>;
73
+ rotateServiceToken(serviceId: string): Promise<import("./d1-store.js").ServiceCredentialResult>;
74
74
  createTrustedUserAssertion(claims: TrustedUserAssertionClaims): string;
75
75
  verifyTrustedUserAssertion(assertion: string): TrustedUserAssertionClaims | null;
76
76
  exchangeTrustedUserAssertion(claims: TrustedUserAssertionClaims): Promise<{
@@ -1,5 +1,5 @@
1
- import type { D1DatabaseLike } from '../../types/cloudflare.ts';
2
- import type { ApiConfig, ApiCredential, ApiPrincipal, DeviceCodeApproveRequest, DeviceCodePollRequest, DeviceCodePollResponse, DeviceCodeStartRequest, DeviceCodeStartResponse, TokenRefreshRequest, TokenRefreshResponse, TrustedUserAssertionClaims, UserIdentityProfileInput } from '../types.ts';
1
+ import type { D1DatabaseLike } from '../../types/cloudflare.js';
2
+ import type { ApiConfig, ApiCredential, ApiPrincipal, DeviceCodeApproveRequest, DeviceCodePollRequest, DeviceCodePollResponse, DeviceCodeStartRequest, DeviceCodeStartResponse, TokenRefreshRequest, TokenRefreshResponse, TrustedUserAssertionClaims, UserIdentityProfileInput } from '../types.js';
3
3
  type PrincipalRecord = {
4
4
  principal: ApiPrincipal;
5
5
  userId: string;
@@ -1,4 +1,4 @@
1
- import type { ApiAuthProvider, ApiConfig, ApiPrincipal, DeviceCodeApproveRequest, DeviceCodePollRequest, DeviceCodePollResponse, DeviceCodeStartRequest, DeviceCodeStartResponse, TokenRefreshRequest, TokenRefreshResponse, TrustedUserAssertionClaims, UserIdentityProfileInput } from '../types.ts';
1
+ import type { ApiAuthProvider, ApiConfig, ApiPrincipal, DeviceCodeApproveRequest, DeviceCodePollRequest, DeviceCodePollResponse, DeviceCodeStartRequest, DeviceCodeStartResponse, TokenRefreshRequest, TokenRefreshResponse, TrustedUserAssertionClaims, UserIdentityProfileInput } from '../types.js';
2
2
  export declare class MemoryDeviceCodeAuthProvider implements ApiAuthProvider {
3
3
  private readonly config;
4
4
  readonly id = "memory";
@@ -1,4 +1,4 @@
1
- import type { ApiPrincipal } from '../types.ts';
1
+ import type { ApiPrincipal } from '../types.js';
2
2
  export interface AccessTokenPayload {
3
3
  sub: string;
4
4
  displayName?: string;
@@ -1,2 +1,4 @@
1
- import type { ApiConfig } from './types.ts';
1
+ import type { ApiConfig } from './types.js';
2
+ export declare function resolveLocalApiDatabaseUrl(env?: NodeJS.ProcessEnv): string;
3
+ export declare function resolveApiDatabaseUrl(env?: NodeJS.ProcessEnv, baseUrl?: string): string | undefined;
2
4
  export declare function resolveApiConfig(env?: NodeJS.ProcessEnv): ApiConfig;
@@ -3,6 +3,10 @@ import { resolve } from "node:path";
3
3
  const LOCAL_DEV_AUTH_TTL_SECONDS = 365 * 24 * 60 * 60;
4
4
  const DEFAULT_AUTH_TTL_SECONDS = 15 * 60;
5
5
  const DEFAULT_REFRESH_TTL_SECONDS = 7 * 24 * 60 * 60;
6
+ const DEFAULT_LOCAL_API_DATABASE_PORT = "54329";
7
+ const DEFAULT_LOCAL_API_DATABASE_NAME = "treeseed_api";
8
+ const DEFAULT_LOCAL_API_DATABASE_USER = "treeseed";
9
+ const DEFAULT_LOCAL_API_DATABASE_PASSWORD = "treeseed-local-dev";
6
10
  function parseInteger(value, fallback) {
7
11
  if (!value) return fallback;
8
12
  const parsed = Number.parseInt(value, 10);
@@ -35,6 +39,23 @@ function firstEnvValue(env, ...keys) {
35
39
  }
36
40
  return void 0;
37
41
  }
42
+ function encodeDatabaseUrlPart(value) {
43
+ return encodeURIComponent(value);
44
+ }
45
+ function resolveLocalApiDatabaseUrl(env = process.env) {
46
+ const port = firstEnvValue(env, "TREESEED_MARKET_LOCAL_POSTGRES_PORT", "TREESEED_API_LOCAL_POSTGRES_PORT") || DEFAULT_LOCAL_API_DATABASE_PORT;
47
+ const database = firstEnvValue(env, "TREESEED_MARKET_LOCAL_POSTGRES_DATABASE", "TREESEED_API_LOCAL_POSTGRES_DATABASE") || DEFAULT_LOCAL_API_DATABASE_NAME;
48
+ const user = firstEnvValue(env, "TREESEED_MARKET_LOCAL_POSTGRES_USER", "TREESEED_API_LOCAL_POSTGRES_USER") || DEFAULT_LOCAL_API_DATABASE_USER;
49
+ const password = firstEnvValue(env, "TREESEED_MARKET_LOCAL_POSTGRES_PASSWORD", "TREESEED_API_LOCAL_POSTGRES_PASSWORD") || DEFAULT_LOCAL_API_DATABASE_PASSWORD;
50
+ return `postgres://${encodeDatabaseUrlPart(user)}:${encodeDatabaseUrlPart(password)}@127.0.0.1:${port}/${encodeDatabaseUrlPart(database)}`;
51
+ }
52
+ function resolveApiDatabaseUrl(env = process.env, baseUrl) {
53
+ const explicit = firstEnvValue(env, "TREESEED_DATABASE_URL");
54
+ if (explicit) return explicit;
55
+ const environment = firstEnvValue(env, "TREESEED_API_ENVIRONMENT", "TREESEED_ENVIRONMENT");
56
+ const localMode = env.TREESEED_LOCAL_DEV_MODE !== void 0 || environment === "local" || (baseUrl ? isLoopbackUrl(baseUrl) : false);
57
+ return localMode ? resolveLocalApiDatabaseUrl(env) : void 0;
58
+ }
38
59
  function resolveBaseUrl(env, host, port) {
39
60
  if (env.TREESEED_API_BASE_URL?.trim()) {
40
61
  return normalizeUrl(env.TREESEED_API_BASE_URL.trim());
@@ -45,7 +66,7 @@ function resolveBaseUrl(env, host, port) {
45
66
  return normalizeUrl(`http://${host}:${port}`);
46
67
  }
47
68
  function resolveAuthApprovalBaseUrl(env, baseUrl) {
48
- const explicit = env.TREESEED_API_AUTH_APPROVAL_BASE_URL?.trim() || env.TREESEED_SITE_URL?.trim() || env.BETTER_AUTH_URL?.trim();
69
+ const explicit = env.TREESEED_API_AUTH_APPROVAL_BASE_URL?.trim() || env.TREESEED_SITE_URL?.trim() || env.TREESEED_BETTER_AUTH_URL?.trim();
49
70
  const explicitIsLoopback = explicit ? isLoopbackUrl(explicit) : false;
50
71
  try {
51
72
  const url = new URL(baseUrl);
@@ -92,14 +113,15 @@ function resolveApiConfig(env = process.env) {
92
113
  projectApiKey: env.TREESEED_API_PROJECT_KEY?.trim() || void 0,
93
114
  projectApiLabel: env.TREESEED_API_PROJECT_LABEL?.trim() || "Project API Key",
94
115
  projectApiPermissions: parseCsv(env.TREESEED_API_PROJECT_KEY_PERMISSIONS).length > 0 ? parseCsv(env.TREESEED_API_PROJECT_KEY_PERMISSIONS) : ["sdk:execute:global", "agent:execute:global", "operations:execute:global"],
95
- cloudflareAccountId: env.CLOUDFLARE_ACCOUNT_ID?.trim() || void 0,
96
- cloudflareApiToken: env.CLOUDFLARE_API_TOKEN?.trim() || void 0,
116
+ cloudflareAccountId: env.TREESEED_CLOUDFLARE_ACCOUNT_ID?.trim() || void 0,
117
+ cloudflareApiToken: env.TREESEED_CLOUDFLARE_API_TOKEN?.trim() || void 0,
118
+ apiDatabaseUrl: resolveApiDatabaseUrl(env, baseUrl),
97
119
  d1DatabaseId: env.TREESEED_API_D1_DATABASE_ID?.trim() || void 0,
98
120
  d1DatabaseName: env.TREESEED_API_D1_DATABASE_NAME?.trim() || env.SITE_DATA_DB?.trim() || void 0,
99
121
  d1LocalPersistTo: env.TREESEED_API_D1_LOCAL_PERSIST_TO?.trim() || resolve(repoRoot, ".wrangler/state/v3/d1"),
100
122
  d1WranglerConfigPath: resolveLocalWranglerConfigPath(repoRoot, env),
101
- webServiceId: firstEnvValue(env, "TREESEED_API_WEB_SERVICE_ID", "TREESEED_WEB_SERVICE_ID") || "web",
102
- webServiceSecret: firstEnvValue(env, "TREESEED_API_WEB_SERVICE_SECRET", "TREESEED_WEB_SERVICE_SECRET") || "treeseed-web-service-dev-secret",
123
+ webServiceId: firstEnvValue(env, "TREESEED_WEB_SERVICE_ID", "TREESEED_API_WEB_SERVICE_ID") || "web",
124
+ webServiceSecret: firstEnvValue(env, "TREESEED_WEB_SERVICE_SECRET", "TREESEED_API_WEB_SERVICE_SECRET") || "treeseed-web-service-dev-secret",
103
125
  webAssertionSecret: firstEnvValue(env, "TREESEED_API_WEB_ASSERTION_SECRET", "TREESEED_WEB_ASSERTION_SECRET", "TREESEED_API_AUTH_SECRET") || "treeseed-web-assertion-dev-secret",
104
126
  webExchangeTtlSeconds: parseInteger(env.TREESEED_API_WEB_EXCHANGE_TTL, 300),
105
127
  bootstrapAdminAllowlist: parseCsv(env.TREESEED_API_BOOTSTRAP_ADMIN_ALLOWLIST),
@@ -111,15 +133,17 @@ function resolveApiConfig(env = process.env) {
111
133
  providers: {
112
134
  auth: env.TREESEED_API_PROVIDER_AUTH?.trim() || "d1",
113
135
  agents: {
114
- execution: env.TREESEED_API_PROVIDER_AGENT_EXECUTION?.trim() || "stub",
136
+ execution: env.TREESEED_API_PROVIDER_AGENT_EXECUTION?.trim() || "codex",
115
137
  queue: env.TREESEED_API_PROVIDER_AGENT_QUEUE?.trim() || "memory",
116
- notification: env.TREESEED_API_PROVIDER_AGENT_NOTIFICATION?.trim() || "stub",
117
- repository: env.TREESEED_API_PROVIDER_AGENT_REPOSITORY?.trim() || "stub",
118
- verification: env.TREESEED_API_PROVIDER_AGENT_VERIFICATION?.trim() || "stub"
138
+ notification: env.TREESEED_API_PROVIDER_AGENT_NOTIFICATION?.trim() || "sdk_message",
139
+ repository: env.TREESEED_API_PROVIDER_AGENT_REPOSITORY?.trim() || "git",
140
+ verification: env.TREESEED_API_PROVIDER_AGENT_VERIFICATION?.trim() || "local"
119
141
  }
120
142
  }
121
143
  };
122
144
  }
123
145
  export {
124
- resolveApiConfig
146
+ resolveApiConfig,
147
+ resolveApiDatabaseUrl,
148
+ resolveLocalApiDatabaseUrl
125
149
  };
@@ -1,6 +1,6 @@
1
1
  import type { Context } from 'hono';
2
- import type { ApiPrincipal, ApiScope } from '../remote.ts';
3
- import type { AppVariables } from './types.ts';
2
+ import type { ApiPrincipal, ApiScope } from '../remote.js';
3
+ import type { AppVariables } from './types.js';
4
4
  export type ApiContext = Context<{
5
5
  Variables: AppVariables;
6
6
  }>;
@@ -1,10 +1,10 @@
1
- export { createTreeseedApiApp, createTreeseedApiRouter } from './app.ts';
2
- export { resolveApiConfig } from './config.ts';
3
- export { createRailwayTreeseedApiServer, createTreeseedNodeServer } from './railway.ts';
4
- export { resolveApiRuntimeProviders } from './providers.ts';
5
- export { resolveApiD1Database } from './auth/d1-database.ts';
6
- export { loadTemplateCatalog } from './templates.ts';
7
- export { MemoryDeviceCodeAuthProvider } from './auth/memory-provider.ts';
8
- export { D1AuthProvider } from './auth/d1-provider.ts';
9
- export { bearerTokenFromRequest, jsonError, requireActorType, requireAuthentication, requirePermission, requireScope } from './http.ts';
10
- export type * from './types.ts';
1
+ export { createTreeseedApiApp, createTreeseedApiRouter } from './app.js';
2
+ export { resolveApiConfig, resolveApiDatabaseUrl, resolveLocalApiDatabaseUrl } from './config.js';
3
+ export { createRailwayTreeseedApiServer, createTreeseedNodeServer } from './railway.js';
4
+ export { resolveApiRuntimeProviders } from './providers.js';
5
+ export { resolveApiD1Database } from './auth/d1-database.js';
6
+ export { loadTemplateCatalog } from './templates.js';
7
+ export { MemoryDeviceCodeAuthProvider } from './auth/memory-provider.js';
8
+ export { D1AuthProvider } from './auth/d1-provider.js';
9
+ export { bearerTokenFromRequest, jsonError, requireActorType, requireAuthentication, requirePermission, requireScope } from './http.js';
10
+ export type * from './types.js';
package/dist/api/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { createTreeseedApiApp, createTreeseedApiRouter } from "./app.js";
2
- import { resolveApiConfig } from "./config.js";
2
+ import { resolveApiConfig, resolveApiDatabaseUrl, resolveLocalApiDatabaseUrl } from "./config.js";
3
3
  import { createRailwayTreeseedApiServer, createTreeseedNodeServer } from "./railway.js";
4
4
  import { resolveApiRuntimeProviders } from "./providers.js";
5
5
  import { resolveApiD1Database } from "./auth/d1-database.js";
@@ -23,5 +23,7 @@ export {
23
23
  requireScope,
24
24
  resolveApiConfig,
25
25
  resolveApiD1Database,
26
- resolveApiRuntimeProviders
26
+ resolveApiDatabaseUrl,
27
+ resolveApiRuntimeProviders,
28
+ resolveLocalApiDatabaseUrl
27
29
  };
@@ -1,7 +1,7 @@
1
1
  import type { Hono } from 'hono';
2
- import type { AgentSdk } from '../sdk.ts';
3
- import { executeHttpWorkflowOperation } from './operations.ts';
4
- import type { ApiConfig } from './types.ts';
2
+ import type { AgentSdk } from '../sdk.js';
3
+ import { executeHttpWorkflowOperation } from './operations.js';
4
+ import type { ApiConfig } from './types.js';
5
5
  export declare function registerOperationRoutes(app: Hono<any>, options: {
6
6
  config: ApiConfig;
7
7
  scope: string;
@@ -1,3 +1,3 @@
1
- import type { ApiWorkflowOperationResponse, WorkflowHttpOperationRequest } from './types.ts';
1
+ import type { ApiWorkflowOperationResponse, WorkflowHttpOperationRequest } from './types.js';
2
2
  export declare function isHttpWorkflowOperationAllowed(operation: string): boolean;
3
3
  export declare function executeHttpWorkflowOperation(operation: string, request: WorkflowHttpOperationRequest): Promise<ApiWorkflowOperationResponse>;
@@ -1,2 +1,2 @@
1
- import type { ApiConfig, ApiRuntimeProviders, ResolvedApiRuntimeProviders } from './types.ts';
1
+ import type { ApiConfig, ApiRuntimeProviders, ResolvedApiRuntimeProviders } from './types.js';
2
2
  export declare function resolveApiRuntimeProviders(config: ApiConfig, overrides?: ApiRuntimeProviders): ResolvedApiRuntimeProviders;
@@ -34,11 +34,28 @@ function resolveApiRuntimeProviders(config, overrides = {}) {
34
34
  }, { db: resolveApiD1Database(runtimeConfig) })
35
35
  }, "auth");
36
36
  addProviders(authRegistry, overrides.auth, "auth");
37
- addProviders(agentExecution, { stub: { id: "stub" } }, "agent execution");
37
+ addProviders(agentExecution, {
38
+ codex: { id: "codex" },
39
+ codex_subscription: { id: "codex_subscription" },
40
+ copilot: { id: "copilot" },
41
+ jira: { id: "jira" },
42
+ jira_issue_queue: { id: "jira_issue_queue" },
43
+ human_issue_queue: { id: "human_issue_queue" },
44
+ github_issues: { id: "github_issues" },
45
+ github_issue_queue: { id: "github_issue_queue" },
46
+ issue_queue: { id: "issue_queue" },
47
+ discord: { id: "discord" },
48
+ discord_thread: { id: "discord_thread" },
49
+ workflow: { id: "workflow" },
50
+ workflow_operation: { id: "workflow_operation" },
51
+ deterministic_workflow: { id: "deterministic_workflow" },
52
+ github_actions: { id: "github_actions" },
53
+ github_actions_workflow: { id: "github_actions_workflow" }
54
+ }, "agent execution");
38
55
  addProviders(agentQueue, { memory: { id: "memory" } }, "agent queue");
39
- addProviders(agentNotification, { stub: { id: "stub" } }, "agent notification");
40
- addProviders(agentRepository, { stub: { id: "stub" } }, "agent repository");
41
- addProviders(agentVerification, { stub: { id: "stub" } }, "agent verification");
56
+ addProviders(agentNotification, { sdk_message: { id: "sdk_message" } }, "agent notification");
57
+ addProviders(agentRepository, { git: { id: "git" } }, "agent repository");
58
+ addProviders(agentVerification, { local: { id: "local" } }, "agent verification");
42
59
  addProviders(agentExecution, overrides.agentExecution, "agent execution");
43
60
  addProviders(agentQueue, overrides.agentQueue, "agent queue");
44
61
  addProviders(agentNotification, overrides.agentNotification, "agent notification");
@@ -1,9 +1,9 @@
1
1
  import { type Server } from 'node:http';
2
2
  import type { Hono } from 'hono';
3
- import type { ApiServerOptions } from './types.ts';
3
+ import type { ApiServerOptions } from './types.js';
4
4
  export declare function createTreeseedNodeServer(options?: ApiServerOptions): Promise<{
5
5
  app: Hono<{
6
- Variables: import("./types.ts").AppVariables;
6
+ Variables: import("./types.js").AppVariables;
7
7
  }, import("hono/types").BlankSchema, "/">;
8
8
  config: {
9
9
  providers: {
@@ -30,6 +30,7 @@ export declare function createTreeseedNodeServer(options?: ApiServerOptions): Pr
30
30
  projectApiPermissions: string[];
31
31
  cloudflareAccountId?: string;
32
32
  cloudflareApiToken?: string;
33
+ apiDatabaseUrl?: string;
33
34
  d1DatabaseId?: string;
34
35
  d1DatabaseName?: string;
35
36
  d1LocalPersistTo?: string;
@@ -1,6 +1,6 @@
1
- import type { RemoteSdkOperationRequest } from '../remote.ts';
2
- import type { AgentSdk } from '../sdk.ts';
3
- import { executeSdkOperation, findSdkOperation, listSdkOperationNames } from '../sdk-dispatch.ts';
4
- import type { ApiConfig } from './types.ts';
1
+ import type { RemoteSdkOperationRequest } from '../remote.js';
2
+ import type { AgentSdk } from '../sdk.js';
3
+ import { executeSdkOperation, findSdkOperation, listSdkOperationNames } from '../sdk-dispatch.js';
4
+ import type { ApiConfig } from './types.js';
5
5
  export { executeSdkOperation, findSdkOperation, listSdkOperationNames, };
6
6
  export declare function resolveSdkInstance(sharedSdk: AgentSdk | undefined, config: ApiConfig, request: RemoteSdkOperationRequest): AgentSdk;
@@ -1,6 +1,6 @@
1
1
  import type { Hono } from 'hono';
2
- import type { AgentSdk } from '../sdk.ts';
3
- import type { ApiConfig } from './types.ts';
2
+ import type { AgentSdk } from '../sdk.js';
3
+ import type { ApiConfig } from './types.js';
4
4
  interface RegisterSdkRoutesOptions {
5
5
  config: ApiConfig;
6
6
  sharedSdk?: AgentSdk;
@@ -1,3 +1,3 @@
1
- import type { SdkTemplateCatalogResponse } from '../sdk-types.ts';
2
- import type { ApiConfig } from './types.ts';
1
+ import type { SdkTemplateCatalogResponse } from '../sdk-types.js';
2
+ import type { ApiConfig } from './types.js';
3
3
  export declare function loadTemplateCatalog(config: ApiConfig): SdkTemplateCatalogResponse;