skypilot-nightly 1.0.0.dev20250720__tar.gz → 1.0.0.dev20250724__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 (558) hide show
  1. {skypilot_nightly-1.0.0.dev20250720/sky/setup_files → skypilot_nightly-1.0.0.dev20250724}/MANIFEST.in +1 -1
  2. {skypilot_nightly-1.0.0.dev20250720/skypilot_nightly.egg-info → skypilot_nightly-1.0.0.dev20250724}/PKG-INFO +1 -1
  3. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/__init__.py +2 -2
  4. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/admin_policy.py +11 -4
  5. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/backends/backend_utils.py +27 -11
  6. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/backends/cloud_vm_ray_backend.py +22 -27
  7. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/client/cli/command.py +44 -28
  8. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/client/sdk.py +52 -7
  9. skypilot_nightly-1.0.0.dev20250724/sky/client/sdk.pyi +296 -0
  10. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/clouds/nebius.py +2 -5
  11. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/clouds/utils/oci_utils.py +16 -40
  12. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/clouds/vast.py +2 -1
  13. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/dashboard/out/404.html +1 -1
  14. skypilot_nightly-1.0.0.dev20250724/sky/dashboard/out/_next/static/BURfWrKsQk9psMPv0OXrh/_buildManifest.js +1 -0
  15. skypilot_nightly-1.0.0.dev20250720/sky/dashboard/out/_next/static/chunks/1141-d8c6404a7c6fffe6.js → skypilot_nightly-1.0.0.dev20250724/sky/dashboard/out/_next/static/chunks/1141-e49a159c30a6c4a7.js +1 -1
  16. skypilot_nightly-1.0.0.dev20250724/sky/dashboard/out/_next/static/chunks/1559-18717d96ef2fcbe9.js +30 -0
  17. skypilot_nightly-1.0.0.dev20250720/sky/dashboard/out/_next/static/chunks/1871-a821dcaaae2a3823.js → skypilot_nightly-1.0.0.dev20250724/sky/dashboard/out/_next/static/chunks/1871-ea0e7283886407ca.js +2 -2
  18. skypilot_nightly-1.0.0.dev20250724/sky/dashboard/out/_next/static/chunks/2003.b82e6db40ec4c463.js +1 -0
  19. skypilot_nightly-1.0.0.dev20250724/sky/dashboard/out/_next/static/chunks/2350.23778a2b19aabd33.js +1 -0
  20. skypilot_nightly-1.0.0.dev20250724/sky/dashboard/out/_next/static/chunks/2369.2d6e4757f8dfc2b7.js +15 -0
  21. skypilot_nightly-1.0.0.dev20250720/sky/dashboard/out/_next/static/chunks/2641.5233e938f14e31a7.js → skypilot_nightly-1.0.0.dev20250724/sky/dashboard/out/_next/static/chunks/2641.74c19c4d45a2c034.js +1 -1
  22. skypilot_nightly-1.0.0.dev20250724/sky/dashboard/out/_next/static/chunks/3785.59705416215ff08b.js +1 -0
  23. skypilot_nightly-1.0.0.dev20250724/sky/dashboard/out/_next/static/chunks/4869.da729a7db3a31f43.js +16 -0
  24. skypilot_nightly-1.0.0.dev20250724/sky/dashboard/out/_next/static/chunks/4937.d75809403fc264ac.js +15 -0
  25. skypilot_nightly-1.0.0.dev20250724/sky/dashboard/out/_next/static/chunks/6135-2abbd0352f8ee061.js +1 -0
  26. skypilot_nightly-1.0.0.dev20250724/sky/dashboard/out/_next/static/chunks/691.488b4aef97c28727.js +55 -0
  27. skypilot_nightly-1.0.0.dev20250724/sky/dashboard/out/_next/static/chunks/6990-f64e03df359e04f7.js +1 -0
  28. skypilot_nightly-1.0.0.dev20250724/sky/dashboard/out/_next/static/chunks/7411-2cc31dc0fdf2a9ad.js +41 -0
  29. skypilot_nightly-1.0.0.dev20250724/sky/dashboard/out/_next/static/chunks/9025.4a9099bdf3ed4875.js +6 -0
  30. skypilot_nightly-1.0.0.dev20250720/sky/dashboard/out/_next/static/chunks/938-63fc419cb82ad9b3.js → skypilot_nightly-1.0.0.dev20250724/sky/dashboard/out/_next/static/chunks/938-7ee806653aef0609.js +1 -1
  31. skypilot_nightly-1.0.0.dev20250724/sky/dashboard/out/_next/static/chunks/9847.387abf8a14d722db.js +30 -0
  32. skypilot_nightly-1.0.0.dev20250720/sky/dashboard/out/_next/static/chunks/9984.2b5e3fa69171bff9.js → skypilot_nightly-1.0.0.dev20250724/sky/dashboard/out/_next/static/chunks/9984.0460de9d3adf5582.js +1 -1
  33. skypilot_nightly-1.0.0.dev20250724/sky/dashboard/out/_next/static/chunks/pages/_app-da491665d4289aae.js +34 -0
  34. skypilot_nightly-1.0.0.dev20250720/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-fa406155b4223d0d.js → skypilot_nightly-1.0.0.dev20250724/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-2186770cc2de1623.js +2 -2
  35. skypilot_nightly-1.0.0.dev20250720/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-0c37ee1ac5f3474d.js → skypilot_nightly-1.0.0.dev20250724/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-95afb019ab85801c.js +1 -1
  36. skypilot_nightly-1.0.0.dev20250724/sky/dashboard/out/_next/static/chunks/pages/clusters-3d4be4961e1c94eb.js +1 -0
  37. skypilot_nightly-1.0.0.dev20250724/sky/dashboard/out/_next/static/chunks/pages/index-89e7daf7b7df02e0.js +1 -0
  38. skypilot_nightly-1.0.0.dev20250724/sky/dashboard/out/_next/static/chunks/pages/infra/[context]-a90b4fe4616dc501.js +1 -0
  39. skypilot_nightly-1.0.0.dev20250724/sky/dashboard/out/_next/static/chunks/pages/infra-0d3d1f890c5d188a.js +1 -0
  40. skypilot_nightly-1.0.0.dev20250720/sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-c5b357bfd9502fbe.js → skypilot_nightly-1.0.0.dev20250724/sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-dc0299ffefebcdbe.js +2 -2
  41. skypilot_nightly-1.0.0.dev20250724/sky/dashboard/out/_next/static/chunks/pages/jobs-49f790d12a85027c.js +1 -0
  42. skypilot_nightly-1.0.0.dev20250720/sky/dashboard/out/_next/static/chunks/pages/users-19e98664bdd61643.js → skypilot_nightly-1.0.0.dev20250724/sky/dashboard/out/_next/static/chunks/pages/users-6790fcefd5487b13.js +1 -1
  43. skypilot_nightly-1.0.0.dev20250724/sky/dashboard/out/_next/static/chunks/pages/workspaces/[name]-6bcd4b20914d76c9.js +1 -0
  44. skypilot_nightly-1.0.0.dev20250724/sky/dashboard/out/_next/static/chunks/pages/workspaces-5f7fe4b7d55b8612.js +1 -0
  45. skypilot_nightly-1.0.0.dev20250724/sky/dashboard/out/_next/static/chunks/webpack-b6447da22305b14a.js +1 -0
  46. skypilot_nightly-1.0.0.dev20250724/sky/dashboard/out/_next/static/css/b3227360726f12eb.css +3 -0
  47. skypilot_nightly-1.0.0.dev20250724/sky/dashboard/out/clusters/[cluster]/[job].html +1 -0
  48. skypilot_nightly-1.0.0.dev20250724/sky/dashboard/out/clusters/[cluster].html +1 -0
  49. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/dashboard/out/clusters.html +1 -1
  50. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/dashboard/out/config.html +1 -1
  51. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/dashboard/out/index.html +1 -1
  52. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/dashboard/out/infra/[context].html +1 -1
  53. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/dashboard/out/infra.html +1 -1
  54. skypilot_nightly-1.0.0.dev20250724/sky/dashboard/out/jobs/[job].html +1 -0
  55. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/dashboard/out/jobs.html +1 -1
  56. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/dashboard/out/users.html +1 -1
  57. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/dashboard/out/volumes.html +1 -1
  58. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/dashboard/out/workspace/new.html +1 -1
  59. skypilot_nightly-1.0.0.dev20250724/sky/dashboard/out/workspaces/[name].html +1 -0
  60. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/dashboard/out/workspaces.html +1 -1
  61. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/data/mounting_utils.py +93 -32
  62. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/exceptions.py +8 -0
  63. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/global_user_state.py +2 -3
  64. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/jobs/state.py +2 -2
  65. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/logs/__init__.py +4 -0
  66. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/logs/agent.py +14 -0
  67. skypilot_nightly-1.0.0.dev20250724/sky/logs/aws.py +276 -0
  68. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/nebius/utils.py +3 -6
  69. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/server/common.py +9 -4
  70. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/server/requests/payloads.py +20 -4
  71. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/server/rest.py +6 -0
  72. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/server/server.py +2 -1
  73. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724/sky/setup_files}/MANIFEST.in +1 -1
  74. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/setup_files/alembic.ini +0 -4
  75. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/skylet/constants.py +4 -0
  76. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/skypilot_config.py +5 -31
  77. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/common_utils.py +8 -3
  78. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/config_utils.py +17 -0
  79. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/db/migration_utils.py +44 -4
  80. skypilot_nightly-1.0.0.dev20250724/sky/utils/locks.py +319 -0
  81. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/rich_utils.py +2 -3
  82. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/schemas.py +92 -56
  83. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/timeline.py +41 -0
  84. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724/skypilot_nightly.egg-info}/PKG-INFO +1 -1
  85. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/skypilot_nightly.egg-info/SOURCES.txt +37 -35
  86. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/tests/test_config.py +213 -0
  87. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/tests/test_smoke.py +1 -0
  88. skypilot_nightly-1.0.0.dev20250720/sky/dashboard/out/_next/static/chunks/1746.27d40aedc22bd2d6.js +0 -60
  89. skypilot_nightly-1.0.0.dev20250720/sky/dashboard/out/_next/static/chunks/2544.27f70672535675ed.js +0 -1
  90. skypilot_nightly-1.0.0.dev20250720/sky/dashboard/out/_next/static/chunks/2875.c24c6d57dc82e436.js +0 -25
  91. skypilot_nightly-1.0.0.dev20250720/sky/dashboard/out/_next/static/chunks/3785.95b94f18aaec7233.js +0 -1
  92. skypilot_nightly-1.0.0.dev20250720/sky/dashboard/out/_next/static/chunks/3947-b059261d6fa88a1f.js +0 -35
  93. skypilot_nightly-1.0.0.dev20250720/sky/dashboard/out/_next/static/chunks/430.ed51037d1a4a438b.js +0 -1
  94. skypilot_nightly-1.0.0.dev20250720/sky/dashboard/out/_next/static/chunks/4869.c7c055a5c2814f33.js +0 -16
  95. skypilot_nightly-1.0.0.dev20250720/sky/dashboard/out/_next/static/chunks/5491.918ffed0ba7a5294.js +0 -20
  96. skypilot_nightly-1.0.0.dev20250720/sky/dashboard/out/_next/static/chunks/6990-dcb411b566e64cde.js +0 -1
  97. skypilot_nightly-1.0.0.dev20250720/sky/dashboard/out/_next/static/chunks/804-9f5e98ce84d46bdd.js +0 -21
  98. skypilot_nightly-1.0.0.dev20250720/sky/dashboard/out/_next/static/chunks/9025.133e9ba5c780afeb.js +0 -6
  99. skypilot_nightly-1.0.0.dev20250720/sky/dashboard/out/_next/static/chunks/9470-8178183f3bae198f.js +0 -1
  100. skypilot_nightly-1.0.0.dev20250720/sky/dashboard/out/_next/static/chunks/9847.46e613d000c55859.js +0 -30
  101. skypilot_nightly-1.0.0.dev20250720/sky/dashboard/out/_next/static/chunks/pages/_app-507712f30cd3cec3.js +0 -20
  102. skypilot_nightly-1.0.0.dev20250720/sky/dashboard/out/_next/static/chunks/pages/clusters-102d169e87913ba1.js +0 -1
  103. skypilot_nightly-1.0.0.dev20250720/sky/dashboard/out/_next/static/chunks/pages/index-927ddeebe57a8ac3.js +0 -1
  104. skypilot_nightly-1.0.0.dev20250720/sky/dashboard/out/_next/static/chunks/pages/infra/[context]-8b0809f59034d509.js +0 -1
  105. skypilot_nightly-1.0.0.dev20250720/sky/dashboard/out/_next/static/chunks/pages/infra-ae9d2f705ce582c9.js +0 -1
  106. skypilot_nightly-1.0.0.dev20250720/sky/dashboard/out/_next/static/chunks/pages/jobs-5bbdc71878f0a068.js +0 -1
  107. skypilot_nightly-1.0.0.dev20250720/sky/dashboard/out/_next/static/chunks/pages/workspaces/[name]-7c0187f43757a548.js +0 -1
  108. skypilot_nightly-1.0.0.dev20250720/sky/dashboard/out/_next/static/chunks/pages/workspaces-a1e43d9ef51a9cea.js +0 -1
  109. skypilot_nightly-1.0.0.dev20250720/sky/dashboard/out/_next/static/chunks/webpack-26cdc782eed15a7d.js +0 -1
  110. skypilot_nightly-1.0.0.dev20250720/sky/dashboard/out/_next/static/css/5122cb0a08486fd3.css +0 -3
  111. skypilot_nightly-1.0.0.dev20250720/sky/dashboard/out/_next/static/pTQKG61ng32Zc7gsAROFJ/_buildManifest.js +0 -1
  112. skypilot_nightly-1.0.0.dev20250720/sky/dashboard/out/clusters/[cluster]/[job].html +0 -1
  113. skypilot_nightly-1.0.0.dev20250720/sky/dashboard/out/clusters/[cluster].html +0 -1
  114. skypilot_nightly-1.0.0.dev20250720/sky/dashboard/out/jobs/[job].html +0 -1
  115. skypilot_nightly-1.0.0.dev20250720/sky/dashboard/out/workspaces/[name].html +0 -1
  116. skypilot_nightly-1.0.0.dev20250720/sky/schemas/db/skypilot_config/001_initial_schema.py +0 -30
  117. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/LICENSE +0 -0
  118. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/README.md +0 -0
  119. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/pyproject.toml +0 -0
  120. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/setup.cfg +0 -0
  121. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/setup.py +0 -0
  122. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/adaptors/__init__.py +0 -0
  123. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/adaptors/aws.py +0 -0
  124. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/adaptors/azure.py +0 -0
  125. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/adaptors/cloudflare.py +0 -0
  126. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/adaptors/common.py +0 -0
  127. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/adaptors/cudo.py +0 -0
  128. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/adaptors/do.py +0 -0
  129. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/adaptors/docker.py +0 -0
  130. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/adaptors/gcp.py +0 -0
  131. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/adaptors/hyperbolic.py +0 -0
  132. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/adaptors/ibm.py +0 -0
  133. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/adaptors/kubernetes.py +0 -0
  134. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/adaptors/nebius.py +0 -0
  135. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/adaptors/oci.py +0 -0
  136. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/adaptors/runpod.py +0 -0
  137. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/adaptors/vast.py +0 -0
  138. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/adaptors/vsphere.py +0 -0
  139. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/authentication.py +0 -0
  140. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/backends/__init__.py +0 -0
  141. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/backends/backend.py +0 -0
  142. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/backends/docker_utils.py +0 -0
  143. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/backends/local_docker_backend.py +0 -0
  144. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/backends/monkey_patches/monkey_patch_ray_up.py +0 -0
  145. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/backends/wheel_utils.py +0 -0
  146. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/catalog/__init__.py +0 -0
  147. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/catalog/aws_catalog.py +0 -0
  148. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/catalog/azure_catalog.py +0 -0
  149. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/catalog/common.py +0 -0
  150. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/catalog/config.py +0 -0
  151. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/catalog/cudo_catalog.py +0 -0
  152. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/catalog/data_fetchers/__init__.py +0 -0
  153. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/catalog/data_fetchers/analyze.py +0 -0
  154. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/catalog/data_fetchers/fetch_aws.py +0 -0
  155. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/catalog/data_fetchers/fetch_azure.py +0 -0
  156. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/catalog/data_fetchers/fetch_cudo.py +0 -0
  157. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/catalog/data_fetchers/fetch_fluidstack.py +0 -0
  158. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/catalog/data_fetchers/fetch_gcp.py +0 -0
  159. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/catalog/data_fetchers/fetch_hyperbolic.py +0 -0
  160. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/catalog/data_fetchers/fetch_ibm.py +0 -0
  161. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/catalog/data_fetchers/fetch_lambda_cloud.py +0 -0
  162. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/catalog/data_fetchers/fetch_nebius.py +0 -0
  163. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/catalog/data_fetchers/fetch_vast.py +0 -0
  164. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/catalog/data_fetchers/fetch_vsphere.py +0 -0
  165. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/catalog/do_catalog.py +0 -0
  166. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/catalog/fluidstack_catalog.py +0 -0
  167. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/catalog/gcp_catalog.py +0 -0
  168. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/catalog/hyperbolic_catalog.py +0 -0
  169. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/catalog/ibm_catalog.py +0 -0
  170. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/catalog/kubernetes_catalog.py +0 -0
  171. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/catalog/lambda_catalog.py +0 -0
  172. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/catalog/nebius_catalog.py +0 -0
  173. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/catalog/oci_catalog.py +0 -0
  174. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/catalog/paperspace_catalog.py +0 -0
  175. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/catalog/runpod_catalog.py +0 -0
  176. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/catalog/scp_catalog.py +0 -0
  177. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/catalog/ssh_catalog.py +0 -0
  178. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/catalog/vast_catalog.py +0 -0
  179. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/catalog/vsphere_catalog.py +0 -0
  180. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/check.py +0 -0
  181. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/cli.py +0 -0
  182. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/client/__init__.py +0 -0
  183. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/client/cli/__init__.py +0 -0
  184. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/client/cli/deprecation_utils.py +0 -0
  185. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/client/cli/flags.py +0 -0
  186. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/client/cli/git.py +0 -0
  187. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/client/common.py +0 -0
  188. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/client/oauth.py +0 -0
  189. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/client/service_account_auth.py +0 -0
  190. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/cloud_stores.py +0 -0
  191. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/clouds/__init__.py +0 -0
  192. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/clouds/aws.py +0 -0
  193. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/clouds/azure.py +0 -0
  194. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/clouds/cloud.py +0 -0
  195. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/clouds/cudo.py +0 -0
  196. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/clouds/do.py +0 -0
  197. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/clouds/fluidstack.py +0 -0
  198. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/clouds/gcp.py +0 -0
  199. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/clouds/hyperbolic.py +0 -0
  200. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/clouds/ibm.py +0 -0
  201. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/clouds/kubernetes.py +0 -0
  202. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/clouds/lambda_cloud.py +0 -0
  203. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/clouds/oci.py +0 -0
  204. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/clouds/paperspace.py +0 -0
  205. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/clouds/runpod.py +0 -0
  206. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/clouds/scp.py +0 -0
  207. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/clouds/ssh.py +0 -0
  208. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/clouds/utils/__init__.py +0 -0
  209. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/clouds/utils/aws_utils.py +0 -0
  210. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/clouds/utils/azure_utils.py +0 -0
  211. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/clouds/utils/gcp_utils.py +0 -0
  212. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/clouds/utils/scp_utils.py +0 -0
  213. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/clouds/vsphere.py +0 -0
  214. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/core.py +0 -0
  215. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/dag.py +0 -0
  216. {skypilot_nightly-1.0.0.dev20250720/sky/dashboard/out/_next/static/pTQKG61ng32Zc7gsAROFJ → skypilot_nightly-1.0.0.dev20250724/sky/dashboard/out/_next/static/BURfWrKsQk9psMPv0OXrh}/_ssgManifest.js +0 -0
  217. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/dashboard/out/_next/static/chunks/1043-869d9c78bf5dd3df.js +0 -0
  218. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/dashboard/out/_next/static/chunks/1272-1ef0bf0237faccdb.js +0 -0
  219. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/dashboard/out/_next/static/chunks/1664-d65361e92b85e786.js +0 -0
  220. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/dashboard/out/_next/static/chunks/3698-9fa11dafb5cad4a6.js +0 -0
  221. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/dashboard/out/_next/static/chunks/3937.d7f1c55d1916c7f2.js +0 -0
  222. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/dashboard/out/_next/static/chunks/4725.66125dcd9832aa5d.js +0 -0
  223. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/dashboard/out/_next/static/chunks/5230-df791914b54d91d9.js +0 -0
  224. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/dashboard/out/_next/static/chunks/5739-5ea3ffa10fc884f2.js +0 -0
  225. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/dashboard/out/_next/static/chunks/616-162f3033ffcd3d31.js +0 -0
  226. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/dashboard/out/_next/static/chunks/6601-d4a381403a8bae91.js +0 -0
  227. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/dashboard/out/_next/static/chunks/6989-eab0e9c16b64fd9f.js +0 -0
  228. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/dashboard/out/_next/static/chunks/8969-8e0b2055bf5dd499.js +0 -0
  229. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/dashboard/out/_next/static/chunks/fd9d1056-61f2257a9cd8b32b.js +0 -0
  230. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/dashboard/out/_next/static/chunks/framework-efc06c2733009cd3.js +0 -0
  231. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/dashboard/out/_next/static/chunks/main-app-68c028b1bc5e1b72.js +0 -0
  232. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/dashboard/out/_next/static/chunks/main-c0a4f1ea606d48d2.js +0 -0
  233. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/dashboard/out/_next/static/chunks/pages/_error-c72a1f77a3c0be1b.js +0 -0
  234. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/dashboard/out/_next/static/chunks/pages/config-a2673b256b6d416f.js +0 -0
  235. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/dashboard/out/_next/static/chunks/pages/volumes-61ea7ba7e56f8d06.js +0 -0
  236. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/dashboard/out/_next/static/chunks/pages/workspace/new-5629d4e551dba1ee.js +0 -0
  237. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/dashboard/out/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js +0 -0
  238. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/dashboard/out/favicon.ico +0 -0
  239. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/dashboard/out/skypilot.svg +0 -0
  240. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/dashboard/out/videos/cursor-small.mp4 +0 -0
  241. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/data/__init__.py +0 -0
  242. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/data/data_transfer.py +0 -0
  243. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/data/data_utils.py +0 -0
  244. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/data/storage.py +0 -0
  245. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/data/storage_utils.py +0 -0
  246. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/execution.py +0 -0
  247. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/jobs/__init__.py +0 -0
  248. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/jobs/client/__init__.py +0 -0
  249. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/jobs/client/sdk.py +0 -0
  250. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/jobs/constants.py +0 -0
  251. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/jobs/controller.py +0 -0
  252. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/jobs/recovery_strategy.py +0 -0
  253. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/jobs/scheduler.py +0 -0
  254. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/jobs/server/__init__.py +0 -0
  255. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/jobs/server/core.py +0 -0
  256. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/jobs/server/server.py +0 -0
  257. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/jobs/server/utils.py +0 -0
  258. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/jobs/utils.py +0 -0
  259. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/logs/gcp.py +0 -0
  260. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/metrics/__init__.py +0 -0
  261. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/metrics/utils.py +0 -0
  262. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/models.py +0 -0
  263. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/optimizer.py +0 -0
  264. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/__init__.py +0 -0
  265. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/aws/__init__.py +0 -0
  266. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/aws/config.py +0 -0
  267. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/aws/instance.py +0 -0
  268. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/aws/utils.py +0 -0
  269. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/azure/__init__.py +0 -0
  270. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/azure/azure-config-template.json +0 -0
  271. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/azure/config.py +0 -0
  272. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/azure/instance.py +0 -0
  273. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/common.py +0 -0
  274. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/constants.py +0 -0
  275. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/cudo/__init__.py +0 -0
  276. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/cudo/config.py +0 -0
  277. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/cudo/cudo_machine_type.py +0 -0
  278. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/cudo/cudo_utils.py +0 -0
  279. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/cudo/cudo_wrapper.py +0 -0
  280. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/cudo/instance.py +0 -0
  281. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/do/__init__.py +0 -0
  282. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/do/config.py +0 -0
  283. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/do/constants.py +0 -0
  284. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/do/instance.py +0 -0
  285. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/do/utils.py +0 -0
  286. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/docker_utils.py +0 -0
  287. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/fluidstack/__init__.py +0 -0
  288. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/fluidstack/config.py +0 -0
  289. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/fluidstack/fluidstack_utils.py +0 -0
  290. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/fluidstack/instance.py +0 -0
  291. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/gcp/__init__.py +0 -0
  292. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/gcp/config.py +0 -0
  293. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/gcp/constants.py +0 -0
  294. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/gcp/instance.py +0 -0
  295. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/gcp/instance_utils.py +0 -0
  296. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/gcp/mig_utils.py +0 -0
  297. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/gcp/volume_utils.py +0 -0
  298. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/hyperbolic/__init__.py +0 -0
  299. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/hyperbolic/config.py +0 -0
  300. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/hyperbolic/instance.py +0 -0
  301. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/hyperbolic/utils.py +0 -0
  302. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/instance_setup.py +0 -0
  303. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/kubernetes/__init__.py +0 -0
  304. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/kubernetes/config.py +0 -0
  305. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/kubernetes/constants.py +0 -0
  306. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/kubernetes/instance.py +0 -0
  307. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/kubernetes/manifests/fusermount-server-daemonset.yaml +0 -0
  308. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/kubernetes/network.py +0 -0
  309. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/kubernetes/network_utils.py +0 -0
  310. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/kubernetes/utils.py +0 -0
  311. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/kubernetes/volume.py +0 -0
  312. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/lambda_cloud/__init__.py +0 -0
  313. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/lambda_cloud/config.py +0 -0
  314. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/lambda_cloud/instance.py +0 -0
  315. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/lambda_cloud/lambda_utils.py +0 -0
  316. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/logging.py +0 -0
  317. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/metadata_utils.py +0 -0
  318. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/nebius/__init__.py +0 -0
  319. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/nebius/config.py +0 -0
  320. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/nebius/constants.py +0 -0
  321. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/nebius/instance.py +0 -0
  322. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/oci/__init__.py +0 -0
  323. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/oci/config.py +0 -0
  324. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/oci/instance.py +0 -0
  325. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/oci/query_utils.py +0 -0
  326. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/paperspace/__init__.py +0 -0
  327. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/paperspace/config.py +0 -0
  328. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/paperspace/constants.py +0 -0
  329. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/paperspace/instance.py +0 -0
  330. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/paperspace/utils.py +0 -0
  331. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/provisioner.py +0 -0
  332. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/runpod/__init__.py +0 -0
  333. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/runpod/api/__init__.py +0 -0
  334. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/runpod/api/commands.py +0 -0
  335. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/runpod/api/pods.py +0 -0
  336. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/runpod/config.py +0 -0
  337. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/runpod/instance.py +0 -0
  338. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/runpod/utils.py +0 -0
  339. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/scp/__init__.py +0 -0
  340. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/scp/config.py +0 -0
  341. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/scp/instance.py +0 -0
  342. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/ssh/__init__.py +0 -0
  343. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/vast/__init__.py +0 -0
  344. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/vast/config.py +0 -0
  345. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/vast/instance.py +0 -0
  346. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/vast/utils.py +0 -0
  347. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/vsphere/__init__.py +0 -0
  348. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/vsphere/common/__init__.py +0 -0
  349. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/vsphere/common/cls_api_client.py +0 -0
  350. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/vsphere/common/cls_api_helper.py +0 -0
  351. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/vsphere/common/custom_script.py +0 -0
  352. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/vsphere/common/id_generator.py +0 -0
  353. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/vsphere/common/metadata_utils.py +0 -0
  354. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/vsphere/common/service_manager.py +0 -0
  355. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/vsphere/common/service_manager_factory.py +0 -0
  356. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/vsphere/common/ssl_helper.py +0 -0
  357. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/vsphere/common/vapiconnect.py +0 -0
  358. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/vsphere/common/vim_utils.py +0 -0
  359. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/vsphere/config.py +0 -0
  360. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/vsphere/instance.py +0 -0
  361. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/provision/vsphere/vsphere_utils.py +0 -0
  362. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/resources.py +0 -0
  363. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/schemas/db/README +0 -0
  364. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/schemas/db/env.py +0 -0
  365. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/schemas/db/global_user_state/001_initial_schema.py +0 -0
  366. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/schemas/db/script.py.mako +0 -0
  367. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/schemas/db/spot_jobs/001_initial_schema.py +0 -0
  368. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/serve/__init__.py +0 -0
  369. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/serve/autoscalers.py +0 -0
  370. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/serve/client/__init__.py +0 -0
  371. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/serve/client/sdk.py +0 -0
  372. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/serve/constants.py +0 -0
  373. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/serve/controller.py +0 -0
  374. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/serve/load_balancer.py +0 -0
  375. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/serve/load_balancing_policies.py +0 -0
  376. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/serve/replica_managers.py +0 -0
  377. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/serve/serve_state.py +0 -0
  378. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/serve/serve_utils.py +0 -0
  379. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/serve/server/__init__.py +0 -0
  380. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/serve/server/core.py +0 -0
  381. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/serve/server/server.py +0 -0
  382. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/serve/service.py +0 -0
  383. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/serve/service_spec.py +0 -0
  384. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/serve/spot_placer.py +0 -0
  385. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/server/__init__.py +0 -0
  386. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/server/config.py +0 -0
  387. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/server/constants.py +0 -0
  388. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/server/html/log.html +0 -0
  389. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/server/html/token_page.html +0 -0
  390. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/server/metrics.py +0 -0
  391. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/server/requests/__init__.py +0 -0
  392. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/server/requests/event_loop.py +0 -0
  393. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/server/requests/executor.py +0 -0
  394. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/server/requests/preconditions.py +0 -0
  395. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/server/requests/process.py +0 -0
  396. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/server/requests/queues/__init__.py +0 -0
  397. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/server/requests/queues/local_queue.py +0 -0
  398. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/server/requests/queues/mp_queue.py +0 -0
  399. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/server/requests/requests.py +0 -0
  400. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/server/requests/serializers/__init__.py +0 -0
  401. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/server/requests/serializers/decoders.py +0 -0
  402. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/server/requests/serializers/encoders.py +0 -0
  403. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/server/state.py +0 -0
  404. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/server/stream_utils.py +0 -0
  405. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/server/uvicorn.py +0 -0
  406. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/server/versions.py +0 -0
  407. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/setup_files/dependencies.py +0 -0
  408. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/setup_files/setup.py +0 -0
  409. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/sky_logging.py +0 -0
  410. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/skylet/LICENSE +0 -0
  411. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/skylet/__init__.py +0 -0
  412. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/skylet/attempt_skylet.py +0 -0
  413. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/skylet/autostop_lib.py +0 -0
  414. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/skylet/configs.py +0 -0
  415. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/skylet/events.py +0 -0
  416. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/skylet/job_lib.py +0 -0
  417. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/skylet/log_lib.py +0 -0
  418. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/skylet/log_lib.pyi +0 -0
  419. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/skylet/providers/__init__.py +0 -0
  420. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/skylet/providers/command_runner.py +0 -0
  421. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/skylet/providers/ibm/__init__.py +0 -0
  422. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/skylet/providers/ibm/node_provider.py +0 -0
  423. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/skylet/providers/ibm/utils.py +0 -0
  424. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/skylet/providers/ibm/vpc_provider.py +0 -0
  425. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/skylet/ray_patches/__init__.py +0 -0
  426. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/skylet/ray_patches/autoscaler.py.patch +0 -0
  427. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/skylet/ray_patches/cli.py.patch +0 -0
  428. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/skylet/ray_patches/command_runner.py.patch +0 -0
  429. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/skylet/ray_patches/log_monitor.py.patch +0 -0
  430. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/skylet/ray_patches/resource_demand_scheduler.py.patch +0 -0
  431. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/skylet/ray_patches/updater.py.patch +0 -0
  432. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/skylet/ray_patches/worker.py.patch +0 -0
  433. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/skylet/skylet.py +0 -0
  434. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/skylet/subprocess_daemon.py +0 -0
  435. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/ssh_node_pools/__init__.py +0 -0
  436. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/ssh_node_pools/core.py +0 -0
  437. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/ssh_node_pools/server.py +0 -0
  438. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/task.py +0 -0
  439. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/templates/aws-ray.yml.j2 +0 -0
  440. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/templates/azure-ray.yml.j2 +0 -0
  441. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/templates/cudo-ray.yml.j2 +0 -0
  442. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/templates/do-ray.yml.j2 +0 -0
  443. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/templates/fluidstack-ray.yml.j2 +0 -0
  444. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/templates/gcp-ray.yml.j2 +0 -0
  445. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/templates/hyperbolic-ray.yml.j2 +0 -0
  446. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/templates/ibm-ray.yml.j2 +0 -0
  447. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/templates/jobs-controller.yaml.j2 +0 -0
  448. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/templates/kubernetes-ingress.yml.j2 +0 -0
  449. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/templates/kubernetes-loadbalancer.yml.j2 +0 -0
  450. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/templates/kubernetes-port-forward-proxy-command.sh +0 -0
  451. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/templates/kubernetes-ray.yml.j2 +0 -0
  452. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/templates/kubernetes-ssh-jump.yml.j2 +0 -0
  453. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/templates/lambda-ray.yml.j2 +0 -0
  454. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/templates/local-ray.yml.j2 +0 -0
  455. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/templates/nebius-ray.yml.j2 +0 -0
  456. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/templates/oci-ray.yml.j2 +0 -0
  457. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/templates/paperspace-ray.yml.j2 +0 -0
  458. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/templates/runpod-ray.yml.j2 +0 -0
  459. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/templates/scp-ray.yml.j2 +0 -0
  460. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/templates/sky-serve-controller.yaml.j2 +0 -0
  461. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/templates/skypilot-server-kubernetes-proxy.sh +0 -0
  462. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/templates/vast-ray.yml.j2 +0 -0
  463. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/templates/vsphere-ray.yml.j2 +0 -0
  464. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/templates/websocket_proxy.py +0 -0
  465. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/usage/__init__.py +0 -0
  466. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/usage/constants.py +0 -0
  467. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/usage/usage_lib.py +0 -0
  468. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/users/__init__.py +0 -0
  469. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/users/model.conf +0 -0
  470. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/users/permission.py +0 -0
  471. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/users/rbac.py +0 -0
  472. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/users/server.py +0 -0
  473. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/users/token_service.py +0 -0
  474. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/__init__.py +0 -0
  475. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/accelerator_registry.py +0 -0
  476. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/admin_policy_utils.py +0 -0
  477. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/annotations.py +0 -0
  478. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/atomic.py +0 -0
  479. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/aws/__init__.py +0 -0
  480. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/aws/get_default_security_group.py +0 -0
  481. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/cli_utils/__init__.py +0 -0
  482. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/cli_utils/status_utils.py +0 -0
  483. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/cluster_utils.py +0 -0
  484. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/command_runner.py +0 -0
  485. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/command_runner.pyi +0 -0
  486. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/common.py +0 -0
  487. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/context.py +0 -0
  488. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/context_utils.py +0 -0
  489. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/control_master_utils.py +0 -0
  490. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/controller_utils.py +0 -0
  491. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/dag_utils.py +0 -0
  492. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/db/__init__.py +0 -0
  493. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/db/db_utils.py +0 -0
  494. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/env_options.py +0 -0
  495. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/git.py +0 -0
  496. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/git_clone.sh +0 -0
  497. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/infra_utils.py +0 -0
  498. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/kubernetes/__init__.py +0 -0
  499. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/kubernetes/cleanup-tunnel.sh +0 -0
  500. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/kubernetes/config_map_utils.py +0 -0
  501. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/kubernetes/create_cluster.sh +0 -0
  502. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/kubernetes/delete_cluster.sh +0 -0
  503. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/kubernetes/deploy_remote_cluster.py +0 -0
  504. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/kubernetes/exec_kubeconfig_converter.py +0 -0
  505. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/kubernetes/generate_kind_config.py +0 -0
  506. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/kubernetes/generate_kubeconfig.sh +0 -0
  507. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/kubernetes/gpu_labeler.py +0 -0
  508. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/kubernetes/k8s_gpu_labeler_job.yaml +0 -0
  509. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml +0 -0
  510. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/kubernetes/kubernetes_deploy_utils.py +0 -0
  511. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/kubernetes/rsync_helper.sh +0 -0
  512. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/kubernetes/ssh-tunnel.sh +0 -0
  513. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/kubernetes/ssh_jump_lifecycle_manager.py +0 -0
  514. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/kubernetes/ssh_utils.py +0 -0
  515. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/kubernetes_enums.py +0 -0
  516. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/log_utils.py +0 -0
  517. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/message_utils.py +0 -0
  518. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/registry.py +0 -0
  519. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/resource_checker.py +0 -0
  520. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/resources_utils.py +0 -0
  521. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/rich_console_utils.py +0 -0
  522. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/status_lib.py +0 -0
  523. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/subprocess_utils.py +0 -0
  524. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/tempstore.py +0 -0
  525. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/ux_utils.py +0 -0
  526. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/utils/validator.py +0 -0
  527. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/volumes/__init__.py +0 -0
  528. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/volumes/client/__init__.py +0 -0
  529. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/volumes/client/sdk.py +0 -0
  530. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/volumes/server/__init__.py +0 -0
  531. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/volumes/server/core.py +0 -0
  532. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/volumes/server/server.py +0 -0
  533. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/volumes/utils.py +0 -0
  534. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/volumes/volume.py +0 -0
  535. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/workspaces/__init__.py +0 -0
  536. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/workspaces/core.py +0 -0
  537. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/workspaces/server.py +0 -0
  538. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/sky/workspaces/utils.py +0 -0
  539. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/skypilot_nightly.egg-info/dependency_links.txt +0 -0
  540. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/skypilot_nightly.egg-info/entry_points.txt +0 -0
  541. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/skypilot_nightly.egg-info/requires.txt +0 -0
  542. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/skypilot_nightly.egg-info/top_level.txt +0 -0
  543. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/tests/test_api.py +0 -0
  544. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/tests/test_api_compatibility.py +0 -0
  545. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/tests/test_cli.py +0 -0
  546. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/tests/test_db_utils.py +0 -0
  547. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/tests/test_failover.py +0 -0
  548. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/tests/test_global_user_state.py +0 -0
  549. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/tests/test_jobs.py +0 -0
  550. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/tests/test_jobs_and_serve.py +0 -0
  551. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/tests/test_list_accelerators.py +0 -0
  552. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/tests/test_no_parellel.py +0 -0
  553. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/tests/test_optimizer_dryruns.py +0 -0
  554. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/tests/test_optimizer_random_dag.py +0 -0
  555. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/tests/test_serve_autoscaler.py +0 -0
  556. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/tests/test_storage.py +0 -0
  557. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/tests/test_wheels.py +0 -0
  558. {skypilot_nightly-1.0.0.dev20250720 → skypilot_nightly-1.0.0.dev20250724}/tests/test_yaml_parser.py +0 -0
@@ -18,5 +18,5 @@ include sky/server/html/*
18
18
  recursive-include sky/dashboard/out *
19
19
  include sky/users/*.conf
20
20
  include sky/utils/*.sh
21
- include alembic.ini
21
+ include sky/setup_files/alembic.ini
22
22
  recursive-include sky/schemas/db *
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: skypilot-nightly
3
- Version: 1.0.0.dev20250720
3
+ Version: 1.0.0.dev20250724
4
4
  Summary: SkyPilot: Run AI on Any Infra — Unified, Faster, Cheaper.
5
5
  Author: SkyPilot Team
6
6
  License: Apache 2.0
@@ -5,7 +5,7 @@ from typing import Optional
5
5
  import urllib.request
6
6
 
7
7
  # Replaced with the current commit when building the wheels.
8
- _SKYPILOT_COMMIT_SHA = '80235386457c47b3c178c1e1842e9b07ed75dc06'
8
+ _SKYPILOT_COMMIT_SHA = '5b5dfe080437e0b2e58b1e7742c5864a1ebe9432'
9
9
 
10
10
 
11
11
  def _get_git_commit():
@@ -35,7 +35,7 @@ def _get_git_commit():
35
35
 
36
36
 
37
37
  __commit__ = _get_git_commit()
38
- __version__ = '1.0.0.dev20250720'
38
+ __version__ = '1.0.0.dev20250724'
39
39
  __root_dir__ = os.path.dirname(os.path.abspath(__file__))
40
40
 
41
41
 
@@ -121,11 +121,17 @@ class MutatedUserRequest:
121
121
  dict(self.skypilot_config),)).model_dump_json()
122
122
 
123
123
  @classmethod
124
- def decode(cls, mutated_user_request_body: str) -> 'MutatedUserRequest':
124
+ def decode(cls, mutated_user_request_body: str,
125
+ original_request: UserRequest) -> 'MutatedUserRequest':
125
126
  mutated_user_request_body = _MutatedUserRequestBody.model_validate_json(
126
127
  mutated_user_request_body)
127
- return cls(task=sky.Task.from_yaml_config(
128
- common_utils.read_yaml_all_str(mutated_user_request_body.task)[0]),
128
+ task = sky.Task.from_yaml_config(
129
+ common_utils.read_yaml_all_str(mutated_user_request_body.task)[0])
130
+ # Some internal Task fields are not serialized. We need to manually
131
+ # restore them from the original request.
132
+ task.managed_job_dag = original_request.task.managed_job_dag
133
+ task.service_name = original_request.task.service_name
134
+ return cls(task=task,
129
135
  skypilot_config=config_utils.Config.from_dict(
130
136
  common_utils.read_yaml_all_str(
131
137
  mutated_user_request_body.skypilot_config)[0],))
@@ -243,7 +249,8 @@ class RestfulAdminPolicy(PolicyTemplate):
243
249
  f'{self.policy_url}: {e}') from None
244
250
 
245
251
  try:
246
- mutated_user_request = MutatedUserRequest.decode(response.json())
252
+ mutated_user_request = MutatedUserRequest.decode(
253
+ response.json(), user_request)
247
254
  except Exception as e: # pylint: disable=broad-except
248
255
  with ux_utils.print_exception_no_traceback():
249
256
  raise exceptions.RestfulPolicyError(
@@ -17,7 +17,6 @@ from typing import Any, Dict, List, Optional, Sequence, Set, Tuple, Union
17
17
  import uuid
18
18
 
19
19
  import colorama
20
- import filelock
21
20
  from packaging import version
22
21
  from typing_extensions import Literal
23
22
 
@@ -45,6 +44,7 @@ from sky.utils import common_utils
45
44
  from sky.utils import context_utils
46
45
  from sky.utils import controller_utils
47
46
  from sky.utils import env_options
47
+ from sky.utils import locks
48
48
  from sky.utils import registry
49
49
  from sky.utils import resources_utils
50
50
  from sky.utils import rich_utils
@@ -110,17 +110,12 @@ _TEST_IP_LIST = ['https://8.8.8.8', 'https://1.1.1.1']
110
110
  # Note: This value cannot be too small, otherwise OOM issue may occur.
111
111
  DEFAULT_TASK_CPU_DEMAND = 0.5
112
112
 
113
- # Filelocks for the cluster status change.
114
- CLUSTER_STATUS_LOCK_PATH = os.path.expanduser('~/.sky/.{}.lock')
115
113
  CLUSTER_STATUS_LOCK_TIMEOUT_SECONDS = 20
116
114
 
117
115
  # Time that must elapse since the last status check before we should re-check if
118
116
  # the cluster has been terminated or autostopped.
119
117
  _CLUSTER_STATUS_CACHE_DURATION_SECONDS = 2
120
118
 
121
- # Filelocks for updating cluster's file_mounts.
122
- CLUSTER_FILE_MOUNTS_LOCK_PATH = os.path.expanduser(
123
- '~/.sky/.{}_file_mounts.lock')
124
119
  CLUSTER_FILE_MOUNTS_LOCK_TIMEOUT_SECONDS = 10
125
120
 
126
121
  # Remote dir that holds our runtime files.
@@ -2005,9 +2000,20 @@ def _update_cluster_status(cluster_name: str) -> Optional[Dict[str, Any]]:
2005
2000
 
2006
2001
  total_nodes = handle.launched_nodes * handle.num_ips_per_node
2007
2002
 
2003
+ cloud_name = repr(handle.launched_resources.cloud).lower()
2008
2004
  for i in range(5):
2009
- ready_head, ready_workers, output, stderr = (
2010
- get_node_counts_from_ray_status(head_runner))
2005
+ try:
2006
+ ready_head, ready_workers, output, stderr = (
2007
+ get_node_counts_from_ray_status(head_runner))
2008
+ except RuntimeError as e:
2009
+ logger.debug(f'Refreshing status ({cluster_name!r}) attempt'
2010
+ f' {i}: {common_utils.format_exception(e)}')
2011
+ if cloud_name != 'kubernetes':
2012
+ raise e
2013
+ # We retry for kubernetes because coreweave can have a
2014
+ # transient network issue.
2015
+ time.sleep(1)
2016
+ continue
2011
2017
  if ready_head + ready_workers == total_nodes:
2012
2018
  return True
2013
2019
  logger.debug(f'Refreshing status ({cluster_name!r}) attempt '
@@ -2294,8 +2300,7 @@ def refresh_cluster_record(
2294
2300
 
2295
2301
  # The loop logic allows us to notice if the status was updated in the
2296
2302
  # global_user_state by another process and stop trying to get the lock.
2297
- # The core loop logic is adapted from FileLock's implementation.
2298
- lock = filelock.FileLock(CLUSTER_STATUS_LOCK_PATH.format(cluster_name))
2303
+ lock = locks.get_lock(cluster_status_lock_id(cluster_name))
2299
2304
  start_time = time.perf_counter()
2300
2305
 
2301
2306
  # Loop until we have an up-to-date status or until we acquire the lock.
@@ -2319,7 +2324,8 @@ def refresh_cluster_record(
2319
2324
  return record
2320
2325
  # Update and return the cluster status.
2321
2326
  return _update_cluster_status(cluster_name)
2322
- except filelock.Timeout:
2327
+
2328
+ except locks.LockTimeout:
2323
2329
  # lock.acquire() will throw a Timeout exception if the lock is not
2324
2330
  # available and we have blocking=False.
2325
2331
  pass
@@ -3197,3 +3203,13 @@ def get_endpoints(cluster: str,
3197
3203
  return {
3198
3204
  port_num: urls[0].url() for port_num, urls in port_details.items()
3199
3205
  }
3206
+
3207
+
3208
+ def cluster_status_lock_id(cluster_name: str) -> str:
3209
+ """Get the lock ID for cluster status operations."""
3210
+ return f'{cluster_name}_status'
3211
+
3212
+
3213
+ def cluster_file_mounts_lock_id(cluster_name: str) -> str:
3214
+ """Get the lock ID for cluster file mounts operations."""
3215
+ return f'{cluster_name}_file_mounts'
@@ -20,7 +20,6 @@ from typing import (Any, Callable, Dict, Iterable, List, Optional, Set, Tuple,
20
20
  Union)
21
21
 
22
22
  import colorama
23
- import filelock
24
23
  import yaml
25
24
 
26
25
  import sky
@@ -64,6 +63,7 @@ from sky.utils import common_utils
64
63
  from sky.utils import context_utils
65
64
  from sky.utils import controller_utils
66
65
  from sky.utils import env_options
66
+ from sky.utils import locks
67
67
  from sky.utils import log_utils
68
68
  from sky.utils import message_utils
69
69
  from sky.utils import registry
@@ -2916,9 +2916,8 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
2916
2916
  # Check if the cluster is owned by the current user. Raise
2917
2917
  # exceptions.ClusterOwnerIdentityMismatchError
2918
2918
  backend_utils.check_owner_identity(cluster_name)
2919
- lock_path = os.path.expanduser(
2920
- backend_utils.CLUSTER_STATUS_LOCK_PATH.format(cluster_name))
2921
- with timeline.FileLockEvent(lock_path):
2919
+ lock_id = backend_utils.cluster_status_lock_id(cluster_name)
2920
+ with timeline.DistributedLockEvent(lock_id):
2922
2921
  # Try to launch the exiting cluster first. If no existing cluster,
2923
2922
  # this function will create a to_provision_config with required
2924
2923
  # resources.
@@ -3065,7 +3064,7 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
3065
3064
 
3066
3065
  self._update_after_cluster_provisioned(
3067
3066
  handle, to_provision_config.prev_handle, task,
3068
- prev_cluster_status, lock_path, config_hash)
3067
+ prev_cluster_status, lock_id, config_hash)
3069
3068
  return handle, False
3070
3069
 
3071
3070
  cluster_config_file = config_dict['ray']
@@ -3137,7 +3136,7 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
3137
3136
 
3138
3137
  self._update_after_cluster_provisioned(
3139
3138
  handle, to_provision_config.prev_handle, task,
3140
- prev_cluster_status, lock_path, config_hash)
3139
+ prev_cluster_status, lock_id, config_hash)
3141
3140
  return handle, False
3142
3141
 
3143
3142
  def _open_ports(self, handle: CloudVmRayResourceHandle) -> None:
@@ -3155,7 +3154,7 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
3155
3154
  prev_handle: Optional[CloudVmRayResourceHandle],
3156
3155
  task: task_lib.Task,
3157
3156
  prev_cluster_status: Optional[status_lib.ClusterStatus],
3158
- lock_path: str, config_hash: str) -> None:
3157
+ lock_id: str, config_hash: str) -> None:
3159
3158
  usage_lib.messages.usage.update_cluster_resources(
3160
3159
  handle.launched_nodes, handle.launched_resources)
3161
3160
  usage_lib.messages.usage.update_final_cluster_status(
@@ -3237,7 +3236,7 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
3237
3236
  handle.cached_external_ssh_ports, handle.docker_user,
3238
3237
  handle.ssh_user)
3239
3238
 
3240
- common_utils.remove_file_if_exists(lock_path)
3239
+ locks.get_lock(lock_id).force_unlock()
3241
3240
 
3242
3241
  def _sync_workdir(self, handle: CloudVmRayResourceHandle,
3243
3242
  workdir: Union[Path, Dict[str, Any]],
@@ -3819,8 +3818,8 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
3819
3818
  is_identity_mismatch_and_purge = True
3820
3819
  else:
3821
3820
  raise
3822
- lock_path = os.path.expanduser(
3823
- backend_utils.CLUSTER_STATUS_LOCK_PATH.format(cluster_name))
3821
+ lock_id = backend_utils.cluster_status_lock_id(cluster_name)
3822
+ lock = locks.get_lock(lock_id)
3824
3823
  # Retry in case new cluster operation comes in and holds the lock
3825
3824
  # right after the lock is removed.
3826
3825
  n_attempts = 2
@@ -3828,7 +3827,7 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
3828
3827
  n_attempts -= 1
3829
3828
  # In case other running cluster operations are still holding the
3830
3829
  # lock.
3831
- common_utils.remove_file_if_exists(lock_path)
3830
+ lock.force_unlock()
3832
3831
  # We have to kill the cluster requests, because `down` and `stop`
3833
3832
  # should be higher priority than the cluster requests, and we should
3834
3833
  # release the lock from other requests.
@@ -3847,9 +3846,7 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
3847
3846
  f'cluster {handle.cluster_name}: '
3848
3847
  f'{common_utils.format_exception(e, use_bracket=True)}')
3849
3848
  try:
3850
- with filelock.FileLock(
3851
- lock_path,
3852
- backend_utils.CLUSTER_STATUS_LOCK_TIMEOUT_SECONDS):
3849
+ with lock:
3853
3850
  self.teardown_no_lock(
3854
3851
  handle,
3855
3852
  terminate,
@@ -3862,14 +3859,14 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
3862
3859
  refresh_cluster_status=(
3863
3860
  not is_identity_mismatch_and_purge))
3864
3861
  if terminate:
3865
- common_utils.remove_file_if_exists(lock_path)
3862
+ lock.force_unlock()
3866
3863
  break
3867
- except filelock.Timeout as e:
3864
+ except locks.LockTimeout as e:
3868
3865
  logger.debug(f'Failed to acquire lock for {cluster_name}, '
3869
3866
  f'retrying...')
3870
3867
  if n_attempts <= 0:
3871
3868
  raise RuntimeError(
3872
- f'Cluster {cluster_name!r} is locked by {lock_path}. '
3869
+ f'Cluster {cluster_name!r} is locked by {lock_id}. '
3873
3870
  'Check to see if it is still being launched') from e
3874
3871
 
3875
3872
  # --- CloudVMRayBackend Specific APIs ---
@@ -5245,18 +5242,17 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
5245
5242
  # reconstruct them during cluster restart.
5246
5243
  continue
5247
5244
  storage_mounts_metadata[dst] = storage_obj.handle
5248
- lock_path = (
5249
- backend_utils.CLUSTER_FILE_MOUNTS_LOCK_PATH.format(cluster_name))
5245
+ lock_id = backend_utils.cluster_file_mounts_lock_id(cluster_name)
5250
5246
  lock_timeout = backend_utils.CLUSTER_FILE_MOUNTS_LOCK_TIMEOUT_SECONDS
5251
5247
  try:
5252
- with filelock.FileLock(lock_path, lock_timeout):
5248
+ with locks.get_lock(lock_id, lock_timeout):
5253
5249
  global_user_state.set_cluster_storage_mounts_metadata(
5254
5250
  cluster_name, storage_mounts_metadata)
5255
- except filelock.Timeout as e:
5251
+ except locks.LockTimeout as e:
5256
5252
  raise RuntimeError(
5257
5253
  f'Failed to store metadata for cluster {cluster_name!r} due to '
5258
5254
  'a timeout when trying to access local database. Please '
5259
- f'try again or manually remove the lock at {lock_path}. '
5255
+ f'try again or manually remove the lock at {lock_id}. '
5260
5256
  f'{common_utils.format_exception(e)}') from None
5261
5257
 
5262
5258
  def get_storage_mounts_metadata(
@@ -5267,19 +5263,18 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
5267
5263
  After retrieving storage_mounts_metadata, it converts back the
5268
5264
  StorageMetadata to Storage object and restores 'storage_mounts.'
5269
5265
  """
5270
- lock_path = (
5271
- backend_utils.CLUSTER_FILE_MOUNTS_LOCK_PATH.format(cluster_name))
5266
+ lock_id = backend_utils.cluster_file_mounts_lock_id(cluster_name)
5272
5267
  lock_timeout = backend_utils.CLUSTER_FILE_MOUNTS_LOCK_TIMEOUT_SECONDS
5273
5268
  try:
5274
- with filelock.FileLock(lock_path, lock_timeout):
5269
+ with locks.get_lock(lock_id, lock_timeout):
5275
5270
  storage_mounts_metadata = (
5276
5271
  global_user_state.get_cluster_storage_mounts_metadata(
5277
5272
  cluster_name))
5278
- except filelock.Timeout as e:
5273
+ except locks.LockTimeout as e:
5279
5274
  raise RuntimeError(
5280
5275
  f'Failed to retrieve metadata for cluster {cluster_name!r} '
5281
5276
  'due to a timeout when trying to access local database. '
5282
- f'Please try again or manually remove the lock at {lock_path}.'
5277
+ f'Please try again or manually remove the lock at {lock_id}.'
5283
5278
  f' {common_utils.format_exception(e)}') from None
5284
5279
 
5285
5280
  if storage_mounts_metadata is None:
@@ -2143,7 +2143,9 @@ def logs(
2143
2143
  if sync_down:
2144
2144
  with rich_utils.client_status(
2145
2145
  ux_utils.spinner_message('Downloading logs')):
2146
- log_local_path_dict = sdk.download_logs(cluster, job_ids)
2146
+ log_local_path_dict = sdk.download_logs(
2147
+ cluster,
2148
+ list(job_ids) if job_ids else None)
2147
2149
  style = colorama.Style
2148
2150
  fore = colorama.Fore
2149
2151
  for job, log_local_path in log_local_path_dict.items():
@@ -2195,8 +2197,7 @@ def logs(
2195
2197
  f'{colorama.Style.RESET_ALL}')
2196
2198
 
2197
2199
  # Stream logs from the server.
2198
- returncode = sdk.tail_logs(cluster, job_id, follow, tail=tail)
2199
- sys.exit(returncode)
2200
+ sys.exit(sdk.tail_logs(cluster, job_id, follow, tail=tail))
2200
2201
 
2201
2202
 
2202
2203
  @cli.command()
@@ -3023,17 +3024,18 @@ def _down_or_stop_clusters(
3023
3024
  click.echo(common_utils.format_exception(e))
3024
3025
  else:
3025
3026
  raise
3026
- confirm_str = 'delete'
3027
- input_prefix = ('Since --purge is set, errors will be ignored '
3028
- 'and controller will be removed from '
3029
- 'local state.\n') if purge else ''
3030
- user_input = click.prompt(
3031
- f'{input_prefix}'
3032
- f'To proceed, please type {colorama.Style.BRIGHT}'
3033
- f'{confirm_str!r}{colorama.Style.RESET_ALL}',
3034
- type=str)
3035
- if user_input != confirm_str:
3036
- raise click.Abort()
3027
+ if not purge:
3028
+ confirm_str = 'delete'
3029
+ user_input = click.prompt(
3030
+ f'To proceed, please type {colorama.Style.BRIGHT}'
3031
+ f'{confirm_str!r}{colorama.Style.RESET_ALL}',
3032
+ type=str)
3033
+ if user_input != confirm_str:
3034
+ raise click.Abort()
3035
+ else:
3036
+ click.echo('Since --purge is set, errors will be ignored '
3037
+ 'and controller will be removed from '
3038
+ 'local state.\nSkipping confirmation.')
3037
3039
  no_confirm = True
3038
3040
  names += controllers
3039
3041
 
@@ -3243,7 +3245,7 @@ def show_gpus(
3243
3245
  infra: Optional[str],
3244
3246
  cloud: Optional[str],
3245
3247
  region: Optional[str],
3246
- all_regions: Optional[bool]):
3248
+ all_regions: bool):
3247
3249
  """Show supported GPU/TPU/accelerators and their prices.
3248
3250
 
3249
3251
  The names and counts shown can be set in the ``accelerators`` field in task
@@ -5397,7 +5399,7 @@ def api():
5397
5399
  required=False,
5398
5400
  help='Enable basic authentication in the SkyPilot API server.')
5399
5401
  @usage_lib.entrypoint
5400
- def api_start(deploy: bool, host: Optional[str], foreground: bool,
5402
+ def api_start(deploy: bool, host: str, foreground: bool,
5401
5403
  enable_basic_auth: bool):
5402
5404
  """Starts the SkyPilot API server locally."""
5403
5405
  sdk.api_start(deploy=deploy,
@@ -5508,19 +5510,27 @@ def api_status(request_ids: Optional[List[str]], all_status: bool,
5508
5510
  columns.append('Cluster')
5509
5511
  columns.extend(['Created', 'Status'])
5510
5512
  table = log_utils.create_table(columns)
5511
- for request in request_list:
5512
- r_id = request.request_id
5513
- if not verbose:
5514
- r_id = common_utils.truncate_long_string(r_id, 36)
5515
- req_status = requests.RequestStatus(request.status)
5516
- row = [r_id, request.user_name, request.name]
5513
+ if len(request_list) > 0:
5514
+ for request in request_list:
5515
+ r_id = request.request_id
5516
+ if not verbose:
5517
+ r_id = common_utils.truncate_long_string(r_id, 36)
5518
+ req_status = requests.RequestStatus(request.status)
5519
+ row = [r_id, request.user_name, request.name]
5520
+ if verbose:
5521
+ row.append(request.cluster_name)
5522
+ row.extend([
5523
+ log_utils.readable_time_duration(request.created_at),
5524
+ req_status.colored_str()
5525
+ ])
5526
+ table.add_row(row)
5527
+ else:
5528
+ # add dummy data for when api server is down.
5529
+ dummy_row = ['-'] * 5
5517
5530
  if verbose:
5518
- row.append(request.cluster_name)
5519
- row.extend([
5520
- log_utils.readable_time_duration(request.created_at),
5521
- req_status.colored_str()
5522
- ])
5523
- table.add_row(row)
5531
+ dummy_row.append('-')
5532
+ table.add_row(dummy_row)
5533
+ click.echo()
5524
5534
  click.echo(table)
5525
5535
 
5526
5536
 
@@ -5568,6 +5578,12 @@ def api_login(endpoint: Optional[str], relogin: bool,
5568
5578
  sdk.api_login(endpoint, relogin, service_account_token)
5569
5579
 
5570
5580
 
5581
+ @api.command('logout', cls=_DocumentedCodeCommand)
5582
+ def api_logout():
5583
+ """Logs out of the api server"""
5584
+ sdk.api_logout()
5585
+
5586
+
5571
5587
  @api.command('info', cls=_DocumentedCodeCommand)
5572
5588
  @flags.config_option(expose_value=False)
5573
5589
  @usage_lib.entrypoint
@@ -1854,6 +1854,18 @@ def api_cancel(request_ids: Optional[Union[str, List[str]]] = None,
1854
1854
  return server_common.get_request_id(response)
1855
1855
 
1856
1856
 
1857
+ def _local_api_server_running(kill: bool = False) -> bool:
1858
+ """Checks if the local api server is running."""
1859
+ for process in psutil.process_iter(attrs=['pid', 'cmdline']):
1860
+ cmdline = process.info['cmdline']
1861
+ if cmdline and server_common.API_SERVER_CMD in ' '.join(cmdline):
1862
+ if kill:
1863
+ subprocess_utils.kill_children_processes(
1864
+ parent_pids=[process.pid], force=True)
1865
+ return True
1866
+ return False
1867
+
1868
+
1857
1869
  @usage_lib.entrypoint
1858
1870
  @annotations.client_api
1859
1871
  def api_status(
@@ -1872,6 +1884,10 @@ def api_status(
1872
1884
  Returns:
1873
1885
  A list of request payloads.
1874
1886
  """
1887
+ if server_common.is_api_server_local() and not _local_api_server_running():
1888
+ logger.info('SkyPilot API server is not running.')
1889
+ return []
1890
+
1875
1891
  body = payloads.RequestStatusBody(request_ids=request_ids,
1876
1892
  all_status=all_status)
1877
1893
  response = server_common.make_authenticated_request(
@@ -1992,13 +2008,7 @@ def api_stop() -> None:
1992
2008
  f'Cannot kill the API server at {server_url} because it is not '
1993
2009
  f'the default SkyPilot API server started locally.')
1994
2010
 
1995
- found = False
1996
- for process in psutil.process_iter(attrs=['pid', 'cmdline']):
1997
- cmdline = process.info['cmdline']
1998
- if cmdline and server_common.API_SERVER_CMD in ' '.join(cmdline):
1999
- subprocess_utils.kill_children_processes(parent_pids=[process.pid],
2000
- force=True)
2001
- found = True
2011
+ found = _local_api_server_running(kill=True)
2002
2012
 
2003
2013
  # Remove the database for requests.
2004
2014
  server_common.clear_local_api_server_database()
@@ -2067,6 +2077,22 @@ def _save_config_updates(endpoint: Optional[str] = None,
2067
2077
  skypilot_config.reload_config()
2068
2078
 
2069
2079
 
2080
+ def _clear_api_server_config() -> None:
2081
+ """Clear endpoint and service account token from config file."""
2082
+ config_path = pathlib.Path(
2083
+ skypilot_config.get_user_config_path()).expanduser()
2084
+ with filelock.FileLock(config_path.with_suffix('.lock')):
2085
+ if not config_path.exists():
2086
+ return
2087
+
2088
+ config = skypilot_config.get_user_config()
2089
+ config = dict(config)
2090
+ del config['api_server']
2091
+
2092
+ common_utils.dump_yaml(str(config_path), config, blank=True)
2093
+ skypilot_config.reload_config()
2094
+
2095
+
2070
2096
  def _validate_endpoint(endpoint: Optional[str]) -> str:
2071
2097
  """Validate and normalize the endpoint URL."""
2072
2098
  if endpoint is None:
@@ -2323,3 +2349,22 @@ def api_login(endpoint: Optional[str] = None,
2323
2349
  endpoint)
2324
2350
  _show_logged_in_message(endpoint, dashboard_url, final_api_server_info.user,
2325
2351
  server_status)
2352
+
2353
+
2354
+ @usage_lib.entrypoint
2355
+ @annotations.client_api
2356
+ def api_logout() -> None:
2357
+ """Logout of the API server.
2358
+
2359
+ Clears all cookies and settings stored in ~/.sky/config.yaml"""
2360
+ if server_common.is_api_server_local():
2361
+ with ux_utils.print_exception_no_traceback():
2362
+ raise RuntimeError('Local api server cannot be logged out. '
2363
+ 'Use `sky api stop` instead.')
2364
+
2365
+ # no need to clear cookies if it doesn't exist.
2366
+ server_common.set_api_cookie_jar(cookiejar.MozillaCookieJar(),
2367
+ create_if_not_exists=False)
2368
+ _clear_api_server_config()
2369
+ logger.info(f'{colorama.Fore.GREEN}Logged out of SkyPilot API server.'
2370
+ f'{colorama.Style.RESET_ALL}')