alchemy 2.0.0-beta.37 → 2.0.0-beta.39
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.
- package/bin/exec.js +488 -69
- package/bin/exec.js.map +1 -1
- package/lib/AWS/AutoScaling/LaunchTemplate.d.ts +1 -1
- package/lib/AWS/CloudWatch/common.d.ts +1 -1
- package/lib/AWS/Credentials.d.ts.map +1 -1
- package/lib/AWS/Credentials.js +1 -2
- package/lib/AWS/Credentials.js.map +1 -1
- package/lib/AWS/DynamoDB/Stream.d.ts.map +1 -1
- package/lib/AWS/DynamoDB/Stream.js +1 -1
- package/lib/AWS/DynamoDB/Stream.js.map +1 -1
- package/lib/AWS/EC2/Instance.d.ts +1 -1
- package/lib/AWS/EC2/hosted.d.ts +1 -1
- package/lib/AWS/EC2/hosted.d.ts.map +1 -1
- package/lib/AWS/EC2/hosted.js +3 -5
- package/lib/AWS/EC2/hosted.js.map +1 -1
- package/lib/AWS/ECS/Task.d.ts +1 -1
- package/lib/AWS/ECS/Task.d.ts.map +1 -1
- package/lib/AWS/ECS/Task.js +3 -5
- package/lib/AWS/ECS/Task.js.map +1 -1
- package/lib/AWS/Endpoint.d.ts.map +1 -1
- package/lib/AWS/Endpoint.js +1 -2
- package/lib/AWS/Endpoint.js.map +1 -1
- package/lib/AWS/Environment.d.ts +2 -2
- package/lib/AWS/EventBridge/EventSource.d.ts.map +1 -1
- package/lib/AWS/EventBridge/EventSource.js +1 -1
- package/lib/AWS/EventBridge/EventSource.js.map +1 -1
- package/lib/AWS/Kinesis/StreamEventSource.d.ts.map +1 -1
- package/lib/AWS/Kinesis/StreamEventSource.js +1 -1
- package/lib/AWS/Kinesis/StreamEventSource.js.map +1 -1
- package/lib/AWS/Lambda/BucketEventSource.d.ts +1 -1
- package/lib/AWS/Lambda/EventBridgeEventSource.d.ts +1 -1
- package/lib/AWS/Lambda/Function.d.ts +1 -1
- package/lib/AWS/Lambda/Function.d.ts.map +1 -1
- package/lib/AWS/Lambda/Function.js +7 -11
- package/lib/AWS/Lambda/Function.js.map +1 -1
- package/lib/AWS/Lambda/QueueEventSource.d.ts +1 -1
- package/lib/AWS/Lambda/StreamEventSource.d.ts +1 -1
- package/lib/AWS/Lambda/TableEventSource.d.ts +1 -1
- package/lib/AWS/Lambda/TopicEventSource.d.ts +1 -1
- package/lib/AWS/Organizations/common.d.ts +1 -1
- package/lib/AWS/Providers.d.ts.map +1 -1
- package/lib/AWS/Providers.js +21 -3
- package/lib/AWS/Providers.js.map +1 -1
- package/lib/AWS/Region.d.ts +1 -1
- package/lib/AWS/Region.d.ts.map +1 -1
- package/lib/AWS/Region.js +2 -3
- package/lib/AWS/Region.js.map +1 -1
- package/lib/AWS/S3/Bucket.d.ts.map +1 -1
- package/lib/AWS/S3/Bucket.js +5 -2
- package/lib/AWS/S3/Bucket.js.map +1 -1
- package/lib/AWS/S3/BucketNotifications.d.ts.map +1 -1
- package/lib/AWS/S3/BucketNotifications.js +1 -1
- package/lib/AWS/S3/BucketNotifications.js.map +1 -1
- package/lib/AWS/SNS/TopicEventSource.d.ts.map +1 -1
- package/lib/AWS/SNS/TopicEventSource.js +1 -1
- package/lib/AWS/SNS/TopicEventSource.js.map +1 -1
- package/lib/AWS/SQS/Queue.d.ts.map +1 -1
- package/lib/AWS/SQS/Queue.js +23 -5
- package/lib/AWS/SQS/Queue.js.map +1 -1
- package/lib/Action.d.ts +77 -0
- package/lib/Action.d.ts.map +1 -0
- package/lib/Action.js +89 -0
- package/lib/Action.js.map +1 -0
- package/lib/AlchemyContext.d.ts +1 -1
- package/lib/Apply.d.ts.map +1 -1
- package/lib/Apply.js +222 -3
- package/lib/Apply.js.map +1 -1
- package/lib/Artifacts.d.ts +1 -1
- package/lib/Artifacts.d.ts.map +1 -1
- package/lib/Artifacts.js +1 -1
- package/lib/Artifacts.js.map +1 -1
- package/lib/Auth/AuthProvider.js +1 -1
- package/lib/Auth/AuthProvider.js.map +1 -1
- package/lib/Auth/Env.d.ts.map +1 -1
- package/lib/Auth/Env.js +4 -12
- package/lib/Auth/Env.js.map +1 -1
- package/lib/Binding.d.ts.map +1 -1
- package/lib/Binding.js +5 -5
- package/lib/Binding.js.map +1 -1
- package/lib/Build/Command.d.ts +1 -1
- package/lib/Build/Memo.d.ts +1 -1
- package/lib/Bundle/Docker.d.ts +3 -3
- package/lib/Bundle/Docker.js +1 -1
- package/lib/Bundle/Docker.js.map +1 -1
- package/lib/Bundle/TempRoot.d.ts +3 -3
- package/lib/Cli/Event.d.ts +1 -1
- package/lib/Cli/Event.d.ts.map +1 -1
- package/lib/Cli/NamespaceTree.d.ts +11 -5
- package/lib/Cli/NamespaceTree.d.ts.map +1 -1
- package/lib/Cli/NamespaceTree.js +28 -1
- package/lib/Cli/NamespaceTree.js.map +1 -1
- package/lib/Cli/commands/_shared.d.ts +1 -1
- package/lib/Cli/commands/_shared.js +2 -2
- package/lib/Cli/commands/_shared.js.map +1 -1
- package/lib/Cli/commands/aws.d.ts +1 -1
- package/lib/Cli/commands/cloudflare.d.ts +2 -2
- package/lib/Cli/commands/cloudflare.d.ts.map +1 -1
- package/lib/Cli/commands/deploy.d.ts +9 -9
- package/lib/Cli/commands/deploy.js +1 -1
- package/lib/Cli/commands/deploy.js.map +1 -1
- package/lib/Cli/commands/login.d.ts +1 -1
- package/lib/Cli/commands/logs.d.ts +1 -1
- package/lib/Cli/commands/logs.js.map +1 -1
- package/lib/Cli/commands/profile.d.ts +1 -3
- package/lib/Cli/commands/profile.d.ts.map +1 -1
- package/lib/Cli/commands/state.d.ts +1 -1
- package/lib/Cli/commands/state.d.ts.map +1 -1
- package/lib/Cli/commands/tail.d.ts +1 -1
- package/lib/Cli/commands/tail.js.map +1 -1
- package/lib/Cli/tui/components/Plan.d.ts.map +1 -1
- package/lib/Cli/tui/components/Plan.js +27 -13
- package/lib/Cli/tui/components/Plan.js.map +1 -1
- package/lib/Cli/tui/components/PlanProgress.d.ts +8 -1
- package/lib/Cli/tui/components/PlanProgress.d.ts.map +1 -1
- package/lib/Cli/tui/components/PlanProgress.js +95 -16
- package/lib/Cli/tui/components/PlanProgress.js.map +1 -1
- package/lib/Cloudflare/Access.js +0 -1
- package/lib/Cloudflare/Access.js.map +1 -1
- package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDatasetBinding.js +1 -1
- package/lib/Cloudflare/AnalyticsEngine/AnalyticsEngineDatasetBinding.js.map +1 -1
- package/lib/Cloudflare/Artifacts/ArtifactsBinding.js +1 -1
- package/lib/Cloudflare/Artifacts/ArtifactsBinding.js.map +1 -1
- package/lib/Cloudflare/CloudflareEnvironment.d.ts +1 -1
- package/lib/Cloudflare/Container/Container.js +0 -1
- package/lib/Cloudflare/Container/Container.js.map +1 -1
- package/lib/Cloudflare/Container/ContainerApplication.d.ts +1 -1
- package/lib/Cloudflare/Container/ContainerApplication.d.ts.map +1 -1
- package/lib/Cloudflare/Container/ContainerApplication.js +4 -6
- package/lib/Cloudflare/Container/ContainerApplication.js.map +1 -1
- package/lib/Cloudflare/Container/ContainerBinding.js +2 -2
- package/lib/Cloudflare/Container/ContainerBinding.js.map +1 -1
- package/lib/Cloudflare/D1/D1Database.d.ts +1 -1
- package/lib/Cloudflare/D1/D1SqlFile.d.ts +2 -2
- package/lib/Cloudflare/Email/EmailAddress.d.ts +45 -0
- package/lib/Cloudflare/Email/EmailAddress.d.ts.map +1 -0
- package/lib/Cloudflare/Email/EmailAddress.js +99 -0
- package/lib/Cloudflare/Email/EmailAddress.js.map +1 -0
- package/lib/Cloudflare/Email/EmailRouting.d.ts +42 -0
- package/lib/Cloudflare/Email/EmailRouting.d.ts.map +1 -0
- package/lib/Cloudflare/Email/EmailRouting.js +89 -0
- package/lib/Cloudflare/Email/EmailRouting.js.map +1 -0
- package/lib/Cloudflare/Email/EmailRule.d.ts +80 -0
- package/lib/Cloudflare/Email/EmailRule.d.ts.map +1 -0
- package/lib/Cloudflare/Email/EmailRule.js +110 -0
- package/lib/Cloudflare/Email/EmailRule.js.map +1 -0
- package/lib/Cloudflare/Email/SendEmail.d.ts +74 -0
- package/lib/Cloudflare/Email/SendEmail.d.ts.map +1 -0
- package/lib/Cloudflare/Email/SendEmail.js +19 -0
- package/lib/Cloudflare/Email/SendEmail.js.map +1 -0
- package/lib/Cloudflare/Email/SendEmailBinding.d.ts +64 -0
- package/lib/Cloudflare/Email/SendEmailBinding.d.ts.map +1 -0
- package/lib/Cloudflare/Email/SendEmailBinding.js +54 -0
- package/lib/Cloudflare/Email/SendEmailBinding.js.map +1 -0
- package/lib/Cloudflare/Email/index.d.ts +6 -0
- package/lib/Cloudflare/Email/index.d.ts.map +1 -0
- package/lib/Cloudflare/Email/index.js +6 -0
- package/lib/Cloudflare/Email/index.js.map +1 -0
- package/lib/Cloudflare/Hyperdrive/Hyperdrive.d.ts +1 -1
- package/lib/Cloudflare/Images/ImagesBinding.js +1 -1
- package/lib/Cloudflare/Images/ImagesBinding.js.map +1 -1
- package/lib/Cloudflare/KV/KVNamespaceBinding.js +1 -1
- package/lib/Cloudflare/KV/KVNamespaceBinding.js.map +1 -1
- package/lib/Cloudflare/Local/Sidecar.d.ts +1 -1
- package/lib/Cloudflare/Local/SidecarHandlers.d.ts +1 -1
- package/lib/Cloudflare/Local/SidecarServer.js +1 -1
- package/lib/Cloudflare/Local/SidecarServer.js.map +1 -1
- package/lib/Cloudflare/Providers.d.ts.map +1 -1
- package/lib/Cloudflare/Providers.js +6 -1
- package/lib/Cloudflare/Providers.js.map +1 -1
- package/lib/Cloudflare/Queue/QueueBinding.js +1 -1
- package/lib/Cloudflare/Queue/QueueBinding.js.map +1 -1
- package/lib/Cloudflare/R2/R2BucketBinding.js +1 -1
- package/lib/Cloudflare/R2/R2BucketBinding.js.map +1 -1
- package/lib/Cloudflare/SecretsStore/SecretBinding.js +1 -1
- package/lib/Cloudflare/SecretsStore/SecretBinding.js.map +1 -1
- package/lib/Cloudflare/StateStore/Api.d.ts +1 -1
- package/lib/Cloudflare/StateStore/State.d.ts +2 -2
- package/lib/Cloudflare/Workers/Assets.d.ts +2 -2
- package/lib/Cloudflare/Workers/Assets.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/Assets.js +5 -4
- package/lib/Cloudflare/Workers/Assets.js.map +1 -1
- package/lib/Cloudflare/Workers/HttpServer.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/HttpServer.js +25 -3
- package/lib/Cloudflare/Workers/HttpServer.js.map +1 -1
- package/lib/Cloudflare/Workers/InferEnv.d.ts +1 -1
- package/lib/Cloudflare/Workers/InferEnv.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/Worker.d.ts +4 -3
- package/lib/Cloudflare/Workers/Worker.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/Worker.js +67 -32
- package/lib/Cloudflare/Workers/Worker.js.map +1 -1
- package/lib/Cloudflare/Workers/WorkerBundle.d.ts +1 -1
- package/lib/Cloudflare/Workers/WorkerBundle.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/WorkerBundle.js +4 -6
- package/lib/Cloudflare/Workers/WorkerBundle.js.map +1 -1
- package/lib/Cloudflare/Workers/WorkerName.d.ts +1 -1
- package/lib/Cloudflare/Workers/Workflow.js +2 -2
- package/lib/Cloudflare/Workers/Workflow.js.map +1 -1
- package/lib/Cloudflare/index.d.ts +1 -0
- package/lib/Cloudflare/index.d.ts.map +1 -1
- package/lib/Cloudflare/index.js +1 -0
- package/lib/Cloudflare/index.js.map +1 -1
- package/lib/Construct.d.ts +3 -3
- package/lib/Construct.d.ts.map +1 -1
- package/lib/Construct.js.map +1 -1
- package/lib/Deploy.d.ts +1 -1
- package/lib/Destroy.d.ts +1 -1
- package/lib/Destroy.d.ts.map +1 -1
- package/lib/Destroy.js +1 -0
- package/lib/Destroy.js.map +1 -1
- package/lib/Drizzle/Providers.d.ts +1 -1
- package/lib/Drizzle/Schema.d.ts +1 -1
- package/lib/GitHub/Providers.d.ts +1 -1
- package/lib/Http.d.ts +1 -1
- package/lib/Http.d.ts.map +1 -1
- package/lib/Http.js +1 -1
- package/lib/Http.js.map +1 -1
- package/lib/Namespace.d.ts.map +1 -1
- package/lib/Namespace.js +3 -4
- package/lib/Namespace.js.map +1 -1
- package/lib/Neon/Branch.d.ts +2 -2
- package/lib/Neon/Branch.d.ts.map +1 -1
- package/lib/Neon/Branch.js +59 -27
- package/lib/Neon/Branch.js.map +1 -1
- package/lib/Neon/Credentials.d.ts +2 -2
- package/lib/Neon/Credentials.d.ts.map +1 -1
- package/lib/Neon/Credentials.js +2 -2
- package/lib/Neon/Credentials.js.map +1 -1
- package/lib/Neon/NeonEnvironment.d.ts +1 -1
- package/lib/Neon/Project.d.ts +25 -1
- package/lib/Neon/Project.d.ts.map +1 -1
- package/lib/Neon/Project.js +121 -42
- package/lib/Neon/Project.js.map +1 -1
- package/lib/Neon/Providers.d.ts +1 -1
- package/lib/Neon/SqlFile.d.ts +2 -2
- package/lib/Output.d.ts +3 -4
- package/lib/Output.d.ts.map +1 -1
- package/lib/Output.js +7 -4
- package/lib/Output.js.map +1 -1
- package/lib/PhysicalName.d.ts +1 -1
- package/lib/Plan.d.ts +36 -1
- package/lib/Plan.d.ts.map +1 -1
- package/lib/Plan.js +197 -31
- package/lib/Plan.js.map +1 -1
- package/lib/Platform.js +6 -6
- package/lib/Platform.js.map +1 -1
- package/lib/Provider.d.ts +1 -1
- package/lib/Provider.d.ts.map +1 -1
- package/lib/Provider.js +1 -1
- package/lib/Provider.js.map +1 -1
- package/lib/Random.d.ts +1 -1
- package/lib/Random.d.ts.map +1 -1
- package/lib/Random.js +1 -1
- package/lib/Random.js.map +1 -1
- package/lib/Resource.d.ts.map +1 -1
- package/lib/Resource.js +2 -25
- package/lib/Resource.js.map +1 -1
- package/lib/Runtime.d.ts +24 -0
- package/lib/Runtime.d.ts.map +1 -0
- package/lib/Runtime.js +31 -0
- package/lib/Runtime.js.map +1 -0
- package/lib/Secret.js +1 -1
- package/lib/Secret.js.map +1 -1
- package/lib/Sidecar/RpcClient.d.ts +1 -1
- package/lib/Sidecar/RpcPaths.d.ts +1 -1
- package/lib/Sidecar/RpcServer.d.ts +1 -1
- package/lib/Sidecar/RpcServices.d.ts +1 -1
- package/lib/Stack.d.ts +7 -2
- package/lib/Stack.d.ts.map +1 -1
- package/lib/Stack.js +4 -4
- package/lib/Stack.js.map +1 -1
- package/lib/State/ActionState.d.ts +48 -0
- package/lib/State/ActionState.d.ts.map +1 -0
- package/lib/State/ActionState.js +1 -0
- package/lib/State/ActionState.js.map +1 -0
- package/lib/State/HttpStateStore.d.ts.map +1 -1
- package/lib/State/HttpStateStore.js +1 -1
- package/lib/State/HttpStateStore.js.map +1 -1
- package/lib/State/InMemoryState.d.ts.map +1 -1
- package/lib/State/InMemoryState.js.map +1 -1
- package/lib/State/LocalState.d.ts +2 -2
- package/lib/State/ResourceState.d.ts +5 -0
- package/lib/State/ResourceState.d.ts.map +1 -1
- package/lib/State/State.d.ts +10 -2
- package/lib/State/State.d.ts.map +1 -1
- package/lib/State/State.js +2 -0
- package/lib/State/State.js.map +1 -1
- package/lib/State/index.d.ts +1 -0
- package/lib/State/index.d.ts.map +1 -1
- package/lib/State/index.js +1 -0
- package/lib/State/index.js.map +1 -1
- package/lib/Test/Core.d.ts +2 -2
- package/lib/Test/Core.d.ts.map +1 -1
- package/lib/Test/Core.js +4 -1
- package/lib/Test/Core.js.map +1 -1
- package/lib/Util/FileLogger.d.ts +1 -1
- package/lib/Util/effect.js +4 -4
- package/lib/Util/effect.js.map +1 -1
- package/lib/Util/exec.d.ts.map +1 -0
- package/lib/Util/exec.js.map +1 -0
- package/lib/Util/hash.d.ts +8 -0
- package/lib/Util/hash.d.ts.map +1 -0
- package/lib/Util/hash.js +11 -0
- package/lib/Util/hash.js.map +1 -0
- package/lib/Util/ignore.d.ts +40 -0
- package/lib/Util/ignore.d.ts.map +1 -0
- package/lib/Util/ignore.js +591 -0
- package/lib/Util/ignore.js.map +1 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/tsconfig.test.tsbuildinfo +1 -1
- package/package.json +22 -28
- package/src/AWS/Credentials.ts +1 -2
- package/src/AWS/DynamoDB/Stream.ts +1 -4
- package/src/AWS/EC2/hosted.ts +14 -16
- package/src/AWS/ECS/Task.ts +14 -16
- package/src/AWS/Endpoint.ts +2 -5
- package/src/AWS/EventBridge/EventSource.ts +1 -4
- package/src/AWS/Kinesis/StreamEventSource.ts +1 -4
- package/src/AWS/Lambda/Function.ts +31 -35
- package/src/AWS/Providers.ts +22 -3
- package/src/AWS/Region.ts +2 -3
- package/src/AWS/S3/Bucket.ts +7 -2
- package/src/AWS/S3/BucketNotifications.ts +1 -4
- package/src/AWS/SNS/TopicEventSource.ts +1 -4
- package/src/AWS/SQS/Queue.ts +40 -6
- package/src/Action.ts +280 -0
- package/src/Apply.ts +351 -23
- package/src/Artifacts.ts +2 -4
- package/src/Auth/AuthProvider.ts +1 -1
- package/src/Auth/Env.ts +12 -20
- package/src/Binding.ts +5 -9
- package/src/Bundle/Docker.ts +1 -1
- package/src/Cli/Event.ts +4 -0
- package/src/Cli/NamespaceTree.ts +52 -5
- package/src/Cli/commands/_shared.ts +2 -2
- package/src/Cli/commands/deploy.ts +1 -1
- package/src/Cli/commands/logs.ts +4 -4
- package/src/Cli/commands/tail.ts +4 -4
- package/src/Cli/tui/components/Plan.tsx +65 -17
- package/src/Cli/tui/components/PlanProgress.tsx +142 -32
- package/src/Cloudflare/Access.ts +1 -1
- package/src/Cloudflare/AnalyticsEngine/AnalyticsEngineDatasetBinding.ts +1 -1
- package/src/Cloudflare/Artifacts/ArtifactsBinding.ts +1 -1
- package/src/Cloudflare/Container/Container.ts +1 -1
- package/src/Cloudflare/Container/ContainerApplication.ts +4 -6
- package/src/Cloudflare/Container/ContainerBinding.ts +2 -2
- package/src/Cloudflare/Email/EmailAddress.ts +155 -0
- package/src/Cloudflare/Email/EmailRouting.ts +138 -0
- package/src/Cloudflare/Email/EmailRule.ts +210 -0
- package/src/Cloudflare/Email/SendEmail.ts +95 -0
- package/src/Cloudflare/Email/SendEmailBinding.ts +124 -0
- package/src/Cloudflare/Email/index.ts +5 -0
- package/src/Cloudflare/Images/ImagesBinding.ts +1 -1
- package/src/Cloudflare/KV/KVNamespaceBinding.ts +1 -1
- package/src/Cloudflare/Local/SidecarServer.ts +1 -1
- package/src/Cloudflare/Providers.ts +9 -0
- package/src/Cloudflare/Queue/QueueBinding.ts +1 -1
- package/src/Cloudflare/R2/R2BucketBinding.ts +1 -1
- package/src/Cloudflare/SecretsStore/SecretBinding.ts +1 -1
- package/src/Cloudflare/Workers/Assets.ts +5 -6
- package/src/Cloudflare/Workers/HttpServer.ts +37 -5
- package/src/Cloudflare/Workers/InferEnv.ts +15 -11
- package/src/Cloudflare/Workers/Worker.ts +78 -36
- package/src/Cloudflare/Workers/WorkerBundle.ts +4 -6
- package/src/Cloudflare/Workers/Workflow.ts +2 -2
- package/src/Cloudflare/index.ts +1 -0
- package/src/Construct.ts +3 -7
- package/src/Destroy.ts +1 -0
- package/src/Http.ts +1 -1
- package/src/Namespace.ts +4 -4
- package/src/Neon/Branch.ts +93 -59
- package/src/Neon/Credentials.ts +2 -2
- package/src/Neon/Project.ts +193 -64
- package/src/Output.ts +9 -7
- package/src/Plan.ts +303 -53
- package/src/Platform.ts +7 -7
- package/src/Provider.ts +8 -3
- package/src/Random.ts +1 -1
- package/src/Resource.ts +2 -25
- package/src/Runtime.ts +38 -0
- package/src/Secret.ts +1 -1
- package/src/Stack.ts +10 -6
- package/src/State/ActionState.ts +51 -0
- package/src/State/HttpStateStore.ts +6 -2
- package/src/State/InMemoryState.ts +3 -3
- package/src/State/ResourceState.ts +5 -0
- package/src/State/State.ts +17 -2
- package/src/State/index.ts +1 -0
- package/src/Test/Core.ts +4 -3
- package/src/Util/effect.ts +4 -4
- package/src/Util/hash.ts +14 -0
- package/src/Util/ignore.ts +815 -0
- package/src/index.ts +6 -0
- package/lib/Agent/Agent.d.ts +0 -9
- package/lib/Agent/Agent.d.ts.map +0 -1
- package/lib/Agent/Agent.js +0 -10
- package/lib/Agent/Agent.js.map +0 -1
- package/lib/Agent/Aspect.d.ts +0 -51
- package/lib/Agent/Aspect.d.ts.map +0 -1
- package/lib/Agent/Aspect.js +0 -45
- package/lib/Agent/Aspect.js.map +0 -1
- package/lib/Agent/AspectGraph.d.ts +0 -45
- package/lib/Agent/AspectGraph.d.ts.map +0 -1
- package/lib/Agent/AspectGraph.js +0 -39
- package/lib/Agent/AspectGraph.js.map +0 -1
- package/lib/Agent/ContextPlugin.d.ts +0 -8
- package/lib/Agent/ContextPlugin.d.ts.map +0 -1
- package/lib/Agent/ContextPlugin.js +0 -3
- package/lib/Agent/ContextPlugin.js.map +0 -1
- package/lib/Agent/Plugin.d.ts +0 -18
- package/lib/Agent/Plugin.d.ts.map +0 -1
- package/lib/Agent/Plugin.js +0 -8
- package/lib/Agent/Plugin.js.map +0 -1
- package/lib/Agent/chat/channel.d.ts +0 -9
- package/lib/Agent/chat/channel.d.ts.map +0 -1
- package/lib/Agent/chat/channel.js +0 -10
- package/lib/Agent/chat/channel.js.map +0 -1
- package/lib/Agent/chat/event.d.ts +0 -32
- package/lib/Agent/chat/event.d.ts.map +0 -1
- package/lib/Agent/chat/event.js +0 -32
- package/lib/Agent/chat/event.js.map +0 -1
- package/lib/Agent/chat/message.d.ts +0 -22
- package/lib/Agent/chat/message.d.ts.map +0 -1
- package/lib/Agent/chat/message.js +0 -31
- package/lib/Agent/chat/message.js.map +0 -1
- package/lib/Agent/chat/service.d.ts +0 -102
- package/lib/Agent/chat/service.d.ts.map +0 -1
- package/lib/Agent/chat/service.js +0 -79
- package/lib/Agent/chat/service.js.map +0 -1
- package/lib/Agent/chat/thread.d.ts +0 -13
- package/lib/Agent/chat/thread.d.ts.map +0 -1
- package/lib/Agent/chat/thread.js +0 -16
- package/lib/Agent/chat/thread.js.map +0 -1
- package/lib/Agent/coding/bash.d.ts +0 -36
- package/lib/Agent/coding/bash.d.ts.map +0 -1
- package/lib/Agent/coding/bash.js +0 -170
- package/lib/Agent/coding/bash.js.map +0 -1
- package/lib/Agent/coding/edit.d.ts +0 -31
- package/lib/Agent/coding/edit.d.ts.map +0 -1
- package/lib/Agent/coding/edit.js +0 -90
- package/lib/Agent/coding/edit.js.map +0 -1
- package/lib/Agent/coding/glob.d.ts +0 -23
- package/lib/Agent/coding/glob.d.ts.map +0 -1
- package/lib/Agent/coding/glob.js +0 -78
- package/lib/Agent/coding/glob.js.map +0 -1
- package/lib/Agent/coding/grep.d.ts +0 -26
- package/lib/Agent/coding/grep.d.ts.map +0 -1
- package/lib/Agent/coding/grep.js +0 -105
- package/lib/Agent/coding/grep.js.map +0 -1
- package/lib/Agent/coding/index.d.ts +0 -8
- package/lib/Agent/coding/index.d.ts.map +0 -1
- package/lib/Agent/coding/index.js +0 -8
- package/lib/Agent/coding/index.js.map +0 -1
- package/lib/Agent/coding/read.d.ts +0 -27
- package/lib/Agent/coding/read.d.ts.map +0 -1
- package/lib/Agent/coding/read.js +0 -89
- package/lib/Agent/coding/read.js.map +0 -1
- package/lib/Agent/coding/readlints.d.ts +0 -19
- package/lib/Agent/coding/readlints.d.ts.map +0 -1
- package/lib/Agent/coding/readlints.js +0 -53
- package/lib/Agent/coding/readlints.js.map +0 -1
- package/lib/Agent/coding/write.d.ts +0 -22
- package/lib/Agent/coding/write.d.ts.map +0 -1
- package/lib/Agent/coding/write.js +0 -53
- package/lib/Agent/coding/write.js.map +0 -1
- package/lib/Agent/fs/file.d.ts +0 -12
- package/lib/Agent/fs/file.d.ts.map +0 -1
- package/lib/Agent/fs/file.js +0 -8
- package/lib/Agent/fs/file.js.map +0 -1
- package/lib/Agent/fs/folder.d.ts +0 -5
- package/lib/Agent/fs/folder.d.ts.map +0 -1
- package/lib/Agent/fs/folder.js +0 -3
- package/lib/Agent/fs/folder.js.map +0 -1
- package/lib/Agent/index.d.ts +0 -9
- package/lib/Agent/index.d.ts.map +0 -1
- package/lib/Agent/index.js +0 -9
- package/lib/Agent/index.js.map +0 -1
- package/lib/Agent/llm/error.d.ts +0 -208
- package/lib/Agent/llm/error.d.ts.map +0 -1
- package/lib/Agent/llm/error.js +0 -209
- package/lib/Agent/llm/error.js.map +0 -1
- package/lib/Agent/llm/index.d.ts +0 -5
- package/lib/Agent/llm/index.d.ts.map +0 -1
- package/lib/Agent/llm/index.js +0 -5
- package/lib/Agent/llm/index.js.map +0 -1
- package/lib/Agent/llm/llm.d.ts +0 -32
- package/lib/Agent/llm/llm.d.ts.map +0 -1
- package/lib/Agent/llm/llm.js +0 -74
- package/lib/Agent/llm/llm.js.map +0 -1
- package/lib/Agent/llm/stream-collectors.d.ts +0 -46
- package/lib/Agent/llm/stream-collectors.d.ts.map +0 -1
- package/lib/Agent/llm/stream-collectors.js +0 -33
- package/lib/Agent/llm/stream-collectors.js.map +0 -1
- package/lib/Agent/llm/stream-text-part.d.ts +0 -5
- package/lib/Agent/llm/stream-text-part.d.ts.map +0 -1
- package/lib/Agent/llm/stream-text-part.js +0 -4
- package/lib/Agent/llm/stream-text-part.js.map +0 -1
- package/lib/Agent/lsp/client.d.ts +0 -122
- package/lib/Agent/lsp/client.d.ts.map +0 -1
- package/lib/Agent/lsp/client.js +0 -180
- package/lib/Agent/lsp/client.js.map +0 -1
- package/lib/Agent/lsp/diagnostics.d.ts +0 -16
- package/lib/Agent/lsp/diagnostics.d.ts.map +0 -1
- package/lib/Agent/lsp/diagnostics.js +0 -48
- package/lib/Agent/lsp/diagnostics.js.map +0 -1
- package/lib/Agent/lsp/jsonrpc.d.ts +0 -90
- package/lib/Agent/lsp/jsonrpc.d.ts.map +0 -1
- package/lib/Agent/lsp/jsonrpc.js +0 -178
- package/lib/Agent/lsp/jsonrpc.js.map +0 -1
- package/lib/Agent/lsp/manager.d.ts +0 -38
- package/lib/Agent/lsp/manager.d.ts.map +0 -1
- package/lib/Agent/lsp/manager.js +0 -98
- package/lib/Agent/lsp/manager.js.map +0 -1
- package/lib/Agent/lsp/servers.d.ts +0 -28
- package/lib/Agent/lsp/servers.d.ts.map +0 -1
- package/lib/Agent/lsp/servers.js +0 -21
- package/lib/Agent/lsp/servers.js.map +0 -1
- package/lib/Agent/process/driver.d.ts +0 -10
- package/lib/Agent/process/driver.d.ts.map +0 -1
- package/lib/Agent/process/driver.js +0 -153
- package/lib/Agent/process/driver.js.map +0 -1
- package/lib/Agent/process/issue-service.d.ts +0 -44
- package/lib/Agent/process/issue-service.d.ts.map +0 -1
- package/lib/Agent/process/issue-service.js +0 -28
- package/lib/Agent/process/issue-service.js.map +0 -1
- package/lib/Agent/process/issue-tools.d.ts +0 -28
- package/lib/Agent/process/issue-tools.d.ts.map +0 -1
- package/lib/Agent/process/issue-tools.js +0 -28
- package/lib/Agent/process/issue-tools.js.map +0 -1
- package/lib/Agent/process/issue.d.ts +0 -16
- package/lib/Agent/process/issue.d.ts.map +0 -1
- package/lib/Agent/process/issue.js +0 -17
- package/lib/Agent/process/issue.js.map +0 -1
- package/lib/Agent/process/organization.d.ts +0 -4
- package/lib/Agent/process/organization.d.ts.map +0 -1
- package/lib/Agent/process/organization.js +0 -3
- package/lib/Agent/process/organization.js.map +0 -1
- package/lib/Agent/process/process.d.ts +0 -5
- package/lib/Agent/process/process.d.ts.map +0 -1
- package/lib/Agent/process/process.js +0 -3
- package/lib/Agent/process/process.js.map +0 -1
- package/lib/Agent/process/reply.d.ts +0 -16
- package/lib/Agent/process/reply.d.ts.map +0 -1
- package/lib/Agent/process/reply.js +0 -18
- package/lib/Agent/process/reply.js.map +0 -1
- package/lib/Agent/process/task.d.ts +0 -25
- package/lib/Agent/process/task.d.ts.map +0 -1
- package/lib/Agent/process/task.js +0 -26
- package/lib/Agent/process/task.js.map +0 -1
- package/lib/Agent/tool/index.d.ts +0 -4
- package/lib/Agent/tool/index.d.ts.map +0 -1
- package/lib/Agent/tool/index.js +0 -4
- package/lib/Agent/tool/index.js.map +0 -1
- package/lib/Agent/tool/parameter.d.ts +0 -12
- package/lib/Agent/tool/parameter.d.ts.map +0 -1
- package/lib/Agent/tool/parameter.js +0 -6
- package/lib/Agent/tool/parameter.js.map +0 -1
- package/lib/Agent/tool/result.d.ts +0 -17
- package/lib/Agent/tool/result.d.ts.map +0 -1
- package/lib/Agent/tool/result.js +0 -6
- package/lib/Agent/tool/result.js.map +0 -1
- package/lib/Agent/tool/tool.d.ts +0 -32
- package/lib/Agent/tool/tool.d.ts.map +0 -1
- package/lib/Agent/tool/tool.js +0 -16
- package/lib/Agent/tool/tool.js.map +0 -1
- package/lib/Agent/util/command-validator.d.ts +0 -12
- package/lib/Agent/util/command-validator.d.ts.map +0 -1
- package/lib/Agent/util/command-validator.js +0 -74
- package/lib/Agent/util/command-validator.js.map +0 -1
- package/lib/Agent/util/exec.d.ts.map +0 -1
- package/lib/Agent/util/exec.js.map +0 -1
- package/lib/Agent/util/parser.d.ts +0 -5
- package/lib/Agent/util/parser.d.ts.map +0 -1
- package/lib/Agent/util/parser.js +0 -41
- package/lib/Agent/util/parser.js.map +0 -1
- package/lib/Agent/util/replace.d.ts +0 -38
- package/lib/Agent/util/replace.d.ts.map +0 -1
- package/lib/Agent/util/replace.js +0 -458
- package/lib/Agent/util/replace.js.map +0 -1
- package/lib/Agent/util/ripgrep.d.ts +0 -109
- package/lib/Agent/util/ripgrep.d.ts.map +0 -1
- package/lib/Agent/util/ripgrep.js +0 -221
- package/lib/Agent/util/ripgrep.js.map +0 -1
- package/lib/Neon/api.d.ts +0 -258
- package/lib/Neon/api.d.ts.map +0 -1
- package/lib/Neon/api.js +0 -215
- package/lib/Neon/api.js.map +0 -1
- package/src/Agent/Agent.ts +0 -26
- package/src/Agent/Aspect.ts +0 -173
- package/src/Agent/AspectGraph.ts +0 -98
- package/src/Agent/ContextPlugin.ts +0 -18
- package/src/Agent/Plugin.ts +0 -29
- package/src/Agent/chat/channel.ts +0 -26
- package/src/Agent/chat/event.ts +0 -43
- package/src/Agent/chat/message.ts +0 -35
- package/src/Agent/chat/service.ts +0 -133
- package/src/Agent/chat/thread.ts +0 -17
- package/src/Agent/coding/bash.ts +0 -197
- package/src/Agent/coding/edit.ts +0 -152
- package/src/Agent/coding/glob.ts +0 -96
- package/src/Agent/coding/grep.ts +0 -143
- package/src/Agent/coding/index.ts +0 -7
- package/src/Agent/coding/read.ts +0 -119
- package/src/Agent/coding/readlints.ts +0 -78
- package/src/Agent/coding/write.ts +0 -79
- package/src/Agent/fs/file.ts +0 -22
- package/src/Agent/fs/folder.ts +0 -16
- package/src/Agent/index.ts +0 -9
- package/src/Agent/llm/error.ts +0 -330
- package/src/Agent/llm/index.ts +0 -4
- package/src/Agent/llm/llm.ts +0 -131
- package/src/Agent/llm/stream-collectors.ts +0 -58
- package/src/Agent/llm/stream-text-part.ts +0 -7
- package/src/Agent/lsp/client.ts +0 -293
- package/src/Agent/lsp/diagnostics.ts +0 -64
- package/src/Agent/lsp/jsonrpc.ts +0 -317
- package/src/Agent/lsp/manager.ts +0 -213
- package/src/Agent/lsp/servers.ts +0 -37
- package/src/Agent/process/driver.ts +0 -168
- package/src/Agent/process/issue-service.ts +0 -48
- package/src/Agent/process/issue-tools.ts +0 -33
- package/src/Agent/process/issue.ts +0 -22
- package/src/Agent/process/organization.ts +0 -16
- package/src/Agent/process/process.ts +0 -16
- package/src/Agent/process/reply.ts +0 -21
- package/src/Agent/process/task.ts +0 -34
- package/src/Agent/tool/index.ts +0 -3
- package/src/Agent/tool/parameter.ts +0 -35
- package/src/Agent/tool/result.ts +0 -51
- package/src/Agent/tool/tool.ts +0 -74
- package/src/Agent/util/command-validator.ts +0 -98
- package/src/Agent/util/parser.ts +0 -39
- package/src/Agent/util/replace.ts +0 -559
- package/src/Agent/util/ripgrep.ts +0 -256
- package/src/Neon/api.ts +0 -579
- /package/lib/{Agent/util → Util}/exec.d.ts +0 -0
- /package/lib/{Agent/util → Util}/exec.js +0 -0
- /package/src/{Agent/util → Util}/exec.ts +0 -0
package/src/Runtime.ts
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime helpers consumed by generated bundle entrypoints (Cloudflare
|
|
3
|
+
* Workers, Cloudflare Containers, AWS Lambda, …).
|
|
4
|
+
*
|
|
5
|
+
* Anything exported here runs *inside* the deployed function — keep the
|
|
6
|
+
* surface tiny and dependency-light.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import * as Layer from "effect/Layer";
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Resolve the user's default-export entrypoint into a `Layer` for the
|
|
13
|
+
* bundled runtime.
|
|
14
|
+
*
|
|
15
|
+
* `entrypoint` may be any of:
|
|
16
|
+
* - a `Layer` factory (`{ build: (...) => ... }`) — used as-is
|
|
17
|
+
* - an effect-class with `asEffect()` (Alchemy `Platform`/`Worker` shape)
|
|
18
|
+
* - a plain `Effect`
|
|
19
|
+
*
|
|
20
|
+
* Centralized so the inline ternary doesn't have to be re-emitted into
|
|
21
|
+
* every bundle template (and accidentally rewritten to `x : x` by a bulk
|
|
22
|
+
* replace, which silently swaps the class in for the Effect and bricks
|
|
23
|
+
* every deployed worker/lambda).
|
|
24
|
+
*/
|
|
25
|
+
export const makeEntrypointLayer = (
|
|
26
|
+
tag: any,
|
|
27
|
+
entrypoint: any,
|
|
28
|
+
): Layer.Layer<any> => {
|
|
29
|
+
if (typeof entrypoint?.build === "function") {
|
|
30
|
+
return entrypoint;
|
|
31
|
+
}
|
|
32
|
+
return Layer.effect(
|
|
33
|
+
tag,
|
|
34
|
+
typeof entrypoint?.asEffect === "function"
|
|
35
|
+
? entrypoint.asEffect()
|
|
36
|
+
: entrypoint,
|
|
37
|
+
);
|
|
38
|
+
};
|
package/src/Secret.ts
CHANGED
|
@@ -78,7 +78,7 @@ export const toOutput = <T, R = never>(
|
|
|
78
78
|
return source;
|
|
79
79
|
}
|
|
80
80
|
if (Config.isConfig(source)) {
|
|
81
|
-
return Output.asOutput(source
|
|
81
|
+
return Output.asOutput(source as any) as Output.Output<T, R>;
|
|
82
82
|
}
|
|
83
83
|
if (Effect.isEffect(source)) {
|
|
84
84
|
return Output.asOutput(source as any) as Output.Output<T, R>;
|
package/src/Stack.ts
CHANGED
|
@@ -20,6 +20,7 @@ import type { Input, InputProps } from "./Input.ts";
|
|
|
20
20
|
import * as Output from "./Output.ts";
|
|
21
21
|
import type { ResourceBinding, ResourceLike } from "./Resource.ts";
|
|
22
22
|
import { Stage } from "./Stage.ts";
|
|
23
|
+
import type { ActionLike } from "./Action.ts";
|
|
23
24
|
import type { State } from "./State/State.ts";
|
|
24
25
|
import { loadConfigProvider } from "./Util/ConfigProvider.ts";
|
|
25
26
|
import { effectClass, taggedFunction } from "./Util/effect.ts";
|
|
@@ -164,6 +165,10 @@ export interface StackSpec<Output = any> {
|
|
|
164
165
|
bindings: {
|
|
165
166
|
[logicalId: string]: ResourceBinding[];
|
|
166
167
|
};
|
|
168
|
+
/** Tasks registered on the stack, keyed by FQN. */
|
|
169
|
+
actions: {
|
|
170
|
+
[logicalId: string]: ActionLike;
|
|
171
|
+
};
|
|
167
172
|
output: Output;
|
|
168
173
|
}
|
|
169
174
|
|
|
@@ -221,7 +226,7 @@ export const make =
|
|
|
221
226
|
Layer.provideMerge(
|
|
222
227
|
Layer.effect(
|
|
223
228
|
Stack,
|
|
224
|
-
Stage.
|
|
229
|
+
Stage.pipe(
|
|
225
230
|
Effect.map(
|
|
226
231
|
(stage) =>
|
|
227
232
|
options.stack ?? {
|
|
@@ -229,6 +234,7 @@ export const make =
|
|
|
229
234
|
stage,
|
|
230
235
|
resources: {},
|
|
231
236
|
bindings: {},
|
|
237
|
+
actions: {},
|
|
232
238
|
},
|
|
233
239
|
),
|
|
234
240
|
),
|
|
@@ -240,7 +246,7 @@ export const make =
|
|
|
240
246
|
Effect.flatMap((context) =>
|
|
241
247
|
Effect.all([
|
|
242
248
|
effect,
|
|
243
|
-
Stack
|
|
249
|
+
Stack,
|
|
244
250
|
Effect.context<ROut | StackServices>(),
|
|
245
251
|
]).pipe(
|
|
246
252
|
Effect.map(
|
|
@@ -259,7 +265,7 @@ export const make =
|
|
|
259
265
|
);
|
|
260
266
|
|
|
261
267
|
export const CurrentStack = Effect.serviceOption(Stack)
|
|
262
|
-
|
|
268
|
+
|
|
263
269
|
.pipe(Effect.map(Option.getOrUndefined));
|
|
264
270
|
|
|
265
271
|
const platform = Layer.mergeAll(
|
|
@@ -278,9 +284,7 @@ const alchemy = (overrides?: { dev?: boolean }) =>
|
|
|
278
284
|
? Layer.provide(
|
|
279
285
|
Layer.effect(
|
|
280
286
|
AlchemyContext,
|
|
281
|
-
AlchemyContext.
|
|
282
|
-
Effect.map((ctx) => ({ ...ctx, dev: overrides.dev! })),
|
|
283
|
-
),
|
|
287
|
+
AlchemyContext.useSync((ctx) => ({ ...ctx, dev: overrides.dev! })),
|
|
284
288
|
),
|
|
285
289
|
AlchemyContextLive,
|
|
286
290
|
)
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { NamespaceNode } from "../Namespace.ts";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Persisted state for an {@link Action}. Actions share the same FQN
|
|
5
|
+
* namespace as resources but are discriminated by `kind: "action"`. The
|
|
6
|
+
* engine keys action state in the {@link State} store under the same `fqn`
|
|
7
|
+
* field as resources.
|
|
8
|
+
*/
|
|
9
|
+
export type ActionState = RunningActionState | RanActionState;
|
|
10
|
+
|
|
11
|
+
export type ActionStatus = ActionState["status"];
|
|
12
|
+
|
|
13
|
+
interface BaseActionState {
|
|
14
|
+
readonly kind: "action";
|
|
15
|
+
/** Type of the Action (e.g. "NightlySync"). Mirrors `resourceType` for resources. */
|
|
16
|
+
actionType: string;
|
|
17
|
+
/** Namespace of the Action. */
|
|
18
|
+
namespace: NamespaceNode | undefined;
|
|
19
|
+
/** Fully qualified name (namespace + logical id). */
|
|
20
|
+
fqn: string;
|
|
21
|
+
/** Logical id of the Action (stable across runs). */
|
|
22
|
+
logicalId: string;
|
|
23
|
+
/** Current status. */
|
|
24
|
+
status: ActionStatus;
|
|
25
|
+
/** FQNs of nodes that depend on this Action's output. */
|
|
26
|
+
downstream: string[];
|
|
27
|
+
/** Hash of the resolved input, used to skip noop runs. */
|
|
28
|
+
inputHash: string;
|
|
29
|
+
/** Resolved input snapshot from the most recent attempt. */
|
|
30
|
+
input: unknown;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* The Action body has started but persistence after success has not yet
|
|
35
|
+
* occurred. On resume the engine treats this as "should run" since the
|
|
36
|
+
* effect may have completed but the output wasn't durably recorded.
|
|
37
|
+
*/
|
|
38
|
+
export interface RunningActionState extends BaseActionState {
|
|
39
|
+
status: "running";
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* The Action body completed and its output is durably persisted. Future
|
|
44
|
+
* plans skip the body when `inputHash` matches the new resolved input
|
|
45
|
+
* (unless `--force` is set).
|
|
46
|
+
*/
|
|
47
|
+
export interface RanActionState extends BaseActionState {
|
|
48
|
+
status: "ran";
|
|
49
|
+
/** Materialized output value returned by the Action body. */
|
|
50
|
+
output: unknown;
|
|
51
|
+
}
|
|
@@ -7,7 +7,11 @@ import * as HttpApiClient from "effect/unstable/httpapi/HttpApiClient";
|
|
|
7
7
|
import { StateApi } from "./HttpStateApi.ts";
|
|
8
8
|
|
|
9
9
|
import type { ReplacedResourceState, ResourceState } from "./ResourceState.ts";
|
|
10
|
-
import {
|
|
10
|
+
import {
|
|
11
|
+
StateStoreError,
|
|
12
|
+
type StateService,
|
|
13
|
+
type PersistedState,
|
|
14
|
+
} from "./State.ts";
|
|
11
15
|
import { encodeState, reviveStateRecursive } from "./StateEncoding.ts";
|
|
12
16
|
|
|
13
17
|
/**
|
|
@@ -90,7 +94,7 @@ export const makeHttpStateStore = ({
|
|
|
90
94
|
),
|
|
91
95
|
mapStateStoreError,
|
|
92
96
|
),
|
|
93
|
-
set: <V extends
|
|
97
|
+
set: <V extends PersistedState>(request: {
|
|
94
98
|
stack: string;
|
|
95
99
|
stage: string;
|
|
96
100
|
fqn: string;
|
|
@@ -2,7 +2,7 @@ import * as Effect from "effect/Effect";
|
|
|
2
2
|
import * as Layer from "effect/Layer";
|
|
3
3
|
import { recordStateStoreInit } from "../Telemetry/Metrics.ts";
|
|
4
4
|
import type { ResourceState } from "./ResourceState.ts";
|
|
5
|
-
import { State } from "./State.ts";
|
|
5
|
+
import { State, type PersistedState } from "./State.ts";
|
|
6
6
|
|
|
7
7
|
type StackId = string;
|
|
8
8
|
type StageId = string;
|
|
@@ -54,7 +54,7 @@ export const InMemoryService = (
|
|
|
54
54
|
(s) => s.status === "replaced",
|
|
55
55
|
),
|
|
56
56
|
),
|
|
57
|
-
set: <V extends
|
|
57
|
+
set: <V extends PersistedState>({
|
|
58
58
|
stack,
|
|
59
59
|
stage,
|
|
60
60
|
fqn,
|
|
@@ -68,7 +68,7 @@ export const InMemoryService = (
|
|
|
68
68
|
Effect.sync(() => {
|
|
69
69
|
const stackState = (state[stack] ??= {});
|
|
70
70
|
const stageState = (stackState[stage] ??= {});
|
|
71
|
-
stageState[fqn] = value;
|
|
71
|
+
stageState[fqn] = value as ResourceState;
|
|
72
72
|
return value;
|
|
73
73
|
}),
|
|
74
74
|
delete: ({
|
|
@@ -27,6 +27,11 @@ export type ReplacementOldResourceState =
|
|
|
27
27
|
| ReplacementResourceState;
|
|
28
28
|
|
|
29
29
|
interface BaseResourceState {
|
|
30
|
+
/**
|
|
31
|
+
* Discriminator vs {@link ActionState}. Optional for back-compat: legacy
|
|
32
|
+
* persisted rows have no `kind` field and are implicitly resources.
|
|
33
|
+
*/
|
|
34
|
+
readonly kind?: "resource";
|
|
30
35
|
/** Type of the Resource (e.g. AWS.Lambda.Function) */
|
|
31
36
|
resourceType: string;
|
|
32
37
|
/** Namespace of the Resource */
|
package/src/State/State.ts
CHANGED
|
@@ -2,6 +2,21 @@ import * as Context from "effect/Context";
|
|
|
2
2
|
import * as Data from "effect/Data";
|
|
3
3
|
import * as Effect from "effect/Effect";
|
|
4
4
|
import type { ReplacedResourceState, ResourceState } from "./ResourceState.ts";
|
|
5
|
+
import type { ActionState } from "./ActionState.ts";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Anything persistable under an FQN. Resources are discriminated by status
|
|
9
|
+
* strings ("creating", "created", …) and Tasks by `kind: "action"`.
|
|
10
|
+
*/
|
|
11
|
+
export type PersistedState = ResourceState | ActionState;
|
|
12
|
+
|
|
13
|
+
export const isActionState = (
|
|
14
|
+
s: PersistedState | undefined,
|
|
15
|
+
): s is ActionState => !!s && (s as any).kind === "action";
|
|
16
|
+
|
|
17
|
+
export const isResourceState = (
|
|
18
|
+
s: PersistedState | undefined,
|
|
19
|
+
): s is ResourceState => !!s && (s as any).kind !== "task";
|
|
5
20
|
|
|
6
21
|
export class StateStoreError extends Data.TaggedError("StateStoreError")<{
|
|
7
22
|
message: string;
|
|
@@ -41,7 +56,7 @@ export interface StateService {
|
|
|
41
56
|
stack: string;
|
|
42
57
|
stage: string;
|
|
43
58
|
fqn: string;
|
|
44
|
-
}): Effect.Effect<
|
|
59
|
+
}): Effect.Effect<PersistedState | undefined, StateStoreError, never>;
|
|
45
60
|
/**
|
|
46
61
|
* List top-level resources that are still in replacement cleanup.
|
|
47
62
|
*
|
|
@@ -59,7 +74,7 @@ export interface StateService {
|
|
|
59
74
|
/**
|
|
60
75
|
* Set a resource by its FQN (namespace-qualified key).
|
|
61
76
|
*/
|
|
62
|
-
set<V extends
|
|
77
|
+
set<V extends PersistedState>(request: {
|
|
63
78
|
stack: string;
|
|
64
79
|
stage: string;
|
|
65
80
|
fqn: string;
|
package/src/State/index.ts
CHANGED
package/src/Test/Core.ts
CHANGED
|
@@ -67,9 +67,7 @@ export const resolveDev = (options: { dev?: boolean }): boolean => {
|
|
|
67
67
|
const overrideAlchemyContext = (overrides: { dev: boolean }) =>
|
|
68
68
|
Layer.effect(
|
|
69
69
|
AlchemyContext,
|
|
70
|
-
AlchemyContext.
|
|
71
|
-
Effect.map((ctx) => ({ ...ctx, ...overrides })),
|
|
72
|
-
),
|
|
70
|
+
AlchemyContext.pipe(Effect.map((ctx) => ({ ...ctx, ...overrides }))),
|
|
73
71
|
);
|
|
74
72
|
|
|
75
73
|
export type TestEffect<A, Req = never> = StackEffect<A, any, Req>;
|
|
@@ -153,6 +151,7 @@ export const withProviders = <A, E, R, ROut>(
|
|
|
153
151
|
stage: options.stage ?? "test",
|
|
154
152
|
resources: {},
|
|
155
153
|
bindings: {},
|
|
154
|
+
actions: {},
|
|
156
155
|
}),
|
|
157
156
|
),
|
|
158
157
|
Effect.provide(Layer.succeed(Stage, options.stage ?? "test")),
|
|
@@ -262,6 +261,7 @@ export const scratchStack = <ROut>(
|
|
|
262
261
|
stage,
|
|
263
262
|
resources: {},
|
|
264
263
|
bindings: {},
|
|
264
|
+
actions: {},
|
|
265
265
|
output: {},
|
|
266
266
|
}).pipe(
|
|
267
267
|
Effect.flatMap(apply),
|
|
@@ -274,6 +274,7 @@ export const scratchStack = <ROut>(
|
|
|
274
274
|
stage,
|
|
275
275
|
resources: {},
|
|
276
276
|
bindings: {},
|
|
277
|
+
actions: {},
|
|
277
278
|
}),
|
|
278
279
|
),
|
|
279
280
|
Effect.provide(Layer.succeed(Stage, stage)),
|
package/src/Util/effect.ts
CHANGED
|
@@ -27,10 +27,10 @@ export const effectClass: {
|
|
|
27
27
|
return impl;
|
|
28
28
|
}
|
|
29
29
|
static [Symbol.iterator]() {
|
|
30
|
-
return new SingleShotGen(this);
|
|
30
|
+
return new SingleShotGen(this.asEffect());
|
|
31
31
|
}
|
|
32
32
|
static pipe(...fns: any) {
|
|
33
|
-
return pipeArguments(this
|
|
33
|
+
return pipeArguments(this, fns);
|
|
34
34
|
}
|
|
35
35
|
},
|
|
36
36
|
impl,
|
|
@@ -44,9 +44,9 @@ export const taggedFunction = <
|
|
|
44
44
|
fn: Fn,
|
|
45
45
|
): Tag & Fn => {
|
|
46
46
|
const overrides = {
|
|
47
|
-
asEffect: () => tag
|
|
47
|
+
asEffect: () => tag,
|
|
48
48
|
[Symbol.iterator]: () => tag[Symbol.iterator](),
|
|
49
|
-
pipe: (...fns: any[]) => pipeArguments(tag
|
|
49
|
+
pipe: (...fns: any[]) => pipeArguments(tag, fns as any),
|
|
50
50
|
toString: () => `${tag.toString()}.${fn.name}`,
|
|
51
51
|
};
|
|
52
52
|
|
package/src/Util/hash.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Stable hash of a resolved Task input. Wrapped in `Effect.sync` so the
|
|
6
|
+
* call participates in the Effect runtime (tracing/interruption) per the
|
|
7
|
+
* Effect-platform conventions.
|
|
8
|
+
*/
|
|
9
|
+
export const hashInput = (input: unknown): Effect.Effect<string> =>
|
|
10
|
+
Effect.sync(() =>
|
|
11
|
+
createHash("sha256")
|
|
12
|
+
.update(JSON.stringify(input ?? null))
|
|
13
|
+
.digest("hex"),
|
|
14
|
+
);
|