alchemy 2.0.0-beta.64 → 2.0.0-beta.66
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 +433 -181
- package/bin/exec.js.map +1 -1
- package/lib/AWS/ApiGateway/common.d.ts.map +1 -1
- package/lib/AWS/ApiGateway/common.js +8 -1
- package/lib/AWS/ApiGateway/common.js.map +1 -1
- package/lib/AWS/Bedrock/LanguageModel.d.ts +208 -0
- package/lib/AWS/Bedrock/LanguageModel.d.ts.map +1 -0
- package/lib/AWS/Bedrock/LanguageModel.js +508 -0
- package/lib/AWS/Bedrock/LanguageModel.js.map +1 -0
- package/lib/AWS/Bedrock/LanguageModelHttp.d.ts +10 -0
- package/lib/AWS/Bedrock/LanguageModelHttp.d.ts.map +1 -0
- package/lib/AWS/Bedrock/LanguageModelHttp.js +26 -0
- package/lib/AWS/Bedrock/LanguageModelHttp.js.map +1 -0
- package/lib/AWS/Bedrock/index.d.ts +2 -0
- package/lib/AWS/Bedrock/index.d.ts.map +1 -1
- package/lib/AWS/Bedrock/index.js +2 -0
- package/lib/AWS/Bedrock/index.js.map +1 -1
- package/lib/AWS/CloudFront/Distribution.d.ts +24 -0
- package/lib/AWS/CloudFront/Distribution.d.ts.map +1 -1
- package/lib/AWS/CloudFront/Distribution.js +89 -4
- package/lib/AWS/CloudFront/Distribution.js.map +1 -1
- package/lib/AWS/CostExplorer/AnomalyMonitor.d.ts +1 -1
- package/lib/AWS/CostExplorer/AnomalyMonitor.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/AnomalySubscription.d.ts +1 -1
- package/lib/AWS/CostExplorer/AnomalySubscription.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/BindingHttp.d.ts +3 -3
- package/lib/AWS/CostExplorer/BindingHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/CostCategory.d.ts +1 -1
- package/lib/AWS/CostExplorer/CostCategory.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/GetAnomaliesHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/GetAnomaliesHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/GetApproximateUsageRecordsHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/GetApproximateUsageRecordsHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/GetCommitmentPurchaseAnalysisHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/GetCommitmentPurchaseAnalysisHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/GetCostAndUsageComparisonsHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/GetCostAndUsageComparisonsHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/GetCostAndUsageHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/GetCostAndUsageHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/GetCostAndUsageWithResourcesHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/GetCostAndUsageWithResourcesHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/GetCostCategoriesHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/GetCostCategoriesHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/GetCostComparisonDriversHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/GetCostComparisonDriversHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/GetCostForecastHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/GetCostForecastHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/GetDimensionValuesHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/GetDimensionValuesHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/GetReservationCoverageHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/GetReservationCoverageHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/GetReservationPurchaseRecommendationHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/GetReservationPurchaseRecommendationHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/GetReservationUtilizationHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/GetReservationUtilizationHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/GetRightsizingRecommendationHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/GetRightsizingRecommendationHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/GetSavingsPlanPurchaseRecommendationDetailsHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/GetSavingsPlanPurchaseRecommendationDetailsHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/GetSavingsPlansCoverageHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/GetSavingsPlansCoverageHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/GetSavingsPlansPurchaseRecommendationHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/GetSavingsPlansPurchaseRecommendationHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/GetSavingsPlansUtilizationDetailsHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/GetSavingsPlansUtilizationDetailsHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/GetSavingsPlansUtilizationHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/GetSavingsPlansUtilizationHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/GetTagsHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/GetTagsHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/GetUsageForecastHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/GetUsageForecastHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/ListCommitmentPurchaseAnalysesHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/ListCommitmentPurchaseAnalysesHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/ListCostAllocationTagBackfillHistoryHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/ListCostAllocationTagBackfillHistoryHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/ListCostAllocationTagsHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/ListCostAllocationTagsHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/ListCostCategoryResourceAssociationsHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/ListCostCategoryResourceAssociationsHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/ListSavingsPlansPurchaseRecommendationGenerationHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/ListSavingsPlansPurchaseRecommendationGenerationHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/ProvideAnomalyFeedbackHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/ProvideAnomalyFeedbackHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/StartCommitmentPurchaseAnalysisHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/StartCommitmentPurchaseAnalysisHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/StartCostAllocationTagBackfillHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/StartCostAllocationTagBackfillHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/StartSavingsPlansPurchaseRecommendationGenerationHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/StartSavingsPlansPurchaseRecommendationGenerationHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/UpdateCostAllocationTagsStatusHttp.d.ts +1 -1
- package/lib/AWS/CostExplorer/UpdateCostAllocationTagsStatusHttp.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/common.d.ts +5 -3
- package/lib/AWS/CostExplorer/common.d.ts.map +1 -1
- package/lib/AWS/CostExplorer/common.js +16 -1
- package/lib/AWS/CostExplorer/common.js.map +1 -1
- package/lib/AWS/DataSync/Task.d.ts.map +1 -1
- package/lib/AWS/DataSync/Task.js +16 -2
- package/lib/AWS/DataSync/Task.js.map +1 -1
- package/lib/AWS/EC2/InternetGateway.d.ts.map +1 -1
- package/lib/AWS/EC2/InternetGateway.js +8 -3
- package/lib/AWS/EC2/InternetGateway.js.map +1 -1
- package/lib/AWS/EC2/LingeringEnis.d.ts +26 -0
- package/lib/AWS/EC2/LingeringEnis.d.ts.map +1 -0
- package/lib/AWS/EC2/LingeringEnis.js +128 -0
- package/lib/AWS/EC2/LingeringEnis.js.map +1 -0
- package/lib/AWS/EC2/SecurityGroup.d.ts.map +1 -1
- package/lib/AWS/EC2/SecurityGroup.js +14 -14
- package/lib/AWS/EC2/SecurityGroup.js.map +1 -1
- package/lib/AWS/EC2/Subnet.d.ts.map +1 -1
- package/lib/AWS/EC2/Subnet.js +13 -21
- package/lib/AWS/EC2/Subnet.js.map +1 -1
- package/lib/AWS/EC2/Vpc.d.ts.map +1 -1
- package/lib/AWS/EC2/Vpc.js +15 -2
- package/lib/AWS/EC2/Vpc.js.map +1 -1
- package/lib/AWS/EC2/hosted.d.ts.map +1 -1
- package/lib/AWS/EC2/hosted.js +10 -2
- package/lib/AWS/EC2/hosted.js.map +1 -1
- package/lib/AWS/ECR/Image.d.ts +133 -13
- package/lib/AWS/ECR/Image.d.ts.map +1 -1
- package/lib/AWS/ECR/ImageSource.d.ts.map +1 -1
- package/lib/AWS/ECR/ImageSource.js +10 -2
- package/lib/AWS/ECR/ImageSource.js.map +1 -1
- package/lib/AWS/ECR/Repository.d.ts +2 -0
- package/lib/AWS/ECR/Repository.d.ts.map +1 -1
- package/lib/AWS/ECR/Repository.js +28 -3
- package/lib/AWS/ECR/Repository.js.map +1 -1
- package/lib/AWS/ECS/Service.d.ts +27 -1
- package/lib/AWS/ECS/Service.d.ts.map +1 -1
- package/lib/AWS/ECS/Service.js +184 -22
- package/lib/AWS/ECS/Service.js.map +1 -1
- package/lib/AWS/ECS/Task.d.ts +32 -8
- package/lib/AWS/ECS/Task.d.ts.map +1 -1
- package/lib/AWS/ECS/Task.js +62 -29
- package/lib/AWS/ECS/Task.js.map +1 -1
- package/lib/AWS/EKS/Addon.d.ts.map +1 -1
- package/lib/AWS/EKS/Addon.js +15 -3
- package/lib/AWS/EKS/Addon.js.map +1 -1
- package/lib/AWS/EKS/Deployment.d.ts +10 -1
- package/lib/AWS/EKS/Deployment.d.ts.map +1 -1
- package/lib/AWS/EKS/Deployment.js +20 -6
- package/lib/AWS/EKS/Deployment.js.map +1 -1
- package/lib/AWS/EKS/HyperPod.d.ts +57 -0
- package/lib/AWS/EKS/HyperPod.d.ts.map +1 -0
- package/lib/AWS/EKS/HyperPod.js +46 -0
- package/lib/AWS/EKS/HyperPod.js.map +1 -0
- package/lib/AWS/EKS/Job.d.ts +10 -1
- package/lib/AWS/EKS/Job.d.ts.map +1 -1
- package/lib/AWS/EKS/Job.js +26 -8
- package/lib/AWS/EKS/Job.js.map +1 -1
- package/lib/AWS/EKS/internal/client.d.ts +4 -3
- package/lib/AWS/EKS/internal/client.d.ts.map +1 -1
- package/lib/AWS/EKS/internal/client.js +33 -2
- package/lib/AWS/EKS/internal/client.js.map +1 -1
- package/lib/AWS/Lambda/Function.d.ts +15 -0
- package/lib/AWS/Lambda/Function.d.ts.map +1 -1
- package/lib/AWS/Lambda/Function.js +68 -30
- package/lib/AWS/Lambda/Function.js.map +1 -1
- package/lib/AWS/Lambda/HttpServer.d.ts.map +1 -1
- package/lib/AWS/Lambda/HttpServer.js +7 -1
- package/lib/AWS/Lambda/HttpServer.js.map +1 -1
- package/lib/AWS/Lambda/LayerVersion.d.ts +176 -0
- package/lib/AWS/Lambda/LayerVersion.d.ts.map +1 -0
- package/lib/AWS/Lambda/LayerVersion.js +288 -0
- package/lib/AWS/Lambda/LayerVersion.js.map +1 -0
- package/lib/AWS/Lambda/MicrovmBundle.d.ts.map +1 -1
- package/lib/AWS/Lambda/MicrovmBundle.js +10 -2
- package/lib/AWS/Lambda/MicrovmBundle.js.map +1 -1
- package/lib/AWS/Lambda/index.d.ts +1 -0
- package/lib/AWS/Lambda/index.d.ts.map +1 -1
- package/lib/AWS/Lambda/index.js +1 -0
- package/lib/AWS/Lambda/index.js.map +1 -1
- package/lib/AWS/Providers.d.ts.map +1 -1
- package/lib/AWS/Providers.js +9 -1
- package/lib/AWS/Providers.js.map +1 -1
- package/lib/AWS/SES/ActiveReceiptRuleSet.d.ts +40 -0
- package/lib/AWS/SES/ActiveReceiptRuleSet.d.ts.map +1 -0
- package/lib/AWS/SES/ActiveReceiptRuleSet.js +58 -0
- package/lib/AWS/SES/ActiveReceiptRuleSet.js.map +1 -0
- package/lib/AWS/SES/ReceiptFilter.d.ts +67 -0
- package/lib/AWS/SES/ReceiptFilter.d.ts.map +1 -0
- package/lib/AWS/SES/ReceiptFilter.js +92 -0
- package/lib/AWS/SES/ReceiptFilter.js.map +1 -0
- package/lib/AWS/SES/ReceiptRule.d.ts +133 -0
- package/lib/AWS/SES/ReceiptRule.d.ts.map +1 -0
- package/lib/AWS/SES/ReceiptRule.js +178 -0
- package/lib/AWS/SES/ReceiptRule.js.map +1 -0
- package/lib/AWS/SES/ReceiptRuleSet.d.ts +55 -0
- package/lib/AWS/SES/ReceiptRuleSet.d.ts.map +1 -0
- package/lib/AWS/SES/ReceiptRuleSet.js +112 -0
- package/lib/AWS/SES/ReceiptRuleSet.js.map +1 -0
- package/lib/AWS/SES/SendBounce.d.ts +37 -0
- package/lib/AWS/SES/SendBounce.d.ts.map +1 -0
- package/lib/AWS/SES/SendBounce.js +3 -0
- package/lib/AWS/SES/SendBounce.js.map +1 -0
- package/lib/AWS/SES/SendBounceHttp.d.ts +4 -0
- package/lib/AWS/SES/SendBounceHttp.d.ts.map +1 -0
- package/lib/AWS/SES/SendBounceHttp.js +10 -0
- package/lib/AWS/SES/SendBounceHttp.js.map +1 -0
- package/lib/AWS/SES/index.d.ts +6 -0
- package/lib/AWS/SES/index.d.ts.map +1 -1
- package/lib/AWS/SES/index.js +6 -0
- package/lib/AWS/SES/index.js.map +1 -1
- package/lib/AWS/SageMaker/Cluster.d.ts +327 -0
- package/lib/AWS/SageMaker/Cluster.d.ts.map +1 -0
- package/lib/AWS/SageMaker/Cluster.js +469 -0
- package/lib/AWS/SageMaker/Cluster.js.map +1 -0
- package/lib/AWS/SageMaker/ClusterSchedulerConfig.d.ts +96 -0
- package/lib/AWS/SageMaker/ClusterSchedulerConfig.d.ts.map +1 -0
- package/lib/AWS/SageMaker/ClusterSchedulerConfig.js +270 -0
- package/lib/AWS/SageMaker/ClusterSchedulerConfig.js.map +1 -0
- package/lib/AWS/SageMaker/ComputeQuota.d.ts +106 -0
- package/lib/AWS/SageMaker/ComputeQuota.d.ts.map +1 -0
- package/lib/AWS/SageMaker/ComputeQuota.js +268 -0
- package/lib/AWS/SageMaker/ComputeQuota.js.map +1 -0
- package/lib/AWS/SageMaker/index.d.ts +3 -0
- package/lib/AWS/SageMaker/index.d.ts.map +1 -1
- package/lib/AWS/SageMaker/index.js +3 -0
- package/lib/AWS/SageMaker/index.js.map +1 -1
- package/lib/AWS/StateStore/State.d.ts +11 -0
- package/lib/AWS/StateStore/State.d.ts.map +1 -1
- package/lib/AWS/StateStore/State.js +117 -38
- package/lib/AWS/StateStore/State.js.map +1 -1
- package/lib/Apply.d.ts +37 -1
- package/lib/Apply.d.ts.map +1 -1
- package/lib/Apply.js +270 -194
- package/lib/Apply.js.map +1 -1
- package/lib/Axiom/Telemetry.d.ts +66 -0
- package/lib/Axiom/Telemetry.d.ts.map +1 -0
- package/lib/Axiom/Telemetry.js +69 -0
- package/lib/Axiom/Telemetry.js.map +1 -0
- package/lib/Axiom/index.d.ts +1 -0
- package/lib/Axiom/index.d.ts.map +1 -1
- package/lib/Axiom/index.js +1 -0
- package/lib/Axiom/index.js.map +1 -1
- package/lib/Bundle/Bundle.d.ts +1 -1
- package/lib/Bundle/Bundle.d.ts.map +1 -1
- package/lib/Bundle/Bundle.js +14 -6
- package/lib/Bundle/Bundle.js.map +1 -1
- package/lib/Bundle/BundleAnalyzerPlugin.d.ts +1 -1
- package/lib/Bundle/BundleAnalyzerPlugin.d.ts.map +1 -1
- package/lib/Bundle/BundleAnalyzerPlugin.js +10 -5
- package/lib/Bundle/BundleAnalyzerPlugin.js.map +1 -1
- package/lib/Bundle/PurePlugin.d.ts +29 -7
- package/lib/Bundle/PurePlugin.d.ts.map +1 -1
- package/lib/Bundle/PurePlugin.js +71 -40
- package/lib/Bundle/PurePlugin.js.map +1 -1
- package/lib/Cli/checkVersion.d.ts +11 -5
- package/lib/Cli/checkVersion.d.ts.map +1 -1
- package/lib/Cli/checkVersion.js +73 -12
- package/lib/Cli/checkVersion.js.map +1 -1
- package/lib/Cli/commands/cloudflare.d.ts +1 -1
- package/lib/Cli/commands/deploy.d.ts.map +1 -1
- package/lib/Cli/commands/deploy.js +3 -11
- package/lib/Cli/commands/deploy.js.map +1 -1
- package/lib/Cli/commands/logs.d.ts.map +1 -1
- package/lib/Cli/commands/logs.js +3 -1
- package/lib/Cli/commands/logs.js.map +1 -1
- package/lib/Cli/commands/nuke.d.ts.map +1 -1
- package/lib/Cli/commands/nuke.js +231 -37
- package/lib/Cli/commands/nuke.js.map +1 -1
- package/lib/Cli/commands/tail.d.ts.map +1 -1
- package/lib/Cli/commands/tail.js +3 -1
- package/lib/Cli/commands/tail.js.map +1 -1
- package/lib/Cli/main.d.ts.map +1 -1
- package/lib/Cli/main.js +5 -4
- package/lib/Cli/main.js.map +1 -1
- package/lib/Cloudflare/AI/Search.d.ts +4 -15
- package/lib/Cloudflare/AI/Search.d.ts.map +1 -1
- package/lib/Cloudflare/AI/Search.js +4 -6
- package/lib/Cloudflare/AI/Search.js.map +1 -1
- package/lib/Cloudflare/AI/SearchInstance.d.ts +7 -26
- package/lib/Cloudflare/AI/SearchInstance.d.ts.map +1 -1
- package/lib/Cloudflare/AI/SearchInstance.js +7 -26
- package/lib/Cloudflare/AI/SearchInstance.js.map +1 -1
- package/lib/Cloudflare/ApiToken/AccountApiToken.d.ts +3 -0
- package/lib/Cloudflare/ApiToken/AccountApiToken.d.ts.map +1 -1
- package/lib/Cloudflare/ApiToken/AccountApiToken.js +3 -0
- package/lib/Cloudflare/ApiToken/AccountApiToken.js.map +1 -1
- package/lib/Cloudflare/Auth/AuthProvider.d.ts +2 -1
- package/lib/Cloudflare/Auth/AuthProvider.d.ts.map +1 -1
- package/lib/Cloudflare/Auth/AuthProvider.js +8 -3
- package/lib/Cloudflare/Auth/AuthProvider.js.map +1 -1
- package/lib/Cloudflare/Auth/OAuthClient.d.ts +5 -0
- package/lib/Cloudflare/Auth/OAuthClient.d.ts.map +1 -1
- package/lib/Cloudflare/Auth/OAuthClient.js +50 -4
- package/lib/Cloudflare/Auth/OAuthClient.js.map +1 -1
- package/lib/Cloudflare/Containers/Container.d.ts +81 -3
- package/lib/Cloudflare/Containers/Container.d.ts.map +1 -1
- package/lib/Cloudflare/Containers/Container.js +70 -0
- package/lib/Cloudflare/Containers/Container.js.map +1 -1
- package/lib/Cloudflare/Containers/ContainerApplication.d.ts +22 -1
- package/lib/Cloudflare/Containers/ContainerApplication.d.ts.map +1 -1
- package/lib/Cloudflare/Containers/ContainerApplication.js +4 -1
- package/lib/Cloudflare/Containers/ContainerApplication.js.map +1 -1
- package/lib/Cloudflare/Containers/ContainerBundle.d.ts.map +1 -1
- package/lib/Cloudflare/Containers/ContainerBundle.js +10 -2
- package/lib/Cloudflare/Containers/ContainerBundle.js.map +1 -1
- package/lib/Cloudflare/Containers/ContainerProvider.d.ts.map +1 -1
- package/lib/Cloudflare/Containers/ContainerProvider.js +43 -0
- package/lib/Cloudflare/Containers/ContainerProvider.js.map +1 -1
- package/lib/Cloudflare/Credentials.d.ts +21 -1
- package/lib/Cloudflare/Credentials.d.ts.map +1 -1
- package/lib/Cloudflare/Credentials.js +52 -9
- package/lib/Cloudflare/Credentials.js.map +1 -1
- package/lib/Cloudflare/D1/ApplyMigrations.d.ts +30 -5
- package/lib/Cloudflare/D1/ApplyMigrations.d.ts.map +1 -1
- package/lib/Cloudflare/D1/ApplyMigrations.js +36 -26
- package/lib/Cloudflare/D1/ApplyMigrations.js.map +1 -1
- package/lib/Cloudflare/D1/Database.d.ts +18 -1
- package/lib/Cloudflare/D1/Database.d.ts.map +1 -1
- package/lib/Cloudflare/D1/Database.js +134 -2
- package/lib/Cloudflare/D1/Database.js.map +1 -1
- package/lib/Cloudflare/D1/LocalD1Gateway.d.ts +39 -0
- package/lib/Cloudflare/D1/LocalD1Gateway.d.ts.map +1 -0
- package/lib/Cloudflare/D1/LocalD1Gateway.js +100 -0
- package/lib/Cloudflare/D1/LocalD1Gateway.js.map +1 -0
- package/lib/Cloudflare/D1/QueryDatabaseHttpClient.d.ts +31 -0
- package/lib/Cloudflare/D1/QueryDatabaseHttpClient.d.ts.map +1 -1
- package/lib/Cloudflare/D1/QueryDatabaseHttpClient.js +13 -6
- package/lib/Cloudflare/D1/QueryDatabaseHttpClient.js.map +1 -1
- package/lib/Cloudflare/D1/QueryDatabaseLocal.d.ts.map +1 -1
- package/lib/Cloudflare/D1/QueryDatabaseLocal.js +21 -2
- package/lib/Cloudflare/D1/QueryDatabaseLocal.js.map +1 -1
- package/lib/Cloudflare/Email/Address.d.ts.map +1 -1
- package/lib/Cloudflare/Email/Address.js +15 -1
- package/lib/Cloudflare/Email/Address.js.map +1 -1
- package/lib/Cloudflare/Email/SendBinding.d.ts.map +1 -1
- package/lib/Cloudflare/Email/SendBinding.js +1 -0
- package/lib/Cloudflare/Email/SendBinding.js.map +1 -1
- package/lib/Cloudflare/Email/SendEmail.d.ts +12 -0
- package/lib/Cloudflare/Email/SendEmail.d.ts.map +1 -1
- package/lib/Cloudflare/Email/SendEmail.js +1 -0
- package/lib/Cloudflare/Email/SendEmail.js.map +1 -1
- package/lib/Cloudflare/Flagship/App.d.ts.map +1 -1
- package/lib/Cloudflare/Flagship/App.js +8 -3
- package/lib/Cloudflare/Flagship/App.js.map +1 -1
- package/lib/Cloudflare/KV/LocalKVGateway.d.ts +15 -0
- package/lib/Cloudflare/KV/LocalKVGateway.d.ts.map +1 -0
- package/lib/Cloudflare/KV/LocalKVGateway.js +64 -0
- package/lib/Cloudflare/KV/LocalKVGateway.js.map +1 -0
- package/lib/Cloudflare/KV/Namespace.d.ts +9 -1
- package/lib/Cloudflare/KV/Namespace.d.ts.map +1 -1
- package/lib/Cloudflare/KV/Namespace.js +45 -1
- package/lib/Cloudflare/KV/Namespace.js.map +1 -1
- package/lib/Cloudflare/KV/NamespaceLocal.d.ts +16 -5
- package/lib/Cloudflare/KV/NamespaceLocal.d.ts.map +1 -1
- package/lib/Cloudflare/KV/NamespaceLocal.js +21 -4
- package/lib/Cloudflare/KV/NamespaceLocal.js.map +1 -1
- package/lib/Cloudflare/KV/ReadNamespaceLocal.d.ts.map +1 -1
- package/lib/Cloudflare/KV/ReadNamespaceLocal.js +5 -1
- package/lib/Cloudflare/KV/ReadNamespaceLocal.js.map +1 -1
- package/lib/Cloudflare/KV/ReadWriteNamespaceLocal.d.ts.map +1 -1
- package/lib/Cloudflare/KV/ReadWriteNamespaceLocal.js +5 -1
- package/lib/Cloudflare/KV/ReadWriteNamespaceLocal.js.map +1 -1
- package/lib/Cloudflare/KV/WriteNamespaceLocal.d.ts.map +1 -1
- package/lib/Cloudflare/KV/WriteNamespaceLocal.js +5 -1
- package/lib/Cloudflare/KV/WriteNamespaceLocal.js.map +1 -1
- package/lib/Cloudflare/LocalGateway.d.ts +25 -0
- package/lib/Cloudflare/LocalGateway.d.ts.map +1 -0
- package/lib/Cloudflare/LocalGateway.js +70 -0
- package/lib/Cloudflare/LocalGateway.js.map +1 -0
- package/lib/Cloudflare/LocalRuntime.d.ts +14 -1
- package/lib/Cloudflare/LocalRuntime.d.ts.map +1 -1
- package/lib/Cloudflare/LocalRuntime.js +16 -1
- package/lib/Cloudflare/LocalRuntime.js.map +1 -1
- package/lib/Cloudflare/Logs.d.ts.map +1 -1
- package/lib/Cloudflare/Logs.js +18 -6
- package/lib/Cloudflare/Logs.js.map +1 -1
- package/lib/Cloudflare/Providers.d.ts +1 -1
- package/lib/Cloudflare/Providers.d.ts.map +1 -1
- package/lib/Cloudflare/Providers.js +6 -2
- package/lib/Cloudflare/Providers.js.map +1 -1
- package/lib/Cloudflare/Queues/Consumer.d.ts +16 -3
- package/lib/Cloudflare/Queues/Consumer.d.ts.map +1 -1
- package/lib/Cloudflare/Queues/Consumer.js +51 -3
- package/lib/Cloudflare/Queues/Consumer.js.map +1 -1
- package/lib/Cloudflare/Queues/Queue.d.ts +4 -3
- package/lib/Cloudflare/Queues/Queue.d.ts.map +1 -1
- package/lib/Cloudflare/Queues/Queue.js +7 -17
- package/lib/Cloudflare/Queues/Queue.js.map +1 -1
- package/lib/Cloudflare/Queues/QueueBinding.d.ts.map +1 -1
- package/lib/Cloudflare/Queues/QueueBinding.js +19 -0
- package/lib/Cloudflare/Queues/QueueBinding.js.map +1 -1
- package/lib/Cloudflare/Queues/QueueShim.d.ts +55 -0
- package/lib/Cloudflare/Queues/QueueShim.d.ts.map +1 -0
- package/lib/Cloudflare/Queues/QueueShim.js +177 -0
- package/lib/Cloudflare/Queues/QueueShim.js.map +1 -0
- package/lib/Cloudflare/R2/Bucket.d.ts +14 -1
- package/lib/Cloudflare/R2/Bucket.d.ts.map +1 -1
- package/lib/Cloudflare/R2/Bucket.js +53 -1
- package/lib/Cloudflare/R2/Bucket.js.map +1 -1
- package/lib/Cloudflare/R2/BucketBinding.d.ts +10 -0
- package/lib/Cloudflare/R2/BucketBinding.d.ts.map +1 -1
- package/lib/Cloudflare/R2/BucketBinding.js +14 -3
- package/lib/Cloudflare/R2/BucketBinding.js.map +1 -1
- package/lib/Cloudflare/R2/BucketLocal.d.ts +13 -6
- package/lib/Cloudflare/R2/BucketLocal.d.ts.map +1 -1
- package/lib/Cloudflare/R2/BucketLocal.js +19 -6
- package/lib/Cloudflare/R2/BucketLocal.js.map +1 -1
- package/lib/Cloudflare/R2/LocalR2Gateway.d.ts +15 -0
- package/lib/Cloudflare/R2/LocalR2Gateway.d.ts.map +1 -0
- package/lib/Cloudflare/R2/LocalR2Gateway.js +65 -0
- package/lib/Cloudflare/R2/LocalR2Gateway.js.map +1 -0
- package/lib/Cloudflare/R2/ReadBucketLocal.d.ts.map +1 -1
- package/lib/Cloudflare/R2/ReadBucketLocal.js +5 -1
- package/lib/Cloudflare/R2/ReadBucketLocal.js.map +1 -1
- package/lib/Cloudflare/R2/ReadWriteBucketLocal.d.ts.map +1 -1
- package/lib/Cloudflare/R2/ReadWriteBucketLocal.js +5 -1
- package/lib/Cloudflare/R2/ReadWriteBucketLocal.js.map +1 -1
- package/lib/Cloudflare/R2/WriteBucketLocal.d.ts.map +1 -1
- package/lib/Cloudflare/R2/WriteBucketLocal.js +5 -1
- package/lib/Cloudflare/R2/WriteBucketLocal.js.map +1 -1
- package/lib/Cloudflare/Ruleset/AccountEntrypoint.d.ts.map +1 -1
- package/lib/Cloudflare/Ruleset/AccountEntrypoint.js +5 -1
- package/lib/Cloudflare/Ruleset/AccountEntrypoint.js.map +1 -1
- package/lib/Cloudflare/Ruleset/Ruleset.d.ts.map +1 -1
- package/lib/Cloudflare/Ruleset/Ruleset.js +19 -6
- package/lib/Cloudflare/Ruleset/Ruleset.js.map +1 -1
- package/lib/Cloudflare/Rum/Site.js +10 -2
- package/lib/Cloudflare/Rum/Site.js.map +1 -1
- package/lib/Cloudflare/StateStore/Api.d.ts +32 -3
- package/lib/Cloudflare/StateStore/Api.js +1 -1
- package/lib/Cloudflare/StateStore/Api.js.map +1 -1
- package/lib/Cloudflare/StateStore/State.d.ts +1 -1
- package/lib/Cloudflare/StateStore/State.d.ts.map +1 -1
- package/lib/Cloudflare/Tunnel/Tunnel.d.ts.map +1 -1
- package/lib/Cloudflare/Tunnel/Tunnel.js +20 -1
- package/lib/Cloudflare/Tunnel/Tunnel.js.map +1 -1
- package/lib/Cloudflare/Website/StaticSite.d.ts +34 -7
- package/lib/Cloudflare/Website/StaticSite.d.ts.map +1 -1
- package/lib/Cloudflare/Website/StaticSite.js +108 -24
- package/lib/Cloudflare/Website/StaticSite.js.map +1 -1
- package/lib/Cloudflare/Website/Vite.d.ts +33 -19
- package/lib/Cloudflare/Website/Vite.d.ts.map +1 -1
- package/lib/Cloudflare/Website/Vite.js +33 -19
- package/lib/Cloudflare/Website/Vite.js.map +1 -1
- package/lib/Cloudflare/Workers/Assets.d.ts +26 -8
- package/lib/Cloudflare/Workers/Assets.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/Assets.js +46 -1
- package/lib/Cloudflare/Workers/Assets.js.map +1 -1
- package/lib/Cloudflare/Workers/Compatibility.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/Compatibility.js +26 -7
- package/lib/Cloudflare/Workers/Compatibility.js.map +1 -1
- package/lib/Cloudflare/Workers/DurableObject.d.ts +22 -0
- package/lib/Cloudflare/Workers/DurableObject.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/DurableObject.js +22 -0
- package/lib/Cloudflare/Workers/DurableObject.js.map +1 -1
- package/lib/Cloudflare/Workers/DurableObjectBridge.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/DurableObjectBridge.js +20 -5
- package/lib/Cloudflare/Workers/DurableObjectBridge.js.map +1 -1
- package/lib/Cloudflare/Workers/InferEnv.d.ts +4 -2
- package/lib/Cloudflare/Workers/InferEnv.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts +7 -3
- package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/LocalWorkerProvider.js +520 -302
- package/lib/Cloudflare/Workers/LocalWorkerProvider.js.map +1 -1
- package/lib/Cloudflare/Workers/Worker.d.ts +619 -18
- package/lib/Cloudflare/Workers/Worker.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/Worker.js +222 -2
- package/lib/Cloudflare/Workers/Worker.js.map +1 -1
- package/lib/Cloudflare/Workers/WorkerAsyncBindings.d.ts +13 -1
- package/lib/Cloudflare/Workers/WorkerAsyncBindings.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/WorkerAsyncBindings.js +171 -21
- package/lib/Cloudflare/Workers/WorkerAsyncBindings.js.map +1 -1
- package/lib/Cloudflare/Workers/WorkerBinding.d.ts +130 -28
- package/lib/Cloudflare/Workers/WorkerBinding.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/WorkerBinding.js.map +1 -1
- package/lib/Cloudflare/Workers/WorkerBridge.d.ts +6 -2
- package/lib/Cloudflare/Workers/WorkerBridge.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/WorkerBridge.js +18 -2
- package/lib/Cloudflare/Workers/WorkerBridge.js.map +1 -1
- package/lib/Cloudflare/Workers/WorkerBundle.d.ts +20 -1
- package/lib/Cloudflare/Workers/WorkerBundle.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/WorkerBundle.js +15 -1
- package/lib/Cloudflare/Workers/WorkerBundle.js.map +1 -1
- package/lib/Cloudflare/Workers/WorkerProvider.d.ts +186 -11
- package/lib/Cloudflare/Workers/WorkerProvider.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/WorkerProvider.js +1775 -240
- package/lib/Cloudflare/Workers/WorkerProvider.js.map +1 -1
- package/lib/Cloudflare/Workflows/WorkflowBridge.d.ts +9 -2
- package/lib/Cloudflare/Workflows/WorkflowBridge.d.ts.map +1 -1
- package/lib/Cloudflare/Workflows/WorkflowBridge.js +19 -9
- package/lib/Cloudflare/Workflows/WorkflowBridge.js.map +1 -1
- package/lib/Cloudflare/Workflows/index.d.ts +1 -1
- package/lib/Cloudflare/Workflows/index.d.ts.map +1 -1
- package/lib/Cloudflare/Workflows/index.js +1 -1
- package/lib/Cloudflare/Workflows/index.js.map +1 -1
- package/lib/Command/Build.d.ts +2 -2
- package/lib/Command/Build.d.ts.map +1 -1
- package/lib/Command/Build.js +4 -7
- package/lib/Command/Build.js.map +1 -1
- package/lib/Command/Command.d.ts +34 -4
- package/lib/Command/Command.d.ts.map +1 -1
- package/lib/Command/Command.js +125 -30
- package/lib/Command/Command.js.map +1 -1
- package/lib/Command/Dev.d.ts +2 -2
- package/lib/Command/Dev.d.ts.map +1 -1
- package/lib/Command/Dev.js +51 -73
- package/lib/Command/Dev.js.map +1 -1
- package/lib/Command/Exec.d.ts +11 -2
- package/lib/Command/Exec.d.ts.map +1 -1
- package/lib/Command/Exec.js +9 -0
- package/lib/Command/Exec.js.map +1 -1
- package/lib/Command/Memo.d.ts +9 -1
- package/lib/Command/Memo.d.ts.map +1 -1
- package/lib/Command/Memo.js +14 -2
- package/lib/Command/Memo.js.map +1 -1
- package/lib/Command/Providers.d.ts +1 -1
- package/lib/Command/Providers.d.ts.map +1 -1
- package/lib/Command/Redaction.d.ts +10 -0
- package/lib/Command/Redaction.d.ts.map +1 -0
- package/lib/Command/Redaction.js +119 -0
- package/lib/Command/Redaction.js.map +1 -0
- package/lib/Deploy.d.ts +2 -1
- package/lib/Deploy.d.ts.map +1 -1
- package/lib/Destroy.d.ts +2 -1
- package/lib/Destroy.d.ts.map +1 -1
- package/lib/Destroy.js +1 -9
- package/lib/Destroy.js.map +1 -1
- package/lib/Docker/Container.d.ts +41 -1
- package/lib/Docker/Container.d.ts.map +1 -1
- package/lib/Docker/Container.js +54 -12
- package/lib/Docker/Container.js.map +1 -1
- package/lib/Docker/Context.d.ts +84 -0
- package/lib/Docker/Context.d.ts.map +1 -0
- package/lib/Docker/Context.js +145 -0
- package/lib/Docker/Context.js.map +1 -0
- package/lib/Docker/Docker.d.ts +192 -14
- package/lib/Docker/Docker.d.ts.map +1 -1
- package/lib/Docker/Docker.js +149 -28
- package/lib/Docker/Docker.js.map +1 -1
- package/lib/Docker/Image.d.ts +12 -0
- package/lib/Docker/Image.d.ts.map +1 -1
- package/lib/Docker/Image.js +24 -7
- package/lib/Docker/Image.js.map +1 -1
- package/lib/Docker/Network.d.ts +7 -0
- package/lib/Docker/Network.d.ts.map +1 -1
- package/lib/Docker/Network.js +16 -7
- package/lib/Docker/Network.js.map +1 -1
- package/lib/Docker/Providers.d.ts +1 -1
- package/lib/Docker/Providers.d.ts.map +1 -1
- package/lib/Docker/Providers.js +13 -1
- package/lib/Docker/Providers.js.map +1 -1
- package/lib/Docker/RemoteImage.d.ts +12 -0
- package/lib/Docker/RemoteImage.d.ts.map +1 -1
- package/lib/Docker/RemoteImage.js +22 -8
- package/lib/Docker/RemoteImage.js.map +1 -1
- package/lib/Docker/Service.d.ts +445 -0
- package/lib/Docker/Service.d.ts.map +1 -0
- package/lib/Docker/Service.js +578 -0
- package/lib/Docker/Service.js.map +1 -0
- package/lib/Docker/ServiceImage.d.ts +78 -0
- package/lib/Docker/ServiceImage.d.ts.map +1 -0
- package/lib/Docker/ServiceImage.js +232 -0
- package/lib/Docker/ServiceImage.js.map +1 -0
- package/lib/Docker/Swarm.d.ts +117 -0
- package/lib/Docker/Swarm.d.ts.map +1 -0
- package/lib/Docker/Swarm.js +149 -0
- package/lib/Docker/Swarm.js.map +1 -0
- package/lib/Docker/Volume.d.ts +11 -0
- package/lib/Docker/Volume.d.ts.map +1 -1
- package/lib/Docker/Volume.js +21 -6
- package/lib/Docker/Volume.js.map +1 -1
- package/lib/Docker/index.d.ts +3 -0
- package/lib/Docker/index.d.ts.map +1 -1
- package/lib/Docker/index.js +3 -0
- package/lib/Docker/index.js.map +1 -1
- package/lib/Http.d.ts +8 -1
- package/lib/Http.d.ts.map +1 -1
- package/lib/Http.js +7 -2
- package/lib/Http.js.map +1 -1
- package/lib/Local/LocalProvider.d.ts +182 -0
- package/lib/Local/LocalProvider.d.ts.map +1 -0
- package/lib/Local/LocalProvider.js +226 -0
- package/lib/Local/LocalProvider.js.map +1 -0
- package/lib/Local/ProviderLayer.d.ts +43 -2
- package/lib/Local/ProviderLayer.d.ts.map +1 -1
- package/lib/Local/ProviderLayer.js +80 -2
- package/lib/Local/ProviderLayer.js.map +1 -1
- package/lib/Local/RpcProvider.d.ts +7 -0
- package/lib/Local/RpcProvider.d.ts.map +1 -1
- package/lib/Local/RpcProvider.js +8 -3
- package/lib/Local/RpcProvider.js.map +1 -1
- package/lib/Local/RpcProviderProxy.d.ts.map +1 -1
- package/lib/Local/RpcProviderProxy.js +3 -0
- package/lib/Local/RpcProviderProxy.js.map +1 -1
- package/lib/Local/RpcServer.d.ts +8 -1
- package/lib/Local/RpcServer.d.ts.map +1 -1
- package/lib/Local/RpcServer.js +4 -1
- package/lib/Local/RpcServer.js.map +1 -1
- package/lib/Output.d.ts +4 -1
- package/lib/Output.d.ts.map +1 -1
- package/lib/Output.js.map +1 -1
- package/lib/Plan.d.ts +34 -0
- package/lib/Plan.d.ts.map +1 -1
- package/lib/Plan.js +127 -40
- package/lib/Plan.js.map +1 -1
- package/lib/Planetscale/AuthProvider.d.ts.map +1 -1
- package/lib/Planetscale/AuthProvider.js +6 -2
- package/lib/Planetscale/AuthProvider.js.map +1 -1
- package/lib/Planetscale/Branch.d.ts.map +1 -1
- package/lib/Planetscale/Branch.js +36 -6
- package/lib/Planetscale/Branch.js.map +1 -1
- package/lib/Planetscale/MySQL/MySQLDatabase.d.ts.map +1 -1
- package/lib/Planetscale/MySQL/MySQLDatabase.js +31 -6
- package/lib/Planetscale/MySQL/MySQLDatabase.js.map +1 -1
- package/lib/Planetscale/OAuthClient.d.ts +7 -1
- package/lib/Planetscale/OAuthClient.d.ts.map +1 -1
- package/lib/Planetscale/OAuthClient.js +51 -4
- package/lib/Planetscale/OAuthClient.js.map +1 -1
- package/lib/Planetscale/Postgres/PostgresDatabase.d.ts.map +1 -1
- package/lib/Planetscale/Postgres/PostgresDatabase.js +30 -5
- package/lib/Planetscale/Postgres/PostgresDatabase.js.map +1 -1
- package/lib/Platform.d.ts.map +1 -1
- package/lib/Platform.js +25 -14
- package/lib/Platform.js.map +1 -1
- package/lib/Prisma/App.d.ts +80 -0
- package/lib/Prisma/App.d.ts.map +1 -0
- package/lib/Prisma/App.js +238 -0
- package/lib/Prisma/App.js.map +1 -0
- package/lib/Prisma/AuthProvider.d.ts +28 -0
- package/lib/Prisma/AuthProvider.d.ts.map +1 -0
- package/lib/Prisma/AuthProvider.js +131 -0
- package/lib/Prisma/AuthProvider.js.map +1 -0
- package/lib/Prisma/Branch.d.ts +75 -0
- package/lib/Prisma/Branch.d.ts.map +1 -0
- package/lib/Prisma/Branch.js +216 -0
- package/lib/Prisma/Branch.js.map +1 -0
- package/lib/Prisma/Client.d.ts +178 -0
- package/lib/Prisma/Client.d.ts.map +1 -0
- package/lib/Prisma/Client.js +562 -0
- package/lib/Prisma/Client.js.map +1 -0
- package/lib/Prisma/Compute.d.ts +583 -0
- package/lib/Prisma/Compute.d.ts.map +1 -0
- package/lib/Prisma/Compute.js +1543 -0
- package/lib/Prisma/Compute.js.map +1 -0
- package/lib/Prisma/ComputeArchive.d.ts +63 -0
- package/lib/Prisma/ComputeArchive.d.ts.map +1 -0
- package/lib/Prisma/ComputeArchive.js +227 -0
- package/lib/Prisma/ComputeArchive.js.map +1 -0
- package/lib/Prisma/ComputeBuild.d.ts +106 -0
- package/lib/Prisma/ComputeBuild.d.ts.map +1 -0
- package/lib/Prisma/ComputeBuild.js +987 -0
- package/lib/Prisma/ComputeBuild.js.map +1 -0
- package/lib/Prisma/ComputeLifecycle.d.ts +84 -0
- package/lib/Prisma/ComputeLifecycle.d.ts.map +1 -0
- package/lib/Prisma/ComputeLifecycle.js +186 -0
- package/lib/Prisma/ComputeLifecycle.js.map +1 -0
- package/lib/Prisma/Connect.d.ts +99 -0
- package/lib/Prisma/Connect.d.ts.map +1 -0
- package/lib/Prisma/Connect.js +187 -0
- package/lib/Prisma/Connect.js.map +1 -0
- package/lib/Prisma/Connection.d.ts +202 -0
- package/lib/Prisma/Connection.d.ts.map +1 -0
- package/lib/Prisma/Connection.js +346 -0
- package/lib/Prisma/Connection.js.map +1 -0
- package/lib/Prisma/CustomDomain.d.ts +81 -0
- package/lib/Prisma/CustomDomain.d.ts.map +1 -0
- package/lib/Prisma/CustomDomain.js +175 -0
- package/lib/Prisma/CustomDomain.js.map +1 -0
- package/lib/Prisma/Database.d.ts +208 -0
- package/lib/Prisma/Database.d.ts.map +1 -0
- package/lib/Prisma/Database.js +405 -0
- package/lib/Prisma/Database.js.map +1 -0
- package/lib/Prisma/Deployment.d.ts +135 -0
- package/lib/Prisma/Deployment.d.ts.map +1 -0
- package/lib/Prisma/Deployment.js +348 -0
- package/lib/Prisma/Deployment.js.map +1 -0
- package/lib/Prisma/EnvironmentVariable.d.ts +89 -0
- package/lib/Prisma/EnvironmentVariable.d.ts.map +1 -0
- package/lib/Prisma/EnvironmentVariable.js +213 -0
- package/lib/Prisma/EnvironmentVariable.js.map +1 -0
- package/lib/Prisma/Internal/AppIdentity.d.ts +10 -0
- package/lib/Prisma/Internal/AppIdentity.d.ts.map +1 -0
- package/lib/Prisma/Internal/AppIdentity.js +6 -0
- package/lib/Prisma/Internal/AppIdentity.js.map +1 -0
- package/lib/Prisma/Internal/AppPromotion.d.ts +19 -0
- package/lib/Prisma/Internal/AppPromotion.d.ts.map +1 -0
- package/lib/Prisma/Internal/AppPromotion.js +107 -0
- package/lib/Prisma/Internal/AppPromotion.js.map +1 -0
- package/lib/Prisma/Internal/ArchivePlatform.d.ts +42 -0
- package/lib/Prisma/Internal/ArchivePlatform.d.ts.map +1 -0
- package/lib/Prisma/Internal/ArchivePlatform.js +214 -0
- package/lib/Prisma/Internal/ArchivePlatform.js.map +1 -0
- package/lib/Prisma/Internal/ArtifactFile.d.ts +58 -0
- package/lib/Prisma/Internal/ArtifactFile.d.ts.map +1 -0
- package/lib/Prisma/Internal/ArtifactFile.js +134 -0
- package/lib/Prisma/Internal/ArtifactFile.js.map +1 -0
- package/lib/Prisma/Internal/ArtifactUpload.d.ts +5 -0
- package/lib/Prisma/Internal/ArtifactUpload.d.ts.map +1 -0
- package/lib/Prisma/Internal/ArtifactUpload.js +51 -0
- package/lib/Prisma/Internal/ArtifactUpload.js.map +1 -0
- package/lib/Prisma/Internal/BundlePaths.d.ts +4 -0
- package/lib/Prisma/Internal/BundlePaths.d.ts.map +1 -0
- package/lib/Prisma/Internal/BundlePaths.js +16 -0
- package/lib/Prisma/Internal/BundlePaths.js.map +1 -0
- package/lib/Prisma/Internal/CleanupFailure.d.ts +8 -0
- package/lib/Prisma/Internal/CleanupFailure.d.ts.map +1 -0
- package/lib/Prisma/Internal/CleanupFailure.js +8 -0
- package/lib/Prisma/Internal/CleanupFailure.js.map +1 -0
- package/lib/Prisma/Internal/DatabaseSecrets.d.ts +35 -0
- package/lib/Prisma/Internal/DatabaseSecrets.d.ts.map +1 -0
- package/lib/Prisma/Internal/DatabaseSecrets.js +85 -0
- package/lib/Prisma/Internal/DatabaseSecrets.js.map +1 -0
- package/lib/Prisma/Internal/DeploymentActions.d.ts +5 -0
- package/lib/Prisma/Internal/DeploymentActions.d.ts.map +1 -0
- package/lib/Prisma/Internal/DeploymentActions.js +16 -0
- package/lib/Prisma/Internal/DeploymentActions.js.map +1 -0
- package/lib/Prisma/Internal/DeploymentIdentity.d.ts +8 -0
- package/lib/Prisma/Internal/DeploymentIdentity.d.ts.map +1 -0
- package/lib/Prisma/Internal/DeploymentIdentity.js +12 -0
- package/lib/Prisma/Internal/DeploymentIdentity.js.map +1 -0
- package/lib/Prisma/Internal/DeploymentObserve.d.ts +3 -0
- package/lib/Prisma/Internal/DeploymentObserve.d.ts.map +1 -0
- package/lib/Prisma/Internal/DeploymentObserve.js +2 -0
- package/lib/Prisma/Internal/DeploymentObserve.js.map +1 -0
- package/lib/Prisma/Internal/EnvName.d.ts +7 -0
- package/lib/Prisma/Internal/EnvName.d.ts.map +1 -0
- package/lib/Prisma/Internal/EnvName.js +23 -0
- package/lib/Prisma/Internal/EnvName.js.map +1 -0
- package/lib/Prisma/Internal/HttpClient.d.ts +21 -0
- package/lib/Prisma/Internal/HttpClient.d.ts.map +1 -0
- package/lib/Prisma/Internal/HttpClient.js +23 -0
- package/lib/Prisma/Internal/HttpClient.js.map +1 -0
- package/lib/Prisma/Operations.d.ts +143 -0
- package/lib/Prisma/Operations.d.ts.map +1 -0
- package/lib/Prisma/Operations.js +75 -0
- package/lib/Prisma/Operations.js.map +1 -0
- package/lib/Prisma/Postgres.d.ts +24 -0
- package/lib/Prisma/Postgres.d.ts.map +1 -0
- package/lib/Prisma/Postgres.js +23 -0
- package/lib/Prisma/Postgres.js.map +1 -0
- package/lib/Prisma/PostgresOrigin.d.ts +31 -0
- package/lib/Prisma/PostgresOrigin.d.ts.map +1 -0
- package/lib/Prisma/PostgresOrigin.js +30 -0
- package/lib/Prisma/PostgresOrigin.js.map +1 -0
- package/lib/Prisma/PrismaDevDatabase.d.ts +25 -0
- package/lib/Prisma/PrismaDevDatabase.d.ts.map +1 -0
- package/lib/Prisma/PrismaDevDatabase.js +280 -0
- package/lib/Prisma/PrismaDevDatabase.js.map +1 -0
- package/lib/Prisma/PrismaEnvironment.d.ts +14 -0
- package/lib/Prisma/PrismaEnvironment.d.ts.map +1 -0
- package/lib/Prisma/PrismaEnvironment.js +50 -0
- package/lib/Prisma/PrismaEnvironment.js.map +1 -0
- package/lib/Prisma/PrismaLogs.d.ts +42 -0
- package/lib/Prisma/PrismaLogs.d.ts.map +1 -0
- package/lib/Prisma/PrismaLogs.js +318 -0
- package/lib/Prisma/PrismaLogs.js.map +1 -0
- package/lib/Prisma/Project.d.ts +117 -0
- package/lib/Prisma/Project.d.ts.map +1 -0
- package/lib/Prisma/Project.js +361 -0
- package/lib/Prisma/Project.js.map +1 -0
- package/lib/Prisma/Providers.d.ts +61 -0
- package/lib/Prisma/Providers.d.ts.map +1 -0
- package/lib/Prisma/Providers.js +282 -0
- package/lib/Prisma/Providers.js.map +1 -0
- package/lib/Prisma/Refs.d.ts +19 -0
- package/lib/Prisma/Refs.d.ts.map +1 -0
- package/lib/Prisma/Refs.js +25 -0
- package/lib/Prisma/Refs.js.map +1 -0
- package/lib/Prisma/SourceRepository.d.ts +104 -0
- package/lib/Prisma/SourceRepository.d.ts.map +1 -0
- package/lib/Prisma/SourceRepository.js +221 -0
- package/lib/Prisma/SourceRepository.js.map +1 -0
- package/lib/Prisma/Types.d.ts +539 -0
- package/lib/Prisma/Types.d.ts.map +1 -0
- package/lib/Prisma/Types.js +13 -0
- package/lib/Prisma/Types.js.map +1 -0
- package/lib/Prisma/index.d.ts +25 -0
- package/lib/Prisma/index.d.ts.map +1 -0
- package/lib/Prisma/index.js +24 -0
- package/lib/Prisma/index.js.map +1 -0
- package/lib/Provider.d.ts +77 -5
- package/lib/Provider.d.ts.map +1 -1
- package/lib/Provider.js +54 -30
- package/lib/Provider.js.map +1 -1
- package/lib/ProviderMode.d.ts +93 -0
- package/lib/ProviderMode.d.ts.map +1 -0
- package/lib/ProviderMode.js +77 -0
- package/lib/ProviderMode.js.map +1 -0
- package/lib/Random.d.ts +1 -1
- package/lib/Random.d.ts.map +1 -1
- package/lib/Resource.d.ts +22 -1
- package/lib/Resource.d.ts.map +1 -1
- package/lib/Resource.js +31 -0
- package/lib/Resource.js.map +1 -1
- package/lib/RuntimeContext.d.ts +7 -0
- package/lib/RuntimeContext.d.ts.map +1 -1
- package/lib/RuntimeContext.js.map +1 -1
- package/lib/SQL/D1.d.ts +1 -1
- package/lib/SQL/D1.js +1 -1
- package/lib/SQL/Postgres.d.ts +1 -1
- package/lib/SQL/Postgres.js +1 -1
- package/lib/Server/Process.d.ts +8 -0
- package/lib/Server/Process.d.ts.map +1 -1
- package/lib/Server/Process.js +29 -0
- package/lib/Server/Process.js.map +1 -1
- package/lib/State/HttpStateApi.d.ts +11 -11
- package/lib/State/InMemoryState.d.ts.map +1 -1
- package/lib/State/InMemoryState.js +2 -0
- package/lib/State/InMemoryState.js.map +1 -1
- package/lib/State/ResourceState.d.ts +18 -0
- package/lib/State/ResourceState.d.ts.map +1 -1
- package/lib/Sync.d.ts.map +1 -1
- package/lib/Sync.js +8 -2
- package/lib/Sync.js.map +1 -1
- package/lib/Telemetry.d.ts +150 -0
- package/lib/Telemetry.d.ts.map +1 -0
- package/lib/Telemetry.js +512 -0
- package/lib/Telemetry.js.map +1 -0
- package/lib/Test/Alchemy.d.ts +1 -1
- package/lib/Test/Alchemy.d.ts.map +1 -1
- package/lib/Test/Alchemy.js +4 -2
- package/lib/Test/Alchemy.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 +1 -8
- package/lib/Test/Core.js.map +1 -1
- package/lib/Test/Vitest.d.ts +58 -0
- package/lib/Test/Vitest.d.ts.map +1 -0
- package/lib/Test/Vitest.js +114 -0
- package/lib/Test/Vitest.js.map +1 -0
- package/lib/Util/Clank.d.ts +11 -6
- package/lib/Util/Clank.d.ts.map +1 -1
- package/lib/Util/Clank.js +22 -9
- package/lib/Util/Clank.js.map +1 -1
- package/lib/Util/proxy-chain.d.ts +5 -0
- package/lib/Util/proxy-chain.d.ts.map +1 -1
- package/lib/Util/proxy-chain.js +52 -4
- package/lib/Util/proxy-chain.js.map +1 -1
- package/lib/Util/zip.d.ts +11 -0
- package/lib/Util/zip.d.ts.map +1 -1
- package/lib/Util/zip.js +30 -0
- package/lib/Util/zip.js.map +1 -1
- package/lib/index.d.ts +3 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +3 -0
- package/lib/index.js.map +1 -1
- package/package.json +59 -18
- package/src/AWS/ApiGateway/common.ts +9 -0
- package/src/AWS/Bedrock/LanguageModel.ts +883 -0
- package/src/AWS/Bedrock/LanguageModelHttp.ts +36 -0
- package/src/AWS/Bedrock/index.ts +2 -0
- package/src/AWS/CloudFront/Distribution.ts +116 -6
- package/src/AWS/CostExplorer/common.ts +23 -2
- package/src/AWS/DataSync/Task.ts +30 -15
- package/src/AWS/EC2/InternetGateway.ts +8 -3
- package/src/AWS/EC2/LingeringEnis.ts +169 -0
- package/src/AWS/EC2/SecurityGroup.ts +24 -28
- package/src/AWS/EC2/Subnet.ts +23 -34
- package/src/AWS/EC2/Vpc.ts +35 -21
- package/src/AWS/EC2/hosted.ts +10 -2
- package/src/AWS/ECR/ImageSource.ts +10 -2
- package/src/AWS/ECR/Repository.ts +39 -4
- package/src/AWS/ECS/Service.ts +322 -22
- package/src/AWS/ECS/Task.ts +82 -32
- package/src/AWS/EKS/Addon.ts +17 -4
- package/src/AWS/EKS/Deployment.ts +36 -7
- package/src/AWS/EKS/HyperPod.ts +97 -0
- package/src/AWS/EKS/Job.ts +42 -9
- package/src/AWS/EKS/internal/client.ts +40 -3
- package/src/AWS/Lambda/Function.ts +106 -46
- package/src/AWS/Lambda/HttpServer.ts +7 -1
- package/src/AWS/Lambda/LayerVersion.ts +490 -0
- package/src/AWS/Lambda/MicrovmBundle.ts +10 -2
- package/src/AWS/Lambda/index.ts +1 -0
- package/src/AWS/Providers.ts +16 -0
- package/src/AWS/SES/ActiveReceiptRuleSet.ts +88 -0
- package/src/AWS/SES/ReceiptFilter.ts +169 -0
- package/src/AWS/SES/ReceiptRule.ts +300 -0
- package/src/AWS/SES/ReceiptRuleSet.ts +164 -0
- package/src/AWS/SES/SendBounce.ts +44 -0
- package/src/AWS/SES/SendBounceHttp.ts +13 -0
- package/src/AWS/SES/index.ts +6 -0
- package/src/AWS/SageMaker/Cluster.ts +775 -0
- package/src/AWS/SageMaker/ClusterSchedulerConfig.ts +430 -0
- package/src/AWS/SageMaker/ComputeQuota.ts +426 -0
- package/src/AWS/SageMaker/index.ts +3 -0
- package/src/AWS/StateStore/State.ts +159 -42
- package/src/Apply.ts +199 -83
- package/src/Axiom/Telemetry.ts +119 -0
- package/src/Axiom/index.ts +1 -0
- package/src/Bundle/Bundle.ts +17 -7
- package/src/Bundle/BundleAnalyzerPlugin.ts +9 -4
- package/src/Bundle/PurePlugin.ts +109 -46
- package/src/Cli/checkVersion.ts +102 -16
- package/src/Cli/commands/deploy.ts +3 -14
- package/src/Cli/commands/logs.ts +6 -1
- package/src/Cli/commands/nuke.ts +295 -56
- package/src/Cli/commands/tail.ts +6 -1
- package/src/Cli/main.ts +5 -4
- package/src/Cloudflare/AI/Search.ts +4 -18
- package/src/Cloudflare/AI/SearchInstance.ts +7 -26
- package/src/Cloudflare/ApiToken/AccountApiToken.ts +3 -0
- package/src/Cloudflare/Auth/AuthProvider.ts +17 -3
- package/src/Cloudflare/Auth/OAuthClient.ts +58 -2
- package/src/Cloudflare/Containers/Container.ts +92 -3
- package/src/Cloudflare/Containers/ContainerApplication.ts +31 -5
- package/src/Cloudflare/Containers/ContainerBundle.ts +10 -2
- package/src/Cloudflare/Containers/ContainerProvider.ts +62 -0
- package/src/Cloudflare/Credentials.ts +69 -9
- package/src/Cloudflare/D1/ApplyMigrations.ts +72 -77
- package/src/Cloudflare/D1/Database.ts +154 -2
- package/src/Cloudflare/D1/LocalD1Gateway.ts +150 -0
- package/src/Cloudflare/D1/QueryDatabaseHttpClient.ts +49 -11
- package/src/Cloudflare/D1/QueryDatabaseLocal.ts +44 -2
- package/src/Cloudflare/Email/Address.ts +18 -1
- package/src/Cloudflare/Email/SendBinding.ts +1 -0
- package/src/Cloudflare/Email/SendEmail.ts +13 -0
- package/src/Cloudflare/Flagship/App.ts +18 -6
- package/src/Cloudflare/KV/LocalKVGateway.ts +86 -0
- package/src/Cloudflare/KV/Namespace.ts +47 -1
- package/src/Cloudflare/KV/NamespaceLocal.ts +29 -6
- package/src/Cloudflare/KV/ReadNamespaceLocal.ts +5 -1
- package/src/Cloudflare/KV/ReadWriteNamespaceLocal.ts +5 -1
- package/src/Cloudflare/KV/WriteNamespaceLocal.ts +5 -1
- package/src/Cloudflare/LocalGateway.ts +86 -0
- package/src/Cloudflare/LocalRuntime.ts +21 -1
- package/src/Cloudflare/Logs.ts +58 -28
- package/src/Cloudflare/Providers.ts +4 -2
- package/src/Cloudflare/Queues/Consumer.ts +70 -2
- package/src/Cloudflare/Queues/Queue.ts +7 -16
- package/src/Cloudflare/Queues/QueueBinding.ts +21 -0
- package/src/Cloudflare/Queues/QueueShim.ts +193 -0
- package/src/Cloudflare/R2/Bucket.ts +55 -1
- package/src/Cloudflare/R2/BucketBinding.ts +17 -3
- package/src/Cloudflare/R2/BucketLocal.ts +25 -8
- package/src/Cloudflare/R2/LocalR2Gateway.ts +84 -0
- package/src/Cloudflare/R2/ReadBucketLocal.ts +7 -1
- package/src/Cloudflare/R2/ReadWriteBucketLocal.ts +7 -1
- package/src/Cloudflare/R2/WriteBucketLocal.ts +7 -1
- package/src/Cloudflare/Ruleset/AccountEntrypoint.ts +5 -1
- package/src/Cloudflare/Ruleset/Ruleset.ts +20 -6
- package/src/Cloudflare/Rum/Site.ts +11 -4
- package/src/Cloudflare/StateStore/Api.ts +1 -1
- package/src/Cloudflare/Tunnel/Tunnel.ts +23 -1
- package/src/Cloudflare/Website/StaticSite.ts +117 -28
- package/src/Cloudflare/Website/Vite.ts +33 -19
- package/src/Cloudflare/Workers/Assets.ts +53 -1
- package/src/Cloudflare/Workers/Compatibility.ts +27 -7
- package/src/Cloudflare/Workers/DurableObject.ts +22 -0
- package/src/Cloudflare/Workers/DurableObjectBridge.ts +29 -10
- package/src/Cloudflare/Workers/InferEnv.ts +74 -59
- package/src/Cloudflare/Workers/LocalWorkerProvider.ts +662 -405
- package/src/Cloudflare/Workers/Worker.ts +683 -33
- package/src/Cloudflare/Workers/WorkerAsyncBindings.ts +209 -25
- package/src/Cloudflare/Workers/WorkerBinding.ts +67 -3
- package/src/Cloudflare/Workers/WorkerBridge.ts +26 -4
- package/src/Cloudflare/Workers/WorkerBundle.ts +37 -2
- package/src/Cloudflare/Workers/WorkerProvider.ts +2287 -281
- package/src/Cloudflare/Workflows/WorkflowBridge.ts +36 -18
- package/src/Cloudflare/Workflows/index.ts +1 -1
- package/src/Command/Build.ts +8 -8
- package/src/Command/Command.ts +217 -42
- package/src/Command/Dev.ts +79 -107
- package/src/Command/Exec.ts +11 -2
- package/src/Command/Memo.ts +27 -3
- package/src/Command/Redaction.ts +181 -0
- package/src/Destroy.ts +1 -10
- package/src/Docker/Container.ts +85 -16
- package/src/Docker/Context.ts +236 -0
- package/src/Docker/Docker.ts +395 -43
- package/src/Docker/Image.ts +28 -7
- package/src/Docker/Network.ts +38 -14
- package/src/Docker/Providers.ts +16 -1
- package/src/Docker/RemoteImage.ts +23 -7
- package/src/Docker/Service.ts +1119 -0
- package/src/Docker/ServiceImage.ts +331 -0
- package/src/Docker/Swarm.ts +226 -0
- package/src/Docker/Volume.ts +25 -6
- package/src/Docker/index.ts +3 -0
- package/src/Http.ts +15 -2
- package/src/Local/LocalProvider.ts +518 -0
- package/src/Local/ProviderLayer.ts +113 -11
- package/src/Local/RpcProvider.ts +10 -5
- package/src/Local/RpcProviderProxy.ts +4 -1
- package/src/Local/RpcServer.ts +20 -2
- package/src/Output.ts +19 -11
- package/src/Plan.ts +182 -54
- package/src/Planetscale/AuthProvider.ts +15 -2
- package/src/Planetscale/Branch.ts +39 -6
- package/src/Planetscale/MySQL/MySQLDatabase.ts +34 -6
- package/src/Planetscale/OAuthClient.ts +59 -3
- package/src/Planetscale/Postgres/PostgresDatabase.ts +33 -5
- package/src/Platform.ts +29 -17
- package/src/Prisma/App.ts +420 -0
- package/src/Prisma/AuthProvider.ts +260 -0
- package/src/Prisma/Branch.ts +396 -0
- package/src/Prisma/Client.ts +1337 -0
- package/src/Prisma/Compute.ts +2876 -0
- package/src/Prisma/ComputeArchive.ts +432 -0
- package/src/Prisma/ComputeBuild.ts +1652 -0
- package/src/Prisma/ComputeLifecycle.ts +391 -0
- package/src/Prisma/Connect.ts +410 -0
- package/src/Prisma/Connection.ts +626 -0
- package/src/Prisma/CustomDomain.ts +363 -0
- package/src/Prisma/Database.ts +836 -0
- package/src/Prisma/Deployment.ts +655 -0
- package/src/Prisma/EnvironmentVariable.ts +401 -0
- package/src/Prisma/Internal/AppIdentity.ts +19 -0
- package/src/Prisma/Internal/AppPromotion.ts +172 -0
- package/src/Prisma/Internal/ArchivePlatform.ts +320 -0
- package/src/Prisma/Internal/ArtifactFile.ts +242 -0
- package/src/Prisma/Internal/ArtifactUpload.ts +86 -0
- package/src/Prisma/Internal/BundlePaths.ts +28 -0
- package/src/Prisma/Internal/CleanupFailure.ts +17 -0
- package/src/Prisma/Internal/DatabaseSecrets.ts +175 -0
- package/src/Prisma/Internal/DeploymentActions.ts +59 -0
- package/src/Prisma/Internal/DeploymentIdentity.ts +25 -0
- package/src/Prisma/Internal/DeploymentObserve.ts +6 -0
- package/src/Prisma/Internal/EnvName.ts +24 -0
- package/src/Prisma/Internal/HttpClient.ts +30 -0
- package/src/Prisma/Operations.ts +259 -0
- package/src/Prisma/Postgres.ts +24 -0
- package/src/Prisma/PostgresOrigin.ts +52 -0
- package/src/Prisma/PrismaDevDatabase.ts +395 -0
- package/src/Prisma/PrismaEnvironment.ts +89 -0
- package/src/Prisma/PrismaLogs.ts +434 -0
- package/src/Prisma/Project.ts +681 -0
- package/src/Prisma/Providers.ts +411 -0
- package/src/Prisma/Refs.ts +69 -0
- package/src/Prisma/SourceRepository.ts +432 -0
- package/src/Prisma/Types.ts +611 -0
- package/src/Prisma/index.ts +24 -0
- package/src/Provider.ts +175 -39
- package/src/ProviderMode.ts +123 -0
- package/src/Resource.ts +64 -1
- package/src/RuntimeContext.ts +7 -0
- package/src/SQL/D1.ts +1 -1
- package/src/SQL/Postgres.ts +1 -1
- package/src/Server/Process.ts +33 -0
- package/src/State/InMemoryState.ts +2 -0
- package/src/State/ResourceState.ts +18 -0
- package/src/Sync.ts +14 -2
- package/src/Telemetry.ts +736 -0
- package/src/Test/Alchemy.ts +4 -2
- package/src/Test/Core.ts +1 -8
- package/src/Test/Vitest.ts +244 -0
- package/src/Util/Clank.ts +37 -11
- package/src/Util/proxy-chain.ts +73 -4
- package/src/Util/zip.ts +39 -0
- package/src/index.ts +3 -0
- package/lib/SQL/index.d.ts +0 -4
- package/lib/SQL/index.d.ts.map +0 -1
- package/lib/SQL/index.js +0 -4
- package/lib/SQL/index.js.map +0 -1
- package/src/SQL/index.ts +0 -3
package/src/AWS/ECS/Task.ts
CHANGED
|
@@ -19,7 +19,7 @@ import * as Provider from "../../Provider.ts";
|
|
|
19
19
|
import { Resource, type ResourceBinding } from "../../Resource.ts";
|
|
20
20
|
import type { RuntimeContext } from "../../RuntimeContext.ts";
|
|
21
21
|
import {
|
|
22
|
-
|
|
22
|
+
createContainerRuntimeContext,
|
|
23
23
|
type HostRuntimeContext,
|
|
24
24
|
type ServerHost,
|
|
25
25
|
} from "../../Server/Process.ts";
|
|
@@ -104,6 +104,17 @@ export interface TaskDefinitionConfig {
|
|
|
104
104
|
* Additional environment variables for the container.
|
|
105
105
|
*/
|
|
106
106
|
env?: Record<string, any>;
|
|
107
|
+
/**
|
|
108
|
+
* Environment files to load into the primary container, e.g. `.env`
|
|
109
|
+
* objects stored in S3:
|
|
110
|
+
* `[{ value: "arn:aws:s3:::my-bucket/app.env", type: "s3" }]`.
|
|
111
|
+
*
|
|
112
|
+
* Variables from `env` (and the container's own `environment`) take
|
|
113
|
+
* precedence over values loaded from environment files. The execution
|
|
114
|
+
* role is automatically granted `s3:GetObject` on the referenced objects
|
|
115
|
+
* and `s3:GetBucketLocation` on their buckets.
|
|
116
|
+
*/
|
|
117
|
+
environmentFiles?: ecs.EnvironmentFile[];
|
|
107
118
|
/**
|
|
108
119
|
* Command override for the primary container (Docker `CMD`).
|
|
109
120
|
*/
|
|
@@ -298,37 +309,8 @@ export interface TaskRuntimeContext extends HostRuntimeContext {
|
|
|
298
309
|
readonly Type: "AWS.ECS.Task";
|
|
299
310
|
}
|
|
300
311
|
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
* process host context so an impl shape's `run` effect is registered as a
|
|
304
|
-
* one-shot runner (the container exits when it completes) and the HTTP
|
|
305
|
-
* server only boots when the impl actually declares a `fetch` handler.
|
|
306
|
-
*/
|
|
307
|
-
export const createContainerRuntimeContext =
|
|
308
|
-
(type: string) =>
|
|
309
|
-
(id: string): HostRuntimeContext => {
|
|
310
|
-
const base = createHostRuntimeContext(type)(id);
|
|
311
|
-
// Capture the host serve BEFORE Object.assign overwrites `base.serve`
|
|
312
|
-
// with the wrapper below — calling `base.serve` inside the wrapper would
|
|
313
|
-
// resolve to the wrapper itself (property lookup happens at call time)
|
|
314
|
-
// and recurse without bound the moment an impl declares `fetch`.
|
|
315
|
-
const serveBase = base.serve;
|
|
316
|
-
const serve: HostRuntimeContext["serve"] = (handler, options) =>
|
|
317
|
-
Effect.gen(function* () {
|
|
318
|
-
const shape = options?.shape;
|
|
319
|
-
const run = shape?.run;
|
|
320
|
-
if (Effect.isEffect(run)) {
|
|
321
|
-
yield* base.run(run as Effect.Effect<void, never, any>);
|
|
322
|
-
}
|
|
323
|
-
// Boot the HTTP server only for an impl that declared `fetch` — a
|
|
324
|
-
// pure one-shot `{ run }` program must exit when `run` completes
|
|
325
|
-
// rather than parking behind the 404 fallback server forever.
|
|
326
|
-
if (shape === undefined || shape.fetch !== undefined) {
|
|
327
|
-
yield* serveBase(handler, options);
|
|
328
|
-
}
|
|
329
|
-
}) as Effect.Effect<void, never, never>;
|
|
330
|
-
return Object.assign(base, { serve });
|
|
331
|
-
};
|
|
312
|
+
// Shared with `Docker.Service`; lives beside the host runtime context.
|
|
313
|
+
export { createContainerRuntimeContext } from "../../Server/Process.ts";
|
|
332
314
|
|
|
333
315
|
/**
|
|
334
316
|
* A Fargate task definition with a container image from one of three
|
|
@@ -426,6 +408,16 @@ export const createContainerRuntimeContext =
|
|
|
426
408
|
* },
|
|
427
409
|
* });
|
|
428
410
|
* ```
|
|
411
|
+
*
|
|
412
|
+
* @example Environment Files from S3
|
|
413
|
+
* ```typescript
|
|
414
|
+
* const task = yield* Task("ApiTask", {
|
|
415
|
+
* main: import.meta.url,
|
|
416
|
+
* environmentFiles: [
|
|
417
|
+
* { value: "arn:aws:s3:::my-config-bucket/app.env", type: "s3" },
|
|
418
|
+
* ],
|
|
419
|
+
* });
|
|
420
|
+
* ```
|
|
429
421
|
*/
|
|
430
422
|
export const Task: Platform<Task, TaskServices, TaskShape, TaskRuntimeContext> =
|
|
431
423
|
Platform("AWS.ECS.Task", {
|
|
@@ -518,6 +510,56 @@ export const ensureTaskExecutionRole = Effect.fn(function* ({
|
|
|
518
510
|
return roleArn;
|
|
519
511
|
});
|
|
520
512
|
|
|
513
|
+
/** Inline policy granting the execution role read access to `environmentFiles`. */
|
|
514
|
+
const ENVIRONMENT_FILES_POLICY_NAME = "alchemy-environment-files";
|
|
515
|
+
|
|
516
|
+
/**
|
|
517
|
+
* Sync the execution role's read access to the S3 `environmentFiles`: put
|
|
518
|
+
* an inline policy granting `s3:GetObject` on the referenced objects (and
|
|
519
|
+
* `s3:GetBucketLocation` on their buckets), or delete the policy when no
|
|
520
|
+
* environment files are configured.
|
|
521
|
+
*/
|
|
522
|
+
export const syncEnvironmentFilesPolicy = Effect.fn(function* ({
|
|
523
|
+
roleName,
|
|
524
|
+
environmentFiles,
|
|
525
|
+
}: {
|
|
526
|
+
roleName: string;
|
|
527
|
+
environmentFiles: ecs.EnvironmentFile[] | undefined;
|
|
528
|
+
}) {
|
|
529
|
+
const objectArns = (environmentFiles ?? [])
|
|
530
|
+
.filter((file) => file.type === "s3")
|
|
531
|
+
.map((file) => file.value);
|
|
532
|
+
if (objectArns.length === 0) {
|
|
533
|
+
yield* iam
|
|
534
|
+
.deleteRolePolicy({
|
|
535
|
+
RoleName: roleName,
|
|
536
|
+
PolicyName: ENVIRONMENT_FILES_POLICY_NAME,
|
|
537
|
+
})
|
|
538
|
+
.pipe(Effect.catchTag("NoSuchEntityException", () => Effect.void));
|
|
539
|
+
return;
|
|
540
|
+
}
|
|
541
|
+
const bucketArns = [...new Set(objectArns.map((arn) => arn.split("/")[0]))];
|
|
542
|
+
yield* iam.putRolePolicy({
|
|
543
|
+
RoleName: roleName,
|
|
544
|
+
PolicyName: ENVIRONMENT_FILES_POLICY_NAME,
|
|
545
|
+
PolicyDocument: JSON.stringify({
|
|
546
|
+
Version: "2012-10-17",
|
|
547
|
+
Statement: [
|
|
548
|
+
{
|
|
549
|
+
Effect: "Allow",
|
|
550
|
+
Action: ["s3:GetObject"],
|
|
551
|
+
Resource: objectArns,
|
|
552
|
+
},
|
|
553
|
+
{
|
|
554
|
+
Effect: "Allow",
|
|
555
|
+
Action: ["s3:GetBucketLocation"],
|
|
556
|
+
Resource: bucketArns,
|
|
557
|
+
},
|
|
558
|
+
],
|
|
559
|
+
}),
|
|
560
|
+
});
|
|
561
|
+
});
|
|
562
|
+
|
|
521
563
|
/** Ensure the CloudWatch log group the task writes to exists. */
|
|
522
564
|
export const ensureTaskLogGroup = Effect.fn(function* ({
|
|
523
565
|
id,
|
|
@@ -655,6 +697,7 @@ export const registerTaskDefinitionRevision = Effect.fn(function* ({
|
|
|
655
697
|
name,
|
|
656
698
|
value: typeof value === "string" ? value : JSON.stringify(value),
|
|
657
699
|
})),
|
|
700
|
+
environmentFiles: props.environmentFiles,
|
|
658
701
|
logConfiguration: {
|
|
659
702
|
logDriver: "awslogs",
|
|
660
703
|
options: {
|
|
@@ -1137,6 +1180,13 @@ export const TaskProvider = () =>
|
|
|
1137
1180
|
);
|
|
1138
1181
|
}
|
|
1139
1182
|
|
|
1183
|
+
// Environment files: the execution role reads the referenced S3
|
|
1184
|
+
// objects at task start.
|
|
1185
|
+
yield* syncEnvironmentFilesPolicy({
|
|
1186
|
+
roleName: executionRoleName,
|
|
1187
|
+
environmentFiles: news.environmentFiles,
|
|
1188
|
+
});
|
|
1189
|
+
|
|
1140
1190
|
const {
|
|
1141
1191
|
env: bindingEnv,
|
|
1142
1192
|
volumes: bindingVolumes,
|
package/src/AWS/EKS/Addon.ts
CHANGED
|
@@ -161,7 +161,11 @@ class AddonNotReady extends Data.TaggedError("AddonNotReady")<{
|
|
|
161
161
|
readonly clusterName: string;
|
|
162
162
|
readonly addonName: string;
|
|
163
163
|
readonly status: string | undefined;
|
|
164
|
-
}> {
|
|
164
|
+
}> {
|
|
165
|
+
override get message(): string {
|
|
166
|
+
return `addon '${this.clusterName}/${this.addonName}' is not ACTIVE (status: ${this.status ?? "absent"})`;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
165
169
|
|
|
166
170
|
class AddonStillExists extends Data.TaggedError("AddonStillExists")<{
|
|
167
171
|
readonly clusterName: string;
|
|
@@ -233,8 +237,14 @@ export const AddonProvider = () =>
|
|
|
233
237
|
}
|
|
234
238
|
}),
|
|
235
239
|
read: Effect.fn(function* ({ id, olds }) {
|
|
240
|
+
const clusterName = olds.clusterName as string | undefined;
|
|
241
|
+
// A crashed prior run can persist a row before its unresolved
|
|
242
|
+
// inputs were stripped — nothing observable yet.
|
|
243
|
+
if (clusterName === undefined || olds.addonName === undefined) {
|
|
244
|
+
return undefined;
|
|
245
|
+
}
|
|
236
246
|
const state = yield* readAddon({
|
|
237
|
-
clusterName
|
|
247
|
+
clusterName,
|
|
238
248
|
addonName: olds.addonName,
|
|
239
249
|
});
|
|
240
250
|
if (!state) return undefined;
|
|
@@ -404,11 +414,14 @@ const waitForAddonActive = Effect.fn(function* ({
|
|
|
404
414
|
}),
|
|
405
415
|
Effect.retry({
|
|
406
416
|
while: (error) => error instanceof AddonNotReady,
|
|
407
|
-
// Flat 5s polls, ~
|
|
417
|
+
// Flat 5s polls, ~20 min budget (uncapped exponential sleeps for
|
|
408
418
|
// multi-minute stretches late in the wait — looks like a deadlock).
|
|
419
|
+
// Node-bound addons (e.g. HyperPod task governance) stay DEGRADED
|
|
420
|
+
// until nodes join and pull images, which can take most of the
|
|
421
|
+
// budget when the addon installs alongside its node group.
|
|
409
422
|
schedule: Schedule.max([
|
|
410
423
|
Schedule.spaced("5 seconds"),
|
|
411
|
-
Schedule.recurs(
|
|
424
|
+
Schedule.recurs(240),
|
|
412
425
|
]),
|
|
413
426
|
}),
|
|
414
427
|
);
|
|
@@ -35,6 +35,12 @@ import {
|
|
|
35
35
|
deleteObjects,
|
|
36
36
|
type KubernetesClusterConnection,
|
|
37
37
|
} from "./internal/client.ts";
|
|
38
|
+
import {
|
|
39
|
+
hyperpodNamespace,
|
|
40
|
+
hyperpodNodeSelector,
|
|
41
|
+
hyperpodWorkloadLabels,
|
|
42
|
+
type HyperPodWorkloadProps,
|
|
43
|
+
} from "./HyperPod.ts";
|
|
38
44
|
import {
|
|
39
45
|
toKubernetesObjectRef,
|
|
40
46
|
type KubernetesObjectDefinition,
|
|
@@ -76,9 +82,17 @@ export interface DeploymentPropsBase extends PlatformProps {
|
|
|
76
82
|
/**
|
|
77
83
|
* Kubernetes namespace to deploy into. The namespace must already exist
|
|
78
84
|
* (Auto Mode clusters ship a `default` namespace).
|
|
79
|
-
* @default "default"
|
|
85
|
+
* @default "default" (or `hyperpod-ns-<team>` when `hyperpod.quota` is set)
|
|
80
86
|
*/
|
|
81
87
|
namespace?: string;
|
|
88
|
+
/**
|
|
89
|
+
* Run on SageMaker HyperPod nodes attached to this EKS cluster: pin to an
|
|
90
|
+
* instance group, keep off unhealthy nodes, and optionally submit through
|
|
91
|
+
* HyperPod task governance by passing the team's
|
|
92
|
+
* `AWS.SageMaker.ComputeQuota` (which derives the namespace and Kueue
|
|
93
|
+
* labels).
|
|
94
|
+
*/
|
|
95
|
+
hyperpod?: HyperPodWorkloadProps;
|
|
82
96
|
/**
|
|
83
97
|
* HTTP port exposed by the container and the Service.
|
|
84
98
|
* @default 3000
|
|
@@ -368,6 +382,7 @@ import { BunServices } from "@effect/platform-bun";
|
|
|
368
382
|
import { BunHttpServer } from "alchemy/Http";
|
|
369
383
|
import { Stack } from "alchemy/Stack";
|
|
370
384
|
import { makeEntrypointLayer, reifyBoundConfigProvider } from "alchemy/Runtime";
|
|
385
|
+
import { provideProcessTelemetry } from "alchemy/Telemetry";
|
|
371
386
|
import * as Context from "effect/Context";
|
|
372
387
|
import * as Config from "effect/Config";
|
|
373
388
|
import * as ConfigProvider from "effect/ConfigProvider";
|
|
@@ -400,8 +415,15 @@ const platform = Layer.mergeAll(
|
|
|
400
415
|
// chain so EKS Pod Identity's container-credentials endpoint
|
|
401
416
|
// (AWS_CONTAINER_CREDENTIALS_FULL_URI + token file) resolves inside the pod.
|
|
402
417
|
const program = tag.pipe(
|
|
403
|
-
|
|
404
|
-
|
|
418
|
+
// Process-lifetime telemetry: built once into the root scope; exporters
|
|
419
|
+
// batch on their intervals and flush when the scope closes on graceful
|
|
420
|
+
// shutdown.
|
|
421
|
+
Effect.flatMap((host) =>
|
|
422
|
+
host.RuntimeContext.exports.pipe(
|
|
423
|
+
Effect.flatMap((exports) => exports.program),
|
|
424
|
+
provideProcessTelemetry(host.RuntimeContext),
|
|
425
|
+
),
|
|
426
|
+
),
|
|
405
427
|
Effect.provide(
|
|
406
428
|
layer.pipe(Layer.provideMerge(Layer.effect(
|
|
407
429
|
Stack,
|
|
@@ -539,9 +561,11 @@ export const DeploymentProvider = () =>
|
|
|
539
561
|
) {
|
|
540
562
|
return { action: "replace" } as const;
|
|
541
563
|
}
|
|
564
|
+
const effectiveNamespace = (props: DeploymentProps) =>
|
|
565
|
+
props.namespace ?? hyperpodNamespace(props.hyperpod) ?? "default";
|
|
542
566
|
if (
|
|
543
|
-
olds.
|
|
544
|
-
(olds
|
|
567
|
+
olds.cluster?.clusterName !== undefined &&
|
|
568
|
+
effectiveNamespace(olds) !== effectiveNamespace(news)
|
|
545
569
|
) {
|
|
546
570
|
return { action: "replace" } as const;
|
|
547
571
|
}
|
|
@@ -585,7 +609,8 @@ export const DeploymentProvider = () =>
|
|
|
585
609
|
}) {
|
|
586
610
|
const connection = toConnection(news.cluster);
|
|
587
611
|
const clusterName = news.cluster.clusterName;
|
|
588
|
-
const namespace =
|
|
612
|
+
const namespace =
|
|
613
|
+
news.namespace ?? hyperpodNamespace(news.hyperpod) ?? "default";
|
|
589
614
|
const port = news.port ?? 3000;
|
|
590
615
|
const serviceType = news.serviceType ?? "LoadBalancer";
|
|
591
616
|
|
|
@@ -651,7 +676,10 @@ export const DeploymentProvider = () =>
|
|
|
651
676
|
// get no region env var — inject it so the bootstrap's
|
|
652
677
|
// `Region.fromEnv()` resolves inside the pod.
|
|
653
678
|
const { region } = yield* AWSEnvironment.current;
|
|
654
|
-
const labels =
|
|
679
|
+
const labels = {
|
|
680
|
+
...(news.labels ?? { "app.kubernetes.io/name": baseName }),
|
|
681
|
+
...hyperpodWorkloadLabels(news.hyperpod),
|
|
682
|
+
};
|
|
655
683
|
const containerEnv = {
|
|
656
684
|
...bindingEnv,
|
|
657
685
|
...alchemyEnv,
|
|
@@ -670,6 +698,7 @@ export const DeploymentProvider = () =>
|
|
|
670
698
|
metadata: { labels },
|
|
671
699
|
spec: {
|
|
672
700
|
serviceAccountName,
|
|
701
|
+
nodeSelector: hyperpodNodeSelector(news.hyperpod),
|
|
673
702
|
containers: [
|
|
674
703
|
{
|
|
675
704
|
name: baseName,
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* First-class SageMaker HyperPod scheduling for EKS workloads.
|
|
3
|
+
*
|
|
4
|
+
* HyperPod nodes are ordinary EKS nodes carrying well-known labels, and
|
|
5
|
+
* HyperPod task governance rides on Kueue conventions. `AWS.EKS.Job` and
|
|
6
|
+
* `AWS.EKS.Deployment` accept these props under `hyperpod:` and derive the
|
|
7
|
+
* node selector, namespace, and Kueue labels — no manual label wiring.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
/** The well-known node label carrying the HyperPod instance-group name. */
|
|
11
|
+
export const HYPERPOD_INSTANCE_GROUP_LABEL =
|
|
12
|
+
"sagemaker.amazonaws.com/instance-group-name";
|
|
13
|
+
|
|
14
|
+
/** The well-known node label carrying HyperPod's node health verdict. */
|
|
15
|
+
export const HYPERPOD_NODE_HEALTH_LABEL =
|
|
16
|
+
"sagemaker.amazonaws.com/node-health-status";
|
|
17
|
+
|
|
18
|
+
/** Kueue label selecting the task-governance queue. */
|
|
19
|
+
export const KUEUE_QUEUE_NAME_LABEL = "kueue.x-k8s.io/queue-name";
|
|
20
|
+
|
|
21
|
+
/** Kueue label selecting the task-governance priority class. */
|
|
22
|
+
export const KUEUE_PRIORITY_CLASS_LABEL = "kueue.x-k8s.io/priority-class";
|
|
23
|
+
|
|
24
|
+
export interface HyperPodWorkloadProps {
|
|
25
|
+
/**
|
|
26
|
+
* Pin the workload to a HyperPod instance group (matches the
|
|
27
|
+
* `sagemaker.amazonaws.com/instance-group-name` node label). Reference
|
|
28
|
+
* the group through the cluster's attributes —
|
|
29
|
+
* `hyperpod.instanceGroups.workers` — so the workload is connected to
|
|
30
|
+
* the cluster through the resource graph. A plain name string also
|
|
31
|
+
* works.
|
|
32
|
+
*/
|
|
33
|
+
instanceGroup?: string | { InstanceGroupName?: string };
|
|
34
|
+
/**
|
|
35
|
+
* Only schedule onto nodes that passed HyperPod health checks
|
|
36
|
+
* (`sagemaker.amazonaws.com/node-health-status: Schedulable`).
|
|
37
|
+
* @default true
|
|
38
|
+
*/
|
|
39
|
+
healthyNodesOnly?: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Submit through HyperPod task governance under this team's quota — pass
|
|
42
|
+
* the `AWS.SageMaker.ComputeQuota` resource. Derives the
|
|
43
|
+
* `hyperpod-ns-<team>` namespace and the Kueue queue label (both
|
|
44
|
+
* materialized by the quota), and orders the workload after it.
|
|
45
|
+
*/
|
|
46
|
+
quota?: {
|
|
47
|
+
/** The quota's team name (`ComputeQuota.teamName`). */
|
|
48
|
+
teamName: string;
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* The task-governance priority class (a `PriorityClass` name from the
|
|
52
|
+
* cluster's `AWS.SageMaker.ClusterSchedulerConfig`).
|
|
53
|
+
*/
|
|
54
|
+
priorityClass?: string;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/** @internal The `hyperpod-ns-<team>` namespace, when governed. */
|
|
58
|
+
export const hyperpodNamespace = (
|
|
59
|
+
hyperpod: HyperPodWorkloadProps | undefined,
|
|
60
|
+
): string | undefined =>
|
|
61
|
+
hyperpod?.quota !== undefined
|
|
62
|
+
? `hyperpod-ns-${hyperpod.quota.teamName}`
|
|
63
|
+
: undefined;
|
|
64
|
+
|
|
65
|
+
/** @internal Kueue labels for the workload object. */
|
|
66
|
+
export const hyperpodWorkloadLabels = (
|
|
67
|
+
hyperpod: HyperPodWorkloadProps | undefined,
|
|
68
|
+
): Record<string, string> => ({
|
|
69
|
+
...(hyperpod?.quota !== undefined
|
|
70
|
+
? {
|
|
71
|
+
[KUEUE_QUEUE_NAME_LABEL]: `hyperpod-ns-${hyperpod.quota.teamName}-localqueue`,
|
|
72
|
+
}
|
|
73
|
+
: {}),
|
|
74
|
+
...(hyperpod?.priorityClass !== undefined
|
|
75
|
+
? { [KUEUE_PRIORITY_CLASS_LABEL]: `${hyperpod.priorityClass}-priority` }
|
|
76
|
+
: {}),
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
/** @internal The instance-group name from either reference form. */
|
|
80
|
+
const instanceGroupName = (
|
|
81
|
+
group: string | { InstanceGroupName?: string } | undefined,
|
|
82
|
+
): string | undefined =>
|
|
83
|
+
typeof group === "string" ? group : group?.InstanceGroupName;
|
|
84
|
+
|
|
85
|
+
/** @internal Node selector pinning pods onto HyperPod nodes. */
|
|
86
|
+
export const hyperpodNodeSelector = (
|
|
87
|
+
hyperpod: HyperPodWorkloadProps | undefined,
|
|
88
|
+
): Record<string, string> | undefined => {
|
|
89
|
+
if (hyperpod === undefined) return undefined;
|
|
90
|
+
const group = instanceGroupName(hyperpod.instanceGroup);
|
|
91
|
+
return {
|
|
92
|
+
...(hyperpod.healthyNodesOnly !== false
|
|
93
|
+
? { [HYPERPOD_NODE_HEALTH_LABEL]: "Schedulable" }
|
|
94
|
+
: {}),
|
|
95
|
+
...(group !== undefined ? { [HYPERPOD_INSTANCE_GROUP_LABEL]: group } : {}),
|
|
96
|
+
};
|
|
97
|
+
};
|
package/src/AWS/EKS/Job.ts
CHANGED
|
@@ -35,6 +35,12 @@ import {
|
|
|
35
35
|
import { AWSEnvironment } from "../Environment.ts";
|
|
36
36
|
import type { PolicyStatement } from "../IAM/Policy.ts";
|
|
37
37
|
import type { Providers } from "../Providers.ts";
|
|
38
|
+
import {
|
|
39
|
+
hyperpodNamespace,
|
|
40
|
+
hyperpodNodeSelector,
|
|
41
|
+
hyperpodWorkloadLabels,
|
|
42
|
+
type HyperPodWorkloadProps,
|
|
43
|
+
} from "./HyperPod.ts";
|
|
38
44
|
import { reconcileObjects, deleteObjects } from "./internal/client.ts";
|
|
39
45
|
import type {
|
|
40
46
|
KubernetesObjectDefinition,
|
|
@@ -75,9 +81,17 @@ export interface JobPropsBase extends PlatformProps {
|
|
|
75
81
|
/**
|
|
76
82
|
* Kubernetes namespace to run in. The namespace must already exist (Auto
|
|
77
83
|
* Mode clusters ship a `default` namespace).
|
|
78
|
-
* @default "default"
|
|
84
|
+
* @default "default" (or `hyperpod-ns-<team>` when `hyperpod.quota` is set)
|
|
79
85
|
*/
|
|
80
86
|
namespace?: string;
|
|
87
|
+
/**
|
|
88
|
+
* Run on SageMaker HyperPod nodes attached to this EKS cluster: pin to an
|
|
89
|
+
* instance group, keep off unhealthy nodes, and optionally submit through
|
|
90
|
+
* HyperPod task governance by passing the team's
|
|
91
|
+
* `AWS.SageMaker.ComputeQuota` (which derives the namespace and Kueue
|
|
92
|
+
* labels).
|
|
93
|
+
*/
|
|
94
|
+
hyperpod?: HyperPodWorkloadProps;
|
|
81
95
|
/**
|
|
82
96
|
* Number of retries before the Job is marked failed (Kubernetes
|
|
83
97
|
* `backoffLimit`).
|
|
@@ -343,6 +357,7 @@ export const makeEksJobBootstrap =
|
|
|
343
357
|
import { BunServices } from "@effect/platform-bun";
|
|
344
358
|
import { Stack } from "alchemy/Stack";
|
|
345
359
|
import { makeEntrypointLayer, reifyBoundConfigProvider } from "alchemy/Runtime";
|
|
360
|
+
import { provideProcessTelemetry } from "alchemy/Telemetry";
|
|
346
361
|
import * as Context from "effect/Context";
|
|
347
362
|
import * as Config from "effect/Config";
|
|
348
363
|
import * as ConfigProvider from "effect/ConfigProvider";
|
|
@@ -372,8 +387,15 @@ const platform = Layer.mergeAll(
|
|
|
372
387
|
// Resolve the bundled program's registered one-shot runners (the shape's
|
|
373
388
|
// \`run\` effect and any host.run work) and execute them to completion.
|
|
374
389
|
const program = tag.pipe(
|
|
375
|
-
|
|
376
|
-
|
|
390
|
+
// Process-lifetime telemetry: built once into the root scope; exporters
|
|
391
|
+
// batch on their intervals and flush when the scope closes as the
|
|
392
|
+
// one-shot program completes.
|
|
393
|
+
Effect.flatMap((host) =>
|
|
394
|
+
host.RuntimeContext.exports.pipe(
|
|
395
|
+
Effect.flatMap((exports) => exports.program),
|
|
396
|
+
provideProcessTelemetry(host.RuntimeContext),
|
|
397
|
+
),
|
|
398
|
+
),
|
|
377
399
|
Effect.provide(
|
|
378
400
|
layer.pipe(Layer.provideMerge(Layer.effect(
|
|
379
401
|
Stack,
|
|
@@ -472,9 +494,11 @@ export const JobProvider = () =>
|
|
|
472
494
|
) {
|
|
473
495
|
return { action: "replace" } as const;
|
|
474
496
|
}
|
|
497
|
+
const effectiveNamespace = (props: JobProps) =>
|
|
498
|
+
props.namespace ?? hyperpodNamespace(props.hyperpod) ?? "default";
|
|
475
499
|
if (
|
|
476
|
-
olds.
|
|
477
|
-
(olds
|
|
500
|
+
olds.cluster?.clusterName !== undefined &&
|
|
501
|
+
effectiveNamespace(olds) !== effectiveNamespace(news)
|
|
478
502
|
) {
|
|
479
503
|
return { action: "replace" } as const;
|
|
480
504
|
}
|
|
@@ -515,7 +539,8 @@ export const JobProvider = () =>
|
|
|
515
539
|
}) {
|
|
516
540
|
const connection = toConnection(news.cluster);
|
|
517
541
|
const clusterName = news.cluster.clusterName;
|
|
518
|
-
const namespace =
|
|
542
|
+
const namespace =
|
|
543
|
+
news.namespace ?? hyperpodNamespace(news.hyperpod) ?? "default";
|
|
519
544
|
|
|
520
545
|
const baseName = yield* toBaseName(id, news);
|
|
521
546
|
const serviceAccountName = output?.serviceAccountName ?? baseName;
|
|
@@ -569,7 +594,10 @@ export const JobProvider = () =>
|
|
|
569
594
|
});
|
|
570
595
|
|
|
571
596
|
// Synthesize the Kubernetes objects.
|
|
572
|
-
const labels =
|
|
597
|
+
const labels = {
|
|
598
|
+
...(news.labels ?? { "app.kubernetes.io/name": baseName }),
|
|
599
|
+
...hyperpodWorkloadLabels(news.hyperpod),
|
|
600
|
+
};
|
|
573
601
|
const containerEnv = {
|
|
574
602
|
...bindingEnv,
|
|
575
603
|
...alchemyEnv,
|
|
@@ -586,6 +614,7 @@ export const JobProvider = () =>
|
|
|
586
614
|
metadata: { labels },
|
|
587
615
|
spec: {
|
|
588
616
|
serviceAccountName,
|
|
617
|
+
nodeSelector: hyperpodNodeSelector(news.hyperpod),
|
|
589
618
|
restartPolicy: news.restartPolicy ?? "Never",
|
|
590
619
|
containers: [
|
|
591
620
|
{
|
|
@@ -620,9 +649,13 @@ export const JobProvider = () =>
|
|
|
620
649
|
// hash of the spec, and a spec change applies a NEW Job (which
|
|
621
650
|
// runs) while `reconcileObjects` deletes the previous one.
|
|
622
651
|
// CronJobs are mutable and keep the stable base name.
|
|
652
|
+
// Kubernetes rejects Job names over 63 characters (the API
|
|
653
|
+
// stamps the name into the batch.kubernetes.io/job-name pod
|
|
654
|
+
// label, and label values cap at 63) — truncate the base so the
|
|
655
|
+
// content-address suffix always fits.
|
|
623
656
|
const jobName = news.schedule
|
|
624
|
-
? baseName
|
|
625
|
-
: `${baseName}-${(yield* sha256Object(jobSpec)).slice(0, 8)}`;
|
|
657
|
+
? baseName.slice(0, 52).replace(/-+$/, "")
|
|
658
|
+
: `${baseName.slice(0, 54).replace(/-+$/, "")}-${(yield* sha256Object(jobSpec)).slice(0, 8)}`;
|
|
626
659
|
|
|
627
660
|
const workloadObject: KubernetesObjectDefinition = news.schedule
|
|
628
661
|
? {
|
|
@@ -10,6 +10,7 @@ import { AwsClient } from "aws4fetch";
|
|
|
10
10
|
import * as Data from "effect/Data";
|
|
11
11
|
import * as Effect from "effect/Effect";
|
|
12
12
|
import * as Redacted from "effect/Redacted";
|
|
13
|
+
import * as Schedule from "effect/Schedule";
|
|
13
14
|
import * as https from "node:https";
|
|
14
15
|
import { AWSEnvironment } from "../../Environment.ts";
|
|
15
16
|
import {
|
|
@@ -30,7 +31,13 @@ export class KubernetesApiError extends Data.TaggedError("KubernetesApiError")<{
|
|
|
30
31
|
path: string;
|
|
31
32
|
statusCode: number;
|
|
32
33
|
body: string;
|
|
33
|
-
}> {
|
|
34
|
+
}> {
|
|
35
|
+
override get message(): string {
|
|
36
|
+
return `${this.method} ${this.path} responded ${this.statusCode}: ${
|
|
37
|
+
this.body.length > 0 ? this.body.slice(0, 1000) : "(empty body)"
|
|
38
|
+
}`;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
34
41
|
|
|
35
42
|
export interface KubernetesClusterConnection {
|
|
36
43
|
clusterName: string;
|
|
@@ -163,7 +170,20 @@ const requestJson = Effect.fn(function* ({
|
|
|
163
170
|
: new Error(
|
|
164
171
|
`Failed Kubernetes ${method} ${path}: ${error instanceof Error ? error.message : String(error)}`,
|
|
165
172
|
),
|
|
166
|
-
})
|
|
173
|
+
}).pipe(
|
|
174
|
+
// Transport-level failures (ECONNREFUSED/ECONNRESET/ETIMEDOUT/DNS)
|
|
175
|
+
// are transient — a fresh EKS endpoint's NLB can refuse connections
|
|
176
|
+
// for a short window after the cluster reports ACTIVE. Every request
|
|
177
|
+
// here is idempotent (GET / SSA PATCH / DELETE), so retry them; HTTP
|
|
178
|
+
// errors (KubernetesApiError) are handled by the callers.
|
|
179
|
+
Effect.retry({
|
|
180
|
+
while: (e): boolean => !(e instanceof KubernetesApiError),
|
|
181
|
+
schedule: Schedule.max([
|
|
182
|
+
Schedule.spaced("5 seconds"),
|
|
183
|
+
Schedule.recurs(8),
|
|
184
|
+
]),
|
|
185
|
+
}),
|
|
186
|
+
);
|
|
167
187
|
});
|
|
168
188
|
|
|
169
189
|
// ─────────────────────────────────────────────────────── kind discovery ──
|
|
@@ -285,7 +305,24 @@ export const applyObject = Effect.fn(function* ({
|
|
|
285
305
|
method: "PATCH",
|
|
286
306
|
path,
|
|
287
307
|
body: object,
|
|
288
|
-
})
|
|
308
|
+
}).pipe(
|
|
309
|
+
// A freshly ACTIVE cluster's API server briefly 5xxes while warming
|
|
310
|
+
// up, and the creator's bootstrap access entry propagates
|
|
311
|
+
// asynchronously (401/403 in the first minute) — retry transient
|
|
312
|
+
// failures for ~1 min.
|
|
313
|
+
Effect.retry({
|
|
314
|
+
while: (e): boolean =>
|
|
315
|
+
e instanceof KubernetesApiError &&
|
|
316
|
+
(e.statusCode >= 500 ||
|
|
317
|
+
e.statusCode === 429 ||
|
|
318
|
+
e.statusCode === 401 ||
|
|
319
|
+
e.statusCode === 403),
|
|
320
|
+
schedule: Schedule.max([
|
|
321
|
+
Schedule.spaced("6 seconds"),
|
|
322
|
+
Schedule.recurs(10),
|
|
323
|
+
]),
|
|
324
|
+
}),
|
|
325
|
+
);
|
|
289
326
|
});
|
|
290
327
|
|
|
291
328
|
export const deleteObject = Effect.fn(function* ({
|