alchemy 2.0.0-beta.36 → 2.0.0-beta.38

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 (741) hide show
  1. package/bin/exec.js +646 -104
  2. package/bin/exec.js.map +1 -1
  3. package/lib/AWS/AutoScaling/LaunchTemplate.d.ts +1 -1
  4. package/lib/AWS/CloudWatch/common.d.ts +1 -1
  5. package/lib/AWS/Credentials.d.ts.map +1 -1
  6. package/lib/AWS/Credentials.js +1 -2
  7. package/lib/AWS/Credentials.js.map +1 -1
  8. package/lib/AWS/DynamoDB/Stream.d.ts.map +1 -1
  9. package/lib/AWS/DynamoDB/Stream.js +1 -1
  10. package/lib/AWS/DynamoDB/Stream.js.map +1 -1
  11. package/lib/AWS/EC2/Instance.d.ts +1 -1
  12. package/lib/AWS/EC2/hosted.d.ts +1 -1
  13. package/lib/AWS/EC2/hosted.d.ts.map +1 -1
  14. package/lib/AWS/EC2/hosted.js +3 -5
  15. package/lib/AWS/EC2/hosted.js.map +1 -1
  16. package/lib/AWS/ECS/Task.d.ts +1 -1
  17. package/lib/AWS/ECS/Task.d.ts.map +1 -1
  18. package/lib/AWS/ECS/Task.js +3 -5
  19. package/lib/AWS/ECS/Task.js.map +1 -1
  20. package/lib/AWS/Endpoint.d.ts.map +1 -1
  21. package/lib/AWS/Endpoint.js +1 -2
  22. package/lib/AWS/Endpoint.js.map +1 -1
  23. package/lib/AWS/Environment.d.ts +2 -2
  24. package/lib/AWS/EventBridge/EventSource.d.ts.map +1 -1
  25. package/lib/AWS/EventBridge/EventSource.js +1 -1
  26. package/lib/AWS/EventBridge/EventSource.js.map +1 -1
  27. package/lib/AWS/Kinesis/StreamEventSource.d.ts.map +1 -1
  28. package/lib/AWS/Kinesis/StreamEventSource.js +1 -1
  29. package/lib/AWS/Kinesis/StreamEventSource.js.map +1 -1
  30. package/lib/AWS/Lambda/BucketEventSource.d.ts +1 -1
  31. package/lib/AWS/Lambda/EventBridgeEventSource.d.ts +1 -1
  32. package/lib/AWS/Lambda/Function.d.ts +1 -1
  33. package/lib/AWS/Lambda/Function.d.ts.map +1 -1
  34. package/lib/AWS/Lambda/Function.js +29 -13
  35. package/lib/AWS/Lambda/Function.js.map +1 -1
  36. package/lib/AWS/Lambda/QueueEventSource.d.ts +1 -1
  37. package/lib/AWS/Lambda/StreamEventSource.d.ts +1 -1
  38. package/lib/AWS/Lambda/TableEventSource.d.ts +1 -1
  39. package/lib/AWS/Lambda/TopicEventSource.d.ts +1 -1
  40. package/lib/AWS/Organizations/common.d.ts +1 -1
  41. package/lib/AWS/Providers.d.ts.map +1 -1
  42. package/lib/AWS/Providers.js +21 -3
  43. package/lib/AWS/Providers.js.map +1 -1
  44. package/lib/AWS/Region.d.ts +1 -1
  45. package/lib/AWS/Region.d.ts.map +1 -1
  46. package/lib/AWS/Region.js +2 -3
  47. package/lib/AWS/Region.js.map +1 -1
  48. package/lib/AWS/S3/Bucket.d.ts.map +1 -1
  49. package/lib/AWS/S3/Bucket.js +5 -2
  50. package/lib/AWS/S3/Bucket.js.map +1 -1
  51. package/lib/AWS/S3/BucketNotifications.d.ts.map +1 -1
  52. package/lib/AWS/S3/BucketNotifications.js +1 -1
  53. package/lib/AWS/S3/BucketNotifications.js.map +1 -1
  54. package/lib/AWS/SNS/TopicEventSource.d.ts.map +1 -1
  55. package/lib/AWS/SNS/TopicEventSource.js +1 -1
  56. package/lib/AWS/SNS/TopicEventSource.js.map +1 -1
  57. package/lib/AWS/SQS/Queue.d.ts.map +1 -1
  58. package/lib/AWS/SQS/Queue.js +23 -5
  59. package/lib/AWS/SQS/Queue.js.map +1 -1
  60. package/lib/Action.d.ts +77 -0
  61. package/lib/Action.d.ts.map +1 -0
  62. package/lib/Action.js +89 -0
  63. package/lib/Action.js.map +1 -0
  64. package/lib/AlchemyContext.d.ts +1 -1
  65. package/lib/Apply.d.ts.map +1 -1
  66. package/lib/Apply.js +228 -4
  67. package/lib/Apply.js.map +1 -1
  68. package/lib/Artifacts.d.ts +1 -1
  69. package/lib/Artifacts.d.ts.map +1 -1
  70. package/lib/Artifacts.js +1 -1
  71. package/lib/Artifacts.js.map +1 -1
  72. package/lib/Auth/AuthProvider.js +1 -1
  73. package/lib/Auth/AuthProvider.js.map +1 -1
  74. package/lib/Auth/Env.d.ts.map +1 -1
  75. package/lib/Auth/Env.js +4 -12
  76. package/lib/Auth/Env.js.map +1 -1
  77. package/lib/Binding.d.ts.map +1 -1
  78. package/lib/Binding.js +5 -5
  79. package/lib/Binding.js.map +1 -1
  80. package/lib/Build/Command.d.ts +1 -1
  81. package/lib/Build/Memo.d.ts +1 -1
  82. package/lib/Bundle/Docker.d.ts +3 -3
  83. package/lib/Bundle/Docker.js +1 -1
  84. package/lib/Bundle/Docker.js.map +1 -1
  85. package/lib/Bundle/TempRoot.d.ts +3 -3
  86. package/lib/Cli/Event.d.ts +1 -1
  87. package/lib/Cli/Event.d.ts.map +1 -1
  88. package/lib/Cli/NamespaceTree.d.ts +11 -5
  89. package/lib/Cli/NamespaceTree.d.ts.map +1 -1
  90. package/lib/Cli/NamespaceTree.js +28 -1
  91. package/lib/Cli/NamespaceTree.js.map +1 -1
  92. package/lib/Cli/commands/_shared.d.ts +1 -1
  93. package/lib/Cli/commands/_shared.js +2 -2
  94. package/lib/Cli/commands/_shared.js.map +1 -1
  95. package/lib/Cli/commands/aws.d.ts +1 -1
  96. package/lib/Cli/commands/cloudflare.d.ts +2 -2
  97. package/lib/Cli/commands/cloudflare.d.ts.map +1 -1
  98. package/lib/Cli/commands/deploy.d.ts +9 -9
  99. package/lib/Cli/commands/deploy.js +1 -1
  100. package/lib/Cli/commands/deploy.js.map +1 -1
  101. package/lib/Cli/commands/login.d.ts +1 -1
  102. package/lib/Cli/commands/logs.d.ts +1 -1
  103. package/lib/Cli/commands/logs.js.map +1 -1
  104. package/lib/Cli/commands/profile.d.ts +1 -3
  105. package/lib/Cli/commands/profile.d.ts.map +1 -1
  106. package/lib/Cli/commands/state.d.ts +1 -1
  107. package/lib/Cli/commands/state.d.ts.map +1 -1
  108. package/lib/Cli/commands/tail.d.ts +1 -1
  109. package/lib/Cli/commands/tail.js.map +1 -1
  110. package/lib/Cli/tui/components/Plan.d.ts.map +1 -1
  111. package/lib/Cli/tui/components/Plan.js +27 -13
  112. package/lib/Cli/tui/components/Plan.js.map +1 -1
  113. package/lib/Cli/tui/components/PlanProgress.d.ts +8 -1
  114. package/lib/Cli/tui/components/PlanProgress.d.ts.map +1 -1
  115. package/lib/Cli/tui/components/PlanProgress.js +95 -16
  116. package/lib/Cli/tui/components/PlanProgress.js.map +1 -1
  117. package/lib/Cloudflare/Access.js +0 -1
  118. package/lib/Cloudflare/Access.js.map +1 -1
  119. package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDataset.d.ts +54 -0
  120. package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDataset.d.ts.map +1 -0
  121. package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDataset.js +17 -0
  122. package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDataset.js.map +1 -0
  123. package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDatasetBinding.d.ts +37 -0
  124. package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDatasetBinding.d.ts.map +1 -0
  125. package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDatasetBinding.js +45 -0
  126. package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDatasetBinding.js.map +1 -0
  127. package/lib/Cloudflare/AnalyticsEngine/index.d.ts +3 -0
  128. package/lib/Cloudflare/AnalyticsEngine/index.d.ts.map +1 -0
  129. package/lib/Cloudflare/AnalyticsEngine/index.js +3 -0
  130. package/lib/Cloudflare/AnalyticsEngine/index.js.map +1 -0
  131. package/lib/Cloudflare/Artifacts/ArtifactsBinding.js +1 -1
  132. package/lib/Cloudflare/Artifacts/ArtifactsBinding.js.map +1 -1
  133. package/lib/Cloudflare/CloudflareEnvironment.d.ts +1 -1
  134. package/lib/Cloudflare/Container/Container.js +0 -1
  135. package/lib/Cloudflare/Container/Container.js.map +1 -1
  136. package/lib/Cloudflare/Container/ContainerApplication.d.ts +1 -1
  137. package/lib/Cloudflare/Container/ContainerApplication.d.ts.map +1 -1
  138. package/lib/Cloudflare/Container/ContainerApplication.js +4 -6
  139. package/lib/Cloudflare/Container/ContainerApplication.js.map +1 -1
  140. package/lib/Cloudflare/Container/ContainerBinding.js +2 -2
  141. package/lib/Cloudflare/Container/ContainerBinding.js.map +1 -1
  142. package/lib/Cloudflare/D1/D1Connection.d.ts +47 -3
  143. package/lib/Cloudflare/D1/D1Connection.d.ts.map +1 -1
  144. package/lib/Cloudflare/D1/D1Connection.js +62 -5
  145. package/lib/Cloudflare/D1/D1Connection.js.map +1 -1
  146. package/lib/Cloudflare/D1/D1Database.d.ts +1 -1
  147. package/lib/Cloudflare/D1/D1SqlFile.d.ts +2 -2
  148. package/lib/Cloudflare/Email/EmailAddress.d.ts +45 -0
  149. package/lib/Cloudflare/Email/EmailAddress.d.ts.map +1 -0
  150. package/lib/Cloudflare/Email/EmailAddress.js +99 -0
  151. package/lib/Cloudflare/Email/EmailAddress.js.map +1 -0
  152. package/lib/Cloudflare/Email/EmailRouting.d.ts +42 -0
  153. package/lib/Cloudflare/Email/EmailRouting.d.ts.map +1 -0
  154. package/lib/Cloudflare/Email/EmailRouting.js +89 -0
  155. package/lib/Cloudflare/Email/EmailRouting.js.map +1 -0
  156. package/lib/Cloudflare/Email/EmailRule.d.ts +80 -0
  157. package/lib/Cloudflare/Email/EmailRule.d.ts.map +1 -0
  158. package/lib/Cloudflare/Email/EmailRule.js +110 -0
  159. package/lib/Cloudflare/Email/EmailRule.js.map +1 -0
  160. package/lib/Cloudflare/Email/SendEmail.d.ts +74 -0
  161. package/lib/Cloudflare/Email/SendEmail.d.ts.map +1 -0
  162. package/lib/Cloudflare/Email/SendEmail.js +19 -0
  163. package/lib/Cloudflare/Email/SendEmail.js.map +1 -0
  164. package/lib/Cloudflare/Email/SendEmailBinding.d.ts +64 -0
  165. package/lib/Cloudflare/Email/SendEmailBinding.d.ts.map +1 -0
  166. package/lib/Cloudflare/Email/SendEmailBinding.js +54 -0
  167. package/lib/Cloudflare/Email/SendEmailBinding.js.map +1 -0
  168. package/lib/Cloudflare/Email/index.d.ts +6 -0
  169. package/lib/Cloudflare/Email/index.d.ts.map +1 -0
  170. package/lib/Cloudflare/Email/index.js +6 -0
  171. package/lib/Cloudflare/Email/index.js.map +1 -0
  172. package/lib/Cloudflare/Hyperdrive/Hyperdrive.d.ts +1 -1
  173. package/lib/Cloudflare/Images/ImagesBinding.js +1 -1
  174. package/lib/Cloudflare/Images/ImagesBinding.js.map +1 -1
  175. package/lib/Cloudflare/KV/KVNamespaceBinding.js +1 -1
  176. package/lib/Cloudflare/KV/KVNamespaceBinding.js.map +1 -1
  177. package/lib/Cloudflare/Local/Sidecar.d.ts +1 -1
  178. package/lib/Cloudflare/Local/SidecarHandlers.d.ts +1 -1
  179. package/lib/Cloudflare/Local/SidecarHandlers.js +9 -1
  180. package/lib/Cloudflare/Local/SidecarHandlers.js.map +1 -1
  181. package/lib/Cloudflare/Local/SidecarServer.js +1 -1
  182. package/lib/Cloudflare/Local/SidecarServer.js.map +1 -1
  183. package/lib/Cloudflare/Providers.d.ts.map +1 -1
  184. package/lib/Cloudflare/Providers.js +9 -1
  185. package/lib/Cloudflare/Providers.js.map +1 -1
  186. package/lib/Cloudflare/Queue/QueueBinding.js +1 -1
  187. package/lib/Cloudflare/Queue/QueueBinding.js.map +1 -1
  188. package/lib/Cloudflare/R2/R2Bucket.d.ts.map +1 -1
  189. package/lib/Cloudflare/R2/R2Bucket.js +16 -0
  190. package/lib/Cloudflare/R2/R2Bucket.js.map +1 -1
  191. package/lib/Cloudflare/R2/R2BucketBinding.js +1 -1
  192. package/lib/Cloudflare/R2/R2BucketBinding.js.map +1 -1
  193. package/lib/Cloudflare/SecretsStore/SecretBinding.js +1 -1
  194. package/lib/Cloudflare/SecretsStore/SecretBinding.js.map +1 -1
  195. package/lib/Cloudflare/StateStore/Api.d.ts +7 -2
  196. package/lib/Cloudflare/StateStore/Api.d.ts.map +1 -1
  197. package/lib/Cloudflare/StateStore/Api.js +23 -1
  198. package/lib/Cloudflare/StateStore/Api.js.map +1 -1
  199. package/lib/Cloudflare/StateStore/State.d.ts +2 -2
  200. package/lib/Cloudflare/StateStore/Store.d.ts +16 -1
  201. package/lib/Cloudflare/StateStore/Store.d.ts.map +1 -1
  202. package/lib/Cloudflare/StateStore/Store.js +22 -5
  203. package/lib/Cloudflare/StateStore/Store.js.map +1 -1
  204. package/lib/Cloudflare/Workers/Assets.d.ts +2 -2
  205. package/lib/Cloudflare/Workers/Assets.d.ts.map +1 -1
  206. package/lib/Cloudflare/Workers/Assets.js +5 -4
  207. package/lib/Cloudflare/Workers/Assets.js.map +1 -1
  208. package/lib/Cloudflare/Workers/CronEventSource.d.ts +35 -0
  209. package/lib/Cloudflare/Workers/CronEventSource.d.ts.map +1 -0
  210. package/lib/Cloudflare/Workers/CronEventSource.js +55 -0
  211. package/lib/Cloudflare/Workers/CronEventSource.js.map +1 -0
  212. package/lib/Cloudflare/Workers/InferEnv.d.ts +37 -2
  213. package/lib/Cloudflare/Workers/InferEnv.d.ts.map +1 -1
  214. package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts.map +1 -1
  215. package/lib/Cloudflare/Workers/LocalWorkerProvider.js +2 -1
  216. package/lib/Cloudflare/Workers/LocalWorkerProvider.js.map +1 -1
  217. package/lib/Cloudflare/Workers/Rpc.d.ts +76 -3
  218. package/lib/Cloudflare/Workers/Rpc.d.ts.map +1 -1
  219. package/lib/Cloudflare/Workers/Rpc.js +197 -13
  220. package/lib/Cloudflare/Workers/Rpc.js.map +1 -1
  221. package/lib/Cloudflare/Workers/Worker.d.ts +24 -4
  222. package/lib/Cloudflare/Workers/Worker.d.ts.map +1 -1
  223. package/lib/Cloudflare/Workers/Worker.js +187 -45
  224. package/lib/Cloudflare/Workers/Worker.js.map +1 -1
  225. package/lib/Cloudflare/Workers/WorkerBundle.d.ts +1 -1
  226. package/lib/Cloudflare/Workers/WorkerBundle.d.ts.map +1 -1
  227. package/lib/Cloudflare/Workers/WorkerBundle.js +19 -11
  228. package/lib/Cloudflare/Workers/WorkerBundle.js.map +1 -1
  229. package/lib/Cloudflare/Workers/WorkerName.d.ts +1 -1
  230. package/lib/Cloudflare/Workers/Workflow.d.ts +50 -47
  231. package/lib/Cloudflare/Workers/Workflow.d.ts.map +1 -1
  232. package/lib/Cloudflare/Workers/Workflow.js +43 -37
  233. package/lib/Cloudflare/Workers/Workflow.js.map +1 -1
  234. package/lib/Cloudflare/Workers/index.d.ts +1 -0
  235. package/lib/Cloudflare/Workers/index.d.ts.map +1 -1
  236. package/lib/Cloudflare/Workers/index.js +1 -0
  237. package/lib/Cloudflare/Workers/index.js.map +1 -1
  238. package/lib/Cloudflare/index.d.ts +2 -0
  239. package/lib/Cloudflare/index.d.ts.map +1 -1
  240. package/lib/Cloudflare/index.js +2 -0
  241. package/lib/Cloudflare/index.js.map +1 -1
  242. package/lib/Construct.d.ts +3 -3
  243. package/lib/Construct.d.ts.map +1 -1
  244. package/lib/Construct.js.map +1 -1
  245. package/lib/Deploy.d.ts +5 -2
  246. package/lib/Deploy.d.ts.map +1 -1
  247. package/lib/Deploy.js +2 -2
  248. package/lib/Deploy.js.map +1 -1
  249. package/lib/Destroy.d.ts +5 -2
  250. package/lib/Destroy.d.ts.map +1 -1
  251. package/lib/Destroy.js +3 -2
  252. package/lib/Destroy.js.map +1 -1
  253. package/lib/Drizzle/Providers.d.ts +1 -1
  254. package/lib/Drizzle/Schema.d.ts +1 -1
  255. package/lib/GitHub/Providers.d.ts +1 -1
  256. package/lib/Http.d.ts +1 -1
  257. package/lib/Http.d.ts.map +1 -1
  258. package/lib/Http.js +1 -1
  259. package/lib/Http.js.map +1 -1
  260. package/lib/Namespace.d.ts.map +1 -1
  261. package/lib/Namespace.js +3 -4
  262. package/lib/Namespace.js.map +1 -1
  263. package/lib/Neon/Branch.d.ts +2 -2
  264. package/lib/Neon/Branch.d.ts.map +1 -1
  265. package/lib/Neon/Branch.js +59 -27
  266. package/lib/Neon/Branch.js.map +1 -1
  267. package/lib/Neon/Credentials.d.ts +2 -2
  268. package/lib/Neon/Credentials.d.ts.map +1 -1
  269. package/lib/Neon/Credentials.js +2 -2
  270. package/lib/Neon/Credentials.js.map +1 -1
  271. package/lib/Neon/NeonEnvironment.d.ts +1 -1
  272. package/lib/Neon/Project.d.ts +25 -1
  273. package/lib/Neon/Project.d.ts.map +1 -1
  274. package/lib/Neon/Project.js +121 -42
  275. package/lib/Neon/Project.js.map +1 -1
  276. package/lib/Neon/Providers.d.ts +1 -1
  277. package/lib/Neon/SqlFile.d.ts +2 -2
  278. package/lib/Output.d.ts +47 -8
  279. package/lib/Output.d.ts.map +1 -1
  280. package/lib/Output.js +106 -7
  281. package/lib/Output.js.map +1 -1
  282. package/lib/PhysicalName.d.ts +1 -1
  283. package/lib/Plan.d.ts +36 -1
  284. package/lib/Plan.d.ts.map +1 -1
  285. package/lib/Plan.js +284 -37
  286. package/lib/Plan.js.map +1 -1
  287. package/lib/Platform.d.ts.map +1 -1
  288. package/lib/Platform.js +22 -9
  289. package/lib/Platform.js.map +1 -1
  290. package/lib/Provider.d.ts +1 -1
  291. package/lib/Provider.d.ts.map +1 -1
  292. package/lib/Provider.js +1 -1
  293. package/lib/Provider.js.map +1 -1
  294. package/lib/Random.d.ts +1 -1
  295. package/lib/Random.d.ts.map +1 -1
  296. package/lib/Random.js +1 -1
  297. package/lib/Random.js.map +1 -1
  298. package/lib/Ref.d.ts +4 -1
  299. package/lib/Ref.d.ts.map +1 -1
  300. package/lib/Ref.js +1 -1
  301. package/lib/Ref.js.map +1 -1
  302. package/lib/Resource.d.ts +8 -0
  303. package/lib/Resource.d.ts.map +1 -1
  304. package/lib/Resource.js +12 -25
  305. package/lib/Resource.js.map +1 -1
  306. package/lib/Runtime.d.ts +24 -0
  307. package/lib/Runtime.d.ts.map +1 -0
  308. package/lib/Runtime.js +31 -0
  309. package/lib/Runtime.js.map +1 -0
  310. package/lib/RuntimeContext.d.ts +3 -1
  311. package/lib/RuntimeContext.d.ts.map +1 -1
  312. package/lib/RuntimeContext.js.map +1 -1
  313. package/lib/Secret.d.ts +50 -0
  314. package/lib/Secret.d.ts.map +1 -0
  315. package/lib/Secret.js +23 -0
  316. package/lib/Secret.js.map +1 -0
  317. package/lib/Serverless/Function.d.ts +9 -1
  318. package/lib/Serverless/Function.d.ts.map +1 -1
  319. package/lib/Sidecar/RpcClient.d.ts +1 -1
  320. package/lib/Sidecar/RpcPaths.d.ts +1 -1
  321. package/lib/Sidecar/RpcServer.d.ts +1 -1
  322. package/lib/Sidecar/RpcServices.d.ts +1 -1
  323. package/lib/Stack.d.ts +20 -6
  324. package/lib/Stack.d.ts.map +1 -1
  325. package/lib/Stack.js +35 -23
  326. package/lib/Stack.js.map +1 -1
  327. package/lib/State/ActionState.d.ts +48 -0
  328. package/lib/State/ActionState.d.ts.map +1 -0
  329. package/lib/State/ActionState.js +1 -0
  330. package/lib/State/ActionState.js.map +1 -0
  331. package/lib/State/HttpStateApi.d.ts +15 -1
  332. package/lib/State/HttpStateApi.d.ts.map +1 -1
  333. package/lib/State/HttpStateApi.js +11 -0
  334. package/lib/State/HttpStateApi.js.map +1 -1
  335. package/lib/State/HttpStateStore.d.ts.map +1 -1
  336. package/lib/State/HttpStateStore.js +12 -1
  337. package/lib/State/HttpStateStore.js.map +1 -1
  338. package/lib/State/InMemoryState.d.ts +2 -2
  339. package/lib/State/InMemoryState.d.ts.map +1 -1
  340. package/lib/State/InMemoryState.js +12 -6
  341. package/lib/State/InMemoryState.js.map +1 -1
  342. package/lib/State/LocalState.d.ts +2 -2
  343. package/lib/State/LocalState.d.ts.map +1 -1
  344. package/lib/State/LocalState.js +11 -2
  345. package/lib/State/LocalState.js.map +1 -1
  346. package/lib/State/ResourceState.d.ts +5 -0
  347. package/lib/State/ResourceState.d.ts.map +1 -1
  348. package/lib/State/State.d.ts +31 -2
  349. package/lib/State/State.d.ts.map +1 -1
  350. package/lib/State/State.js +2 -0
  351. package/lib/State/State.js.map +1 -1
  352. package/lib/State/index.d.ts +1 -0
  353. package/lib/State/index.d.ts.map +1 -1
  354. package/lib/State/index.js +1 -0
  355. package/lib/State/index.js.map +1 -1
  356. package/lib/Test/Bun.d.ts.map +1 -1
  357. package/lib/Test/Bun.js +30 -7
  358. package/lib/Test/Bun.js.map +1 -1
  359. package/lib/Test/Core.d.ts +19 -4
  360. package/lib/Test/Core.d.ts.map +1 -1
  361. package/lib/Test/Core.js +33 -12
  362. package/lib/Test/Core.js.map +1 -1
  363. package/lib/Test/Vitest.d.ts.map +1 -1
  364. package/lib/Test/Vitest.js +24 -5
  365. package/lib/Test/Vitest.js.map +1 -1
  366. package/lib/Util/FileLogger.d.ts +1 -1
  367. package/lib/Util/LocalhostDns.d.ts +14 -10
  368. package/lib/Util/LocalhostDns.d.ts.map +1 -1
  369. package/lib/Util/LocalhostDns.js +27 -36
  370. package/lib/Util/LocalhostDns.js.map +1 -1
  371. package/lib/Util/effect.d.ts +7 -0
  372. package/lib/Util/effect.d.ts.map +1 -1
  373. package/lib/Util/effect.js +10 -4
  374. package/lib/Util/effect.js.map +1 -1
  375. package/lib/Util/exec.d.ts.map +1 -0
  376. package/lib/Util/exec.js.map +1 -0
  377. package/lib/Util/hash.d.ts +8 -0
  378. package/lib/Util/hash.d.ts.map +1 -0
  379. package/lib/Util/hash.js +11 -0
  380. package/lib/Util/hash.js.map +1 -0
  381. package/lib/Util/ignore.d.ts +40 -0
  382. package/lib/Util/ignore.d.ts.map +1 -0
  383. package/lib/Util/ignore.js +591 -0
  384. package/lib/Util/ignore.js.map +1 -0
  385. package/lib/Variable.d.ts +29 -0
  386. package/lib/Variable.d.ts.map +1 -0
  387. package/lib/Variable.js +9 -0
  388. package/lib/Variable.js.map +1 -0
  389. package/lib/index.d.ts +4 -0
  390. package/lib/index.d.ts.map +1 -1
  391. package/lib/index.js +4 -0
  392. package/lib/index.js.map +1 -1
  393. package/lib/tsconfig.test.tsbuildinfo +1 -1
  394. package/package.json +22 -29
  395. package/src/AWS/Credentials.ts +1 -2
  396. package/src/AWS/DynamoDB/Stream.ts +1 -4
  397. package/src/AWS/EC2/hosted.ts +14 -16
  398. package/src/AWS/ECS/Task.ts +14 -16
  399. package/src/AWS/Endpoint.ts +2 -5
  400. package/src/AWS/EventBridge/EventSource.ts +1 -4
  401. package/src/AWS/Kinesis/StreamEventSource.ts +1 -4
  402. package/src/AWS/Lambda/Function.ts +47 -23
  403. package/src/AWS/Providers.ts +22 -3
  404. package/src/AWS/Region.ts +2 -3
  405. package/src/AWS/S3/Bucket.ts +7 -2
  406. package/src/AWS/S3/BucketNotifications.ts +1 -4
  407. package/src/AWS/SNS/TopicEventSource.ts +1 -4
  408. package/src/AWS/SQS/Queue.ts +40 -6
  409. package/src/Action.ts +280 -0
  410. package/src/Apply.ts +359 -24
  411. package/src/Artifacts.ts +2 -4
  412. package/src/Auth/AuthProvider.ts +1 -1
  413. package/src/Auth/Env.ts +12 -20
  414. package/src/Binding.ts +5 -9
  415. package/src/Bundle/Docker.ts +1 -1
  416. package/src/Cli/Event.ts +4 -0
  417. package/src/Cli/NamespaceTree.ts +52 -5
  418. package/src/Cli/commands/_shared.ts +2 -2
  419. package/src/Cli/commands/deploy.ts +1 -1
  420. package/src/Cli/commands/logs.ts +4 -4
  421. package/src/Cli/commands/tail.ts +4 -4
  422. package/src/Cli/tui/components/Plan.tsx +65 -17
  423. package/src/Cli/tui/components/PlanProgress.tsx +142 -32
  424. package/src/Cloudflare/Access.ts +1 -1
  425. package/src/Cloudflare/AnalyticsEngine/AnalyticsEngineDataset.ts +82 -0
  426. package/src/Cloudflare/AnalyticsEngine/AnalyticsEngineDatasetBinding.ts +106 -0
  427. package/src/Cloudflare/AnalyticsEngine/index.ts +2 -0
  428. package/src/Cloudflare/Artifacts/ArtifactsBinding.ts +1 -1
  429. package/src/Cloudflare/Container/Container.ts +1 -1
  430. package/src/Cloudflare/Container/ContainerApplication.ts +4 -6
  431. package/src/Cloudflare/Container/ContainerBinding.ts +2 -2
  432. package/src/Cloudflare/D1/D1Connection.ts +95 -12
  433. package/src/Cloudflare/Email/EmailAddress.ts +155 -0
  434. package/src/Cloudflare/Email/EmailRouting.ts +138 -0
  435. package/src/Cloudflare/Email/EmailRule.ts +210 -0
  436. package/src/Cloudflare/Email/SendEmail.ts +95 -0
  437. package/src/Cloudflare/Email/SendEmailBinding.ts +124 -0
  438. package/src/Cloudflare/Email/index.ts +5 -0
  439. package/src/Cloudflare/Images/ImagesBinding.ts +1 -1
  440. package/src/Cloudflare/KV/KVNamespaceBinding.ts +1 -1
  441. package/src/Cloudflare/Local/SidecarHandlers.ts +9 -1
  442. package/src/Cloudflare/Local/SidecarServer.ts +1 -1
  443. package/src/Cloudflare/Providers.ts +14 -0
  444. package/src/Cloudflare/Queue/QueueBinding.ts +1 -1
  445. package/src/Cloudflare/R2/R2Bucket.ts +31 -0
  446. package/src/Cloudflare/R2/R2BucketBinding.ts +1 -1
  447. package/src/Cloudflare/SecretsStore/SecretBinding.ts +1 -1
  448. package/src/Cloudflare/StateStore/Api.ts +34 -1
  449. package/src/Cloudflare/StateStore/Store.ts +40 -10
  450. package/src/Cloudflare/Workers/Assets.ts +5 -6
  451. package/src/Cloudflare/Workers/CronEventSource.ts +89 -0
  452. package/src/Cloudflare/Workers/InferEnv.ts +94 -20
  453. package/src/Cloudflare/Workers/LocalWorkerProvider.ts +9 -1
  454. package/src/Cloudflare/Workers/Rpc.ts +227 -18
  455. package/src/Cloudflare/Workers/Worker.ts +294 -65
  456. package/src/Cloudflare/Workers/WorkerBundle.ts +19 -11
  457. package/src/Cloudflare/Workers/Workflow.ts +76 -72
  458. package/src/Cloudflare/Workers/index.ts +1 -0
  459. package/src/Cloudflare/index.ts +2 -0
  460. package/src/Construct.ts +3 -7
  461. package/src/Deploy.ts +5 -1
  462. package/src/Destroy.ts +6 -1
  463. package/src/Http.ts +1 -1
  464. package/src/Namespace.ts +4 -4
  465. package/src/Neon/Branch.ts +93 -59
  466. package/src/Neon/Credentials.ts +2 -2
  467. package/src/Neon/Project.ts +193 -64
  468. package/src/Output.ts +129 -18
  469. package/src/Plan.ts +375 -36
  470. package/src/Platform.ts +26 -11
  471. package/src/Provider.ts +8 -3
  472. package/src/Random.ts +1 -1
  473. package/src/Ref.ts +10 -5
  474. package/src/Resource.ts +24 -25
  475. package/src/Runtime.ts +38 -0
  476. package/src/RuntimeContext.ts +1 -0
  477. package/src/Secret.ts +87 -0
  478. package/src/Serverless/Function.ts +10 -1
  479. package/src/Stack.ts +62 -35
  480. package/src/State/ActionState.ts +51 -0
  481. package/src/State/HttpStateApi.ts +21 -0
  482. package/src/State/HttpStateStore.ts +27 -2
  483. package/src/State/InMemoryState.ts +31 -10
  484. package/src/State/LocalState.ts +28 -4
  485. package/src/State/ResourceState.ts +5 -0
  486. package/src/State/State.ts +38 -2
  487. package/src/State/index.ts +1 -0
  488. package/src/Test/Bun.ts +43 -7
  489. package/src/Test/Core.ts +33 -11
  490. package/src/Test/Vitest.ts +33 -4
  491. package/src/Util/LocalhostDns.ts +30 -36
  492. package/src/Util/effect.ts +29 -4
  493. package/src/Util/hash.ts +14 -0
  494. package/src/Util/ignore.ts +815 -0
  495. package/src/Variable.ts +44 -0
  496. package/src/index.ts +9 -0
  497. package/lib/Agent/Agent.d.ts +0 -9
  498. package/lib/Agent/Agent.d.ts.map +0 -1
  499. package/lib/Agent/Agent.js +0 -10
  500. package/lib/Agent/Agent.js.map +0 -1
  501. package/lib/Agent/Aspect.d.ts +0 -51
  502. package/lib/Agent/Aspect.d.ts.map +0 -1
  503. package/lib/Agent/Aspect.js +0 -45
  504. package/lib/Agent/Aspect.js.map +0 -1
  505. package/lib/Agent/AspectGraph.d.ts +0 -45
  506. package/lib/Agent/AspectGraph.d.ts.map +0 -1
  507. package/lib/Agent/AspectGraph.js +0 -39
  508. package/lib/Agent/AspectGraph.js.map +0 -1
  509. package/lib/Agent/ContextPlugin.d.ts +0 -8
  510. package/lib/Agent/ContextPlugin.d.ts.map +0 -1
  511. package/lib/Agent/ContextPlugin.js +0 -3
  512. package/lib/Agent/ContextPlugin.js.map +0 -1
  513. package/lib/Agent/Plugin.d.ts +0 -18
  514. package/lib/Agent/Plugin.d.ts.map +0 -1
  515. package/lib/Agent/Plugin.js +0 -8
  516. package/lib/Agent/Plugin.js.map +0 -1
  517. package/lib/Agent/chat/channel.d.ts +0 -9
  518. package/lib/Agent/chat/channel.d.ts.map +0 -1
  519. package/lib/Agent/chat/channel.js +0 -10
  520. package/lib/Agent/chat/channel.js.map +0 -1
  521. package/lib/Agent/chat/event.d.ts +0 -32
  522. package/lib/Agent/chat/event.d.ts.map +0 -1
  523. package/lib/Agent/chat/event.js +0 -32
  524. package/lib/Agent/chat/event.js.map +0 -1
  525. package/lib/Agent/chat/message.d.ts +0 -22
  526. package/lib/Agent/chat/message.d.ts.map +0 -1
  527. package/lib/Agent/chat/message.js +0 -31
  528. package/lib/Agent/chat/message.js.map +0 -1
  529. package/lib/Agent/chat/service.d.ts +0 -102
  530. package/lib/Agent/chat/service.d.ts.map +0 -1
  531. package/lib/Agent/chat/service.js +0 -79
  532. package/lib/Agent/chat/service.js.map +0 -1
  533. package/lib/Agent/chat/thread.d.ts +0 -13
  534. package/lib/Agent/chat/thread.d.ts.map +0 -1
  535. package/lib/Agent/chat/thread.js +0 -16
  536. package/lib/Agent/chat/thread.js.map +0 -1
  537. package/lib/Agent/coding/bash.d.ts +0 -36
  538. package/lib/Agent/coding/bash.d.ts.map +0 -1
  539. package/lib/Agent/coding/bash.js +0 -170
  540. package/lib/Agent/coding/bash.js.map +0 -1
  541. package/lib/Agent/coding/edit.d.ts +0 -31
  542. package/lib/Agent/coding/edit.d.ts.map +0 -1
  543. package/lib/Agent/coding/edit.js +0 -90
  544. package/lib/Agent/coding/edit.js.map +0 -1
  545. package/lib/Agent/coding/glob.d.ts +0 -23
  546. package/lib/Agent/coding/glob.d.ts.map +0 -1
  547. package/lib/Agent/coding/glob.js +0 -78
  548. package/lib/Agent/coding/glob.js.map +0 -1
  549. package/lib/Agent/coding/grep.d.ts +0 -26
  550. package/lib/Agent/coding/grep.d.ts.map +0 -1
  551. package/lib/Agent/coding/grep.js +0 -105
  552. package/lib/Agent/coding/grep.js.map +0 -1
  553. package/lib/Agent/coding/index.d.ts +0 -8
  554. package/lib/Agent/coding/index.d.ts.map +0 -1
  555. package/lib/Agent/coding/index.js +0 -8
  556. package/lib/Agent/coding/index.js.map +0 -1
  557. package/lib/Agent/coding/read.d.ts +0 -27
  558. package/lib/Agent/coding/read.d.ts.map +0 -1
  559. package/lib/Agent/coding/read.js +0 -89
  560. package/lib/Agent/coding/read.js.map +0 -1
  561. package/lib/Agent/coding/readlints.d.ts +0 -19
  562. package/lib/Agent/coding/readlints.d.ts.map +0 -1
  563. package/lib/Agent/coding/readlints.js +0 -53
  564. package/lib/Agent/coding/readlints.js.map +0 -1
  565. package/lib/Agent/coding/write.d.ts +0 -22
  566. package/lib/Agent/coding/write.d.ts.map +0 -1
  567. package/lib/Agent/coding/write.js +0 -53
  568. package/lib/Agent/coding/write.js.map +0 -1
  569. package/lib/Agent/fs/file.d.ts +0 -12
  570. package/lib/Agent/fs/file.d.ts.map +0 -1
  571. package/lib/Agent/fs/file.js +0 -8
  572. package/lib/Agent/fs/file.js.map +0 -1
  573. package/lib/Agent/fs/folder.d.ts +0 -5
  574. package/lib/Agent/fs/folder.d.ts.map +0 -1
  575. package/lib/Agent/fs/folder.js +0 -3
  576. package/lib/Agent/fs/folder.js.map +0 -1
  577. package/lib/Agent/index.d.ts +0 -9
  578. package/lib/Agent/index.d.ts.map +0 -1
  579. package/lib/Agent/index.js +0 -9
  580. package/lib/Agent/index.js.map +0 -1
  581. package/lib/Agent/llm/error.d.ts +0 -208
  582. package/lib/Agent/llm/error.d.ts.map +0 -1
  583. package/lib/Agent/llm/error.js +0 -209
  584. package/lib/Agent/llm/error.js.map +0 -1
  585. package/lib/Agent/llm/index.d.ts +0 -5
  586. package/lib/Agent/llm/index.d.ts.map +0 -1
  587. package/lib/Agent/llm/index.js +0 -5
  588. package/lib/Agent/llm/index.js.map +0 -1
  589. package/lib/Agent/llm/llm.d.ts +0 -32
  590. package/lib/Agent/llm/llm.d.ts.map +0 -1
  591. package/lib/Agent/llm/llm.js +0 -74
  592. package/lib/Agent/llm/llm.js.map +0 -1
  593. package/lib/Agent/llm/stream-collectors.d.ts +0 -46
  594. package/lib/Agent/llm/stream-collectors.d.ts.map +0 -1
  595. package/lib/Agent/llm/stream-collectors.js +0 -33
  596. package/lib/Agent/llm/stream-collectors.js.map +0 -1
  597. package/lib/Agent/llm/stream-text-part.d.ts +0 -5
  598. package/lib/Agent/llm/stream-text-part.d.ts.map +0 -1
  599. package/lib/Agent/llm/stream-text-part.js +0 -4
  600. package/lib/Agent/llm/stream-text-part.js.map +0 -1
  601. package/lib/Agent/lsp/client.d.ts +0 -122
  602. package/lib/Agent/lsp/client.d.ts.map +0 -1
  603. package/lib/Agent/lsp/client.js +0 -180
  604. package/lib/Agent/lsp/client.js.map +0 -1
  605. package/lib/Agent/lsp/diagnostics.d.ts +0 -16
  606. package/lib/Agent/lsp/diagnostics.d.ts.map +0 -1
  607. package/lib/Agent/lsp/diagnostics.js +0 -48
  608. package/lib/Agent/lsp/diagnostics.js.map +0 -1
  609. package/lib/Agent/lsp/jsonrpc.d.ts +0 -90
  610. package/lib/Agent/lsp/jsonrpc.d.ts.map +0 -1
  611. package/lib/Agent/lsp/jsonrpc.js +0 -178
  612. package/lib/Agent/lsp/jsonrpc.js.map +0 -1
  613. package/lib/Agent/lsp/manager.d.ts +0 -38
  614. package/lib/Agent/lsp/manager.d.ts.map +0 -1
  615. package/lib/Agent/lsp/manager.js +0 -98
  616. package/lib/Agent/lsp/manager.js.map +0 -1
  617. package/lib/Agent/lsp/servers.d.ts +0 -28
  618. package/lib/Agent/lsp/servers.d.ts.map +0 -1
  619. package/lib/Agent/lsp/servers.js +0 -21
  620. package/lib/Agent/lsp/servers.js.map +0 -1
  621. package/lib/Agent/process/driver.d.ts +0 -10
  622. package/lib/Agent/process/driver.d.ts.map +0 -1
  623. package/lib/Agent/process/driver.js +0 -153
  624. package/lib/Agent/process/driver.js.map +0 -1
  625. package/lib/Agent/process/issue-service.d.ts +0 -44
  626. package/lib/Agent/process/issue-service.d.ts.map +0 -1
  627. package/lib/Agent/process/issue-service.js +0 -28
  628. package/lib/Agent/process/issue-service.js.map +0 -1
  629. package/lib/Agent/process/issue-tools.d.ts +0 -28
  630. package/lib/Agent/process/issue-tools.d.ts.map +0 -1
  631. package/lib/Agent/process/issue-tools.js +0 -28
  632. package/lib/Agent/process/issue-tools.js.map +0 -1
  633. package/lib/Agent/process/issue.d.ts +0 -16
  634. package/lib/Agent/process/issue.d.ts.map +0 -1
  635. package/lib/Agent/process/issue.js +0 -17
  636. package/lib/Agent/process/issue.js.map +0 -1
  637. package/lib/Agent/process/organization.d.ts +0 -4
  638. package/lib/Agent/process/organization.d.ts.map +0 -1
  639. package/lib/Agent/process/organization.js +0 -3
  640. package/lib/Agent/process/organization.js.map +0 -1
  641. package/lib/Agent/process/process.d.ts +0 -5
  642. package/lib/Agent/process/process.d.ts.map +0 -1
  643. package/lib/Agent/process/process.js +0 -3
  644. package/lib/Agent/process/process.js.map +0 -1
  645. package/lib/Agent/process/reply.d.ts +0 -16
  646. package/lib/Agent/process/reply.d.ts.map +0 -1
  647. package/lib/Agent/process/reply.js +0 -18
  648. package/lib/Agent/process/reply.js.map +0 -1
  649. package/lib/Agent/process/task.d.ts +0 -25
  650. package/lib/Agent/process/task.d.ts.map +0 -1
  651. package/lib/Agent/process/task.js +0 -26
  652. package/lib/Agent/process/task.js.map +0 -1
  653. package/lib/Agent/tool/index.d.ts +0 -4
  654. package/lib/Agent/tool/index.d.ts.map +0 -1
  655. package/lib/Agent/tool/index.js +0 -4
  656. package/lib/Agent/tool/index.js.map +0 -1
  657. package/lib/Agent/tool/parameter.d.ts +0 -12
  658. package/lib/Agent/tool/parameter.d.ts.map +0 -1
  659. package/lib/Agent/tool/parameter.js +0 -6
  660. package/lib/Agent/tool/parameter.js.map +0 -1
  661. package/lib/Agent/tool/result.d.ts +0 -17
  662. package/lib/Agent/tool/result.d.ts.map +0 -1
  663. package/lib/Agent/tool/result.js +0 -6
  664. package/lib/Agent/tool/result.js.map +0 -1
  665. package/lib/Agent/tool/tool.d.ts +0 -32
  666. package/lib/Agent/tool/tool.d.ts.map +0 -1
  667. package/lib/Agent/tool/tool.js +0 -16
  668. package/lib/Agent/tool/tool.js.map +0 -1
  669. package/lib/Agent/util/command-validator.d.ts +0 -12
  670. package/lib/Agent/util/command-validator.d.ts.map +0 -1
  671. package/lib/Agent/util/command-validator.js +0 -74
  672. package/lib/Agent/util/command-validator.js.map +0 -1
  673. package/lib/Agent/util/exec.d.ts.map +0 -1
  674. package/lib/Agent/util/exec.js.map +0 -1
  675. package/lib/Agent/util/parser.d.ts +0 -5
  676. package/lib/Agent/util/parser.d.ts.map +0 -1
  677. package/lib/Agent/util/parser.js +0 -41
  678. package/lib/Agent/util/parser.js.map +0 -1
  679. package/lib/Agent/util/replace.d.ts +0 -38
  680. package/lib/Agent/util/replace.d.ts.map +0 -1
  681. package/lib/Agent/util/replace.js +0 -458
  682. package/lib/Agent/util/replace.js.map +0 -1
  683. package/lib/Agent/util/ripgrep.d.ts +0 -109
  684. package/lib/Agent/util/ripgrep.d.ts.map +0 -1
  685. package/lib/Agent/util/ripgrep.js +0 -221
  686. package/lib/Agent/util/ripgrep.js.map +0 -1
  687. package/lib/Neon/api.d.ts +0 -258
  688. package/lib/Neon/api.d.ts.map +0 -1
  689. package/lib/Neon/api.js +0 -215
  690. package/lib/Neon/api.js.map +0 -1
  691. package/src/Agent/Agent.ts +0 -26
  692. package/src/Agent/Aspect.ts +0 -173
  693. package/src/Agent/AspectGraph.ts +0 -98
  694. package/src/Agent/ContextPlugin.ts +0 -18
  695. package/src/Agent/Plugin.ts +0 -29
  696. package/src/Agent/chat/channel.ts +0 -26
  697. package/src/Agent/chat/event.ts +0 -43
  698. package/src/Agent/chat/message.ts +0 -35
  699. package/src/Agent/chat/service.ts +0 -133
  700. package/src/Agent/chat/thread.ts +0 -17
  701. package/src/Agent/coding/bash.ts +0 -197
  702. package/src/Agent/coding/edit.ts +0 -152
  703. package/src/Agent/coding/glob.ts +0 -96
  704. package/src/Agent/coding/grep.ts +0 -143
  705. package/src/Agent/coding/index.ts +0 -7
  706. package/src/Agent/coding/read.ts +0 -119
  707. package/src/Agent/coding/readlints.ts +0 -78
  708. package/src/Agent/coding/write.ts +0 -79
  709. package/src/Agent/fs/file.ts +0 -22
  710. package/src/Agent/fs/folder.ts +0 -16
  711. package/src/Agent/index.ts +0 -9
  712. package/src/Agent/llm/error.ts +0 -330
  713. package/src/Agent/llm/index.ts +0 -4
  714. package/src/Agent/llm/llm.ts +0 -131
  715. package/src/Agent/llm/stream-collectors.ts +0 -58
  716. package/src/Agent/llm/stream-text-part.ts +0 -7
  717. package/src/Agent/lsp/client.ts +0 -293
  718. package/src/Agent/lsp/diagnostics.ts +0 -64
  719. package/src/Agent/lsp/jsonrpc.ts +0 -317
  720. package/src/Agent/lsp/manager.ts +0 -213
  721. package/src/Agent/lsp/servers.ts +0 -37
  722. package/src/Agent/process/driver.ts +0 -168
  723. package/src/Agent/process/issue-service.ts +0 -48
  724. package/src/Agent/process/issue-tools.ts +0 -33
  725. package/src/Agent/process/issue.ts +0 -22
  726. package/src/Agent/process/organization.ts +0 -16
  727. package/src/Agent/process/process.ts +0 -16
  728. package/src/Agent/process/reply.ts +0 -21
  729. package/src/Agent/process/task.ts +0 -34
  730. package/src/Agent/tool/index.ts +0 -3
  731. package/src/Agent/tool/parameter.ts +0 -35
  732. package/src/Agent/tool/result.ts +0 -51
  733. package/src/Agent/tool/tool.ts +0 -74
  734. package/src/Agent/util/command-validator.ts +0 -98
  735. package/src/Agent/util/parser.ts +0 -39
  736. package/src/Agent/util/replace.ts +0 -559
  737. package/src/Agent/util/ripgrep.ts +0 -256
  738. package/src/Neon/api.ts +0 -579
  739. /package/lib/{Agent/util → Util}/exec.d.ts +0 -0
  740. /package/lib/{Agent/util → Util}/exec.js +0 -0
  741. /package/src/{Agent/util → Util}/exec.ts +0 -0
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "alchemy",
3
- "version": "2.0.0-beta.36",
3
+ "version": "2.0.0-beta.38",
4
4
  "homepage": "https://alchemy.run",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Sam Goodwin <sam@alchemy.run>",
7
7
  "repository": {
8
8
  "type": "git",
9
9
  "url": "git+https://github.com/alchemy-run/alchemy-effect.git",
10
- "directory": "package/alchemy"
10
+ "directory": "packages/alchemy"
11
11
  },
12
12
  "bin": {
13
13
  "alchemy": "./bin/cli.js"
@@ -40,12 +40,6 @@
40
40
  "worker": "./src/*.ts",
41
41
  "import": "./lib/*.js"
42
42
  },
43
- "./Agent": {
44
- "types": "./lib/Agent/index.d.ts",
45
- "bun": "./src/Agent/index.ts",
46
- "worker": "./src/Agent/index.ts",
47
- "import": "./lib/Agent/index.js"
48
- },
49
43
  "./Auth": {
50
44
  "types": "./lib/Auth/index.d.ts",
51
45
  "bun": "./src/Auth/index.ts",
@@ -196,6 +190,12 @@
196
190
  "worker": "./src/Output.ts",
197
191
  "import": "./lib/Output.js"
198
192
  },
193
+ "./Runtime": {
194
+ "types": "./lib/Runtime.d.ts",
195
+ "bun": "./src/Runtime.ts",
196
+ "worker": "./src/Runtime.ts",
197
+ "import": "./lib/Runtime.js"
198
+ },
199
199
  "./Process": {
200
200
  "types": "./lib/Process/index.d.ts",
201
201
  "bun": "./src/Process/index.ts",
@@ -270,35 +270,29 @@
270
270
  "access": "public"
271
271
  },
272
272
  "dependencies": {
273
- "@ai-sdk/anthropic": "^3.0.31",
274
- "@ai-sdk/openai": "^3.0.23",
275
- "@ai-sdk/provider": "^3.0.8",
276
273
  "@aws-sdk/credential-providers": "^3.0.0",
277
274
  "@clack/prompts": "^0.11.0",
278
- "@distilled.cloud/aws": "^0.19.0",
279
- "@distilled.cloud/axiom": "^0.19.0",
280
- "@distilled.cloud/cloudflare": "^0.19.0",
275
+ "@distilled.cloud/aws": "^0.20.1",
276
+ "@distilled.cloud/axiom": "^0.20.1",
277
+ "@distilled.cloud/cloudflare": "^0.20.1",
281
278
  "@distilled.cloud/cloudflare-rolldown-plugin": "0.3.0",
282
279
  "@distilled.cloud/cloudflare-runtime": "0.3.2",
283
280
  "@distilled.cloud/cloudflare-vite-plugin": "0.2.0",
284
- "@distilled.cloud/core": "^0.19.0",
285
- "@distilled.cloud/neon": "^0.19.0",
281
+ "@distilled.cloud/core": "^0.20.1",
282
+ "@distilled.cloud/neon": "^0.20.1",
286
283
  "pg": "^8.13.0",
287
- "@effect/vitest": ">=4.0.0-beta.60 || >=4.0.0",
284
+ "@effect/vitest": ">=4.0.0-beta.66 || >=4.0.0",
288
285
  "@libsql/client": "^0.17.0",
289
286
  "@octokit/rest": "^22.0.1",
290
287
  "@smithy/node-config-provider": "^4.0.0",
291
288
  "@smithy/shared-ini-file-loader": "^4.3.4",
292
289
  "@smithy/types": "^4.8.1",
293
290
  "@types/aws-lambda": "^8.10.152",
294
- "@types/libsodium-wrappers": "^0.8.2",
295
- "ai": "^6.0.62",
296
291
  "aws4fetch": "^1.0.20",
297
292
  "capnweb": "^0.6.1",
298
293
  "fast-glob": "^3.3.2",
299
294
  "fast-xml-parser": "^5.3.4",
300
295
  "foreground-child": "^4.0.3",
301
- "ignore": "^7.0.5",
302
296
  "ink": "^6.3.1",
303
297
  "jszip": "^3.10.1",
304
298
  "libsodium-wrappers": "^0.8.3",
@@ -310,15 +304,14 @@
310
304
  "rolldown": "1.0.0-rc.17",
311
305
  "sonda": "^0.11.1",
312
306
  "undici": "^7.16.0",
313
- "web-tree-sitter": "0.25.10",
314
307
  "yaml": "^2.0.0"
315
308
  },
316
309
  "devDependencies": {
317
310
  "@clack/prompts": "^0.11.0",
318
311
  "@cloudflare/workers-types": "^4.20250805.0",
319
- "@effect/platform-bun": ">=4.0.0-beta.60 || >=4.0.0",
320
- "@effect/platform-node": ">=4.0.0-beta.60 || >=4.0.0",
321
- "@effect/platform-node-shared": ">=4.0.0-beta.60 || >=4.0.0",
312
+ "@effect/platform-bun": ">=4.0.0-beta.66 || >=4.0.0",
313
+ "@effect/platform-node": ">=4.0.0-beta.66 || >=4.0.0",
314
+ "@effect/platform-node-shared": ">=4.0.0-beta.66 || >=4.0.0",
322
315
  "@oxc-project/types": "^0.127.0",
323
316
  "@types/pg": "^8.11.0",
324
317
  "@types/aws-lambda": "^8.10.152",
@@ -329,7 +322,7 @@
329
322
  "@types/react": "^19.2.2",
330
323
  "@types/ws": "^8.18.1",
331
324
  "better-auth": "^1.6.2",
332
- "effect": ">=4.0.0-beta.60 || >=4.0.0",
325
+ "effect": ">=4.0.0-beta.66 || >=4.0.0",
333
326
  "react-devtools-core": "^7.0.1",
334
327
  "solid-js": "latest",
335
328
  "tsconfig-paths": "^4.2.0",
@@ -339,12 +332,12 @@
339
332
  "ws": "^8.20.0"
340
333
  },
341
334
  "peerDependencies": {
342
- "@effect/platform-bun": ">=4.0.0-beta.60 || >=4.0.0",
343
- "@effect/platform-node": ">=4.0.0-beta.60 || >=4.0.0",
344
- "@effect/sql-pg": ">=4.0.0-beta.60 || >=4.0.0",
335
+ "@effect/platform-bun": ">=4.0.0-beta.66 || >=4.0.0",
336
+ "@effect/platform-node": ">=4.0.0-beta.66 || >=4.0.0",
337
+ "@effect/sql-pg": ">=4.0.0-beta.66 || >=4.0.0",
345
338
  "drizzle-kit": ">=1.0.0-rc.1",
346
339
  "drizzle-orm": ">=1.0.0-rc.1",
347
- "effect": ">=4.0.0-beta.60 || >=4.0.0",
340
+ "effect": ">=4.0.0-beta.66 || >=4.0.0",
348
341
  "vite": "^8.0.7",
349
342
  "ws": "^8.20.0"
350
343
  },
@@ -1,5 +1,4 @@
1
1
  import { Credentials } from "@distilled.cloud/aws/Credentials";
2
- import * as Effect from "effect/Effect";
3
2
  import * as Layer from "effect/Layer";
4
3
  import { AWSEnvironment } from "./Environment.ts";
5
4
 
@@ -12,5 +11,5 @@ export { Credentials } from "@distilled.cloud/aws/Credentials";
12
11
  */
13
12
  export const fromEnvironment = Layer.effect(
14
13
  Credentials,
15
- Effect.map(AWSEnvironment.asEffect(), (env) => env.credentials),
14
+ AWSEnvironment.useSync((env) => env.credentials),
16
15
  );
@@ -87,8 +87,5 @@ export const stream = <T extends Table>(
87
87
  process: (
88
88
  stream: Stream.Stream<StreamRecord<Data>, never, StreamReq>,
89
89
  ) => Effect.Effect<void, never, Req>,
90
- ) =>
91
- TableEventSource.asEffect().pipe(
92
- Effect.flatMap((source) => source(table, props, process)),
93
- ),
90
+ ) => TableEventSource.use((source) => source(table, props, process)),
94
91
  });
@@ -96,23 +96,21 @@ export const createEc2HostRuntimeContext =
96
96
  return key;
97
97
  }),
98
98
  get: <T>(key: string) =>
99
- Config.string(key)
100
- .asEffect()
101
- .pipe(
102
- Effect.flatMap((value) =>
103
- Effect.try({
104
- try: () => JSON.parse(value) as T,
105
- catch: (error) => error as Error,
99
+ Config.string(key).pipe(
100
+ Effect.flatMap((value) =>
101
+ Effect.try({
102
+ try: () => JSON.parse(value) as T,
103
+ catch: (error) => error as Error,
104
+ }),
105
+ ),
106
+ Effect.catch((cause) =>
107
+ Effect.die(
108
+ new Error(`Failed to get environment variable: ${key}`, {
109
+ cause,
106
110
  }),
107
111
  ),
108
- Effect.catch((cause) =>
109
- Effect.die(
110
- new Error(`Failed to get environment variable: ${key}`, {
111
- cause,
112
- }),
113
- ),
114
- ),
115
112
  ),
113
+ ),
116
114
  run: (effect: Effect.Effect<void, never, any>) =>
117
115
  Effect.sync(() => {
118
116
  runners.push(effect);
@@ -247,8 +245,8 @@ const program = handler.pipe(
247
245
  Layer.effect(
248
246
  Stack,
249
247
  Effect.all([
250
- Config.string("ALCHEMY_STACK_NAME").asEffect(),
251
- Config.string("ALCHEMY_STAGE").asEffect()
248
+ Config.string("ALCHEMY_STACK_NAME"),
249
+ Config.string("ALCHEMY_STAGE")
252
250
  ]).pipe(
253
251
  Effect.map(([name, stage]) => ({
254
252
  name,
@@ -191,23 +191,21 @@ export const Task: Platform<Task, TaskServices, TaskShape, TaskRuntimeContext> =
191
191
  return key;
192
192
  }),
193
193
  get: <T>(key: string) =>
194
- Config.string(key)
195
- .asEffect()
196
- .pipe(
197
- Effect.flatMap((value) =>
198
- Effect.try({
199
- try: () => JSON.parse(value) as T,
200
- catch: (error) => error as Error,
194
+ Config.string(key).pipe(
195
+ Effect.flatMap((value) =>
196
+ Effect.try({
197
+ try: () => JSON.parse(value) as T,
198
+ catch: (error) => error as Error,
199
+ }),
200
+ ),
201
+ Effect.catch((cause) =>
202
+ Effect.die(
203
+ new Error(`Failed to get environment variable: ${key}`, {
204
+ cause,
201
205
  }),
202
206
  ),
203
- Effect.catch((cause) =>
204
- Effect.die(
205
- new Error(`Failed to get environment variable: ${key}`, {
206
- cause,
207
- }),
208
- ),
209
- ),
210
207
  ),
208
+ ),
211
209
  run: (effect: Effect.Effect<void, never, any>) =>
212
210
  Effect.sync(() => {
213
211
  runners.push(effect);
@@ -508,8 +506,8 @@ const program = handler.pipe(
508
506
  Layer.effect(
509
507
  Stack,
510
508
  Effect.all([
511
- Config.string("ALCHEMY_STACK_NAME").asEffect(),
512
- Config.string("ALCHEMY_STAGE").asEffect()
509
+ Config.string("ALCHEMY_STACK_NAME"),
510
+ Config.string("ALCHEMY_STAGE")
513
511
  ]).pipe(
514
512
  Effect.map(([name, stage]) => ({
515
513
  name,
@@ -1,5 +1,4 @@
1
1
  import { Endpoint } from "@distilled.cloud/aws";
2
- import * as Effect from "effect/Effect";
3
2
  import * as Layer from "effect/Layer";
4
3
  import { AWSEnvironment } from "./Environment.ts";
5
4
 
@@ -12,9 +11,7 @@ export const of = (endpoint: string) =>
12
11
  * Layer is empty (the SDK uses its default endpoint resolver).
13
12
  */
14
13
  export const fromEnvironment = Layer.unwrap(
15
- AWSEnvironment.asEffect().pipe(
16
- Effect.map((env) =>
17
- env.endpoint === undefined ? Layer.empty : of(env.endpoint),
18
- ),
14
+ AWSEnvironment.useSync((env) =>
15
+ env.endpoint === undefined ? Layer.empty : of(env.endpoint),
19
16
  ),
20
17
  );
@@ -68,10 +68,7 @@ export const events = (...args: any[]) => {
68
68
  process: (
69
69
  events: Stream.Stream<EventRecord<Detail>, never, StreamReq>,
70
70
  ) => Effect.Effect<void, never, Req>,
71
- ) =>
72
- EventSource.asEffect().pipe(
73
- Effect.flatMap((source) => source(descriptor, process)),
74
- ),
71
+ ) => EventSource.use((source) => source(descriptor, process)),
75
72
  toLambda: (fn: LambdaFunction, props: LambdaRouteTargetProps = {}) =>
76
73
  createLambdaRoute(descriptor, fn, props),
77
74
  toQueue: (queue: Queue, props: QueueRouteTargetProps = {}) =>
@@ -99,8 +99,5 @@ export const records = <S extends KinesisStream>(
99
99
  process: (
100
100
  stream: Stream.Stream<KinesisEventRecord, never, StreamReq>,
101
101
  ) => Effect.Effect<void, never, Req>,
102
- ) =>
103
- StreamEventSource.asEffect().pipe(
104
- Effect.flatMap((source) => source(stream, props, process)),
105
- ),
102
+ ) => StreamEventSource.use((source) => source(stream, props, process)),
106
103
  });
@@ -10,6 +10,7 @@ import * as Context from "effect/Context";
10
10
  import * as Effect from "effect/Effect";
11
11
  import * as FileSystem from "effect/FileSystem";
12
12
  import * as Option from "effect/Option";
13
+ import * as Redacted from "effect/Redacted";
13
14
  import * as Schedule from "effect/Schedule";
14
15
  import * as Stream from "effect/Stream";
15
16
  import type * as rolldown from "rolldown";
@@ -368,27 +369,52 @@ export const Function: Platform<
368
369
  set: (id: string, output: Output.Output) =>
369
370
  Effect.sync(() => {
370
371
  const key = id.replaceAll(/[^a-zA-Z0-9]/g, "_");
371
- env[key] = output.pipe(Output.map((value) => JSON.stringify(value)));
372
+ // Preserve `Redacted`-ness across the Output → Lambda env var
373
+ // round-trip. `JSON.stringify(Redacted)` would emit the literal
374
+ // string `"<redacted>"` and lose the value, so secrets are
375
+ // serialized with a `{_tag: "Redacted", value: ...}` marker
376
+ // that the runtime `get` path detects and rebuilds.
377
+ env[key] = output.pipe(
378
+ Output.map((value) =>
379
+ Redacted.isRedacted(value)
380
+ ? JSON.stringify({
381
+ _tag: "Redacted",
382
+ value: Redacted.value(value),
383
+ })
384
+ : JSON.stringify(value),
385
+ ),
386
+ );
372
387
  return key;
373
388
  }),
374
389
  get: <T>(key: string) =>
375
- Config.string(key)
376
- .asEffect()
377
- .pipe(
378
- Effect.flatMap((val) =>
379
- Effect.try({
380
- try: () => JSON.parse(val) as T,
381
- catch: () => val, // assume it's just a string
390
+ Config.string(key).pipe(
391
+ Effect.flatMap((val) =>
392
+ Effect.try({
393
+ try: () => {
394
+ const value = JSON.parse(val);
395
+ if (
396
+ value !== null &&
397
+ typeof value === "object" &&
398
+ (value as { _tag?: unknown })._tag === "Redacted" &&
399
+ "value" in (value as object)
400
+ ) {
401
+ return Redacted.make(
402
+ (value as { value: unknown }).value,
403
+ ) as unknown as T;
404
+ }
405
+ return value as T;
406
+ },
407
+ catch: () => val, // assume it's just a string
408
+ }),
409
+ ),
410
+ Effect.catch((cause) =>
411
+ Effect.die(
412
+ new Error(`Failed to get environment variable: ${key}`, {
413
+ cause,
382
414
  }),
383
415
  ),
384
- Effect.catch((cause) =>
385
- Effect.die(
386
- new Error(`Failed to get environment variable: ${key}`, {
387
- cause,
388
- }),
389
- ),
390
- ),
391
416
  ),
417
+ ),
392
418
  serve: (handler: HttpEffect) =>
393
419
  ctx.listen(makeFunctionHttpHandler(handler)),
394
420
  listen: ((
@@ -641,6 +667,7 @@ export const FunctionProvider = () =>
641
667
  (importPath) => `
642
668
  import { layer as nodeServicesLayer } from "@effect/platform-node/NodeServices";
643
669
  import { Stack } from "alchemy/Stack";
670
+ import { makeEntrypointLayer } from "alchemy/Runtime";
644
671
  import * as Config from "effect/Config";
645
672
  import * as ConfigProvider from "effect/ConfigProvider";
646
673
  import * as Credentials from "@distilled.cloud/aws/Credentials";
@@ -652,13 +679,10 @@ import * as Region from "@distilled.cloud/aws/Region";
652
679
  import * as Context from "effect/Context";
653
680
  import { MinimumLogLevel } from "effect/References";
654
681
 
655
- import entry from "${importPath}";
682
+ import entrypoint from "${importPath}";
656
683
 
657
684
  const tag = Context.Service("${Self.key}")
658
- const layer =
659
- typeof entry?.build === "function"
660
- ? entry
661
- : Layer.effect(tag, typeof entry?.asEffect === "function" ? entry.asEffect() : entry);
685
+ const layer = makeEntrypointLayer(tag, entrypoint);
662
686
 
663
687
  const platform = Layer.mergeAll(
664
688
  nodeServicesLayer,
@@ -670,8 +694,8 @@ const platform = Layer.mergeAll(
670
694
  const stack = Layer.effect(
671
695
  Stack,
672
696
  Effect.all([
673
- Config.string("ALCHEMY_STACK_NAME").asEffect(),
674
- Config.string("ALCHEMY_STAGE").asEffect()
697
+ Config.string("ALCHEMY_STACK_NAME"),
698
+ Config.string("ALCHEMY_STAGE")
675
699
  ]).pipe(
676
700
  Effect.map(([name, stage]) => ({
677
701
  name,
@@ -682,7 +706,7 @@ const stack = Layer.effect(
682
706
  )
683
707
  );
684
708
 
685
- const handlerEffect = tag.asEffect().pipe(
709
+ const handlerEffect = tag.pipe(
686
710
  Effect.flatMap(func => func.RuntimeContext.exports),
687
711
  Effect.flatMap(exports => exports.handler),
688
712
  Effect.provide(
@@ -15,13 +15,14 @@ import { pipe } from "effect/Function";
15
15
  import * as Layer from "effect/Layer";
16
16
  import * as Ref from "effect/Ref";
17
17
  import * as Schedule from "effect/Schedule";
18
+ import * as HttpClientError from "effect/unstable/http/HttpClientError";
19
+ import { CredentialsStoreLive } from "../Auth/Credentials.ts";
18
20
  import { Command, CommandProvider } from "../Build/Command.ts";
19
21
  import * as Provider from "../Provider.ts";
20
22
  import { Random, RandomProvider } from "../Random.ts";
21
23
  import * as ACM from "./ACM/index.ts";
22
24
  import * as ApiGateway from "./ApiGateway/index.ts";
23
25
  import * as Assets from "./Assets.ts";
24
- import { CredentialsStoreLive } from "../Auth/Credentials.ts";
25
26
  import { AwsAuth } from "./AuthProvider.ts";
26
27
  import * as AutoScaling from "./AutoScaling/index.ts";
27
28
  import * as CloudFront from "./CloudFront/index.ts";
@@ -34,6 +35,7 @@ import * as ECS from "./ECS/index.ts";
34
35
  import * as EKS from "./EKS/index.ts";
35
36
  import * as ELBv2 from "./ELBv2/index.ts";
36
37
  import * as Endpoint from "./Endpoint.ts";
38
+ import { Default as DefaultEnvironment } from "./Environment.ts";
37
39
  import * as EventBridge from "./EventBridge/index.ts";
38
40
  import * as IAM from "./IAM/index.ts";
39
41
  import * as IdentityCenter from "./IdentityCenter/index.ts";
@@ -50,7 +52,6 @@ import * as Scheduler from "./Scheduler/index.ts";
50
52
  import * as SecretsManager from "./SecretsManager/index.ts";
51
53
  import * as SNS from "./SNS/index.ts";
52
54
  import * as SQS from "./SQS/index.ts";
53
- import { Default as DefaultEnvironment } from "./Environment.ts";
54
55
  import * as Website from "./Website/index.ts";
55
56
 
56
57
  export class Providers extends Provider.ProviderCollection<Providers>()(
@@ -591,9 +592,27 @@ export const providers = () =>
591
592
  Layer.orDie,
592
593
  );
593
594
 
595
+ // TODO(sam): remove this once it's upstreamed to distilled
596
+ const isHttpTransportError = (error: unknown): boolean => {
597
+ if (!HttpClientError.isHttpClientError(error)) return false;
598
+ const tag = error.reason._tag;
599
+ if (tag === "TransportError") return true;
600
+ if (
601
+ tag === "StatusCodeError" &&
602
+ "response" in error.reason &&
603
+ error.reason.response.status >= 500
604
+ ) {
605
+ return true;
606
+ }
607
+ return false;
608
+ };
609
+
594
610
  const awsRetryFactory: RetryFactory = (lastError) => ({
595
611
  while: (error) =>
596
- isTransientError(error) || isThrottlingError(error) || isRetryable(error),
612
+ isTransientError(error) ||
613
+ isThrottlingError(error) ||
614
+ isRetryable(error) ||
615
+ isHttpTransportError(error),
597
616
  schedule: pipe(
598
617
  Schedule.exponential(Duration.millis(200), 2),
599
618
  Schedule.modifyDelay(
package/src/AWS/Region.ts CHANGED
@@ -1,10 +1,9 @@
1
1
  import * as Region from "@distilled.cloud/aws/Region";
2
- import * as Effect from "effect/Effect";
3
2
  import * as Layer from "effect/Layer";
4
3
  import { AWSEnvironment } from "./Environment.ts";
5
4
 
6
- export { Region } from "@distilled.cloud/aws/Region";
7
5
  export { AWS_REGION, type RegionID } from "./Environment.ts";
6
+ export { Region } from "@distilled.cloud/aws/Region";
8
7
 
9
8
  export const of = (region: string) => Layer.succeed(Region.Region, region);
10
9
 
@@ -16,5 +15,5 @@ export const fromEnvOrElse = (region: string) =>
16
15
  */
17
16
  export const fromEnvironment = Layer.effect(
18
17
  Region.Region,
19
- Effect.map(AWSEnvironment.asEffect(), (env) => env.region),
18
+ AWSEnvironment.useSync((env) => env.region),
20
19
  );
@@ -564,12 +564,17 @@ export const BucketProvider = () =>
564
564
  yield* Effect.logInfo(
565
565
  `S3 Bucket delete: bucket=${output.bucketName} forceDestroy=${olds.forceDestroy ?? false}`,
566
566
  );
567
- // If forceDestroy is enabled, delete all objects first
567
+ // If forceDestroy is enabled, delete all objects first. The bucket
568
+ // may already be gone (deleted out-of-band, or a previous destroy
569
+ // partially succeeded) — treat NoSuchBucket as a no-op so the
570
+ // overall delete still converges.
568
571
  if (olds.forceDestroy) {
569
572
  yield* session.note(
570
573
  `Force destroying bucket: ${output.bucketName} - deleting all objects...`,
571
574
  );
572
- yield* deleteAllObjects(output.bucketName);
575
+ yield* deleteAllObjects(output.bucketName).pipe(
576
+ Effect.catchTag("NoSuchBucket", () => Effect.void),
577
+ );
573
578
  }
574
579
 
575
580
  yield* s3
@@ -70,8 +70,5 @@ export const notifications = <
70
70
  process: (
71
71
  stream: Stream.Stream<BucketNotification, never, StreamReq>,
72
72
  ) => Effect.Effect<void, never, Req>,
73
- ) =>
74
- BucketEventSource.asEffect().pipe(
75
- Effect.flatMap((source) => source(bucket, props, process)),
76
- ),
73
+ ) => BucketEventSource.use((source) => source(bucket, props, process)),
77
74
  });
@@ -35,8 +35,5 @@ export const notifications = <T extends Topic>(
35
35
  process: (
36
36
  stream: Stream.Stream<TopicNotification, never, StreamReq>,
37
37
  ) => Effect.Effect<void, never, Req>,
38
- ) =>
39
- TopicEventSource.asEffect().pipe(
40
- Effect.flatMap((source) => source(topic, props, process)),
41
- ),
38
+ ) => TopicEventSource.use((source) => source(topic, props, process)),
42
39
  });
@@ -313,12 +313,24 @@ export const QueueProvider = () =>
313
313
  // apply only the delta. SQS returns all attribute values as strings,
314
314
  // and `desiredAttributes` is already string-shaped, so equality
315
315
  // comparison is direct.
316
+ // SQS is eventually consistent: a freshly-created queue can return
317
+ // `QueueDoesNotExist` from `getQueueAttributes` for a few seconds
318
+ // even after `createQueue` succeeded. Retry briefly so the
319
+ // reconciler converges instead of failing the first deploy.
316
320
  const currentAttributes = yield* sqs
317
321
  .getQueueAttributes({
318
322
  QueueUrl: queueUrl,
319
323
  AttributeNames: ["All"],
320
324
  })
321
- .pipe(Effect.map((r) => r.Attributes ?? {}));
325
+ .pipe(
326
+ Effect.retry({
327
+ while: (e) => e._tag === "QueueDoesNotExist",
328
+ schedule: Schedule.fixed(1000).pipe(
329
+ Schedule.both(Schedule.recurs(30)),
330
+ ),
331
+ }),
332
+ Effect.map((r) => r.Attributes ?? {}),
333
+ );
322
334
 
323
335
  const attributeDelta: Record<string, string> = {};
324
336
  for (const [key, value] of Object.entries(desiredAttributes)) {
@@ -330,10 +342,19 @@ export const QueueProvider = () =>
330
342
  }
331
343
  }
332
344
  if (Object.keys(attributeDelta).length > 0) {
333
- yield* sqs.setQueueAttributes({
334
- QueueUrl: queueUrl,
335
- Attributes: attributeDelta,
336
- });
345
+ yield* sqs
346
+ .setQueueAttributes({
347
+ QueueUrl: queueUrl,
348
+ Attributes: attributeDelta,
349
+ })
350
+ .pipe(
351
+ Effect.retry({
352
+ while: (e) => e._tag === "QueueDoesNotExist",
353
+ schedule: Schedule.fixed(1000).pipe(
354
+ Schedule.both(Schedule.recurs(30)),
355
+ ),
356
+ }),
357
+ );
337
358
  }
338
359
 
339
360
  // Sync alchemy-owned tags. The `tags` parameter on `createQueue`
@@ -342,6 +363,12 @@ export const QueueProvider = () =>
342
363
  const currentTags = yield* sqs
343
364
  .listQueueTags({ QueueUrl: queueUrl })
344
365
  .pipe(
366
+ Effect.retry({
367
+ while: (e) => e._tag === "QueueDoesNotExist",
368
+ schedule: Schedule.fixed(1000).pipe(
369
+ Schedule.both(Schedule.recurs(30)),
370
+ ),
371
+ }),
345
372
  Effect.map((r) => r.Tags ?? {}),
346
373
  Effect.catch(() => Effect.succeed({} as Record<string, string>)),
347
374
  );
@@ -352,7 +379,14 @@ export const QueueProvider = () =>
352
379
  }
353
380
  }
354
381
  if (Object.keys(tagDelta).length > 0) {
355
- yield* sqs.tagQueue({ QueueUrl: queueUrl, Tags: tagDelta });
382
+ yield* sqs.tagQueue({ QueueUrl: queueUrl, Tags: tagDelta }).pipe(
383
+ Effect.retry({
384
+ while: (e) => e._tag === "QueueDoesNotExist",
385
+ schedule: Schedule.fixed(1000).pipe(
386
+ Schedule.both(Schedule.recurs(30)),
387
+ ),
388
+ }),
389
+ );
356
390
  }
357
391
 
358
392
  yield* session.note(queueUrl);