skypilot-nightly 1.0.0.dev20251013__tar.gz → 1.0.0.dev20251015__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of skypilot-nightly might be problematic. Click here for more details.

Files changed (612) hide show
  1. {skypilot_nightly-1.0.0.dev20251013/skypilot_nightly.egg-info → skypilot_nightly-1.0.0.dev20251015}/PKG-INFO +35 -34
  2. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/README.md +2 -1
  3. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/__init__.py +2 -2
  4. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/authentication.py +9 -2
  5. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/backends/backend_utils.py +62 -40
  6. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/backends/cloud_vm_ray_backend.py +8 -6
  7. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/catalog/kubernetes_catalog.py +19 -25
  8. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/client/cli/command.py +53 -19
  9. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/client/sdk.py +13 -1
  10. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/404.html +1 -1
  11. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/clusters/[cluster]/[job].html +1 -1
  12. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/clusters/[cluster].html +1 -1
  13. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/clusters.html +1 -1
  14. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/config.html +1 -1
  15. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/index.html +1 -1
  16. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/infra/[context].html +1 -1
  17. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/infra.html +1 -1
  18. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/jobs/[job].html +1 -1
  19. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/jobs/pools/[pool].html +1 -1
  20. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/jobs.html +1 -1
  21. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/users.html +1 -1
  22. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/volumes.html +1 -1
  23. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/workspace/new.html +1 -1
  24. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/workspaces/[name].html +1 -1
  25. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/workspaces.html +1 -1
  26. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/jobs/controller.py +122 -145
  27. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/jobs/recovery_strategy.py +59 -82
  28. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/jobs/scheduler.py +5 -5
  29. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/jobs/state.py +65 -21
  30. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/jobs/utils.py +58 -22
  31. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/metrics/utils.py +27 -6
  32. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/common.py +2 -0
  33. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/instance_setup.py +10 -2
  34. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/kubernetes/instance.py +34 -10
  35. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/kubernetes/utils.py +53 -39
  36. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/server/common.py +4 -2
  37. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/server/requests/executor.py +3 -1
  38. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/server/requests/preconditions.py +2 -4
  39. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/server/requests/requests.py +13 -23
  40. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/server/server.py +5 -0
  41. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/sky_logging.py +0 -2
  42. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/skylet/constants.py +22 -5
  43. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/skylet/log_lib.py +0 -1
  44. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/skylet/log_lib.pyi +1 -1
  45. skypilot_nightly-1.0.0.dev20251015/sky/utils/asyncio_utils.py +18 -0
  46. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/common.py +2 -0
  47. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/context.py +57 -51
  48. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/context_utils.py +2 -2
  49. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/controller_utils.py +35 -8
  50. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/locks.py +20 -5
  51. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/subprocess_utils.py +4 -3
  52. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015/skypilot_nightly.egg-info}/PKG-INFO +35 -34
  53. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/skypilot_nightly.egg-info/SOURCES.txt +4 -2
  54. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/tests/test_cli.py +112 -0
  55. skypilot_nightly-1.0.0.dev20251015/tests/test_infra_k8s_alias.py +97 -0
  56. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/tests/test_jobs_state_async_vs_sync.py +57 -1
  57. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/LICENSE +0 -0
  58. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/MANIFEST.in +0 -0
  59. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/pyproject.toml +0 -0
  60. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/setup.cfg +0 -0
  61. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/setup.py +0 -0
  62. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/adaptors/__init__.py +0 -0
  63. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/adaptors/aws.py +0 -0
  64. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/adaptors/azure.py +0 -0
  65. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/adaptors/cloudflare.py +0 -0
  66. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/adaptors/common.py +0 -0
  67. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/adaptors/cudo.py +0 -0
  68. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/adaptors/do.py +0 -0
  69. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/adaptors/docker.py +0 -0
  70. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/adaptors/gcp.py +0 -0
  71. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/adaptors/hyperbolic.py +0 -0
  72. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/adaptors/ibm.py +0 -0
  73. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/adaptors/kubernetes.py +0 -0
  74. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/adaptors/nebius.py +0 -0
  75. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/adaptors/oci.py +0 -0
  76. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/adaptors/primeintellect.py +0 -0
  77. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/adaptors/runpod.py +0 -0
  78. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/adaptors/seeweb.py +0 -0
  79. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/adaptors/shadeform.py +0 -0
  80. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/adaptors/vast.py +0 -0
  81. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/adaptors/vsphere.py +0 -0
  82. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/admin_policy.py +0 -0
  83. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/backends/__init__.py +0 -0
  84. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/backends/backend.py +0 -0
  85. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/backends/docker_utils.py +0 -0
  86. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/backends/local_docker_backend.py +0 -0
  87. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/backends/monkey_patches/monkey_patch_ray_up.py +0 -0
  88. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/backends/wheel_utils.py +0 -0
  89. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/catalog/__init__.py +0 -0
  90. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/catalog/aws_catalog.py +0 -0
  91. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/catalog/azure_catalog.py +0 -0
  92. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/catalog/common.py +0 -0
  93. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/catalog/config.py +0 -0
  94. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/catalog/cudo_catalog.py +0 -0
  95. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/catalog/data_fetchers/__init__.py +0 -0
  96. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/catalog/data_fetchers/analyze.py +0 -0
  97. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/catalog/data_fetchers/fetch_aws.py +0 -0
  98. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/catalog/data_fetchers/fetch_azure.py +0 -0
  99. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/catalog/data_fetchers/fetch_cudo.py +0 -0
  100. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/catalog/data_fetchers/fetch_fluidstack.py +0 -0
  101. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/catalog/data_fetchers/fetch_gcp.py +0 -0
  102. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/catalog/data_fetchers/fetch_hyperbolic.py +0 -0
  103. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/catalog/data_fetchers/fetch_ibm.py +0 -0
  104. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/catalog/data_fetchers/fetch_lambda_cloud.py +0 -0
  105. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/catalog/data_fetchers/fetch_nebius.py +0 -0
  106. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/catalog/data_fetchers/fetch_seeweb.py +0 -0
  107. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/catalog/data_fetchers/fetch_shadeform.py +0 -0
  108. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/catalog/data_fetchers/fetch_vast.py +0 -0
  109. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/catalog/data_fetchers/fetch_vsphere.py +0 -0
  110. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/catalog/do_catalog.py +0 -0
  111. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/catalog/fluidstack_catalog.py +0 -0
  112. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/catalog/gcp_catalog.py +0 -0
  113. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/catalog/hyperbolic_catalog.py +0 -0
  114. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/catalog/ibm_catalog.py +0 -0
  115. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/catalog/lambda_catalog.py +0 -0
  116. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/catalog/nebius_catalog.py +0 -0
  117. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/catalog/oci_catalog.py +0 -0
  118. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/catalog/paperspace_catalog.py +0 -0
  119. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/catalog/primeintellect_catalog.py +0 -0
  120. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/catalog/runpod_catalog.py +0 -0
  121. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/catalog/scp_catalog.py +0 -0
  122. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/catalog/seeweb_catalog.py +0 -0
  123. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/catalog/shadeform_catalog.py +0 -0
  124. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/catalog/ssh_catalog.py +0 -0
  125. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/catalog/vast_catalog.py +0 -0
  126. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/catalog/vsphere_catalog.py +0 -0
  127. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/check.py +0 -0
  128. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/cli.py +0 -0
  129. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/client/__init__.py +0 -0
  130. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/client/cli/__init__.py +0 -0
  131. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/client/cli/deprecation_utils.py +0 -0
  132. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/client/cli/flags.py +0 -0
  133. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/client/cli/table_utils.py +0 -0
  134. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/client/common.py +0 -0
  135. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/client/oauth.py +0 -0
  136. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/client/sdk_async.py +0 -0
  137. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/client/service_account_auth.py +0 -0
  138. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/cloud_stores.py +0 -0
  139. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/clouds/__init__.py +0 -0
  140. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/clouds/aws.py +0 -0
  141. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/clouds/azure.py +0 -0
  142. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/clouds/cloud.py +0 -0
  143. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/clouds/cudo.py +0 -0
  144. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/clouds/do.py +0 -0
  145. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/clouds/fluidstack.py +0 -0
  146. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/clouds/gcp.py +0 -0
  147. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/clouds/hyperbolic.py +0 -0
  148. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/clouds/ibm.py +0 -0
  149. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/clouds/kubernetes.py +0 -0
  150. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/clouds/lambda_cloud.py +0 -0
  151. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/clouds/nebius.py +0 -0
  152. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/clouds/oci.py +0 -0
  153. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/clouds/paperspace.py +0 -0
  154. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/clouds/primeintellect.py +0 -0
  155. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/clouds/runpod.py +0 -0
  156. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/clouds/scp.py +0 -0
  157. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/clouds/seeweb.py +0 -0
  158. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/clouds/shadeform.py +0 -0
  159. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/clouds/ssh.py +0 -0
  160. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/clouds/utils/__init__.py +0 -0
  161. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/clouds/utils/aws_utils.py +0 -0
  162. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/clouds/utils/azure_utils.py +0 -0
  163. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/clouds/utils/gcp_utils.py +0 -0
  164. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/clouds/utils/oci_utils.py +0 -0
  165. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/clouds/utils/scp_utils.py +0 -0
  166. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/clouds/vast.py +0 -0
  167. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/clouds/vsphere.py +0 -0
  168. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/core.py +0 -0
  169. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dag.py +0 -0
  170. {skypilot_nightly-1.0.0.dev20251013/sky/dashboard/out/_next/static/MtlDUf-nH1hhcy7xwbCj3 → skypilot_nightly-1.0.0.dev20251015/sky/dashboard/out/_next/static/-bih7JVStsXyeasac-dvQ}/_buildManifest.js +0 -0
  171. {skypilot_nightly-1.0.0.dev20251013/sky/dashboard/out/_next/static/MtlDUf-nH1hhcy7xwbCj3 → skypilot_nightly-1.0.0.dev20251015/sky/dashboard/out/_next/static/-bih7JVStsXyeasac-dvQ}/_ssgManifest.js +0 -0
  172. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/1121-d0782b9251f0fcd3.js +0 -0
  173. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/1141-3b40c39626f99c89.js +0 -0
  174. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/1272-1ef0bf0237faccdb.js +0 -0
  175. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/1871-49141c317f3a9020.js +0 -0
  176. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/2350.fab69e61bac57b23.js +0 -0
  177. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/2369.fc20f0c2c8ed9fe7.js +0 -0
  178. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/2755.97300e1362fe7c98.js +0 -0
  179. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/3015-7e0e8f06bb2f881c.js +0 -0
  180. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/3294.1fafbf42b3bcebff.js +0 -0
  181. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/3785.a19328ba41517b8b.js +0 -0
  182. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/3850-ff4a9a69d978632b.js +0 -0
  183. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/3937.210053269f121201.js +0 -0
  184. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/4725.10f7a9a5d3ea8208.js +0 -0
  185. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/4937.a2baa2df5572a276.js +0 -0
  186. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/5739-d67458fcb1386c92.js +0 -0
  187. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/6130-2be46d70a38f1e82.js +0 -0
  188. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/6135-4b4d5e824b7f9d3c.js +0 -0
  189. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/616-3d59f75e2ccf9321.js +0 -0
  190. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/6212-7bd06f60ba693125.js +0 -0
  191. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/6601-06114c982db410b6.js +0 -0
  192. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/6856-5fdc9b851a18acdb.js +0 -0
  193. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/6989-01359c57e018caa4.js +0 -0
  194. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/6990-f6818c84ed8f1c86.js +0 -0
  195. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/7359-c8d04e06886000b3.js +0 -0
  196. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/7411-b15471acd2cba716.js +0 -0
  197. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/8640.5b9475a2d18c5416.js +0 -0
  198. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/8969-66237729cdf9749e.js +0 -0
  199. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/9025.c12318fb6a1a9093.js +0 -0
  200. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/9360.71e83b2ddc844ec2.js +0 -0
  201. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/9847.3aaca6bb33455140.js +0 -0
  202. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/fd9d1056-86323a29a8f7e46a.js +0 -0
  203. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/framework-cf60a09ccd051a10.js +0 -0
  204. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/main-app-587214043926b3cc.js +0 -0
  205. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/main-f15ccb73239a3bf1.js +0 -0
  206. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/pages/_app-ce361c6959bc2001.js +0 -0
  207. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/pages/_error-c66a4e8afc46f17b.js +0 -0
  208. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-8f058b0346db2aff.js +0 -0
  209. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-477555ab7c0b13d8.js +0 -0
  210. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/pages/clusters-2f61f65487f6d8ff.js +0 -0
  211. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/pages/config-dfb9bf07b13045f4.js +0 -0
  212. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/pages/index-444f1804401f04ea.js +0 -0
  213. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/pages/infra/[context]-553b8b5cb65e100b.js +0 -0
  214. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/pages/infra-910a22500c50596f.js +0 -0
  215. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-e5c9ce6a24fc0de4.js +0 -0
  216. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/pages/jobs/pools/[pool]-bc979970c247d8f3.js +0 -0
  217. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/pages/jobs-a35a9dc3c5ccd657.js +0 -0
  218. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/pages/users-98d2ed979084162a.js +0 -0
  219. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/pages/volumes-835d14ba94808f79.js +0 -0
  220. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/pages/workspace/new-3f88a1c7e86a3f86.js +0 -0
  221. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/pages/workspaces/[name]-e8688c35c06f0ac5.js +0 -0
  222. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/pages/workspaces-69c80d677d3c2949.js +0 -0
  223. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js +0 -0
  224. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/chunks/webpack-ac3a34c8f9fef041.js +0 -0
  225. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/_next/static/css/4614e06482d7309e.css +0 -0
  226. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/favicon.ico +0 -0
  227. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/skypilot.svg +0 -0
  228. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/dashboard/out/videos/cursor-small.mp4 +0 -0
  229. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/data/__init__.py +0 -0
  230. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/data/data_transfer.py +0 -0
  231. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/data/data_utils.py +0 -0
  232. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/data/mounting_utils.py +0 -0
  233. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/data/storage.py +0 -0
  234. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/data/storage_utils.py +0 -0
  235. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/exceptions.py +0 -0
  236. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/execution.py +0 -0
  237. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/global_user_state.py +0 -0
  238. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/jobs/__init__.py +0 -0
  239. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/jobs/client/__init__.py +0 -0
  240. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/jobs/client/sdk.py +0 -0
  241. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/jobs/client/sdk_async.py +0 -0
  242. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/jobs/constants.py +0 -0
  243. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/jobs/server/__init__.py +0 -0
  244. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/jobs/server/core.py +0 -0
  245. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/jobs/server/server.py +0 -0
  246. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/jobs/server/utils.py +0 -0
  247. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/logs/__init__.py +0 -0
  248. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/logs/agent.py +0 -0
  249. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/logs/aws.py +0 -0
  250. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/logs/gcp.py +0 -0
  251. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/metrics/__init__.py +0 -0
  252. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/models.py +0 -0
  253. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/optimizer.py +0 -0
  254. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/__init__.py +0 -0
  255. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/aws/__init__.py +0 -0
  256. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/aws/config.py +0 -0
  257. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/aws/instance.py +0 -0
  258. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/aws/utils.py +0 -0
  259. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/azure/__init__.py +0 -0
  260. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/azure/azure-config-template.json +0 -0
  261. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/azure/config.py +0 -0
  262. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/azure/instance.py +0 -0
  263. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/constants.py +0 -0
  264. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/cudo/__init__.py +0 -0
  265. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/cudo/config.py +0 -0
  266. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/cudo/cudo_machine_type.py +0 -0
  267. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/cudo/cudo_utils.py +0 -0
  268. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/cudo/cudo_wrapper.py +0 -0
  269. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/cudo/instance.py +0 -0
  270. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/do/__init__.py +0 -0
  271. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/do/config.py +0 -0
  272. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/do/constants.py +0 -0
  273. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/do/instance.py +0 -0
  274. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/do/utils.py +0 -0
  275. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/docker_utils.py +0 -0
  276. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/fluidstack/__init__.py +0 -0
  277. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/fluidstack/config.py +0 -0
  278. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/fluidstack/fluidstack_utils.py +0 -0
  279. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/fluidstack/instance.py +0 -0
  280. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/gcp/__init__.py +0 -0
  281. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/gcp/config.py +0 -0
  282. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/gcp/constants.py +0 -0
  283. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/gcp/instance.py +0 -0
  284. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/gcp/instance_utils.py +0 -0
  285. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/gcp/mig_utils.py +0 -0
  286. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/gcp/volume_utils.py +0 -0
  287. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/hyperbolic/__init__.py +0 -0
  288. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/hyperbolic/config.py +0 -0
  289. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/hyperbolic/instance.py +0 -0
  290. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/hyperbolic/utils.py +0 -0
  291. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/kubernetes/__init__.py +0 -0
  292. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/kubernetes/config.py +0 -0
  293. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/kubernetes/constants.py +0 -0
  294. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/kubernetes/manifests/fusermount-server-daemonset.yaml +0 -0
  295. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/kubernetes/network.py +0 -0
  296. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/kubernetes/network_utils.py +0 -0
  297. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/kubernetes/volume.py +0 -0
  298. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/lambda_cloud/__init__.py +0 -0
  299. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/lambda_cloud/config.py +0 -0
  300. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/lambda_cloud/instance.py +0 -0
  301. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/lambda_cloud/lambda_utils.py +0 -0
  302. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/logging.py +0 -0
  303. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/metadata_utils.py +0 -0
  304. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/nebius/__init__.py +0 -0
  305. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/nebius/config.py +0 -0
  306. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/nebius/constants.py +0 -0
  307. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/nebius/instance.py +0 -0
  308. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/nebius/utils.py +0 -0
  309. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/oci/__init__.py +0 -0
  310. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/oci/config.py +0 -0
  311. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/oci/instance.py +0 -0
  312. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/oci/query_utils.py +0 -0
  313. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/paperspace/__init__.py +0 -0
  314. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/paperspace/config.py +0 -0
  315. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/paperspace/constants.py +0 -0
  316. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/paperspace/instance.py +0 -0
  317. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/paperspace/utils.py +0 -0
  318. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/primeintellect/__init__.py +0 -0
  319. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/primeintellect/config.py +0 -0
  320. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/primeintellect/instance.py +0 -0
  321. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/primeintellect/utils.py +0 -0
  322. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/provisioner.py +0 -0
  323. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/runpod/__init__.py +0 -0
  324. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/runpod/api/__init__.py +0 -0
  325. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/runpod/api/commands.py +0 -0
  326. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/runpod/api/pods.py +0 -0
  327. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/runpod/config.py +0 -0
  328. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/runpod/instance.py +0 -0
  329. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/runpod/utils.py +0 -0
  330. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/runpod/volume.py +0 -0
  331. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/scp/__init__.py +0 -0
  332. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/scp/config.py +0 -0
  333. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/scp/instance.py +0 -0
  334. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/seeweb/__init__.py +0 -0
  335. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/seeweb/config.py +0 -0
  336. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/seeweb/instance.py +0 -0
  337. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/shadeform/__init__.py +0 -0
  338. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/shadeform/config.py +0 -0
  339. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/shadeform/instance.py +0 -0
  340. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/shadeform/shadeform_utils.py +0 -0
  341. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/ssh/__init__.py +0 -0
  342. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/vast/__init__.py +0 -0
  343. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/vast/config.py +0 -0
  344. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/vast/instance.py +0 -0
  345. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/vast/utils.py +0 -0
  346. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/vsphere/__init__.py +0 -0
  347. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/vsphere/common/__init__.py +0 -0
  348. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/vsphere/common/cls_api_client.py +0 -0
  349. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/vsphere/common/cls_api_helper.py +0 -0
  350. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/vsphere/common/custom_script.py +0 -0
  351. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/vsphere/common/id_generator.py +0 -0
  352. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/vsphere/common/metadata_utils.py +0 -0
  353. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/vsphere/common/service_manager.py +0 -0
  354. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/vsphere/common/service_manager_factory.py +0 -0
  355. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/vsphere/common/ssl_helper.py +0 -0
  356. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/vsphere/common/vapiconnect.py +0 -0
  357. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/vsphere/common/vim_utils.py +0 -0
  358. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/vsphere/config.py +0 -0
  359. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/vsphere/instance.py +0 -0
  360. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/provision/vsphere/vsphere_utils.py +0 -0
  361. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/py.typed +0 -0
  362. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/resources.py +0 -0
  363. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/schemas/__init__.py +0 -0
  364. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/schemas/api/__init__.py +0 -0
  365. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/schemas/api/responses.py +0 -0
  366. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/schemas/db/README +0 -0
  367. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/schemas/db/env.py +0 -0
  368. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/schemas/db/global_user_state/001_initial_schema.py +0 -0
  369. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/schemas/db/global_user_state/002_add_workspace_to_cluster_history.py +0 -0
  370. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/schemas/db/global_user_state/003_fix_initial_revision.py +0 -0
  371. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/schemas/db/global_user_state/004_is_managed.py +0 -0
  372. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/schemas/db/global_user_state/005_cluster_event.py +0 -0
  373. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/schemas/db/global_user_state/006_provision_log.py +0 -0
  374. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/schemas/db/global_user_state/007_cluster_event_request_id.py +0 -0
  375. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/schemas/db/global_user_state/008_skylet_ssh_tunnel_metadata.py +0 -0
  376. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/schemas/db/global_user_state/009_last_activity_and_launched_at.py +0 -0
  377. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/schemas/db/global_user_state/010_save_ssh_key.py +0 -0
  378. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/schemas/db/script.py.mako +0 -0
  379. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/schemas/db/serve_state/001_initial_schema.py +0 -0
  380. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/schemas/db/spot_jobs/001_initial_schema.py +0 -0
  381. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/schemas/db/spot_jobs/002_cluster_pool.py +0 -0
  382. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/schemas/db/spot_jobs/003_pool_hash.py +0 -0
  383. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/schemas/generated/__init__.py +0 -0
  384. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/schemas/generated/autostopv1_pb2.py +0 -0
  385. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/schemas/generated/autostopv1_pb2.pyi +0 -0
  386. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/schemas/generated/autostopv1_pb2_grpc.py +0 -0
  387. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/schemas/generated/jobsv1_pb2.py +0 -0
  388. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/schemas/generated/jobsv1_pb2.pyi +0 -0
  389. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/schemas/generated/jobsv1_pb2_grpc.py +0 -0
  390. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/schemas/generated/managed_jobsv1_pb2.py +0 -0
  391. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/schemas/generated/managed_jobsv1_pb2.pyi +0 -0
  392. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/schemas/generated/managed_jobsv1_pb2_grpc.py +0 -0
  393. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/schemas/generated/servev1_pb2.py +0 -0
  394. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/schemas/generated/servev1_pb2.pyi +0 -0
  395. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/schemas/generated/servev1_pb2_grpc.py +0 -0
  396. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/serve/__init__.py +0 -0
  397. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/serve/autoscalers.py +0 -0
  398. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/serve/client/__init__.py +0 -0
  399. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/serve/client/impl.py +0 -0
  400. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/serve/client/sdk.py +0 -0
  401. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/serve/client/sdk_async.py +0 -0
  402. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/serve/constants.py +0 -0
  403. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/serve/controller.py +0 -0
  404. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/serve/load_balancer.py +0 -0
  405. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/serve/load_balancing_policies.py +0 -0
  406. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/serve/replica_managers.py +0 -0
  407. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/serve/serve_rpc_utils.py +0 -0
  408. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/serve/serve_state.py +0 -0
  409. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/serve/serve_utils.py +0 -0
  410. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/serve/server/__init__.py +0 -0
  411. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/serve/server/core.py +0 -0
  412. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/serve/server/impl.py +0 -0
  413. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/serve/server/server.py +0 -0
  414. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/serve/service.py +0 -0
  415. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/serve/service_spec.py +0 -0
  416. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/serve/spot_placer.py +0 -0
  417. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/server/__init__.py +0 -0
  418. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/server/auth/__init__.py +0 -0
  419. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/server/auth/authn.py +0 -0
  420. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/server/auth/loopback.py +0 -0
  421. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/server/auth/oauth2_proxy.py +0 -0
  422. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/server/config.py +0 -0
  423. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/server/constants.py +0 -0
  424. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/server/daemons.py +0 -0
  425. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/server/html/log.html +0 -0
  426. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/server/html/token_page.html +0 -0
  427. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/server/metrics.py +0 -0
  428. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/server/requests/__init__.py +0 -0
  429. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/server/requests/event_loop.py +0 -0
  430. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/server/requests/payloads.py +0 -0
  431. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/server/requests/process.py +0 -0
  432. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/server/requests/queues/__init__.py +0 -0
  433. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/server/requests/queues/local_queue.py +0 -0
  434. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/server/requests/queues/mp_queue.py +0 -0
  435. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/server/requests/serializers/__init__.py +0 -0
  436. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/server/requests/serializers/decoders.py +0 -0
  437. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/server/requests/serializers/encoders.py +0 -0
  438. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/server/rest.py +0 -0
  439. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/server/state.py +0 -0
  440. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/server/stream_utils.py +0 -0
  441. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/server/uvicorn.py +0 -0
  442. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/server/versions.py +0 -0
  443. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/setup_files/MANIFEST.in +0 -0
  444. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/setup_files/alembic.ini +0 -0
  445. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/setup_files/dependencies.py +0 -0
  446. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/setup_files/setup.py +0 -0
  447. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/skylet/LICENSE +0 -0
  448. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/skylet/__init__.py +0 -0
  449. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/skylet/attempt_skylet.py +0 -0
  450. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/skylet/autostop_lib.py +0 -0
  451. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/skylet/configs.py +0 -0
  452. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/skylet/events.py +0 -0
  453. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/skylet/job_lib.py +0 -0
  454. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/skylet/providers/__init__.py +0 -0
  455. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/skylet/providers/command_runner.py +0 -0
  456. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/skylet/providers/ibm/__init__.py +0 -0
  457. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/skylet/providers/ibm/node_provider.py +0 -0
  458. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/skylet/providers/ibm/utils.py +0 -0
  459. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/skylet/providers/ibm/vpc_provider.py +0 -0
  460. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/skylet/ray_patches/__init__.py +0 -0
  461. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/skylet/ray_patches/autoscaler.py.diff +0 -0
  462. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/skylet/ray_patches/autoscaler.py.patch +0 -0
  463. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/skylet/ray_patches/cli.py.diff +0 -0
  464. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/skylet/ray_patches/cli.py.patch +0 -0
  465. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/skylet/ray_patches/command_runner.py.diff +0 -0
  466. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/skylet/ray_patches/command_runner.py.patch +0 -0
  467. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/skylet/ray_patches/log_monitor.py.diff +0 -0
  468. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/skylet/ray_patches/log_monitor.py.patch +0 -0
  469. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/skylet/ray_patches/resource_demand_scheduler.py.diff +0 -0
  470. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/skylet/ray_patches/resource_demand_scheduler.py.patch +0 -0
  471. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/skylet/ray_patches/updater.py.diff +0 -0
  472. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/skylet/ray_patches/updater.py.patch +0 -0
  473. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/skylet/ray_patches/worker.py.diff +0 -0
  474. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/skylet/ray_patches/worker.py.patch +0 -0
  475. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/skylet/services.py +0 -0
  476. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/skylet/skylet.py +0 -0
  477. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/skylet/subprocess_daemon.py +0 -0
  478. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/skypilot_config.py +0 -0
  479. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/ssh_node_pools/__init__.py +0 -0
  480. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/ssh_node_pools/core.py +0 -0
  481. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/ssh_node_pools/server.py +0 -0
  482. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/task.py +0 -0
  483. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/templates/aws-ray.yml.j2 +0 -0
  484. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/templates/azure-ray.yml.j2 +0 -0
  485. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/templates/cudo-ray.yml.j2 +0 -0
  486. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/templates/do-ray.yml.j2 +0 -0
  487. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/templates/fluidstack-ray.yml.j2 +0 -0
  488. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/templates/gcp-ray.yml.j2 +0 -0
  489. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/templates/hyperbolic-ray.yml.j2 +0 -0
  490. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/templates/ibm-ray.yml.j2 +0 -0
  491. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/templates/jobs-controller.yaml.j2 +0 -0
  492. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/templates/kubernetes-ingress.yml.j2 +0 -0
  493. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/templates/kubernetes-loadbalancer.yml.j2 +0 -0
  494. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/templates/kubernetes-port-forward-proxy-command.sh +0 -0
  495. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/templates/kubernetes-ray.yml.j2 +0 -0
  496. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/templates/lambda-ray.yml.j2 +0 -0
  497. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/templates/local-ray.yml.j2 +0 -0
  498. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/templates/nebius-ray.yml.j2 +0 -0
  499. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/templates/oci-ray.yml.j2 +0 -0
  500. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/templates/paperspace-ray.yml.j2 +0 -0
  501. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/templates/primeintellect-ray.yml.j2 +0 -0
  502. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/templates/runpod-ray.yml.j2 +0 -0
  503. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/templates/scp-ray.yml.j2 +0 -0
  504. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/templates/seeweb-ray.yml.j2 +0 -0
  505. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/templates/shadeform-ray.yml.j2 +0 -0
  506. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/templates/sky-serve-controller.yaml.j2 +0 -0
  507. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/templates/skypilot-server-kubernetes-proxy.sh +0 -0
  508. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/templates/vast-ray.yml.j2 +0 -0
  509. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/templates/vsphere-ray.yml.j2 +0 -0
  510. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/templates/websocket_proxy.py +0 -0
  511. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/usage/__init__.py +0 -0
  512. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/usage/constants.py +0 -0
  513. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/usage/usage_lib.py +0 -0
  514. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/users/__init__.py +0 -0
  515. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/users/model.conf +0 -0
  516. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/users/permission.py +0 -0
  517. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/users/rbac.py +0 -0
  518. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/users/server.py +0 -0
  519. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/users/token_service.py +0 -0
  520. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/__init__.py +0 -0
  521. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/accelerator_registry.py +0 -0
  522. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/admin_policy_utils.py +0 -0
  523. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/annotations.py +0 -0
  524. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/atomic.py +0 -0
  525. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/aws/__init__.py +0 -0
  526. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/aws/get_default_security_group.py +0 -0
  527. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/benchmark_utils.py +0 -0
  528. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/cli_utils/__init__.py +0 -0
  529. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/cli_utils/status_utils.py +0 -0
  530. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/cluster_utils.py +0 -0
  531. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/command_runner.py +0 -0
  532. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/command_runner.pyi +0 -0
  533. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/common_utils.py +0 -0
  534. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/config_utils.py +0 -0
  535. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/control_master_utils.py +0 -0
  536. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/dag_utils.py +0 -0
  537. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/db/__init__.py +0 -0
  538. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/db/db_utils.py +0 -0
  539. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/db/migration_utils.py +0 -0
  540. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/directory_utils.py +0 -0
  541. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/env_options.py +0 -0
  542. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/git.py +0 -0
  543. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/git_clone.sh +0 -0
  544. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/infra_utils.py +0 -0
  545. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/kubernetes/__init__.py +0 -0
  546. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/kubernetes/cleanup-tunnel.sh +0 -0
  547. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/kubernetes/config_map_utils.py +0 -0
  548. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/kubernetes/create_cluster.sh +0 -0
  549. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/kubernetes/delete_cluster.sh +0 -0
  550. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/kubernetes/deploy_remote_cluster.py +0 -0
  551. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/kubernetes/exec_kubeconfig_converter.py +0 -0
  552. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/kubernetes/generate_kind_config.py +0 -0
  553. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/kubernetes/generate_kubeconfig.sh +0 -0
  554. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/kubernetes/gpu_labeler.py +0 -0
  555. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/kubernetes/k8s_gpu_labeler_job.yaml +0 -0
  556. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml +0 -0
  557. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/kubernetes/kubernetes_deploy_utils.py +0 -0
  558. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/kubernetes/rsync_helper.sh +0 -0
  559. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/kubernetes/ssh-tunnel.sh +0 -0
  560. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/kubernetes/ssh_utils.py +0 -0
  561. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/kubernetes_enums.py +0 -0
  562. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/lock_events.py +0 -0
  563. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/log_utils.py +0 -0
  564. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/message_utils.py +0 -0
  565. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/perf_utils.py +0 -0
  566. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/registry.py +0 -0
  567. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/resource_checker.py +0 -0
  568. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/resources_utils.py +0 -0
  569. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/rich_console_utils.py +0 -0
  570. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/rich_utils.py +0 -0
  571. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/schemas.py +0 -0
  572. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/serialize_utils.py +0 -0
  573. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/status_lib.py +0 -0
  574. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/tempstore.py +0 -0
  575. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/timeline.py +0 -0
  576. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/ux_utils.py +0 -0
  577. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/validator.py +0 -0
  578. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/volume.py +0 -0
  579. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/utils/yaml_utils.py +0 -0
  580. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/volumes/__init__.py +0 -0
  581. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/volumes/client/__init__.py +0 -0
  582. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/volumes/client/sdk.py +0 -0
  583. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/volumes/server/__init__.py +0 -0
  584. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/volumes/server/core.py +0 -0
  585. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/volumes/server/server.py +0 -0
  586. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/volumes/volume.py +0 -0
  587. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/workspaces/__init__.py +0 -0
  588. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/workspaces/core.py +0 -0
  589. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/workspaces/server.py +0 -0
  590. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/sky/workspaces/utils.py +0 -0
  591. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/skypilot_nightly.egg-info/dependency_links.txt +0 -0
  592. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/skypilot_nightly.egg-info/entry_points.txt +0 -0
  593. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/skypilot_nightly.egg-info/requires.txt +31 -31
  594. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/skypilot_nightly.egg-info/top_level.txt +0 -0
  595. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/tests/test_api.py +0 -0
  596. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/tests/test_api_compatibility.py +0 -0
  597. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/tests/test_config.py +0 -0
  598. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/tests/test_db_utils.py +0 -0
  599. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/tests/test_failover.py +0 -0
  600. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/tests/test_global_user_state.py +0 -0
  601. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/tests/test_jobs.py +0 -0
  602. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/tests/test_jobs_and_serve.py +0 -0
  603. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/tests/test_list_accelerators.py +0 -0
  604. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/tests/test_no_parellel.py +0 -0
  605. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/tests/test_optimizer_dryruns.py +0 -0
  606. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/tests/test_optimizer_random_dag.py +0 -0
  607. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/tests/test_serve_autoscaler.py +0 -0
  608. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/tests/test_smoke.py +0 -0
  609. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/tests/test_ssh_proxy_lag.py +0 -0
  610. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/tests/test_storage.py +0 -0
  611. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/tests/test_wheels.py +0 -0
  612. {skypilot_nightly-1.0.0.dev20251013 → skypilot_nightly-1.0.0.dev20251015}/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.dev20251013
3
+ Version: 1.0.0.dev20251015
4
4
  Summary: SkyPilot: Run AI on Any Infra — Unified, Faster, Cheaper.
5
5
  Author: SkyPilot Team
6
6
  License: Apache 2.0
@@ -156,51 +156,51 @@ Requires-Dist: aiosqlite; extra == "server"
156
156
  Requires-Dist: greenlet; extra == "server"
157
157
  Provides-Extra: shadeform
158
158
  Provides-Extra: all
159
- Requires-Dist: boto3>=1.26.1; extra == "all"
159
+ Requires-Dist: azure-mgmt-network>=27.0.0; extra == "all"
160
+ Requires-Dist: passlib; extra == "all"
160
161
  Requires-Dist: ecsapi>=0.2.0; extra == "all"
161
- Requires-Dist: nebius>=0.2.47; extra == "all"
162
- Requires-Dist: aiohttp; extra == "all"
162
+ Requires-Dist: ibm-cloud-sdk-core; extra == "all"
163
163
  Requires-Dist: cudo-compute>=0.1.10; extra == "all"
164
- Requires-Dist: vastai-sdk>=0.1.12; extra == "all"
165
- Requires-Dist: grpcio>=1.63.0; extra == "all"
166
- Requires-Dist: colorama<0.4.5; extra == "all"
167
- Requires-Dist: anyio; extra == "all"
168
- Requires-Dist: passlib; extra == "all"
169
- Requires-Dist: azure-mgmt-network>=27.0.0; extra == "all"
164
+ Requires-Dist: kubernetes!=32.0.0,>=20.0.0; extra == "all"
170
165
  Requires-Dist: pyjwt; extra == "all"
171
- Requires-Dist: python-dateutil; extra == "all"
172
- Requires-Dist: runpod>=1.6.1; extra == "all"
173
- Requires-Dist: websockets; extra == "all"
174
- Requires-Dist: tomli; python_version < "3.11" and extra == "all"
166
+ Requires-Dist: google-cloud-storage; extra == "all"
175
167
  Requires-Dist: pydo>=0.3.0; extra == "all"
176
- Requires-Dist: ibm-platform-services>=0.48.0; extra == "all"
168
+ Requires-Dist: boto3>=1.26.1; extra == "all"
169
+ Requires-Dist: azure-common; extra == "all"
170
+ Requires-Dist: azure-core>=1.31.0; extra == "all"
171
+ Requires-Dist: grpcio>=1.63.0; extra == "all"
172
+ Requires-Dist: google-api-python-client>=2.69.0; extra == "all"
173
+ Requires-Dist: aiohttp; extra == "all"
177
174
  Requires-Dist: ibm-cos-sdk; extra == "all"
175
+ Requires-Dist: azure-core>=1.24.0; extra == "all"
178
176
  Requires-Dist: pyvmomi==8.0.1.0.2; extra == "all"
179
- Requires-Dist: oci; extra == "all"
180
177
  Requires-Dist: aiosqlite; extra == "all"
181
- Requires-Dist: google-cloud-storage; extra == "all"
182
- Requires-Dist: docker; extra == "all"
183
- Requires-Dist: casbin; extra == "all"
184
- Requires-Dist: ibm-cloud-sdk-core; extra == "all"
185
- Requires-Dist: msgraph-sdk; extra == "all"
186
- Requires-Dist: azure-common; extra == "all"
187
- Requires-Dist: botocore>=1.29.10; extra == "all"
188
- Requires-Dist: ibm-vpc; extra == "all"
189
- Requires-Dist: ray[default]>=2.6.1; extra == "all"
178
+ Requires-Dist: python-dateutil; extra == "all"
179
+ Requires-Dist: azure-cli>=2.65.0; extra == "all"
180
+ Requires-Dist: colorama<0.4.5; extra == "all"
181
+ Requires-Dist: azure-mgmt-compute>=33.0.0; extra == "all"
182
+ Requires-Dist: anyio; extra == "all"
183
+ Requires-Dist: pyopenssl<24.3.0,>=23.2.0; extra == "all"
190
184
  Requires-Dist: azure-identity>=1.19.0; extra == "all"
191
185
  Requires-Dist: sqlalchemy_adapter; extra == "all"
186
+ Requires-Dist: docker; extra == "all"
192
187
  Requires-Dist: greenlet; extra == "all"
188
+ Requires-Dist: nebius>=0.2.47; extra == "all"
189
+ Requires-Dist: oci; extra == "all"
190
+ Requires-Dist: msrestazure; extra == "all"
191
+ Requires-Dist: vastai-sdk>=0.1.12; extra == "all"
192
+ Requires-Dist: websockets; extra == "all"
193
193
  Requires-Dist: awscli>=1.27.10; extra == "all"
194
- Requires-Dist: azure-core>=1.31.0; extra == "all"
195
- Requires-Dist: azure-mgmt-compute>=33.0.0; extra == "all"
194
+ Requires-Dist: runpod>=1.6.1; extra == "all"
195
+ Requires-Dist: ibm-platform-services>=0.48.0; extra == "all"
196
+ Requires-Dist: casbin; extra == "all"
196
197
  Requires-Dist: azure-storage-blob>=12.23.1; extra == "all"
197
- Requires-Dist: pyopenssl<24.3.0,>=23.2.0; extra == "all"
198
- Requires-Dist: azure-core>=1.24.0; extra == "all"
199
- Requires-Dist: kubernetes!=32.0.0,>=20.0.0; extra == "all"
200
- Requires-Dist: azure-cli>=2.65.0; extra == "all"
198
+ Requires-Dist: msgraph-sdk; extra == "all"
199
+ Requires-Dist: botocore>=1.29.10; extra == "all"
200
+ Requires-Dist: tomli; python_version < "3.11" and extra == "all"
201
+ Requires-Dist: ibm-vpc; extra == "all"
201
202
  Requires-Dist: protobuf<7.0.0,>=5.26.1; extra == "all"
202
- Requires-Dist: msrestazure; extra == "all"
203
- Requires-Dist: google-api-python-client>=2.69.0; extra == "all"
203
+ Requires-Dist: ray[default]>=2.6.1; extra == "all"
204
204
  Dynamic: author
205
205
  Dynamic: classifier
206
206
  Dynamic: description
@@ -250,7 +250,8 @@ Dynamic: summary
250
250
  ----
251
251
 
252
252
  :fire: *News* :fire:
253
- - [Oct 2025] Run large-scale **LLM training with TorchTitan** on any AI infra: [**example**](./llm/torchtitan/)
253
+ - [Oct 2025] Train and serve [Andrej Karpathy's](https://x.com/karpathy/status/1977755427569111362) **nanochat** - the best ChatGPT that $100 can buy: [**example**](./llm/nanochat)
254
+ - [Oct 2025] Run large-scale **LLM training with TorchTitan** on any AI infra: [**example**](./examples/training/torchtitan)
254
255
  - [Sep 2025] Scaling AI infrastructure at Abridge - **10x faster development** with SkyPilot: [**blog**](https://blog.skypilot.co/abridge/)
255
256
  - [Sep 2025] Network and Storage Benchmarks for LLM training on the cloud: [**blog**](https://maknee.github.io/blog/2025/Network-And-Storage-Training-Skypilot/)
256
257
  - [Aug 2025] Serve and finetune **OpenAI GPT-OSS models** (gpt-oss-120b, gpt-oss-20b) with one command on any infra: [**serve**](./llm/gpt-oss/) + [**LoRA and full finetuning**](./llm/gpt-oss-finetuning/)
@@ -39,7 +39,8 @@
39
39
  ----
40
40
 
41
41
  :fire: *News* :fire:
42
- - [Oct 2025] Run large-scale **LLM training with TorchTitan** on any AI infra: [**example**](./llm/torchtitan/)
42
+ - [Oct 2025] Train and serve [Andrej Karpathy's](https://x.com/karpathy/status/1977755427569111362) **nanochat** - the best ChatGPT that $100 can buy: [**example**](./llm/nanochat)
43
+ - [Oct 2025] Run large-scale **LLM training with TorchTitan** on any AI infra: [**example**](./examples/training/torchtitan)
43
44
  - [Sep 2025] Scaling AI infrastructure at Abridge - **10x faster development** with SkyPilot: [**blog**](https://blog.skypilot.co/abridge/)
44
45
  - [Sep 2025] Network and Storage Benchmarks for LLM training on the cloud: [**blog**](https://maknee.github.io/blog/2025/Network-And-Storage-Training-Skypilot/)
45
46
  - [Aug 2025] Serve and finetune **OpenAI GPT-OSS models** (gpt-oss-120b, gpt-oss-20b) with one command on any infra: [**serve**](./llm/gpt-oss/) + [**LoRA and full finetuning**](./llm/gpt-oss-finetuning/)
@@ -7,7 +7,7 @@ import urllib.request
7
7
  from sky.utils import directory_utils
8
8
 
9
9
  # Replaced with the current commit when building the wheels.
10
- _SKYPILOT_COMMIT_SHA = 'c9063aba1971bd726c07f76164ad1127ac90424c'
10
+ _SKYPILOT_COMMIT_SHA = '4f345c81bd4baeb1ea1e7a98dc6b650f6ec6c7c5'
11
11
 
12
12
 
13
13
  def _get_git_commit():
@@ -37,7 +37,7 @@ def _get_git_commit():
37
37
 
38
38
 
39
39
  __commit__ = _get_git_commit()
40
- __version__ = '1.0.0.dev20251013'
40
+ __version__ = '1.0.0.dev20251015'
41
41
  __root_dir__ = directory_utils.get_sky_dir()
42
42
 
43
43
 
@@ -153,7 +153,12 @@ def get_or_generate_keys() -> Tuple[str, str]:
153
153
  return private_key_path, public_key_path
154
154
 
155
155
 
156
- def create_ssh_key_files_from_db(private_key_path: str):
156
+ def create_ssh_key_files_from_db(private_key_path: str) -> bool:
157
+ """Creates the ssh key files from the database.
158
+
159
+ Returns:
160
+ True if the ssh key files are created successfully, False otherwise.
161
+ """
157
162
  # Assume private key path is in the format of
158
163
  # ~/.sky/clients/<user_hash>/ssh/sky-key
159
164
  separated_path = os.path.normpath(private_key_path).split(os.path.sep)
@@ -181,12 +186,14 @@ def create_ssh_key_files_from_db(private_key_path: str):
181
186
  ssh_public_key, ssh_private_key, exists = (
182
187
  global_user_state.get_ssh_keys(user_hash))
183
188
  if not exists:
184
- raise RuntimeError(f'SSH keys not found for user {user_hash}')
189
+ logger.debug(f'SSH keys not found for user {user_hash}')
190
+ return False
185
191
  _save_key_pair(private_key_path, public_key_path, ssh_private_key,
186
192
  ssh_public_key)
187
193
  assert os.path.exists(public_key_path), (
188
194
  'Private key found, but associated public key '
189
195
  f'{public_key_path} does not exist.')
196
+ return True
190
197
 
191
198
 
192
199
  def configure_ssh_info(config: Dict[str, Any]) -> Dict[str, Any]:
@@ -1857,6 +1857,13 @@ def check_owner_identity(cluster_name: str) -> None:
1857
1857
  summary_response=True)
1858
1858
  if record is None:
1859
1859
  return
1860
+ _check_owner_identity_with_record(cluster_name, record)
1861
+
1862
+
1863
+ def _check_owner_identity_with_record(cluster_name: str,
1864
+ record: Dict[str, Any]) -> None:
1865
+ if env_options.Options.SKIP_CLOUD_IDENTITY_CHECK.get():
1866
+ return
1860
1867
  handle = record['handle']
1861
1868
  if not isinstance(handle, backends.CloudVmRayResourceHandle):
1862
1869
  return
@@ -2151,6 +2158,7 @@ def check_can_clone_disk_and_override_task(
2151
2158
 
2152
2159
  def _update_cluster_status(
2153
2160
  cluster_name: str,
2161
+ record: Dict[str, Any],
2154
2162
  include_user_info: bool = True,
2155
2163
  summary_response: bool = False) -> Optional[Dict[str, Any]]:
2156
2164
  """Update the cluster status.
@@ -2179,12 +2187,6 @@ def _update_cluster_status(
2179
2187
  fetched from the cloud provider or there are leaked nodes causing
2180
2188
  the node number larger than expected.
2181
2189
  """
2182
- record = global_user_state.get_cluster_from_name(
2183
- cluster_name,
2184
- include_user_info=include_user_info,
2185
- summary_response=summary_response)
2186
- if record is None:
2187
- return None
2188
2190
  handle = record['handle']
2189
2191
  if handle.cluster_yaml is None:
2190
2192
  # Remove cluster from db since this cluster does not have a config file
@@ -2677,10 +2679,9 @@ def refresh_cluster_record(
2677
2679
  # using the correct cloud credentials.
2678
2680
  workspace = record.get('workspace', constants.SKYPILOT_DEFAULT_WORKSPACE)
2679
2681
  with skypilot_config.local_active_workspace_ctx(workspace):
2680
- check_owner_identity(cluster_name)
2681
-
2682
- if not isinstance(record['handle'], backends.CloudVmRayResourceHandle):
2683
- return record
2682
+ # check_owner_identity returns if the record handle is
2683
+ # not a CloudVmRayResourceHandle
2684
+ _check_owner_identity_with_record(cluster_name, record)
2684
2685
 
2685
2686
  # The loop logic allows us to notice if the status was updated in the
2686
2687
  # global_user_state by another process and stop trying to get the lock.
@@ -2697,7 +2698,8 @@ def refresh_cluster_record(
2697
2698
  return record
2698
2699
 
2699
2700
  if cluster_lock_already_held:
2700
- return _update_cluster_status(cluster_name, include_user_info,
2701
+ return _update_cluster_status(cluster_name, record,
2702
+ include_user_info,
2701
2703
  summary_response)
2702
2704
 
2703
2705
  # Try to acquire the lock so we can fetch the status.
@@ -2713,7 +2715,7 @@ def refresh_cluster_record(
2713
2715
  record, force_refresh_statuses):
2714
2716
  return record
2715
2717
  # Update and return the cluster status.
2716
- return _update_cluster_status(cluster_name,
2718
+ return _update_cluster_status(cluster_name, record,
2717
2719
  include_user_info,
2718
2720
  summary_response)
2719
2721
 
@@ -3117,25 +3119,23 @@ def refresh_cluster_records() -> None:
3117
3119
  exclude_managed_clusters = True
3118
3120
  if env_options.Options.SHOW_DEBUG_INFO.get():
3119
3121
  exclude_managed_clusters = False
3120
- cluster_names = global_user_state.get_cluster_names(
3121
- exclude_managed_clusters=exclude_managed_clusters,)
3122
+ cluster_names = set(
3123
+ global_user_state.get_cluster_names(
3124
+ exclude_managed_clusters=exclude_managed_clusters,))
3122
3125
 
3123
3126
  # TODO(syang): we should try not to leak
3124
3127
  # request info in backend_utils.py.
3125
3128
  # Refactor this to use some other info to
3126
3129
  # determine if a launch is in progress.
3127
- request = requests_lib.get_request_tasks(
3130
+ requests = requests_lib.get_request_tasks(
3128
3131
  req_filter=requests_lib.RequestTaskFilter(
3129
3132
  status=[requests_lib.RequestStatus.RUNNING],
3130
- cluster_names=cluster_names,
3131
3133
  include_request_names=['sky.launch']))
3132
3134
  cluster_names_with_launch_request = {
3133
- request.cluster_name for request in request
3135
+ request.cluster_name for request in requests
3134
3136
  }
3135
- cluster_names_without_launch_request = [
3136
- cluster_name for cluster_name in cluster_names
3137
- if cluster_name not in cluster_names_with_launch_request
3138
- ]
3137
+ cluster_names_without_launch_request = (cluster_names -
3138
+ cluster_names_with_launch_request)
3139
3139
 
3140
3140
  def _refresh_cluster_record(cluster_name):
3141
3141
  return _refresh_cluster(cluster_name,
@@ -3144,7 +3144,7 @@ def refresh_cluster_records() -> None:
3144
3144
  include_user_info=False,
3145
3145
  summary_response=True)
3146
3146
 
3147
- if len(cluster_names) > 0:
3147
+ if len(cluster_names_without_launch_request) > 0:
3148
3148
  # Do not refresh the clusters that have an active launch request.
3149
3149
  subprocess_utils.run_in_parallel(_refresh_cluster_record,
3150
3150
  cluster_names_without_launch_request)
@@ -3270,7 +3270,15 @@ def get_clusters(
3270
3270
  expanded_private_key_path = os.path.expanduser(
3271
3271
  ssh_private_key_path)
3272
3272
  if not os.path.exists(expanded_private_key_path):
3273
- auth.create_ssh_key_files_from_db(ssh_private_key_path)
3273
+ success = auth.create_ssh_key_files_from_db(
3274
+ ssh_private_key_path)
3275
+ if not success:
3276
+ # If the ssh key files are not found, we do not
3277
+ # update the record with credentials.
3278
+ logger.debug(
3279
+ f'SSH keys not found for cluster {record["name"]} '
3280
+ f'at key path {ssh_private_key_path}')
3281
+ continue
3274
3282
  else:
3275
3283
  private_key_path, _ = auth.get_or_generate_keys()
3276
3284
  expanded_private_key_path = os.path.expanduser(private_key_path)
@@ -3332,7 +3340,10 @@ def get_clusters(
3332
3340
  force_refresh_statuses=force_refresh_statuses,
3333
3341
  include_user_info=True,
3334
3342
  summary_response=summary_response)
3335
- if 'error' not in record:
3343
+ # record may be None if the cluster is deleted during refresh,
3344
+ # e.g. all the Pods of a cluster on Kubernetes have been
3345
+ # deleted before refresh.
3346
+ if record is not None and 'error' not in record:
3336
3347
  _update_records_with_handle_info([record])
3337
3348
  if include_credentials:
3338
3349
  _update_records_with_credentials([record])
@@ -3344,45 +3355,56 @@ def get_clusters(
3344
3355
  # request info in backend_utils.py.
3345
3356
  # Refactor this to use some other info to
3346
3357
  # determine if a launch is in progress.
3347
- request = requests_lib.get_request_tasks(
3358
+ requests = requests_lib.get_request_tasks(
3348
3359
  req_filter=requests_lib.RequestTaskFilter(
3349
3360
  status=[requests_lib.RequestStatus.RUNNING],
3350
3361
  cluster_names=cluster_names,
3351
3362
  include_request_names=['sky.launch']))
3352
3363
  cluster_names_with_launch_request = {
3353
- request.cluster_name for request in request
3364
+ request.cluster_name for request in requests
3354
3365
  }
3366
+ # Preserve the index of the cluster name as it appears on "records"
3355
3367
  cluster_names_without_launch_request = [
3356
- cluster_name for cluster_name in cluster_names
3368
+ (i, cluster_name)
3369
+ for i, cluster_name in enumerate(cluster_names)
3357
3370
  if cluster_name not in cluster_names_with_launch_request
3358
3371
  ]
3359
3372
  # for clusters that have an active launch request, we do not refresh the status
3360
- updated_records = [
3361
- record for record in records
3362
- if record['name'] in cluster_names_with_launch_request
3363
- ]
3373
+ updated_records = []
3364
3374
  if len(cluster_names_without_launch_request) > 0:
3365
3375
  with progress:
3366
3376
  updated_records = subprocess_utils.run_in_parallel(
3367
- _refresh_cluster_record, cluster_names_without_launch_request)
3368
-
3377
+ _refresh_cluster_record, [
3378
+ cluster_name
3379
+ for _, cluster_name in cluster_names_without_launch_request
3380
+ ])
3381
+ # Preserve the index of the cluster name as it appears on "records"
3382
+ # before filtering for clusters being launched.
3383
+ updated_records_dict: Dict[int, Optional[Dict[str, Any]]] = {
3384
+ cluster_names_without_launch_request[i][0]: updated_records[i]
3385
+ for i in range(len(cluster_names_without_launch_request))
3386
+ }
3369
3387
  # Show information for removed clusters.
3370
3388
  kept_records = []
3371
3389
  autodown_clusters, remaining_clusters, failed_clusters = [], [], []
3372
3390
  for i, record in enumerate(records):
3373
- if updated_records[i] is None:
3391
+ if i not in updated_records_dict:
3392
+ # record was not refreshed, keep the original record
3393
+ kept_records.append(record)
3394
+ continue
3395
+ updated_record = updated_records_dict[i]
3396
+ if updated_record is None:
3374
3397
  if record['to_down']:
3375
- autodown_clusters.append(cluster_names[i])
3398
+ autodown_clusters.append(record['name'])
3376
3399
  else:
3377
- remaining_clusters.append(cluster_names[i])
3378
- elif updated_records[i]['status'] == 'UNKNOWN':
3379
- failed_clusters.append(
3380
- (cluster_names[i], updated_records[i]['error']))
3400
+ remaining_clusters.append(record['name'])
3401
+ elif updated_record['status'] == 'UNKNOWN':
3402
+ failed_clusters.append((record['name'], updated_record['error']))
3381
3403
  # Keep the original record if the status is unknown,
3382
3404
  # so that the user can still see the cluster.
3383
3405
  kept_records.append(record)
3384
3406
  else:
3385
- kept_records.append(updated_records[i])
3407
+ kept_records.append(updated_record)
3386
3408
 
3387
3409
  if autodown_clusters:
3388
3410
  plural = 's' if len(autodown_clusters) > 1 else ''
@@ -605,7 +605,11 @@ class RayCodeGen:
605
605
  # skip the scheduling step.
606
606
  job_lib.scheduler.schedule_step()
607
607
 
608
- total_num_nodes = len(ray.nodes())
608
+ # If some nodes are down and then new nodes are added after launching again,
609
+ # the result of `ray.nodes()` will include all the nodes, so we need to get
610
+ # the alive nodes.
611
+ alive_nodes = [n for n in ray.nodes() if 'Alive' in n and n['Alive']]
612
+ total_num_nodes = len(alive_nodes)
609
613
  setup_bundles = [{{"CPU": _SETUP_CPUS}} for _ in range(total_num_nodes)]
610
614
  setup_pg = ray.util.placement_group(setup_bundles, strategy='STRICT_SPREAD')
611
615
  setup_workers = [run_bash_command_with_log_and_return_pid \\
@@ -3720,7 +3724,7 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
3720
3724
 
3721
3725
  self._update_after_cluster_provisioned(
3722
3726
  handle, to_provision_config.prev_handle, task,
3723
- prev_cluster_status, lock_id, config_hash)
3727
+ prev_cluster_status, config_hash)
3724
3728
  return handle, False
3725
3729
 
3726
3730
  cluster_config_file = config_dict['ray']
@@ -3792,7 +3796,7 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
3792
3796
 
3793
3797
  self._update_after_cluster_provisioned(
3794
3798
  handle, to_provision_config.prev_handle, task,
3795
- prev_cluster_status, lock_id, config_hash)
3799
+ prev_cluster_status, config_hash)
3796
3800
  return handle, False
3797
3801
 
3798
3802
  def _open_ports(self, handle: CloudVmRayResourceHandle) -> None:
@@ -3810,7 +3814,7 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
3810
3814
  prev_handle: Optional[CloudVmRayResourceHandle],
3811
3815
  task: task_lib.Task,
3812
3816
  prev_cluster_status: Optional[status_lib.ClusterStatus],
3813
- lock_id: str, config_hash: str) -> None:
3817
+ config_hash: str) -> None:
3814
3818
  usage_lib.messages.usage.update_cluster_resources(
3815
3819
  handle.launched_nodes, handle.launched_resources)
3816
3820
  usage_lib.messages.usage.update_final_cluster_status(
@@ -3922,8 +3926,6 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
3922
3926
  handle.cached_external_ssh_ports, handle.docker_user,
3923
3927
  handle.ssh_user)
3924
3928
 
3925
- locks.get_lock(lock_id).force_unlock()
3926
-
3927
3929
  def _sync_workdir(self, handle: CloudVmRayResourceHandle,
3928
3930
  workdir: Union[Path, Dict[str, Any]],
3929
3931
  envs_and_secrets: Dict[str, str]) -> None:
@@ -3,6 +3,7 @@
3
3
  Kubernetes does not require a catalog of instances, but we need an image catalog
4
4
  mapping SkyPilot image tags to corresponding container image tags.
5
5
  """
6
+ import collections
6
7
  import re
7
8
  import typing
8
9
  from typing import Dict, List, Optional, Set, Tuple
@@ -167,12 +168,25 @@ def _list_accelerators(
167
168
  accelerators_qtys: Set[Tuple[str, int]] = set()
168
169
  keys = lf.get_label_keys()
169
170
  nodes = kubernetes_utils.get_kubernetes_nodes(context=context)
171
+
172
+ # Check if any nodes have accelerators before fetching pods
173
+ has_accelerator_nodes = False
174
+ for node in nodes:
175
+ for key in keys:
176
+ if key in node.metadata.labels:
177
+ has_accelerator_nodes = True
178
+ break
179
+ if has_accelerator_nodes:
180
+ break
181
+
182
+ # Only fetch pods if we have accelerator nodes and realtime is requested
170
183
  pods = None
171
- if realtime:
172
- # Get the pods to get the real-time GPU usage
184
+ allocated_qty_by_node: Dict[str, int] = collections.defaultdict(int)
185
+ if realtime and has_accelerator_nodes:
186
+ # Get the allocated GPU quantity by each node
173
187
  try:
174
- pods = kubernetes_utils.get_all_pods_in_kubernetes_cluster(
175
- context=context)
188
+ allocated_qty_by_node = (
189
+ kubernetes_utils.get_allocated_gpu_qty_by_node(context=context))
176
190
  except kubernetes.api_exception() as e:
177
191
  if e.status == 403:
178
192
  logger.warning(
@@ -191,7 +205,6 @@ def _list_accelerators(
191
205
  for node in nodes:
192
206
  for key in keys:
193
207
  if key in node.metadata.labels:
194
- allocated_qty = 0
195
208
  accelerator_name = lf.get_accelerator_from_label_value(
196
209
  node.metadata.labels.get(key))
197
210
 
@@ -251,26 +264,7 @@ def _list_accelerators(
251
264
  total_accelerators_available[accelerator_name] = -1
252
265
  continue
253
266
 
254
- for pod in pods:
255
- # Get all the pods running on the node
256
- if (pod.spec.node_name == node.metadata.name and
257
- pod.status.phase in ['Running', 'Pending']):
258
- # Skip pods that should not count against GPU count
259
- if (kubernetes_utils.
260
- should_exclude_pod_from_gpu_allocation(pod)):
261
- logger.debug(
262
- f'Excluding pod '
263
- f'{pod.metadata.name} from GPU count '
264
- f'calculations on node {node.metadata.name}')
265
- continue
266
- # Iterate over all the containers in the pod and sum
267
- # the GPU requests
268
- for container in pod.spec.containers:
269
- if container.resources.requests:
270
- allocated_qty += (
271
- kubernetes_utils.get_node_accelerator_count(
272
- context, container.resources.requests))
273
-
267
+ allocated_qty = allocated_qty_by_node[node.metadata.name]
274
268
  accelerators_available = accelerator_count - allocated_qty
275
269
  # Initialize the total_accelerators_available to make sure the
276
270
  # key exists in the dictionary.