skypilot-nightly 1.0.0.dev20250605__tar.gz → 1.0.0.dev20250607__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.
- {skypilot_nightly-1.0.0.dev20250605/skypilot_nightly.egg-info → skypilot_nightly-1.0.0.dev20250607}/PKG-INFO +1 -1
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/__init__.py +2 -2
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/backends/backend_utils.py +3 -1
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/check.py +14 -19
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/cli.py +0 -2
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/client/cli.py +0 -2
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/client/sdk.py +2 -1
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/clouds/cloud.py +4 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/clouds/kubernetes.py +2 -2
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/clouds/nebius.py +44 -4
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/dashboard/out/404.html +1 -1
- skypilot_nightly-1.0.0.dev20250607/sky/dashboard/out/_next/static/1qG0HTmVilJPxQdBk0fX5/_buildManifest.js +1 -0
- skypilot_nightly-1.0.0.dev20250607/sky/dashboard/out/_next/static/chunks/236-619ed0248fb6fdd9.js +6 -0
- skypilot_nightly-1.0.0.dev20250605/sky/dashboard/out/_next/static/chunks/470-9e7a479cc8303baa.js → skypilot_nightly-1.0.0.dev20250607/sky/dashboard/out/_next/static/chunks/470-ad1e0db3afcbd9c9.js +1 -1
- skypilot_nightly-1.0.0.dev20250607/sky/dashboard/out/_next/static/chunks/969-2c584e28e6b4b106.js +1 -0
- skypilot_nightly-1.0.0.dev20250607/sky/dashboard/out/_next/static/chunks/973-6d78a0814682d771.js +1 -0
- skypilot_nightly-1.0.0.dev20250607/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-b919a73aecdfa78f.js +6 -0
- skypilot_nightly-1.0.0.dev20250605/sky/dashboard/out/_next/static/chunks/pages/clusters-5549a350f97d7ef3.js → skypilot_nightly-1.0.0.dev20250607/sky/dashboard/out/_next/static/chunks/pages/clusters-4f6b9dd9abcb33ad.js +1 -1
- skypilot_nightly-1.0.0.dev20250605/sky/dashboard/out/_next/static/chunks/pages/infra/[context]-b68ddeed712d45b5.js → skypilot_nightly-1.0.0.dev20250607/sky/dashboard/out/_next/static/chunks/pages/infra/[context]-3a18d0eeb5119fe4.js +1 -1
- skypilot_nightly-1.0.0.dev20250605/sky/dashboard/out/_next/static/chunks/pages/infra-13b117a831702196.js → skypilot_nightly-1.0.0.dev20250607/sky/dashboard/out/_next/static/chunks/pages/infra-a1a6abeeb58c1051.js +1 -1
- skypilot_nightly-1.0.0.dev20250607/sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-1354e28c81eeb686.js +16 -0
- skypilot_nightly-1.0.0.dev20250605/sky/dashboard/out/_next/static/chunks/pages/jobs-a76b2700eca236f7.js → skypilot_nightly-1.0.0.dev20250607/sky/dashboard/out/_next/static/chunks/pages/jobs-23bfc8bf373423db.js +1 -1
- skypilot_nightly-1.0.0.dev20250605/sky/dashboard/out/_next/static/chunks/pages/users-262aab38b9baaf3a.js → skypilot_nightly-1.0.0.dev20250607/sky/dashboard/out/_next/static/chunks/pages/users-5800045bd04e69c2.js +1 -1
- skypilot_nightly-1.0.0.dev20250605/sky/dashboard/out/_next/static/chunks/pages/workspace/new-c7516f2b4c3727c0.js → skypilot_nightly-1.0.0.dev20250607/sky/dashboard/out/_next/static/chunks/pages/workspace/new-e1f9c0c3ff7ac4bd.js +1 -1
- skypilot_nightly-1.0.0.dev20250605/sky/dashboard/out/_next/static/chunks/pages/workspaces/[name]-7799de9e691e35d8.js → skypilot_nightly-1.0.0.dev20250607/sky/dashboard/out/_next/static/chunks/pages/workspaces/[name]-686590e0ee4b2412.js +1 -1
- skypilot_nightly-1.0.0.dev20250605/sky/dashboard/out/_next/static/chunks/pages/workspaces-384ea5fa0cea8f28.js → skypilot_nightly-1.0.0.dev20250607/sky/dashboard/out/_next/static/chunks/pages/workspaces-76b07aa5da91b0df.js +1 -1
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/dashboard/out/clusters/[cluster]/[job].html +1 -1
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/dashboard/out/clusters/[cluster].html +1 -1
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/dashboard/out/clusters.html +1 -1
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/dashboard/out/config.html +1 -1
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/dashboard/out/index.html +1 -1
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/dashboard/out/infra/[context].html +1 -1
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/dashboard/out/infra.html +1 -1
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/dashboard/out/jobs/[job].html +1 -1
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/dashboard/out/jobs.html +1 -1
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/dashboard/out/users.html +1 -1
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/dashboard/out/workspace/new.html +1 -1
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/dashboard/out/workspaces/[name].html +1 -1
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/dashboard/out/workspaces.html +1 -1
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/jobs/scheduler.py +9 -4
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/jobs/server/core.py +14 -1
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/jobs/state.py +18 -15
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/kubernetes/utils.py +12 -5
- skypilot_nightly-1.0.0.dev20250607/sky/provision/nebius/constants.py +47 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/nebius/instance.py +2 -1
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/nebius/utils.py +28 -7
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/serve/load_balancer.py +56 -45
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/skylet/constants.py +1 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/skypilot_config.py +4 -1
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/templates/jobs-controller.yaml.j2 +3 -1
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/templates/nebius-ray.yml.j2 +6 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/kubernetes/deploy_remote_cluster.py +5 -3
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/resources_utils.py +3 -1
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607/skypilot_nightly.egg-info}/PKG-INFO +1 -1
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/skypilot_nightly.egg-info/SOURCES.txt +21 -20
- skypilot_nightly-1.0.0.dev20250605/sky/dashboard/out/_next/static/chunks/236-4c0dc6f63ccc6319.js +0 -6
- skypilot_nightly-1.0.0.dev20250605/sky/dashboard/out/_next/static/chunks/969-c7abda31c10440ac.js +0 -1
- skypilot_nightly-1.0.0.dev20250605/sky/dashboard/out/_next/static/chunks/973-1a09cac61cfcc1e1.js +0 -1
- skypilot_nightly-1.0.0.dev20250605/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-beabbcd7606c1a23.js +0 -6
- skypilot_nightly-1.0.0.dev20250605/sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-86c47edc500f15f9.js +0 -11
- skypilot_nightly-1.0.0.dev20250605/sky/dashboard/out/_next/static/qjhIe-yC6nHcLKBqpzO1M/_buildManifest.js +0 -1
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/MANIFEST.in +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/README.md +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/pyproject.toml +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/setup.cfg +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/adaptors/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/adaptors/aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/adaptors/azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/adaptors/cloudflare.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/adaptors/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/adaptors/cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/adaptors/do.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/adaptors/docker.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/adaptors/gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/adaptors/ibm.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/adaptors/kubernetes.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/adaptors/nebius.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/adaptors/oci.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/adaptors/runpod.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/adaptors/vast.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/adaptors/vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/admin_policy.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/authentication.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/backends/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/backends/backend.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/backends/cloud_vm_ray_backend.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/backends/docker_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/backends/local_docker_backend.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/backends/monkey_patches/monkey_patch_ray_up.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/backends/wheel_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/benchmark/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/benchmark/benchmark_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/benchmark/benchmark_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/catalog/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/catalog/aws_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/catalog/azure_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/catalog/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/catalog/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/catalog/cudo_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/catalog/data_fetchers/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/catalog/data_fetchers/analyze.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/catalog/data_fetchers/fetch_aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/catalog/data_fetchers/fetch_azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/catalog/data_fetchers/fetch_cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/catalog/data_fetchers/fetch_fluidstack.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/catalog/data_fetchers/fetch_gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/catalog/data_fetchers/fetch_ibm.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/catalog/data_fetchers/fetch_lambda_cloud.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/catalog/data_fetchers/fetch_vast.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/catalog/data_fetchers/fetch_vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/catalog/do_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/catalog/fluidstack_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/catalog/gcp_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/catalog/ibm_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/catalog/kubernetes_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/catalog/lambda_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/catalog/nebius_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/catalog/oci_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/catalog/paperspace_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/catalog/runpod_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/catalog/scp_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/catalog/ssh_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/catalog/vast_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/catalog/vsphere_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/client/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/client/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/client/oauth.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/cloud_stores.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/clouds/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/clouds/aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/clouds/azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/clouds/cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/clouds/do.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/clouds/fluidstack.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/clouds/gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/clouds/ibm.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/clouds/lambda_cloud.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/clouds/oci.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/clouds/paperspace.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/clouds/runpod.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/clouds/scp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/clouds/ssh.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/clouds/utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/clouds/utils/aws_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/clouds/utils/azure_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/clouds/utils/gcp_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/clouds/utils/oci_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/clouds/utils/scp_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/clouds/vast.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/clouds/vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/dag.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605/sky/dashboard/out/_next/static/qjhIe-yC6nHcLKBqpzO1M → skypilot_nightly-1.0.0.dev20250607/sky/dashboard/out/_next/static/1qG0HTmVilJPxQdBk0fX5}/_ssgManifest.js +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/dashboard/out/_next/static/chunks/121-865d2bf8a3b84c6a.js +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/dashboard/out/_next/static/chunks/293-351268365226d251.js +0 -0
- /skypilot_nightly-1.0.0.dev20250605/sky/dashboard/out/_next/static/chunks/37-beedd583fea84cc8.js → /skypilot_nightly-1.0.0.dev20250607/sky/dashboard/out/_next/static/chunks/37-600191c5804dcae2.js +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/dashboard/out/_next/static/chunks/614-635a84e87800f99e.js +0 -0
- /skypilot_nightly-1.0.0.dev20250605/sky/dashboard/out/_next/static/chunks/682-6647f0417d5662f0.js → /skypilot_nightly-1.0.0.dev20250607/sky/dashboard/out/_next/static/chunks/682-b60cfdacc15202e8.js +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/dashboard/out/_next/static/chunks/798-c0525dc3f21e488d.js +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/dashboard/out/_next/static/chunks/843-c296541442d4af88.js +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/dashboard/out/_next/static/chunks/856-3a32da4b84176f6d.js +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/dashboard/out/_next/static/chunks/937.3759f538f11a0953.js +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/dashboard/out/_next/static/chunks/fd9d1056-2821b0f0cabcd8bd.js +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/dashboard/out/_next/static/chunks/framework-87d061ee6ed71b28.js +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/dashboard/out/_next/static/chunks/main-app-241eb28595532291.js +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/dashboard/out/_next/static/chunks/main-e0e2335212e72357.js +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/dashboard/out/_next/static/chunks/pages/_app-cb81dc4d27f4d009.js +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/dashboard/out/_next/static/chunks/pages/_error-1be831200e60c5c0.js +0 -0
- /skypilot_nightly-1.0.0.dev20250605/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-65d04d5d77cbb6b6.js → /skypilot_nightly-1.0.0.dev20250607/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-18aed9b56247d074.js +0 -0
- /skypilot_nightly-1.0.0.dev20250605/sky/dashboard/out/_next/static/chunks/pages/config-1a1eeb949dab8897.js → /skypilot_nightly-1.0.0.dev20250607/sky/dashboard/out/_next/static/chunks/pages/config-fe375a56342cf609.js +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/dashboard/out/_next/static/chunks/pages/index-6b0d9e5031b70c58.js +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/dashboard/out/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/dashboard/out/_next/static/chunks/webpack-65d465f948974c0d.js +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/dashboard/out/_next/static/css/667d941a2888ce6e.css +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/dashboard/out/favicon.ico +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/dashboard/out/skypilot.svg +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/dashboard/out/videos/cursor-small.mp4 +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/data/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/data/data_transfer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/data/data_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/data/mounting_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/data/storage.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/data/storage_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/exceptions.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/execution.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/global_user_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/jobs/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/jobs/client/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/jobs/client/sdk.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/jobs/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/jobs/controller.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/jobs/dashboard/dashboard.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/jobs/dashboard/static/favicon.ico +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/jobs/dashboard/templates/index.html +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/jobs/recovery_strategy.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/jobs/server/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/jobs/server/dashboard_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/jobs/server/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/jobs/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/models.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/optimizer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/aws/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/aws/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/aws/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/aws/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/azure/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/azure/azure-config-template.json +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/azure/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/azure/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/cudo/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/cudo/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/cudo/cudo_machine_type.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/cudo/cudo_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/cudo/cudo_wrapper.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/cudo/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/do/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/do/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/do/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/do/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/do/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/docker_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/fluidstack/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/fluidstack/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/fluidstack/fluidstack_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/fluidstack/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/gcp/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/gcp/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/gcp/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/gcp/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/gcp/instance_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/gcp/mig_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/gcp/volume_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/instance_setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/kubernetes/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/kubernetes/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/kubernetes/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/kubernetes/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/kubernetes/manifests/fusermount-server-daemonset.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/kubernetes/network.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/kubernetes/network_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/lambda_cloud/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/lambda_cloud/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/lambda_cloud/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/lambda_cloud/lambda_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/logging.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/metadata_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/nebius/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/nebius/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/oci/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/oci/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/oci/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/oci/query_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/paperspace/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/paperspace/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/paperspace/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/paperspace/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/paperspace/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/provisioner.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/runpod/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/runpod/api/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/runpod/api/commands.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/runpod/api/pods.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/runpod/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/runpod/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/runpod/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/ssh/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/vast/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/vast/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/vast/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/vast/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/vsphere/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/vsphere/common/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/vsphere/common/cls_api_client.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/vsphere/common/cls_api_helper.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/vsphere/common/custom_script.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/vsphere/common/id_generator.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/vsphere/common/metadata_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/vsphere/common/service_manager.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/vsphere/common/service_manager_factory.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/vsphere/common/ssl_helper.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/vsphere/common/vapiconnect.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/vsphere/common/vim_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/vsphere/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/vsphere/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/provision/vsphere/vsphere_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/resources.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/serve/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/serve/autoscalers.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/serve/client/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/serve/client/sdk.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/serve/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/serve/controller.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/serve/load_balancing_policies.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/serve/replica_managers.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/serve/serve_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/serve/serve_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/serve/server/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/serve/server/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/serve/server/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/serve/service.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/serve/service_spec.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/serve/spot_placer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/server/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/server/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/server/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/server/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/server/html/log.html +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/server/html/token_page.html +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/server/requests/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/server/requests/event_loop.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/server/requests/executor.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/server/requests/payloads.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/server/requests/preconditions.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/server/requests/process.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/server/requests/queues/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/server/requests/queues/local_queue.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/server/requests/queues/mp_queue.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/server/requests/requests.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/server/requests/serializers/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/server/requests/serializers/decoders.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/server/requests/serializers/encoders.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/server/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/server/stream_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/server/uvicorn.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/setup_files/MANIFEST.in +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/setup_files/dependencies.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/setup_files/setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/sky_logging.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/skylet/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/skylet/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/skylet/attempt_skylet.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/skylet/autostop_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/skylet/configs.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/skylet/events.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/skylet/job_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/skylet/log_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/skylet/log_lib.pyi +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/skylet/providers/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/skylet/providers/command_runner.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/skylet/providers/ibm/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/skylet/providers/ibm/node_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/skylet/providers/ibm/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/skylet/providers/ibm/vpc_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/skylet/providers/scp/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/skylet/providers/scp/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/skylet/providers/scp/node_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/skylet/ray_patches/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/skylet/ray_patches/autoscaler.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/skylet/ray_patches/cli.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/skylet/ray_patches/command_runner.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/skylet/ray_patches/log_monitor.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/skylet/ray_patches/resource_demand_scheduler.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/skylet/ray_patches/updater.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/skylet/ray_patches/worker.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/skylet/skylet.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/skylet/subprocess_daemon.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/task.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/templates/aws-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/templates/azure-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/templates/cudo-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/templates/do-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/templates/fluidstack-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/templates/gcp-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/templates/ibm-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/templates/kubernetes-ingress.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/templates/kubernetes-loadbalancer.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/templates/kubernetes-port-forward-proxy-command.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/templates/kubernetes-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/templates/kubernetes-ssh-jump.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/templates/lambda-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/templates/local-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/templates/oci-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/templates/paperspace-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/templates/runpod-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/templates/scp-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/templates/sky-serve-controller.yaml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/templates/skypilot-server-kubernetes-proxy.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/templates/vast-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/templates/vsphere-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/templates/websocket_proxy.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/usage/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/usage/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/usage/usage_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/users/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/users/model.conf +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/users/permission.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/users/rbac.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/users/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/accelerator_registry.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/admin_policy_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/annotations.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/atomic.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/aws/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/aws/get_default_security_group.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/cli_utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/cli_utils/status_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/cluster_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/command_runner.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/command_runner.pyi +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/common_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/config_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/context.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/context_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/control_master_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/controller_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/dag_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/db_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/env_options.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/infra_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/kubernetes/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/kubernetes/cleanup-tunnel.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/kubernetes/config_map_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/kubernetes/create_cluster.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/kubernetes/delete_cluster.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/kubernetes/exec_kubeconfig_converter.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/kubernetes/generate_kind_config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/kubernetes/generate_kubeconfig.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/kubernetes/gpu_labeler.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/kubernetes/k8s_gpu_labeler_job.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/kubernetes/kubernetes_deploy_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/kubernetes/rsync_helper.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/kubernetes/ssh-tunnel.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/kubernetes/ssh_jump_lifecycle_manager.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/kubernetes_enums.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/log_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/message_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/registry.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/rich_console_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/rich_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/schemas.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/status_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/subprocess_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/timeline.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/ux_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/utils/validator.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/workspaces/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/workspaces/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/workspaces/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/skypilot_nightly.egg-info/dependency_links.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/skypilot_nightly.egg-info/entry_points.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/skypilot_nightly.egg-info/requires.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/skypilot_nightly.egg-info/top_level.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/tests/test_api.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/tests/test_cli.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/tests/test_config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/tests/test_db_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/tests/test_failover.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/tests/test_global_user_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/tests/test_jobs.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/tests/test_jobs_and_serve.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/tests/test_list_accelerators.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/tests/test_optimizer_dryruns.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/tests/test_optimizer_random_dag.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/tests/test_serve_autoscaler.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/tests/test_smoke.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/tests/test_storage.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/tests/test_wheels.py +0 -0
- {skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/tests/test_yaml_parser.py +0 -0
@@ -5,7 +5,7 @@ from typing import Optional
|
|
5
5
|
import urllib.request
|
6
6
|
|
7
7
|
# Replaced with the current commit when building the wheels.
|
8
|
-
_SKYPILOT_COMMIT_SHA = '
|
8
|
+
_SKYPILOT_COMMIT_SHA = 'c0494f5f0d6e41f225bf39434e163810be000fe3'
|
9
9
|
|
10
10
|
|
11
11
|
def _get_git_commit():
|
@@ -35,7 +35,7 @@ def _get_git_commit():
|
|
35
35
|
|
36
36
|
|
37
37
|
__commit__ = _get_git_commit()
|
38
|
-
__version__ = '1.0.0.
|
38
|
+
__version__ = '1.0.0.dev20250607'
|
39
39
|
__root_dir__ = os.path.dirname(os.path.abspath(__file__))
|
40
40
|
|
41
41
|
|
@@ -815,7 +815,9 @@ def write_cluster_config(
|
|
815
815
|
if isinstance(cloud, clouds.Kubernetes):
|
816
816
|
cluster_config_overrides = to_provision.cluster_config_overrides
|
817
817
|
kubernetes_utils.combine_pod_config_fields(
|
818
|
-
tmp_yaml_path,
|
818
|
+
tmp_yaml_path,
|
819
|
+
cluster_config_overrides=cluster_config_overrides,
|
820
|
+
cloud=cloud)
|
819
821
|
kubernetes_utils.combine_metadata_fields(tmp_yaml_path)
|
820
822
|
yaml_obj = common_utils.read_yaml(tmp_yaml_path)
|
821
823
|
pod_config: Dict[str, Any] = yaml_obj['available_node_types'][
|
@@ -1,6 +1,5 @@
|
|
1
1
|
"""Credential checks: check cloud credentials and enable clouds."""
|
2
2
|
import collections
|
3
|
-
import itertools
|
4
3
|
import os
|
5
4
|
import traceback
|
6
5
|
from types import ModuleType
|
@@ -70,14 +69,17 @@ def check_capabilities(
|
|
70
69
|
|
71
70
|
def check_one_cloud_one_capability(
|
72
71
|
payload: Tuple[Tuple[str, Union[sky_clouds.Cloud, ModuleType]],
|
73
|
-
sky_cloud.CloudCapability]
|
72
|
+
sky_cloud.CloudCapability, bool]
|
74
73
|
) -> Optional[Tuple[sky_cloud.CloudCapability, bool, Optional[Union[
|
75
74
|
str, Dict[str, str]]]]]:
|
75
|
+
cloud_tuple, capability, allowed = payload
|
76
|
+
if not allowed:
|
77
|
+
return (capability, False, f'{cloud_tuple[0]} is not included '
|
78
|
+
'in allowed_clouds in ~/.sky/config.yaml')
|
76
79
|
with skypilot_config.local_active_workspace_ctx(
|
77
80
|
current_workspace_name):
|
78
81
|
# Have to override again for specific thread, as the
|
79
82
|
# local_active_workspace_ctx is thread-local.
|
80
|
-
cloud_tuple, capability = payload
|
81
83
|
_, cloud = cloud_tuple
|
82
84
|
try:
|
83
85
|
ok, reason = cloud.check_credentials(capability)
|
@@ -103,8 +105,10 @@ def check_capabilities(
|
|
103
105
|
|
104
106
|
if clouds is not None:
|
105
107
|
cloud_list = clouds
|
108
|
+
check_explicit = True
|
106
109
|
else:
|
107
110
|
cloud_list = get_all_clouds()
|
111
|
+
check_explicit = False
|
108
112
|
|
109
113
|
clouds_to_check = [get_cloud_tuple(c) for c in cloud_list]
|
110
114
|
|
@@ -135,24 +139,15 @@ def check_capabilities(
|
|
135
139
|
disallowed_cloud_names = [
|
136
140
|
c for c in get_all_clouds() if c not in config_allowed_cloud_names
|
137
141
|
]
|
138
|
-
# Check only the clouds which are allowed in the config.
|
139
|
-
clouds_to_check = [
|
140
|
-
c for c in clouds_to_check if c[0] in config_allowed_cloud_names
|
141
|
-
]
|
142
142
|
|
143
|
-
combinations =
|
143
|
+
combinations = []
|
144
|
+
for c in clouds_to_check:
|
145
|
+
allowed = c[0] in config_allowed_cloud_names
|
146
|
+
if allowed or check_explicit:
|
147
|
+
for capability in capabilities:
|
148
|
+
combinations.append((c, capability, allowed))
|
144
149
|
|
145
150
|
cloud2ctx2text: Dict[str, Dict[str, str]] = {}
|
146
|
-
if not config_allowed_cloud_names:
|
147
|
-
for capability in capabilities:
|
148
|
-
global_user_state.set_enabled_clouds([], capability,
|
149
|
-
current_workspace_name)
|
150
|
-
if not combinations:
|
151
|
-
echo(
|
152
|
-
_summary_message(enabled_clouds, cloud2ctx2text,
|
153
|
-
current_workspace_name, hide_workspace_str,
|
154
|
-
disallowed_cloud_names))
|
155
|
-
return {}
|
156
151
|
|
157
152
|
workspace_str = f' for workspace: {current_workspace_name!r}'
|
158
153
|
if hide_workspace_str:
|
@@ -172,7 +167,7 @@ def check_capabilities(
|
|
172
167
|
if check_result is None:
|
173
168
|
continue
|
174
169
|
capability, ok, ctx2text = check_result
|
175
|
-
cloud_tuple, _ = combination
|
170
|
+
cloud_tuple, _, _ = combination
|
176
171
|
cloud_repr = cloud_tuple[0]
|
177
172
|
if isinstance(ctx2text, dict):
|
178
173
|
cloud2ctx2text[cloud_repr] = ctx2text
|
@@ -6056,7 +6056,6 @@ def api():
|
|
6056
6056
|
|
6057
6057
|
|
6058
6058
|
@api.command('start', cls=_DocumentedCodeCommand)
|
6059
|
-
@config_option(expose_value=False)
|
6060
6059
|
@click.option('--deploy',
|
6061
6060
|
type=bool,
|
6062
6061
|
is_flag=True,
|
@@ -6089,7 +6088,6 @@ def api_start(deploy: bool, host: Optional[str], foreground: bool):
|
|
6089
6088
|
|
6090
6089
|
|
6091
6090
|
@api.command('stop', cls=_DocumentedCodeCommand)
|
6092
|
-
@config_option(expose_value=False)
|
6093
6091
|
@usage_lib.entrypoint
|
6094
6092
|
def api_stop():
|
6095
6093
|
"""Stops the SkyPilot API server locally."""
|
@@ -6056,7 +6056,6 @@ def api():
|
|
6056
6056
|
|
6057
6057
|
|
6058
6058
|
@api.command('start', cls=_DocumentedCodeCommand)
|
6059
|
-
@config_option(expose_value=False)
|
6060
6059
|
@click.option('--deploy',
|
6061
6060
|
type=bool,
|
6062
6061
|
is_flag=True,
|
@@ -6089,7 +6088,6 @@ def api_start(deploy: bool, host: Optional[str], foreground: bool):
|
|
6089
6088
|
|
6090
6089
|
|
6091
6090
|
@api.command('stop', cls=_DocumentedCodeCommand)
|
6092
|
-
@config_option(expose_value=False)
|
6093
6091
|
@usage_lib.entrypoint
|
6094
6092
|
def api_stop():
|
6095
6093
|
"""Stops the SkyPilot API server locally."""
|
@@ -85,7 +85,8 @@ def stream_response(request_id: Optional[str],
|
|
85
85
|
for line in rich_utils.decode_rich_status(response):
|
86
86
|
if line is not None:
|
87
87
|
print(line, flush=True, end='', file=output_stream)
|
88
|
-
|
88
|
+
if request_id is not None:
|
89
|
+
return get(request_id)
|
89
90
|
except Exception: # pylint: disable=broad-except
|
90
91
|
logger.debug(f'To stream request logs: sky api logs {request_id}')
|
91
92
|
raise
|
{skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/clouds/cloud.py
RENAMED
@@ -726,10 +726,14 @@ class Cloud:
|
|
726
726
|
"""Errors out if the network tier is not supported by the
|
727
727
|
cloud provider.
|
728
728
|
|
729
|
+
For BEST tier: always succeeds, will use best available tier.
|
730
|
+
|
729
731
|
Raises:
|
730
732
|
exceptions.NotSupportedError: If the network tier is not supported.
|
731
733
|
"""
|
732
734
|
del instance_type # unused
|
735
|
+
|
736
|
+
# For other tiers, check if supported
|
733
737
|
if network_tier not in cls._SUPPORTED_NETWORK_TIERS:
|
734
738
|
with ux_utils.print_exception_no_traceback():
|
735
739
|
raise exceptions.NotSupportedError(
|
{skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/clouds/kubernetes.py
RENAMED
@@ -188,8 +188,8 @@ class Kubernetes(clouds.Cloud):
|
|
188
188
|
# Try kubeconfig if present
|
189
189
|
current_context = (
|
190
190
|
kubernetes_utils.get_current_kube_config_context_name())
|
191
|
-
if (current_context is None
|
192
|
-
kubernetes_utils.is_incluster_config_available()):
|
191
|
+
if ((current_context is None or current_context.startswith('ssh-'))
|
192
|
+
and kubernetes_utils.is_incluster_config_available()):
|
193
193
|
# If no kubeconfig contexts found, use in-cluster if available
|
194
194
|
current_context = kubernetes.in_cluster_context_name()
|
195
195
|
allowed_contexts = []
|
{skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/clouds/nebius.py
RENAMED
@@ -9,6 +9,7 @@ from sky import clouds
|
|
9
9
|
from sky import exceptions
|
10
10
|
from sky import skypilot_config
|
11
11
|
from sky.adaptors import nebius
|
12
|
+
from sky.provision.nebius import constants as nebius_constants
|
12
13
|
from sky.utils import annotations
|
13
14
|
from sky.utils import registry
|
14
15
|
from sky.utils import resources_utils
|
@@ -76,8 +77,20 @@ class Nebius(clouds.Cloud):
|
|
76
77
|
def _unsupported_features_for_resources(
|
77
78
|
cls, resources: 'resources_lib.Resources'
|
78
79
|
) -> Dict[clouds.CloudImplementationFeatures, str]:
|
79
|
-
|
80
|
-
|
80
|
+
unsupported = cls._CLOUD_UNSUPPORTED_FEATURES.copy()
|
81
|
+
|
82
|
+
# Check if the accelerators support InfiniBand (H100 or H200) and 8 GPUs
|
83
|
+
if resources.accelerators is not None:
|
84
|
+
for acc_name, acc_count in resources.accelerators.items():
|
85
|
+
if acc_name.lower() in ('h100', 'h200') and acc_count == 8:
|
86
|
+
# Remove CUSTOM_NETWORK_TIER from unsupported features for
|
87
|
+
# InfiniBand-capable accelerators
|
88
|
+
unsupported.pop(
|
89
|
+
clouds.CloudImplementationFeatures.CUSTOM_NETWORK_TIER,
|
90
|
+
None)
|
91
|
+
break
|
92
|
+
|
93
|
+
return unsupported
|
81
94
|
|
82
95
|
@classmethod
|
83
96
|
def _max_cluster_name_length(cls) -> Optional[int]:
|
@@ -227,14 +240,41 @@ class Nebius(clouds.Cloud):
|
|
227
240
|
'image_id': image_family,
|
228
241
|
# Nebius does not support specific zones.
|
229
242
|
'zones': None,
|
230
|
-
'filesystems': resources_vars_fs
|
243
|
+
'filesystems': resources_vars_fs,
|
244
|
+
'network_tier': resources.network_tier
|
231
245
|
}
|
232
246
|
|
247
|
+
docker_run_options = []
|
248
|
+
|
233
249
|
if acc_dict is not None:
|
234
250
|
# Nebius cloud's docker runtime information does not contain
|
235
251
|
# 'nvidia-container-runtime', causing no GPU option to be added to
|
236
252
|
# the docker run command. We patch this by adding it here.
|
237
|
-
|
253
|
+
docker_run_options.append('--gpus all')
|
254
|
+
|
255
|
+
# Check for InfiniBand support with network_tier: best
|
256
|
+
is_infiniband_capable = (
|
257
|
+
platform in nebius_constants.INFINIBAND_INSTANCE_PLATFORMS)
|
258
|
+
if (is_infiniband_capable and
|
259
|
+
resources.network_tier == resources_utils.NetworkTier.BEST):
|
260
|
+
# For Docker containers, add InfiniBand device access and
|
261
|
+
# IPC_LOCK capability
|
262
|
+
if resources.extract_docker_image() is not None:
|
263
|
+
docker_run_options.extend(
|
264
|
+
nebius_constants.INFINIBAND_DOCKER_OPTIONS)
|
265
|
+
|
266
|
+
# Add InfiniBand environment variables to docker run options
|
267
|
+
for env_var, env_value in (
|
268
|
+
nebius_constants.INFINIBAND_ENV_VARS.items()):
|
269
|
+
docker_run_options.extend(
|
270
|
+
['-e', f'{env_var}={env_value}'])
|
271
|
+
|
272
|
+
# For all InfiniBand-capable instances, add env variables
|
273
|
+
resources_vars[
|
274
|
+
'env_vars'] = nebius_constants.INFINIBAND_ENV_VARS
|
275
|
+
|
276
|
+
if docker_run_options:
|
277
|
+
resources_vars['docker_run_options'] = docker_run_options
|
238
278
|
|
239
279
|
return resources_vars
|
240
280
|
|
{skypilot_nightly-1.0.0.dev20250605 → skypilot_nightly-1.0.0.dev20250607}/sky/dashboard/out/404.html
RENAMED
@@ -1 +1 @@
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>404: This page could not be found</title><meta name="next-head-count" content="3"/><link rel="preload" href="/dashboard/_next/static/css/667d941a2888ce6e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/667d941a2888ce6e.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-65d465f948974c0d.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-cb81dc4d27f4d009.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_error-1be831200e60c5c0.js" defer=""></script><script src="/dashboard/_next/static/
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>404: This page could not be found</title><meta name="next-head-count" content="3"/><link rel="preload" href="/dashboard/_next/static/css/667d941a2888ce6e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/667d941a2888ce6e.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-65d465f948974c0d.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-cb81dc4d27f4d009.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_error-1be831200e60c5c0.js" defer=""></script><script src="/dashboard/_next/static/1qG0HTmVilJPxQdBk0fX5/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/1qG0HTmVilJPxQdBk0fX5/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">This page could not be found<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"1qG0HTmVilJPxQdBk0fX5","assetPrefix":"/dashboard","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
|
@@ -0,0 +1 @@
|
|
1
|
+
self.__BUILD_MANIFEST=function(s,c,e,a,t,r,n,u,b,i,j,f){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},"/":["static/chunks/pages/index-6b0d9e5031b70c58.js"],"/_error":["static/chunks/pages/_error-1be831200e60c5c0.js"],"/clusters":[s,r,n,c,e,a,t,u,i,"static/chunks/pages/clusters-4f6b9dd9abcb33ad.js"],"/clusters/[cluster]":[s,r,n,c,e,a,t,u,b,i,"static/chunks/pages/clusters/[cluster]-b919a73aecdfa78f.js"],"/clusters/[cluster]/[job]":[s,c,"static/chunks/pages/clusters/[cluster]/[job]-18aed9b56247d074.js"],"/config":[s,r,c,a,"static/chunks/pages/config-fe375a56342cf609.js"],"/infra":[s,c,e,a,t,j,"static/chunks/pages/infra-a1a6abeeb58c1051.js"],"/infra/[context]":[s,c,e,a,t,j,"static/chunks/pages/infra/[context]-3a18d0eeb5119fe4.js"],"/jobs":[s,n,c,e,a,t,u,b,"static/chunks/pages/jobs-23bfc8bf373423db.js"],"/jobs/[job]":[s,r,c,e,"static/chunks/pages/jobs/[job]-1354e28c81eeb686.js"],"/users":[s,c,e,a,t,"static/chunks/pages/users-5800045bd04e69c2.js"],"/workspace/new":[s,r,n,c,e,a,t,u,b,f,"static/chunks/pages/workspace/new-e1f9c0c3ff7ac4bd.js"],"/workspaces":[s,r,n,c,e,a,t,u,b,"static/chunks/pages/workspaces-76b07aa5da91b0df.js"],"/workspaces/[name]":[s,r,n,c,e,a,t,u,b,f,"static/chunks/pages/workspaces/[name]-686590e0ee4b2412.js"],sortedPages:["/","/_app","/_error","/clusters","/clusters/[cluster]","/clusters/[cluster]/[job]","/config","/infra","/infra/[context]","/jobs","/jobs/[job]","/users","/workspace/new","/workspaces","/workspaces/[name]"]}}("static/chunks/614-635a84e87800f99e.js","static/chunks/470-ad1e0db3afcbd9c9.js","static/chunks/969-2c584e28e6b4b106.js","static/chunks/293-351268365226d251.js","static/chunks/856-3a32da4b84176f6d.js","static/chunks/798-c0525dc3f21e488d.js","static/chunks/121-865d2bf8a3b84c6a.js","static/chunks/973-6d78a0814682d771.js","static/chunks/236-619ed0248fb6fdd9.js","static/chunks/37-600191c5804dcae2.js","static/chunks/682-b60cfdacc15202e8.js","static/chunks/843-c296541442d4af88.js"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
|
skypilot_nightly-1.0.0.dev20250607/sky/dashboard/out/_next/static/chunks/236-619ed0248fb6fdd9.js
ADDED
@@ -0,0 +1,6 @@
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[236],{8236:function(e,s,t){t.d(s,{L4:function(){return A},Nk:function(){return I},x2:function(){return R}});var n=t(5893),r=t(7294),a=t(1163),l=t(1664),i=t.n(l),c=t(8799),o=t(803),d=t(7673),h=t(8764),x=t(6989),u=t(8969),m=t(3266),j=t(7324),p=t(9470),f=t(3626),g=t(998);/**
|
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 w=(0,g.Z)("RefreshCcw",[["path",{d:"M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"14sxne"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16",key:"1hlbsb"}],["path",{d:"M16 16h5v5",key:"ccwih5"}]]),b=(0,g.Z)("FileSearch",[["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M4.268 21a2 2 0 0 0 1.727 1H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v3",key:"ms7g94"}],["path",{d:"m9 18-1.5-1.5",key:"1j6qii"}],["circle",{cx:"5",cy:"14",r:"3",key:"ufru5t"}]]),N=(0,g.Z)("MonitorPlay",[["path",{d:"M10 7.75a.75.75 0 0 1 1.142-.638l3.664 2.249a.75.75 0 0 1 0 1.278l-3.664 2.25a.75.75 0 0 1-1.142-.64z",key:"1pctta"}],["path",{d:"M12 17v4",key:"1riwvh"}],["path",{d:"M8 21h8",key:"1ev6f3"}],["rect",{x:"2",y:"3",width:"20",height:"14",rx:"2",key:"x3v2xh"}]]);var y=t(9284),v=t(4545),k=t(9307),C=t(3001),S=t(8950),L=t(6378),E=t(6856);let R={active:["PENDING","RUNNING","RECOVERING","SUBMITTED","STARTING","CANCELLING"],finished:["SUCCEEDED","FAILED","CANCELLED","FAILED_SETUP","FAILED_PRECHECKS","FAILED_NO_RESOURCE","FAILED_CONTROLLER"]},M="__ALL_WORKSPACES__",_=e=>{if(!e)return"-";let s=e instanceof Date?e:new Date(1e3*e),t=(0,x.GV)(s);if(r.isValidElement(t)&&t.props&&t.props.children&&(t=r.isValidElement(t.props.children)&&t.props.children.props&&t.props.children.props.children?t.props.children.props.children:t.props.children),"string"!=typeof t)return t;let a=function(e){if(!e||"string"!=typeof e)return e;if("just now"===e)return"now";if("less than a minute ago"===e.toLowerCase())return"Less than a minute ago";let s=e.match(/^About\s+(\d+)\s+(\w+)\s+ago$/);if(s){let e=s[1],t=s[2],n={second:"s",seconds:"s",minute:"m",minutes:"m",hour:"h",hours:"h",day:"d",days:"d",month:"mo",months:"mo",year:"yr",years:"yr"};if(n[t])return"".concat(e).concat(n[t]," ago")}let t=e.match(/^a[n]?\s+(\w+)\s+ago$/);if(t){let e=t[1],s={second:"s",minute:"m",hour:"h",day:"d",month:"mo",year:"yr"};if(s[e])return"1".concat(s[e]," ago")}let n=e.match(/^(\d+)\s+(\w+)\s+ago$/);if(n){let e=n[1],s=n[2],t={second:"s",seconds:"s",minute:"m",minutes:"m",hour:"h",hours:"h",day:"d",days:"d",month:"mo",months:"mo",year:"yr",years:"yr"};if(t[s])return"".concat(e).concat(t[s]," ago")}return e}(t);return 7>Math.abs((new Date().getTime()-s.getTime())/864e5)?(0,n.jsx)(x.WH,{content:(0,x.o0)(s),className:"capitalize text-sm text-muted-foreground",children:a}):(0,n.jsx)(x.WH,{content:(0,x.o0)(s),className:"text-sm text-muted-foreground",children:a})};function I(){let e=(0,a.useRouter)(),[s,t]=(0,r.useState)(!1),l=r.useRef(null),[o,d]=(0,r.useState)({isOpen:!1,title:"",message:"",onConfirm:null}),h=(0,C.X)(),[m,g]=(0,r.useState)(M),[w,b]=(0,r.useState)([]);return(0,r.useEffect)(()=>{e.isReady&&e.query.workspace&&g(Array.isArray(e.query.workspace)?e.query.workspace[0]:e.query.workspace)},[e.isReady,e.query.workspace]),(0,r.useEffect)(()=>{(async()=>{try{await E.ZP.preloadForPage("jobs");let e=await L.default.get(j.fX),s=Object.keys(e),t=(await L.default.get(u.getManagedJobs,[{allUsers:!0}])).jobs||[],n=[...new Set(t.map(e=>e.workspace||"default").filter(e=>e))],r=new Set(s);n.forEach(e=>r.add(e)),b(Array.from(r).sort())}catch(e){console.error("Error fetching data for workspace filter:",e),b(["default"])}})()},[]),(0,n.jsxs)(p.A,{highlighted:"jobs",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between mb-4 h-5",children:[(0,n.jsxs)("div",{className:"text-base flex items-center",children:[(0,n.jsx)(i(),{href:"/jobs",className:"text-sky-blue hover:underline leading-none",children:"Managed Jobs"}),(0,n.jsxs)(S.Ph,{value:m,onValueChange:g,children:[(0,n.jsx)(S.i4,{className:"h-8 w-48 ml-4 mr-2 text-sm border-none focus:ring-0 focus:outline-none",children:(0,n.jsx)(S.ki,{placeholder:"Filter by workspace...",children:m===M?"All Workspaces":m})}),(0,n.jsxs)(S.Bw,{children:[(0,n.jsx)(S.Ql,{value:M,children:"All Workspaces"}),w.map(e=>(0,n.jsx)(S.Ql,{value:e,children:e},e))]})]})]}),(0,n.jsxs)("div",{className:"flex items-center space-x-2",children:[s&&(0,n.jsxs)("div",{className:"flex items-center mr-2",children:[(0,n.jsx)(c.Z,{size:15,className:"mt-0"}),(0,n.jsx)("span",{className:"ml-2 text-gray-500 text-sm",children:"Loading..."})]}),(0,n.jsxs)("button",{onClick:()=>{L.default.invalidate(u.getManagedJobs,[{allUsers:!0}]),L.default.invalidate(j.fX),l.current&&l.current()},disabled:s,className:"text-sky-blue hover:text-sky-blue-bright flex items-center",title:"Refresh",children:[(0,n.jsx)(f.Z,{className:"h-4 w-4 mr-1.5"}),!h&&(0,n.jsx)("span",{children:"Refresh"})]})]})]}),(0,n.jsx)(D,{refreshInterval:x.yc,setLoading:t,refreshDataRef:l,workspaceFilter:m}),(0,n.jsx)(y.cV,{isOpen:o.isOpen,onClose:()=>d({...o,isOpen:!1}),onConfirm:o.onConfirm,title:o.title,message:o.message})]})}function D(e){let{refreshInterval:s,setLoading:t,refreshDataRef:a,workspaceFilter:l}=e,[j,p]=(0,r.useState)([]),[f,g]=(0,r.useState)({key:null,direction:"ascending"}),[b,N]=(0,r.useState)(!1),[C,S]=(0,r.useState)(!0),[E,I]=(0,r.useState)(1),[D,A]=(0,r.useState)(10),[F,P]=(0,r.useState)(null),U=(0,r.useRef)(null),[Z,T]=(0,r.useState)([]),[q,V]=(0,r.useState)({}),[J,B]=(0,r.useState)(!1),[H,G]=(0,r.useState)(!1),[X,$]=(0,r.useState)(!1),[K,Q]=(0,r.useState)("active"),[Y,ee]=(0,r.useState)(!0),[es,et]=(0,r.useState)({isOpen:!1,title:"",message:"",onConfirm:null}),en=async()=>{et({isOpen:!0,title:"Restart Controller",message:"Are you sure you want to restart the controller?",onConfirm:async()=>{try{$(!0),N(!0),await (0,u.Ce)("restartcontroller"),await er()}catch(e){console.error("Error restarting controller:",e)}finally{$(!1),N(!1)}}})},er=r.useCallback(async()=>{N(!0),t(!0);try{let[e,s]=await Promise.all([L.default.get(u.getManagedJobs,[{allUsers:!0}]),L.default.get(m.getClusters)]),{jobs:t=[],controllerStopped:n=!1}=e||{},r=null==s?void 0:s.find(e=>(0,v.Ym)(e.cluster)),a=r?r.status:"NOT_FOUND",l=!1;"STOPPED"==a&&n&&(l=!0),"LAUNCHING"==a?G(!0):G(!1),p(t),B(l),S(!1)}catch(e){console.error("Error fetching data:",e),p([]),B(!1),S(!1)}finally{N(!1),t(!1)}},[t]);r.useEffect(()=>{a&&(a.current=er)},[a,er]),(0,r.useEffect)(()=>{p([]);let e=!0;er();let t=setInterval(()=>{e&&er()},s);return()=>{e=!1,clearInterval(t)}},[s,er]),(0,r.useEffect)(()=>{I(1)},[K,null==j?void 0:j.length]),(0,r.useEffect)(()=>{T([]),ee(!0)},[K]);let ea=e=>{let s="ascending";f.key===e&&"ascending"===f.direction&&(s="descending"),g({key:e,direction:s})},el=e=>f.key===e?"ascending"===f.direction?" ↑":" ↓":"";r.useMemo(()=>{let e=j||[];return{active:e.filter(e=>R.active.includes(e.status)).length,finished:e.filter(e=>R.finished.includes(e.status)).length}},[j]);let ei=e=>Z.length>0?Z.includes(e):R[K].includes(e),ec=r.useMemo(()=>{let e=l&&l!==M?j.filter(e=>(e.workspace||"default").toLowerCase()===l.toLowerCase()):j;return Z.length>0?e.filter(e=>Z.includes(e.status)):Y?e.filter(e=>R[K].includes(e.status)):[]},[j,K,Z,Y,l]),eo=r.useMemo(()=>f.key?[...ec].sort((e,s)=>e[f.key]<s[f.key]?"ascending"===f.direction?-1:1:e[f.key]>s[f.key]?"ascending"===f.direction?1:-1:0):ec,[ec,f]),ed=Math.ceil(eo.length/D),eh=(E-1)*D,ex=eh+D,eu=eo.slice(eh,ex),em=e=>{if(Z.includes(e)){let s=Z.filter(s=>s!==e);0===s.length?(ee(!0),T([])):(T(s),ee(!1))}else T([...Z,e]),ee(!1)};return(0,r.useEffect)(()=>{V((j||[]).reduce((e,s)=>(e[s.status]=(e[s.status]||0)+1,e),{}))},[j]),(0,n.jsxs)("div",{className:"relative",children:[(0,n.jsx)("div",{className:"flex flex-col space-y-1 mb-1",children:(0,n.jsxs)("div",{className:"flex flex-wrap items-center text-sm mb-1",children:[(0,n.jsx)("span",{className:"mr-2 text-sm font-medium",children:"Statuses:"}),(0,n.jsxs)("div",{className:"flex flex-wrap gap-2 items-center",children:[!b&&(!j||0===j.length)&&!C&&(0,n.jsx)("span",{className:"text-gray-500 mr-2",children:"No jobs found"}),Object.entries(q).map(e=>{let[s,t]=e;return(0,n.jsxs)("button",{onClick:()=>em(s),className:"px-3 py-1 rounded-full flex items-center space-x-2 ".concat(ei(s)||Z.includes(s)?(0,k.Cl)(s):"bg-gray-50 text-gray-600 hover:bg-gray-100"),children:[(0,n.jsx)("span",{children:s}),(0,n.jsx)("span",{className:"text-xs ".concat(ei(s)||Z.includes(s)?"bg-white/50":"bg-gray-200"," px-1.5 py-0.5 rounded"),children:t})]},s)}),j&&j.length>0&&(0,n.jsxs)("div",{className:"flex items-center ml-2 gap-2",children:[(0,n.jsx)("span",{className:"text-gray-500",children:"("}),(0,n.jsx)("button",{onClick:()=>{Q("active"),T([]),ee(!0)},className:"text-sm font-medium ".concat("active"===K&&Y?"text-green-700 underline":"text-gray-600 hover:text-green-700 hover:underline"),children:"show all active jobs"}),(0,n.jsx)("span",{className:"text-gray-500 mx-1",children:"|"}),(0,n.jsx)("button",{onClick:()=>{Q("finished"),T([]),ee(!0)},className:"text-sm font-medium ".concat("finished"===K&&Y?"text-blue-700 underline":"text-gray-600 hover:text-blue-700 hover:underline"),children:"show all finished jobs"}),(0,n.jsx)("span",{className:"text-gray-500",children:")"})]})]})]})}),(0,n.jsx)(d.Zb,{children:(0,n.jsxs)(h.iA,{children:[(0,n.jsx)(h.xD,{children:(0,n.jsxs)(h.SC,{children:[(0,n.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>ea("id"),children:["ID",el("id")]}),(0,n.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>ea("name"),children:["Name",el("name")]}),(0,n.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>ea("user"),children:["User",el("user")]}),(0,n.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>ea("workspace"),children:["Workspace",el("workspace")]}),(0,n.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>ea("submitted_at"),children:["Submitted",el("submitted_at")]}),(0,n.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>ea("job_duration"),children:["Duration",el("job_duration")]}),(0,n.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>ea("status"),children:["Status",el("status")]}),(0,n.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>ea("priority"),children:["Priority",el("priority")]}),(0,n.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>ea("resources_str"),children:["Requested",el("resources_str")]}),(0,n.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>ea("infra"),children:["Infra",el("infra")]}),(0,n.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>ea("cluster"),children:["Resources",el("cluster")]}),(0,n.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>ea("recoveries"),children:["Recoveries",el("recoveries")]}),(0,n.jsx)(h.ss,{children:"Details"}),(0,n.jsx)(h.ss,{children:"Logs"})]})}),(0,n.jsx)(h.RM,{children:b||C?(0,n.jsx)(h.SC,{children:(0,n.jsx)(h.pj,{colSpan:13,className:"text-center py-6 text-gray-500",children:(0,n.jsxs)("div",{className:"flex justify-center items-center",children:[(0,n.jsx)(c.Z,{size:20,className:"mr-2"}),(0,n.jsx)("span",{children:"Loading..."})]})})}):eu.length>0?(0,n.jsx)(n.Fragment,{children:eu.map(e=>(0,n.jsxs)(r.Fragment,{children:[(0,n.jsxs)(h.SC,{children:[(0,n.jsx)(h.pj,{children:(0,n.jsx)(i(),{href:"/jobs/".concat(e.id),className:"text-blue-600",children:e.id})}),(0,n.jsx)(h.pj,{children:(0,n.jsx)(i(),{href:"/jobs/".concat(e.id),className:"text-blue-600",children:e.name})}),(0,n.jsx)(h.pj,{children:e.user}),(0,n.jsx)(h.pj,{children:(0,n.jsx)(i(),{href:"/workspaces",className:"text-blue-600 hover:underline",children:e.workspace||"default"})}),(0,n.jsx)(h.pj,{children:_(e.submitted_at)}),(0,n.jsx)(h.pj,{children:(0,x.LU)(e.job_duration)}),(0,n.jsx)(h.pj,{children:(0,n.jsx)(k.OE,{status:e.status})}),(0,n.jsx)(h.pj,{children:e.priority}),(0,n.jsx)(h.pj,{children:e.requested_resources}),(0,n.jsx)(h.pj,{children:e.infra&&"-"!==e.infra?(0,n.jsx)(x.Md,{content:e.full_infra||e.infra,className:"text-sm text-muted-foreground",children:(0,n.jsxs)("span",{children:[(0,n.jsx)(i(),{href:"/infra",className:"text-blue-600 hover:underline",children:e.cloud||e.infra.split("(")[0].trim()}),e.infra.includes("(")&&(0,n.jsx)("span",{children:" "+e.infra.substring(e.infra.indexOf("("))})]})}):(0,n.jsx)("span",{children:e.infra||"-"})}),(0,n.jsx)(h.pj,{children:(0,n.jsx)(x.Md,{content:e.resources_str_full||e.resources_str,className:"text-sm text-muted-foreground",children:(0,n.jsx)("span",{children:e.resources_str})})}),(0,n.jsx)(h.pj,{children:e.recoveries}),(0,n.jsx)(h.pj,{children:e.details?(0,n.jsx)(W,{text:e.details,rowId:e.id,expandedRowId:F,setExpandedRowId:P}):"-"}),(0,n.jsx)(h.pj,{children:(0,n.jsx)(O,{jobParent:"/jobs",jobId:e.id,managed:!0})})]}),F===e.id&&(0,n.jsx)(z,{text:e.details,colSpan:13,innerRef:U})]},e.id))}):(0,n.jsx)(h.SC,{children:(0,n.jsx)(h.pj,{colSpan:13,className:"text-center py-6",children:(0,n.jsxs)("div",{className:"flex flex-col items-center space-y-4",children:[H&&(0,n.jsxs)("div",{className:"flex flex-col items-center space-y-2",children:[(0,n.jsx)("p",{className:"text-gray-700",children:"The managed job controller is launching. It will be ready shortly."}),(0,n.jsxs)("div",{className:"flex items-center",children:[(0,n.jsx)(c.Z,{size:12,className:"mr-2"}),(0,n.jsx)("span",{className:"text-gray-500",children:"Launching..."})]})]}),!J&&!H&&(0,n.jsx)("p",{className:"text-gray-500",children:"No active jobs"}),J&&(0,n.jsxs)("div",{className:"flex flex-col items-center space-y-2",children:[(0,n.jsx)("p",{className:"text-gray-700",children:"The managed job controller has been stopped. Restart to check the latest job status."}),(0,n.jsx)(o.z,{variant:"outline",size:"sm",onClick:en,className:"text-sky-blue hover:text-sky-blue-bright",disabled:b||X,children:X?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(c.Z,{size:12,className:"mr-2"}),"Restarting..."]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(w,{className:"h-4 w-4 mr-2"}),"Restart Controller"]})})]})]})})})})]})}),eo&&eo.length>0&&(0,n.jsx)("div",{className:"flex justify-end items-center py-2 px-4 text-sm text-gray-700",children:(0,n.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,n.jsxs)("div",{className:"flex items-center",children:[(0,n.jsx)("span",{className:"mr-2",children:"Rows per page:"}),(0,n.jsxs)("div",{className:"relative inline-block",children:[(0,n.jsxs)("select",{value:D,onChange:e=>{A(parseInt(e.target.value,10)),I(1)},className:"py-1 pl-2 pr-6 appearance-none outline-none cursor-pointer border-none bg-transparent",style:{minWidth:"40px"},children:[(0,n.jsx)("option",{value:10,children:"10"}),(0,n.jsx)("option",{value:30,children:"30"}),(0,n.jsx)("option",{value:50,children:"50"}),(0,n.jsx)("option",{value:100,children:"100"}),(0,n.jsx)("option",{value:200,children:"200"})]}),(0,n.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,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]})]}),(0,n.jsxs)("div",{children:[eh+1," – ",Math.min(ex,eo.length)," of"," ",eo.length]}),(0,n.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,n.jsx)(o.z,{variant:"ghost",size:"icon",onClick:()=>{I(e=>Math.max(e-1,1))},disabled:1===E,className:"text-gray-500 h-8 w-8 p-0",children:(0,n.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,n.jsx)("path",{d:"M15 18l-6-6 6-6"})})}),(0,n.jsx)(o.z,{variant:"ghost",size:"icon",onClick:()=>{I(e=>Math.min(e+1,ed))},disabled:E===ed||0===ed,className:"text-gray-500 h-8 w-8 p-0",children:(0,n.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,n.jsx)("path",{d:"M9 18l6-6-6-6"})})})]})]})}),(0,n.jsx)(y.cV,{isOpen:es.isOpen,onClose:()=>et({...es,isOpen:!1}),onConfirm:es.onConfirm,title:es.title,message:es.message,confirmClassName:"bg-blue-600 hover:bg-blue-700 text-white"})]})}function O(e){let{withLabel:s=!1,jobParent:t,jobId:r,managed:l}=e,i=(0,a.useRouter)(),c=(e,s)=>{e.preventDefault(),e.stopPropagation(),i.push({pathname:"".concat(t,"/").concat(r),query:{tab:s}})};return(0,n.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,n.jsx)(x.WH,{content:"View Job Logs",className:"capitalize text-sm text-muted-foreground",children:(0,n.jsxs)("button",{onClick:e=>c(e,"logs"),className:"text-sky-blue hover:text-sky-blue-bright font-medium inline-flex items-center h-8",children:[(0,n.jsx)(b,{className:"w-4 h-4"}),s&&(0,n.jsx)("span",{className:"ml-1.5",children:"Logs"})]})},"logs"),l&&(0,n.jsx)(x.WH,{content:"View Controller Logs",className:"capitalize text-sm text-muted-foreground",children:(0,n.jsxs)("button",{onClick:e=>c(e,"controllerlogs"),className:"text-sky-blue hover:text-sky-blue-bright font-medium inline-flex items-center h-8",children:[(0,n.jsx)(N,{className:"w-4 h-4"}),s&&(0,n.jsx)("span",{className:"ml-2",children:"Controller Logs"})]})},"controllerlogs")]})}function A(e){let{clusterName:s,clusterJobData:t,loading:a,refreshClusterJobsOnly:l}=e,[u,m]=(0,r.useState)(null),[j,p]=(0,r.useState)({key:null,direction:"ascending"}),[g,w]=(0,r.useState)(1),[b,N]=(0,r.useState)(10),y=(0,r.useRef)(null),[v,C]=(0,r.useState)(null);(0,r.useEffect)(()=>{let e=e=>{u&&y.current&&!y.current.contains(e.target)&&m(null)};return document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e)}},[u]);let S=r.useMemo(()=>t||[],[t]);(0,r.useEffect)(()=>{JSON.stringify(t)!==JSON.stringify(v)&&C(t)},[t,v]);let L=r.useMemo(()=>j.key?[...S].sort((e,s)=>e[j.key]<s[j.key]?"ascending"===j.direction?-1:1:e[j.key]>s[j.key]?"ascending"===j.direction?1:-1:0):S,[S,j]),E=e=>{let s="ascending";j.key===e&&"ascending"===j.direction&&(s="descending"),p({key:e,direction:s})},R=e=>j.key===e?"ascending"===j.direction?" ↑":" ↓":"",M=Math.ceil(L.length/b),I=(g-1)*b,D=I+b,A=L.slice(I,D);return(0,n.jsxs)("div",{className:"relative",children:[(0,n.jsxs)(d.Zb,{children:[(0,n.jsxs)("div",{className:"flex items-center justify-between p-4",children:[(0,n.jsx)("h3",{className:"text-lg font-semibold",children:"Cluster Jobs"}),(0,n.jsx)("div",{className:"flex items-center",children:l&&(0,n.jsxs)("button",{onClick:l,disabled:a,className:"text-sky-blue hover:text-sky-blue-bright font-medium inline-flex items-center text-sm ml-2",children:[(0,n.jsx)(f.Z,{className:"w-4 h-4 mr-1"}),"Refresh Jobs"]})})]}),(0,n.jsxs)(h.iA,{children:[(0,n.jsx)(h.xD,{children:(0,n.jsxs)(h.SC,{children:[(0,n.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>E("id"),children:["ID",R("id")]}),(0,n.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>E("job"),children:["Name",R("job")]}),(0,n.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>E("user"),children:["User",R("user")]}),(0,n.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>E("workspace"),children:["Workspace",R("workspace")]}),(0,n.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>E("submitted_at"),children:["Submitted",R("submitted_at")]}),(0,n.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>E("job_duration"),children:["Duration",R("job_duration")]}),(0,n.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>E("status"),children:["Status",R("status")]}),(0,n.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>E("resources"),children:["Resources",R("resources")]}),(0,n.jsx)(h.ss,{className:"whitespace-nowrap",children:"Logs"})]})}),(0,n.jsx)(h.RM,{children:a?(0,n.jsx)(h.SC,{children:(0,n.jsx)(h.pj,{colSpan:9,className:"text-center py-12 text-gray-500",children:(0,n.jsxs)("div",{className:"flex justify-center items-center",children:[(0,n.jsx)(c.Z,{size:24,className:"mr-2"}),(0,n.jsx)("span",{children:"Loading cluster jobs..."})]})})}):A.length>0?A.map(e=>(0,n.jsxs)(r.Fragment,{children:[(0,n.jsxs)(h.SC,{className:u===e.id?"selected-row":"",children:[(0,n.jsx)(h.pj,{children:(0,n.jsx)(i(),{href:"/clusters/".concat(s,"/").concat(e.id),className:"text-blue-600",children:e.id})}),(0,n.jsx)(h.pj,{children:(0,n.jsx)(i(),{href:"/clusters/".concat(s,"/").concat(e.id),className:"text-blue-600",children:(0,n.jsx)(W,{text:e.job||"Unnamed job",rowId:e.id,expandedRowId:u,setExpandedRowId:m})})}),(0,n.jsx)(h.pj,{children:e.user}),(0,n.jsx)(h.pj,{children:(0,n.jsx)(i(),{href:"/workspaces",className:"text-blue-600 hover:underline",children:e.workspace||"default"})}),(0,n.jsx)(h.pj,{children:_(e.submitted_at)}),(0,n.jsx)(h.pj,{children:(0,x.LU)(e.job_duration)}),(0,n.jsx)(h.pj,{children:(0,n.jsx)(k.OE,{status:e.status})}),(0,n.jsx)(h.pj,{children:e.resources}),(0,n.jsx)(h.pj,{className:"flex content-center items-center",children:(0,n.jsx)(O,{jobParent:"/clusters/".concat(s),jobId:e.id,managed:!1})})]}),u===e.id&&(0,n.jsx)(z,{text:e.job||"Unnamed job",colSpan:9,innerRef:y})]},e.id)):(0,n.jsx)(h.SC,{children:(0,n.jsx)(h.pj,{colSpan:8,className:"text-center py-6 text-gray-500",children:"No jobs found"})})})]})]}),L&&L.length>0&&(0,n.jsx)("div",{className:"flex justify-end items-center py-2 px-4 text-sm text-gray-700",children:(0,n.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,n.jsxs)("div",{className:"flex items-center",children:[(0,n.jsx)("span",{className:"mr-2",children:"Rows per page:"}),(0,n.jsxs)("div",{className:"relative inline-block",children:[(0,n.jsxs)("select",{value:b,onChange:e=>{N(parseInt(e.target.value,10)),w(1)},className:"py-1 pl-2 pr-6 appearance-none outline-none cursor-pointer border-none bg-transparent",style:{minWidth:"40px"},children:[(0,n.jsx)("option",{value:5,children:"5"}),(0,n.jsx)("option",{value:10,children:"10"}),(0,n.jsx)("option",{value:20,children:"20"}),(0,n.jsx)("option",{value:50,children:"50"})]}),(0,n.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,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]})]}),(0,n.jsxs)("div",{children:[I+1," – ",Math.min(D,L.length)," of"," ",L.length]}),(0,n.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,n.jsx)(o.z,{variant:"ghost",size:"icon",onClick:()=>{w(e=>Math.max(e-1,1))},disabled:1===g,className:"text-gray-500 h-8 w-8 p-0",children:(0,n.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,n.jsx)("path",{d:"M15 18l-6-6 6-6"})})}),(0,n.jsx)(o.z,{variant:"ghost",size:"icon",onClick:()=>{w(e=>Math.min(e+1,M))},disabled:g===M||0===M,className:"text-gray-500 h-8 w-8 p-0",children:(0,n.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,n.jsx)("path",{d:"M9 18l6-6-6-6"})})})]})]})})]})}function z(e){let{text:s,colSpan:t,innerRef:r}=e;return(0,n.jsx)(h.SC,{className:"expanded-details",children:(0,n.jsx)(h.pj,{colSpan:t,children:(0,n.jsx)("div",{className:"p-4 bg-gray-50 rounded-md border border-gray-200",ref:r,children:(0,n.jsx)("div",{className:"flex justify-between items-start",children:(0,n.jsxs)("div",{className:"flex-1",children:[(0,n.jsx)("p",{className:"text-sm font-medium text-gray-900",children:"Full Details"}),(0,n.jsx)("p",{className:"mt-1 text-sm text-gray-700",style:{whiteSpace:"pre-wrap"},children:s})]})})})})})}function W(e){let{text:s,rowId:t,expandedRowId:a,setExpandedRowId:l}=e,i=s||"",c=i.length>50,o=a===t,d=c?"".concat(i.substring(0,50)):i,h=(0,r.useRef)(null);return(0,n.jsxs)("div",{className:"truncated-details relative max-w-full flex items-center",children:[(0,n.jsx)("span",{className:"truncate",children:d}),c&&(0,n.jsx)("button",{ref:h,type:"button",onClick:e=>{e.preventDefault(),e.stopPropagation(),l(o?null:t)},className:"text-blue-600 hover:text-blue-800 font-medium ml-1 flex-shrink-0","data-button-type":"show-more-less",children:o?"... show less":"... show more"})]})}}}]);
|
@@ -1 +1 @@
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[470],{3850:function(e,t,n){n.d(t,{E9:function(){return w},J$:function(){return c},PC:function(){return f},Ps:function(){return a},QT:function(){return h},Vp:function(){return x},W2:function(){return l},Ye:function(){return d},aD:function(){return j},fp:function(){return u},fy:function(){return p},h0:function(){return m},lM:function(){return v},mU:function(){return g},oy:function(){return y}});var r=n(5893);n(7294);var s=n(8507),o=n(8586),i=n(9611);function a(e){return(0,r.jsx)("svg",{...e,xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"currentColor",stroke:"currentColor",strokeWidth:"0",strokeLinecap:"round",strokeLinejoin:"round",children:(0,r.jsx)("rect",{width:"18",height:"18",x:"3",y:"3",rx:"2"})})}function l(e){return(0,r.jsx)("svg",{...e,xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"currentColor",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,r.jsx)("circle",{cx:"10",cy:"10",r:"8"})})}function c(e){return(0,r.jsx)("svg",{...e,xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,r.jsx)("circle",{cx:"10",cy:"10",r:"8"})})}function d(e){return(0,r.jsx)("svg",{...e,xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"5",strokeLinecap:"round",strokeLinejoin:"round",children:(0,r.jsx)("path",{d:"M6 12l4 4 8-8"})})}function u(e){return(0,r.jsxs)("svg",{...e,xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"currentColor",stroke:"currentColor",strokeWidth:"0",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("rect",{x:"6",y:"5",width:"4",height:"14",rx:"1"}),(0,r.jsx)("rect",{x:"14",y:"5",width:"4",height:"14",rx:"1"})]})}function h(e){return(0,r.jsxs)("svg",{...e,xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2"}),(0,r.jsx)("rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2"}),(0,r.jsx)("line",{x1:"6",x2:"6.01",y1:"6",y2:"6"}),(0,r.jsx)("line",{x1:"6",x2:"6.01",y1:"18",y2:"18"})]})}function x(e){return(0,r.jsxs)("svg",{...e,xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("path",{d:"M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16"}),(0,r.jsx)("rect",{width:"20",height:"14",x:"2",y:"6",rx:"2"})]})}function f(e){return(0,r.jsxs)("svg",{...e,xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2",ry:"2"}),(0,r.jsx)("rect",{x:"9",y:"9",width:"6",height:"6"}),(0,r.jsx)("line",{x1:"9",y1:"1",x2:"9",y2:"4"}),(0,r.jsx)("line",{x1:"15",y1:"1",x2:"15",y2:"4"}),(0,r.jsx)("line",{x1:"9",y1:"20",x2:"9",y2:"23"}),(0,r.jsx)("line",{x1:"15",y1:"20",x2:"15",y2:"23"}),(0,r.jsx)("line",{x1:"20",y1:"9",x2:"23",y2:"9"}),(0,r.jsx)("line",{x1:"20",y1:"14",x2:"23",y2:"14"}),(0,r.jsx)("line",{x1:"1",y1:"9",x2:"4",y2:"9"}),(0,r.jsx)("line",{x1:"1",y1:"14",x2:"4",y2:"14"})]})}function m(e){return(0,r.jsxs)("svg",{...e,xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"}),(0,r.jsx)("polyline",{points:"15 3 21 3 21 9"}),(0,r.jsx)("line",{x1:"10",y1:"14",x2:"21",y2:"3"})]})}function p(e){return(0,r.jsx)("svg",{...e,xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"currentColor",children:(0,r.jsx)("path",{d:"M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"})})}function g(e){return(0,r.jsx)("svg",{...e,xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"currentColor",children:(0,r.jsx)("path",{transform:"scale(0.85) translate(1.8, 1.8)",d:"M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zM6.313 15.165a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zM8.834 6.313a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zM18.956 8.834a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522V8.834zM17.688 8.834a2.528 2.528 0 0 1-2.523 2.521 2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312zM15.165 18.956a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522h2.52zM15.165 17.688a2.527 2.527 0 0 1-2.52-2.523 2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165a2.528 2.528 0 0 1-2.522 2.523h-6.313z"})})}function w(e){return(0,r.jsx)("svg",{...e,stroke:"currentColor",fill:"currentColor",strokeWidth:"0",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:(0,r.jsxs)("g",{children:[(0,r.jsx)("path",{fill:"none",d:"M0 0h24v24H0z"}),(0,r.jsx)("path",{d:"M3 18.5V5a3 3 0 0 1 3-3h14a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5A3.5 3.5 0 0 1 3 18.5zM19 20v-3H6.5a1.5 1.5 0 0 0 0 3H19zM10 4H6a1 1 0 0 0-1 1v10.337A3.486 3.486 0 0 1 6.5 15H19V4h-2v8l-3.5-2-3.5 2V4z"})]})})}let j=s.Z,y=o.Z;function v(e){return(0,r.jsx)(i.Z,{...e})}},9470:function(e,t,n){n.d(t,{A:function(){return j}});var r=n(5893),s=n(7294),o=n(5675),i=n.n(o),a=n(1163),l=n(1664),c=n.n(l),d=n(3850),u=n(355),h=n(3225),x=n(6989),f=n(3001);let m=(0,s.createContext)(null);function p(e){let{children:t}=e,[n,o]=(0,s.useState)(!0),[i,a]=(0,s.useState)(null);return(0,s.useEffect)(()=>{fetch("".concat(h.f4,"/api/health")).then(e=>e.json()).then(e=>{e.user&&e.user.name&&a(e.user.name)}).catch(e=>{console.error("Error fetching user data:",e)})},[]),(0,r.jsx)(m.Provider,{value:{isSidebarOpen:n,toggleSidebar:()=>{o(e=>!e)},userEmail:i},children:t})}function g(){let e,t;let n=(0,a.useRouter)(),o=(0,f.X)(),{userEmail:l}=function(){let e=(0,s.useContext)(m);if(!e)throw Error("useSidebar must be used within a SidebarProvider");return e}(),[p,g]=(0,s.useState)(!1),w=(0,s.useRef)(null);(0,s.useEffect)(()=>{function e(e){w.current&&!w.current.contains(e.target)&&g(!1)}return document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e)}},[w]);let j=e=>"/workspaces"===e?n.pathname.startsWith("/workspaces")||n.pathname.startsWith("/workspace"):n.pathname.startsWith(e),y=e=>{let t=j(e);return"inline-flex items-center border-b-2 ".concat(t?"border-transparent text-blue-600":"border-transparent hover:text-blue-600"," ").concat(o?"px-2 py-1":"px-1 pt-1 space-x-2")};return(0,r.jsx)("div",{className:"fixed top-0 left-0 right-0 bg-white z-30 h-14 px-4 border-b border-gray-200 shadow-sm",children:(0,r.jsxs)("div",{className:"flex items-center h-full",children:[(0,r.jsx)("div",{className:"flex items-center ".concat(o?"space-x-2 mr-2":"space-x-4 mr-6"),children:(0,r.jsx)(c(),{href:"/",className:"flex items-center px-1 pt-1 h-full",prefetch:!1,children:(0,r.jsx)("div",{className:"h-20 w-20 flex items-center justify-center",children:(0,r.jsx)(i(),{src:"".concat(h.GW,"/skypilot.svg"),alt:"SkyPilot Logo",width:80,height:80,priority:!0,className:"w-full h-full object-contain"})})})}),(0,r.jsxs)("div",{className:"flex items-center ".concat(o?"space-x-1":"space-x-2 md:space-x-4"," ").concat(o?"mr-2":"mr-6"),children:[(0,r.jsxs)(c(),{href:"/clusters",className:y("/clusters"),prefetch:!1,children:[(0,r.jsx)(d.QT,{className:"w-4 h-4"}),!o&&(0,r.jsx)("span",{children:"Clusters"})]}),(0,r.jsxs)(c(),{href:"/jobs",className:y("/jobs"),prefetch:!1,children:[(0,r.jsx)(d.Vp,{className:"w-4 h-4"}),!o&&(0,r.jsx)("span",{children:"Jobs"})]}),(0,r.jsx)("div",{className:"border-l border-gray-200 h-6 mx-1"}),(0,r.jsxs)(c(),{href:"/infra",className:y("/infra"),prefetch:!1,children:[(0,r.jsx)(d.PC,{className:"w-4 h-4"}),!o&&(0,r.jsx)("span",{children:"Infra"})]}),(0,r.jsxs)(c(),{href:"/workspaces",className:y("/workspaces"),prefetch:!1,children:[(0,r.jsx)(d.E9,{className:"w-4 h-4"}),!o&&(0,r.jsx)("span",{children:"Workspaces"})]}),(0,r.jsxs)(c(),{href:"/users",className:y("/users"),prefetch:!1,children:[(0,r.jsx)(d.oy,{className:"w-4 h-4"}),!o&&(0,r.jsx)("span",{children:"Users"})]})]}),(0,r.jsxs)("div",{className:"flex items-center space-x-1 ".concat(o?"ml-0":"ml-auto"),children:[(0,r.jsx)(x.WH,{content:"Documentation",className:"text-sm text-muted-foreground",children:(0,r.jsxs)("a",{href:"https://skypilot.readthedocs.io/en/latest/",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center px-2 py-1 text-gray-600 hover:text-blue-600 transition-colors duration-150 cursor-pointer",title:"Docs",children:[!o&&(0,r.jsx)("span",{className:"mr-1",children:"Docs"}),(0,r.jsx)(d.h0,{className:"".concat(o?"w-4 h-4":"w-3.5 h-3.5")})]})}),(0,r.jsx)(x.WH,{content:"GitHub Repository",className:"text-sm text-muted-foreground",children:(0,r.jsx)("a",{href:"https://github.com/skypilot-org/skypilot",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center justify-center p-2 rounded-full text-gray-600 hover:bg-gray-100 transition-colors duration-150 cursor-pointer",title:"GitHub",children:(0,r.jsx)(d.fy,{className:"".concat(o?"w-4 h-4":"w-5 h-5")})})}),(0,r.jsx)(x.WH,{content:"Join Slack",className:"text-sm text-muted-foreground",children:(0,r.jsx)("a",{href:"https://slack.skypilot.co/",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center justify-center p-2 rounded-full text-gray-600 hover:bg-gray-100 transition-colors duration-150 cursor-pointer",title:"Slack",children:(0,r.jsx)(d.mU,{className:"".concat(o?"w-4 h-4":"w-5 h-5")})})}),(0,r.jsx)(x.WH,{content:"Leave Feedback",className:"text-sm text-muted-foreground",children:(0,r.jsx)("a",{href:"https://github.com/skypilot-org/skypilot/issues/new",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center justify-center p-2 rounded-full text-gray-600 hover:bg-gray-100 transition-colors duration-150 cursor-pointer",title:"Leave Feedback",children:(0,r.jsx)(d.aD,{className:"".concat(o?"w-4 h-4":"w-5 h-5")})})}),(0,r.jsx)("div",{className:"border-l border-gray-200 h-6"}),(0,r.jsx)(x.WH,{content:"Configuration",className:"text-sm text-muted-foreground",children:(0,r.jsx)(c(),{href:"/config",className:"inline-flex items-center justify-center p-2 rounded-full transition-colors duration-150 cursor-pointer ".concat(j("/config")?"text-blue-600 hover:bg-gray-100":"text-gray-600 hover:bg-gray-100"),title:"Configuration",prefetch:!1,children:(0,r.jsx)(u.Z,{className:"".concat(o?"w-4 h-4":"w-5 h-5")})})}),l&&(0,r.jsxs)("div",{className:"relative",ref:w,children:[(0,r.jsx)("button",{onClick:()=>g(!p),className:"inline-flex items-center justify-center p-2 rounded-full text-gray-600 hover:bg-gray-100 transition-colors duration-150 cursor-pointer",title:"User Profile",children:(0,r.jsx)(d.lM,{className:"".concat(o?"w-5 h-5":"w-6 h-6")})}),p&&(0,r.jsxs)("div",{className:"absolute right-0 mt-2 w-48 bg-white rounded-md shadow-lg z-50 border border-gray-200",children:[(e=l,t=null,l&&l.includes("@")&&(e=l.split("@")[0],t=l),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"px-4 pt-2 pb-1 text-sm font-medium text-gray-900",children:e}),t&&(0,r.jsx)("div",{className:"px-4 pt-0 pb-2 text-xs text-gray-500",children:t})]})),(0,r.jsx)("div",{className:"border-t border-gray-200 mx-1 my-1"}),(0,r.jsx)(c(),{href:"/users",className:"block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 hover:text-blue-600",onClick:()=>g(!1),prefetch:!1,children:"See all users"})]})]})]})]})})}function w(e){let{children:t,highlighted:n}=e;return(0,f.X)(),(0,r.jsxs)("div",{className:"min-h-screen bg-gray-50",children:[(0,r.jsx)("div",{className:"fixed top-0 left-0 right-0 z-50 shadow-sm",children:(0,r.jsx)(g,{})}),(0,r.jsx)("div",{className:"transition-all duration-200 ease-in-out min-h-screen",style:{paddingTop:"56px"},children:(0,r.jsx)("main",{className:"p-6",children:t})})]})}function j(e){return(0,r.jsx)(p,{children:(0,r.jsx)(w,{...e})})}},8950:function(e,t,n){n.d(t,{Bw:function(){return m},Ph:function(){return d},Ql:function(){return p},i4:function(){return h},ki:function(){return u}});var r=n(5893),s=n(7294),o=n(2067),i=n(5895),a=n(7242),l=n(282),c=n(2350);let d=o.fC;o.ZA;let u=o.B4,h=s.forwardRef((e,t)=>{let{className:n,children:s,...a}=e;return(0,r.jsxs)(o.xz,{ref:t,className:(0,c.cn)("flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",n),...a,children:[s,(0,r.jsx)(o.JO,{asChild:!0,children:(0,r.jsx)(i.Z,{className:"h-4 w-4 opacity-50"})})]})});h.displayName=o.xz.displayName;let x=s.forwardRef((e,t)=>{let{className:n,...s}=e;return(0,r.jsx)(o.u_,{ref:t,className:(0,c.cn)("flex cursor-default items-center justify-center py-1",n),...s,children:(0,r.jsx)(a.Z,{className:"h-4 w-4"})})});x.displayName=o.u_.displayName;let f=s.forwardRef((e,t)=>{let{className:n,...s}=e;return(0,r.jsx)(o.$G,{ref:t,className:(0,c.cn)("flex cursor-default items-center justify-center py-1",n),...s,children:(0,r.jsx)(i.Z,{className:"h-4 w-4"})})});f.displayName=o.$G.displayName;let m=s.forwardRef((e,t)=>{let{className:n,children:s,position:i="popper",...a}=e;return(0,r.jsx)(o.h_,{children:(0,r.jsxs)(o.VY,{ref:t,className:(0,c.cn)("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2","popper"===i&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",n),position:i,...a,children:[(0,r.jsx)(x,{}),(0,r.jsx)(o.l_,{className:(0,c.cn)("p-1","popper"===i&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:s}),(0,r.jsx)(f,{})]})})});m.displayName=o.VY.displayName,s.forwardRef((e,t)=>{let{className:n,...s}=e;return(0,r.jsx)(o.__,{ref:t,className:(0,c.cn)("py-1.5 pl-8 pr-2 text-sm font-semibold",n),...s})}).displayName=o.__.displayName;let p=s.forwardRef((e,t)=>{let{className:n,children:s,...i}=e;return(0,r.jsxs)(o.ck,{ref:t,className:(0,c.cn)("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",n),...i,children:[(0,r.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,r.jsx)(o.wU,{children:(0,r.jsx)(l.Z,{className:"h-4 w-4"})})}),(0,r.jsx)(o.eT,{children:s})]})});p.displayName=o.ck.displayName,s.forwardRef((e,t)=>{let{className:n,...s}=e;return(0,r.jsx)(o.Z0,{ref:t,className:(0,c.cn)("-mx-1 my-1 h-px bg-muted",n),...s})}).displayName=o.Z0.displayName},6989:function(e,t,n){n.d(t,{$B:function(){return g},GV:function(){return d},LU:function(){return m},Md:function(){return f},WH:function(){return x},q8:function(){return p},yc:function(){return l}});var r=n(5893),s=n(7294),o=n(3302),i=n(1886),a=n(8950);let l=n(1214).nb.REFRESH_INTERVAL;function c(e){return e.charAt(0).toUpperCase()+e.slice(1)}function d(e){if(!e)return"N/A";let t=new Date;return 7>Math.abs((t-e)/864e5)?(0,r.jsx)(x,{content:u(e),className:"capitalize text-sm text-muted-foreground",children:c((0,i.B)(e,t,{addSuffix:!0}))}):(0,r.jsx)(x,{content:c(u(e)),className:"text-sm text-muted-foreground",children:c(e.toLocaleString("en-CA",{year:"numeric",month:"2-digit",day:"2-digit"}).replace(",",""))})}function u(e){return e.toLocaleString("en-CA",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1,timeZoneName:"short"}).replace(",","")}let h={placement:"bottom",color:"default"},x=e=>{let{children:t,...n}=e,s=n.content;return n.content=void 0,(0,r.jsx)(o.e,{...h,...n,content:(0,r.jsx)("span",{className:"left-full w-max px-2 py-1 text-sm text-gray-100 bg-gray-500 text-sm capitalize rounded",children:s}),children:t})},f=e=>{let{children:t,...n}=e,s=n.content;return n.content=void 0,(0,r.jsx)(o.e,{...h,...n,content:(0,r.jsx)("span",{className:"left-full w-max px-2 py-1 text-sm text-gray-100 bg-gray-500 text-sm rounded",children:s}),children:t})};function m(e){if(!e&&0!==e)return"-";let t=e=Math.floor(e),n="",r=0;for(let e of[{value:86400,label:"d"},{value:3600,label:"h"},{value:60,label:"m"},{value:1,label:"s"}])if(t>=e.value&&r<2){let s=Math.floor(t/e.value);n+="".concat(s).concat(e.label," "),t%=e.value,r++}return n.trim()||"0s"}function p(e){return e?(e=e.split("\n").filter(e=>!e.match(/<rich_.*?\[bold cyan\]/)&&!e.match(/<rich_.*>.*<\/rich_.*>/)&&!e.match(/├──/)&&!e.match(/└──/)).join("\n").replace(/\x1b\[([0-9]{1,2}(;[0-9]{1,2})?)?[mGKH]/g,"")).split("\n").map(e=>{let t=e.match(/^([IWED])\s+(\d{2}-\d{2}\s+\d{2}:\d{2}:\d{2})\s+([^:]+:\d+\])(.*)/);if(t){let[e,n,r,s,o]=t,i={I:"INFO",W:"WARNING",E:"ERROR",D:"DEBUG"}[n]||"";return'<span class="log-line '.concat(i,'"><span class="level">').concat(n,'</span><span class="timestamp">').concat(r,'</span><span class="location">').concat(s,'</span><span class="message">').concat(o,"</span></span>")}let n=e.match(/^(\([^)]+\))(.*)$/);if(n){let[e,t,r]=n;return'<span class="log-line"><span class="log-prefix">'.concat(t,'</span><span class="log-rest">').concat(r,"</span></span>")}return'<span class="log-line"><span class="message">'.concat(e,"</span></span>")}).join("\n"):""}function g(e){let{logs:t,controller:n=!1}=e,[o,i]=(0,s.useState)("all"),[l,c]=(0,s.useState)(t),[d,u]=(0,s.useState)([]);return(0,s.useEffect)(()=>{u(function(e){let t;let n=/\((head|worker\d+),/g,r=new Set;for(;null!==(t=n.exec(e));)r.add(t[1]);return Array.from(r).sort((e,t)=>"head"===e?-1:"head"===t?1:e.localeCompare(t,void 0,{numeric:!0,sensitivity:"base"}))}(t))},[t]),(0,s.useEffect)(()=>{"all"===o?c(t):c(t.split("\n").filter(e=>e.includes("(".concat(o,","))).join("\n"))},[o,t]),(0,r.jsxs)("div",{children:[(0,r.jsx)("style",{children:'\n .logs-container {\n background-color: #f7f7f7;\n padding: 16px;\n max-height: calc(100vh - 300px);\n overflow-y: auto;\n overflow-x: hidden;\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;\n line-height: 1.5;\n border-radius: 6px;\n min-height: fit-content;\n }\n\n .log-line {\n display: block;\n white-space: pre-wrap;\n margin: 2px 0;\n }\n\n .log-line .level {\n display: inline;\n width: 1ch;\n margin-right: 1ch;\n font-weight: bold;\n }\n\n .log-line.INFO .level {\n color: #2563eb;\n }\n\n .log-line.WARNING .level {\n color: #d97706;\n }\n\n .log-line.ERROR .level {\n color: #dc2626;\n }\n\n .log-line.DEBUG .level {\n color: #6b7280;\n }\n\n .log-line .timestamp {\n color: #059669;\n margin-right: 1ch;\n white-space: nowrap;\n }\n\n .log-line .location {\n color: #6366f1;\n margin-right: 1ch;\n white-space: nowrap;\n }\n\n .log-line .message {\n color: #111827;\n word-break: break-word;\n white-space: pre-wrap;\n }\n\n .log-line .log-prefix {\n color: #6366f1;\n font-weight: 500;\n }\n\n .log-line .log-rest {\n color: #111827;\n word-break: break-word;\n white-space: pre-wrap;\n }\n'}),!n&&(0,r.jsx)("div",{style:{marginBottom:"1rem"},children:(0,r.jsxs)(a.Ph,{onValueChange:e=>i(e),value:o,children:[(0,r.jsx)(a.i4,{"aria-label":"Node",className:"focus:ring-0 focus:ring-offset-0",children:(0,r.jsx)(a.ki,{placeholder:"Select Node"})}),(0,r.jsxs)(a.Bw,{children:[(0,r.jsx)(a.Ql,{value:"all",children:"All Nodes"}),d.map(e=>(0,r.jsx)(a.Ql,{value:e,children:e},e))]})]})}),(0,r.jsx)("div",{className:"logs-container",dangerouslySetInnerHTML:{__html:l}})]})}},3001:function(e,t,n){n.d(t,{X:function(){return s}});var r=n(7294);function s(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:768,[t,n]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{let t=()=>{n(window.innerWidth<e)};return t(),window.addEventListener("resize",t),()=>{window.removeEventListener("resize",t)}},[e]),t}},1214:function(e,t,n){n.d(t,{MO:function(){return o},ej:function(){return r},nb:function(){return s}});let r={DEFAULT_TTL:12e4},s={REFRESH_INTERVAL:3e4,GPU_REFRESH_INTERVAL:3e4},o={NAME_TRUNCATE_LENGTH:20}},2350:function(e,t,n){n.d(t,{cn:function(){return o}});var r=n(512),s=n(8388);function o(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return(0,s.m6)((0,r.W)(t))}}}]);
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[470],{3850:function(e,t,n){n.d(t,{E9:function(){return w},J$:function(){return c},PC:function(){return f},Ps:function(){return i},QT:function(){return h},Vp:function(){return x},W2:function(){return l},Ye:function(){return d},aD:function(){return j},fp:function(){return u},fy:function(){return p},h0:function(){return m},lM:function(){return v},mU:function(){return g},oy:function(){return y}});var r=n(5893);n(7294);var s=n(8507),o=n(8586),a=n(9611);function i(e){return(0,r.jsx)("svg",{...e,xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"currentColor",stroke:"currentColor",strokeWidth:"0",strokeLinecap:"round",strokeLinejoin:"round",children:(0,r.jsx)("rect",{width:"18",height:"18",x:"3",y:"3",rx:"2"})})}function l(e){return(0,r.jsx)("svg",{...e,xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"currentColor",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,r.jsx)("circle",{cx:"10",cy:"10",r:"8"})})}function c(e){return(0,r.jsx)("svg",{...e,xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,r.jsx)("circle",{cx:"10",cy:"10",r:"8"})})}function d(e){return(0,r.jsx)("svg",{...e,xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"5",strokeLinecap:"round",strokeLinejoin:"round",children:(0,r.jsx)("path",{d:"M6 12l4 4 8-8"})})}function u(e){return(0,r.jsxs)("svg",{...e,xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"currentColor",stroke:"currentColor",strokeWidth:"0",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("rect",{x:"6",y:"5",width:"4",height:"14",rx:"1"}),(0,r.jsx)("rect",{x:"14",y:"5",width:"4",height:"14",rx:"1"})]})}function h(e){return(0,r.jsxs)("svg",{...e,xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2"}),(0,r.jsx)("rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2"}),(0,r.jsx)("line",{x1:"6",x2:"6.01",y1:"6",y2:"6"}),(0,r.jsx)("line",{x1:"6",x2:"6.01",y1:"18",y2:"18"})]})}function x(e){return(0,r.jsxs)("svg",{...e,xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("path",{d:"M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16"}),(0,r.jsx)("rect",{width:"20",height:"14",x:"2",y:"6",rx:"2"})]})}function f(e){return(0,r.jsxs)("svg",{...e,xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2",ry:"2"}),(0,r.jsx)("rect",{x:"9",y:"9",width:"6",height:"6"}),(0,r.jsx)("line",{x1:"9",y1:"1",x2:"9",y2:"4"}),(0,r.jsx)("line",{x1:"15",y1:"1",x2:"15",y2:"4"}),(0,r.jsx)("line",{x1:"9",y1:"20",x2:"9",y2:"23"}),(0,r.jsx)("line",{x1:"15",y1:"20",x2:"15",y2:"23"}),(0,r.jsx)("line",{x1:"20",y1:"9",x2:"23",y2:"9"}),(0,r.jsx)("line",{x1:"20",y1:"14",x2:"23",y2:"14"}),(0,r.jsx)("line",{x1:"1",y1:"9",x2:"4",y2:"9"}),(0,r.jsx)("line",{x1:"1",y1:"14",x2:"4",y2:"14"})]})}function m(e){return(0,r.jsxs)("svg",{...e,xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"}),(0,r.jsx)("polyline",{points:"15 3 21 3 21 9"}),(0,r.jsx)("line",{x1:"10",y1:"14",x2:"21",y2:"3"})]})}function p(e){return(0,r.jsx)("svg",{...e,xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"currentColor",children:(0,r.jsx)("path",{d:"M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"})})}function g(e){return(0,r.jsx)("svg",{...e,xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"currentColor",children:(0,r.jsx)("path",{transform:"scale(0.85) translate(1.8, 1.8)",d:"M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zM6.313 15.165a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zM8.834 6.313a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zM18.956 8.834a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522V8.834zM17.688 8.834a2.528 2.528 0 0 1-2.523 2.521 2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312zM15.165 18.956a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522h2.52zM15.165 17.688a2.527 2.527 0 0 1-2.52-2.523 2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165a2.528 2.528 0 0 1-2.522 2.523h-6.313z"})})}function w(e){return(0,r.jsx)("svg",{...e,stroke:"currentColor",fill:"currentColor",strokeWidth:"0",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:(0,r.jsxs)("g",{children:[(0,r.jsx)("path",{fill:"none",d:"M0 0h24v24H0z"}),(0,r.jsx)("path",{d:"M3 18.5V5a3 3 0 0 1 3-3h14a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5A3.5 3.5 0 0 1 3 18.5zM19 20v-3H6.5a1.5 1.5 0 0 0 0 3H19zM10 4H6a1 1 0 0 0-1 1v10.337A3.486 3.486 0 0 1 6.5 15H19V4h-2v8l-3.5-2-3.5 2V4z"})]})})}let j=s.Z,y=o.Z;function v(e){return(0,r.jsx)(a.Z,{...e})}},9470:function(e,t,n){n.d(t,{A:function(){return j}});var r=n(5893),s=n(7294),o=n(5675),a=n.n(o),i=n(1163),l=n(1664),c=n.n(l),d=n(3850),u=n(355),h=n(3225),x=n(6989),f=n(3001);let m=(0,s.createContext)(null);function p(e){let{children:t}=e,[n,o]=(0,s.useState)(!0),[a,i]=(0,s.useState)(null);return(0,s.useEffect)(()=>{fetch("".concat(h.f4,"/api/health")).then(e=>e.json()).then(e=>{e.user&&e.user.name&&i(e.user.name)}).catch(e=>{console.error("Error fetching user data:",e)})},[]),(0,r.jsx)(m.Provider,{value:{isSidebarOpen:n,toggleSidebar:()=>{o(e=>!e)},userEmail:a},children:t})}function g(){let e,t;let n=(0,i.useRouter)(),o=(0,f.X)(),{userEmail:l}=function(){let e=(0,s.useContext)(m);if(!e)throw Error("useSidebar must be used within a SidebarProvider");return e}(),[p,g]=(0,s.useState)(!1),w=(0,s.useRef)(null);(0,s.useEffect)(()=>{function e(e){w.current&&!w.current.contains(e.target)&&g(!1)}return document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e)}},[w]);let j=e=>"/workspaces"===e?n.pathname.startsWith("/workspaces")||n.pathname.startsWith("/workspace"):n.pathname.startsWith(e),y=e=>{let t=j(e);return"inline-flex items-center border-b-2 ".concat(t?"border-transparent text-blue-600":"border-transparent hover:text-blue-600"," ").concat(o?"px-2 py-1":"px-1 pt-1 space-x-2")};return(0,r.jsx)("div",{className:"fixed top-0 left-0 right-0 bg-white z-30 h-14 px-4 border-b border-gray-200 shadow-sm",children:(0,r.jsxs)("div",{className:"flex items-center h-full",children:[(0,r.jsx)("div",{className:"flex items-center ".concat(o?"space-x-2 mr-2":"space-x-4 mr-6"),children:(0,r.jsx)(c(),{href:"/",className:"flex items-center px-1 pt-1 h-full",prefetch:!1,children:(0,r.jsx)("div",{className:"h-20 w-20 flex items-center justify-center",children:(0,r.jsx)(a(),{src:"".concat(h.GW,"/skypilot.svg"),alt:"SkyPilot Logo",width:80,height:80,priority:!0,className:"w-full h-full object-contain"})})})}),(0,r.jsxs)("div",{className:"flex items-center ".concat(o?"space-x-1":"space-x-2 md:space-x-4"," ").concat(o?"mr-2":"mr-6"),children:[(0,r.jsxs)(c(),{href:"/clusters",className:y("/clusters"),prefetch:!1,children:[(0,r.jsx)(d.QT,{className:"w-4 h-4"}),!o&&(0,r.jsx)("span",{children:"Clusters"})]}),(0,r.jsxs)(c(),{href:"/jobs",className:y("/jobs"),prefetch:!1,children:[(0,r.jsx)(d.Vp,{className:"w-4 h-4"}),!o&&(0,r.jsx)("span",{children:"Jobs"})]}),(0,r.jsx)("div",{className:"border-l border-gray-200 h-6 mx-1"}),(0,r.jsxs)(c(),{href:"/infra",className:y("/infra"),prefetch:!1,children:[(0,r.jsx)(d.PC,{className:"w-4 h-4"}),!o&&(0,r.jsx)("span",{children:"Infra"})]}),(0,r.jsxs)(c(),{href:"/workspaces",className:y("/workspaces"),prefetch:!1,children:[(0,r.jsx)(d.E9,{className:"w-4 h-4"}),!o&&(0,r.jsx)("span",{children:"Workspaces"})]}),(0,r.jsxs)(c(),{href:"/users",className:y("/users"),prefetch:!1,children:[(0,r.jsx)(d.oy,{className:"w-4 h-4"}),!o&&(0,r.jsx)("span",{children:"Users"})]})]}),(0,r.jsxs)("div",{className:"flex items-center space-x-1 ".concat(o?"ml-0":"ml-auto"),children:[(0,r.jsx)(x.WH,{content:"Documentation",className:"text-sm text-muted-foreground",children:(0,r.jsxs)("a",{href:"https://skypilot.readthedocs.io/en/latest/",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center px-2 py-1 text-gray-600 hover:text-blue-600 transition-colors duration-150 cursor-pointer",title:"Docs",children:[!o&&(0,r.jsx)("span",{className:"mr-1",children:"Docs"}),(0,r.jsx)(d.h0,{className:"".concat(o?"w-4 h-4":"w-3.5 h-3.5")})]})}),(0,r.jsx)(x.WH,{content:"GitHub Repository",className:"text-sm text-muted-foreground",children:(0,r.jsx)("a",{href:"https://github.com/skypilot-org/skypilot",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center justify-center p-2 rounded-full text-gray-600 hover:bg-gray-100 transition-colors duration-150 cursor-pointer",title:"GitHub",children:(0,r.jsx)(d.fy,{className:"".concat(o?"w-4 h-4":"w-5 h-5")})})}),(0,r.jsx)(x.WH,{content:"Join Slack",className:"text-sm text-muted-foreground",children:(0,r.jsx)("a",{href:"https://slack.skypilot.co/",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center justify-center p-2 rounded-full text-gray-600 hover:bg-gray-100 transition-colors duration-150 cursor-pointer",title:"Slack",children:(0,r.jsx)(d.mU,{className:"".concat(o?"w-4 h-4":"w-5 h-5")})})}),(0,r.jsx)(x.WH,{content:"Leave Feedback",className:"text-sm text-muted-foreground",children:(0,r.jsx)("a",{href:"https://github.com/skypilot-org/skypilot/issues/new",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center justify-center p-2 rounded-full text-gray-600 hover:bg-gray-100 transition-colors duration-150 cursor-pointer",title:"Leave Feedback",children:(0,r.jsx)(d.aD,{className:"".concat(o?"w-4 h-4":"w-5 h-5")})})}),(0,r.jsx)("div",{className:"border-l border-gray-200 h-6"}),(0,r.jsx)(x.WH,{content:"Configuration",className:"text-sm text-muted-foreground",children:(0,r.jsx)(c(),{href:"/config",className:"inline-flex items-center justify-center p-2 rounded-full transition-colors duration-150 cursor-pointer ".concat(j("/config")?"text-blue-600 hover:bg-gray-100":"text-gray-600 hover:bg-gray-100"),title:"Configuration",prefetch:!1,children:(0,r.jsx)(u.Z,{className:"".concat(o?"w-4 h-4":"w-5 h-5")})})}),l&&(0,r.jsxs)("div",{className:"relative",ref:w,children:[(0,r.jsx)("button",{onClick:()=>g(!p),className:"inline-flex items-center justify-center p-2 rounded-full text-gray-600 hover:bg-gray-100 transition-colors duration-150 cursor-pointer",title:"User Profile",children:(0,r.jsx)(d.lM,{className:"".concat(o?"w-5 h-5":"w-6 h-6")})}),p&&(0,r.jsxs)("div",{className:"absolute right-0 mt-2 w-48 bg-white rounded-md shadow-lg z-50 border border-gray-200",children:[(e=l,t=null,l&&l.includes("@")&&(e=l.split("@")[0],t=l),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"px-4 pt-2 pb-1 text-sm font-medium text-gray-900",children:e}),t&&(0,r.jsx)("div",{className:"px-4 pt-0 pb-2 text-xs text-gray-500",children:t})]})),(0,r.jsx)("div",{className:"border-t border-gray-200 mx-1 my-1"}),(0,r.jsx)(c(),{href:"/users",className:"block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 hover:text-blue-600",onClick:()=>g(!1),prefetch:!1,children:"See all users"})]})]})]})]})})}function w(e){let{children:t,highlighted:n}=e;return(0,f.X)(),(0,r.jsxs)("div",{className:"min-h-screen bg-gray-50",children:[(0,r.jsx)("div",{className:"fixed top-0 left-0 right-0 z-50 shadow-sm",children:(0,r.jsx)(g,{})}),(0,r.jsx)("div",{className:"transition-all duration-200 ease-in-out min-h-screen",style:{paddingTop:"56px"},children:(0,r.jsx)("main",{className:"p-6",children:t})})]})}function j(e){return(0,r.jsx)(p,{children:(0,r.jsx)(w,{...e})})}},8950:function(e,t,n){n.d(t,{Bw:function(){return m},Ph:function(){return d},Ql:function(){return p},i4:function(){return h},ki:function(){return u}});var r=n(5893),s=n(7294),o=n(2067),a=n(5895),i=n(7242),l=n(282),c=n(2350);let d=o.fC;o.ZA;let u=o.B4,h=s.forwardRef((e,t)=>{let{className:n,children:s,...i}=e;return(0,r.jsxs)(o.xz,{ref:t,className:(0,c.cn)("flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",n),...i,children:[s,(0,r.jsx)(o.JO,{asChild:!0,children:(0,r.jsx)(a.Z,{className:"h-4 w-4 opacity-50"})})]})});h.displayName=o.xz.displayName;let x=s.forwardRef((e,t)=>{let{className:n,...s}=e;return(0,r.jsx)(o.u_,{ref:t,className:(0,c.cn)("flex cursor-default items-center justify-center py-1",n),...s,children:(0,r.jsx)(i.Z,{className:"h-4 w-4"})})});x.displayName=o.u_.displayName;let f=s.forwardRef((e,t)=>{let{className:n,...s}=e;return(0,r.jsx)(o.$G,{ref:t,className:(0,c.cn)("flex cursor-default items-center justify-center py-1",n),...s,children:(0,r.jsx)(a.Z,{className:"h-4 w-4"})})});f.displayName=o.$G.displayName;let m=s.forwardRef((e,t)=>{let{className:n,children:s,position:a="popper",...i}=e;return(0,r.jsx)(o.h_,{children:(0,r.jsxs)(o.VY,{ref:t,className:(0,c.cn)("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2","popper"===a&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",n),position:a,...i,children:[(0,r.jsx)(x,{}),(0,r.jsx)(o.l_,{className:(0,c.cn)("p-1","popper"===a&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:s}),(0,r.jsx)(f,{})]})})});m.displayName=o.VY.displayName,s.forwardRef((e,t)=>{let{className:n,...s}=e;return(0,r.jsx)(o.__,{ref:t,className:(0,c.cn)("py-1.5 pl-8 pr-2 text-sm font-semibold",n),...s})}).displayName=o.__.displayName;let p=s.forwardRef((e,t)=>{let{className:n,children:s,...a}=e;return(0,r.jsxs)(o.ck,{ref:t,className:(0,c.cn)("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",n),...a,children:[(0,r.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,r.jsx)(o.wU,{children:(0,r.jsx)(l.Z,{className:"h-4 w-4"})})}),(0,r.jsx)(o.eT,{children:s})]})});p.displayName=o.ck.displayName,s.forwardRef((e,t)=>{let{className:n,...s}=e;return(0,r.jsx)(o.Z0,{ref:t,className:(0,c.cn)("-mx-1 my-1 h-px bg-muted",n),...s})}).displayName=o.Z0.displayName},6989:function(e,t,n){n.d(t,{$B:function(){return g},GV:function(){return d},LU:function(){return m},Md:function(){return f},WH:function(){return x},o0:function(){return u},q8:function(){return p},yc:function(){return l}});var r=n(5893),s=n(7294),o=n(3302),a=n(1886),i=n(8950);let l=n(1214).nb.REFRESH_INTERVAL;function c(e){return e.charAt(0).toUpperCase()+e.slice(1)}function d(e){if(!e)return"N/A";let t=new Date;if(!(7>Math.abs((t-e)/864e5)))return(0,r.jsx)(x,{content:c(u(e)),className:"text-sm text-muted-foreground",children:c(e.toLocaleString("en-CA",{year:"numeric",month:"2-digit",day:"2-digit"}).replace(",",""))});{let n=function(e){if(!e||"string"!=typeof e)return e;if("just now"===e)return"now";let t=e.match(/^about\s+(\d+)\s+(\w+)\s+ago$/i);if(t){let e=t[1],n=t[2],r={second:"s",seconds:"s",minute:"m",minutes:"m",hour:"h",hours:"h",day:"d",days:"d",month:"mo",months:"mo",year:"yr",years:"yr"};if(r[n])return"".concat(e).concat(r[n]," ago")}let n=e.match(/^a[n]?\s+(\w+)\s+ago$/i);if(n){let e=n[1],t={second:"s",minute:"m",hour:"h",day:"d",month:"mo",year:"yr"};if(t[e])return"1".concat(t[e]," ago")}let r=e.match(/^(\d+)\s+(\w+)\s+ago$/i);if(r){let e=r[1],t=r[2],n={second:"s",seconds:"s",minute:"m",minutes:"m",hour:"h",hours:"h",day:"d",days:"d",month:"mo",months:"mo",year:"yr",years:"yr"};if(n[t])return"".concat(e).concat(n[t]," ago")}return e}((0,a.B)(e,t,{addSuffix:!0}));return(0,r.jsx)(x,{content:u(e),className:"capitalize text-sm text-muted-foreground",children:n})}}function u(e){return e.toLocaleString("en-CA",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1,timeZoneName:"short"}).replace(",","")}let h={placement:"bottom",color:"default"},x=e=>{let{children:t,...n}=e,s=n.content;return n.content=void 0,(0,r.jsx)(o.e,{...h,...n,content:(0,r.jsx)("span",{className:"left-full w-max px-2 py-1 text-sm text-gray-100 bg-gray-500 text-sm capitalize rounded",children:s}),children:t})},f=e=>{let{children:t,...n}=e,s=n.content;return n.content=void 0,(0,r.jsx)(o.e,{...h,...n,content:(0,r.jsx)("span",{className:"left-full w-max px-2 py-1 text-sm text-gray-100 bg-gray-500 text-sm rounded",children:s}),children:t})};function m(e){if(!e&&0!==e)return"-";let t=e=Math.floor(e),n="",r=0;for(let e of[{value:86400,label:"d"},{value:3600,label:"h"},{value:60,label:"m"},{value:1,label:"s"}])if(t>=e.value&&r<2){let s=Math.floor(t/e.value);n+="".concat(s).concat(e.label," "),t%=e.value,r++}return n.trim()||"0s"}function p(e){return e?(e=e.split("\n").filter(e=>!e.match(/<rich_.*?\[bold cyan\]/)&&!e.match(/<rich_.*>.*<\/rich_.*>/)&&!e.match(/├──/)&&!e.match(/└──/)).join("\n").replace(/\x1b\[([0-9]{1,2}(;[0-9]{1,2})?)?[mGKH]/g,"")).split("\n").map(e=>{let t=e.match(/^([IWED])\s+(\d{2}-\d{2}\s+\d{2}:\d{2}:\d{2})\s+([^:]+:\d+\])(.*)/);if(t){let[e,n,r,s,o]=t,a={I:"INFO",W:"WARNING",E:"ERROR",D:"DEBUG"}[n]||"";return'<span class="log-line '.concat(a,'"><span class="level">').concat(n,'</span><span class="timestamp">').concat(r,'</span><span class="location">').concat(s,'</span><span class="message">').concat(o,"</span></span>")}let n=e.match(/^(\([^)]+\))(.*)$/);if(n){let[e,t,r]=n;return'<span class="log-line"><span class="log-prefix">'.concat(t,'</span><span class="log-rest">').concat(r,"</span></span>")}return'<span class="log-line"><span class="message">'.concat(e,"</span></span>")}).join("\n"):""}function g(e){let{logs:t,controller:n=!1}=e,[o,a]=(0,s.useState)("all"),[l,c]=(0,s.useState)(t),[d,u]=(0,s.useState)([]);return(0,s.useEffect)(()=>{u(function(e){let t;let n=/\((head|worker\d+),/g,r=new Set;for(;null!==(t=n.exec(e));)r.add(t[1]);return Array.from(r).sort((e,t)=>"head"===e?-1:"head"===t?1:e.localeCompare(t,void 0,{numeric:!0,sensitivity:"base"}))}(t))},[t]),(0,s.useEffect)(()=>{"all"===o?c(t):c(t.split("\n").filter(e=>e.includes("(".concat(o,","))).join("\n"))},[o,t]),(0,r.jsxs)("div",{children:[(0,r.jsx)("style",{children:'\n .logs-container {\n background-color: #f7f7f7;\n padding: 16px;\n max-height: calc(100vh - 300px);\n overflow-y: auto;\n overflow-x: hidden;\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;\n line-height: 1.5;\n border-radius: 6px;\n min-height: fit-content;\n }\n\n .log-line {\n display: block;\n white-space: pre-wrap;\n margin: 2px 0;\n }\n\n .log-line .level {\n display: inline;\n width: 1ch;\n margin-right: 1ch;\n font-weight: bold;\n }\n\n .log-line.INFO .level {\n color: #2563eb;\n }\n\n .log-line.WARNING .level {\n color: #d97706;\n }\n\n .log-line.ERROR .level {\n color: #dc2626;\n }\n\n .log-line.DEBUG .level {\n color: #6b7280;\n }\n\n .log-line .timestamp {\n color: #059669;\n margin-right: 1ch;\n white-space: nowrap;\n }\n\n .log-line .location {\n color: #6366f1;\n margin-right: 1ch;\n white-space: nowrap;\n }\n\n .log-line .message {\n color: #111827;\n word-break: break-word;\n white-space: pre-wrap;\n }\n\n .log-line .log-prefix {\n color: #6366f1;\n font-weight: 500;\n }\n\n .log-line .log-rest {\n color: #111827;\n word-break: break-word;\n white-space: pre-wrap;\n }\n'}),!n&&(0,r.jsx)("div",{style:{marginBottom:"1rem"},children:(0,r.jsxs)(i.Ph,{onValueChange:e=>a(e),value:o,children:[(0,r.jsx)(i.i4,{"aria-label":"Node",className:"focus:ring-0 focus:ring-offset-0",children:(0,r.jsx)(i.ki,{placeholder:"Select Node"})}),(0,r.jsxs)(i.Bw,{children:[(0,r.jsx)(i.Ql,{value:"all",children:"All Nodes"}),d.map(e=>(0,r.jsx)(i.Ql,{value:e,children:e},e))]})]})}),(0,r.jsx)("div",{className:"logs-container",dangerouslySetInnerHTML:{__html:l}})]})}},3001:function(e,t,n){n.d(t,{X:function(){return s}});var r=n(7294);function s(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:768,[t,n]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{let t=()=>{n(window.innerWidth<e)};return t(),window.addEventListener("resize",t),()=>{window.removeEventListener("resize",t)}},[e]),t}},1214:function(e,t,n){n.d(t,{MO:function(){return o},ej:function(){return r},nb:function(){return s}});let r={DEFAULT_TTL:12e4},s={REFRESH_INTERVAL:3e4,GPU_REFRESH_INTERVAL:3e4},o={NAME_TRUNCATE_LENGTH:20}},2350:function(e,t,n){n.d(t,{cn:function(){return o}});var r=n(512),s=n(8388);function o(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return(0,s.m6)((0,r.W)(t))}}}]);
|
skypilot_nightly-1.0.0.dev20250607/sky/dashboard/out/_next/static/chunks/969-2c584e28e6b4b106.js
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[969],{8969:function(e,t,r){r.d(t,{Ce:function(){return d},NJ:function(){return l},UA:function(){return i},getManagedJobs:function(){return c}});var o=r(7294),a=r(5821),n=r(3225),s=r(6378);async function c(){let{allUsers:e=!0}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};try{let t=(await fetch("".concat(n.f4,"/jobs/queue"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({all_users:e})})).headers.get("X-Skypilot-Request-ID"),r=await fetch("".concat(n.f4,"/api/get?request_id=").concat(t));if(500===r.status){try{let e=await r.json();if(e.detail&&e.detail.error)try{let t=JSON.parse(e.detail.error);if(t.type&&t.type===n.iW)return{jobs:[],controllerStopped:!0}}catch(e){console.error("Error parsing JSON:",e)}}catch(e){console.error("Error parsing JSON:",e)}return{jobs:[],controllerStopped:!1}}let o=await r.json();return{jobs:(o.return_value?JSON.parse(o.return_value):[]).map(e=>{let t=[];e.submitted_at&&t.push({time:new Date(1e3*e.submitted_at),event:"Job submitted."}),e.start_at&&t.push({time:new Date(1e3*e.start_at),event:"Job started."}),e.end_at&&("CANCELLING"==e.status||"CANCELLED"==e.status?t.push({time:new Date(1e3*e.end_at),event:"Job cancelled."}):t.push({time:new Date(1e3*e.end_at),event:"Job completed."})),e.last_recovered_at&&e.last_recovered_at!=e.start_at&&t.push({time:new Date(1e3*e.last_recovered_at),event:"Job recovered."});let r=(e.end_at?e.end_at:Date.now()/1e3)-e.submitted_at,o=e.cloud,a=e.cluster_resources;if(!o){if(e.cluster_resources&&"-"!==e.cluster_resources)try{o=e.cluster_resources.split("(")[0].split("x").pop().trim(),a=e.cluster_resources.replace("".concat(o,"("),"(").replace("x ","x")}catch(e){o="Unknown"}else o="Unknown"}let n="",s=n=e.zone?e.zone:e.region;n&&n.length>15&&(n=n.substring(0,15)+"...");let c=o+" ("+n+")";"-"===n&&(c=o);let i=o+" ("+s+")";return"-"===s&&(i=o),{id:e.job_id,task:e.task_name,name:e.job_name,job_duration:e.job_duration,total_duration:r,workspace:e.workspace,status:e.status,priority:e.priority,requested_resources:e.resources,resources_str:a,resources_str_full:e.cluster_resources_full||a,cloud:o,region:e.region,infra:c,full_infra:i,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:t,dag_yaml:e.user_yaml,entrypoint:e.entrypoint}}),controllerStopped:!1}}catch(e){return console.error("Error fetching managed job data:",e),{jobs:[],controllerStopped:!1}}}function i(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,[r,a]=(0,o.useState)(null),[n,i]=(0,o.useState)(!0);return(0,o.useEffect)(()=>{(async function(){if(e)try{var t;i(!0);let r=await s.default.get(c,[{allUsers:!0}]),o=null==r?void 0:null===(t=r.jobs)||void 0===t?void 0:t.find(t=>String(t.id)===String(e));o?a({jobs:[o],controllerStopped:r.controllerStopped||!1}):a({jobs:[],controllerStopped:r.controllerStopped||!1})}catch(e){console.error("Error fetching single managed job data:",e),a({jobs:[],controllerStopped:!1})}finally{i(!1)}})()},[e,t]),{jobData:r,loading:n}}async function l(e){let t,{jobId:r,controller:o=!1,signal:s,onNewLog:c}=e,i=Date.now(),l=new Promise(e=>{let r=()=>{let o=Date.now()-i;o>=3e4?e({timeout:!0}):t=setTimeout(r,3e4-o)};t=setTimeout(r,3e4)}),d=(async()=>{try{let e=(await fetch("".concat(n.f4,"/jobs/logs"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({controller:o,follow:!1,job_id:r,tail:1e3}),...s?{signal:s}:{}})).body.getReader();try{for(;;){let{done:t,value:r}=await e.read();if(t)break;i=Date.now();let o=new TextDecoder().decode(r);c(o)}}finally{if(!s||!s.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}})(),u=await Promise.race([d,l]);if(t&&clearTimeout(t),u.timeout){(0,a.C)("Log request for job ".concat(r," timed out after ").concat(30,"s of inactivity"),"warning");return}}async function d(e,t,r){let o="",s="",c="",i={};if("restartcontroller"===e)o="Restarting",s="restarted",c="jobs/queue",i={all_users:!0,refresh:!0},t="controller";else throw Error("Invalid action: ".concat(e));(0,a.C)("".concat(o," job ").concat(t,"..."),"info");try{try{let e=(await fetch("".concat(n.f4,"/").concat(c),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(i)})).headers.get("X-Skypilot-Request-ID"),l=await fetch("".concat(n.f4,"/api/get?request_id=").concat(e));if(200===l.status)(0,a.C)("Job ".concat(t," ").concat(s," successfully."),"success");else if(500===l.status)try{let e=await l.json();if(e.detail&&e.detail.error)try{let s=JSON.parse(e.detail.error);s.type&&s.type===n.Bo?(0,a.C)("".concat(o," job ").concat(t," is not supported!"),"error",1e4):s.type&&s.type===n.mF?(0,a.C)("Cluster ".concat(r," does not exist."),"error"):s.type&&s.type===n.iW?(0,a.C)("Cluster ".concat(r," is not up."),"error"):(0,a.C)("".concat(o," job ").concat(t," failed: ").concat(s.type),"error")}catch(r){(0,a.C)("".concat(o," job ").concat(t," failed: ").concat(e.detail.error),"error")}else(0,a.C)("".concat(o," job ").concat(t," failed with no details."),"error")}catch(e){(0,a.C)("".concat(o," job ").concat(t," failed with parse error."),"error")}else(0,a.C)("".concat(o," job ").concat(t," failed with status ").concat(l.status,"."),"error")}catch(e){console.error("Fetch error:",e),(0,a.C)("Network error ".concat(o," job ").concat(t,": ").concat(e.message),"error")}}catch(e){console.error("Error in handleStop:",e),(0,a.C)("Critical error ".concat(o," job ").concat(t,": ").concat(e.message),"error")}}},5821:function(e,t,r){r.d(t,{C:function(){return o}});function o(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"info",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:5e3,o=document.getElementById("toast-container");o||((o=document.createElement("div")).id="toast-container",o.className="fixed top-0 right-0 p-4 z-[9999] flex flex-col items-end space-y-2",document.body.appendChild(o));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 '),o.appendChild(a),a.querySelector("button").addEventListener("click",()=>{o.removeChild(a)}),setTimeout(()=>{o.contains(a)&&o.removeChild(a)},r),a}},6378:function(e,t,r){r.r(t),r.d(t,{DashboardCache:function(){return a},dashboardCache:function(){return n}});let o=r(1214).ej.DEFAULT_TTL;class a{async get(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=r.ttl||o,n=!1!==r.refreshOnAccess,s=this._generateKey(e,t),c=e.name||"anonymous",i=this.cache.get(s),l=Date.now();if(i&&l-i.lastUpdated<a){let r=Math.round((l-i.lastUpdated)/1e3);return this._debug("Cache HIT for ".concat(c," (age: ").concat(r,"s, TTL: ").concat(Math.round(a/1e3),"s)")),n&&(this.cache.set(s,{data:i.data,lastUpdated:l}),this._debug("Cache TTL refreshed for ".concat(c))),this.backgroundJobs.has(s)||this._refreshInBackground(e,t,s),i.data}try{let r=await e(...t);return this.cache.set(s,{data:r,lastUpdated:l}),r}catch(e){if(i)return console.warn("Failed to fetch fresh data for ".concat(s,", returning stale data:"),e),i.data;throw e}}invalidate(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=this._generateKey(e,t);this.cache.delete(r),this.backgroundJobs.delete(r)}invalidateFunction(e){let t=e.name||"anonymous",r=[];for(let e of this.cache.keys())e.startsWith("".concat(t,"_"))&&r.push(e);r.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[r,o]of this.cache.entries()){let a=e-o.lastUpdated;t.push({key:r,age:Math.round(a/1e3),lastUpdated:new Date(o.lastUpdated).toISOString(),hasBackgroundJob:this.backgroundJobs.has(r)})}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,r=Array(t>1?t-1:0),o=1;o<t;o++)r[o-1]=arguments[o];this.debugMode&&console.log("[DashboardCache] ".concat(e),...r)}_refreshInBackground(e,t,r){this.backgroundJobs.set(r,!0),e(...t).then(e=>{this.cache.set(r,{data:e,lastUpdated:Date.now()})}).catch(e=>{console.warn("Background refresh failed for ".concat(r,":"),e)}).finally(()=>{this.backgroundJobs.delete(r)})}_generateKey(e,t){let r=e.name||"anonymous",o=t.length>0?JSON.stringify(t):"";return"".concat(r,"_").concat(o)}constructor(){this.cache=new Map,this.backgroundJobs=new Map,this.debugMode=!1}}let n=new a;t.default=n}}]);
|
skypilot_nightly-1.0.0.dev20250607/sky/dashboard/out/_next/static/chunks/973-6d78a0814682d771.js
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[973],{9307:function(e,t,s){s.d(t,{Cl:function(){return c},OE:function(){return d}});var r=s(5893);s(7294);var a=s(8799),n=s(6989),l=s(3850);let c=e=>{switch(e){case"LAUNCHING":return"bg-blue-100 text-sky-blue";case"RUNNING":return"bg-green-50 text-green-700";case"STOPPED":return"bg-yellow-100 text-yellow-800";case"TERMINATED":default:return"bg-gray-100 text-gray-800";case"PENDING":case"CANCELLED":case"CANCELLING":return"bg-yellow-50 text-yellow-700";case"SUCCEEDED":return"bg-blue-50 text-blue-700";case"FAILED":case"FAILED_PRECHECKS":case"FAILED_NO_RESOURCE":case"FAILED_CONTROLLER":return"bg-red-50 text-red-700";case"RECOVERING":return"bg-orange-50 text-orange-700";case"SUBMITTED":return"bg-indigo-50 text-indigo-700";case"STARTING":return"bg-cyan-50 text-cyan-700";case"FAILED_SETUP":return"bg-pink-50 text-pink-700"}},o=e=>{switch(e){case"LAUNCHING":case"STARTING":return(0,r.jsx)(a.Z,{size:12,className:"w-3 h-3 mr-1"});case"RUNNING":default:return(0,r.jsx)(l.W2,{className:"w-3 h-3 mr-1"});case"STOPPED":return(0,r.jsx)(l.fp,{className:"w-3 h-3 mr-1"});case"TERMINATED":case"FAILED":case"CANCELLED":return(0,r.jsx)(l.Ps,{className:"w-3 h-3 mr-1"});case"SUCCEEDED":return(0,r.jsx)(l.Ye,{className:"w-3 h-3 mr-1"});case"PENDING":case"RECOVERING":case"SUBMITTED":case"CANCELLING":case"FAILED_SETUP":case"FAILED_PRECHECKS":case"FAILED_NO_RESOURCE":case"FAILED_CONTROLLER":return(0,r.jsx)(l.J$,{className:"w-3 h-3 mr-1"})}},i=e=>{let t=c(e),s=o(e);return(0,r.jsxs)("span",{className:"".concat("inline-flex items-center px-2 py-1 rounded-full text-sm"," ").concat(t),children:[s,e]})},d=e=>{let{status:t}=e;return(0,r.jsx)(n.WH,{content:t,className:"text-muted-foreground text-sm",children:(0,r.jsx)("span",{children:i(t)})})}},9284:function(e,t,s){s.d(t,{Oh:function(){return m},_R:function(){return f},cV:function(){return x}});var r=s(5893),a=s(7294),n=s(326),l=s(803),c=s(7673),o=s(8671),i=s(6989),d=s(3225),u=s(3001);function m(e){let{isOpen:t,onClose:s,cluster:d}=e,[u,m]=a.useState(!1),f=e=>{navigator.clipboard.writeText(e),m(!0),setTimeout(()=>m(!1),2e3)},x=["sky status ".concat(d),"ssh ".concat(d)],h=x.join("\n");return(0,r.jsx)(n.Vq,{open:t,onOpenChange:s,children:(0,r.jsxs)(n.cZ,{className:"sm:max-w-md",children:[(0,r.jsxs)(n.fK,{children:[(0,r.jsxs)(n.$N,{children:["Connect to: ",(0,r.jsx)("span",{className:"font-light",children:d})]}),(0,r.jsx)(n.Be,{children:"Use these instructions to connect to your cluster via SSH."})]}),(0,r.jsxs)("div",{className:"flex flex-col space-y-4",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{className:"text-sm font-medium mb-2",children:"SSH Command"}),(0,r.jsx)(c.Zb,{className:"p-3 bg-gray-50",children:(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsx)("pre",{className:"text-sm w-full whitespace-pre-wrap",children:x.map((e,t)=>(0,r.jsx)("code",{className:"block",children:e},t))}),(0,r.jsx)(i.WH,{content:u?"Copied!":"Copy command",children:(0,r.jsx)(l.z,{variant:"ghost",size:"icon",onClick:()=>f(h),className:"h-8 w-8 rounded-full",children:(0,r.jsx)(o.Z,{className:"h-4 w-4"})})})]})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{className:"text-sm font-medium mb-2",children:"Additional Information"}),(0,r.jsxs)("p",{className:"text-sm text-secondary-foreground",children:["Make sure to run"," ",(0,r.jsxs)("code",{className:"text-sm",children:["sky status ",d]})," first to have SkyPilot set up the SSH access."]})]})]})]})})}function f(e){let{isOpen:t,onClose:s,cluster:a}=e,m=(0,u.X)();return(0,r.jsx)(n.Vq,{open:t,onOpenChange:s,children:(0,r.jsx)(n.cZ,{className:"sm:max-w-3xl",children:(0,r.jsxs)(n.fK,{children:[(0,r.jsxs)(n.$N,{children:["Connect to: ",(0,r.jsx)("span",{className:"font-light",children:a})]}),(0,r.jsx)(n.Be,{children:(0,r.jsxs)("div",{className:"flex flex-col space-y-4",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{className:"text-sm font-medium mb-2 my-2",children:"Setup SSH access"}),(0,r.jsx)(c.Zb,{className:"p-3 bg-gray-50",children:(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsx)("pre",{className:"text-sm",children:(0,r.jsxs)("code",{children:["sky status ",a]})}),(0,r.jsx)(i.WH,{content:"Copy command",children:(0,r.jsx)(l.z,{variant:"ghost",size:"icon",onClick:()=>navigator.clipboard.writeText("sky status ".concat(a)),className:"h-8 w-8 rounded-full",children:(0,r.jsx)(o.Z,{className:"h-4 w-4"})})})]})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{className:"text-sm font-medium mb-2 my-2",children:"Connect with VSCode/Cursor"}),(0,r.jsx)(c.Zb,{className:"p-3 bg-gray-50",children:(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsx)("pre",{className:"text-sm",children:(0,r.jsxs)("code",{children:["code --remote ssh-remote+",a]})}),(0,r.jsx)(i.WH,{content:"Copy command",children:(0,r.jsx)(l.z,{variant:"ghost",size:"icon",onClick:()=>navigator.clipboard.writeText("code --remote ssh-remote+".concat(a)),className:"h-8 w-8 rounded-full",children:(0,r.jsx)(o.Z,{className:"h-4 w-4"})})})]})})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{className:"text-sm font-medium",children:"Or use the GUI to connect"}),(0,r.jsx)("div",{className:"relative ".concat(m?"-mt-5":"-mt-10"),style:{paddingBottom:"70%"},children:(0,r.jsxs)("video",{className:"absolute top-0 left-0 w-full h-full rounded-lg",controls:!0,autoPlay:!0,muted:!0,preload:"metadata",children:[(0,r.jsx)("source",{src:"".concat(d.GW,"/videos/cursor-small.mp4"),type:"video/mp4"}),"Your browser does not support the video tag."]})})]})]})})]})})})}function x(e){let{isOpen:t,onClose:s,onConfirm:a,title:c,message:o,confirmText:i="Confirm",confirmVariant:d="destructive",confirmClassName:u=null}=e;return(0,r.jsx)(n.Vq,{open:t,onOpenChange:s,children:(0,r.jsxs)(n.cZ,{className:"sm:max-w-md",children:[(0,r.jsxs)(n.fK,{children:[(0,r.jsx)(n.$N,{children:c}),(0,r.jsx)(n.Be,{children:o})]}),(0,r.jsxs)(n.cN,{className:"flex justify-end gap-2 pt-4",children:[(0,r.jsx)(l.z,{variant:"outline",onClick:s,children:"Cancel"}),(0,r.jsx)(l.z,{variant:u?void 0:d,className:u,onClick:()=>{a(),s()},children:i})]})]})})}},803:function(e,t,s){s.d(t,{z:function(){return i}});var r=s(5893),a=s(7294),n=s(8426),l=s(2003),c=s(2350);let o=(0,l.j)("inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),i=a.forwardRef((e,t)=>{let{className:s,variant:a,size:l,asChild:i=!1,...d}=e,u=i?n.g7:"button";return(0,r.jsx)(u,{className:(0,c.cn)(o({variant:a,size:l,className:s})),ref:t,...d})});i.displayName="Button"},7673:function(e,t,s){s.d(t,{Ol:function(){return i},Zb:function(){return o},aY:function(){return m},eW:function(){return f},ll:function(){return d}});var r=s(5893),a=s(7294),n=s(5697),l=s.n(n),c=s(2350);let o=a.forwardRef((e,t)=>{let{className:s,children:a,...n}=e;return(0,r.jsx)("div",{ref:t,className:(0,c.cn)("rounded-lg border bg-card text-card-foreground shadow-sm",s),...n,children:a})});o.displayName="Card",o.propTypes={className:l().string,children:l().node};let i=a.forwardRef((e,t)=>{let{className:s,children:a,...n}=e;return(0,r.jsx)("div",{ref:t,className:(0,c.cn)("flex flex-col space-y-1.5 p-6",s),...n,children:a})});i.displayName="CardHeader",i.propTypes={className:l().string,children:l().node};let d=a.forwardRef((e,t)=>{let{className:s,children:a,...n}=e;return(0,r.jsx)("h3",{ref:t,className:(0,c.cn)("text-2xl font-semibold leading-none tracking-tight",s),...n,children:a})});d.displayName="CardTitle",d.propTypes={className:l().string,children:l().node};let u=a.forwardRef((e,t)=>{let{className:s,children:a,...n}=e;return(0,r.jsx)("p",{ref:t,className:(0,c.cn)("text-sm text-muted-foreground",s),...n,children:a})});u.displayName="CardDescription",u.propTypes={className:l().string,children:l().node};let m=a.forwardRef((e,t)=>{let{className:s,children:a,...n}=e;return(0,r.jsx)("div",{ref:t,className:(0,c.cn)("p-6 pt-0",s),...n,children:a})});m.displayName="CardContent",m.propTypes={className:l().string,children:l().node};let f=a.forwardRef((e,t)=>{let{className:s,children:a,...n}=e;return(0,r.jsx)("div",{ref:t,className:(0,c.cn)("flex items-center p-6 pt-0",s),...n,children:a})});f.displayName="CardFooter",f.propTypes={className:l().string,children:l().node}},326:function(e,t,s){s.d(t,{$N:function(){return x},Be:function(){return h},Vq:function(){return o},cN:function(){return f},cZ:function(){return u},fK:function(){return m}});var r=s(5893),a=s(7294),n=s(6327),l=s(2350),c=s(3767);let o=n.fC;n.xz;let i=n.h_;n.x8;let d=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)(n.aV,{ref:t,className:(0,l.cn)("fixed inset-0 z-50 bg-black/50 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",s),...a})});d.displayName=n.aV.displayName;let u=a.forwardRef((e,t)=>{let{className:s,children:a,...o}=e;return(0,r.jsxs)(i,{children:[(0,r.jsx)(d,{}),(0,r.jsxs)(n.VY,{ref:t,className:(0,l.cn)("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-gray-200 bg-white p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",s),...o,children:[a,(0,r.jsxs)(n.x8,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-white transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-gray-400 focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-gray-100 data-[state=open]:text-gray-500",children:[(0,r.jsx)(c.Z,{className:"h-4 w-4"}),(0,r.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})});u.displayName=n.VY.displayName;let m=e=>{let{className:t,...s}=e;return(0,r.jsx)("div",{className:(0,l.cn)("flex flex-col space-y-1.5 text-center sm:text-left",t),...s})};m.displayName="DialogHeader";let f=e=>{let{className:t,...s}=e;return(0,r.jsx)("div",{className:(0,l.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",t),...s})};f.displayName="DialogFooter";let x=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)(n.Dx,{ref:t,className:(0,l.cn)("text-lg font-semibold leading-none tracking-tight",s),...a})});x.displayName=n.Dx.displayName;let h=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)(n.dk,{ref:t,className:(0,l.cn)("text-sm text-gray-500",s),...a})});h.displayName=n.dk.displayName},8764:function(e,t,s){s.d(t,{RM:function(){return o},SC:function(){return i},iA:function(){return l},pj:function(){return u},ss:function(){return d},xD:function(){return c}});var r=s(5893),a=s(7294),n=s(2350);let l=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("div",{className:"relative w-full overflow-auto",children:(0,r.jsx)("table",{ref:t,className:(0,n.cn)("w-full caption-bottom text-base",s),...a})})});l.displayName="Table";let c=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("thead",{ref:t,className:(0,n.cn)("[&_tr]:border-b",s),...a})});c.displayName="TableHeader";let o=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("tbody",{ref:t,className:(0,n.cn)("[&_tr:last-child]:border-0",s),...a})});o.displayName="TableBody",a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("tfoot",{ref:t,className:(0,n.cn)("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",s),...a})}).displayName="TableFooter";let i=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("tr",{ref:t,className:(0,n.cn)("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",s),...a})});i.displayName="TableRow";let d=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("th",{ref:t,className:(0,n.cn)("h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0",s),...a})});d.displayName="TableHead";let u=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("td",{ref:t,className:(0,n.cn)("p-4 align-middle [&:has([role=checkbox])]:pr-0",s),...a})});u.displayName="TableCell",a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("caption",{ref:t,className:(0,n.cn)("mt-4 text-base text-muted-foreground",s),...a})}).displayName="TableCaption"},4545:function(e,t,s){function r(e){return e.startsWith("sky-jobs-controller-")}function a(e,t,s){return null===t?e:[...e].sort((e,r)=>e[t]<r[t]?"ascending"===s?-1:1:e[t]>r[t]?"ascending"===s?1:-1:0)}s.d(t,{R0:function(){return a},Ym:function(){return r}})}}]);
|
@@ -0,0 +1,6 @@
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[722],{8706:function(e,s,t){(window.__NEXT_P=window.__NEXT_P||[]).push(["/clusters/[cluster]",function(){return t(6996)}])},6639:function(e,s,t){"use strict";t.d(s,{Z:function(){return a}});/**
|
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 a=(0,t(998).Z)("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]])},6996:function(e,s,t){"use strict";t.r(s);var a=t(5893),r=t(7294),l=t(8799),n=t(8236),i=t(1163),c=t(9470),d=t(1664),o=t.n(d),m=t(9037),x=t(9307),u=t(7673),h=t(3266),j=t(3626),f=t(282),N=t(8671),y=t(5895),b=t(6639),v=t(1272),g=t(6989),p=t(9284),w=t(3001),k=t(9008),_=t.n(k);let C=(e,s)=>{let t="",a="";return e>=0&&(t=e+"m",a=" "),s&&(t+="".concat(a,"(down)")),""===t&&(t="-"),t};function S(e){let{clusterData:s,clusterJobData:t,clusterJobsLoading:l,refreshClusterJobsOnly:i}=e,[c,d]=(0,r.useState)(!1),[m,h]=(0,r.useState)(!1),[j,p]=(0,r.useState)(!1),w=async()=>{try{let e=_(s.task_yaml);await navigator.clipboard.writeText(e),h(!0),setTimeout(()=>h(!1),2e3)}catch(e){console.error("Failed to copy YAML to clipboard:",e)}},k=async()=>{try{await navigator.clipboard.writeText(s.command),p(!0),setTimeout(()=>p(!1),2e3)}catch(e){console.error("Failed to copy command to clipboard:",e)}},_=e=>{if(!e)return"No YAML available";try{let s=v.ZP.load(e),t=v.ZP.dump(s,{lineWidth:-1,styles:{"!!str":"literal"},quotingType:"'",forceQuotes:!1,noRefs:!0,sortKeys:!1,condenseFlow:!1,indent:2}).split("\n"),a=[],r=-1;for(let e=0;e<t.length;e++){let s=t[e],l=s.search(/\S/);0===l&&r>=0&&e>0&&a.push(""),a.push(s),r=l}return a.join("\n").trim()}catch(s){return console.error("YAML formatting error:",s),e}},S=(null==s?void 0:s.command)||(null==s?void 0:s.task_yaml);return(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"mb-6",children:(0,a.jsxs)(u.Zb,{children:[(0,a.jsx)("div",{className:"flex items-center justify-between px-4 pt-4",children:(0,a.jsx)("h3",{className:"text-lg font-semibold",children:"Details"})}),(0,a.jsx)("div",{className:"p-4",children:(0,a.jsxs)("div",{className:"grid grid-cols-2 gap-6",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"Status"}),(0,a.jsx)("div",{className:"text-base mt-1",children:(0,a.jsx)(x.OE,{status:s.status})})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"Cluster"}),(0,a.jsx)("div",{className:"text-base mt-1",children:s.cluster})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"User"}),(0,a.jsx)("div",{className:"text-base mt-1",children:s.user})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"Infra"}),(0,a.jsx)("div",{className:"text-base mt-1",children:s.infra?(0,a.jsx)(g.Md,{content:s.full_infra||s.infra,className:"text-sm text-muted-foreground",children:(0,a.jsxs)("span",{children:[(0,a.jsx)(o(),{href:"/infra",className:"text-blue-600 hover:underline",children:s.cloud||s.infra.split("(")[0].trim()}),s.infra.includes("(")&&(0,a.jsx)("span",{children:" "+s.infra.substring(s.infra.indexOf("("))})]})}):"N/A"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"Resources"}),(0,a.jsx)("div",{className:"text-base mt-1",children:s.resources_str_full||s.resources_str||"N/A"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"Started"}),(0,a.jsx)("div",{className:"text-base mt-1",children:s.time?new Date(s.time).toLocaleString():"N/A"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"Autostop"}),(0,a.jsx)("div",{className:"text-base mt-1",children:C(s.autostop,s.to_down)})]}),S&&(0,a.jsxs)("div",{className:"col-span-2",children:[(0,a.jsxs)("div",{className:"flex items-center",children:[(0,a.jsx)("div",{className:"text-gray-600 font-medium text-base",children:"Entrypoint"}),s.command&&(0,a.jsx)(g.WH,{content:j?"Copied!":"Copy command",className:"text-muted-foreground",children:(0,a.jsx)("button",{onClick:k,className:"flex items-center text-gray-500 hover:text-gray-700 transition-colors duration-200 p-1 ml-2",children:j?(0,a.jsx)(f.Z,{className:"w-4 h-4 text-green-600"}):(0,a.jsx)(N.Z,{className:"w-4 h-4"})})})]}),(0,a.jsxs)("div",{className:"space-y-4 mt-3",children:[s.command&&(0,a.jsx)("div",{children:(0,a.jsx)("div",{className:"bg-gray-50 border border-gray-200 rounded-md p-3",children:(0,a.jsx)("code",{className:"text-sm text-gray-800 font-mono break-all",children:s.command})})}),s.task_yaml&&"{}"!==s.task_yaml&&!s.cluster.startsWith("sky-jobs-controller-")&&!s.cluster.startsWith("sky-serve-controller-")&&(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"flex items-center mb-2",children:[(0,a.jsxs)("button",{onClick:()=>{d(!c)},className:"flex items-center text-left focus:outline-none text-gray-700 hover:text-gray-900 transition-colors duration-200",children:[c?(0,a.jsx)(y.Z,{className:"w-4 h-4 mr-1"}):(0,a.jsx)(b.Z,{className:"w-4 h-4 mr-1"}),(0,a.jsx)("span",{className:"text-base",children:"Show SkyPilot YAML"})]}),(0,a.jsx)(g.WH,{content:m?"Copied!":"Copy YAML",className:"text-muted-foreground",children:(0,a.jsx)("button",{onClick:w,className:"flex items-center text-gray-500 hover:text-gray-700 transition-colors duration-200 p-1 ml-2",children:m?(0,a.jsx)(f.Z,{className:"w-4 h-4 text-green-600"}):(0,a.jsx)(N.Z,{className:"w-4 h-4"})})})]}),c&&(0,a.jsx)("div",{className:"bg-gray-50 border border-gray-200 rounded-md p-3 max-h-96 overflow-y-auto",children:(0,a.jsx)("pre",{className:"text-sm text-gray-800 font-mono whitespace-pre-wrap",children:_(s.task_yaml)})})]})]})]})]})})]})}),(0,a.jsx)("div",{className:"mb-8",children:(0,a.jsx)(n.L4,{clusterName:s.cluster,clusterJobData:t,loading:l,refreshClusterJobsOnly:i})})]})}s.default=function(){let e=(0,i.useRouter)(),{cluster:s}=e.query,[t,n]=(0,r.useState)(!1),[d,x]=(0,r.useState)(!0),[u,f]=(0,r.useState)(!1),[N,y]=(0,r.useState)(!1),b=(0,w.X)(),{clusterData:v,clusterJobData:k,loading:C,clusterDetailsLoading:Z,clusterJobsLoading:L,refreshData:O,refreshClusterJobsOnly:A}=(0,h.QL)({cluster:s});r.useEffect(()=>{!Z&&d&&x(!1)},[Z,d]);let D=async()=>{n(!0),await O(),n(!1)};if(!e.isReady)return(0,a.jsx)("div",{children:"Loading..."});let E=s?"Cluster: ".concat(s," | SkyPilot Dashboard"):"Cluster Details | SkyPilot Dashboard";return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(_(),{children:(0,a.jsx)("title",{children:E})}),(0,a.jsxs)(c.A,{highlighted:"clusters",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-4 h-5",children:[(0,a.jsxs)("div",{className:"text-base flex items-center",children:[(0,a.jsx)(o(),{href:"/clusters",className:"text-sky-blue hover:underline",children:"Sky Clusters"}),(0,a.jsx)("span",{className:"mx-2 text-gray-500",children:"›"}),(0,a.jsx)(o(),{href:"/clusters/".concat(s),className:"text-sky-blue hover:underline",children:s})]}),(0,a.jsx)("div",{className:"text-sm flex items-center",children:(0,a.jsxs)("div",{className:"text-sm flex items-center",children:[(Z||t)&&(0,a.jsxs)("div",{className:"flex items-center mr-4",children:[(0,a.jsx)(l.Z,{size:15,className:"mt-0"}),(0,a.jsx)("span",{className:"ml-2 text-gray-500",children:"Loading..."})]}),v&&(0,a.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,a.jsx)(g.WH,{content:"Refresh",className:"text-sm text-muted-foreground",children:(0,a.jsxs)("button",{onClick:D,disabled:Z||t,className:"text-sky-blue hover:text-sky-blue-bright font-medium inline-flex items-center",children:[(0,a.jsx)(j.Z,{className:"w-4 h-4 mr-1.5"}),!b&&(0,a.jsx)("span",{children:"Refresh"})]})}),(0,a.jsx)(m.GV,{withLabel:!0,cluster:v.cluster,status:v.status,onOpenSSHModal:()=>{f(!0)},onOpenVSCodeModal:()=>{y(!0)}})]})]})})]}),Z&&d?(0,a.jsxs)("div",{className:"flex justify-center items-center py-12",children:[(0,a.jsx)(l.Z,{size:24,className:"mr-2"}),(0,a.jsx)("span",{className:"text-gray-500",children:"Loading cluster details..."})]}):v?(0,a.jsx)(S,{clusterData:v,clusterJobData:k,clusterJobsLoading:L,refreshClusterJobsOnly:A}):null,(0,a.jsx)(p.Oh,{isOpen:u,onClose:()=>f(!1),cluster:s}),(0,a.jsx)(p._R,{isOpen:N,onClose:()=>y(!1),cluster:s})]})]})}}},function(e){e.O(0,[614,798,121,470,969,293,856,973,236,37,888,774,179],function(){return e(e.s=8706)}),_N_E=e.O()}]);
|
@@ -1 +1 @@
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[810],{5833:function(n,t,r){(window.__NEXT_P=window.__NEXT_P||[]).push(["/clusters",function(){return r(3450)}])},3450:function(n,t,r){"use strict";r.r(t),r.d(t,{default:function(){return i}});var u=r(5893);r(7294);var e=r(9008),s=r.n(e),c=r(9037);function i(){return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(s(),{children:(0,u.jsx)("title",{children:"Clusters | SkyPilot Dashboard"})}),(0,u.jsx)(c.Cc,{})]})}}},function(n){n.O(0,[614,798,121,470,293,
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[810],{5833:function(n,t,r){(window.__NEXT_P=window.__NEXT_P||[]).push(["/clusters",function(){return r(3450)}])},3450:function(n,t,r){"use strict";r.r(t),r.d(t,{default:function(){return i}});var u=r(5893);r(7294);var e=r(9008),s=r.n(e),c=r(9037);function i(){return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(s(),{children:(0,u.jsx)("title",{children:"Clusters | SkyPilot Dashboard"})}),(0,u.jsx)(c.Cc,{})]})}}},function(n){n.O(0,[614,798,121,470,969,293,856,973,37,888,774,179],function(){return n(n.s=5833)}),_N_E=n.O()}]);
|