alchemy 2.0.0-beta.84 → 2.0.0-beta.85

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 (758) hide show
  1. package/THIRD_PARTY_LICENSES.md +2 -2
  2. package/bin/cli.js +14 -6
  3. package/bin/register-oxc.js +16 -12
  4. package/lib/AdoptPolicy.d.ts +73 -0
  5. package/lib/AdoptPolicy.d.ts.map +1 -1
  6. package/lib/AdoptPolicy.js +54 -0
  7. package/lib/AdoptPolicy.js.map +1 -1
  8. package/lib/Alchemist/AuthRegistry.d.ts +31 -0
  9. package/lib/Alchemist/AuthRegistry.d.ts.map +1 -0
  10. package/lib/Alchemist/AuthRegistry.js +95 -0
  11. package/lib/Alchemist/AuthRegistry.js.map +1 -0
  12. package/lib/Alchemist/Drift.d.ts +70 -0
  13. package/lib/Alchemist/Drift.d.ts.map +1 -0
  14. package/lib/Alchemist/Drift.js +54 -0
  15. package/lib/Alchemist/Drift.js.map +1 -0
  16. package/lib/Alchemist/Entrypoint.d.ts +27 -3
  17. package/lib/Alchemist/Entrypoint.d.ts.map +1 -1
  18. package/lib/Alchemist/Entrypoint.js +34 -3
  19. package/lib/Alchemist/Entrypoint.js.map +1 -1
  20. package/lib/Alchemist/Errors.d.ts +1 -1
  21. package/lib/Alchemist/Errors.d.ts.map +1 -1
  22. package/lib/Alchemist/Errors.js +1 -1
  23. package/lib/Alchemist/Errors.js.map +1 -1
  24. package/lib/Alchemist/Logs.d.ts +46 -0
  25. package/lib/Alchemist/Logs.d.ts.map +1 -0
  26. package/lib/Alchemist/{routes/logs.js → Logs.js} +21 -26
  27. package/lib/Alchemist/Logs.js.map +1 -0
  28. package/lib/Alchemist/Nuke.d.ts +69 -0
  29. package/lib/Alchemist/Nuke.d.ts.map +1 -0
  30. package/lib/Alchemist/Nuke.js +35 -0
  31. package/lib/Alchemist/Nuke.js.map +1 -0
  32. package/lib/Alchemist/Operations.d.ts +168 -0
  33. package/lib/Alchemist/Operations.d.ts.map +1 -0
  34. package/lib/Alchemist/Operations.js +165 -0
  35. package/lib/Alchemist/Operations.js.map +1 -0
  36. package/lib/Alchemist/Profile.d.ts +132 -0
  37. package/lib/Alchemist/Profile.d.ts.map +1 -0
  38. package/lib/Alchemist/{routes/profile.js → Profile.js} +20 -21
  39. package/lib/Alchemist/Profile.js.map +1 -0
  40. package/lib/Alchemist/{routes/provider.d.ts → Provider.d.ts} +4 -4
  41. package/lib/Alchemist/Provider.d.ts.map +1 -0
  42. package/lib/Alchemist/{routes/provider.js → Provider.js} +7 -6
  43. package/lib/Alchemist/Provider.js.map +1 -0
  44. package/lib/Alchemist/Runtime.d.ts +10 -6
  45. package/lib/Alchemist/Runtime.d.ts.map +1 -1
  46. package/lib/Alchemist/Runtime.js +38 -2
  47. package/lib/Alchemist/Runtime.js.map +1 -1
  48. package/lib/Alchemist/{routes/state.d.ts → State.d.ts} +36 -16
  49. package/lib/Alchemist/State.d.ts.map +1 -0
  50. package/lib/Alchemist/{routes/state.js → State.js} +50 -15
  51. package/lib/Alchemist/State.js.map +1 -0
  52. package/lib/Alchemist/index.d.ts +11 -10
  53. package/lib/Alchemist/index.d.ts.map +1 -1
  54. package/lib/Alchemist/index.js +10 -9
  55. package/lib/Alchemist/index.js.map +1 -1
  56. package/lib/Apply.d.ts +2 -8
  57. package/lib/Apply.d.ts.map +1 -1
  58. package/lib/Apply.js +364 -184
  59. package/lib/Apply.js.map +1 -1
  60. package/lib/Auth/AuthProvider.d.ts +24 -11
  61. package/lib/Auth/AuthProvider.d.ts.map +1 -1
  62. package/lib/Auth/AuthProvider.js +28 -12
  63. package/lib/Auth/AuthProvider.js.map +1 -1
  64. package/lib/Auth/BrowserOAuth.d.ts +6 -8
  65. package/lib/Auth/BrowserOAuth.d.ts.map +1 -1
  66. package/lib/Auth/BrowserOAuth.js +25 -41
  67. package/lib/Auth/BrowserOAuth.js.map +1 -1
  68. package/lib/Auth/Credentials.d.ts.map +1 -1
  69. package/lib/Auth/Credentials.js +2 -2
  70. package/lib/Auth/Credentials.js.map +1 -1
  71. package/lib/Auth/Demand.d.ts +4 -4
  72. package/lib/Auth/Demand.d.ts.map +1 -1
  73. package/lib/Auth/Demand.js +16 -10
  74. package/lib/Auth/Demand.js.map +1 -1
  75. package/lib/Auth/Env.d.ts +2 -1
  76. package/lib/Auth/Env.d.ts.map +1 -1
  77. package/lib/Auth/Env.js +4 -2
  78. package/lib/Auth/Env.js.map +1 -1
  79. package/lib/Auth/Inspect.d.ts +2 -2
  80. package/lib/Auth/Inspect.d.ts.map +1 -1
  81. package/lib/Auth/Inspect.js +3 -1
  82. package/lib/Auth/Inspect.js.map +1 -1
  83. package/lib/Auth/Lock.d.ts.map +1 -1
  84. package/lib/Auth/Lock.js +4 -8
  85. package/lib/Auth/Lock.js.map +1 -1
  86. package/lib/Auth/OAuthFlow.d.ts +3 -12
  87. package/lib/Auth/OAuthFlow.d.ts.map +1 -1
  88. package/lib/Auth/OAuthFlow.js +7 -17
  89. package/lib/Auth/OAuthFlow.js.map +1 -1
  90. package/lib/Auth/Paths.d.ts +2 -1
  91. package/lib/Auth/Paths.d.ts.map +1 -1
  92. package/lib/Auth/Paths.js +3 -2
  93. package/lib/Auth/Paths.js.map +1 -1
  94. package/lib/Auth/Profile.d.ts +10 -0
  95. package/lib/Auth/Profile.d.ts.map +1 -1
  96. package/lib/Auth/Profile.js +19 -2
  97. package/lib/Auth/Profile.js.map +1 -1
  98. package/lib/Auth/Registry.d.ts +20 -0
  99. package/lib/Auth/Registry.d.ts.map +1 -0
  100. package/lib/Auth/Registry.js +17 -0
  101. package/lib/Auth/Registry.js.map +1 -0
  102. package/lib/Auth/Resolve.d.ts +34 -2
  103. package/lib/Auth/Resolve.d.ts.map +1 -1
  104. package/lib/Auth/Resolve.js +51 -3
  105. package/lib/Auth/Resolve.js.map +1 -1
  106. package/lib/Auth/StoredAuthProvider.d.ts +1 -1
  107. package/lib/Auth/StoredAuthProvider.d.ts.map +1 -1
  108. package/lib/Auth/StoredAuthProvider.js +1 -2
  109. package/lib/Auth/StoredAuthProvider.js.map +1 -1
  110. package/lib/Binding.d.ts.map +1 -1
  111. package/lib/Binding.js +3 -1
  112. package/lib/Binding.js.map +1 -1
  113. package/lib/Bundle/Bundle.d.ts +5 -0
  114. package/lib/Bundle/Bundle.d.ts.map +1 -1
  115. package/lib/Bundle/Bundle.js +36 -6
  116. package/lib/Bundle/Bundle.js.map +1 -1
  117. package/lib/Bundle/NamespaceImportPlugin.d.ts +55 -0
  118. package/lib/Bundle/NamespaceImportPlugin.d.ts.map +1 -0
  119. package/lib/Bundle/NamespaceImportPlugin.js +226 -0
  120. package/lib/Bundle/NamespaceImportPlugin.js.map +1 -0
  121. package/lib/Bundle/index.d.ts +1 -0
  122. package/lib/Bundle/index.d.ts.map +1 -1
  123. package/lib/Bundle/index.js +1 -0
  124. package/lib/Bundle/index.js.map +1 -1
  125. package/lib/Cli/Format.d.ts.map +1 -1
  126. package/lib/Cli/Format.js +2 -1
  127. package/lib/Cli/Format.js.map +1 -1
  128. package/lib/Cli/GlobalLog.d.ts +72 -26
  129. package/lib/Cli/GlobalLog.d.ts.map +1 -1
  130. package/lib/Cli/GlobalLog.js +151 -59
  131. package/lib/Cli/GlobalLog.js.map +1 -1
  132. package/lib/Cli/LoggingCli.d.ts.map +1 -1
  133. package/lib/Cli/LoggingCli.js +24 -18
  134. package/lib/Cli/LoggingCli.js.map +1 -1
  135. package/lib/Cli/PlainCliFormatter.d.ts.map +1 -1
  136. package/lib/Cli/PlainCliFormatter.js +4 -1
  137. package/lib/Cli/PlainCliFormatter.js.map +1 -1
  138. package/lib/Cli/Present.d.ts +14 -0
  139. package/lib/Cli/Present.d.ts.map +1 -0
  140. package/lib/Cli/Present.js +22 -0
  141. package/lib/Cli/Present.js.map +1 -0
  142. package/lib/Cli/SigilRenderer.d.ts +58 -0
  143. package/lib/Cli/SigilRenderer.d.ts.map +1 -0
  144. package/lib/Cli/SigilRenderer.js +39 -0
  145. package/lib/Cli/SigilRenderer.js.map +1 -0
  146. package/lib/Cli/checkVersion.d.ts +11 -14
  147. package/lib/Cli/checkVersion.d.ts.map +1 -1
  148. package/lib/Cli/checkVersion.js +19 -77
  149. package/lib/Cli/checkVersion.js.map +1 -1
  150. package/lib/Cli/commands/confirm.d.ts +2 -2
  151. package/lib/Cli/commands/confirm.d.ts.map +1 -1
  152. package/lib/Cli/commands/confirm.js +3 -3
  153. package/lib/Cli/commands/confirm.js.map +1 -1
  154. package/lib/Cli/commands/deploy.d.ts +4 -4
  155. package/lib/Cli/commands/deploy.d.ts.map +1 -1
  156. package/lib/Cli/commands/deploy.js +40 -39
  157. package/lib/Cli/commands/deploy.js.map +1 -1
  158. package/lib/Cli/commands/dev.d.ts.map +1 -1
  159. package/lib/Cli/commands/dev.js +41 -3
  160. package/lib/Cli/commands/dev.js.map +1 -1
  161. package/lib/Cli/commands/drift.d.ts +2 -2
  162. package/lib/Cli/commands/drift.d.ts.map +1 -1
  163. package/lib/Cli/commands/drift.js +14 -13
  164. package/lib/Cli/commands/drift.js.map +1 -1
  165. package/lib/Cli/commands/errors.d.ts.map +1 -1
  166. package/lib/Cli/commands/errors.js +2 -1
  167. package/lib/Cli/commands/errors.js.map +1 -1
  168. package/lib/Cli/commands/instrument.d.ts +15 -5
  169. package/lib/Cli/commands/instrument.d.ts.map +1 -1
  170. package/lib/Cli/commands/instrument.js +33 -8
  171. package/lib/Cli/commands/instrument.js.map +1 -1
  172. package/lib/Cli/commands/logs.d.ts +1 -1
  173. package/lib/Cli/commands/logs.d.ts.map +1 -1
  174. package/lib/Cli/commands/logs.js +22 -22
  175. package/lib/Cli/commands/logs.js.map +1 -1
  176. package/lib/Cli/commands/nuke.d.ts +3 -2
  177. package/lib/Cli/commands/nuke.d.ts.map +1 -1
  178. package/lib/Cli/commands/nuke.js +19 -17
  179. package/lib/Cli/commands/nuke.js.map +1 -1
  180. package/lib/Cli/commands/profile/commands.d.ts +3 -2
  181. package/lib/Cli/commands/profile/commands.d.ts.map +1 -1
  182. package/lib/Cli/commands/profile/commands.js +26 -27
  183. package/lib/Cli/commands/profile/commands.js.map +1 -1
  184. package/lib/Cli/commands/profile/flows.d.ts +6 -5
  185. package/lib/Cli/commands/profile/flows.d.ts.map +1 -1
  186. package/lib/Cli/commands/profile/flows.js +19 -17
  187. package/lib/Cli/commands/profile/flows.js.map +1 -1
  188. package/lib/Cli/commands/profile/hub.d.ts +1 -2
  189. package/lib/Cli/commands/profile/hub.d.ts.map +1 -1
  190. package/lib/Cli/commands/profile/hub.js +15 -17
  191. package/lib/Cli/commands/profile/hub.js.map +1 -1
  192. package/lib/Cli/commands/provider.d.ts +3 -1
  193. package/lib/Cli/commands/provider.d.ts.map +1 -1
  194. package/lib/Cli/commands/provider.js +4 -4
  195. package/lib/Cli/commands/provider.js.map +1 -1
  196. package/lib/Cli/commands/render.d.ts +2 -4
  197. package/lib/Cli/commands/render.d.ts.map +1 -1
  198. package/lib/Cli/commands/render.js +33 -56
  199. package/lib/Cli/commands/render.js.map +1 -1
  200. package/lib/Cli/commands/state.d.ts +1 -2
  201. package/lib/Cli/commands/state.d.ts.map +1 -1
  202. package/lib/Cli/commands/state.js +74 -27
  203. package/lib/Cli/commands/state.js.map +1 -1
  204. package/lib/Cli/components/capabilities.d.ts +4 -0
  205. package/lib/Cli/components/capabilities.d.ts.map +1 -0
  206. package/lib/Cli/components/capabilities.js +18 -0
  207. package/lib/Cli/components/capabilities.js.map +1 -0
  208. package/lib/Cli/components/types.d.ts +2 -81
  209. package/lib/Cli/components/types.d.ts.map +1 -1
  210. package/lib/Cli/components/types.js +1 -3
  211. package/lib/Cli/components/types.js.map +1 -1
  212. package/lib/Cli/components/ui/Environment.d.ts +3 -3
  213. package/lib/Cli/components/ui/Environment.d.ts.map +1 -1
  214. package/lib/Cli/components/ui/Environment.js.map +1 -1
  215. package/lib/Cli/components/ui/Interactive.d.ts +17 -4
  216. package/lib/Cli/components/ui/Interactive.d.ts.map +1 -1
  217. package/lib/Cli/components/ui/Interactive.js +7 -11
  218. package/lib/Cli/components/ui/Interactive.js.map +1 -1
  219. package/lib/Cli/components/ui/Layout.d.ts +1 -1
  220. package/lib/Cli/components/ui/Layout.d.ts.map +1 -1
  221. package/lib/Cli/components/ui/Layout.js +1 -1
  222. package/lib/Cli/components/ui/Layout.js.map +1 -1
  223. package/lib/Cli/components/ui/Typography.d.ts +1 -1
  224. package/lib/Cli/components/ui/Typography.d.ts.map +1 -1
  225. package/lib/Cli/components/ui/Typography.js +1 -1
  226. package/lib/Cli/components/ui/Typography.js.map +1 -1
  227. package/lib/Cli/components/ui/index.d.ts +2 -2
  228. package/lib/Cli/components/ui/index.js +2 -2
  229. package/lib/Cli/components/view/ApprovePlan.d.ts +1 -1
  230. package/lib/Cli/components/view/ApprovePlan.d.ts.map +1 -1
  231. package/lib/Cli/components/view/ApprovePlan.js +2 -1
  232. package/lib/Cli/components/view/ApprovePlan.js.map +1 -1
  233. package/lib/Cli/components/view/Format.d.ts +5 -0
  234. package/lib/Cli/components/view/Format.d.ts.map +1 -0
  235. package/lib/Cli/components/view/Format.js +39 -0
  236. package/lib/Cli/components/view/Format.js.map +1 -0
  237. package/lib/Cli/components/view/Help.d.ts +2 -2
  238. package/lib/Cli/components/view/Help.d.ts.map +1 -1
  239. package/lib/Cli/components/view/Help.js +7 -5
  240. package/lib/Cli/components/view/Help.js.map +1 -1
  241. package/lib/Cli/components/view/Logo.js +1 -1
  242. package/lib/Cli/components/view/Logo.js.map +1 -1
  243. package/lib/Cli/components/view/Nuke.d.ts +8 -9
  244. package/lib/Cli/components/view/Nuke.d.ts.map +1 -1
  245. package/lib/Cli/components/view/Nuke.js +49 -52
  246. package/lib/Cli/components/view/Nuke.js.map +1 -1
  247. package/lib/Cli/components/view/PlanDecision.d.ts +1 -1
  248. package/lib/Cli/components/view/PlanDecision.d.ts.map +1 -1
  249. package/lib/Cli/components/view/PlanDecision.js +1 -1
  250. package/lib/Cli/components/view/PlanDecision.js.map +1 -1
  251. package/lib/Cli/components/view/PlanRow.js +1 -1
  252. package/lib/Cli/components/view/PlanRow.js.map +1 -1
  253. package/lib/Cli/components/view/PlanTree.d.ts +1 -1
  254. package/lib/Cli/components/view/PlanTree.d.ts.map +1 -1
  255. package/lib/Cli/components/view/PlanTree.js +1 -1
  256. package/lib/Cli/components/view/PlanView.js +1 -1
  257. package/lib/Cli/components/view/PlanView.js.map +1 -1
  258. package/lib/Cli/components/view/Profile.d.ts +1 -1
  259. package/lib/Cli/components/view/Profile.js +2 -2
  260. package/lib/Cli/components/view/Profile.js.map +1 -1
  261. package/lib/Cli/components/view/ProfileDashboard.d.ts +4 -4
  262. package/lib/Cli/components/view/ProfileDashboard.d.ts.map +1 -1
  263. package/lib/Cli/components/view/ProfileDashboard.js +9 -8
  264. package/lib/Cli/components/view/ProfileDashboard.js.map +1 -1
  265. package/lib/Cli/components/view/Prompts.d.ts +3 -3
  266. package/lib/Cli/components/view/Prompts.d.ts.map +1 -1
  267. package/lib/Cli/components/view/Prompts.js +11 -18
  268. package/lib/Cli/components/view/Prompts.js.map +1 -1
  269. package/lib/Cli/components/view/Runtime.d.ts +5 -5
  270. package/lib/Cli/components/view/Runtime.d.ts.map +1 -1
  271. package/lib/Cli/components/view/Runtime.js +136 -219
  272. package/lib/Cli/components/view/Runtime.js.map +1 -1
  273. package/lib/Cli/components/view/SigilCli.d.ts +2 -2
  274. package/lib/Cli/components/view/SigilCli.d.ts.map +1 -1
  275. package/lib/Cli/components/view/SigilCli.js +7 -7
  276. package/lib/Cli/components/view/SigilCli.js.map +1 -1
  277. package/lib/Cli/components/view/StateExplorer.d.ts +1 -1
  278. package/lib/Cli/components/view/StateExplorer.d.ts.map +1 -1
  279. package/lib/Cli/components/view/StateExplorer.js +2 -1
  280. package/lib/Cli/components/view/StateExplorer.js.map +1 -1
  281. package/lib/Cli/components/view/statusStyle.d.ts +2 -2
  282. package/lib/Cli/components/view/statusStyle.d.ts.map +1 -1
  283. package/lib/Cli/components/view/statusStyle.js +1 -1
  284. package/lib/Cli/components/view/statusStyle.js.map +1 -1
  285. package/lib/Cli/exec.d.ts +6 -1
  286. package/lib/Cli/exec.d.ts.map +1 -1
  287. package/lib/Cli/exec.js +29 -34
  288. package/lib/Cli/exec.js.map +1 -1
  289. package/lib/Cli/main.d.ts.map +1 -1
  290. package/lib/Cli/main.js +35 -26
  291. package/lib/Cli/main.js.map +1 -1
  292. package/lib/Cli/selectCli.d.ts +2 -2
  293. package/lib/Cli/selectCli.d.ts.map +1 -1
  294. package/lib/Cli/selectCli.js +2 -2
  295. package/lib/Cli/selectCli.js.map +1 -1
  296. package/lib/Command/Command.js +1 -1
  297. package/lib/Command/Command.js.map +1 -1
  298. package/lib/Command/Dev.d.ts +58 -4
  299. package/lib/Command/Dev.d.ts.map +1 -1
  300. package/lib/Command/Dev.js +87 -30
  301. package/lib/Command/Dev.js.map +1 -1
  302. package/lib/Command/Local.d.ts +1 -1
  303. package/lib/Command/Memo.js +1 -1
  304. package/lib/Command/Memo.js.map +1 -1
  305. package/lib/Command/Providers.d.ts +1 -1
  306. package/lib/Command/Providers.d.ts.map +1 -1
  307. package/lib/Contributions.d.ts +2 -3
  308. package/lib/Contributions.d.ts.map +1 -1
  309. package/lib/Contributions.js +38 -6
  310. package/lib/Contributions.js.map +1 -1
  311. package/lib/DNS/Adapter.d.ts +204 -0
  312. package/lib/DNS/Adapter.d.ts.map +1 -0
  313. package/lib/DNS/Adapter.js +112 -0
  314. package/lib/DNS/Adapter.js.map +1 -0
  315. package/lib/DNS/index.d.ts +2 -0
  316. package/lib/DNS/index.d.ts.map +1 -0
  317. package/lib/DNS/index.js +2 -0
  318. package/lib/DNS/index.js.map +1 -0
  319. package/lib/Deploy.d.ts +7 -2
  320. package/lib/Deploy.d.ts.map +1 -1
  321. package/lib/Deploy.js +8 -3
  322. package/lib/Deploy.js.map +1 -1
  323. package/lib/Destroy.d.ts +5 -8
  324. package/lib/Destroy.d.ts.map +1 -1
  325. package/lib/Destroy.js +10 -7
  326. package/lib/Destroy.js.map +1 -1
  327. package/lib/Diff.d.ts.map +1 -1
  328. package/lib/Diff.js +14 -4
  329. package/lib/Diff.js.map +1 -1
  330. package/lib/Drift.d.ts +7 -7
  331. package/lib/Drift.d.ts.map +1 -1
  332. package/lib/Drift.js +184 -101
  333. package/lib/Drift.js.map +1 -1
  334. package/lib/EvalStack.d.ts +23 -0
  335. package/lib/EvalStack.d.ts.map +1 -0
  336. package/lib/EvalStack.js +47 -0
  337. package/lib/EvalStack.js.map +1 -0
  338. package/lib/Events.d.ts +210 -0
  339. package/lib/Events.d.ts.map +1 -0
  340. package/lib/Events.js +244 -0
  341. package/lib/Events.js.map +1 -0
  342. package/lib/Interaction.d.ts +159 -48
  343. package/lib/Interaction.d.ts.map +1 -1
  344. package/lib/Interaction.js +139 -58
  345. package/lib/Interaction.js.map +1 -1
  346. package/lib/Local/LocalProvider.d.ts.map +1 -1
  347. package/lib/Local/LocalProvider.js +31 -9
  348. package/lib/Local/LocalProvider.js.map +1 -1
  349. package/lib/Local/RpcProvider.d.ts.map +1 -1
  350. package/lib/Local/RpcProvider.js +10 -1
  351. package/lib/Local/RpcProvider.js.map +1 -1
  352. package/lib/Local/RpcProviderProxy.d.ts +16 -0
  353. package/lib/Local/RpcProviderProxy.d.ts.map +1 -1
  354. package/lib/Local/RpcProviderProxy.js +19 -10
  355. package/lib/Local/RpcProviderProxy.js.map +1 -1
  356. package/lib/Local/RpcSerialization.d.ts +3 -2
  357. package/lib/Local/RpcSerialization.d.ts.map +1 -1
  358. package/lib/Local/RpcSerialization.js +13 -10
  359. package/lib/Local/RpcSerialization.js.map +1 -1
  360. package/lib/Local/RpcServer.d.ts +2 -1
  361. package/lib/Local/RpcServer.d.ts.map +1 -1
  362. package/lib/Local/RpcServer.js +19 -14
  363. package/lib/Local/RpcServer.js.map +1 -1
  364. package/lib/Local/RpcServerBun.d.ts.map +1 -1
  365. package/lib/Local/RpcServerBun.js +8 -4
  366. package/lib/Local/RpcServerBun.js.map +1 -1
  367. package/lib/Local/RpcServerEnvironment.d.ts +2 -3
  368. package/lib/Local/RpcServerEnvironment.d.ts.map +1 -1
  369. package/lib/Local/RpcServerEnvironment.js +2 -2
  370. package/lib/Local/RpcServerEnvironment.js.map +1 -1
  371. package/lib/Local/RpcServerNode.d.ts.map +1 -1
  372. package/lib/Local/RpcServerNode.js +5 -1
  373. package/lib/Local/RpcServerNode.js.map +1 -1
  374. package/lib/Local/RpcServerSession.d.ts +1 -1
  375. package/lib/Local/RpcServerSession.d.ts.map +1 -1
  376. package/lib/Local/RpcServerSession.js.map +1 -1
  377. package/lib/Local/RpcSpawner.d.ts +6 -8
  378. package/lib/Local/RpcSpawner.d.ts.map +1 -1
  379. package/lib/Local/RpcSpawner.js +45 -36
  380. package/lib/Local/RpcSpawner.js.map +1 -1
  381. package/lib/Local/Sidecar.d.ts +23 -0
  382. package/lib/Local/Sidecar.d.ts.map +1 -1
  383. package/lib/Local/Sidecar.js +14 -9
  384. package/lib/Local/Sidecar.js.map +1 -1
  385. package/lib/Nuke.d.ts +5 -23
  386. package/lib/Nuke.d.ts.map +1 -1
  387. package/lib/Nuke.js +48 -13
  388. package/lib/Nuke.js.map +1 -1
  389. package/lib/Output.d.ts +19 -1
  390. package/lib/Output.d.ts.map +1 -1
  391. package/lib/Output.js +96 -3
  392. package/lib/Output.js.map +1 -1
  393. package/lib/Plan.d.ts +5 -1
  394. package/lib/Plan.d.ts.map +1 -1
  395. package/lib/Plan.js +111 -33
  396. package/lib/Plan.js.map +1 -1
  397. package/lib/Platform.d.ts.map +1 -1
  398. package/lib/Platform.js +31 -7
  399. package/lib/Platform.js.map +1 -1
  400. package/lib/Provider.d.ts +45 -0
  401. package/lib/Provider.d.ts.map +1 -1
  402. package/lib/Provider.js +2 -2
  403. package/lib/Provider.js.map +1 -1
  404. package/lib/Report.d.ts +17 -195
  405. package/lib/Report.d.ts.map +1 -1
  406. package/lib/Report.js +39 -12
  407. package/lib/Report.js.map +1 -1
  408. package/lib/Runtime/ManagedHttpShutdown.d.ts +17 -0
  409. package/lib/Runtime/ManagedHttpShutdown.d.ts.map +1 -1
  410. package/lib/Runtime/ManagedHttpShutdown.js +11 -2
  411. package/lib/Runtime/ManagedHttpShutdown.js.map +1 -1
  412. package/lib/RuntimeContext.js +1 -1
  413. package/lib/RuntimeContext.js.map +1 -1
  414. package/lib/Stack.d.ts +49 -29
  415. package/lib/Stack.d.ts.map +1 -1
  416. package/lib/Stack.js +25 -31
  417. package/lib/Stack.js.map +1 -1
  418. package/lib/State/BucketState.d.ts.map +1 -1
  419. package/lib/State/BucketState.js +43 -14
  420. package/lib/State/BucketState.js.map +1 -1
  421. package/lib/State/LocalState.d.ts.map +1 -1
  422. package/lib/State/LocalState.js +3 -3
  423. package/lib/State/LocalState.js.map +1 -1
  424. package/lib/State/Provisioning.d.ts +5 -0
  425. package/lib/State/Provisioning.d.ts.map +1 -1
  426. package/lib/State/Provisioning.js +3 -1
  427. package/lib/State/Provisioning.js.map +1 -1
  428. package/lib/State/ResourceState.d.ts +2 -0
  429. package/lib/State/ResourceState.d.ts.map +1 -1
  430. package/lib/State/State.d.ts +26 -0
  431. package/lib/State/State.d.ts.map +1 -1
  432. package/lib/State/StateEncoding.d.ts +7 -0
  433. package/lib/State/StateEncoding.d.ts.map +1 -1
  434. package/lib/State/StateEncoding.js +19 -0
  435. package/lib/State/StateEncoding.js.map +1 -1
  436. package/lib/State/index.js +2 -2
  437. package/lib/State/index.js.map +1 -1
  438. package/lib/Telemetry/Layer.d.ts +2 -5
  439. package/lib/Telemetry/Layer.d.ts.map +1 -1
  440. package/lib/Telemetry/Layer.js +3 -23
  441. package/lib/Telemetry/Layer.js.map +1 -1
  442. package/lib/Telemetry/Metrics.d.ts +1 -1
  443. package/lib/Telemetry/Metrics.d.ts.map +1 -1
  444. package/lib/TelemetryRelay.js +1 -1
  445. package/lib/TelemetryRelay.js.map +1 -1
  446. package/lib/TelemetryRuntime.d.ts +1 -1
  447. package/lib/TelemetryRuntime.d.ts.map +1 -1
  448. package/lib/TelemetryRuntime.js +4 -3
  449. package/lib/TelemetryRuntime.js.map +1 -1
  450. package/lib/Util/ConsoleSink.d.ts +23 -2
  451. package/lib/Util/ConsoleSink.d.ts.map +1 -1
  452. package/lib/Util/ConsoleSink.js +54 -14
  453. package/lib/Util/ConsoleSink.js.map +1 -1
  454. package/lib/Util/LogAnnotation.d.ts +19 -0
  455. package/lib/Util/LogAnnotation.d.ts.map +1 -0
  456. package/lib/Util/LogAnnotation.js +19 -0
  457. package/lib/Util/LogAnnotation.js.map +1 -0
  458. package/lib/Util/LogRecord.d.ts +281 -0
  459. package/lib/Util/LogRecord.d.ts.map +1 -0
  460. package/lib/Util/LogRecord.js +267 -0
  461. package/lib/Util/LogRecord.js.map +1 -0
  462. package/lib/Util/Node.d.ts +9 -0
  463. package/lib/Util/Node.d.ts.map +1 -1
  464. package/lib/Util/Node.js +10 -6
  465. package/lib/Util/Node.js.map +1 -1
  466. package/lib/Util/PlatformServices.d.ts +3 -2
  467. package/lib/Util/PlatformServices.d.ts.map +1 -1
  468. package/lib/Util/PlatformServices.js +6 -2
  469. package/lib/Util/PlatformServices.js.map +1 -1
  470. package/lib/Util/ResourceOutput.d.ts +18 -10
  471. package/lib/Util/ResourceOutput.d.ts.map +1 -1
  472. package/lib/Util/ResourceOutput.js +22 -23
  473. package/lib/Util/ResourceOutput.js.map +1 -1
  474. package/lib/Util/Shutdown.d.ts +10 -0
  475. package/lib/Util/Shutdown.d.ts.map +1 -0
  476. package/lib/Util/Shutdown.js +32 -0
  477. package/lib/Util/Shutdown.js.map +1 -0
  478. package/lib/Util/Terminal.d.ts +2 -4
  479. package/lib/Util/Terminal.d.ts.map +1 -1
  480. package/lib/Util/Terminal.js +3 -11
  481. package/lib/Util/Terminal.js.map +1 -1
  482. package/lib/Util/TraceParent.d.ts +32 -0
  483. package/lib/Util/TraceParent.d.ts.map +1 -0
  484. package/lib/Util/TraceParent.js +42 -0
  485. package/lib/Util/TraceParent.js.map +1 -0
  486. package/lib/Util/base64.d.ts +7 -0
  487. package/lib/Util/base64.d.ts.map +1 -0
  488. package/lib/Util/base64.js +24 -0
  489. package/lib/Util/base64.js.map +1 -0
  490. package/lib/Util/cached-function.d.ts +5 -0
  491. package/lib/Util/cached-function.d.ts.map +1 -1
  492. package/lib/Util/cached-function.js +13 -8
  493. package/lib/Util/cached-function.js.map +1 -1
  494. package/lib/Util/data.d.ts +1 -1
  495. package/lib/Util/data.d.ts.map +1 -1
  496. package/lib/Util/data.js +1 -1
  497. package/lib/Util/data.js.map +1 -1
  498. package/lib/Util/equal.d.ts.map +1 -1
  499. package/lib/Util/equal.js +3 -2
  500. package/lib/Util/equal.js.map +1 -1
  501. package/lib/Util/extraFiles.d.ts.map +1 -1
  502. package/lib/Util/extraFiles.js +5 -5
  503. package/lib/Util/extraFiles.js.map +1 -1
  504. package/lib/Util/interactive.js +1 -1
  505. package/lib/Website/AstroOutput.d.ts +42 -0
  506. package/lib/Website/AstroOutput.d.ts.map +1 -0
  507. package/lib/Website/AstroOutput.js +34 -0
  508. package/lib/Website/AstroOutput.js.map +1 -0
  509. package/lib/Website/FrontendCore.d.ts +1 -1
  510. package/lib/Workflows.d.ts +9 -0
  511. package/lib/Workflows.d.ts.map +1 -1
  512. package/lib/Workflows.js +8 -0
  513. package/lib/Workflows.js.map +1 -1
  514. package/lib/index.d.ts +1 -0
  515. package/lib/index.d.ts.map +1 -1
  516. package/lib/index.js +1 -0
  517. package/lib/index.js.map +1 -1
  518. package/package.json +21 -28
  519. package/src/AdoptPolicy.ts +76 -0
  520. package/src/Alchemist/AuthRegistry.ts +164 -0
  521. package/src/Alchemist/Drift.ts +103 -0
  522. package/src/Alchemist/Entrypoint.ts +51 -3
  523. package/src/Alchemist/Errors.ts +1 -1
  524. package/src/Alchemist/{routes/logs.ts → Logs.ts} +28 -30
  525. package/src/Alchemist/Nuke.ts +90 -0
  526. package/src/Alchemist/Operations.ts +309 -0
  527. package/src/Alchemist/{routes/profile.ts → Profile.ts} +22 -22
  528. package/src/Alchemist/{routes/provider.ts → Provider.ts} +7 -6
  529. package/src/Alchemist/Runtime.ts +46 -12
  530. package/src/Alchemist/{routes/state.ts → State.ts} +78 -21
  531. package/src/Alchemist/index.ts +32 -15
  532. package/src/Apply.ts +513 -274
  533. package/src/Auth/AuthProvider.ts +76 -23
  534. package/src/Auth/BrowserOAuth.ts +37 -60
  535. package/src/Auth/Credentials.ts +2 -4
  536. package/src/Auth/Demand.ts +27 -18
  537. package/src/Auth/Env.ts +13 -8
  538. package/src/Auth/Inspect.ts +5 -2
  539. package/src/Auth/Lock.ts +4 -8
  540. package/src/Auth/OAuthFlow.ts +12 -26
  541. package/src/Auth/Paths.ts +3 -2
  542. package/src/Auth/Profile.ts +30 -2
  543. package/src/Auth/Registry.ts +27 -0
  544. package/src/Auth/Resolve.ts +75 -3
  545. package/src/Auth/StoredAuthProvider.ts +1 -2
  546. package/src/Binding.ts +3 -4
  547. package/src/Bundle/Bundle.ts +58 -7
  548. package/src/Bundle/NamespaceImportPlugin.ts +259 -0
  549. package/src/Bundle/index.ts +1 -0
  550. package/src/Cli/Format.ts +2 -1
  551. package/src/Cli/GlobalLog.ts +206 -68
  552. package/src/Cli/LoggingCli.ts +33 -20
  553. package/src/Cli/PlainCliFormatter.ts +4 -1
  554. package/src/Cli/Present.ts +34 -0
  555. package/src/Cli/SigilRenderer.ts +75 -0
  556. package/src/Cli/checkVersion.ts +25 -78
  557. package/src/Cli/commands/confirm.ts +3 -3
  558. package/src/Cli/commands/deploy.ts +53 -44
  559. package/src/Cli/commands/dev.ts +65 -7
  560. package/src/Cli/commands/drift.ts +20 -16
  561. package/src/Cli/commands/errors.ts +2 -3
  562. package/src/Cli/commands/instrument.ts +39 -8
  563. package/src/Cli/commands/logs.ts +22 -30
  564. package/src/Cli/commands/nuke.ts +25 -26
  565. package/src/Cli/commands/profile/commands.ts +34 -34
  566. package/src/Cli/commands/profile/flows.ts +26 -20
  567. package/src/Cli/commands/profile/hub.ts +16 -18
  568. package/src/Cli/commands/provider.ts +4 -4
  569. package/src/Cli/commands/render.ts +43 -71
  570. package/src/Cli/commands/state.ts +113 -33
  571. package/src/Cli/components/capabilities.ts +20 -0
  572. package/src/Cli/components/types.ts +13 -99
  573. package/src/Cli/components/ui/Environment.tsx +5 -5
  574. package/src/Cli/components/ui/Interactive.tsx +24 -15
  575. package/src/Cli/components/ui/Layout.tsx +1 -1
  576. package/src/Cli/components/ui/Typography.tsx +1 -1
  577. package/src/Cli/components/ui/index.ts +2 -2
  578. package/src/Cli/components/view/ApprovePlan.tsx +2 -1
  579. package/src/Cli/components/view/Format.tsx +58 -0
  580. package/src/Cli/components/view/Help.tsx +14 -17
  581. package/src/Cli/components/view/Logo.tsx +1 -1
  582. package/src/Cli/components/view/Nuke.tsx +74 -49
  583. package/src/Cli/components/view/PlanDecision.tsx +1 -1
  584. package/src/Cli/components/view/PlanRow.tsx +1 -1
  585. package/src/Cli/components/view/PlanTree.ts +2 -2
  586. package/src/Cli/components/view/PlanView.tsx +2 -2
  587. package/src/Cli/components/view/Profile.tsx +2 -2
  588. package/src/Cli/components/view/ProfileDashboard.tsx +12 -11
  589. package/src/Cli/components/view/Prompts.tsx +37 -75
  590. package/src/Cli/components/view/Runtime.tsx +132 -238
  591. package/src/Cli/components/view/SigilCli.tsx +12 -12
  592. package/src/Cli/components/view/StateExplorer.tsx +2 -1
  593. package/src/Cli/components/view/statusStyle.ts +2 -2
  594. package/src/Cli/exec.ts +48 -41
  595. package/src/Cli/main.ts +52 -33
  596. package/src/Cli/selectCli.ts +3 -3
  597. package/src/Command/Command.ts +1 -1
  598. package/src/Command/Dev.ts +129 -36
  599. package/src/Command/Memo.ts +1 -1
  600. package/src/Contributions.ts +42 -8
  601. package/src/DNS/Adapter.ts +289 -0
  602. package/src/DNS/index.ts +1 -0
  603. package/src/Deploy.ts +11 -3
  604. package/src/Destroy.ts +19 -13
  605. package/src/Diff.ts +17 -4
  606. package/src/Drift.ts +256 -127
  607. package/src/EvalStack.ts +97 -0
  608. package/src/Events.ts +296 -0
  609. package/src/Interaction.ts +332 -97
  610. package/src/Local/LocalProvider.ts +40 -9
  611. package/src/Local/RpcProvider.ts +11 -1
  612. package/src/Local/RpcProviderProxy.ts +29 -21
  613. package/src/Local/RpcSerialization.ts +32 -17
  614. package/src/Local/RpcServer.ts +25 -17
  615. package/src/Local/RpcServerBun.ts +10 -6
  616. package/src/Local/RpcServerEnvironment.ts +2 -2
  617. package/src/Local/RpcServerNode.ts +8 -1
  618. package/src/Local/RpcServerSession.ts +2 -2
  619. package/src/Local/RpcSpawner.ts +61 -37
  620. package/src/Local/Sidecar.ts +10 -1
  621. package/src/Nuke.ts +66 -43
  622. package/src/Output.ts +120 -7
  623. package/src/Plan.ts +140 -52
  624. package/src/Platform.ts +47 -18
  625. package/src/Provider.ts +48 -3
  626. package/src/Report.ts +77 -275
  627. package/src/Runtime/ManagedHttpShutdown.ts +21 -4
  628. package/src/RuntimeContext.ts +1 -1
  629. package/src/Stack.ts +113 -135
  630. package/src/State/BucketState.ts +53 -21
  631. package/src/State/LocalState.ts +7 -9
  632. package/src/State/Provisioning.ts +8 -1
  633. package/src/State/ResourceState.ts +2 -0
  634. package/src/State/State.ts +30 -0
  635. package/src/State/StateEncoding.ts +22 -0
  636. package/src/State/index.ts +2 -2
  637. package/src/Telemetry/Layer.ts +3 -24
  638. package/src/Telemetry/Metrics.ts +1 -1
  639. package/src/TelemetryRelay.ts +1 -1
  640. package/src/TelemetryRuntime.ts +8 -8
  641. package/src/Util/ConsoleSink.ts +76 -13
  642. package/src/Util/LogAnnotation.ts +18 -0
  643. package/src/Util/LogRecord.ts +386 -0
  644. package/src/Util/Node.ts +20 -6
  645. package/src/Util/PlatformServices.ts +17 -4
  646. package/src/Util/ResourceOutput.ts +26 -25
  647. package/src/Util/Shutdown.ts +52 -0
  648. package/src/Util/Terminal.ts +3 -20
  649. package/src/Util/TraceParent.ts +70 -0
  650. package/src/Util/base64.ts +22 -0
  651. package/src/Util/cached-function.ts +30 -19
  652. package/src/Util/data.ts +2 -2
  653. package/src/Util/equal.ts +3 -2
  654. package/src/Util/extraFiles.ts +9 -8
  655. package/src/Util/interactive.ts +1 -1
  656. package/src/Website/AstroOutput.ts +83 -0
  657. package/src/Workflows.ts +11 -0
  658. package/src/index.ts +1 -0
  659. package/lib/Alchemist/Progress.d.ts +0 -16
  660. package/lib/Alchemist/Progress.d.ts.map +0 -1
  661. package/lib/Alchemist/Progress.js +0 -123
  662. package/lib/Alchemist/Progress.js.map +0 -1
  663. package/lib/Alchemist/Session.d.ts +0 -116
  664. package/lib/Alchemist/Session.d.ts.map +0 -1
  665. package/lib/Alchemist/Session.js +0 -212
  666. package/lib/Alchemist/Session.js.map +0 -1
  667. package/lib/Alchemist/routes/drift.d.ts +0 -55
  668. package/lib/Alchemist/routes/drift.d.ts.map +0 -1
  669. package/lib/Alchemist/routes/drift.js +0 -52
  670. package/lib/Alchemist/routes/drift.js.map +0 -1
  671. package/lib/Alchemist/routes/logs.d.ts +0 -41
  672. package/lib/Alchemist/routes/logs.d.ts.map +0 -1
  673. package/lib/Alchemist/routes/logs.js.map +0 -1
  674. package/lib/Alchemist/routes/nuke.d.ts +0 -46
  675. package/lib/Alchemist/routes/nuke.d.ts.map +0 -1
  676. package/lib/Alchemist/routes/nuke.js +0 -80
  677. package/lib/Alchemist/routes/nuke.js.map +0 -1
  678. package/lib/Alchemist/routes/profile.d.ts +0 -133
  679. package/lib/Alchemist/routes/profile.d.ts.map +0 -1
  680. package/lib/Alchemist/routes/profile.js.map +0 -1
  681. package/lib/Alchemist/routes/provider.d.ts.map +0 -1
  682. package/lib/Alchemist/routes/provider.js.map +0 -1
  683. package/lib/Alchemist/routes/stack.d.ts +0 -95
  684. package/lib/Alchemist/routes/stack.d.ts.map +0 -1
  685. package/lib/Alchemist/routes/stack.js +0 -73
  686. package/lib/Alchemist/routes/stack.js.map +0 -1
  687. package/lib/Alchemist/routes/state.d.ts.map +0 -1
  688. package/lib/Alchemist/routes/state.js.map +0 -1
  689. package/lib/Cli/CliKit/CliKit.d.ts +0 -92
  690. package/lib/Cli/CliKit/CliKit.d.ts.map +0 -1
  691. package/lib/Cli/CliKit/CliKit.js +0 -27
  692. package/lib/Cli/CliKit/CliKit.js.map +0 -1
  693. package/lib/Cli/CliKit/index.d.ts +0 -9
  694. package/lib/Cli/CliKit/index.d.ts.map +0 -1
  695. package/lib/Cli/CliKit/index.js +0 -9
  696. package/lib/Cli/CliKit/index.js.map +0 -1
  697. package/lib/Cli/CliKit/interaction.d.ts +0 -13
  698. package/lib/Cli/CliKit/interaction.d.ts.map +0 -1
  699. package/lib/Cli/CliKit/interaction.js +0 -17
  700. package/lib/Cli/CliKit/interaction.js.map +0 -1
  701. package/lib/Cli/CliKit/layer.d.ts +0 -7
  702. package/lib/Cli/CliKit/layer.d.ts.map +0 -1
  703. package/lib/Cli/CliKit/layer.js +0 -33
  704. package/lib/Cli/CliKit/layer.js.map +0 -1
  705. package/lib/Local/DevLog.d.ts +0 -32
  706. package/lib/Local/DevLog.d.ts.map +0 -1
  707. package/lib/Local/DevLog.js +0 -112
  708. package/lib/Local/DevLog.js.map +0 -1
  709. package/lib/Test/Alchemy.d.ts +0 -79
  710. package/lib/Test/Alchemy.d.ts.map +0 -1
  711. package/lib/Test/Alchemy.js +0 -193
  712. package/lib/Test/Alchemy.js.map +0 -1
  713. package/lib/Test/Bun.d.ts +0 -69
  714. package/lib/Test/Bun.d.ts.map +0 -1
  715. package/lib/Test/Bun.js +0 -126
  716. package/lib/Test/Bun.js.map +0 -1
  717. package/lib/Test/Core.d.ts +0 -277
  718. package/lib/Test/Core.d.ts.map +0 -1
  719. package/lib/Test/Core.js +0 -362
  720. package/lib/Test/Core.js.map +0 -1
  721. package/lib/Test/Http.d.ts +0 -109
  722. package/lib/Test/Http.d.ts.map +0 -1
  723. package/lib/Test/Http.js +0 -123
  724. package/lib/Test/Http.js.map +0 -1
  725. package/lib/Test/TestState.d.ts +0 -12
  726. package/lib/Test/TestState.d.ts.map +0 -1
  727. package/lib/Test/TestState.js +0 -15
  728. package/lib/Test/TestState.js.map +0 -1
  729. package/lib/Test/Vitest.d.ts +0 -60
  730. package/lib/Test/Vitest.d.ts.map +0 -1
  731. package/lib/Test/Vitest.js +0 -132
  732. package/lib/Test/Vitest.js.map +0 -1
  733. package/lib/Test/index.d.ts +0 -3
  734. package/lib/Test/index.d.ts.map +0 -1
  735. package/lib/Test/index.js +0 -3
  736. package/lib/Test/index.js.map +0 -1
  737. package/lib/Util/FileLogger.d.ts +0 -7
  738. package/lib/Util/FileLogger.d.ts.map +0 -1
  739. package/lib/Util/FileLogger.js +0 -16
  740. package/lib/Util/FileLogger.js.map +0 -1
  741. package/src/Alchemist/Progress.ts +0 -167
  742. package/src/Alchemist/Session.ts +0 -415
  743. package/src/Alchemist/routes/drift.ts +0 -87
  744. package/src/Alchemist/routes/nuke.ts +0 -131
  745. package/src/Alchemist/routes/stack.ts +0 -173
  746. package/src/Cli/CliKit/CliKit.ts +0 -159
  747. package/src/Cli/CliKit/index.ts +0 -41
  748. package/src/Cli/CliKit/interaction.ts +0 -19
  749. package/src/Cli/CliKit/layer.ts +0 -44
  750. package/src/Local/DevLog.ts +0 -122
  751. package/src/Test/Alchemy.ts +0 -334
  752. package/src/Test/Bun.ts +0 -230
  753. package/src/Test/Core.ts +0 -785
  754. package/src/Test/Http.ts +0 -201
  755. package/src/Test/TestState.ts +0 -35
  756. package/src/Test/Vitest.ts +0 -239
  757. package/src/Test/index.ts +0 -2
  758. package/src/Util/FileLogger.ts +0 -20
@@ -1,131 +0,0 @@
1
- import * as Config from "effect/Config";
2
- import * as Context from "effect/Context";
3
- import * as Effect from "effect/Effect";
4
- import * as Layer from "effect/Layer";
5
- import * as Logger from "effect/Logger";
6
- import * as Option from "effect/Option";
7
- import { MinimumLogLevel } from "effect/References";
8
- import * as Nuke from "../../Nuke.ts";
9
- import type { ProviderMode } from "../../ProviderMode.ts";
10
- import type { ApplyStatus } from "../../Report.ts";
11
- import { Progress, withSpanEvents } from "../Progress.ts";
12
- import { buildStackProviders, DEFAULT_ENTRYPOINT, type Target } from "../Session.ts";
13
-
14
- export interface ScanInput extends Target {
15
- readonly mode: ProviderMode;
16
- /** Provider-id globs to include. Omitted means every provider. */
17
- readonly include?: ReadonlyArray<string>;
18
- /** Provider-id globs to exclude. Applied after `include`. */
19
- readonly exclude?: ReadonlyArray<string>;
20
- readonly concurrency?: number | "unbounded";
21
- readonly providerTimeoutSeconds?: number;
22
- }
23
-
24
- /** One discovered cloud object, bound to the provider that can delete it. */
25
- export type NukeResource = Nuke.Target;
26
-
27
- export interface NukeScan {
28
- readonly mode: ProviderMode;
29
- readonly resources: ReadonlyArray<NukeResource>;
30
- readonly failures: ReadonlyArray<Nuke.ProviderFailure>;
31
- /** The built provider context {@link execute} deletes under. */
32
- readonly context: Context.Context<never>;
33
- }
34
-
35
- export interface ExecuteInput {
36
- readonly scan: NukeScan;
37
- /** The subset of `scan.resources` to delete. */
38
- readonly resources: ReadonlyArray<NukeResource>;
39
- readonly strategy: Nuke.Strategy;
40
- readonly concurrency?: number | "unbounded";
41
- readonly providerTimeoutSeconds?: number;
42
- }
43
-
44
- export type NukeResult = Nuke.Result;
45
-
46
- /** Enumerate everything the stack's registered providers can see. */
47
- export const scan = Effect.fn("Alchemist.nuke.scan")(function* (input: ScanInput) {
48
- const report = withSpanEvents(yield* Progress);
49
- const debug = yield* Config.String("DEBUG").pipe(
50
- Config.withDefault(""),
51
- Effect.map((value) => value.length > 0),
52
- );
53
- // Nuke needs the provider layer, not a stack instance: it deletes what
54
- // the cloud has, not what state says we own.
55
- const built = yield* buildStackProviders({
56
- main: input.entrypoint ?? DEFAULT_ENTRYPOINT,
57
- envFile: Option.fromNullishOr(input.envFile),
58
- profile: input.profile,
59
- logger: debug ? Logger.layer([Logger.defaultLogger]) : undefined,
60
- extra: Layer.succeed(MinimumLogLevel, debug ? "Debug" : "Info"),
61
- });
62
- const context = built.context as Context.Context<never>;
63
- const { resources, failures } = yield* Nuke.list({
64
- context,
65
- mode: input.mode,
66
- include: input.include,
67
- exclude: input.exclude,
68
- concurrency: input.concurrency,
69
- timeoutSeconds: input.providerTimeoutSeconds,
70
- onScan: (total) => report({ _tag: "nuke.scan.started", total }),
71
- onProviderStarted: (provider) => report({ _tag: "nuke.scan.provider.started", provider }),
72
- onProvider: (provider, count, error) =>
73
- report({
74
- _tag: "nuke.scan.provider.completed",
75
- provider,
76
- resources: count,
77
- error,
78
- }),
79
- });
80
- return { mode: input.mode, resources, failures, context } satisfies NukeScan;
81
- });
82
-
83
- /**
84
- * Permanently delete the selected resources. Each confirmed deletion is
85
- * reported through {@link Progress} as `NukeResourceDeleted`.
86
- */
87
- export const execute = Effect.fn("Alchemist.nuke.execute")(function* (input: ExecuteInput) {
88
- const report = withSpanEvents(yield* Progress);
89
- const keys = new Map(input.resources.map((resource, index) => [resource, `nuke/${index}`]));
90
- const status = (resource: Nuke.Target, status: ApplyStatus, message?: string) =>
91
- report({
92
- _tag: "apply.resource.status",
93
- fqn: keys.get(resource)!,
94
- id: resource.providerId,
95
- type: resource.providerId,
96
- status,
97
- message,
98
- });
99
- return yield* Nuke.destroy({
100
- targets: input.resources,
101
- context: input.scan.context,
102
- strategy: input.strategy,
103
- concurrency: input.concurrency,
104
- timeoutSeconds: input.providerTimeoutSeconds,
105
- onPass: (pass) => report({ _tag: "nuke.pass.started", pass }),
106
- onDeleting: (resource) => status(resource, "deleting"),
107
- onHeld: (resource, blockedBy) =>
108
- status(resource, "skipped", `Held back by ${blockedBy.join(", ")}`),
109
- onDeleted: (resource) =>
110
- status(resource, "deleted").pipe(
111
- Effect.andThen(
112
- report({
113
- _tag: "nuke.resource.deleted",
114
- provider: resource.providerId,
115
- resource: resource.displayName,
116
- }),
117
- ),
118
- ),
119
- onFailed: (resource, message) =>
120
- status(resource, "fail", message).pipe(
121
- Effect.andThen(
122
- report({
123
- _tag: "nuke.resource.failed",
124
- provider: resource.providerId,
125
- resource: resource.displayName,
126
- message,
127
- }),
128
- ),
129
- ),
130
- });
131
- });
@@ -1,173 +0,0 @@
1
- import * as Clock from "effect/Clock";
2
- import * as Effect from "effect/Effect";
3
- import { apply as applyPlan } from "../../Apply.ts";
4
- import * as Plan from "../../Plan.ts";
5
- import type { PlannedAction, PlannedResource } from "../../Report.ts";
6
- import type { ResourceSelection, SelectionOutput } from "../../ResourceSelection.ts";
7
- import { applySession, Progress, withSpanEvents } from "../Progress.ts";
8
- import { open, type Session, type StackTarget } from "../Session.ts";
9
-
10
- export type { StackTarget } from "../Session.ts";
11
-
12
- export interface PlanInput {
13
- readonly target: StackTarget;
14
- readonly operation: "deploy" | "destroy";
15
- readonly force?: boolean;
16
- readonly include?: never;
17
- readonly exclude?: never;
18
- readonly adopt?: boolean;
19
- readonly updateStateStore?: boolean;
20
- /** Run local (emulated) providers instead of the real cloud. */
21
- readonly dev?: boolean;
22
- }
23
-
24
- /** Select nodes and dependencies; declaration still runs, stack outputs are preserved. */
25
- export interface FilteredPlanInput
26
- extends Omit<PlanInput, keyof ResourceSelection>, ResourceSelection {}
27
-
28
- /** Infer the deployed stack output from an `alchemy.run.ts` module type. */
29
- export type StackModuleOutput<Module> = Module extends { readonly default: infer Definition }
30
- ? Definition extends Effect.Effect<any, any, any>
31
- ? Effect.Success<Definition> extends { readonly output: infer Output }
32
- ? Output
33
- : unknown
34
- : unknown
35
- : unknown;
36
-
37
- export interface PlanSummary {
38
- readonly create: number;
39
- readonly update: number;
40
- readonly adopted: number;
41
- readonly replace: number;
42
- readonly delete: number;
43
- readonly orphaned: number;
44
- readonly noop: number;
45
- }
46
-
47
- export interface PlanSnapshot<Output = unknown> {
48
- readonly stack: { readonly name: string; readonly stage: string };
49
- readonly summary: PlanSummary;
50
- /**
51
- * Serializable resource rows (including orphan deletions) with their
52
- * bindings and provider modes — what a remote renderer shows without
53
- * holding {@link PlanSnapshot.native}.
54
- */
55
- readonly resources: ReadonlyArray<PlannedResource>;
56
- /** Serializable stack-action rows. */
57
- readonly actions: ReadonlyArray<PlannedAction>;
58
- /** The engine plan, as consumed by in-process renderers and {@link apply}. */
59
- readonly native: Plan.Plan<Output>;
60
- readonly createdAt: Date;
61
- /** The session this plan was computed under; {@link apply} runs in it. */
62
- readonly session: Session;
63
- }
64
-
65
- /** Whether a plan proposes any cloud mutations (i.e. approval-worthy work). */
66
- export const hasChanges = (summary: PlanSummary): boolean =>
67
- summary.create +
68
- summary.update +
69
- summary.adopted +
70
- summary.replace +
71
- summary.delete +
72
- summary.orphaned >
73
- 0;
74
-
75
- export const summarize = (plan: Plan.Plan): PlanSummary => {
76
- const summary: { -readonly [K in keyof PlanSummary]: PlanSummary[K] } = {
77
- create: 0,
78
- update: 0,
79
- adopted: 0,
80
- replace: 0,
81
- delete: 0,
82
- orphaned: 0,
83
- noop: 0,
84
- };
85
- for (const node of Object.values(plan.resources)) summary[node.action]++;
86
- for (const node of Object.values(plan.deletions)) {
87
- if (node !== undefined) summary[node.action]++;
88
- }
89
- return summary;
90
- };
91
-
92
- type PlanResult<Output> = Effect.Effect<
93
- PlanSnapshot<Output>,
94
- Effect.Error<ReturnType<typeof planStack>>,
95
- Effect.Services<ReturnType<typeof planStack>>
96
- >;
97
-
98
- /**
99
- * Import the stack, resolve its services, and compute a deploy or destroy
100
- * plan. Planning phases are reported through {@link Progress}; the returned
101
- * snapshot is what {@link apply} executes. Filtered deploys preserve stack
102
- * outputs and return void; the entire declaration still evaluates.
103
- * With an explicit module type, filter-carrying callbacks also specify the input type.
104
- */
105
- export function plan<Module = unknown>(
106
- input: FilteredPlanInput &
107
- ({ include: ReadonlyArray<string> } | { exclude: ReadonlyArray<string> }),
108
- ): PlanResult<undefined>;
109
- export function plan<Module = unknown>(input: PlanInput): PlanResult<StackModuleOutput<Module>>;
110
- export function plan<Module = unknown>(
111
- input: FilteredPlanInput,
112
- ): PlanResult<StackModuleOutput<Module> | undefined>;
113
- export function plan<Module = unknown, Input extends FilteredPlanInput = PlanInput>(
114
- input: Input,
115
- ): PlanResult<SelectionOutput<StackModuleOutput<Module>, Input>>;
116
- export function plan(input: FilteredPlanInput) {
117
- return planStack(input);
118
- }
119
-
120
- const planStack = Effect.fn("Alchemist.stack.plan")(function* (input: FilteredPlanInput) {
121
- type Output = StackModuleOutput<unknown> | undefined;
122
- if (
123
- input.operation === "destroy" &&
124
- (input.include !== undefined || input.exclude !== undefined)
125
- ) {
126
- return yield* Effect.die(
127
- new Plan.InvalidResourceSelection({ message: "Filtered destroy is not supported." }),
128
- );
129
- }
130
- const report = withSpanEvents(yield* Progress);
131
-
132
- // Everything below emits into the same flat ProgressEvent channel:
133
- // `open` reports importing-module / resolving-services at the real work
134
- // boundaries, the engine reports loading-state / computing-plan and the
135
- // per-node diff events. Re-providing the wrapped reporter is all the
136
- // route does — no translation layer.
137
- const session = yield* open(input.target, input).pipe(Effect.provideService(Progress, report));
138
- const native = (yield* (
139
- input.operation === "destroy"
140
- ? Plan.destroy(session.stack)
141
- : Plan.make(session.stack, {
142
- force: input.force,
143
- include: input.include,
144
- exclude: input.exclude,
145
- })
146
- ).pipe(
147
- Effect.provideService(Progress, report),
148
- Effect.provide(session.context),
149
- )) as Plan.Plan<Output>;
150
- yield* report({ _tag: "plan.phase", phase: "plan-ready" });
151
- return {
152
- stack: { name: session.stack.name, stage: session.stack.stage },
153
- summary: summarize(native),
154
- ...Plan.describePlan(native),
155
- native,
156
- createdAt: new Date(yield* Clock.currentTimeMillis),
157
- session,
158
- } satisfies PlanSnapshot<Output>;
159
- });
160
-
161
- /**
162
- * Apply a computed plan. Engine apply events are reported through
163
- * {@link Progress} as `ApplyEvent`.
164
- */
165
- export const apply = Effect.fn("Alchemist.stack.apply")(function* <Output>(
166
- snapshot: PlanSnapshot<Output>,
167
- ) {
168
- const report = withSpanEvents(yield* Progress);
169
- return yield* Effect.provide(
170
- applyPlan(snapshot.native, { session: applySession(report) }),
171
- snapshot.session.context,
172
- );
173
- });
@@ -1,159 +0,0 @@
1
- import type { TerminalProgressState } from "@alchemy.run/sigil/ansi";
2
- import * as Context from "effect/Context";
3
- import * as Effect from "effect/Effect";
4
- import type * as Scope from "effect/Scope";
5
- import type { NonInteractiveTerminal } from "../../Interaction.ts";
6
- import type {
7
- ConfirmOptions,
8
- CycleSelectOptions,
9
- AwaitExternalOptions,
10
- MessageOptions,
11
- InteractionError,
12
- LiveViewHandle,
13
- LiveViewOptions,
14
- MenuOptions,
15
- MultiSelectOptions,
16
- PasswordInputOptions,
17
- ProgressHandle,
18
- ProgressOptions,
19
- RenderOptions,
20
- Screen,
21
- SelectOptions,
22
- CliKitCapabilities,
23
- TextInputOptions,
24
- View,
25
- } from "../components/types.ts";
26
-
27
- /** The sole injected owner of terminal rendering and input for a CLI process. */
28
- export class CliKit extends Context.Service<
29
- CliKit,
30
- {
31
- readonly terminal: CliKitCapabilities;
32
-
33
- /** Terminal-emulator progress displayed outside the rendered TUI. */
34
- readonly nativeProgress: {
35
- readonly set: (state: TerminalProgressState, value?: number) => Effect.Effect<void>;
36
- };
37
-
38
- readonly output: {
39
- /** Append a completed layout to terminal scrollback/output. */
40
- readonly print: (view: View, options?: RenderOptions) => Effect.Effect<void>;
41
-
42
- /** Render a layout without writing it. Useful for help, logs and snapshots. */
43
- readonly format: (view: View, options?: RenderOptions) => string;
44
-
45
- /** Effect form of `format`, useful when composing CLI programs. */
46
- readonly render: (view: View, options?: RenderOptions) => Effect.Effect<string>;
47
-
48
- /** Append an arbitrary visual layout. Prefer the semantic methods for logs. */
49
- readonly info: (message: string | MessageOptions) => Effect.Effect<void>;
50
- readonly success: (message: string | MessageOptions) => Effect.Effect<void>;
51
- readonly warning: (message: string | MessageOptions) => Effect.Effect<void>;
52
- readonly error: (message: string | MessageOptions) => Effect.Effect<void>;
53
- };
54
-
55
- readonly prompt: {
56
- readonly text: (options: TextInputOptions) => Effect.Effect<string, InteractionError>;
57
- readonly password: (options: PasswordInputOptions) => Effect.Effect<string, InteractionError>;
58
- readonly confirm: (options: ConfirmOptions) => Effect.Effect<boolean, InteractionError>;
59
- readonly select: <Value>(
60
- options: SelectOptions<Value>,
61
- ) => Effect.Effect<Value, InteractionError>;
62
- readonly multiSelect: <Value>(
63
- options: MultiSelectOptions<Value>,
64
- ) => Effect.Effect<ReadonlyArray<Value>, InteractionError>;
65
- readonly cycle: <State>(
66
- options: CycleSelectOptions<State>,
67
- ) => Effect.Effect<ReadonlyArray<State>, InteractionError>;
68
- readonly awaitExternal: (
69
- options: AwaitExternalOptions,
70
- ) => Effect.Effect<string, InteractionError>;
71
-
72
- /**
73
- * Display an application menu. Each invocation replaces the current app
74
- * flow, so looping back to a menu clears any prompts shown since the last
75
- * selection.
76
- */
77
- readonly menu: <Value>(options: MenuOptions<Value>) => Effect.Effect<Value, InteractionError>;
78
-
79
- /** Run an arbitrary interactive screen in the service's single live region. */
80
- readonly custom: <Value>(screen: Screen<Value>) => Effect.Effect<Value, InteractionError>;
81
- };
82
-
83
- /** Run a sequence of prompts as one owned interaction. */
84
- readonly wizard: <A, E, R>(
85
- effect: Effect.Effect<A, E, R>,
86
- ) => Effect.Effect<A, E | NonInteractiveTerminal, R>;
87
-
88
- /**
89
- * Keep one renderer alive while an Effect drives menus, screens and prompt
90
- * flows. The application is cleared and the renderer exits when it settles.
91
- */
92
- readonly application: <A, E, R>(
93
- effect: Effect.Effect<A, E, R>,
94
- ) => Effect.Effect<A, E | NonInteractiveTerminal, R>;
95
-
96
- readonly live: {
97
- /**
98
- * Add a mutable row to the live region. The handle is idempotent, and
99
- * the enclosing Scope closes it as a backstop so interruption can never
100
- * leave an orphaned row keeping the renderer mounted.
101
- */
102
- readonly progress: (
103
- options: ProgressOptions,
104
- ) => Effect.Effect<ProgressHandle, never, Scope.Scope>;
105
- /**
106
- * Mount a live layout while the scope is open. The view is immutable —
107
- * dynamic content flows through a caller-owned store (`LiveStore` +
108
- * `useLiveStore`) that the view's component subscribes to.
109
- */
110
- readonly open: (
111
- view: View,
112
- options?: LiveViewOptions,
113
- ) => Effect.Effect<LiveViewHandle, never, Scope.Scope>;
114
- };
115
-
116
- /** Run work behind a progress row and collapse it to a final status line. */
117
- readonly task: <A, E, R>(
118
- options: ProgressOptions,
119
- effect: Effect.Effect<A, E, R>,
120
- ) => Effect.Effect<A, E, R>;
121
- }
122
- >()("Alchemy::CliKit") {}
123
-
124
- /** Effectful service accessors for code that must defer acquisition to use time. */
125
- export const accessors = {
126
- output: {
127
- info: (message: string | MessageOptions) =>
128
- Effect.flatMap(CliKit, (service) => service.output.info(message)),
129
- success: (message: string | MessageOptions) =>
130
- Effect.flatMap(CliKit, (service) => service.output.success(message)),
131
- warning: (message: string | MessageOptions) =>
132
- Effect.flatMap(CliKit, (service) => service.output.warning(message)),
133
- error: (message: string | MessageOptions) =>
134
- Effect.flatMap(CliKit, (service) => service.output.error(message)),
135
- },
136
- prompt: {
137
- text: (options: TextInputOptions) =>
138
- Effect.flatMap(CliKit, (service) => service.prompt.text(options)),
139
- password: (options: PasswordInputOptions) =>
140
- Effect.flatMap(CliKit, (service) => service.prompt.password(options)),
141
- confirm: (options: ConfirmOptions) =>
142
- Effect.flatMap(CliKit, (service) => service.prompt.confirm(options)),
143
- select: <Value>(options: SelectOptions<Value>) =>
144
- Effect.flatMap(CliKit, (service) => service.prompt.select(options)),
145
- multiSelect: <Value>(options: MultiSelectOptions<Value>) =>
146
- Effect.flatMap(CliKit, (service) => service.prompt.multiSelect(options)),
147
- },
148
- };
149
-
150
- export const ApplicationPresentation = Context.Reference<"inline" | "alternate">(
151
- "Alchemy::CliKit/ApplicationPresentation",
152
- { defaultValue: () => "inline" },
153
- );
154
-
155
- /** Pipeable presentation modifiers for {@link CliKit.application}. */
156
- export const Application = {
157
- alternate: <A, E, R>(effect: Effect.Effect<A, E, R>) =>
158
- effect.pipe(Effect.provideService(ApplicationPresentation, "alternate" as const)),
159
- };
@@ -1,41 +0,0 @@
1
- export { accessors, Application, CliKit } from "./CliKit.ts";
2
- export { layer } from "./layer.ts";
3
- export { CliKitInteraction } from "./interaction.ts";
4
- export { openUrl } from "../../Interaction.ts";
5
- export { BrowserOpenFailed, NonInteractiveTerminal, TerminalCancelled } from "../../Interaction.ts";
6
- export { glyphsFor, spinnerFramesFor, theme, type GlyphName } from "../../Util/Theme.ts";
7
- export {
8
- ANSI_BOLD,
9
- ANSI_DIM,
10
- ANSI_RESET,
11
- ansiFg,
12
- colorsEnabled,
13
- paint,
14
- pipedColorEnv,
15
- truncate,
16
- unicodeEnabled,
17
- } from "../../Util/Terminal.ts";
18
- export {
19
- Screen,
20
- type Choice,
21
- type AwaitExternalOptions,
22
- type ConfirmOptions,
23
- type CycleChoice,
24
- type CycleSelectOptions,
25
- type InteractionError,
26
- type LiveViewHandle,
27
- type LiveViewOptions,
28
- type MenuOptions,
29
- type MessageOptions,
30
- type MultiSelectOptions,
31
- type PasswordInputOptions,
32
- type ProgressHandle,
33
- type ProgressOptions,
34
- type RenderOptions,
35
- type ScreenController,
36
- type SelectOptions,
37
- type CliKitCapabilities,
38
- type CliKitOptions,
39
- type TextInputOptions,
40
- type View,
41
- } from "../components/types.ts";
@@ -1,19 +0,0 @@
1
- import * as Effect from "effect/Effect";
2
- import * as Layer from "effect/Layer";
3
- import { Interaction } from "../../Interaction.ts";
4
- import { CliKit } from "./CliKit.ts";
5
-
6
- /**
7
- * The CLI's implementation of the engine's {@link Interaction} capability,
8
- * backed by the full CliKit terminal runtime: messages and `task` render
9
- * through the live renderer, prompts run as real interactive screens.
10
- * Provided by the CLI entrypoints next to `CliKit.layer()`; every other
11
- * process uses `Interaction.layerNonInteractive` (or nothing at all —
12
- * children have no interaction capability in their graphs).
13
- */
14
- export const CliKitInteraction = Layer.effect(
15
- Interaction,
16
- // CliKit's surface is a structural superset of Interaction's — the
17
- // terminal service IS the CLI's Interaction implementation.
18
- Effect.map(CliKit, (cli): Interaction["Service"] => cli),
19
- );
@@ -1,44 +0,0 @@
1
- import { detectCapabilities } from "@alchemy.run/sigil/capabilities";
2
- import * as Effect from "effect/Effect";
3
- import * as Layer from "effect/Layer";
4
- import { isNonInteractive } from "../../Util/interactive.ts";
5
- import type { CliKitCapabilities, CliKitOptions } from "../components/types.ts";
6
- import { CliKit } from "./CliKit.ts";
7
-
8
- export const resolveCapabilities = (options: CliKitOptions): CliKitCapabilities => {
9
- const stdout = options.stdout ?? process.stdout;
10
- const stdin = options.stdin ?? process.stdin;
11
- const detected = detectCapabilities({ stdout });
12
- const input =
13
- options.input ?? (stdin.isTTY === true && stdout.isTTY === true && !isNonInteractive());
14
- return {
15
- input,
16
- columns: detected.size.columns,
17
- rows: detected.size.rows,
18
- colors: options.colors ?? detected.supports.color,
19
- unicode: options.unicode ?? detected.supports.unicode,
20
- alternateScreen: detected.supports.alternateScreen,
21
- };
22
- };
23
-
24
- // One shared import promise per process. Concurrent dynamic imports of the
25
- // same module (e.g. two test files building this layer at once) can race in
26
- // bun and hand one caller a partially-evaluated namespace, which throws a
27
- // TDZ ReferenceError on `makeRuntime`; funneling every build through a
28
- // single import() sidesteps the race.
29
- let sigilRuntime: Promise<typeof import("../components/view/Runtime.tsx")> | undefined;
30
- const loadSigilRuntime = () => (sigilRuntime ??= import("../components/view/Runtime.tsx"));
31
-
32
- /** Provides one terminal runtime for the enclosing scope. */
33
- export const layer = (options: CliKitOptions = {}) =>
34
- Layer.effect(
35
- CliKit,
36
- Effect.acquireRelease(
37
- Effect.promise(async () => {
38
- const capabilities = resolveCapabilities(options);
39
- const { makeRuntime } = await loadSigilRuntime();
40
- return makeRuntime(options, capabilities);
41
- }),
42
- ({ dispose }) => Effect.promise(dispose),
43
- ).pipe(Effect.map(({ service }) => service)),
44
- );