everything-dev 1.53.2 → 2.0.0-rc.1

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 (713) hide show
  1. package/README.md +2 -11
  2. package/dist/_virtual/_rolldown/runtime.cjs +17 -2
  3. package/dist/_virtual/_rolldown/runtime.mjs +36 -0
  4. package/dist/api/auth-middleware.cjs +161 -0
  5. package/dist/api/auth-middleware.cjs.map +1 -0
  6. package/dist/api/auth-middleware.d.cts +69 -0
  7. package/dist/api/auth-middleware.d.mts +69 -0
  8. package/dist/api/auth-middleware.mjs +160 -0
  9. package/dist/api/auth-middleware.mjs.map +1 -0
  10. package/dist/api-contract.cjs +250 -62
  11. package/dist/api-contract.cjs.map +1 -1
  12. package/dist/api-contract.mjs +246 -65
  13. package/dist/api-contract.mjs.map +1 -1
  14. package/dist/app.cjs +99 -26
  15. package/dist/app.cjs.map +1 -1
  16. package/dist/app.d.cts +3 -0
  17. package/dist/app.d.mts +3 -0
  18. package/dist/app.mjs +100 -27
  19. package/dist/app.mjs.map +1 -1
  20. package/dist/auth-login.cjs +163 -0
  21. package/dist/auth-login.cjs.map +1 -0
  22. package/dist/auth-login.mjs +162 -0
  23. package/dist/auth-login.mjs.map +1 -0
  24. package/dist/auth-session.cjs +64 -0
  25. package/dist/auth-session.cjs.map +1 -0
  26. package/dist/auth-session.mjs +58 -0
  27. package/dist/auth-session.mjs.map +1 -0
  28. package/dist/auth-types-gen.cjs +0 -1
  29. package/dist/auth-types-gen.cjs.map +1 -1
  30. package/dist/build.cjs +37 -173
  31. package/dist/build.cjs.map +1 -1
  32. package/dist/build.mjs +37 -171
  33. package/dist/build.mjs.map +1 -1
  34. package/dist/bundle-cache.cjs +74 -0
  35. package/dist/bundle-cache.cjs.map +1 -0
  36. package/dist/bundle-cache.d.cts +27 -0
  37. package/dist/bundle-cache.d.mts +27 -0
  38. package/dist/bundle-cache.mjs +68 -0
  39. package/dist/bundle-cache.mjs.map +1 -0
  40. package/dist/bundle-fs-resolve.cjs +209 -0
  41. package/dist/bundle-fs-resolve.cjs.map +1 -0
  42. package/dist/bundle-fs-resolve.d.cts +76 -0
  43. package/dist/bundle-fs-resolve.d.mts +76 -0
  44. package/dist/bundle-fs-resolve.mjs +202 -0
  45. package/dist/bundle-fs-resolve.mjs.map +1 -0
  46. package/dist/cdn-deploy.cjs +126 -0
  47. package/dist/cdn-deploy.cjs.map +1 -0
  48. package/dist/cdn-deploy.mjs +124 -0
  49. package/dist/cdn-deploy.mjs.map +1 -0
  50. package/dist/cli/db-doctor.cjs +19 -19
  51. package/dist/cli/db-doctor.cjs.map +1 -1
  52. package/dist/cli/db-doctor.mjs +18 -18
  53. package/dist/cli/db-doctor.mjs.map +1 -1
  54. package/dist/cli/db-repair.cjs +9 -32
  55. package/dist/cli/db-repair.cjs.map +1 -1
  56. package/dist/cli/db-repair.mjs +9 -32
  57. package/dist/cli/db-repair.mjs.map +1 -1
  58. package/dist/cli/framework-version.cjs +7 -3
  59. package/dist/cli/framework-version.cjs.map +1 -1
  60. package/dist/cli/framework-version.mjs +7 -3
  61. package/dist/cli/framework-version.mjs.map +1 -1
  62. package/dist/cli/infra.cjs +159 -251
  63. package/dist/cli/infra.cjs.map +1 -1
  64. package/dist/cli/infra.mjs +154 -242
  65. package/dist/cli/infra.mjs.map +1 -1
  66. package/dist/cli/init.cjs +627 -199
  67. package/dist/cli/init.cjs.map +1 -1
  68. package/dist/cli/init.d.cts +61 -8
  69. package/dist/cli/init.d.mts +61 -8
  70. package/dist/cli/init.mjs +616 -197
  71. package/dist/cli/init.mjs.map +1 -1
  72. package/dist/cli/parse.cjs +8 -7
  73. package/dist/cli/parse.cjs.map +1 -1
  74. package/dist/cli/parse.mjs +9 -7
  75. package/dist/cli/parse.mjs.map +1 -1
  76. package/dist/cli/prompts.cjs +14 -1
  77. package/dist/cli/prompts.cjs.map +1 -1
  78. package/dist/cli/prompts.mjs +14 -1
  79. package/dist/cli/prompts.mjs.map +1 -1
  80. package/dist/cli/prune.cjs +220 -0
  81. package/dist/cli/prune.cjs.map +1 -0
  82. package/dist/cli/prune.mjs +220 -0
  83. package/dist/cli/prune.mjs.map +1 -0
  84. package/dist/cli/snapshot.cjs +2 -1
  85. package/dist/cli/snapshot.cjs.map +1 -1
  86. package/dist/cli/snapshot.mjs +2 -1
  87. package/dist/cli/snapshot.mjs.map +1 -1
  88. package/dist/cli/status.cjs +5 -4
  89. package/dist/cli/status.cjs.map +1 -1
  90. package/dist/cli/status.mjs +6 -5
  91. package/dist/cli/status.mjs.map +1 -1
  92. package/dist/cli/sync.cjs +156 -58
  93. package/dist/cli/sync.cjs.map +1 -1
  94. package/dist/cli/sync.mjs +158 -63
  95. package/dist/cli/sync.mjs.map +1 -1
  96. package/dist/cli/timing.cjs +0 -1
  97. package/dist/cli/timing.cjs.map +1 -1
  98. package/dist/cli/upgrade.cjs +95 -69
  99. package/dist/cli/upgrade.cjs.map +1 -1
  100. package/dist/cli/upgrade.mjs +97 -72
  101. package/dist/cli/upgrade.mjs.map +1 -1
  102. package/dist/cli/utils/helpers.cjs.map +1 -1
  103. package/dist/cli.cjs +320 -72
  104. package/dist/cli.cjs.map +1 -1
  105. package/dist/cli.mjs +316 -68
  106. package/dist/cli.mjs.map +1 -1
  107. package/dist/code-artifacts.cjs +76 -8
  108. package/dist/code-artifacts.cjs.map +1 -1
  109. package/dist/code-artifacts.mjs +76 -10
  110. package/dist/code-artifacts.mjs.map +1 -1
  111. package/dist/commands/build.cjs +65 -0
  112. package/dist/commands/build.cjs.map +1 -0
  113. package/dist/commands/build.mjs +65 -0
  114. package/dist/commands/build.mjs.map +1 -0
  115. package/dist/commands/config.cjs +77 -0
  116. package/dist/commands/config.cjs.map +1 -0
  117. package/dist/commands/config.d.cts +8 -0
  118. package/dist/commands/config.d.mts +8 -0
  119. package/dist/commands/config.mjs +74 -0
  120. package/dist/commands/config.mjs.map +1 -0
  121. package/dist/commands/db.cjs +107 -0
  122. package/dist/commands/db.cjs.map +1 -0
  123. package/dist/commands/db.mjs +107 -0
  124. package/dist/commands/db.mjs.map +1 -0
  125. package/dist/commands/deploy.cjs +336 -0
  126. package/dist/commands/deploy.cjs.map +1 -0
  127. package/dist/commands/deploy.mjs +334 -0
  128. package/dist/commands/deploy.mjs.map +1 -0
  129. package/dist/commands/dev.cjs +75 -0
  130. package/dist/commands/dev.cjs.map +1 -0
  131. package/dist/commands/dev.mjs +73 -0
  132. package/dist/commands/dev.mjs.map +1 -0
  133. package/dist/commands/init.cjs +234 -0
  134. package/dist/commands/init.cjs.map +1 -0
  135. package/dist/commands/init.mjs +231 -0
  136. package/dist/commands/init.mjs.map +1 -0
  137. package/dist/commands/keys.cjs +255 -0
  138. package/dist/commands/keys.cjs.map +1 -0
  139. package/dist/commands/keys.mjs +253 -0
  140. package/dist/commands/keys.mjs.map +1 -0
  141. package/dist/commands/ops.cjs +199 -0
  142. package/dist/commands/ops.cjs.map +1 -0
  143. package/dist/commands/ops.mjs +197 -0
  144. package/dist/commands/ops.mjs.map +1 -0
  145. package/dist/commands/plugins.cjs +211 -0
  146. package/dist/commands/plugins.cjs.map +1 -0
  147. package/dist/commands/plugins.mjs +211 -0
  148. package/dist/commands/plugins.mjs.map +1 -0
  149. package/dist/commands/shared.cjs +8 -0
  150. package/dist/commands/shared.cjs.map +1 -0
  151. package/dist/commands/shared.d.cts +6 -0
  152. package/dist/commands/shared.d.mts +6 -0
  153. package/dist/commands/shared.mjs +8 -0
  154. package/dist/commands/shared.mjs.map +1 -0
  155. package/dist/commands/upgrade.cjs +325 -0
  156. package/dist/commands/upgrade.cjs.map +1 -0
  157. package/dist/commands/upgrade.mjs +323 -0
  158. package/dist/commands/upgrade.mjs.map +1 -0
  159. package/dist/components/dev-render.cjs +340 -0
  160. package/dist/components/dev-render.cjs.map +1 -0
  161. package/dist/components/dev-render.mjs +332 -0
  162. package/dist/components/dev-render.mjs.map +1 -0
  163. package/dist/config.cjs +460 -221
  164. package/dist/config.cjs.map +1 -1
  165. package/dist/config.d.cts +491 -48
  166. package/dist/config.d.mts +491 -48
  167. package/dist/config.mjs +439 -212
  168. package/dist/config.mjs.map +1 -1
  169. package/dist/contract.cjs +327 -50
  170. package/dist/contract.cjs.map +1 -1
  171. package/dist/contract.d.cts +1951 -1062
  172. package/dist/contract.d.mts +1951 -1062
  173. package/dist/contract.meta.cjs +107 -12
  174. package/dist/contract.meta.cjs.map +1 -1
  175. package/dist/contract.meta.d.cts +166 -8
  176. package/dist/contract.meta.d.mts +166 -8
  177. package/dist/contract.meta.mjs +107 -11
  178. package/dist/contract.meta.mjs.map +1 -1
  179. package/dist/contract.mjs +580 -327
  180. package/dist/contract.mjs.map +1 -1
  181. package/dist/dag.cjs +5 -3
  182. package/dist/dag.cjs.map +1 -1
  183. package/dist/dag.mjs +6 -3
  184. package/dist/dag.mjs.map +1 -1
  185. package/dist/db/binding.cjs +80 -0
  186. package/dist/db/binding.cjs.map +1 -0
  187. package/dist/db/binding.d.cts +39 -0
  188. package/dist/db/binding.d.mts +39 -0
  189. package/dist/db/binding.mjs +78 -0
  190. package/dist/db/binding.mjs.map +1 -0
  191. package/dist/db/bindings.cjs +78 -0
  192. package/dist/db/bindings.cjs.map +1 -0
  193. package/dist/db/bindings.d.cts +34 -0
  194. package/dist/db/bindings.d.mts +34 -0
  195. package/dist/db/bindings.mjs +76 -0
  196. package/dist/db/bindings.mjs.map +1 -0
  197. package/dist/db/core.cjs +204 -0
  198. package/dist/db/core.cjs.map +1 -0
  199. package/dist/db/core.d.cts +69 -0
  200. package/dist/db/core.d.mts +69 -0
  201. package/dist/db/core.mjs +192 -0
  202. package/dist/db/core.mjs.map +1 -0
  203. package/dist/db/driver.cjs +167 -0
  204. package/dist/db/driver.cjs.map +1 -0
  205. package/dist/db/driver.d.cts +50 -0
  206. package/dist/db/driver.d.mts +50 -0
  207. package/dist/db/driver.mjs +165 -0
  208. package/dist/db/driver.mjs.map +1 -0
  209. package/dist/db/drizzle-kit.cjs +177 -0
  210. package/dist/db/drizzle-kit.cjs.map +1 -0
  211. package/dist/db/drizzle-kit.d.cts +25 -0
  212. package/dist/db/drizzle-kit.d.mts +25 -0
  213. package/dist/db/drizzle-kit.mjs +175 -0
  214. package/dist/db/drizzle-kit.mjs.map +1 -0
  215. package/dist/db/errors.cjs +27 -0
  216. package/dist/db/errors.cjs.map +1 -0
  217. package/dist/db/errors.d.cts +16 -0
  218. package/dist/db/errors.d.mts +16 -0
  219. package/dist/db/errors.mjs +26 -0
  220. package/dist/db/errors.mjs.map +1 -0
  221. package/dist/db/identity.cjs +55 -0
  222. package/dist/db/identity.cjs.map +1 -0
  223. package/dist/db/identity.d.cts +40 -0
  224. package/dist/db/identity.d.mts +40 -0
  225. package/dist/db/identity.mjs +53 -0
  226. package/dist/db/identity.mjs.map +1 -0
  227. package/dist/db/index.cjs +43 -0
  228. package/dist/db/index.d.cts +9 -0
  229. package/dist/db/index.d.mts +9 -0
  230. package/dist/db/index.mjs +10 -0
  231. package/dist/db/run-migrations.cjs +343 -0
  232. package/dist/db/run-migrations.cjs.map +1 -0
  233. package/dist/db/run-migrations.d.cts +87 -0
  234. package/dist/db/run-migrations.d.mts +87 -0
  235. package/dist/db/run-migrations.mjs +341 -0
  236. package/dist/db/run-migrations.mjs.map +1 -0
  237. package/dist/delegate-signer.cjs +85 -0
  238. package/dist/delegate-signer.cjs.map +1 -0
  239. package/dist/delegate-signer.mjs +84 -0
  240. package/dist/delegate-signer.mjs.map +1 -0
  241. package/dist/deploy-diff.cjs +119 -0
  242. package/dist/deploy-diff.cjs.map +1 -0
  243. package/dist/deploy-diff.mjs +109 -0
  244. package/dist/deploy-diff.mjs.map +1 -0
  245. package/dist/descriptor/constructors.cjs +49 -0
  246. package/dist/descriptor/constructors.cjs.map +1 -0
  247. package/dist/descriptor/constructors.d.cts +27 -0
  248. package/dist/descriptor/constructors.d.mts +27 -0
  249. package/dist/descriptor/constructors.mjs +45 -0
  250. package/dist/descriptor/constructors.mjs.map +1 -0
  251. package/dist/descriptor/index.cjs +24 -0
  252. package/dist/descriptor/index.d.cts +5 -0
  253. package/dist/descriptor/index.d.mts +5 -0
  254. package/dist/descriptor/index.mjs +6 -0
  255. package/dist/descriptor/resolve.cjs +258 -0
  256. package/dist/descriptor/resolve.cjs.map +1 -0
  257. package/dist/descriptor/resolve.d.cts +50 -0
  258. package/dist/descriptor/resolve.d.mts +50 -0
  259. package/dist/descriptor/resolve.mjs +252 -0
  260. package/dist/descriptor/resolve.mjs.map +1 -0
  261. package/dist/descriptor/schema.cjs +109 -0
  262. package/dist/descriptor/schema.cjs.map +1 -0
  263. package/dist/descriptor/schema.d.cts +217 -0
  264. package/dist/descriptor/schema.d.mts +217 -0
  265. package/dist/descriptor/schema.mjs +102 -0
  266. package/dist/descriptor/schema.mjs.map +1 -0
  267. package/dist/descriptor/serialize.cjs +45 -0
  268. package/dist/descriptor/serialize.cjs.map +1 -0
  269. package/dist/descriptor/serialize.d.cts +7 -0
  270. package/dist/descriptor/serialize.d.mts +7 -0
  271. package/dist/descriptor/serialize.mjs +45 -0
  272. package/dist/descriptor/serialize.mjs.map +1 -0
  273. package/dist/dev-log-pipeline.cjs +273 -0
  274. package/dist/dev-log-pipeline.cjs.map +1 -0
  275. package/dist/dev-log-pipeline.mjs +267 -0
  276. package/dist/dev-log-pipeline.mjs.map +1 -0
  277. package/dist/dev-logs.cjs +39 -8
  278. package/dist/dev-logs.cjs.map +1 -1
  279. package/dist/dev-logs.mjs +37 -9
  280. package/dist/dev-logs.mjs.map +1 -1
  281. package/dist/dev-program.cjs +405 -0
  282. package/dist/dev-program.cjs.map +1 -0
  283. package/dist/dev-program.d.cts +10 -0
  284. package/dist/dev-program.d.mts +10 -0
  285. package/dist/dev-program.mjs +395 -0
  286. package/dist/dev-program.mjs.map +1 -0
  287. package/dist/dev-session-data.d.cts +27 -0
  288. package/dist/dev-session-data.d.mts +27 -0
  289. package/dist/dev-session.cjs +178 -105
  290. package/dist/dev-session.cjs.map +1 -1
  291. package/dist/dev-session.mjs +180 -105
  292. package/dist/dev-session.mjs.map +1 -1
  293. package/dist/env/process-env.cjs +16 -0
  294. package/dist/env/process-env.cjs.map +1 -0
  295. package/dist/env/process-env.mjs +13 -0
  296. package/dist/env/process-env.mjs.map +1 -0
  297. package/dist/env/project-env.cjs +144 -0
  298. package/dist/env/project-env.cjs.map +1 -0
  299. package/dist/env/project-env.d.cts +1 -0
  300. package/dist/env/project-env.d.mts +1 -0
  301. package/dist/env/project-env.mjs +132 -0
  302. package/dist/env/project-env.mjs.map +1 -0
  303. package/dist/fastkv.cjs +59 -12
  304. package/dist/fastkv.cjs.map +1 -1
  305. package/dist/fastkv.d.cts +42 -6
  306. package/dist/fastkv.d.mts +42 -6
  307. package/dist/fastkv.mjs +58 -13
  308. package/dist/fastkv.mjs.map +1 -1
  309. package/dist/fingerprint.cjs +57 -0
  310. package/dist/fingerprint.cjs.map +1 -0
  311. package/dist/fingerprint.d.cts +14 -0
  312. package/dist/fingerprint.d.mts +14 -0
  313. package/dist/fingerprint.mjs +55 -0
  314. package/dist/fingerprint.mjs.map +1 -0
  315. package/dist/http-client.cjs +17 -17
  316. package/dist/http-client.cjs.map +1 -1
  317. package/dist/http-client.mjs +17 -17
  318. package/dist/http-client.mjs.map +1 -1
  319. package/dist/image-deploy.cjs +186 -0
  320. package/dist/image-deploy.cjs.map +1 -0
  321. package/dist/image-deploy.mjs +182 -0
  322. package/dist/image-deploy.mjs.map +1 -0
  323. package/dist/index.cjs +66 -18
  324. package/dist/index.d.cts +8 -7
  325. package/dist/index.d.mts +8 -7
  326. package/dist/index.mjs +6 -5
  327. package/dist/infra/docker.cjs +77 -0
  328. package/dist/infra/docker.cjs.map +1 -0
  329. package/dist/infra/docker.d.cts +10 -0
  330. package/dist/infra/docker.d.mts +10 -0
  331. package/dist/infra/docker.mjs +69 -0
  332. package/dist/infra/docker.mjs.map +1 -0
  333. package/dist/infra/materializer.cjs +74 -0
  334. package/dist/infra/materializer.cjs.map +1 -0
  335. package/dist/infra/materializer.mjs +70 -0
  336. package/dist/infra/materializer.mjs.map +1 -0
  337. package/dist/infra/planner.cjs +135 -103
  338. package/dist/infra/planner.cjs.map +1 -1
  339. package/dist/infra/planner.mjs +137 -104
  340. package/dist/infra/planner.mjs.map +1 -1
  341. package/dist/infra/port-ownership.cjs +57 -0
  342. package/dist/infra/port-ownership.cjs.map +1 -0
  343. package/dist/infra/port-ownership.mjs +57 -0
  344. package/dist/infra/port-ownership.mjs.map +1 -0
  345. package/dist/infra/preflight.cjs +45 -33
  346. package/dist/infra/preflight.cjs.map +1 -1
  347. package/dist/infra/preflight.d.cts +1 -0
  348. package/dist/infra/preflight.d.mts +1 -0
  349. package/dist/infra/preflight.mjs +46 -34
  350. package/dist/infra/preflight.mjs.map +1 -1
  351. package/dist/infra/types.cjs.map +1 -1
  352. package/dist/infra/types.d.cts +2 -0
  353. package/dist/infra/types.d.mts +2 -0
  354. package/dist/infra/types.mjs.map +1 -1
  355. package/dist/integrity.cjs +50 -61
  356. package/dist/integrity.cjs.map +1 -1
  357. package/dist/integrity.d.cts +16 -10
  358. package/dist/integrity.d.mts +16 -10
  359. package/dist/integrity.mjs +50 -59
  360. package/dist/integrity.mjs.map +1 -1
  361. package/dist/internal/manifest-normalizer.cjs +8 -2
  362. package/dist/internal/manifest-normalizer.cjs.map +1 -1
  363. package/dist/internal/manifest-normalizer.mjs +9 -3
  364. package/dist/internal/manifest-normalizer.mjs.map +1 -1
  365. package/dist/merge.cjs +19 -1
  366. package/dist/merge.cjs.map +1 -1
  367. package/dist/merge.d.cts +1 -1
  368. package/dist/merge.d.mts +1 -1
  369. package/dist/merge.mjs +19 -2
  370. package/dist/merge.mjs.map +1 -1
  371. package/dist/mf.cjs +190 -3
  372. package/dist/mf.cjs.map +1 -1
  373. package/dist/mf.d.cts +24 -2
  374. package/dist/mf.d.mts +24 -2
  375. package/dist/mf.mjs +189 -4
  376. package/dist/mf.mjs.map +1 -1
  377. package/dist/near-cli.cjs +59 -91
  378. package/dist/near-cli.cjs.map +1 -1
  379. package/dist/near-cli.mjs +58 -90
  380. package/dist/near-cli.mjs.map +1 -1
  381. package/dist/near-signer.cjs +73 -0
  382. package/dist/near-signer.cjs.map +1 -0
  383. package/dist/near-signer.mjs +70 -0
  384. package/dist/near-signer.mjs.map +1 -0
  385. package/dist/network.cjs +0 -1
  386. package/dist/network.cjs.map +1 -1
  387. package/dist/orchestrator.cjs +256 -87
  388. package/dist/orchestrator.cjs.map +1 -1
  389. package/dist/orchestrator.mjs +248 -87
  390. package/dist/orchestrator.mjs.map +1 -1
  391. package/dist/platform-deploy.cjs +81 -0
  392. package/dist/platform-deploy.cjs.map +1 -0
  393. package/dist/platform-deploy.mjs +80 -0
  394. package/dist/platform-deploy.mjs.map +1 -0
  395. package/dist/plugin.cjs +54 -1389
  396. package/dist/plugin.cjs.map +1 -1
  397. package/dist/plugin.d.cts +6 -896
  398. package/dist/plugin.d.mts +6 -896
  399. package/dist/plugin.mjs +53 -1387
  400. package/dist/plugin.mjs.map +1 -1
  401. package/dist/process-kill.cjs +44 -0
  402. package/dist/process-kill.cjs.map +1 -0
  403. package/dist/process-kill.mjs +43 -0
  404. package/dist/process-kill.mjs.map +1 -0
  405. package/dist/process-registry.cjs +64 -9
  406. package/dist/process-registry.cjs.map +1 -1
  407. package/dist/process-registry.mjs +61 -10
  408. package/dist/process-registry.mjs.map +1 -1
  409. package/dist/progress.cjs +45 -0
  410. package/dist/progress.cjs.map +1 -0
  411. package/dist/progress.d.cts +13 -0
  412. package/dist/progress.d.mts +13 -0
  413. package/dist/progress.mjs +42 -0
  414. package/dist/progress.mjs.map +1 -0
  415. package/dist/publish.cjs +513 -79
  416. package/dist/publish.cjs.map +1 -1
  417. package/dist/publish.mjs +515 -82
  418. package/dist/publish.mjs.map +1 -1
  419. package/dist/registry-use.cjs +41 -0
  420. package/dist/registry-use.cjs.map +1 -0
  421. package/dist/registry-use.mjs +40 -0
  422. package/dist/registry-use.mjs.map +1 -0
  423. package/dist/resolution/session.cjs +335 -0
  424. package/dist/resolution/session.cjs.map +1 -0
  425. package/dist/resolution/session.d.cts +105 -0
  426. package/dist/resolution/session.d.mts +105 -0
  427. package/dist/resolution/session.mjs +331 -0
  428. package/dist/resolution/session.mjs.map +1 -0
  429. package/dist/rollback.cjs +131 -0
  430. package/dist/rollback.cjs.map +1 -0
  431. package/dist/rollback.mjs +128 -0
  432. package/dist/rollback.mjs.map +1 -0
  433. package/dist/sdk.cjs +7 -7
  434. package/dist/sdk.d.cts +3 -3
  435. package/dist/sdk.d.mts +3 -3
  436. package/dist/sdk.mjs +2 -2
  437. package/dist/service-descriptor.cjs +67 -34
  438. package/dist/service-descriptor.cjs.map +1 -1
  439. package/dist/service-descriptor.d.cts +4 -1
  440. package/dist/service-descriptor.d.mts +3 -0
  441. package/dist/service-descriptor.mjs +63 -35
  442. package/dist/service-descriptor.mjs.map +1 -1
  443. package/dist/shared-deps.cjs +17 -16
  444. package/dist/shared-deps.cjs.map +1 -1
  445. package/dist/shared-deps.mjs +17 -16
  446. package/dist/shared-deps.mjs.map +1 -1
  447. package/dist/start-config-source.cjs +24 -0
  448. package/dist/start-config-source.cjs.map +1 -0
  449. package/dist/start-config-source.d.cts +29 -0
  450. package/dist/start-config-source.d.mts +29 -0
  451. package/dist/start-config-source.mjs +22 -0
  452. package/dist/start-config-source.mjs.map +1 -0
  453. package/dist/storage-upload.cjs +145 -0
  454. package/dist/storage-upload.cjs.map +1 -0
  455. package/dist/storage-upload.mjs +143 -0
  456. package/dist/storage-upload.mjs.map +1 -0
  457. package/dist/types.cjs +126 -20
  458. package/dist/types.cjs.map +1 -1
  459. package/dist/types.d.cts +867 -585
  460. package/dist/types.d.mts +867 -585
  461. package/dist/types.mjs +307 -208
  462. package/dist/types.mjs.map +1 -1
  463. package/dist/ui/api.cjs +105 -0
  464. package/dist/ui/api.cjs.map +1 -0
  465. package/dist/ui/api.d.cts +31 -0
  466. package/dist/ui/api.d.mts +31 -0
  467. package/dist/ui/api.mjs +99 -0
  468. package/dist/ui/api.mjs.map +1 -0
  469. package/dist/ui/auth-guards.cjs +50 -0
  470. package/dist/ui/auth-guards.cjs.map +1 -0
  471. package/dist/ui/auth-guards.d.cts +39 -0
  472. package/dist/ui/auth-guards.d.mts +39 -0
  473. package/dist/ui/auth-guards.mjs +48 -0
  474. package/dist/ui/auth-guards.mjs.map +1 -0
  475. package/dist/ui/auth.cjs +197 -0
  476. package/dist/ui/auth.cjs.map +1 -0
  477. package/dist/ui/auth.d.cts +56 -0
  478. package/dist/ui/auth.d.mts +56 -0
  479. package/dist/ui/auth.mjs +179 -0
  480. package/dist/ui/auth.mjs.map +1 -0
  481. package/dist/ui/entry.cjs +16 -0
  482. package/dist/ui/entry.cjs.map +1 -0
  483. package/dist/ui/entry.d.cts +12 -0
  484. package/dist/ui/entry.d.mts +12 -0
  485. package/dist/ui/entry.mjs +15 -0
  486. package/dist/ui/entry.mjs.map +1 -0
  487. package/dist/ui/head.cjs +14 -7
  488. package/dist/ui/head.cjs.map +1 -1
  489. package/dist/ui/head.mjs +15 -7
  490. package/dist/ui/head.mjs.map +1 -1
  491. package/dist/ui/hydrate.cjs +265 -0
  492. package/dist/ui/hydrate.cjs.map +1 -0
  493. package/dist/ui/hydrate.d.cts +48 -0
  494. package/dist/ui/hydrate.d.mts +48 -0
  495. package/dist/ui/hydrate.mjs +263 -0
  496. package/dist/ui/hydrate.mjs.map +1 -0
  497. package/dist/ui/i18n.cjs +153 -0
  498. package/dist/ui/i18n.cjs.map +1 -0
  499. package/dist/ui/i18n.d.cts +29 -0
  500. package/dist/ui/i18n.d.mts +29 -0
  501. package/dist/ui/i18n.mjs +140 -0
  502. package/dist/ui/i18n.mjs.map +1 -0
  503. package/dist/ui/index.cjs +19 -1
  504. package/dist/ui/index.d.cts +6 -3
  505. package/dist/ui/index.d.mts +6 -3
  506. package/dist/ui/index.mjs +5 -2
  507. package/dist/ui/locale.cjs +53 -0
  508. package/dist/ui/locale.cjs.map +1 -0
  509. package/dist/ui/locale.d.cts +18 -0
  510. package/dist/ui/locale.d.mts +18 -0
  511. package/dist/ui/locale.mjs +49 -0
  512. package/dist/ui/locale.mjs.map +1 -0
  513. package/dist/ui/manifest/index.cjs +25 -0
  514. package/dist/ui/manifest/index.cjs.map +1 -0
  515. package/dist/ui/manifest/index.d.cts +9 -0
  516. package/dist/ui/manifest/index.d.mts +9 -0
  517. package/dist/ui/manifest/index.mjs +13 -0
  518. package/dist/ui/manifest/index.mjs.map +1 -0
  519. package/dist/ui/manifest-generator.cjs +8 -0
  520. package/dist/ui/manifest-generator.d.cts +1 -0
  521. package/dist/ui/manifest-generator.d.mts +1 -0
  522. package/dist/ui/manifest-generator.mjs +3 -0
  523. package/dist/ui/message-catalogs.cjs +8 -0
  524. package/dist/ui/message-catalogs.cjs.map +1 -0
  525. package/dist/ui/message-catalogs.d.cts +5 -0
  526. package/dist/ui/message-catalogs.d.mts +5 -0
  527. package/dist/ui/message-catalogs.mjs +8 -0
  528. package/dist/ui/message-catalogs.mjs.map +1 -0
  529. package/dist/ui/metadata.cjs +0 -1
  530. package/dist/ui/metadata.cjs.map +1 -1
  531. package/dist/ui/metadata.d.cts +1 -1
  532. package/dist/ui/metadata.d.mts +1 -1
  533. package/dist/ui/plugin-path.cjs +37 -0
  534. package/dist/ui/plugin-path.cjs.map +1 -0
  535. package/dist/ui/plugin-path.d.cts +25 -0
  536. package/dist/ui/plugin-path.d.mts +25 -0
  537. package/dist/ui/plugin-path.mjs +35 -0
  538. package/dist/ui/plugin-path.mjs.map +1 -0
  539. package/dist/ui/router-client.cjs +61 -0
  540. package/dist/ui/router-client.cjs.map +1 -0
  541. package/dist/ui/router-client.d.cts +20 -0
  542. package/dist/ui/router-client.d.mts +20 -0
  543. package/dist/ui/router-client.mjs +60 -0
  544. package/dist/ui/router-client.mjs.map +1 -0
  545. package/dist/ui/router-defaults.cjs +48 -0
  546. package/dist/ui/router-defaults.cjs.map +1 -0
  547. package/dist/ui/router-defaults.d.cts +8 -0
  548. package/dist/ui/router-defaults.d.mts +8 -0
  549. package/dist/ui/router-defaults.mjs +45 -0
  550. package/dist/ui/router-defaults.mjs.map +1 -0
  551. package/dist/ui/router-error.cjs +70 -0
  552. package/dist/ui/router-error.cjs.map +1 -0
  553. package/dist/ui/router-error.d.cts +19 -0
  554. package/dist/ui/router-error.d.mts +19 -0
  555. package/dist/ui/router-error.mjs +69 -0
  556. package/dist/ui/router-error.mjs.map +1 -0
  557. package/dist/ui/router-server.cjs +153 -0
  558. package/dist/ui/router-server.cjs.map +1 -0
  559. package/dist/ui/router-server.d.cts +38 -0
  560. package/dist/ui/router-server.d.mts +38 -0
  561. package/dist/ui/router-server.mjs +152 -0
  562. package/dist/ui/router-server.mjs.map +1 -0
  563. package/dist/ui/router.cjs +4 -16
  564. package/dist/ui/router.cjs.map +1 -1
  565. package/dist/ui/router.mjs +4 -15
  566. package/dist/ui/router.mjs.map +1 -1
  567. package/dist/ui/runtime.cjs +5 -1
  568. package/dist/ui/runtime.cjs.map +1 -1
  569. package/dist/ui/runtime.d.cts +2 -1
  570. package/dist/ui/runtime.d.mts +2 -1
  571. package/dist/ui/runtime.mjs +5 -1
  572. package/dist/ui/runtime.mjs.map +1 -1
  573. package/dist/ui/slot.cjs +34 -0
  574. package/dist/ui/slot.cjs.map +1 -0
  575. package/dist/ui/slot.d.cts +43 -0
  576. package/dist/ui/slot.d.mts +43 -0
  577. package/dist/ui/slot.mjs +34 -0
  578. package/dist/ui/slot.mjs.map +1 -0
  579. package/dist/ui/tenant.cjs +300 -0
  580. package/dist/ui/tenant.cjs.map +1 -0
  581. package/dist/ui/tenant.d.cts +122 -0
  582. package/dist/ui/tenant.d.mts +122 -0
  583. package/dist/ui/tenant.mjs +279 -0
  584. package/dist/ui/tenant.mjs.map +1 -0
  585. package/dist/ui/types.d.cts +32 -2
  586. package/dist/ui/types.d.mts +32 -2
  587. package/dist/ui/version-check.cjs +47 -0
  588. package/dist/ui/version-check.cjs.map +1 -0
  589. package/dist/ui/version-check.d.cts +23 -0
  590. package/dist/ui/version-check.d.mts +23 -0
  591. package/dist/ui/version-check.mjs +46 -0
  592. package/dist/ui/version-check.mjs.map +1 -0
  593. package/dist/utils/banner.cjs +2 -2
  594. package/dist/utils/banner.cjs.map +1 -1
  595. package/dist/utils/banner.mjs +2 -2
  596. package/dist/utils/banner.mjs.map +1 -1
  597. package/dist/utils/linkify.cjs +1 -1
  598. package/dist/utils/linkify.cjs.map +1 -1
  599. package/dist/utils/linkify.mjs +1 -0
  600. package/dist/utils/linkify.mjs.map +1 -1
  601. package/dist/utils/run.cjs +6 -6
  602. package/dist/utils/run.cjs.map +1 -1
  603. package/dist/utils/run.mjs +6 -6
  604. package/dist/utils/run.mjs.map +1 -1
  605. package/dist/utils/save-config.cjs +12 -0
  606. package/dist/utils/save-config.cjs.map +1 -1
  607. package/dist/utils/save-config.mjs +12 -0
  608. package/dist/utils/save-config.mjs.map +1 -1
  609. package/dist/utils/snapshot-hash.cjs +10 -0
  610. package/dist/utils/snapshot-hash.cjs.map +1 -0
  611. package/dist/utils/snapshot-hash.mjs +10 -0
  612. package/dist/utils/snapshot-hash.mjs.map +1 -0
  613. package/dist/utils/string.cjs +0 -1
  614. package/dist/utils/string.cjs.map +1 -1
  615. package/dist/utils/theme.cjs +30 -12
  616. package/dist/utils/theme.cjs.map +1 -1
  617. package/dist/utils/theme.mjs +30 -11
  618. package/dist/utils/theme.mjs.map +1 -1
  619. package/dist/version-manifest-deploy.cjs +50 -0
  620. package/dist/version-manifest-deploy.cjs.map +1 -0
  621. package/dist/version-manifest-deploy.mjs +49 -0
  622. package/dist/version-manifest-deploy.mjs.map +1 -0
  623. package/dist/version-manifest-resolve.cjs +42 -0
  624. package/dist/version-manifest-resolve.cjs.map +1 -0
  625. package/dist/version-manifest-resolve.d.cts +38 -0
  626. package/dist/version-manifest-resolve.d.mts +38 -0
  627. package/dist/version-manifest-resolve.mjs +40 -0
  628. package/dist/version-manifest-resolve.mjs.map +1 -0
  629. package/dist/version-status.cjs +18 -0
  630. package/dist/version-status.cjs.map +1 -0
  631. package/dist/version-status.d.cts +22 -0
  632. package/dist/version-status.d.mts +22 -0
  633. package/dist/version-status.mjs +17 -0
  634. package/dist/version-status.mjs.map +1 -0
  635. package/dist/workspace-catalog.cjs +53 -0
  636. package/dist/workspace-catalog.cjs.map +1 -0
  637. package/dist/workspace-catalog.mjs +51 -0
  638. package/dist/workspace-catalog.mjs.map +1 -0
  639. package/dist/workspace.cjs +237 -0
  640. package/dist/workspace.cjs.map +1 -0
  641. package/dist/workspace.mjs +233 -0
  642. package/dist/workspace.mjs.map +1 -0
  643. package/package.json +179 -27
  644. package/skills/add-a-route/SKILL.md +132 -0
  645. package/skills/api-and-auth/SKILL.md +87 -21
  646. package/skills/api-and-auth/references/middleware.md +1 -1
  647. package/skills/cli-reference/SKILL.md +48 -21
  648. package/skills/code-style/SKILL.md +8 -0
  649. package/skills/dev-workflow/SKILL.md +50 -26
  650. package/skills/extends-config/SKILL.md +31 -19
  651. package/skills/init-upgrade/SKILL.md +29 -16
  652. package/skills/plugin-development/SKILL.md +46 -112
  653. package/skills/plugin-development/references/database.md +82 -0
  654. package/skills/plugin-development/references/request-context.md +67 -0
  655. package/skills/publish-sync/SKILL.md +99 -22
  656. package/skills/registry/SKILL.md +82 -0
  657. package/skills/super-app/SKILL.md +25 -15
  658. package/skills/talk-to-the-app/SKILL.md +138 -0
  659. package/skills/ui-integration/SKILL.md +93 -11
  660. package/dist/cli/db-studio.cjs +0 -131
  661. package/dist/cli/db-studio.cjs.map +0 -1
  662. package/dist/cli/db-studio.mjs +0 -127
  663. package/dist/cli/db-studio.mjs.map +0 -1
  664. package/dist/cli/init.d.cts.map +0 -1
  665. package/dist/cli/init.d.mts.map +0 -1
  666. package/dist/components/dev-view.cjs +0 -309
  667. package/dist/components/dev-view.cjs.map +0 -1
  668. package/dist/components/dev-view.mjs +0 -309
  669. package/dist/components/dev-view.mjs.map +0 -1
  670. package/dist/components/streaming-view.cjs +0 -134
  671. package/dist/components/streaming-view.cjs.map +0 -1
  672. package/dist/components/streaming-view.mjs +0 -132
  673. package/dist/components/streaming-view.mjs.map +0 -1
  674. package/dist/config.d.cts.map +0 -1
  675. package/dist/config.d.mts.map +0 -1
  676. package/dist/contract.d.cts.map +0 -1
  677. package/dist/contract.d.mts.map +0 -1
  678. package/dist/contract.meta.d.cts.map +0 -1
  679. package/dist/contract.meta.d.mts.map +0 -1
  680. package/dist/dag.d.cts.map +0 -1
  681. package/dist/dag.d.mts.map +0 -1
  682. package/dist/db.cjs +0 -81
  683. package/dist/db.cjs.map +0 -1
  684. package/dist/db.d.cts +0 -30
  685. package/dist/db.d.cts.map +0 -1
  686. package/dist/db.d.mts +0 -30
  687. package/dist/db.d.mts.map +0 -1
  688. package/dist/db.mjs +0 -75
  689. package/dist/db.mjs.map +0 -1
  690. package/dist/fastkv.d.cts.map +0 -1
  691. package/dist/fastkv.d.mts.map +0 -1
  692. package/dist/integrity.d.cts.map +0 -1
  693. package/dist/integrity.d.mts.map +0 -1
  694. package/dist/merge.d.cts.map +0 -1
  695. package/dist/merge.d.mts.map +0 -1
  696. package/dist/mf.d.cts.map +0 -1
  697. package/dist/mf.d.mts.map +0 -1
  698. package/dist/plugin.d.cts.map +0 -1
  699. package/dist/plugin.d.mts.map +0 -1
  700. package/dist/service-descriptor.d.cts.map +0 -1
  701. package/dist/service-descriptor.d.mts.map +0 -1
  702. package/dist/types.d.cts.map +0 -1
  703. package/dist/types.d.mts.map +0 -1
  704. package/dist/ui/head.d.cts.map +0 -1
  705. package/dist/ui/head.d.mts.map +0 -1
  706. package/dist/ui/metadata.d.cts.map +0 -1
  707. package/dist/ui/metadata.d.mts.map +0 -1
  708. package/dist/ui/router.d.cts.map +0 -1
  709. package/dist/ui/router.d.mts.map +0 -1
  710. package/dist/ui/runtime.d.cts.map +0 -1
  711. package/dist/ui/runtime.d.mts.map +0 -1
  712. package/dist/ui/types.d.cts.map +0 -1
  713. package/dist/ui/types.d.mts.map +0 -1
package/dist/plugin.cjs CHANGED
@@ -1,1408 +1,73 @@
1
1
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
2
2
  const require_runtime = require('./_virtual/_rolldown/runtime.cjs');
3
- const require_fastkv = require('./fastkv.cjs');
4
- const require_merge = require('./merge.cjs');
5
- const require_network = require('./network.cjs');
6
- const require_types = require('./types.cjs');
7
- const require_config = require('./config.cjs');
8
3
  const require_contract = require('./contract.cjs');
9
- const require_integrity = require('./integrity.cjs');
10
- const require_process_registry = require('./process-registry.cjs');
11
- const require_app = require('./app.cjs');
12
- const require_shared_deps = require('./shared-deps.cjs');
13
- const require_run = require('./utils/run.cjs');
14
- const require_theme = require('./utils/theme.cjs');
15
- const require_build = require('./build.cjs');
16
- const require_infra = require('./cli/infra.cjs');
17
- const require_save_config = require('./utils/save-config.cjs');
18
- const require_cli_init = require('./cli/init.cjs');
19
- const require_status = require('./cli/status.cjs');
20
- const require_sync = require('./cli/sync.cjs');
21
- const require_upgrade = require('./cli/upgrade.cjs');
22
- const require_code_artifacts = require('./code-artifacts.cjs');
23
- const require_service_descriptor = require('./service-descriptor.cjs');
24
- const require_planner = require('./infra/planner.cjs');
25
- const require_preflight = require('./infra/preflight.cjs');
26
- const require_near_cli = require('./near-cli.cjs');
27
- const require_publish = require('./publish.cjs');
28
- let node_fs = require("node:fs");
29
- let node_path = require("node:path");
4
+ const require_resolution_session = require('./resolution/session.cjs');
5
+ const require_bindings = require('./db/bindings.cjs');
6
+ const require_drizzle_kit = require('./db/drizzle-kit.cjs');
7
+ const require_shared = require('./commands/shared.cjs');
8
+ const require_build = require('./commands/build.cjs');
9
+ const require_config = require('./commands/config.cjs');
10
+ const require_db = require('./commands/db.cjs');
11
+ const require_deploy = require('./commands/deploy.cjs');
12
+ const require_project_env = require('./env/project-env.cjs');
13
+ const require_progress = require('./progress.cjs');
14
+ const require_dev = require('./commands/dev.cjs');
15
+ const require_init = require('./commands/init.cjs');
16
+ const require_keys = require('./commands/keys.cjs');
17
+ const require_ops = require('./commands/ops.cjs');
18
+ const require_plugins = require('./commands/plugins.cjs');
19
+ const require_upgrade = require('./commands/upgrade.cjs');
30
20
  let effect = require("effect");
31
- let node_events = require("node:events");
21
+ let every_plugin = require("every-plugin");
32
22
  let node_process = require("node:process");
33
23
  node_process = require_runtime.__toESM(node_process, 1);
34
- let node_readline_promises = require("node:readline/promises");
35
- let every_plugin = require("every-plugin");
24
+ let _clack_prompts = require("@clack/prompts");
25
+ _clack_prompts = require_runtime.__toESM(_clack_prompts, 1);
36
26
  let zod = require("zod");
37
27
 
38
28
  //#region src/plugin.ts
39
- const pluginEvents = new node_events.EventEmitter();
40
- let pendingSession = null;
41
- let pendingStartSummary = null;
42
- function consumeDevSession() {
43
- const data = pendingSession;
44
- const summary = pendingStartSummary;
45
- pendingSession = null;
46
- pendingStartSummary = null;
47
- if (!data) return null;
48
- return summary ? {
49
- ...data,
50
- summary
51
- } : data;
52
- }
53
- async function timePhase(timings, name, fn) {
54
- pluginEvents.emit("progress", {
55
- phase: name,
56
- status: "running"
57
- });
58
- const startedAt = Date.now();
59
- try {
60
- const result = await fn();
61
- timings.push({
62
- name,
63
- durationMs: Date.now() - startedAt
64
- });
65
- pluginEvents.emit("progress", {
66
- phase: name,
67
- status: "done",
68
- durationMs: Date.now() - startedAt
69
- });
70
- return result;
71
- } catch (error) {
72
- pluginEvents.emit("progress", {
73
- phase: name,
74
- status: "error",
75
- durationMs: Date.now() - startedAt
76
- });
77
- throw error;
78
- }
79
- }
80
- const PUBLISH_FUNCTION_NAMES = ["__fastdata_kv"];
81
- function parseSourceMode(value, defaultValue) {
82
- if (value === "local" || value === "remote") return value;
83
- return defaultValue;
84
- }
85
- function buildConfigResult(bosConfig, full = false) {
86
- const packages = bosConfig?.app && typeof bosConfig.app === "object" ? Object.keys(bosConfig.app) : [];
87
- const remotes = packages.filter((name) => name !== "host");
88
- return {
89
- config: bosConfig ?? null,
90
- packages,
91
- remotes,
92
- full
93
- };
94
- }
95
- function isValidProxyUrl(url) {
96
- try {
97
- const parsed = new URL(url);
98
- return parsed.protocol === "http:" || parsed.protocol === "https:";
99
- } catch {
100
- return false;
101
- }
102
- }
103
- function resolveProxyUrl(bosConfig) {
104
- if (!bosConfig) return null;
105
- const apiConfig = bosConfig.app.api;
106
- if (!apiConfig) return null;
107
- if (apiConfig.proxy && isValidProxyUrl(apiConfig.proxy)) return apiConfig.proxy;
108
- if (apiConfig.production && isValidProxyUrl(apiConfig.production)) return apiConfig.production;
109
- return null;
110
- }
111
- function sanitizePluginKey(value) {
112
- return value.replace(/[^A-Za-z0-9/_-]/g, "-").replace(/\/+/g, "/").split("/").filter(Boolean).map((segment) => segment.replace(/[^A-Za-z0-9_-]/g, "-")).join("/").replace(/^\/+|\/+$/g, "");
113
- }
114
- function defaultPluginKey(source) {
115
- const normalized = source.replace(/^local:/, "").replace(/\/$/, "");
116
- if (source.startsWith("local:")) return sanitizePluginKey((0, node_path.basename)(normalized)) || "plugin";
117
- try {
118
- const url = new URL(source);
119
- return sanitizePluginKey((0, node_path.basename)(url.pathname) || url.hostname) || "plugin";
120
- } catch {
121
- return sanitizePluginKey(source) || "plugin";
122
- }
123
- }
124
- function pluginLocalPath(configDir, attachment) {
125
- const ref = require_build.getPluginRef(attachment);
126
- const source = ref?.development ?? ref?.production;
127
- if (!source?.startsWith("local:")) return null;
128
- return (0, node_path.join)(configDir, source.slice(6));
129
- }
130
- function listPluginAttachments(config) {
131
- return Object.entries(config?.plugins ?? {}).map(([key, attachment]) => {
132
- const ref = require_build.getPluginRef(attachment);
133
- return {
134
- key,
135
- development: ref?.development,
136
- production: ref?.production,
137
- localPath: ref?.development?.startsWith("local:") ? ref.development.slice(6) : void 0,
138
- source: ref?.development?.startsWith("local:") ? "local" : "remote",
139
- integrity: ref?.integrity,
140
- version: ref?.version,
141
- name: ref?.name
142
- };
143
- }).sort((a, b) => a.key.localeCompare(b.key));
144
- }
145
- async function resolveRemoteConfigChain(accountId, gatewayId, visited) {
146
- const selfRef = `bos://${accountId}/${gatewayId}`;
147
- if (visited.has(selfRef)) throw new Error(`Circular extends detected: ${selfRef}`);
148
- const nextVisited = new Set(visited);
149
- nextVisited.add(selfRef);
150
- const config = await require_fastkv.fetchBosConfigFromFastKv(selfRef);
151
- const parentRef = config.extends ? require_merge.resolveExtendsRef(config.extends, "production") : void 0;
152
- let merged;
153
- if (!parentRef) merged = config;
154
- else {
155
- const { accountId: parentAccountId, gatewayId: parentGatewayId } = require_fastkv.parseBosUrl(parentRef);
156
- merged = require_merge.mergeBosConfigWithExtends(await resolveRemoteConfigChain(parentAccountId, parentGatewayId, nextVisited), config);
157
- }
158
- return require_config.resolveConfigComposableEntries(require_types.BosConfigSchema.parse(merged), node_process.default.cwd(), "production");
159
- }
160
- async function fetchPublishedConfig(accountId, gatewayId) {
161
- try {
162
- return await resolveRemoteConfigChain(accountId, gatewayId, /* @__PURE__ */ new Set());
163
- } catch (error) {
164
- if (error instanceof Error && error.message.startsWith("No config found")) return null;
165
- throw error;
166
- }
167
- }
168
29
  var plugin_default = (0, every_plugin.createPlugin)({
169
- variables: zod.z.object({ configPath: zod.z.string().optional() }),
30
+ variables: zod.z.object({
31
+ configPath: zod.z.string().optional(),
32
+ configDir: zod.z.string().optional()
33
+ }),
170
34
  secrets: zod.z.object({}),
171
35
  contract: require_contract.bosContract,
172
- initialize: (config) => effect.Effect.promise(async () => {
173
- const configResult = await require_config.loadResolvedConfig({ path: config.variables.configPath });
174
- return {
175
- bosConfig: configResult?.config ?? null,
176
- runtimeConfig: configResult?.runtime ?? null,
177
- configDir: require_config.getProjectRoot()
178
- };
36
+ initialize: (config, _plugins) => effect.Effect.gen(function* () {
37
+ const session = yield* effect.Effect.promise(() => require_resolution_session.openResolution({ path: config.variables.configPath }));
38
+ const projectEnv = yield* (0, every_plugin.buildScoped)(require_project_env.ProjectEnv, require_project_env.ProjectEnvLive);
39
+ const effectContext = yield* effect.Effect.context();
40
+ const configDir = config.variables.configDir ?? session?.root ?? node_process.default.cwd();
41
+ const services = yield* (0, every_plugin.buildScopedContext)(effect.Layer.mergeAll(require_bindings.makeDatabaseBindings({
42
+ projectDir: configDir,
43
+ loadRuntimeConfig: async () => await session?.buildRuntime() ?? null,
44
+ loadEnv: () => effect.Effect.runPromiseWith(effectContext)(projectEnv.load(configDir))
45
+ }), require_drizzle_kit.makeDrizzleKitLive({
46
+ projectDir: configDir,
47
+ onLog: (message) => _clack_prompts.log.info(message)
48
+ })));
49
+ return effect.Layer.succeed(require_shared.BosDepsTag, {
50
+ session,
51
+ databaseBindings: effect.Context.get(services, require_bindings.DatabaseBindings),
52
+ drizzleKit: effect.Context.get(services, require_drizzle_kit.DrizzleKit)
53
+ });
179
54
  }),
180
- shutdown: () => effect.Effect.void,
181
- createRouter: (deps, builder) => ({
182
- config: builder.config.handler(async ({ input }) => {
183
- if (input.full) return buildConfigResult(deps.bosConfig, true);
184
- return buildConfigResult((await require_config.loadLocalConfig({ cwd: deps.configDir }))?.config ?? null, false);
185
- }),
186
- pluginAdd: builder.pluginAdd.handler(async ({ input }) => {
187
- if (!deps.bosConfig) return {
188
- status: "error",
189
- key: "",
190
- error: "No bos.config.json found"
191
- };
192
- const isBosRef = input.source.startsWith("bos://");
193
- const isLocal = input.source.startsWith("local:");
194
- const key = sanitizePluginKey(input.as ?? (isBosRef ? input.source.split("/").pop() ?? "plugin" : defaultPluginKey(input.source)));
195
- const existing = deps.bosConfig.plugins?.[key];
196
- const existingEntry = existing && typeof existing === "object" ? existing : {};
197
- const nextPlugins = { ...deps.bosConfig.plugins ?? {} };
198
- if (isBosRef) nextPlugins[key] = {
199
- ...existingEntry,
200
- extends: input.source
201
- };
202
- else if (isLocal) nextPlugins[key] = {
203
- ...existingEntry,
204
- development: input.source,
205
- ...existingEntry.extends ? {} : {}
206
- };
207
- else nextPlugins[key] = {
208
- ...existingEntry,
209
- production: input.production ?? input.source
210
- };
211
- deps.bosConfig = {
212
- ...deps.bosConfig,
213
- plugins: nextPlugins
214
- };
215
- await require_save_config.saveBosConfig(deps.configDir, deps.bosConfig);
216
- await require_code_artifacts.generateCodeArtifacts(deps.configDir, deps.bosConfig);
217
- const stored = deps.bosConfig.plugins?.[key];
218
- const storedObj = stored && typeof stored === "object" ? stored : {};
219
- return {
220
- status: "added",
221
- key,
222
- development: storedObj.development,
223
- production: storedObj.production,
224
- integrity: storedObj.integrity,
225
- version: storedObj.version
226
- };
227
- }),
228
- pluginRemove: builder.pluginRemove.handler(async ({ input }) => {
229
- if (!deps.bosConfig) return {
230
- status: "error",
231
- key: input.key,
232
- error: "No bos.config.json found"
233
- };
234
- if (!deps.bosConfig.plugins?.[input.key]) return {
235
- status: "error",
236
- key: input.key,
237
- error: `Plugin '${input.key}' is not configured`
238
- };
239
- const nextPlugins = { ...deps.bosConfig.plugins ?? {} };
240
- delete nextPlugins[input.key];
241
- deps.bosConfig = {
242
- ...deps.bosConfig,
243
- plugins: Object.keys(nextPlugins).length > 0 ? nextPlugins : void 0
244
- };
245
- await require_save_config.saveBosConfig(deps.configDir, deps.bosConfig);
246
- await require_code_artifacts.generateCodeArtifacts(deps.configDir, deps.bosConfig);
247
- return {
248
- status: "removed",
249
- key: input.key
250
- };
251
- }),
252
- pluginList: builder.pluginList.handler(async () => {
253
- return {
254
- status: "listed",
255
- plugins: listPluginAttachments(deps.bosConfig)
256
- };
257
- }),
258
- pluginPublish: builder.pluginPublish.handler(async ({ input }) => {
259
- if (!deps.bosConfig) return {
260
- status: "error",
261
- key: input.key,
262
- error: "No bos.config.json found"
263
- };
264
- const attachment = deps.bosConfig.plugins?.[input.key];
265
- if (!attachment) return {
266
- status: "error",
267
- key: input.key,
268
- error: `Plugin '${input.key}' is not configured`
269
- };
270
- const attachmentRef = require_build.getPluginRef(attachment);
271
- const localPath = pluginLocalPath(deps.configDir, attachment);
272
- if (!localPath) return {
273
- status: "error",
274
- key: input.key,
275
- error: `Plugin '${input.key}' does not have a local development path`
276
- };
277
- const pkgPath = (0, node_path.join)(localPath, "package.json");
278
- if (!await require_build.fileExists(pkgPath)) return {
279
- status: "error",
280
- key: input.key,
281
- error: `Missing package.json at ${localPath}`
282
- };
283
- const pkgJson = await require_build.readJsonFile(pkgPath);
284
- const script = pkgJson.scripts?.deploy ? "deploy" : "build";
285
- const { stdout, stderr, exitCode } = await require_run.run("bun", ["run", script], {
286
- cwd: localPath,
287
- capture: true
288
- });
289
- if (exitCode !== 0) {
290
- if (stdout.trim()) node_process.default.stdout.write(stdout);
291
- if (stderr.trim()) node_process.default.stderr.write(stderr);
292
- return {
293
- status: "error",
294
- key: input.key,
295
- error: `Publish failed with exit code ${exitCode}`
296
- };
297
- }
298
- if (stdout.trim()) node_process.default.stdout.write(stdout);
299
- if (stderr.trim()) node_process.default.stderr.write(stderr);
300
- const output = `${stdout}\n${stderr}`;
301
- const deployEntry = require_integrity.parseDeployLines(output).find((e) => e.urlField === `plugins.${input.key}.production`);
302
- let publishedUrl;
303
- let integrity;
304
- if (deployEntry) {
305
- publishedUrl = deployEntry.url;
306
- integrity = deployEntry.integrity;
307
- } else {
308
- publishedUrl = require_publish.extractPublishedUrl(output) ?? void 0;
309
- integrity = publishedUrl ? await require_integrity.computeSriHashForUrl(publishedUrl) ?? void 0 : void 0;
310
- }
311
- let manifest = null;
312
- if (publishedUrl) manifest = await require_fastkv.fetchRemotePluginManifest(publishedUrl);
313
- else if (attachmentRef?.production) {
314
- manifest = await require_fastkv.fetchRemotePluginManifest(attachmentRef.production);
315
- if (manifest) publishedUrl = attachmentRef.production;
316
- }
317
- const version = manifest?.plugin.version ?? pkgJson.version;
318
- if (publishedUrl) {
319
- const rootConfigPath = (0, node_path.join)(deps.configDir, "bos.config.json");
320
- try {
321
- const rootConfig = JSON.parse((0, node_fs.readFileSync)(rootConfigPath, "utf-8"));
322
- if (!rootConfig.plugins || typeof rootConfig.plugins !== "object") rootConfig.plugins = {};
323
- const plugins = rootConfig.plugins;
324
- if (!plugins[input.key] || typeof plugins[input.key] !== "object") plugins[input.key] = {};
325
- const entry = plugins[input.key];
326
- entry.production = publishedUrl;
327
- if (integrity) entry.integrity = integrity;
328
- else delete entry.integrity;
329
- (0, node_fs.writeFileSync)(rootConfigPath, `${JSON.stringify(rootConfig, null, 2)}\n`);
330
- console.log(` ✅ Updated bos.config.json: plugins.${input.key}.production`);
331
- } catch (err) {
332
- console.error(` ❌ Failed to update bos.config.json:`, err instanceof Error ? err.message : err);
333
- }
334
- await require_code_artifacts.generateCodeArtifacts(deps.configDir, deps.bosConfig);
335
- }
336
- return {
337
- status: "published",
338
- key: input.key,
339
- path: localPath,
340
- script,
341
- production: publishedUrl ?? attachmentRef?.production,
342
- integrity: integrity ?? void 0,
343
- version: version ?? void 0
344
- };
345
- }),
346
- dev: builder.dev.handler(async ({ input }) => {
347
- const devTimings = [];
348
- require_infra.ensureEnvFile(deps.configDir);
349
- require_infra.loadProjectEnv(deps.configDir);
350
- const localPackages = require_app.detectLocalPackages(deps.bosConfig ?? void 0, deps.runtimeConfig ?? void 0);
351
- const hostSource = localPackages.includes("host") ? parseSourceMode(input.host, "local") : "remote";
352
- const uiSource = localPackages.includes("ui") ? parseSourceMode(input.ui, "local") : "remote";
353
- const apiSource = localPackages.includes("api") ? parseSourceMode(input.api, "local") : "remote";
354
- const authSource = localPackages.includes("auth") ? parseSourceMode(input.auth, "local") : "remote";
355
- const ssr = input.ssr ?? false;
356
- const proxy = input.proxy ?? false;
357
- const sharedSync = await timePhase(devTimings, "shared deps", () => require_shared_deps.syncResolvedSharedDeps({
358
- configDir: deps.configDir,
359
- hostMode: hostSource,
360
- bosConfig: deps.bosConfig ?? void 0,
361
- extendsChain: []
362
- }));
363
- let configMayHaveChanged = false;
364
- if (sharedSync.catalogChanged) {
365
- await timePhase(devTimings, "install", () => require_run.run("bun", ["install"], { cwd: deps.configDir }));
366
- configMayHaveChanged = true;
367
- }
368
- const shouldBuildPlugin = apiSource === "local" && !proxy || localPackages.some((pkg) => pkg.startsWith("plugin:"));
369
- await timePhase(devTimings, "build", async () => {
370
- const buildTasks = [require_build.buildEverythingDevQuietly(deps.configDir)];
371
- if (shouldBuildPlugin) buildTasks.push(require_build.buildEveryPluginQuietly(deps.configDir));
372
- await Promise.all(buildTasks);
373
- });
374
- let devExtendsChain;
375
- if (configMayHaveChanged || input.remotePlugins !== void 0) {
376
- const refreshed = await timePhase(devTimings, "resolve config", () => require_config.loadResolvedConfig({
377
- cwd: deps.configDir,
378
- remotePlugins: input.remotePlugins
379
- }));
380
- deps.bosConfig = refreshed?.config ?? deps.bosConfig;
381
- deps.runtimeConfig = refreshed?.runtime ?? deps.runtimeConfig;
382
- devExtendsChain = refreshed?.source.extended;
383
- }
384
- if (!deps.bosConfig) return {
385
- status: "error",
386
- description: "No bos.config.json found",
387
- processes: [],
388
- timings: devTimings
389
- };
390
- if (proxy && !resolveProxyUrl(deps.bosConfig)) return {
391
- status: "error",
392
- description: "No valid proxy URL configured in bos.config.json",
393
- processes: [],
394
- timings: devTimings
395
- };
396
- require_config.suppressWarnings();
397
- const developmentRuntime = await require_app.buildRuntimeConfig(deps.bosConfig, {
398
- uiSource,
399
- apiSource,
400
- authSource,
401
- hostSource,
402
- env: "development",
403
- plugins: deps.runtimeConfig?.plugins
404
- });
405
- require_config.drainConfigWarnings();
406
- require_config.resumeWarnings();
407
- const plan = await timePhase(devTimings, "ports", () => effect.Effect.runPromise(require_planner.planInfra({
408
- configDir: deps.configDir,
409
- bosConfig: developmentRuntime,
410
- cli: {
411
- port: input.port,
412
- apiPort: input.apiPort,
413
- authPort: input.authPort,
414
- uiPort: input.uiPort,
415
- pluginPortStart: input.pluginPortStart,
416
- ssr,
417
- proxy,
418
- hostSource,
419
- uiSource,
420
- apiSource,
421
- authSource,
422
- interactive: input.interactive
423
- }
424
- }).pipe(effect.Effect.provide(require_app.PortAllocatorLive))));
425
- const mergedEnv = { ...plan.envGenerated };
426
- for (const [k, v] of Object.entries(node_process.default.env)) if (v != null && !(k in plan.envGenerated)) mergedEnv[k] = v;
427
- const preflightFailures = await effect.Effect.runPromise(require_preflight.preflightLocalInfra(plan.envGenerated, mergedEnv));
428
- if (preflightFailures.length > 0) return {
429
- status: "error",
430
- description: `Infra preflight failed: ${preflightFailures.map((f) => f.error).join("; ")}`,
431
- processes: [],
432
- timings: devTimings
433
- };
434
- const services = require_service_descriptor.buildServiceDescriptorMapFromPlan(plan, {
435
- ssr,
436
- proxy
437
- });
438
- require_infra.writeGeneratedInfra(deps.configDir, plan.runtimeConfig);
439
- require_infra.ensureEnvFile(deps.configDir);
440
- require_infra.loadProjectEnv(deps.configDir);
441
- const packages = [...plan.serviceDescriptors.keys()];
442
- if (node_process.default.env.DEBUG === "true" || node_process.default.env.DEBUG === "1") console.error("[DEBUG dev] services keys:", packages.join(", "));
443
- if (services.get("api")?.proxy) {
444
- const proxyUrl = resolveProxyUrl(deps.bosConfig);
445
- if (proxyUrl) plan.orchestrator.env.API_PROXY = proxyUrl;
446
- }
447
- pendingSession = {
448
- orchestrator: plan.orchestrator,
449
- services,
450
- runtimeConfig: plan.runtimeConfig
451
- };
452
- await timePhase(devTimings, "generate artifacts", () => require_code_artifacts.generateCodeArtifacts(deps.configDir, deps.bosConfig, {
453
- env: "development",
454
- extendsChain: devExtendsChain,
455
- runtimeConfig: plan.runtimeConfig
456
- }));
457
- return {
458
- status: "started",
459
- description: require_service_descriptor.buildDescription(services) || plan.description,
460
- processes: packages,
461
- timings: devTimings
462
- };
463
- }),
464
- start: builder.start.handler(async ({ input }) => {
465
- require_infra.ensureEnvFile(deps.configDir);
466
- require_infra.loadProjectEnv(deps.configDir);
467
- pluginEvents.emit("progress", {
468
- phase: "config",
469
- status: "running"
470
- });
471
- const bosEnv = input.env ?? (node_process.default.env.BOS_ENV === "staging" ? "staging" : "production");
472
- const account = input.account ?? node_process.default.env.BOS_ACCOUNT;
473
- const domain = input.domain ?? node_process.default.env.BOS_GATEWAY;
474
- let config = null;
475
- let remoteConfig = null;
476
- if (account && domain) try {
477
- remoteConfig = await fetchPublishedConfig(account, domain);
478
- if (remoteConfig) config = remoteConfig;
479
- else return {
480
- status: "error",
481
- url: "",
482
- error: `No config found at bos://${account}/${domain}. Verify the account and gateway are correct and the config has been published.\nExpected URL: ${require_fastkv.buildRegistryConfigUrl(account, domain)}`
483
- };
484
- } catch (error) {
485
- return {
486
- status: "error",
487
- url: "",
488
- error: `Failed to fetch config for bos://${account}/${domain}: ${error instanceof Error ? error.message : "Unknown error"}\nExpected URL: ${require_fastkv.buildRegistryConfigUrl(account, domain)}`
489
- };
490
- }
491
- else config = deps.bosConfig;
492
- if (!config) return {
493
- status: "error",
494
- url: "",
495
- error: "No configuration found. Provide --account and --gateway flags, or create a local bos.config.json."
496
- };
497
- if (account) config = {
498
- ...config,
499
- account
500
- };
501
- if (domain) config = {
502
- ...config,
503
- domain
504
- };
505
- const port = input.port ?? require_config.getHostDevelopmentPort(config.app.host.development);
506
- const isStaging = bosEnv === "staging";
507
- const runtimePlugins = await require_config.buildRuntimePluginsForConfig(config, deps.configDir, "production");
508
- require_config.suppressWarnings();
509
- const runtimeConfig = await require_app.buildRuntimeConfig(config, {
510
- uiSource: "remote",
511
- apiSource: "remote",
512
- authSource: "remote",
513
- hostSource: "remote",
514
- env: "production",
515
- plugins: runtimePlugins
516
- });
517
- require_config.drainConfigWarnings();
518
- require_config.resumeWarnings();
519
- if (isStaging && config.staging?.domain) runtimeConfig.domain = config.staging.domain;
520
- if (isStaging) runtimeConfig.env = "staging";
521
- require_infra.syncGeneratedInfra(deps.configDir, runtimeConfig);
522
- require_infra.ensureEnvFile(deps.configDir);
523
- require_infra.loadProjectEnv(deps.configDir);
524
- pluginEvents.emit("progress", {
525
- phase: "generate artifacts",
526
- status: "running"
527
- });
528
- await require_code_artifacts.generateCodeArtifacts(deps.configDir, config, {
529
- env: "production",
530
- runtimeConfig
531
- });
532
- pluginEvents.emit("progress", {
533
- phase: "generate artifacts",
534
- status: "done"
535
- });
536
- const productionEnv = {};
537
- const warnings = [];
538
- if (!node_process.default.env.CORS_ORIGIN && config.domain) {
539
- const defaultOrigin = `https://${isStaging ? config.staging?.domain ?? config.domain : config.domain}`;
540
- productionEnv.CORS_ORIGIN = defaultOrigin;
541
- warnings.push(`CORS_ORIGIN defaulting to ${defaultOrigin}`);
542
- }
543
- const requiredSecrets = /* @__PURE__ */ new Set();
544
- const missingSecrets = [];
545
- if (runtimeConfig.host.secrets) for (const s of runtimeConfig.host.secrets) requiredSecrets.add(s);
546
- if (runtimeConfig.auth?.secrets) for (const s of runtimeConfig.auth.secrets) requiredSecrets.add(s);
547
- if (runtimeConfig.api?.secrets) for (const s of runtimeConfig.api.secrets) requiredSecrets.add(s);
548
- for (const plugin of Object.values(runtimeConfig.plugins ?? {})) if (plugin.secrets) for (const s of plugin.secrets) requiredSecrets.add(s);
549
- for (const secret of requiredSecrets) {
550
- const value = node_process.default.env[secret];
551
- if (!value || value.length === 0) missingSecrets.push(secret);
552
- }
553
- if (missingSecrets.length > 0) warnings.push(`Missing ${missingSecrets.length} secret(s): ${missingSecrets.join(", ")}`);
554
- const stagingEnvVars = isStaging ? { BOS_GATEWAY: config.staging?.domain ?? config.domain ?? "" } : {};
555
- const plan = await effect.Effect.runPromise(require_planner.planInfra({
556
- configDir: deps.configDir,
557
- bosConfig: runtimeConfig,
558
- cli: {
559
- port: input.port,
560
- ssr: false,
561
- proxy: false,
562
- hostSource: "remote",
563
- uiSource: "remote",
564
- apiSource: "remote",
565
- authSource: "remote",
566
- interactive: input.interactive
567
- }
568
- }).pipe(effect.Effect.provide(require_app.PortAllocatorLive)));
569
- const services = require_service_descriptor.buildServiceDescriptorMap(plan.runtimeConfig);
570
- const summary = {
571
- configSource: remoteConfig ? `bos://${account}/${domain}` : require_config.findConfigPath() ?? "bos.config.json",
572
- configSourceHttp: remoteConfig && account && domain ? require_fastkv.buildRegistryConfigUrl(account, domain) : void 0,
573
- account: config.account,
574
- domain: config.domain ?? void 0,
575
- modules: {
576
- host: plan.runtimeConfig.host.remoteUrl ?? plan.runtimeConfig.host.url ?? "local",
577
- ui: plan.runtimeConfig.ui.url ?? "local",
578
- api: plan.runtimeConfig.api.url ?? "local",
579
- auth: plan.runtimeConfig.auth?.url ?? void 0
580
- },
581
- warnings
582
- };
583
- pendingSession = {
584
- orchestrator: {
585
- packages: ["host"],
586
- env: {
587
- NODE_ENV: "production",
588
- ...productionEnv,
589
- ...stagingEnvVars,
590
- ...plan.launch.env
591
- },
592
- description: `${isStaging ? "Staging" : "Production"} Mode (${config.account})`,
593
- port: plan.resolvedPorts.host ?? port,
594
- interactive: input.interactive,
595
- noLogs: true
596
- },
597
- services,
598
- runtimeConfig: plan.runtimeConfig
599
- };
600
- pendingStartSummary = summary;
601
- pluginEvents.emit("progress", {
602
- phase: "config",
603
- status: "done"
604
- });
605
- return {
606
- status: "running",
607
- url: plan.launch.hostUrl ?? `http://localhost:${plan.resolvedPorts.host ?? port}`
608
- };
609
- }),
610
- build: builder.build.handler(async ({ input }) => {
611
- if (!deps.bosConfig) return {
612
- status: "error",
613
- built: [],
614
- skipped: []
615
- };
616
- const buildEnv = input.deploy ? "production" : "development";
617
- const targets = require_build.selectWorkspaceTargets(input.packages, deps.bosConfig);
618
- if (targets.length === 0) return {
619
- status: "error",
620
- built: [],
621
- skipped: []
622
- };
623
- require_config.suppressWarnings();
624
- const runtimeConfig = await require_app.buildRuntimeConfig(deps.bosConfig, {
625
- uiSource: deps.bosConfig.app.ui?.development ? "local" : "remote",
626
- apiSource: deps.bosConfig.app.api?.development ? "local" : "remote",
627
- authSource: deps.bosConfig.app.auth?.development ? "local" : "remote",
628
- hostSource: deps.bosConfig.app.host?.development ? "local" : "remote",
629
- env: buildEnv,
630
- plugins: deps.runtimeConfig?.plugins
631
- });
632
- require_config.drainConfigWarnings();
633
- require_config.resumeWarnings();
634
- await require_code_artifacts.generateCodeArtifacts(deps.configDir, deps.bosConfig, {
635
- env: buildEnv,
636
- runtimeConfig
637
- });
638
- const { built, skipped } = await require_build.buildWorkspaceTargets({
639
- configDir: deps.configDir,
640
- bosConfig: deps.bosConfig,
641
- runtimeConfig,
642
- targets,
643
- deploy: input.deploy
644
- });
645
- if (built.length === 0) return {
646
- status: "error",
647
- built: [],
648
- skipped
649
- };
650
- return {
651
- status: "success",
652
- built,
653
- skipped,
654
- deployed: input.deploy
655
- };
656
- }),
657
- publish: builder.publish.handler(async ({ input }) => {
658
- if (!deps.bosConfig) return {
659
- status: "error",
660
- registryUrl: "",
661
- error: "No bos.config.json found"
662
- };
663
- const result = await require_publish.publishToFastKv({
664
- bosConfig: deps.bosConfig,
665
- runtimeConfig: deps.runtimeConfig,
666
- configDir: deps.configDir,
667
- env: input.env,
668
- build: input.deploy,
669
- dryRun: input.dryRun,
670
- verbose: input.verbose,
671
- packages: input.packages,
672
- network: input.network,
673
- privateKey: input.privateKey
674
- });
675
- if (result.publishConfig) {
676
- const refreshed = await require_config.loadResolvedConfig({ cwd: deps.configDir });
677
- if (refreshed?.config) {
678
- deps.bosConfig = refreshed.config;
679
- deps.runtimeConfig = refreshed.runtime;
680
- }
681
- }
682
- return {
683
- status: result.status,
684
- registryUrl: result.registryUrl,
685
- txHash: result.txHash,
686
- error: result.error,
687
- built: result.built,
688
- skipped: result.skipped,
689
- deployResults: result.deployResults
690
- };
691
- }),
692
- deploy: builder.deploy.handler(async ({ input }) => {
693
- if (!deps.bosConfig) return {
694
- status: "error",
695
- registryUrl: "",
696
- redeployed: false,
697
- error: "No bos.config.json found"
698
- };
699
- const result = await require_publish.publishToFastKv({
700
- bosConfig: deps.bosConfig,
701
- runtimeConfig: deps.runtimeConfig,
702
- configDir: deps.configDir,
703
- env: input.env,
704
- build: input.build,
705
- dryRun: input.dryRun,
706
- verbose: input.verbose,
707
- packages: input.packages,
708
- network: input.network,
709
- privateKey: input.privateKey
710
- });
711
- if (result.status === "error") return {
712
- status: "error",
713
- registryUrl: result.registryUrl,
714
- txHash: result.txHash,
715
- built: result.built,
716
- skipped: result.skipped,
717
- redeployed: false,
718
- error: result.error,
719
- deployResults: result.deployResults
720
- };
721
- if (result.status === "dry-run") return {
722
- status: "dry-run",
723
- registryUrl: result.registryUrl,
724
- built: result.built,
725
- skipped: result.skipped,
726
- redeployed: false
727
- };
728
- if (result.publishConfig) {
729
- const refreshed = await require_config.loadResolvedConfig({ cwd: deps.configDir });
730
- if (refreshed?.config) {
731
- deps.bosConfig = refreshed.config;
732
- deps.runtimeConfig = refreshed.runtime;
733
- }
734
- }
735
- let redeployed = false;
736
- let service;
737
- if (node_process.default.env.RAILWAY_TOKEN) {
738
- const railwayService = input.service ?? deps.bosConfig.ci?.railway?.service;
739
- if (!railwayService) {
740
- console.log();
741
- console.log(require_theme.colors.yellow(" Railway redeploy skipped: ci.railway.service is not configured in bos.config.json"));
742
- return {
743
- status: "published",
744
- registryUrl: result.registryUrl,
745
- txHash: result.txHash,
746
- built: result.built,
747
- skipped: result.skipped,
748
- redeployed: false,
749
- deployResults: result.deployResults,
750
- error: "Config published but Railway redeploy failed: ci.railway.service is not configured in bos.config.json"
751
- };
752
- }
753
- service = railwayService;
754
- console.log();
755
- console.log(` Redeploying Railway service ${require_theme.colors.cyan(railwayService)}...`);
756
- try {
757
- const railResult = await require_run.run("railway", [
758
- "redeploy",
759
- "--service",
760
- railwayService,
761
- "--yes"
762
- ], { capture: true });
763
- if (railResult?.stdout) {
764
- for (const line of railResult.stdout.split("\n")) if (line.trim()) console.log(` ${require_theme.colors.dim(line.trim())}`);
765
- }
766
- redeployed = true;
767
- console.log(require_theme.colors.green(` Railway redeploy complete`));
768
- } catch (error) {
769
- const message = error instanceof Error ? error.message : String(error);
770
- const railError = message.includes("not found") || message.includes("ENOENT") ? "Railway CLI not found. Install it: npm i -g @railway/cli" : `Railway redeploy failed: ${message}`;
771
- console.log(require_theme.colors.yellow(` ${railError}`));
772
- return {
773
- status: "published",
774
- registryUrl: result.registryUrl,
775
- txHash: result.txHash,
776
- built: result.built,
777
- skipped: result.skipped,
778
- redeployed: false,
779
- service,
780
- deployResults: result.deployResults,
781
- error: `Config published but ${railError}`
782
- };
783
- }
784
- } else {
785
- console.log();
786
- console.log(require_theme.colors.yellow(" Railway redeploy skipped (RAILWAY_TOKEN not set)"));
787
- }
788
- return {
789
- status: "deployed",
790
- registryUrl: result.registryUrl,
791
- txHash: result.txHash,
792
- built: result.built,
793
- skipped: result.skipped,
794
- redeployed,
795
- service,
796
- deployResults: result.deployResults
797
- };
798
- }),
799
- keyPublish: builder.keyPublish.handler(async ({ input }) => {
800
- if (!deps.bosConfig) return {
801
- status: "error",
802
- account: "",
803
- network: "mainnet",
804
- contract: "",
805
- allowance: input.allowance,
806
- functionNames: PUBLISH_FUNCTION_NAMES,
807
- error: "No bos.config.json found"
808
- };
809
- const account = deps.bosConfig.account;
810
- const network = require_network.getNetworkIdForAccount(account);
811
- const contract = require_fastkv.getRegistryNamespaceForAccount(account);
812
- try {
813
- await effect.Effect.runPromise(require_near_cli.ensureNearCli);
814
- const oldKeys = await require_near_cli.listPublishKeys({
815
- account,
816
- contract,
817
- network
818
- });
819
- const keyPair = await require_near_cli.addFunctionCallAccessKey({
820
- account,
821
- contract,
822
- allowance: input.allowance,
823
- functionNames: PUBLISH_FUNCTION_NAMES,
824
- network
825
- });
826
- if (oldKeys.length > 0) {
827
- console.log();
828
- console.log(` Found ${oldKeys.length} existing publish key${oldKeys.length > 1 ? "s" : ""}:`);
829
- for (const k of oldKeys) console.log(` ${require_theme.colors.dim(k)}`);
830
- const rl = (0, node_readline_promises.createInterface)({
831
- input: node_process.default.stdin,
832
- output: node_process.default.stdout
833
- });
834
- const answer = await rl.question(" Remove old key(s)? [Y/n] ");
835
- rl.close();
836
- if (answer.toLowerCase() !== "n" && answer.toLowerCase() !== "no") try {
837
- await require_near_cli.deleteAccessKeys(account, oldKeys, network);
838
- console.log(` ${require_theme.colors.green("✓")} Removed ${oldKeys.length} old key${oldKeys.length > 1 ? "s" : ""}`);
839
- } catch {
840
- console.log(` ${require_theme.colors.yellow("⚠")} Failed to remove old key${oldKeys.length > 1 ? "s" : ""} (new key still active)`);
841
- }
842
- else console.log(` ${require_theme.colors.dim("Old key(s) retained.")}`);
843
- }
844
- return {
845
- status: "published",
846
- account,
847
- network,
848
- contract,
849
- allowance: input.allowance,
850
- functionNames: PUBLISH_FUNCTION_NAMES,
851
- publicKey: keyPair.publicKey,
852
- privateKey: keyPair.privateKey
853
- };
854
- } catch (error) {
855
- return {
856
- status: "error",
857
- account,
858
- network,
859
- contract,
860
- allowance: input.allowance,
861
- functionNames: PUBLISH_FUNCTION_NAMES,
862
- error: error instanceof Error ? error.message : "Unknown error"
863
- };
864
- }
865
- }),
866
- init: builder.init.handler(async ({ input }) => {
867
- try {
868
- const timings = [];
869
- let extendsAccount = "";
870
- let extendsGateway = "";
871
- let directory = input.directory;
872
- const account = input.account;
873
- const domain = input.domain;
874
- let overrides = input.overrides;
875
- let plugins = input.plugins;
876
- if (input.extends) {
877
- const match = (input.extends.startsWith("bos://") ? input.extends : `bos://${input.extends}`).match(/^bos:\/\/([^/]+)\/(.+)$/);
878
- if (match) {
879
- extendsAccount = match[1];
880
- extendsGateway = match[2];
881
- }
882
- }
883
- extendsAccount = extendsAccount || "dev.everything.near";
884
- extendsGateway = extendsGateway || "everything.dev";
885
- let parentPluginKeys = [];
886
- let parentConfig = null;
887
- try {
888
- parentConfig = await timePhase(timings, "parent config", () => require_cli_init.fetchParentConfig(extendsAccount, extendsGateway));
889
- if (parentConfig?.plugins && typeof parentConfig.plugins === "object") parentPluginKeys = Object.keys(parentConfig.plugins);
890
- } catch (e) {
891
- console.warn(`[init] Failed to fetch parent config from ${extendsAccount}/${extendsGateway}: ${e instanceof Error ? e.message : e}`);
892
- }
893
- overrides = overrides?.length ? overrides : ["ui", "api"];
894
- if (overrides.includes("plugins") && plugins === void 0) plugins = parentPluginKeys;
895
- plugins = plugins ?? [];
896
- const pluginDirMap = {};
897
- if (parentConfig?.plugins) for (const plugin of plugins) {
898
- const entry = parentConfig.plugins?.[plugin];
899
- if (entry && typeof entry === "object") {
900
- const dev = entry.development;
901
- if (typeof dev === "string") {
902
- const match = dev.match(/^local:plugins\/(.+)$/);
903
- if (match?.[1] && match[1] !== plugin) pluginDirMap[plugin] = match[1];
904
- }
905
- }
906
- }
907
- directory = directory || domain || extendsGateway;
908
- const targetDir = (0, node_path.resolve)(directory);
909
- const extendsRef = `bos://${extendsAccount}/${extendsGateway}`;
910
- const repository = await require_cli_init.detectGitRemoteUrl(node_process.default.cwd()).catch(() => void 0) ?? parentConfig?.repository;
911
- if (!parentConfig) try {
912
- parentConfig = await timePhase(timings, "parent config", () => require_cli_init.fetchParentConfig(extendsAccount, extendsGateway));
913
- } catch {
914
- return {
915
- status: "error",
916
- directory,
917
- extendsRef,
918
- account,
919
- domain,
920
- extends: extendsRef,
921
- plugins,
922
- overrides,
923
- filesCopied: 0,
924
- timings,
925
- error: `No config found at ${extendsRef} — are you sure this is the right parent?`
926
- };
927
- }
928
- const { sourceDir, parentConfig: resolvedParentConfig, cleanup } = await timePhase(timings, "template source", () => require_cli_init.resolveSourceDir({
929
- extendsAccount,
930
- extendsGateway,
931
- source: input.source
932
- }));
933
- parentConfig = resolvedParentConfig;
934
- const isMinimalScaffold = sourceDir === "";
935
- try {
936
- let filesCopied;
937
- if (isMinimalScaffold) {
938
- filesCopied = await timePhase(timings, "scaffold project", () => require_cli_init.scaffoldMinimalProject(targetDir, parentConfig, {
939
- extendsAccount,
940
- extendsGateway,
941
- account: account || extendsAccount,
942
- domain,
943
- plugins,
944
- overrides,
945
- repository,
946
- title: parentConfig?.title,
947
- description: parentConfig?.description
948
- }));
949
- await timePhase(timings, "personalize config", () => require_cli_init.personalizeConfig(targetDir, {
950
- extendsAccount,
951
- extendsGateway,
952
- account: account || extendsAccount,
953
- domain: domain || extendsGateway,
954
- plugins,
955
- overrides,
956
- mode: "init",
957
- repository,
958
- title: parentConfig?.title,
959
- description: parentConfig?.description,
960
- testnet: parentConfig?.testnet,
961
- staging: parentConfig?.staging
962
- }));
963
- } else {
964
- const patterns = require_cli_init.buildInitPatterns(overrides, plugins, pluginDirMap);
965
- const routeExclusions = overrides.includes("ui") ? require_cli_init.buildPluginRouteExclusions(parentConfig, plugins) : [];
966
- filesCopied = await timePhase(timings, "copy files", () => require_cli_init.copyFilteredFiles(sourceDir, targetDir, patterns, {
967
- overrides,
968
- plugins,
969
- ignore: routeExclusions
970
- }));
971
- await timePhase(timings, "personalize config", () => require_cli_init.personalizeConfig(targetDir, {
972
- extendsAccount,
973
- extendsGateway,
974
- account: account || extendsAccount,
975
- domain: domain || extendsGateway,
976
- plugins,
977
- overrides,
978
- workspaceOpts: { sourceDir },
979
- repository,
980
- title: parentConfig?.title,
981
- description: parentConfig?.description,
982
- testnet: parentConfig?.testnet,
983
- staging: parentConfig?.staging
984
- }));
985
- await timePhase(timings, "write snapshot", () => require_cli_init.writeInitSnapshot(targetDir, extendsAccount, extendsGateway, sourceDir, patterns, {
986
- overrides,
987
- plugins,
988
- ignore: routeExclusions
989
- }));
990
- await timePhase(timings, "personalize agents", () => require_cli_init.personalizeAgentsMd(targetDir, {
991
- overrides,
992
- plugins
993
- }));
994
- }
995
- await timePhase(timings, "sync shared deps", () => require_shared_deps.syncResolvedSharedDeps({
996
- configDir: targetDir,
997
- hostMode: "local"
998
- }));
999
- const lockfilePath = (0, node_path.join)(targetDir, "bun.lock");
1000
- require_cli_init.stripOrphanedWorkspacesFromLockfile(lockfilePath, computeAllowedWorkspaces(overrides, plugins));
1001
- require_cli_init.removeInitLockfile(lockfilePath);
1002
- const initConfig = await timePhase(timings, "resolve config", () => require_config.loadResolvedConfig({ cwd: targetDir }));
1003
- if (initConfig?.runtime) await timePhase(timings, "generate env/docker", async () => {
1004
- require_infra.writeGeneratedInfra(targetDir, initConfig.runtime);
1005
- });
1006
- await timePhase(timings, "create env file", async () => {
1007
- require_infra.ensureEnvFile(targetDir);
1008
- });
1009
- if (!input.noInstall) {
1010
- await timePhase(timings, "install dependencies", () => require_cli_init.runBunInstall(targetDir));
1011
- await timePhase(timings, "generate types", () => require_cli_init.runTypesGen(targetDir));
1012
- await timePhase(timings, "generate migrations", () => require_cli_init.generateDatabaseMigrations(targetDir));
1013
- }
1014
- if (input.noInstall && initConfig?.config) await timePhase(timings, "generate code artifacts", () => require_code_artifacts.generateCodeArtifacts(targetDir, initConfig.config));
1015
- return {
1016
- status: "initialized",
1017
- directory,
1018
- extendsRef,
1019
- account,
1020
- domain,
1021
- extends: extendsRef,
1022
- plugins,
1023
- overrides,
1024
- filesCopied,
1025
- timings,
1026
- targetDir
1027
- };
1028
- } finally {
1029
- await cleanup();
1030
- }
1031
- } catch (error) {
1032
- const extendsRef = input.extends ? input.extends.startsWith("bos://") ? input.extends : `bos://${input.extends}` : "bos://dev.everything.near/everything.dev";
1033
- return {
1034
- status: "error",
1035
- directory: input.directory ?? "",
1036
- extendsRef,
1037
- account: input.account,
1038
- domain: input.domain,
1039
- extends: extendsRef,
1040
- plugins: input.plugins ?? [],
1041
- overrides: input.overrides,
1042
- filesCopied: 0,
1043
- timings: [],
1044
- error: error instanceof Error ? error.message : "Unknown error"
1045
- };
1046
- }
1047
- }),
1048
- sync: builder.sync.handler(async ({ input }) => {
1049
- try {
1050
- const configPath = require_config.findConfigPath();
1051
- if (!configPath) return {
1052
- status: "error",
1053
- updated: [],
1054
- skipped: [],
1055
- added: [],
1056
- error: "No bos.config.json found in current directory"
1057
- };
1058
- const projectDir = (0, node_path.resolve)((0, node_path.dirname)(configPath));
1059
- const result = await require_sync.syncTemplate(projectDir, input);
1060
- if (result.status === "synced" || result.status === "dry-run") {
1061
- const syncedConfig = await require_config.loadResolvedConfig({ cwd: projectDir });
1062
- if (syncedConfig?.config) await require_code_artifacts.generateCodeArtifacts(projectDir, syncedConfig.config);
1063
- }
1064
- return result;
1065
- } catch (error) {
1066
- return {
1067
- status: "error",
1068
- updated: [],
1069
- skipped: [],
1070
- added: [],
1071
- error: error instanceof Error ? error.message : "Unknown error"
1072
- };
1073
- }
1074
- }),
1075
- upgrade: builder.upgrade.handler(async ({ input }) => {
1076
- try {
1077
- const configPath = require_config.findConfigPath();
1078
- if (!configPath) return {
1079
- status: "error",
1080
- packages: [],
1081
- error: "No bos.config.json found in current directory"
1082
- };
1083
- return await require_upgrade.upgradeTemplate((0, node_path.resolve)((0, node_path.dirname)(configPath)), input);
1084
- } catch (error) {
1085
- return {
1086
- status: "error",
1087
- packages: [],
1088
- error: error instanceof Error ? error.message : "Unknown error"
1089
- };
1090
- }
1091
- }),
1092
- typesGen: builder.typesGen.handler(async ({ input }) => {
1093
- try {
1094
- const configPath = require_config.findConfigPath();
1095
- if (!configPath) return {
1096
- status: "error",
1097
- generated: [],
1098
- fetched: [],
1099
- skipped: [],
1100
- failed: [],
1101
- error: "No bos.config.json found in current directory"
1102
- };
1103
- const projectDir = (0, node_path.resolve)((0, node_path.dirname)(configPath));
1104
- const refreshed = await require_config.loadResolvedConfig({
1105
- cwd: projectDir,
1106
- env: input.env ?? (node_process.default.env.NODE_ENV === "production" ? "production" : "development"),
1107
- remotePlugins: input.remotePlugins
1108
- });
1109
- if (!refreshed) return {
1110
- status: "error",
1111
- generated: [],
1112
- fetched: [],
1113
- skipped: [],
1114
- failed: [],
1115
- error: "Failed to load bos.config.json"
1116
- };
1117
- if (input.dryRun) {
1118
- const pluginEntries = Object.entries(refreshed.runtime.plugins ?? {});
1119
- const fetched = [];
1120
- const skipped = [];
1121
- const hasLocalApiWorkspace = (0, node_fs.existsSync)((0, node_path.join)(projectDir, "api", "src"));
1122
- if (refreshed.runtime.api.source !== "local") fetched.push(`api remote (${refreshed.runtime.api.url})`);
1123
- else {
1124
- const path = refreshed.runtime.api.localPath ? ` (${(0, node_path.relative)(projectDir, refreshed.runtime.api.localPath)})` : "";
1125
- skipped.push(`api local${path}`);
1126
- }
1127
- if (refreshed.runtime.auth) if (refreshed.runtime.auth.source !== "local") fetched.push(`auth remote (${refreshed.runtime.auth.url})`);
1128
- else {
1129
- const path = refreshed.runtime.auth.localPath ? ` (${(0, node_path.relative)(projectDir, refreshed.runtime.auth.localPath)})` : "";
1130
- skipped.push(`auth local${path}`);
1131
- }
1132
- for (const [key, plugin] of pluginEntries) if (plugin.url && plugin.source !== "local") fetched.push(`${key} remote (${plugin.url})`);
1133
- else if (plugin.localPath) skipped.push(`${key} local (${(0, node_path.relative)(projectDir, plugin.localPath)})`);
1134
- else skipped.push(`${key} no URL resolved`);
1135
- const generated = ["ui/src/lib/api-types.gen.ts", "ui/src/lib/auth-types.gen.ts"];
1136
- if (hasLocalApiWorkspace) generated.push("api/src/lib/plugins-types.gen.ts", "api/src/lib/auth-types.gen.ts");
1137
- if ((0, node_fs.existsSync)((0, node_path.join)(projectDir, "host", "src"))) generated.push("host/src/lib/auth-types.gen.ts");
1138
- for (const [key, _plugin] of pluginEntries) if ((0, node_fs.existsSync)((0, node_path.join)(projectDir, "plugins", key, "src", "lib", "plugins-client.gen.ts"))) generated.push(`plugins/${key}/src/lib/plugins-client.gen.ts`);
1139
- return {
1140
- status: "success",
1141
- generated,
1142
- fetched,
1143
- skipped,
1144
- failed: []
1145
- };
1146
- }
1147
- const artifacts = await require_code_artifacts.generateCodeArtifacts(projectDir, refreshed.config, { runtimeConfig: refreshed.runtime });
1148
- const hasLocalApiWorkspace = (0, node_fs.existsSync)((0, node_path.join)(projectDir, "api", "src"));
1149
- const generated = ["ui/src/lib/api-types.gen.ts"];
1150
- if (hasLocalApiWorkspace) generated.push("api/src/lib/plugins-types.gen.ts", "api/src/lib/auth-types.gen.ts");
1151
- if (refreshed.runtime.auth && (refreshed.runtime.auth.source !== "local" || refreshed.runtime.auth.localPath)) generated.push("ui/src/lib/auth-types.gen.ts");
1152
- if ((0, node_fs.existsSync)((0, node_path.join)(projectDir, "host", "src"))) generated.push("host/src/lib/auth-types.gen.ts");
1153
- for (const [key, _plugin] of Object.entries(refreshed.runtime.plugins ?? {})) if ((0, node_fs.existsSync)((0, node_path.join)(projectDir, "plugins", key, "src", "lib", "plugins-client.gen.ts"))) generated.push(`plugins/${key}/src/lib/plugins-client.gen.ts`);
1154
- const contractStatus = artifacts?.contractStatus ?? [];
1155
- const fetched = [];
1156
- const skipped = [];
1157
- const failed = [];
1158
- for (const entry of contractStatus) if (entry.source === "remote") fetched.push(entry.url ? `${entry.key} remote (${entry.url})` : entry.key);
1159
- else if (entry.source === "local") {
1160
- const path = entry.localPath ? ` (${(0, node_path.relative)(projectDir, entry.localPath)})` : "";
1161
- skipped.push(`${entry.key} local${path}`);
1162
- } else if (entry.source === "skipped") skipped.push(`${entry.key} no URL resolved`);
1163
- else if (entry.source === "failed") {
1164
- const detail = entry.error ? `: ${entry.error}` : "";
1165
- failed.push(`${entry.key}${detail}`);
1166
- }
1167
- return {
1168
- status: "success",
1169
- generated,
1170
- fetched,
1171
- skipped,
1172
- failed
1173
- };
1174
- } catch (error) {
1175
- return {
1176
- status: "error",
1177
- generated: [],
1178
- fetched: [],
1179
- skipped: [],
1180
- failed: [],
1181
- error: error instanceof Error ? error.message : "Unknown error"
1182
- };
1183
- }
1184
- }),
1185
- dbStudio: builder.dbStudio.handler(async ({ input }) => {
1186
- try {
1187
- const configPath = require_config.findConfigPath();
1188
- if (!configPath) return {
1189
- status: "error",
1190
- plugin: input.plugin,
1191
- source: "remote",
1192
- section: "",
1193
- error: "No bos.config.json found in current directory"
1194
- };
1195
- const projectDir = (0, node_path.resolve)((0, node_path.dirname)(configPath));
1196
- require_infra.loadProjectEnv(projectDir);
1197
- const refreshed = await require_config.loadResolvedConfig({ cwd: projectDir });
1198
- if (!refreshed) return {
1199
- status: "error",
1200
- plugin: input.plugin,
1201
- source: "remote",
1202
- section: "",
1203
- error: "Failed to load bos.config.json"
1204
- };
1205
- const { resolvePluginDbInfo } = await Promise.resolve().then(() => require("./cli/db-studio.cjs"));
1206
- const info = resolvePluginDbInfo(input.plugin, refreshed.runtime, projectDir);
1207
- return {
1208
- status: "success",
1209
- plugin: info.key,
1210
- source: info.source,
1211
- section: info.section,
1212
- databaseSecret: info.databaseSecret,
1213
- databaseUrl: info.databaseUrl,
1214
- workspaceDir: info.workspaceDir
1215
- };
1216
- } catch (error) {
1217
- return {
1218
- status: "error",
1219
- plugin: input.plugin,
1220
- source: "remote",
1221
- section: "",
1222
- error: error instanceof Error ? error.message : "Unknown error"
1223
- };
1224
- }
1225
- }),
1226
- dbDoctor: builder.dbDoctor.handler(async ({ input }) => {
1227
- try {
1228
- const configPath = require_config.findConfigPath();
1229
- if (!configPath) return {
1230
- status: "error",
1231
- plugin: input.plugin,
1232
- slug: "",
1233
- journalTable: "",
1234
- journalSchema: "",
1235
- diagnosis: "error",
1236
- localMigrationCount: 0,
1237
- appliedHashCount: 0,
1238
- expectedTables: [],
1239
- missingTables: [],
1240
- error: "No bos.config.json"
1241
- };
1242
- const projectDir = (0, node_path.resolve)((0, node_path.dirname)(configPath));
1243
- require_infra.loadProjectEnv(projectDir);
1244
- const refreshed = await require_config.loadResolvedConfig({ cwd: projectDir });
1245
- if (!refreshed) return {
1246
- status: "error",
1247
- plugin: input.plugin,
1248
- slug: "",
1249
- journalTable: "",
1250
- journalSchema: "",
1251
- diagnosis: "error",
1252
- localMigrationCount: 0,
1253
- appliedHashCount: 0,
1254
- expectedTables: [],
1255
- missingTables: [],
1256
- error: "Failed to load config"
1257
- };
1258
- const { resolvePluginDbInfo } = await Promise.resolve().then(() => require("./cli/db-studio.cjs"));
1259
- const info = resolvePluginDbInfo(input.plugin, refreshed.runtime, projectDir);
1260
- const { diagnosePlugin } = await Promise.resolve().then(() => require("./cli/db-doctor.cjs"));
1261
- return {
1262
- status: "success",
1263
- ...await diagnosePlugin(info)
1264
- };
1265
- } catch (error) {
1266
- return {
1267
- status: "error",
1268
- plugin: input.plugin,
1269
- slug: "",
1270
- journalTable: "",
1271
- journalSchema: "",
1272
- diagnosis: "error",
1273
- localMigrationCount: 0,
1274
- appliedHashCount: 0,
1275
- expectedTables: [],
1276
- missingTables: [],
1277
- error: error instanceof Error ? error.message : "Unknown error"
1278
- };
1279
- }
1280
- }),
1281
- dbRepair: builder.dbRepair.handler(async ({ input }) => {
1282
- try {
1283
- const configPath = require_config.findConfigPath();
1284
- if (!configPath) return {
1285
- status: "error",
1286
- message: "No bos.config.json found",
1287
- diagnosis: null,
1288
- error: "No config"
1289
- };
1290
- const projectDir = (0, node_path.resolve)((0, node_path.dirname)(configPath));
1291
- require_infra.loadProjectEnv(projectDir);
1292
- const refreshed = await require_config.loadResolvedConfig({ cwd: projectDir });
1293
- if (!refreshed) return {
1294
- status: "error",
1295
- message: "Failed to load config",
1296
- diagnosis: null,
1297
- error: "Config load failed"
1298
- };
1299
- const { resolvePluginDbInfo } = await Promise.resolve().then(() => require("./cli/db-studio.cjs"));
1300
- const info = resolvePluginDbInfo(input.plugin, refreshed.runtime, projectDir);
1301
- const { repairPlugin } = await Promise.resolve().then(() => require("./cli/db-repair.cjs"));
1302
- const result = await repairPlugin(info, input.mode ?? "history-reset");
1303
- return {
1304
- ...result,
1305
- error: result.status === "error" ? result.message : void 0
1306
- };
1307
- } catch (error) {
1308
- return {
1309
- status: "error",
1310
- message: error instanceof Error ? error.message : "Unknown error",
1311
- diagnosis: null,
1312
- error: error instanceof Error ? error.message : "Unknown error"
1313
- };
1314
- }
1315
- }),
1316
- status: builder.status.handler(async () => {
1317
- try {
1318
- const configPath = require_config.findConfigPath();
1319
- if (!configPath) return {
1320
- status: "error",
1321
- packages: [],
1322
- envFile: "missing",
1323
- error: "No bos.config.json found in current directory"
1324
- };
1325
- return await require_status.getStatus((0, node_path.resolve)((0, node_path.dirname)(configPath)));
1326
- } catch (error) {
1327
- return {
1328
- status: "error",
1329
- packages: [],
1330
- envFile: "missing",
1331
- error: error instanceof Error ? error.message : "Unknown error"
1332
- };
1333
- }
1334
- }),
1335
- ps: builder.ps.handler(async () => {
1336
- try {
1337
- return {
1338
- status: "ok",
1339
- entries: await effect.Effect.runPromise(require_process_registry.pruneDeadEffect(require_process_registry.readRegistry()))
1340
- };
1341
- } catch (error) {
1342
- return {
1343
- status: "error",
1344
- entries: [],
1345
- error: error instanceof Error ? error.message : "Unknown error"
1346
- };
1347
- }
1348
- }),
1349
- kill: builder.kill.handler(async ({ input }) => {
1350
- try {
1351
- const entries = await effect.Effect.runPromise(require_process_registry.pruneDeadEffect(require_process_registry.readRegistry()));
1352
- const configPath = require_config.findConfigPath();
1353
- const targetConfigDir = input.all ? void 0 : input.configDir ?? (configPath ? (0, node_path.resolve)((0, node_path.dirname)(configPath)) : void 0);
1354
- const targets = targetConfigDir ? entries.filter((entry) => entry.configDir === targetConfigDir) : entries;
1355
- const killed = [];
1356
- const skipped = [];
1357
- for (const entry of targets) try {
1358
- node_process.default.kill(entry.pid, input.signal === "SIGKILL" ? "SIGKILL" : "SIGTERM");
1359
- killed.push({
1360
- pid: entry.pid,
1361
- configDir: entry.configDir
1362
- });
1363
- require_process_registry.unregisterPid(entry.pid);
1364
- } catch (err) {
1365
- if (err.code === "ESRCH") {
1366
- skipped.push({
1367
- pid: entry.pid,
1368
- reason: "process already exited"
1369
- });
1370
- require_process_registry.unregisterPid(entry.pid);
1371
- } else skipped.push({
1372
- pid: entry.pid,
1373
- reason: err.message ?? "kill failed"
1374
- });
1375
- }
1376
- return {
1377
- status: "killed",
1378
- killed,
1379
- skipped
1380
- };
1381
- } catch (error) {
1382
- return {
1383
- status: "error",
1384
- killed: [],
1385
- skipped: [],
1386
- error: error instanceof Error ? error.message : "Unknown error"
1387
- };
1388
- }
1389
- })
55
+ createRouter: (builder) => ({
56
+ ...require_config.registerConfig(builder),
57
+ ...require_plugins.registerPlugins(builder),
58
+ ...require_dev.registerDev(builder),
59
+ ...require_build.registerBuild(builder),
60
+ ...require_deploy.registerDeploy(builder),
61
+ ...require_keys.registerKeys(builder),
62
+ ...require_init.registerInit(builder),
63
+ ...require_upgrade.registerUpgrade(builder),
64
+ ...require_db.registerDb(builder),
65
+ ...require_ops.registerOps(builder)
1390
66
  })
1391
67
  });
1392
- function computeAllowedWorkspaces(overrides, plugins) {
1393
- const workspaces = [];
1394
- for (const section of overrides) {
1395
- if (section === "host") workspaces.push("host");
1396
- if (section === "ui") workspaces.push("ui");
1397
- if (section === "api") workspaces.push("api");
1398
- }
1399
- if (plugins && plugins.length > 0) workspaces.push("plugins/*");
1400
- return workspaces;
1401
- }
1402
68
 
1403
69
  //#endregion
1404
- exports.consumeDevSession = consumeDevSession;
1405
70
  exports.default = plugin_default;
1406
- exports.pluginEvents = pluginEvents;
1407
- exports.resolveRemoteConfigChain = resolveRemoteConfigChain;
71
+ exports.pluginEvents = require_progress.pluginEvents;
72
+ exports.resolveRemoteConfigChain = require_config.resolveRemoteConfigChain;
1408
73
  //# sourceMappingURL=plugin.cjs.map