@treeseed/sdk 0.10.28 → 0.12.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (509) hide show
  1. package/README.md +213 -7
  2. package/dist/agent-capacity.d.ts +916 -0
  3. package/dist/agent-capacity.js +1600 -0
  4. package/dist/agent-tools.d.ts +37 -0
  5. package/dist/agent-tools.js +301 -0
  6. package/dist/api/app.d.ts +1 -1
  7. package/dist/api/auth/d1-database.d.ts +2 -2
  8. package/dist/api/auth/d1-provider.d.ts +4 -4
  9. package/dist/api/auth/d1-store.d.ts +2 -2
  10. package/dist/api/auth/memory-provider.d.ts +1 -1
  11. package/dist/api/auth/tokens.d.ts +1 -1
  12. package/dist/api/config.d.ts +3 -1
  13. package/dist/api/config.js +34 -10
  14. package/dist/api/http.d.ts +2 -2
  15. package/dist/api/index.d.ts +10 -10
  16. package/dist/api/index.js +4 -2
  17. package/dist/api/operations-routes.d.ts +3 -3
  18. package/dist/api/operations.d.ts +1 -1
  19. package/dist/api/providers.d.ts +1 -1
  20. package/dist/api/providers.js +21 -4
  21. package/dist/api/railway.d.ts +3 -2
  22. package/dist/api/sdk-dispatch.d.ts +4 -4
  23. package/dist/api/sdk-routes.d.ts +2 -2
  24. package/dist/api/templates.d.ts +2 -2
  25. package/dist/api/types.d.ts +3 -2
  26. package/dist/capacity-provider.d.ts +118 -59
  27. package/dist/capacity-provider.js +235 -43
  28. package/dist/capacity.d.ts +2 -2
  29. package/dist/cli-tools.d.ts +1 -1
  30. package/dist/content-operations.d.ts +97 -0
  31. package/dist/content-operations.js +250 -0
  32. package/dist/content-store.d.ts +4 -4
  33. package/dist/control-plane-client.d.ts +13 -18
  34. package/dist/control-plane-client.js +8 -86
  35. package/dist/control-plane.d.ts +3 -2
  36. package/dist/control-plane.js +38 -13
  37. package/dist/copilot.d.ts +3 -0
  38. package/dist/copilot.js +16 -1
  39. package/dist/d1-http.d.ts +1 -1
  40. package/dist/d1-store.d.ts +32 -57
  41. package/dist/d1-store.js +115 -318
  42. package/dist/db/d1.d.ts +1 -232
  43. package/dist/db/index.d.ts +3 -3
  44. package/dist/db/market-schema.d.ts +50900 -11018
  45. package/dist/db/market-schema.js +2313 -467
  46. package/dist/db/node-sqlite.d.ts +1 -232
  47. package/dist/db/node-sqlite.js +7 -2
  48. package/dist/db/schema.d.ts +0 -462
  49. package/dist/db/schema.js +2 -22
  50. package/dist/dispatch.d.ts +1 -1
  51. package/dist/dispatch.js +0 -11
  52. package/dist/fixture-support.js +52 -4
  53. package/dist/governance.d.ts +133 -0
  54. package/dist/governance.js +285 -0
  55. package/dist/graph/build.d.ts +2 -2
  56. package/dist/graph/context-query-contracts.d.ts +1 -1
  57. package/dist/graph/dsl.d.ts +1 -1
  58. package/dist/graph/query.d.ts +4 -4
  59. package/dist/graph/ranking.d.ts +1 -1
  60. package/dist/graph/schema.d.ts +1 -1
  61. package/dist/graph.d.ts +11 -11
  62. package/dist/guarantees/index.d.ts +425 -0
  63. package/dist/guarantees/index.js +1146 -0
  64. package/dist/hosting/apps.d.ts +12 -0
  65. package/dist/hosting/apps.js +107 -0
  66. package/dist/hosting/builtins.d.ts +25 -0
  67. package/dist/hosting/builtins.js +602 -0
  68. package/dist/hosting/contracts.d.ts +208 -0
  69. package/dist/hosting/contracts.js +0 -0
  70. package/dist/hosting/graph.d.ts +195 -0
  71. package/dist/hosting/graph.js +1092 -0
  72. package/dist/hosting/index.d.ts +4 -0
  73. package/dist/hosting/index.js +4 -0
  74. package/dist/index.d.ts +88 -67
  75. package/dist/index.js +142 -14
  76. package/dist/local-dev/managed-dev.d.ts +85 -0
  77. package/dist/local-dev/managed-dev.js +368 -0
  78. package/dist/managed-dependencies.d.ts +9 -0
  79. package/dist/managed-dependencies.js +10 -9
  80. package/dist/market-client.d.ts +327 -9
  81. package/dist/market-client.js +464 -20
  82. package/dist/model-registry.d.ts +1 -1
  83. package/dist/model-registry.js +19 -19
  84. package/dist/operations/agent-tools.d.ts +2 -11
  85. package/dist/operations/agent-tools.js +2 -14
  86. package/dist/operations/providers/default.d.ts +1 -1
  87. package/dist/operations/providers/default.js +20 -37
  88. package/dist/operations/repository-operations.d.ts +26 -2
  89. package/dist/operations/repository-operations.js +159 -1
  90. package/dist/operations/runtime.d.ts +3 -3
  91. package/dist/operations/services/bootstrap-runner.d.ts +4 -2
  92. package/dist/operations/services/bootstrap-runner.js +22 -2
  93. package/dist/operations/services/build-warning-policy.d.ts +34 -0
  94. package/dist/operations/services/build-warning-policy.js +81 -82
  95. package/dist/operations/services/commit-message-provider.js +4 -4
  96. package/dist/operations/services/config-runtime.d.ts +83 -24
  97. package/dist/operations/services/config-runtime.js +449 -130
  98. package/dist/operations/services/deploy.d.ts +106 -624
  99. package/dist/operations/services/deploy.js +746 -263
  100. package/dist/operations/services/deployment-readiness.d.ts +30 -0
  101. package/dist/operations/services/deployment-readiness.js +206 -0
  102. package/dist/operations/services/git-remote-policy.js +12 -4
  103. package/dist/operations/services/git-runner.d.ts +66 -0
  104. package/dist/operations/services/git-runner.js +479 -0
  105. package/dist/operations/services/git-workflow.d.ts +45 -6
  106. package/dist/operations/services/git-workflow.js +251 -23
  107. package/dist/operations/services/github-actions-verification.d.ts +4 -1
  108. package/dist/operations/services/github-actions-verification.js +12 -3
  109. package/dist/operations/services/github-api.js +22 -6
  110. package/dist/operations/services/github-automation.d.ts +4 -4
  111. package/dist/operations/services/github-automation.js +19 -21
  112. package/dist/operations/services/github-credentials.d.ts +13 -0
  113. package/dist/operations/services/github-credentials.js +59 -0
  114. package/dist/operations/services/hosted-service-checks.d.ts +81 -0
  115. package/dist/operations/services/hosted-service-checks.js +478 -0
  116. package/dist/operations/services/hosting-audit.d.ts +2 -2
  117. package/dist/operations/services/hosting-audit.js +7 -7
  118. package/dist/operations/services/hub-launch.d.ts +1 -1
  119. package/dist/operations/services/hub-provider-launch.d.ts +5 -5
  120. package/dist/operations/services/hub-provider-launch.js +22 -17
  121. package/dist/operations/services/live-hosted-service-checks.d.ts +26 -0
  122. package/dist/operations/services/live-hosted-service-checks.js +463 -0
  123. package/dist/operations/services/local-dev.js +0 -1
  124. package/dist/operations/services/managed-host-security.d.ts +1 -1
  125. package/dist/operations/services/managed-host-security.js +1 -1
  126. package/dist/operations/services/managed-repositories.d.ts +37 -0
  127. package/dist/operations/services/managed-repositories.js +177 -0
  128. package/dist/operations/services/operations-runner-smoke.d.ts +31 -0
  129. package/dist/operations/services/operations-runner-smoke.js +198 -0
  130. package/dist/operations/services/package-adapters.d.ts +170 -0
  131. package/dist/operations/services/package-adapters.js +859 -0
  132. package/dist/operations/services/package-reference-policy.d.ts +13 -88
  133. package/dist/operations/services/package-reference-policy.js +96 -215
  134. package/dist/operations/services/project-host-operations.d.ts +4 -4
  135. package/dist/operations/services/project-platform.d.ts +57 -173
  136. package/dist/operations/services/project-platform.js +80 -111
  137. package/dist/operations/services/project-web-monitor.d.ts +2 -2
  138. package/dist/operations/services/project-web-monitor.js +122 -5
  139. package/dist/operations/services/railway-api.d.ts +117 -5
  140. package/dist/operations/services/railway-api.js +915 -93
  141. package/dist/operations/services/railway-deploy.d.ts +30 -112
  142. package/dist/operations/services/railway-deploy.js +521 -961
  143. package/dist/operations/services/release-history.js +3 -4
  144. package/dist/operations/services/release-proof-ledger.d.ts +13 -0
  145. package/dist/operations/services/release-proof-ledger.js +81 -0
  146. package/dist/operations/services/release-proof-planner.d.ts +48 -0
  147. package/dist/operations/services/release-proof-planner.js +195 -0
  148. package/dist/operations/services/release-proof-runner.d.ts +16 -0
  149. package/dist/operations/services/release-proof-runner.js +169 -0
  150. package/dist/operations/services/release-proof.d.ts +81 -0
  151. package/dist/operations/services/release-proof.js +79 -0
  152. package/dist/operations/services/repository-save-orchestrator.d.ts +8 -7
  153. package/dist/operations/services/repository-save-orchestrator.js +604 -212
  154. package/dist/operations/services/runtime-paths.d.ts +1 -3
  155. package/dist/operations/services/runtime-paths.js +0 -4
  156. package/dist/operations/services/runtime-tools.d.ts +1 -191
  157. package/dist/operations/services/runtime-tools.js +4 -443
  158. package/dist/operations/services/save-deploy-preflight.js +9 -1
  159. package/dist/operations/services/template-host-bindings.d.ts +2 -2
  160. package/dist/operations/services/template-host-bindings.js +3 -2
  161. package/dist/operations/services/template-registry.d.ts +6 -6
  162. package/dist/operations/services/template-registry.js +33 -14
  163. package/dist/operations/services/template-secret-sync.d.ts +3 -3
  164. package/dist/operations/services/verification-cache.d.ts +25 -0
  165. package/dist/operations/services/verification-cache.js +71 -0
  166. package/dist/operations/services/workflow-timing.d.ts +25 -0
  167. package/dist/operations/services/workflow-timing.js +79 -0
  168. package/dist/operations/services/workspace-dependency-mode.js +50 -5
  169. package/dist/operations/services/workspace-preflight.js +8 -8
  170. package/dist/operations/services/workspace-save-script.d.ts +4 -4
  171. package/dist/operations/services/workspace-save.d.ts +1 -0
  172. package/dist/operations/services/workspace-save.js +42 -19
  173. package/dist/operations/services/workspace-tools.js +42 -7
  174. package/dist/operations-registry.d.ts +1 -1
  175. package/dist/operations-registry.js +5 -6
  176. package/dist/operations-types.d.ts +1 -1
  177. package/dist/operations.d.ts +17 -11
  178. package/dist/operations.js +57 -3
  179. package/dist/platform/book-export.js +2 -0
  180. package/dist/platform/books-data.d.ts +1 -1
  181. package/dist/platform/config.d.ts +27 -0
  182. package/dist/platform/config.js +100 -0
  183. package/dist/platform/content-runtime-source.d.ts +54 -0
  184. package/dist/platform/content-runtime-source.js +169 -0
  185. package/dist/platform/contracts.d.ts +38 -2
  186. package/dist/platform/deploy-config.d.ts +1 -1
  187. package/dist/platform/deploy-config.js +80 -9
  188. package/dist/platform/deploy-runtime.d.ts +1 -1
  189. package/dist/platform/desired-state.d.ts +63 -0
  190. package/dist/platform/desired-state.js +1021 -0
  191. package/dist/platform/env.yaml +568 -45
  192. package/dist/platform/environment.d.ts +3 -2
  193. package/dist/platform/environment.js +122 -21
  194. package/dist/platform/local-content-materialization.d.ts +9 -0
  195. package/dist/platform/local-content-materialization.js +212 -0
  196. package/dist/platform/plugin.d.ts +13 -4
  197. package/dist/platform/plugins/runtime.d.ts +3 -3
  198. package/dist/platform/plugins/runtime.js +62 -1
  199. package/dist/platform/plugins.d.ts +6 -6
  200. package/dist/platform/published-content-pipeline.d.ts +3 -3
  201. package/dist/platform/published-content-pipeline.js +5 -1
  202. package/dist/platform/published-content.d.ts +4 -3
  203. package/dist/platform/site-config-schema.d.ts +1 -0
  204. package/dist/platform/site-config-schema.js +4 -1
  205. package/dist/platform/tenant/runtime-config.d.ts +152 -2
  206. package/dist/platform/tenant-config.d.ts +1 -1
  207. package/dist/platform/utils/site-config-schema.d.ts +154 -0
  208. package/dist/platform/utils/site-config-schema.js +400 -461
  209. package/dist/platform-operation-store.d.ts +1 -1
  210. package/dist/platform-operation-store.js +2 -2
  211. package/dist/platform-operations.js +1 -1
  212. package/dist/plugin-default.d.ts +1 -1
  213. package/dist/plugin-default.js +27 -12
  214. package/dist/project-import.d.ts +91 -0
  215. package/dist/project-import.js +257 -0
  216. package/dist/project-workflow.d.ts +1 -1
  217. package/dist/reconcile/bootstrap-systems.d.ts +2 -2
  218. package/dist/reconcile/bootstrap-systems.js +5 -5
  219. package/dist/reconcile/builtin-adapters.d.ts +7 -1
  220. package/dist/reconcile/builtin-adapters.js +3190 -429
  221. package/dist/reconcile/contracts.d.ts +23 -6
  222. package/dist/reconcile/desired-state.d.ts +2 -192
  223. package/dist/reconcile/desired-state.js +29 -38
  224. package/dist/reconcile/engine.d.ts +61 -395
  225. package/dist/reconcile/engine.js +229 -44
  226. package/dist/reconcile/index.d.ts +10 -8
  227. package/dist/reconcile/index.js +2 -0
  228. package/dist/reconcile/live-acceptance.d.ts +100 -0
  229. package/dist/reconcile/live-acceptance.js +2027 -0
  230. package/dist/reconcile/platform.d.ts +104 -0
  231. package/dist/reconcile/platform.js +100 -0
  232. package/dist/reconcile/providers/docker-private.d.ts +54 -0
  233. package/dist/reconcile/providers/docker-private.js +101 -0
  234. package/dist/reconcile/providers/github-private.d.ts +65 -0
  235. package/dist/reconcile/providers/github-private.js +119 -0
  236. package/dist/reconcile/providers/local-private.d.ts +28 -0
  237. package/dist/reconcile/providers/local-private.js +75 -0
  238. package/dist/reconcile/providers/railway-iac.d.ts +66 -0
  239. package/dist/reconcile/providers/railway-iac.js +275 -0
  240. package/dist/reconcile/providers/release-private.d.ts +92 -0
  241. package/dist/reconcile/providers/release-private.js +152 -0
  242. package/dist/reconcile/registry.d.ts +2 -2
  243. package/dist/reconcile/registry.js +16 -1
  244. package/dist/reconcile/state.d.ts +1 -1
  245. package/dist/reconcile/state.js +7 -44
  246. package/dist/reconcile/units.d.ts +1 -1
  247. package/dist/reconcile/units.js +9 -3
  248. package/dist/remote.d.ts +6 -6
  249. package/dist/scenes/artifacts.d.ts +16 -0
  250. package/dist/scenes/artifacts.js +61 -0
  251. package/dist/scenes/auth.d.ts +2 -0
  252. package/dist/scenes/auth.js +28 -0
  253. package/dist/scenes/base-url.d.ts +12 -0
  254. package/dist/scenes/base-url.js +123 -0
  255. package/dist/scenes/builtin-plugins.d.ts +2 -0
  256. package/dist/scenes/builtin-plugins.js +447 -0
  257. package/dist/scenes/checkpoints.d.ts +14 -0
  258. package/dist/scenes/checkpoints.js +33 -0
  259. package/dist/scenes/device-matrix.d.ts +2 -0
  260. package/dist/scenes/device-matrix.js +97 -0
  261. package/dist/scenes/devices.d.ts +11 -0
  262. package/dist/scenes/devices.js +22 -0
  263. package/dist/scenes/diagnostics.d.ts +5 -0
  264. package/dist/scenes/diagnostics.js +22 -0
  265. package/dist/scenes/diagram-providers.d.ts +2 -0
  266. package/dist/scenes/diagram-providers.js +181 -0
  267. package/dist/scenes/diagram-validation.d.ts +22 -0
  268. package/dist/scenes/diagram-validation.js +74 -0
  269. package/dist/scenes/environment.d.ts +2 -0
  270. package/dist/scenes/environment.js +65 -0
  271. package/dist/scenes/evidence-bundle.d.ts +5 -0
  272. package/dist/scenes/evidence-bundle.js +42 -0
  273. package/dist/scenes/evidence-report.d.ts +10 -0
  274. package/dist/scenes/evidence-report.js +73 -0
  275. package/dist/scenes/evidence.d.ts +16 -0
  276. package/dist/scenes/evidence.js +277 -0
  277. package/dist/scenes/index.d.ts +48 -0
  278. package/dist/scenes/index.js +312 -0
  279. package/dist/scenes/inspect.d.ts +9 -0
  280. package/dist/scenes/inspect.js +64 -0
  281. package/dist/scenes/loader.d.ts +3 -0
  282. package/dist/scenes/loader.js +38 -0
  283. package/dist/scenes/logs.d.ts +2 -0
  284. package/dist/scenes/logs.js +47 -0
  285. package/dist/scenes/operations.d.ts +3 -0
  286. package/dist/scenes/operations.js +128 -0
  287. package/dist/scenes/phase0.d.ts +9 -0
  288. package/dist/scenes/phase0.js +637 -0
  289. package/dist/scenes/planner.d.ts +12 -0
  290. package/dist/scenes/planner.js +166 -0
  291. package/dist/scenes/playwright-adapter.d.ts +2 -0
  292. package/dist/scenes/playwright-adapter.js +63 -0
  293. package/dist/scenes/plugins.d.ts +5 -0
  294. package/dist/scenes/plugins.js +115 -0
  295. package/dist/scenes/progress.d.ts +17 -0
  296. package/dist/scenes/progress.js +24 -0
  297. package/dist/scenes/publish-destinations.d.ts +12 -0
  298. package/dist/scenes/publish-destinations.js +99 -0
  299. package/dist/scenes/publish-plan-report.d.ts +10 -0
  300. package/dist/scenes/publish-plan-report.js +70 -0
  301. package/dist/scenes/publish-plan.d.ts +15 -0
  302. package/dist/scenes/publish-plan.js +248 -0
  303. package/dist/scenes/publish-redaction.d.ts +16 -0
  304. package/dist/scenes/publish-redaction.js +148 -0
  305. package/dist/scenes/publish-release-record.d.ts +13 -0
  306. package/dist/scenes/publish-release-record.js +34 -0
  307. package/dist/scenes/publish-report.d.ts +10 -0
  308. package/dist/scenes/publish-report.js +67 -0
  309. package/dist/scenes/publish.d.ts +16 -0
  310. package/dist/scenes/publish.js +298 -0
  311. package/dist/scenes/registry.d.ts +12 -0
  312. package/dist/scenes/registry.js +65 -0
  313. package/dist/scenes/remotion-adapter.d.ts +3 -0
  314. package/dist/scenes/remotion-adapter.js +94 -0
  315. package/dist/scenes/remotion-composition-registry.d.ts +2 -0
  316. package/dist/scenes/remotion-composition-registry.js +12 -0
  317. package/dist/scenes/remotion-compositions.d.ts +15 -0
  318. package/dist/scenes/remotion-compositions.js +464 -0
  319. package/dist/scenes/remotion-diagrams.d.ts +9 -0
  320. package/dist/scenes/remotion-diagrams.js +188 -0
  321. package/dist/scenes/remotion-input.d.ts +13 -0
  322. package/dist/scenes/remotion-input.js +291 -0
  323. package/dist/scenes/remotion-visuals.d.ts +29 -0
  324. package/dist/scenes/remotion-visuals.js +198 -0
  325. package/dist/scenes/render-media-assets.d.ts +9 -0
  326. package/dist/scenes/render-media-assets.js +117 -0
  327. package/dist/scenes/render-report.d.ts +10 -0
  328. package/dist/scenes/render-report.js +27 -0
  329. package/dist/scenes/render.d.ts +2 -0
  330. package/dist/scenes/render.js +218 -0
  331. package/dist/scenes/reporter.d.ts +3 -0
  332. package/dist/scenes/reporter.js +101 -0
  333. package/dist/scenes/resume.d.ts +2 -0
  334. package/dist/scenes/resume.js +79 -0
  335. package/dist/scenes/runner.d.ts +2 -0
  336. package/dist/scenes/runner.js +674 -0
  337. package/dist/scenes/schema.d.ts +6 -0
  338. package/dist/scenes/schema.js +994 -0
  339. package/dist/scenes/seed.d.ts +2 -0
  340. package/dist/scenes/seed.js +83 -0
  341. package/dist/scenes/segments.d.ts +15 -0
  342. package/dist/scenes/segments.js +79 -0
  343. package/dist/scenes/selectors.d.ts +3 -0
  344. package/dist/scenes/selectors.js +21 -0
  345. package/dist/scenes/timeline.d.ts +11 -0
  346. package/dist/scenes/timeline.js +26 -0
  347. package/dist/scenes/timeouts.d.ts +6 -0
  348. package/dist/scenes/timeouts.js +17 -0
  349. package/dist/scenes/training-captions.d.ts +14 -0
  350. package/dist/scenes/training-captions.js +98 -0
  351. package/dist/scenes/training-report.d.ts +10 -0
  352. package/dist/scenes/training-report.js +78 -0
  353. package/dist/scenes/training-transcript.d.ts +24 -0
  354. package/dist/scenes/training-transcript.js +204 -0
  355. package/dist/scenes/training.d.ts +10 -0
  356. package/dist/scenes/training.js +134 -0
  357. package/dist/scenes/types.d.ts +1872 -0
  358. package/dist/scenes/types.js +8 -0
  359. package/dist/scenes/visual-audit-contact-sheets.d.ts +6 -0
  360. package/dist/scenes/visual-audit-contact-sheets.js +119 -0
  361. package/dist/scenes/visual-audit-fixtures.d.ts +25 -0
  362. package/dist/scenes/visual-audit-fixtures.js +210 -0
  363. package/dist/scenes/visual-audit-report.d.ts +11 -0
  364. package/dist/scenes/visual-audit-report.js +85 -0
  365. package/dist/scenes/visual-audit-review.d.ts +23 -0
  366. package/dist/scenes/visual-audit-review.js +829 -0
  367. package/dist/scenes/visual-audit-routes.d.ts +13 -0
  368. package/dist/scenes/visual-audit-routes.js +308 -0
  369. package/dist/scenes/visual-audit.d.ts +3 -0
  370. package/dist/scenes/visual-audit.js +596 -0
  371. package/dist/scripts/build-dist.js +154 -40
  372. package/dist/scripts/check-build-warnings.js +42 -53
  373. package/dist/scripts/cleanup-markdown.js +1 -1
  374. package/dist/scripts/cli-test-fixtures.js +24 -28
  375. package/dist/scripts/deployment-readiness.js +20 -0
  376. package/dist/scripts/generate-treedx-openapi-types.js +186 -0
  377. package/dist/scripts/migrate-journey-csv-to-guarantees.js +140 -0
  378. package/dist/scripts/operations-runner-smoke.js +16 -0
  379. package/dist/scripts/package-tools.js +12 -1
  380. package/dist/scripts/prepare.js +3 -7
  381. package/dist/scripts/release-verify.js +6 -6
  382. package/dist/scripts/run-fixture-astro-command.js +1 -1
  383. package/dist/scripts/template-catalog.test.js +68 -82
  384. package/dist/scripts/tenant-dev.js +0 -10
  385. package/dist/scripts/tenant-workflow-action.js +10 -1
  386. package/dist/scripts/test-cloudflare-local.js +1 -1
  387. package/dist/scripts/test-scaffold.js +0 -1
  388. package/dist/scripts/test-smoke.js +3 -3
  389. package/dist/scripts/treeseed-build-dist.js +4 -7
  390. package/dist/scripts/treeseed-release-verify.js +1 -1
  391. package/dist/scripts/verify-driver.js +30 -21
  392. package/dist/scripts/workflow-commands.test.js +18 -27
  393. package/dist/scripts/workspace-command-e2e.js +1 -1
  394. package/dist/scripts/workspace-lint.js +6 -0
  395. package/dist/scripts/workspace-release-test.js +90 -1
  396. package/dist/scripts/workspace-test.js +6 -0
  397. package/dist/sdk-dispatch.d.ts +1 -1
  398. package/dist/sdk-dispatch.js +0 -16
  399. package/dist/sdk-fields.d.ts +1 -1
  400. package/dist/sdk-filters.d.ts +1 -1
  401. package/dist/sdk-types.d.ts +1352 -116
  402. package/dist/sdk-types.js +413 -2
  403. package/dist/sdk.d.ts +106 -100
  404. package/dist/sdk.js +211 -51
  405. package/dist/secrets-capability.d.ts +421 -0
  406. package/dist/secrets-capability.js +530 -0
  407. package/dist/seeds/normalize.js +1 -0
  408. package/dist/seeds/planner.js +38 -0
  409. package/dist/seeds/schema.js +293 -4
  410. package/dist/seeds/types.d.ts +60 -0
  411. package/dist/seeds/types.js +9 -1
  412. package/dist/service-credentials.d.ts +54 -0
  413. package/dist/service-credentials.js +112 -0
  414. package/dist/stores/cursor-store.d.ts +2 -2
  415. package/dist/stores/envelopes.d.ts +1 -1
  416. package/dist/stores/helpers.d.ts +1 -1
  417. package/dist/stores/lease-store.d.ts +2 -2
  418. package/dist/stores/message-store.d.ts +2 -2
  419. package/dist/stores/operational-store.d.ts +3 -26
  420. package/dist/stores/operational-store.js +0 -225
  421. package/dist/stores/project-workflow-store.d.ts +2 -2
  422. package/dist/stores/run-store.d.ts +2 -3
  423. package/dist/stores/run-store.js +0 -98
  424. package/dist/stores/subscription-store.d.ts +2 -3
  425. package/dist/stores/subscription-store.js +0 -100
  426. package/dist/template-catalog.d.ts +1 -1
  427. package/dist/template-launch-requirements.d.ts +2 -2
  428. package/dist/template-launch-requirements.js +9 -0
  429. package/dist/template-launch-ui.d.ts +2 -2
  430. package/dist/treedx/adapters.d.ts +6 -0
  431. package/dist/treedx/adapters.js +36 -0
  432. package/dist/treedx/client.d.ts +222 -0
  433. package/dist/treedx/client.js +871 -0
  434. package/dist/treedx/errors.d.ts +13 -0
  435. package/dist/treedx/errors.js +17 -0
  436. package/dist/treedx/federated-client.d.ts +27 -0
  437. package/dist/treedx/federated-client.js +158 -0
  438. package/dist/treedx/generated/openapi-types.d.ts +3558 -0
  439. package/dist/treedx/generated/openapi-types.js +0 -0
  440. package/dist/treedx/graph-adapter.d.ts +33 -0
  441. package/dist/treedx/graph-adapter.js +156 -0
  442. package/dist/treedx/index.d.ts +14 -0
  443. package/dist/treedx/index.js +48 -0
  444. package/dist/treedx/market-integration.d.ts +27 -0
  445. package/dist/treedx/market-integration.js +131 -0
  446. package/dist/treedx/ports.d.ts +166 -0
  447. package/dist/treedx/ports.js +231 -0
  448. package/dist/treedx/query-adapter.d.ts +19 -0
  449. package/dist/treedx/query-adapter.js +62 -0
  450. package/dist/treedx/registry-client.d.ts +11 -0
  451. package/dist/treedx/registry-client.js +19 -0
  452. package/dist/treedx/repository-adapter.d.ts +45 -0
  453. package/dist/treedx/repository-adapter.js +319 -0
  454. package/dist/treedx/sdk-integration.d.ts +27 -0
  455. package/dist/treedx/sdk-integration.js +63 -0
  456. package/dist/treedx/types.d.ts +1084 -0
  457. package/dist/treedx/types.js +8 -0
  458. package/dist/treedx/workspace-adapter.d.ts +27 -0
  459. package/dist/treedx/workspace-adapter.js +65 -0
  460. package/dist/treedx-backends.d.ts +220 -0
  461. package/dist/treedx-backends.js +634 -0
  462. package/dist/treedx-client.d.ts +89 -0
  463. package/dist/treedx-client.js +184 -0
  464. package/dist/treeseed/services/compose.yml +2 -3
  465. package/dist/treeseed/template-catalog/catalog.fixture.json +27 -27
  466. package/dist/types/agents.d.ts +256 -0
  467. package/dist/types/agents.js +42 -1
  468. package/dist/verification.d.ts +1 -0
  469. package/dist/verification.js +143 -14
  470. package/dist/workflow/operations.d.ts +580 -523
  471. package/dist/workflow/operations.js +2084 -1279
  472. package/dist/workflow/policy.js +19 -7
  473. package/dist/workflow/runs.d.ts +9 -3
  474. package/dist/workflow/runs.js +66 -26
  475. package/dist/workflow/session.d.ts +4 -1
  476. package/dist/workflow/session.js +50 -10
  477. package/dist/workflow/worktrees.d.ts +6 -2
  478. package/dist/workflow/worktrees.js +98 -15
  479. package/dist/workflow-state.d.ts +17 -4
  480. package/dist/workflow-state.js +68 -41
  481. package/dist/workflow-support.d.ts +26 -17
  482. package/dist/workflow-support.js +84 -24
  483. package/dist/workflow.d.ts +51 -16
  484. package/dist/workflow.js +19 -7
  485. package/drizzle/d1/0000_treeseed_d1.sql +0 -18
  486. package/drizzle/market/0000_market_control_plane.sql +1793 -1499
  487. package/drizzle/market/0004_treedx_market_integration.sql +99 -0
  488. package/drizzle/market/0005_agent_capacity_coordination.sql +145 -0
  489. package/drizzle/market/0006_provider_assignment_lifecycle.sql +9 -0
  490. package/drizzle/market/0007_agent_architecture_gap_closure.sql +157 -0
  491. package/drizzle/market/0008_agent_capacity_operational_closure.sql +27 -0
  492. package/drizzle/market/0009_agent_capacity_runtime_hardening.sql +29 -0
  493. package/drizzle/market/0010_secrets_capability_persistence.sql +130 -0
  494. package/drizzle/market/0011_github_app_adapter.sql +47 -0
  495. package/drizzle/market/0012_workday_test_runs.sql +44 -0
  496. package/drizzle/market/0013_runtime_task_lifecycle.sql +39 -0
  497. package/drizzle/market/0014_governance_pipeline.sql +189 -0
  498. package/package.json +106 -18
  499. package/scripts/{verify-driver.mjs → verify-driver.ts} +19 -4
  500. package/templates/github/deploy-web.workflow.yml +49 -12
  501. package/dist/operations/services/mailpit-runtime.d.ts +0 -20
  502. package/dist/operations/services/mailpit-runtime.js +0 -67
  503. package/dist/operations/services/release-candidate.d.ts +0 -41
  504. package/dist/operations/services/release-candidate.js +0 -616
  505. package/dist/scripts/ensure-mailpit.js +0 -48
  506. package/dist/scripts/logs-mailpit.js +0 -2
  507. package/dist/scripts/run-ts.js +0 -45
  508. package/dist/scripts/stop-mailpit.js +0 -5
  509. package/dist/scripts/treeseed-run-ts.js +0 -45
@@ -0,0 +1,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;