@alchemy.run/modal 0.0.0 → 2.0.0-beta.87
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/LICENSE +201 -0
- package/README.md +96 -4
- package/lib/App.d.ts +143 -0
- package/lib/App.d.ts.map +1 -0
- package/lib/App.js +198 -0
- package/lib/App.js.map +1 -0
- package/lib/AuthProvider.d.ts +53 -0
- package/lib/AuthProvider.d.ts.map +1 -0
- package/lib/AuthProvider.js +209 -0
- package/lib/AuthProvider.js.map +1 -0
- package/lib/BindingHttp.d.ts +56 -0
- package/lib/BindingHttp.d.ts.map +1 -0
- package/lib/BindingHttp.js +50 -0
- package/lib/BindingHttp.js.map +1 -0
- package/lib/Blob.d.ts +34 -0
- package/lib/Blob.d.ts.map +1 -0
- package/lib/Blob.js +59 -0
- package/lib/Blob.js.map +1 -0
- package/lib/Bootstrap.d.ts +8 -0
- package/lib/Bootstrap.d.ts.map +1 -0
- package/lib/Bootstrap.js +26 -0
- package/lib/Bootstrap.js.map +1 -0
- package/lib/Cbor.d.ts +10 -0
- package/lib/Cbor.d.ts.map +1 -0
- package/lib/Cbor.js +177 -0
- package/lib/Cbor.js.map +1 -0
- package/lib/ConnectSandbox.d.ts +64 -0
- package/lib/ConnectSandbox.d.ts.map +1 -0
- package/lib/ConnectSandbox.js +33 -0
- package/lib/ConnectSandbox.js.map +1 -0
- package/lib/Container.d.ts +124 -0
- package/lib/Container.d.ts.map +1 -0
- package/lib/Container.js +1 -0
- package/lib/Container.js.map +1 -0
- package/lib/Contributions.d.ts +7 -0
- package/lib/Contributions.d.ts.map +1 -0
- package/lib/Contributions.js +6 -0
- package/lib/Contributions.js.map +1 -0
- package/lib/CreateDict.d.ts +83 -0
- package/lib/CreateDict.d.ts.map +1 -0
- package/lib/CreateDict.js +3 -0
- package/lib/CreateDict.js.map +1 -0
- package/lib/CreateDictHttp.d.ts +33 -0
- package/lib/CreateDictHttp.d.ts.map +1 -0
- package/lib/CreateDictHttp.js +67 -0
- package/lib/CreateDictHttp.js.map +1 -0
- package/lib/CreateImage.d.ts +98 -0
- package/lib/CreateImage.d.ts.map +1 -0
- package/lib/CreateImage.js +3 -0
- package/lib/CreateImage.js.map +1 -0
- package/lib/CreateImageHttp.d.ts +51 -0
- package/lib/CreateImageHttp.d.ts.map +1 -0
- package/lib/CreateImageHttp.js +87 -0
- package/lib/CreateImageHttp.js.map +1 -0
- package/lib/CreateQueue.d.ts +83 -0
- package/lib/CreateQueue.d.ts.map +1 -0
- package/lib/CreateQueue.js +3 -0
- package/lib/CreateQueue.js.map +1 -0
- package/lib/CreateQueueHttp.d.ts +31 -0
- package/lib/CreateQueueHttp.d.ts.map +1 -0
- package/lib/CreateQueueHttp.js +67 -0
- package/lib/CreateQueueHttp.js.map +1 -0
- package/lib/CreateSandbox.d.ts +186 -0
- package/lib/CreateSandbox.d.ts.map +1 -0
- package/lib/CreateSandbox.js +3 -0
- package/lib/CreateSandbox.js.map +1 -0
- package/lib/CreateSandboxHttp.d.ts +17 -0
- package/lib/CreateSandboxHttp.d.ts.map +1 -0
- package/lib/CreateSandboxHttp.js +117 -0
- package/lib/CreateSandboxHttp.js.map +1 -0
- package/lib/CreateSecret.d.ts +95 -0
- package/lib/CreateSecret.d.ts.map +1 -0
- package/lib/CreateSecret.js +3 -0
- package/lib/CreateSecret.js.map +1 -0
- package/lib/CreateSecretHttp.d.ts +24 -0
- package/lib/CreateSecretHttp.d.ts.map +1 -0
- package/lib/CreateSecretHttp.js +60 -0
- package/lib/CreateSecretHttp.js.map +1 -0
- package/lib/CreateVolume.d.ts +84 -0
- package/lib/CreateVolume.d.ts.map +1 -0
- package/lib/CreateVolume.js +3 -0
- package/lib/CreateVolume.js.map +1 -0
- package/lib/CreateVolumeHttp.d.ts +32 -0
- package/lib/CreateVolumeHttp.d.ts.map +1 -0
- package/lib/CreateVolumeHttp.js +69 -0
- package/lib/CreateVolumeHttp.js.map +1 -0
- package/lib/Credentials.d.ts +32 -0
- package/lib/Credentials.d.ts.map +1 -0
- package/lib/Credentials.js +44 -0
- package/lib/Credentials.js.map +1 -0
- package/lib/Dict.d.ts +147 -0
- package/lib/Dict.d.ts.map +1 -0
- package/lib/Dict.js +175 -0
- package/lib/Dict.js.map +1 -0
- package/lib/DictClient.d.ts +55 -0
- package/lib/DictClient.d.ts.map +1 -0
- package/lib/DictClient.js +89 -0
- package/lib/DictClient.js.map +1 -0
- package/lib/Domain.d.ts +86 -0
- package/lib/Domain.d.ts.map +1 -0
- package/lib/Domain.js +113 -0
- package/lib/Domain.js.map +1 -0
- package/lib/Endpoint.d.ts +181 -0
- package/lib/Endpoint.d.ts.map +1 -0
- package/lib/Endpoint.js +283 -0
- package/lib/Endpoint.js.map +1 -0
- package/lib/Environment.d.ts +174 -0
- package/lib/Environment.d.ts.map +1 -0
- package/lib/Environment.js +244 -0
- package/lib/Environment.js.map +1 -0
- package/lib/FetchServer.d.ts +105 -0
- package/lib/FetchServer.d.ts.map +1 -0
- package/lib/FetchServer.js +3 -0
- package/lib/FetchServer.js.map +1 -0
- package/lib/FetchServerHttp.d.ts +21 -0
- package/lib/FetchServerHttp.d.ts.map +1 -0
- package/lib/FetchServerHttp.js +84 -0
- package/lib/FetchServerHttp.js.map +1 -0
- package/lib/Function.d.ts +236 -0
- package/lib/Function.d.ts.map +1 -0
- package/lib/Function.js +273 -0
- package/lib/Function.js.map +1 -0
- package/lib/FunctionAutoscaler.d.ts +99 -0
- package/lib/FunctionAutoscaler.d.ts.map +1 -0
- package/lib/FunctionAutoscaler.js +136 -0
- package/lib/FunctionAutoscaler.js.map +1 -0
- package/lib/FunctionTarget.d.ts +61 -0
- package/lib/FunctionTarget.d.ts.map +1 -0
- package/lib/FunctionTarget.js +136 -0
- package/lib/FunctionTarget.js.map +1 -0
- package/lib/Image.d.ts +159 -0
- package/lib/Image.d.ts.map +1 -0
- package/lib/Image.js +203 -0
- package/lib/Image.js.map +1 -0
- package/lib/ImageBuild.d.ts +108 -0
- package/lib/ImageBuild.d.ts.map +1 -0
- package/lib/ImageBuild.js +157 -0
- package/lib/ImageBuild.js.map +1 -0
- package/lib/ImagePlan.d.ts +31 -0
- package/lib/ImagePlan.d.ts.map +1 -0
- package/lib/ImagePlan.js +70 -0
- package/lib/ImagePlan.js.map +1 -0
- package/lib/InferEnv.d.ts +26 -0
- package/lib/InferEnv.d.ts.map +1 -0
- package/lib/InferEnv.js +1 -0
- package/lib/InferEnv.js.map +1 -0
- package/lib/InvokeFunction.d.ts +186 -0
- package/lib/InvokeFunction.d.ts.map +1 -0
- package/lib/InvokeFunction.js +10 -0
- package/lib/InvokeFunction.js.map +1 -0
- package/lib/InvokeFunctionHttp.d.ts +39 -0
- package/lib/InvokeFunctionHttp.d.ts.map +1 -0
- package/lib/InvokeFunctionHttp.js +210 -0
- package/lib/InvokeFunctionHttp.js.map +1 -0
- package/lib/ModalBindings.d.ts +138 -0
- package/lib/ModalBindings.d.ts.map +1 -0
- package/lib/ModalBindings.js +223 -0
- package/lib/ModalBindings.js.map +1 -0
- package/lib/MountBucket.d.ts +80 -0
- package/lib/MountBucket.d.ts.map +1 -0
- package/lib/MountBucket.js +44 -0
- package/lib/MountBucket.js.map +1 -0
- package/lib/MountVolume.d.ts +77 -0
- package/lib/MountVolume.d.ts.map +1 -0
- package/lib/MountVolume.js +41 -0
- package/lib/MountVolume.js.map +1 -0
- package/lib/Mounts.d.ts +134 -0
- package/lib/Mounts.d.ts.map +1 -0
- package/lib/Mounts.js +87 -0
- package/lib/Mounts.js.map +1 -0
- package/lib/PersistentSandbox.d.ts +75 -0
- package/lib/PersistentSandbox.d.ts.map +1 -0
- package/lib/PersistentSandbox.js +93 -0
- package/lib/PersistentSandbox.js.map +1 -0
- package/lib/Providers.d.ts +23 -0
- package/lib/Providers.d.ts.map +1 -0
- package/lib/Providers.js +64 -0
- package/lib/Providers.js.map +1 -0
- package/lib/Proxy.d.ts +94 -0
- package/lib/Proxy.d.ts.map +1 -0
- package/lib/Proxy.js +132 -0
- package/lib/Proxy.js.map +1 -0
- package/lib/Queue.d.ts +147 -0
- package/lib/Queue.d.ts.map +1 -0
- package/lib/Queue.js +177 -0
- package/lib/Queue.js.map +1 -0
- package/lib/QueueClient.d.ts +64 -0
- package/lib/QueueClient.d.ts.map +1 -0
- package/lib/QueueClient.js +73 -0
- package/lib/QueueClient.js.map +1 -0
- package/lib/ReadApp.d.ts +85 -0
- package/lib/ReadApp.d.ts.map +1 -0
- package/lib/ReadApp.js +3 -0
- package/lib/ReadApp.js.map +1 -0
- package/lib/ReadAppHttp.d.ts +26 -0
- package/lib/ReadAppHttp.d.ts.map +1 -0
- package/lib/ReadAppHttp.js +106 -0
- package/lib/ReadAppHttp.js.map +1 -0
- package/lib/ReadDict.d.ts +39 -0
- package/lib/ReadDict.d.ts.map +1 -0
- package/lib/ReadDict.js +3 -0
- package/lib/ReadDict.js.map +1 -0
- package/lib/ReadDictHttp.d.ts +12 -0
- package/lib/ReadDictHttp.d.ts.map +1 -0
- package/lib/ReadDictHttp.js +23 -0
- package/lib/ReadDictHttp.js.map +1 -0
- package/lib/ReadFunction.d.ts +73 -0
- package/lib/ReadFunction.d.ts.map +1 -0
- package/lib/ReadFunction.js +3 -0
- package/lib/ReadFunction.js.map +1 -0
- package/lib/ReadFunctionHttp.d.ts +25 -0
- package/lib/ReadFunctionHttp.d.ts.map +1 -0
- package/lib/ReadFunctionHttp.js +63 -0
- package/lib/ReadFunctionHttp.js.map +1 -0
- package/lib/ReadQueue.d.ts +39 -0
- package/lib/ReadQueue.d.ts.map +1 -0
- package/lib/ReadQueue.js +3 -0
- package/lib/ReadQueue.js.map +1 -0
- package/lib/ReadQueueHttp.d.ts +12 -0
- package/lib/ReadQueueHttp.d.ts.map +1 -0
- package/lib/ReadQueueHttp.js +23 -0
- package/lib/ReadQueueHttp.js.map +1 -0
- package/lib/ReadServer.d.ts +72 -0
- package/lib/ReadServer.d.ts.map +1 -0
- package/lib/ReadServer.js +3 -0
- package/lib/ReadServer.js.map +1 -0
- package/lib/ReadServerHttp.d.ts +25 -0
- package/lib/ReadServerHttp.d.ts.map +1 -0
- package/lib/ReadServerHttp.js +70 -0
- package/lib/ReadServerHttp.js.map +1 -0
- package/lib/ReadVolume.d.ts +40 -0
- package/lib/ReadVolume.d.ts.map +1 -0
- package/lib/ReadVolume.js +3 -0
- package/lib/ReadVolume.js.map +1 -0
- package/lib/ReadVolumeHttp.d.ts +12 -0
- package/lib/ReadVolumeHttp.d.ts.map +1 -0
- package/lib/ReadVolumeHttp.js +24 -0
- package/lib/ReadVolumeHttp.js.map +1 -0
- package/lib/ReadWriteDict.d.ts +39 -0
- package/lib/ReadWriteDict.d.ts.map +1 -0
- package/lib/ReadWriteDict.js +3 -0
- package/lib/ReadWriteDict.js.map +1 -0
- package/lib/ReadWriteDictHttp.d.ts +12 -0
- package/lib/ReadWriteDictHttp.d.ts.map +1 -0
- package/lib/ReadWriteDictHttp.js +23 -0
- package/lib/ReadWriteDictHttp.js.map +1 -0
- package/lib/ReadWriteQueue.d.ts +40 -0
- package/lib/ReadWriteQueue.d.ts.map +1 -0
- package/lib/ReadWriteQueue.js +3 -0
- package/lib/ReadWriteQueue.js.map +1 -0
- package/lib/ReadWriteQueueHttp.d.ts +12 -0
- package/lib/ReadWriteQueueHttp.d.ts.map +1 -0
- package/lib/ReadWriteQueueHttp.js +23 -0
- package/lib/ReadWriteQueueHttp.js.map +1 -0
- package/lib/ReadWriteVolume.d.ts +40 -0
- package/lib/ReadWriteVolume.d.ts.map +1 -0
- package/lib/ReadWriteVolume.js +3 -0
- package/lib/ReadWriteVolume.js.map +1 -0
- package/lib/ReadWriteVolumeHttp.d.ts +12 -0
- package/lib/ReadWriteVolumeHttp.d.ts.map +1 -0
- package/lib/ReadWriteVolumeHttp.js +24 -0
- package/lib/ReadWriteVolumeHttp.js.map +1 -0
- package/lib/RuntimeOwner.d.ts +39 -0
- package/lib/RuntimeOwner.d.ts.map +1 -0
- package/lib/RuntimeOwner.js +85 -0
- package/lib/RuntimeOwner.js.map +1 -0
- package/lib/Sandbox.d.ts +215 -0
- package/lib/Sandbox.d.ts.map +1 -0
- package/lib/Sandbox.js +278 -0
- package/lib/Sandbox.js.map +1 -0
- package/lib/SandboxClient.d.ts +748 -0
- package/lib/SandboxClient.d.ts.map +1 -0
- package/lib/SandboxClient.js +710 -0
- package/lib/SandboxClient.js.map +1 -0
- package/lib/ScaleFunction.d.ts +54 -0
- package/lib/ScaleFunction.d.ts.map +1 -0
- package/lib/ScaleFunction.js +3 -0
- package/lib/ScaleFunction.js.map +1 -0
- package/lib/ScaleFunctionHttp.d.ts +21 -0
- package/lib/ScaleFunctionHttp.d.ts.map +1 -0
- package/lib/ScaleFunctionHttp.js +39 -0
- package/lib/ScaleFunctionHttp.js.map +1 -0
- package/lib/Secret.d.ts +170 -0
- package/lib/Secret.d.ts.map +1 -0
- package/lib/Secret.js +196 -0
- package/lib/Secret.js.map +1 -0
- package/lib/Server.d.ts +155 -0
- package/lib/Server.d.ts.map +1 -0
- package/lib/Server.js +184 -0
- package/lib/Server.js.map +1 -0
- package/lib/ServiceUser.d.ts +139 -0
- package/lib/ServiceUser.d.ts.map +1 -0
- package/lib/ServiceUser.js +210 -0
- package/lib/ServiceUser.js.map +1 -0
- package/lib/Volume.d.ts +170 -0
- package/lib/Volume.d.ts.map +1 -0
- package/lib/Volume.js +220 -0
- package/lib/Volume.js.map +1 -0
- package/lib/VolumeClient.d.ts +53 -0
- package/lib/VolumeClient.d.ts.map +1 -0
- package/lib/VolumeClient.js +22 -0
- package/lib/VolumeClient.js.map +1 -0
- package/lib/VolumeFiles.d.ts +94 -0
- package/lib/VolumeFiles.d.ts.map +1 -0
- package/lib/VolumeFiles.js +139 -0
- package/lib/VolumeFiles.js.map +1 -0
- package/lib/WebhookToken.d.ts +102 -0
- package/lib/WebhookToken.d.ts.map +1 -0
- package/lib/WebhookToken.js +176 -0
- package/lib/WebhookToken.js.map +1 -0
- package/lib/WorkspaceSettings.d.ts +70 -0
- package/lib/WorkspaceSettings.d.ts.map +1 -0
- package/lib/WorkspaceSettings.js +105 -0
- package/lib/WorkspaceSettings.js.map +1 -0
- package/lib/WriteApp.d.ts +38 -0
- package/lib/WriteApp.d.ts.map +1 -0
- package/lib/WriteApp.js +3 -0
- package/lib/WriteApp.js.map +1 -0
- package/lib/WriteAppHttp.d.ts +23 -0
- package/lib/WriteAppHttp.d.ts.map +1 -0
- package/lib/WriteAppHttp.js +36 -0
- package/lib/WriteAppHttp.js.map +1 -0
- package/lib/WriteDict.d.ts +39 -0
- package/lib/WriteDict.d.ts.map +1 -0
- package/lib/WriteDict.js +3 -0
- package/lib/WriteDict.js.map +1 -0
- package/lib/WriteDictHttp.d.ts +12 -0
- package/lib/WriteDictHttp.d.ts.map +1 -0
- package/lib/WriteDictHttp.js +23 -0
- package/lib/WriteDictHttp.js.map +1 -0
- package/lib/WriteQueue.d.ts +39 -0
- package/lib/WriteQueue.d.ts.map +1 -0
- package/lib/WriteQueue.js +3 -0
- package/lib/WriteQueue.js.map +1 -0
- package/lib/WriteQueueHttp.d.ts +12 -0
- package/lib/WriteQueueHttp.d.ts.map +1 -0
- package/lib/WriteQueueHttp.js +23 -0
- package/lib/WriteQueueHttp.js.map +1 -0
- package/lib/WriteSecret.d.ts +53 -0
- package/lib/WriteSecret.d.ts.map +1 -0
- package/lib/WriteSecret.js +3 -0
- package/lib/WriteSecret.js.map +1 -0
- package/lib/WriteSecretHttp.d.ts +23 -0
- package/lib/WriteSecretHttp.d.ts.map +1 -0
- package/lib/WriteSecretHttp.js +44 -0
- package/lib/WriteSecretHttp.js.map +1 -0
- package/lib/WriteVolume.d.ts +39 -0
- package/lib/WriteVolume.d.ts.map +1 -0
- package/lib/WriteVolume.js +3 -0
- package/lib/WriteVolume.js.map +1 -0
- package/lib/WriteVolumeHttp.d.ts +12 -0
- package/lib/WriteVolumeHttp.d.ts.map +1 -0
- package/lib/WriteVolumeHttp.js +24 -0
- package/lib/WriteVolumeHttp.js.map +1 -0
- package/lib/index.d.ts +80 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +78 -0
- package/lib/index.js.map +1 -0
- package/lib/internal/Declared.d.ts +29 -0
- package/lib/internal/Declared.d.ts.map +1 -0
- package/lib/internal/Declared.js +31 -0
- package/lib/internal/Declared.js.map +1 -0
- package/lib/internal/Deploy.d.ts +110 -0
- package/lib/internal/Deploy.d.ts.map +1 -0
- package/lib/internal/Deploy.js +230 -0
- package/lib/internal/Deploy.js.map +1 -0
- package/lib/internal/Entrypoint.d.ts +52 -0
- package/lib/internal/Entrypoint.d.ts.map +1 -0
- package/lib/internal/Entrypoint.js +193 -0
- package/lib/internal/Entrypoint.js.map +1 -0
- package/lib/internal/Rpc.d.ts +17 -0
- package/lib/internal/Rpc.d.ts.map +1 -0
- package/lib/internal/Rpc.js +49 -0
- package/lib/internal/Rpc.js.map +1 -0
- package/lib/internal/RpcAuth.d.ts +41 -0
- package/lib/internal/RpcAuth.d.ts.map +1 -0
- package/lib/internal/RpcAuth.js +100 -0
- package/lib/internal/RpcAuth.js.map +1 -0
- package/lib/internal/Runtime.d.ts +127 -0
- package/lib/internal/Runtime.d.ts.map +1 -0
- package/lib/internal/Runtime.js +246 -0
- package/lib/internal/Runtime.js.map +1 -0
- package/lib/internal/Tags.d.ts +19 -0
- package/lib/internal/Tags.d.ts.map +1 -0
- package/lib/internal/Tags.js +33 -0
- package/lib/internal/Tags.js.map +1 -0
- package/lib/internal/TcpConnect.d.ts +12 -0
- package/lib/internal/TcpConnect.d.ts.map +1 -0
- package/lib/internal/TcpConnect.js +46 -0
- package/lib/internal/TcpConnect.js.map +1 -0
- package/lib/internal/Transport.d.ts +13 -0
- package/lib/internal/Transport.d.ts.map +1 -0
- package/lib/internal/Transport.js +16 -0
- package/lib/internal/Transport.js.map +1 -0
- package/lib/internal.d.ts +71 -0
- package/lib/internal.d.ts.map +1 -0
- package/lib/internal.js +102 -0
- package/lib/internal.js.map +1 -0
- package/package.json +59 -3
- package/src/App.ts +262 -0
- package/src/AuthProvider.ts +295 -0
- package/src/BindingHttp.ts +112 -0
- package/src/Blob.ts +71 -0
- package/src/Bootstrap.ts +52 -0
- package/src/Cbor.ts +158 -0
- package/src/ConnectSandbox.ts +99 -0
- package/src/Container.ts +121 -0
- package/src/Contributions.ts +9 -0
- package/src/CreateDict.ts +95 -0
- package/src/CreateDictHttp.ts +91 -0
- package/src/CreateImage.ts +105 -0
- package/src/CreateImageHttp.ts +117 -0
- package/src/CreateQueue.ts +95 -0
- package/src/CreateQueueHttp.ts +91 -0
- package/src/CreateSandbox.ts +228 -0
- package/src/CreateSandboxHttp.ts +160 -0
- package/src/CreateSecret.ts +109 -0
- package/src/CreateSecretHttp.ts +83 -0
- package/src/CreateVolume.ts +96 -0
- package/src/CreateVolumeHttp.ts +93 -0
- package/src/Credentials.ts +74 -0
- package/src/Dict.ts +245 -0
- package/src/DictClient.ts +166 -0
- package/src/Domain.ts +147 -0
- package/src/Endpoint.ts +406 -0
- package/src/Environment.ts +373 -0
- package/src/FetchServer.ts +126 -0
- package/src/FetchServerHttp.ts +110 -0
- package/src/Function.ts +397 -0
- package/src/FunctionAutoscaler.ts +210 -0
- package/src/FunctionTarget.ts +181 -0
- package/src/Image.ts +281 -0
- package/src/ImageBuild.ts +228 -0
- package/src/ImagePlan.ts +78 -0
- package/src/InferEnv.ts +27 -0
- package/src/InvokeFunction.ts +211 -0
- package/src/InvokeFunctionHttp.ts +316 -0
- package/src/ModalBindings.ts +310 -0
- package/src/MountBucket.ts +137 -0
- package/src/MountVolume.ts +113 -0
- package/src/Mounts.ts +230 -0
- package/src/PersistentSandbox.ts +142 -0
- package/src/Providers.ts +100 -0
- package/src/Proxy.ts +191 -0
- package/src/Queue.ts +258 -0
- package/src/QueueClient.ts +149 -0
- package/src/ReadApp.ts +101 -0
- package/src/ReadAppHttp.ts +142 -0
- package/src/ReadDict.ts +44 -0
- package/src/ReadDictHttp.ts +27 -0
- package/src/ReadFunction.ts +107 -0
- package/src/ReadFunctionHttp.ts +91 -0
- package/src/ReadQueue.ts +44 -0
- package/src/ReadQueueHttp.ts +27 -0
- package/src/ReadServer.ts +98 -0
- package/src/ReadServerHttp.ts +101 -0
- package/src/ReadVolume.ts +45 -0
- package/src/ReadVolumeHttp.ts +28 -0
- package/src/ReadWriteDict.ts +44 -0
- package/src/ReadWriteDictHttp.ts +27 -0
- package/src/ReadWriteQueue.ts +45 -0
- package/src/ReadWriteQueueHttp.ts +27 -0
- package/src/ReadWriteVolume.ts +45 -0
- package/src/ReadWriteVolumeHttp.ts +28 -0
- package/src/RuntimeOwner.ts +111 -0
- package/src/Sandbox.ts +402 -0
- package/src/SandboxClient.ts +1404 -0
- package/src/ScaleFunction.ts +70 -0
- package/src/ScaleFunctionHttp.ts +54 -0
- package/src/Secret.ts +296 -0
- package/src/Server.ts +285 -0
- package/src/ServiceUser.ts +295 -0
- package/src/Volume.ts +320 -0
- package/src/VolumeClient.ts +108 -0
- package/src/VolumeFiles.ts +194 -0
- package/src/WebhookToken.ts +230 -0
- package/src/WorkspaceSettings.ts +160 -0
- package/src/WriteApp.ts +43 -0
- package/src/WriteAppHttp.ts +51 -0
- package/src/WriteDict.ts +44 -0
- package/src/WriteDictHttp.ts +27 -0
- package/src/WriteQueue.ts +44 -0
- package/src/WriteQueueHttp.ts +27 -0
- package/src/WriteSecret.ts +60 -0
- package/src/WriteSecretHttp.ts +56 -0
- package/src/WriteVolume.ts +44 -0
- package/src/WriteVolumeHttp.ts +28 -0
- package/src/globals.d.ts +2 -0
- package/src/index.ts +85 -0
- package/src/internal/Declared.ts +80 -0
- package/src/internal/Deploy.ts +309 -0
- package/src/internal/Entrypoint.ts +198 -0
- package/src/internal/Rpc.ts +59 -0
- package/src/internal/RpcAuth.ts +132 -0
- package/src/internal/Runtime.ts +386 -0
- package/src/internal/Tags.ts +44 -0
- package/src/internal/TcpConnect.ts +78 -0
- package/src/internal/Transport.ts +25 -0
- package/src/internal.ts +147 -0
package/lib/Endpoint.js
ADDED
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
import * as endpoint from "@distilled.cloud/modal/endpoint";
|
|
2
|
+
import { Unowned } from "alchemy/AdoptPolicy";
|
|
3
|
+
import { deepEqual, isResolved } from "alchemy/Diff";
|
|
4
|
+
import * as Provider from "alchemy/Provider";
|
|
5
|
+
import { Resource } from "alchemy/Resource";
|
|
6
|
+
import * as Data from "effect/Data";
|
|
7
|
+
import * as Effect from "effect/Effect";
|
|
8
|
+
import * as Redacted from "effect/Redacted";
|
|
9
|
+
import * as Schedule from "effect/Schedule";
|
|
10
|
+
import { environmentNames, envNameOf, environmentOf, isGeneratedName, listAll, objectName, } from "./internal.js";
|
|
11
|
+
import { declarable } from "./internal/Declared.js";
|
|
12
|
+
/** Provisioning failed, was cancelled, or didn't finish in time. */
|
|
13
|
+
export class EndpointProvisioningFailed extends Data.TaggedError("Modal.EndpointProvisioningFailed") {
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* A Modal Endpoint: a managed model server that speaks the OpenAI Chat
|
|
17
|
+
* Completions, OpenAI Responses or Anthropic Messages API, from a catalog
|
|
18
|
+
* model, a Hugging Face repo, or weights on a Modal Volume.
|
|
19
|
+
*
|
|
20
|
+
* Reconcile waits until the endpoint is live, which takes minutes while the
|
|
21
|
+
* model loads. Modal can't change an endpoint in place, so any change
|
|
22
|
+
* replaces it.
|
|
23
|
+
*
|
|
24
|
+
* :::caution
|
|
25
|
+
* A dedicated endpoint reserves GPUs and is billed while it runs. Destroy it
|
|
26
|
+
* (or use `servingMode: "shared"`) when you're done.
|
|
27
|
+
* :::
|
|
28
|
+
*
|
|
29
|
+
* ### Serving a model
|
|
30
|
+
* **Example:** A catalog model behind the OpenAI API
|
|
31
|
+
* ```typescript
|
|
32
|
+
* import * as Modal from "@alchemy.run/modal";
|
|
33
|
+
*
|
|
34
|
+
* export const Qwen = Modal.Endpoint("Qwen", {
|
|
35
|
+
* model: { repoId: "Qwen/Qwen3-8B" },
|
|
36
|
+
* apis: ["openai-chat-completions", "anthropic-messages"],
|
|
37
|
+
* });
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* **Example:** Fine-tuned weights from a Volume
|
|
41
|
+
* ```typescript
|
|
42
|
+
* import * as Modal from "@alchemy.run/modal";
|
|
43
|
+
*
|
|
44
|
+
* export const Weights = Modal.Volume("Weights", {});
|
|
45
|
+
* export const Tuned = Modal.Endpoint("Tuned", {
|
|
46
|
+
* model: { volume: Weights, path: "/checkpoints/final", baseModel: "Qwen/Qwen3-8B" },
|
|
47
|
+
* });
|
|
48
|
+
* ```
|
|
49
|
+
*
|
|
50
|
+
* ### Calling it
|
|
51
|
+
* **Example:** From a Cloudflare Worker with `Modal.FetchServer`
|
|
52
|
+
* ```typescript
|
|
53
|
+
* import * as Cloudflare from "@alchemy.run/cloudflare";
|
|
54
|
+
* import * as Modal from "@alchemy.run/modal";
|
|
55
|
+
* import * as Effect from "effect/Effect";
|
|
56
|
+
* import * as HttpClientRequest from "effect/http/HttpClientRequest";
|
|
57
|
+
* import * as HttpServerResponse from "effect/http/HttpServerResponse";
|
|
58
|
+
* import { Qwen } from "./Qwen.ts";
|
|
59
|
+
*
|
|
60
|
+
* export default class Chat extends Cloudflare.Worker<Chat>()(
|
|
61
|
+
* "Chat",
|
|
62
|
+
* { main: import.meta.url },
|
|
63
|
+
* Effect.gen(function* () {
|
|
64
|
+
* // Creates a webhook token for the Worker and sends it as Modal's proxy auth.
|
|
65
|
+
* const qwen = yield* Modal.FetchServer(Qwen);
|
|
66
|
+
* return {
|
|
67
|
+
* fetch: Effect.gen(function* () {
|
|
68
|
+
* const response = yield* qwen.fetch(
|
|
69
|
+
* HttpClientRequest.post("/v1/chat/completions").pipe(
|
|
70
|
+
* HttpClientRequest.bodyJsonUnsafe({
|
|
71
|
+
* model: "Qwen/Qwen3-8B",
|
|
72
|
+
* messages: [{ role: "user", content: "hi" }],
|
|
73
|
+
* }),
|
|
74
|
+
* ),
|
|
75
|
+
* );
|
|
76
|
+
* return HttpServerResponse.json(yield* response.json);
|
|
77
|
+
* }).pipe(Effect.orDie),
|
|
78
|
+
* };
|
|
79
|
+
* }).pipe(Effect.provide(Modal.FetchServerHttp)),
|
|
80
|
+
* ) {}
|
|
81
|
+
* ```
|
|
82
|
+
*
|
|
83
|
+
* @resource
|
|
84
|
+
* @product Endpoint
|
|
85
|
+
*/
|
|
86
|
+
export const Endpoint = declarable()(Resource("Modal.Endpoint"));
|
|
87
|
+
const API = {
|
|
88
|
+
"openai-chat-completions": "ENDPOINT_API_SURFACE_OPENAI_CHAT_COMPLETIONS",
|
|
89
|
+
"openai-responses": "ENDPOINT_API_SURFACE_OPENAI_RESPONSES",
|
|
90
|
+
"anthropic-messages": "ENDPOINT_API_SURFACE_ANTHROPIC_MESSAGES",
|
|
91
|
+
};
|
|
92
|
+
const INPUT = {
|
|
93
|
+
text: "ENDPOINT_INPUT_MODALITY_TEXT",
|
|
94
|
+
image: "ENDPOINT_INPUT_MODALITY_IMAGE",
|
|
95
|
+
audio: "ENDPOINT_INPUT_MODALITY_AUDIO",
|
|
96
|
+
};
|
|
97
|
+
const modelSource = (model) => {
|
|
98
|
+
if ("repoId" in model)
|
|
99
|
+
return { baseModelRepoId: model.repoId };
|
|
100
|
+
if ("huggingface" in model) {
|
|
101
|
+
return {
|
|
102
|
+
custom: {
|
|
103
|
+
baseModelRepoId: model.baseModel,
|
|
104
|
+
huggingface: {
|
|
105
|
+
repoId: model.huggingface,
|
|
106
|
+
revision: model.revision,
|
|
107
|
+
huggingfaceToken: model.token,
|
|
108
|
+
},
|
|
109
|
+
},
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
const volume = model.volume;
|
|
113
|
+
return {
|
|
114
|
+
custom: {
|
|
115
|
+
baseModelRepoId: model.baseModel,
|
|
116
|
+
modalVolume: { volumeId: volume.volumeId ?? "", modelPath: model.path },
|
|
117
|
+
},
|
|
118
|
+
};
|
|
119
|
+
};
|
|
120
|
+
/** Modal's default routing region (`modal endpoint create`'s). */
|
|
121
|
+
const DEFAULT_ROUTING_REGION = "us-west";
|
|
122
|
+
/** Props compared for replacement (credentials and references by value). */
|
|
123
|
+
const identity = (news) => ({
|
|
124
|
+
environment: envNameOf(news.environment),
|
|
125
|
+
model: modelSource(news.model),
|
|
126
|
+
apis: news.apis ?? ["openai-chat-completions"],
|
|
127
|
+
inputs: news.inputs ?? ["text"],
|
|
128
|
+
servingMode: news.servingMode ?? "dedicated",
|
|
129
|
+
regions: news.regions,
|
|
130
|
+
routingRegion: news.routingRegion ?? DEFAULT_ROUTING_REGION,
|
|
131
|
+
unauthenticated: news.unauthenticated ?? false,
|
|
132
|
+
description: news.description,
|
|
133
|
+
});
|
|
134
|
+
export const EndpointProvider = () => Provider.effect(Endpoint, Effect.gen(function* () {
|
|
135
|
+
const info = Effect.fn(function* (endpointId) {
|
|
136
|
+
return yield* endpoint
|
|
137
|
+
.endpointGetInfo({ endpointId })
|
|
138
|
+
.pipe(Effect.catchTag("EndpointNotFound", () => Effect.undefined));
|
|
139
|
+
});
|
|
140
|
+
const lookup = Effect.fn(function* (name, env) {
|
|
141
|
+
const found = yield* endpoint
|
|
142
|
+
.endpointGetByName({ name, environmentName: environmentOf(env) })
|
|
143
|
+
.pipe(Effect.catchTag("EndpointNotFound", () => Effect.undefined));
|
|
144
|
+
if (!found?.endpointId)
|
|
145
|
+
return undefined;
|
|
146
|
+
const details = yield* info(found.endpointId);
|
|
147
|
+
if (!details?.info ||
|
|
148
|
+
details.info.lifecycle?.status === "ENDPOINT_LIFECYCLE_STATUS_STOPPED") {
|
|
149
|
+
return undefined;
|
|
150
|
+
}
|
|
151
|
+
return {
|
|
152
|
+
endpointId: found.endpointId,
|
|
153
|
+
name,
|
|
154
|
+
environment: env,
|
|
155
|
+
url: details.info.serviceUrl ?? "",
|
|
156
|
+
requiresAuth: details.info.requiresProxyAuth ?? true,
|
|
157
|
+
};
|
|
158
|
+
});
|
|
159
|
+
/** Wait until live: model loads take minutes. */
|
|
160
|
+
const waitLive = Effect.fn(function* (endpointId) {
|
|
161
|
+
for (let attempt = 0; attempt < 120; attempt++) {
|
|
162
|
+
const details = yield* info(endpointId);
|
|
163
|
+
const status = details?.info?.status;
|
|
164
|
+
if (status === "ENDPOINT_STATUS_LIVE")
|
|
165
|
+
return details;
|
|
166
|
+
if (status === "ENDPOINT_STATUS_FAILED" ||
|
|
167
|
+
status === "ENDPOINT_STATUS_CANCELLED" ||
|
|
168
|
+
status === "ENDPOINT_STATUS_STOPPED") {
|
|
169
|
+
return yield* new EndpointProvisioningFailed({
|
|
170
|
+
endpointId,
|
|
171
|
+
status,
|
|
172
|
+
message: `Modal endpoint ${endpointId} ended provisioning as ${status}`,
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
yield* Effect.sleep("15 seconds");
|
|
176
|
+
}
|
|
177
|
+
return yield* new EndpointProvisioningFailed({
|
|
178
|
+
endpointId,
|
|
179
|
+
status: "ENDPOINT_STATUS_PROVISIONING",
|
|
180
|
+
message: `Modal endpoint ${endpointId} wasn't live after 30 minutes`,
|
|
181
|
+
});
|
|
182
|
+
});
|
|
183
|
+
return {
|
|
184
|
+
stables: ["endpointId", "name", "environment"],
|
|
185
|
+
diff: Effect.fn(function* ({ id, news, olds, output }) {
|
|
186
|
+
if (!isResolved(news))
|
|
187
|
+
return undefined;
|
|
188
|
+
const name = yield* objectName(id, news.name);
|
|
189
|
+
if (output !== undefined && name !== output.name)
|
|
190
|
+
return { action: "replace" };
|
|
191
|
+
// Modal has no endpoint update: every change is a new endpoint.
|
|
192
|
+
if (olds !== undefined && !deepEqual(identity(news), identity(olds))) {
|
|
193
|
+
return { action: "replace" };
|
|
194
|
+
}
|
|
195
|
+
return undefined;
|
|
196
|
+
}),
|
|
197
|
+
read: Effect.fn(function* ({ id, olds, output }) {
|
|
198
|
+
const name = output?.name ?? (yield* objectName(id, olds?.name));
|
|
199
|
+
const found = yield* lookup(name, output?.environment ?? envNameOf(olds?.environment));
|
|
200
|
+
if (!found)
|
|
201
|
+
return undefined;
|
|
202
|
+
return output !== undefined || olds?.name === undefined ? found : Unowned(found);
|
|
203
|
+
}),
|
|
204
|
+
reconcile: Effect.fn(function* ({ id, news, output, session }) {
|
|
205
|
+
const name = output?.name ?? (yield* objectName(id, news.name));
|
|
206
|
+
const env = envNameOf(news.environment);
|
|
207
|
+
// Observe
|
|
208
|
+
const existing = yield* lookup(name, env);
|
|
209
|
+
let endpointId = existing?.endpointId;
|
|
210
|
+
// Ensure
|
|
211
|
+
if (endpointId === undefined) {
|
|
212
|
+
yield* session.note(`Creating endpoint ${name}...`);
|
|
213
|
+
const created = yield* endpoint
|
|
214
|
+
.createEndpoint({
|
|
215
|
+
name,
|
|
216
|
+
description: news.description,
|
|
217
|
+
environmentName: environmentOf(env),
|
|
218
|
+
model: modelSource(news.model),
|
|
219
|
+
apiSurfaces: (news.apis ?? ["openai-chat-completions"]).map((api) => API[api]),
|
|
220
|
+
inputModalities: (news.inputs ?? ["text"]).map((input) => INPUT[input]),
|
|
221
|
+
servingMode: (news.servingMode ?? "dedicated") === "shared"
|
|
222
|
+
? "ENDPOINT_SERVING_MODE_SHARED"
|
|
223
|
+
: "ENDPOINT_SERVING_MODE_DEDICATED",
|
|
224
|
+
computeRegion: news.regions
|
|
225
|
+
? { explicit: { regions: news.regions } }
|
|
226
|
+
: { auto: {} },
|
|
227
|
+
// Modal routes an endpoint through exactly one region.
|
|
228
|
+
proxyRegions: [news.routingRegion ?? DEFAULT_ROUTING_REGION],
|
|
229
|
+
unauthenticated: news.unauthenticated ?? false,
|
|
230
|
+
sharedEndpointNoticeAcknowledged: news.servingMode === "shared" ? true : undefined,
|
|
231
|
+
})
|
|
232
|
+
.pipe(
|
|
233
|
+
// An endpoint creates an App, and Modal rate-limits App
|
|
234
|
+
// creation per workspace; wait it out, as `Modal.App` does.
|
|
235
|
+
Effect.retry({
|
|
236
|
+
while: (e) => e._tag === "TooManyRequests",
|
|
237
|
+
schedule: Schedule.spaced("5 seconds"),
|
|
238
|
+
times: 12,
|
|
239
|
+
}), Effect.catchTag("EndpointAlreadyExists", () => lookup(name, env).pipe(Effect.map((found) => ({ endpointId: found?.endpointId })))));
|
|
240
|
+
endpointId = created.endpointId;
|
|
241
|
+
}
|
|
242
|
+
if (!endpointId) {
|
|
243
|
+
return yield* new EndpointProvisioningFailed({
|
|
244
|
+
endpointId: "",
|
|
245
|
+
status: "ENDPOINT_STATUS_UNSPECIFIED",
|
|
246
|
+
message: `Modal returned no endpoint for ${name}`,
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
yield* session.note(`Waiting for endpoint ${name} to go live...`);
|
|
250
|
+
const live = yield* waitLive(endpointId);
|
|
251
|
+
return {
|
|
252
|
+
endpointId,
|
|
253
|
+
name,
|
|
254
|
+
environment: env,
|
|
255
|
+
url: live.info?.serviceUrl ?? "",
|
|
256
|
+
requiresAuth: live.info?.requiresProxyAuth ?? true,
|
|
257
|
+
};
|
|
258
|
+
}),
|
|
259
|
+
list: Effect.fn(function* () {
|
|
260
|
+
const envs = yield* environmentNames;
|
|
261
|
+
const all = [];
|
|
262
|
+
for (const env of envs) {
|
|
263
|
+
const items = yield* listAll((pagination) => endpoint
|
|
264
|
+
.listEndpoint({ environmentName: env, pagination })
|
|
265
|
+
.pipe(Effect.map((response) => response.items ?? [])), (item) => item.updatedAt);
|
|
266
|
+
for (const item of items) {
|
|
267
|
+
if (!item.endpointId || !isGeneratedName(item.name))
|
|
268
|
+
continue;
|
|
269
|
+
const found = yield* lookup(item.name ?? "", env);
|
|
270
|
+
if (found)
|
|
271
|
+
all.push(found);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
return all;
|
|
275
|
+
}),
|
|
276
|
+
delete: Effect.fn(function* ({ output }) {
|
|
277
|
+
yield* endpoint
|
|
278
|
+
.stopEndpoint({ endpointId: output.endpointId, source: "ENDPOINT_STOP_SOURCE_CLI" })
|
|
279
|
+
.pipe(Effect.catchTag("EndpointNotFound", () => Effect.void));
|
|
280
|
+
}),
|
|
281
|
+
};
|
|
282
|
+
}));
|
|
283
|
+
//# sourceMappingURL=Endpoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Endpoint.js","sources":["../src/Endpoint.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import * as environment from "@distilled.cloud/modal/environment";
|
|
2
|
+
import * as Provider from "alchemy/Provider";
|
|
3
|
+
import { Resource } from "alchemy/Resource";
|
|
4
|
+
import * as Effect from "effect/Effect";
|
|
5
|
+
import type { Providers } from "./Providers.ts";
|
|
6
|
+
declare const EnvironmentUnexpectedResponse_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
7
|
+
readonly _tag: "Modal.EnvironmentUnexpectedResponse";
|
|
8
|
+
} & Readonly<A>;
|
|
9
|
+
export declare class EnvironmentUnexpectedResponse extends EnvironmentUnexpectedResponse_base<{
|
|
10
|
+
readonly message: string;
|
|
11
|
+
}> {
|
|
12
|
+
}
|
|
13
|
+
/** A member's access to an environment. */
|
|
14
|
+
export type EnvironmentRole = "viewer" | "contributor" | "no-access";
|
|
15
|
+
/** One role assignment: a workspace member or service user, and its role. */
|
|
16
|
+
export type EnvironmentRoleAssignment = {
|
|
17
|
+
readonly userId: string;
|
|
18
|
+
readonly role: EnvironmentRole;
|
|
19
|
+
} | {
|
|
20
|
+
readonly serviceUserId: string;
|
|
21
|
+
readonly role: EnvironmentRole;
|
|
22
|
+
};
|
|
23
|
+
export interface EnvironmentProps {
|
|
24
|
+
/**
|
|
25
|
+
* Environment name, unique in the workspace. If omitted, a unique name is
|
|
26
|
+
* generated from the stack, stage and logical ID. Changing it renames the
|
|
27
|
+
* environment in place.
|
|
28
|
+
*/
|
|
29
|
+
name?: string;
|
|
30
|
+
/**
|
|
31
|
+
* Suffix of web endpoint URLs in this environment
|
|
32
|
+
* (`<workspace>-<suffix>--<app>.modal.run`).
|
|
33
|
+
* @default the environment name
|
|
34
|
+
*/
|
|
35
|
+
webhookSuffix?: string;
|
|
36
|
+
/** Most tasks (containers) running at once in this environment. */
|
|
37
|
+
maxConcurrentTasks?: number;
|
|
38
|
+
/** Most GPUs in use at once in this environment. */
|
|
39
|
+
maxConcurrentGpus?: number;
|
|
40
|
+
/**
|
|
41
|
+
* Monthly spend limit in US dollars for this environment. Removing it
|
|
42
|
+
* clears the limit. Budgets need a Modal plan that includes them;
|
|
43
|
+
* elsewhere the deploy fails with `EnvironmentBudgetsNotEnabled`.
|
|
44
|
+
*/
|
|
45
|
+
budget?: number;
|
|
46
|
+
/**
|
|
47
|
+
* Require authentication for web endpoints and tunnels in this
|
|
48
|
+
* environment: `true` blocks unauthenticated traffic, `false` allows it,
|
|
49
|
+
* and `undefined` inherits the workspace default.
|
|
50
|
+
*/
|
|
51
|
+
blockUnauthenticatedResources?: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Restrict the environment to explicit members (a managed environment).
|
|
54
|
+
* Members without an assignment in {@link roles} get
|
|
55
|
+
* {@link defaultMemberRole}.
|
|
56
|
+
* @default false
|
|
57
|
+
*/
|
|
58
|
+
managed?: boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Role every workspace member gets in a managed environment unless
|
|
61
|
+
* {@link roles} assigns one.
|
|
62
|
+
*/
|
|
63
|
+
defaultMemberRole?: EnvironmentRole;
|
|
64
|
+
/**
|
|
65
|
+
* Explicit role assignments. Each listed principal gets its role; a
|
|
66
|
+
* principal that was assigned before and is no longer listed falls back
|
|
67
|
+
* to {@link defaultMemberRole}.
|
|
68
|
+
*/
|
|
69
|
+
roles?: EnvironmentRoleAssignment[];
|
|
70
|
+
}
|
|
71
|
+
export interface EnvironmentAttributes {
|
|
72
|
+
/** Environment ID (`en-…`). */
|
|
73
|
+
environmentId: string;
|
|
74
|
+
/** Environment name. */
|
|
75
|
+
name: string;
|
|
76
|
+
/** Suffix of web endpoint URLs in this environment. */
|
|
77
|
+
webhookSuffix: string | undefined;
|
|
78
|
+
/** Whether this is the workspace's default environment. */
|
|
79
|
+
isDefault: boolean;
|
|
80
|
+
/** Whether membership is restricted (a managed environment). */
|
|
81
|
+
managed: boolean;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* A Modal Environment: an isolated namespace inside a workspace for Apps,
|
|
85
|
+
* Volumes, Dicts, Queues, Secrets and Sandboxes, with its own concurrency
|
|
86
|
+
* limits, spend budget and member roles. Objects with the same name in two
|
|
87
|
+
* environments are different objects, so one environment per stage keeps
|
|
88
|
+
* stages apart.
|
|
89
|
+
*
|
|
90
|
+
* Modal environments have no tags. Ownership is inferred from Alchemy
|
|
91
|
+
* state: an environment found under an explicit `name` without prior state
|
|
92
|
+
* is reported as unowned.
|
|
93
|
+
*
|
|
94
|
+
* ### Creating an Environment
|
|
95
|
+
* **Example:** One environment per stage
|
|
96
|
+
* ```typescript
|
|
97
|
+
* import * as Modal from "@alchemy.run/modal";
|
|
98
|
+
*
|
|
99
|
+
* export const Agents = Modal.Environment("Agents", {});
|
|
100
|
+
* ```
|
|
101
|
+
*
|
|
102
|
+
* **Example:** Limits and a monthly budget
|
|
103
|
+
* ```typescript
|
|
104
|
+
* import * as Modal from "@alchemy.run/modal";
|
|
105
|
+
*
|
|
106
|
+
* export const Agents = Modal.Environment("Agents", {
|
|
107
|
+
* maxConcurrentTasks: 50,
|
|
108
|
+
* maxConcurrentGpus: 4,
|
|
109
|
+
* budget: 200,
|
|
110
|
+
* });
|
|
111
|
+
* ```
|
|
112
|
+
*
|
|
113
|
+
* ### Access control
|
|
114
|
+
* **Example:** A managed environment with explicit roles
|
|
115
|
+
* ```typescript
|
|
116
|
+
* import * as Modal from "@alchemy.run/modal";
|
|
117
|
+
*
|
|
118
|
+
* export const Production = Modal.Environment("Production", {
|
|
119
|
+
* name: "production",
|
|
120
|
+
* managed: true,
|
|
121
|
+
* defaultMemberRole: "viewer",
|
|
122
|
+
* roles: [{ userId: "us-1234", role: "contributor" }],
|
|
123
|
+
* blockUnauthenticatedResources: true,
|
|
124
|
+
* });
|
|
125
|
+
* ```
|
|
126
|
+
*
|
|
127
|
+
* ### Using the environment
|
|
128
|
+
* **Example:** Put objects in it
|
|
129
|
+
* ```typescript
|
|
130
|
+
* import * as Modal from "@alchemy.run/modal";
|
|
131
|
+
*
|
|
132
|
+
* export const Agents = Modal.Environment("Agents", {});
|
|
133
|
+
* export const Coder = Modal.App("Coder", { environment: Agents });
|
|
134
|
+
* export const Workspace = Modal.Volume("Workspace", { environment: Agents });
|
|
135
|
+
* ```
|
|
136
|
+
*
|
|
137
|
+
* ### Looking up an existing environment
|
|
138
|
+
* `Environment.lookup` references an environment Alchemy doesn't manage (created with
|
|
139
|
+
* the Modal CLI or by another stack). It is read during plan/deploy, never
|
|
140
|
+
* created, updated or deleted.
|
|
141
|
+
*
|
|
142
|
+
* **Example:** Reference an existing environment
|
|
143
|
+
* ```typescript
|
|
144
|
+
* const staging = Modal.Environment.lookup({ name: "staging" });
|
|
145
|
+
* ```
|
|
146
|
+
*
|
|
147
|
+
* @resource
|
|
148
|
+
* @product Environment
|
|
149
|
+
*/
|
|
150
|
+
export declare const Environment: import("alchemy/Resource").ResourceConstructor<Environment, Providers> & Effect.Effect<import("alchemy/Resource").ResourceConstructor<Environment, never>, never, never> & {
|
|
151
|
+
Self: import("alchemy/Self").Self<Environment>;
|
|
152
|
+
Provider: Provider.Provider<Environment>;
|
|
153
|
+
Aliases: readonly string[] | undefined;
|
|
154
|
+
ref(id: string, options?: {
|
|
155
|
+
stage?: string;
|
|
156
|
+
stack?: string;
|
|
157
|
+
}): Effect.Effect<Environment, never, never>;
|
|
158
|
+
} & {
|
|
159
|
+
lookup(props: {
|
|
160
|
+
name: import("alchemy/Input").Input<string>;
|
|
161
|
+
}): Environment;
|
|
162
|
+
} & ((id: string, props: import("./internal/Declared.ts").DeclaredProps<EnvironmentProps>) => Effect.Effect<Environment, never, Providers>);
|
|
163
|
+
export type Environment = Resource<"Modal.Environment", EnvironmentProps, EnvironmentAttributes, never, Providers, EnvironmentLookup>;
|
|
164
|
+
/**
|
|
165
|
+
* Props for {@link Environment.lookup}: find an environment this
|
|
166
|
+
* stack doesn't manage by its name.
|
|
167
|
+
*/
|
|
168
|
+
export interface EnvironmentLookup {
|
|
169
|
+
/** Environment name. */
|
|
170
|
+
name: string;
|
|
171
|
+
}
|
|
172
|
+
export declare const EnvironmentProvider: () => import("effect/Layer").Layer<Provider.Provider<Environment>, never, import("alchemy/Stack").Stack | import("alchemy/Stage").Stage | environment.ModalOpContext>;
|
|
173
|
+
export {};
|
|
174
|
+
//# sourceMappingURL=Environment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Environment.d.ts","sources":["../src/Environment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,oCAAoC,CAAC;AAElE,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;;;;AAEhD,qBAAa,6BAA8B,SAAQ,mCAEjD;IACA,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;CAAG;AAEL,2CAA2C;AAC3C,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,aAAa,GAAG,WAAW,CAAC;AAWrE,6EAA6E;AAC7E,MAAM,MAAM,yBAAyB,GACjC;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;CAAE,GAC3D;IAAE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;CAAE,CAAC;AAEvE,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mEAAmE;IACnE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oDAAoD;IACpD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,eAAe,CAAC;IACpC;;;;OAIG;IACH,KAAK,CAAC,EAAE,yBAAyB,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,qBAAqB;IACpC,+BAA+B;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,2DAA2D;IAC3D,SAAS,EAAE,OAAO,CAAC;IACnB,gEAAgE;IAChE,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;2IAAwE,CAAC;AAEjG,MAAM,MAAM,WAAW,GAAG,QAAQ,CAChC,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,EACrB,KAAK,EACL,SAAS,EACT,iBAAiB,CAClB,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;CACd;AAcD,eAAO,MAAM,mBAAmB,uKAkL7B,CAAC"}
|