skypilot-nightly 1.0.0.dev20250422__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.dev20250422/skypilot_nightly.egg-info → skypilot_nightly-1.0.0.dev20250423}/PKG-INFO +1 -1
  2. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/setup.py +1 -0
  3. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/__init__.py +2 -2
  4. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/backends/wheel_utils.py +27 -1
  5. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/404.html +1 -1
  6. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/clusters/[cluster]/[job].html +1 -1
  7. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/clusters/[cluster].html +1 -1
  8. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/clusters.html +1 -1
  9. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/index.html +1 -1
  10. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/jobs/[job].html +1 -1
  11. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/jobs.html +1 -1
  12. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/data/mounting_utils.py +5 -2
  13. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/server/common.py +62 -2
  14. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/server/constants.py +1 -1
  15. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/server/server.py +5 -2
  16. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/setup_files/setup.py +1 -0
  17. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/kubernetes/gpu_labeler.py +2 -1
  18. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423/skypilot_nightly.egg-info}/PKG-INFO +1 -1
  19. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/skypilot_nightly.egg-info/SOURCES.txt +2 -2
  20. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/LICENSE +0 -0
  21. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/MANIFEST.in +0 -0
  22. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/README.md +0 -0
  23. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/pyproject.toml +0 -0
  24. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/setup.cfg +0 -0
  25. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/adaptors/__init__.py +0 -0
  26. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/adaptors/aws.py +0 -0
  27. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/adaptors/azure.py +0 -0
  28. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/adaptors/cloudflare.py +0 -0
  29. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/adaptors/common.py +0 -0
  30. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/adaptors/cudo.py +0 -0
  31. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/adaptors/do.py +0 -0
  32. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/adaptors/docker.py +0 -0
  33. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/adaptors/gcp.py +0 -0
  34. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/adaptors/ibm.py +0 -0
  35. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/adaptors/kubernetes.py +0 -0
  36. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/adaptors/nebius.py +0 -0
  37. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/adaptors/oci.py +0 -0
  38. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/adaptors/runpod.py +0 -0
  39. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/adaptors/vast.py +0 -0
  40. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/adaptors/vsphere.py +0 -0
  41. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/admin_policy.py +0 -0
  42. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/authentication.py +0 -0
  43. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/backends/__init__.py +0 -0
  44. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/backends/backend.py +0 -0
  45. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/backends/backend_utils.py +0 -0
  46. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/backends/cloud_vm_ray_backend.py +0 -0
  47. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/backends/docker_utils.py +0 -0
  48. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/backends/local_docker_backend.py +0 -0
  49. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/backends/monkey_patches/monkey_patch_ray_up.py +0 -0
  50. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/benchmark/__init__.py +0 -0
  51. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/benchmark/benchmark_state.py +0 -0
  52. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/benchmark/benchmark_utils.py +0 -0
  53. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/check.py +0 -0
  54. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/cli.py +0 -0
  55. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/client/__init__.py +0 -0
  56. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/client/cli.py +0 -0
  57. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/client/common.py +0 -0
  58. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/client/sdk.py +0 -0
  59. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/cloud_stores.py +0 -0
  60. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/__init__.py +0 -0
  61. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/aws.py +0 -0
  62. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/azure.py +0 -0
  63. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/cloud.py +0 -0
  64. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/cudo.py +0 -0
  65. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/do.py +0 -0
  66. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/fluidstack.py +0 -0
  67. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/gcp.py +0 -0
  68. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/ibm.py +0 -0
  69. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/kubernetes.py +0 -0
  70. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/lambda_cloud.py +0 -0
  71. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/nebius.py +0 -0
  72. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/oci.py +0 -0
  73. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/paperspace.py +0 -0
  74. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/runpod.py +0 -0
  75. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/scp.py +0 -0
  76. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/__init__.py +0 -0
  77. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/aws_catalog.py +0 -0
  78. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/azure_catalog.py +0 -0
  79. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/common.py +0 -0
  80. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/config.py +0 -0
  81. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/constants.py +0 -0
  82. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/cudo_catalog.py +0 -0
  83. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/data_fetchers/__init__.py +0 -0
  84. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/data_fetchers/fetch_aws.py +0 -0
  85. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/data_fetchers/fetch_azure.py +0 -0
  86. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/data_fetchers/fetch_cudo.py +0 -0
  87. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/data_fetchers/fetch_fluidstack.py +0 -0
  88. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/data_fetchers/fetch_gcp.py +0 -0
  89. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/data_fetchers/fetch_ibm.py +0 -0
  90. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/data_fetchers/fetch_lambda_cloud.py +0 -0
  91. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/data_fetchers/fetch_vast.py +0 -0
  92. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/data_fetchers/fetch_vsphere.py +0 -0
  93. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/do_catalog.py +0 -0
  94. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/fluidstack_catalog.py +0 -0
  95. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/gcp_catalog.py +0 -0
  96. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/ibm_catalog.py +0 -0
  97. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/kubernetes_catalog.py +0 -0
  98. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/lambda_catalog.py +0 -0
  99. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/nebius_catalog.py +0 -0
  100. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/oci_catalog.py +0 -0
  101. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/paperspace_catalog.py +0 -0
  102. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/runpod_catalog.py +0 -0
  103. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/scp_catalog.py +0 -0
  104. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/vast_catalog.py +0 -0
  105. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/service_catalog/vsphere_catalog.py +0 -0
  106. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/utils/__init__.py +0 -0
  107. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/utils/aws_utils.py +0 -0
  108. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/utils/azure_utils.py +0 -0
  109. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/utils/gcp_utils.py +0 -0
  110. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/utils/oci_utils.py +0 -0
  111. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/utils/scp_utils.py +0 -0
  112. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/vast.py +0 -0
  113. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/clouds/vsphere.py +0 -0
  114. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/core.py +0 -0
  115. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/dag.py +0 -0
  116. {skypilot_nightly-1.0.0.dev20250422/sky/dashboard/out/_next/static/2GsKhI8XKYj9B2969iIDf → skypilot_nightly-1.0.0.dev20250423/sky/dashboard/out/_next/static/68UjuSjrx8JvfzxUuf1-w}/_buildManifest.js +0 -0
  117. {skypilot_nightly-1.0.0.dev20250422/sky/dashboard/out/_next/static/2GsKhI8XKYj9B2969iIDf → skypilot_nightly-1.0.0.dev20250423/sky/dashboard/out/_next/static/68UjuSjrx8JvfzxUuf1-w}/_ssgManifest.js +0 -0
  118. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/_next/static/chunks/236-d437cf66e68a6f64.js +0 -0
  119. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/_next/static/chunks/312-c3c8845990db8ffc.js +0 -0
  120. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/_next/static/chunks/37-72fdc8f71d6e4784.js +0 -0
  121. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/_next/static/chunks/678-206dddca808e6d16.js +0 -0
  122. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/_next/static/chunks/845-2ea1cc63ba1f4067.js +0 -0
  123. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/_next/static/chunks/979-7cd0778078b9cfad.js +0 -0
  124. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/_next/static/chunks/fd9d1056-2821b0f0cabcd8bd.js +0 -0
  125. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/_next/static/chunks/framework-87d061ee6ed71b28.js +0 -0
  126. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/_next/static/chunks/main-app-241eb28595532291.js +0 -0
  127. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/_next/static/chunks/main-e0e2335212e72357.js +0 -0
  128. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/_next/static/chunks/pages/_app-3001e84c61acddfb.js +0 -0
  129. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/_next/static/chunks/pages/_error-1be831200e60c5c0.js +0 -0
  130. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-b09f7fbf6d5d74f6.js +0 -0
  131. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-b57ec043f09c5813.js +0 -0
  132. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/_next/static/chunks/pages/clusters-a93b93e10b8b074e.js +0 -0
  133. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/_next/static/chunks/pages/index-f9f039532ca8cbc4.js +0 -0
  134. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-ef2e0e91a9222cac.js +0 -0
  135. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/_next/static/chunks/pages/jobs-a75029b67aab6a2e.js +0 -0
  136. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js +0 -0
  137. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/_next/static/chunks/webpack-830f59b8404e96b8.js +0 -0
  138. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/_next/static/css/f3538cd90cfca88c.css +0 -0
  139. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/favicon.ico +0 -0
  140. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/skypilot.svg +0 -0
  141. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/dashboard/out/videos/cursor-small.mp4 +0 -0
  142. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/data/__init__.py +0 -0
  143. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/data/data_transfer.py +0 -0
  144. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/data/data_utils.py +0 -0
  145. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/data/storage.py +0 -0
  146. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/data/storage_utils.py +0 -0
  147. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/exceptions.py +0 -0
  148. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/execution.py +0 -0
  149. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/global_user_state.py +0 -0
  150. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/jobs/__init__.py +0 -0
  151. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/jobs/client/__init__.py +0 -0
  152. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/jobs/client/sdk.py +0 -0
  153. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/jobs/constants.py +0 -0
  154. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/jobs/controller.py +0 -0
  155. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/jobs/dashboard/dashboard.py +0 -0
  156. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/jobs/dashboard/static/favicon.ico +0 -0
  157. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/jobs/dashboard/templates/index.html +0 -0
  158. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/jobs/recovery_strategy.py +0 -0
  159. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/jobs/scheduler.py +0 -0
  160. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/jobs/server/__init__.py +0 -0
  161. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/jobs/server/core.py +0 -0
  162. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/jobs/server/dashboard_utils.py +0 -0
  163. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/jobs/server/server.py +0 -0
  164. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/jobs/state.py +0 -0
  165. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/jobs/utils.py +0 -0
  166. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/models.py +0 -0
  167. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/optimizer.py +0 -0
  168. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/__init__.py +0 -0
  169. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/aws/__init__.py +0 -0
  170. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/aws/config.py +0 -0
  171. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/aws/instance.py +0 -0
  172. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/aws/utils.py +0 -0
  173. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/azure/__init__.py +0 -0
  174. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/azure/azure-config-template.json +0 -0
  175. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/azure/config.py +0 -0
  176. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/azure/instance.py +0 -0
  177. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/common.py +0 -0
  178. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/constants.py +0 -0
  179. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/cudo/__init__.py +0 -0
  180. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/cudo/config.py +0 -0
  181. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/cudo/cudo_machine_type.py +0 -0
  182. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/cudo/cudo_utils.py +0 -0
  183. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/cudo/cudo_wrapper.py +0 -0
  184. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/cudo/instance.py +0 -0
  185. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/do/__init__.py +0 -0
  186. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/do/config.py +0 -0
  187. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/do/constants.py +0 -0
  188. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/do/instance.py +0 -0
  189. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/do/utils.py +0 -0
  190. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/docker_utils.py +0 -0
  191. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/fluidstack/__init__.py +0 -0
  192. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/fluidstack/config.py +0 -0
  193. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/fluidstack/fluidstack_utils.py +0 -0
  194. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/fluidstack/instance.py +0 -0
  195. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/gcp/__init__.py +0 -0
  196. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/gcp/config.py +0 -0
  197. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/gcp/constants.py +0 -0
  198. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/gcp/instance.py +0 -0
  199. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/gcp/instance_utils.py +0 -0
  200. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/gcp/mig_utils.py +0 -0
  201. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/instance_setup.py +0 -0
  202. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/kubernetes/__init__.py +0 -0
  203. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/kubernetes/config.py +0 -0
  204. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/kubernetes/constants.py +0 -0
  205. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/kubernetes/instance.py +0 -0
  206. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/kubernetes/manifests/fusermount-server-daemonset.yaml +0 -0
  207. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/kubernetes/network.py +0 -0
  208. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/kubernetes/network_utils.py +0 -0
  209. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/kubernetes/utils.py +0 -0
  210. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/lambda_cloud/__init__.py +0 -0
  211. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/lambda_cloud/config.py +0 -0
  212. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/lambda_cloud/instance.py +0 -0
  213. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/lambda_cloud/lambda_utils.py +0 -0
  214. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/logging.py +0 -0
  215. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/metadata_utils.py +0 -0
  216. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/nebius/__init__.py +0 -0
  217. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/nebius/config.py +0 -0
  218. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/nebius/instance.py +0 -0
  219. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/nebius/utils.py +0 -0
  220. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/oci/__init__.py +0 -0
  221. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/oci/config.py +0 -0
  222. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/oci/instance.py +0 -0
  223. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/oci/query_utils.py +0 -0
  224. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/paperspace/__init__.py +0 -0
  225. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/paperspace/config.py +0 -0
  226. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/paperspace/constants.py +0 -0
  227. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/paperspace/instance.py +0 -0
  228. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/paperspace/utils.py +0 -0
  229. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/provisioner.py +0 -0
  230. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/runpod/__init__.py +0 -0
  231. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/runpod/api/__init__.py +0 -0
  232. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/runpod/api/commands.py +0 -0
  233. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/runpod/api/pods.py +0 -0
  234. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/runpod/config.py +0 -0
  235. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/runpod/instance.py +0 -0
  236. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/runpod/utils.py +0 -0
  237. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/vast/__init__.py +0 -0
  238. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/vast/config.py +0 -0
  239. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/vast/instance.py +0 -0
  240. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/vast/utils.py +0 -0
  241. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/vsphere/__init__.py +0 -0
  242. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/vsphere/common/__init__.py +0 -0
  243. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/vsphere/common/cls_api_client.py +0 -0
  244. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/vsphere/common/cls_api_helper.py +0 -0
  245. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/vsphere/common/custom_script.py +0 -0
  246. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/vsphere/common/id_generator.py +0 -0
  247. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/vsphere/common/metadata_utils.py +0 -0
  248. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/vsphere/common/service_manager.py +0 -0
  249. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/vsphere/common/service_manager_factory.py +0 -0
  250. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/vsphere/common/ssl_helper.py +0 -0
  251. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/vsphere/common/vapiconnect.py +0 -0
  252. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/vsphere/common/vim_utils.py +0 -0
  253. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/vsphere/config.py +0 -0
  254. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/vsphere/instance.py +0 -0
  255. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/provision/vsphere/vsphere_utils.py +0 -0
  256. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/resources.py +0 -0
  257. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/serve/__init__.py +0 -0
  258. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/serve/autoscalers.py +0 -0
  259. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/serve/client/__init__.py +0 -0
  260. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/serve/client/sdk.py +0 -0
  261. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/serve/constants.py +0 -0
  262. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/serve/controller.py +0 -0
  263. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/serve/load_balancer.py +0 -0
  264. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/serve/load_balancing_policies.py +0 -0
  265. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/serve/replica_managers.py +0 -0
  266. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/serve/serve_state.py +0 -0
  267. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/serve/serve_utils.py +0 -0
  268. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/serve/server/__init__.py +0 -0
  269. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/serve/server/core.py +0 -0
  270. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/serve/server/server.py +0 -0
  271. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/serve/service.py +0 -0
  272. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/serve/service_spec.py +0 -0
  273. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/serve/spot_placer.py +0 -0
  274. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/server/__init__.py +0 -0
  275. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/server/html/log.html +0 -0
  276. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/server/requests/__init__.py +0 -0
  277. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/server/requests/event_loop.py +0 -0
  278. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/server/requests/executor.py +0 -0
  279. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/server/requests/payloads.py +0 -0
  280. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/server/requests/preconditions.py +0 -0
  281. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/server/requests/process.py +0 -0
  282. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/server/requests/queues/__init__.py +0 -0
  283. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/server/requests/queues/local_queue.py +0 -0
  284. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/server/requests/queues/mp_queue.py +0 -0
  285. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/server/requests/requests.py +0 -0
  286. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/server/requests/serializers/__init__.py +0 -0
  287. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/server/requests/serializers/decoders.py +0 -0
  288. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/server/requests/serializers/encoders.py +0 -0
  289. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/server/stream_utils.py +0 -0
  290. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/server/uvicorn.py +0 -0
  291. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/setup_files/MANIFEST.in +0 -0
  292. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/setup_files/dependencies.py +0 -0
  293. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/sky_logging.py +0 -0
  294. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/LICENSE +0 -0
  295. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/__init__.py +0 -0
  296. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/attempt_skylet.py +0 -0
  297. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/autostop_lib.py +0 -0
  298. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/configs.py +0 -0
  299. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/constants.py +0 -0
  300. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/events.py +0 -0
  301. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/job_lib.py +0 -0
  302. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/log_lib.py +0 -0
  303. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/log_lib.pyi +0 -0
  304. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/providers/__init__.py +0 -0
  305. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/providers/command_runner.py +0 -0
  306. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/providers/ibm/__init__.py +0 -0
  307. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/providers/ibm/node_provider.py +0 -0
  308. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/providers/ibm/utils.py +0 -0
  309. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/providers/ibm/vpc_provider.py +0 -0
  310. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/providers/scp/__init__.py +0 -0
  311. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/providers/scp/config.py +0 -0
  312. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/providers/scp/node_provider.py +0 -0
  313. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/ray_patches/__init__.py +0 -0
  314. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/ray_patches/autoscaler.py.patch +0 -0
  315. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/ray_patches/cli.py.patch +0 -0
  316. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/ray_patches/command_runner.py.patch +0 -0
  317. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/ray_patches/log_monitor.py.patch +0 -0
  318. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/ray_patches/resource_demand_scheduler.py.patch +0 -0
  319. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/ray_patches/updater.py.patch +0 -0
  320. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/ray_patches/worker.py.patch +0 -0
  321. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/skylet.py +0 -0
  322. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/skylet/subprocess_daemon.py +0 -0
  323. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/skypilot_config.py +0 -0
  324. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/task.py +0 -0
  325. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/aws-ray.yml.j2 +0 -0
  326. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/azure-ray.yml.j2 +0 -0
  327. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/cudo-ray.yml.j2 +0 -0
  328. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/do-ray.yml.j2 +0 -0
  329. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/fluidstack-ray.yml.j2 +0 -0
  330. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/gcp-ray.yml.j2 +0 -0
  331. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/ibm-ray.yml.j2 +0 -0
  332. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/jobs-controller.yaml.j2 +0 -0
  333. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/kubernetes-ingress.yml.j2 +0 -0
  334. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/kubernetes-loadbalancer.yml.j2 +0 -0
  335. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/kubernetes-port-forward-proxy-command.sh +0 -0
  336. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/kubernetes-ray.yml.j2 +0 -0
  337. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/kubernetes-ssh-jump.yml.j2 +0 -0
  338. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/lambda-ray.yml.j2 +0 -0
  339. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/local-ray.yml.j2 +0 -0
  340. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/nebius-ray.yml.j2 +0 -0
  341. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/oci-ray.yml.j2 +0 -0
  342. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/paperspace-ray.yml.j2 +0 -0
  343. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/runpod-ray.yml.j2 +0 -0
  344. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/scp-ray.yml.j2 +0 -0
  345. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/sky-serve-controller.yaml.j2 +0 -0
  346. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/skypilot-server-kubernetes-proxy.sh +0 -0
  347. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/vast-ray.yml.j2 +0 -0
  348. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/vsphere-ray.yml.j2 +0 -0
  349. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/templates/websocket_proxy.py +0 -0
  350. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/usage/__init__.py +0 -0
  351. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/usage/constants.py +0 -0
  352. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/usage/usage_lib.py +0 -0
  353. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/__init__.py +0 -0
  354. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/accelerator_registry.py +0 -0
  355. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/admin_policy_utils.py +0 -0
  356. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/annotations.py +0 -0
  357. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/atomic.py +0 -0
  358. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/cli_utils/__init__.py +0 -0
  359. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/cli_utils/status_utils.py +0 -0
  360. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/cluster_utils.py +0 -0
  361. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/command_runner.py +0 -0
  362. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/command_runner.pyi +0 -0
  363. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/common.py +0 -0
  364. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/common_utils.py +0 -0
  365. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/config_utils.py +0 -0
  366. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/control_master_utils.py +0 -0
  367. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/controller_utils.py +0 -0
  368. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/dag_utils.py +0 -0
  369. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/db_utils.py +0 -0
  370. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/env_options.py +0 -0
  371. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/kubernetes/__init__.py +0 -0
  372. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/kubernetes/create_cluster.sh +0 -0
  373. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/kubernetes/delete_cluster.sh +0 -0
  374. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/kubernetes/deploy_remote_cluster.sh +0 -0
  375. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/kubernetes/exec_kubeconfig_converter.py +0 -0
  376. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/kubernetes/generate_kind_config.py +0 -0
  377. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/kubernetes/generate_kubeconfig.sh +0 -0
  378. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/kubernetes/k8s_gpu_labeler_job.yaml +0 -0
  379. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml +0 -0
  380. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/kubernetes/kubernetes_deploy_utils.py +0 -0
  381. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/kubernetes/rsync_helper.sh +0 -0
  382. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/kubernetes/ssh_jump_lifecycle_manager.py +0 -0
  383. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/kubernetes_enums.py +0 -0
  384. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/log_utils.py +0 -0
  385. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/message_utils.py +0 -0
  386. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/registry.py +0 -0
  387. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/resources_utils.py +0 -0
  388. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/rich_console_utils.py +0 -0
  389. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/rich_utils.py +0 -0
  390. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/schemas.py +0 -0
  391. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/status_lib.py +0 -0
  392. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/subprocess_utils.py +0 -0
  393. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/timeline.py +0 -0
  394. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/ux_utils.py +0 -0
  395. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/sky/utils/validator.py +0 -0
  396. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/skypilot_nightly.egg-info/dependency_links.txt +0 -0
  397. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/skypilot_nightly.egg-info/entry_points.txt +0 -0
  398. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/skypilot_nightly.egg-info/requires.txt +0 -0
  399. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/skypilot_nightly.egg-info/top_level.txt +0 -0
  400. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/tests/test_api.py +0 -0
  401. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/tests/test_cli.py +0 -0
  402. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/tests/test_config.py +0 -0
  403. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/tests/test_failover.py +0 -0
  404. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/tests/test_global_user_state.py +0 -0
  405. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/tests/test_jobs.py +0 -0
  406. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/tests/test_jobs_and_serve.py +0 -0
  407. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/tests/test_list_accelerators.py +0 -0
  408. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/tests/test_optimizer_dryruns.py +0 -0
  409. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/tests/test_optimizer_random_dag.py +0 -0
  410. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/tests/test_serve_autoscaler.py +0 -0
  411. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/tests/test_smoke.py +0 -0
  412. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/tests/test_storage.py +0 -0
  413. {skypilot_nightly-1.0.0.dev20250422 → skypilot_nightly-1.0.0.dev20250423}/tests/test_wheels.py +0 -0
  414. {skypilot_nightly-1.0.0.dev20250422 → 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.dev20250422
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 = '69aebc34b3963a1a8d4026e68b3cffd86347c1e2'
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.dev20250422'
38
+ __version__ = '1.0.0.dev20250423'
39
39
  __root_dir__ = os.path.dirname(os.path.abspath(__file__))
40
40
 
41
41
 
@@ -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
@@ -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/2GsKhI8XKYj9B2969iIDf/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/2GsKhI8XKYj9B2969iIDf/_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":"2GsKhI8XKYj9B2969iIDf","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/2GsKhI8XKYj9B2969iIDf/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/2GsKhI8XKYj9B2969iIDf/_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":"2GsKhI8XKYj9B2969iIDf","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/2GsKhI8XKYj9B2969iIDf/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/2GsKhI8XKYj9B2969iIDf/_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":"2GsKhI8XKYj9B2969iIDf","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/2GsKhI8XKYj9B2969iIDf/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/2GsKhI8XKYj9B2969iIDf/_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":"2GsKhI8XKYj9B2969iIDf","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/2GsKhI8XKYj9B2969iIDf/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/2GsKhI8XKYj9B2969iIDf/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/","query":{},"buildId":"2GsKhI8XKYj9B2969iIDf","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/2GsKhI8XKYj9B2969iIDf/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/2GsKhI8XKYj9B2969iIDf/_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":"2GsKhI8XKYj9B2969iIDf","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/2GsKhI8XKYj9B2969iIDf/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/2GsKhI8XKYj9B2969iIDf/_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":"2GsKhI8XKYj9B2969iIDf","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.
@@ -7,6 +7,7 @@ from http.cookiejar import MozillaCookieJar
7
7
  import json
8
8
  import os
9
9
  import pathlib
10
+ import re
10
11
  import subprocess
11
12
  import sys
12
13
  import time
@@ -64,11 +65,14 @@ _VERSION_INFO = (
64
65
  'client version: v{client_version} (API version: v{client_api_version})\n'
65
66
  'server version: v{server_version} (API version: v{server_api_version})'
66
67
  f'{colorama.Style.RESET_ALL}')
68
+ _LOCAL_API_SERVER_RESTART_HINT = (
69
+ f'{colorama.Fore.YELLOW}Please restart the SkyPilot API server with:\n'
70
+ f'{colorama.Style.BRIGHT}sky api stop; sky api start'
71
+ f'{colorama.Style.RESET_ALL}')
67
72
  _LOCAL_SERVER_VERSION_MISMATCH_WARNING = (
68
73
  f'{colorama.Fore.YELLOW}Client and local API server version mismatch:\n'
69
74
  '{version_info}\n'
70
- f'{colorama.Fore.YELLOW}Please restart the SkyPilot API server with:\n'
71
- 'sky api stop; sky api start'
75
+ f'{_LOCAL_API_SERVER_RESTART_HINT}'
72
76
  f'{colorama.Style.RESET_ALL}')
73
77
  _CLIENT_TOO_OLD_WARNING = (
74
78
  f'{colorama.Fore.YELLOW}Your SkyPilot client is too old:\n'
@@ -83,6 +87,17 @@ _REMOTE_SERVER_TOO_OLD_WARNING = (
83
87
  'remote API server or downgrade your local client with:\n'
84
88
  '{command}\n'
85
89
  f'{colorama.Style.RESET_ALL}')
90
+ _SERVER_INSTALL_VERSION_MISMATCH_WARNING = (
91
+ f'{colorama.Fore.YELLOW}SkyPilot API server version does not match the '
92
+ 'installation on disk:\n'
93
+ f'{colorama.Style.RESET_ALL}'
94
+ f'{colorama.Style.DIM}'
95
+ 'running API server version: {server_version}\n'
96
+ 'installed API server version: {version_on_disk}\n'
97
+ f'{colorama.Style.RESET_ALL}'
98
+ f'{colorama.Fore.YELLOW}This can happen if you upgraded SkyPilot without '
99
+ 'restarting the API server.'
100
+ f'{colorama.Style.RESET_ALL}')
86
101
  # Parse local API version eargly to catch version format errors.
87
102
  _LOCAL_API_VERSION: int = int(server_constants.API_VERSION)
88
103
  # SkyPilot dev version.
@@ -93,6 +108,8 @@ ApiVersion = Optional[str]
93
108
 
94
109
  logger = sky_logging.init_logger(__name__)
95
110
 
111
+ hinted_for_server_install_version_mismatch = False
112
+
96
113
 
97
114
  class ApiServerStatus(enum.Enum):
98
115
  HEALTHY = 'healthy'
@@ -105,6 +122,7 @@ class ApiServerInfo:
105
122
  status: ApiServerStatus
106
123
  api_version: ApiVersion = None
107
124
  version: Optional[str] = None
125
+ version_on_disk: Optional[str] = None
108
126
  commit: Optional[str] = None
109
127
 
110
128
 
@@ -165,10 +183,12 @@ def get_api_server_status(endpoint: Optional[str] = None) -> ApiServerInfo:
165
183
  result = response.json()
166
184
  api_version = result.get('api_version')
167
185
  version = result.get('version')
186
+ version_on_disk = result.get('version_on_disk')
168
187
  commit = result.get('commit')
169
188
  server_info = ApiServerInfo(status=ApiServerStatus.HEALTHY,
170
189
  api_version=api_version,
171
190
  version=version,
191
+ version_on_disk=version_on_disk,
172
192
  commit=commit)
173
193
  if api_version is None or version is None or commit is None:
174
194
  logger.warning(f'API server response missing '
@@ -362,9 +382,34 @@ def check_server_healthy(endpoint: Optional[str] = None,) -> None:
362
382
  with ux_utils.print_exception_no_traceback():
363
383
  raise exceptions.ApiServerConnectionError(endpoint)
364
384
 
385
+ # If the user ran pip upgrade, but the server wasn't restarted, warn them.
386
+ # We check this using the info from /api/health, rather than in the
387
+ # executor, because the executor could be started after the main server
388
+ # process, picking up the new code, even though the main server process is
389
+ # still running the old code.
390
+ # Note that this code is running on the client side, so calling
391
+ # get_skypilot_version_on_disk() from here is not correct.
392
+
393
+ # Only show this hint once per process.
394
+ global hinted_for_server_install_version_mismatch
395
+
396
+ if (api_server_info.version_on_disk is not None and
397
+ api_server_info.version != api_server_info.version_on_disk and
398
+ not hinted_for_server_install_version_mismatch):
399
+
400
+ logger.warning(
401
+ _SERVER_INSTALL_VERSION_MISMATCH_WARNING.format(
402
+ server_version=api_server_info.version,
403
+ version_on_disk=api_server_info.version_on_disk))
404
+ if is_api_server_local():
405
+ logger.warning(_LOCAL_API_SERVER_RESTART_HINT)
406
+
407
+ hinted_for_server_install_version_mismatch = True
408
+
365
409
 
366
410
  def _get_version_info_hint(server_info: ApiServerInfo) -> str:
367
411
  assert server_info.version is not None, 'Server version is None'
412
+ # version_on_disk may be None if the server is older
368
413
  assert server_info.commit is not None, 'Server commit is None'
369
414
  sv = server_info.version
370
415
  cv = sky.__version__
@@ -393,6 +438,21 @@ def _install_server_version_command(server_info: ApiServerInfo) -> str:
393
438
  return f'pip install -U "skypilot=={server_info.version}"'
394
439
 
395
440
 
441
+ # Keep in sync with sky/setup_files/setup.py find_version()
442
+ def get_skypilot_version_on_disk() -> str:
443
+ """Get the version of the SkyPilot code on disk."""
444
+ current_file_path = pathlib.Path(__file__)
445
+ assert str(current_file_path).endswith(
446
+ 'server/common.py'), current_file_path
447
+ sky_root = current_file_path.parent.parent
448
+ with open(sky_root / '__init__.py', 'r', encoding='utf-8') as fp:
449
+ version_match = re.search(r'^__version__ = [\'"]([^\'"]*)[\'"]',
450
+ fp.read(), re.M)
451
+ if version_match:
452
+ return version_match.group(1)
453
+ raise RuntimeError('Unable to find version string.')
454
+
455
+
396
456
  def check_server_healthy_or_start_fn(deploy: bool = False,
397
457
  host: str = '127.0.0.1',
398
458
  foreground: bool = False):
@@ -7,7 +7,7 @@ from sky.skylet import constants
7
7
  # API server version, whenever there is a change in API server that requires a
8
8
  # restart of the local API server or error out when the client does not match
9
9
  # the server version.
10
- API_VERSION = '4'
10
+ API_VERSION = '5'
11
11
 
12
12
  # Prefix for API request names.
13
13
  REQUEST_NAME_PREFIX = 'sky.'
@@ -1015,14 +1015,17 @@ async def health() -> Dict[str, str]:
1015
1015
  A dictionary with the following keys:
1016
1016
  - status: str; The status of the API server.
1017
1017
  - api_version: str; The API version of the API server.
1018
- - commit: str; The commit hash of SkyPilot used for API server.
1019
1018
  - version: str; The version of SkyPilot used for API server.
1019
+ - version_on_disk: str; The version of the SkyPilot installation on
1020
+ disk, which can be used to warn about restarting the API server
1021
+ - commit: str; The commit hash of SkyPilot used for API server.
1020
1022
  """
1021
1023
  return {
1022
1024
  'status': common.ApiServerStatus.HEALTHY.value,
1023
1025
  'api_version': server_constants.API_VERSION,
1024
- 'commit': sky.__commit__,
1025
1026
  'version': sky.__version__,
1027
+ 'version_on_disk': common.get_skypilot_version_on_disk(),
1028
+ 'commit': sky.__commit__,
1026
1029
  }
1027
1030
 
1028
1031
 
@@ -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:
@@ -56,7 +56,8 @@ def label(context: Optional[str] = None, wait_for_completion: bool = True):
56
56
  print(reason)
57
57
  return
58
58
 
59
- unlabeled_gpu_nodes = kubernetes_utils.get_unlabeled_accelerator_nodes()
59
+ unlabeled_gpu_nodes = kubernetes_utils.get_unlabeled_accelerator_nodes(
60
+ context=context)
60
61
 
61
62
  if not unlabeled_gpu_nodes:
62
63
  print('No unlabeled GPU nodes found in the cluster. If you have '
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: skypilot-nightly
3
- Version: 1.0.0.dev20250422
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
@@ -111,8 +111,8 @@ sky/dashboard/out/favicon.ico
111
111
  sky/dashboard/out/index.html
112
112
  sky/dashboard/out/jobs.html
113
113
  sky/dashboard/out/skypilot.svg
114
- sky/dashboard/out/_next/static/2GsKhI8XKYj9B2969iIDf/_buildManifest.js
115
- sky/dashboard/out/_next/static/2GsKhI8XKYj9B2969iIDf/_ssgManifest.js
114
+ sky/dashboard/out/_next/static/68UjuSjrx8JvfzxUuf1-w/_buildManifest.js
115
+ sky/dashboard/out/_next/static/68UjuSjrx8JvfzxUuf1-w/_ssgManifest.js
116
116
  sky/dashboard/out/_next/static/chunks/236-d437cf66e68a6f64.js
117
117
  sky/dashboard/out/_next/static/chunks/312-c3c8845990db8ffc.js
118
118
  sky/dashboard/out/_next/static/chunks/37-72fdc8f71d6e4784.js