everything-dev 1.53.2 → 2.0.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (713) hide show
  1. package/README.md +2 -11
  2. package/dist/_virtual/_rolldown/runtime.cjs +17 -2
  3. package/dist/_virtual/_rolldown/runtime.mjs +36 -0
  4. package/dist/api/auth-middleware.cjs +161 -0
  5. package/dist/api/auth-middleware.cjs.map +1 -0
  6. package/dist/api/auth-middleware.d.cts +69 -0
  7. package/dist/api/auth-middleware.d.mts +69 -0
  8. package/dist/api/auth-middleware.mjs +160 -0
  9. package/dist/api/auth-middleware.mjs.map +1 -0
  10. package/dist/api-contract.cjs +250 -62
  11. package/dist/api-contract.cjs.map +1 -1
  12. package/dist/api-contract.mjs +246 -65
  13. package/dist/api-contract.mjs.map +1 -1
  14. package/dist/app.cjs +99 -26
  15. package/dist/app.cjs.map +1 -1
  16. package/dist/app.d.cts +3 -0
  17. package/dist/app.d.mts +3 -0
  18. package/dist/app.mjs +100 -27
  19. package/dist/app.mjs.map +1 -1
  20. package/dist/auth-login.cjs +163 -0
  21. package/dist/auth-login.cjs.map +1 -0
  22. package/dist/auth-login.mjs +162 -0
  23. package/dist/auth-login.mjs.map +1 -0
  24. package/dist/auth-session.cjs +64 -0
  25. package/dist/auth-session.cjs.map +1 -0
  26. package/dist/auth-session.mjs +58 -0
  27. package/dist/auth-session.mjs.map +1 -0
  28. package/dist/auth-types-gen.cjs +0 -1
  29. package/dist/auth-types-gen.cjs.map +1 -1
  30. package/dist/build.cjs +37 -173
  31. package/dist/build.cjs.map +1 -1
  32. package/dist/build.mjs +37 -171
  33. package/dist/build.mjs.map +1 -1
  34. package/dist/bundle-cache.cjs +74 -0
  35. package/dist/bundle-cache.cjs.map +1 -0
  36. package/dist/bundle-cache.d.cts +27 -0
  37. package/dist/bundle-cache.d.mts +27 -0
  38. package/dist/bundle-cache.mjs +68 -0
  39. package/dist/bundle-cache.mjs.map +1 -0
  40. package/dist/bundle-fs-resolve.cjs +209 -0
  41. package/dist/bundle-fs-resolve.cjs.map +1 -0
  42. package/dist/bundle-fs-resolve.d.cts +76 -0
  43. package/dist/bundle-fs-resolve.d.mts +76 -0
  44. package/dist/bundle-fs-resolve.mjs +202 -0
  45. package/dist/bundle-fs-resolve.mjs.map +1 -0
  46. package/dist/cdn-deploy.cjs +126 -0
  47. package/dist/cdn-deploy.cjs.map +1 -0
  48. package/dist/cdn-deploy.mjs +124 -0
  49. package/dist/cdn-deploy.mjs.map +1 -0
  50. package/dist/cli/db-doctor.cjs +19 -19
  51. package/dist/cli/db-doctor.cjs.map +1 -1
  52. package/dist/cli/db-doctor.mjs +18 -18
  53. package/dist/cli/db-doctor.mjs.map +1 -1
  54. package/dist/cli/db-repair.cjs +9 -32
  55. package/dist/cli/db-repair.cjs.map +1 -1
  56. package/dist/cli/db-repair.mjs +9 -32
  57. package/dist/cli/db-repair.mjs.map +1 -1
  58. package/dist/cli/framework-version.cjs +7 -3
  59. package/dist/cli/framework-version.cjs.map +1 -1
  60. package/dist/cli/framework-version.mjs +7 -3
  61. package/dist/cli/framework-version.mjs.map +1 -1
  62. package/dist/cli/infra.cjs +159 -251
  63. package/dist/cli/infra.cjs.map +1 -1
  64. package/dist/cli/infra.mjs +154 -242
  65. package/dist/cli/infra.mjs.map +1 -1
  66. package/dist/cli/init.cjs +627 -199
  67. package/dist/cli/init.cjs.map +1 -1
  68. package/dist/cli/init.d.cts +61 -8
  69. package/dist/cli/init.d.mts +61 -8
  70. package/dist/cli/init.mjs +616 -197
  71. package/dist/cli/init.mjs.map +1 -1
  72. package/dist/cli/parse.cjs +8 -7
  73. package/dist/cli/parse.cjs.map +1 -1
  74. package/dist/cli/parse.mjs +9 -7
  75. package/dist/cli/parse.mjs.map +1 -1
  76. package/dist/cli/prompts.cjs +14 -1
  77. package/dist/cli/prompts.cjs.map +1 -1
  78. package/dist/cli/prompts.mjs +14 -1
  79. package/dist/cli/prompts.mjs.map +1 -1
  80. package/dist/cli/prune.cjs +220 -0
  81. package/dist/cli/prune.cjs.map +1 -0
  82. package/dist/cli/prune.mjs +220 -0
  83. package/dist/cli/prune.mjs.map +1 -0
  84. package/dist/cli/snapshot.cjs +2 -1
  85. package/dist/cli/snapshot.cjs.map +1 -1
  86. package/dist/cli/snapshot.mjs +2 -1
  87. package/dist/cli/snapshot.mjs.map +1 -1
  88. package/dist/cli/status.cjs +5 -4
  89. package/dist/cli/status.cjs.map +1 -1
  90. package/dist/cli/status.mjs +6 -5
  91. package/dist/cli/status.mjs.map +1 -1
  92. package/dist/cli/sync.cjs +156 -58
  93. package/dist/cli/sync.cjs.map +1 -1
  94. package/dist/cli/sync.mjs +158 -63
  95. package/dist/cli/sync.mjs.map +1 -1
  96. package/dist/cli/timing.cjs +0 -1
  97. package/dist/cli/timing.cjs.map +1 -1
  98. package/dist/cli/upgrade.cjs +95 -69
  99. package/dist/cli/upgrade.cjs.map +1 -1
  100. package/dist/cli/upgrade.mjs +97 -72
  101. package/dist/cli/upgrade.mjs.map +1 -1
  102. package/dist/cli/utils/helpers.cjs.map +1 -1
  103. package/dist/cli.cjs +320 -72
  104. package/dist/cli.cjs.map +1 -1
  105. package/dist/cli.mjs +316 -68
  106. package/dist/cli.mjs.map +1 -1
  107. package/dist/code-artifacts.cjs +76 -8
  108. package/dist/code-artifacts.cjs.map +1 -1
  109. package/dist/code-artifacts.mjs +76 -10
  110. package/dist/code-artifacts.mjs.map +1 -1
  111. package/dist/commands/build.cjs +65 -0
  112. package/dist/commands/build.cjs.map +1 -0
  113. package/dist/commands/build.mjs +65 -0
  114. package/dist/commands/build.mjs.map +1 -0
  115. package/dist/commands/config.cjs +77 -0
  116. package/dist/commands/config.cjs.map +1 -0
  117. package/dist/commands/config.d.cts +8 -0
  118. package/dist/commands/config.d.mts +8 -0
  119. package/dist/commands/config.mjs +74 -0
  120. package/dist/commands/config.mjs.map +1 -0
  121. package/dist/commands/db.cjs +107 -0
  122. package/dist/commands/db.cjs.map +1 -0
  123. package/dist/commands/db.mjs +107 -0
  124. package/dist/commands/db.mjs.map +1 -0
  125. package/dist/commands/deploy.cjs +336 -0
  126. package/dist/commands/deploy.cjs.map +1 -0
  127. package/dist/commands/deploy.mjs +334 -0
  128. package/dist/commands/deploy.mjs.map +1 -0
  129. package/dist/commands/dev.cjs +75 -0
  130. package/dist/commands/dev.cjs.map +1 -0
  131. package/dist/commands/dev.mjs +73 -0
  132. package/dist/commands/dev.mjs.map +1 -0
  133. package/dist/commands/init.cjs +234 -0
  134. package/dist/commands/init.cjs.map +1 -0
  135. package/dist/commands/init.mjs +231 -0
  136. package/dist/commands/init.mjs.map +1 -0
  137. package/dist/commands/keys.cjs +255 -0
  138. package/dist/commands/keys.cjs.map +1 -0
  139. package/dist/commands/keys.mjs +253 -0
  140. package/dist/commands/keys.mjs.map +1 -0
  141. package/dist/commands/ops.cjs +199 -0
  142. package/dist/commands/ops.cjs.map +1 -0
  143. package/dist/commands/ops.mjs +197 -0
  144. package/dist/commands/ops.mjs.map +1 -0
  145. package/dist/commands/plugins.cjs +211 -0
  146. package/dist/commands/plugins.cjs.map +1 -0
  147. package/dist/commands/plugins.mjs +211 -0
  148. package/dist/commands/plugins.mjs.map +1 -0
  149. package/dist/commands/shared.cjs +8 -0
  150. package/dist/commands/shared.cjs.map +1 -0
  151. package/dist/commands/shared.d.cts +6 -0
  152. package/dist/commands/shared.d.mts +6 -0
  153. package/dist/commands/shared.mjs +8 -0
  154. package/dist/commands/shared.mjs.map +1 -0
  155. package/dist/commands/upgrade.cjs +325 -0
  156. package/dist/commands/upgrade.cjs.map +1 -0
  157. package/dist/commands/upgrade.mjs +323 -0
  158. package/dist/commands/upgrade.mjs.map +1 -0
  159. package/dist/components/dev-render.cjs +340 -0
  160. package/dist/components/dev-render.cjs.map +1 -0
  161. package/dist/components/dev-render.mjs +332 -0
  162. package/dist/components/dev-render.mjs.map +1 -0
  163. package/dist/config.cjs +460 -221
  164. package/dist/config.cjs.map +1 -1
  165. package/dist/config.d.cts +491 -48
  166. package/dist/config.d.mts +491 -48
  167. package/dist/config.mjs +439 -212
  168. package/dist/config.mjs.map +1 -1
  169. package/dist/contract.cjs +327 -50
  170. package/dist/contract.cjs.map +1 -1
  171. package/dist/contract.d.cts +1951 -1062
  172. package/dist/contract.d.mts +1951 -1062
  173. package/dist/contract.meta.cjs +107 -12
  174. package/dist/contract.meta.cjs.map +1 -1
  175. package/dist/contract.meta.d.cts +166 -8
  176. package/dist/contract.meta.d.mts +166 -8
  177. package/dist/contract.meta.mjs +107 -11
  178. package/dist/contract.meta.mjs.map +1 -1
  179. package/dist/contract.mjs +580 -327
  180. package/dist/contract.mjs.map +1 -1
  181. package/dist/dag.cjs +5 -3
  182. package/dist/dag.cjs.map +1 -1
  183. package/dist/dag.mjs +6 -3
  184. package/dist/dag.mjs.map +1 -1
  185. package/dist/db/binding.cjs +80 -0
  186. package/dist/db/binding.cjs.map +1 -0
  187. package/dist/db/binding.d.cts +39 -0
  188. package/dist/db/binding.d.mts +39 -0
  189. package/dist/db/binding.mjs +78 -0
  190. package/dist/db/binding.mjs.map +1 -0
  191. package/dist/db/bindings.cjs +78 -0
  192. package/dist/db/bindings.cjs.map +1 -0
  193. package/dist/db/bindings.d.cts +34 -0
  194. package/dist/db/bindings.d.mts +34 -0
  195. package/dist/db/bindings.mjs +76 -0
  196. package/dist/db/bindings.mjs.map +1 -0
  197. package/dist/db/core.cjs +204 -0
  198. package/dist/db/core.cjs.map +1 -0
  199. package/dist/db/core.d.cts +69 -0
  200. package/dist/db/core.d.mts +69 -0
  201. package/dist/db/core.mjs +192 -0
  202. package/dist/db/core.mjs.map +1 -0
  203. package/dist/db/driver.cjs +167 -0
  204. package/dist/db/driver.cjs.map +1 -0
  205. package/dist/db/driver.d.cts +50 -0
  206. package/dist/db/driver.d.mts +50 -0
  207. package/dist/db/driver.mjs +165 -0
  208. package/dist/db/driver.mjs.map +1 -0
  209. package/dist/db/drizzle-kit.cjs +177 -0
  210. package/dist/db/drizzle-kit.cjs.map +1 -0
  211. package/dist/db/drizzle-kit.d.cts +25 -0
  212. package/dist/db/drizzle-kit.d.mts +25 -0
  213. package/dist/db/drizzle-kit.mjs +175 -0
  214. package/dist/db/drizzle-kit.mjs.map +1 -0
  215. package/dist/db/errors.cjs +27 -0
  216. package/dist/db/errors.cjs.map +1 -0
  217. package/dist/db/errors.d.cts +16 -0
  218. package/dist/db/errors.d.mts +16 -0
  219. package/dist/db/errors.mjs +26 -0
  220. package/dist/db/errors.mjs.map +1 -0
  221. package/dist/db/identity.cjs +55 -0
  222. package/dist/db/identity.cjs.map +1 -0
  223. package/dist/db/identity.d.cts +40 -0
  224. package/dist/db/identity.d.mts +40 -0
  225. package/dist/db/identity.mjs +53 -0
  226. package/dist/db/identity.mjs.map +1 -0
  227. package/dist/db/index.cjs +43 -0
  228. package/dist/db/index.d.cts +9 -0
  229. package/dist/db/index.d.mts +9 -0
  230. package/dist/db/index.mjs +10 -0
  231. package/dist/db/run-migrations.cjs +343 -0
  232. package/dist/db/run-migrations.cjs.map +1 -0
  233. package/dist/db/run-migrations.d.cts +87 -0
  234. package/dist/db/run-migrations.d.mts +87 -0
  235. package/dist/db/run-migrations.mjs +341 -0
  236. package/dist/db/run-migrations.mjs.map +1 -0
  237. package/dist/delegate-signer.cjs +85 -0
  238. package/dist/delegate-signer.cjs.map +1 -0
  239. package/dist/delegate-signer.mjs +84 -0
  240. package/dist/delegate-signer.mjs.map +1 -0
  241. package/dist/deploy-diff.cjs +119 -0
  242. package/dist/deploy-diff.cjs.map +1 -0
  243. package/dist/deploy-diff.mjs +109 -0
  244. package/dist/deploy-diff.mjs.map +1 -0
  245. package/dist/descriptor/constructors.cjs +49 -0
  246. package/dist/descriptor/constructors.cjs.map +1 -0
  247. package/dist/descriptor/constructors.d.cts +27 -0
  248. package/dist/descriptor/constructors.d.mts +27 -0
  249. package/dist/descriptor/constructors.mjs +45 -0
  250. package/dist/descriptor/constructors.mjs.map +1 -0
  251. package/dist/descriptor/index.cjs +24 -0
  252. package/dist/descriptor/index.d.cts +5 -0
  253. package/dist/descriptor/index.d.mts +5 -0
  254. package/dist/descriptor/index.mjs +6 -0
  255. package/dist/descriptor/resolve.cjs +258 -0
  256. package/dist/descriptor/resolve.cjs.map +1 -0
  257. package/dist/descriptor/resolve.d.cts +50 -0
  258. package/dist/descriptor/resolve.d.mts +50 -0
  259. package/dist/descriptor/resolve.mjs +252 -0
  260. package/dist/descriptor/resolve.mjs.map +1 -0
  261. package/dist/descriptor/schema.cjs +109 -0
  262. package/dist/descriptor/schema.cjs.map +1 -0
  263. package/dist/descriptor/schema.d.cts +217 -0
  264. package/dist/descriptor/schema.d.mts +217 -0
  265. package/dist/descriptor/schema.mjs +102 -0
  266. package/dist/descriptor/schema.mjs.map +1 -0
  267. package/dist/descriptor/serialize.cjs +45 -0
  268. package/dist/descriptor/serialize.cjs.map +1 -0
  269. package/dist/descriptor/serialize.d.cts +7 -0
  270. package/dist/descriptor/serialize.d.mts +7 -0
  271. package/dist/descriptor/serialize.mjs +45 -0
  272. package/dist/descriptor/serialize.mjs.map +1 -0
  273. package/dist/dev-log-pipeline.cjs +273 -0
  274. package/dist/dev-log-pipeline.cjs.map +1 -0
  275. package/dist/dev-log-pipeline.mjs +267 -0
  276. package/dist/dev-log-pipeline.mjs.map +1 -0
  277. package/dist/dev-logs.cjs +39 -8
  278. package/dist/dev-logs.cjs.map +1 -1
  279. package/dist/dev-logs.mjs +37 -9
  280. package/dist/dev-logs.mjs.map +1 -1
  281. package/dist/dev-program.cjs +405 -0
  282. package/dist/dev-program.cjs.map +1 -0
  283. package/dist/dev-program.d.cts +10 -0
  284. package/dist/dev-program.d.mts +10 -0
  285. package/dist/dev-program.mjs +395 -0
  286. package/dist/dev-program.mjs.map +1 -0
  287. package/dist/dev-session-data.d.cts +27 -0
  288. package/dist/dev-session-data.d.mts +27 -0
  289. package/dist/dev-session.cjs +178 -105
  290. package/dist/dev-session.cjs.map +1 -1
  291. package/dist/dev-session.mjs +180 -105
  292. package/dist/dev-session.mjs.map +1 -1
  293. package/dist/env/process-env.cjs +16 -0
  294. package/dist/env/process-env.cjs.map +1 -0
  295. package/dist/env/process-env.mjs +13 -0
  296. package/dist/env/process-env.mjs.map +1 -0
  297. package/dist/env/project-env.cjs +144 -0
  298. package/dist/env/project-env.cjs.map +1 -0
  299. package/dist/env/project-env.d.cts +1 -0
  300. package/dist/env/project-env.d.mts +1 -0
  301. package/dist/env/project-env.mjs +132 -0
  302. package/dist/env/project-env.mjs.map +1 -0
  303. package/dist/fastkv.cjs +59 -12
  304. package/dist/fastkv.cjs.map +1 -1
  305. package/dist/fastkv.d.cts +42 -6
  306. package/dist/fastkv.d.mts +42 -6
  307. package/dist/fastkv.mjs +58 -13
  308. package/dist/fastkv.mjs.map +1 -1
  309. package/dist/fingerprint.cjs +57 -0
  310. package/dist/fingerprint.cjs.map +1 -0
  311. package/dist/fingerprint.d.cts +14 -0
  312. package/dist/fingerprint.d.mts +14 -0
  313. package/dist/fingerprint.mjs +55 -0
  314. package/dist/fingerprint.mjs.map +1 -0
  315. package/dist/http-client.cjs +17 -17
  316. package/dist/http-client.cjs.map +1 -1
  317. package/dist/http-client.mjs +17 -17
  318. package/dist/http-client.mjs.map +1 -1
  319. package/dist/image-deploy.cjs +186 -0
  320. package/dist/image-deploy.cjs.map +1 -0
  321. package/dist/image-deploy.mjs +182 -0
  322. package/dist/image-deploy.mjs.map +1 -0
  323. package/dist/index.cjs +66 -18
  324. package/dist/index.d.cts +8 -7
  325. package/dist/index.d.mts +8 -7
  326. package/dist/index.mjs +6 -5
  327. package/dist/infra/docker.cjs +77 -0
  328. package/dist/infra/docker.cjs.map +1 -0
  329. package/dist/infra/docker.d.cts +10 -0
  330. package/dist/infra/docker.d.mts +10 -0
  331. package/dist/infra/docker.mjs +69 -0
  332. package/dist/infra/docker.mjs.map +1 -0
  333. package/dist/infra/materializer.cjs +74 -0
  334. package/dist/infra/materializer.cjs.map +1 -0
  335. package/dist/infra/materializer.mjs +70 -0
  336. package/dist/infra/materializer.mjs.map +1 -0
  337. package/dist/infra/planner.cjs +135 -103
  338. package/dist/infra/planner.cjs.map +1 -1
  339. package/dist/infra/planner.mjs +137 -104
  340. package/dist/infra/planner.mjs.map +1 -1
  341. package/dist/infra/port-ownership.cjs +57 -0
  342. package/dist/infra/port-ownership.cjs.map +1 -0
  343. package/dist/infra/port-ownership.mjs +57 -0
  344. package/dist/infra/port-ownership.mjs.map +1 -0
  345. package/dist/infra/preflight.cjs +45 -33
  346. package/dist/infra/preflight.cjs.map +1 -1
  347. package/dist/infra/preflight.d.cts +1 -0
  348. package/dist/infra/preflight.d.mts +1 -0
  349. package/dist/infra/preflight.mjs +46 -34
  350. package/dist/infra/preflight.mjs.map +1 -1
  351. package/dist/infra/types.cjs.map +1 -1
  352. package/dist/infra/types.d.cts +2 -0
  353. package/dist/infra/types.d.mts +2 -0
  354. package/dist/infra/types.mjs.map +1 -1
  355. package/dist/integrity.cjs +50 -61
  356. package/dist/integrity.cjs.map +1 -1
  357. package/dist/integrity.d.cts +16 -10
  358. package/dist/integrity.d.mts +16 -10
  359. package/dist/integrity.mjs +50 -59
  360. package/dist/integrity.mjs.map +1 -1
  361. package/dist/internal/manifest-normalizer.cjs +8 -2
  362. package/dist/internal/manifest-normalizer.cjs.map +1 -1
  363. package/dist/internal/manifest-normalizer.mjs +9 -3
  364. package/dist/internal/manifest-normalizer.mjs.map +1 -1
  365. package/dist/merge.cjs +19 -1
  366. package/dist/merge.cjs.map +1 -1
  367. package/dist/merge.d.cts +1 -1
  368. package/dist/merge.d.mts +1 -1
  369. package/dist/merge.mjs +19 -2
  370. package/dist/merge.mjs.map +1 -1
  371. package/dist/mf.cjs +190 -3
  372. package/dist/mf.cjs.map +1 -1
  373. package/dist/mf.d.cts +24 -2
  374. package/dist/mf.d.mts +24 -2
  375. package/dist/mf.mjs +189 -4
  376. package/dist/mf.mjs.map +1 -1
  377. package/dist/near-cli.cjs +59 -91
  378. package/dist/near-cli.cjs.map +1 -1
  379. package/dist/near-cli.mjs +58 -90
  380. package/dist/near-cli.mjs.map +1 -1
  381. package/dist/near-signer.cjs +73 -0
  382. package/dist/near-signer.cjs.map +1 -0
  383. package/dist/near-signer.mjs +70 -0
  384. package/dist/near-signer.mjs.map +1 -0
  385. package/dist/network.cjs +0 -1
  386. package/dist/network.cjs.map +1 -1
  387. package/dist/orchestrator.cjs +256 -87
  388. package/dist/orchestrator.cjs.map +1 -1
  389. package/dist/orchestrator.mjs +248 -87
  390. package/dist/orchestrator.mjs.map +1 -1
  391. package/dist/platform-deploy.cjs +81 -0
  392. package/dist/platform-deploy.cjs.map +1 -0
  393. package/dist/platform-deploy.mjs +80 -0
  394. package/dist/platform-deploy.mjs.map +1 -0
  395. package/dist/plugin.cjs +54 -1389
  396. package/dist/plugin.cjs.map +1 -1
  397. package/dist/plugin.d.cts +6 -896
  398. package/dist/plugin.d.mts +6 -896
  399. package/dist/plugin.mjs +53 -1387
  400. package/dist/plugin.mjs.map +1 -1
  401. package/dist/process-kill.cjs +44 -0
  402. package/dist/process-kill.cjs.map +1 -0
  403. package/dist/process-kill.mjs +43 -0
  404. package/dist/process-kill.mjs.map +1 -0
  405. package/dist/process-registry.cjs +64 -9
  406. package/dist/process-registry.cjs.map +1 -1
  407. package/dist/process-registry.mjs +61 -10
  408. package/dist/process-registry.mjs.map +1 -1
  409. package/dist/progress.cjs +45 -0
  410. package/dist/progress.cjs.map +1 -0
  411. package/dist/progress.d.cts +13 -0
  412. package/dist/progress.d.mts +13 -0
  413. package/dist/progress.mjs +42 -0
  414. package/dist/progress.mjs.map +1 -0
  415. package/dist/publish.cjs +513 -79
  416. package/dist/publish.cjs.map +1 -1
  417. package/dist/publish.mjs +515 -82
  418. package/dist/publish.mjs.map +1 -1
  419. package/dist/registry-use.cjs +41 -0
  420. package/dist/registry-use.cjs.map +1 -0
  421. package/dist/registry-use.mjs +40 -0
  422. package/dist/registry-use.mjs.map +1 -0
  423. package/dist/resolution/session.cjs +335 -0
  424. package/dist/resolution/session.cjs.map +1 -0
  425. package/dist/resolution/session.d.cts +105 -0
  426. package/dist/resolution/session.d.mts +105 -0
  427. package/dist/resolution/session.mjs +331 -0
  428. package/dist/resolution/session.mjs.map +1 -0
  429. package/dist/rollback.cjs +131 -0
  430. package/dist/rollback.cjs.map +1 -0
  431. package/dist/rollback.mjs +128 -0
  432. package/dist/rollback.mjs.map +1 -0
  433. package/dist/sdk.cjs +7 -7
  434. package/dist/sdk.d.cts +3 -3
  435. package/dist/sdk.d.mts +3 -3
  436. package/dist/sdk.mjs +2 -2
  437. package/dist/service-descriptor.cjs +67 -34
  438. package/dist/service-descriptor.cjs.map +1 -1
  439. package/dist/service-descriptor.d.cts +4 -1
  440. package/dist/service-descriptor.d.mts +3 -0
  441. package/dist/service-descriptor.mjs +63 -35
  442. package/dist/service-descriptor.mjs.map +1 -1
  443. package/dist/shared-deps.cjs +17 -16
  444. package/dist/shared-deps.cjs.map +1 -1
  445. package/dist/shared-deps.mjs +17 -16
  446. package/dist/shared-deps.mjs.map +1 -1
  447. package/dist/start-config-source.cjs +24 -0
  448. package/dist/start-config-source.cjs.map +1 -0
  449. package/dist/start-config-source.d.cts +29 -0
  450. package/dist/start-config-source.d.mts +29 -0
  451. package/dist/start-config-source.mjs +22 -0
  452. package/dist/start-config-source.mjs.map +1 -0
  453. package/dist/storage-upload.cjs +145 -0
  454. package/dist/storage-upload.cjs.map +1 -0
  455. package/dist/storage-upload.mjs +143 -0
  456. package/dist/storage-upload.mjs.map +1 -0
  457. package/dist/types.cjs +126 -20
  458. package/dist/types.cjs.map +1 -1
  459. package/dist/types.d.cts +867 -585
  460. package/dist/types.d.mts +867 -585
  461. package/dist/types.mjs +307 -208
  462. package/dist/types.mjs.map +1 -1
  463. package/dist/ui/api.cjs +105 -0
  464. package/dist/ui/api.cjs.map +1 -0
  465. package/dist/ui/api.d.cts +31 -0
  466. package/dist/ui/api.d.mts +31 -0
  467. package/dist/ui/api.mjs +99 -0
  468. package/dist/ui/api.mjs.map +1 -0
  469. package/dist/ui/auth-guards.cjs +50 -0
  470. package/dist/ui/auth-guards.cjs.map +1 -0
  471. package/dist/ui/auth-guards.d.cts +39 -0
  472. package/dist/ui/auth-guards.d.mts +39 -0
  473. package/dist/ui/auth-guards.mjs +48 -0
  474. package/dist/ui/auth-guards.mjs.map +1 -0
  475. package/dist/ui/auth.cjs +197 -0
  476. package/dist/ui/auth.cjs.map +1 -0
  477. package/dist/ui/auth.d.cts +56 -0
  478. package/dist/ui/auth.d.mts +56 -0
  479. package/dist/ui/auth.mjs +179 -0
  480. package/dist/ui/auth.mjs.map +1 -0
  481. package/dist/ui/entry.cjs +16 -0
  482. package/dist/ui/entry.cjs.map +1 -0
  483. package/dist/ui/entry.d.cts +12 -0
  484. package/dist/ui/entry.d.mts +12 -0
  485. package/dist/ui/entry.mjs +15 -0
  486. package/dist/ui/entry.mjs.map +1 -0
  487. package/dist/ui/head.cjs +14 -7
  488. package/dist/ui/head.cjs.map +1 -1
  489. package/dist/ui/head.mjs +15 -7
  490. package/dist/ui/head.mjs.map +1 -1
  491. package/dist/ui/hydrate.cjs +265 -0
  492. package/dist/ui/hydrate.cjs.map +1 -0
  493. package/dist/ui/hydrate.d.cts +48 -0
  494. package/dist/ui/hydrate.d.mts +48 -0
  495. package/dist/ui/hydrate.mjs +263 -0
  496. package/dist/ui/hydrate.mjs.map +1 -0
  497. package/dist/ui/i18n.cjs +153 -0
  498. package/dist/ui/i18n.cjs.map +1 -0
  499. package/dist/ui/i18n.d.cts +29 -0
  500. package/dist/ui/i18n.d.mts +29 -0
  501. package/dist/ui/i18n.mjs +140 -0
  502. package/dist/ui/i18n.mjs.map +1 -0
  503. package/dist/ui/index.cjs +19 -1
  504. package/dist/ui/index.d.cts +6 -3
  505. package/dist/ui/index.d.mts +6 -3
  506. package/dist/ui/index.mjs +5 -2
  507. package/dist/ui/locale.cjs +53 -0
  508. package/dist/ui/locale.cjs.map +1 -0
  509. package/dist/ui/locale.d.cts +18 -0
  510. package/dist/ui/locale.d.mts +18 -0
  511. package/dist/ui/locale.mjs +49 -0
  512. package/dist/ui/locale.mjs.map +1 -0
  513. package/dist/ui/manifest/index.cjs +25 -0
  514. package/dist/ui/manifest/index.cjs.map +1 -0
  515. package/dist/ui/manifest/index.d.cts +9 -0
  516. package/dist/ui/manifest/index.d.mts +9 -0
  517. package/dist/ui/manifest/index.mjs +13 -0
  518. package/dist/ui/manifest/index.mjs.map +1 -0
  519. package/dist/ui/manifest-generator.cjs +8 -0
  520. package/dist/ui/manifest-generator.d.cts +1 -0
  521. package/dist/ui/manifest-generator.d.mts +1 -0
  522. package/dist/ui/manifest-generator.mjs +3 -0
  523. package/dist/ui/message-catalogs.cjs +8 -0
  524. package/dist/ui/message-catalogs.cjs.map +1 -0
  525. package/dist/ui/message-catalogs.d.cts +5 -0
  526. package/dist/ui/message-catalogs.d.mts +5 -0
  527. package/dist/ui/message-catalogs.mjs +8 -0
  528. package/dist/ui/message-catalogs.mjs.map +1 -0
  529. package/dist/ui/metadata.cjs +0 -1
  530. package/dist/ui/metadata.cjs.map +1 -1
  531. package/dist/ui/metadata.d.cts +1 -1
  532. package/dist/ui/metadata.d.mts +1 -1
  533. package/dist/ui/plugin-path.cjs +37 -0
  534. package/dist/ui/plugin-path.cjs.map +1 -0
  535. package/dist/ui/plugin-path.d.cts +25 -0
  536. package/dist/ui/plugin-path.d.mts +25 -0
  537. package/dist/ui/plugin-path.mjs +35 -0
  538. package/dist/ui/plugin-path.mjs.map +1 -0
  539. package/dist/ui/router-client.cjs +61 -0
  540. package/dist/ui/router-client.cjs.map +1 -0
  541. package/dist/ui/router-client.d.cts +20 -0
  542. package/dist/ui/router-client.d.mts +20 -0
  543. package/dist/ui/router-client.mjs +60 -0
  544. package/dist/ui/router-client.mjs.map +1 -0
  545. package/dist/ui/router-defaults.cjs +48 -0
  546. package/dist/ui/router-defaults.cjs.map +1 -0
  547. package/dist/ui/router-defaults.d.cts +8 -0
  548. package/dist/ui/router-defaults.d.mts +8 -0
  549. package/dist/ui/router-defaults.mjs +45 -0
  550. package/dist/ui/router-defaults.mjs.map +1 -0
  551. package/dist/ui/router-error.cjs +70 -0
  552. package/dist/ui/router-error.cjs.map +1 -0
  553. package/dist/ui/router-error.d.cts +19 -0
  554. package/dist/ui/router-error.d.mts +19 -0
  555. package/dist/ui/router-error.mjs +69 -0
  556. package/dist/ui/router-error.mjs.map +1 -0
  557. package/dist/ui/router-server.cjs +153 -0
  558. package/dist/ui/router-server.cjs.map +1 -0
  559. package/dist/ui/router-server.d.cts +38 -0
  560. package/dist/ui/router-server.d.mts +38 -0
  561. package/dist/ui/router-server.mjs +152 -0
  562. package/dist/ui/router-server.mjs.map +1 -0
  563. package/dist/ui/router.cjs +4 -16
  564. package/dist/ui/router.cjs.map +1 -1
  565. package/dist/ui/router.mjs +4 -15
  566. package/dist/ui/router.mjs.map +1 -1
  567. package/dist/ui/runtime.cjs +5 -1
  568. package/dist/ui/runtime.cjs.map +1 -1
  569. package/dist/ui/runtime.d.cts +2 -1
  570. package/dist/ui/runtime.d.mts +2 -1
  571. package/dist/ui/runtime.mjs +5 -1
  572. package/dist/ui/runtime.mjs.map +1 -1
  573. package/dist/ui/slot.cjs +34 -0
  574. package/dist/ui/slot.cjs.map +1 -0
  575. package/dist/ui/slot.d.cts +43 -0
  576. package/dist/ui/slot.d.mts +43 -0
  577. package/dist/ui/slot.mjs +34 -0
  578. package/dist/ui/slot.mjs.map +1 -0
  579. package/dist/ui/tenant.cjs +300 -0
  580. package/dist/ui/tenant.cjs.map +1 -0
  581. package/dist/ui/tenant.d.cts +122 -0
  582. package/dist/ui/tenant.d.mts +122 -0
  583. package/dist/ui/tenant.mjs +279 -0
  584. package/dist/ui/tenant.mjs.map +1 -0
  585. package/dist/ui/types.d.cts +32 -2
  586. package/dist/ui/types.d.mts +32 -2
  587. package/dist/ui/version-check.cjs +47 -0
  588. package/dist/ui/version-check.cjs.map +1 -0
  589. package/dist/ui/version-check.d.cts +23 -0
  590. package/dist/ui/version-check.d.mts +23 -0
  591. package/dist/ui/version-check.mjs +46 -0
  592. package/dist/ui/version-check.mjs.map +1 -0
  593. package/dist/utils/banner.cjs +2 -2
  594. package/dist/utils/banner.cjs.map +1 -1
  595. package/dist/utils/banner.mjs +2 -2
  596. package/dist/utils/banner.mjs.map +1 -1
  597. package/dist/utils/linkify.cjs +1 -1
  598. package/dist/utils/linkify.cjs.map +1 -1
  599. package/dist/utils/linkify.mjs +1 -0
  600. package/dist/utils/linkify.mjs.map +1 -1
  601. package/dist/utils/run.cjs +6 -6
  602. package/dist/utils/run.cjs.map +1 -1
  603. package/dist/utils/run.mjs +6 -6
  604. package/dist/utils/run.mjs.map +1 -1
  605. package/dist/utils/save-config.cjs +12 -0
  606. package/dist/utils/save-config.cjs.map +1 -1
  607. package/dist/utils/save-config.mjs +12 -0
  608. package/dist/utils/save-config.mjs.map +1 -1
  609. package/dist/utils/snapshot-hash.cjs +10 -0
  610. package/dist/utils/snapshot-hash.cjs.map +1 -0
  611. package/dist/utils/snapshot-hash.mjs +10 -0
  612. package/dist/utils/snapshot-hash.mjs.map +1 -0
  613. package/dist/utils/string.cjs +0 -1
  614. package/dist/utils/string.cjs.map +1 -1
  615. package/dist/utils/theme.cjs +30 -12
  616. package/dist/utils/theme.cjs.map +1 -1
  617. package/dist/utils/theme.mjs +30 -11
  618. package/dist/utils/theme.mjs.map +1 -1
  619. package/dist/version-manifest-deploy.cjs +50 -0
  620. package/dist/version-manifest-deploy.cjs.map +1 -0
  621. package/dist/version-manifest-deploy.mjs +49 -0
  622. package/dist/version-manifest-deploy.mjs.map +1 -0
  623. package/dist/version-manifest-resolve.cjs +42 -0
  624. package/dist/version-manifest-resolve.cjs.map +1 -0
  625. package/dist/version-manifest-resolve.d.cts +38 -0
  626. package/dist/version-manifest-resolve.d.mts +38 -0
  627. package/dist/version-manifest-resolve.mjs +40 -0
  628. package/dist/version-manifest-resolve.mjs.map +1 -0
  629. package/dist/version-status.cjs +18 -0
  630. package/dist/version-status.cjs.map +1 -0
  631. package/dist/version-status.d.cts +22 -0
  632. package/dist/version-status.d.mts +22 -0
  633. package/dist/version-status.mjs +17 -0
  634. package/dist/version-status.mjs.map +1 -0
  635. package/dist/workspace-catalog.cjs +53 -0
  636. package/dist/workspace-catalog.cjs.map +1 -0
  637. package/dist/workspace-catalog.mjs +51 -0
  638. package/dist/workspace-catalog.mjs.map +1 -0
  639. package/dist/workspace.cjs +237 -0
  640. package/dist/workspace.cjs.map +1 -0
  641. package/dist/workspace.mjs +233 -0
  642. package/dist/workspace.mjs.map +1 -0
  643. package/package.json +179 -27
  644. package/skills/add-a-route/SKILL.md +132 -0
  645. package/skills/api-and-auth/SKILL.md +87 -21
  646. package/skills/api-and-auth/references/middleware.md +1 -1
  647. package/skills/cli-reference/SKILL.md +48 -21
  648. package/skills/code-style/SKILL.md +8 -0
  649. package/skills/dev-workflow/SKILL.md +50 -26
  650. package/skills/extends-config/SKILL.md +31 -19
  651. package/skills/init-upgrade/SKILL.md +29 -16
  652. package/skills/plugin-development/SKILL.md +46 -112
  653. package/skills/plugin-development/references/database.md +82 -0
  654. package/skills/plugin-development/references/request-context.md +67 -0
  655. package/skills/publish-sync/SKILL.md +99 -22
  656. package/skills/registry/SKILL.md +82 -0
  657. package/skills/super-app/SKILL.md +25 -15
  658. package/skills/talk-to-the-app/SKILL.md +138 -0
  659. package/skills/ui-integration/SKILL.md +93 -11
  660. package/dist/cli/db-studio.cjs +0 -131
  661. package/dist/cli/db-studio.cjs.map +0 -1
  662. package/dist/cli/db-studio.mjs +0 -127
  663. package/dist/cli/db-studio.mjs.map +0 -1
  664. package/dist/cli/init.d.cts.map +0 -1
  665. package/dist/cli/init.d.mts.map +0 -1
  666. package/dist/components/dev-view.cjs +0 -309
  667. package/dist/components/dev-view.cjs.map +0 -1
  668. package/dist/components/dev-view.mjs +0 -309
  669. package/dist/components/dev-view.mjs.map +0 -1
  670. package/dist/components/streaming-view.cjs +0 -134
  671. package/dist/components/streaming-view.cjs.map +0 -1
  672. package/dist/components/streaming-view.mjs +0 -132
  673. package/dist/components/streaming-view.mjs.map +0 -1
  674. package/dist/config.d.cts.map +0 -1
  675. package/dist/config.d.mts.map +0 -1
  676. package/dist/contract.d.cts.map +0 -1
  677. package/dist/contract.d.mts.map +0 -1
  678. package/dist/contract.meta.d.cts.map +0 -1
  679. package/dist/contract.meta.d.mts.map +0 -1
  680. package/dist/dag.d.cts.map +0 -1
  681. package/dist/dag.d.mts.map +0 -1
  682. package/dist/db.cjs +0 -81
  683. package/dist/db.cjs.map +0 -1
  684. package/dist/db.d.cts +0 -30
  685. package/dist/db.d.cts.map +0 -1
  686. package/dist/db.d.mts +0 -30
  687. package/dist/db.d.mts.map +0 -1
  688. package/dist/db.mjs +0 -75
  689. package/dist/db.mjs.map +0 -1
  690. package/dist/fastkv.d.cts.map +0 -1
  691. package/dist/fastkv.d.mts.map +0 -1
  692. package/dist/integrity.d.cts.map +0 -1
  693. package/dist/integrity.d.mts.map +0 -1
  694. package/dist/merge.d.cts.map +0 -1
  695. package/dist/merge.d.mts.map +0 -1
  696. package/dist/mf.d.cts.map +0 -1
  697. package/dist/mf.d.mts.map +0 -1
  698. package/dist/plugin.d.cts.map +0 -1
  699. package/dist/plugin.d.mts.map +0 -1
  700. package/dist/service-descriptor.d.cts.map +0 -1
  701. package/dist/service-descriptor.d.mts.map +0 -1
  702. package/dist/types.d.cts.map +0 -1
  703. package/dist/types.d.mts.map +0 -1
  704. package/dist/ui/head.d.cts.map +0 -1
  705. package/dist/ui/head.d.mts.map +0 -1
  706. package/dist/ui/metadata.d.cts.map +0 -1
  707. package/dist/ui/metadata.d.mts.map +0 -1
  708. package/dist/ui/router.d.cts.map +0 -1
  709. package/dist/ui/router.d.mts.map +0 -1
  710. package/dist/ui/runtime.d.cts.map +0 -1
  711. package/dist/ui/runtime.d.mts.map +0 -1
  712. package/dist/ui/types.d.cts.map +0 -1
  713. package/dist/ui/types.d.mts.map +0 -1
package/dist/cli.cjs CHANGED
@@ -1,10 +1,15 @@
1
1
  #!/usr/bin/env node
2
2
  const require_runtime = require('./_virtual/_rolldown/runtime.cjs');
3
+ const require_fastkv = require('./fastkv.cjs');
4
+ const require_network = require('./network.cjs');
3
5
  const require_config = require('./config.cjs');
6
+ const require_docker = require('./infra/docker.cjs');
7
+ const require_bundle_fs_resolve = require('./bundle-fs-resolve.cjs');
4
8
  const require_timing = require('./cli/timing.cjs');
5
9
  const require_theme = require('./utils/theme.cjs');
6
- const require_infra = require('./cli/infra.cjs');
7
- const require_cli_init = require('./cli/init.cjs');
10
+ const require_near_cli = require('./near-cli.cjs');
11
+ const require_progress = require('./progress.cjs');
12
+ const require_init = require('./commands/init.cjs');
8
13
  const require_framework_version = require('./cli/framework-version.cjs');
9
14
  const require_plugin = require('./plugin.cjs');
10
15
  const require_catalog = require('./cli/catalog.cjs');
@@ -12,7 +17,9 @@ const require_help = require('./cli/help.cjs');
12
17
  const require_parse = require('./cli/parse.cjs');
13
18
  const require_prompts = require('./cli/prompts.cjs');
14
19
  const require_banner = require('./utils/banner.cjs');
20
+ let node_fs = require("node:fs");
15
21
  let node_path = require("node:path");
22
+ let node_fs_promises = require("node:fs/promises");
16
23
  let _clack_prompts = require("@clack/prompts");
17
24
  _clack_prompts = require_runtime.__toESM(_clack_prompts, 1);
18
25
  let every_plugin = require("every-plugin");
@@ -43,6 +50,25 @@ function formatTimeAgo(isoTimestamp) {
43
50
  function normalizeVersion(v) {
44
51
  return v.replace(/^[\^~>=v]+/, "").trim();
45
52
  }
53
+ const RETIRED_BOOTSTRAP_STUBS = [
54
+ "ui/src/entry.ts",
55
+ "ui/src/hydrate.tsx",
56
+ "ui/src/router.server.tsx",
57
+ "ui/src/compose.ts"
58
+ ];
59
+ /**
60
+ * Hand-modified bootstrap stubs retire as conflicted (backed up, then
61
+ * deleted) — print the mechanical port into the authored seams (ADR 0023).
62
+ */
63
+ function printStubMigrationGuide(retiredConflicted) {
64
+ if ((retiredConflicted ?? []).filter((f) => RETIRED_BOOTSTRAP_STUBS.includes(f)).length === 0) return;
65
+ console.log(` ${require_theme.colors.yellow("Port your stub customizations into the authored seams:")}`);
66
+ console.log(` ${require_theme.colors.dim("- defaultErrorComponent / defaultPendingComponent / defaultNotFoundComponent")}`);
67
+ console.log(` ${require_theme.colors.dim(" → set them inside the createRouter factory in ui/src/router.tsx (after ...opts)")}`);
68
+ console.log(` ${require_theme.colors.dim("- apiConnectionError copy + SSR locale config (locales, defaultLocale, cookieName)")}`);
69
+ console.log(` ${require_theme.colors.dim(" → export apiConnectionError / appLocale from ui/src/app.ts (see the scaffold template)")}`);
70
+ console.log(` ${require_theme.colors.dim(" backed-up originals: .bos/sync-backup/<timestamp>/")}`);
71
+ }
46
72
  function printTimingSummary(timings) {
47
73
  if (!timings || timings.length === 0) return;
48
74
  console.log(` ${require_theme.colors.dim("Timings:")}`);
@@ -85,11 +111,15 @@ async function warnIfOutdated(client, command) {
85
111
  const outdated = status.packages.filter((p) => !p.isLinked && p.installed && p.latest && normalizeVersion(p.installed) !== normalizeVersion(p.latest) && frameworkPackages.includes(p.name));
86
112
  if (linked.length > 0) for (const pkg of linked) console.log(require_theme.colors.dim(` ${pkg.name} is linked locally (v${pkg.installed})`));
87
113
  if (outdated.length === 0) return;
88
- console.log();
89
- console.log(require_theme.colors.yellow(` ! Outdated packages detected:`));
90
- for (const pkg of outdated) console.log(require_theme.colors.dim(` ${pkg.name} ${pkg.installed} → ${pkg.latest}`));
91
- console.log(require_theme.colors.dim(` Run ${require_theme.colors.cyan("bos upgrade")} to update packages and sync template files.`));
92
- console.log();
114
+ const warn = (line) => {
115
+ if (command === "dev" || command === "start") process.stderr.write(`${line}\n`);
116
+ else console.log(line);
117
+ };
118
+ warn("");
119
+ warn(require_theme.colors.yellow(` ! Outdated packages detected:`));
120
+ for (const pkg of outdated) warn(require_theme.colors.dim(` ${pkg.name} ${pkg.installed} → ${pkg.latest}`));
121
+ warn(require_theme.colors.dim(` Run ${require_theme.colors.cyan("bos upgrade")} to update packages and sync template files.`));
122
+ warn("");
93
123
  } catch {}
94
124
  }
95
125
  async function main() {
@@ -100,7 +130,6 @@ async function main() {
100
130
  }
101
131
  const invocationArgs = args.length > 0 ? args : ["dev"];
102
132
  const command = invocationArgs[0] ?? "dev";
103
- const configPath = require_config.findConfigPath();
104
133
  const commandMatch = require_catalog.findCommandDescriptor(invocationArgs);
105
134
  if (!commandMatch) {
106
135
  console.error(`Unknown command: ${command}`);
@@ -108,7 +137,18 @@ async function main() {
108
137
  }
109
138
  const { descriptor, consumed } = commandMatch;
110
139
  const commandArgs = invocationArgs.slice(consumed);
111
- const projectDir = configPath ? (0, node_path.dirname)(configPath) : void 0;
140
+ let parsedInput;
141
+ try {
142
+ parsedInput = require_parse.parseCommandInput(descriptor, commandArgs);
143
+ } catch (error) {
144
+ console.error(`[CLI] ${error instanceof Error ? error.message : String(error)}`);
145
+ process.exit(1);
146
+ }
147
+ const bootInput = parsedInput;
148
+ const cwdConfigPath = require_config.findConfigPath();
149
+ const configPath = bootInput.configPath ?? cwdConfigPath;
150
+ require_bundle_fs_resolve.installBundleFetchFromEnv({ configPath });
151
+ const projectDir = cwdConfigPath ? (0, node_path.dirname)(cwdConfigPath) : void 0;
112
152
  const edResolved = projectDir ? require_framework_version.resolveFrameworkPackage(projectDir, "everything-dev") : void 0;
113
153
  const displayVersion = edResolved?.installedVersion ? `${edResolved.installedVersion}${edResolved.isLinked ? " (linked)" : ""}` : void 0;
114
154
  if (!process.env.BOS_NO_BANNER) require_banner.printBanner("everything-dev", displayVersion);
@@ -117,12 +157,68 @@ async function main() {
117
157
  secrets: {}
118
158
  });
119
159
  const client = (await pluginRuntime.usePlugin.bind(pluginRuntime)("bos", {
120
- variables: { configPath: configPath ?? void 0 },
160
+ variables: {
161
+ configPath: configPath ?? void 0,
162
+ configDir: cwdConfigPath ? (0, node_path.dirname)(cwdConfigPath) : void 0
163
+ },
121
164
  secrets: {}
122
165
  })).createClient();
123
- const outdatedWarning = warnIfOutdated(client, command);
166
+ warnIfOutdated(client, command);
124
167
  try {
125
- const input = require_parse.parseCommandInput(descriptor, commandArgs);
168
+ const input = parsedInput;
169
+ const rollbackInput = input;
170
+ if (descriptor.key === "rollback" && !rollbackInput.listOnly && !rollbackInput.version && !rollbackInput.previous) {
171
+ const listing = await client.rollback({
172
+ ...rollbackInput,
173
+ listOnly: true
174
+ });
175
+ if (listing.status !== "list" || !listing.history?.length) {
176
+ console.error(listing.error ?? "No publish history found");
177
+ process.exit(1);
178
+ }
179
+ console.log();
180
+ const selection = await _clack_prompts.select({
181
+ message: "Roll back to which publish?",
182
+ options: listing.history.map((entry) => ({
183
+ value: String(entry.blockHeight),
184
+ label: `${entry.blockTimestamp} (block ${entry.blockHeight})`,
185
+ hint: entry.summary
186
+ }))
187
+ });
188
+ if (_clack_prompts.isCancel(selection)) return;
189
+ rollbackInput.version = selection;
190
+ }
191
+ if (descriptor.key === "keyPublish") {
192
+ const keyPublishInput = input;
193
+ if (keyPublishInput.removeOldKeys === void 0) {
194
+ if (process.stdin.isTTY) {
195
+ const authored = configPath ? await require_config.readAuthoredConfigInput((0, node_path.dirname)(configPath)) : null;
196
+ const account = keyPublishInput.env === "staging" ? authored?.staging?.account ?? authored?.account : authored?.account;
197
+ let listed = null;
198
+ if (account) {
199
+ const network = require_network.getNetworkIdForAccount(account);
200
+ const contract = require_fastkv.getRegistryNamespaceForAccount(account, keyPublishInput.registry);
201
+ try {
202
+ listed = await require_near_cli.listPublishKeys({
203
+ account,
204
+ contract,
205
+ network
206
+ });
207
+ } catch {
208
+ listed = null;
209
+ }
210
+ }
211
+ if (listed?.length) {
212
+ const removeOldKeys = await _clack_prompts.confirm({
213
+ message: `Remove ${listed.length} existing publish key${listed.length > 1 ? "s" : ""}?`,
214
+ initialValue: true
215
+ });
216
+ if (_clack_prompts.isCancel(removeOldKeys)) return;
217
+ keyPublishInput.removeOldKeys = removeOldKeys;
218
+ } else keyPublishInput.removeOldKeys = true;
219
+ } else keyPublishInput.removeOldKeys = true;
220
+ }
221
+ }
126
222
  if (descriptor.key === "dev") {
127
223
  const devSpinner = _clack_prompts.spinner();
128
224
  devSpinner.start("Starting dev environment");
@@ -132,18 +228,19 @@ async function main() {
132
228
  build: "Building...",
133
229
  "resolve config": "Resolving config...",
134
230
  ports: "Finding available ports...",
231
+ "docker compose up": "Starting local Postgres...",
135
232
  "generate artifacts": "Generating code artifacts..."
136
233
  };
137
234
  const onDevProgress = (event) => {
138
235
  const label = devPhaseLabels[event.phase] ?? event.phase;
139
236
  if (event.status === "running") devSpinner.message(label);
140
237
  };
141
- require_plugin.pluginEvents.on("progress", onDevProgress);
238
+ require_progress.pluginEvents.on("progress", onDevProgress);
142
239
  let result;
143
240
  try {
144
241
  result = await client.dev(input);
145
242
  } finally {
146
- require_plugin.pluginEvents.off("progress", onDevProgress);
243
+ require_progress.pluginEvents.off("progress", onDevProgress);
147
244
  }
148
245
  if (result.status === "error") {
149
246
  devSpinner.stop("Failed");
@@ -152,11 +249,10 @@ async function main() {
152
249
  }
153
250
  devSpinner.stop();
154
251
  clearSpinnerStopLine();
155
- const session = require_plugin.consumeDevSession();
156
- await outdatedWarning;
252
+ const session = result.session;
157
253
  if (session) {
158
254
  const { devApp } = await Promise.resolve().then(() => require("./dev-session.cjs"));
159
- devApp(session.orchestrator, session.services, session.runtimeConfig);
255
+ devApp(projectDir ?? process.cwd(), session.orchestrator, session.services, session.runtimeConfig, session.envGenerated, session.shellEnv);
160
256
  }
161
257
  return;
162
258
  }
@@ -171,12 +267,12 @@ async function main() {
171
267
  const label = startPhaseLabels[event.phase] ?? event.phase;
172
268
  if (event.status === "running") startSpinner.message(label);
173
269
  };
174
- require_plugin.pluginEvents.on("progress", onStartProgress);
270
+ require_progress.pluginEvents.on("progress", onStartProgress);
175
271
  let result;
176
272
  try {
177
273
  result = await client.start(input);
178
274
  } finally {
179
- require_plugin.pluginEvents.off("progress", onStartProgress);
275
+ require_progress.pluginEvents.off("progress", onStartProgress);
180
276
  }
181
277
  if (result.status === "error") {
182
278
  startSpinner.stop("Failed");
@@ -184,13 +280,12 @@ async function main() {
184
280
  process.exit(1);
185
281
  }
186
282
  startSpinner.stop("Ready");
187
- const session = require_plugin.consumeDevSession();
188
- await outdatedWarning;
283
+ const session = result.session;
284
+ const summary = result.summary;
189
285
  if (session) {
190
- const summary = session.summary;
191
286
  if (summary) printStartSummary(summary);
192
287
  const { startApp } = await Promise.resolve().then(() => require("./dev-session.cjs"));
193
- startApp(session.orchestrator, session.services, session.runtimeConfig);
288
+ startApp(projectDir ?? process.cwd(), session.orchestrator, session.services, session.runtimeConfig, session.envGenerated, session.shellEnv);
194
289
  }
195
290
  return;
196
291
  }
@@ -207,8 +302,9 @@ async function main() {
207
302
  const fetchSpinner = _clack_prompts.spinner();
208
303
  fetchSpinner.start("Fetching parent config");
209
304
  try {
210
- parentConfig = await require_cli_init.fetchParentConfig(basic.extendsAccount, basic.extendsGateway);
211
- if (parentConfig?.plugins && typeof parentConfig.plugins === "object") parentPluginKeys = Object.keys(parentConfig.plugins);
305
+ const parent = await require_init.fetchInitParent(basic.extendsAccount, basic.extendsGateway);
306
+ parentConfig = parent.parentConfig;
307
+ parentPluginKeys = parent.parentPluginKeys;
212
308
  } catch {
213
309
  fetchSpinner.stop("Config not found");
214
310
  console.error(`[CLI] No config found at bos://${basic.extendsAccount}/${basic.extendsGateway}`);
@@ -225,7 +321,8 @@ async function main() {
225
321
  const overrides = await require_prompts.promptInitOverrides({
226
322
  parentPluginKeys,
227
323
  plugins: initInput.plugins,
228
- overrides: initInput.overrides
324
+ overrides: initInput.overrides,
325
+ level: initInput.level
229
326
  });
230
327
  const directory = initInput.directory || basic.domain || basic.extendsGateway;
231
328
  initInput = {
@@ -236,6 +333,7 @@ async function main() {
236
333
  domain: basic.domain || void 0,
237
334
  plugins: overrides.plugins,
238
335
  overrides: overrides.overrides,
336
+ level: overrides.level ?? initInput.level,
239
337
  noInteractive: true
240
338
  };
241
339
  }
@@ -260,12 +358,12 @@ async function main() {
260
358
  const label = phaseLabels[event.phase] ?? event.phase;
261
359
  if (event.status === "running") initSpinner.message(label);
262
360
  };
263
- require_plugin.pluginEvents.on("progress", onProgress);
361
+ require_progress.pluginEvents.on("progress", onProgress);
264
362
  let result;
265
363
  try {
266
364
  result = await client.init(initInput);
267
365
  } finally {
268
- require_plugin.pluginEvents.off("progress", onProgress);
366
+ require_progress.pluginEvents.off("progress", onProgress);
269
367
  }
270
368
  if (result.status === "error") {
271
369
  initSpinner.stop("Failed");
@@ -284,13 +382,10 @@ async function main() {
284
382
  console.log();
285
383
  console.log(require_theme.colors.dim(" Next steps:"));
286
384
  console.log(require_theme.colors.dim(` cd ${result.directory}`));
287
- if (!initInput.noInstall) {
288
- console.log(require_theme.colors.dim(" docker compose up -d --wait"));
289
- console.log(require_theme.colors.dim(" bun run dev"));
290
- } else {
291
- console.log(require_theme.colors.dim(" bun install"));
292
- console.log(require_theme.colors.dim(" docker compose up -d --wait"));
293
- console.log(require_theme.colors.dim(" bun run dev"));
385
+ if (!initInput.noInstall) console.log(require_theme.colors.dim(" pnpm run dev"));
386
+ else {
387
+ console.log(require_theme.colors.dim(" pnpm install"));
388
+ console.log(require_theme.colors.dim(" pnpm run dev"));
294
389
  }
295
390
  console.log();
296
391
  if (initInput.noInteractive !== true && !initInput.noInstall && result.targetDir) {
@@ -300,43 +395,22 @@ async function main() {
300
395
  }) === true) {
301
396
  const dockerSpinner = _clack_prompts.spinner();
302
397
  dockerSpinner.start("Starting Docker services");
303
- try {
304
- await require_cli_init.runDockerComposeUp(result.targetDir);
305
- dockerSpinner.stop("Docker services ready");
306
- } catch (error) {
398
+ const compose = await require_docker.runDockerComposeUp(result.targetDir);
399
+ if (compose.ok) dockerSpinner.stop("Docker services ready");
400
+ else {
307
401
  dockerSpinner.stop("Docker services not started");
308
- _clack_prompts.log.warn(`docker compose up -d --wait failed: ${error instanceof Error ? error.message : error}`);
402
+ _clack_prompts.log.warn(`docker compose up -d --wait failed${compose.tail ? `:\n${compose.tail}` : ""}`);
309
403
  }
310
404
  }
311
405
  }
312
406
  return;
313
407
  }
314
- await outdatedWarning;
315
408
  const result = await client[descriptor.key](input);
316
409
  if (descriptor.key === "dbStudio") {
317
410
  if (result.status === "error") {
318
411
  console.error(`[CLI] ${result.error || "Unknown error"}`);
319
412
  process.exit(1);
320
413
  }
321
- const configPath = require_config.findConfigPath();
322
- if (configPath) require_infra.loadProjectEnv((0, node_path.dirname)(configPath));
323
- const { runStudioLocal, runStudioRemote } = await Promise.resolve().then(() => require("./cli/db-studio.cjs"));
324
- const info = {
325
- key: result.plugin,
326
- source: result.source,
327
- section: result.section,
328
- databaseSecret: result.databaseSecret,
329
- databaseUrl: result.databaseUrl,
330
- workspaceDir: result.workspaceDir,
331
- projectDir: (0, node_path.dirname)(configPath ?? process.cwd())
332
- };
333
- try {
334
- if (info.source === "local" && info.workspaceDir) await runStudioLocal(info);
335
- else await runStudioRemote(info);
336
- } catch (error) {
337
- console.error(`[CLI] ${error instanceof Error ? error.message : String(error)}`);
338
- process.exit(1);
339
- }
340
414
  return;
341
415
  }
342
416
  if (descriptor.key === "dbDoctor") {
@@ -386,7 +460,7 @@ async function main() {
386
460
  }
387
461
  if (descriptor.key === "config") {
388
462
  if (!result.config) {
389
- console.error("No bos.config.json found");
463
+ console.error(require_config.MISSING_CONFIG_MESSAGE);
390
464
  process.exit(1);
391
465
  }
392
466
  printConfigView(result.config);
@@ -405,7 +479,8 @@ async function main() {
405
479
  }
406
480
  if (result.status === "dry-run") console.log(require_theme.colors.cyan(`${require_theme.icons.ok} Dry run — no files written`));
407
481
  else console.log(require_theme.colors.green(`${require_theme.icons.ok} Synced`));
408
- if (result.updated.length > 0 || result.added.length > 0 || result.conflicted.length > 0) {
482
+ const hasRetirement = (result.retired?.length ?? 0) > 0 || (result.retiredConflicted?.length ?? 0) > 0;
483
+ if (result.updated.length > 0 || result.added.length > 0 || result.conflicted.length > 0 || hasRetirement) {
409
484
  console.log(` ${require_theme.colors.dim("Sync results:")} ${result.updated.length} updated, ${result.added.length} added, ${result.conflicted.length} conflicted`);
410
485
  if (result.updated.length > 0) for (const f of result.updated) console.log(` ${require_theme.colors.dim(f)}`);
411
486
  if (result.added.length > 0) for (const f of result.added) console.log(` ${require_theme.colors.dim(f)}`);
@@ -414,8 +489,15 @@ async function main() {
414
489
  if (result.backupDir) console.log(` ${require_theme.colors.dim(result.backupDir)}`);
415
490
  for (const f of result.conflicted) console.log(` ${require_theme.colors.dim(f)}`);
416
491
  }
492
+ if (hasRetirement) {
493
+ console.log(` ${require_theme.colors.yellow("Retired")} (replaced by generated stubs — ADR 0023):`);
494
+ if (result.retiredBackupDir) console.log(` ${require_theme.colors.dim(result.retiredBackupDir)}`);
495
+ for (const f of result.retiredConflicted ?? []) console.log(` ${require_theme.colors.dim(`${f} (backed up)`)}`);
496
+ for (const f of result.retired ?? []) console.log(` ${require_theme.colors.dim(f)}`);
497
+ printStubMigrationGuide(result.retiredConflicted);
498
+ }
417
499
  }
418
- if (result.updated.length === 0 && result.added.length === 0 && result.conflicted.length === 0) console.log(` ${require_theme.colors.dim("Already up to date")}`);
500
+ if (result.updated.length === 0 && result.added.length === 0 && result.conflicted.length === 0 && !hasRetirement) console.log(` ${require_theme.colors.dim("Already up to date")}`);
419
501
  console.log();
420
502
  return;
421
503
  }
@@ -444,14 +526,22 @@ async function main() {
444
526
  if (result.selectedPlugins && result.selectedPlugins.length > 0) console.log(` Added plugins: ${result.selectedPlugins.join(", ")}`);
445
527
  if (result.sync) {
446
528
  const sync = result.sync;
529
+ const hasRetirement = (sync.retired?.length ?? 0) > 0 || (sync.retiredConflicted?.length ?? 0) > 0;
447
530
  console.log(` ${require_theme.colors.dim("Sync results:")}`);
448
- if (sync.updated.length > 0 || sync.added.length > 0 || sync.conflicted.length > 0) {
531
+ if (sync.updated.length > 0 || sync.added.length > 0 || sync.conflicted.length > 0 || hasRetirement) {
449
532
  console.log(` ${sync.updated.length} updated, ${sync.added.length} added, ${sync.conflicted.length} conflicted`);
450
533
  if (sync.conflicted.length > 0) {
451
534
  console.log(` ${require_theme.colors.yellow("Conflicted")} (template applied, your changes backed up):`);
452
535
  if (sync.backupDir) console.log(` ${require_theme.colors.dim(sync.backupDir)}`);
453
536
  for (const f of sync.conflicted) console.log(` ${require_theme.colors.dim(f)}`);
454
537
  }
538
+ if (hasRetirement) {
539
+ console.log(` ${require_theme.colors.yellow("Retired")} (replaced by generated stubs — ADR 0023):`);
540
+ if (sync.retiredBackupDir) console.log(` ${require_theme.colors.dim(sync.retiredBackupDir)}`);
541
+ for (const f of sync.retiredConflicted ?? []) console.log(` ${require_theme.colors.dim(`${f} (backed up)`)}`);
542
+ for (const f of sync.retired ?? []) console.log(` ${require_theme.colors.dim(f)}`);
543
+ printStubMigrationGuide(sync.retiredConflicted);
544
+ }
455
545
  } else console.log(` ${require_theme.colors.dim("Already up to date")}`);
456
546
  }
457
547
  if (result.migrated && result.migrated.length > 0) {
@@ -468,7 +558,7 @@ async function main() {
468
558
  console.log(require_theme.colors.dim(` ${result.sync.conflicted.length} file(s) had local conflicts — template version applied, backups at ${result.sync.backupDir || ".bos/sync-backup/"}.`));
469
559
  console.log(require_theme.colors.dim(` If local changes should be preserved upstream, open a PR: https://github.com/${parentRepo}${somedelta ? `/compare/${somedelta}` : ""}`));
470
560
  }
471
- console.log(require_theme.colors.dim(" Load matching intent skills: bunx @tanstack/intent@latest load everything-dev#..."));
561
+ console.log(require_theme.colors.dim(" Load matching intent skills: pnpm dlx @tanstack/intent@latest load everything-dev#..."));
472
562
  console.log(require_theme.colors.dim(" Review AGENTS.md — local updates may need merging."));
473
563
  }
474
564
  console.log();
@@ -547,6 +637,41 @@ async function main() {
547
637
  }
548
638
  return;
549
639
  }
640
+ if (descriptor.key === "logs") {
641
+ const logsResult = result;
642
+ const opts = input;
643
+ for (const line of logsResult.lines) console.log(line);
644
+ if (logsResult.lines.length === 0) console.log(require_theme.colors.dim(` No matching log lines in ${logsResult.logFile}.`));
645
+ if (opts.follow) {
646
+ if (logsResult.logFile === "unknown" || !(0, node_fs.existsSync)(logsResult.logFile)) console.log(require_theme.colors.dim(" No log file to follow — nothing was found on disk."));
647
+ else {
648
+ const filter = opts.service;
649
+ let byteOffset = 0;
650
+ for (const line of logsResult.lines) byteOffset += Buffer.byteLength(line, "utf8") + 1;
651
+ const followMatch = (line) => {
652
+ if (!filter) return true;
653
+ const source = /\] \[([^\]]+)\] \[(?:OUT|ERR)\] /.exec(line)?.[1];
654
+ return source === filter || source === `plugin:${filter}`;
655
+ };
656
+ const watcher = (0, node_fs.watch)(logsResult.logFile, (event) => {
657
+ if (event !== "change") return;
658
+ (0, node_fs_promises.readFile)(logsResult.logFile, "utf8").then((text) => {
659
+ const newLines = text.slice(byteOffset).split("\n").filter((line) => line.length > 0 && followMatch(line));
660
+ byteOffset = Buffer.byteLength(text, "utf8");
661
+ for (const line of newLines) console.log(line);
662
+ }).catch(() => {
663
+ watcher.close();
664
+ });
665
+ });
666
+ console.log(require_theme.colors.dim(" Following — Ctrl+C to stop."));
667
+ process.on("SIGINT", () => {
668
+ watcher.close();
669
+ process.exit(0);
670
+ });
671
+ }
672
+ }
673
+ return;
674
+ }
550
675
  if (descriptor.key === "kill") {
551
676
  const killResult = result;
552
677
  console.log();
@@ -620,17 +745,83 @@ async function main() {
620
745
  console.log();
621
746
  return;
622
747
  }
748
+ if (descriptor.key === "typecheck") {
749
+ console.log();
750
+ if (result.status === "error") {
751
+ console.error(`[CLI] ${result.error || "Unknown error"}`);
752
+ process.exit(1);
753
+ }
754
+ const failed = result.results.filter((r) => !r.passed);
755
+ const passed = result.results.filter((r) => r.passed);
756
+ console.log(require_theme.colors.cyan(require_theme.frames.top(52)));
757
+ console.log(` ${require_theme.icons.app} ${require_theme.gradients.cyber("TYPECHECK")}`);
758
+ console.log(require_theme.colors.cyan(require_theme.frames.bottom(52)));
759
+ console.log();
760
+ for (const r of result.results) {
761
+ const icon = r.passed ? require_theme.colors.green("✓") : require_theme.colors.error("✗");
762
+ console.log(` ${icon} ${r.workspace}`);
763
+ }
764
+ if (result.skipped.length > 0) console.log(` ${require_theme.colors.dim(`Skipped: ${result.skipped.join(", ")}`)}`);
765
+ console.log();
766
+ if (failed.length > 0) {
767
+ console.log(` ${require_theme.colors.error(`${failed.length} failed`)}`);
768
+ for (const f of failed) if (f.error) console.log(` ${require_theme.colors.dim(f.error)}`);
769
+ console.log();
770
+ process.exit(1);
771
+ }
772
+ console.log(` ${require_theme.colors.green(`${passed.length} passed`)}`);
773
+ console.log();
774
+ return;
775
+ }
776
+ if (descriptor.key === "mfCheck") {
777
+ console.log();
778
+ console.log(` ${require_theme.colors.dim("Host")} ${result.hostReachable ? require_theme.colors.green("OK ") : require_theme.colors.error("FAIL")} ${result.hostVersion ?? "unreachable"}${result.hostReason ? ` (${result.hostReason})` : ""}`);
779
+ for (const r of result.remotes) {
780
+ const tag = r.ok ? require_theme.colors.green("OK ") : require_theme.colors.error("FAIL");
781
+ console.log(` ${require_theme.colors.dim(r.role.padEnd(10))} ${tag} ${r.url} pluginVersion=${r.pluginVersion ?? "?"}${r.reason ? ` ↳ ${r.reason}` : ""}`);
782
+ }
783
+ console.log();
784
+ if (result.status !== "ok") {
785
+ console.log(require_theme.colors.error(" mf-compat: ✗ federation manifests NOT compatible — redeploy affected plugin(s) so pluginVersion and shared versions match host"));
786
+ console.log();
787
+ process.exit(1);
788
+ }
789
+ console.log(require_theme.colors.green(" mf-compat: ✓ all federation manifests compatible"));
790
+ console.log();
791
+ return;
792
+ }
623
793
  if (result?.status === "error" && descriptor.key !== "publish" && descriptor.key !== "deploy") {
624
794
  console.error(`[CLI] ${result.error || "Unknown error"}`);
625
795
  process.exit(1);
626
796
  }
797
+ if (descriptor.key === "login") {
798
+ console.log();
799
+ console.log(require_theme.colors.green(`${require_theme.icons.ok} Logged in to ${result.siteUrl}`));
800
+ if (result.accountId) console.log(` ${require_theme.colors.dim("Account:")} ${result.accountId}`);
801
+ if (result.expiresAt) console.log(` ${require_theme.colors.dim("Expires:")} ${result.expiresAt}`);
802
+ if (result.warning) console.log(` ${require_theme.colors.yellow("⚠")} ${result.warning}`);
803
+ if (result.publishKey) console.log(` ${require_theme.colors.dim("Publish key:")} ${result.publishKey.publicKey} ${require_theme.colors.dim(`(${result.publishKey.network}, exported to ${result.publishKey.exportedTo})`)}`);
804
+ console.log();
805
+ return;
806
+ }
807
+ if (descriptor.key === "logout") {
808
+ console.log();
809
+ console.log(require_theme.colors.green(`${require_theme.icons.ok} Logged out`));
810
+ if (result.revokedApiKey) console.log(` ${require_theme.colors.dim("Revoked API key")}`);
811
+ if (result.removedPublishKey) console.log(` ${require_theme.colors.dim("Removed exported publish key")}`);
812
+ if (result.warning) console.log(` ${require_theme.colors.yellow("⚠")} ${result.warning}`);
813
+ console.log();
814
+ return;
815
+ }
627
816
  if (descriptor.key === "keyPublish") {
628
817
  process.stdout.write(`Generated publish key for ${result.account}\n`);
629
818
  process.stdout.write(` Network: ${result.network}\n`);
630
819
  process.stdout.write(` Allowance: ${result.allowance}\n`);
631
820
  process.stdout.write(`\n`);
632
- process.stdout.write(` Set this as NEAR_PRIVATE_KEY in GitHub Actions or before calling publish:\n`);
633
- process.stdout.write(` NEAR_PRIVATE_KEY=${result.privateKey}\n`);
821
+ const secretName = result.env === "staging" ? "NEAR_TESTNET_PRIVATE_KEY" : "NEAR_PRIVATE_KEY";
822
+ if (!process.stdout.isTTY) process.stderr.write(` ⚠ Non-interactive stdout: this private key will be captured in any log or pipe (GitHub Actions logs persist stdout).\n`);
823
+ process.stdout.write(` Set this as ${secretName} in GitHub Actions or before calling publish:\n`);
824
+ process.stdout.write(`${secretName}=${result.privateKey}\n`);
634
825
  }
635
826
  if (descriptor.key === "pluginAdd") {
636
827
  console.log();
@@ -665,8 +856,22 @@ async function main() {
665
856
  console.log();
666
857
  console.log(require_theme.colors.green(`${require_theme.icons.ok} Published plugin ${result.key}`));
667
858
  if (result.path) console.log(` ${require_theme.colors.dim("Path:")} ${result.path}`);
668
- if (result.script) console.log(` ${require_theme.colors.dim("Script:")} bun run ${result.script}`);
669
859
  if (result.production) console.log(` ${require_theme.colors.dim("Production:")} ${result.production}`);
860
+ if (result.version) console.log(` ${require_theme.colors.dim("Version:")} ${result.version}`);
861
+ if (result.fingerprint) console.log(` ${require_theme.colors.dim("Fingerprint:")} ${result.fingerprint}`);
862
+ console.log();
863
+ return;
864
+ }
865
+ if (descriptor.key === "registryUse") {
866
+ console.log();
867
+ if (result.status === "error") {
868
+ console.error(require_theme.colors.error(`${require_theme.icons.err} ${result.error || "Unknown error"}`));
869
+ process.exit(1);
870
+ }
871
+ console.log(require_theme.colors.green(`${require_theme.icons.ok} ${result.status === "dry-run" ? "Dry run" : "Composed"} from ${result.from}`));
872
+ for (const section of result.applied) console.log(` ${require_theme.colors.green("+")} ${section}`);
873
+ if (result.configPath) console.log(` ${require_theme.colors.dim("Config:")} ${result.configPath}`);
874
+ if (result.status === "updated") console.log(require_theme.colors.dim(" Run bos types gen to refresh generated types."));
670
875
  console.log();
671
876
  return;
672
877
  }
@@ -714,8 +919,47 @@ async function main() {
714
919
  return;
715
920
  }
716
921
  }
922
+ if (descriptor.key === "rollback") {
923
+ const rollbackResult = result;
924
+ if (rollbackResult.status === "error") {
925
+ console.log();
926
+ console.log(require_theme.colors.error(`${require_theme.icons.err} Roll back failed`));
927
+ if (rollbackResult.error) console.log(` ${require_theme.colors.dim("Error:")} ${rollbackResult.error}`);
928
+ if (rollbackResult.verification) {
929
+ console.log();
930
+ for (const check of rollbackResult.verification) {
931
+ const mark = check.ok ? require_theme.colors.green(require_theme.icons.ok) : require_theme.colors.error(require_theme.icons.err);
932
+ const reason = check.reason ? require_theme.colors.dim(` — ${check.reason}`) : "";
933
+ console.log(` ${mark} ${check.slot}${reason}`);
934
+ }
935
+ }
936
+ console.log();
937
+ process.exit(1);
938
+ }
939
+ if (rollbackResult.status === "dry-run") {
940
+ console.log();
941
+ console.log(require_theme.colors.cyan(`${require_theme.icons.ok} Rollback dry run complete`));
942
+ console.log(` ${require_theme.colors.dim("Registry URL:")} ${rollbackResult.registryUrl}`);
943
+ console.log();
944
+ return;
945
+ }
946
+ console.log();
947
+ console.log(require_theme.colors.green(`${require_theme.icons.ok} Rolled back`));
948
+ console.log(` ${require_theme.colors.dim("Registry URL:")} ${rollbackResult.registryUrl}`);
949
+ if (rollbackResult.txHash) console.log(` ${require_theme.colors.dim("Transaction:")} ${rollbackResult.txHash}`);
950
+ console.log();
951
+ return;
952
+ }
717
953
  if (descriptor.key === "deploy") {
718
954
  const deployResult = result;
955
+ if (deployResult.status === "list") {
956
+ console.log();
957
+ console.log(require_theme.colors.cyan("Recent publishes (audit trail)"));
958
+ for (const entry of deployResult.history ?? []) console.log(` ${entry.blockTimestamp} ${require_theme.colors.dim(`block ${entry.blockHeight}`)}${entry.publishedAt ? require_theme.colors.dim(` ${entry.publishedAt}`) : ""}`);
959
+ console.log();
960
+ return;
961
+ }
962
+ if (deployResult.fingerprint) console.log(` ${require_theme.colors.dim("Fingerprint:")} ${deployResult.fingerprint}`);
719
963
  if (deployResult.status === "dry-run") {
720
964
  console.log();
721
965
  console.log(require_theme.colors.cyan(`${require_theme.icons.ok} Dry run complete`));
@@ -755,21 +999,25 @@ async function main() {
755
999
  for (const w of warnings) console.log(` ${require_theme.colors.dim(w)}`);
756
1000
  }
757
1001
  }
758
- if (deployResult.redeployed) console.log(` ${require_theme.colors.dim("Railway:")} redeployed ${deployResult.service ?? "service"}`);
759
- else if (!process.env.RAILWAY_TOKEN) console.log(` ${require_theme.colors.yellow("Railway:")} skipped (RAILWAY_TOKEN not set)`);
1002
+ if (deployResult.image) console.log(` ${require_theme.colors.dim("Image:")} ${deployResult.image}`);
1003
+ if (deployResult.service) console.log(` ${require_theme.colors.dim("Railway:")} deployed ${deployResult.service}`);
760
1004
  console.log();
761
1005
  return;
762
1006
  }
763
1007
  if (deployResult.status === "published") {
764
1008
  console.log();
765
- console.log(require_theme.colors.yellow(`${require_theme.icons.err} Config published, but Railway redeploy failed`));
1009
+ console.log(require_theme.colors.yellow(`${require_theme.icons.err} Config published, but a deploy leg failed`));
766
1010
  console.log(` ${require_theme.colors.dim("Registry URL:")} ${deployResult.registryUrl}`);
767
1011
  if (deployResult.txHash) console.log(` ${require_theme.colors.dim("Transaction:")} ${deployResult.txHash}`);
768
- if (deployResult.error) console.log(` ${require_theme.colors.dim("Railway:")} ${deployResult.error}`);
1012
+ if (deployResult.error) console.log(` ${require_theme.colors.dim("Error:")} ${deployResult.error}`);
769
1013
  console.log();
770
1014
  process.exit(1);
771
1015
  }
772
1016
  }
1017
+ if (descriptor.key === "infraExport") {
1018
+ process.stdout.write(`${JSON.stringify(result, null, 2)}\n`);
1019
+ return;
1020
+ }
773
1021
  } catch (error) {
774
1022
  console.error(`[CLI] ${error instanceof Error ? error.message : String(error)}`);
775
1023
  process.exit(1);