skypilot-nightly 1.0.0.dev20250731__tar.gz → 1.0.0.dev20250802__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 (539) hide show
  1. {skypilot_nightly-1.0.0.dev20250731/skypilot_nightly.egg-info → skypilot_nightly-1.0.0.dev20250802}/PKG-INFO +4 -3
  2. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/README.md +1 -0
  3. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/__init__.py +2 -2
  4. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/backends/backend_utils.py +6 -1
  5. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/backends/cloud_vm_ray_backend.py +2 -1
  6. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/catalog/data_fetchers/fetch_nebius.py +31 -7
  7. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/client/cli/command.py +40 -14
  8. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/client/cli/flags.py +15 -0
  9. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/client/sdk.py +80 -10
  10. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/client/sdk.pyi +4 -0
  11. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/core.py +10 -2
  12. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/404.html +1 -1
  13. {skypilot_nightly-1.0.0.dev20250731/sky/dashboard/out/_next/static/oKqDxFQ88cquF4nQGE_0w → skypilot_nightly-1.0.0.dev20250802/sky/dashboard/out/_next/static/2JNCZ4daQBotwWRNGi6aE}/_buildManifest.js +1 -1
  14. skypilot_nightly-1.0.0.dev20250802/sky/dashboard/out/_next/static/chunks/1871-7e17c195296e2ea9.js +6 -0
  15. skypilot_nightly-1.0.0.dev20250802/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-9e7df5fc761c95a7.js +1 -0
  16. skypilot_nightly-1.0.0.dev20250802/sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-6c5af4c86e6ab3d3.js +11 -0
  17. skypilot_nightly-1.0.0.dev20250731/sky/dashboard/out/_next/static/chunks/webpack-5adfc4d4b3db6f71.js → skypilot_nightly-1.0.0.dev20250802/sky/dashboard/out/_next/static/chunks/webpack-13145516b19858fb.js +1 -1
  18. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/clusters/[cluster]/[job].html +1 -1
  19. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/clusters/[cluster].html +1 -1
  20. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/clusters.html +1 -1
  21. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/config.html +1 -1
  22. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/index.html +1 -1
  23. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/infra/[context].html +1 -1
  24. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/infra.html +1 -1
  25. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/jobs/[job].html +1 -1
  26. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/jobs.html +1 -1
  27. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/users.html +1 -1
  28. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/volumes.html +1 -1
  29. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/workspace/new.html +1 -1
  30. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/workspaces/[name].html +1 -1
  31. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/workspaces.html +1 -1
  32. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/data/data_utils.py +21 -1
  33. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/data/storage.py +12 -0
  34. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/execution.py +5 -3
  35. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/jobs/client/sdk.py +5 -1
  36. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/runpod/utils.py +27 -12
  37. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/resources.py +17 -4
  38. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/server/constants.py +1 -1
  39. skypilot_nightly-1.0.0.dev20250802/sky/server/daemons.py +164 -0
  40. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/server/requests/payloads.py +3 -0
  41. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/server/requests/requests.py +2 -124
  42. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/server/server.py +2 -1
  43. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/server/uvicorn.py +2 -1
  44. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/setup_files/dependencies.py +1 -1
  45. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/sky_logging.py +30 -0
  46. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/skylet/autostop_lib.py +96 -8
  47. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/skylet/constants.py +4 -3
  48. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/skylet/events.py +27 -13
  49. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/templates/kubernetes-loadbalancer.yml.j2 +2 -0
  50. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/schemas.py +29 -0
  51. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802/skypilot_nightly.egg-info}/PKG-INFO +4 -3
  52. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/skypilot_nightly.egg-info/SOURCES.txt +7 -6
  53. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/skypilot_nightly.egg-info/requires.txt +2 -2
  54. skypilot_nightly-1.0.0.dev20250731/sky/dashboard/out/_next/static/chunks/1871-1df8b686a51f3e3a.js +0 -6
  55. skypilot_nightly-1.0.0.dev20250731/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-665fa5d96dd41d67.js +0 -1
  56. skypilot_nightly-1.0.0.dev20250731/sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-b25c109d6e41bcf4.js +0 -11
  57. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/LICENSE +0 -0
  58. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/MANIFEST.in +0 -0
  59. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/pyproject.toml +0 -0
  60. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/setup.cfg +0 -0
  61. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/setup.py +0 -0
  62. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/adaptors/__init__.py +0 -0
  63. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/adaptors/aws.py +0 -0
  64. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/adaptors/azure.py +0 -0
  65. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/adaptors/cloudflare.py +0 -0
  66. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/adaptors/common.py +0 -0
  67. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/adaptors/cudo.py +0 -0
  68. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/adaptors/do.py +0 -0
  69. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/adaptors/docker.py +0 -0
  70. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/adaptors/gcp.py +0 -0
  71. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/adaptors/hyperbolic.py +0 -0
  72. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/adaptors/ibm.py +0 -0
  73. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/adaptors/kubernetes.py +0 -0
  74. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/adaptors/nebius.py +0 -0
  75. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/adaptors/oci.py +0 -0
  76. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/adaptors/runpod.py +0 -0
  77. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/adaptors/vast.py +0 -0
  78. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/adaptors/vsphere.py +0 -0
  79. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/admin_policy.py +0 -0
  80. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/authentication.py +0 -0
  81. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/backends/__init__.py +0 -0
  82. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/backends/backend.py +0 -0
  83. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/backends/docker_utils.py +0 -0
  84. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/backends/local_docker_backend.py +0 -0
  85. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/backends/monkey_patches/monkey_patch_ray_up.py +0 -0
  86. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/backends/wheel_utils.py +0 -0
  87. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/catalog/__init__.py +0 -0
  88. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/catalog/aws_catalog.py +0 -0
  89. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/catalog/azure_catalog.py +0 -0
  90. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/catalog/common.py +0 -0
  91. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/catalog/config.py +0 -0
  92. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/catalog/cudo_catalog.py +0 -0
  93. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/catalog/data_fetchers/__init__.py +0 -0
  94. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/catalog/data_fetchers/analyze.py +0 -0
  95. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/catalog/data_fetchers/fetch_aws.py +0 -0
  96. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/catalog/data_fetchers/fetch_azure.py +0 -0
  97. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/catalog/data_fetchers/fetch_cudo.py +0 -0
  98. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/catalog/data_fetchers/fetch_fluidstack.py +0 -0
  99. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/catalog/data_fetchers/fetch_gcp.py +0 -0
  100. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/catalog/data_fetchers/fetch_hyperbolic.py +0 -0
  101. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/catalog/data_fetchers/fetch_ibm.py +0 -0
  102. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/catalog/data_fetchers/fetch_lambda_cloud.py +0 -0
  103. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/catalog/data_fetchers/fetch_vast.py +0 -0
  104. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/catalog/data_fetchers/fetch_vsphere.py +0 -0
  105. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/catalog/do_catalog.py +0 -0
  106. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/catalog/fluidstack_catalog.py +0 -0
  107. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/catalog/gcp_catalog.py +0 -0
  108. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/catalog/hyperbolic_catalog.py +0 -0
  109. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/catalog/ibm_catalog.py +0 -0
  110. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/catalog/kubernetes_catalog.py +0 -0
  111. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/catalog/lambda_catalog.py +0 -0
  112. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/catalog/nebius_catalog.py +0 -0
  113. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/catalog/oci_catalog.py +0 -0
  114. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/catalog/paperspace_catalog.py +0 -0
  115. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/catalog/runpod_catalog.py +0 -0
  116. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/catalog/scp_catalog.py +0 -0
  117. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/catalog/ssh_catalog.py +0 -0
  118. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/catalog/vast_catalog.py +0 -0
  119. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/catalog/vsphere_catalog.py +0 -0
  120. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/check.py +0 -0
  121. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/cli.py +0 -0
  122. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/client/__init__.py +0 -0
  123. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/client/cli/__init__.py +0 -0
  124. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/client/cli/deprecation_utils.py +0 -0
  125. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/client/cli/git.py +0 -0
  126. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/client/common.py +0 -0
  127. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/client/oauth.py +0 -0
  128. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/client/service_account_auth.py +0 -0
  129. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/cloud_stores.py +0 -0
  130. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/clouds/__init__.py +0 -0
  131. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/clouds/aws.py +0 -0
  132. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/clouds/azure.py +0 -0
  133. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/clouds/cloud.py +0 -0
  134. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/clouds/cudo.py +0 -0
  135. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/clouds/do.py +0 -0
  136. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/clouds/fluidstack.py +0 -0
  137. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/clouds/gcp.py +0 -0
  138. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/clouds/hyperbolic.py +0 -0
  139. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/clouds/ibm.py +0 -0
  140. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/clouds/kubernetes.py +0 -0
  141. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/clouds/lambda_cloud.py +0 -0
  142. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/clouds/nebius.py +0 -0
  143. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/clouds/oci.py +0 -0
  144. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/clouds/paperspace.py +0 -0
  145. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/clouds/runpod.py +0 -0
  146. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/clouds/scp.py +0 -0
  147. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/clouds/ssh.py +0 -0
  148. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/clouds/utils/__init__.py +0 -0
  149. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/clouds/utils/aws_utils.py +0 -0
  150. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/clouds/utils/azure_utils.py +0 -0
  151. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/clouds/utils/gcp_utils.py +0 -0
  152. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/clouds/utils/oci_utils.py +0 -0
  153. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/clouds/utils/scp_utils.py +0 -0
  154. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/clouds/vast.py +0 -0
  155. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/clouds/vsphere.py +0 -0
  156. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dag.py +0 -0
  157. {skypilot_nightly-1.0.0.dev20250731/sky/dashboard/out/_next/static/oKqDxFQ88cquF4nQGE_0w → skypilot_nightly-1.0.0.dev20250802/sky/dashboard/out/_next/static/2JNCZ4daQBotwWRNGi6aE}/_ssgManifest.js +0 -0
  158. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/1043-928582d4860fef92.js +0 -0
  159. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/1141-3f10a5a9f697c630.js +0 -0
  160. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/1272-1ef0bf0237faccdb.js +0 -0
  161. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/1559-6c00e20454194859.js +0 -0
  162. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/1664-22b00e32c9ff96a4.js +0 -0
  163. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/2003.f90b06bb1f914295.js +0 -0
  164. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/2350.fab69e61bac57b23.js +0 -0
  165. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/2369.fc20f0c2c8ed9fe7.js +0 -0
  166. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/2641.142718b6b78a6f9b.js +0 -0
  167. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/3698-7874720877646365.js +0 -0
  168. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/3785.95524bc443db8260.js +0 -0
  169. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/3937.210053269f121201.js +0 -0
  170. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/4725.42f21f250f91f65b.js +0 -0
  171. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/4869.18e6a4361a380763.js +0 -0
  172. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/4937.d6bf67771e353356.js +0 -0
  173. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/5230-f3bb2663e442e86c.js +0 -0
  174. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/5739-d67458fcb1386c92.js +0 -0
  175. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/6135-d0e285ac5f3f2485.js +0 -0
  176. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/616-3d59f75e2ccf9321.js +0 -0
  177. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/6212-7bd06f60ba693125.js +0 -0
  178. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/6601-234b1cf963c7280b.js +0 -0
  179. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/691.6d99cbfba347cebf.js +0 -0
  180. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/6989-983d3ae7a874de98.js +0 -0
  181. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/6990-08b2a1cae076a943.js +0 -0
  182. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/7411-b15471acd2cba716.js +0 -0
  183. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/8969-9a8cca241b30db83.js +0 -0
  184. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/9025.7937c16bc8623516.js +0 -0
  185. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/938-40d15b6261ec8dc1.js +0 -0
  186. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/9847.4c46c5e229c78704.js +0 -0
  187. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/9984.78ee6d2c6fa4b0e8.js +0 -0
  188. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/fd9d1056-86323a29a8f7e46a.js +0 -0
  189. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/framework-cf60a09ccd051a10.js +0 -0
  190. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/main-app-587214043926b3cc.js +0 -0
  191. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/main-f15ccb73239a3bf1.js +0 -0
  192. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/pages/_app-a67ae198457b9886.js +0 -0
  193. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/pages/_error-c66a4e8afc46f17b.js +0 -0
  194. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-fa63e8b1d203f298.js +0 -0
  195. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/pages/clusters-956ad430075efee8.js +0 -0
  196. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/pages/config-8620d099cbef8608.js +0 -0
  197. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/pages/index-444f1804401f04ea.js +0 -0
  198. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/pages/infra/[context]-9cfd875eecb6eaf5.js +0 -0
  199. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/pages/infra-0fbdc9072f19fbe2.js +0 -0
  200. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/pages/jobs-6393a9edc7322b54.js +0 -0
  201. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/pages/users-34d6bb10c3b3ee3d.js +0 -0
  202. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/pages/volumes-225c8dae0634eb7f.js +0 -0
  203. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/pages/workspace/new-92f741084a89e27b.js +0 -0
  204. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/pages/workspaces/[name]-4d41c9023287f59a.js +0 -0
  205. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/pages/workspaces-e4cb7e97d37e93ad.js +0 -0
  206. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js +0 -0
  207. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/_next/static/css/b3227360726f12eb.css +0 -0
  208. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/favicon.ico +0 -0
  209. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/skypilot.svg +0 -0
  210. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/dashboard/out/videos/cursor-small.mp4 +0 -0
  211. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/data/__init__.py +0 -0
  212. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/data/data_transfer.py +0 -0
  213. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/data/mounting_utils.py +0 -0
  214. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/data/storage_utils.py +0 -0
  215. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/exceptions.py +0 -0
  216. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/global_user_state.py +0 -0
  217. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/jobs/__init__.py +0 -0
  218. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/jobs/client/__init__.py +0 -0
  219. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/jobs/constants.py +0 -0
  220. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/jobs/controller.py +0 -0
  221. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/jobs/recovery_strategy.py +0 -0
  222. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/jobs/scheduler.py +0 -0
  223. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/jobs/server/__init__.py +0 -0
  224. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/jobs/server/core.py +0 -0
  225. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/jobs/server/server.py +0 -0
  226. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/jobs/server/utils.py +0 -0
  227. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/jobs/state.py +0 -0
  228. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/jobs/utils.py +0 -0
  229. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/logs/__init__.py +0 -0
  230. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/logs/agent.py +0 -0
  231. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/logs/aws.py +0 -0
  232. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/logs/gcp.py +0 -0
  233. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/metrics/__init__.py +0 -0
  234. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/metrics/utils.py +0 -0
  235. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/models.py +0 -0
  236. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/optimizer.py +0 -0
  237. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/__init__.py +0 -0
  238. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/aws/__init__.py +0 -0
  239. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/aws/config.py +0 -0
  240. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/aws/instance.py +0 -0
  241. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/aws/utils.py +0 -0
  242. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/azure/__init__.py +0 -0
  243. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/azure/azure-config-template.json +0 -0
  244. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/azure/config.py +0 -0
  245. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/azure/instance.py +0 -0
  246. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/common.py +0 -0
  247. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/constants.py +0 -0
  248. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/cudo/__init__.py +0 -0
  249. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/cudo/config.py +0 -0
  250. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/cudo/cudo_machine_type.py +0 -0
  251. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/cudo/cudo_utils.py +0 -0
  252. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/cudo/cudo_wrapper.py +0 -0
  253. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/cudo/instance.py +0 -0
  254. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/do/__init__.py +0 -0
  255. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/do/config.py +0 -0
  256. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/do/constants.py +0 -0
  257. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/do/instance.py +0 -0
  258. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/do/utils.py +0 -0
  259. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/docker_utils.py +0 -0
  260. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/fluidstack/__init__.py +0 -0
  261. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/fluidstack/config.py +0 -0
  262. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/fluidstack/fluidstack_utils.py +0 -0
  263. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/fluidstack/instance.py +0 -0
  264. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/gcp/__init__.py +0 -0
  265. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/gcp/config.py +0 -0
  266. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/gcp/constants.py +0 -0
  267. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/gcp/instance.py +0 -0
  268. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/gcp/instance_utils.py +0 -0
  269. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/gcp/mig_utils.py +0 -0
  270. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/gcp/volume_utils.py +0 -0
  271. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/hyperbolic/__init__.py +0 -0
  272. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/hyperbolic/config.py +0 -0
  273. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/hyperbolic/instance.py +0 -0
  274. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/hyperbolic/utils.py +0 -0
  275. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/instance_setup.py +0 -0
  276. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/kubernetes/__init__.py +0 -0
  277. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/kubernetes/config.py +0 -0
  278. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/kubernetes/constants.py +0 -0
  279. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/kubernetes/instance.py +0 -0
  280. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/kubernetes/manifests/fusermount-server-daemonset.yaml +0 -0
  281. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/kubernetes/network.py +0 -0
  282. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/kubernetes/network_utils.py +0 -0
  283. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/kubernetes/utils.py +0 -0
  284. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/kubernetes/volume.py +0 -0
  285. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/lambda_cloud/__init__.py +0 -0
  286. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/lambda_cloud/config.py +0 -0
  287. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/lambda_cloud/instance.py +0 -0
  288. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/lambda_cloud/lambda_utils.py +0 -0
  289. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/logging.py +0 -0
  290. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/metadata_utils.py +0 -0
  291. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/nebius/__init__.py +0 -0
  292. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/nebius/config.py +0 -0
  293. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/nebius/constants.py +0 -0
  294. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/nebius/instance.py +0 -0
  295. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/nebius/utils.py +0 -0
  296. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/oci/__init__.py +0 -0
  297. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/oci/config.py +0 -0
  298. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/oci/instance.py +0 -0
  299. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/oci/query_utils.py +0 -0
  300. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/paperspace/__init__.py +0 -0
  301. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/paperspace/config.py +0 -0
  302. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/paperspace/constants.py +0 -0
  303. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/paperspace/instance.py +0 -0
  304. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/paperspace/utils.py +0 -0
  305. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/provisioner.py +0 -0
  306. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/runpod/__init__.py +0 -0
  307. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/runpod/api/__init__.py +0 -0
  308. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/runpod/api/commands.py +0 -0
  309. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/runpod/api/pods.py +0 -0
  310. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/runpod/config.py +0 -0
  311. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/runpod/instance.py +0 -0
  312. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/scp/__init__.py +0 -0
  313. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/scp/config.py +0 -0
  314. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/scp/instance.py +0 -0
  315. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/ssh/__init__.py +0 -0
  316. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/vast/__init__.py +0 -0
  317. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/vast/config.py +0 -0
  318. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/vast/instance.py +0 -0
  319. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/vast/utils.py +0 -0
  320. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/vsphere/__init__.py +0 -0
  321. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/vsphere/common/__init__.py +0 -0
  322. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/vsphere/common/cls_api_client.py +0 -0
  323. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/vsphere/common/cls_api_helper.py +0 -0
  324. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/vsphere/common/custom_script.py +0 -0
  325. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/vsphere/common/id_generator.py +0 -0
  326. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/vsphere/common/metadata_utils.py +0 -0
  327. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/vsphere/common/service_manager.py +0 -0
  328. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/vsphere/common/service_manager_factory.py +0 -0
  329. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/vsphere/common/ssl_helper.py +0 -0
  330. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/vsphere/common/vapiconnect.py +0 -0
  331. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/vsphere/common/vim_utils.py +0 -0
  332. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/vsphere/config.py +0 -0
  333. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/vsphere/instance.py +0 -0
  334. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/provision/vsphere/vsphere_utils.py +0 -0
  335. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/py.typed +0 -0
  336. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/schemas/db/README +0 -0
  337. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/schemas/db/env.py +0 -0
  338. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/schemas/db/global_user_state/001_initial_schema.py +0 -0
  339. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/schemas/db/script.py.mako +0 -0
  340. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/schemas/db/spot_jobs/001_initial_schema.py +0 -0
  341. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/schemas/db/spot_jobs/002_cluster_pool.py +0 -0
  342. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/serve/__init__.py +0 -0
  343. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/serve/autoscalers.py +0 -0
  344. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/serve/client/__init__.py +0 -0
  345. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/serve/client/impl.py +0 -0
  346. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/serve/client/sdk.py +0 -0
  347. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/serve/constants.py +0 -0
  348. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/serve/controller.py +0 -0
  349. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/serve/load_balancer.py +0 -0
  350. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/serve/load_balancing_policies.py +0 -0
  351. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/serve/replica_managers.py +0 -0
  352. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/serve/serve_state.py +0 -0
  353. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/serve/serve_utils.py +0 -0
  354. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/serve/server/__init__.py +0 -0
  355. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/serve/server/core.py +0 -0
  356. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/serve/server/impl.py +0 -0
  357. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/serve/server/server.py +0 -0
  358. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/serve/service.py +0 -0
  359. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/serve/service_spec.py +0 -0
  360. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/serve/spot_placer.py +0 -0
  361. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/server/__init__.py +0 -0
  362. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/server/common.py +0 -0
  363. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/server/config.py +0 -0
  364. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/server/html/log.html +0 -0
  365. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/server/html/token_page.html +0 -0
  366. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/server/metrics.py +0 -0
  367. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/server/requests/__init__.py +0 -0
  368. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/server/requests/event_loop.py +0 -0
  369. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/server/requests/executor.py +0 -0
  370. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/server/requests/preconditions.py +0 -0
  371. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/server/requests/process.py +0 -0
  372. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/server/requests/queues/__init__.py +0 -0
  373. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/server/requests/queues/local_queue.py +0 -0
  374. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/server/requests/queues/mp_queue.py +0 -0
  375. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/server/requests/serializers/__init__.py +0 -0
  376. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/server/requests/serializers/decoders.py +0 -0
  377. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/server/requests/serializers/encoders.py +0 -0
  378. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/server/rest.py +0 -0
  379. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/server/state.py +0 -0
  380. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/server/stream_utils.py +0 -0
  381. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/server/versions.py +0 -0
  382. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/setup_files/MANIFEST.in +0 -0
  383. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/setup_files/alembic.ini +0 -0
  384. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/setup_files/setup.py +0 -0
  385. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/skylet/LICENSE +0 -0
  386. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/skylet/__init__.py +0 -0
  387. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/skylet/attempt_skylet.py +0 -0
  388. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/skylet/configs.py +0 -0
  389. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/skylet/job_lib.py +0 -0
  390. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/skylet/log_lib.py +0 -0
  391. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/skylet/log_lib.pyi +0 -0
  392. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/skylet/providers/__init__.py +0 -0
  393. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/skylet/providers/command_runner.py +0 -0
  394. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/skylet/providers/ibm/__init__.py +0 -0
  395. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/skylet/providers/ibm/node_provider.py +0 -0
  396. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/skylet/providers/ibm/utils.py +0 -0
  397. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/skylet/providers/ibm/vpc_provider.py +0 -0
  398. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/skylet/ray_patches/__init__.py +0 -0
  399. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/skylet/ray_patches/autoscaler.py.patch +0 -0
  400. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/skylet/ray_patches/cli.py.patch +0 -0
  401. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/skylet/ray_patches/command_runner.py.patch +0 -0
  402. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/skylet/ray_patches/log_monitor.py.patch +0 -0
  403. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/skylet/ray_patches/resource_demand_scheduler.py.patch +0 -0
  404. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/skylet/ray_patches/updater.py.patch +0 -0
  405. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/skylet/ray_patches/worker.py.patch +0 -0
  406. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/skylet/skylet.py +0 -0
  407. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/skylet/subprocess_daemon.py +0 -0
  408. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/skypilot_config.py +0 -0
  409. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/ssh_node_pools/__init__.py +0 -0
  410. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/ssh_node_pools/core.py +0 -0
  411. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/ssh_node_pools/server.py +0 -0
  412. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/task.py +0 -0
  413. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/templates/aws-ray.yml.j2 +0 -0
  414. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/templates/azure-ray.yml.j2 +0 -0
  415. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/templates/cudo-ray.yml.j2 +0 -0
  416. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/templates/do-ray.yml.j2 +0 -0
  417. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/templates/fluidstack-ray.yml.j2 +0 -0
  418. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/templates/gcp-ray.yml.j2 +0 -0
  419. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/templates/hyperbolic-ray.yml.j2 +0 -0
  420. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/templates/ibm-ray.yml.j2 +0 -0
  421. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/templates/jobs-controller.yaml.j2 +0 -0
  422. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/templates/kubernetes-ingress.yml.j2 +0 -0
  423. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/templates/kubernetes-port-forward-proxy-command.sh +0 -0
  424. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/templates/kubernetes-ray.yml.j2 +0 -0
  425. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/templates/kubernetes-ssh-jump.yml.j2 +0 -0
  426. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/templates/lambda-ray.yml.j2 +0 -0
  427. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/templates/local-ray.yml.j2 +0 -0
  428. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/templates/nebius-ray.yml.j2 +0 -0
  429. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/templates/oci-ray.yml.j2 +0 -0
  430. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/templates/paperspace-ray.yml.j2 +0 -0
  431. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/templates/runpod-ray.yml.j2 +0 -0
  432. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/templates/scp-ray.yml.j2 +0 -0
  433. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/templates/sky-serve-controller.yaml.j2 +0 -0
  434. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/templates/skypilot-server-kubernetes-proxy.sh +0 -0
  435. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/templates/vast-ray.yml.j2 +0 -0
  436. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/templates/vsphere-ray.yml.j2 +0 -0
  437. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/templates/websocket_proxy.py +0 -0
  438. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/usage/__init__.py +0 -0
  439. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/usage/constants.py +0 -0
  440. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/usage/usage_lib.py +0 -0
  441. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/users/__init__.py +0 -0
  442. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/users/model.conf +0 -0
  443. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/users/permission.py +0 -0
  444. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/users/rbac.py +0 -0
  445. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/users/server.py +0 -0
  446. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/users/token_service.py +0 -0
  447. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/__init__.py +0 -0
  448. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/accelerator_registry.py +0 -0
  449. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/admin_policy_utils.py +0 -0
  450. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/annotations.py +0 -0
  451. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/atomic.py +0 -0
  452. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/aws/__init__.py +0 -0
  453. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/aws/get_default_security_group.py +0 -0
  454. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/cli_utils/__init__.py +0 -0
  455. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/cli_utils/status_utils.py +0 -0
  456. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/cluster_utils.py +0 -0
  457. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/command_runner.py +0 -0
  458. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/command_runner.pyi +0 -0
  459. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/common.py +0 -0
  460. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/common_utils.py +0 -0
  461. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/config_utils.py +0 -0
  462. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/context.py +0 -0
  463. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/context_utils.py +0 -0
  464. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/control_master_utils.py +0 -0
  465. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/controller_utils.py +0 -0
  466. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/dag_utils.py +0 -0
  467. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/db/__init__.py +0 -0
  468. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/db/db_utils.py +0 -0
  469. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/db/migration_utils.py +0 -0
  470. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/env_options.py +0 -0
  471. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/git.py +0 -0
  472. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/git_clone.sh +0 -0
  473. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/infra_utils.py +0 -0
  474. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/kubernetes/__init__.py +0 -0
  475. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/kubernetes/cleanup-tunnel.sh +0 -0
  476. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/kubernetes/config_map_utils.py +0 -0
  477. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/kubernetes/create_cluster.sh +0 -0
  478. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/kubernetes/delete_cluster.sh +0 -0
  479. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/kubernetes/deploy_remote_cluster.py +0 -0
  480. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/kubernetes/exec_kubeconfig_converter.py +0 -0
  481. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/kubernetes/generate_kind_config.py +0 -0
  482. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/kubernetes/generate_kubeconfig.sh +0 -0
  483. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/kubernetes/gpu_labeler.py +0 -0
  484. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/kubernetes/k8s_gpu_labeler_job.yaml +0 -0
  485. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml +0 -0
  486. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/kubernetes/kubernetes_deploy_utils.py +0 -0
  487. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/kubernetes/rsync_helper.sh +0 -0
  488. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/kubernetes/ssh-tunnel.sh +0 -0
  489. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/kubernetes/ssh_jump_lifecycle_manager.py +0 -0
  490. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/kubernetes/ssh_utils.py +0 -0
  491. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/kubernetes_enums.py +0 -0
  492. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/locks.py +0 -0
  493. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/log_utils.py +0 -0
  494. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/message_utils.py +0 -0
  495. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/registry.py +0 -0
  496. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/resource_checker.py +0 -0
  497. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/resources_utils.py +0 -0
  498. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/rich_console_utils.py +0 -0
  499. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/rich_utils.py +0 -0
  500. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/status_lib.py +0 -0
  501. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/subprocess_utils.py +0 -0
  502. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/tempstore.py +0 -0
  503. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/timeline.py +0 -0
  504. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/ux_utils.py +0 -0
  505. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/validator.py +0 -0
  506. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/utils/volume.py +0 -0
  507. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/volumes/__init__.py +0 -0
  508. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/volumes/client/__init__.py +0 -0
  509. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/volumes/client/sdk.py +0 -0
  510. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/volumes/server/__init__.py +0 -0
  511. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/volumes/server/core.py +0 -0
  512. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/volumes/server/server.py +0 -0
  513. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/volumes/utils.py +0 -0
  514. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/volumes/volume.py +0 -0
  515. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/workspaces/__init__.py +0 -0
  516. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/workspaces/core.py +0 -0
  517. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/workspaces/server.py +0 -0
  518. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/sky/workspaces/utils.py +0 -0
  519. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/skypilot_nightly.egg-info/dependency_links.txt +0 -0
  520. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/skypilot_nightly.egg-info/entry_points.txt +0 -0
  521. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/skypilot_nightly.egg-info/top_level.txt +0 -0
  522. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/tests/test_api.py +0 -0
  523. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/tests/test_api_compatibility.py +0 -0
  524. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/tests/test_cli.py +0 -0
  525. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/tests/test_config.py +0 -0
  526. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/tests/test_db_utils.py +0 -0
  527. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/tests/test_failover.py +0 -0
  528. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/tests/test_global_user_state.py +0 -0
  529. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/tests/test_jobs.py +0 -0
  530. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/tests/test_jobs_and_serve.py +0 -0
  531. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/tests/test_list_accelerators.py +0 -0
  532. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/tests/test_no_parellel.py +0 -0
  533. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/tests/test_optimizer_dryruns.py +0 -0
  534. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/tests/test_optimizer_random_dag.py +0 -0
  535. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/tests/test_serve_autoscaler.py +0 -0
  536. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/tests/test_smoke.py +0 -0
  537. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/tests/test_storage.py +0 -0
  538. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/tests/test_wheels.py +0 -0
  539. {skypilot_nightly-1.0.0.dev20250731 → skypilot_nightly-1.0.0.dev20250802}/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.dev20250731
3
+ Version: 1.0.0.dev20250802
4
4
  Summary: SkyPilot: Run AI on Any Infra — Unified, Faster, Cheaper.
5
5
  Author: SkyPilot Team
6
6
  License: Apache 2.0
@@ -121,7 +121,7 @@ Requires-Dist: vastai-sdk>=0.1.12; extra == "vast"
121
121
  Provides-Extra: vsphere
122
122
  Requires-Dist: pyvmomi==8.0.1.0.2; extra == "vsphere"
123
123
  Provides-Extra: nebius
124
- Requires-Dist: nebius>=0.2.37; extra == "nebius"
124
+ Requires-Dist: nebius>=0.2.47; extra == "nebius"
125
125
  Requires-Dist: awscli>=1.27.10; extra == "nebius"
126
126
  Requires-Dist: botocore>=1.29.10; extra == "nebius"
127
127
  Requires-Dist: boto3>=1.26.1; extra == "nebius"
@@ -177,7 +177,7 @@ Requires-Dist: azure-core>=1.24.0; extra == "all"
177
177
  Requires-Dist: azure-common; extra == "all"
178
178
  Requires-Dist: vastai-sdk>=0.1.12; extra == "all"
179
179
  Requires-Dist: pyvmomi==8.0.1.0.2; extra == "all"
180
- Requires-Dist: nebius>=0.2.37; extra == "all"
180
+ Requires-Dist: nebius>=0.2.47; extra == "all"
181
181
  Requires-Dist: awscli>=1.27.10; extra == "all"
182
182
  Requires-Dist: botocore>=1.29.10; extra == "all"
183
183
  Requires-Dist: boto3>=1.26.1; extra == "all"
@@ -235,6 +235,7 @@ Dynamic: summary
235
235
  ----
236
236
 
237
237
  :fire: *News* :fire:
238
+ - [Jul 2025] Run distributed **RL training for LLMs** with Verl (PPO, GRPO) on any cloud: [**example**](./llm/verl/)
238
239
  - [Jul 2025] 🎉 SkyPilot v0.10.0 released! [**blog post**](https://blog.skypilot.co/announcing-skypilot-0.10.0/), [**release notes**](https://github.com/skypilot-org/skypilot/releases/tag/v0.10.0)
239
240
  - [Jul 2025] Finetune **Llama4** on any distributed cluster/cloud: [**example**](./llm/llama-4-finetuning/)
240
241
  - [Jul 2025] Two-part blog series, `The Evolution of AI Job Orchestration`: (1) [Running AI jobs on GPU Neoclouds](https://blog.skypilot.co/ai-job-orchestration-pt1-gpu-neoclouds/), (2) [The AI-Native Control Plane & Orchestration that Finally Works for ML](https://blog.skypilot.co/ai-job-orchestration-pt2-ai-control-plane/)
@@ -39,6 +39,7 @@
39
39
  ----
40
40
 
41
41
  :fire: *News* :fire:
42
+ - [Jul 2025] Run distributed **RL training for LLMs** with Verl (PPO, GRPO) on any cloud: [**example**](./llm/verl/)
42
43
  - [Jul 2025] 🎉 SkyPilot v0.10.0 released! [**blog post**](https://blog.skypilot.co/announcing-skypilot-0.10.0/), [**release notes**](https://github.com/skypilot-org/skypilot/releases/tag/v0.10.0)
43
44
  - [Jul 2025] Finetune **Llama4** on any distributed cluster/cloud: [**example**](./llm/llama-4-finetuning/)
44
45
  - [Jul 2025] Two-part blog series, `The Evolution of AI Job Orchestration`: (1) [Running AI jobs on GPU Neoclouds](https://blog.skypilot.co/ai-job-orchestration-pt1-gpu-neoclouds/), (2) [The AI-Native Control Plane & Orchestration that Finally Works for ML](https://blog.skypilot.co/ai-job-orchestration-pt2-ai-control-plane/)
@@ -5,7 +5,7 @@ from typing import Optional
5
5
  import urllib.request
6
6
 
7
7
  # Replaced with the current commit when building the wheels.
8
- _SKYPILOT_COMMIT_SHA = '913f9dd651a2c363231eef760675f1dae49270a1'
8
+ _SKYPILOT_COMMIT_SHA = '6ddfb3cd7d476b51f9309c547338407d6eca092c'
9
9
 
10
10
 
11
11
  def _get_git_commit():
@@ -35,7 +35,7 @@ def _get_git_commit():
35
35
 
36
36
 
37
37
  __commit__ = _get_git_commit()
38
- __version__ = '1.0.0.dev20250731'
38
+ __version__ = '1.0.0.dev20250802'
39
39
  __root_dir__ = os.path.dirname(os.path.abspath(__file__))
40
40
 
41
41
 
@@ -38,6 +38,7 @@ from sky.provision import instance_setup
38
38
  from sky.provision.kubernetes import utils as kubernetes_utils
39
39
  from sky.serve import serve_utils
40
40
  from sky.server.requests import requests as requests_lib
41
+ from sky.skylet import autostop_lib
41
42
  from sky.skylet import constants
42
43
  from sky.usage import usage_lib
43
44
  from sky.utils import cluster_utils
@@ -2238,7 +2239,11 @@ def _update_cluster_status(cluster_name: str) -> Optional[Dict[str, Any]]:
2238
2239
  success = True
2239
2240
  reset_local_autostop = True
2240
2241
  try:
2241
- backend.set_autostop(handle, -1, stream_logs=False)
2242
+ backend.set_autostop(
2243
+ handle,
2244
+ -1,
2245
+ autostop_lib.DEFAULT_AUTOSTOP_WAIT_FOR,
2246
+ stream_logs=False)
2242
2247
  except exceptions.CommandError as e:
2243
2248
  success = False
2244
2249
  if e.returncode == 255:
@@ -4650,6 +4650,7 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
4650
4650
  def set_autostop(self,
4651
4651
  handle: CloudVmRayResourceHandle,
4652
4652
  idle_minutes_to_autostop: Optional[int],
4653
+ wait_for: Optional[autostop_lib.AutostopWaitFor],
4653
4654
  down: bool = False,
4654
4655
  stream_logs: bool = True) -> None:
4655
4656
  # The core.autostop() function should have already checked that the
@@ -4697,7 +4698,7 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
4697
4698
  assert (handle.launched_resources is not None and
4698
4699
  handle.launched_resources.cloud is not None), handle
4699
4700
  code = autostop_lib.AutostopCodeGen.set_autostop(
4700
- idle_minutes_to_autostop, self.NAME, down)
4701
+ idle_minutes_to_autostop, self.NAME, wait_for, down)
4701
4702
  returncode, _, stderr = self.run_on_head(handle,
4702
4703
  code,
4703
4704
  require_outputs=True,
@@ -31,17 +31,19 @@ class PresetInfo:
31
31
  Attributes:
32
32
  region (str): The geographical region where the preset is available.
33
33
  fullname (str): The full name of the preset, a combination of platform
34
- and preset name.
34
+ and preset name.
35
35
  name (str): The name of the preset.
36
36
  platform_name (str): The name of the platform the preset belongs to.
37
37
  gpu (int): The number of GPUs in the preset.
38
38
  vcpu (int): The number of virtual CPUs in the preset.
39
39
  memory_gib (int): The amount of memory in GiB in the preset.
40
40
  accelerator_manufacturer (str | None): The manufacturer of the
41
- accelerator (e.g., "NVIDIA"), or None if no accelerator.
41
+ accelerator (e.g., "NVIDIA"), or None if no accelerator.
42
42
  accelerator_name (str | None): The name of the accelerator
43
- (e.g., "H100"), or None if no accelerator.
43
+ (e.g., "H100"), or None if no accelerator.
44
44
  price_hourly (decimal.Decimal): The hourly price of the preset.
45
+ spot_price (decimal.Decimal): The spot (preemptible) price
46
+ of the preset.
45
47
  """
46
48
 
47
49
  region: str
@@ -54,6 +56,7 @@ class PresetInfo:
54
56
  accelerator_manufacturer: Optional[str]
55
57
  accelerator_name: Optional[str]
56
58
  price_hourly: decimal.Decimal
59
+ spot_price: decimal.Decimal
57
60
 
58
61
 
59
62
  def _format_decimal(value: decimal.Decimal) -> str:
@@ -66,7 +69,7 @@ def _format_decimal(value: decimal.Decimal) -> str:
66
69
  Returns:
67
70
  str: The formatted string representation of the decimal.
68
71
  """
69
- formatted_value = f'{value:f}'.rstrip('0').rstrip('.')
72
+ formatted_value = f'{value:f}'
70
73
  integer_part, decimal_part = formatted_value.split(
71
74
  '.') if '.' in formatted_value else (formatted_value, '')
72
75
  if len(decimal_part) < 2:
@@ -111,20 +114,38 @@ def _estimate_platforms(platforms: List[Any], parent_id: str,
111
114
  preset=preset.name,
112
115
  )),
113
116
  ))
114
-
115
117
  price_request = billing().EstimateBatchRequest(
116
118
  resource_specs=[estimate_spec])
119
+
120
+ # Form the specification for the spot price request
121
+ spot_estimate_spec = billing().ResourceSpec(
122
+ compute_instance_spec=compute().CreateInstanceRequest(
123
+ metadata=nebius_common().ResourceMetadata(
124
+ parent_id=parent_id,),
125
+ spec=compute().InstanceSpec(
126
+ resources=compute().ResourcesSpec(
127
+ platform=platform_name,
128
+ preset=preset.name,
129
+ ),
130
+ preemptible=compute().PreemptibleSpec(priority=1),
131
+ ),
132
+ ))
133
+ spot_price_request = billing().EstimateBatchRequest(
134
+ resource_specs=[spot_estimate_spec])
135
+
117
136
  # Start future for each preset
118
137
  futures.append((
119
138
  platform,
120
139
  preset,
121
140
  calculator_service.estimate_batch(price_request,
122
141
  timeout=TIMEOUT),
142
+ calculator_service.estimate_batch(spot_price_request,
143
+ timeout=TIMEOUT),
123
144
  ))
124
145
 
125
146
  # wait all futures to complete and collect results
126
147
  result = []
127
- for platform, preset, future in futures:
148
+ for platform, preset, future, future_spot in futures:
128
149
  platform_name = platform.metadata.name
129
150
  result.append(
130
151
  PresetInfo(
@@ -141,6 +162,8 @@ def _estimate_platforms(platforms: List[Any], parent_id: str,
141
162
  if platform_name.startswith('gpu-') else '',
142
163
  price_hourly=decimal.Decimal(
143
164
  future.wait().hourly_cost.general.total.cost),
165
+ spot_price=decimal.Decimal(
166
+ future_spot.wait().hourly_cost.general.total.cost),
144
167
  ))
145
168
 
146
169
  return result
@@ -196,7 +219,8 @@ def _write_preset_prices(presets: List[PresetInfo], output_file: str) -> None:
196
219
  'Price': _format_decimal(preset.price_hourly),
197
220
  'Region': preset.region,
198
221
  'GpuInfo': gpu_info,
199
- 'SpotPrice': '',
222
+ 'SpotPrice': _format_decimal(preset.spot_price)
223
+ if preset.spot_price else '',
200
224
  })
201
225
 
202
226
 
@@ -62,7 +62,9 @@ from sky.provision.kubernetes import constants as kubernetes_constants
62
62
  from sky.provision.kubernetes import utils as kubernetes_utils
63
63
  from sky.server import common as server_common
64
64
  from sky.server import constants as server_constants
65
+ from sky.server import versions
65
66
  from sky.server.requests import requests
67
+ from sky.skylet import autostop_lib
66
68
  from sky.skylet import constants
67
69
  from sky.skylet import job_lib
68
70
  from sky.usage import usage_lib
@@ -1011,11 +1013,11 @@ def _handle_infra_cloud_region_zone_options(infra: Optional[str],
1011
1013
  required=False,
1012
1014
  help=('Automatically stop the cluster after this many minutes '
1013
1015
  'of idleness, i.e., no running or pending jobs in the cluster\'s job '
1014
- 'queue. Idleness gets reset whenever setting-up/running/pending jobs '
1015
- 'are found in the job queue. '
1016
+ 'queue. Idleness gets reset depending on the ``--wait-for`` flag. '
1016
1017
  'Setting this flag is equivalent to '
1017
1018
  'running ``sky launch -d ...`` and then ``sky autostop -i <minutes>``'
1018
1019
  '. If not set, the cluster will not be autostopped.'))
1020
+ @flags.wait_for_option('idle-minutes-to-autostop')
1019
1021
  @click.option(
1020
1022
  '--down',
1021
1023
  default=False,
@@ -1101,6 +1103,7 @@ def launch(
1101
1103
  network_tier: Optional[str],
1102
1104
  ports: Tuple[str, ...],
1103
1105
  idle_minutes_to_autostop: Optional[int],
1106
+ wait_for: Optional[str],
1104
1107
  down: bool, # pylint: disable=redefined-outer-name
1105
1108
  retry_until_up: bool,
1106
1109
  yes: bool,
@@ -1195,6 +1198,8 @@ def launch(
1195
1198
  cluster_name=cluster,
1196
1199
  backend=backend,
1197
1200
  idle_minutes_to_autostop=idle_minutes_to_autostop,
1201
+ wait_for=autostop_lib.AutostopWaitFor.from_str(wait_for)
1202
+ if wait_for is not None else None,
1198
1203
  down=down,
1199
1204
  retry_until_up=retry_until_up,
1200
1205
  no_setup=no_setup,
@@ -1827,6 +1832,9 @@ def status(verbose: bool, refresh: bool, ip: bool, endpoints: bool,
1827
1832
  show_endpoints = endpoints or endpoint is not None
1828
1833
  show_single_endpoint = endpoint is not None
1829
1834
  show_services = show_services and not any([clusters, ip, endpoints])
1835
+ remote_api_version = versions.get_remote_api_version()
1836
+ if remote_api_version is None or remote_api_version < 12:
1837
+ show_pools = False
1830
1838
 
1831
1839
  query_clusters: Optional[List[str]] = None if not clusters else clusters
1832
1840
  refresh_mode = common.StatusRefreshMode.NONE
@@ -2545,6 +2553,7 @@ def stop(
2545
2553
  required=False,
2546
2554
  help=('Set the idle minutes before autostopping the cluster. '
2547
2555
  'See the doc above for detailed semantics.'))
2556
+ @flags.wait_for_option('idle-minutes')
2548
2557
  @click.option(
2549
2558
  '--cancel',
2550
2559
  default=False,
@@ -2567,6 +2576,7 @@ def autostop(
2567
2576
  all: bool, # pylint: disable=redefined-builtin
2568
2577
  all_users: bool,
2569
2578
  idle_minutes: Optional[int],
2579
+ wait_for: Optional[str],
2570
2580
  cancel: bool, # pylint: disable=redefined-outer-name
2571
2581
  down: bool, # pylint: disable=redefined-outer-name
2572
2582
  yes: bool,
@@ -2576,8 +2586,7 @@ def autostop(
2576
2586
  """Schedule an autostop or autodown for cluster(s).
2577
2587
 
2578
2588
  Autostop/autodown will automatically stop or teardown a cluster when it
2579
- becomes idle for a specified duration. Idleness means there are no
2580
- in-progress (pending/running) jobs in a cluster's job queue.
2589
+ becomes idle for a specified duration.
2581
2590
 
2582
2591
  CLUSTERS are the names (or glob patterns) of the clusters to stop. If both
2583
2592
  CLUSTERS and ``--all`` are supplied, the latter takes precedence.
@@ -2590,6 +2599,11 @@ def autostop(
2590
2599
 
2591
2600
  - An autostop idle time is set.
2592
2601
 
2602
+ - An SSH session is active (To disable this, set ``--wait-for jobs``).
2603
+
2604
+ To disable the idleness timer completely and set a hard time limit, set
2605
+ ``--wait-for none``.
2606
+
2593
2607
  Example 1: say a cluster with autostop set to 2 hours has been idle for 1
2594
2608
  hour, then autostop is reset to 30 minutes. The cluster will not be
2595
2609
  immediately autostopped. Instead, the idleness timer restarts counting
@@ -2610,6 +2624,9 @@ def autostop(
2610
2624
  # Cancel autostop for a specific cluster.
2611
2625
  sky autostop cluster_name --cancel
2612
2626
  \b
2627
+ # Autostop this cluster after 60 minutes, regardless of activity.
2628
+ sky autostop cluster_name -i 60 --wait-for none
2629
+ \b
2613
2630
  # Autodown this cluster after 60 minutes of idleness.
2614
2631
  sky autostop cluster_name -i 60 --down
2615
2632
  """
@@ -2621,13 +2638,16 @@ def autostop(
2621
2638
  idle_minutes = -1
2622
2639
  elif idle_minutes is None:
2623
2640
  idle_minutes = 5
2624
- _down_or_stop_clusters(clusters,
2625
- apply_to_all=all,
2626
- all_users=all_users,
2627
- down=down,
2628
- no_confirm=yes,
2629
- idle_minutes_to_autostop=idle_minutes,
2630
- async_call=async_call)
2641
+ _down_or_stop_clusters(
2642
+ clusters,
2643
+ apply_to_all=all,
2644
+ all_users=all_users,
2645
+ down=down,
2646
+ no_confirm=yes,
2647
+ idle_minutes_to_autostop=idle_minutes,
2648
+ wait_for=autostop_lib.AutostopWaitFor.from_str(wait_for)
2649
+ if wait_for is not None else None,
2650
+ async_call=async_call)
2631
2651
 
2632
2652
 
2633
2653
  @cli.command(cls=_DocumentedCodeCommand)
@@ -2646,11 +2666,11 @@ def autostop(
2646
2666
  required=False,
2647
2667
  help=('Automatically stop the cluster after this many minutes '
2648
2668
  'of idleness, i.e., no running or pending jobs in the cluster\'s job '
2649
- 'queue. Idleness gets reset whenever setting-up/running/pending jobs '
2650
- 'are found in the job queue. '
2669
+ 'queue. Idleness gets reset depending on the ``--wait-for`` flag. '
2651
2670
  'Setting this flag is equivalent to '
2652
2671
  'running ``sky launch -d ...`` and then ``sky autostop -i <minutes>``'
2653
2672
  '. If not set, the cluster will not be autostopped.'))
2673
+ @flags.wait_for_option('idle-minutes-to-autostop')
2654
2674
  @click.option(
2655
2675
  '--down',
2656
2676
  default=False,
@@ -2689,6 +2709,7 @@ def start(
2689
2709
  all: bool,
2690
2710
  yes: bool,
2691
2711
  idle_minutes_to_autostop: Optional[int],
2712
+ wait_for: Optional[str],
2692
2713
  down: bool, # pylint: disable=redefined-outer-name
2693
2714
  retry_until_up: bool,
2694
2715
  force: bool,
@@ -2848,6 +2869,8 @@ def start(
2848
2869
  request_ids = subprocess_utils.run_in_parallel(
2849
2870
  lambda name: sdk.start(name,
2850
2871
  idle_minutes_to_autostop,
2872
+ autostop_lib.AutostopWaitFor.from_str(wait_for)
2873
+ if wait_for is not None else None,
2851
2874
  retry_until_up,
2852
2875
  down=down,
2853
2876
  force=force), to_start)
@@ -3077,6 +3100,7 @@ def _down_or_stop_clusters(
3077
3100
  no_confirm: bool = True,
3078
3101
  purge: bool = False,
3079
3102
  idle_minutes_to_autostop: Optional[int] = None,
3103
+ wait_for: Optional[autostop_lib.AutostopWaitFor] = None,
3080
3104
  async_call: bool = False) -> None:
3081
3105
  """Tears down or (auto-)stops a cluster (or all clusters).
3082
3106
 
@@ -3094,6 +3118,7 @@ def _down_or_stop_clusters(
3094
3118
  purge: If True, forcefully remove the clusters from the cluster table.
3095
3119
  idle_minutes_to_autostop: The number of minutes to wait before
3096
3120
  automatically stopping the cluster.
3121
+ wait_for: Determines the condition for resetting the idleness timer.
3097
3122
  async_call: If True, send the request asynchronously.
3098
3123
  """
3099
3124
  if down:
@@ -3237,7 +3262,8 @@ def _down_or_stop_clusters(
3237
3262
  success_progress = False
3238
3263
  if idle_minutes_to_autostop is not None:
3239
3264
  try:
3240
- request_id = sdk.autostop(name, idle_minutes_to_autostop, down)
3265
+ request_id = sdk.autostop(name, idle_minutes_to_autostop,
3266
+ wait_for, down)
3241
3267
  request_ids.append(request_id)
3242
3268
  _async_call_or_wait(
3243
3269
  request_id, async_call,
@@ -7,6 +7,7 @@ import click
7
7
  import dotenv
8
8
 
9
9
  from sky import skypilot_config
10
+ from sky.skylet import autostop_lib
10
11
  from sky.utils import resources_utils
11
12
 
12
13
 
@@ -340,3 +341,17 @@ def all_users_option(helptext: Optional[str] = None):
340
341
  help=helptext)(func)
341
342
 
342
343
  return return_option_decorator
344
+
345
+
346
+ def wait_for_option(pair: str):
347
+ """A decorator for the --wait-for option."""
348
+
349
+ def return_option_decorator(func):
350
+ return click.option(
351
+ '--wait-for',
352
+ type=click.Choice(autostop_lib.AutostopWaitFor.supported_modes()),
353
+ default=None,
354
+ required=False,
355
+ help=autostop_lib.AutostopWaitFor.cli_help_message(pair=pair))(func)
356
+
357
+ return return_option_decorator
@@ -10,19 +10,14 @@ Usage example:
10
10
  statuses = sky.get(request_id)
11
11
 
12
12
  """
13
- import base64
14
- import binascii
15
13
  from http import cookiejar
16
14
  import json
17
15
  import logging
18
16
  import os
19
- import pathlib
20
17
  import subprocess
21
- import time
22
18
  import typing
23
19
  from typing import Any, Dict, List, Optional, Tuple, Union
24
20
  from urllib import parse as urlparse
25
- import webbrowser
26
21
 
27
22
  import click
28
23
  import colorama
@@ -37,8 +32,10 @@ from sky.client import common as client_common
37
32
  from sky.client import oauth as oauth_lib
38
33
  from sky.server import common as server_common
39
34
  from sky.server import rest
35
+ from sky.server import versions
40
36
  from sky.server.requests import payloads
41
37
  from sky.server.requests import requests as requests_lib
38
+ from sky.skylet import autostop_lib
42
39
  from sky.skylet import constants
43
40
  from sky.usage import usage_lib
44
41
  from sky.utils import admin_policy_utils
@@ -57,7 +54,12 @@ from sky.utils import ux_utils
57
54
  from sky.utils.kubernetes import ssh_utils
58
55
 
59
56
  if typing.TYPE_CHECKING:
57
+ import base64
58
+ import binascii
60
59
  import io
60
+ import pathlib
61
+ import time
62
+ import webbrowser
61
63
 
62
64
  import psutil
63
65
  import requests
@@ -65,6 +67,14 @@ if typing.TYPE_CHECKING:
65
67
  import sky
66
68
  from sky import backends
67
69
  else:
70
+ # only used in api_login()
71
+ base64 = adaptors_common.LazyImport('base64')
72
+ binascii = adaptors_common.LazyImport('binascii')
73
+ pathlib = adaptors_common.LazyImport('pathlib')
74
+ time = adaptors_common.LazyImport('time')
75
+ # only used in dashboard() and api_login()
76
+ webbrowser = adaptors_common.LazyImport('webbrowser')
77
+ # only used in api_stop()
68
78
  psutil = adaptors_common.LazyImport('psutil')
69
79
 
70
80
  logger = sky_logging.init_logger(__name__)
@@ -375,6 +385,7 @@ def launch(
375
385
  cluster_name: Optional[str] = None,
376
386
  retry_until_up: bool = False,
377
387
  idle_minutes_to_autostop: Optional[int] = None,
388
+ wait_for: Optional[autostop_lib.AutostopWaitFor] = None,
378
389
  dryrun: bool = False,
379
390
  down: bool = False, # pylint: disable=redefined-outer-name
380
391
  backend: Optional['backends.Backend'] = None,
@@ -424,6 +435,15 @@ def launch(
424
435
  ``sky.autostop(idle_minutes=<minutes>)``. If set, the autostop
425
436
  config specified in the task' resources will be overridden by
426
437
  this parameter.
438
+ wait_for: determines the condition for resetting the idleness timer.
439
+ This option works in conjunction with ``idle_minutes_to_autostop``.
440
+ Choices:
441
+
442
+ 1. "jobs_and_ssh" (default) - Wait for all jobs to complete
443
+ AND all SSH sessions to disconnect.
444
+ 2. "jobs" - Wait for all jobs to complete.
445
+ 3. "none" - Stop immediately after idle time expires,
446
+ regardless of running jobs or SSH connections.
427
447
  dryrun: if True, do not actually launch the cluster.
428
448
  down: Tear down the cluster after all jobs finish (successfully or
429
449
  abnormally). If --idle-minutes-to-autostop is also set, the
@@ -487,12 +507,27 @@ def launch(
487
507
  raise NotImplementedError('clone_disk_from is not implemented yet. '
488
508
  'Please contact the SkyPilot team if you '
489
509
  'need this feature at slack.skypilot.co.')
510
+
511
+ remote_api_version = versions.get_remote_api_version()
512
+ if wait_for is not None and (remote_api_version is None or
513
+ remote_api_version < 13):
514
+ logger.warning('wait_for is not supported in your API server. '
515
+ 'Please upgrade to a newer API server to use it.')
516
+
490
517
  dag = dag_utils.convert_entrypoint_to_dag(task)
491
518
  # Override the autostop config from command line flags to task YAML.
492
519
  for task in dag.tasks:
493
520
  for resource in task.resources:
494
- resource.override_autostop_config(
495
- down=down, idle_minutes=idle_minutes_to_autostop)
521
+ if remote_api_version is None or remote_api_version < 13:
522
+ # An older server would not recognize the wait_for field
523
+ # in the schema, so we need to omit it.
524
+ resource.override_autostop_config(
525
+ down=down, idle_minutes=idle_minutes_to_autostop)
526
+ else:
527
+ resource.override_autostop_config(
528
+ down=down,
529
+ idle_minutes=idle_minutes_to_autostop,
530
+ wait_for=wait_for)
496
531
  if resource.autostop_config is not None:
497
532
  # For backward-compatbility, get the final autostop config for
498
533
  # admin policy.
@@ -825,6 +860,7 @@ def download_logs(cluster_name: str,
825
860
  def start(
826
861
  cluster_name: str,
827
862
  idle_minutes_to_autostop: Optional[int] = None,
863
+ wait_for: Optional[autostop_lib.AutostopWaitFor] = None,
828
864
  retry_until_up: bool = False,
829
865
  down: bool = False, # pylint: disable=redefined-outer-name
830
866
  force: bool = False,
@@ -851,6 +887,15 @@ def start(
851
887
  flag is equivalent to running ``sky.launch()`` and then
852
888
  ``sky.autostop(idle_minutes=<minutes>)``. If not set, the
853
889
  cluster will not be autostopped.
890
+ wait_for: determines the condition for resetting the idleness timer.
891
+ This option works in conjunction with ``idle_minutes_to_autostop``.
892
+ Choices:
893
+
894
+ 1. "jobs_and_ssh" (default) - Wait for all jobs to complete
895
+ AND all SSH sessions to disconnect.
896
+ 2. "jobs" - Wait for all jobs to complete.
897
+ 3. "none" - Stop immediately after idle time expires,
898
+ regardless of running jobs or SSH connections.
854
899
  retry_until_up: whether to retry launching the cluster until it is
855
900
  up.
856
901
  down: Autodown the cluster: tear down the cluster after specified
@@ -879,9 +924,16 @@ def start(
879
924
  sky.exceptions.ClusterOwnerIdentitiesMismatchError: if the cluster to
880
925
  restart was launched by a different user.
881
926
  """
927
+ remote_api_version = versions.get_remote_api_version()
928
+ if wait_for is not None and (remote_api_version is None or
929
+ remote_api_version < 13):
930
+ logger.warning('wait_for is not supported in your API server. '
931
+ 'Please upgrade to a newer API server to use it.')
932
+
882
933
  body = payloads.StartBody(
883
934
  cluster_name=cluster_name,
884
935
  idle_minutes_to_autostop=idle_minutes_to_autostop,
936
+ wait_for=wait_for,
885
937
  retry_until_up=retry_until_up,
886
938
  down=down,
887
939
  force=force,
@@ -982,9 +1034,10 @@ def stop(cluster_name: str, purge: bool = False) -> server_common.RequestId:
982
1034
  @server_common.check_server_healthy_or_start
983
1035
  @annotations.client_api
984
1036
  def autostop(
985
- cluster_name: str,
986
- idle_minutes: int,
987
- down: bool = False # pylint: disable=redefined-outer-name
1037
+ cluster_name: str,
1038
+ idle_minutes: int,
1039
+ wait_for: Optional[autostop_lib.AutostopWaitFor] = None,
1040
+ down: bool = False, # pylint: disable=redefined-outer-name
988
1041
  ) -> server_common.RequestId:
989
1042
  """Schedules an autostop/autodown for a cluster.
990
1043
 
@@ -1015,6 +1068,15 @@ def autostop(
1015
1068
  idle_minutes: the number of minutes of idleness (no pending/running
1016
1069
  jobs) after which the cluster will be stopped automatically. Setting
1017
1070
  to a negative number cancels any autostop/autodown setting.
1071
+ wait_for: determines the condition for resetting the idleness timer.
1072
+ This option works in conjunction with ``idle_minutes``.
1073
+ Choices:
1074
+
1075
+ 1. "jobs_and_ssh" (default) - Wait for all jobs to complete
1076
+ AND all SSH sessions to disconnect.
1077
+ 2. "jobs" - Wait for all jobs to complete.
1078
+ 3. "none" - Stop immediately after idle time expires,
1079
+ regardless of running jobs or SSH connections.
1018
1080
  down: if true, use autodown (tear down the cluster; non-restartable),
1019
1081
  rather than autostop (restartable).
1020
1082
 
@@ -1034,9 +1096,16 @@ def autostop(
1034
1096
  sky.exceptions.CloudUserIdentityError: if we fail to get the current
1035
1097
  user identity.
1036
1098
  """
1099
+ remote_api_version = versions.get_remote_api_version()
1100
+ if wait_for is not None and (remote_api_version is None or
1101
+ remote_api_version < 13):
1102
+ logger.warning('wait_for is not supported in your API server. '
1103
+ 'Please upgrade to a newer API server to use it.')
1104
+
1037
1105
  body = payloads.AutostopBody(
1038
1106
  cluster_name=cluster_name,
1039
1107
  idle_minutes=idle_minutes,
1108
+ wait_for=wait_for,
1040
1109
  down=down,
1041
1110
  )
1042
1111
  response = server_common.make_authenticated_request(
@@ -2343,6 +2412,7 @@ def api_login(endpoint: Optional[str] = None,
2343
2412
  _save_config_updates(endpoint=endpoint)
2344
2413
  dashboard_url = server_common.get_dashboard_url(endpoint)
2345
2414
 
2415
+ server_common.get_api_server_status.cache_clear()
2346
2416
  # After successful authentication, check server health again to get user
2347
2417
  # identity
2348
2418
  server_status, final_api_server_info = server_common.check_server_healthy(
@@ -14,6 +14,7 @@ from sky import skypilot_config as skypilot_config
14
14
  from sky.server import common as server_common
15
15
  from sky.server import rest as rest
16
16
  from sky.server.requests import payloads as payloads
17
+ from sky.skylet import autostop_lib as autostop_lib
17
18
  from sky.skylet import constants as constants
18
19
  from sky.usage import usage_lib as usage_lib
19
20
  from sky.utils import admin_policy_utils as admin_policy_utils
@@ -104,6 +105,7 @@ def launch(task: Union['sky.Task', 'sky.Dag'],
104
105
  cluster_name: Optional[str] = ...,
105
106
  retry_until_up: bool = ...,
106
107
  idle_minutes_to_autostop: Optional[int] = ...,
108
+ wait_for: Optional[autostop_lib.AutostopWaitFor] = ...,
107
109
  dryrun: bool = ...,
108
110
  down: bool = ...,
109
111
  backend: Optional['backends.Backend'] = ...,
@@ -142,6 +144,7 @@ def download_logs(cluster_name: str,
142
144
 
143
145
  def start(cluster_name: str,
144
146
  idle_minutes_to_autostop: Optional[int] = ...,
147
+ wait_for: Optional[autostop_lib.AutostopWaitFor] = ...,
145
148
  retry_until_up: bool = ...,
146
149
  down: bool = ...,
147
150
  force: bool = ...) -> server_common.RequestId:
@@ -158,6 +161,7 @@ def stop(cluster_name: str, purge: bool = ...) -> server_common.RequestId:
158
161
 
159
162
  def autostop(cluster_name: str,
160
163
  idle_minutes: int,
164
+ wait_for: Optional[autostop_lib.AutostopWaitFor] = ...,
161
165
  down: bool = ...) -> server_common.RequestId:
162
166
  ...
163
167