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/src/Apply.ts CHANGED
@@ -21,7 +21,13 @@ import { toFqn } from "./FQN.ts";
21
21
  import type { Input } from "./Input.ts";
22
22
  import { generateInstanceId, InstanceId } from "./InstanceId.ts";
23
23
  import * as Output from "./Output.ts";
24
- import { type Apply, type Delete, type Plan } from "./Plan.ts";
24
+ import {
25
+ type Apply,
26
+ type Delete,
27
+ type Plan,
28
+ type ActionApply,
29
+ type ActionDelete,
30
+ } from "./Plan.ts";
25
31
  import { findProviderByType } from "./Provider.ts";
26
32
  import type { ResourceBinding } from "./Resource.ts";
27
33
  import { Stack } from "./Stack.ts";
@@ -31,14 +37,19 @@ import {
31
37
  type CreatedResourceState,
32
38
  type CreatingResourceState,
33
39
  type DeletingResourceState,
40
+ type PersistedState,
41
+ type RanActionState,
34
42
  type ReplacedResourceState,
35
43
  type ReplacingResourceState,
36
44
  type ResourceState,
45
+ type RunningActionState,
46
+ type ActionState,
37
47
  type UpdatedResourceState,
38
48
  type UpdatingReourceState,
39
49
  State,
40
50
  StateStoreError,
41
51
  } from "./State/index.ts";
52
+ import { hashInput } from "./Util/hash.ts";
42
53
 
43
54
  export type ApplyEffect<
44
55
  P extends Plan,
@@ -139,7 +150,7 @@ export const apply = <P extends Plan>(
139
150
  {
140
151
  id: string;
141
152
  type: string;
142
- status: Extract<ApplyStatus, "created" | "updated">;
153
+ status: Extract<ApplyStatus, "created" | "updated" | "ran" | "skipped">;
143
154
  }
144
155
  >();
145
156
 
@@ -185,7 +196,14 @@ export const apply = <P extends Plan>(
185
196
  const outputs = Object.fromEntries(
186
197
  Object.entries(tracker).map(([fqn, t]) => [fqn, t.output]),
187
198
  );
188
- return yield* Output.evaluate(plan.output, outputs);
199
+ const resolved = yield* Output.evaluate(plan.output, outputs);
200
+
201
+ // Persist the stack's evaluated outputs so cross-stack references
202
+ // (`yield* OtherStack` / `OtherStack.stage.<name>` / `Output.stackRef`)
203
+ // can read them back out of the state store.
204
+ yield* state.setOutput({ stack: stackName, stage, value: resolved });
205
+
206
+ return resolved;
189
207
  }).pipe(
190
208
  ensureArtifactStore,
191
209
  Effect.withSpan("apply", {
@@ -211,12 +229,12 @@ const executePlan = Effect.fnUntraced(function* (
211
229
  {
212
230
  id: string;
213
231
  type: string;
214
- status: Extract<ApplyStatus, "created" | "updated">;
232
+ status: Extract<ApplyStatus, "created" | "updated" | "ran" | "skipped">;
215
233
  }
216
234
  >,
217
235
  session: PlanStatusSession,
218
236
  state: {
219
- set: <V extends ResourceState>(req: {
237
+ set: <V extends PersistedState>(req: {
220
238
  stack: string;
221
239
  stage: string;
222
240
  fqn: string;
@@ -226,9 +244,29 @@ const executePlan = Effect.fnUntraced(function* (
226
244
  stackName: string,
227
245
  stage: string,
228
246
  ) {
247
+ // Resources and tasks share the same FQN namespace and DAG, so the
248
+ // scheduler tracks them together. Each entry gets a single Deferred that
249
+ // signals "my output is available in `tracker`."
250
+ const allNodes: Record<string, Apply | ActionApply> = {
251
+ ...plan.resources,
252
+ ...plan.actions,
253
+ };
254
+
229
255
  const ready = Object.fromEntries(
230
256
  yield* Effect.all(
231
- Object.keys(plan.resources).map((fqn) =>
257
+ Object.keys(allNodes).map((fqn) =>
258
+ Effect.map(Deferred.make<void>(), (d) => [fqn, d] as const),
259
+ ),
260
+ ),
261
+ ) as Record<string, Deferred.Deferred<void>>;
262
+
263
+ // `readyStable` fires only when a node has reached its TERMINAL output —
264
+ // resources after `reconcile`, tasks after the body completes. Resource
265
+ // precreate stubs do NOT signal `readyStable`, so any consumer that
266
+ // requires stable inputs (e.g. Tasks) waits past the precreate phase.
267
+ const readyStable = Object.fromEntries(
268
+ yield* Effect.all(
269
+ Object.keys(allNodes).map((fqn) =>
232
270
  Effect.map(Deferred.make<void>(), (d) => [fqn, d] as const),
233
271
  ),
234
272
  ),
@@ -247,25 +285,50 @@ const executePlan = Effect.fnUntraced(function* (
247
285
  { concurrency: "unbounded" },
248
286
  );
249
287
 
288
+ const waitForStableDeps = (fqns: string[]) =>
289
+ Effect.all(
290
+ fqns
291
+ .filter((fqn) => fqn in readyStable)
292
+ .map((fqn) => Deferred.await(readyStable[fqn])),
293
+ { concurrency: "unbounded" },
294
+ );
295
+
250
296
  const failures: LifecycleFailure[] = [];
251
297
 
252
298
  yield* Effect.all(
253
- Object.entries(plan.resources).map(([fqn, node]) =>
254
- executeNode(
255
- fqn,
256
- node,
257
- tracker,
258
- ready,
259
- terminalStatuses,
260
- session,
261
- state,
262
- stackName,
263
- stage,
264
- getOutputs,
265
- waitForDeps,
266
- failures,
267
- plan.cycleMembers.has(fqn),
268
- ),
299
+ Object.entries(allNodes).map(([fqn, node]) =>
300
+ (node as ActionApply).kind === "action"
301
+ ? executeActionNode(
302
+ fqn,
303
+ node as ActionApply,
304
+ tracker,
305
+ ready,
306
+ readyStable,
307
+ terminalStatuses,
308
+ session,
309
+ state,
310
+ stackName,
311
+ stage,
312
+ getOutputs,
313
+ waitForStableDeps,
314
+ failures,
315
+ )
316
+ : executeNode(
317
+ fqn,
318
+ node as Apply,
319
+ tracker,
320
+ ready,
321
+ readyStable,
322
+ terminalStatuses as any,
323
+ session,
324
+ state,
325
+ stackName,
326
+ stage,
327
+ getOutputs,
328
+ waitForDeps,
329
+ failures,
330
+ plan.cycleMembers.has(fqn),
331
+ ),
269
332
  ),
270
333
  { concurrency: "unbounded" },
271
334
  );
@@ -290,6 +353,7 @@ const executeNode = (
290
353
  node: Apply,
291
354
  tracker: Record<string, ResourceTracker>,
292
355
  ready: Record<string, Deferred.Deferred<void>>,
356
+ readyStable: Record<string, Deferred.Deferred<void>>,
293
357
  terminalStatuses: Map<
294
358
  string,
295
359
  {
@@ -350,6 +414,10 @@ const executeNode = (
350
414
  });
351
415
 
352
416
  const signalReady = Deferred.succeed(ready[fqn], void 0);
417
+ // Signal only after reconcile completes — never during precreate. Tasks
418
+ // (and any other consumer that calls `waitForStableDeps`) block on this
419
+ // so they observe the resource's final attrs rather than a stub.
420
+ const signalReadyStable = Deferred.succeed(readyStable[fqn], void 0);
353
421
 
354
422
  const storeAndSignal = (t: ResourceTracker) =>
355
423
  Effect.gen(function* () {
@@ -360,6 +428,8 @@ const executeNode = (
360
428
  // ── noop ──
361
429
 
362
430
  if (node.action === "noop") {
431
+ // No work to do — the persisted attr is already stable.
432
+ yield* signalReadyStable;
363
433
  yield* storeAndSignal({
364
434
  output: node.state.attr,
365
435
  props: node.state.props,
@@ -563,6 +633,7 @@ const executeNode = (
563
633
  instanceId,
564
634
  };
565
635
  yield* signalReady;
636
+ yield* signalReadyStable;
566
637
 
567
638
  yield* markTerminal("created");
568
639
  return;
@@ -694,6 +765,7 @@ const executeNode = (
694
765
  // the deferred has already been resolved by the early `storeAndSignal`
695
766
  // above and `signalReady` is a no-op the second time.
696
767
  yield* signalReady;
768
+ yield* signalReadyStable;
697
769
 
698
770
  yield* markTerminal("updated");
699
771
  return;
@@ -711,6 +783,7 @@ const executeNode = (
711
783
  instanceId,
712
784
  };
713
785
  yield* signalReady;
786
+ yield* signalReadyStable;
714
787
  yield* markTerminal("created");
715
788
  return;
716
789
  }
@@ -857,6 +930,7 @@ const executeNode = (
857
930
  instanceId,
858
931
  };
859
932
  yield* signalReady;
933
+ yield* signalReadyStable;
860
934
 
861
935
  // Keep progress anchored to the live replacement while GC drains the
862
936
  // previous generation(s) in the background.
@@ -882,6 +956,10 @@ const executeNode = (
882
956
  cause,
883
957
  });
884
958
  yield* Deferred.failCause(ready[fqn], cause as Cause.Cause<never>);
959
+ yield* Deferred.failCause(
960
+ readyStable[fqn],
961
+ cause as Cause.Cause<never>,
962
+ );
885
963
  yield* session.emit({
886
964
  kind: "status-change",
887
965
  id: node.resource.LogicalId,
@@ -900,6 +978,168 @@ const executeNode = (
900
978
  }),
901
979
  ) as Effect.Effect<void, never, never>;
902
980
 
981
+ // ── Task execution ─────────────────────────────────────────────────────────
982
+ //
983
+ // Tasks slot into the same scheduler as resources. They have no provider
984
+ // lifecycle — just a single Effect that runs when inputs change (or when
985
+ // `--force` is set). The output value is written to `tracker[fqn].output`
986
+ // so downstream Output evaluation works identically to resource attrs.
987
+
988
+ const executeActionNode = (
989
+ fqn: string,
990
+ node: ActionApply,
991
+ tracker: Record<string, ResourceTracker>,
992
+ ready: Record<string, Deferred.Deferred<void>>,
993
+ readyStable: Record<string, Deferred.Deferred<void>>,
994
+ terminalStatuses: Map<
995
+ string,
996
+ {
997
+ id: string;
998
+ type: string;
999
+ status: Extract<ApplyStatus, "created" | "updated" | "ran" | "skipped">;
1000
+ }
1001
+ >,
1002
+ session: PlanStatusSession,
1003
+ state: {
1004
+ set: <V extends PersistedState>(req: {
1005
+ stack: string;
1006
+ stage: string;
1007
+ fqn: string;
1008
+ value: V;
1009
+ }) => Effect.Effect<V, StateStoreError, never>;
1010
+ },
1011
+ stackName: string,
1012
+ stage: string,
1013
+ getOutputs: () => Record<string, any>,
1014
+ waitForDeps: (fqns: string[]) => Effect.Effect<void[], never, never>,
1015
+ failures: LifecycleFailure[],
1016
+ ): Effect.Effect<void, never, any> =>
1017
+ Effect.gen(function* () {
1018
+ const task = node.def;
1019
+ const logicalId = task.LogicalId;
1020
+ const namespace = task.Namespace;
1021
+
1022
+ const commit = <S extends ActionState>(value: Omit<S, "namespace">) =>
1023
+ state.set({
1024
+ stack: stackName,
1025
+ stage,
1026
+ fqn,
1027
+ value: { ...value, namespace } as S,
1028
+ });
1029
+
1030
+ const report = (status: ApplyStatus) =>
1031
+ session.emit({
1032
+ kind: "status-change",
1033
+ id: logicalId,
1034
+ type: task.Type,
1035
+ status,
1036
+ });
1037
+
1038
+ const signalReady = Deferred.succeed(ready[fqn], void 0);
1039
+ const signalReadyStable = Deferred.succeed(readyStable[fqn], void 0);
1040
+
1041
+ if (node.action === "noop") {
1042
+ tracker[fqn] = {
1043
+ output: node.state.output,
1044
+ props: { __input: node.state.input },
1045
+ bindings: [],
1046
+ instanceId: fqn,
1047
+ };
1048
+ yield* signalReady;
1049
+ yield* signalReadyStable;
1050
+ terminalStatuses.set(fqn, {
1051
+ id: logicalId,
1052
+ type: task.Type,
1053
+ status: "skipped",
1054
+ });
1055
+ return;
1056
+ }
1057
+
1058
+ // ── run ──
1059
+ // Wait for stable (post-reconcile) upstream attrs — not precreate stubs.
1060
+ // This is `waitForStableDeps` at the call site, passed in as the
1061
+ // `waitForDeps` parameter here.
1062
+ yield* waitForDeps(
1063
+ Object.keys(Output.resolveUpstream(node.input)).filter(
1064
+ (f) => f in readyStable,
1065
+ ),
1066
+ );
1067
+
1068
+ const outputs = getOutputs();
1069
+ const resolvedInput = (yield* Output.evaluate(node.input, outputs)) as any;
1070
+ const inputHashValue = yield* hashInput(resolvedInput);
1071
+
1072
+ yield* commit<RunningActionState>({
1073
+ kind: "action",
1074
+ status: "running",
1075
+ fqn,
1076
+ logicalId,
1077
+ actionType: task.Type,
1078
+ inputHash: inputHashValue,
1079
+ input: resolvedInput,
1080
+ downstream: node.downstream,
1081
+ });
1082
+ yield* report("running");
1083
+
1084
+ const result = yield* task.Run(resolvedInput);
1085
+
1086
+ yield* commit<RanActionState>({
1087
+ kind: "action",
1088
+ status: "ran",
1089
+ fqn,
1090
+ logicalId,
1091
+ actionType: task.Type,
1092
+ inputHash: inputHashValue,
1093
+ input: resolvedInput,
1094
+ output: result,
1095
+ downstream: node.downstream,
1096
+ });
1097
+
1098
+ tracker[fqn] = {
1099
+ output: result,
1100
+ props: { __input: resolvedInput },
1101
+ bindings: [],
1102
+ instanceId: fqn,
1103
+ };
1104
+ yield* signalReady;
1105
+ yield* signalReadyStable;
1106
+ terminalStatuses.set(fqn, {
1107
+ id: logicalId,
1108
+ type: task.Type,
1109
+ status: "ran",
1110
+ });
1111
+ }).pipe(
1112
+ Effect.catchCause((cause) =>
1113
+ Effect.gen(function* () {
1114
+ failures.push({
1115
+ fqn,
1116
+ logicalId: node.def.LogicalId,
1117
+ type: node.def.Type,
1118
+ cause,
1119
+ });
1120
+ yield* Deferred.failCause(ready[fqn], cause as Cause.Cause<never>);
1121
+ yield* Deferred.failCause(
1122
+ readyStable[fqn],
1123
+ cause as Cause.Cause<never>,
1124
+ );
1125
+ yield* session.emit({
1126
+ kind: "status-change",
1127
+ id: node.def.LogicalId,
1128
+ type: node.def.Type,
1129
+ status: "fail",
1130
+ });
1131
+ }),
1132
+ ),
1133
+ Effect.withSpan("apply.action", {
1134
+ attributes: {
1135
+ "alchemy.action.fqn": fqn,
1136
+ "alchemy.action.type": node.def.Type,
1137
+ "alchemy.action.logical_id": node.def.LogicalId,
1138
+ "alchemy.action.verb": node.action,
1139
+ },
1140
+ }),
1141
+ ) as Effect.Effect<void, never, any>;
1142
+
903
1143
  // ── Phase 3: imperative convergence loop ───────────────────────────────────
904
1144
  //
905
1145
  // After the initial concurrent pass, some resources may have been created
@@ -917,12 +1157,12 @@ const converge = Effect.fnUntraced(function* (
917
1157
  {
918
1158
  id: string;
919
1159
  type: string;
920
- status: Extract<ApplyStatus, "created" | "updated">;
1160
+ status: Extract<ApplyStatus, "created" | "updated" | "ran" | "skipped">;
921
1161
  }
922
1162
  >,
923
1163
  session: PlanStatusSession,
924
1164
  state: {
925
- set: <V extends ResourceState>(req: {
1165
+ set: <V extends PersistedState>(req: {
926
1166
  stack: string;
927
1167
  stage: string;
928
1168
  fqn: string;
@@ -1027,6 +1267,75 @@ const converge = Effect.fnUntraced(function* (
1027
1267
  });
1028
1268
  }
1029
1269
 
1270
+ // Tasks: re-run when their resolved input drifts vs. the value they
1271
+ // last applied with (e.g. an upstream resource produced new attrs in
1272
+ // this pass). Skipped (noop) tasks are not re-checked here — their
1273
+ // recorded inputHash is authoritative until the next plan.
1274
+ for (const [fqn, node] of Object.entries(plan.actions)) {
1275
+ if (node.action !== "run") continue;
1276
+ if (!tracker[fqn]) continue;
1277
+
1278
+ const outputs = Object.fromEntries(
1279
+ Object.entries(tracker).map(([k, t]) => [k, t.output]),
1280
+ );
1281
+ const newInput = (yield* Output.evaluate(node.input, outputs)) as any;
1282
+ const newHash = yield* hashInput(newInput);
1283
+ const oldInput = tracker[fqn].props?.__input;
1284
+ const oldHash = yield* hashInput(oldInput);
1285
+ if (newHash === oldHash) continue;
1286
+
1287
+ anyUpdated = true;
1288
+
1289
+ yield* state.set({
1290
+ stack: stackName,
1291
+ stage,
1292
+ fqn,
1293
+ value: {
1294
+ kind: "action",
1295
+ status: "running",
1296
+ fqn,
1297
+ logicalId: node.def.LogicalId,
1298
+ namespace: node.def.Namespace,
1299
+ actionType: node.def.Type,
1300
+ inputHash: newHash,
1301
+ input: newInput,
1302
+ downstream: node.downstream,
1303
+ } satisfies RunningActionState,
1304
+ });
1305
+
1306
+ const result = yield* node.def.Run(newInput);
1307
+
1308
+ yield* state.set({
1309
+ stack: stackName,
1310
+ stage,
1311
+ fqn,
1312
+ value: {
1313
+ kind: "action",
1314
+ status: "ran",
1315
+ fqn,
1316
+ logicalId: node.def.LogicalId,
1317
+ namespace: node.def.Namespace,
1318
+ actionType: node.def.Type,
1319
+ inputHash: newHash,
1320
+ input: newInput,
1321
+ output: result,
1322
+ downstream: node.downstream,
1323
+ } satisfies RanActionState,
1324
+ });
1325
+
1326
+ tracker[fqn] = {
1327
+ output: result,
1328
+ props: { __input: newInput },
1329
+ bindings: [],
1330
+ instanceId: fqn,
1331
+ };
1332
+ terminalStatuses.set(fqn, {
1333
+ id: node.def.LogicalId,
1334
+ type: node.def.Type,
1335
+ status: "ran",
1336
+ });
1337
+ }
1338
+
1030
1339
  if (!anyUpdated) break;
1031
1340
  }
1032
1341
  });
@@ -1042,6 +1351,32 @@ const collectGarbage = Effect.fnUntraced(function* (
1042
1351
  const stackName = stack.name;
1043
1352
  const stage = yield* Stage;
1044
1353
 
1354
+ // Task deletions are pure state drops — no body is invoked. Run them in
1355
+ // parallel before resource GC; tasks never have provider-side dependencies
1356
+ // to wait on.
1357
+ yield* Effect.all(
1358
+ Object.entries(plan.actionDeletions ?? {}).map(([fqn, node]) =>
1359
+ node === undefined
1360
+ ? Effect.void
1361
+ : Effect.gen(function* () {
1362
+ yield* session.emit({
1363
+ kind: "status-change",
1364
+ id: node.def.LogicalId,
1365
+ type: node.def.Type,
1366
+ status: "deleting",
1367
+ });
1368
+ yield* state.delete({ stack: stackName, stage, fqn });
1369
+ yield* session.emit({
1370
+ kind: "status-change",
1371
+ id: node.def.LogicalId,
1372
+ type: node.def.Type,
1373
+ status: "deleted",
1374
+ });
1375
+ }),
1376
+ ),
1377
+ { concurrency: "unbounded" },
1378
+ );
1379
+
1045
1380
  const deleteGraph = Effect.fnUntraced(function* (
1046
1381
  deletionGraph: Record<string, Delete | ReplacedResourceState | undefined>,
1047
1382
  ) {
package/src/Artifacts.ts CHANGED
@@ -78,7 +78,7 @@ const getOrCreateBag = (
78
78
  export const makeScopedArtifacts = (
79
79
  store: Map<string, ArtifactBag>,
80
80
  fqn: string,
81
- ): typeof Artifacts.Service => {
81
+ ): Artifacts["Service"] => {
82
82
  const bag = getOrCreateBag(store, fqn);
83
83
  return {
84
84
  get: <T>(key: string) => Effect.sync(() => bag.get(key) as T | undefined),
@@ -98,9 +98,7 @@ export const scopedArtifacts = (
98
98
  ): Layer.Layer<Artifacts, never, ArtifactStore> =>
99
99
  Layer.effect(
100
100
  Artifacts,
101
- ArtifactStore.asEffect().pipe(
102
- Effect.map((store) => makeScopedArtifacts(store, fqn)),
103
- ),
101
+ ArtifactStore.useSync((store) => makeScopedArtifacts(store, fqn)),
104
102
  );
105
103
 
106
104
  /**
@@ -220,7 +220,7 @@ export const getAuthProvider = <
220
220
  >(
221
221
  name: string,
222
222
  ): Effect.Effect<AuthProvider<Config, Credentials>, AuthError, AuthProviders> =>
223
- Effect.flatMap(AuthProviders.asEffect(), (registry) =>
223
+ AuthProviders.use((registry) =>
224
224
  registry[name] == null
225
225
  ? Effect.fail(
226
226
  new AuthError({
package/src/Auth/Env.ts CHANGED
@@ -4,32 +4,24 @@ import * as Clank from "../Util/Clank.ts";
4
4
  import { AuthError } from "./AuthProvider.ts";
5
5
 
6
6
  export const getEnv = (key: string) =>
7
- Config.string(key)
8
- .asEffect()
9
- .pipe(Effect.orElseSucceed(() => undefined));
7
+ Config.string(key).pipe(Effect.orElseSucceed(() => undefined));
10
8
 
11
9
  export const getEnvRequired = (key: string) =>
12
- Config.string(key)
13
- .asEffect()
14
- .pipe(
15
- Effect.catch(() =>
16
- Effect.fail(new AuthError({ message: `Missing required env: ${key}` })),
17
- ),
18
- );
10
+ Config.string(key).pipe(
11
+ Effect.catch(() =>
12
+ Effect.fail(new AuthError({ message: `Missing required env: ${key}` })),
13
+ ),
14
+ );
19
15
 
20
16
  export const getEnvRedacted = (key: string) =>
21
- Config.redacted(key)
22
- .asEffect()
23
- .pipe(Effect.orElseSucceed(() => undefined));
17
+ Config.redacted(key).pipe(Effect.orElseSucceed(() => undefined));
24
18
 
25
19
  export const getEnvRedactedRequired = (key: string) =>
26
- Config.redacted(key)
27
- .asEffect()
28
- .pipe(
29
- Effect.catch(() =>
30
- Effect.fail(new AuthError({ message: `Missing required env: ${key}` })),
31
- ),
32
- );
20
+ Config.redacted(key).pipe(
21
+ Effect.catch(() =>
22
+ Effect.fail(new AuthError({ message: `Missing required env: ${key}` })),
23
+ ),
24
+ );
33
25
 
34
26
  export const retryOnce = <A, R>(
35
27
  self: Effect.Effect<A, Clank.PromptCancelled, R>,
package/src/Binding.ts CHANGED
@@ -141,7 +141,7 @@ export const Policy =
141
141
  Effect.flatMap((service) =>
142
142
  service
143
143
  ? Effect.succeed(service)
144
- : Effect.all([CurrentStack, ALCHEMY_PHASE.asEffect()]).pipe(
144
+ : Effect.all([CurrentStack, ALCHEMY_PHASE]).pipe(
145
145
  Effect.flatMap(([stack, phase]) =>
146
146
  stack && phase === "plan"
147
147
  ? Effect.die(
@@ -154,7 +154,7 @@ export const Policy =
154
154
  );
155
155
 
156
156
  const asEffect = () =>
157
- Effect.all([Self.asEffect(), Service]).pipe(
157
+ Effect.all([Self, Service]).pipe(
158
158
  Effect.map(
159
159
  ([resource, fn]) =>
160
160
  (...args: any[]) =>
@@ -174,7 +174,7 @@ export const Policy =
174
174
  // @ts-expect-error
175
175
  return Object.assign(self, {
176
176
  [Symbol.iterator]() {
177
- return new SingleShotGen(this);
177
+ return new SingleShotGen(asEffect());
178
178
  },
179
179
  asEffect,
180
180
  bind: (...args: any[]) =>
@@ -190,9 +190,7 @@ export const Policy =
190
190
  self,
191
191
  // @ts-expect-error
192
192
  (...args: Parameters<Shape>) =>
193
- Self.asEffect().pipe(
194
- Effect.flatMap((self) => fn(self as ResourceLike, ...args)),
195
- ),
193
+ Self.use((self) => fn(self as ResourceLike, ...args)),
196
194
  ),
197
195
  effect: (
198
196
  fn: Effect.Effect<
@@ -209,9 +207,7 @@ export const Policy =
209
207
  fn,
210
208
  (fn) =>
211
209
  (...args: Parameters<Shape>) =>
212
- Effect.flatMap(Self.asEffect(), (self) =>
213
- fn(self as ResourceLike, ...args),
214
- ),
210
+ Self.use((self) => fn(self as ResourceLike, ...args)),
215
211
  ),
216
212
  ),
217
213
  },
@@ -3,7 +3,7 @@ import * as Effect from "effect/Effect";
3
3
  import * as FileSystem from "effect/FileSystem";
4
4
  import * as Path from "effect/Path";
5
5
  import { ChildProcess } from "effect/unstable/process";
6
- import { exec } from "../Agent/util/exec.ts";
6
+ import { exec } from "../Util/exec.ts";
7
7
 
8
8
  export class DockerCommandError extends Data.TaggedError("DockerCommandError")<{
9
9
  readonly command: string;
package/src/Cli/Event.ts CHANGED
@@ -12,6 +12,10 @@ export type ApplyStatus =
12
12
  | "deleted"
13
13
  | "replacing"
14
14
  | "replaced"
15
+ // Task lifecycle (see {@link Task})
16
+ | "running"
17
+ | "ran"
18
+ | "skipped"
15
19
  | "fail";
16
20
 
17
21
  export type ApplyEvent = AnnotateEvent | StatusChangeEvent;