skypilot-nightly 1.0.0.dev20250820__tar.gz → 1.0.0.dev20250821__tar.gz
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.
Potentially problematic release.
This version of skypilot-nightly might be problematic. Click here for more details.
- {skypilot_nightly-1.0.0.dev20250820/skypilot_nightly.egg-info → skypilot_nightly-1.0.0.dev20250821}/PKG-INFO +1 -1
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/__init__.py +2 -2
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/backends/cloud_vm_ray_backend.py +9 -1
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/client/cli/flags.py +3 -3
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/404.html +1 -1
- skypilot_nightly-1.0.0.dev20250821/sky/dashboard/out/_next/static/chunks/3015-6c9c09593b1e67b6.js +1 -0
- skypilot_nightly-1.0.0.dev20250820/sky/dashboard/out/_next/static/chunks/3785.bc5d2853355c9c47.js → skypilot_nightly-1.0.0.dev20250821/sky/dashboard/out/_next/static/chunks/3785.d5b86f6ebc88e6e6.js +1 -1
- skypilot_nightly-1.0.0.dev20250820/sky/dashboard/out/_next/static/chunks/9277.71481d5b2e606e33.js → skypilot_nightly-1.0.0.dev20250821/sky/dashboard/out/_next/static/chunks/4783.c485f48348349f47.js +8 -3
- skypilot_nightly-1.0.0.dev20250820/sky/dashboard/out/_next/static/chunks/6633-efe924b9b8136699.js → skypilot_nightly-1.0.0.dev20250821/sky/dashboard/out/_next/static/chunks/7205-88191679e7988c57.js +9 -4
- skypilot_nightly-1.0.0.dev20250821/sky/dashboard/out/_next/static/chunks/8969-4a6f1a928fb6d370.js +1 -0
- skypilot_nightly-1.0.0.dev20250820/sky/dashboard/out/_next/static/chunks/8838.e7953f42af2b0544.js → skypilot_nightly-1.0.0.dev20250821/sky/dashboard/out/_next/static/chunks/9946.3b7b43c217ff70ec.js +9 -4
- skypilot_nightly-1.0.0.dev20250820/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-ec747e4f2dc39b57.js → skypilot_nightly-1.0.0.dev20250821/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-a0527109c2fab467.js +7 -2
- skypilot_nightly-1.0.0.dev20250821/sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-dd64309c3fe67ed2.js +11 -0
- skypilot_nightly-1.0.0.dev20250820/sky/dashboard/out/_next/static/chunks/pages/jobs-4b3ba1792dc6f21d.js → skypilot_nightly-1.0.0.dev20250821/sky/dashboard/out/_next/static/chunks/pages/jobs-7421e63ac35f8fce.js +1 -1
- skypilot_nightly-1.0.0.dev20250820/sky/dashboard/out/_next/static/chunks/pages/workspaces/[name]-65f72dee417237ef.js → skypilot_nightly-1.0.0.dev20250821/sky/dashboard/out/_next/static/chunks/pages/workspaces/[name]-de06e613e20bc977.js +1 -1
- skypilot_nightly-1.0.0.dev20250820/sky/dashboard/out/_next/static/chunks/pages/workspaces-338de9df523d883a.js → skypilot_nightly-1.0.0.dev20250821/sky/dashboard/out/_next/static/chunks/pages/workspaces-be35b22e2046564c.js +1 -1
- skypilot_nightly-1.0.0.dev20250821/sky/dashboard/out/_next/static/chunks/webpack-6e76f636a048e145.js +1 -0
- {skypilot_nightly-1.0.0.dev20250820/sky/dashboard/out/_next/static/8ZscIHnvBWz3AXkxsJL6H → skypilot_nightly-1.0.0.dev20250821/sky/dashboard/out/_next/static/wN25tc2rkvOkO-qkzIhcD}/_buildManifest.js +1 -1
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/clusters/[cluster]/[job].html +1 -1
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/clusters/[cluster].html +1 -1
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/clusters.html +1 -1
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/config.html +1 -1
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/index.html +1 -1
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/infra/[context].html +1 -1
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/infra.html +1 -1
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/jobs/[job].html +1 -1
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/jobs/pools/[pool].html +1 -1
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/jobs.html +1 -1
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/users.html +1 -1
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/volumes.html +1 -1
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/workspace/new.html +1 -1
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/workspaces/[name].html +1 -1
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/workspaces.html +1 -1
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/docker_utils.py +20 -1
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/resources.py +17 -7
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/skypilot_config.py +4 -4
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/users/permission.py +2 -1
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821/skypilot_nightly.egg-info}/PKG-INFO +1 -1
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/skypilot_nightly.egg-info/SOURCES.txt +18 -18
- skypilot_nightly-1.0.0.dev20250820/sky/dashboard/out/_next/static/chunks/3015-bf218e4973bf5c8f.js +0 -1
- skypilot_nightly-1.0.0.dev20250820/sky/dashboard/out/_next/static/chunks/8969-23c8fbdb8b397d59.js +0 -1
- skypilot_nightly-1.0.0.dev20250820/sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-ad2cd5aab787bc15.js +0 -6
- skypilot_nightly-1.0.0.dev20250820/sky/dashboard/out/_next/static/chunks/webpack-008593a02784a2df.js +0 -1
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/MANIFEST.in +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/README.md +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/pyproject.toml +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/setup.cfg +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/adaptors/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/adaptors/aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/adaptors/azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/adaptors/cloudflare.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/adaptors/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/adaptors/cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/adaptors/do.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/adaptors/docker.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/adaptors/gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/adaptors/hyperbolic.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/adaptors/ibm.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/adaptors/kubernetes.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/adaptors/nebius.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/adaptors/oci.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/adaptors/runpod.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/adaptors/vast.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/adaptors/vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/admin_policy.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/authentication.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/backends/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/backends/backend.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/backends/backend_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/backends/docker_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/backends/local_docker_backend.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/backends/monkey_patches/monkey_patch_ray_up.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/backends/wheel_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/catalog/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/catalog/aws_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/catalog/azure_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/catalog/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/catalog/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/catalog/cudo_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/catalog/data_fetchers/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/catalog/data_fetchers/analyze.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/catalog/data_fetchers/fetch_aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/catalog/data_fetchers/fetch_azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/catalog/data_fetchers/fetch_cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/catalog/data_fetchers/fetch_fluidstack.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/catalog/data_fetchers/fetch_gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/catalog/data_fetchers/fetch_hyperbolic.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/catalog/data_fetchers/fetch_ibm.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/catalog/data_fetchers/fetch_lambda_cloud.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/catalog/data_fetchers/fetch_nebius.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/catalog/data_fetchers/fetch_vast.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/catalog/data_fetchers/fetch_vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/catalog/do_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/catalog/fluidstack_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/catalog/gcp_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/catalog/hyperbolic_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/catalog/ibm_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/catalog/kubernetes_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/catalog/lambda_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/catalog/nebius_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/catalog/oci_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/catalog/paperspace_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/catalog/runpod_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/catalog/scp_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/catalog/ssh_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/catalog/vast_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/catalog/vsphere_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/check.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/cli.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/client/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/client/cli/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/client/cli/command.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/client/cli/deprecation_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/client/cli/git.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/client/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/client/oauth.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/client/sdk.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/client/sdk_async.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/client/service_account_auth.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/cloud_stores.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/clouds/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/clouds/aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/clouds/azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/clouds/cloud.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/clouds/cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/clouds/do.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/clouds/fluidstack.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/clouds/gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/clouds/hyperbolic.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/clouds/ibm.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/clouds/kubernetes.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/clouds/lambda_cloud.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/clouds/nebius.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/clouds/oci.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/clouds/paperspace.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/clouds/runpod.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/clouds/scp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/clouds/ssh.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/clouds/utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/clouds/utils/aws_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/clouds/utils/azure_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/clouds/utils/gcp_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/clouds/utils/oci_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/clouds/utils/scp_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/clouds/vast.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/clouds/vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dag.py +0 -0
- /skypilot_nightly-1.0.0.dev20250820/sky/dashboard/out/_next/static/chunks/1121-2edb8ab2ba080a76.js → /skypilot_nightly-1.0.0.dev20250821/sky/dashboard/out/_next/static/chunks/1121-8afcf719ea87debc.js +0 -0
- /skypilot_nightly-1.0.0.dev20250820/sky/dashboard/out/_next/static/chunks/1141-2f60a90b7d76838e.js → /skypilot_nightly-1.0.0.dev20250821/sky/dashboard/out/_next/static/chunks/1141-943efc7aff0f0c06.js +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/_next/static/chunks/1272-1ef0bf0237faccdb.js +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/_next/static/chunks/2350.fab69e61bac57b23.js +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/_next/static/chunks/3850-ff4a9a69d978632b.js +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/_next/static/chunks/3937.210053269f121201.js +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/_next/static/chunks/4045.b30465273dc5e468.js +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/_next/static/chunks/4676-9da7fdbde90b5549.js +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/_next/static/chunks/4725.10f7a9a5d3ea8208.js +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/_next/static/chunks/5739-d67458fcb1386c92.js +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/_next/static/chunks/6130-2be46d70a38f1e82.js +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/_next/static/chunks/6135-4b4d5e824b7f9d3c.js +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/_next/static/chunks/616-3d59f75e2ccf9321.js +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/_next/static/chunks/6601-06114c982db410b6.js +0 -0
- /skypilot_nightly-1.0.0.dev20250820/sky/dashboard/out/_next/static/chunks/6856-e6f350f567182e87.js → /skypilot_nightly-1.0.0.dev20250821/sky/dashboard/out/_next/static/chunks/6856-049014c6d43d127b.js +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/_next/static/chunks/6989-01359c57e018caa4.js +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/_next/static/chunks/6990-08b2a1cae076a943.js +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/_next/static/chunks/7325.b4bc99ce0892dcd5.js +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/_next/static/chunks/7411-b15471acd2cba716.js +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/_next/static/chunks/754-d0da8ab45f9509e9.js +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/_next/static/chunks/7669.1f5d9a402bf5cc42.js +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/_next/static/chunks/9025.a1bef12d672bb66d.js +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/_next/static/chunks/9037-89a84fd7fa31362d.js +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/_next/static/chunks/9984.7eb6cc51fb460cae.js +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/_next/static/chunks/fd9d1056-86323a29a8f7e46a.js +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/_next/static/chunks/framework-cf60a09ccd051a10.js +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/_next/static/chunks/main-app-587214043926b3cc.js +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/_next/static/chunks/main-f15ccb73239a3bf1.js +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/_next/static/chunks/pages/_app-ce361c6959bc2001.js +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/_next/static/chunks/pages/_error-c66a4e8afc46f17b.js +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-06afb50d25f7c61f.js +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/_next/static/chunks/pages/clusters-469814d711d63b1b.js +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/_next/static/chunks/pages/config-dfb9bf07b13045f4.js +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/_next/static/chunks/pages/index-444f1804401f04ea.js +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/_next/static/chunks/pages/infra/[context]-81351f95f3bec08e.js +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/_next/static/chunks/pages/infra-c320641c2bcbbea6.js +0 -0
- /skypilot_nightly-1.0.0.dev20250820/sky/dashboard/out/_next/static/chunks/pages/jobs/pools/[pool]-7d4182df6625fe10.js → /skypilot_nightly-1.0.0.dev20250821/sky/dashboard/out/_next/static/chunks/pages/jobs/pools/[pool]-07349868f7905d37.js +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/_next/static/chunks/pages/users-018bf31cda52e11b.js +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/_next/static/chunks/pages/volumes-739726d6b823f532.js +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/_next/static/chunks/pages/workspace/new-3f88a1c7e86a3f86.js +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/_next/static/css/4614e06482d7309e.css +0 -0
- {skypilot_nightly-1.0.0.dev20250820/sky/dashboard/out/_next/static/8ZscIHnvBWz3AXkxsJL6H → skypilot_nightly-1.0.0.dev20250821/sky/dashboard/out/_next/static/wN25tc2rkvOkO-qkzIhcD}/_ssgManifest.js +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/favicon.ico +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/skypilot.svg +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/videos/cursor-small.mp4 +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/data/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/data/data_transfer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/data/data_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/data/mounting_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/data/storage.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/data/storage_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/exceptions.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/execution.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/global_user_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/jobs/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/jobs/client/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/jobs/client/sdk.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/jobs/client/sdk_async.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/jobs/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/jobs/controller.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/jobs/recovery_strategy.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/jobs/scheduler.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/jobs/server/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/jobs/server/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/jobs/server/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/jobs/server/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/jobs/state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/jobs/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/logs/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/logs/agent.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/logs/aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/logs/gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/metrics/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/metrics/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/models.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/optimizer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/aws/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/aws/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/aws/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/aws/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/azure/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/azure/azure-config-template.json +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/azure/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/azure/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/cudo/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/cudo/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/cudo/cudo_machine_type.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/cudo/cudo_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/cudo/cudo_wrapper.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/cudo/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/do/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/do/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/do/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/do/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/do/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/fluidstack/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/fluidstack/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/fluidstack/fluidstack_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/fluidstack/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/gcp/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/gcp/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/gcp/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/gcp/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/gcp/instance_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/gcp/mig_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/gcp/volume_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/hyperbolic/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/hyperbolic/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/hyperbolic/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/hyperbolic/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/instance_setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/kubernetes/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/kubernetes/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/kubernetes/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/kubernetes/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/kubernetes/manifests/fusermount-server-daemonset.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/kubernetes/network.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/kubernetes/network_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/kubernetes/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/kubernetes/volume.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/lambda_cloud/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/lambda_cloud/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/lambda_cloud/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/lambda_cloud/lambda_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/logging.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/metadata_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/nebius/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/nebius/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/nebius/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/nebius/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/nebius/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/oci/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/oci/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/oci/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/oci/query_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/paperspace/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/paperspace/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/paperspace/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/paperspace/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/paperspace/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/provisioner.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/runpod/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/runpod/api/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/runpod/api/commands.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/runpod/api/pods.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/runpod/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/runpod/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/runpod/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/scp/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/scp/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/scp/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/ssh/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/vast/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/vast/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/vast/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/vast/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/vsphere/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/vsphere/common/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/vsphere/common/cls_api_client.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/vsphere/common/cls_api_helper.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/vsphere/common/custom_script.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/vsphere/common/id_generator.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/vsphere/common/metadata_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/vsphere/common/service_manager.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/vsphere/common/service_manager_factory.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/vsphere/common/ssl_helper.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/vsphere/common/vapiconnect.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/vsphere/common/vim_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/vsphere/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/vsphere/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/provision/vsphere/vsphere_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/py.typed +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/schemas/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/schemas/api/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/schemas/api/responses.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/schemas/db/README +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/schemas/db/env.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/schemas/db/global_user_state/001_initial_schema.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/schemas/db/global_user_state/002_add_workspace_to_cluster_history.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/schemas/db/global_user_state/003_fix_initial_revision.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/schemas/db/global_user_state/004_is_managed.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/schemas/db/global_user_state/005_cluster_event.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/schemas/db/global_user_state/006_provision_log.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/schemas/db/script.py.mako +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/schemas/db/serve_state/001_initial_schema.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/schemas/db/spot_jobs/001_initial_schema.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/schemas/db/spot_jobs/002_cluster_pool.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/schemas/db/spot_jobs/003_pool_hash.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/schemas/generated/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/schemas/generated/autostopv1_pb2.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/schemas/generated/autostopv1_pb2.pyi +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/schemas/generated/autostopv1_pb2_grpc.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/serve/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/serve/autoscalers.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/serve/client/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/serve/client/impl.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/serve/client/sdk.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/serve/client/sdk_async.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/serve/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/serve/controller.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/serve/load_balancer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/serve/load_balancing_policies.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/serve/replica_managers.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/serve/serve_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/serve/serve_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/serve/server/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/serve/server/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/serve/server/impl.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/serve/server/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/serve/service.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/serve/service_spec.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/serve/spot_placer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/server/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/server/auth/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/server/auth/authn.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/server/auth/oauth2_proxy.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/server/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/server/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/server/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/server/daemons.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/server/html/log.html +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/server/html/token_page.html +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/server/metrics.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/server/requests/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/server/requests/event_loop.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/server/requests/executor.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/server/requests/payloads.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/server/requests/preconditions.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/server/requests/process.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/server/requests/queues/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/server/requests/queues/local_queue.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/server/requests/queues/mp_queue.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/server/requests/requests.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/server/requests/serializers/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/server/requests/serializers/decoders.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/server/requests/serializers/encoders.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/server/rest.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/server/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/server/state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/server/stream_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/server/uvicorn.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/server/versions.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/setup_files/MANIFEST.in +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/setup_files/alembic.ini +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/setup_files/dependencies.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/setup_files/setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/sky_logging.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/skylet/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/skylet/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/skylet/attempt_skylet.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/skylet/autostop_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/skylet/configs.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/skylet/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/skylet/events.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/skylet/job_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/skylet/log_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/skylet/log_lib.pyi +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/skylet/providers/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/skylet/providers/command_runner.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/skylet/providers/ibm/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/skylet/providers/ibm/node_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/skylet/providers/ibm/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/skylet/providers/ibm/vpc_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/skylet/ray_patches/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/skylet/ray_patches/autoscaler.py.diff +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/skylet/ray_patches/autoscaler.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/skylet/ray_patches/cli.py.diff +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/skylet/ray_patches/cli.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/skylet/ray_patches/command_runner.py.diff +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/skylet/ray_patches/command_runner.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/skylet/ray_patches/log_monitor.py.diff +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/skylet/ray_patches/log_monitor.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/skylet/ray_patches/resource_demand_scheduler.py.diff +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/skylet/ray_patches/resource_demand_scheduler.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/skylet/ray_patches/updater.py.diff +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/skylet/ray_patches/updater.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/skylet/ray_patches/worker.py.diff +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/skylet/ray_patches/worker.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/skylet/services.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/skylet/skylet.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/skylet/subprocess_daemon.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/ssh_node_pools/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/ssh_node_pools/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/ssh_node_pools/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/task.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/templates/aws-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/templates/azure-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/templates/cudo-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/templates/do-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/templates/fluidstack-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/templates/gcp-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/templates/hyperbolic-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/templates/ibm-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/templates/jobs-controller.yaml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/templates/kubernetes-ingress.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/templates/kubernetes-loadbalancer.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/templates/kubernetes-port-forward-proxy-command.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/templates/kubernetes-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/templates/kubernetes-ssh-jump.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/templates/lambda-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/templates/local-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/templates/nebius-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/templates/oci-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/templates/paperspace-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/templates/runpod-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/templates/scp-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/templates/sky-serve-controller.yaml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/templates/skypilot-server-kubernetes-proxy.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/templates/vast-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/templates/vsphere-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/templates/websocket_proxy.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/usage/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/usage/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/usage/usage_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/users/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/users/model.conf +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/users/rbac.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/users/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/users/token_service.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/accelerator_registry.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/admin_policy_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/annotations.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/atomic.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/aws/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/aws/get_default_security_group.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/cli_utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/cli_utils/status_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/cluster_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/command_runner.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/command_runner.pyi +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/common_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/config_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/context.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/context_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/control_master_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/controller_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/dag_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/db/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/db/db_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/db/migration_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/directory_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/env_options.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/git.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/git_clone.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/infra_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/kubernetes/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/kubernetes/cleanup-tunnel.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/kubernetes/config_map_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/kubernetes/create_cluster.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/kubernetes/delete_cluster.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/kubernetes/deploy_remote_cluster.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/kubernetes/exec_kubeconfig_converter.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/kubernetes/generate_kind_config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/kubernetes/generate_kubeconfig.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/kubernetes/gpu_labeler.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/kubernetes/k8s_gpu_labeler_job.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/kubernetes/kubernetes_deploy_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/kubernetes/rsync_helper.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/kubernetes/ssh-tunnel.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/kubernetes/ssh_jump_lifecycle_manager.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/kubernetes/ssh_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/kubernetes_enums.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/locks.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/log_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/message_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/registry.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/resource_checker.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/resources_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/rich_console_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/rich_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/schemas.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/serialize_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/status_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/subprocess_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/tempstore.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/timeline.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/ux_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/validator.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/utils/volume.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/volumes/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/volumes/client/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/volumes/client/sdk.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/volumes/server/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/volumes/server/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/volumes/server/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/volumes/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/volumes/volume.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/workspaces/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/workspaces/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/workspaces/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/workspaces/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/skypilot_nightly.egg-info/dependency_links.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/skypilot_nightly.egg-info/entry_points.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/skypilot_nightly.egg-info/requires.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/skypilot_nightly.egg-info/top_level.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/tests/test_api.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/tests/test_api_compatibility.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/tests/test_cli.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/tests/test_config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/tests/test_db_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/tests/test_failover.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/tests/test_global_user_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/tests/test_jobs.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/tests/test_jobs_and_serve.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/tests/test_list_accelerators.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/tests/test_no_parellel.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/tests/test_optimizer_dryruns.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/tests/test_optimizer_random_dag.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/tests/test_serve_autoscaler.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/tests/test_smoke.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/tests/test_storage.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/tests/test_wheels.py +0 -0
- {skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/tests/test_yaml_parser.py +0 -0
|
@@ -7,7 +7,7 @@ import urllib.request
|
|
|
7
7
|
from sky.utils import directory_utils
|
|
8
8
|
|
|
9
9
|
# Replaced with the current commit when building the wheels.
|
|
10
|
-
_SKYPILOT_COMMIT_SHA = '
|
|
10
|
+
_SKYPILOT_COMMIT_SHA = '05eeefe2f30b1c333c96733989830045eee3fd28'
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
def _get_git_commit():
|
|
@@ -37,7 +37,7 @@ def _get_git_commit():
|
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
__commit__ = _get_git_commit()
|
|
40
|
-
__version__ = '1.0.0.
|
|
40
|
+
__version__ = '1.0.0.dev20250821'
|
|
41
41
|
__root_dir__ = directory_utils.get_sky_dir()
|
|
42
42
|
|
|
43
43
|
|
|
@@ -4353,11 +4353,19 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
|
|
|
4353
4353
|
|
|
4354
4354
|
run_timestamp = list(run_timestamps.values())[0]
|
|
4355
4355
|
job_id = list(run_timestamps.keys())[0]
|
|
4356
|
+
|
|
4357
|
+
# If run_timestamp contains the full path with SKY_LOGS_DIRECTORY,
|
|
4358
|
+
# strip the prefix to get just the relative part to avoid duplication
|
|
4359
|
+
# when constructing local paths.
|
|
4360
|
+
if run_timestamp.startswith(constants.SKY_LOGS_DIRECTORY):
|
|
4361
|
+
run_timestamp = run_timestamp[len(constants.SKY_LOGS_DIRECTORY
|
|
4362
|
+
):].lstrip('/')
|
|
4356
4363
|
local_log_dir = ''
|
|
4357
4364
|
if controller: # download controller logs
|
|
4358
4365
|
remote_log = os.path.join(managed_jobs.JOBS_CONTROLLER_LOGS_DIR,
|
|
4359
4366
|
f'{job_id}.log')
|
|
4360
|
-
local_log_dir = os.path.join(local_dir,
|
|
4367
|
+
local_log_dir = os.path.join(local_dir, 'managed_jobs',
|
|
4368
|
+
run_timestamp)
|
|
4361
4369
|
os.makedirs(os.path.dirname(os.path.expanduser(local_log_dir)),
|
|
4362
4370
|
exist_ok=True)
|
|
4363
4371
|
|
{skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/client/cli/flags.py
RENAMED
|
@@ -276,9 +276,9 @@ def config_option(expose_value: bool):
|
|
|
276
276
|
multiple=True,
|
|
277
277
|
expose_value=expose_value,
|
|
278
278
|
callback=preprocess_config_options,
|
|
279
|
-
help=('Path to a config file or a
|
|
280
|
-
'
|
|
281
|
-
'
|
|
279
|
+
help=('Path to a config file or a single key-value pair. To add '
|
|
280
|
+
'multiple key-value pairs add multiple flags (e.g. '
|
|
281
|
+
'--config nested.key1=val1 --config nested.key2=val2).'),
|
|
282
282
|
)(func)
|
|
283
283
|
|
|
284
284
|
return return_option_decorator
|
{skypilot_nightly-1.0.0.dev20250820 → skypilot_nightly-1.0.0.dev20250821}/sky/dashboard/out/404.html
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-6e76f636a048e145.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_error-c66a4e8afc46f17b.js" defer=""></script><script src="/dashboard/_next/static/wN25tc2rkvOkO-qkzIhcD/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/wN25tc2rkvOkO-qkzIhcD/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"wN25tc2rkvOkO-qkzIhcD","assetPrefix":"/dashboard","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
|
skypilot_nightly-1.0.0.dev20250821/sky/dashboard/out/_next/static/chunks/3015-6c9c09593b1e67b6.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3015],{23015:function(e,s,t){t.r(s),t.d(s,{ClusterJobs:function(){return K},ManagedJobs:function(){return B},ManagedJobsTable:function(){return H},Status2Actions:function(){return q},filterJobsByName:function(){return J},filterJobsByPool:function(){return Z},filterJobsByUser:function(){return O},filterJobsByWorkspace:function(){return U},statusGroups:function(){return P}});var r=t(85893),a=t(67294),l=t(11163),n=t(41664),i=t.n(n),c=t(55739),o=t(30803),d=t(37673),u=t(68764),h=t(36989),x=t(51214),m=t(68969),p=t(6378);class j{_generateFilterKey(e){let{allUsers:s=!0,nameMatch:t,userMatch:r,workspaceMatch:a,poolMatch:l,statuses:n}=e;return["allUsers:".concat(s),t?"name:".concat(t):"",r?"user:".concat(r):"",a?"workspace:".concat(a):"",l?"pool:".concat(l):"",n&&n.length>0?"statuses:".concat(n.sort().join(",")):""].filter(Boolean).join("|")||"default"}_getCacheStatus(e){let s=this.fullDataCache.get(e),t=Date.now();if(!s)return{isCached:!1,isFresh:!1,age:0,maxAge:12e4,hasData:!1};let r=t-s.timestamp;return{isCached:!0,isFresh:r<12e4,age:r,maxAge:12e4,hasData:s.jobs&&Array.isArray(s.jobs),data:s}}async getPaginatedJobs(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{page:s=1,limit:t=10,...r}=e,a=this._generateFilterKey(r);try{let e=this._getCacheStatus(a);if(e.isCached&&e.hasData){let l=e.data,n=(s-1)*t,i=l.jobs.slice(n,n+t);if(!this.prefetching.has(a)&&(!e.isFresh||e.age>e.maxAge/2)){let e=this._loadFullDataset(r,a).catch(()=>{}).finally(()=>this.prefetching.delete(a));this.prefetching.set(a,e)}return{jobs:i,total:l.total,totalNoFilter:l.totalNoFilter||l.total,controllerStopped:l.controllerStopped,statusCounts:l.statusCounts||{},fromCache:!0,cacheStatus:e.isFresh?"local_cache_hit":"local_cache_stale_hit"}}let l=await p.default.get(m.getManagedJobs,[{...r,page:s,limit:t}]),n=(null==l?void 0:l.jobs)||[],i="number"==typeof(null==l?void 0:l.total)?l.total:n.length,c=!!(null==l?void 0:l.controllerStopped);if(!this.prefetching.has(a)){let e=this._loadFullDataset(r,a).catch(e=>{console.warn("Background prefetch of full jobs failed:",e)}).finally(()=>{this.prefetching.delete(a)});this.prefetching.set(a,e)}return{jobs:n,total:i,totalNoFilter:(null==l?void 0:l.totalNoFilter)||i,controllerStopped:c,statusCounts:(null==l?void 0:l.statusCounts)||{},fromCache:!1,cacheStatus:"server_page_fetch"}}catch(e){return console.error("Error in getPaginatedJobs:",e),{jobs:[],total:0,totalNoFilter:0,controllerStopped:!1,statusCounts:{},fromCache:!1,cacheStatus:"error"}}}async _loadFullDataset(e,s){let t=await p.default.get(m.getManagedJobs,[e]);if(t.controllerStopped||!t.jobs)return t;let r={jobs:t.jobs,total:t.jobs.length,totalNoFilter:t.totalNoFilter||t.jobs.length,controllerStopped:!1,statusCounts:t.statusCounts||{},timestamp:Date.now()};return this.fullDataCache.set(s,r),r}isDataLoading(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},s=this._generateFilterKey(e);return this.isLoading.has(s)||this.prefetching.has(s)}isDataCached(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},s=this._generateFilterKey(e),t=this._getCacheStatus(s);return t.isCached&&t.isFresh&&t.hasData}getCacheStatus(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},s=this._generateFilterKey(e);return this._getCacheStatus(s)}invalidateCache(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;if(e){let s=this._generateFilterKey(e);this.fullDataCache.delete(s),this.isLoading.delete(s),this.prefetching.delete(s)}else this.fullDataCache.clear(),this.isLoading.clear(),this.prefetching.clear();p.default.invalidateFunction(m.getManagedJobs)}getCacheStats(){let e={cachedFilters:Array.from(this.fullDataCache.keys()),loadingFilters:Array.from(this.isLoading.keys()),prefetchingFilters:Array.from(this.prefetching.keys()),cacheSize:this.fullDataCache.size,loadingCount:this.isLoading.size,prefetchingCount:this.prefetching.size};for(let[s,t]of(e.detailedStatus={},this.fullDataCache.entries())){let r=this._getCacheStatus(s);e.detailedStatus[s]={age:r.age,isFresh:r.isFresh,hasData:r.hasData,jobCount:t.jobs?t.jobs.length:0}}return e}constructor(){this.fullDataCache=new Map,this.isLoading=new Map,this.prefetching=new Map}}let f=new j;var g=t(23266),b=t(17324),v=t(53081),N=t(13626),w=t(23293),y=t(6521),k=t(16826),C=t(53610),S=t(92128),L=t(94545),_=t(99307),E=t(20546),D=t(23001),R=t(88950);let F=(e,s)=>{let t={...e.query},r=[],a=[],l=[];s.map((e,s)=>{var t;r.push(null!==(t=e.property.toLowerCase())&&void 0!==t?t:""),a.push(e.operator),l.push(e.value)}),t.property=r,t.operator=a,t.value=l,e.replace({pathname:e.pathname,query:t},void 0,{shallow:!0})},M=(e,s)=>{let t={...e.query},r=t.property,a=t.operator,l=t.value;if(void 0===r)return[];let n=[],i=Array.isArray(r)?r.length:1;if(1===i)n.push({property:s.get(r),operator:a,value:l});else for(let e=0;e<i;e++)n.push({property:s.get(r[e]),operator:a[e],value:l[e]});return n},I=e=>{var s,t;let{propertyList:l=[],valueList:n,setFilters:i,updateURLParams:c,placeholder:o="Filter items"}=e,d=(0,a.useRef)(null),u=(0,a.useRef)(null),[h,x]=(0,a.useState)(!1),[m,p]=(0,a.useState)(""),[j,f]=(0,a.useState)((null===(s=l[0])||void 0===s?void 0:s.value)||"status"),[g,b]=(0,a.useState)([]);(0,a.useEffect)(()=>{let e=e=>{u.current&&!u.current.contains(e.target)&&d.current&&!d.current.contains(e.target)&&x(!1)};return document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e)}},[]),(0,a.useEffect)(()=>{let e=[];n&&"object"==typeof n&&(e=n[j]||[]),""!==m.trim()&&(e=e.filter(e=>e&&e.toString().toLowerCase().includes(m.toLowerCase()))),b(e)},[j,n,m]);let v=e=>{let s=l.find(s=>s.value===e);return s?s.label:e},N=e=>{i(s=>{let t=[...s,{property:v(j),operator:":",value:e}];return c(t),t}),x(!1),p(""),d.current.focus()};return(0,r.jsxs)("div",{className:"flex flex-row border border-gray-300 rounded-md overflow-visible",children:[(0,r.jsx)("div",{className:"border-r border-gray-300 flex-shrink-0",children:(0,r.jsxs)(R.Ph,{onValueChange:f,value:j,children:[(0,r.jsx)(R.i4,{"aria-label":"Filter Property",className:"focus:ring-0 focus:ring-offset-0 border-none rounded-l-md rounded-r-none w-20 sm:w-24 md:w-32 h-8 text-xs sm:text-sm",children:(0,r.jsx)(R.ki,{placeholder:(null===(t=l[0])||void 0===t?void 0:t.label)||"Status"})}),(0,r.jsx)(R.Bw,{children:l.map((e,s)=>(0,r.jsx)(R.Ql,{value:e.value,children:e.label},"property-item-".concat(s)))})]})}),(0,r.jsxs)("div",{className:"relative flex-1",children:[(0,r.jsx)("input",{type:"text",ref:d,placeholder:o,value:m,onChange:e=>{p(e.target.value),h||x(!0)},onFocus:()=>{x(!0)},onKeyDown:e=>{"Enter"===e.key&&""!==m.trim()?(i(e=>{let s=[...e,{property:v(j),operator:":",value:m}];return c(s),s}),p(""),x(!1)):"Escape"===e.key&&(x(!1),d.current.blur())},className:"h-8 w-full sm:w-96 px-3 pr-8 text-sm border-none rounded-l-none rounded-r-md focus:ring-0 focus:outline-none",autoComplete:"off"}),m&&(0,r.jsx)("button",{onClick:()=>{p(""),x(!1)},className:"absolute right-2 top-1/2 transform -translate-y-1/2 text-gray-400 hover:text-gray-600",title:"Clear filter",tabIndex:-1,children:(0,r.jsx)("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})}),h&&g.length>0&&(0,r.jsx)("div",{ref:u,className:"absolute z-50 mt-1 w-full bg-white border border-gray-200 rounded-md shadow-lg max-h-60 overflow-y-auto",style:{zIndex:9999},children:g.map((e,s)=>(0,r.jsx)("div",{className:"px-3 py-2 cursor-pointer hover:bg-gray-50 text-sm ".concat(s!==g.length-1?"border-b border-gray-100":""),onClick:()=>N(e),children:(0,r.jsx)("span",{className:"text-sm text-gray-700",children:e})},"".concat(e,"-").concat(s)))})]})]})},A=e=>{let{filters:s=[],setFilters:t,updateURLParams:a}=e,l=e=>{t(s=>{let t=s.filter((s,t)=>t!==e);return a(t),t})};return(0,r.jsx)(r.Fragment,{children:(0,r.jsx)("div",{className:"flex items-center gap-4 py-2 px-2",children:(0,r.jsxs)("div",{className:"flex flex-wrap items-content gap-2",children:[s.map((e,s)=>(0,r.jsx)(z,{filter:e,onRemove:()=>l(s)},"filteritem-".concat(s))),s.length>0&&(0,r.jsx)(r.Fragment,{children:(0,r.jsx)("button",{onClick:()=>{a([]),t([])},className:"rounded-full px-4 py-1 text-sm text-gray-700 bg-gray-200 hover:bg-gray-300",children:"Clear filters"})})]})})})},z=e=>{let{filter:s,onRemove:t}=e;return(0,r.jsx)(r.Fragment,{children:(0,r.jsxs)("div",{className:"flex items-center text-blue-600 bg-blue-100 px-1 py-1 rounded-full text-sm",children:[(0,r.jsxs)("div",{className:"flex items-center gap-1 px-2",children:[(0,r.jsx)("span",{children:"".concat(s.property," ")}),(0,r.jsx)("span",{children:"".concat(s.operator," ")}),(0,r.jsx)("span",{children:" ".concat(s.value)})]}),(0,r.jsx)("button",{onClick:()=>t(),className:"p-0.5 ml-1 transform text-gray-400 hover:text-gray-600 bg-blue-500 hover:bg-blue-600 rounded-full flex flex-col items-center",title:"Clear filter",children:(0,r.jsx)("svg",{className:"h-3 w-3",fill:"none",stroke:"white",viewBox:"0 0 24 24",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:5,d:"M6 18L18 6M6 6l12 12"})})})]})})},P={active:["PENDING","RUNNING","RECOVERING","SUBMITTED","STARTING","CANCELLING"],finished:["SUCCEEDED","FAILED","CANCELLED","FAILED_SETUP","FAILED_PRECHECKS","FAILED_NO_RESOURCE","FAILED_CONTROLLER"]},W=[{label:"Name",value:"name"},{label:"User",value:"user"},{label:"Workspace",value:"workspace"},{label:"Pool",value:"pool"}];function J(e,s){if(!s||""===s.trim())return e;let t=s.toLowerCase().trim();return e.filter(e=>(e.name||"").toLowerCase().includes(t))}function U(e,s){return s&&"ALL_WORKSPACES"!==s?e.filter(e=>(e.workspace||"default").toLowerCase()===s.toLowerCase()):e}function O(e,s){return s&&"ALL_USERS"!==s?e.filter(e=>(e.user_hash||e.user)===s):e}function Z(e,s){if(!s||""===s.trim())return e;let t=s.toLowerCase().trim();return e.filter(e=>(e.pool||"").toLowerCase().includes(t))}let T=e=>{if(!e)return"-";let s=e instanceof Date?e:new Date(1e3*e);return(0,r.jsx)(h.Zg,{date:s})};function B(){let e=(0,l.useRouter)(),[s,t]=(0,a.useState)(!1),[n,c]=(0,a.useState)(!0),[o,d]=(0,a.useState)(!0),u=a.useRef(null),x=a.useRef(null),[j,g]=(0,a.useState)([]),[N,w]=(0,a.useState)([]),y=async function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];t(!0),!e&&o&&c(!0);try{let[e]=await Promise.all([p.default.get(m.vs,[{}])]);g(e.pools||[])}catch(e){console.error("Error fetching data:",e)}finally{t(!1),!e&&o&&(c(!1),d(!1))}};(0,a.useEffect)(()=>{y()},[]);let k=s=>{F(e,s)},C=a.useCallback(()=>{let s=new Map;s.set("",""),s.set("status","Status"),s.set("name","Name"),s.set("user","User"),s.set("workspace","Workspace"),s.set("pool","Pool"),w(M(e,s))},[e,w]);return(0,a.useEffect)(()=>{e.isReady&&C()},[e.isReady,e.query.tab,C]),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-2 mb-1",children:[(0,r.jsx)("div",{className:"text-base",children:(0,r.jsx)(i(),{href:"/jobs",className:"text-sky-blue hover:underline leading-none",children:"Managed Jobs"})}),(0,r.jsx)("div",{className:"w-full sm:w-auto",children:(0,r.jsx)(I,{propertyList:W,valueList:{},setFilters:w,updateURLParams:k,placeholder:"Filter jobs"})})]}),(0,r.jsx)(A,{filters:N,setFilters:w,updateURLParams:k}),(0,r.jsx)(H,{refreshInterval:h.yc,setLoading:t,refreshDataRef:u,filters:N,onRefresh:()=>{f.invalidateCache(),p.default.invalidate(m.vs,[{}]),p.default.invalidate(b.fX),p.default.invalidate(v.R),y(!0),u.current&&u.current(),x.current&&x.current()},poolsData:j,poolsLoading:n}),(0,r.jsx)("div",{className:"mb-4",children:(0,r.jsx)(X,{refreshInterval:h.yc,setLoading:t,refreshDataRef:x})})]})}function H(e){let{refreshInterval:s,setLoading:t,refreshDataRef:l,filters:n,onRefresh:j,poolsData:b,poolsLoading:v}=e,[y,k]=(0,a.useState)([]),[C,R]=(0,a.useState)(0),[F,M]=(0,a.useState)(0),[I,A]=(0,a.useState)({key:null,direction:"ascending"}),[z,W]=(0,a.useState)(!1),[J,U]=(0,a.useState)(!0),[O,Z]=(0,a.useState)(1),[B,H]=(0,a.useState)(10),[K,X]=(0,a.useState)(null),Y=(0,a.useRef)(null),[Q,$]=(0,a.useState)([]),[ee,es]=(0,a.useState)({}),[et,er]=(0,a.useState)({}),[ea,el]=(0,a.useState)(!1),[en,ei]=(0,a.useState)(!1),[ec,eo]=(0,a.useState)(!1),[ed,eu]=(0,a.useState)("all"),[eh,ex]=(0,a.useState)(!0),[em,ep]=(0,a.useState)({isOpen:!1,title:"",message:"",onConfirm:null}),ej=(0,D.X)(),ef=async()=>{ep({isOpen:!0,title:"Restart Controller",message:"Are you sure you want to restart the controller?",onConfirm:async()=>{try{eo(!0),W(!0),await (0,m.Ce)("restartcontroller"),await eg()}catch(e){console.error("Error restarting controller:",e)}finally{eo(!1),W(!1)}}})},eg=a.useCallback(async function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},s=!1!==e.includeStatus;W(!0),t(!0);try{let e,t;let r=e=>{let s=(n||[]).find(s=>(s.property||"").toLowerCase()===e);return s&&s.value?String(s.value):void 0};Q.length>0?t=Q:eh?"active"===ed?t=P.active:"finished"===ed&&(t=P.finished):t=[];let a={allUsers:!0,nameMatch:r("name"),userMatch:r("user"),workspaceMatch:r("workspace"),poolMatch:r("pool"),statuses:t,page:O,limit:B},l=null;if(f.isDataCached(a),f.isDataLoading(a),s){let[s,t]=await Promise.all([f.getPaginatedJobs(a),p.default.get(g.getClusters)]);e=s,l=t}else e=await f.getPaginatedJobs(a);let{jobs:i=[],total:c=0,totalNoFilter:o=0,controllerStopped:d=!1,cacheStatus:u="unknown",statusCounts:h={}}=e||{},x=!!d,m=!1;if(s&&l){let e=null==l?void 0:l.find(e=>(0,L.Ym)(e.cluster)),s=e?e.status:"NOT_FOUND";"STOPPED"==s&&d&&(x=!0),"LAUNCHING"==s&&(m=!0)}k(i),R(c||0),M(o||0),el(!!x),ei(!!m),er(h),U(!1)}catch(e){console.error("Error fetching data:",e),k([]),el(!1),U(!1)}finally{W(!1),t(!1)}},[t,n,O,B,Q,eh,ed]);a.useEffect(()=>{l&&(l.current=eg)},[l,eg]);let eb=a.useRef(eg);a.useEffect(()=>{eb.current=eg},[eg]),a.useEffect(()=>{eg({includeStatus:!0})},[]),a.useEffect(()=>{eg({includeStatus:!1})},[O]),a.useEffect(()=>{eg({includeStatus:!0})},[n,B]),a.useEffect(()=>{eg({includeStatus:!0})},[ed,Q,eh]),(0,a.useEffect)(()=>{let e=setInterval(()=>{eb.current&&eb.current({includeStatus:!0})},s);return()=>{clearInterval(e)}},[s]),(0,a.useEffect)(()=>{Z(1)},[ed]),(0,a.useEffect)(()=>{Z(1)},[n,B]),(0,a.useEffect)(()=>{$([]),ex(!0)},[ed]);let ev=e=>{let s="ascending";I.key===e&&"ascending"===I.direction&&(s="descending"),A({key:e,direction:s})},eN=e=>I.key===e?"ascending"===I.direction?" ↑":" ↓":"";a.useMemo(()=>{let e=y||[];return{active:e.filter(e=>P.active.includes(e.status)).length,finished:e.filter(e=>P.finished.includes(e.status)).length}},[y]);let ew=e=>Q.length>0?Q.includes(e):"all"===ed||P[ed].includes(e),ey=a.useMemo(()=>y,[y]),ek=a.useMemo(()=>I.key?[...ey].sort((e,s)=>e[I.key]<s[I.key]?"ascending"===I.direction?-1:1:e[I.key]>s[I.key]?"ascending"===I.direction?1:-1:0):ey,[ey,I]),eC=(O-1)*B,eS=C>0?Math.ceil(C/B):0,eL=C>0?Math.min(eC+ek.length,C):0,e_=e=>{if(Q.includes(e)){let s=Q.filter(s=>s!==e);0===s.length?(ex(!0),$([])):($(s),ex(!1))}else $([...Q,e]),ex(!1);Z(1)};return(0,a.useEffect)(()=>{es(et)},[et]),(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsx)("div",{className:"flex flex-col space-y-1 mb-1",children:(0,r.jsxs)("div",{className:"flex flex-wrap items-center justify-between text-sm mb-1",children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center",children:[(0,r.jsx)("span",{className:"mr-2 text-sm font-medium",children:"Statuses:"}),(0,r.jsxs)("div",{className:"flex flex-wrap gap-2 items-center",children:[!z&&0===F&&!J&&(0,r.jsx)("span",{className:"text-gray-500 mr-2",children:"No jobs found"}),Object.entries(ee).map(e=>{let[s,t]=e;return(0,r.jsxs)("button",{onClick:()=>e_(s),className:"px-3 py-0.5 rounded-full flex items-center space-x-2 ".concat(ew(s)||Q.includes(s)?(0,_.Cl)(s):"bg-gray-50 text-gray-600 hover:bg-gray-100"),children:[(0,r.jsx)("span",{children:s}),(0,r.jsx)("span",{className:"text-xs ".concat(ew(s)||Q.includes(s)?"bg-white/50":"bg-gray-200"," px-1.5 py-0.5 rounded"),children:t})]},s)}),F>0&&(0,r.jsxs)("div",{className:"flex items-center ml-2 gap-2",children:[(0,r.jsx)("span",{className:"text-gray-500",children:"("}),(0,r.jsx)("button",{onClick:()=>{a.startTransition(()=>{eu("all"),$([]),ex(!0),Z(1)})},className:"text-sm font-medium ".concat("all"===ed&&eh?"text-purple-700 underline":"text-gray-600 hover:text-purple-700 hover:underline"),children:"show all jobs"}),(0,r.jsx)("span",{className:"text-gray-500 mx-1",children:"|"}),(0,r.jsx)("button",{onClick:()=>{a.startTransition(()=>{eu("active"),$([]),ex(!0),Z(1)})},className:"text-sm font-medium ".concat("active"===ed&&eh?"text-green-700 underline":"text-gray-600 hover:text-green-700 hover:underline"),children:"show all active jobs"}),(0,r.jsx)("span",{className:"text-gray-500 mx-1",children:"|"}),(0,r.jsx)("button",{onClick:()=>{a.startTransition(()=>{eu("finished"),$([]),ex(!0),Z(1)})},className:"text-sm font-medium ".concat("finished"===ed&&eh?"text-blue-700 underline":"text-gray-600 hover:text-blue-700 hover:underline"),children:"show all finished jobs"}),(0,r.jsx)("span",{className:"text-gray-500",children:")"})]})]})]}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[z&&(0,r.jsxs)("div",{className:"flex items-center",children:[(0,r.jsx)(c.Z,{size:15,className:"mt-0"}),(0,r.jsx)("span",{className:"ml-2 text-gray-500 text-sm",children:"Loading..."})]}),(0,r.jsxs)("button",{onClick:()=>{j&&j(),l&&l.current&&l.current()},disabled:z,className:"text-sky-blue hover:text-sky-blue-bright flex items-center text-sm",children:[(0,r.jsx)(N.Z,{className:"h-4 w-4 mr-1.5"}),(0,r.jsx)("span",{children:"Refresh"})]})]})]})}),ej&&ea&&0===ek.length&&!z&&!J&&(0,r.jsx)("div",{className:"mb-4 p-4 bg-gray-50 rounded-lg border",children:(0,r.jsxs)("div",{className:"flex flex-col items-center space-y-3",children:[(0,r.jsxs)("p",{className:"text-gray-700 text-center text-sm",children:["Job controller stopped.",(0,r.jsx)("br",{}),"Restart to check status."]}),(0,r.jsx)(o.z,{variant:"outline",size:"sm",onClick:ef,className:"text-sky-blue hover:text-sky-blue-bright",disabled:z||ec,children:ec?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(c.Z,{size:12,className:"mr-2"}),"Restarting..."]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(w.Z,{className:"h-4 w-4 mr-2"}),"Restart"]})})]})}),(0,r.jsx)(d.Zb,{children:(0,r.jsx)("div",{className:"overflow-x-auto rounded-lg",children:(0,r.jsxs)(u.iA,{className:"min-w-full",children:[(0,r.jsx)(u.xD,{children:(0,r.jsxs)(u.SC,{children:[(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>ev("id"),children:["ID",eN("id")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>ev("name"),children:["Name",eN("name")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>ev("user"),children:["User",eN("user")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>ev("workspace"),children:["Workspace",eN("workspace")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>ev("submitted_at"),children:["Submitted",eN("submitted_at")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>ev("job_duration"),children:["Duration",eN("job_duration")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>ev("status"),children:["Status",eN("status")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>ev("resources_str"),children:["Requested",eN("resources_str")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>ev("infra"),children:["Infra",eN("infra")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>ev("cluster"),children:["Resources",eN("cluster")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>ev("recoveries"),children:["Recoveries",eN("recoveries")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>ev("pool"),children:["Worker Pool",eN("pool")]}),(0,r.jsx)(u.ss,{children:"Details"}),(0,r.jsx)(u.ss,{children:"Logs"})]})}),(0,r.jsx)(u.RM,{children:z&&J?(0,r.jsx)(u.SC,{children:(0,r.jsx)(u.pj,{colSpan:12,className:"text-center py-6 text-gray-500",children:(0,r.jsxs)("div",{className:"flex justify-center items-center",children:[(0,r.jsx)(c.Z,{size:20,className:"mr-2"}),(0,r.jsx)("span",{children:"Loading..."})]})})}):ek.length>0?(0,r.jsx)(r.Fragment,{children:ek.map(e=>(0,r.jsxs)(a.Fragment,{children:[(0,r.jsxs)(u.SC,{children:[(0,r.jsx)(u.pj,{children:(0,r.jsx)(i(),{href:"/jobs/".concat(e.id),className:"text-blue-600",children:e.id})}),(0,r.jsx)(u.pj,{children:(0,r.jsx)(i(),{href:"/jobs/".concat(e.id),className:"text-blue-600",children:e.name})}),(0,r.jsx)(u.pj,{children:(0,r.jsx)(E.H,{username:e.user,userHash:e.user_hash})}),(0,r.jsx)(u.pj,{children:(0,r.jsx)(i(),{href:"/workspaces",className:"text-gray-700 hover:text-blue-600 hover:underline",children:e.workspace||"default"})}),(0,r.jsx)(u.pj,{children:T(e.submitted_at)}),(0,r.jsx)(u.pj,{children:(0,h.LU)(e.job_duration)}),(0,r.jsx)(u.pj,{children:(0,r.jsx)(_.OE,{status:e.status})}),(0,r.jsx)(u.pj,{children:e.requested_resources}),(0,r.jsx)(u.pj,{children:e.infra&&"-"!==e.infra?(0,r.jsx)(h.Md,{content:e.full_infra||e.infra,className:"text-sm text-muted-foreground",children:(0,r.jsxs)("span",{children:[(0,r.jsx)(i(),{href:"/infra",className:"text-blue-600 hover:underline",children:e.cloud||e.infra.split("(")[0].trim()}),e.infra.includes("(")&&(0,r.jsx)("span",{children:" "+(()=>{let s=x.MO.NAME_TRUNCATE_LENGTH,t=e.infra.substring(e.infra.indexOf("(")),r=t.substring(1,t.length-1);if(r.length<=s)return t;let a="".concat(r.substring(0,Math.floor((s-3)/2)),"...").concat(r.substring(r.length-Math.ceil((s-3)/2)));return"(".concat(a,")")})()})]})}):(0,r.jsx)("span",{children:e.infra||"-"})}),(0,r.jsx)(u.pj,{children:(0,r.jsx)(h.Md,{content:e.resources_str_full||e.resources_str,className:"text-sm text-muted-foreground",children:(0,r.jsx)("span",{children:e.resources_str})})}),(0,r.jsx)(u.pj,{children:e.recoveries}),(0,r.jsx)(u.pj,{children:(0,r.jsx)("div",{className:v?"blur-sm transition-all duration-300":"",children:v?"-":(0,h.os)(e.pool,e.pool_hash,b)})}),(0,r.jsx)(u.pj,{children:e.details?(0,r.jsx)(V,{text:e.details,rowId:e.id,expandedRowId:K,setExpandedRowId:X}):"-"}),(0,r.jsx)(u.pj,{children:(0,r.jsx)(q,{jobParent:"/jobs",jobId:e.id,managed:!0})})]}),K===e.id&&(0,r.jsx)(G,{text:e.details,colSpan:13,innerRef:Y})]},e.task_job_id))}):(0,r.jsx)(u.SC,{children:(0,r.jsx)(u.pj,{colSpan:13,className:"text-center py-6",children:(0,r.jsxs)("div",{className:"flex flex-col items-center space-y-4",children:[en&&(0,r.jsxs)("div",{className:"flex flex-col items-center space-y-2",children:[(0,r.jsx)("p",{className:"text-gray-700",children:"The managed job controller is launching. It will be ready shortly."}),(0,r.jsxs)("div",{className:"flex items-center",children:[(0,r.jsx)(c.Z,{size:12,className:"mr-2"}),(0,r.jsx)("span",{className:"text-gray-500",children:"Launching..."})]})]}),!ea&&!en&&(0,r.jsx)("p",{className:"text-gray-500",children:"No active jobs"}),!ej&&ea&&(0,r.jsxs)("div",{className:"flex flex-col items-center space-y-3 px-4",children:[(0,r.jsx)("p",{className:"text-gray-700 text-center text-sm sm:text-base max-w-md",children:"The managed job controller has been stopped. Restart to check the latest job status."}),(0,r.jsx)(o.z,{variant:"outline",size:"sm",onClick:ef,className:"text-sky-blue hover:text-sky-blue-bright",disabled:z||ec,children:ec?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(c.Z,{size:12,className:"mr-2"}),"Restarting..."]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(w.Z,{className:"h-4 w-4 mr-2"}),"Restart Controller"]})})]})]})})})})]})})}),(0,r.jsx)("div",{className:"flex justify-end items-center py-2 px-4 text-sm text-gray-700",children:(0,r.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,r.jsxs)("div",{className:"flex items-center",children:[(0,r.jsx)("span",{className:"mr-2",children:"Rows per page:"}),(0,r.jsxs)("div",{className:"relative inline-block",children:[(0,r.jsxs)("select",{value:B,onChange:e=>{H(parseInt(e.target.value,10)),Z(1)},className:"py-1 pl-2 pr-6 appearance-none outline-none cursor-pointer border-none bg-transparent",style:{minWidth:"40px"},children:[(0,r.jsx)("option",{value:10,children:"10"}),(0,r.jsx)("option",{value:30,children:"30"}),(0,r.jsx)("option",{value:50,children:"50"}),(0,r.jsx)("option",{value:100,children:"100"}),(0,r.jsx)("option",{value:200,children:"200"})]}),(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",className:"h-4 w-4 text-gray-500 absolute right-0 top-1/2 transform -translate-y-1/2 pointer-events-none",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]})]}),(0,r.jsx)("div",{children:C>0?"".concat(eC+1," – ").concat(eL," of ").concat(C):"0 – 0 of 0"}),(0,r.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,r.jsx)(o.z,{variant:"ghost",size:"icon",onClick:()=>{Z(e=>Math.max(e-1,1))},disabled:1===O||!ek||0===ek.length,className:"text-gray-500 h-8 w-8 p-0",children:(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"chevron-left",children:(0,r.jsx)("path",{d:"M15 18l-6-6 6-6"})})}),(0,r.jsx)(o.z,{variant:"ghost",size:"icon",onClick:()=>{eS>0&&O<eS&&Z(e=>e+1)},disabled:0===eS||O>=eS||!ek||0===ek.length,className:"text-gray-500 h-8 w-8 p-0",children:(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"chevron-right",children:(0,r.jsx)("path",{d:"M9 18l6-6-6-6"})})})]})]})}),(0,r.jsx)(S.cV,{isOpen:em.isOpen,onClose:()=>ep({...em,isOpen:!1}),onConfirm:em.onConfirm,title:em.title,message:em.message,confirmClassName:"bg-blue-600 hover:bg-blue-700 text-white"})]})}function q(e){let{withLabel:s=!1,jobParent:t,jobId:a,managed:n}=e,i=(0,l.useRouter)(),c=(e,s)=>{e.preventDefault(),e.stopPropagation(),i.push({pathname:"".concat(t,"/").concat(a),query:{tab:s}})},o=function(e){let s=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(e.preventDefault(),e.stopPropagation(),n)(0,m.jh)({jobId:parseInt(a),controller:s});else{let e=t.match(/\/clusters\/(.+)/);if(e){let s=e[1];(0,g.GH)({clusterName:s,jobIds:[a],workspace:"default"})}}};return(0,r.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,r.jsx)(h.WH,{content:"View Job Logs",className:"capitalize text-sm text-muted-foreground",children:(0,r.jsxs)("button",{onClick:e=>c(e,"logs"),className:"text-sky-blue hover:text-sky-blue-bright font-medium inline-flex items-center h-8",children:[(0,r.jsx)(y.Z,{className:"w-4 h-4"}),s&&(0,r.jsx)("span",{className:"ml-1.5",children:"Logs"})]})},"logs"),(0,r.jsx)(h.WH,{content:"Download Job Logs",className:"capitalize text-sm text-muted-foreground",children:(0,r.jsxs)("button",{onClick:e=>o(e,!1),className:"text-sky-blue hover:text-sky-blue-bright font-medium inline-flex items-center h-8",children:[(0,r.jsx)(k.Z,{className:"w-4 h-4"}),s&&(0,r.jsx)("span",{className:"ml-1.5",children:"Download"})]})},"downloadlogs"),n&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(h.WH,{content:"View Controller Logs",className:"capitalize text-sm text-muted-foreground",children:(0,r.jsxs)("button",{onClick:e=>c(e,"controllerlogs"),className:"text-sky-blue hover:text-sky-blue-bright font-medium inline-flex items-center h-8",children:[(0,r.jsx)(C.Z,{className:"w-4 h-4"}),s&&(0,r.jsx)("span",{className:"ml-2",children:"Controller Logs"})]})},"controllerlogs"),(0,r.jsx)(h.WH,{content:"Download Controller Logs",className:"capitalize text-sm text-muted-foreground",children:(0,r.jsxs)("button",{onClick:e=>o(e,!0),className:"text-sky-blue hover:text-sky-blue-bright font-medium inline-flex items-center h-8",children:[(0,r.jsx)(k.Z,{className:"w-4 h-4"}),s&&(0,r.jsx)("span",{className:"ml-1.5",children:"Download Controller"})]})},"downloadcontrollerlogs")]})]})}function K(e){let{clusterName:s,clusterJobData:t,loading:l,refreshClusterJobsOnly:n,userFilter:x=null,nameFilter:m=null}=e,[p,j]=(0,a.useState)(null),[f,g]=(0,a.useState)({key:null,direction:"ascending"}),[b,v]=(0,a.useState)(1),[w,y]=(0,a.useState)(10),k=(0,a.useRef)(null),[C,S]=(0,a.useState)(null);(0,a.useEffect)(()=>{let e=e=>{p&&k.current&&!k.current.contains(e.target)&&j(null)};return document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e)}},[p]);let L=a.useMemo(()=>{let e=t||[];return x&&"ALL_USERS"!==x&&(e=O(e,x)),m&&(e=J(e,m)),e},[t,x,m]);(0,a.useEffect)(()=>{JSON.stringify(t)!==JSON.stringify(C)&&S(t)},[t,C]);let D=a.useMemo(()=>f.key?[...L].sort((e,s)=>e[f.key]<s[f.key]?"ascending"===f.direction?-1:1:e[f.key]>s[f.key]?"ascending"===f.direction?1:-1:0):L,[L,f]),R=e=>{let s="ascending";f.key===e&&"ascending"===f.direction&&(s="descending"),g({key:e,direction:s})},F=e=>f.key===e?"ascending"===f.direction?" ↑":" ↓":"",M=Math.ceil(D.length/w),I=(b-1)*w,A=I+w,z=D.slice(I,A);return(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsxs)(d.Zb,{children:[(0,r.jsxs)("div",{className:"flex items-center justify-between p-4",children:[(0,r.jsx)("h3",{className:"text-lg font-semibold",children:"Cluster Jobs"}),(0,r.jsx)("div",{className:"flex items-center",children:n&&(0,r.jsxs)("button",{onClick:n,disabled:l,className:"text-sky-blue hover:text-sky-blue-bright font-medium inline-flex items-center text-sm ml-2",children:[(0,r.jsx)(N.Z,{className:"w-4 h-4 mr-1"}),"Refresh Jobs"]})})]}),(0,r.jsxs)(u.iA,{children:[(0,r.jsx)(u.xD,{children:(0,r.jsxs)(u.SC,{children:[(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>R("id"),children:["ID",F("id")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>R("job"),children:["Name",F("job")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>R("user"),children:["User",F("user")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>R("workspace"),children:["Workspace",F("workspace")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>R("submitted_at"),children:["Submitted",F("submitted_at")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>R("job_duration"),children:["Duration",F("job_duration")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>R("status"),children:["Status",F("status")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>R("resources"),children:["Resources",F("resources")]}),(0,r.jsx)(u.ss,{className:"whitespace-nowrap",children:"Logs"})]})}),(0,r.jsx)(u.RM,{children:l?(0,r.jsx)(u.SC,{children:(0,r.jsx)(u.pj,{colSpan:9,className:"text-center py-12 text-gray-500",children:(0,r.jsxs)("div",{className:"flex justify-center items-center",children:[(0,r.jsx)(c.Z,{size:24,className:"mr-2"}),(0,r.jsx)("span",{children:"Loading cluster jobs..."})]})})}):z.length>0?z.map(e=>(0,r.jsxs)(a.Fragment,{children:[(0,r.jsxs)(u.SC,{className:p===e.id?"selected-row":"",children:[(0,r.jsx)(u.pj,{children:(0,r.jsx)(i(),{href:"/clusters/".concat(s,"/").concat(e.id),className:"text-blue-600",children:e.id})}),(0,r.jsx)(u.pj,{children:(0,r.jsx)(i(),{href:"/clusters/".concat(s,"/").concat(e.id),className:"text-blue-600",children:(0,r.jsx)(V,{text:e.job||"Unnamed job",rowId:e.id,expandedRowId:p,setExpandedRowId:j})})}),(0,r.jsx)(u.pj,{children:(0,r.jsx)(E.H,{username:e.user,userHash:e.user_hash})}),(0,r.jsx)(u.pj,{children:(0,r.jsx)(i(),{href:"/workspaces",className:"text-gray-700 hover:text-blue-600 hover:underline",children:e.workspace||"default"})}),(0,r.jsx)(u.pj,{children:T(e.submitted_at)}),(0,r.jsx)(u.pj,{children:(0,h.LU)(e.job_duration)}),(0,r.jsx)(u.pj,{children:(0,r.jsx)(_.OE,{status:e.status})}),(0,r.jsx)(u.pj,{children:e.resources}),(0,r.jsx)(u.pj,{className:"flex content-center items-center",children:(0,r.jsx)(q,{jobParent:"/clusters/".concat(s),jobId:e.id,managed:!1})})]}),p===e.id&&(0,r.jsx)(G,{text:e.job||"Unnamed job",colSpan:9,innerRef:k})]},e.id)):(0,r.jsx)(u.SC,{children:(0,r.jsx)(u.pj,{colSpan:8,className:"text-center py-6 text-gray-500",children:"No jobs found"})})})]})]}),D&&D.length>0&&(0,r.jsx)("div",{className:"flex justify-end items-center py-2 px-4 text-sm text-gray-700",children:(0,r.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,r.jsxs)("div",{className:"flex items-center",children:[(0,r.jsx)("span",{className:"mr-2",children:"Rows per page:"}),(0,r.jsxs)("div",{className:"relative inline-block",children:[(0,r.jsxs)("select",{value:w,onChange:e=>{y(parseInt(e.target.value,10)),v(1)},className:"py-1 pl-2 pr-6 appearance-none outline-none cursor-pointer border-none bg-transparent",style:{minWidth:"40px"},children:[(0,r.jsx)("option",{value:5,children:"5"}),(0,r.jsx)("option",{value:10,children:"10"}),(0,r.jsx)("option",{value:20,children:"20"}),(0,r.jsx)("option",{value:50,children:"50"})]}),(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",className:"h-4 w-4 text-gray-500 absolute right-0 top-1/2 transform -translate-y-1/2 pointer-events-none",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]})]}),(0,r.jsxs)("div",{children:[I+1," – ",Math.min(A,D.length)," of"," ",D.length]}),(0,r.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,r.jsx)(o.z,{variant:"ghost",size:"icon",onClick:()=>{v(e=>Math.max(e-1,1))},disabled:1===b,className:"text-gray-500 h-8 w-8 p-0",children:(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"chevron-left",children:(0,r.jsx)("path",{d:"M15 18l-6-6 6-6"})})}),(0,r.jsx)(o.z,{variant:"ghost",size:"icon",onClick:()=>{v(e=>Math.min(e+1,M))},disabled:b===M||0===M,className:"text-gray-500 h-8 w-8 p-0",children:(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"chevron-right",children:(0,r.jsx)("path",{d:"M9 18l6-6-6-6"})})})]})]})})]})}function G(e){let{text:s,colSpan:t,innerRef:a}=e;return(0,r.jsx)(u.SC,{className:"expanded-details",children:(0,r.jsx)(u.pj,{colSpan:t,children:(0,r.jsx)("div",{className:"p-4 bg-gray-50 rounded-md border border-gray-200",ref:a,children:(0,r.jsx)("div",{className:"flex justify-between items-start",children:(0,r.jsxs)("div",{className:"flex-1",children:[(0,r.jsx)("p",{className:"text-sm font-medium text-gray-900",children:"Full Details"}),(0,r.jsx)("p",{className:"mt-1 text-sm text-gray-700",style:{whiteSpace:"pre-wrap"},children:s})]})})})})})}function V(e){let{text:s,rowId:t,expandedRowId:l,setExpandedRowId:n}=e,i=s||"",c=i.length>50,o=l===t,d=c?"".concat(i.substring(0,50)):i,u=(0,a.useRef)(null);return(0,r.jsxs)("div",{className:"truncated-details relative max-w-full flex items-center",children:[(0,r.jsx)("span",{className:"truncate",children:d}),c&&(0,r.jsx)("button",{ref:u,type:"button",onClick:e=>{e.preventDefault(),e.stopPropagation(),n(o?null:t)},className:"text-blue-600 hover:text-blue-800 font-medium ml-1 flex-shrink-0","data-button-type":"show-more-less",children:o?"... show less":"... show more"})]})}function X(e){let{refreshInterval:s,setLoading:t,refreshDataRef:l}=e,[n,o]=(0,a.useState)([]),[x,j]=(0,a.useState)({key:null,direction:"ascending"}),[f,g]=(0,a.useState)(!1),[b,v]=(0,a.useState)(!0),[N,w]=(0,a.useState)(1),[y,k]=(0,a.useState)(10),C=a.useCallback(async()=>{g(!0),t(!0);try{let{pools:e=[]}=await p.default.get(m.vs,[{}])||{};o(e),v(!1)}catch(e){console.error("Error fetching pools data:",e),o([]),v(!1)}finally{g(!1),t(!1)}},[t]);a.useEffect(()=>{l&&(l.current=C)},[l,C]),(0,a.useEffect)(()=>{o([]);let e=!0;C();let t=setInterval(()=>{e&&C()},s);return()=>{e=!1,clearInterval(t)}},[s,C]);let S=e=>{let s="ascending";x.key===e&&"ascending"===x.direction&&(s="descending"),j({key:e,direction:s})},L=e=>x.key===e?"ascending"===x.direction?" ↑":" ↓":"",E=a.useMemo(()=>x.key?[...n].sort((e,s)=>e[x.key]<s[x.key]?"ascending"===x.direction?-1:1:e[x.key]>s[x.key]?"ascending"===x.direction?1:-1:0):n,[n,x]),D=Math.ceil(E.length/y),R=(N-1)*y,F=R+y,M=E.slice(R,F),I=e=>{if(!e||!e.replica_info||0===e.replica_info.length)return"0 (target: 0)";let s=e.replica_info.filter(e=>"READY"===e.status).length,t=e.target_num_replicas||0;return"".concat(s," (target: ").concat(t,")")},A=e=>{let{jobCounts:s}=e;return(0,r.jsx)(h.x9,{jobCounts:s,getStatusStyle:_.Cl})},z=e=>{let{replicaInfo:s}=e;return(0,r.jsx)(h.Kl,{replicaInfo:s})};return(0,r.jsxs)(d.Zb,{children:[(0,r.jsx)("div",{className:"overflow-x-auto rounded-lg",children:(0,r.jsxs)(u.iA,{className:"min-w-full table-fixed",children:[(0,r.jsx)(u.xD,{children:(0,r.jsxs)(u.SC,{children:[(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap w-32",onClick:()=>S("name"),children:["Pool",L("name")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap w-40",onClick:()=>S("job_counts"),children:["Jobs",L("job_counts")]}),(0,r.jsx)(u.ss,{className:"whitespace-nowrap w-20",children:"Workers"}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap w-36",onClick:()=>S("requested_resources_str"),children:["Worker Details",L("requested_resources_str")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap w-40",onClick:()=>S("requested_resources_str"),children:["Worker Resources",L("requested_resources_str")]})]})}),(0,r.jsx)(u.RM,{children:f&&b?(0,r.jsx)(u.SC,{children:(0,r.jsx)(u.pj,{colSpan:5,className:"text-center py-6 text-gray-500",children:(0,r.jsxs)("div",{className:"flex justify-center items-center",children:[(0,r.jsx)(c.Z,{size:20,className:"mr-2"}),(0,r.jsx)("span",{children:"Loading..."})]})})}):M.length>0?M.map(e=>(0,r.jsxs)(u.SC,{children:[(0,r.jsx)(u.pj,{children:(0,r.jsx)(i(),{href:"/jobs/pools/".concat(e.name),className:"text-blue-600 hover:text-blue-800",children:e.name})}),(0,r.jsx)(u.pj,{children:(0,r.jsx)(A,{jobCounts:e.jobCounts})}),(0,r.jsx)(u.pj,{children:I(e)}),(0,r.jsx)(u.pj,{children:(0,r.jsx)(z,{replicaInfo:e.replica_info})}),(0,r.jsx)(u.pj,{children:e.requested_resources_str||"-"})]},e.name)):(0,r.jsx)(u.SC,{children:(0,r.jsx)(u.pj,{colSpan:5,className:"text-center py-6 text-gray-500",children:"No pools found"})})})]})}),M.length>0&&D>1&&(0,r.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-t border-gray-200",children:[(0,r.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,r.jsx)("span",{className:"text-sm text-gray-700",children:"Rows per page:"}),(0,r.jsxs)("select",{value:y,onChange:e=>{k(parseInt(e.target.value,10)),w(1)},className:"border border-gray-300 rounded px-2 py-1 text-sm",children:[(0,r.jsx)("option",{value:5,children:"5"}),(0,r.jsx)("option",{value:10,children:"10"}),(0,r.jsx)("option",{value:25,children:"25"}),(0,r.jsx)("option",{value:50,children:"50"})]})]}),(0,r.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,r.jsxs)("span",{className:"text-sm text-gray-700",children:[R+1,"-",Math.min(F,E.length)," of"," ",E.length]}),(0,r.jsx)("button",{onClick:()=>{w(e=>Math.max(e-1,1))},disabled:1===N,className:"px-2 py-1 text-sm border border-gray-300 rounded disabled:opacity-50 disabled:cursor-not-allowed hover:bg-gray-50",children:"Previous"}),(0,r.jsx)("button",{onClick:()=>{w(e=>Math.min(e+1,D))},disabled:N===D,className:"px-2 py-1 text-sm border border-gray-300 rounded disabled:opacity-50 disabled:cursor-not-allowed hover:bg-gray-50",children:"Next"})]})]})]})}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3785],{42557:function(e,s,r){r.d(s,{I:function(){return n}});var t=r(85893),a=r(67294),l=r(32350);let n=a.forwardRef((e,s)=>{let{className:r,type:a,...n}=e;return(0,t.jsx)("input",{type:a,className:(0,l.cn)("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",r),ref:s,...n})});n.displayName="Input"},29749:function(e,s,r){r.d(s,{_:function(){return d}});var t=r(85893),a=r(67294),l=r(75320),n=a.forwardRef((e,s)=>(0,t.jsx)(l.WV.label,{...e,ref:s,onMouseDown:s=>{s.target.closest("button, input, select, textarea")||(e.onMouseDown?.(s),!s.defaultPrevented&&s.detail>1&&s.preventDefault())}}));n.displayName="Label";var i=r(12003),o=r(32350);let c=(0,i.j)("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),d=a.forwardRef((e,s)=>{let{className:r,...a}=e;return(0,t.jsx)(n,{ref:s,className:(0,o.cn)(c(),r),...a})});d.displayName=n.displayName},33785:function(e,s,r){r.r(s),r.d(s,{NewWorkspace:function(){return b}});var t=r(85893),a=r(67294),l=r(11163),n=r(41664),i=r.n(n),o=r(5152),c=r.n(o),d=r(17324),u=r(30803),m=r(42557),f=r(29749),p=r(37673);let x=c()(()=>Promise.all([r.e(616),r.e(5739),r.e(7411),r.e(1272),r.e(
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3785],{42557:function(e,s,r){r.d(s,{I:function(){return n}});var t=r(85893),a=r(67294),l=r(32350);let n=a.forwardRef((e,s)=>{let{className:r,type:a,...n}=e;return(0,t.jsx)("input",{type:a,className:(0,l.cn)("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",r),ref:s,...n})});n.displayName="Input"},29749:function(e,s,r){r.d(s,{_:function(){return d}});var t=r(85893),a=r(67294),l=r(75320),n=a.forwardRef((e,s)=>(0,t.jsx)(l.WV.label,{...e,ref:s,onMouseDown:s=>{s.target.closest("button, input, select, textarea")||(e.onMouseDown?.(s),!s.defaultPrevented&&s.detail>1&&s.preventDefault())}}));n.displayName="Label";var i=r(12003),o=r(32350);let c=(0,i.j)("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),d=a.forwardRef((e,s)=>{let{className:r,...a}=e;return(0,t.jsx)(n,{ref:s,className:(0,o.cn)(c(),r),...a})});d.displayName=n.displayName},33785:function(e,s,r){r.r(s),r.d(s,{NewWorkspace:function(){return b}});var t=r(85893),a=r(67294),l=r(11163),n=r(41664),i=r.n(n),o=r(5152),c=r.n(o),d=r(17324),u=r(30803),m=r(42557),f=r(29749),p=r(37673);let x=c()(()=>Promise.all([r.e(616),r.e(5739),r.e(7411),r.e(1272),r.e(7205),r.e(6989),r.e(3850),r.e(8969),r.e(6135),r.e(1121),r.e(6601),r.e(3015),r.e(1141)]).then(r.bind(r,11141)).then(e=>e.WorkspaceEditor),{loadableGenerated:{webpack:()=>[11141]},ssr:!1});function b(){(0,l.useRouter)();let[e,s]=(0,a.useState)(""),[r,n]=(0,a.useState)(!1),[o,c]=(0,a.useState)({}),[b,h]=(0,a.useState)(!0);(0,a.useEffect)(()=>{v()},[]);let v=async()=>{try{let e=await (0,d.fX)();c(e)}catch(e){console.error("Failed to fetch existing workspaces:",e)}finally{h(!1)}},k=()=>{e.trim()&&!y&&n(!0)},y=e.trim()&&o.hasOwnProperty(e.trim()),w=e.trim()&&!y;return r?(0,t.jsx)(x,{workspaceName:e,isNewWorkspace:!0}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"flex items-center justify-between mb-4 h-5",children:(0,t.jsxs)("div",{className:"text-base flex items-center",children:[(0,t.jsx)(i(),{href:"/workspaces",className:"text-sky-blue hover:underline",children:"Workspaces"}),(0,t.jsx)("span",{className:"mx-2 text-gray-500",children:"›"}),(0,t.jsx)("span",{className:"text-sky-blue",children:"New Workspace"})]})}),(0,t.jsxs)(p.Zb,{className:"max-w-md",children:[(0,t.jsx)(p.Ol,{children:(0,t.jsx)(p.ll,{className:"text-base font-normal",children:"Create New Workspace"})}),(0,t.jsxs)(p.aY,{className:"space-y-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(f._,{htmlFor:"workspace-name",className:"text-sm font-normal",children:"Workspace name"}),(0,t.jsx)(m.I,{id:"workspace-name",value:e,onChange:e=>s(e.target.value),placeholder:"Enter workspace name",autoFocus:!0,onKeyPress:e=>{"Enter"===e.key&&w&&k()}}),y?(0,t.jsxs)("p",{className:"text-sm text-gray-500 mt-1",children:['Workspace "',e,'" already exists.'," ",(0,t.jsx)(i(),{href:"/workspaces/".concat(e),className:"text-blue-600 hover:underline",children:"View the workspace"})]}):(0,t.jsx)("p",{className:"text-sm text-gray-500 mt-1",children:"Choose a unique name for your workspace"})]}),(0,t.jsx)(u.z,{onClick:k,disabled:!w||b,className:"w-full bg-sky-600 hover:bg-sky-700 text-white disabled:bg-gray-300 disabled:text-gray-500",children:b?"Loading...":"Next: Configure Workspace"})]})]})]})}},12003:function(e,s,r){r.d(s,{j:function(){return n}});var t=r(90512);let a=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,l=t.W,n=(e,s)=>r=>{var t;if((null==s?void 0:s.variants)==null)return l(e,null==r?void 0:r.class,null==r?void 0:r.className);let{variants:n,defaultVariants:i}=s,o=Object.keys(n).map(e=>{let s=null==r?void 0:r[e],t=null==i?void 0:i[e];if(null===s)return null;let l=a(s)||a(t);return n[e][l]}),c=r&&Object.entries(r).reduce((e,s)=>{let[r,t]=s;return void 0===t||(e[r]=t),e},{});return l(e,o,null==s?void 0:null===(t=s.compoundVariants)||void 0===t?void 0:t.reduce((e,s)=>{let{class:r,className:t,...a}=s;return Object.entries(a).every(e=>{let[s,r]=e;return Array.isArray(r)?r.includes({...i,...c}[s]):({...i,...c})[s]===r})?[...e,r,t]:e},[]),null==r?void 0:r.class,null==r?void 0:r.className)}}}]);
|
|
@@ -1,9 +1,14 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4783,7325],{27325:function(e,s,t){t.d(s,{Z:function(){return r}});/**
|
|
2
2
|
* @license lucide-react v0.407.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
5
5
|
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
-
*/let r=(0,t(60998).Z)("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]])},
|
|
6
|
+
*/let r=(0,t(60998).Z)("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]])},16826:function(e,s,t){t.d(s,{Z:function(){return r}});/**
|
|
7
|
+
* @license lucide-react v0.407.0 - ISC
|
|
8
|
+
*
|
|
9
|
+
* This source code is licensed under the ISC license.
|
|
10
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
11
|
+
*/let r=(0,t(60998).Z)("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]])},6521:function(e,s,t){t.d(s,{Z:function(){return r}});/**
|
|
7
12
|
* @license lucide-react v0.407.0 - ISC
|
|
8
13
|
*
|
|
9
14
|
* This source code is licensed under the ISC license.
|
|
@@ -48,4 +53,4 @@
|
|
|
48
53
|
*
|
|
49
54
|
* This source code is licensed under the ISC license.
|
|
50
55
|
* See the LICENSE file in the root directory of this source tree.
|
|
51
|
-
*/let j=(0,t(60998).Z)("SquarePen",[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]]);var v=t(47603),y=t(23001),k=t(23015),w=t(6378),b=t(51214),N=t(36856),C=t(47145),M=t(94545),Z=t(93225),L=t(41664),S=t.n(L);let z=e=>{let{isPrivate:s}=e;return s?(0,r.jsx)("span",{className:"inline-flex items-center px-2 py-1 rounded-full text-xs font-medium bg-gray-100 text-gray-700 border border-gray-300",children:"Private"}):(0,r.jsx)("span",{className:"inline-flex items-center px-2 py-1 rounded-full text-xs font-medium bg-green-100 text-green-700 border border-green-300",children:"Public"})},E=b.nb.REFRESH_INTERVAL;function D(){let[e,s]=(0,a.useState)([]),[t,b]=(0,a.useState)({runningClusters:0,totalClusters:0,managedJobs:0}),[L,D]=(0,a.useState)(!0),[R,O]=(0,a.useState)(null),[J,P]=(0,a.useState)({key:"name",direction:"asc"}),[q,F]=(0,a.useState)(""),[T,W]=(0,a.useState)(!1),[A,V]=(0,a.useState)({confirmOpen:!1,workspaceToDelete:null,deleting:!1,error:null}),[X,B]=(0,a.useState)({open:!1,message:"",userName:""}),[H,I]=(0,a.useState)(null),[U,_]=(0,a.useState)(!1),[K,G]=(0,a.useState)(null),[$,Q]=(0,a.useState)(null),Y=(0,n.useRouter)(),ee=(0,y.X)(),es=async()=>{if(H&&Date.now()-H.timestamp<3e5)return H;_(!0);try{let e=await C.x.get("/users/role");if(!e.ok){let s=await e.json();throw Error(s.detail||"Failed to get user role")}let s=await e.json(),t={role:s.role,name:s.name,timestamp:Date.now()};return I(t),_(!1),t}catch(e){throw _(!1),e}},et=async(e,s)=>{try{let t=await es();if("admin"!==t.role)return B({open:!0,message:e,userName:t.name.toLowerCase()}),!1;return s(),!0}catch(e){return console.error("Failed to check user role:",e),B({open:!0,message:"Error: ".concat(e.message),userName:""}),!1}},er=async function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];e&&D(!0);try{let[e,t,r]=await Promise.all([w.default.get(c.fX),w.default.get(l.getClusters),w.default.get(i.getManagedJobs,[{allUsers:!0}])]);O(e);let a=Object.keys(e),n=await Promise.all(a.map(e=>w.default.get(c.yz,[e]))),o=Object.fromEntries(a.map((e,s)=>[e,n[s]]));Object.fromEntries(t.map(e=>[e.cluster,e.workspace||"default"]));let d={};a.forEach(e=>{d[e]={name:e,totalClusterCount:0,runningClusterCount:0,managedJobsCount:0,clouds:new Set}});let u=0;t.forEach(e=>{let s=e.workspace||"default";d[s]||(d[s]={name:s,totalClusterCount:0,runningClusterCount:0,managedJobsCount:0,clouds:new Set}),d[s].totalClusterCount++,("RUNNING"===e.status||"LAUNCHING"===e.status)&&(d[s].runningClusterCount++,u++),e.cloud&&d[s].clouds.add(e.cloud)});let h=r.jobs||[],m=new Set(k.statusGroups.active),x=0;h.forEach(e=>{let s=e.workspace||"default";d[s]&&m.has(e.status)&&d[s].managedJobsCount++,m.has(e.status)&&x++});let p=Object.values(d).filter(e=>a.includes(e.name)).map(e=>({...e,clouds:Array.isArray(o[e.name])?o[e.name]:[]})).sort((e,s)=>e.name.localeCompare(s.name));s(p),b({runningClusters:u,totalClusters:t.length,managedJobs:x})}catch(e){console.error("Error fetching workspace data:",e),s([]),b({runningClusters:0,totalClusters:0,managedJobs:0})}e&&D(!1)};(0,a.useEffect)(()=>{(async()=>{await N.ZP.preloadForPage("workspaces"),er(!0)})();let e=setInterval(()=>{er(!1)},E);return()=>clearInterval(e)},[]);let ea=e=>{let s="asc";J.key===e&&"asc"===J.direction&&(s="desc"),P({key:e,direction:s})},en=e=>J.key===e?"asc"===J.direction?" ↑":" ↓":"",el=a.useMemo(()=>{if(!e)return[];let s=e;if(q&&""!==q.trim()){let t=q.toLowerCase().trim();s=e.filter(e=>!!(e.name.toLowerCase().includes(t)||e.clouds.some(e=>{let s=Z.Z2[e.toLowerCase()]||e;return e.toLowerCase().includes(t)||s.toLowerCase().includes(t)}))||!!(!0===((null==R?void 0:R[e.name])||{}).private?"private":"public").includes(t))}return(0,M.R0)(s,J.key,J.direction)},[e,J,q,R]),ei=e=>{et("cannot delete workspace",()=>{V({confirmOpen:!0,workspaceToDelete:e,deleting:!1,error:null})})},ec=async()=>{if(A.workspaceToDelete){V(e=>({...e,deleting:!0,error:null}));try{await (0,c.zl)(A.workspaceToDelete),Q('Workspace "'.concat(A.workspaceToDelete,'" deleted successfully!')),V({confirmOpen:!1,workspaceToDelete:null,deleting:!1,error:null}),w.default.invalidate(c.fX),await er(!0)}catch(e){console.error("Error deleting workspace:",e),V(e=>({...e,deleting:!1,error:null})),G(e)}}},eo=()=>{V({confirmOpen:!1,workspaceToDelete:null,deleting:!1,error:null})},ed=e=>{et("cannot edit workspace",()=>{Y.push("/workspaces/".concat(e))})};return L&&0===e.length?(0,r.jsxs)("div",{className:"flex justify-center items-center h-64",children:[(0,r.jsx)(h.Z,{}),(0,r.jsx)("span",{className:"ml-2 text-gray-500",children:"Loading workspaces..."})]}):(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"fixed top-20 right-4 z-[9999] max-w-md",children:[$&&(0,r.jsx)("div",{className:"bg-green-50 border border-green-200 rounded p-4 mb-4",children:(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsxs)("div",{className:"flex items-center",children:[(0,r.jsx)("div",{className:"flex-shrink-0",children:(0,r.jsx)("svg",{className:"h-5 w-5 text-green-400",viewBox:"0 0 20 20",fill:"currentColor",children:(0,r.jsx)("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z",clipRule:"evenodd"})})}),(0,r.jsx)("div",{className:"ml-3",children:(0,r.jsx)("p",{className:"text-sm font-medium text-green-800",children:$})})]}),(0,r.jsx)("div",{className:"ml-auto pl-3",children:(0,r.jsxs)("button",{type:"button",onClick:()=>Q(null),className:"inline-flex rounded-md bg-green-50 p-1.5 text-green-500 hover:bg-green-100",children:[(0,r.jsx)("span",{className:"sr-only",children:"Dismiss"}),(0,r.jsx)("svg",{className:"h-5 w-5",viewBox:"0 0 20 20",fill:"currentColor",children:(0,r.jsx)("path",{fillRule:"evenodd",d:"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z",clipRule:"evenodd"})})]})})]})}),(0,r.jsx)(p.X,{error:K,title:"Error",onDismiss:()=>G(null)})]}),(0,r.jsxs)("div",{className:"flex items-center justify-between mb-2 h-5",children:[(0,r.jsx)("div",{className:"text-base flex items-center",children:(0,r.jsx)("span",{className:"text-sky-blue leading-none",children:"Workspaces"})}),(0,r.jsxs)("div",{className:"flex items-center",children:[L&&(0,r.jsxs)("div",{className:"flex items-center mr-2",children:[(0,r.jsx)(h.Z,{size:15,className:"mt-0"}),(0,r.jsx)("span",{className:"ml-2 text-gray-500 text-xs",children:"Refreshing..."})]}),(0,r.jsxs)("button",{onClick:()=>{w.default.invalidate(c.fX),w.default.invalidate(l.getClusters),w.default.invalidate(i.getManagedJobs,[{allUsers:!0}]),w.default.invalidateFunction(c.yz),er(!0)},disabled:L,className:"text-sky-blue hover:text-sky-blue-bright flex items-center",children:[(0,r.jsx)(f.Z,{className:"h-4 w-4 mr-1.5"}),!ee&&(0,r.jsx)("span",{children:"Refresh"})]})]})]}),(0,r.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,r.jsxs)("div",{className:"relative flex-1 max-w-md",children:[(0,r.jsx)("input",{type:"text",placeholder:"Filter workspaces",value:q,onChange:e=>F(e.target.value),className:"h-8 w-full px-3 pr-8 text-sm border border-gray-300 rounded-md focus:ring-1 focus:ring-sky-500 focus:border-sky-500 outline-none"}),q&&(0,r.jsx)("button",{onClick:()=>F(""),className:"absolute right-2 top-1/2 transform -translate-y-1/2 text-gray-400 hover:text-gray-600",title:"Clear search",children:(0,r.jsx)("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,r.jsx)("button",{onClick:()=>{et("cannot create workspace",()=>{Y.push("/workspace/new")})},disabled:U,className:"ml-4 bg-sky-600 hover:bg-sky-700 text-white flex items-center rounded-md px-3 py-1 text-sm font-medium transition-colors duration-200",title:"Create Workspace",children:U?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(h.Z,{size:12,className:"mr-2"}),(0,r.jsx)("span",{children:"Create Workspace"})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(g.Z,{className:"h-4 w-4 mr-2"}),"Create Workspace"]})})]}),0!==e.length||L?(0,r.jsx)(o.Zb,{children:(0,r.jsx)("div",{className:"overflow-x-auto rounded-lg",children:(0,r.jsxs)(d.iA,{className:"min-w-full",children:[(0,r.jsx)(d.xD,{children:(0,r.jsxs)(d.SC,{children:[(0,r.jsxs)(d.ss,{className:"sortable whitespace-nowrap cursor-pointer hover:bg-gray-50",onClick:()=>ea("name"),children:["Workspace",en("name")]}),(0,r.jsxs)(d.ss,{className:"sortable whitespace-nowrap cursor-pointer hover:bg-gray-50",onClick:()=>ea("totalClusterCount"),children:["Clusters ",en("totalClusterCount")]}),(0,r.jsxs)(d.ss,{className:"sortable whitespace-nowrap cursor-pointer hover:bg-gray-50",onClick:()=>ea("managedJobsCount"),children:["Jobs",en("managedJobsCount")]}),(0,r.jsx)(d.ss,{className:"whitespace-nowrap",children:"Enabled infra"}),(0,r.jsx)(d.ss,{className:"whitespace-nowrap",children:"Actions"})]})}),(0,r.jsx)(d.RM,{children:L&&0===el.length?(0,r.jsx)(d.SC,{children:(0,r.jsx)(d.pj,{colSpan:5,className:"text-center py-6 text-gray-500",children:(0,r.jsxs)("div",{className:"flex justify-center items-center",children:[(0,r.jsx)(h.Z,{size:20,className:"mr-2"}),(0,r.jsx)("span",{children:"Loading..."})]})})}):el.length>0?el.map(e=>{let s=!0===((null==R?void 0:R[e.name])||{}).private;return(0,r.jsxs)(d.SC,{className:"hover:bg-gray-50",children:[(0,r.jsxs)(d.pj,{className:"",children:[(0,r.jsx)("button",{onClick:()=>ed(e.name),disabled:U,className:"text-blue-600 hover:text-blue-600 hover:underline text-left",children:e.name}),(0,r.jsx)("span",{className:"ml-2",children:(0,r.jsx)(z,{isPrivate:s})})]}),(0,r.jsx)(d.pj,{children:(0,r.jsxs)("button",{onClick:()=>{Y.push({pathname:"/clusters",query:{workspace:e.name}})},className:"text-gray-700 hover:text-blue-600 hover:underline",children:[e.runningClusterCount," running,"," ",e.totalClusterCount," total"]})}),(0,r.jsx)(d.pj,{children:(0,r.jsx)("button",{onClick:()=>{Y.push({pathname:"/jobs",query:{workspace:e.name}})},className:"text-gray-700 hover:text-blue-600 hover:underline",children:e.managedJobsCount})}),(0,r.jsx)(d.pj,{children:e.clouds.length>0?[...e.clouds].sort().map((s,t)=>{let a=Z.Z2[s.toLowerCase()]||s;return(0,r.jsxs)("span",{children:[(0,r.jsx)(S(),{href:"/infra",className:"inline-flex items-center px-2 py-1 rounded text-sm bg-sky-100 text-sky-800 hover:bg-sky-200 hover:text-sky-900 transition-colors duration-200",children:a}),t<e.clouds.length-1&&" "]},s)}):(0,r.jsx)("span",{className:"text-gray-500 text-sm",children:"-"})}),(0,r.jsxs)(d.pj,{children:[(0,r.jsx)(u.z,{variant:"ghost",size:"sm",onClick:()=>ed(e.name),disabled:U,className:"text-gray-600 hover:text-gray-800 mr-1",children:(0,r.jsx)(j,{className:"w-4 h-4"})}),(0,r.jsx)(u.z,{variant:"ghost",size:"sm",onClick:()=>ei(e.name),disabled:"default"===e.name||U,title:"default"===e.name?"Cannot delete default workspace":"Delete workspace",className:"text-red-600 hover:text-red-700 hover:bg-red-50",children:(0,r.jsx)(v.Z,{className:"w-4 h-4"})})]})]},e.name)}):(0,r.jsx)(d.SC,{children:(0,r.jsx)(d.pj,{colSpan:5,className:"text-center py-6 text-gray-500",children:"No workspaces found"})})})]})})}):(0,r.jsxs)("div",{className:"text-center py-10",children:[(0,r.jsx)("p",{className:"text-lg text-gray-600",children:"No workspaces found."}),(0,r.jsx)("p",{className:"text-sm text-gray-500 mt-2",children:"Create a cluster to see its workspace here."})]}),R&&(0,r.jsx)(x.Vq,{open:T,onOpenChange:W,children:(0,r.jsxs)(x.cZ,{className:"sm:max-w-md md:max-w-lg lg:max-w-xl xl:max-w-2xl w-full max-h-[90vh] flex flex-col",children:[(0,r.jsx)(x.fK,{children:(0,r.jsx)(x.$N,{className:"pr-10",children:"All Workspaces Configuration"})}),(0,r.jsx)("div",{className:"flex-grow overflow-y-auto py-4",children:(0,r.jsx)("pre",{style:{backgroundColor:"#f5f5f5",padding:"16px",borderRadius:"8px",overflowX:"auto",whiteSpace:"pre",wordBreak:"normal"},children:m.ZP.dump(R,{indent:2})})})]})}),(0,r.jsx)(x.Vq,{open:X.open,onOpenChange:e=>{B(s=>({...s,open:e})),e||G(null)},children:(0,r.jsxs)(x.cZ,{className:"sm:max-w-md transition-all duration-200 ease-in-out",children:[(0,r.jsxs)(x.fK,{children:[(0,r.jsx)(x.$N,{children:"Permission Denied"}),(0,r.jsx)(x.Be,{children:U?(0,r.jsxs)("div",{className:"flex items-center py-2",children:[(0,r.jsx)(h.Z,{size:16,className:"mr-2"}),(0,r.jsx)("span",{children:"Checking permissions..."})]}):(0,r.jsx)(r.Fragment,{children:X.userName?(0,r.jsxs)(r.Fragment,{children:[X.userName," is logged in as non-admin and ",X.message,"."]}):X.message})})]}),(0,r.jsx)(x.cN,{children:(0,r.jsx)(u.z,{variant:"outline",onClick:()=>B(e=>({...e,open:!1})),disabled:U,children:"OK"})})]})}),(0,r.jsx)(x.Vq,{open:A.confirmOpen,onOpenChange:e=>{e||(eo(),G(null))},children:(0,r.jsxs)(x.cZ,{className:"sm:max-w-md",children:[(0,r.jsxs)(x.fK,{children:[(0,r.jsx)(x.$N,{children:"Delete Workspace"}),(0,r.jsxs)(x.Be,{children:['Are you sure you want to delete workspace "',A.workspaceToDelete,'"? This action cannot be undone.']})]}),(0,r.jsxs)(x.cN,{children:[(0,r.jsx)(u.z,{variant:"outline",onClick:eo,disabled:A.deleting,children:"Cancel"}),(0,r.jsx)(u.z,{variant:"destructive",onClick:ec,disabled:A.deleting,children:A.deleting?"Deleting...":"Delete"})]})]})})]})}},23001:function(e,s,t){t.d(s,{X:function(){return a}});var r=t(67294);function a(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:768,[s,t]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{let s=()=>{t(window.innerWidth<e)};return s(),window.addEventListener("resize",s),()=>{window.removeEventListener("resize",s)}},[e]),s}}}]);
|
|
56
|
+
*/let j=(0,t(60998).Z)("SquarePen",[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]]);var y=t(47603),v=t(23001),k=t(23015),w=t(6378),b=t(51214),N=t(36856),C=t(47145),Z=t(94545),M=t(93225),L=t(41664),S=t.n(L);let z=e=>{let{isPrivate:s}=e;return s?(0,r.jsx)("span",{className:"inline-flex items-center px-2 py-1 rounded-full text-xs font-medium bg-gray-100 text-gray-700 border border-gray-300",children:"Private"}):(0,r.jsx)("span",{className:"inline-flex items-center px-2 py-1 rounded-full text-xs font-medium bg-green-100 text-green-700 border border-green-300",children:"Public"})},E=b.nb.REFRESH_INTERVAL;function D(){let[e,s]=(0,a.useState)([]),[t,b]=(0,a.useState)({runningClusters:0,totalClusters:0,managedJobs:0}),[L,D]=(0,a.useState)(!0),[R,O]=(0,a.useState)(null),[q,J]=(0,a.useState)({key:"name",direction:"asc"}),[P,F]=(0,a.useState)(""),[T,W]=(0,a.useState)(!1),[A,H]=(0,a.useState)({confirmOpen:!1,workspaceToDelete:null,deleting:!1,error:null}),[V,X]=(0,a.useState)({open:!1,message:"",userName:""}),[B,I]=(0,a.useState)(null),[U,_]=(0,a.useState)(!1),[K,G]=(0,a.useState)(null),[$,Q]=(0,a.useState)(null),Y=(0,n.useRouter)(),ee=(0,v.X)(),es=async()=>{if(B&&Date.now()-B.timestamp<3e5)return B;_(!0);try{let e=await C.x.get("/users/role");if(!e.ok){let s=await e.json();throw Error(s.detail||"Failed to get user role")}let s=await e.json(),t={role:s.role,name:s.name,timestamp:Date.now()};return I(t),_(!1),t}catch(e){throw _(!1),e}},et=async(e,s)=>{try{let t=await es();if("admin"!==t.role)return X({open:!0,message:e,userName:t.name.toLowerCase()}),!1;return s(),!0}catch(e){return console.error("Failed to check user role:",e),X({open:!0,message:"Error: ".concat(e.message),userName:""}),!1}},er=async function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];e&&D(!0);try{let[e,t,r]=await Promise.all([w.default.get(c.fX),w.default.get(l.getClusters),w.default.get(i.getManagedJobs,[{allUsers:!0}])]);O(e);let a=Object.keys(e),n=await Promise.all(a.map(e=>w.default.get(c.yz,[e]))),o=Object.fromEntries(a.map((e,s)=>[e,n[s]]));Object.fromEntries(t.map(e=>[e.cluster,e.workspace||"default"]));let d={};a.forEach(e=>{d[e]={name:e,totalClusterCount:0,runningClusterCount:0,managedJobsCount:0,clouds:new Set}});let u=0;t.forEach(e=>{let s=e.workspace||"default";d[s]||(d[s]={name:s,totalClusterCount:0,runningClusterCount:0,managedJobsCount:0,clouds:new Set}),d[s].totalClusterCount++,("RUNNING"===e.status||"LAUNCHING"===e.status)&&(d[s].runningClusterCount++,u++),e.cloud&&d[s].clouds.add(e.cloud)});let h=r.jobs||[],m=new Set(k.statusGroups.active),x=0;h.forEach(e=>{let s=e.workspace||"default";d[s]&&m.has(e.status)&&d[s].managedJobsCount++,m.has(e.status)&&x++});let p=Object.values(d).filter(e=>a.includes(e.name)).map(e=>({...e,clouds:Array.isArray(o[e.name])?o[e.name]:[]})).sort((e,s)=>e.name.localeCompare(s.name));s(p),b({runningClusters:u,totalClusters:t.length,managedJobs:x})}catch(e){console.error("Error fetching workspace data:",e),s([]),b({runningClusters:0,totalClusters:0,managedJobs:0})}e&&D(!1)};(0,a.useEffect)(()=>{(async()=>{await N.ZP.preloadForPage("workspaces"),er(!0)})();let e=setInterval(()=>{er(!1)},E);return()=>clearInterval(e)},[]);let ea=e=>{let s="asc";q.key===e&&"asc"===q.direction&&(s="desc"),J({key:e,direction:s})},en=e=>q.key===e?"asc"===q.direction?" ↑":" ↓":"",el=a.useMemo(()=>{if(!e)return[];let s=e;if(P&&""!==P.trim()){let t=P.toLowerCase().trim();s=e.filter(e=>!!(e.name.toLowerCase().includes(t)||e.clouds.some(e=>{let s=M.Z2[e.toLowerCase()]||e;return e.toLowerCase().includes(t)||s.toLowerCase().includes(t)}))||!!(!0===((null==R?void 0:R[e.name])||{}).private?"private":"public").includes(t))}return(0,Z.R0)(s,q.key,q.direction)},[e,q,P,R]),ei=e=>{et("cannot delete workspace",()=>{H({confirmOpen:!0,workspaceToDelete:e,deleting:!1,error:null})})},ec=async()=>{if(A.workspaceToDelete){H(e=>({...e,deleting:!0,error:null}));try{await (0,c.zl)(A.workspaceToDelete),Q('Workspace "'.concat(A.workspaceToDelete,'" deleted successfully!')),H({confirmOpen:!1,workspaceToDelete:null,deleting:!1,error:null}),w.default.invalidate(c.fX),await er(!0)}catch(e){console.error("Error deleting workspace:",e),H(e=>({...e,deleting:!1,error:null})),G(e)}}},eo=()=>{H({confirmOpen:!1,workspaceToDelete:null,deleting:!1,error:null})},ed=e=>{et("cannot edit workspace",()=>{Y.push("/workspaces/".concat(e))})};return L&&0===e.length?(0,r.jsxs)("div",{className:"flex justify-center items-center h-64",children:[(0,r.jsx)(h.Z,{}),(0,r.jsx)("span",{className:"ml-2 text-gray-500",children:"Loading workspaces..."})]}):(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"fixed top-20 right-4 z-[9999] max-w-md",children:[$&&(0,r.jsx)("div",{className:"bg-green-50 border border-green-200 rounded p-4 mb-4",children:(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsxs)("div",{className:"flex items-center",children:[(0,r.jsx)("div",{className:"flex-shrink-0",children:(0,r.jsx)("svg",{className:"h-5 w-5 text-green-400",viewBox:"0 0 20 20",fill:"currentColor",children:(0,r.jsx)("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z",clipRule:"evenodd"})})}),(0,r.jsx)("div",{className:"ml-3",children:(0,r.jsx)("p",{className:"text-sm font-medium text-green-800",children:$})})]}),(0,r.jsx)("div",{className:"ml-auto pl-3",children:(0,r.jsxs)("button",{type:"button",onClick:()=>Q(null),className:"inline-flex rounded-md bg-green-50 p-1.5 text-green-500 hover:bg-green-100",children:[(0,r.jsx)("span",{className:"sr-only",children:"Dismiss"}),(0,r.jsx)("svg",{className:"h-5 w-5",viewBox:"0 0 20 20",fill:"currentColor",children:(0,r.jsx)("path",{fillRule:"evenodd",d:"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z",clipRule:"evenodd"})})]})})]})}),(0,r.jsx)(p.X,{error:K,title:"Error",onDismiss:()=>G(null)})]}),(0,r.jsxs)("div",{className:"flex items-center justify-between mb-2 h-5",children:[(0,r.jsx)("div",{className:"text-base flex items-center",children:(0,r.jsx)("span",{className:"text-sky-blue leading-none",children:"Workspaces"})}),(0,r.jsxs)("div",{className:"flex items-center",children:[L&&(0,r.jsxs)("div",{className:"flex items-center mr-2",children:[(0,r.jsx)(h.Z,{size:15,className:"mt-0"}),(0,r.jsx)("span",{className:"ml-2 text-gray-500 text-xs",children:"Refreshing..."})]}),(0,r.jsxs)("button",{onClick:()=>{w.default.invalidate(c.fX),w.default.invalidate(l.getClusters),w.default.invalidate(i.getManagedJobs,[{allUsers:!0}]),w.default.invalidateFunction(c.yz),er(!0)},disabled:L,className:"text-sky-blue hover:text-sky-blue-bright flex items-center",children:[(0,r.jsx)(f.Z,{className:"h-4 w-4 mr-1.5"}),!ee&&(0,r.jsx)("span",{children:"Refresh"})]})]})]}),(0,r.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,r.jsxs)("div",{className:"relative flex-1 max-w-md",children:[(0,r.jsx)("input",{type:"text",placeholder:"Filter workspaces",value:P,onChange:e=>F(e.target.value),className:"h-8 w-full px-3 pr-8 text-sm border border-gray-300 rounded-md focus:ring-1 focus:ring-sky-500 focus:border-sky-500 outline-none"}),P&&(0,r.jsx)("button",{onClick:()=>F(""),className:"absolute right-2 top-1/2 transform -translate-y-1/2 text-gray-400 hover:text-gray-600",title:"Clear search",children:(0,r.jsx)("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,r.jsx)("button",{onClick:()=>{et("cannot create workspace",()=>{Y.push("/workspace/new")})},disabled:U,className:"ml-4 bg-sky-600 hover:bg-sky-700 text-white flex items-center rounded-md px-3 py-1 text-sm font-medium transition-colors duration-200",title:"Create Workspace",children:U?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(h.Z,{size:12,className:"mr-2"}),(0,r.jsx)("span",{children:"Create Workspace"})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(g.Z,{className:"h-4 w-4 mr-2"}),"Create Workspace"]})})]}),0!==e.length||L?(0,r.jsx)(o.Zb,{children:(0,r.jsx)("div",{className:"overflow-x-auto rounded-lg",children:(0,r.jsxs)(d.iA,{className:"min-w-full",children:[(0,r.jsx)(d.xD,{children:(0,r.jsxs)(d.SC,{children:[(0,r.jsxs)(d.ss,{className:"sortable whitespace-nowrap cursor-pointer hover:bg-gray-50",onClick:()=>ea("name"),children:["Workspace",en("name")]}),(0,r.jsxs)(d.ss,{className:"sortable whitespace-nowrap cursor-pointer hover:bg-gray-50",onClick:()=>ea("totalClusterCount"),children:["Clusters ",en("totalClusterCount")]}),(0,r.jsxs)(d.ss,{className:"sortable whitespace-nowrap cursor-pointer hover:bg-gray-50",onClick:()=>ea("managedJobsCount"),children:["Jobs",en("managedJobsCount")]}),(0,r.jsx)(d.ss,{className:"whitespace-nowrap",children:"Enabled infra"}),(0,r.jsx)(d.ss,{className:"whitespace-nowrap",children:"Actions"})]})}),(0,r.jsx)(d.RM,{children:L&&0===el.length?(0,r.jsx)(d.SC,{children:(0,r.jsx)(d.pj,{colSpan:5,className:"text-center py-6 text-gray-500",children:(0,r.jsxs)("div",{className:"flex justify-center items-center",children:[(0,r.jsx)(h.Z,{size:20,className:"mr-2"}),(0,r.jsx)("span",{children:"Loading..."})]})})}):el.length>0?el.map(e=>{let s=!0===((null==R?void 0:R[e.name])||{}).private;return(0,r.jsxs)(d.SC,{className:"hover:bg-gray-50",children:[(0,r.jsxs)(d.pj,{className:"",children:[(0,r.jsx)("button",{onClick:()=>ed(e.name),disabled:U,className:"text-blue-600 hover:text-blue-600 hover:underline text-left",children:e.name}),(0,r.jsx)("span",{className:"ml-2",children:(0,r.jsx)(z,{isPrivate:s})})]}),(0,r.jsx)(d.pj,{children:(0,r.jsxs)("button",{onClick:()=>{Y.push({pathname:"/clusters",query:{workspace:e.name}})},className:"text-gray-700 hover:text-blue-600 hover:underline",children:[e.runningClusterCount," running,"," ",e.totalClusterCount," total"]})}),(0,r.jsx)(d.pj,{children:(0,r.jsx)("button",{onClick:()=>{Y.push({pathname:"/jobs",query:{workspace:e.name}})},className:"text-gray-700 hover:text-blue-600 hover:underline",children:e.managedJobsCount})}),(0,r.jsx)(d.pj,{children:e.clouds.length>0?[...e.clouds].sort().map((s,t)=>{let a=M.Z2[s.toLowerCase()]||s;return(0,r.jsxs)("span",{children:[(0,r.jsx)(S(),{href:"/infra",className:"inline-flex items-center px-2 py-1 rounded text-sm bg-sky-100 text-sky-800 hover:bg-sky-200 hover:text-sky-900 transition-colors duration-200",children:a}),t<e.clouds.length-1&&" "]},s)}):(0,r.jsx)("span",{className:"text-gray-500 text-sm",children:"-"})}),(0,r.jsxs)(d.pj,{children:[(0,r.jsx)(u.z,{variant:"ghost",size:"sm",onClick:()=>ed(e.name),disabled:U,className:"text-gray-600 hover:text-gray-800 mr-1",children:(0,r.jsx)(j,{className:"w-4 h-4"})}),(0,r.jsx)(u.z,{variant:"ghost",size:"sm",onClick:()=>ei(e.name),disabled:"default"===e.name||U,title:"default"===e.name?"Cannot delete default workspace":"Delete workspace",className:"text-red-600 hover:text-red-700 hover:bg-red-50",children:(0,r.jsx)(y.Z,{className:"w-4 h-4"})})]})]},e.name)}):(0,r.jsx)(d.SC,{children:(0,r.jsx)(d.pj,{colSpan:5,className:"text-center py-6 text-gray-500",children:"No workspaces found"})})})]})})}):(0,r.jsxs)("div",{className:"text-center py-10",children:[(0,r.jsx)("p",{className:"text-lg text-gray-600",children:"No workspaces found."}),(0,r.jsx)("p",{className:"text-sm text-gray-500 mt-2",children:"Create a cluster to see its workspace here."})]}),R&&(0,r.jsx)(x.Vq,{open:T,onOpenChange:W,children:(0,r.jsxs)(x.cZ,{className:"sm:max-w-md md:max-w-lg lg:max-w-xl xl:max-w-2xl w-full max-h-[90vh] flex flex-col",children:[(0,r.jsx)(x.fK,{children:(0,r.jsx)(x.$N,{className:"pr-10",children:"All Workspaces Configuration"})}),(0,r.jsx)("div",{className:"flex-grow overflow-y-auto py-4",children:(0,r.jsx)("pre",{style:{backgroundColor:"#f5f5f5",padding:"16px",borderRadius:"8px",overflowX:"auto",whiteSpace:"pre",wordBreak:"normal"},children:m.ZP.dump(R,{indent:2})})})]})}),(0,r.jsx)(x.Vq,{open:V.open,onOpenChange:e=>{X(s=>({...s,open:e})),e||G(null)},children:(0,r.jsxs)(x.cZ,{className:"sm:max-w-md transition-all duration-200 ease-in-out",children:[(0,r.jsxs)(x.fK,{children:[(0,r.jsx)(x.$N,{children:"Permission Denied"}),(0,r.jsx)(x.Be,{children:U?(0,r.jsxs)("div",{className:"flex items-center py-2",children:[(0,r.jsx)(h.Z,{size:16,className:"mr-2"}),(0,r.jsx)("span",{children:"Checking permissions..."})]}):(0,r.jsx)(r.Fragment,{children:V.userName?(0,r.jsxs)(r.Fragment,{children:[V.userName," is logged in as non-admin and ",V.message,"."]}):V.message})})]}),(0,r.jsx)(x.cN,{children:(0,r.jsx)(u.z,{variant:"outline",onClick:()=>X(e=>({...e,open:!1})),disabled:U,children:"OK"})})]})}),(0,r.jsx)(x.Vq,{open:A.confirmOpen,onOpenChange:e=>{e||(eo(),G(null))},children:(0,r.jsxs)(x.cZ,{className:"sm:max-w-md",children:[(0,r.jsxs)(x.fK,{children:[(0,r.jsx)(x.$N,{children:"Delete Workspace"}),(0,r.jsxs)(x.Be,{children:['Are you sure you want to delete workspace "',A.workspaceToDelete,'"? This action cannot be undone.']})]}),(0,r.jsxs)(x.cN,{children:[(0,r.jsx)(u.z,{variant:"outline",onClick:eo,disabled:A.deleting,children:"Cancel"}),(0,r.jsx)(u.z,{variant:"destructive",onClick:ec,disabled:A.deleting,children:A.deleting?"Deleting...":"Delete"})]})]})})]})}},23001:function(e,s,t){t.d(s,{X:function(){return a}});var r=t(67294);function a(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:768,[s,t]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{let s=()=>{t(window.innerWidth<e)};return s(),window.addEventListener("resize",s),()=>{window.removeEventListener("resize",s)}},[e]),s}}}]);
|
|
@@ -1,9 +1,14 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7205,7325],{27325:function(e,t,n){n.d(t,{Z:function(){return r}});/**
|
|
2
2
|
* @license lucide-react v0.407.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
5
5
|
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
-
*/let r=(0,n(60998).Z)("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]])},
|
|
6
|
+
*/let r=(0,n(60998).Z)("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]])},16826:function(e,t,n){n.d(t,{Z:function(){return r}});/**
|
|
7
|
+
* @license lucide-react v0.407.0 - ISC
|
|
8
|
+
*
|
|
9
|
+
* This source code is licensed under the ISC license.
|
|
10
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
11
|
+
*/let r=(0,n(60998).Z)("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]])},6521:function(e,t,n){n.d(t,{Z:function(){return r}});/**
|
|
7
12
|
* @license lucide-react v0.407.0 - ISC
|
|
8
13
|
*
|
|
9
14
|
* This source code is licensed under the ISC license.
|
|
@@ -33,8 +38,8 @@
|
|
|
33
38
|
*
|
|
34
39
|
* This source code is licensed under the ISC license.
|
|
35
40
|
* See the LICENSE file in the root directory of this source tree.
|
|
36
|
-
*/let r=(0,n(60998).Z)("Trash",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}]])},6327:function(e,t,n){n.d(t,{x8:function(){return eu},VY:function(){return eo},dk:function(){return ei},aV:function(){return er},h_:function(){return en},fC:function(){return ee},Dx:function(){return ea},xz:function(){return et}});var r=n(67294),o=n(36206),a=n(28771),i=n(25360),u=n(91276),l=n(77342),s=n(46063),c=n(95420),d=n(42651),f=n(9981),p=e=>{let t,n;let{present:o,children:i}=e,u=function(e){var t,n;let[o,a]=r.useState(),i=r.useRef(null),u=r.useRef(e),l=r.useRef("none"),[s,c]=(t=e?"mounted":"unmounted",n={mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}},r.useReducer((e,t)=>n[e][t]??e,t));return r.useEffect(()=>{let e=h(i.current);l.current="mounted"===s?e:"none"},[s]),(0,f.b)(()=>{let t=i.current,n=u.current;if(n!==e){let r=l.current,o=h(t);e?c("MOUNT"):"none"===o||t?.display==="none"?c("UNMOUNT"):n&&r!==o?c("ANIMATION_OUT"):c("UNMOUNT"),u.current=e}},[e,c]),(0,f.b)(()=>{if(o){let e;let t=o.ownerDocument.defaultView??window,n=n=>{let r=h(i.current).includes(n.animationName);if(n.target===o&&r&&(c("ANIMATION_END"),!u.current)){let n=o.style.animationFillMode;o.style.animationFillMode="forwards",e=t.setTimeout(()=>{"forwards"===o.style.animationFillMode&&(o.style.animationFillMode=n)})}},r=e=>{e.target===o&&(l.current=h(i.current))};return o.addEventListener("animationstart",r),o.addEventListener("animationcancel",n),o.addEventListener("animationend",n),()=>{t.clearTimeout(e),o.removeEventListener("animationstart",r),o.removeEventListener("animationcancel",n),o.removeEventListener("animationend",n)}}c("ANIMATION_END")},[o,c]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:r.useCallback(e=>{i.current=e?getComputedStyle(e):null,a(e)},[])}}(o),l="function"==typeof i?i({present:u.isPresent}):r.Children.only(i),s=(0,a.e)(u.ref,(t=Object.getOwnPropertyDescriptor(l.props,"ref")?.get)&&"isReactWarning"in t&&t.isReactWarning?l.ref:(t=Object.getOwnPropertyDescriptor(l,"ref")?.get)&&"isReactWarning"in t&&t.isReactWarning?l.props.ref:l.props.ref||l.ref);return"function"==typeof i||u.isPresent?r.cloneElement(l,{ref:s}):null};function h(e){return e?.animationName||"none"}p.displayName="Presence";var
|
|
41
|
+
*/let r=(0,n(60998).Z)("Trash",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}]])},6327:function(e,t,n){n.d(t,{x8:function(){return eu},VY:function(){return eo},dk:function(){return ei},aV:function(){return er},h_:function(){return en},fC:function(){return ee},Dx:function(){return ea},xz:function(){return et}});var r=n(67294),o=n(36206),a=n(28771),i=n(25360),u=n(91276),l=n(77342),s=n(46063),c=n(95420),d=n(42651),f=n(9981),p=e=>{let t,n;let{present:o,children:i}=e,u=function(e){var t,n;let[o,a]=r.useState(),i=r.useRef(null),u=r.useRef(e),l=r.useRef("none"),[s,c]=(t=e?"mounted":"unmounted",n={mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}},r.useReducer((e,t)=>n[e][t]??e,t));return r.useEffect(()=>{let e=h(i.current);l.current="mounted"===s?e:"none"},[s]),(0,f.b)(()=>{let t=i.current,n=u.current;if(n!==e){let r=l.current,o=h(t);e?c("MOUNT"):"none"===o||t?.display==="none"?c("UNMOUNT"):n&&r!==o?c("ANIMATION_OUT"):c("UNMOUNT"),u.current=e}},[e,c]),(0,f.b)(()=>{if(o){let e;let t=o.ownerDocument.defaultView??window,n=n=>{let r=h(i.current).includes(n.animationName);if(n.target===o&&r&&(c("ANIMATION_END"),!u.current)){let n=o.style.animationFillMode;o.style.animationFillMode="forwards",e=t.setTimeout(()=>{"forwards"===o.style.animationFillMode&&(o.style.animationFillMode=n)})}},r=e=>{e.target===o&&(l.current=h(i.current))};return o.addEventListener("animationstart",r),o.addEventListener("animationcancel",n),o.addEventListener("animationend",n),()=>{t.clearTimeout(e),o.removeEventListener("animationstart",r),o.removeEventListener("animationcancel",n),o.removeEventListener("animationend",n)}}c("ANIMATION_END")},[o,c]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:r.useCallback(e=>{i.current=e?getComputedStyle(e):null,a(e)},[])}}(o),l="function"==typeof i?i({present:u.isPresent}):r.Children.only(i),s=(0,a.e)(u.ref,(t=Object.getOwnPropertyDescriptor(l.props,"ref")?.get)&&"isReactWarning"in t&&t.isReactWarning?l.ref:(t=Object.getOwnPropertyDescriptor(l,"ref")?.get)&&"isReactWarning"in t&&t.isReactWarning?l.props.ref:l.props.ref||l.ref);return"function"==typeof i||u.isPresent?r.cloneElement(l,{ref:s}):null};function h(e){return e?.animationName||"none"}p.displayName="Presence";var y=n(75320),m=n(27552),g=n(6223),v=n(23541),M=n(88426),N=n(85893),x="Dialog",[k,D]=(0,i.b)(x),[w,R]=k(x),O=e=>{let{__scopeDialog:t,children:n,open:o,defaultOpen:a,onOpenChange:i,modal:s=!0}=e,c=r.useRef(null),d=r.useRef(null),[f,p]=(0,l.T)({prop:o,defaultProp:a??!1,onChange:i,caller:x});return(0,N.jsx)(w,{scope:t,triggerRef:c,contentRef:d,contentId:(0,u.M)(),titleId:(0,u.M)(),descriptionId:(0,u.M)(),open:f,onOpenChange:p,onOpenToggle:r.useCallback(()=>p(e=>!e),[p]),modal:s,children:n})};O.displayName=x;var b="DialogTrigger",j=r.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=R(b,n),u=(0,a.e)(t,i.triggerRef);return(0,N.jsx)(y.WV.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":K(i.open),...r,ref:u,onClick:(0,o.M)(e.onClick,i.onOpenToggle)})});j.displayName=b;var I="DialogPortal",[C,E]=k(I,{forceMount:void 0}),T=e=>{let{__scopeDialog:t,forceMount:n,children:o,container:a}=e,i=R(I,t);return(0,N.jsx)(C,{scope:t,forceMount:n,children:r.Children.map(o,e=>(0,N.jsx)(p,{present:n||i.open,children:(0,N.jsx)(d.h,{asChild:!0,container:a,children:e})}))})};T.displayName=I;var _="DialogOverlay",Z=r.forwardRef((e,t)=>{let n=E(_,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,a=R(_,e.__scopeDialog);return a.modal?(0,N.jsx)(p,{present:r||a.open,children:(0,N.jsx)(A,{...o,ref:t})}):null});Z.displayName=_;var F=(0,M.Z8)("DialogOverlay.RemoveScroll"),A=r.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,o=R(_,n);return(0,N.jsx)(g.Z,{as:F,allowPinchZoom:!0,shards:[o.contentRef],children:(0,N.jsx)(y.WV.div,{"data-state":K(o.open),...r,ref:t,style:{pointerEvents:"auto",...r.style}})})}),P="DialogContent",V=r.forwardRef((e,t)=>{let n=E(P,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,a=R(P,e.__scopeDialog);return(0,N.jsx)(p,{present:r||a.open,children:a.modal?(0,N.jsx)(W,{...o,ref:t}):(0,N.jsx)(U,{...o,ref:t})})});V.displayName=P;var W=r.forwardRef((e,t)=>{let n=R(P,e.__scopeDialog),i=r.useRef(null),u=(0,a.e)(t,n.contentRef,i);return r.useEffect(()=>{let e=i.current;if(e)return(0,v.Ry)(e)},[]),(0,N.jsx)(S,{...e,ref:u,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,o.M)(e.onCloseAutoFocus,e=>{e.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:(0,o.M)(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=0===t.button&&!0===t.ctrlKey;(2===t.button||n)&&e.preventDefault()}),onFocusOutside:(0,o.M)(e.onFocusOutside,e=>e.preventDefault())})}),U=r.forwardRef((e,t)=>{let n=R(P,e.__scopeDialog),o=r.useRef(!1),a=r.useRef(!1);return(0,N.jsx)(S,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(o.current||n.triggerRef.current?.focus(),t.preventDefault()),o.current=!1,a.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(o.current=!0,"pointerdown"!==t.detail.originalEvent.type||(a.current=!0));let r=t.target;n.triggerRef.current?.contains(r)&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&a.current&&t.preventDefault()}})}),S=r.forwardRef((e,t)=>{let{__scopeDialog:n,trapFocus:o,onOpenAutoFocus:i,onCloseAutoFocus:u,...l}=e,d=R(P,n),f=r.useRef(null),p=(0,a.e)(t,f);return(0,m.EW)(),(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(c.M,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:i,onUnmountAutoFocus:u,children:(0,N.jsx)(s.XB,{role:"dialog",id:d.contentId,"aria-describedby":d.descriptionId,"aria-labelledby":d.titleId,"data-state":K(d.open),...l,ref:p,onDismiss:()=>d.onOpenChange(!1)})}),(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(J,{titleId:d.titleId}),(0,N.jsx)(Q,{contentRef:f,descriptionId:d.descriptionId})]})]})}),L="DialogTitle",H=r.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,o=R(L,n);return(0,N.jsx)(y.WV.h2,{id:o.titleId,...r,ref:t})});H.displayName=L;var q="DialogDescription",$=r.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,o=R(q,n);return(0,N.jsx)(y.WV.p,{id:o.descriptionId,...r,ref:t})});$.displayName=q;var z="DialogClose",B=r.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,a=R(z,n);return(0,N.jsx)(y.WV.button,{type:"button",...r,ref:t,onClick:(0,o.M)(e.onClick,()=>a.onOpenChange(!1))})});function K(e){return e?"open":"closed"}B.displayName=z;var X="DialogTitleWarning",[Y,G]=(0,i.k)(X,{contentName:P,titleName:L,docsSlug:"dialog"}),J=({titleId:e})=>{let t=G(X),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users.
|
|
37
42
|
|
|
38
43
|
If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component.
|
|
39
44
|
|
|
40
|
-
For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return r.useEffect(()=>{e&&!document.getElementById(e)&&console.error(n)},[n,e]),null},Q=({contentRef:e,descriptionId:t})=>{let n=G("DialogDescriptionWarning"),o=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${n.contentName}}.`;return r.useEffect(()=>{let n=e.current?.getAttribute("aria-describedby");t&&n&&!document.getElementById(t)&&console.warn(o)},[o,e,t]),null},ee=O,et=j,en=T,er=
|
|
45
|
+
For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return r.useEffect(()=>{e&&!document.getElementById(e)&&console.error(n)},[n,e]),null},Q=({contentRef:e,descriptionId:t})=>{let n=G("DialogDescriptionWarning"),o=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${n.contentName}}.`;return r.useEffect(()=>{let n=e.current?.getAttribute("aria-describedby");t&&n&&!document.getElementById(t)&&console.warn(o)},[o,e,t]),null},ee=O,et=j,en=T,er=Z,eo=V,ea=H,ei=$,eu=B}}]);
|
skypilot_nightly-1.0.0.dev20250821/sky/dashboard/out/_next/static/chunks/8969-4a6f1a928fb6d370.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8969],{68969:function(e,t,o){o.d(t,{Ce:function(){return b},NJ:function(){return h},UA:function(){return u},aT:function(){return i},getManagedJobs:function(){return l},jh:function(){return p},vs:function(){return d}});var r=o(67294),a=o(15821),n=o(93225),c=o(6378),s=o(47145);async function l(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};try{var t;let{allUsers:o=!0,nameMatch:r,userMatch:a,workspaceMatch:c,poolMatch:l,page:i,limit:d,statuses:u}=e,h={all_users:o,verbose:!0};void 0!==r&&(h.name_match=r),void 0!==a&&(h.user_match=a),void 0!==c&&(h.workspace_match=c),void 0!==l&&(h.pool_match=l),void 0!==i&&(h.page=i),void 0!==d&&(h.limit=d),void 0!==u&&u.length>0&&(h.statuses=u);let b=(await s.x.post("/jobs/queue",h)).headers.get("X-Skypilot-Request-ID"),p=await s.x.get("/api/get?request_id=".concat(b));if(500===p.status){try{let e=await p.json();if(e.detail&&e.detail.error)try{let t=JSON.parse(e.detail.error);if(t.type&&t.type===n.iW)return{jobs:[],total:0,controllerStopped:!0}}catch(e){console.error("Error parsing JSON:",e)}}catch(e){console.error("Error parsing JSON:",e)}return{jobs:[],total:0,controllerStopped:!1}}let g=await p.json(),f=g.return_value?JSON.parse(g.return_value):[],m=Array.isArray(f)?f:(null==f?void 0:f.jobs)||[],_=Array.isArray(f)?m.length:null!==(t=null==f?void 0:f.total)&&void 0!==t?t:m.length,y=(null==f?void 0:f.total_no_filter)||_,w=(null==f?void 0:f.status_counts)||{};return{jobs:m.map(e=>{var t;let o=0;e.end_at&&e.submitted_at?o=e.end_at-e.submitted_at:e.submitted_at&&(o=Date.now()/1e3-e.submitted_at);let r=[];e.submitted_at&&r.push({type:"PENDING",timestamp:e.submitted_at}),e.start_at&&r.push({type:"RUNNING",timestamp:e.start_at}),e.end_at&&r.push({type:e.status,timestamp:e.end_at});let a="",n="",c="",s="",l="";try{if(a=e.cloud||"",c=e.cluster_resources,n=e.region||"",a&&(s=a,n&&(s+="/".concat(n))),l=s,e.accelerators){let t=Object.entries(e.accelerators).map(e=>{let[t,o]=e;return"".concat(o,"x").concat(t)}).join(", ");t&&(l+=" (".concat(t,")"))}}catch(t){c=e.cluster_resources}return{id:e.job_id,task_job_id:e._job_id,task:e.task_name,name:e.job_name,job_duration:e.job_duration,total_duration:o,workspace:e.workspace,status:e.status,requested_resources:e.resources,resources_str:c,resources_str_full:e.cluster_resources_full||c,cloud:a,region:e.region,infra:s,full_infra:l,recoveries:e.recovery_count,details:e.details||e.failure_reason,user:e.user_name,user_hash:e.user_hash,submitted_at:e.submitted_at?new Date(1e3*e.submitted_at):null,events:r,dag_yaml:e.user_yaml,entrypoint:e.entrypoint,git_commit:(null===(t=e.metadata)||void 0===t?void 0:t.git_commit)||"-",pool:e.pool,pool_hash:e.pool_hash,current_cluster_name:e.current_cluster_name,job_id_on_pool_cluster:e.job_id_on_pool_cluster}}),total:_,totalNoFilter:y,controllerStopped:!1,statusCounts:w}}catch(e){return console.error("Error fetching managed job data:",e),{jobs:[],total:0,totalNoFilter:0,controllerStopped:!1,statusCounts:{}}}}async function i(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{allUsers:t=!0,nameMatch:o,userMatch:r,workspaceMatch:a,poolMatch:n,page:c=1,limit:s=10,useClientPagination:i=!0}=e;try{if(!i)return await l(e);let d=await l({allUsers:t,nameMatch:o,userMatch:r,workspaceMatch:a,poolMatch:n});if(d.controllerStopped||!d.jobs)return d;let u=d.jobs,h=u.length,b=(c-1)*s;return{jobs:u.slice(b,b+s),total:h,controllerStopped:!1}}catch(e){return console.error("Error fetching managed job data with client pagination:",e),{jobs:[],total:0,controllerStopped:!1}}}async function d(){try{let e=(await s.x.post("/jobs/pool_status",{pool_names:null})).headers.get("X-Skypilot-Request-ID"),t=await s.x.get("/api/get?request_id=".concat(e));if(500===t.status){try{let e=await t.json();if(e.detail&&e.detail.error)try{let t=JSON.parse(e.detail.error);if(t.type&&t.type===n.iW)return{pools:[],controllerStopped:!0}}catch(e){console.error("Failed to parse error JSON:",e)}}catch(e){console.error("Failed to parse response JSON:",e)}throw Error("Server error")}let o=await t.json(),r=o.return_value?JSON.parse(o.return_value):[],a={jobs:[]};try{let e=await l({allUsers:!0});e.controllerStopped||(a=e)}catch(e){console.warn("Failed to fetch jobs for pool job counts:",e)}let c={},i=["SUCCEEDED","FAILED","FAILED_SETUP","FAILED_PRECHECKS","FAILED_NO_RESOURCE","FAILED_CONTROLLER","CANCELLED"];return a.jobs&&Array.isArray(a.jobs)&&a.jobs.forEach(e=>{let t=e.pool,o=e.status;t&&!i.includes(o)&&(c[t]||(c[t]={}),c[t][o]=(c[t][o]||0)+1)}),{pools:r.map(e=>({...e,jobCounts:c[e.name]||{}})),controllerStopped:!1}}catch(e){throw console.error("Error fetching pools:",e),e}}function u(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,[o,a]=(0,r.useState)(null),[n,s]=(0,r.useState)(!0);return(0,r.useEffect)(()=>{(async function(){if(e)try{var t;s(!0);let o=await c.default.get(l,[{allUsers:!0}]),r=null==o?void 0:null===(t=o.jobs)||void 0===t?void 0:t.find(t=>String(t.id)===String(e));r?a({jobs:[r],controllerStopped:o.controllerStopped||!1}):a({jobs:[],controllerStopped:o.controllerStopped||!1})}catch(e){console.error("Error fetching single managed job data:",e),a({jobs:[],controllerStopped:!1})}finally{s(!1)}})()},[e,t]),{jobData:o,loading:n}}async function h(e){let t,{jobId:o,controller:r=!1,signal:c,onNewLog:s}=e,l=Date.now(),i=new Promise(e=>{let o=()=>{let r=Date.now()-l;r>=3e4?e({timeout:!0}):t=setTimeout(o,3e4-r)};t=setTimeout(o,3e4)}),d=window.location.origin,u="".concat(d).concat(n.f4),h=(async()=>{try{let e=(await fetch("".concat(u,"/jobs/logs"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({controller:r,follow:!1,job_id:o,tail:1e4}),...c?{signal:c}:{}})).body.getReader();try{for(;;){let{done:t,value:o}=await e.read();if(t)break;l=Date.now();let r=new TextDecoder().decode(o);s(r)}}finally{if(!c||!c.aborted)try{e.cancel()}catch(e){"AbortError"!==e.name&&console.warn("Error canceling reader:",e)}t&&clearTimeout(t)}return{timeout:!1}}catch(e){if(t&&clearTimeout(t),"AbortError"===e.name)return{timeout:!1};throw e}})(),b=await Promise.race([h,i]);if(t&&clearTimeout(t),b.timeout){(0,a.C)("Log request for job ".concat(o," timed out after ").concat(30,"s of inactivity"),"warning");return}}async function b(e,t,o){let r="",c="",s="",l={};if("restartcontroller"===e)r="Restarting",c="restarted",s="jobs/queue",l={all_users:!0,refresh:!0},t="controller";else throw Error("Invalid action: ".concat(e));(0,a.C)("".concat(r," job ").concat(t,"..."),"info");let i=window.location.origin,d="".concat(i).concat(n.f4);try{try{let e=(await fetch("".concat(d,"/").concat(s),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(l)})).headers.get("X-Skypilot-Request-ID"),i=await fetch("".concat(d,"/api/get?request_id=").concat(e));if(200===i.status)(0,a.C)("Job ".concat(t," ").concat(c," successfully."),"success");else if(500===i.status)try{let e=await i.json();if(e.detail&&e.detail.error)try{let c=JSON.parse(e.detail.error);c.type&&c.type===n.Bo?(0,a.C)("".concat(r," job ").concat(t," is not supported!"),"error",1e4):c.type&&c.type===n.mF?(0,a.C)("Cluster ".concat(o," does not exist."),"error"):c.type&&c.type===n.iW?(0,a.C)("Cluster ".concat(o," is not up."),"error"):(0,a.C)("".concat(r," job ").concat(t," failed: ").concat(c.type),"error")}catch(o){(0,a.C)("".concat(r," job ").concat(t," failed: ").concat(e.detail.error),"error")}else(0,a.C)("".concat(r," job ").concat(t," failed with no details."),"error")}catch(e){(0,a.C)("".concat(r," job ").concat(t," failed with parse error."),"error")}else(0,a.C)("".concat(r," job ").concat(t," failed with status ").concat(i.status,"."),"error")}catch(e){console.error("Fetch error:",e),(0,a.C)("Network error ".concat(r," job ").concat(t,": ").concat(e.message),"error")}}catch(e){console.error("Error in handleStop:",e),(0,a.C)("Critical error ".concat(r," job ").concat(t,": ").concat(e.message),"error")}}async function p(e){let{jobId:t=null,name:o=null,controller:r=!1}=e;try{let e=await s.x.fetch("/jobs/download_logs",{job_id:t,name:o,controller:r,refresh:!1}),c=Object.values(e||{});if(!c.length){(0,a.C)("No logs found to download.","warning");return}let l=window.location.origin,i="".concat(l).concat(n.f4,"/download"),d=await fetch("".concat(i,"?relative=items"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({folder_paths:c})});if(!d.ok){let e=await d.text();throw Error("Download failed: ".concat(d.status," ").concat(e))}let u=await d.blob(),h=window.URL.createObjectURL(u),b=document.createElement("a"),p=new Date().toISOString().replace(/[:.]/g,"-"),g=t?"job-".concat(t):o?"job-".concat(o):"job";b.href=h,b.download="managed-".concat(g,"-").concat(r?"controller-logs":"logs","-").concat(p,".zip"),document.body.appendChild(b),b.click(),b.remove(),window.URL.revokeObjectURL(h)}catch(e){console.error("Error downloading managed job logs:",e),(0,a.C)("Error downloading managed job logs: ".concat(e.message),"error")}}},15821:function(e,t,o){o.d(t,{C:function(){return r}});function r(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"info",o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:5e3,r=document.getElementById("toast-container");r||((r=document.createElement("div")).id="toast-container",r.className="fixed top-0 right-0 p-4 z-[9999] flex flex-col items-end space-y-2",document.body.appendChild(r));let a=document.createElement("div");switch(a.className="rounded-md border-l-4 p-4 shadow-md flex items-center justify-between max-w-md w-full mb-2 pointer-events-auto",t){case"success":a.className+=" bg-green-100 border-green-500 text-green-800";break;case"error":a.className+=" bg-red-100 border-red-500 text-red-800";break;case"warning":a.className+=" bg-yellow-100 border-yellow-500 text-yellow-800";break;default:a.className+=" bg-blue-100 border-blue-500 text-blue-800"}return a.innerHTML='\n <div class="flex-1 mr-2">\n <p class="text-sm font-medium">'.concat(e,'</p>\n </div>\n <button class="text-gray-500 hover:text-gray-700 focus:outline-none" aria-label="Close toast">\n <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">\n <line x1="18" y1="6" x2="6" y2="18"></line>\n <line x1="6" y1="6" x2="18" y2="18"></line>\n </svg>\n </button>\n '),r.appendChild(a),a.querySelector("button").addEventListener("click",()=>{r.removeChild(a)}),setTimeout(()=>{r.contains(a)&&r.removeChild(a)},o),a}},6378:function(e,t,o){o.r(t),o.d(t,{DashboardCache:function(){return a},dashboardCache:function(){return n}});let r=o(51214).ej.DEFAULT_TTL;class a{async get(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=o.ttl||r,n=!1!==o.refreshOnAccess,c=this._generateKey(e,t),s=e.name||"anonymous",l=this.cache.get(c),i=Date.now();if(l&&i-l.lastUpdated<a){let o=Math.round((i-l.lastUpdated)/1e3);return this._debug("Cache HIT for ".concat(s," (age: ").concat(o,"s, TTL: ").concat(Math.round(a/1e3),"s)")),n&&(this.cache.set(c,{data:l.data,lastUpdated:i}),this._debug("Cache TTL refreshed for ".concat(s))),this.backgroundJobs.has(c)||this._refreshInBackground(e,t,c),l.data}try{let o=await e(...t);return this.cache.set(c,{data:o,lastUpdated:i}),o}catch(e){if(l)return console.warn("Failed to fetch fresh data for ".concat(c,", returning stale data:"),e),l.data;throw e}}invalidate(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],o=this._generateKey(e,t);this.cache.delete(o),this.backgroundJobs.delete(o)}invalidateFunction(e){let t=e.name||"anonymous",o=[];for(let e of this.cache.keys())e.startsWith("".concat(t,"_"))&&o.push(e);o.forEach(e=>{this.cache.delete(e),this.backgroundJobs.delete(e)})}clear(){this.cache.clear(),this.backgroundJobs.clear()}getStats(){return{cacheSize:this.cache.size,backgroundJobs:this.backgroundJobs.size,keys:Array.from(this.cache.keys())}}getDetailedStats(){let e=Date.now(),t=[];for(let[o,r]of this.cache.entries()){let a=e-r.lastUpdated;t.push({key:o,age:Math.round(a/1e3),lastUpdated:new Date(r.lastUpdated).toISOString(),hasBackgroundJob:this.backgroundJobs.has(o)})}return{cacheSize:this.cache.size,backgroundJobs:this.backgroundJobs.size,entries:t.sort((e,t)=>e.age-t.age)}}setDebugMode(e){this.debugMode=e}_debug(e){for(var t=arguments.length,o=Array(t>1?t-1:0),r=1;r<t;r++)o[r-1]=arguments[r];this.debugMode&&console.log("[DashboardCache] ".concat(e),...o)}_refreshInBackground(e,t,o){this.backgroundJobs.set(o,!0),e(...t).then(e=>{this.cache.set(o,{data:e,lastUpdated:Date.now()})}).catch(e=>{console.warn("Background refresh failed for ".concat(o,":"),e)}).finally(()=>{this.backgroundJobs.delete(o)})}_generateKey(e,t){let o=function(e){let t=5381;for(let o=0;o<e.length;o++)t=(t<<5)+t+e.charCodeAt(o);return t>>>0}(e.toString()),r=t.length>0?JSON.stringify(t):"";return"".concat(o,"_").concat(r)}constructor(){this.cache=new Map,this.backgroundJobs=new Map,this.debugMode=!1}}let n=new a;t.default=n}}]);
|
|
@@ -1,9 +1,14 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9946,7325,4676],{27325:function(e,t,n){n.d(t,{Z:function(){return r}});/**
|
|
2
2
|
* @license lucide-react v0.407.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
5
5
|
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
-
*/let r=(0,n(60998).Z)("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]])},
|
|
6
|
+
*/let r=(0,n(60998).Z)("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]])},16826:function(e,t,n){n.d(t,{Z:function(){return r}});/**
|
|
7
|
+
* @license lucide-react v0.407.0 - ISC
|
|
8
|
+
*
|
|
9
|
+
* This source code is licensed under the ISC license.
|
|
10
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
11
|
+
*/let r=(0,n(60998).Z)("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]])},6521:function(e,t,n){n.d(t,{Z:function(){return r}});/**
|
|
7
12
|
* @license lucide-react v0.407.0 - ISC
|
|
8
13
|
*
|
|
9
14
|
* This source code is licensed under the ISC license.
|
|
@@ -38,8 +43,8 @@
|
|
|
38
43
|
*
|
|
39
44
|
* This source code is licensed under the ISC license.
|
|
40
45
|
* See the LICENSE file in the root directory of this source tree.
|
|
41
|
-
*/let r=(0,n(60998).Z)("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])},23001:function(e,t,n){n.d(t,{X:function(){return o}});var r=n(67294);function o(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:768,[t,n]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{let t=()=>{n(window.innerWidth<e)};return t(),window.addEventListener("resize",t),()=>{window.removeEventListener("resize",t)}},[e]),t}},6327:function(e,t,n){n.d(t,{x8:function(){return
|
|
46
|
+
*/let r=(0,n(60998).Z)("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])},23001:function(e,t,n){n.d(t,{X:function(){return o}});var r=n(67294);function o(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:768,[t,n]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{let t=()=>{n(window.innerWidth<e)};return t(),window.addEventListener("resize",t),()=>{window.removeEventListener("resize",t)}},[e]),t}},6327:function(e,t,n){n.d(t,{x8:function(){return el},VY:function(){return eo},dk:function(){return ea},aV:function(){return er},h_:function(){return en},fC:function(){return ee},Dx:function(){return ei},xz:function(){return et}});var r=n(67294),o=n(36206),i=n(28771),a=n(25360),l=n(91276),u=n(77342),s=n(46063),d=n(95420),c=n(42651),f=n(9981),p=e=>{let t,n;let{present:o,children:a}=e,l=function(e){var t,n;let[o,i]=r.useState(),a=r.useRef(null),l=r.useRef(e),u=r.useRef("none"),[s,d]=(t=e?"mounted":"unmounted",n={mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}},r.useReducer((e,t)=>n[e][t]??e,t));return r.useEffect(()=>{let e=y(a.current);u.current="mounted"===s?e:"none"},[s]),(0,f.b)(()=>{let t=a.current,n=l.current;if(n!==e){let r=u.current,o=y(t);e?d("MOUNT"):"none"===o||t?.display==="none"?d("UNMOUNT"):n&&r!==o?d("ANIMATION_OUT"):d("UNMOUNT"),l.current=e}},[e,d]),(0,f.b)(()=>{if(o){let e;let t=o.ownerDocument.defaultView??window,n=n=>{let r=y(a.current).includes(n.animationName);if(n.target===o&&r&&(d("ANIMATION_END"),!l.current)){let n=o.style.animationFillMode;o.style.animationFillMode="forwards",e=t.setTimeout(()=>{"forwards"===o.style.animationFillMode&&(o.style.animationFillMode=n)})}},r=e=>{e.target===o&&(u.current=y(a.current))};return o.addEventListener("animationstart",r),o.addEventListener("animationcancel",n),o.addEventListener("animationend",n),()=>{t.clearTimeout(e),o.removeEventListener("animationstart",r),o.removeEventListener("animationcancel",n),o.removeEventListener("animationend",n)}}d("ANIMATION_END")},[o,d]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:r.useCallback(e=>{a.current=e?getComputedStyle(e):null,i(e)},[])}}(o),u="function"==typeof a?a({present:l.isPresent}):r.Children.only(a),s=(0,i.e)(l.ref,(t=Object.getOwnPropertyDescriptor(u.props,"ref")?.get)&&"isReactWarning"in t&&t.isReactWarning?u.ref:(t=Object.getOwnPropertyDescriptor(u,"ref")?.get)&&"isReactWarning"in t&&t.isReactWarning?u.props.ref:u.props.ref||u.ref);return"function"==typeof a||l.isPresent?r.cloneElement(u,{ref:s}):null};function y(e){return e?.animationName||"none"}p.displayName="Presence";var m=n(75320),v=n(27552),h=n(6223),g=n(23541),M=n(88426),N=n(85893),k="Dialog",[w,x]=(0,a.b)(k),[b,D]=w(k),O=e=>{let{__scopeDialog:t,children:n,open:o,defaultOpen:i,onOpenChange:a,modal:s=!0}=e,d=r.useRef(null),c=r.useRef(null),[f,p]=(0,u.T)({prop:o,defaultProp:i??!1,onChange:a,caller:k});return(0,N.jsx)(b,{scope:t,triggerRef:d,contentRef:c,contentId:(0,l.M)(),titleId:(0,l.M)(),descriptionId:(0,l.M)(),open:f,onOpenChange:p,onOpenToggle:r.useCallback(()=>p(e=>!e),[p]),modal:s,children:n})};O.displayName=k;var R="DialogTrigger",j=r.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,a=D(R,n),l=(0,i.e)(t,a.triggerRef);return(0,N.jsx)(m.WV.button,{type:"button","aria-haspopup":"dialog","aria-expanded":a.open,"aria-controls":a.contentId,"data-state":X(a.open),...r,ref:l,onClick:(0,o.M)(e.onClick,a.onOpenToggle)})});j.displayName=R;var E="DialogPortal",[I,C]=w(E,{forceMount:void 0}),_=e=>{let{__scopeDialog:t,forceMount:n,children:o,container:i}=e,a=D(E,t);return(0,N.jsx)(I,{scope:t,forceMount:n,children:r.Children.map(o,e=>(0,N.jsx)(p,{present:n||a.open,children:(0,N.jsx)(c.h,{asChild:!0,container:i,children:e})}))})};_.displayName=E;var T="DialogOverlay",Z=r.forwardRef((e,t)=>{let n=C(T,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,i=D(T,e.__scopeDialog);return i.modal?(0,N.jsx)(p,{present:r||i.open,children:(0,N.jsx)(F,{...o,ref:t})}):null});Z.displayName=T;var A=(0,M.Z8)("DialogOverlay.RemoveScroll"),F=r.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,o=D(T,n);return(0,N.jsx)(h.Z,{as:A,allowPinchZoom:!0,shards:[o.contentRef],children:(0,N.jsx)(m.WV.div,{"data-state":X(o.open),...r,ref:t,style:{pointerEvents:"auto",...r.style}})})}),P="DialogContent",W=r.forwardRef((e,t)=>{let n=C(P,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,i=D(P,e.__scopeDialog);return(0,N.jsx)(p,{present:r||i.open,children:i.modal?(0,N.jsx)(U,{...o,ref:t}):(0,N.jsx)(V,{...o,ref:t})})});W.displayName=P;var U=r.forwardRef((e,t)=>{let n=D(P,e.__scopeDialog),a=r.useRef(null),l=(0,i.e)(t,n.contentRef,a);return r.useEffect(()=>{let e=a.current;if(e)return(0,g.Ry)(e)},[]),(0,N.jsx)(L,{...e,ref:l,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,o.M)(e.onCloseAutoFocus,e=>{e.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:(0,o.M)(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=0===t.button&&!0===t.ctrlKey;(2===t.button||n)&&e.preventDefault()}),onFocusOutside:(0,o.M)(e.onFocusOutside,e=>e.preventDefault())})}),V=r.forwardRef((e,t)=>{let n=D(P,e.__scopeDialog),o=r.useRef(!1),i=r.useRef(!1);return(0,N.jsx)(L,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(o.current||n.triggerRef.current?.focus(),t.preventDefault()),o.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(o.current=!0,"pointerdown"!==t.detail.originalEvent.type||(i.current=!0));let r=t.target;n.triggerRef.current?.contains(r)&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&i.current&&t.preventDefault()}})}),L=r.forwardRef((e,t)=>{let{__scopeDialog:n,trapFocus:o,onOpenAutoFocus:a,onCloseAutoFocus:l,...u}=e,c=D(P,n),f=r.useRef(null),p=(0,i.e)(t,f);return(0,v.EW)(),(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(d.M,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:a,onUnmountAutoFocus:l,children:(0,N.jsx)(s.XB,{role:"dialog",id:c.contentId,"aria-describedby":c.descriptionId,"aria-labelledby":c.titleId,"data-state":X(c.open),...u,ref:p,onDismiss:()=>c.onOpenChange(!1)})}),(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(J,{titleId:c.titleId}),(0,N.jsx)(Q,{contentRef:f,descriptionId:c.descriptionId})]})]})}),S="DialogTitle",q=r.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,o=D(S,n);return(0,N.jsx)(m.WV.h2,{id:o.titleId,...r,ref:t})});q.displayName=S;var z="DialogDescription",H=r.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,o=D(z,n);return(0,N.jsx)(m.WV.p,{id:o.descriptionId,...r,ref:t})});H.displayName=z;var $="DialogClose",B=r.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=D($,n);return(0,N.jsx)(m.WV.button,{type:"button",...r,ref:t,onClick:(0,o.M)(e.onClick,()=>i.onOpenChange(!1))})});function X(e){return e?"open":"closed"}B.displayName=$;var K="DialogTitleWarning",[Y,G]=(0,a.k)(K,{contentName:P,titleName:S,docsSlug:"dialog"}),J=({titleId:e})=>{let t=G(K),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users.
|
|
42
47
|
|
|
43
48
|
If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component.
|
|
44
49
|
|
|
45
|
-
For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return r.useEffect(()=>{e&&!document.getElementById(e)&&console.error(n)},[n,e]),null},Q=({contentRef:e,descriptionId:t})=>{let n=G("DialogDescriptionWarning"),o=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${n.contentName}}.`;return r.useEffect(()=>{let n=e.current?.getAttribute("aria-describedby");t&&n&&!document.getElementById(t)&&console.warn(o)},[o,e,t]),null},ee=O,et=j,en=_,er=
|
|
50
|
+
For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return r.useEffect(()=>{e&&!document.getElementById(e)&&console.error(n)},[n,e]),null},Q=({contentRef:e,descriptionId:t})=>{let n=G("DialogDescriptionWarning"),o=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${n.contentName}}.`;return r.useEffect(()=>{let n=e.current?.getAttribute("aria-describedby");t&&n&&!document.getElementById(t)&&console.warn(o)},[o,e,t]),null},ee=O,et=j,en=_,er=Z,eo=W,ei=q,ea=H,el=B},12003:function(e,t,n){n.d(t,{j:function(){return a}});var r=n(90512);let o=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,i=r.W,a=(e,t)=>n=>{var r;if((null==t?void 0:t.variants)==null)return i(e,null==n?void 0:n.class,null==n?void 0:n.className);let{variants:a,defaultVariants:l}=t,u=Object.keys(a).map(e=>{let t=null==n?void 0:n[e],r=null==l?void 0:l[e];if(null===t)return null;let i=o(t)||o(r);return a[e][i]}),s=n&&Object.entries(n).reduce((e,t)=>{let[n,r]=t;return void 0===r||(e[n]=r),e},{});return i(e,u,null==t?void 0:null===(r=t.compoundVariants)||void 0===r?void 0:r.reduce((e,t)=>{let{class:n,className:r,...o}=t;return Object.entries(o).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...l,...s}[t]):({...l,...s})[t]===n})?[...e,n,r]:e},[]),null==n?void 0:n.class,null==n?void 0:n.className)}}}]);
|