skypilot-nightly 1.0.0.dev20250421__tar.gz → 1.0.0.dev20250423__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.
Files changed (414) hide show
  1. {skypilot_nightly-1.0.0.dev20250421/skypilot_nightly.egg-info → skypilot_nightly-1.0.0.dev20250423}/PKG-INFO +1 -1
  2. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/setup.py +1 -0
  3. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/__init__.py +2 -2
  4. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/adaptors/aws.py +2 -13
  5. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/backends/wheel_utils.py +27 -1
  6. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/cli.py +1 -5
  7. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/client/cli.py +1 -5
  8. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/aws.py +5 -5
  9. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/data_fetchers/fetch_gcp.py +9 -9
  10. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/404.html +1 -1
  11. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/clusters/[cluster]/[job].html +1 -1
  12. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/clusters/[cluster].html +1 -1
  13. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/clusters.html +1 -1
  14. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/index.html +1 -1
  15. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/jobs/[job].html +1 -1
  16. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/jobs.html +1 -1
  17. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/data/mounting_utils.py +5 -2
  18. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/runpod/utils.py +32 -6
  19. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/server/common.py +62 -2
  20. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/server/constants.py +1 -1
  21. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/server/requests/payloads.py +15 -0
  22. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/server/server.py +5 -2
  23. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/setup_files/setup.py +1 -0
  24. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/skypilot_config.py +7 -6
  25. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/kubernetes/gpu_labeler.py +2 -1
  26. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423/skypilot_nightly.egg-info}/PKG-INFO +1 -1
  27. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/skypilot_nightly.egg-info/SOURCES.txt +2 -2
  28. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/LICENSE +0 -0
  29. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/MANIFEST.in +0 -0
  30. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/README.md +0 -0
  31. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/pyproject.toml +0 -0
  32. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/setup.cfg +0 -0
  33. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/adaptors/__init__.py +0 -0
  34. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/adaptors/azure.py +0 -0
  35. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/adaptors/cloudflare.py +0 -0
  36. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/adaptors/common.py +0 -0
  37. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/adaptors/cudo.py +0 -0
  38. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/adaptors/do.py +0 -0
  39. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/adaptors/docker.py +0 -0
  40. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/adaptors/gcp.py +0 -0
  41. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/adaptors/ibm.py +0 -0
  42. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/adaptors/kubernetes.py +0 -0
  43. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/adaptors/nebius.py +0 -0
  44. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/adaptors/oci.py +0 -0
  45. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/adaptors/runpod.py +0 -0
  46. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/adaptors/vast.py +0 -0
  47. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/adaptors/vsphere.py +0 -0
  48. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/admin_policy.py +0 -0
  49. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/authentication.py +0 -0
  50. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/backends/__init__.py +0 -0
  51. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/backends/backend.py +0 -0
  52. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/backends/backend_utils.py +0 -0
  53. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/backends/cloud_vm_ray_backend.py +0 -0
  54. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/backends/docker_utils.py +0 -0
  55. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/backends/local_docker_backend.py +0 -0
  56. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/backends/monkey_patches/monkey_patch_ray_up.py +0 -0
  57. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/benchmark/__init__.py +0 -0
  58. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/benchmark/benchmark_state.py +0 -0
  59. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/benchmark/benchmark_utils.py +0 -0
  60. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/check.py +0 -0
  61. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/client/__init__.py +0 -0
  62. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/client/common.py +0 -0
  63. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/client/sdk.py +0 -0
  64. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/cloud_stores.py +0 -0
  65. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/__init__.py +0 -0
  66. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/azure.py +0 -0
  67. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/cloud.py +0 -0
  68. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/cudo.py +0 -0
  69. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/do.py +0 -0
  70. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/fluidstack.py +0 -0
  71. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/gcp.py +0 -0
  72. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/ibm.py +0 -0
  73. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/kubernetes.py +0 -0
  74. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/lambda_cloud.py +0 -0
  75. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/nebius.py +0 -0
  76. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/oci.py +0 -0
  77. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/paperspace.py +0 -0
  78. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/runpod.py +0 -0
  79. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/scp.py +0 -0
  80. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/__init__.py +0 -0
  81. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/aws_catalog.py +0 -0
  82. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/azure_catalog.py +0 -0
  83. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/common.py +0 -0
  84. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/config.py +0 -0
  85. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/constants.py +0 -0
  86. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/cudo_catalog.py +0 -0
  87. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/data_fetchers/__init__.py +0 -0
  88. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/data_fetchers/fetch_aws.py +0 -0
  89. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/data_fetchers/fetch_azure.py +0 -0
  90. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/data_fetchers/fetch_cudo.py +0 -0
  91. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/data_fetchers/fetch_fluidstack.py +0 -0
  92. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/data_fetchers/fetch_ibm.py +0 -0
  93. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/data_fetchers/fetch_lambda_cloud.py +0 -0
  94. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/data_fetchers/fetch_vast.py +0 -0
  95. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/data_fetchers/fetch_vsphere.py +0 -0
  96. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/do_catalog.py +0 -0
  97. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/fluidstack_catalog.py +0 -0
  98. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/gcp_catalog.py +0 -0
  99. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/ibm_catalog.py +0 -0
  100. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/kubernetes_catalog.py +0 -0
  101. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/lambda_catalog.py +0 -0
  102. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/nebius_catalog.py +0 -0
  103. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/oci_catalog.py +0 -0
  104. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/paperspace_catalog.py +0 -0
  105. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/runpod_catalog.py +0 -0
  106. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/scp_catalog.py +0 -0
  107. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/vast_catalog.py +0 -0
  108. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/vsphere_catalog.py +0 -0
  109. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/utils/__init__.py +0 -0
  110. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/utils/aws_utils.py +0 -0
  111. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/utils/azure_utils.py +0 -0
  112. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/utils/gcp_utils.py +0 -0
  113. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/utils/oci_utils.py +0 -0
  114. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/utils/scp_utils.py +0 -0
  115. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/vast.py +0 -0
  116. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/vsphere.py +0 -0
  117. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/core.py +0 -0
  118. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/dag.py +0 -0
  119. {skypilot_nightly-1.0.0.dev20250421/sky/dashboard/out/_next/static/mS9YfLA5hhsJMeBj9W8J7 → skypilot_nightly-1.0.0.dev20250423/sky/dashboard/out/_next/static/68UjuSjrx8JvfzxUuf1-w}/_buildManifest.js +0 -0
  120. {skypilot_nightly-1.0.0.dev20250421/sky/dashboard/out/_next/static/mS9YfLA5hhsJMeBj9W8J7 → skypilot_nightly-1.0.0.dev20250423/sky/dashboard/out/_next/static/68UjuSjrx8JvfzxUuf1-w}/_ssgManifest.js +0 -0
  121. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/_next/static/chunks/236-d437cf66e68a6f64.js +0 -0
  122. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/_next/static/chunks/312-c3c8845990db8ffc.js +0 -0
  123. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/_next/static/chunks/37-72fdc8f71d6e4784.js +0 -0
  124. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/_next/static/chunks/678-206dddca808e6d16.js +0 -0
  125. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/_next/static/chunks/845-2ea1cc63ba1f4067.js +0 -0
  126. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/_next/static/chunks/979-7cd0778078b9cfad.js +0 -0
  127. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/_next/static/chunks/fd9d1056-2821b0f0cabcd8bd.js +0 -0
  128. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/_next/static/chunks/framework-87d061ee6ed71b28.js +0 -0
  129. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/_next/static/chunks/main-app-241eb28595532291.js +0 -0
  130. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/_next/static/chunks/main-e0e2335212e72357.js +0 -0
  131. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/_next/static/chunks/pages/_app-3001e84c61acddfb.js +0 -0
  132. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/_next/static/chunks/pages/_error-1be831200e60c5c0.js +0 -0
  133. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-b09f7fbf6d5d74f6.js +0 -0
  134. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-b57ec043f09c5813.js +0 -0
  135. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/_next/static/chunks/pages/clusters-a93b93e10b8b074e.js +0 -0
  136. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/_next/static/chunks/pages/index-f9f039532ca8cbc4.js +0 -0
  137. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-ef2e0e91a9222cac.js +0 -0
  138. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/_next/static/chunks/pages/jobs-a75029b67aab6a2e.js +0 -0
  139. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js +0 -0
  140. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/_next/static/chunks/webpack-830f59b8404e96b8.js +0 -0
  141. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/_next/static/css/f3538cd90cfca88c.css +0 -0
  142. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/favicon.ico +0 -0
  143. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/skypilot.svg +0 -0
  144. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/videos/cursor-small.mp4 +0 -0
  145. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/data/__init__.py +0 -0
  146. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/data/data_transfer.py +0 -0
  147. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/data/data_utils.py +0 -0
  148. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/data/storage.py +0 -0
  149. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/data/storage_utils.py +0 -0
  150. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/exceptions.py +0 -0
  151. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/execution.py +0 -0
  152. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/global_user_state.py +0 -0
  153. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/jobs/__init__.py +0 -0
  154. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/jobs/client/__init__.py +0 -0
  155. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/jobs/client/sdk.py +0 -0
  156. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/jobs/constants.py +0 -0
  157. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/jobs/controller.py +0 -0
  158. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/jobs/dashboard/dashboard.py +0 -0
  159. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/jobs/dashboard/static/favicon.ico +0 -0
  160. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/jobs/dashboard/templates/index.html +0 -0
  161. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/jobs/recovery_strategy.py +0 -0
  162. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/jobs/scheduler.py +0 -0
  163. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/jobs/server/__init__.py +0 -0
  164. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/jobs/server/core.py +0 -0
  165. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/jobs/server/dashboard_utils.py +0 -0
  166. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/jobs/server/server.py +0 -0
  167. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/jobs/state.py +0 -0
  168. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/jobs/utils.py +0 -0
  169. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/models.py +0 -0
  170. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/optimizer.py +0 -0
  171. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/__init__.py +0 -0
  172. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/aws/__init__.py +0 -0
  173. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/aws/config.py +0 -0
  174. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/aws/instance.py +0 -0
  175. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/aws/utils.py +0 -0
  176. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/azure/__init__.py +0 -0
  177. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/azure/azure-config-template.json +0 -0
  178. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/azure/config.py +0 -0
  179. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/azure/instance.py +0 -0
  180. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/common.py +0 -0
  181. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/constants.py +0 -0
  182. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/cudo/__init__.py +0 -0
  183. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/cudo/config.py +0 -0
  184. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/cudo/cudo_machine_type.py +0 -0
  185. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/cudo/cudo_utils.py +0 -0
  186. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/cudo/cudo_wrapper.py +0 -0
  187. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/cudo/instance.py +0 -0
  188. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/do/__init__.py +0 -0
  189. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/do/config.py +0 -0
  190. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/do/constants.py +0 -0
  191. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/do/instance.py +0 -0
  192. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/do/utils.py +0 -0
  193. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/docker_utils.py +0 -0
  194. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/fluidstack/__init__.py +0 -0
  195. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/fluidstack/config.py +0 -0
  196. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/fluidstack/fluidstack_utils.py +0 -0
  197. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/fluidstack/instance.py +0 -0
  198. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/gcp/__init__.py +0 -0
  199. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/gcp/config.py +0 -0
  200. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/gcp/constants.py +0 -0
  201. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/gcp/instance.py +0 -0
  202. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/gcp/instance_utils.py +0 -0
  203. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/gcp/mig_utils.py +0 -0
  204. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/instance_setup.py +0 -0
  205. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/kubernetes/__init__.py +0 -0
  206. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/kubernetes/config.py +0 -0
  207. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/kubernetes/constants.py +0 -0
  208. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/kubernetes/instance.py +0 -0
  209. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/kubernetes/manifests/fusermount-server-daemonset.yaml +0 -0
  210. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/kubernetes/network.py +0 -0
  211. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/kubernetes/network_utils.py +0 -0
  212. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/kubernetes/utils.py +0 -0
  213. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/lambda_cloud/__init__.py +0 -0
  214. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/lambda_cloud/config.py +0 -0
  215. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/lambda_cloud/instance.py +0 -0
  216. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/lambda_cloud/lambda_utils.py +0 -0
  217. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/logging.py +0 -0
  218. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/metadata_utils.py +0 -0
  219. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/nebius/__init__.py +0 -0
  220. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/nebius/config.py +0 -0
  221. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/nebius/instance.py +0 -0
  222. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/nebius/utils.py +0 -0
  223. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/oci/__init__.py +0 -0
  224. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/oci/config.py +0 -0
  225. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/oci/instance.py +0 -0
  226. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/oci/query_utils.py +0 -0
  227. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/paperspace/__init__.py +0 -0
  228. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/paperspace/config.py +0 -0
  229. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/paperspace/constants.py +0 -0
  230. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/paperspace/instance.py +0 -0
  231. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/paperspace/utils.py +0 -0
  232. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/provisioner.py +0 -0
  233. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/runpod/__init__.py +0 -0
  234. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/runpod/api/__init__.py +0 -0
  235. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/runpod/api/commands.py +0 -0
  236. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/runpod/api/pods.py +0 -0
  237. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/runpod/config.py +0 -0
  238. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/runpod/instance.py +0 -0
  239. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/vast/__init__.py +0 -0
  240. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/vast/config.py +0 -0
  241. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/vast/instance.py +0 -0
  242. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/vast/utils.py +0 -0
  243. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/vsphere/__init__.py +0 -0
  244. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/vsphere/common/__init__.py +0 -0
  245. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/vsphere/common/cls_api_client.py +0 -0
  246. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/vsphere/common/cls_api_helper.py +0 -0
  247. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/vsphere/common/custom_script.py +0 -0
  248. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/vsphere/common/id_generator.py +0 -0
  249. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/vsphere/common/metadata_utils.py +0 -0
  250. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/vsphere/common/service_manager.py +0 -0
  251. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/vsphere/common/service_manager_factory.py +0 -0
  252. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/vsphere/common/ssl_helper.py +0 -0
  253. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/vsphere/common/vapiconnect.py +0 -0
  254. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/vsphere/common/vim_utils.py +0 -0
  255. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/vsphere/config.py +0 -0
  256. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/vsphere/instance.py +0 -0
  257. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/vsphere/vsphere_utils.py +0 -0
  258. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/resources.py +0 -0
  259. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/serve/__init__.py +0 -0
  260. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/serve/autoscalers.py +0 -0
  261. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/serve/client/__init__.py +0 -0
  262. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/serve/client/sdk.py +0 -0
  263. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/serve/constants.py +0 -0
  264. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/serve/controller.py +0 -0
  265. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/serve/load_balancer.py +0 -0
  266. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/serve/load_balancing_policies.py +0 -0
  267. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/serve/replica_managers.py +0 -0
  268. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/serve/serve_state.py +0 -0
  269. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/serve/serve_utils.py +0 -0
  270. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/serve/server/__init__.py +0 -0
  271. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/serve/server/core.py +0 -0
  272. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/serve/server/server.py +0 -0
  273. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/serve/service.py +0 -0
  274. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/serve/service_spec.py +0 -0
  275. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/serve/spot_placer.py +0 -0
  276. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/server/__init__.py +0 -0
  277. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/server/html/log.html +0 -0
  278. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/server/requests/__init__.py +0 -0
  279. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/server/requests/event_loop.py +0 -0
  280. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/server/requests/executor.py +0 -0
  281. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/server/requests/preconditions.py +0 -0
  282. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/server/requests/process.py +0 -0
  283. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/server/requests/queues/__init__.py +0 -0
  284. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/server/requests/queues/local_queue.py +0 -0
  285. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/server/requests/queues/mp_queue.py +0 -0
  286. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/server/requests/requests.py +0 -0
  287. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/server/requests/serializers/__init__.py +0 -0
  288. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/server/requests/serializers/decoders.py +0 -0
  289. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/server/requests/serializers/encoders.py +0 -0
  290. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/server/stream_utils.py +0 -0
  291. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/server/uvicorn.py +0 -0
  292. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/setup_files/MANIFEST.in +0 -0
  293. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/setup_files/dependencies.py +0 -0
  294. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/sky_logging.py +0 -0
  295. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/LICENSE +0 -0
  296. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/__init__.py +0 -0
  297. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/attempt_skylet.py +0 -0
  298. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/autostop_lib.py +0 -0
  299. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/configs.py +0 -0
  300. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/constants.py +0 -0
  301. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/events.py +0 -0
  302. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/job_lib.py +0 -0
  303. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/log_lib.py +0 -0
  304. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/log_lib.pyi +0 -0
  305. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/providers/__init__.py +0 -0
  306. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/providers/command_runner.py +0 -0
  307. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/providers/ibm/__init__.py +0 -0
  308. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/providers/ibm/node_provider.py +0 -0
  309. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/providers/ibm/utils.py +0 -0
  310. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/providers/ibm/vpc_provider.py +0 -0
  311. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/providers/scp/__init__.py +0 -0
  312. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/providers/scp/config.py +0 -0
  313. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/providers/scp/node_provider.py +0 -0
  314. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/ray_patches/__init__.py +0 -0
  315. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/ray_patches/autoscaler.py.patch +0 -0
  316. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/ray_patches/cli.py.patch +0 -0
  317. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/ray_patches/command_runner.py.patch +0 -0
  318. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/ray_patches/log_monitor.py.patch +0 -0
  319. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/ray_patches/resource_demand_scheduler.py.patch +0 -0
  320. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/ray_patches/updater.py.patch +0 -0
  321. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/ray_patches/worker.py.patch +0 -0
  322. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/skylet.py +0 -0
  323. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/subprocess_daemon.py +0 -0
  324. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/task.py +0 -0
  325. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/aws-ray.yml.j2 +0 -0
  326. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/azure-ray.yml.j2 +0 -0
  327. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/cudo-ray.yml.j2 +0 -0
  328. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/do-ray.yml.j2 +0 -0
  329. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/fluidstack-ray.yml.j2 +0 -0
  330. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/gcp-ray.yml.j2 +0 -0
  331. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/ibm-ray.yml.j2 +0 -0
  332. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/jobs-controller.yaml.j2 +0 -0
  333. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/kubernetes-ingress.yml.j2 +0 -0
  334. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/kubernetes-loadbalancer.yml.j2 +0 -0
  335. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/kubernetes-port-forward-proxy-command.sh +0 -0
  336. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/kubernetes-ray.yml.j2 +0 -0
  337. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/kubernetes-ssh-jump.yml.j2 +0 -0
  338. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/lambda-ray.yml.j2 +0 -0
  339. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/local-ray.yml.j2 +0 -0
  340. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/nebius-ray.yml.j2 +0 -0
  341. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/oci-ray.yml.j2 +0 -0
  342. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/paperspace-ray.yml.j2 +0 -0
  343. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/runpod-ray.yml.j2 +0 -0
  344. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/scp-ray.yml.j2 +0 -0
  345. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/sky-serve-controller.yaml.j2 +0 -0
  346. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/skypilot-server-kubernetes-proxy.sh +0 -0
  347. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/vast-ray.yml.j2 +0 -0
  348. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/vsphere-ray.yml.j2 +0 -0
  349. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/websocket_proxy.py +0 -0
  350. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/usage/__init__.py +0 -0
  351. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/usage/constants.py +0 -0
  352. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/usage/usage_lib.py +0 -0
  353. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/__init__.py +0 -0
  354. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/accelerator_registry.py +0 -0
  355. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/admin_policy_utils.py +0 -0
  356. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/annotations.py +0 -0
  357. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/atomic.py +0 -0
  358. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/cli_utils/__init__.py +0 -0
  359. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/cli_utils/status_utils.py +0 -0
  360. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/cluster_utils.py +0 -0
  361. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/command_runner.py +0 -0
  362. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/command_runner.pyi +0 -0
  363. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/common.py +0 -0
  364. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/common_utils.py +0 -0
  365. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/config_utils.py +0 -0
  366. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/control_master_utils.py +0 -0
  367. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/controller_utils.py +0 -0
  368. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/dag_utils.py +0 -0
  369. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/db_utils.py +0 -0
  370. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/env_options.py +0 -0
  371. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/kubernetes/__init__.py +0 -0
  372. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/kubernetes/create_cluster.sh +0 -0
  373. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/kubernetes/delete_cluster.sh +0 -0
  374. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/kubernetes/deploy_remote_cluster.sh +0 -0
  375. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/kubernetes/exec_kubeconfig_converter.py +0 -0
  376. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/kubernetes/generate_kind_config.py +0 -0
  377. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/kubernetes/generate_kubeconfig.sh +0 -0
  378. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/kubernetes/k8s_gpu_labeler_job.yaml +0 -0
  379. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml +0 -0
  380. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/kubernetes/kubernetes_deploy_utils.py +0 -0
  381. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/kubernetes/rsync_helper.sh +0 -0
  382. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/kubernetes/ssh_jump_lifecycle_manager.py +0 -0
  383. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/kubernetes_enums.py +0 -0
  384. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/log_utils.py +0 -0
  385. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/message_utils.py +0 -0
  386. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/registry.py +0 -0
  387. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/resources_utils.py +0 -0
  388. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/rich_console_utils.py +0 -0
  389. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/rich_utils.py +0 -0
  390. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/schemas.py +0 -0
  391. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/status_lib.py +0 -0
  392. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/subprocess_utils.py +0 -0
  393. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/timeline.py +0 -0
  394. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/ux_utils.py +0 -0
  395. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/validator.py +0 -0
  396. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/skypilot_nightly.egg-info/dependency_links.txt +0 -0
  397. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/skypilot_nightly.egg-info/entry_points.txt +0 -0
  398. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/skypilot_nightly.egg-info/requires.txt +0 -0
  399. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/skypilot_nightly.egg-info/top_level.txt +0 -0
  400. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/tests/test_api.py +0 -0
  401. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/tests/test_cli.py +0 -0
  402. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/tests/test_config.py +0 -0
  403. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/tests/test_failover.py +0 -0
  404. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/tests/test_global_user_state.py +0 -0
  405. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/tests/test_jobs.py +0 -0
  406. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/tests/test_jobs_and_serve.py +0 -0
  407. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/tests/test_list_accelerators.py +0 -0
  408. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/tests/test_optimizer_dryruns.py +0 -0
  409. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/tests/test_optimizer_random_dag.py +0 -0
  410. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/tests/test_serve_autoscaler.py +0 -0
  411. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/tests/test_smoke.py +0 -0
  412. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/tests/test_storage.py +0 -0
  413. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/tests/test_wheels.py +0 -0
  414. {skypilot_nightly-1.0.0.dev20250421 → skypilot_nightly-1.0.0.dev20250423}/tests/test_yaml_parser.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: skypilot-nightly
3
- Version: 1.0.0.dev20250421
3
+ Version: 1.0.0.dev20250423
4
4
  Summary: SkyPilot: An intercloud broker for the clouds
5
5
  Author: SkyPilot Team
6
6
  License: Apache 2.0
@@ -45,6 +45,7 @@ original_init_content = None
45
45
  system = platform.system()
46
46
 
47
47
 
48
+ # Keep in sync with sky/server/common.py get_skypilot_version_on_disk()
48
49
  def find_version():
49
50
  # Extract version information from filepath
50
51
  # Adapted from:
@@ -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 = 'd37ba6f11593127305c73cb1b1a03dc6da8452b7'
8
+ _SKYPILOT_COMMIT_SHA = '2f7f792534e7dccc3c12134123ea4f56db74eacd'
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.dev20250421'
38
+ __version__ = '1.0.0.dev20250423'
39
39
  __root_dir__ = os.path.dirname(os.path.abspath(__file__))
40
40
 
41
41
 
@@ -28,7 +28,6 @@ This is informed by the following boto3 docs:
28
28
 
29
29
  # pylint: disable=import-outside-toplevel
30
30
 
31
- import functools
32
31
  import logging
33
32
  import threading
34
33
  import time
@@ -60,23 +59,13 @@ class _ThreadLocalLRUCache(threading.local):
60
59
 
61
60
  def __init__(self, maxsize=32):
62
61
  super().__init__()
63
- self.cache = annotations.lru_cache(scope='global', maxsize=maxsize)
62
+ self.cache = annotations.lru_cache(scope='request', maxsize=maxsize)
64
63
 
65
64
 
66
65
  def _thread_local_lru_cache(maxsize=32):
67
66
  # Create thread-local storage for the LRU cache
68
67
  local_cache = _ThreadLocalLRUCache(maxsize)
69
-
70
- def decorator(func):
71
-
72
- @functools.wraps(func)
73
- def wrapper(*args, **kwargs):
74
- # Use the thread-local LRU cache
75
- return local_cache.cache(func)(*args, **kwargs)
76
-
77
- return wrapper
78
-
79
- return decorator
68
+ return local_cache.cache
80
69
 
81
70
 
82
71
  def _assert_kwargs_builtin_type(kwargs):
@@ -19,12 +19,14 @@ import subprocess
19
19
  import tempfile
20
20
  from typing import Optional, Tuple
21
21
 
22
+ import colorama
22
23
  import filelock
23
24
  from packaging import version
24
25
 
25
26
  import sky
26
27
  from sky import sky_logging
27
28
  from sky.backends import backend_utils
29
+ from sky.server import common
28
30
 
29
31
  logger = sky_logging.init_logger(__name__)
30
32
 
@@ -60,6 +62,30 @@ def _get_latest_wheel() -> pathlib.Path:
60
62
 
61
63
  def _build_sky_wheel() -> pathlib.Path:
62
64
  """Build a wheel for SkyPilot and return the path to the wheel."""
65
+ # Double check that the installed code is actually the same version as the
66
+ # running code. If not, the wheel we build will not match _WHEEL_PATTERN.
67
+ # See https://github.com/skypilot-org/skypilot/issues/5311.
68
+ version_on_disk = common.get_skypilot_version_on_disk()
69
+ if version_on_disk != sky.__version__:
70
+ logger.warning(
71
+ 'Wheel build: The installed SkyPilot version is different from the '
72
+ 'running code.\n'
73
+ f'{colorama.Style.DIM}'
74
+ f'running version: {sky.__version__}\n'
75
+ f'installed version: {version_on_disk}\n'
76
+ f'{colorama.Style.RESET_ALL}'
77
+ # The following message only applies to local API server. We have no
78
+ # way to tell from here if this is a remote or local API server. But
79
+ # we expect this to happen much more commonly to a local API server,
80
+ # so just print the hint regardless.
81
+ f'{colorama.Fore.YELLOW}'
82
+ 'Please restart the local API server by running:\n'
83
+ f'{colorama.Style.BRIGHT}sky api stop; sky api start'
84
+ f'{colorama.Style.RESET_ALL}')
85
+ raise RuntimeError('The installed SkyPilot version is different from '
86
+ 'the running code. Please restart the SkyPilot API '
87
+ 'server with: sky api stop; sky api start')
88
+
63
89
  with tempfile.TemporaryDirectory() as tmp_dir_str:
64
90
  # prepare files
65
91
  tmp_dir = pathlib.Path(tmp_dir_str)
@@ -126,7 +152,7 @@ def _build_sky_wheel() -> pathlib.Path:
126
152
  raise RuntimeError(
127
153
  f'Failed to find pip wheel for SkyPilot under {tmp_dir} with '
128
154
  f'glob pattern {_WHEEL_PATTERN!r}. '
129
- f'Found: {list(map(str, tmp_dir.glob("*")))}.'
155
+ f'Found: {list(map(str, tmp_dir.glob("*")))}. '
130
156
  'No wheel file is generated.') from None
131
157
 
132
158
  # Use a unique temporary dir per wheel hash, because there may be many
@@ -302,13 +302,9 @@ def config_option(expose_value: bool):
302
302
  try:
303
303
  if len(value) == 0:
304
304
  return None
305
- elif len(value) > 1:
306
- raise ValueError('argument specified multiple times. '
307
- 'To specify multiple configs, use '
308
- '--config nested.key1=val1,another.key2=val2')
309
305
  else:
310
306
  # Apply the config overrides to the skypilot config.
311
- return skypilot_config.apply_cli_config(value[0])
307
+ return skypilot_config.apply_cli_config(value)
312
308
  except ValueError as e:
313
309
  raise click.BadParameter(f'{str(e)}') from e
314
310
 
@@ -302,13 +302,9 @@ def config_option(expose_value: bool):
302
302
  try:
303
303
  if len(value) == 0:
304
304
  return None
305
- elif len(value) > 1:
306
- raise ValueError('argument specified multiple times. '
307
- 'To specify multiple configs, use '
308
- '--config nested.key1=val1,another.key2=val2')
309
305
  else:
310
306
  # Apply the config overrides to the skypilot config.
311
- return skypilot_config.apply_cli_config(value[0])
307
+ return skypilot_config.apply_cli_config(value)
312
308
  except ValueError as e:
313
309
  raise click.BadParameter(f'{str(e)}') from e
314
310
 
@@ -571,7 +571,7 @@ class AWS(clouds.Cloud):
571
571
  return cls._check_credentials()
572
572
 
573
573
  @classmethod
574
- @annotations.lru_cache(scope='global',
574
+ @annotations.lru_cache(scope='request',
575
575
  maxsize=1) # Cache since getting identity is slow.
576
576
  def _check_credentials(cls) -> Tuple[bool, Optional[str]]:
577
577
  """Checks if the user has access credentials to AWS."""
@@ -710,7 +710,7 @@ class AWS(clouds.Cloud):
710
710
  return AWSIdentityType.SHARED_CREDENTIALS_FILE
711
711
 
712
712
  @classmethod
713
- @annotations.lru_cache(scope='global', maxsize=1)
713
+ @annotations.lru_cache(scope='request', maxsize=1)
714
714
  def _aws_configure_list(cls) -> Optional[bytes]:
715
715
  proc = subprocess.run('aws configure list',
716
716
  shell=True,
@@ -722,7 +722,7 @@ class AWS(clouds.Cloud):
722
722
  return proc.stdout
723
723
 
724
724
  @classmethod
725
- @annotations.lru_cache(scope='global',
725
+ @annotations.lru_cache(scope='request',
726
726
  maxsize=1) # Cache since getting identity is slow.
727
727
  def _sts_get_caller_identity(cls) -> Optional[List[List[str]]]:
728
728
  try:
@@ -804,7 +804,7 @@ class AWS(clouds.Cloud):
804
804
  return [user_ids]
805
805
 
806
806
  @classmethod
807
- @annotations.lru_cache(scope='global',
807
+ @annotations.lru_cache(scope='request',
808
808
  maxsize=1) # Cache since getting identity is slow.
809
809
  def get_user_identities(cls) -> Optional[List[List[str]]]:
810
810
  """Returns a [UserId, Account] list that uniquely identifies the user.
@@ -909,7 +909,7 @@ class AWS(clouds.Cloud):
909
909
  if os.path.exists(os.path.expanduser(f'~/.aws/{filename}'))
910
910
  }
911
911
 
912
- @annotations.lru_cache(scope='global', maxsize=1)
912
+ @annotations.lru_cache(scope='request', maxsize=1)
913
913
  def can_credential_expire(self) -> bool:
914
914
  identity_type = self._current_identity_type()
915
915
  return (identity_type is not None and
@@ -60,8 +60,9 @@ HIDDEN_TPU_DF = pd.read_csv(
60
60
  ,tpu-v3-2048,1,,,tpu-v3-2048,2048.0,614.4,us-east1,us-east1-d
61
61
  """)))
62
62
 
63
- # TPU V6e price for the following regions is missing in the SKUs.
64
- TPU_V6E_MISSING_REGIONS = ['us-central2', 'southamerica-west1']
63
+ # Maximum price for TPU V6e is $691.2/hour. Here we set a higher price
64
+ # so the failover will go to the region with precise pricing info first.
65
+ TPU_V6E_MAX_PRICE = 700
65
66
 
66
67
  # TPU V5 is not visible in specific zones. We hardcode the missing zones here.
67
68
  # NOTE(dev): Keep the zones and the df in sync.
@@ -699,13 +700,12 @@ def get_tpu_df(gce_skus: List[Dict[str, Any]],
699
700
  spot_str = 'spot ' if spot else ''
700
701
  print(f'The {spot_str}price of {tpu_name} in {tpu_region} is '
701
702
  'not found in SKUs or hidden TPU price DF.')
702
- if (tpu_name.startswith('tpu-v6e') and
703
- tpu_region in TPU_V6E_MISSING_REGIONS):
704
- if not spot:
705
- tpu_price = 0.0
706
- else:
707
- assert spot or tpu_price is not None, (row, hidden_tpu,
708
- HIDDEN_TPU_DF)
703
+ # GCP's TPU V6e pricing info is not stable and there are some
704
+ # regions that are missing the pricing info. We set the price to
705
+ # the maximum price so the failover will go to the region with
706
+ # precise pricing info first.
707
+ if tpu_name.startswith('tpu-v6e'):
708
+ tpu_price = TPU_V6E_MAX_PRICE
709
709
  return tpu_price
710
710
 
711
711
  df['Price'] = df.apply(lambda row: get_tpu_price(row, spot=False), axis=1)
@@ -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/f3538cd90cfca88c.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/f3538cd90cfca88c.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-830f59b8404e96b8.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-3001e84c61acddfb.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_error-1be831200e60c5c0.js" defer=""></script><script src="/dashboard/_next/static/mS9YfLA5hhsJMeBj9W8J7/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/mS9YfLA5hhsJMeBj9W8J7/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;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":"mS9YfLA5hhsJMeBj9W8J7","assetPrefix":"/dashboard","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
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/f3538cd90cfca88c.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/f3538cd90cfca88c.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-830f59b8404e96b8.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-3001e84c61acddfb.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_error-1be831200e60c5c0.js" defer=""></script><script src="/dashboard/_next/static/68UjuSjrx8JvfzxUuf1-w/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/68UjuSjrx8JvfzxUuf1-w/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;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":"68UjuSjrx8JvfzxUuf1-w","assetPrefix":"/dashboard","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/f3538cd90cfca88c.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/f3538cd90cfca88c.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-830f59b8404e96b8.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-3001e84c61acddfb.js" defer=""></script><script src="/dashboard/_next/static/chunks/678-206dddca808e6d16.js" defer=""></script><script src="/dashboard/_next/static/chunks/979-7cd0778078b9cfad.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters/%5Bcluster%5D/%5Bjob%5D-b09f7fbf6d5d74f6.js" defer=""></script><script src="/dashboard/_next/static/mS9YfLA5hhsJMeBj9W8J7/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/mS9YfLA5hhsJMeBj9W8J7/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div>Loading...</div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters/[cluster]/[job]","query":{},"buildId":"mS9YfLA5hhsJMeBj9W8J7","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/f3538cd90cfca88c.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/f3538cd90cfca88c.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-830f59b8404e96b8.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-3001e84c61acddfb.js" defer=""></script><script src="/dashboard/_next/static/chunks/678-206dddca808e6d16.js" defer=""></script><script src="/dashboard/_next/static/chunks/979-7cd0778078b9cfad.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters/%5Bcluster%5D/%5Bjob%5D-b09f7fbf6d5d74f6.js" defer=""></script><script src="/dashboard/_next/static/68UjuSjrx8JvfzxUuf1-w/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/68UjuSjrx8JvfzxUuf1-w/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div>Loading...</div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters/[cluster]/[job]","query":{},"buildId":"68UjuSjrx8JvfzxUuf1-w","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/f3538cd90cfca88c.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/f3538cd90cfca88c.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-830f59b8404e96b8.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-3001e84c61acddfb.js" defer=""></script><script src="/dashboard/_next/static/chunks/678-206dddca808e6d16.js" defer=""></script><script src="/dashboard/_next/static/chunks/312-c3c8845990db8ffc.js" defer=""></script><script src="/dashboard/_next/static/chunks/979-7cd0778078b9cfad.js" defer=""></script><script src="/dashboard/_next/static/chunks/845-2ea1cc63ba1f4067.js" defer=""></script><script src="/dashboard/_next/static/chunks/236-d437cf66e68a6f64.js" defer=""></script><script src="/dashboard/_next/static/chunks/37-72fdc8f71d6e4784.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters/%5Bcluster%5D-b57ec043f09c5813.js" defer=""></script><script src="/dashboard/_next/static/mS9YfLA5hhsJMeBj9W8J7/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/mS9YfLA5hhsJMeBj9W8J7/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div>Loading...</div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters/[cluster]","query":{},"buildId":"mS9YfLA5hhsJMeBj9W8J7","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/f3538cd90cfca88c.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/f3538cd90cfca88c.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-830f59b8404e96b8.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-3001e84c61acddfb.js" defer=""></script><script src="/dashboard/_next/static/chunks/678-206dddca808e6d16.js" defer=""></script><script src="/dashboard/_next/static/chunks/312-c3c8845990db8ffc.js" defer=""></script><script src="/dashboard/_next/static/chunks/979-7cd0778078b9cfad.js" defer=""></script><script src="/dashboard/_next/static/chunks/845-2ea1cc63ba1f4067.js" defer=""></script><script src="/dashboard/_next/static/chunks/236-d437cf66e68a6f64.js" defer=""></script><script src="/dashboard/_next/static/chunks/37-72fdc8f71d6e4784.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters/%5Bcluster%5D-b57ec043f09c5813.js" defer=""></script><script src="/dashboard/_next/static/68UjuSjrx8JvfzxUuf1-w/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/68UjuSjrx8JvfzxUuf1-w/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div>Loading...</div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters/[cluster]","query":{},"buildId":"68UjuSjrx8JvfzxUuf1-w","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><link rel="preload" href="/dashboard/skypilot.svg" as="image" fetchpriority="high"/><meta name="next-head-count" content="3"/><link rel="preload" href="/dashboard/_next/static/css/f3538cd90cfca88c.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/f3538cd90cfca88c.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-830f59b8404e96b8.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-3001e84c61acddfb.js" defer=""></script><script src="/dashboard/_next/static/chunks/678-206dddca808e6d16.js" defer=""></script><script src="/dashboard/_next/static/chunks/312-c3c8845990db8ffc.js" defer=""></script><script src="/dashboard/_next/static/chunks/979-7cd0778078b9cfad.js" defer=""></script><script src="/dashboard/_next/static/chunks/845-2ea1cc63ba1f4067.js" defer=""></script><script src="/dashboard/_next/static/chunks/37-72fdc8f71d6e4784.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters-a93b93e10b8b074e.js" defer=""></script><script src="/dashboard/_next/static/mS9YfLA5hhsJMeBj9W8J7/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/mS9YfLA5hhsJMeBj9W8J7/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div class="min-h-screen bg-gray-50"><div class="fixed top-0 left-0 right-0 z-50 shadow-sm"><div class="fixed top-0 left-0 right-0 bg-white z-30 h-14 px-4 border-b border-gray-200 shadow-sm"><div class="flex items-center h-full"><div class="flex items-center space-x-4 mr-6"><a class="flex items-center px-1 pt-1 h-full" href="/dashboard"><img alt="SkyPilot Logo" fetchpriority="high" width="80" height="80" decoding="async" data-nimg="1" class="h-12 w-12" style="color:transparent;width:80px;height:80px" src="/dashboard/skypilot.svg"/></a></div><div class="hidden md:flex items-center space-x-6 mr-6"><a class="inline-flex items-center space-x-2 px-1 pt-1 border-b-2 border-transparent text-blue-600" href="/dashboard/clusters"><svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="20" height="8" x="2" y="2" rx="2" ry="2"></rect><rect width="20" height="8" x="2" y="14" rx="2" ry="2"></rect><line x1="6" x2="6.01" y1="6" y2="6"></line><line x1="6" x2="6.01" y1="18" y2="18"></line></svg><span>Clusters</span></a><a class="inline-flex items-center space-x-2 px-1 pt-1 border-b-2 border-transparent hover:text-blue-600 hover:border-blue-600" href="/dashboard/jobs"><svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16"></path><rect width="20" height="14" x="2" y="6" rx="2"></rect></svg><span>Jobs</span></a><div class="inline-flex items-center space-x-2 px-1 pt-1 text-gray-400"><svg class="w-4 h-4" viewBox="0 0 423.683 423.683" width="24" height="24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"><g><path d="M54.376,287.577h310.459c26.48,0,48.02-13.979,48.02-40.453c0-17.916-10.001-34.07-25.559-42.292 c-19.021-72.951-86.061-125.196-162.002-125.223v-3.431h-3.854V61.814h3.854v-9.569h-31.38v9.569h3.854v14.363h-3.854v3.431 c-75.941,0.026-142.97,52.272-161.988,125.217c-15.56,8.216-25.573,24.376-25.573,42.291 C6.36,273.597,27.896,287.577,54.376,287.577z M47.676,227.145l7.214-2.424l1.617-7.447 c13.884-64.232,71.707-110.862,137.467-110.862h31.274c65.763,0,123.582,46.63,137.473,110.862l1.607,7.447l7.223,2.424 c8.678,2.92,14.506,10.946,14.506,19.979c0,11.703-9.517,13.647-21.221,13.647H54.376c-11.7,0-21.22-1.944-21.22-13.647 C33.162,238.091,38.984,230.065,47.676,227.145z M423.683,334.602v36.836H0v-36.836h25.348v-18.418h372.99v18.418H423.683z"></path></g></g></svg><span>Services</span><span class="text-xs ml-2 px-1.5 py-0.5 bg-gray-100 text-gray-500 rounded">Soon</span></div></div><div class="hidden md:flex items-center space-x-2 ml-auto"><div class="flex items-center space-x-1"><a href="https://skypilot.readthedocs.io/en/latest/" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-3 py-1 text-gray-600 hover:text-blue-600 transition-colors duration-150 cursor-pointer" title="Docs"><span class="mr-1">Docs</span><svg class="w-3.5 h-3.5" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line></svg></a><div class="border-l border-gray-200 h-6 mx-1"></div><a href="https://github.com/skypilot-org/skypilot" target="_blank" rel="noopener noreferrer" class="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"><span class="flex items-center justify-center"><svg class="w-5 h-5" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><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"></path></svg></span></a><a href="https://slack.skypilot.co/" target="_blank" rel="noopener noreferrer" class="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"><span class="flex items-center justify-center"><svg class="w-5 h-5" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><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"></path></svg></span></a><a href="https://github.com/skypilot-org/skypilot/issues/new?assignees=&amp;labels=type%3A+enhancement&amp;title=" target="_blank" rel="noopener noreferrer" class="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"><span class="flex items-center justify-center"><svg class="w-5 h-5" stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><g><path fill="none" d="M0 0h24v24H0z"></path><path d="M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM4 18.385L5.763 17H20V5H4v13.385zM11 13h2v2h-2v-2zm0-6h2v5h-2V7z"></path></g></svg></span></a></div></div></div></div></div><div class="transition-all duration-200 ease-in-out min-h-screen" style="padding-top:56px"><main class="p-6"><div class="flex items-center justify-between mb-4 h-5"><div class="text-base"><a class="text-sky-blue leading-none" href="/dashboard/clusters">Sky Clusters</a></div><div class="flex items-center"><button class="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 hover:bg-accent h-10 px-4 py-2 text-sky-blue hover:text-sky-blue-bright flex items-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-rotate-cw h-4 w-4 mr-1.5"><path d="M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8"></path><path d="M21 3v5h-5"></path></svg><span>Refresh</span></button></div></div><div><div class="rounded-lg border bg-card text-card-foreground shadow-sm"><div class="relative w-full overflow-auto"><table class="w-full caption-bottom text-base"><thead class="[&amp;_tr]:border-b"><tr class="border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted"><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&amp;:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Status</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&amp;:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Cluster</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&amp;:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">User</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&amp;:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Resources</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&amp;:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Region</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&amp;:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Started</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&amp;:has([role=checkbox])]:pr-0">Actions</th></tr></thead><tbody class="[&amp;_tr:last-child]:border-0"><tr class="border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted"><td class="p-4 align-middle [&amp;:has([role=checkbox])]:pr-0 text-center py-6 text-gray-500" colSpan="8">No active clusters</td></tr></tbody></table></div></div></div></main></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters","query":{},"buildId":"mS9YfLA5hhsJMeBj9W8J7","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><link rel="preload" href="/dashboard/skypilot.svg" as="image" fetchpriority="high"/><meta name="next-head-count" content="3"/><link rel="preload" href="/dashboard/_next/static/css/f3538cd90cfca88c.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/f3538cd90cfca88c.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-830f59b8404e96b8.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-3001e84c61acddfb.js" defer=""></script><script src="/dashboard/_next/static/chunks/678-206dddca808e6d16.js" defer=""></script><script src="/dashboard/_next/static/chunks/312-c3c8845990db8ffc.js" defer=""></script><script src="/dashboard/_next/static/chunks/979-7cd0778078b9cfad.js" defer=""></script><script src="/dashboard/_next/static/chunks/845-2ea1cc63ba1f4067.js" defer=""></script><script src="/dashboard/_next/static/chunks/37-72fdc8f71d6e4784.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters-a93b93e10b8b074e.js" defer=""></script><script src="/dashboard/_next/static/68UjuSjrx8JvfzxUuf1-w/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/68UjuSjrx8JvfzxUuf1-w/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div class="min-h-screen bg-gray-50"><div class="fixed top-0 left-0 right-0 z-50 shadow-sm"><div class="fixed top-0 left-0 right-0 bg-white z-30 h-14 px-4 border-b border-gray-200 shadow-sm"><div class="flex items-center h-full"><div class="flex items-center space-x-4 mr-6"><a class="flex items-center px-1 pt-1 h-full" href="/dashboard"><img alt="SkyPilot Logo" fetchpriority="high" width="80" height="80" decoding="async" data-nimg="1" class="h-12 w-12" style="color:transparent;width:80px;height:80px" src="/dashboard/skypilot.svg"/></a></div><div class="hidden md:flex items-center space-x-6 mr-6"><a class="inline-flex items-center space-x-2 px-1 pt-1 border-b-2 border-transparent text-blue-600" href="/dashboard/clusters"><svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="20" height="8" x="2" y="2" rx="2" ry="2"></rect><rect width="20" height="8" x="2" y="14" rx="2" ry="2"></rect><line x1="6" x2="6.01" y1="6" y2="6"></line><line x1="6" x2="6.01" y1="18" y2="18"></line></svg><span>Clusters</span></a><a class="inline-flex items-center space-x-2 px-1 pt-1 border-b-2 border-transparent hover:text-blue-600 hover:border-blue-600" href="/dashboard/jobs"><svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16"></path><rect width="20" height="14" x="2" y="6" rx="2"></rect></svg><span>Jobs</span></a><div class="inline-flex items-center space-x-2 px-1 pt-1 text-gray-400"><svg class="w-4 h-4" viewBox="0 0 423.683 423.683" width="24" height="24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"><g><path d="M54.376,287.577h310.459c26.48,0,48.02-13.979,48.02-40.453c0-17.916-10.001-34.07-25.559-42.292 c-19.021-72.951-86.061-125.196-162.002-125.223v-3.431h-3.854V61.814h3.854v-9.569h-31.38v9.569h3.854v14.363h-3.854v3.431 c-75.941,0.026-142.97,52.272-161.988,125.217c-15.56,8.216-25.573,24.376-25.573,42.291 C6.36,273.597,27.896,287.577,54.376,287.577z M47.676,227.145l7.214-2.424l1.617-7.447 c13.884-64.232,71.707-110.862,137.467-110.862h31.274c65.763,0,123.582,46.63,137.473,110.862l1.607,7.447l7.223,2.424 c8.678,2.92,14.506,10.946,14.506,19.979c0,11.703-9.517,13.647-21.221,13.647H54.376c-11.7,0-21.22-1.944-21.22-13.647 C33.162,238.091,38.984,230.065,47.676,227.145z M423.683,334.602v36.836H0v-36.836h25.348v-18.418h372.99v18.418H423.683z"></path></g></g></svg><span>Services</span><span class="text-xs ml-2 px-1.5 py-0.5 bg-gray-100 text-gray-500 rounded">Soon</span></div></div><div class="hidden md:flex items-center space-x-2 ml-auto"><div class="flex items-center space-x-1"><a href="https://skypilot.readthedocs.io/en/latest/" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-3 py-1 text-gray-600 hover:text-blue-600 transition-colors duration-150 cursor-pointer" title="Docs"><span class="mr-1">Docs</span><svg class="w-3.5 h-3.5" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line></svg></a><div class="border-l border-gray-200 h-6 mx-1"></div><a href="https://github.com/skypilot-org/skypilot" target="_blank" rel="noopener noreferrer" class="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"><span class="flex items-center justify-center"><svg class="w-5 h-5" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><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"></path></svg></span></a><a href="https://slack.skypilot.co/" target="_blank" rel="noopener noreferrer" class="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"><span class="flex items-center justify-center"><svg class="w-5 h-5" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><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"></path></svg></span></a><a href="https://github.com/skypilot-org/skypilot/issues/new?assignees=&amp;labels=type%3A+enhancement&amp;title=" target="_blank" rel="noopener noreferrer" class="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"><span class="flex items-center justify-center"><svg class="w-5 h-5" stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><g><path fill="none" d="M0 0h24v24H0z"></path><path d="M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM4 18.385L5.763 17H20V5H4v13.385zM11 13h2v2h-2v-2zm0-6h2v5h-2V7z"></path></g></svg></span></a></div></div></div></div></div><div class="transition-all duration-200 ease-in-out min-h-screen" style="padding-top:56px"><main class="p-6"><div class="flex items-center justify-between mb-4 h-5"><div class="text-base"><a class="text-sky-blue leading-none" href="/dashboard/clusters">Sky Clusters</a></div><div class="flex items-center"><button class="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 hover:bg-accent h-10 px-4 py-2 text-sky-blue hover:text-sky-blue-bright flex items-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-rotate-cw h-4 w-4 mr-1.5"><path d="M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8"></path><path d="M21 3v5h-5"></path></svg><span>Refresh</span></button></div></div><div><div class="rounded-lg border bg-card text-card-foreground shadow-sm"><div class="relative w-full overflow-auto"><table class="w-full caption-bottom text-base"><thead class="[&amp;_tr]:border-b"><tr class="border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted"><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&amp;:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Status</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&amp;:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Cluster</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&amp;:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">User</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&amp;:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Resources</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&amp;:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Region</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&amp;:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Started</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&amp;:has([role=checkbox])]:pr-0">Actions</th></tr></thead><tbody class="[&amp;_tr:last-child]:border-0"><tr class="border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted"><td class="p-4 align-middle [&amp;:has([role=checkbox])]:pr-0 text-center py-6 text-gray-500" colSpan="8">No active clusters</td></tr></tbody></table></div></div></div></main></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters","query":{},"buildId":"68UjuSjrx8JvfzxUuf1-w","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/f3538cd90cfca88c.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/f3538cd90cfca88c.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-830f59b8404e96b8.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-3001e84c61acddfb.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/index-f9f039532ca8cbc4.js" defer=""></script><script src="/dashboard/_next/static/mS9YfLA5hhsJMeBj9W8J7/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/mS9YfLA5hhsJMeBj9W8J7/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/","query":{},"buildId":"mS9YfLA5hhsJMeBj9W8J7","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/f3538cd90cfca88c.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/f3538cd90cfca88c.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-830f59b8404e96b8.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-3001e84c61acddfb.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/index-f9f039532ca8cbc4.js" defer=""></script><script src="/dashboard/_next/static/68UjuSjrx8JvfzxUuf1-w/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/68UjuSjrx8JvfzxUuf1-w/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/","query":{},"buildId":"68UjuSjrx8JvfzxUuf1-w","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/f3538cd90cfca88c.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/f3538cd90cfca88c.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-830f59b8404e96b8.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-3001e84c61acddfb.js" defer=""></script><script src="/dashboard/_next/static/chunks/678-206dddca808e6d16.js" defer=""></script><script src="/dashboard/_next/static/chunks/979-7cd0778078b9cfad.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/jobs/%5Bjob%5D-ef2e0e91a9222cac.js" defer=""></script><script src="/dashboard/_next/static/mS9YfLA5hhsJMeBj9W8J7/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/mS9YfLA5hhsJMeBj9W8J7/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div>Loading...</div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/jobs/[job]","query":{},"buildId":"mS9YfLA5hhsJMeBj9W8J7","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/f3538cd90cfca88c.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/f3538cd90cfca88c.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-830f59b8404e96b8.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-3001e84c61acddfb.js" defer=""></script><script src="/dashboard/_next/static/chunks/678-206dddca808e6d16.js" defer=""></script><script src="/dashboard/_next/static/chunks/979-7cd0778078b9cfad.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/jobs/%5Bjob%5D-ef2e0e91a9222cac.js" defer=""></script><script src="/dashboard/_next/static/68UjuSjrx8JvfzxUuf1-w/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/68UjuSjrx8JvfzxUuf1-w/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div>Loading...</div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/jobs/[job]","query":{},"buildId":"68UjuSjrx8JvfzxUuf1-w","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><link rel="preload" href="/dashboard/skypilot.svg" as="image" fetchpriority="high"/><meta name="next-head-count" content="3"/><link rel="preload" href="/dashboard/_next/static/css/f3538cd90cfca88c.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/f3538cd90cfca88c.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-830f59b8404e96b8.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-3001e84c61acddfb.js" defer=""></script><script src="/dashboard/_next/static/chunks/678-206dddca808e6d16.js" defer=""></script><script src="/dashboard/_next/static/chunks/312-c3c8845990db8ffc.js" defer=""></script><script src="/dashboard/_next/static/chunks/979-7cd0778078b9cfad.js" defer=""></script><script src="/dashboard/_next/static/chunks/845-2ea1cc63ba1f4067.js" defer=""></script><script src="/dashboard/_next/static/chunks/236-d437cf66e68a6f64.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/jobs-a75029b67aab6a2e.js" defer=""></script><script src="/dashboard/_next/static/mS9YfLA5hhsJMeBj9W8J7/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/mS9YfLA5hhsJMeBj9W8J7/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div class="min-h-screen bg-gray-50"><div class="fixed top-0 left-0 right-0 z-50 shadow-sm"><div class="fixed top-0 left-0 right-0 bg-white z-30 h-14 px-4 border-b border-gray-200 shadow-sm"><div class="flex items-center h-full"><div class="flex items-center space-x-4 mr-6"><a class="flex items-center px-1 pt-1 h-full" href="/dashboard"><img alt="SkyPilot Logo" fetchpriority="high" width="80" height="80" decoding="async" data-nimg="1" class="h-12 w-12" style="color:transparent;width:80px;height:80px" src="/dashboard/skypilot.svg"/></a></div><div class="hidden md:flex items-center space-x-6 mr-6"><a class="inline-flex items-center space-x-2 px-1 pt-1 border-b-2 border-transparent hover:text-blue-600 hover:border-blue-600" href="/dashboard/clusters"><svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="20" height="8" x="2" y="2" rx="2" ry="2"></rect><rect width="20" height="8" x="2" y="14" rx="2" ry="2"></rect><line x1="6" x2="6.01" y1="6" y2="6"></line><line x1="6" x2="6.01" y1="18" y2="18"></line></svg><span>Clusters</span></a><a class="inline-flex items-center space-x-2 px-1 pt-1 border-b-2 border-transparent text-blue-600" href="/dashboard/jobs"><svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16"></path><rect width="20" height="14" x="2" y="6" rx="2"></rect></svg><span>Jobs</span></a><div class="inline-flex items-center space-x-2 px-1 pt-1 text-gray-400"><svg class="w-4 h-4" viewBox="0 0 423.683 423.683" width="24" height="24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"><g><path d="M54.376,287.577h310.459c26.48,0,48.02-13.979,48.02-40.453c0-17.916-10.001-34.07-25.559-42.292 c-19.021-72.951-86.061-125.196-162.002-125.223v-3.431h-3.854V61.814h3.854v-9.569h-31.38v9.569h3.854v14.363h-3.854v3.431 c-75.941,0.026-142.97,52.272-161.988,125.217c-15.56,8.216-25.573,24.376-25.573,42.291 C6.36,273.597,27.896,287.577,54.376,287.577z M47.676,227.145l7.214-2.424l1.617-7.447 c13.884-64.232,71.707-110.862,137.467-110.862h31.274c65.763,0,123.582,46.63,137.473,110.862l1.607,7.447l7.223,2.424 c8.678,2.92,14.506,10.946,14.506,19.979c0,11.703-9.517,13.647-21.221,13.647H54.376c-11.7,0-21.22-1.944-21.22-13.647 C33.162,238.091,38.984,230.065,47.676,227.145z M423.683,334.602v36.836H0v-36.836h25.348v-18.418h372.99v18.418H423.683z"></path></g></g></svg><span>Services</span><span class="text-xs ml-2 px-1.5 py-0.5 bg-gray-100 text-gray-500 rounded">Soon</span></div></div><div class="hidden md:flex items-center space-x-2 ml-auto"><div class="flex items-center space-x-1"><a href="https://skypilot.readthedocs.io/en/latest/" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-3 py-1 text-gray-600 hover:text-blue-600 transition-colors duration-150 cursor-pointer" title="Docs"><span class="mr-1">Docs</span><svg class="w-3.5 h-3.5" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line></svg></a><div class="border-l border-gray-200 h-6 mx-1"></div><a href="https://github.com/skypilot-org/skypilot" target="_blank" rel="noopener noreferrer" class="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"><span class="flex items-center justify-center"><svg class="w-5 h-5" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><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"></path></svg></span></a><a href="https://slack.skypilot.co/" target="_blank" rel="noopener noreferrer" class="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"><span class="flex items-center justify-center"><svg class="w-5 h-5" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><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"></path></svg></span></a><a href="https://github.com/skypilot-org/skypilot/issues/new?assignees=&amp;labels=type%3A+enhancement&amp;title=" target="_blank" rel="noopener noreferrer" class="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"><span class="flex items-center justify-center"><svg class="w-5 h-5" stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><g><path fill="none" d="M0 0h24v24H0z"></path><path d="M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM4 18.385L5.763 17H20V5H4v13.385zM11 13h2v2h-2v-2zm0-6h2v5h-2V7z"></path></g></svg></span></a></div></div></div></div></div><div class="transition-all duration-200 ease-in-out min-h-screen" style="padding-top:56px"><main class="p-6"><div class="flex items-center justify-between mb-4 h-5"><div class="text-base"><a class="text-sky-blue hover:underline leading-none" href="/dashboard/jobs">Managed Jobs</a></div><div class="flex items-center space-x-2"><button class="inline-flex items-center justify-center whitespace-nowrap 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 hover:bg-accent h-9 rounded-md px-3 text-sky-blue hover:text-sky-blue-bright" title="Refresh"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-rotate-cw h-4 w-4 mr-1.5"><path d="M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8"></path><path d="M21 3v5h-5"></path></svg><span>Refresh</span></button></div></div><div class="relative"><div class="flex flex-col space-y-1 mb-1"><div class="flex flex-wrap items-center text-sm mb-1"><span class="mr-2 text-sm font-medium">Statuses:</span><div class="flex flex-wrap gap-2 items-center"></div></div></div><div class="rounded-lg border bg-card text-card-foreground shadow-sm"><div class="relative w-full overflow-auto"><table class="w-full caption-bottom text-base"><thead class="[&amp;_tr]:border-b"><tr class="border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted"><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&amp;:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">ID</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&amp;:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Name</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&amp;:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">User</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&amp;:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Submitted</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&amp;:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Duration</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&amp;:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Status</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&amp;:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Resources</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&amp;:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Cluster</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&amp;:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Region</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&amp;:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Recoveries</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&amp;:has([role=checkbox])]:pr-0">Details</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&amp;:has([role=checkbox])]:pr-0">Logs</th></tr></thead><tbody class="[&amp;_tr:last-child]:border-0"><tr class="border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted"><td class="p-4 align-middle [&amp;:has([role=checkbox])]:pr-0 text-center py-6" colSpan="12"><div class="flex flex-col items-center space-y-4"><p class="text-gray-500">No active jobs</p></div></td></tr></tbody></table></div></div></div></main></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/jobs","query":{},"buildId":"mS9YfLA5hhsJMeBj9W8J7","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><link rel="preload" href="/dashboard/skypilot.svg" as="image" fetchpriority="high"/><meta name="next-head-count" content="3"/><link rel="preload" href="/dashboard/_next/static/css/f3538cd90cfca88c.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/f3538cd90cfca88c.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-830f59b8404e96b8.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-3001e84c61acddfb.js" defer=""></script><script src="/dashboard/_next/static/chunks/678-206dddca808e6d16.js" defer=""></script><script src="/dashboard/_next/static/chunks/312-c3c8845990db8ffc.js" defer=""></script><script src="/dashboard/_next/static/chunks/979-7cd0778078b9cfad.js" defer=""></script><script src="/dashboard/_next/static/chunks/845-2ea1cc63ba1f4067.js" defer=""></script><script src="/dashboard/_next/static/chunks/236-d437cf66e68a6f64.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/jobs-a75029b67aab6a2e.js" defer=""></script><script src="/dashboard/_next/static/68UjuSjrx8JvfzxUuf1-w/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/68UjuSjrx8JvfzxUuf1-w/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div class="min-h-screen bg-gray-50"><div class="fixed top-0 left-0 right-0 z-50 shadow-sm"><div class="fixed top-0 left-0 right-0 bg-white z-30 h-14 px-4 border-b border-gray-200 shadow-sm"><div class="flex items-center h-full"><div class="flex items-center space-x-4 mr-6"><a class="flex items-center px-1 pt-1 h-full" href="/dashboard"><img alt="SkyPilot Logo" fetchpriority="high" width="80" height="80" decoding="async" data-nimg="1" class="h-12 w-12" style="color:transparent;width:80px;height:80px" src="/dashboard/skypilot.svg"/></a></div><div class="hidden md:flex items-center space-x-6 mr-6"><a class="inline-flex items-center space-x-2 px-1 pt-1 border-b-2 border-transparent hover:text-blue-600 hover:border-blue-600" href="/dashboard/clusters"><svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="20" height="8" x="2" y="2" rx="2" ry="2"></rect><rect width="20" height="8" x="2" y="14" rx="2" ry="2"></rect><line x1="6" x2="6.01" y1="6" y2="6"></line><line x1="6" x2="6.01" y1="18" y2="18"></line></svg><span>Clusters</span></a><a class="inline-flex items-center space-x-2 px-1 pt-1 border-b-2 border-transparent text-blue-600" href="/dashboard/jobs"><svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16"></path><rect width="20" height="14" x="2" y="6" rx="2"></rect></svg><span>Jobs</span></a><div class="inline-flex items-center space-x-2 px-1 pt-1 text-gray-400"><svg class="w-4 h-4" viewBox="0 0 423.683 423.683" width="24" height="24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"><g><path d="M54.376,287.577h310.459c26.48,0,48.02-13.979,48.02-40.453c0-17.916-10.001-34.07-25.559-42.292 c-19.021-72.951-86.061-125.196-162.002-125.223v-3.431h-3.854V61.814h3.854v-9.569h-31.38v9.569h3.854v14.363h-3.854v3.431 c-75.941,0.026-142.97,52.272-161.988,125.217c-15.56,8.216-25.573,24.376-25.573,42.291 C6.36,273.597,27.896,287.577,54.376,287.577z M47.676,227.145l7.214-2.424l1.617-7.447 c13.884-64.232,71.707-110.862,137.467-110.862h31.274c65.763,0,123.582,46.63,137.473,110.862l1.607,7.447l7.223,2.424 c8.678,2.92,14.506,10.946,14.506,19.979c0,11.703-9.517,13.647-21.221,13.647H54.376c-11.7,0-21.22-1.944-21.22-13.647 C33.162,238.091,38.984,230.065,47.676,227.145z M423.683,334.602v36.836H0v-36.836h25.348v-18.418h372.99v18.418H423.683z"></path></g></g></svg><span>Services</span><span class="text-xs ml-2 px-1.5 py-0.5 bg-gray-100 text-gray-500 rounded">Soon</span></div></div><div class="hidden md:flex items-center space-x-2 ml-auto"><div class="flex items-center space-x-1"><a href="https://skypilot.readthedocs.io/en/latest/" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-3 py-1 text-gray-600 hover:text-blue-600 transition-colors duration-150 cursor-pointer" title="Docs"><span class="mr-1">Docs</span><svg class="w-3.5 h-3.5" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line></svg></a><div class="border-l border-gray-200 h-6 mx-1"></div><a href="https://github.com/skypilot-org/skypilot" target="_blank" rel="noopener noreferrer" class="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"><span class="flex items-center justify-center"><svg class="w-5 h-5" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><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"></path></svg></span></a><a href="https://slack.skypilot.co/" target="_blank" rel="noopener noreferrer" class="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"><span class="flex items-center justify-center"><svg class="w-5 h-5" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><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"></path></svg></span></a><a href="https://github.com/skypilot-org/skypilot/issues/new?assignees=&amp;labels=type%3A+enhancement&amp;title=" target="_blank" rel="noopener noreferrer" class="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"><span class="flex items-center justify-center"><svg class="w-5 h-5" stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><g><path fill="none" d="M0 0h24v24H0z"></path><path d="M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM4 18.385L5.763 17H20V5H4v13.385zM11 13h2v2h-2v-2zm0-6h2v5h-2V7z"></path></g></svg></span></a></div></div></div></div></div><div class="transition-all duration-200 ease-in-out min-h-screen" style="padding-top:56px"><main class="p-6"><div class="flex items-center justify-between mb-4 h-5"><div class="text-base"><a class="text-sky-blue hover:underline leading-none" href="/dashboard/jobs">Managed Jobs</a></div><div class="flex items-center space-x-2"><button class="inline-flex items-center justify-center whitespace-nowrap 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 hover:bg-accent h-9 rounded-md px-3 text-sky-blue hover:text-sky-blue-bright" title="Refresh"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-rotate-cw h-4 w-4 mr-1.5"><path d="M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8"></path><path d="M21 3v5h-5"></path></svg><span>Refresh</span></button></div></div><div class="relative"><div class="flex flex-col space-y-1 mb-1"><div class="flex flex-wrap items-center text-sm mb-1"><span class="mr-2 text-sm font-medium">Statuses:</span><div class="flex flex-wrap gap-2 items-center"></div></div></div><div class="rounded-lg border bg-card text-card-foreground shadow-sm"><div class="relative w-full overflow-auto"><table class="w-full caption-bottom text-base"><thead class="[&amp;_tr]:border-b"><tr class="border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted"><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&amp;:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">ID</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&amp;:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Name</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&amp;:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">User</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&amp;:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Submitted</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&amp;:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Duration</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&amp;:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Status</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&amp;:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Resources</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&amp;:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Cluster</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&amp;:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Region</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&amp;:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Recoveries</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&amp;:has([role=checkbox])]:pr-0">Details</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&amp;:has([role=checkbox])]:pr-0">Logs</th></tr></thead><tbody class="[&amp;_tr:last-child]:border-0"><tr class="border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted"><td class="p-4 align-middle [&amp;:has([role=checkbox])]:pr-0 text-center py-6" colSpan="12"><div class="flex flex-col items-center space-y-4"><p class="text-gray-500">No active jobs</p></div></td></tr></tbody></table></div></div></div></main></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/jobs","query":{},"buildId":"68UjuSjrx8JvfzxUuf1-w","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -205,8 +205,11 @@ def get_az_mount_cmd(container_name: str,
205
205
  # blobfuse2 only get the mounted fd.
206
206
  # 2. {} is the mount point placeholder that will be replaced with the
207
207
  # mounted fd by fusermount-wrapper.
208
- wrapped = (f'fusermount-wrapper -m {mount_path} {mount_options} '
209
- f'-- {blobfuse2_cmd} -o nonempty {{}}')
208
+ # 3. set --foreground to workaround lock confliction of multiple blobfuse2
209
+ # daemon processes (#5307) and use -d to daemonsize blobfuse2 in
210
+ # fusermount-wrapper.
211
+ wrapped = (f'fusermount-wrapper -d -m {mount_path} {mount_options} '
212
+ f'-- {blobfuse2_cmd} -o nonempty --foreground {{}}')
210
213
  original = f'{blobfuse2_cmd} {mount_options} {mount_path}'
211
214
  # If fusermount-wrapper is available, use it to wrap the blobfuse2 command
212
215
  # to avoid requiring root privilege.
@@ -14,11 +14,19 @@ from sky.utils import common_utils
14
14
  logger = sky_logging.init_logger(__name__)
15
15
 
16
16
  GPU_NAME_MAP = {
17
+ # AMD
18
+ 'MI300X': 'AMD Instinct MI300X OAM',
19
+
20
+ # NVIDIA A-series
17
21
  'A100-80GB': 'NVIDIA A100 80GB PCIe',
18
- 'A100-40GB': 'NVIDIA A100-PCIE-40GB',
19
22
  'A100-80GB-SXM': 'NVIDIA A100-SXM4-80GB',
20
23
  'A30': 'NVIDIA A30',
21
24
  'A40': 'NVIDIA A40',
25
+
26
+ # NVIDIA B-series
27
+ 'B200': 'NVIDIA B200',
28
+
29
+ # GeForce
22
30
  'RTX3070': 'NVIDIA GeForce RTX 3070',
23
31
  'RTX3080': 'NVIDIA GeForce RTX 3080',
24
32
  'RTX3080Ti': 'NVIDIA GeForce RTX 3080 Ti',
@@ -26,25 +34,43 @@ GPU_NAME_MAP = {
26
34
  'RTX3090Ti': 'NVIDIA GeForce RTX 3090 Ti',
27
35
  'RTX4070Ti': 'NVIDIA GeForce RTX 4070 Ti',
28
36
  'RTX4080': 'NVIDIA GeForce RTX 4080',
37
+ 'RTX4080SUPER': 'NVIDIA GeForce RTX 4080 SUPER',
29
38
  'RTX4090': 'NVIDIA GeForce RTX 4090',
39
+ 'RTX5080': 'NVIDIA GeForce RTX 5080',
40
+ 'RTX5090': 'NVIDIA GeForce RTX 5090',
41
+
42
+ # NVIDIA H100/H200
30
43
  # Following instance is displayed as SXM at the console
31
44
  # but the ID from the API appears as HBM
32
45
  'H100-SXM': 'NVIDIA H100 80GB HBM3',
46
+ 'H100-NVL': 'NVIDIA H100 NVL',
33
47
  'H100': 'NVIDIA H100 PCIe',
48
+ 'H200-SXM': 'NVIDIA H200',
49
+
50
+ # NVIDIA L-series
34
51
  'L4': 'NVIDIA L4',
35
52
  'L40': 'NVIDIA L40',
36
- 'RTX4000-Ada-SFF': 'NVIDIA RTX 4000 SFF Ada Generation',
53
+ 'L40S': 'NVIDIA L40S',
54
+
55
+ # Ada generation (GeForce & RTX A)
56
+ 'RTX2000-Ada': 'NVIDIA RTX 2000 Ada Generation',
37
57
  'RTX4000-Ada': 'NVIDIA RTX 4000 Ada Generation',
58
+ 'RTX4000-Ada-SFF': 'NVIDIA RTX 4000 SFF Ada Generation',
59
+ 'RTX5000-Ada': 'NVIDIA RTX 5000 Ada Generation',
38
60
  'RTX6000-Ada': 'NVIDIA RTX 6000 Ada Generation',
61
+
62
+ # NVIDIA RTX A-series
63
+ 'RTXA2000': 'NVIDIA RTX A2000',
39
64
  'RTXA4000': 'NVIDIA RTX A4000',
40
65
  'RTXA4500': 'NVIDIA RTX A4500',
41
66
  'RTXA5000': 'NVIDIA RTX A5000',
42
67
  'RTXA6000': 'NVIDIA RTX A6000',
43
- 'RTX5000': 'Quadro RTX 5000',
68
+
69
+ # Tesla V100 variants
44
70
  'V100-16GB-FHHL': 'Tesla V100-FHHL-16GB',
45
- 'V100-16GB-SXM2': 'V100-SXM2-16GB',
46
- 'RTXA2000': 'NVIDIA RTX A2000',
47
- 'V100-16GB-PCIe': 'Tesla V100-PCIE-16GB'
71
+ 'V100-16GB-SXM2': 'Tesla V100-SXM2-16GB',
72
+ 'V100-32GB-SXM2': 'Tesla V100-SXM2-32GB',
73
+ 'V100-16GB-PCIe': 'Tesla V100-PCIE-16GB',
48
74
  }
49
75
 
50
76