everything-dev 1.53.2 → 2.0.0-rc.0

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 +624 -196
  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 +613 -194
  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
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.cjs","names":["EventEmitter","getPluginRef","fetchBosConfigFromFastKv","resolveExtendsRef","parseBosUrl","mergeBosConfigWithExtends","resolveConfigComposableEntries","BosConfigSchema","process","z","bosContract","Effect","loadResolvedConfig","getProjectRoot","loadLocalConfig","saveBosConfig","generateCodeArtifacts","fileExists","readJsonFile","run","parseDeployLines","extractPublishedUrl","computeSriHashForUrl","fetchRemotePluginManifest","detectLocalPackages","syncResolvedSharedDeps","buildEverythingDevQuietly","buildEveryPluginQuietly","buildRuntimeConfig","planInfra","PortAllocatorLive","preflightLocalInfra","buildServiceDescriptorMapFromPlan","buildDescription","buildRegistryConfigUrl","getHostDevelopmentPort","buildRuntimePluginsForConfig","buildServiceDescriptorMap","findConfigPath","selectWorkspaceTargets","buildWorkspaceTargets","publishToFastKv","colors","getNetworkIdForAccount","getRegistryNamespaceForAccount","ensureNearCli","listPublishKeys","addFunctionCallAccessKey","deleteAccessKeys","fetchParentConfig","detectGitRemoteUrl","resolveSourceDir","scaffoldMinimalProject","personalizeConfig","buildInitPatterns","buildPluginRouteExclusions","copyFilteredFiles","writeInitSnapshot","personalizeAgentsMd","runBunInstall","runTypesGen","generateDatabaseMigrations","syncTemplate","upgradeTemplate","getStatus","pruneDeadEffect","readRegistry"],"sources":["../src/plugin.ts"],"sourcesContent":["import { EventEmitter } from \"node:events\";\nimport { existsSync, readFileSync, writeFileSync } from \"node:fs\";\nimport { basename, dirname, join, relative, resolve } from \"node:path\";\nimport process from \"node:process\";\nimport { createInterface } from \"node:readline/promises\";\nimport { Effect } from \"effect\";\nimport { buildRuntimeConfig, detectLocalPackages, PortAllocatorLive } from \"./app\";\nimport {\n buildEveryPluginQuietly,\n buildEverythingDevQuietly,\n buildWorkspaceTargets,\n fileExists,\n getPluginRef,\n readJsonFile,\n selectWorkspaceTargets,\n} from \"./build\";\nimport {\n ensureEnvFile,\n loadProjectEnv,\n syncGeneratedInfra,\n writeGeneratedInfra,\n} from \"./cli/infra\";\nimport {\n buildInitPatterns,\n buildPluginRouteExclusions,\n copyFilteredFiles,\n detectGitRemoteUrl,\n fetchParentConfig,\n generateDatabaseMigrations,\n personalizeAgentsMd,\n personalizeConfig,\n removeInitLockfile,\n resolveSourceDir,\n runBunInstall,\n runTypesGen,\n scaffoldMinimalProject,\n stripOrphanedWorkspacesFromLockfile,\n writeInitSnapshot,\n} from \"./cli/init\";\nimport { getStatus } from \"./cli/status\";\nimport { syncTemplate } from \"./cli/sync\";\nimport { upgradeTemplate } from \"./cli/upgrade\";\nimport { generateCodeArtifacts } from \"./code-artifacts\";\nimport {\n buildRuntimePluginsForConfig,\n drainConfigWarnings,\n findConfigPath,\n getHostDevelopmentPort,\n getProjectRoot,\n loadLocalConfig,\n loadResolvedConfig,\n resolveConfigComposableEntries,\n resumeWarnings,\n suppressWarnings,\n} from \"./config\";\nimport {\n type BosConfigResult,\n bosContract,\n type OverrideSection,\n type PhaseTiming,\n type PluginListResult,\n} from \"./contract\";\nimport {\n buildRegistryConfigUrl,\n fetchBosConfigFromFastKv,\n fetchRemotePluginManifest,\n getRegistryNamespaceForAccount,\n type PluginManifest,\n parseBosUrl,\n} from \"./fastkv\";\nimport { planInfra } from \"./infra/planner\";\nimport { preflightLocalInfra } from \"./infra/preflight\";\nimport type { InfraPlan } from \"./infra/types\";\nimport { computeSriHashForUrl, parseDeployLines } from \"./integrity\";\nimport { type BosEnv, mergeBosConfigWithExtends, resolveExtendsRef } from \"./merge\";\nimport {\n addFunctionCallAccessKey,\n deleteAccessKeys,\n ensureNearCli,\n listPublishKeys,\n} from \"./near-cli\";\nimport { getNetworkIdForAccount } from \"./network\";\nimport { pruneDeadEffect, readRegistry, unregisterPid } from \"./process-registry\";\nimport { extractPublishedUrl, publishToFastKv } from \"./publish\";\nimport { createPlugin, z } from \"./sdk\";\nimport {\n type AppOrchestrator,\n buildDescription,\n buildServiceDescriptorMap,\n buildServiceDescriptorMapFromPlan,\n type ServiceDescriptor,\n} from \"./service-descriptor\";\nimport { syncResolvedSharedDeps } from \"./shared-deps\";\nimport type { BosConfig, BosConfigInput, ExtendsConfig, RuntimeConfig, SourceMode } from \"./types\";\nimport { BosConfigSchema } from \"./types\";\nimport { run } from \"./utils/run\";\nimport { saveBosConfig } from \"./utils/save-config\";\nimport { colors } from \"./utils/theme\";\n\nexport interface DevSessionData {\n orchestrator: AppOrchestrator;\n services: Map<string, ServiceDescriptor>;\n runtimeConfig: RuntimeConfig;\n}\n\nexport interface StartSummary {\n configSource: string;\n configSourceHttp?: string;\n account: string;\n domain?: string;\n modules: { host?: string; ui?: string; api?: string; auth?: string };\n warnings: string[];\n}\n\nexport type ProgressEvent = {\n phase: string;\n status: \"running\" | \"done\" | \"error\";\n durationMs?: number;\n message?: string;\n};\n\nexport const pluginEvents = new EventEmitter();\n\nlet pendingSession: DevSessionData | null = null;\nlet pendingStartSummary: StartSummary | null = null;\n\nexport function consumeDevSession(): (DevSessionData & { summary?: StartSummary }) | null {\n const data = pendingSession;\n const summary = pendingStartSummary;\n pendingSession = null;\n pendingStartSummary = null;\n if (!data) return null;\n return summary ? { ...data, summary } : data;\n}\n\nasync function timePhase<T>(\n timings: PhaseTiming[],\n name: string,\n fn: () => Promise<T>,\n): Promise<T> {\n pluginEvents.emit(\"progress\", { phase: name, status: \"running\" } satisfies ProgressEvent);\n const startedAt = Date.now();\n try {\n const result = await fn();\n timings.push({ name, durationMs: Date.now() - startedAt });\n pluginEvents.emit(\"progress\", {\n phase: name,\n status: \"done\",\n durationMs: Date.now() - startedAt,\n } satisfies ProgressEvent);\n return result;\n } catch (error) {\n pluginEvents.emit(\"progress\", {\n phase: name,\n status: \"error\",\n durationMs: Date.now() - startedAt,\n } satisfies ProgressEvent);\n throw error;\n }\n}\n\nconst PUBLISH_FUNCTION_NAMES = [\"__fastdata_kv\"];\n\ntype BosDeps = {\n bosConfig: BosConfig | null;\n runtimeConfig: RuntimeConfig | null;\n configDir: string;\n};\n\ntype PluginAttachmentConfig = NonNullable<BosConfig[\"plugins\"]>[string];\n\nfunction parseSourceMode(value: string | undefined, defaultValue: SourceMode): SourceMode {\n if (value === \"local\" || value === \"remote\") return value;\n return defaultValue;\n}\n\nfunction buildConfigResult(\n bosConfig: BosConfigInput | BosConfig | null,\n full = false,\n): BosConfigResult {\n const packages =\n bosConfig?.app && typeof bosConfig.app === \"object\" ? Object.keys(bosConfig.app) : [];\n const remotes = packages.filter((name) => name !== \"host\");\n\n return {\n config: bosConfig ?? null,\n packages,\n remotes,\n full,\n };\n}\n\nfunction isValidProxyUrl(url: string): boolean {\n try {\n const parsed = new URL(url);\n return parsed.protocol === \"http:\" || parsed.protocol === \"https:\";\n } catch {\n return false;\n }\n}\n\nfunction resolveProxyUrl(bosConfig: BosConfig | null): string | null {\n if (!bosConfig) return null;\n const apiConfig = bosConfig.app.api;\n if (!apiConfig) return null;\n if (apiConfig.proxy && isValidProxyUrl(apiConfig.proxy)) return apiConfig.proxy;\n if (apiConfig.production && isValidProxyUrl(apiConfig.production)) return apiConfig.production;\n return null;\n}\n\nfunction sanitizePluginKey(value: string): string {\n return value\n .replace(/[^A-Za-z0-9/_-]/g, \"-\")\n .replace(/\\/+/g, \"/\")\n .split(\"/\")\n .filter(Boolean)\n .map((segment) => segment.replace(/[^A-Za-z0-9_-]/g, \"-\"))\n .join(\"/\")\n .replace(/^\\/+|\\/+$/g, \"\");\n}\n\nfunction defaultPluginKey(source: string): string {\n const normalized = source.replace(/^local:/, \"\").replace(/\\/$/, \"\");\n if (source.startsWith(\"local:\")) {\n return sanitizePluginKey(basename(normalized)) || \"plugin\";\n }\n\n try {\n const url = new URL(source);\n return sanitizePluginKey(basename(url.pathname) || url.hostname) || \"plugin\";\n } catch {\n return sanitizePluginKey(source) || \"plugin\";\n }\n}\n\nfunction pluginLocalPath(configDir: string, attachment: PluginAttachmentConfig): string | null {\n const ref = getPluginRef(attachment);\n const source = ref?.development ?? ref?.production;\n if (!source?.startsWith(\"local:\")) {\n return null;\n }\n\n return join(configDir, source.slice(\"local:\".length));\n}\n\nfunction listPluginAttachments(config: BosConfig | null) {\n return (Object.entries(config?.plugins ?? {}) as Array<[string, PluginAttachmentConfig]>)\n .map(([key, attachment]) => {\n const ref = getPluginRef(attachment);\n return {\n key,\n development: ref?.development,\n production: ref?.production,\n localPath: ref?.development?.startsWith(\"local:\")\n ? ref.development.slice(\"local:\".length)\n : undefined,\n source: ref?.development?.startsWith(\"local:\") ? (\"local\" as const) : (\"remote\" as const),\n integrity: ref?.integrity,\n version: ref?.version,\n name: ref?.name,\n };\n })\n .sort((a, b) => a.key.localeCompare(b.key));\n}\n\nexport async function resolveRemoteConfigChain(\n accountId: string,\n gatewayId: string,\n visited: Set<string>,\n): Promise<BosConfig> {\n const selfRef = `bos://${accountId}/${gatewayId}`;\n if (visited.has(selfRef)) {\n throw new Error(`Circular extends detected: ${selfRef}`);\n }\n\n const nextVisited = new Set(visited);\n nextVisited.add(selfRef);\n\n const config = await fetchBosConfigFromFastKv<BosConfigInput>(selfRef);\n const parentRef = config.extends\n ? resolveExtendsRef(config.extends as string | ExtendsConfig, \"production\")\n : undefined;\n\n let merged: BosConfigInput;\n if (!parentRef) {\n merged = config;\n } else {\n const { accountId: parentAccountId, gatewayId: parentGatewayId } = parseBosUrl(parentRef);\n const parentResolved = await resolveRemoteConfigChain(\n parentAccountId,\n parentGatewayId,\n nextVisited,\n );\n merged = mergeBosConfigWithExtends(parentResolved as BosConfigInput, config);\n }\n\n return resolveConfigComposableEntries(BosConfigSchema.parse(merged), process.cwd(), \"production\");\n}\n\nasync function fetchPublishedConfig(\n accountId: string,\n gatewayId: string,\n): Promise<BosConfig | null> {\n try {\n return await resolveRemoteConfigChain(accountId, gatewayId, new Set());\n } catch (error) {\n if (error instanceof Error && error.message.startsWith(\"No config found\")) {\n return null;\n }\n throw error;\n }\n}\n\nexport default createPlugin({\n variables: z.object({\n configPath: z.string().optional(),\n }),\n secrets: z.object({}),\n contract: bosContract,\n initialize: (config) =>\n Effect.promise(async () => {\n const configResult = await loadResolvedConfig({ path: config.variables.configPath });\n return {\n bosConfig: configResult?.config ?? null,\n runtimeConfig: configResult?.runtime ?? null,\n configDir: getProjectRoot(),\n } satisfies BosDeps;\n }),\n shutdown: () => Effect.void,\n createRouter: (deps, builder) => ({\n config: builder.config.handler(async ({ input }) => {\n if (input.full) {\n return buildConfigResult(deps.bosConfig, true);\n }\n\n const localConfig = await loadLocalConfig({ cwd: deps.configDir });\n return buildConfigResult(localConfig?.config ?? null, false);\n }),\n\n pluginAdd: builder.pluginAdd.handler(async ({ input }) => {\n if (!deps.bosConfig) {\n return {\n status: \"error\" as const,\n key: \"\",\n error: \"No bos.config.json found\",\n };\n }\n\n const isBosRef = input.source.startsWith(\"bos://\");\n const isLocal = input.source.startsWith(\"local:\");\n const key = sanitizePluginKey(\n input.as ??\n (isBosRef ? (input.source.split(\"/\").pop() ?? \"plugin\") : defaultPluginKey(input.source)),\n );\n const existing = deps.bosConfig.plugins?.[key];\n const existingEntry = existing && typeof existing === \"object\" ? existing : {};\n const nextPlugins = { ...(deps.bosConfig.plugins ?? {}) };\n\n if (isBosRef) {\n nextPlugins[key] = {\n ...existingEntry,\n extends: input.source,\n };\n } else if (isLocal) {\n nextPlugins[key] = {\n ...existingEntry,\n development: input.source,\n ...(existingEntry.extends ? {} : {}),\n };\n } else {\n nextPlugins[key] = {\n ...existingEntry,\n production: input.production ?? input.source,\n };\n }\n\n deps.bosConfig = {\n ...deps.bosConfig,\n plugins: nextPlugins,\n };\n\n await saveBosConfig(deps.configDir, deps.bosConfig);\n await generateCodeArtifacts(deps.configDir, deps.bosConfig);\n\n const stored = deps.bosConfig.plugins?.[key];\n const storedObj = stored && typeof stored === \"object\" ? stored : {};\n\n return {\n status: \"added\" as const,\n key,\n development: storedObj.development,\n production: storedObj.production,\n integrity: storedObj.integrity,\n version: storedObj.version,\n };\n }),\n\n pluginRemove: builder.pluginRemove.handler(async ({ input }) => {\n if (!deps.bosConfig) {\n return {\n status: \"error\" as const,\n key: input.key,\n error: \"No bos.config.json found\",\n };\n }\n\n if (!deps.bosConfig.plugins?.[input.key]) {\n return {\n status: \"error\" as const,\n key: input.key,\n error: `Plugin '${input.key}' is not configured`,\n };\n }\n\n const nextPlugins = { ...(deps.bosConfig.plugins ?? {}) };\n delete nextPlugins[input.key];\n deps.bosConfig = {\n ...deps.bosConfig,\n plugins: Object.keys(nextPlugins).length > 0 ? nextPlugins : undefined,\n };\n\n await saveBosConfig(deps.configDir, deps.bosConfig);\n await generateCodeArtifacts(deps.configDir, deps.bosConfig);\n\n return {\n status: \"removed\" as const,\n key: input.key,\n };\n }),\n\n pluginList: builder.pluginList.handler(async () => {\n const plugins: PluginListResult[\"plugins\"] = listPluginAttachments(deps.bosConfig);\n return {\n status: \"listed\" as const,\n plugins,\n };\n }),\n\n pluginPublish: builder.pluginPublish.handler(async ({ input }) => {\n if (!deps.bosConfig) {\n return {\n status: \"error\" as const,\n key: input.key,\n error: \"No bos.config.json found\",\n };\n }\n\n const attachment = deps.bosConfig.plugins?.[input.key];\n if (!attachment) {\n return {\n status: \"error\" as const,\n key: input.key,\n error: `Plugin '${input.key}' is not configured`,\n };\n }\n\n const attachmentRef = getPluginRef(attachment);\n\n const localPath = pluginLocalPath(deps.configDir, attachment);\n if (!localPath) {\n return {\n status: \"error\" as const,\n key: input.key,\n error: `Plugin '${input.key}' does not have a local development path`,\n };\n }\n\n const pkgPath = join(localPath, \"package.json\");\n if (!(await fileExists(pkgPath))) {\n return {\n status: \"error\" as const,\n key: input.key,\n error: `Missing package.json at ${localPath}`,\n };\n }\n\n const pkgJson = await readJsonFile<{\n scripts?: Record<string, string>;\n name?: string;\n version?: string;\n }>(pkgPath);\n const script = pkgJson.scripts?.deploy ? \"deploy\" : \"build\";\n\n const { stdout, stderr, exitCode } = (await run(\"bun\", [\"run\", script], {\n cwd: localPath,\n capture: true,\n })) as { stdout: string; stderr: string; exitCode: number };\n\n if (exitCode !== 0) {\n if (stdout.trim()) process.stdout.write(stdout);\n if (stderr.trim()) process.stderr.write(stderr);\n return {\n status: \"error\" as const,\n key: input.key,\n error: `Publish failed with exit code ${exitCode}`,\n };\n }\n\n if (stdout.trim()) process.stdout.write(stdout);\n if (stderr.trim()) process.stderr.write(stderr);\n\n const output = `${stdout}\\n${stderr}`;\n const deployEntries = parseDeployLines(output);\n const deployEntry = deployEntries.find(\n (e) => e.urlField === `plugins.${input.key}.production`,\n );\n\n let publishedUrl: string | undefined;\n let integrity: string | undefined;\n if (deployEntry) {\n publishedUrl = deployEntry.url;\n integrity = deployEntry.integrity;\n } else {\n publishedUrl = extractPublishedUrl(output) ?? undefined;\n integrity = publishedUrl\n ? ((await computeSriHashForUrl(publishedUrl)) ?? undefined)\n : undefined;\n }\n\n let manifest: PluginManifest | null = null;\n if (publishedUrl) {\n manifest = await fetchRemotePluginManifest(publishedUrl);\n } else if (attachmentRef?.production) {\n manifest = await fetchRemotePluginManifest(attachmentRef.production);\n if (manifest) {\n publishedUrl = attachmentRef.production;\n }\n }\n\n const version = manifest?.plugin.version ?? pkgJson.version;\n\n if (publishedUrl) {\n const rootConfigPath = join(deps.configDir, \"bos.config.json\");\n try {\n const rootConfig = JSON.parse(readFileSync(rootConfigPath, \"utf-8\")) as Record<\n string,\n unknown\n >;\n if (!rootConfig.plugins || typeof rootConfig.plugins !== \"object\") {\n rootConfig.plugins = {};\n }\n const plugins = rootConfig.plugins as Record<string, unknown>;\n if (!plugins[input.key] || typeof plugins[input.key] !== \"object\") {\n plugins[input.key] = {};\n }\n const entry = plugins[input.key] as Record<string, unknown>;\n entry.production = publishedUrl;\n if (integrity) {\n entry.integrity = integrity;\n } else {\n delete entry.integrity;\n }\n writeFileSync(rootConfigPath, `${JSON.stringify(rootConfig, null, 2)}\\n`);\n console.log(` ✅ Updated bos.config.json: plugins.${input.key}.production`);\n } catch (err) {\n console.error(\n ` ❌ Failed to update bos.config.json:`,\n err instanceof Error ? err.message : err,\n );\n }\n\n await generateCodeArtifacts(deps.configDir, deps.bosConfig);\n }\n\n return {\n status: \"published\" as const,\n key: input.key,\n path: localPath,\n script,\n production: publishedUrl ?? attachmentRef?.production,\n integrity: integrity ?? undefined,\n version: version ?? undefined,\n };\n }),\n\n dev: builder.dev.handler(async ({ input }) => {\n const devTimings: PhaseTiming[] = [];\n\n ensureEnvFile(deps.configDir);\n loadProjectEnv(deps.configDir);\n\n const localPackages = detectLocalPackages(\n deps.bosConfig ?? undefined,\n deps.runtimeConfig ?? undefined,\n );\n\n const hostSource: SourceMode = localPackages.includes(\"host\")\n ? parseSourceMode(input.host, \"local\")\n : \"remote\";\n const uiSource: SourceMode = localPackages.includes(\"ui\")\n ? parseSourceMode(input.ui, \"local\")\n : \"remote\";\n const apiSource: SourceMode = localPackages.includes(\"api\")\n ? parseSourceMode(input.api, \"local\")\n : \"remote\";\n const authSource: SourceMode = localPackages.includes(\"auth\")\n ? parseSourceMode(input.auth, \"local\")\n : \"remote\";\n const ssr = input.ssr ?? false;\n const proxy = input.proxy ?? false;\n\n const sharedSync = await timePhase(devTimings, \"shared deps\", () =>\n syncResolvedSharedDeps({\n configDir: deps.configDir,\n hostMode: hostSource,\n bosConfig: deps.bosConfig ?? undefined,\n extendsChain: [],\n }),\n );\n let configMayHaveChanged = false;\n if (sharedSync.catalogChanged) {\n await timePhase(devTimings, \"install\", () =>\n run(\"bun\", [\"install\"], { cwd: deps.configDir }),\n );\n configMayHaveChanged = true;\n }\n const shouldBuildPlugin =\n (apiSource === \"local\" && !proxy) || localPackages.some((pkg) => pkg.startsWith(\"plugin:\"));\n\n await timePhase(devTimings, \"build\", async () => {\n const buildTasks: Promise<void>[] = [buildEverythingDevQuietly(deps.configDir)];\n if (shouldBuildPlugin) {\n buildTasks.push(buildEveryPluginQuietly(deps.configDir));\n }\n await Promise.all(buildTasks);\n });\n\n let devExtendsChain: string[] | undefined;\n if (configMayHaveChanged || input.remotePlugins !== undefined) {\n const refreshed = await timePhase(devTimings, \"resolve config\", () =>\n loadResolvedConfig({\n cwd: deps.configDir,\n remotePlugins: input.remotePlugins,\n }),\n );\n deps.bosConfig = refreshed?.config ?? deps.bosConfig;\n deps.runtimeConfig = refreshed?.runtime ?? deps.runtimeConfig;\n devExtendsChain = refreshed?.source.extended;\n }\n\n if (!deps.bosConfig) {\n return {\n status: \"error\" as const,\n description: \"No bos.config.json found\",\n processes: [],\n timings: devTimings,\n };\n }\n\n if (proxy && !resolveProxyUrl(deps.bosConfig)) {\n return {\n status: \"error\" as const,\n description: \"No valid proxy URL configured in bos.config.json\",\n processes: [],\n timings: devTimings,\n };\n }\n\n suppressWarnings();\n const developmentRuntime = await buildRuntimeConfig(deps.bosConfig, {\n uiSource,\n apiSource,\n authSource,\n hostSource,\n env: \"development\",\n plugins: deps.runtimeConfig?.plugins,\n });\n drainConfigWarnings();\n resumeWarnings();\n\n const plan: InfraPlan = await timePhase(devTimings, \"ports\", () =>\n Effect.runPromise(\n planInfra({\n configDir: deps.configDir,\n bosConfig: developmentRuntime,\n cli: {\n port: input.port,\n apiPort: input.apiPort,\n authPort: input.authPort,\n uiPort: input.uiPort,\n pluginPortStart: input.pluginPortStart,\n ssr,\n proxy,\n hostSource,\n uiSource,\n apiSource,\n authSource,\n interactive: input.interactive,\n },\n }).pipe(Effect.provide(PortAllocatorLive)),\n ),\n );\n\n const mergedEnv: Record<string, string> = { ...plan.envGenerated };\n for (const [k, v] of Object.entries(process.env)) {\n if (v != null && !(k in plan.envGenerated)) {\n mergedEnv[k] = v;\n }\n }\n const preflightFailures = await Effect.runPromise(\n preflightLocalInfra(plan.envGenerated, mergedEnv),\n );\n if (preflightFailures.length > 0) {\n const messages = preflightFailures.map((f) => f.error).join(\"; \");\n return {\n status: \"error\" as const,\n description: `Infra preflight failed: ${messages}`,\n processes: [],\n timings: devTimings,\n };\n }\n\n const services = buildServiceDescriptorMapFromPlan(plan, { ssr, proxy });\n writeGeneratedInfra(deps.configDir, plan.runtimeConfig);\n ensureEnvFile(deps.configDir);\n loadProjectEnv(deps.configDir);\n\n const packages = [...plan.serviceDescriptors.keys()];\n if (process.env.DEBUG === \"true\" || process.env.DEBUG === \"1\") {\n console.error(\"[DEBUG dev] services keys:\", packages.join(\", \"));\n }\n const apiSvc = services.get(\"api\");\n if (apiSvc?.proxy) {\n const proxyUrl = resolveProxyUrl(deps.bosConfig);\n if (proxyUrl) plan.orchestrator.env.API_PROXY = proxyUrl;\n }\n\n pendingSession = {\n orchestrator: plan.orchestrator,\n services,\n runtimeConfig: plan.runtimeConfig,\n };\n\n await timePhase(devTimings, \"generate artifacts\", () =>\n generateCodeArtifacts(deps.configDir, deps.bosConfig!, {\n env: \"development\",\n extendsChain: devExtendsChain,\n runtimeConfig: plan.runtimeConfig,\n }),\n );\n\n return {\n status: \"started\" as const,\n description: buildDescription(services) || plan.description,\n processes: packages,\n timings: devTimings,\n };\n }),\n\n start: builder.start.handler(async ({ input }) => {\n ensureEnvFile(deps.configDir);\n loadProjectEnv(deps.configDir);\n\n pluginEvents.emit(\"progress\", { phase: \"config\", status: \"running\" } satisfies ProgressEvent);\n\n const bosEnv = input.env ?? (process.env.BOS_ENV === \"staging\" ? \"staging\" : \"production\");\n const account = input.account ?? process.env.BOS_ACCOUNT;\n const domain = input.domain ?? process.env.BOS_GATEWAY;\n\n let config: BosConfig | null = null;\n let remoteConfig: BosConfig | null = null;\n\n if (account && domain) {\n try {\n remoteConfig = await fetchPublishedConfig(account, domain);\n if (remoteConfig) {\n config = remoteConfig;\n } else {\n return {\n status: \"error\" as const,\n url: \"\",\n error: `No config found at bos://${account}/${domain}. Verify the account and gateway are correct and the config has been published.\\nExpected URL: ${buildRegistryConfigUrl(account, domain)}`,\n };\n }\n } catch (error) {\n return {\n status: \"error\" as const,\n url: \"\",\n error: `Failed to fetch config for bos://${account}/${domain}: ${error instanceof Error ? error.message : \"Unknown error\"}\\nExpected URL: ${buildRegistryConfigUrl(account, domain)}`,\n };\n }\n } else {\n config = deps.bosConfig;\n }\n\n if (!config) {\n return {\n status: \"error\" as const,\n url: \"\",\n error:\n \"No configuration found. Provide --account and --gateway flags, or create a local bos.config.json.\",\n };\n }\n\n // Apply runtime overrides from CLI flags / env vars\n if (account) {\n config = { ...config, account };\n }\n if (domain) {\n config = { ...config, domain };\n }\n\n const port = input.port ?? getHostDevelopmentPort(config.app.host.development);\n const isStaging = bosEnv === \"staging\";\n const runtimePlugins = await buildRuntimePluginsForConfig(\n config,\n deps.configDir,\n \"production\",\n );\n suppressWarnings();\n const runtimeConfig = await buildRuntimeConfig(config, {\n uiSource: \"remote\",\n apiSource: \"remote\",\n authSource: \"remote\",\n hostSource: \"remote\",\n env: \"production\",\n plugins: runtimePlugins,\n });\n drainConfigWarnings();\n resumeWarnings();\n\n if (isStaging && config.staging?.domain) {\n runtimeConfig.domain = config.staging.domain;\n }\n\n if (isStaging) {\n runtimeConfig.env = \"staging\";\n }\n\n syncGeneratedInfra(deps.configDir, runtimeConfig);\n ensureEnvFile(deps.configDir);\n loadProjectEnv(deps.configDir);\n\n pluginEvents.emit(\"progress\", {\n phase: \"generate artifacts\",\n status: \"running\",\n } satisfies ProgressEvent);\n await generateCodeArtifacts(deps.configDir, config, {\n env: \"production\",\n runtimeConfig,\n });\n pluginEvents.emit(\"progress\", {\n phase: \"generate artifacts\",\n status: \"done\",\n } satisfies ProgressEvent);\n\n // ── Production Readiness Validation ──\n const productionEnv: Record<string, string> = {};\n const warnings: string[] = [];\n\n // Default CORS_ORIGIN to the configured domain if not set\n if (!process.env.CORS_ORIGIN && config.domain) {\n const effectiveDomain = isStaging\n ? (config.staging?.domain ?? config.domain)\n : config.domain;\n const defaultOrigin = `https://${effectiveDomain}`;\n productionEnv.CORS_ORIGIN = defaultOrigin;\n warnings.push(`CORS_ORIGIN defaulting to ${defaultOrigin}`);\n }\n\n // Validate required secrets\n const requiredSecrets = new Set<string>();\n const missingSecrets: string[] = [];\n\n if (runtimeConfig.host.secrets) {\n for (const s of runtimeConfig.host.secrets) requiredSecrets.add(s);\n }\n if (runtimeConfig.auth?.secrets) {\n for (const s of runtimeConfig.auth.secrets) requiredSecrets.add(s);\n }\n if (runtimeConfig.api?.secrets) {\n for (const s of runtimeConfig.api.secrets) requiredSecrets.add(s);\n }\n for (const plugin of Object.values(runtimeConfig.plugins ?? {})) {\n if (plugin.secrets) {\n for (const s of plugin.secrets) requiredSecrets.add(s);\n }\n }\n\n for (const secret of requiredSecrets) {\n const value = process.env[secret];\n if (!value || value.length === 0) {\n missingSecrets.push(secret);\n }\n }\n\n if (missingSecrets.length > 0) {\n warnings.push(`Missing ${missingSecrets.length} secret(s): ${missingSecrets.join(\", \")}`);\n }\n\n const stagingEnvVars: Record<string, string> = isStaging\n ? { BOS_GATEWAY: config.staging?.domain ?? config.domain ?? \"\" }\n : {};\n\n const plan: InfraPlan = await Effect.runPromise(\n planInfra({\n configDir: deps.configDir,\n bosConfig: runtimeConfig,\n cli: {\n port: input.port,\n ssr: false,\n proxy: false,\n hostSource: \"remote\",\n uiSource: \"remote\",\n apiSource: \"remote\",\n authSource: \"remote\",\n interactive: input.interactive,\n },\n }).pipe(Effect.provide(PortAllocatorLive)),\n );\n\n const services = buildServiceDescriptorMap(plan.runtimeConfig);\n\n const configSource = remoteConfig\n ? `bos://${account}/${domain}`\n : (findConfigPath() ?? \"bos.config.json\");\n\n const configSourceHttp =\n remoteConfig && account && domain ? buildRegistryConfigUrl(account, domain) : undefined;\n\n const summary: StartSummary = {\n configSource,\n configSourceHttp,\n account: config.account,\n domain: config.domain ?? undefined,\n modules: {\n host: plan.runtimeConfig.host.remoteUrl ?? plan.runtimeConfig.host.url ?? \"local\",\n ui: plan.runtimeConfig.ui.url ?? \"local\",\n api: plan.runtimeConfig.api.url ?? \"local\",\n auth: plan.runtimeConfig.auth?.url ?? undefined,\n },\n warnings,\n };\n\n const orchestrator: AppOrchestrator = {\n packages: [\"host\"],\n env: {\n NODE_ENV: \"production\",\n ...productionEnv,\n ...stagingEnvVars,\n ...plan.launch.env,\n },\n description: `${isStaging ? \"Staging\" : \"Production\"} Mode (${config.account})`,\n port: plan.resolvedPorts.host ?? port,\n interactive: input.interactive,\n noLogs: true,\n };\n\n pendingSession = { orchestrator, services, runtimeConfig: plan.runtimeConfig };\n pendingStartSummary = summary;\n\n pluginEvents.emit(\"progress\", { phase: \"config\", status: \"done\" } satisfies ProgressEvent);\n\n return {\n status: \"running\" as const,\n url: plan.launch.hostUrl ?? `http://localhost:${plan.resolvedPorts.host ?? port}`,\n };\n }),\n\n build: builder.build.handler(async ({ input }) => {\n if (!deps.bosConfig) {\n return {\n status: \"error\" as const,\n built: [],\n skipped: [],\n };\n }\n\n const buildEnv: BosEnv = input.deploy ? \"production\" : \"development\";\n\n const targets = selectWorkspaceTargets(input.packages, deps.bosConfig);\n if (targets.length === 0) {\n return {\n status: \"error\" as const,\n built: [],\n skipped: [],\n };\n }\n\n suppressWarnings();\n const runtimeConfig = await buildRuntimeConfig(deps.bosConfig, {\n uiSource: deps.bosConfig.app.ui?.development ? \"local\" : \"remote\",\n apiSource: deps.bosConfig.app.api?.development ? \"local\" : \"remote\",\n authSource: deps.bosConfig.app.auth?.development ? \"local\" : \"remote\",\n hostSource: deps.bosConfig.app.host?.development ? \"local\" : \"remote\",\n env: buildEnv,\n plugins: deps.runtimeConfig?.plugins,\n });\n drainConfigWarnings();\n resumeWarnings();\n\n await generateCodeArtifacts(deps.configDir, deps.bosConfig, {\n env: buildEnv,\n runtimeConfig,\n });\n\n const { built, skipped } = await buildWorkspaceTargets({\n configDir: deps.configDir,\n bosConfig: deps.bosConfig,\n runtimeConfig: runtimeConfig,\n targets,\n deploy: input.deploy,\n });\n\n if (built.length === 0) {\n return {\n status: \"error\" as const,\n built: [],\n skipped,\n };\n }\n\n return {\n status: \"success\" as const,\n built,\n skipped,\n deployed: input.deploy,\n };\n }),\n\n publish: builder.publish.handler(async ({ input }) => {\n if (!deps.bosConfig) {\n return {\n status: \"error\" as const,\n registryUrl: \"\",\n error: \"No bos.config.json found\",\n };\n }\n\n const result = await publishToFastKv({\n bosConfig: deps.bosConfig,\n runtimeConfig: deps.runtimeConfig,\n configDir: deps.configDir,\n env: input.env,\n build: input.deploy,\n dryRun: input.dryRun,\n verbose: input.verbose,\n packages: input.packages,\n network: input.network,\n privateKey: input.privateKey,\n });\n\n if (result.publishConfig) {\n const refreshed = await loadResolvedConfig({ cwd: deps.configDir });\n if (refreshed?.config) {\n deps.bosConfig = refreshed.config;\n deps.runtimeConfig = refreshed.runtime;\n }\n }\n\n return {\n status: result.status,\n registryUrl: result.registryUrl,\n txHash: result.txHash,\n error: result.error,\n built: result.built,\n skipped: result.skipped,\n deployResults: result.deployResults,\n };\n }),\n\n deploy: builder.deploy.handler(async ({ input }) => {\n if (!deps.bosConfig) {\n return {\n status: \"error\" as const,\n registryUrl: \"\",\n redeployed: false,\n error: \"No bos.config.json found\",\n };\n }\n\n const result = await publishToFastKv({\n bosConfig: deps.bosConfig,\n runtimeConfig: deps.runtimeConfig,\n configDir: deps.configDir,\n env: input.env,\n build: input.build,\n dryRun: input.dryRun,\n verbose: input.verbose,\n packages: input.packages,\n network: input.network,\n privateKey: input.privateKey,\n });\n\n if (result.status === \"error\") {\n return {\n status: \"error\" as const,\n registryUrl: result.registryUrl,\n txHash: result.txHash,\n built: result.built,\n skipped: result.skipped,\n redeployed: false,\n error: result.error,\n deployResults: result.deployResults,\n };\n }\n\n if (result.status === \"dry-run\") {\n return {\n status: \"dry-run\" as const,\n registryUrl: result.registryUrl,\n built: result.built,\n skipped: result.skipped,\n redeployed: false,\n };\n }\n\n if (result.publishConfig) {\n const refreshed = await loadResolvedConfig({ cwd: deps.configDir });\n if (refreshed?.config) {\n deps.bosConfig = refreshed.config;\n deps.runtimeConfig = refreshed.runtime;\n }\n }\n\n let redeployed = false;\n let service: string | undefined;\n\n if (process.env.RAILWAY_TOKEN) {\n const railwayService = input.service ?? deps.bosConfig.ci?.railway?.service;\n if (!railwayService) {\n console.log();\n console.log(\n colors.yellow(\n \" Railway redeploy skipped: ci.railway.service is not configured in bos.config.json\",\n ),\n );\n return {\n status: \"published\" as const,\n registryUrl: result.registryUrl,\n txHash: result.txHash,\n built: result.built,\n skipped: result.skipped,\n redeployed: false,\n deployResults: result.deployResults,\n error:\n \"Config published but Railway redeploy failed: ci.railway.service is not configured in bos.config.json\",\n };\n }\n\n service = railwayService;\n console.log();\n console.log(` Redeploying Railway service ${colors.cyan(railwayService)}...`);\n try {\n const railResult = await run(\n \"railway\",\n [\"redeploy\", \"--service\", railwayService, \"--yes\"],\n {\n capture: true,\n },\n );\n if (railResult?.stdout) {\n for (const line of railResult.stdout.split(\"\\n\")) {\n if (line.trim()) console.log(` ${colors.dim(line.trim())}`);\n }\n }\n redeployed = true;\n console.log(colors.green(` Railway redeploy complete`));\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n const railError =\n message.includes(\"not found\") || message.includes(\"ENOENT\")\n ? \"Railway CLI not found. Install it: npm i -g @railway/cli\"\n : `Railway redeploy failed: ${message}`;\n console.log(colors.yellow(` ${railError}`));\n return {\n status: \"published\" as const,\n registryUrl: result.registryUrl,\n txHash: result.txHash,\n built: result.built,\n skipped: result.skipped,\n redeployed: false,\n service,\n deployResults: result.deployResults,\n error: `Config published but ${railError}`,\n };\n }\n } else {\n console.log();\n console.log(colors.yellow(\" Railway redeploy skipped (RAILWAY_TOKEN not set)\"));\n }\n\n return {\n status: \"deployed\" as const,\n registryUrl: result.registryUrl,\n txHash: result.txHash,\n built: result.built,\n skipped: result.skipped,\n redeployed,\n service,\n deployResults: result.deployResults,\n };\n }),\n\n keyPublish: builder.keyPublish.handler(async ({ input }) => {\n if (!deps.bosConfig) {\n return {\n status: \"error\" as const,\n account: \"\",\n network: \"mainnet\" as const,\n contract: \"\",\n allowance: input.allowance,\n functionNames: PUBLISH_FUNCTION_NAMES,\n error: \"No bos.config.json found\",\n };\n }\n\n const account = deps.bosConfig.account;\n const network = getNetworkIdForAccount(account);\n const contract = getRegistryNamespaceForAccount(account);\n try {\n await Effect.runPromise(ensureNearCli);\n\n const oldKeys = await listPublishKeys({ account, contract, network });\n\n const keyPair = await addFunctionCallAccessKey({\n account,\n contract,\n allowance: input.allowance,\n functionNames: PUBLISH_FUNCTION_NAMES,\n network,\n });\n\n if (oldKeys.length > 0) {\n console.log();\n console.log(\n ` Found ${oldKeys.length} existing publish key${oldKeys.length > 1 ? \"s\" : \"\"}:`,\n );\n for (const k of oldKeys) {\n console.log(` ${colors.dim(k)}`);\n }\n\n const rl = createInterface({\n input: process.stdin,\n output: process.stdout,\n });\n const answer = await rl.question(\" Remove old key(s)? [Y/n] \");\n rl.close();\n\n if (answer.toLowerCase() !== \"n\" && answer.toLowerCase() !== \"no\") {\n try {\n await deleteAccessKeys(account, oldKeys, network);\n console.log(\n ` ${colors.green(\"✓\")} Removed ${oldKeys.length} old key${oldKeys.length > 1 ? \"s\" : \"\"}`,\n );\n } catch {\n console.log(\n ` ${colors.yellow(\"⚠\")} Failed to remove old key${oldKeys.length > 1 ? \"s\" : \"\"} (new key still active)`,\n );\n }\n } else {\n console.log(` ${colors.dim(\"Old key(s) retained.\")}`);\n }\n }\n\n return {\n status: \"published\" as const,\n account,\n network,\n contract,\n allowance: input.allowance,\n functionNames: PUBLISH_FUNCTION_NAMES,\n publicKey: keyPair.publicKey,\n privateKey: keyPair.privateKey,\n };\n } catch (error) {\n return {\n status: \"error\" as const,\n account,\n network,\n contract,\n allowance: input.allowance,\n functionNames: PUBLISH_FUNCTION_NAMES,\n error: error instanceof Error ? error.message : \"Unknown error\",\n };\n }\n }),\n\n init: builder.init.handler(async ({ input }) => {\n try {\n const timings: PhaseTiming[] = [];\n let extendsAccount = \"\";\n let extendsGateway = \"\";\n let directory = input.directory;\n const account = input.account;\n const domain = input.domain;\n let overrides = input.overrides as OverrideSection[] | undefined;\n let plugins = input.plugins;\n\n if (input.extends) {\n const normalized = input.extends.startsWith(\"bos://\")\n ? input.extends\n : `bos://${input.extends}`;\n const match = normalized.match(/^bos:\\/\\/([^/]+)\\/(.+)$/);\n if (match) {\n extendsAccount = match[1];\n extendsGateway = match[2];\n }\n }\n\n extendsAccount = extendsAccount || \"dev.everything.near\";\n extendsGateway = extendsGateway || \"everything.dev\";\n\n let parentPluginKeys: string[] = [];\n let parentConfig: BosConfig | null = null;\n try {\n parentConfig = await timePhase(timings, \"parent config\", () =>\n fetchParentConfig(extendsAccount, extendsGateway),\n );\n if (parentConfig?.plugins && typeof parentConfig.plugins === \"object\") {\n parentPluginKeys = Object.keys(parentConfig.plugins);\n }\n } catch (e) {\n console.warn(\n `[init] Failed to fetch parent config from ${extendsAccount}/${extendsGateway}: ${e instanceof Error ? e.message : e}`,\n );\n }\n\n overrides = overrides?.length ? overrides : ([\"ui\", \"api\"] as OverrideSection[]);\n if (overrides.includes(\"plugins\") && plugins === undefined) {\n plugins = parentPluginKeys;\n }\n plugins = plugins ?? [];\n\n const pluginDirMap: Record<string, string> = {};\n if (parentConfig?.plugins) {\n for (const plugin of plugins) {\n const entry = (parentConfig.plugins as Record<string, unknown>)?.[plugin];\n if (entry && typeof entry === \"object\") {\n const dev = (entry as Record<string, unknown>).development;\n if (typeof dev === \"string\") {\n const match = dev.match(/^local:plugins\\/(.+)$/);\n if (match?.[1] && match[1] !== plugin) pluginDirMap[plugin] = match[1];\n }\n }\n }\n }\n\n directory = directory || domain || extendsGateway;\n const targetDir = resolve(directory);\n const extendsRef = `bos://${extendsAccount}/${extendsGateway}`;\n\n const repository =\n (await detectGitRemoteUrl(process.cwd()).catch(() => undefined)) ??\n parentConfig?.repository;\n\n if (!parentConfig) {\n try {\n parentConfig = await timePhase(timings, \"parent config\", () =>\n fetchParentConfig(extendsAccount, extendsGateway),\n );\n } catch {\n return {\n status: \"error\" as const,\n directory,\n extendsRef,\n account,\n domain,\n extends: extendsRef,\n plugins,\n overrides,\n filesCopied: 0,\n timings,\n error: `No config found at ${extendsRef} — are you sure this is the right parent?`,\n };\n }\n }\n\n const {\n sourceDir,\n parentConfig: resolvedParentConfig,\n cleanup,\n } = await timePhase(timings, \"template source\", () =>\n resolveSourceDir({\n extendsAccount,\n extendsGateway,\n source: input.source,\n }),\n );\n\n parentConfig = resolvedParentConfig;\n\n const isMinimalScaffold = sourceDir === \"\";\n\n try {\n let filesCopied: number;\n\n if (isMinimalScaffold) {\n filesCopied = await timePhase(timings, \"scaffold project\", () =>\n scaffoldMinimalProject(targetDir, parentConfig as unknown as BosConfigInput, {\n extendsAccount,\n extendsGateway,\n account: account || extendsAccount,\n domain,\n plugins,\n overrides,\n repository,\n title: parentConfig?.title,\n description: parentConfig?.description,\n }),\n );\n\n await timePhase(timings, \"personalize config\", () =>\n personalizeConfig(targetDir, {\n extendsAccount,\n extendsGateway,\n account: account || extendsAccount,\n domain: domain || extendsGateway,\n plugins,\n overrides,\n mode: \"init\",\n repository,\n title: parentConfig?.title,\n description: parentConfig?.description,\n testnet: parentConfig?.testnet,\n staging: parentConfig?.staging,\n }),\n );\n } else {\n const patterns = buildInitPatterns(overrides, plugins, pluginDirMap);\n const routeExclusions = overrides.includes(\"ui\")\n ? buildPluginRouteExclusions(parentConfig, plugins)\n : [];\n\n filesCopied = await timePhase(timings, \"copy files\", () =>\n copyFilteredFiles(sourceDir, targetDir, patterns, {\n overrides,\n plugins,\n ignore: routeExclusions,\n }),\n );\n\n await timePhase(timings, \"personalize config\", () =>\n personalizeConfig(targetDir, {\n extendsAccount,\n extendsGateway,\n account: account || extendsAccount,\n domain: domain || extendsGateway,\n plugins,\n overrides,\n workspaceOpts: { sourceDir },\n repository,\n title: parentConfig?.title,\n description: parentConfig?.description,\n testnet: parentConfig?.testnet,\n staging: parentConfig?.staging,\n }),\n );\n\n await timePhase(timings, \"write snapshot\", () =>\n writeInitSnapshot(targetDir, extendsAccount, extendsGateway, sourceDir, patterns, {\n overrides,\n plugins,\n ignore: routeExclusions,\n }),\n );\n\n await timePhase(timings, \"personalize agents\", () =>\n personalizeAgentsMd(targetDir, { overrides, plugins }),\n );\n }\n\n await timePhase(timings, \"sync shared deps\", () =>\n syncResolvedSharedDeps({\n configDir: targetDir,\n hostMode: \"local\",\n }),\n );\n\n const lockfilePath = join(targetDir, \"bun.lock\");\n const allowedWorkspaces = computeAllowedWorkspaces(overrides, plugins);\n stripOrphanedWorkspacesFromLockfile(lockfilePath, allowedWorkspaces);\n removeInitLockfile(lockfilePath);\n\n const initConfig = await timePhase(timings, \"resolve config\", () =>\n loadResolvedConfig({ cwd: targetDir }),\n );\n if (initConfig?.runtime) {\n await timePhase(timings, \"generate env/docker\", async () => {\n writeGeneratedInfra(targetDir, initConfig.runtime);\n });\n }\n await timePhase(timings, \"create env file\", async () => {\n ensureEnvFile(targetDir);\n });\n\n if (!input.noInstall) {\n await timePhase(timings, \"install dependencies\", () => runBunInstall(targetDir));\n await timePhase(timings, \"generate types\", () => runTypesGen(targetDir));\n await timePhase(timings, \"generate migrations\", () =>\n generateDatabaseMigrations(targetDir),\n );\n }\n\n if (input.noInstall && initConfig?.config) {\n await timePhase(timings, \"generate code artifacts\", () =>\n generateCodeArtifacts(targetDir, initConfig.config),\n );\n }\n\n return {\n status: \"initialized\" as const,\n directory,\n extendsRef,\n account,\n domain,\n extends: extendsRef,\n plugins,\n overrides,\n filesCopied,\n timings,\n targetDir,\n };\n } finally {\n await cleanup();\n }\n } catch (error) {\n const extendsRef = input.extends\n ? input.extends.startsWith(\"bos://\")\n ? input.extends\n : `bos://${input.extends}`\n : \"bos://dev.everything.near/everything.dev\";\n return {\n status: \"error\" as const,\n directory: input.directory ?? \"\",\n extendsRef,\n account: input.account,\n domain: input.domain,\n extends: extendsRef,\n plugins: input.plugins ?? [],\n overrides: input.overrides,\n filesCopied: 0,\n timings: [],\n error: error instanceof Error ? error.message : \"Unknown error\",\n };\n }\n }),\n\n sync: builder.sync.handler(async ({ input }) => {\n try {\n const configPath = findConfigPath();\n if (!configPath) {\n return {\n status: \"error\" as const,\n updated: [],\n skipped: [],\n added: [],\n error: \"No bos.config.json found in current directory\",\n };\n }\n\n const projectDir = resolve(dirname(configPath));\n const result = await syncTemplate(projectDir, input);\n\n if (result.status === \"synced\" || result.status === \"dry-run\") {\n const syncedConfig = await loadResolvedConfig({ cwd: projectDir });\n if (syncedConfig?.config) {\n await generateCodeArtifacts(projectDir, syncedConfig.config);\n }\n }\n\n return result;\n } catch (error) {\n return {\n status: \"error\" as const,\n updated: [],\n skipped: [],\n added: [],\n error: error instanceof Error ? error.message : \"Unknown error\",\n };\n }\n }),\n\n upgrade: builder.upgrade.handler(async ({ input }) => {\n try {\n const configPath = findConfigPath();\n if (!configPath) {\n return {\n status: \"error\" as const,\n packages: [],\n error: \"No bos.config.json found in current directory\",\n };\n }\n\n const projectDir = resolve(dirname(configPath));\n return await upgradeTemplate(projectDir, input);\n } catch (error) {\n return {\n status: \"error\" as const,\n packages: [],\n error: error instanceof Error ? error.message : \"Unknown error\",\n };\n }\n }),\n\n typesGen: builder.typesGen.handler(async ({ input }) => {\n try {\n const configPath = findConfigPath();\n if (!configPath) {\n return {\n status: \"error\" as const,\n generated: [],\n fetched: [],\n skipped: [],\n failed: [],\n error: \"No bos.config.json found in current directory\",\n };\n }\n\n const projectDir = resolve(dirname(configPath));\n const env =\n input.env ?? (process.env.NODE_ENV === \"production\" ? \"production\" : \"development\");\n\n const refreshed = await loadResolvedConfig({\n cwd: projectDir,\n env,\n remotePlugins: input.remotePlugins,\n });\n if (!refreshed) {\n return {\n status: \"error\" as const,\n generated: [],\n fetched: [],\n skipped: [],\n failed: [],\n error: \"Failed to load bos.config.json\",\n };\n }\n\n if (input.dryRun) {\n const pluginEntries = Object.entries(refreshed.runtime.plugins ?? {});\n const fetched: string[] = [];\n const skipped: string[] = [];\n const hasLocalApiWorkspace = existsSync(join(projectDir, \"api\", \"src\"));\n\n if (refreshed.runtime.api.source !== \"local\") {\n fetched.push(`api remote (${refreshed.runtime.api.url})`);\n } else {\n const path = refreshed.runtime.api.localPath\n ? ` (${relative(projectDir, refreshed.runtime.api.localPath)})`\n : \"\";\n skipped.push(`api local${path}`);\n }\n\n if (refreshed.runtime.auth) {\n if (refreshed.runtime.auth.source !== \"local\") {\n fetched.push(`auth remote (${refreshed.runtime.auth.url})`);\n } else {\n const path = refreshed.runtime.auth.localPath\n ? ` (${relative(projectDir, refreshed.runtime.auth.localPath)})`\n : \"\";\n skipped.push(`auth local${path}`);\n }\n }\n\n for (const [key, plugin] of pluginEntries) {\n if (plugin.url && plugin.source !== \"local\") {\n fetched.push(`${key} remote (${plugin.url})`);\n } else if (plugin.localPath) {\n skipped.push(`${key} local (${relative(projectDir, plugin.localPath)})`);\n } else {\n skipped.push(`${key} no URL resolved`);\n }\n }\n\n const generated = [\"ui/src/lib/api-types.gen.ts\", \"ui/src/lib/auth-types.gen.ts\"];\n if (hasLocalApiWorkspace) {\n generated.push(\"api/src/lib/plugins-types.gen.ts\", \"api/src/lib/auth-types.gen.ts\");\n }\n if (existsSync(join(projectDir, \"host\", \"src\"))) {\n generated.push(\"host/src/lib/auth-types.gen.ts\");\n }\n for (const [key, _plugin] of pluginEntries) {\n const pluginSrc = join(\n projectDir,\n \"plugins\",\n key,\n \"src\",\n \"lib\",\n \"plugins-client.gen.ts\",\n );\n if (existsSync(pluginSrc)) {\n generated.push(`plugins/${key}/src/lib/plugins-client.gen.ts`);\n }\n }\n\n return {\n status: \"success\" as const,\n generated,\n fetched,\n skipped,\n failed: [],\n };\n }\n\n const artifacts = await generateCodeArtifacts(projectDir, refreshed.config, {\n runtimeConfig: refreshed.runtime,\n });\n\n const hasLocalApiWorkspace = existsSync(join(projectDir, \"api\", \"src\"));\n const generated = [\"ui/src/lib/api-types.gen.ts\"];\n if (hasLocalApiWorkspace) {\n generated.push(\"api/src/lib/plugins-types.gen.ts\", \"api/src/lib/auth-types.gen.ts\");\n }\n if (\n refreshed.runtime.auth &&\n (refreshed.runtime.auth.source !== \"local\" || refreshed.runtime.auth.localPath)\n ) {\n generated.push(\"ui/src/lib/auth-types.gen.ts\");\n }\n if (existsSync(join(projectDir, \"host\", \"src\"))) {\n generated.push(\"host/src/lib/auth-types.gen.ts\");\n }\n for (const [key, _plugin] of Object.entries(refreshed.runtime.plugins ?? {})) {\n const pluginSrc = join(projectDir, \"plugins\", key, \"src\", \"lib\", \"plugins-client.gen.ts\");\n if (existsSync(pluginSrc)) {\n generated.push(`plugins/${key}/src/lib/plugins-client.gen.ts`);\n }\n }\n\n const contractStatus = artifacts?.contractStatus ?? [];\n const fetched: string[] = [];\n const skipped: string[] = [];\n const failed: string[] = [];\n for (const entry of contractStatus) {\n if (entry.source === \"remote\") {\n fetched.push(entry.url ? `${entry.key} remote (${entry.url})` : entry.key);\n } else if (entry.source === \"local\") {\n const path = entry.localPath ? ` (${relative(projectDir, entry.localPath)})` : \"\";\n skipped.push(`${entry.key} local${path}`);\n } else if (entry.source === \"skipped\") {\n skipped.push(`${entry.key} no URL resolved`);\n } else if (entry.source === \"failed\") {\n const detail = entry.error ? `: ${entry.error}` : \"\";\n failed.push(`${entry.key}${detail}`);\n }\n }\n\n return {\n status: \"success\" as const,\n generated,\n fetched,\n skipped,\n failed,\n };\n } catch (error) {\n return {\n status: \"error\" as const,\n generated: [],\n fetched: [],\n skipped: [],\n failed: [],\n error: error instanceof Error ? error.message : \"Unknown error\",\n };\n }\n }),\n\n dbStudio: builder.dbStudio.handler(async ({ input }) => {\n try {\n const configPath = findConfigPath();\n if (!configPath) {\n return {\n status: \"error\" as const,\n plugin: input.plugin,\n source: \"remote\" as const,\n section: \"\",\n error: \"No bos.config.json found in current directory\",\n };\n }\n\n const projectDir = resolve(dirname(configPath));\n loadProjectEnv(projectDir);\n const refreshed = await loadResolvedConfig({ cwd: projectDir });\n if (!refreshed) {\n return {\n status: \"error\" as const,\n plugin: input.plugin,\n source: \"remote\" as const,\n section: \"\",\n error: \"Failed to load bos.config.json\",\n };\n }\n\n const { resolvePluginDbInfo } = await import(\"./cli/db-studio\");\n const info = resolvePluginDbInfo(input.plugin, refreshed.runtime, projectDir);\n\n return {\n status: \"success\" as const,\n plugin: info.key,\n source: info.source,\n section: info.section,\n databaseSecret: info.databaseSecret,\n databaseUrl: info.databaseUrl,\n workspaceDir: info.workspaceDir,\n };\n } catch (error) {\n return {\n status: \"error\" as const,\n plugin: input.plugin,\n source: \"remote\" as const,\n section: \"\",\n error: error instanceof Error ? error.message : \"Unknown error\",\n };\n }\n }),\n\n dbDoctor: builder.dbDoctor.handler(async ({ input }) => {\n try {\n const configPath = findConfigPath();\n if (!configPath) {\n return {\n status: \"error\" as const,\n plugin: input.plugin,\n slug: \"\",\n journalTable: \"\",\n journalSchema: \"\",\n diagnosis: \"error\",\n localMigrationCount: 0,\n appliedHashCount: 0,\n expectedTables: [],\n missingTables: [],\n error: \"No bos.config.json\",\n };\n }\n\n const projectDir = resolve(dirname(configPath));\n loadProjectEnv(projectDir);\n const refreshed = await loadResolvedConfig({ cwd: projectDir });\n if (!refreshed) {\n return {\n status: \"error\" as const,\n plugin: input.plugin,\n slug: \"\",\n journalTable: \"\",\n journalSchema: \"\",\n diagnosis: \"error\",\n localMigrationCount: 0,\n appliedHashCount: 0,\n expectedTables: [],\n missingTables: [],\n error: \"Failed to load config\",\n };\n }\n\n const { resolvePluginDbInfo } = await import(\"./cli/db-studio\");\n const info = resolvePluginDbInfo(input.plugin, refreshed.runtime, projectDir);\n\n const { diagnosePlugin } = await import(\"./cli/db-doctor\");\n const report = await diagnosePlugin(info);\n\n return {\n status: \"success\" as const,\n ...report,\n };\n } catch (error) {\n return {\n status: \"error\" as const,\n plugin: input.plugin,\n slug: \"\",\n journalTable: \"\",\n journalSchema: \"\",\n diagnosis: \"error\",\n localMigrationCount: 0,\n appliedHashCount: 0,\n expectedTables: [],\n missingTables: [],\n error: error instanceof Error ? error.message : \"Unknown error\",\n };\n }\n }),\n\n dbRepair: builder.dbRepair.handler(async ({ input }) => {\n try {\n const configPath = findConfigPath();\n if (!configPath) {\n return {\n status: \"error\" as const,\n message: \"No bos.config.json found\",\n diagnosis: null,\n error: \"No config\",\n };\n }\n\n const projectDir = resolve(dirname(configPath));\n loadProjectEnv(projectDir);\n const refreshed = await loadResolvedConfig({ cwd: projectDir });\n if (!refreshed) {\n return {\n status: \"error\" as const,\n message: \"Failed to load config\",\n diagnosis: null,\n error: \"Config load failed\",\n };\n }\n\n const { resolvePluginDbInfo } = await import(\"./cli/db-studio\");\n const info = resolvePluginDbInfo(input.plugin, refreshed.runtime, projectDir);\n\n const { repairPlugin } = await import(\"./cli/db-repair\");\n const result = await repairPlugin(info, input.mode ?? \"history-reset\");\n\n return {\n ...result,\n error: result.status === \"error\" ? result.message : undefined,\n };\n } catch (error) {\n return {\n status: \"error\" as const,\n message: error instanceof Error ? error.message : \"Unknown error\",\n diagnosis: null,\n error: error instanceof Error ? error.message : \"Unknown error\",\n };\n }\n }),\n\n status: builder.status.handler(async () => {\n try {\n const configPath = findConfigPath();\n if (!configPath) {\n return {\n status: \"error\" as const,\n packages: [],\n envFile: \"missing\" as const,\n error: \"No bos.config.json found in current directory\",\n };\n }\n\n const projectDir = resolve(dirname(configPath));\n return await getStatus(projectDir);\n } catch (error) {\n return {\n status: \"error\" as const,\n packages: [],\n envFile: \"missing\" as const,\n error: error instanceof Error ? error.message : \"Unknown error\",\n };\n }\n }),\n\n ps: builder.ps.handler(async () => {\n try {\n const entries = await Effect.runPromise(pruneDeadEffect(readRegistry()));\n return {\n status: \"ok\" as const,\n entries,\n };\n } catch (error) {\n return {\n status: \"error\" as const,\n entries: [],\n error: error instanceof Error ? error.message : \"Unknown error\",\n };\n }\n }),\n\n kill: builder.kill.handler(async ({ input }) => {\n try {\n const entries = await Effect.runPromise(pruneDeadEffect(readRegistry()));\n const configPath = findConfigPath();\n const targetConfigDir = input.all\n ? undefined\n : (input.configDir ?? (configPath ? resolve(dirname(configPath)) : undefined));\n\n const targets = targetConfigDir\n ? entries.filter((entry) => entry.configDir === targetConfigDir)\n : entries;\n\n const killed: Array<{ pid: number; configDir: string }> = [];\n const skipped: Array<{ pid: number; reason: string }> = [];\n\n for (const entry of targets) {\n try {\n process.kill(entry.pid, input.signal === \"SIGKILL\" ? \"SIGKILL\" : \"SIGTERM\");\n killed.push({ pid: entry.pid, configDir: entry.configDir });\n unregisterPid(entry.pid);\n } catch (err) {\n const code = (err as NodeJS.ErrnoException).code;\n if (code === \"ESRCH\") {\n skipped.push({ pid: entry.pid, reason: \"process already exited\" });\n unregisterPid(entry.pid);\n } else {\n skipped.push({\n pid: entry.pid,\n reason: (err as Error).message ?? \"kill failed\",\n });\n }\n }\n }\n\n return {\n status: \"killed\" as const,\n killed,\n skipped,\n };\n } catch (error) {\n return {\n status: \"error\" as const,\n killed: [],\n skipped: [],\n error: error instanceof Error ? error.message : \"Unknown error\",\n };\n }\n }),\n }),\n});\n\nfunction computeAllowedWorkspaces(overrides: string[], plugins?: string[]): string[] {\n const workspaces: string[] = [];\n for (const section of overrides) {\n if (section === \"host\") workspaces.push(\"host\");\n if (section === \"ui\") workspaces.push(\"ui\");\n if (section === \"api\") workspaces.push(\"api\");\n }\n if (plugins && plugins.length > 0) {\n workspaces.push(\"plugins/*\");\n }\n return workspaces;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"plugin.cjs","names":["createPlugin","z","bosContract","Effect","openResolution","buildScoped","ProjectEnv","ProjectEnvLive","process","buildScopedContext","Layer","makeDatabaseBindings","makeDrizzleKitLive","p","BosDepsTag","Context","DatabaseBindings","DrizzleKit","registerConfig","registerPlugins","registerDev","registerBuild","registerDeploy","registerKeys","registerInit","registerUpgrade","registerDb","registerOps"],"sources":["../src/plugin.ts"],"sourcesContent":["import process from \"node:process\";\nimport * as p from \"@clack/prompts\";\nimport { Context, Effect, Layer } from \"effect\";\nimport { buildScoped, buildScopedContext } from \"every-plugin\";\nimport { registerBuild } from \"./commands/build\";\nimport { registerConfig } from \"./commands/config\";\nimport { registerDb } from \"./commands/db\";\nimport { registerDeploy } from \"./commands/deploy\";\nimport { registerDev } from \"./commands/dev\";\nimport { registerInit } from \"./commands/init\";\nimport { registerKeys } from \"./commands/keys\";\nimport { registerOps } from \"./commands/ops\";\nimport { registerPlugins } from \"./commands/plugins\";\nimport { type BosDeps, BosDepsTag } from \"./commands/shared\";\nimport { registerUpgrade } from \"./commands/upgrade\";\nimport { bosContract } from \"./contract\";\nimport { DatabaseBindings, DrizzleKit, makeDatabaseBindings, makeDrizzleKitLive } from \"./db\";\nimport { ProjectEnv, ProjectEnvLive } from \"./env/project-env\";\nimport { openResolution } from \"./resolution/session\";\nimport { createPlugin, z } from \"./sdk\";\n\nexport { resolveRemoteConfigChain } from \"./commands/config\";\nexport type { DevSessionData, StartSummary } from \"./dev-program\";\nexport { type ProgressEvent, pluginEvents } from \"./progress\";\n\nexport default createPlugin({\n variables: z.object({\n configPath: z.string().optional(),\n // The artifact root (cwd-derived) — decoupled from configPath so an\n // explicit boot config (--config-path fixture) validates and loads\n // without redirecting where the CLI writes generated artifacts.\n configDir: z.string().optional(),\n }),\n secrets: z.object({}),\n contract: bosContract,\n initialize: (config, _plugins) =>\n Effect.gen(function* () {\n const session = yield* Effect.promise(() =>\n openResolution({ path: config.variables.configPath }),\n );\n\n const projectEnv = yield* buildScoped(ProjectEnv, ProjectEnvLive);\n const effectContext = yield* Effect.context();\n\n const configDir = config.variables.configDir ?? session?.root ?? process.cwd();\n\n const services = yield* buildScopedContext(\n Layer.mergeAll(\n makeDatabaseBindings({\n projectDir: configDir,\n loadRuntimeConfig: async () => (await session?.buildRuntime()) ?? null,\n loadEnv: () => Effect.runPromiseWith(effectContext)(projectEnv.load(configDir)),\n }),\n makeDrizzleKitLive({\n projectDir: configDir,\n onLog: (message) => p.log.info(message),\n }),\n ),\n );\n\n return Layer.succeed(BosDepsTag, {\n session,\n databaseBindings: Context.get(services, DatabaseBindings),\n drizzleKit: Context.get(services, DrizzleKit),\n } satisfies BosDeps);\n }),\n createRouter: (builder) => ({\n ...registerConfig(builder),\n ...registerPlugins(builder),\n ...registerDev(builder),\n ...registerBuild(builder),\n ...registerDeploy(builder),\n ...registerKeys(builder),\n ...registerInit(builder),\n ...registerUpgrade(builder),\n ...registerDb(builder),\n ...registerOps(builder),\n }),\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,yBAAeA,2BAAa;CAC1B,WAAWC,MAAE,OAAO;EAClB,YAAYA,MAAE,OAAO,CAAC,CAAC,SAAS;EAIhC,WAAWA,MAAE,OAAO,CAAC,CAAC,SAAS;CACjC,CAAC;CACD,SAASA,MAAE,OAAO,CAAC,CAAC;CACpB,UAAUC;CACV,aAAa,QAAQ,aACnBC,cAAO,IAAI,aAAa;EACtB,MAAM,UAAU,OAAOA,cAAO,cAC5BC,0CAAe,EAAE,MAAM,OAAO,UAAU,WAAW,CAAC,CACtD;EAEA,MAAM,aAAa,WAAOC,0BAAYC,gCAAYC,kCAAc;EAChE,MAAM,gBAAgB,OAAOJ,cAAO,QAAQ;EAE5C,MAAM,YAAY,OAAO,UAAU,aAAa,SAAS,QAAQK,qBAAQ,IAAI;EAE7E,MAAM,WAAW,WAAOC,iCACtBC,aAAM,SACJC,sCAAqB;GACnB,YAAY;GACZ,mBAAmB,YAAa,MAAM,SAAS,aAAa,KAAM;GAClE,eAAeR,cAAO,eAAe,aAAa,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC;EAChF,CAAC,GACDS,uCAAmB;GACjB,YAAY;GACZ,QAAQ,YAAYC,eAAE,IAAI,KAAK,OAAO;EACxC,CAAC,CACH,CACF;EAEA,OAAOH,aAAM,QAAQI,2BAAY;GAC/B;GACA,kBAAkBC,eAAQ,IAAI,UAAUC,iCAAgB;GACxD,YAAYD,eAAQ,IAAI,UAAUE,8BAAU;EAC9C,CAAmB;CACrB,CAAC;CACH,eAAe,aAAa;EAC1B,GAAGC,8BAAe,OAAO;EACzB,GAAGC,gCAAgB,OAAO;EAC1B,GAAGC,wBAAY,OAAO;EACtB,GAAGC,4BAAc,OAAO;EACxB,GAAGC,8BAAe,OAAO;EACzB,GAAGC,0BAAa,OAAO;EACvB,GAAGC,0BAAa,OAAO;EACvB,GAAGC,gCAAgB,OAAO;EAC1B,GAAGC,sBAAW,OAAO;EACrB,GAAGC,wBAAY,OAAO;CACxB;AACF,CAAC"}