skypilot-nightly 1.0.0.dev20250826__tar.gz → 1.0.0.dev20250828__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 (567) hide show
  1. {skypilot_nightly-1.0.0.dev20250826/skypilot_nightly.egg-info → skypilot_nightly-1.0.0.dev20250828}/PKG-INFO +2 -1
  2. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/__init__.py +2 -2
  3. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/admin_policy.py +11 -10
  4. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/authentication.py +4 -10
  5. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/backends/backend.py +3 -5
  6. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/backends/backend_utils.py +41 -56
  7. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/backends/cloud_vm_ray_backend.py +13 -24
  8. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/backends/local_docker_backend.py +3 -8
  9. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/client/cli/command.py +43 -10
  10. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/client/common.py +41 -14
  11. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/client/sdk.py +24 -9
  12. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/client/sdk_async.py +6 -2
  13. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/clouds/aws.py +1 -1
  14. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/clouds/cloud.py +15 -0
  15. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/clouds/kubernetes.py +27 -0
  16. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/clouds/ssh.py +2 -3
  17. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/core.py +1 -4
  18. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/404.html +1 -1
  19. skypilot_nightly-1.0.0.dev20250826/sky/dashboard/out/_next/static/chunks/webpack-6e76f636a048e145.js → skypilot_nightly-1.0.0.dev20250828/sky/dashboard/out/_next/static/chunks/webpack-6dae1cd599a34def.js +1 -1
  20. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/clusters/[cluster]/[job].html +1 -1
  21. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/clusters/[cluster].html +1 -1
  22. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/clusters.html +1 -1
  23. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/config.html +1 -1
  24. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/index.html +1 -1
  25. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/infra/[context].html +1 -1
  26. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/infra.html +1 -1
  27. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/jobs/[job].html +1 -1
  28. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/jobs/pools/[pool].html +1 -1
  29. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/jobs.html +1 -1
  30. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/users.html +1 -1
  31. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/volumes.html +1 -1
  32. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/workspace/new.html +1 -1
  33. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/workspaces/[name].html +1 -1
  34. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/workspaces.html +1 -1
  35. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/global_user_state.py +127 -23
  36. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/jobs/client/sdk.py +5 -2
  37. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/jobs/recovery_strategy.py +9 -4
  38. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/logs/agent.py +2 -2
  39. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/logs/aws.py +6 -3
  40. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/do/utils.py +2 -1
  41. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/kubernetes/config.py +2 -8
  42. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/kubernetes/instance.py +58 -8
  43. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/kubernetes/network_utils.py +3 -4
  44. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/kubernetes/utils.py +8 -7
  45. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/nebius/utils.py +51 -9
  46. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/vsphere/vsphere_utils.py +2 -8
  47. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/schemas/api/responses.py +7 -0
  48. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/serve/client/impl.py +5 -4
  49. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/serve/replica_managers.py +4 -3
  50. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/serve/serve_utils.py +4 -4
  51. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/serve/server/impl.py +3 -2
  52. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/serve/service_spec.py +2 -8
  53. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/server/auth/authn.py +4 -0
  54. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/server/auth/oauth2_proxy.py +10 -4
  55. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/server/common.py +10 -3
  56. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/server/daemons.py +10 -5
  57. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/server/requests/executor.py +6 -1
  58. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/server/requests/requests.py +21 -0
  59. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/server/server.py +34 -33
  60. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/server/uvicorn.py +33 -0
  61. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/setup_files/dependencies.py +1 -0
  62. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/sky_logging.py +4 -1
  63. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/skylet/events.py +4 -5
  64. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/skypilot_config.py +14 -12
  65. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/ssh_node_pools/core.py +3 -1
  66. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/task.py +4 -10
  67. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/templates/nebius-ray.yml.j2 +4 -8
  68. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/usage/usage_lib.py +3 -2
  69. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/users/server.py +6 -6
  70. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/common_utils.py +0 -71
  71. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/controller_utils.py +4 -3
  72. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/dag_utils.py +4 -4
  73. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/kubernetes/config_map_utils.py +3 -3
  74. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/schemas.py +3 -0
  75. skypilot_nightly-1.0.0.dev20250828/sky/utils/yaml_utils.py +102 -0
  76. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/volumes/volume.py +8 -3
  77. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828/skypilot_nightly.egg-info}/PKG-INFO +2 -1
  78. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/skypilot_nightly.egg-info/SOURCES.txt +4 -3
  79. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/skypilot_nightly.egg-info/requires.txt +1 -0
  80. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/tests/test_config.py +6 -6
  81. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/tests/test_global_user_state.py +4 -1
  82. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/LICENSE +0 -0
  83. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/MANIFEST.in +0 -0
  84. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/README.md +0 -0
  85. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/pyproject.toml +0 -0
  86. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/setup.cfg +0 -0
  87. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/setup.py +0 -0
  88. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/adaptors/__init__.py +0 -0
  89. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/adaptors/aws.py +0 -0
  90. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/adaptors/azure.py +0 -0
  91. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/adaptors/cloudflare.py +0 -0
  92. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/adaptors/common.py +0 -0
  93. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/adaptors/cudo.py +0 -0
  94. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/adaptors/do.py +0 -0
  95. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/adaptors/docker.py +0 -0
  96. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/adaptors/gcp.py +0 -0
  97. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/adaptors/hyperbolic.py +0 -0
  98. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/adaptors/ibm.py +0 -0
  99. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/adaptors/kubernetes.py +0 -0
  100. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/adaptors/nebius.py +0 -0
  101. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/adaptors/oci.py +0 -0
  102. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/adaptors/runpod.py +0 -0
  103. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/adaptors/vast.py +0 -0
  104. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/adaptors/vsphere.py +0 -0
  105. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/backends/__init__.py +0 -0
  106. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/backends/docker_utils.py +0 -0
  107. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/backends/monkey_patches/monkey_patch_ray_up.py +0 -0
  108. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/backends/wheel_utils.py +0 -0
  109. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/catalog/__init__.py +0 -0
  110. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/catalog/aws_catalog.py +0 -0
  111. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/catalog/azure_catalog.py +0 -0
  112. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/catalog/common.py +0 -0
  113. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/catalog/config.py +0 -0
  114. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/catalog/cudo_catalog.py +0 -0
  115. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/catalog/data_fetchers/__init__.py +0 -0
  116. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/catalog/data_fetchers/analyze.py +0 -0
  117. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/catalog/data_fetchers/fetch_aws.py +0 -0
  118. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/catalog/data_fetchers/fetch_azure.py +0 -0
  119. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/catalog/data_fetchers/fetch_cudo.py +0 -0
  120. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/catalog/data_fetchers/fetch_fluidstack.py +0 -0
  121. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/catalog/data_fetchers/fetch_gcp.py +0 -0
  122. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/catalog/data_fetchers/fetch_hyperbolic.py +0 -0
  123. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/catalog/data_fetchers/fetch_ibm.py +0 -0
  124. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/catalog/data_fetchers/fetch_lambda_cloud.py +0 -0
  125. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/catalog/data_fetchers/fetch_nebius.py +0 -0
  126. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/catalog/data_fetchers/fetch_vast.py +0 -0
  127. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/catalog/data_fetchers/fetch_vsphere.py +0 -0
  128. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/catalog/do_catalog.py +0 -0
  129. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/catalog/fluidstack_catalog.py +0 -0
  130. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/catalog/gcp_catalog.py +0 -0
  131. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/catalog/hyperbolic_catalog.py +0 -0
  132. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/catalog/ibm_catalog.py +0 -0
  133. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/catalog/kubernetes_catalog.py +0 -0
  134. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/catalog/lambda_catalog.py +0 -0
  135. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/catalog/nebius_catalog.py +0 -0
  136. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/catalog/oci_catalog.py +0 -0
  137. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/catalog/paperspace_catalog.py +0 -0
  138. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/catalog/runpod_catalog.py +0 -0
  139. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/catalog/scp_catalog.py +0 -0
  140. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/catalog/ssh_catalog.py +0 -0
  141. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/catalog/vast_catalog.py +0 -0
  142. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/catalog/vsphere_catalog.py +0 -0
  143. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/check.py +0 -0
  144. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/cli.py +0 -0
  145. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/client/__init__.py +0 -0
  146. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/client/cli/__init__.py +0 -0
  147. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/client/cli/deprecation_utils.py +0 -0
  148. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/client/cli/flags.py +0 -0
  149. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/client/cli/git.py +0 -0
  150. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/client/oauth.py +0 -0
  151. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/client/service_account_auth.py +0 -0
  152. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/cloud_stores.py +0 -0
  153. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/clouds/__init__.py +0 -0
  154. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/clouds/azure.py +0 -0
  155. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/clouds/cudo.py +0 -0
  156. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/clouds/do.py +0 -0
  157. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/clouds/fluidstack.py +0 -0
  158. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/clouds/gcp.py +0 -0
  159. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/clouds/hyperbolic.py +0 -0
  160. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/clouds/ibm.py +0 -0
  161. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/clouds/lambda_cloud.py +0 -0
  162. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/clouds/nebius.py +0 -0
  163. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/clouds/oci.py +0 -0
  164. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/clouds/paperspace.py +0 -0
  165. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/clouds/runpod.py +0 -0
  166. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/clouds/scp.py +0 -0
  167. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/clouds/utils/__init__.py +0 -0
  168. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/clouds/utils/aws_utils.py +0 -0
  169. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/clouds/utils/azure_utils.py +0 -0
  170. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/clouds/utils/gcp_utils.py +0 -0
  171. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/clouds/utils/oci_utils.py +0 -0
  172. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/clouds/utils/scp_utils.py +0 -0
  173. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/clouds/vast.py +0 -0
  174. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/clouds/vsphere.py +0 -0
  175. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dag.py +0 -0
  176. {skypilot_nightly-1.0.0.dev20250826/sky/dashboard/out/_next/static/TPMkEeuj85tHTmIW7Gu3S → skypilot_nightly-1.0.0.dev20250828/sky/dashboard/out/_next/static/9DW6d9jaP2kZt0NcgIfFa}/_buildManifest.js +0 -0
  177. {skypilot_nightly-1.0.0.dev20250826/sky/dashboard/out/_next/static/TPMkEeuj85tHTmIW7Gu3S → skypilot_nightly-1.0.0.dev20250828/sky/dashboard/out/_next/static/9DW6d9jaP2kZt0NcgIfFa}/_ssgManifest.js +0 -0
  178. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/1121-8afcf719ea87debc.js +0 -0
  179. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/1141-943efc7aff0f0c06.js +0 -0
  180. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/1272-1ef0bf0237faccdb.js +0 -0
  181. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/2350.fab69e61bac57b23.js +0 -0
  182. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/3015-6c9c09593b1e67b6.js +0 -0
  183. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/3785.d5b86f6ebc88e6e6.js +0 -0
  184. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/3850-ff4a9a69d978632b.js +0 -0
  185. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/3937.210053269f121201.js +0 -0
  186. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/4045.b30465273dc5e468.js +0 -0
  187. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/4676-9da7fdbde90b5549.js +0 -0
  188. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/4725.10f7a9a5d3ea8208.js +0 -0
  189. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/4783.c485f48348349f47.js +0 -0
  190. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/5739-d67458fcb1386c92.js +0 -0
  191. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/6130-2be46d70a38f1e82.js +0 -0
  192. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/6135-4b4d5e824b7f9d3c.js +0 -0
  193. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/616-3d59f75e2ccf9321.js +0 -0
  194. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/6601-06114c982db410b6.js +0 -0
  195. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/6856-049014c6d43d127b.js +0 -0
  196. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/6989-01359c57e018caa4.js +0 -0
  197. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/6990-08b2a1cae076a943.js +0 -0
  198. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/7205-88191679e7988c57.js +0 -0
  199. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/7325.b4bc99ce0892dcd5.js +0 -0
  200. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/7411-b15471acd2cba716.js +0 -0
  201. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/754-d0da8ab45f9509e9.js +0 -0
  202. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/7669.1f5d9a402bf5cc42.js +0 -0
  203. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/8969-4a6f1a928fb6d370.js +0 -0
  204. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/9025.a1bef12d672bb66d.js +0 -0
  205. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/9037-89a84fd7fa31362d.js +0 -0
  206. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/9946.3b7b43c217ff70ec.js +0 -0
  207. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/9984.7eb6cc51fb460cae.js +0 -0
  208. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/fd9d1056-86323a29a8f7e46a.js +0 -0
  209. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/framework-cf60a09ccd051a10.js +0 -0
  210. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/main-app-587214043926b3cc.js +0 -0
  211. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/main-f15ccb73239a3bf1.js +0 -0
  212. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/pages/_app-ce361c6959bc2001.js +0 -0
  213. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/pages/_error-c66a4e8afc46f17b.js +0 -0
  214. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-06afb50d25f7c61f.js +0 -0
  215. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-a0527109c2fab467.js +0 -0
  216. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/pages/clusters-469814d711d63b1b.js +0 -0
  217. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/pages/config-dfb9bf07b13045f4.js +0 -0
  218. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/pages/index-444f1804401f04ea.js +0 -0
  219. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/pages/infra/[context]-81351f95f3bec08e.js +0 -0
  220. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/pages/infra-c320641c2bcbbea6.js +0 -0
  221. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-dd64309c3fe67ed2.js +0 -0
  222. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/pages/jobs/pools/[pool]-07349868f7905d37.js +0 -0
  223. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/pages/jobs-7421e63ac35f8fce.js +0 -0
  224. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/pages/users-018bf31cda52e11b.js +0 -0
  225. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/pages/volumes-739726d6b823f532.js +0 -0
  226. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/pages/workspace/new-3f88a1c7e86a3f86.js +0 -0
  227. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/pages/workspaces/[name]-de06e613e20bc977.js +0 -0
  228. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/pages/workspaces-be35b22e2046564c.js +0 -0
  229. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js +0 -0
  230. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/_next/static/css/4614e06482d7309e.css +0 -0
  231. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/favicon.ico +0 -0
  232. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/skypilot.svg +0 -0
  233. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/dashboard/out/videos/cursor-small.mp4 +0 -0
  234. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/data/__init__.py +0 -0
  235. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/data/data_transfer.py +0 -0
  236. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/data/data_utils.py +0 -0
  237. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/data/mounting_utils.py +0 -0
  238. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/data/storage.py +0 -0
  239. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/data/storage_utils.py +0 -0
  240. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/exceptions.py +0 -0
  241. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/execution.py +0 -0
  242. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/jobs/__init__.py +0 -0
  243. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/jobs/client/__init__.py +0 -0
  244. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/jobs/client/sdk_async.py +0 -0
  245. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/jobs/constants.py +0 -0
  246. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/jobs/controller.py +0 -0
  247. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/jobs/scheduler.py +0 -0
  248. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/jobs/server/__init__.py +0 -0
  249. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/jobs/server/core.py +0 -0
  250. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/jobs/server/server.py +0 -0
  251. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/jobs/server/utils.py +0 -0
  252. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/jobs/state.py +0 -0
  253. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/jobs/utils.py +0 -0
  254. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/logs/__init__.py +0 -0
  255. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/logs/gcp.py +0 -0
  256. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/metrics/__init__.py +0 -0
  257. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/metrics/utils.py +0 -0
  258. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/models.py +0 -0
  259. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/optimizer.py +0 -0
  260. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/__init__.py +0 -0
  261. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/aws/__init__.py +0 -0
  262. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/aws/config.py +0 -0
  263. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/aws/instance.py +0 -0
  264. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/aws/utils.py +0 -0
  265. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/azure/__init__.py +0 -0
  266. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/azure/azure-config-template.json +0 -0
  267. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/azure/config.py +0 -0
  268. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/azure/instance.py +0 -0
  269. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/common.py +0 -0
  270. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/constants.py +0 -0
  271. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/cudo/__init__.py +0 -0
  272. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/cudo/config.py +0 -0
  273. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/cudo/cudo_machine_type.py +0 -0
  274. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/cudo/cudo_utils.py +0 -0
  275. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/cudo/cudo_wrapper.py +0 -0
  276. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/cudo/instance.py +0 -0
  277. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/do/__init__.py +0 -0
  278. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/do/config.py +0 -0
  279. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/do/constants.py +0 -0
  280. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/do/instance.py +0 -0
  281. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/docker_utils.py +0 -0
  282. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/fluidstack/__init__.py +0 -0
  283. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/fluidstack/config.py +0 -0
  284. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/fluidstack/fluidstack_utils.py +0 -0
  285. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/fluidstack/instance.py +0 -0
  286. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/gcp/__init__.py +0 -0
  287. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/gcp/config.py +0 -0
  288. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/gcp/constants.py +0 -0
  289. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/gcp/instance.py +0 -0
  290. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/gcp/instance_utils.py +0 -0
  291. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/gcp/mig_utils.py +0 -0
  292. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/gcp/volume_utils.py +0 -0
  293. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/hyperbolic/__init__.py +0 -0
  294. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/hyperbolic/config.py +0 -0
  295. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/hyperbolic/instance.py +0 -0
  296. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/hyperbolic/utils.py +0 -0
  297. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/instance_setup.py +0 -0
  298. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/kubernetes/__init__.py +0 -0
  299. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/kubernetes/constants.py +0 -0
  300. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/kubernetes/manifests/fusermount-server-daemonset.yaml +0 -0
  301. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/kubernetes/network.py +0 -0
  302. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/kubernetes/volume.py +0 -0
  303. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/lambda_cloud/__init__.py +0 -0
  304. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/lambda_cloud/config.py +0 -0
  305. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/lambda_cloud/instance.py +0 -0
  306. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/lambda_cloud/lambda_utils.py +0 -0
  307. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/logging.py +0 -0
  308. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/metadata_utils.py +0 -0
  309. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/nebius/__init__.py +0 -0
  310. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/nebius/config.py +0 -0
  311. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/nebius/constants.py +0 -0
  312. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/nebius/instance.py +0 -0
  313. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/oci/__init__.py +0 -0
  314. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/oci/config.py +0 -0
  315. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/oci/instance.py +0 -0
  316. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/oci/query_utils.py +0 -0
  317. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/paperspace/__init__.py +0 -0
  318. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/paperspace/config.py +0 -0
  319. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/paperspace/constants.py +0 -0
  320. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/paperspace/instance.py +0 -0
  321. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/paperspace/utils.py +0 -0
  322. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/provisioner.py +0 -0
  323. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/runpod/__init__.py +0 -0
  324. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/runpod/api/__init__.py +0 -0
  325. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/runpod/api/commands.py +0 -0
  326. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/runpod/api/pods.py +0 -0
  327. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/runpod/config.py +0 -0
  328. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/runpod/instance.py +0 -0
  329. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/runpod/utils.py +0 -0
  330. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/scp/__init__.py +0 -0
  331. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/scp/config.py +0 -0
  332. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/scp/instance.py +0 -0
  333. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/ssh/__init__.py +0 -0
  334. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/vast/__init__.py +0 -0
  335. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/vast/config.py +0 -0
  336. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/vast/instance.py +0 -0
  337. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/vast/utils.py +0 -0
  338. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/vsphere/__init__.py +0 -0
  339. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/vsphere/common/__init__.py +0 -0
  340. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/vsphere/common/cls_api_client.py +0 -0
  341. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/vsphere/common/cls_api_helper.py +0 -0
  342. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/vsphere/common/custom_script.py +0 -0
  343. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/vsphere/common/id_generator.py +0 -0
  344. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/vsphere/common/metadata_utils.py +0 -0
  345. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/vsphere/common/service_manager.py +0 -0
  346. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/vsphere/common/service_manager_factory.py +0 -0
  347. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/vsphere/common/ssl_helper.py +0 -0
  348. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/vsphere/common/vapiconnect.py +0 -0
  349. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/vsphere/common/vim_utils.py +0 -0
  350. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/vsphere/config.py +0 -0
  351. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/provision/vsphere/instance.py +0 -0
  352. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/py.typed +0 -0
  353. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/resources.py +0 -0
  354. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/schemas/__init__.py +0 -0
  355. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/schemas/api/__init__.py +0 -0
  356. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/schemas/db/README +0 -0
  357. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/schemas/db/env.py +0 -0
  358. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/schemas/db/global_user_state/001_initial_schema.py +0 -0
  359. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/schemas/db/global_user_state/002_add_workspace_to_cluster_history.py +0 -0
  360. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/schemas/db/global_user_state/003_fix_initial_revision.py +0 -0
  361. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/schemas/db/global_user_state/004_is_managed.py +0 -0
  362. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/schemas/db/global_user_state/005_cluster_event.py +0 -0
  363. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/schemas/db/global_user_state/006_provision_log.py +0 -0
  364. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/schemas/db/script.py.mako +0 -0
  365. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/schemas/db/serve_state/001_initial_schema.py +0 -0
  366. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/schemas/db/spot_jobs/001_initial_schema.py +0 -0
  367. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/schemas/db/spot_jobs/002_cluster_pool.py +0 -0
  368. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/schemas/db/spot_jobs/003_pool_hash.py +0 -0
  369. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/schemas/generated/__init__.py +0 -0
  370. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/schemas/generated/autostopv1_pb2.py +0 -0
  371. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/schemas/generated/autostopv1_pb2.pyi +0 -0
  372. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/schemas/generated/autostopv1_pb2_grpc.py +0 -0
  373. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/serve/__init__.py +0 -0
  374. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/serve/autoscalers.py +0 -0
  375. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/serve/client/__init__.py +0 -0
  376. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/serve/client/sdk.py +0 -0
  377. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/serve/client/sdk_async.py +0 -0
  378. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/serve/constants.py +0 -0
  379. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/serve/controller.py +0 -0
  380. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/serve/load_balancer.py +0 -0
  381. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/serve/load_balancing_policies.py +0 -0
  382. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/serve/serve_state.py +0 -0
  383. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/serve/server/__init__.py +0 -0
  384. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/serve/server/core.py +0 -0
  385. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/serve/server/server.py +0 -0
  386. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/serve/service.py +0 -0
  387. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/serve/spot_placer.py +0 -0
  388. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/server/__init__.py +0 -0
  389. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/server/auth/__init__.py +0 -0
  390. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/server/config.py +0 -0
  391. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/server/constants.py +0 -0
  392. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/server/html/log.html +0 -0
  393. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/server/html/token_page.html +0 -0
  394. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/server/metrics.py +0 -0
  395. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/server/requests/__init__.py +0 -0
  396. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/server/requests/event_loop.py +0 -0
  397. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/server/requests/payloads.py +0 -0
  398. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/server/requests/preconditions.py +0 -0
  399. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/server/requests/process.py +0 -0
  400. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/server/requests/queues/__init__.py +0 -0
  401. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/server/requests/queues/local_queue.py +0 -0
  402. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/server/requests/queues/mp_queue.py +0 -0
  403. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/server/requests/serializers/__init__.py +0 -0
  404. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/server/requests/serializers/decoders.py +0 -0
  405. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/server/requests/serializers/encoders.py +0 -0
  406. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/server/rest.py +0 -0
  407. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/server/state.py +0 -0
  408. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/server/stream_utils.py +0 -0
  409. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/server/versions.py +0 -0
  410. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/setup_files/MANIFEST.in +0 -0
  411. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/setup_files/alembic.ini +0 -0
  412. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/setup_files/setup.py +0 -0
  413. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/skylet/LICENSE +0 -0
  414. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/skylet/__init__.py +0 -0
  415. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/skylet/attempt_skylet.py +0 -0
  416. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/skylet/autostop_lib.py +0 -0
  417. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/skylet/configs.py +0 -0
  418. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/skylet/constants.py +0 -0
  419. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/skylet/job_lib.py +0 -0
  420. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/skylet/log_lib.py +0 -0
  421. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/skylet/log_lib.pyi +0 -0
  422. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/skylet/providers/__init__.py +0 -0
  423. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/skylet/providers/command_runner.py +0 -0
  424. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/skylet/providers/ibm/__init__.py +0 -0
  425. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/skylet/providers/ibm/node_provider.py +0 -0
  426. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/skylet/providers/ibm/utils.py +0 -0
  427. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/skylet/providers/ibm/vpc_provider.py +0 -0
  428. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/skylet/ray_patches/__init__.py +0 -0
  429. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/skylet/ray_patches/autoscaler.py.diff +0 -0
  430. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/skylet/ray_patches/autoscaler.py.patch +0 -0
  431. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/skylet/ray_patches/cli.py.diff +0 -0
  432. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/skylet/ray_patches/cli.py.patch +0 -0
  433. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/skylet/ray_patches/command_runner.py.diff +0 -0
  434. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/skylet/ray_patches/command_runner.py.patch +0 -0
  435. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/skylet/ray_patches/log_monitor.py.diff +0 -0
  436. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/skylet/ray_patches/log_monitor.py.patch +0 -0
  437. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/skylet/ray_patches/resource_demand_scheduler.py.diff +0 -0
  438. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/skylet/ray_patches/resource_demand_scheduler.py.patch +0 -0
  439. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/skylet/ray_patches/updater.py.diff +0 -0
  440. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/skylet/ray_patches/updater.py.patch +0 -0
  441. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/skylet/ray_patches/worker.py.diff +0 -0
  442. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/skylet/ray_patches/worker.py.patch +0 -0
  443. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/skylet/services.py +0 -0
  444. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/skylet/skylet.py +0 -0
  445. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/skylet/subprocess_daemon.py +0 -0
  446. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/ssh_node_pools/__init__.py +0 -0
  447. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/ssh_node_pools/server.py +0 -0
  448. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/templates/aws-ray.yml.j2 +0 -0
  449. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/templates/azure-ray.yml.j2 +0 -0
  450. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/templates/cudo-ray.yml.j2 +0 -0
  451. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/templates/do-ray.yml.j2 +0 -0
  452. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/templates/fluidstack-ray.yml.j2 +0 -0
  453. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/templates/gcp-ray.yml.j2 +0 -0
  454. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/templates/hyperbolic-ray.yml.j2 +0 -0
  455. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/templates/ibm-ray.yml.j2 +0 -0
  456. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/templates/jobs-controller.yaml.j2 +0 -0
  457. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/templates/kubernetes-ingress.yml.j2 +0 -0
  458. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/templates/kubernetes-loadbalancer.yml.j2 +0 -0
  459. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/templates/kubernetes-port-forward-proxy-command.sh +0 -0
  460. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/templates/kubernetes-ray.yml.j2 +0 -0
  461. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/templates/kubernetes-ssh-jump.yml.j2 +0 -0
  462. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/templates/lambda-ray.yml.j2 +0 -0
  463. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/templates/local-ray.yml.j2 +0 -0
  464. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/templates/oci-ray.yml.j2 +0 -0
  465. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/templates/paperspace-ray.yml.j2 +0 -0
  466. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/templates/runpod-ray.yml.j2 +0 -0
  467. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/templates/scp-ray.yml.j2 +0 -0
  468. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/templates/sky-serve-controller.yaml.j2 +0 -0
  469. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/templates/skypilot-server-kubernetes-proxy.sh +0 -0
  470. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/templates/vast-ray.yml.j2 +0 -0
  471. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/templates/vsphere-ray.yml.j2 +0 -0
  472. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/templates/websocket_proxy.py +0 -0
  473. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/usage/__init__.py +0 -0
  474. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/usage/constants.py +0 -0
  475. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/users/__init__.py +0 -0
  476. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/users/model.conf +0 -0
  477. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/users/permission.py +0 -0
  478. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/users/rbac.py +0 -0
  479. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/users/token_service.py +0 -0
  480. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/__init__.py +0 -0
  481. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/accelerator_registry.py +0 -0
  482. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/admin_policy_utils.py +0 -0
  483. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/annotations.py +0 -0
  484. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/atomic.py +0 -0
  485. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/aws/__init__.py +0 -0
  486. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/aws/get_default_security_group.py +0 -0
  487. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/cli_utils/__init__.py +0 -0
  488. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/cli_utils/status_utils.py +0 -0
  489. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/cluster_utils.py +0 -0
  490. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/command_runner.py +0 -0
  491. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/command_runner.pyi +0 -0
  492. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/common.py +0 -0
  493. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/config_utils.py +0 -0
  494. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/context.py +0 -0
  495. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/context_utils.py +0 -0
  496. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/control_master_utils.py +0 -0
  497. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/db/__init__.py +0 -0
  498. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/db/db_utils.py +0 -0
  499. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/db/migration_utils.py +0 -0
  500. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/directory_utils.py +0 -0
  501. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/env_options.py +0 -0
  502. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/git.py +0 -0
  503. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/git_clone.sh +0 -0
  504. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/infra_utils.py +0 -0
  505. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/kubernetes/__init__.py +0 -0
  506. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/kubernetes/cleanup-tunnel.sh +0 -0
  507. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/kubernetes/create_cluster.sh +0 -0
  508. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/kubernetes/delete_cluster.sh +0 -0
  509. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/kubernetes/deploy_remote_cluster.py +0 -0
  510. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/kubernetes/exec_kubeconfig_converter.py +0 -0
  511. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/kubernetes/generate_kind_config.py +0 -0
  512. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/kubernetes/generate_kubeconfig.sh +0 -0
  513. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/kubernetes/gpu_labeler.py +0 -0
  514. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/kubernetes/k8s_gpu_labeler_job.yaml +0 -0
  515. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml +0 -0
  516. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/kubernetes/kubernetes_deploy_utils.py +0 -0
  517. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/kubernetes/rsync_helper.sh +0 -0
  518. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/kubernetes/ssh-tunnel.sh +0 -0
  519. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/kubernetes/ssh_jump_lifecycle_manager.py +0 -0
  520. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/kubernetes/ssh_utils.py +0 -0
  521. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/kubernetes_enums.py +0 -0
  522. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/locks.py +0 -0
  523. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/log_utils.py +0 -0
  524. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/message_utils.py +0 -0
  525. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/registry.py +0 -0
  526. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/resource_checker.py +0 -0
  527. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/resources_utils.py +0 -0
  528. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/rich_console_utils.py +0 -0
  529. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/rich_utils.py +0 -0
  530. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/serialize_utils.py +0 -0
  531. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/status_lib.py +0 -0
  532. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/subprocess_utils.py +0 -0
  533. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/tempstore.py +0 -0
  534. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/timeline.py +0 -0
  535. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/ux_utils.py +0 -0
  536. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/validator.py +0 -0
  537. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/utils/volume.py +0 -0
  538. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/volumes/__init__.py +0 -0
  539. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/volumes/client/__init__.py +0 -0
  540. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/volumes/client/sdk.py +0 -0
  541. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/volumes/server/__init__.py +0 -0
  542. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/volumes/server/core.py +0 -0
  543. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/volumes/server/server.py +0 -0
  544. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/volumes/utils.py +0 -0
  545. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/workspaces/__init__.py +0 -0
  546. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/workspaces/core.py +0 -0
  547. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/workspaces/server.py +0 -0
  548. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/sky/workspaces/utils.py +0 -0
  549. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/skypilot_nightly.egg-info/dependency_links.txt +0 -0
  550. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/skypilot_nightly.egg-info/entry_points.txt +0 -0
  551. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/skypilot_nightly.egg-info/top_level.txt +0 -0
  552. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/tests/test_api.py +0 -0
  553. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/tests/test_api_compatibility.py +0 -0
  554. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/tests/test_cli.py +0 -0
  555. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/tests/test_db_utils.py +0 -0
  556. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/tests/test_failover.py +0 -0
  557. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/tests/test_jobs.py +0 -0
  558. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/tests/test_jobs_and_serve.py +0 -0
  559. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/tests/test_list_accelerators.py +0 -0
  560. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/tests/test_no_parellel.py +0 -0
  561. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/tests/test_optimizer_dryruns.py +0 -0
  562. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/tests/test_optimizer_random_dag.py +0 -0
  563. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/tests/test_serve_autoscaler.py +0 -0
  564. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/tests/test_smoke.py +0 -0
  565. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/tests/test_storage.py +0 -0
  566. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/tests/test_wheels.py +0 -0
  567. {skypilot_nightly-1.0.0.dev20250826 → skypilot_nightly-1.0.0.dev20250828}/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.dev20250826
3
+ Version: 1.0.0.dev20250828
4
4
  Summary: SkyPilot: Run AI on Any Infra — Unified, Faster, Cheaper.
5
5
  Author: SkyPilot Team
6
6
  License: Apache 2.0
@@ -53,6 +53,7 @@ Requires-Dist: casbin
53
53
  Requires-Dist: sqlalchemy_adapter
54
54
  Requires-Dist: prometheus_client>=0.8.0
55
55
  Requires-Dist: passlib
56
+ Requires-Dist: bcrypt
56
57
  Requires-Dist: pyjwt
57
58
  Requires-Dist: gitpython
58
59
  Requires-Dist: types-paramiko
@@ -7,7 +7,7 @@ import urllib.request
7
7
  from sky.utils import directory_utils
8
8
 
9
9
  # Replaced with the current commit when building the wheels.
10
- _SKYPILOT_COMMIT_SHA = '7e47012cb058255cf9c6c39206d3ea779aa01a9e'
10
+ _SKYPILOT_COMMIT_SHA = 'ff93214498e29e0aa9a73868b73613535f96b8a3'
11
11
 
12
12
 
13
13
  def _get_git_commit():
@@ -37,7 +37,7 @@ def _get_git_commit():
37
37
 
38
38
 
39
39
  __commit__ = _get_git_commit()
40
- __version__ = '1.0.0.dev20250826'
40
+ __version__ = '1.0.0.dev20250828'
41
41
  __root_dir__ = directory_utils.get_sky_dir()
42
42
 
43
43
 
@@ -13,6 +13,7 @@ from sky.adaptors import common as adaptors_common
13
13
  from sky.utils import common_utils
14
14
  from sky.utils import config_utils
15
15
  from sky.utils import ux_utils
16
+ from sky.utils import yaml_utils
16
17
 
17
18
  if typing.TYPE_CHECKING:
18
19
  import requests
@@ -80,9 +81,9 @@ class UserRequest:
80
81
 
81
82
  def encode(self) -> str:
82
83
  return _UserRequestBody(
83
- task=common_utils.dump_yaml_str(self.task.to_yaml_config()),
84
- skypilot_config=common_utils.dump_yaml_str(
85
- dict(self.skypilot_config)),
84
+ task=yaml_utils.dump_yaml_str(self.task.to_yaml_config()),
85
+ skypilot_config=yaml_utils.dump_yaml_str(dict(
86
+ self.skypilot_config)),
86
87
  request_options=self.request_options,
87
88
  at_client_side=self.at_client_side,
88
89
  ).model_dump_json()
@@ -92,9 +93,9 @@ class UserRequest:
92
93
  user_request_body = _UserRequestBody.model_validate_json(body)
93
94
  return cls(
94
95
  task=sky.Task.from_yaml_config(
95
- common_utils.read_yaml_all_str(user_request_body.task)[0]),
96
+ yaml_utils.read_yaml_all_str(user_request_body.task)[0]),
96
97
  skypilot_config=config_utils.Config.from_dict(
97
- common_utils.read_yaml_all_str(
98
+ yaml_utils.read_yaml_all_str(
98
99
  user_request_body.skypilot_config)[0]),
99
100
  request_options=user_request_body.request_options,
100
101
  at_client_side=user_request_body.at_client_side,
@@ -116,9 +117,9 @@ class MutatedUserRequest:
116
117
 
117
118
  def encode(self) -> str:
118
119
  return _MutatedUserRequestBody(
119
- task=common_utils.dump_yaml_str(self.task.to_yaml_config()),
120
- skypilot_config=common_utils.dump_yaml_str(
121
- dict(self.skypilot_config),)).model_dump_json()
120
+ task=yaml_utils.dump_yaml_str(self.task.to_yaml_config()),
121
+ skypilot_config=yaml_utils.dump_yaml_str(dict(
122
+ self.skypilot_config),)).model_dump_json()
122
123
 
123
124
  @classmethod
124
125
  def decode(cls, mutated_user_request_body: str,
@@ -126,14 +127,14 @@ class MutatedUserRequest:
126
127
  mutated_user_request_body = _MutatedUserRequestBody.model_validate_json(
127
128
  mutated_user_request_body)
128
129
  task = sky.Task.from_yaml_config(
129
- common_utils.read_yaml_all_str(mutated_user_request_body.task)[0])
130
+ yaml_utils.read_yaml_all_str(mutated_user_request_body.task)[0])
130
131
  # Some internal Task fields are not serialized. We need to manually
131
132
  # restore them from the original request.
132
133
  task.managed_job_dag = original_request.task.managed_job_dag
133
134
  task.service_name = original_request.task.service_name
134
135
  return cls(task=task,
135
136
  skypilot_config=config_utils.Config.from_dict(
136
- common_utils.read_yaml_all_str(
137
+ yaml_utils.read_yaml_all_str(
137
138
  mutated_user_request_body.skypilot_config)[0],))
138
139
 
139
140
 
@@ -25,7 +25,6 @@ import re
25
25
  import socket
26
26
  import subprocess
27
27
  import sys
28
- import typing
29
28
  from typing import Any, Dict, Optional, Tuple
30
29
  import uuid
31
30
 
@@ -37,7 +36,6 @@ from sky import exceptions
37
36
  from sky import global_user_state
38
37
  from sky import sky_logging
39
38
  from sky import skypilot_config
40
- from sky.adaptors import common as adaptors_common
41
39
  from sky.adaptors import gcp
42
40
  from sky.adaptors import ibm
43
41
  from sky.adaptors import kubernetes
@@ -51,6 +49,7 @@ from sky.utils import config_utils
51
49
  from sky.utils import kubernetes_enums
52
50
  from sky.utils import subprocess_utils
53
51
  from sky.utils import ux_utils
52
+ from sky.utils import yaml_utils
54
53
 
55
54
  logger = sky_logging.init_logger(__name__)
56
55
 
@@ -67,11 +66,6 @@ MAX_TRIALS = 64
67
66
  # the former dir is empheral.
68
67
  _SSH_KEY_PATH_PREFIX = '~/.sky/clients/{user_hash}/ssh'
69
68
 
70
- if typing.TYPE_CHECKING:
71
- import yaml
72
- else:
73
- yaml = adaptors_common.LazyImport('yaml')
74
-
75
69
 
76
70
  def get_ssh_key_and_lock_path(
77
71
  user_hash: Optional[str] = None) -> Tuple[str, str, str]:
@@ -204,12 +198,12 @@ def configure_ssh_info(config: Dict[str, Any]) -> Dict[str, Any]:
204
198
  _, public_key_path = get_or_generate_keys()
205
199
  with open(public_key_path, 'r', encoding='utf-8') as f:
206
200
  public_key = f.read().strip()
207
- config_str = common_utils.dump_yaml_str(config)
201
+ config_str = yaml_utils.dump_yaml_str(config)
208
202
  config_str = config_str.replace('skypilot:ssh_user',
209
203
  config['auth']['ssh_user'])
210
204
  config_str = config_str.replace('skypilot:ssh_public_key_content',
211
205
  public_key)
212
- config = yaml.safe_load(config_str)
206
+ config = yaml_utils.safe_load(config_str)
213
207
  return config
214
208
 
215
209
 
@@ -289,7 +283,7 @@ def setup_gcp_authentication(config: Dict[str, Any]) -> Dict[str, Any]:
289
283
  os_login_username = None
290
284
  if proc.returncode == 0:
291
285
  try:
292
- profile = yaml.safe_load(proc.stdout)
286
+ profile = yaml_utils.safe_load(proc.stdout)
293
287
  username = profile['posixAccounts'][0]['username']
294
288
  if username:
295
289
  os_login_username = username
@@ -147,9 +147,8 @@ class Backend(Generic[_ResourceHandleType]):
147
147
  def teardown(self,
148
148
  handle: _ResourceHandleType,
149
149
  terminate: bool,
150
- purge: bool = False,
151
- explicitly_requested: bool = False) -> None:
152
- self._teardown(handle, terminate, purge, explicitly_requested)
150
+ purge: bool = False) -> None:
151
+ self._teardown(handle, terminate, purge)
153
152
 
154
153
  def register_info(self, **kwargs) -> None:
155
154
  """Register backend-specific information."""
@@ -201,6 +200,5 @@ class Backend(Generic[_ResourceHandleType]):
201
200
  def _teardown(self,
202
201
  handle: _ResourceHandleType,
203
202
  terminate: bool,
204
- purge: bool = False,
205
- explicitly_requested: bool = False):
203
+ purge: bool = False):
206
204
  raise NotImplementedError
@@ -60,6 +60,7 @@ from sky.utils import subprocess_utils
60
60
  from sky.utils import tempstore
61
61
  from sky.utils import timeline
62
62
  from sky.utils import ux_utils
63
+ from sky.utils import yaml_utils
63
64
  from sky.workspaces import core as workspaces_core
64
65
 
65
66
  if typing.TYPE_CHECKING:
@@ -240,7 +241,7 @@ def _optimize_file_mounts(tmp_yaml_path: str) -> None:
240
241
  subprocess.CalledProcessError: If the file mounts are failed to be
241
242
  copied.
242
243
  """
243
- yaml_config = common_utils.read_yaml(tmp_yaml_path)
244
+ yaml_config = yaml_utils.read_yaml(tmp_yaml_path)
244
245
 
245
246
  file_mounts = yaml_config.get('file_mounts', {})
246
247
  # Remove the file mounts added by the newline.
@@ -324,7 +325,7 @@ def _optimize_file_mounts(tmp_yaml_path: str) -> None:
324
325
  shell=True,
325
326
  check=True)
326
327
 
327
- common_utils.dump_yaml(tmp_yaml_path, yaml_config)
328
+ yaml_utils.dump_yaml(tmp_yaml_path, yaml_config)
328
329
 
329
330
 
330
331
  def path_size_megabytes(path: str) -> int:
@@ -484,8 +485,8 @@ def _replace_yaml_dicts(
484
485
  if key in old_block:
485
486
  _restore_block(value, old_block[key])
486
487
 
487
- new_config = yaml.safe_load(new_yaml)
488
- old_config = yaml.safe_load(old_yaml)
488
+ new_config = yaml_utils.safe_load(new_yaml)
489
+ old_config = yaml_utils.safe_load(old_yaml)
489
490
  excluded_results = {}
490
491
  # Find all key values excluded from restore
491
492
  for exclude_restore_key_name_list in restore_key_names_exceptions:
@@ -509,7 +510,7 @@ def _replace_yaml_dicts(
509
510
  for key in exclude_restore_key_name[:-1]:
510
511
  curr = curr[key]
511
512
  curr[exclude_restore_key_name[-1]] = value
512
- return common_utils.dump_yaml_str(new_config)
513
+ return yaml_utils.dump_yaml_str(new_config)
513
514
 
514
515
 
515
516
  def get_expirable_clouds(
@@ -936,7 +937,7 @@ def write_cluster_config(
936
937
  tmp_yaml_path,
937
938
  cluster_config_overrides=cluster_config_overrides,
938
939
  context=region.name)
939
- yaml_obj = common_utils.read_yaml(tmp_yaml_path)
940
+ yaml_obj = yaml_utils.read_yaml(tmp_yaml_path)
940
941
  pod_config: Dict[str, Any] = yaml_obj['available_node_types'][
941
942
  'ray_head_default']['node_config']
942
943
 
@@ -975,7 +976,7 @@ def write_cluster_config(
975
976
  # Read the cluster name from the tmp yaml file, to take the backward
976
977
  # compatbility restortion above into account.
977
978
  # TODO: remove this after 2 minor releases, 0.10.0.
978
- yaml_config = common_utils.read_yaml(tmp_yaml_path)
979
+ yaml_config = yaml_utils.read_yaml(tmp_yaml_path)
979
980
  config_dict['cluster_name_on_cloud'] = yaml_config['cluster_name']
980
981
 
981
982
  # Make sure to do this before we optimize file mounts. Optimization is
@@ -1021,7 +1022,7 @@ def _add_auth_to_cluster_config(cloud: clouds.Cloud, tmp_yaml_path: str):
1021
1022
 
1022
1023
  This function's output removes comments included in the jinja2 template.
1023
1024
  """
1024
- config = common_utils.read_yaml(tmp_yaml_path)
1025
+ config = yaml_utils.read_yaml(tmp_yaml_path)
1025
1026
  # Check the availability of the cloud type.
1026
1027
  if isinstance(cloud, (
1027
1028
  clouds.AWS,
@@ -1053,7 +1054,7 @@ def _add_auth_to_cluster_config(cloud: clouds.Cloud, tmp_yaml_path: str):
1053
1054
  config = auth.setup_hyperbolic_authentication(config)
1054
1055
  else:
1055
1056
  assert False, cloud
1056
- common_utils.dump_yaml(tmp_yaml_path, config)
1057
+ yaml_utils.dump_yaml(tmp_yaml_path, config)
1057
1058
 
1058
1059
 
1059
1060
  def get_timestamp_from_run_timestamp(run_timestamp: str) -> float:
@@ -1155,7 +1156,7 @@ def _deterministic_cluster_yaml_hash(tmp_yaml_path: str) -> str:
1155
1156
  """
1156
1157
 
1157
1158
  # Load the yaml contents so that we can directly remove keys.
1158
- yaml_config = common_utils.read_yaml(tmp_yaml_path)
1159
+ yaml_config = yaml_utils.read_yaml(tmp_yaml_path)
1159
1160
  for key_list in _RAY_YAML_KEYS_TO_REMOVE_FOR_HASH:
1160
1161
  dict_to_remove_from = yaml_config
1161
1162
  found_key = True
@@ -1174,7 +1175,7 @@ def _deterministic_cluster_yaml_hash(tmp_yaml_path: str) -> str:
1174
1175
  config_hash = hashlib.sha256()
1175
1176
 
1176
1177
  yaml_hash = hashlib.sha256(
1177
- common_utils.dump_yaml_str(yaml_config).encode('utf-8'))
1178
+ yaml_utils.dump_yaml_str(yaml_config).encode('utf-8'))
1178
1179
  config_hash.update(yaml_hash.digest())
1179
1180
 
1180
1181
  file_mounts = yaml_config.get('file_mounts', {})
@@ -2026,9 +2027,7 @@ def _update_cluster_status(cluster_name: str) -> Optional[Dict[str, Any]]:
2026
2027
  'Cluster has no YAML file. Removing the cluster from cache.',
2027
2028
  global_user_state.ClusterEventType.STATUS_CHANGE,
2028
2029
  nop_if_duplicate=True)
2029
- global_user_state.remove_cluster(cluster_name,
2030
- terminate=True,
2031
- remove_events=True)
2030
+ global_user_state.remove_cluster(cluster_name, terminate=True)
2032
2031
  logger.debug(f'Cluster {cluster_name!r} has no YAML file. '
2033
2032
  'Removing the cluster from cache.')
2034
2033
  return None
@@ -2366,7 +2365,7 @@ def _update_cluster_status(cluster_name: str) -> Optional[Dict[str, Any]]:
2366
2365
  # Some status reason clears after a certain time (e.g. k8s events
2367
2366
  # are only stored for an hour by default), so it is possible that
2368
2367
  # the previous event has a status reason, but now it does not.
2369
- init_reason_regex = f'^Cluster is abnormal because {init_reason} .*'
2368
+ init_reason_regex = f'^Cluster is abnormal because {init_reason}.*'
2370
2369
  log_message = f'Cluster is abnormal because {init_reason}'
2371
2370
  if status_reason:
2372
2371
  log_message += f' ({status_reason})'
@@ -2881,38 +2880,42 @@ def get_clusters(
2881
2880
  A list of cluster records. If the cluster does not exist or has been
2882
2881
  terminated, the record will be omitted from the returned list.
2883
2882
  """
2884
- records = global_user_state.get_clusters()
2885
- current_user = common_utils.get_current_user()
2886
-
2887
- # Filter out clusters created by the controller.
2888
- if (not env_options.Options.SHOW_DEBUG_INFO.get() and
2889
- not _include_is_managed):
2890
- records = [
2891
- record for record in records if not record.get('is_managed', False)
2892
- ]
2893
2883
 
2894
- # Filter by user if requested
2884
+ exclude_managed_clusters = False
2885
+ if not (_include_is_managed or env_options.Options.SHOW_DEBUG_INFO.get()):
2886
+ exclude_managed_clusters = True
2887
+ user_hashes_filter = None
2895
2888
  if not all_users:
2896
- records = [
2897
- record for record in records
2898
- if record['user_hash'] == current_user.id
2899
- ]
2900
-
2889
+ user_hashes_filter = {common_utils.get_current_user().id}
2901
2890
  accessible_workspaces = workspaces_core.get_workspaces()
2902
2891
 
2903
- workspace_filtered_records = []
2904
- for record in records:
2905
- cluster_workspace = record.get('workspace',
2906
- constants.SKYPILOT_DEFAULT_WORKSPACE)
2907
- if cluster_workspace in accessible_workspaces:
2908
- workspace_filtered_records.append(record)
2909
-
2910
- records = workspace_filtered_records
2892
+ records = global_user_state.get_clusters(
2893
+ exclude_managed_clusters=exclude_managed_clusters,
2894
+ user_hashes_filter=user_hashes_filter,
2895
+ workspaces_filter=accessible_workspaces)
2911
2896
 
2912
2897
  yellow = colorama.Fore.YELLOW
2913
2898
  bright = colorama.Style.BRIGHT
2914
2899
  reset = colorama.Style.RESET_ALL
2915
2900
 
2901
+ if cluster_names is not None:
2902
+ if isinstance(cluster_names, str):
2903
+ cluster_names = [cluster_names]
2904
+ cluster_names = _get_glob_clusters(cluster_names, silent=True)
2905
+ new_records = []
2906
+ not_exist_cluster_names = []
2907
+ for cluster_name in cluster_names:
2908
+ for record in records:
2909
+ if record['name'] == cluster_name:
2910
+ new_records.append(record)
2911
+ break
2912
+ else:
2913
+ not_exist_cluster_names.append(cluster_name)
2914
+ if not_exist_cluster_names:
2915
+ clusters_str = ', '.join(not_exist_cluster_names)
2916
+ logger.info(f'Cluster(s) not found: {bright}{clusters_str}{reset}.')
2917
+ records = new_records
2918
+
2916
2919
  def _update_record_with_credentials_and_resources_str(
2917
2920
  record: Optional[Dict[str, Any]]) -> None:
2918
2921
  """Add the credentials to the record.
@@ -2952,24 +2955,6 @@ def get_clusters(
2952
2955
  credentials['ssh_private_key_content'] = f.read()
2953
2956
  record['credentials'] = credentials
2954
2957
 
2955
- if cluster_names is not None:
2956
- if isinstance(cluster_names, str):
2957
- cluster_names = [cluster_names]
2958
- cluster_names = _get_glob_clusters(cluster_names, silent=True)
2959
- new_records = []
2960
- not_exist_cluster_names = []
2961
- for cluster_name in cluster_names:
2962
- for record in records:
2963
- if record['name'] == cluster_name:
2964
- new_records.append(record)
2965
- break
2966
- else:
2967
- not_exist_cluster_names.append(cluster_name)
2968
- if not_exist_cluster_names:
2969
- clusters_str = ', '.join(not_exist_cluster_names)
2970
- logger.info(f'Cluster(s) not found: {bright}{clusters_str}{reset}.')
2971
- records = new_records
2972
-
2973
2958
  def _update_records_with_resources(
2974
2959
  records: List[Optional[Dict[str, Any]]]) -> None:
2975
2960
  """Add the resources to the record."""
@@ -22,7 +22,6 @@ from typing import (Any, Callable, Dict, Iterable, List, Optional, Set, Tuple,
22
22
 
23
23
  import colorama
24
24
  import psutil
25
- import yaml
26
25
 
27
26
  from sky import backends
28
27
  from sky import catalog
@@ -77,6 +76,7 @@ from sky.utils import subprocess_utils
77
76
  from sky.utils import timeline
78
77
  from sky.utils import ux_utils
79
78
  from sky.utils import volume as volume_lib
79
+ from sky.utils import yaml_utils
80
80
 
81
81
  if typing.TYPE_CHECKING:
82
82
  import grpc
@@ -1972,7 +1972,7 @@ class RetryingVmProvisioner(object):
1972
1972
  ray_config = global_user_state.get_cluster_yaml_dict(
1973
1973
  cluster_config_file)
1974
1974
  ray_config['upscaling_speed'] = 0
1975
- common_utils.dump_yaml(cluster_config_file, ray_config)
1975
+ yaml_utils.dump_yaml(cluster_config_file, ray_config)
1976
1976
  start = time.time()
1977
1977
  returncode, stdout, stderr = ray_up()
1978
1978
  logger.debug(
@@ -2351,7 +2351,7 @@ class CloudVmRayResourceHandle(backends.backend.ResourceHandle):
2351
2351
  # If the cluster yaml is not available,
2352
2352
  # we skip updating the cluster info.
2353
2353
  return
2354
- config = yaml.safe_load(yaml_str)
2354
+ config = yaml_utils.safe_load(yaml_str)
2355
2355
  try:
2356
2356
  cluster_info = provision_lib.get_cluster_info(
2357
2357
  provider_name,
@@ -3208,8 +3208,7 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
3208
3208
  global_user_state.ClusterEventType.STATUS_CHANGE,
3209
3209
  nop_if_duplicate=True)
3210
3210
  global_user_state.remove_cluster(cluster_name,
3211
- terminate=True,
3212
- remove_events=False)
3211
+ terminate=True)
3213
3212
  usage_lib.messages.usage.update_final_cluster_status(
3214
3213
  None)
3215
3214
  logger.error(
@@ -4011,8 +4010,7 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
4011
4010
  def _teardown(self,
4012
4011
  handle: CloudVmRayResourceHandle,
4013
4012
  terminate: bool,
4014
- purge: bool = False,
4015
- explicitly_requested: bool = False):
4013
+ purge: bool = False):
4016
4014
  """Tear down or stop the cluster.
4017
4015
 
4018
4016
  Args:
@@ -4087,8 +4085,7 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
4087
4085
  # ClusterOwnerIdentityMismatchError. The argument/flag
4088
4086
  # `purge` should bypass such ID mismatch errors.
4089
4087
  refresh_cluster_status=(
4090
- not is_identity_mismatch_and_purge),
4091
- explicitly_requested=explicitly_requested)
4088
+ not is_identity_mismatch_and_purge))
4092
4089
  if terminate:
4093
4090
  lock.force_unlock()
4094
4091
  break
@@ -4477,8 +4474,7 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
4477
4474
  purge: bool = False,
4478
4475
  post_teardown_cleanup: bool = True,
4479
4476
  refresh_cluster_status: bool = True,
4480
- remove_from_db: bool = True,
4481
- explicitly_requested: bool = False) -> None:
4477
+ remove_from_db: bool = True) -> None:
4482
4478
  """Teardown the cluster without acquiring the cluster status lock.
4483
4479
 
4484
4480
  NOTE: This method should not be called without holding the cluster
@@ -4542,8 +4538,7 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
4542
4538
  f'provision yaml so it '
4543
4539
  'has not been provisioned. Skipped.')
4544
4540
  global_user_state.remove_cluster(handle.cluster_name,
4545
- terminate=terminate,
4546
- remove_events=False)
4541
+ terminate=terminate)
4547
4542
  return
4548
4543
  log_path = os.path.join(os.path.expanduser(self.log_dir),
4549
4544
  'teardown.log')
@@ -4600,12 +4595,8 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
4600
4595
  raise
4601
4596
 
4602
4597
  if post_teardown_cleanup:
4603
- self.post_teardown_cleanup(
4604
- handle,
4605
- terminate,
4606
- purge,
4607
- remove_from_db,
4608
- explicitly_requested=explicitly_requested)
4598
+ self.post_teardown_cleanup(handle, terminate, purge,
4599
+ remove_from_db)
4609
4600
  return
4610
4601
 
4611
4602
  if (isinstance(cloud, clouds.IBM) and terminate and
@@ -4649,7 +4640,7 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
4649
4640
  prefix='sky_',
4650
4641
  delete=False,
4651
4642
  suffix='.yml') as f:
4652
- common_utils.dump_yaml(f.name, config)
4643
+ yaml_utils.dump_yaml(f.name, config)
4653
4644
  f.flush()
4654
4645
 
4655
4646
  teardown_verb = 'Terminating' if terminate else 'Stopping'
@@ -4705,8 +4696,7 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
4705
4696
  terminate: bool,
4706
4697
  purge: bool = False,
4707
4698
  remove_from_db: bool = True,
4708
- failover: bool = False,
4709
- explicitly_requested: bool = False) -> None:
4699
+ failover: bool = False) -> None:
4710
4700
  """Cleanup local configs/caches and delete TPUs after teardown.
4711
4701
 
4712
4702
  This method will handle the following cleanup steps:
@@ -4884,8 +4874,7 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
4884
4874
 
4885
4875
  if not terminate or remove_from_db:
4886
4876
  global_user_state.remove_cluster(handle.cluster_name,
4887
- terminate=terminate,
4888
- remove_events=explicitly_requested)
4877
+ terminate=terminate)
4889
4878
 
4890
4879
  def remove_cluster_config(self, handle: CloudVmRayResourceHandle) -> None:
4891
4880
  """Remove the YAML config of a cluster."""
@@ -256,9 +256,7 @@ class LocalDockerBackend(backends.Backend['LocalDockerResourceHandle']):
256
256
  logger.error(
257
257
  'Unable to run container - nvidia runtime for docker not '
258
258
  'found. Have you installed nvidia-docker on your machine?')
259
- global_user_state.remove_cluster(cluster_name,
260
- terminate=True,
261
- remove_events=False)
259
+ global_user_state.remove_cluster(cluster_name, terminate=True)
262
260
  raise e
263
261
  self.containers[handle] = container
264
262
  logger.info(
@@ -325,8 +323,7 @@ class LocalDockerBackend(backends.Backend['LocalDockerResourceHandle']):
325
323
  def _teardown(self,
326
324
  handle: LocalDockerResourceHandle,
327
325
  terminate: bool,
328
- purge: bool = False,
329
- explicitly_requested: bool = False):
326
+ purge: bool = False):
330
327
  """Teardown kills the container."""
331
328
  del purge # Unused.
332
329
  if not terminate:
@@ -342,9 +339,7 @@ class LocalDockerBackend(backends.Backend['LocalDockerResourceHandle']):
342
339
  container.remove(force=True)
343
340
  cluster_name = handle.get_cluster_name()
344
341
 
345
- global_user_state.remove_cluster(cluster_name,
346
- terminate=True,
347
- remove_events=explicitly_requested)
342
+ global_user_state.remove_cluster(cluster_name, terminate=True)
348
343
 
349
344
  # --- Utilities ---
350
345
 
@@ -89,6 +89,7 @@ from sky.utils import status_lib
89
89
  from sky.utils import subprocess_utils
90
90
  from sky.utils import timeline
91
91
  from sky.utils import ux_utils
92
+ from sky.utils import yaml_utils
92
93
  from sky.utils.cli_utils import status_utils
93
94
  from sky.volumes import utils as volumes_utils
94
95
  from sky.volumes.client import sdk as volumes_sdk
@@ -286,9 +287,10 @@ def _complete_cluster_name(ctx: click.Context, param: click.Parameter,
286
287
  del ctx, param # Unused.
287
288
  # TODO(zhwu): we send requests to API server for completion, which can cause
288
289
  # large latency. We should investigate caching mechanism if needed.
289
- response = requests_lib.get(
290
- f'{server_common.get_server_url()}'
290
+ response = server_common.make_authenticated_request(
291
+ 'GET',
291
292
  f'/api/completion/cluster_name?incomplete={incomplete}',
293
+ retry=False,
292
294
  timeout=2.0,
293
295
  )
294
296
  response.raise_for_status()
@@ -299,9 +301,10 @@ def _complete_storage_name(ctx: click.Context, param: click.Parameter,
299
301
  incomplete: str) -> List[str]:
300
302
  """Handle shell completion for storage names."""
301
303
  del ctx, param # Unused.
302
- response = requests_lib.get(
303
- f'{server_common.get_server_url()}'
304
+ response = server_common.make_authenticated_request(
305
+ 'GET',
304
306
  f'/api/completion/storage_name?incomplete={incomplete}',
307
+ retry=False,
305
308
  timeout=2.0,
306
309
  )
307
310
  response.raise_for_status()
@@ -312,15 +315,34 @@ def _complete_volume_name(ctx: click.Context, param: click.Parameter,
312
315
  incomplete: str) -> List[str]:
313
316
  """Handle shell completion for volume names."""
314
317
  del ctx, param # Unused.
315
- response = requests_lib.get(
316
- f'{server_common.get_server_url()}'
318
+ response = server_common.make_authenticated_request(
319
+ 'GET',
317
320
  f'/api/completion/volume_name?incomplete={incomplete}',
321
+ retry=False,
318
322
  timeout=2.0,
319
323
  )
320
324
  response.raise_for_status()
321
325
  return response.json()
322
326
 
323
327
 
328
+ def _complete_api_request(ctx: click.Context, param: click.Parameter,
329
+ incomplete: str) -> List[str]:
330
+ """Handle shell completion for API requests."""
331
+ del ctx, param # Unused.
332
+ response = server_common.make_authenticated_request(
333
+ 'GET',
334
+ f'/api/completion/api_request?incomplete={incomplete}',
335
+ retry=False,
336
+ timeout=2.0,
337
+ )
338
+ try:
339
+ response.raise_for_status()
340
+ except requests_lib.exceptions.HTTPError:
341
+ # Server may be outdated/missing this API. Silently skip.
342
+ return []
343
+ return response.json()
344
+
345
+
324
346
  def _complete_file_name(ctx: click.Context, param: click.Parameter,
325
347
  incomplete: str) -> List[str]:
326
348
  """Handle shell completion for file names.
@@ -589,7 +611,7 @@ def _check_yaml_only(
589
611
  try:
590
612
  with open(entrypoint, 'r', encoding='utf-8') as f:
591
613
  try:
592
- config = list(yaml.safe_load_all(f))
614
+ config = list(yaml_utils.safe_load_all(f))
593
615
  if config:
594
616
  # FIXME(zongheng): in a chain DAG YAML it only returns the
595
617
  # first section. OK for downstream but is weird.
@@ -6017,7 +6039,10 @@ def api_stop():
6017
6039
 
6018
6040
  @api.command('logs', cls=_DocumentedCodeCommand)
6019
6041
  @flags.config_option(expose_value=False)
6020
- @click.argument('request_id', required=False, type=str)
6042
+ @click.argument('request_id',
6043
+ required=False,
6044
+ type=str,
6045
+ **_get_shell_complete_args(_complete_api_request))
6021
6046
  @click.option('--server-logs',
6022
6047
  is_flag=True,
6023
6048
  default=False,
@@ -6061,7 +6086,11 @@ def api_logs(request_id: Optional[str], server_logs: bool,
6061
6086
 
6062
6087
  @api.command('cancel', cls=_DocumentedCodeCommand)
6063
6088
  @flags.config_option(expose_value=False)
6064
- @click.argument('request_ids', required=False, type=str, nargs=-1)
6089
+ @click.argument('request_ids',
6090
+ required=False,
6091
+ type=str,
6092
+ nargs=-1,
6093
+ **_get_shell_complete_args(_complete_api_request))
6065
6094
  @flags.all_option('Cancel all your requests.')
6066
6095
  @flags.all_users_option('Cancel all requests from all users.')
6067
6096
  @usage_lib.entrypoint
@@ -6093,7 +6122,11 @@ def api_cancel(request_ids: Optional[List[str]], all: bool, all_users: bool):
6093
6122
 
6094
6123
  @api.command('status', cls=_DocumentedCodeCommand)
6095
6124
  @flags.config_option(expose_value=False)
6096
- @click.argument('request_ids', required=False, type=str, nargs=-1)
6125
+ @click.argument('request_ids',
6126
+ required=False,
6127
+ type=str,
6128
+ nargs=-1,
6129
+ **_get_shell_complete_args(_complete_api_request))
6097
6130
  @click.option('--all-status',
6098
6131
  '-a',
6099
6132
  is_flag=True,