skypilot-nightly 1.0.0.dev20250904__tar.gz → 1.0.0.dev20250906__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.dev20250904/skypilot_nightly.egg-info → skypilot_nightly-1.0.0.dev20250906}/PKG-INFO +41 -41
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/README.md +6 -6
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/__init__.py +2 -2
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/backends/backend_utils.py +46 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/backends/cloud_vm_ray_backend.py +11 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/catalog/__init__.py +1 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/client/sdk.py +20 -16
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/clouds/nebius.py +3 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/404.html +1 -1
- {skypilot_nightly-1.0.0.dev20250904/sky/dashboard/out/_next/static/mriHUOVL_Ht-CeW-e7saa → skypilot_nightly-1.0.0.dev20250906/sky/dashboard/out/_next/static/ZOaq9s6U49jSoGAMkeKqu}/_buildManifest.js +1 -1
- skypilot_nightly-1.0.0.dev20250906/sky/dashboard/out/_next/static/chunks/6856-6e2bc8a6fd0867af.js +1 -0
- skypilot_nightly-1.0.0.dev20250904/sky/dashboard/out/_next/static/chunks/8969-4a6f1a928fb6d370.js → skypilot_nightly-1.0.0.dev20250906/sky/dashboard/out/_next/static/chunks/8969-0be3036bf86f8256.js +1 -1
- skypilot_nightly-1.0.0.dev20250906/sky/dashboard/out/_next/static/chunks/9037-fa1737818d0a0969.js +6 -0
- skypilot_nightly-1.0.0.dev20250904/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-39c9bd4cdb7e5a57.js → skypilot_nightly-1.0.0.dev20250906/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-1cbba24bd1bd35f8.js +1 -1
- skypilot_nightly-1.0.0.dev20250904/sky/dashboard/out/_next/static/chunks/webpack-24c4fc6d30ce0193.js → skypilot_nightly-1.0.0.dev20250906/sky/dashboard/out/_next/static/chunks/webpack-8df25bce0107f4bd.js +1 -1
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/clusters/[cluster]/[job].html +1 -1
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/clusters/[cluster].html +1 -1
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/clusters.html +1 -1
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/config.html +1 -1
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/index.html +1 -1
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/infra/[context].html +1 -1
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/infra.html +1 -1
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/jobs/[job].html +1 -1
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/jobs/pools/[pool].html +1 -1
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/jobs.html +1 -1
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/users.html +1 -1
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/volumes.html +1 -1
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/workspace/new.html +1 -1
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/workspaces/[name].html +1 -1
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/workspaces.html +1 -1
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/models.py +24 -1
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/__init__.py +26 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/aws/config.py +30 -12
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/kubernetes/__init__.py +2 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/kubernetes/volume.py +71 -1
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/nebius/instance.py +2 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/nebius/utils.py +3 -1
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/runpod/volume.py +22 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/server/requests/executor.py +3 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/server/requests/payloads.py +5 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/server/requests/requests.py +15 -14
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/templates/nebius-ray.yml.j2 +1 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/users/permission.py +6 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/users/server.py +8 -2
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/db/db_utils.py +3 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/schemas.py +7 -1
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/volumes/server/core.py +25 -2
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906/skypilot_nightly.egg-info}/PKG-INFO +41 -41
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/skypilot_nightly.egg-info/SOURCES.txt +7 -7
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/tests/test_smoke.py +2 -1
- skypilot_nightly-1.0.0.dev20250904/sky/dashboard/out/_next/static/chunks/6856-66e696640347e77b.js +0 -1
- skypilot_nightly-1.0.0.dev20250904/sky/dashboard/out/_next/static/chunks/9037-1c0101b86582136f.js +0 -6
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/MANIFEST.in +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/pyproject.toml +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/setup.cfg +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/adaptors/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/adaptors/aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/adaptors/azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/adaptors/cloudflare.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/adaptors/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/adaptors/cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/adaptors/do.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/adaptors/docker.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/adaptors/gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/adaptors/hyperbolic.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/adaptors/ibm.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/adaptors/kubernetes.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/adaptors/nebius.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/adaptors/oci.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/adaptors/runpod.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/adaptors/vast.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/adaptors/vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/admin_policy.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/authentication.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/backends/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/backends/backend.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/backends/docker_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/backends/local_docker_backend.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/backends/monkey_patches/monkey_patch_ray_up.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/backends/wheel_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/catalog/aws_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/catalog/azure_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/catalog/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/catalog/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/catalog/cudo_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/catalog/data_fetchers/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/catalog/data_fetchers/analyze.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/catalog/data_fetchers/fetch_aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/catalog/data_fetchers/fetch_azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/catalog/data_fetchers/fetch_cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/catalog/data_fetchers/fetch_fluidstack.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/catalog/data_fetchers/fetch_gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/catalog/data_fetchers/fetch_hyperbolic.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/catalog/data_fetchers/fetch_ibm.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/catalog/data_fetchers/fetch_lambda_cloud.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/catalog/data_fetchers/fetch_nebius.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/catalog/data_fetchers/fetch_vast.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/catalog/data_fetchers/fetch_vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/catalog/do_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/catalog/fluidstack_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/catalog/gcp_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/catalog/hyperbolic_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/catalog/ibm_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/catalog/kubernetes_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/catalog/lambda_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/catalog/nebius_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/catalog/oci_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/catalog/paperspace_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/catalog/runpod_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/catalog/scp_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/catalog/ssh_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/catalog/vast_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/catalog/vsphere_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/check.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/cli.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/client/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/client/cli/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/client/cli/command.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/client/cli/deprecation_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/client/cli/flags.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/client/cli/git.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/client/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/client/oauth.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/client/sdk_async.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/client/service_account_auth.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/cloud_stores.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/clouds/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/clouds/aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/clouds/azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/clouds/cloud.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/clouds/cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/clouds/do.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/clouds/fluidstack.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/clouds/gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/clouds/hyperbolic.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/clouds/ibm.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/clouds/kubernetes.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/clouds/lambda_cloud.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/clouds/oci.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/clouds/paperspace.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/clouds/runpod.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/clouds/scp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/clouds/ssh.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/clouds/utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/clouds/utils/aws_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/clouds/utils/azure_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/clouds/utils/gcp_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/clouds/utils/oci_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/clouds/utils/scp_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/clouds/vast.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/clouds/vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dag.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904/sky/dashboard/out/_next/static/mriHUOVL_Ht-CeW-e7saa → skypilot_nightly-1.0.0.dev20250906/sky/dashboard/out/_next/static/ZOaq9s6U49jSoGAMkeKqu}/_ssgManifest.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/1121-408ed10b2f9fce17.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/1141-943efc7aff0f0c06.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/1272-1ef0bf0237faccdb.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/1836-37fede578e2da5f8.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/2350.fab69e61bac57b23.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/3015-86cabed5d4669ad0.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/3294.c80326aec9bfed40.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/3785.4872a2f3aa489880.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/3850-ff4a9a69d978632b.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/3937.210053269f121201.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/4045.b30465273dc5e468.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/4676-9da7fdbde90b5549.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/4725.10f7a9a5d3ea8208.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/5339.3fda4a4010ff4e06.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/5739-d67458fcb1386c92.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/6130-2be46d70a38f1e82.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/6135-4b4d5e824b7f9d3c.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/616-3d59f75e2ccf9321.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/649.b9d7f7d10c1b8c53.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/6601-06114c982db410b6.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/6989-01359c57e018caa4.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/6990-08b2a1cae076a943.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/7325.b4bc99ce0892dcd5.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/7411-b15471acd2cba716.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/754-d0da8ab45f9509e9.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/7669.1f5d9a402bf5cc42.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/9025.c12318fb6a1a9093.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/fd9d1056-86323a29a8f7e46a.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/framework-cf60a09ccd051a10.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/main-app-587214043926b3cc.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/main-f15ccb73239a3bf1.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/pages/_app-ce361c6959bc2001.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/pages/_error-c66a4e8afc46f17b.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-0b4b35dc1dfe046c.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/pages/clusters-469814d711d63b1b.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/pages/config-dfb9bf07b13045f4.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/pages/index-444f1804401f04ea.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/pages/infra/[context]-6563820e094f68ca.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/pages/infra-aabba60d57826e0f.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-dd64309c3fe67ed2.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/pages/jobs/pools/[pool]-07349868f7905d37.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/pages/jobs-1f70d9faa564804f.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/pages/users-018bf31cda52e11b.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/pages/volumes-739726d6b823f532.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/pages/workspace/new-3f88a1c7e86a3f86.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/pages/workspaces/[name]-af76bb06dbb3954f.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/pages/workspaces-7598c33a746cdc91.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/_next/static/css/4614e06482d7309e.css +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/favicon.ico +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/skypilot.svg +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/dashboard/out/videos/cursor-small.mp4 +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/data/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/data/data_transfer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/data/data_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/data/mounting_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/data/storage.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/data/storage_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/exceptions.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/execution.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/global_user_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/jobs/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/jobs/client/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/jobs/client/sdk.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/jobs/client/sdk_async.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/jobs/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/jobs/controller.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/jobs/recovery_strategy.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/jobs/scheduler.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/jobs/server/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/jobs/server/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/jobs/server/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/jobs/server/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/jobs/state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/jobs/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/logs/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/logs/agent.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/logs/aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/logs/gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/metrics/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/metrics/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/optimizer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/aws/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/aws/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/aws/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/azure/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/azure/azure-config-template.json +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/azure/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/azure/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/cudo/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/cudo/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/cudo/cudo_machine_type.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/cudo/cudo_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/cudo/cudo_wrapper.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/cudo/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/do/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/do/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/do/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/do/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/do/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/docker_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/fluidstack/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/fluidstack/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/fluidstack/fluidstack_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/fluidstack/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/gcp/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/gcp/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/gcp/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/gcp/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/gcp/instance_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/gcp/mig_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/gcp/volume_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/hyperbolic/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/hyperbolic/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/hyperbolic/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/hyperbolic/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/instance_setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/kubernetes/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/kubernetes/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/kubernetes/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/kubernetes/manifests/fusermount-server-daemonset.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/kubernetes/network.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/kubernetes/network_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/kubernetes/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/lambda_cloud/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/lambda_cloud/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/lambda_cloud/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/lambda_cloud/lambda_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/logging.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/metadata_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/nebius/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/nebius/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/nebius/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/oci/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/oci/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/oci/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/oci/query_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/paperspace/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/paperspace/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/paperspace/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/paperspace/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/paperspace/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/provisioner.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/runpod/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/runpod/api/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/runpod/api/commands.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/runpod/api/pods.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/runpod/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/runpod/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/runpod/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/scp/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/scp/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/scp/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/ssh/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/vast/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/vast/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/vast/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/vast/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/vsphere/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/vsphere/common/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/vsphere/common/cls_api_client.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/vsphere/common/cls_api_helper.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/vsphere/common/custom_script.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/vsphere/common/id_generator.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/vsphere/common/metadata_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/vsphere/common/service_manager.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/vsphere/common/service_manager_factory.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/vsphere/common/ssl_helper.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/vsphere/common/vapiconnect.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/vsphere/common/vim_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/vsphere/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/vsphere/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/provision/vsphere/vsphere_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/py.typed +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/resources.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/schemas/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/schemas/api/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/schemas/api/responses.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/schemas/db/README +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/schemas/db/env.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/schemas/db/global_user_state/001_initial_schema.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/schemas/db/global_user_state/002_add_workspace_to_cluster_history.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/schemas/db/global_user_state/003_fix_initial_revision.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/schemas/db/global_user_state/004_is_managed.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/schemas/db/global_user_state/005_cluster_event.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/schemas/db/global_user_state/006_provision_log.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/schemas/db/global_user_state/007_cluster_event_request_id.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/schemas/db/script.py.mako +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/schemas/db/serve_state/001_initial_schema.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/schemas/db/spot_jobs/001_initial_schema.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/schemas/db/spot_jobs/002_cluster_pool.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/schemas/db/spot_jobs/003_pool_hash.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/schemas/generated/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/schemas/generated/autostopv1_pb2.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/schemas/generated/autostopv1_pb2.pyi +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/schemas/generated/autostopv1_pb2_grpc.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/serve/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/serve/autoscalers.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/serve/client/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/serve/client/impl.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/serve/client/sdk.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/serve/client/sdk_async.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/serve/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/serve/controller.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/serve/load_balancer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/serve/load_balancing_policies.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/serve/replica_managers.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/serve/serve_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/serve/serve_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/serve/server/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/serve/server/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/serve/server/impl.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/serve/server/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/serve/service.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/serve/service_spec.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/serve/spot_placer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/server/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/server/auth/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/server/auth/authn.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/server/auth/oauth2_proxy.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/server/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/server/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/server/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/server/daemons.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/server/html/log.html +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/server/html/token_page.html +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/server/metrics.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/server/requests/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/server/requests/event_loop.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/server/requests/preconditions.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/server/requests/process.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/server/requests/queues/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/server/requests/queues/local_queue.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/server/requests/queues/mp_queue.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/server/requests/serializers/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/server/requests/serializers/decoders.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/server/requests/serializers/encoders.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/server/rest.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/server/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/server/state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/server/stream_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/server/uvicorn.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/server/versions.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/setup_files/MANIFEST.in +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/setup_files/alembic.ini +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/setup_files/dependencies.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/setup_files/setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/sky_logging.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/skylet/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/skylet/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/skylet/attempt_skylet.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/skylet/autostop_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/skylet/configs.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/skylet/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/skylet/events.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/skylet/job_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/skylet/log_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/skylet/log_lib.pyi +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/skylet/providers/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/skylet/providers/command_runner.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/skylet/providers/ibm/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/skylet/providers/ibm/node_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/skylet/providers/ibm/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/skylet/providers/ibm/vpc_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/skylet/ray_patches/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/skylet/ray_patches/autoscaler.py.diff +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/skylet/ray_patches/autoscaler.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/skylet/ray_patches/cli.py.diff +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/skylet/ray_patches/cli.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/skylet/ray_patches/command_runner.py.diff +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/skylet/ray_patches/command_runner.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/skylet/ray_patches/log_monitor.py.diff +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/skylet/ray_patches/log_monitor.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/skylet/ray_patches/resource_demand_scheduler.py.diff +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/skylet/ray_patches/resource_demand_scheduler.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/skylet/ray_patches/updater.py.diff +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/skylet/ray_patches/updater.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/skylet/ray_patches/worker.py.diff +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/skylet/ray_patches/worker.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/skylet/services.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/skylet/skylet.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/skylet/subprocess_daemon.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/skypilot_config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/ssh_node_pools/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/ssh_node_pools/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/ssh_node_pools/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/task.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/templates/aws-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/templates/azure-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/templates/cudo-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/templates/do-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/templates/fluidstack-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/templates/gcp-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/templates/hyperbolic-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/templates/ibm-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/templates/jobs-controller.yaml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/templates/kubernetes-ingress.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/templates/kubernetes-loadbalancer.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/templates/kubernetes-port-forward-proxy-command.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/templates/kubernetes-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/templates/kubernetes-ssh-jump.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/templates/lambda-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/templates/local-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/templates/oci-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/templates/paperspace-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/templates/runpod-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/templates/scp-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/templates/sky-serve-controller.yaml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/templates/skypilot-server-kubernetes-proxy.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/templates/vast-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/templates/vsphere-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/templates/websocket_proxy.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/usage/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/usage/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/usage/usage_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/users/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/users/model.conf +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/users/rbac.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/users/token_service.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/accelerator_registry.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/admin_policy_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/annotations.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/atomic.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/aws/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/aws/get_default_security_group.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/benchmark_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/cli_utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/cli_utils/status_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/cluster_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/command_runner.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/command_runner.pyi +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/common_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/config_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/context.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/context_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/control_master_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/controller_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/dag_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/db/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/db/migration_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/directory_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/env_options.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/git.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/git_clone.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/infra_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/kubernetes/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/kubernetes/cleanup-tunnel.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/kubernetes/config_map_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/kubernetes/create_cluster.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/kubernetes/delete_cluster.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/kubernetes/deploy_remote_cluster.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/kubernetes/exec_kubeconfig_converter.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/kubernetes/generate_kind_config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/kubernetes/generate_kubeconfig.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/kubernetes/gpu_labeler.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/kubernetes/k8s_gpu_labeler_job.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/kubernetes/kubernetes_deploy_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/kubernetes/rsync_helper.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/kubernetes/ssh-tunnel.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/kubernetes/ssh_jump_lifecycle_manager.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/kubernetes/ssh_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/kubernetes_enums.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/lock_events.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/locks.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/log_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/message_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/perf_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/registry.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/resource_checker.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/resources_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/rich_console_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/rich_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/serialize_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/status_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/subprocess_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/tempstore.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/timeline.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/ux_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/validator.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/volume.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/utils/yaml_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/volumes/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/volumes/client/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/volumes/client/sdk.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/volumes/server/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/volumes/server/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/volumes/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/volumes/volume.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/workspaces/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/workspaces/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/workspaces/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/workspaces/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/skypilot_nightly.egg-info/dependency_links.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/skypilot_nightly.egg-info/entry_points.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/skypilot_nightly.egg-info/requires.txt +34 -34
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/skypilot_nightly.egg-info/top_level.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/tests/test_api.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/tests/test_api_compatibility.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/tests/test_cli.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/tests/test_config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/tests/test_db_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/tests/test_failover.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/tests/test_global_user_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/tests/test_jobs.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/tests/test_jobs_and_serve.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/tests/test_list_accelerators.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/tests/test_no_parellel.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/tests/test_optimizer_dryruns.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/tests/test_optimizer_random_dag.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/tests/test_serve_autoscaler.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/tests/test_ssh_proxy_lag.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/tests/test_storage.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/tests/test_wheels.py +0 -0
- {skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/tests/test_yaml_parser.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: skypilot-nightly
|
|
3
|
-
Version: 1.0.0.
|
|
3
|
+
Version: 1.0.0.dev20250906
|
|
4
4
|
Summary: SkyPilot: Run AI on Any Infra — Unified, Faster, Cheaper.
|
|
5
5
|
Author: SkyPilot Team
|
|
6
6
|
License: Apache 2.0
|
|
@@ -145,48 +145,48 @@ Requires-Dist: grpcio>=1.63.0; extra == "server"
|
|
|
145
145
|
Requires-Dist: protobuf<7.0.0,>=5.26.1; extra == "server"
|
|
146
146
|
Requires-Dist: aiosqlite; extra == "server"
|
|
147
147
|
Provides-Extra: all
|
|
148
|
-
Requires-Dist: azure-cli>=2.65.0; extra == "all"
|
|
149
|
-
Requires-Dist: pydo>=0.3.0; extra == "all"
|
|
150
|
-
Requires-Dist: aiohttp; extra == "all"
|
|
151
148
|
Requires-Dist: oci; extra == "all"
|
|
152
|
-
Requires-Dist:
|
|
153
|
-
Requires-Dist:
|
|
154
|
-
Requires-Dist:
|
|
155
|
-
Requires-Dist: passlib; extra == "all"
|
|
156
|
-
Requires-Dist: websockets; extra == "all"
|
|
157
|
-
Requires-Dist: ibm-cloud-sdk-core; extra == "all"
|
|
158
|
-
Requires-Dist: azure-mgmt-network>=27.0.0; extra == "all"
|
|
159
|
-
Requires-Dist: nebius>=0.2.47; extra == "all"
|
|
160
|
-
Requires-Dist: casbin; extra == "all"
|
|
161
|
-
Requires-Dist: botocore>=1.29.10; extra == "all"
|
|
162
|
-
Requires-Dist: ibm-cos-sdk; extra == "all"
|
|
163
|
-
Requires-Dist: azure-storage-blob>=12.23.1; extra == "all"
|
|
164
|
-
Requires-Dist: msgraph-sdk; extra == "all"
|
|
165
|
-
Requires-Dist: ibm-platform-services>=0.48.0; extra == "all"
|
|
166
|
-
Requires-Dist: azure-core>=1.24.0; extra == "all"
|
|
167
|
-
Requires-Dist: pyjwt; extra == "all"
|
|
168
|
-
Requires-Dist: kubernetes!=32.0.0,>=20.0.0; extra == "all"
|
|
169
|
-
Requires-Dist: vastai-sdk>=0.1.12; extra == "all"
|
|
149
|
+
Requires-Dist: google-cloud-storage; extra == "all"
|
|
150
|
+
Requires-Dist: ray[default]!=2.6.0,>=2.2.0; extra == "all"
|
|
151
|
+
Requires-Dist: colorama<0.4.5; extra == "all"
|
|
170
152
|
Requires-Dist: aiosqlite; extra == "all"
|
|
171
|
-
Requires-Dist:
|
|
153
|
+
Requires-Dist: azure-identity>=1.19.0; extra == "all"
|
|
154
|
+
Requires-Dist: vastai-sdk>=0.1.12; extra == "all"
|
|
172
155
|
Requires-Dist: boto3>=1.26.1; extra == "all"
|
|
173
|
-
Requires-Dist:
|
|
156
|
+
Requires-Dist: azure-core>=1.24.0; extra == "all"
|
|
157
|
+
Requires-Dist: azure-common; extra == "all"
|
|
158
|
+
Requires-Dist: cudo-compute>=0.1.10; extra == "all"
|
|
159
|
+
Requires-Dist: kubernetes!=32.0.0,>=20.0.0; extra == "all"
|
|
174
160
|
Requires-Dist: protobuf<7.0.0,>=5.26.1; extra == "all"
|
|
175
|
-
Requires-Dist:
|
|
161
|
+
Requires-Dist: pyjwt; extra == "all"
|
|
176
162
|
Requires-Dist: grpcio>=1.63.0; extra == "all"
|
|
177
|
-
Requires-Dist: msrestazure; extra == "all"
|
|
178
|
-
Requires-Dist: google-api-python-client>=2.69.0; extra == "all"
|
|
179
|
-
Requires-Dist: azure-mgmt-compute>=33.0.0; extra == "all"
|
|
180
163
|
Requires-Dist: sqlalchemy_adapter; extra == "all"
|
|
164
|
+
Requires-Dist: ibm-cloud-sdk-core; extra == "all"
|
|
165
|
+
Requires-Dist: passlib; extra == "all"
|
|
181
166
|
Requires-Dist: awscli>=1.27.10; extra == "all"
|
|
182
|
-
Requires-Dist:
|
|
183
|
-
Requires-Dist: azure-
|
|
184
|
-
Requires-Dist:
|
|
185
|
-
Requires-Dist:
|
|
186
|
-
Requires-Dist:
|
|
187
|
-
Requires-Dist:
|
|
188
|
-
Requires-Dist:
|
|
167
|
+
Requires-Dist: aiohttp; extra == "all"
|
|
168
|
+
Requires-Dist: azure-mgmt-compute>=33.0.0; extra == "all"
|
|
169
|
+
Requires-Dist: ibm-cos-sdk; extra == "all"
|
|
170
|
+
Requires-Dist: pyopenssl<24.3.0,>=23.2.0; extra == "all"
|
|
171
|
+
Requires-Dist: ibm-vpc; extra == "all"
|
|
172
|
+
Requires-Dist: runpod>=1.6.1; extra == "all"
|
|
173
|
+
Requires-Dist: nebius>=0.2.47; extra == "all"
|
|
174
|
+
Requires-Dist: msgraph-sdk; extra == "all"
|
|
175
|
+
Requires-Dist: websockets; extra == "all"
|
|
176
|
+
Requires-Dist: anyio; extra == "all"
|
|
177
|
+
Requires-Dist: docker; extra == "all"
|
|
189
178
|
Requires-Dist: pyvmomi==8.0.1.0.2; extra == "all"
|
|
179
|
+
Requires-Dist: azure-cli>=2.65.0; extra == "all"
|
|
180
|
+
Requires-Dist: pydo>=0.3.0; extra == "all"
|
|
181
|
+
Requires-Dist: google-api-python-client>=2.69.0; extra == "all"
|
|
182
|
+
Requires-Dist: msrestazure; extra == "all"
|
|
183
|
+
Requires-Dist: ibm-platform-services>=0.48.0; extra == "all"
|
|
184
|
+
Requires-Dist: azure-storage-blob>=12.23.1; extra == "all"
|
|
185
|
+
Requires-Dist: python-dateutil; extra == "all"
|
|
186
|
+
Requires-Dist: casbin; extra == "all"
|
|
187
|
+
Requires-Dist: azure-core>=1.31.0; extra == "all"
|
|
188
|
+
Requires-Dist: azure-mgmt-network>=27.0.0; extra == "all"
|
|
189
|
+
Requires-Dist: botocore>=1.29.10; extra == "all"
|
|
190
190
|
Dynamic: author
|
|
191
191
|
Dynamic: classifier
|
|
192
192
|
Dynamic: description
|
|
@@ -284,21 +284,21 @@ SkyPilot supports your existing GPU, TPU, and CPU workloads, with no code change
|
|
|
284
284
|
Install with pip:
|
|
285
285
|
```bash
|
|
286
286
|
# Choose your clouds:
|
|
287
|
-
pip install -U "skypilot[kubernetes,aws,gcp,azure,oci,lambda,runpod,fluidstack,paperspace,cudo,ibm,scp
|
|
287
|
+
pip install -U "skypilot[kubernetes,aws,gcp,azure,oci,nebius,lambda,runpod,fluidstack,paperspace,cudo,ibm,scp]"
|
|
288
288
|
```
|
|
289
289
|
To get the latest features and fixes, use the nightly build or [install from source](https://docs.skypilot.co/en/latest/getting-started/installation.html):
|
|
290
290
|
```bash
|
|
291
291
|
# Choose your clouds:
|
|
292
|
-
pip install "skypilot-nightly[kubernetes,aws,gcp,azure,oci,lambda,runpod,fluidstack,paperspace,cudo,ibm,scp
|
|
292
|
+
pip install "skypilot-nightly[kubernetes,aws,gcp,azure,oci,nebius,lambda,runpod,fluidstack,paperspace,cudo,ibm,scp]"
|
|
293
293
|
```
|
|
294
294
|
|
|
295
295
|
<p align="center">
|
|
296
296
|
<img src="docs/source/_static/intro.gif" alt="SkyPilot">
|
|
297
297
|
</p>
|
|
298
298
|
|
|
299
|
-
Current supported infra: Kubernetes, AWS, GCP, Azure, OCI, Lambda Cloud, Fluidstack,
|
|
300
|
-
|
|
301
|
-
VMware vSphere
|
|
299
|
+
Current supported infra: Kubernetes, AWS, GCP, Azure, OCI, Nebius, Lambda Cloud, RunPod, Fluidstack,
|
|
300
|
+
Cudo, Digital Ocean, Paperspace, Cloudflare, Samsung, IBM, Vast.ai,
|
|
301
|
+
VMware vSphere.
|
|
302
302
|
<p align="center">
|
|
303
303
|
<img alt="SkyPilot" src="https://raw.githubusercontent.com/skypilot-org/skypilot/master/docs/source/images/cloud-logos-light.png" width=85%>
|
|
304
304
|
</p>
|
|
@@ -369,7 +369,7 @@ Latest featured examples:
|
|
|
369
369
|
|
|
370
370
|
| Task | Examples |
|
|
371
371
|
|----------|----------|
|
|
372
|
-
| Training | [Verl](https://docs.skypilot.co/en/latest/examples/training/verl.html), [Finetune Llama 4](https://docs.skypilot.co/en/latest/examples/training/llama-4-finetuning.html), [PyTorch](https://docs.skypilot.co/en/latest/getting-started/tutorial.html), [DeepSpeed](https://docs.skypilot.co/en/latest/examples/training/deepspeed.html), [NeMo](https://docs.skypilot.co/en/latest/examples/training/nemo.html), [Ray](https://docs.skypilot.co/en/latest/examples/training/ray.html), [Unsloth](https://docs.skypilot.co/en/latest/examples/training/unsloth.html), [Jax/TPU](https://docs.skypilot.co/en/latest/examples/training/tpu.html) |
|
|
372
|
+
| Training | [Verl](https://docs.skypilot.co/en/latest/examples/training/verl.html), [Finetune Llama 4](https://docs.skypilot.co/en/latest/examples/training/llama-4-finetuning.html), [TorchTitan](https://docs.skypilot.co/en/latest/examples/training/torchtitan.html), [PyTorch](https://docs.skypilot.co/en/latest/getting-started/tutorial.html), [DeepSpeed](https://docs.skypilot.co/en/latest/examples/training/deepspeed.html), [NeMo](https://docs.skypilot.co/en/latest/examples/training/nemo.html), [Ray](https://docs.skypilot.co/en/latest/examples/training/ray.html), [Unsloth](https://docs.skypilot.co/en/latest/examples/training/unsloth.html), [Jax/TPU](https://docs.skypilot.co/en/latest/examples/training/tpu.html) |
|
|
373
373
|
| Serving | [vLLM](https://docs.skypilot.co/en/latest/examples/serving/vllm.html), [SGLang](https://docs.skypilot.co/en/latest/examples/serving/sglang.html), [Ollama](https://docs.skypilot.co/en/latest/examples/serving/ollama.html) |
|
|
374
374
|
| Models | [DeepSeek-R1](https://docs.skypilot.co/en/latest/examples/models/deepseek-r1.html), [Llama 4](https://docs.skypilot.co/en/latest/examples/models/llama-4.html), [Llama 3](https://docs.skypilot.co/en/latest/examples/models/llama-3.html), [CodeLlama](https://docs.skypilot.co/en/latest/examples/models/codellama.html), [Qwen](https://docs.skypilot.co/en/latest/examples/models/qwen.html), [Kimi-K2](https://docs.skypilot.co/en/latest/examples/models/kimi-k2.html), [Mixtral](https://docs.skypilot.co/en/latest/examples/models/mixtral.html) |
|
|
375
375
|
| AI apps | [RAG](https://docs.skypilot.co/en/latest/examples/applications/rag.html), [vector databases](https://docs.skypilot.co/en/latest/examples/applications/vector_database.html) (ChromaDB, CLIP) |
|
|
@@ -90,21 +90,21 @@ SkyPilot supports your existing GPU, TPU, and CPU workloads, with no code change
|
|
|
90
90
|
Install with pip:
|
|
91
91
|
```bash
|
|
92
92
|
# Choose your clouds:
|
|
93
|
-
pip install -U "skypilot[kubernetes,aws,gcp,azure,oci,lambda,runpod,fluidstack,paperspace,cudo,ibm,scp
|
|
93
|
+
pip install -U "skypilot[kubernetes,aws,gcp,azure,oci,nebius,lambda,runpod,fluidstack,paperspace,cudo,ibm,scp]"
|
|
94
94
|
```
|
|
95
95
|
To get the latest features and fixes, use the nightly build or [install from source](https://docs.skypilot.co/en/latest/getting-started/installation.html):
|
|
96
96
|
```bash
|
|
97
97
|
# Choose your clouds:
|
|
98
|
-
pip install "skypilot-nightly[kubernetes,aws,gcp,azure,oci,lambda,runpod,fluidstack,paperspace,cudo,ibm,scp
|
|
98
|
+
pip install "skypilot-nightly[kubernetes,aws,gcp,azure,oci,nebius,lambda,runpod,fluidstack,paperspace,cudo,ibm,scp]"
|
|
99
99
|
```
|
|
100
100
|
|
|
101
101
|
<p align="center">
|
|
102
102
|
<img src="docs/source/_static/intro.gif" alt="SkyPilot">
|
|
103
103
|
</p>
|
|
104
104
|
|
|
105
|
-
Current supported infra: Kubernetes, AWS, GCP, Azure, OCI, Lambda Cloud, Fluidstack,
|
|
106
|
-
|
|
107
|
-
VMware vSphere
|
|
105
|
+
Current supported infra: Kubernetes, AWS, GCP, Azure, OCI, Nebius, Lambda Cloud, RunPod, Fluidstack,
|
|
106
|
+
Cudo, Digital Ocean, Paperspace, Cloudflare, Samsung, IBM, Vast.ai,
|
|
107
|
+
VMware vSphere.
|
|
108
108
|
<p align="center">
|
|
109
109
|
<picture>
|
|
110
110
|
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/skypilot-org/skypilot/master/docs/source/images/cloud-logos-dark.png">
|
|
@@ -178,7 +178,7 @@ Latest featured examples:
|
|
|
178
178
|
|
|
179
179
|
| Task | Examples |
|
|
180
180
|
|----------|----------|
|
|
181
|
-
| Training | [Verl](https://docs.skypilot.co/en/latest/examples/training/verl.html), [Finetune Llama 4](https://docs.skypilot.co/en/latest/examples/training/llama-4-finetuning.html), [PyTorch](https://docs.skypilot.co/en/latest/getting-started/tutorial.html), [DeepSpeed](https://docs.skypilot.co/en/latest/examples/training/deepspeed.html), [NeMo](https://docs.skypilot.co/en/latest/examples/training/nemo.html), [Ray](https://docs.skypilot.co/en/latest/examples/training/ray.html), [Unsloth](https://docs.skypilot.co/en/latest/examples/training/unsloth.html), [Jax/TPU](https://docs.skypilot.co/en/latest/examples/training/tpu.html) |
|
|
181
|
+
| Training | [Verl](https://docs.skypilot.co/en/latest/examples/training/verl.html), [Finetune Llama 4](https://docs.skypilot.co/en/latest/examples/training/llama-4-finetuning.html), [TorchTitan](https://docs.skypilot.co/en/latest/examples/training/torchtitan.html), [PyTorch](https://docs.skypilot.co/en/latest/getting-started/tutorial.html), [DeepSpeed](https://docs.skypilot.co/en/latest/examples/training/deepspeed.html), [NeMo](https://docs.skypilot.co/en/latest/examples/training/nemo.html), [Ray](https://docs.skypilot.co/en/latest/examples/training/ray.html), [Unsloth](https://docs.skypilot.co/en/latest/examples/training/unsloth.html), [Jax/TPU](https://docs.skypilot.co/en/latest/examples/training/tpu.html) |
|
|
182
182
|
| Serving | [vLLM](https://docs.skypilot.co/en/latest/examples/serving/vllm.html), [SGLang](https://docs.skypilot.co/en/latest/examples/serving/sglang.html), [Ollama](https://docs.skypilot.co/en/latest/examples/serving/ollama.html) |
|
|
183
183
|
| Models | [DeepSeek-R1](https://docs.skypilot.co/en/latest/examples/models/deepseek-r1.html), [Llama 4](https://docs.skypilot.co/en/latest/examples/models/llama-4.html), [Llama 3](https://docs.skypilot.co/en/latest/examples/models/llama-3.html), [CodeLlama](https://docs.skypilot.co/en/latest/examples/models/codellama.html), [Qwen](https://docs.skypilot.co/en/latest/examples/models/qwen.html), [Kimi-K2](https://docs.skypilot.co/en/latest/examples/models/kimi-k2.html), [Mixtral](https://docs.skypilot.co/en/latest/examples/models/mixtral.html) |
|
|
184
184
|
| AI apps | [RAG](https://docs.skypilot.co/en/latest/examples/applications/rag.html), [vector databases](https://docs.skypilot.co/en/latest/examples/applications/vector_database.html) (ChromaDB, CLIP) |
|
|
@@ -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 = '5f5c370acf6a60ccb53feb289f87f77ae0960e3b'
|
|
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.dev20250906'
|
|
41
41
|
__root_dir__ = directory_utils.get_sky_dir()
|
|
42
42
|
|
|
43
43
|
|
|
@@ -767,6 +767,52 @@ def write_cluster_config(
|
|
|
767
767
|
assert region_name in ssh_proxy_command_config, (
|
|
768
768
|
region_name, ssh_proxy_command_config)
|
|
769
769
|
ssh_proxy_command = ssh_proxy_command_config[region_name]
|
|
770
|
+
|
|
771
|
+
use_internal_ips = skypilot_config.get_effective_region_config(
|
|
772
|
+
cloud=str(cloud).lower(),
|
|
773
|
+
region=region.name,
|
|
774
|
+
keys=('use_internal_ips',),
|
|
775
|
+
default_value=False)
|
|
776
|
+
if isinstance(cloud, clouds.AWS):
|
|
777
|
+
# If the use_ssm flag is set to true, we use the ssm proxy command.
|
|
778
|
+
use_ssm = skypilot_config.get_effective_region_config(
|
|
779
|
+
cloud=str(cloud).lower(),
|
|
780
|
+
region=region.name,
|
|
781
|
+
keys=('use_ssm',),
|
|
782
|
+
default_value=False)
|
|
783
|
+
|
|
784
|
+
if use_ssm and ssh_proxy_command is not None:
|
|
785
|
+
raise exceptions.InvalidCloudConfigs(
|
|
786
|
+
'use_ssm is set to true, but ssh_proxy_command '
|
|
787
|
+
f'is already set to {ssh_proxy_command!r}. Please remove '
|
|
788
|
+
'ssh_proxy_command or set use_ssm to false.')
|
|
789
|
+
|
|
790
|
+
if not use_ssm and use_internal_ips and ssh_proxy_command is None:
|
|
791
|
+
logger.warning(
|
|
792
|
+
f'{colorama.Fore.YELLOW}'
|
|
793
|
+
'use_internal_ips is set to true, '
|
|
794
|
+
'but ssh_proxy_command is not set. Defaulting to '
|
|
795
|
+
'using SSM. Specify ssh_proxy_command to use a different '
|
|
796
|
+
'https://docs.skypilot.co/en/latest/reference/config.html#'
|
|
797
|
+
f'aws.ssh_proxy_command.{colorama.Style.RESET_ALL}')
|
|
798
|
+
use_ssm = True
|
|
799
|
+
if use_ssm:
|
|
800
|
+
aws_profile = os.environ.get('AWS_PROFILE', None)
|
|
801
|
+
profile_str = f'--profile {aws_profile}' if aws_profile else ''
|
|
802
|
+
ip_address_filter = ('Name=private-ip-address,Values=%h'
|
|
803
|
+
if use_internal_ips else
|
|
804
|
+
'Name=ip-address,Values=%h')
|
|
805
|
+
get_instance_id_command = 'aws ec2 describe-instances ' + \
|
|
806
|
+
f'--region {region_name} --filters {ip_address_filter} ' + \
|
|
807
|
+
'--query \"Reservations[].Instances[].InstanceId\" ' + \
|
|
808
|
+
f'{profile_str} --output text'
|
|
809
|
+
ssm_proxy_command = 'aws ssm start-session --target ' + \
|
|
810
|
+
f'\"$({get_instance_id_command})\" ' + \
|
|
811
|
+
f'--region {region_name} {profile_str} ' + \
|
|
812
|
+
'--document-name AWS-StartSSHSession ' + \
|
|
813
|
+
'--parameters portNumber=%p'
|
|
814
|
+
ssh_proxy_command = ssm_proxy_command
|
|
815
|
+
region_name = 'ssm-session'
|
|
770
816
|
logger.debug(f'Using ssh_proxy_command: {ssh_proxy_command!r}')
|
|
771
817
|
|
|
772
818
|
# User-supplied global instance tags from ~/.sky/config.yaml.
|
|
@@ -4532,6 +4532,17 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
|
|
|
4532
4532
|
prev_cluster_status, _ = (
|
|
4533
4533
|
backend_utils.refresh_cluster_status_handle(
|
|
4534
4534
|
handle.cluster_name,
|
|
4535
|
+
# There is a case where
|
|
4536
|
+
# 1. The cluster was interrupted during provisioning.
|
|
4537
|
+
# 2. The API request to create the cluster instances was
|
|
4538
|
+
# sent to the cloud, but hasn't been processed yet.
|
|
4539
|
+
# In this case, the cluster will be INIT. We should do a
|
|
4540
|
+
# hard status refresh to see if the instances are
|
|
4541
|
+
# actually there or not. Otherwise, teardown may not
|
|
4542
|
+
# find the instances, leading to a leak. This was
|
|
4543
|
+
# observed in AWS. See also
|
|
4544
|
+
# _LAUNCH_DOUBLE_CHECK_WINDOW in backend_utils.py.
|
|
4545
|
+
force_refresh_statuses={status_lib.ClusterStatus.INIT},
|
|
4535
4546
|
acquire_per_cluster_status_lock=False))
|
|
4536
4547
|
cluster_status_fetched = True
|
|
4537
4548
|
except exceptions.ClusterStatusFetchingError:
|
|
@@ -2454,6 +2454,12 @@ def api_login(endpoint: Optional[str] = None,
|
|
|
2454
2454
|
f'{dashboard_msg}',
|
|
2455
2455
|
fg='green')
|
|
2456
2456
|
|
|
2457
|
+
def _set_user_hash(user_hash: Optional[str]) -> None:
|
|
2458
|
+
if user_hash is not None:
|
|
2459
|
+
if not common_utils.is_valid_user_hash(user_hash):
|
|
2460
|
+
raise ValueError(f'Invalid user hash: {user_hash}')
|
|
2461
|
+
common_utils.set_user_hash_locally(user_hash)
|
|
2462
|
+
|
|
2457
2463
|
# Handle service account token authentication
|
|
2458
2464
|
if service_account_token:
|
|
2459
2465
|
if not service_account_token.startswith('sky_'):
|
|
@@ -2469,6 +2475,8 @@ def api_login(endpoint: Optional[str] = None,
|
|
|
2469
2475
|
server_status, api_server_info = server_common.check_server_healthy(
|
|
2470
2476
|
endpoint)
|
|
2471
2477
|
dashboard_url = server_common.get_dashboard_url(endpoint)
|
|
2478
|
+
if api_server_info.user is not None:
|
|
2479
|
+
_set_user_hash(api_server_info.user.get('id'))
|
|
2472
2480
|
_show_logged_in_message(endpoint, dashboard_url,
|
|
2473
2481
|
api_server_info.user, server_status)
|
|
2474
2482
|
|
|
@@ -2613,14 +2621,14 @@ def api_login(endpoint: Optional[str] = None,
|
|
|
2613
2621
|
# Now that the cookies are parsed, save them to the cookie jar.
|
|
2614
2622
|
server_common.set_api_cookie_jar(cookie_jar)
|
|
2615
2623
|
|
|
2616
|
-
#
|
|
2617
|
-
|
|
2618
|
-
|
|
2619
|
-
|
|
2620
|
-
|
|
2621
|
-
|
|
2622
|
-
|
|
2623
|
-
|
|
2624
|
+
# Set the user hash in the local file.
|
|
2625
|
+
# If the server already has a token for this user set it to the local
|
|
2626
|
+
# file, otherwise use the new user hash.
|
|
2627
|
+
if (api_server_info.user is not None and
|
|
2628
|
+
api_server_info.user.get('id') is not None):
|
|
2629
|
+
_set_user_hash(api_server_info.user.get('id'))
|
|
2630
|
+
else:
|
|
2631
|
+
_set_user_hash(user_hash)
|
|
2624
2632
|
else:
|
|
2625
2633
|
# Check if basic auth is enabled
|
|
2626
2634
|
if api_server_info.basic_auth_enabled:
|
|
@@ -2628,14 +2636,10 @@ def api_login(endpoint: Optional[str] = None,
|
|
|
2628
2636
|
with ux_utils.print_exception_no_traceback():
|
|
2629
2637
|
raise ValueError(
|
|
2630
2638
|
'Basic auth is enabled but no valid user is found')
|
|
2631
|
-
|
|
2632
|
-
|
|
2633
|
-
|
|
2634
|
-
|
|
2635
|
-
with open(os.path.expanduser('~/.sky/user_hash'),
|
|
2636
|
-
'w',
|
|
2637
|
-
encoding='utf-8') as f:
|
|
2638
|
-
f.write(user_hash)
|
|
2639
|
+
|
|
2640
|
+
# Set the user hash in the local file.
|
|
2641
|
+
if api_server_info.user is not None:
|
|
2642
|
+
_set_user_hash(api_server_info.user.get('id'))
|
|
2639
2643
|
|
|
2640
2644
|
# Set the endpoint in the config file
|
|
2641
2645
|
_save_config_updates(endpoint=endpoint)
|
{skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/sky/clouds/nebius.py
RENAMED
|
@@ -245,9 +245,12 @@ class Nebius(clouds.Cloud):
|
|
|
245
245
|
'filesystem_mount_tag': f'filesystem-skypilot-{i+1}'
|
|
246
246
|
})
|
|
247
247
|
|
|
248
|
+
use_static_ip_address = skypilot_config.get_nested(
|
|
249
|
+
('nebius', 'use_static_ip_address'), default_value=False)
|
|
248
250
|
resources_vars: Dict[str, Any] = {
|
|
249
251
|
'instance_type': resources.instance_type,
|
|
250
252
|
'custom_resources': custom_resources,
|
|
253
|
+
'use_static_ip_address': use_static_ip_address,
|
|
251
254
|
'region': region.name,
|
|
252
255
|
'image_id': image_family,
|
|
253
256
|
# Nebius does not support specific zones.
|
{skypilot_nightly-1.0.0.dev20250904 → skypilot_nightly-1.0.0.dev20250906}/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-8df25bce0107f4bd.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/ZOaq9s6U49jSoGAMkeKqu/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/ZOaq9s6U49jSoGAMkeKqu/_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":"ZOaq9s6U49jSoGAMkeKqu","assetPrefix":"/dashboard","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
self.__BUILD_MANIFEST=function(s,c,a,e,t,f,u,n,
|
|
1
|
+
self.__BUILD_MANIFEST=function(s,c,a,e,t,f,b,u,n,o,j,i,r,k){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},"/":["static/chunks/pages/index-444f1804401f04ea.js"],"/_error":["static/chunks/pages/_error-c66a4e8afc46f17b.js"],"/clusters":["static/chunks/pages/clusters-469814d711d63b1b.js"],"/clusters/[cluster]":[s,c,a,f,b,"static/chunks/4676-9da7fdbde90b5549.js",o,e,t,u,j,n,i,"static/chunks/6856-6e2bc8a6fd0867af.js",r,k,"static/chunks/9037-fa1737818d0a0969.js","static/chunks/pages/clusters/[cluster]-0b4b35dc1dfe046c.js"],"/clusters/[cluster]/[job]":[s,c,a,f,e,t,n,"static/chunks/pages/clusters/[cluster]/[job]-1cbba24bd1bd35f8.js"],"/config":["static/chunks/pages/config-dfb9bf07b13045f4.js"],"/infra":["static/chunks/pages/infra-aabba60d57826e0f.js"],"/infra/[context]":["static/chunks/pages/infra/[context]-6563820e094f68ca.js"],"/jobs":["static/chunks/pages/jobs-1f70d9faa564804f.js"],"/jobs/pools/[pool]":[s,c,a,b,o,e,t,u,"static/chunks/pages/jobs/pools/[pool]-07349868f7905d37.js"],"/jobs/[job]":[s,c,a,f,b,o,e,t,u,n,"static/chunks/pages/jobs/[job]-dd64309c3fe67ed2.js"],"/users":["static/chunks/pages/users-018bf31cda52e11b.js"],"/volumes":["static/chunks/pages/volumes-739726d6b823f532.js"],"/workspace/new":["static/chunks/pages/workspace/new-3f88a1c7e86a3f86.js"],"/workspaces":["static/chunks/pages/workspaces-7598c33a746cdc91.js"],"/workspaces/[name]":[s,c,a,f,b,"static/chunks/1836-37fede578e2da5f8.js",e,t,u,j,n,i,r,k,"static/chunks/1141-943efc7aff0f0c06.js","static/chunks/pages/workspaces/[name]-af76bb06dbb3954f.js"],sortedPages:["/","/_app","/_error","/clusters","/clusters/[cluster]","/clusters/[cluster]/[job]","/config","/infra","/infra/[context]","/jobs","/jobs/pools/[pool]","/jobs/[job]","/users","/volumes","/workspace/new","/workspaces","/workspaces/[name]"]}}("static/chunks/616-3d59f75e2ccf9321.js","static/chunks/6130-2be46d70a38f1e82.js","static/chunks/5739-d67458fcb1386c92.js","static/chunks/6989-01359c57e018caa4.js","static/chunks/3850-ff4a9a69d978632b.js","static/chunks/7411-b15471acd2cba716.js","static/chunks/1272-1ef0bf0237faccdb.js","static/chunks/8969-0be3036bf86f8256.js","static/chunks/6135-4b4d5e824b7f9d3c.js","static/chunks/754-d0da8ab45f9509e9.js","static/chunks/6990-08b2a1cae076a943.js","static/chunks/1121-408ed10b2f9fce17.js","static/chunks/6601-06114c982db410b6.js","static/chunks/3015-86cabed5d4669ad0.js"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
|
skypilot_nightly-1.0.0.dev20250906/sky/dashboard/out/_next/static/chunks/6856-6e2bc8a6fd0867af.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6856],{32045:function(e,t,r){r.d(t,{Cu:function(){return s},R8:function(){return i},ef:function(){return n}});var o=r(93225),a=r(47145);async function n(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0],t=(await Promise.resolve().then(r.bind(r,6378))).default,{getClusters:n}=await Promise.resolve().then(r.bind(r,23266)),{getManagedJobs:s}=await Promise.resolve().then(r.bind(r,68969));try{let r=await t.get(s,[{allUsers:!0}]),l=(null==r?void 0:r.jobs)||[],c=await t.get(n),i=[];try{if(e){console.log("Force refreshing clouds by running sky check...");try{let e=await a.x.post("/check",{}),t=e.headers.get("X-Skypilot-Request-ID")||e.headers.get("X-Request-ID"),r=await a.x.get("/api/get?request_id=".concat(t)),o=await r.json();console.log("Sky check completed:",o)}catch(e){console.error("Error running sky check:",e)}}let t=await a.x.get("/enabled_clouds"),r=t.headers.get("X-Skypilot-Request-ID")||t.headers.get("X-Request-ID"),o=await a.x.get("/api/get?request_id=".concat(r)),n=await o.json();i=n.return_value?JSON.parse(n.return_value):[],console.log("Enabled clouds:",i)}catch(e){console.error("Error fetching enabled clouds:",e),i=[]}let u={};o.$m.forEach(e=>{let t=i.includes(e.toLowerCase());u[e]={name:e,clusters:0,jobs:0,enabled:t}}),(c||[]).forEach(e=>{if(e.cloud){let t=e.cloud;u[t]&&(u[t].clusters+=1,u[t].enabled=!0)}}),l.forEach(e=>{if(e.cloud){let t=e.cloud;u[t]&&(u[t].jobs+=1,u[t].enabled=!0)}});let d=o.$m.length,g=Object.values(u).filter(e=>e.enabled).length;return{clouds:Object.values(u).filter(e=>e.enabled).sort((e,t)=>e.name.localeCompare(t.name)),totalClouds:d,enabledClouds:g}}catch(e){return console.error("Error fetching cloud infrastructure:",e),{clouds:[],totalClouds:o.$m.length,enabledClouds:0}}}async function s(){let e=(await Promise.resolve().then(r.bind(r,6378))).default,{getClusters:t}=await Promise.resolve().then(r.bind(r,23266)),o=await e.get(t);return await d(o||[])}async function l(){try{let e=await a.x.get("/all_contexts");if(!e.ok)return console.error("Error fetching all contexts: ".concat(e.status," ").concat(e.statusText)),[];let t=e.headers.get("X-Skypilot-Request-ID")||e.headers.get("x-request-id");if(!t)return console.error("No request ID returned for /all_contexts"),[];let r=await a.x.get("/api/get?request_id=".concat(t)),o=await r.json();return o.return_value?JSON.parse(o.return_value):[]}catch(e){return console.error("[infra.jsx] Error in getAllContexts:",e),[]}}async function c(e){try{let t=await a.x.post("/kubernetes_node_info",{context:e}),r=t.headers.get("X-Skypilot-Request-ID")||t.headers.get("x-request-id"),o=await a.x.get("/api/get?request_id=".concat(r));if(500===o.status){try{let e=await o.json();if(e.detail&&e.detail.error)try{let t=JSON.parse(e.detail.error);console.error("Error fetching Kubernetes per node GPUs:",t.message)}catch(e){console.error("Error parsing JSON:",e)}}catch(e){console.error("Error parsing JSON:",e)}return{}}let n=await o.json();return(n.return_value?JSON.parse(n.return_value):{}).node_info_dict||{}}catch(t){return console.error("[infra.jsx] Error in getKubernetesPerNodeGPUs for context",e,":",t),{}}}async function i(e){try{let t={};return e.forEach(e=>{let r=null;if("Kubernetes"===e.cloud)(r=e.region)&&(r="kubernetes/".concat(r));else if("SSH"===e.cloud&&(r=e.region)){let e=r.startsWith("ssh-")?r.substring(4):r;r="ssh/".concat(e)}r&&(t[r]||(t[r]={clusters:0,jobs:0}),t[r].jobs+=1)}),t}catch(e){return console.error("=== Error in getContextJobs ===",e),{}}}async function u(e){try{let t={};return e.forEach(e=>{let r=null;if("Kubernetes"===e.cloud)(r=e.region)&&(r="kubernetes/".concat(r));else if("SSH"===e.cloud&&(r=e.region)){let e=r.startsWith("ssh-")?r.substring(4):r;r="ssh/".concat(e)}r&&(t[r]||(t[r]={clusters:0,jobs:0}),t[r].clusters+=1)}),t}catch(e){return console.error("=== Error in getContextClusters ===",e),{}}}async function d(e){try{let n=await l();if(!n||0===n.length)return console.log("No contexts found from /all_contexts endpoint."),{allContextNames:[],allGPUs:[],perContextGPUs:[],perNodeGPUs:[],contextStats:{}};let s=await u(e),i={},d={},g={},f=await Promise.all(n.map(e=>c(e))),h={};for(let e=0;e<n.length;e++)h[n[e]]=f[e];for(let e of n){let t=h[e]||{};if(t&&Object.keys(t).length>0){let r={};for(let o in t){let a=t[o],n=a.accelerator_type,s=a.total.accelerator_count,l=a.free.accelerators_available;s>0&&(r[n]||(r[n]={gpu_name:n,gpu_requestable_qty_per_node:0,gpu_total:0,gpu_free:0,context:e}),r[n].gpu_total+=s,r[n].gpu_free+=l,r[n].gpu_requestable_qty_per_node=s)}for(let t in d[e]=Object.values(r),r)t in i?(i[t].gpu_total+=r[t].gpu_total,i[t].gpu_free+=r[t].gpu_free):i[t]={gpu_total:r[t].gpu_total,gpu_free:r[t].gpu_free,gpu_name:t}}}for(let e of n){let n=h[e];if(n&&Object.keys(n).length>0)for(let s in n){var t,r,o,a;let l=n[s],c=l.accelerator_type||"-",u=null!==(o=null===(t=l.total)||void 0===t?void 0:t.accelerator_count)&&void 0!==o?o:0,f=null!==(a=null===(r=l.free)||void 0===r?void 0:r.accelerators_available)&&void 0!==a?a:0;g["".concat(e,"/").concat(s)]={node_name:l.name,gpu_name:c,gpu_total:u,gpu_free:f,ip_address:l.ip_address||null,context:e},"-"===c||d[e].some(e=>e.gpu_name===c)||(c in i||(i[c]={gpu_total:0,gpu_free:0,gpu_name:c}),d[e].find(e=>e.gpu_name===c)||d[e].push({gpu_name:c,gpu_requestable_qty_per_node:"-",gpu_total:0,gpu_free:0,context:e}))}0===d[e].length&&n&&Object.keys(n).length}return{allContextNames:n.sort(),allGPUs:Object.values(i).sort((e,t)=>e.gpu_name.localeCompare(t.gpu_name)),perContextGPUs:Object.values(d).flat().sort((e,t)=>e.context.localeCompare(t.context)||e.gpu_name.localeCompare(t.gpu_name)),perNodeGPUs:Object.values(g).sort((e,t)=>e.context.localeCompare(t.context)||e.node_name.localeCompare(t.node_name)||e.gpu_name.localeCompare(t.gpu_name)),contextStats:s}}catch(e){return console.error("[infra.jsx] Outer error in getKubernetesGPUs:",e),{allContextNames:[],allGPUs:[],perContextGPUs:[],perNodeGPUs:[],contextStats:{}}}}},29326:function(e,t,r){r.d(t,{IS:function(){return d},It:function(){return n},MV:function(){return l},Ri:function(){return s},_x:function(){return i},ez:function(){return u},hY:function(){return c},mF:function(){return f},wJ:function(){return g}});var o=r(93225),a=r(15821);async function n(){try{let e=await fetch("".concat(o.f4,"/ssh_node_pools"),{method:"GET",headers:{"Content-Type":"application/json"}});if(!e.ok)throw Error("HTTP error! status: ".concat(e.status));return await e.json()}catch(e){return console.error("Error fetching SSH Node Pools:",e),{}}}async function s(e){try{let t=await fetch("".concat(o.f4,"/ssh_node_pools"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error("HTTP error! status: ".concat(t.status));return await t.json()}catch(e){throw console.error("Error updating SSH Node Pools:",e),e}}async function l(e){try{let t=await fetch("".concat(o.f4,"/ssh_node_pools/").concat(e),{method:"DELETE",headers:{"Content-Type":"application/json"}});if(!t.ok)throw Error("HTTP error! status: ".concat(t.status));return await t.json()}catch(e){throw console.error("Error deleting SSH Node Pool:",e),e}}async function c(e,t){try{let r=new FormData;r.append("key_name",e),r.append("key_file",t);let a=await fetch("".concat(o.f4,"/ssh_node_pools/keys"),{method:"POST",body:r});if(!a.ok)throw Error("HTTP error! status: ".concat(a.status));return await a.json()}catch(e){throw console.error("Error uploading SSH key:",e),e}}async function i(e){try{let t=await fetch("".concat(o.f4,"/ssh_node_pools/").concat(e,"/deploy"),{method:"POST",headers:{"Content-Type":"application/json"}});if(!t.ok)throw Error("HTTP error! status: ".concat(t.status));return await t.json()}catch(e){throw console.error("Error deploying SSH Node Pool:",e),e}}async function u(e){try{let t=await fetch("".concat(o.f4,"/ssh_node_pools/").concat(e,"/down"),{method:"POST",headers:{"Content-Type":"application/json"}});if(!t.ok)throw Error("HTTP error! status: ".concat(t.status));return await t.json()}catch(e){throw console.error("Error tearing down SSH Node Pool:",e),e}}async function d(e){try{let t=await fetch("".concat(o.f4,"/ssh_node_pools/").concat(e,"/status"),{method:"GET",headers:{"Content-Type":"application/json"}});if(!t.ok)throw Error("HTTP error! status: ".concat(t.status));return await t.json()}catch(e){throw console.error("Error fetching SSH Node Pool status:",e),e}}async function g(e){let t,{requestId:r,signal:n,onNewLog:s}=e,l=Date.now(),c=new Promise(e=>{let r=()=>{let o=Date.now()-l;o>=3e5?e({timeout:!0}):t=setTimeout(r,3e5-o)};t=setTimeout(r,3e5)}),i=(async()=>{try{let e=await fetch("".concat(o.f4,"/api/stream?request_id=").concat(r,"&format=plain&tail=").concat(1e3,"&follow=true"),{method:"GET",headers:{"Content-Type":"application/json"},...n?{signal:n}:{}});if(!e.ok)throw Error("HTTP error! status: ".concat(e.status));let a=e.body.getReader();try{for(;;){let{done:e,value:t}=await a.read();if(e)break;l=Date.now();let r=new TextDecoder().decode(t);s(r)}}finally{a.cancel(),t&&clearTimeout(t)}return{timeout:!1}}catch(e){if(t&&clearTimeout(t),"AbortError"===e.name)return{timeout:!1};throw e}})(),u=await Promise.race([i,c]);if(t&&clearTimeout(t),u.timeout){(0,a.C)("SSH deployment log stream timed out after ".concat(300,"s of inactivity"),"warning");return}}async function f(e){let t,{requestId:r,signal:n,onNewLog:s,operationType:l="operation"}=e,c=Date.now(),i=new Promise(e=>{let r=()=>{let o=Date.now()-c;o>=3e5?e({timeout:!0}):t=setTimeout(r,3e5-o)};t=setTimeout(r,3e5)}),u=(async()=>{try{let e=await fetch("".concat(o.f4,"/api/stream?request_id=").concat(r,"&format=plain&tail=").concat(1e3,"&follow=true"),{method:"GET",headers:{"Content-Type":"application/json"},...n?{signal:n}:{}});if(!e.ok)throw Error("HTTP error! status: ".concat(e.status));let a=e.body.getReader();try{for(;;){let{done:e,value:t}=await a.read();if(e)break;c=Date.now();let r=new TextDecoder().decode(t);s(r)}}finally{a.cancel(),t&&clearTimeout(t)}return{timeout:!1}}catch(e){if(t&&clearTimeout(t),"AbortError"===e.name)return{timeout:!1};throw e}})(),d=await Promise.race([u,i]);if(t&&clearTimeout(t),d.timeout){(0,a.C)("SSH ".concat(l," log stream timed out after ").concat(300,"s of inactivity"),"warning");return}}},19238:function(e,t,r){r.d(t,{C:function(){return a},w:function(){return n}});var o=r(47145);async function a(){try{return(await o.x.fetch("/volumes",{},"GET")).map(e=>{var t,r,o;let a=e.cloud||"";return e.region&&(a+="/".concat(e.region)),e.zone&&(a+="/".concat(e.zone)),{name:e.name,launched_at:e.launched_at,user_hash:e.user_hash,user_name:e.user_name||"-",workspace:e.workspace||"-",last_attached_at:e.last_attached_at,status:e.status,type:e.type,cloud:e.cloud,region:e.region,zone:e.zone,infra:a,size:"".concat(e.size,"Gi"),config:e.config,storage_class:(null===(t=e.config)||void 0===t?void 0:t.storage_class_name)||"-",access_mode:(null===(r=e.config)||void 0===r?void 0:r.access_mode)||"-",namespace:(null===(o=e.config)||void 0===o?void 0:o.namespace)||"-",name_on_cloud:e.name_on_cloud,usedby_pods:e.usedby_pods,usedby_clusters:e.usedby_clusters}})||[]}catch(e){return console.error("Failed to fetch volumes:",e),[]}}async function n(e){let t="";try{let r=await o.x.post("/volumes/delete",{names:[e]}),a=r.headers.get("X-SkyPilot-Request-ID")||r.headers.get("X-Request-ID"),n=await o.x.get("/api/get?request_id=".concat(a));if(500===n.status){try{let e=await n.json();if(e.detail&&e.detail.error)try{t=JSON.parse(e.detail.error).message}catch(e){console.error("Error parsing JSON:",e)}}catch(e){console.error("Error parsing JSON:",e)}return{success:!1,msg:t}}return{success:!0}}catch(e){return console.error("Failed to delete volume:",e),{success:!1,msg:e.message}}}},36856:function(e,t,r){var o=r(6378),a=r(23266),n=r(68969),s=r(17324),l=r(53081),c=r(19238),i=r(32045),u=r(29326);let d={base:{getClusters:{fn:a.getClusters,args:[]},getClusterHistory:{fn:a.uR,args:[]},getManagedJobs:{fn:n.aT,args:[{allUsers:!0}]},getWorkspaces:{fn:s.fX,args:[]},getUsers:{fn:l.R,args:[]},getGPUs:{fn:i.Cu,args:[]},getCloudInfrastructure:{fn:i.ef,args:[!1]},getSSHNodePools:{fn:u.It,args:[]},getVolumes:{fn:c.C,args:[]}},dynamic:{getEnabledClouds:{fn:s.yz,requiresWorkspaces:!0}},pages:{clusters:["getClusters","getClusterHistory","getWorkspaces"],jobs:["getManagedJobs","getClusters","getWorkspaces","getUsers"],infra:["getClusters","getManagedJobs","getGPUs","getCloudInfrastructure","getSSHNodePools"],workspaces:["getWorkspaces","getClusters","getManagedJobs","getEnabledClouds"],users:["getUsers","getClusters","getManagedJobs"],volumes:["getVolumes"]}};class g{async preloadForPage(e,t){let{backgroundPreload:r=!0,force:o=!1}=t||{};if(!d.pages[e]){console.warn("Unknown page: ".concat(e));return}console.log("[CachePreloader] Preloading cache for page: ".concat(e));try{await this._loadPageData(e,o),r&&this._backgroundPreloadOtherPages(e)}catch(t){console.error("[CachePreloader] Error preloading for page ".concat(e,":"),t)}}async _loadPageData(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=d.pages[e],a=[];for(let e of r)if(d.base[e]){let{fn:r,args:n}=d.base[e];t&&o.default.invalidate(r,n),a.push(o.default.get(r,n).then(e=>(this._markAsPreloaded(r,n),e)))}else"getEnabledClouds"===e&&a.push(this._loadEnabledCloudsForAllWorkspaces(t));await Promise.allSettled(a),console.log("[CachePreloader] Loaded data for page: ".concat(e))}async _loadEnabledCloudsForAllWorkspaces(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];try{e&&o.default.invalidate(s.fX);let t=await o.default.get(s.fX),r=Object.keys(t||{}).map(t=>(e&&o.default.invalidate(s.yz,[t]),o.default.get(s.yz,[t])));await Promise.allSettled(r)}catch(e){console.error("[CachePreloader] Error loading enabled clouds:",e)}}_backgroundPreloadOtherPages(e){if(this.isPreloading)return;this.isPreloading=!0;let t=new Set(d.pages[e]),r=new Set;Object.keys(d.pages).filter(t=>t!==e).forEach(e=>{d.pages[e].forEach(e=>{t.has(e)||r.add(e)})}),console.log("[CachePreloader] Background preloading ".concat(r.size," unique functions: ").concat(Array.from(r).join(", "))),Promise.allSettled(Array.from(r).map(async e=>{try{if(d.base[e]){let{fn:t,args:r}=d.base[e];await o.default.get(t,r),this._markAsPreloaded(t,r)}else"getEnabledClouds"===e&&await this._loadEnabledCloudsForAllWorkspaces(!1);console.log("[CachePreloader] Background loaded function: ".concat(e))}catch(t){console.error("[CachePreloader] Background load failed for function ".concat(e,":"),t)}})).then(()=>{this.isPreloading=!1,console.log("[CachePreloader] Background preloading complete")})}async preloadBaseFunctions(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];console.log("[CachePreloader] Preloading all base functions");let t=Object.entries(d.base).map(t=>{let[r,{fn:a,args:n}]=t;return e&&o.default.invalidate(a,n),o.default.get(a,n).catch(e=>{console.error("[CachePreloader] Failed to preload ".concat(r,":"),e)})});await Promise.allSettled(t),console.log("[CachePreloader] Base functions preloaded")}getCacheStats(){return{...o.default.getStats(),isPreloading:this.isPreloading}}wasRecentlyPreloaded(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=this._generateKey(e,t),o=this.recentlyPreloaded.get(r);if(!o)return!1;let a=Date.now()-o<this.PRELOAD_GRACE_PERIOD;return a||this.recentlyPreloaded.delete(r),a}_markAsPreloaded(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=this._generateKey(e,t);this.recentlyPreloaded.set(r,Date.now())}_generateKey(e,t){let r=e.toString(),o=this._simpleHash(r),a=t.length>0?JSON.stringify(t):"";return"".concat(o,"_").concat(a)}_simpleHash(e){let t=5381;for(let r=0;r<e.length;r++)t=(t<<5)+t+e.charCodeAt(r);return t>>>0}clearCache(){o.default.clear(),this.isPreloading=!1,this.preloadPromises.clear(),this.recentlyPreloaded.clear(),console.log("[CachePreloader] Cache cleared")}constructor(){this.isPreloading=!1,this.preloadPromises=new Map,this.recentlyPreloaded=new Map,this.PRELOAD_GRACE_PERIOD=5e3}}let f=new g;o.default.setPreloader(f),t.ZP=f}}]);
|
|
@@ -1 +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
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8969],{68969:function(e,t,o){o.d(t,{Ce:function(){return p},NJ:function(){return h},UA:function(){return u},aT:function(){return i},getManagedJobs:function(){return l},jh:function(){return b},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 p=(await s.x.post("/jobs/queue",h)).headers.get("X-Skypilot-Request-ID"),b=await s.x.get("/api/get?request_id=".concat(p));if(500===b.status){try{let e=await b.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 b.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,p=(c-1)*s;return{jobs:u.slice(p,p+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}})(),p=await Promise.race([h,i]);if(t&&clearTimeout(t),p.timeout){(0,a.C)("Log request for job ".concat(o," timed out after ").concat(30,"s of inactivity"),"warning");return}}async function p(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 b(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),p=document.createElement("a"),b=new Date().toISOString().replace(/[:.]/g,"-"),g=t?"job-".concat(t):o?"job-".concat(o):"job";p.href=h,p.download="managed-".concat(g,"-").concat(r?"controller-logs":"logs","-").concat(b,".zip"),document.body.appendChild(p),p.click(),p.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{setPreloader(e){this.preloader=e}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);if(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)){var d;(null===(d=this.preloader)||void 0===d?void 0:d.wasRecentlyPreloaded(e,t))?this._debug("Skipping background refresh for ".concat(s," - recently preloaded")):this._refreshInBackground(e,t,c)}return 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,this.preloader=null}}let n=new a;t.default=n}}]);
|
skypilot_nightly-1.0.0.dev20250906/sky/dashboard/out/_next/static/chunks/9037-fa1737818d0a0969.js
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9037],{39037:function(e,s,t){t.r(s),t.d(s,{ClusterTable:function(){return I},Clusters:function(){return _},Status2Actions:function(){return W},enabledActions:function(){return F},handleVSCodeConnection:function(){return H}});var r=t(85893),a=t(67294),l=t(11163),n=t(55739),c=t(36989),i=t(41664),o=t.n(i),u=t(30803),d=t(37673),h=t(68764),x=t(23266),p=t(17324),m=t(94545),f=t(13626),j=t(60998);/**
|
|
2
|
+
* @license lucide-react v0.407.0 - ISC
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the ISC license.
|
|
5
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/let g=(0,j.Z)("Terminal",[["polyline",{points:"4 17 10 11 4 5",key:"akl6gq"}],["line",{x1:"12",x2:"20",y1:"19",y2:"19",key:"q2wloq"}]]),v=(0,j.Z)("SquareCode",[["path",{d:"M10 9.5 8 12l2 2.5",key:"3mjy60"}],["path",{d:"m14 9.5 2 2.5-2 2.5",key:"1bir2l"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]);t(6135);var w=t(92128),y=t(99307),b=t(23001),k=t(88950),N=t(6378),C=t(36856);t(1272);var S=t(20546);let L=[{label:"Status",value:"status"},{label:"Cluster",value:"cluster"},{label:"User",value:"user"},{label:"Workspace",value:"workspace"},{label:"Infra",value:"infra"}],M=(e,s)=>{let t="",r="";return e>=0&&(t=e+"m",r=" "),s&&(t+="".concat(r,"(down)")),""===t&&(t="-"),t},R=(e,s)=>{if(e&&e.includes("@")){let t=e.split("@")[0];return s&&s!==t?"".concat(t," (").concat(s,")"):t}let t=e||s||"N/A";return s&&s!==t?"".concat(t," (").concat(s,")"):t},E=e=>{if(!e||0===e)return"-";let s=e=Math.floor(e),t="",r=0;for(let e of[{value:31536e3,label:"y"},{value:2592e3,label:"mo"},{value:86400,label:"d"},{value:3600,label:"h"},{value:60,label:"m"},{value:1,label:"s"}])if(s>=e.value&&r<2){let a=Math.floor(s/e.value);t+="".concat(a).concat(e.label," "),s%=e.value,r++}return t.trim()||"0s"};function _(){let e=(0,l.useRouter)(),[s,t]=(0,a.useState)(!1),i=a.useRef(null),[u,d]=(0,a.useState)(!1),[h,m]=(0,a.useState)(!1),[j,g]=(0,a.useState)(null),[v,y]=(0,a.useState)(()=>!!e.isReady&&"true"===e.query.history),[k,S]=(0,a.useState)(!0),M=(0,b.X)(),[E,_]=(0,a.useState)([]),[H,O]=(0,a.useState)({status:[],cluster:[],user:[],workspace:[],infra:[]}),[F,V]=(0,a.useState)(!1);(0,a.useEffect)(()=>{if(e.isReady){A();let s="true"===e.query.history;v!==s&&(S(!1),y(s),setTimeout(()=>S(!0),50))}},[e.isReady,e.query.history]),(0,a.useEffect)(()=>{(async()=>{try{await C.ZP.preloadForPage("clusters");let e=await N.default.get(p.fX),s=Object.keys(e),t=await N.default.get(x.getClusters),r=[...new Set(t.map(e=>e.workspace||"default").filter(e=>e))],a=new Set(s);r.includes("default")&&a.has("default"),r.forEach(e=>a.add(e));let l=[...new Set(t.map(e=>({userId:e.user_hash||e.user,username:e.user})).filter(e=>e.userId)).values()],n=new Map;l.forEach(e=>{n.set(e.userId,{userId:e.userId,username:e.username,display:R(e.username,e.userId)})}),V(!0)}catch(e){console.error("Error fetching data for filters:",e),V(!0)}})()},[]);let W=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})},Z=s=>{let t={...e.query};t.history=s.toString(),e.replace({pathname:e.pathname,query:t},void 0,{shallow:!0})},A=()=>{let s={...e.query},t=s.property,r=s.operator,a=s.value;if(void 0===t)return;let l=[],n=Array.isArray(t)?t.length:1,c=new Map;if(c.set("",""),c.set("status","Status"),c.set("cluster","Cluster"),c.set("user","User"),c.set("workspace","Workspace"),c.set("infra","Infra"),1===n)l.push({property:c.get(t),operator:r,value:a});else for(let e=0;e<n;e++)l.push({property:c.get(t[e]),operator:r[e],value:a[e]});_(l)};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-2 mb-1 min-h-[20px]",children:[(0,r.jsx)("div",{className:"flex items-center gap-2",children:(0,r.jsx)(o(),{href:"/clusters",className:"text-sky-blue hover:underline leading-none text-base",children:"Sky Clusters"})}),(0,r.jsx)("div",{className:"w-full sm:w-auto",children:(0,r.jsx)(q,{propertyList:L,valueList:H,setFilters:_,updateURLParams:W,placeholder:"Filter clusters"})}),(0,r.jsxs)("div",{className:"flex items-center gap-2 ml-auto",children:[(0,r.jsxs)("label",{className:"flex items-center cursor-pointer",children:[(0,r.jsx)("input",{type:"checkbox",checked:v,onChange:e=>{let s=e.target.checked;y(s),Z(s)},className:"sr-only"}),(0,r.jsx)("div",{className:"relative inline-flex h-5 w-9 items-center rounded-full ".concat(k?"transition-colors":""," ").concat(v?"bg-sky-600":"bg-gray-300"),children:(0,r.jsx)("span",{className:"inline-block h-3 w-3 transform rounded-full bg-white ".concat(k?"transition-transform":""," ").concat(v?"translate-x-5":"translate-x-1")})}),(0,r.jsx)("span",{className:"ml-2 text-sm text-gray-700",children:"Show history (Last 30 days)"})]}),s&&(0,r.jsxs)("div",{className:"flex items-center",children:[(0,r.jsx)(n.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:()=>{N.default.invalidate(x.getClusters),N.default.invalidate(x.uR),N.default.invalidate(p.fX),V(!1),C.ZP.preloadForPage("clusters",{force:!0}).then(()=>{V(!0)}),i.current&&i.current()},disabled:s,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"}),!M&&(0,r.jsx)("span",{children:"Refresh"})]})]})]}),(0,r.jsx)(z,{filters:E,setFilters:_,updateURLParams:W}),(0,r.jsx)(I,{refreshInterval:c.yc,setLoading:t,refreshDataRef:i,filters:E,showHistory:v,onOpenSSHModal:e=>{g(e),d(!0)},onOpenVSCodeModal:e=>{g(e),m(!0)},setOptionValues:O,preloadingComplete:F}),(0,r.jsx)(w.Oh,{isOpen:u,onClose:()=>d(!1),cluster:j}),(0,r.jsx)(w._R,{isOpen:h,onClose:()=>m(!1),cluster:j})]})}function I(e){let{refreshInterval:s,setLoading:t,refreshDataRef:l,filters:i,showHistory:p,onOpenSSHModal:f,onOpenVSCodeModal:j,setOptionValues:g,preloadingComplete:v}=e,[w,b]=(0,a.useState)([]),[k,C]=(0,a.useState)({key:null,direction:"ascending"}),[L,R]=(0,a.useState)(!1),[_,I]=(0,a.useState)(!0),[H,O]=(0,a.useState)(1),[F,V]=(0,a.useState)(10),q=e=>{let s={status:[],cluster:[],user:[],workspace:[],infra:[]},t=(e,s)=>{e.includes(s)||e.push(s)};return e.map(e=>{t(s.status,e.status),t(s.cluster,e.cluster),t(s.user,e.user),t(s.workspace,e.workspace),t(s.infra,e.infra)}),s},z=a.useCallback(async()=>{t(!0),R(!0);try{let e=await N.default.get(x.getClusters);if(p){let s=await N.default.get(x.uR),t=e.map(e=>({...e,isHistorical:!1})),r=s.map(e=>({...e,isHistorical:!0})),a=[...t];r.forEach(s=>{e.some(e=>e.cluster_hash===s.cluster_hash)||a.push(s)}),g(q(a)),b(a)}else{let s=e.map(e=>({...e,isHistorical:!1}));g(q(s)),b(s)}}catch(e){console.error("Error fetching cluster data:",e),g(q([])),b([])}t(!1),R(!1),I(!1)},[t,p,g]),Z=(e,s)=>{var t;let{property:r,operator:a,value:l}=s;if(!l)return!0;if(!r){let s=l.toLowerCase();return Object.values(e).some(e=>null==e?void 0:e.toString().toLowerCase().includes(s))}let n=null===(t=e[r.toLowerCase()])||void 0===t?void 0:t.toString().toLowerCase(),c=l.toString().toLowerCase();switch(a){case"=":return n===c;case":":return null==n?void 0:n.includes(c);default:return!0}},A=a.useMemo(()=>{let e=0===i.length?w:w.filter(e=>{let s=null;for(let t=0;t<i.length;t++){let r=Z(e,i[t]);s=null===s?r:s&&r}return s});return(0,m.R0)(e,k.key,k.direction)},[w,k,i]);a.useEffect(()=>{l&&(l.current=z)},[l,z]),(0,a.useEffect)(()=>{b([]);let e=!0;if(v){z();let t=setInterval(()=>{e&&z()},s);return()=>{e=!1,clearInterval(t)}}return()=>{e=!1}},[s,z,v]),(0,a.useEffect)(()=>{O(1)},[w.length]);let P=e=>{let s="ascending";k.key===e&&"ascending"===k.direction&&(s="descending"),C({key:e,direction:s})},B=e=>k.key===e?"ascending"===k.direction?" ↑":" ↓":"",U=Math.ceil(A.length/F),D=(H-1)*F,X=D+F,T=A.slice(D,X);return(0,r.jsxs)("div",{children:[(0,r.jsx)(d.Zb,{children:(0,r.jsx)("div",{className:"overflow-x-auto rounded-lg",children:(0,r.jsxs)(h.iA,{className:"min-w-full",children:[(0,r.jsx)(h.xD,{children:(0,r.jsxs)(h.SC,{children:[(0,r.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>P("status"),children:["Status",B("status")]}),(0,r.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>P("cluster"),children:["Cluster",B("cluster")]}),(0,r.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>P("user"),children:["User",B("user")]}),(0,r.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>P("workspace"),children:["Workspace",B("workspace")]}),(0,r.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>P("infra"),children:["Infra",B("infra")]}),(0,r.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>P("resources_str"),children:["Resources",B("resources_str")]}),(0,r.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>P("time"),children:["Started",B("time")]}),p&&(0,r.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>P("duration"),children:["Duration",B("duration")]}),(0,r.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>P("autostop"),children:["Autostop",B("autostop")]}),(0,r.jsx)(h.ss,{className:"md:sticky md:right-0 md:bg-white",children:"Actions"})]})}),(0,r.jsx)(h.RM,{children:L&&_?(0,r.jsx)(h.SC,{children:(0,r.jsx)(h.pj,{colSpan:9,className:"text-center py-6 text-gray-500",children:(0,r.jsxs)("div",{className:"flex justify-center items-center",children:[(0,r.jsx)(n.Z,{size:20,className:"mr-2"}),(0,r.jsx)("span",{children:"Loading..."})]})})}):T.length>0?T.map((e,s)=>(0,r.jsxs)(h.SC,{children:[(0,r.jsx)(h.pj,{children:(0,r.jsx)(y.OE,{status:e.status})}),(0,r.jsx)(h.pj,{children:(0,r.jsx)(o(),{href:"/clusters/".concat(e.isHistorical?e.cluster_hash:e.cluster||e.name),className:"text-blue-600",children:e.cluster||e.name})}),(0,r.jsx)(h.pj,{children:(0,r.jsx)(S.H,{username:e.user,userHash:e.user_hash})}),(0,r.jsx)(h.pj,{children:(0,r.jsx)(o(),{href:"/workspaces",className:"text-gray-700 hover:text-blue-600 hover:underline",children:e.workspace||"default"})}),(0,r.jsx)(h.pj,{children:(0,r.jsx)(c.Md,{content:e.full_infra||e.infra,className:"text-sm text-muted-foreground",children:(0,r.jsxs)("span",{children:[(0,r.jsx)(o(),{href:"/infra",className:"text-blue-600 hover:underline",children:e.cloud}),e.infra.includes("(")&&(0,r.jsx)("span",{children:" "+e.infra.substring(e.infra.indexOf("("))})]})})}),(0,r.jsx)(h.pj,{children:(0,r.jsx)(c.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)(h.pj,{children:(0,r.jsx)(c.Zg,{date:e.time})}),p&&(0,r.jsx)(h.pj,{children:E(e.duration)}),(0,r.jsx)(h.pj,{children:e.isHistorical?"-":M(e.autostop,e.to_down)}),(0,r.jsx)(h.pj,{className:"text-left md:sticky md:right-0 md:bg-white",children:!e.isHistorical&&(0,r.jsx)(W,{cluster:e.cluster,status:e.status,onOpenSSHModal:f,onOpenVSCodeModal:j})})]},s)):(0,r.jsx)(h.SC,{children:(0,r.jsx)(h.pj,{colSpan:9,className:"text-center py-6 text-gray-500",children:p?"No clusters found":"No active clusters"})})})]})})}),w.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:F,onChange:e=>{V(parseInt(e.target.value,10)),O(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:"".concat(D+1," - ").concat(Math.min(X,A.length)," of ").concat(A.length)}),(0,r.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,r.jsx)(u.z,{variant:"ghost",size:"icon",onClick:()=>{O(e=>Math.max(e-1,1))},disabled:1===H,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)(u.z,{variant:"ghost",size:"icon",onClick:()=>{O(e=>Math.min(e+1,U))},disabled:H===U||0===U,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"})})})]})]})})]})}let H=(e,s)=>{s&&s(e)},O=(e,s)=>{s?s(e):window.open("ssh://".concat(e))},F=e=>"RUNNING"===e?["connect","VSCode"]:[],V={connect:(0,r.jsx)(g,{className:"w-4 h-4 text-gray-500 inline-block"}),VSCode:(0,r.jsx)(v,{className:"w-4 h-4 text-gray-500 inline-block"})};function W(e){let{withLabel:s=!1,cluster:t,status:a,onOpenSSHModal:l,onOpenVSCodeModal:n}=e,i=F(a),o=(0,b.X)(),u=e=>{switch(e){case"connect":O(t,l);break;case"VSCode":H(t,n);break;default:return}};return(0,r.jsx)(r.Fragment,{children:(0,r.jsx)("div",{className:"flex items-center space-x-4",children:Object.entries(V).map(e=>{let t,a,[l,n]=e;switch(l){case"connect":t="Connect",a="Connect with SSH";break;case"VSCode":t="VSCode",a="Open in VS Code"}return(s||(t=""),i.includes(l))?(0,r.jsx)(c.WH,{content:a,className:"capitalize text-sm text-muted-foreground",children:(0,r.jsxs)("button",{onClick:()=>u(l),className:"text-sky-blue hover:text-sky-blue-bright font-medium inline-flex items-center",children:[n,!o&&(0,r.jsx)("span",{className:"ml-1.5",children:t})]})},l):(0,r.jsx)(c.WH,{content:a,className:"capitalize text-sm text-muted-foreground",children:(0,r.jsxs)("span",{className:"opacity-30 flex items-center cursor-not-allowed text-sm",title:l,children:[n,!o&&(0,r.jsx)("span",{className:"ml-1.5",children:t})]})},l)})})})}let q=e=>{let{propertyList:s=[],valueList:t,setFilters:l,updateURLParams:n,placeholder:c="Filter clusters"}=e,i=(0,a.useRef)(null),o=(0,a.useRef)(null),[u,d]=(0,a.useState)(!1),[h,x]=(0,a.useState)(""),[p,m]=(0,a.useState)("status"),[f,j]=(0,a.useState)([]);(0,a.useEffect)(()=>{let e=e=>{o.current&&!o.current.contains(e.target)&&i.current&&!i.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e)}},[]),(0,a.useEffect)(()=>{let e=[];if(t&&"object"==typeof t)switch(p){case"status":e=t.status||[];break;case"user":e=t.user||[];break;case"cluster":e=t.cluster||[];break;case"workspace":e=t.workspace||[];break;case"infra":e=t.infra||[]}""!==h.trim()&&(e=e.filter(e=>e&&e.toString().toLowerCase().includes(h.toLowerCase()))),j(e)},[p,t,h]);let g=e=>{let t=s.find(s=>s.value===e);return t?t.label:e},v=e=>{l(s=>{let t=[...s,{property:g(p),operator:":",value:e}];return n(t),t}),d(!1),x(""),i.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)(k.Ph,{onValueChange:m,value:p,children:[(0,r.jsx)(k.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)(k.ki,{placeholder:"Status"})}),(0,r.jsx)(k.Bw,{children:s.map((e,s)=>(0,r.jsx)(k.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:i,placeholder:c,value:h,onChange:e=>{x(e.target.value),u||d(!0)},onFocus:()=>{d(!0)},onKeyDown:e=>{"Enter"===e.key&&""!==h.trim()?(l(e=>{let s=[...e,{property:g(p),operator:":",value:h}];return n(s),s}),x(""),d(!1)):"Escape"===e.key&&(d(!1),i.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"}),h&&(0,r.jsx)("button",{onClick:()=>{x(""),d(!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"})})}),u&&f.length>0&&(0,r.jsx)("div",{ref:o,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:f.map((e,s)=>(0,r.jsx)("div",{className:"px-3 py-2 cursor-pointer hover:bg-gray-50 text-sm ".concat(s!==f.length-1?"border-b border-gray-100":""),onClick:()=>v(e),children:(0,r.jsx)("span",{className:"text-sm text-gray-700",children:e})},"".concat(e,"-").concat(s)))})]})]})},z=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"})})})]})})}}}]);
|