skypilot-nightly 1.0.0.dev20250806__tar.gz → 1.0.0.dev20250807__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 (576) hide show
  1. {skypilot_nightly-1.0.0.dev20250806/skypilot_nightly.egg-info → skypilot_nightly-1.0.0.dev20250807}/PKG-INFO +18 -13
  2. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/README.md +17 -12
  3. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/__init__.py +2 -2
  4. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/backends/cloud_vm_ray_backend.py +33 -4
  5. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/check.py +11 -1
  6. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/client/cli/command.py +208 -93
  7. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/client/sdk.py +14 -1
  8. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/client/sdk_async.py +4 -0
  9. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/dashboard/out/404.html +1 -1
  10. skypilot_nightly-1.0.0.dev20250807/sky/dashboard/out/_next/static/YAirOGsV1z6B2RJ0VIUmD/_buildManifest.js +1 -0
  11. skypilot_nightly-1.0.0.dev20250807/sky/dashboard/out/_next/static/chunks/1141-a8a8f1adba34c892.js +11 -0
  12. skypilot_nightly-1.0.0.dev20250807/sky/dashboard/out/_next/static/chunks/1871-980a395e92633a5c.js +6 -0
  13. skypilot_nightly-1.0.0.dev20250807/sky/dashboard/out/_next/static/chunks/3785.6003d293cb83eab4.js +1 -0
  14. skypilot_nightly-1.0.0.dev20250807/sky/dashboard/out/_next/static/chunks/3850-ff4a9a69d978632b.js +1 -0
  15. skypilot_nightly-1.0.0.dev20250807/sky/dashboard/out/_next/static/chunks/4725.29550342bd53afd8.js +1 -0
  16. skypilot_nightly-1.0.0.dev20250806/sky/dashboard/out/_next/static/chunks/4937.d6bf67771e353356.js → skypilot_nightly-1.0.0.dev20250807/sky/dashboard/out/_next/static/chunks/4937.a2baa2df5572a276.js +1 -1
  17. skypilot_nightly-1.0.0.dev20250807/sky/dashboard/out/_next/static/chunks/6130-2be46d70a38f1e82.js +1 -0
  18. skypilot_nightly-1.0.0.dev20250807/sky/dashboard/out/_next/static/chunks/6601-3e21152fe16da09c.js +1 -0
  19. skypilot_nightly-1.0.0.dev20250806/sky/dashboard/out/_next/static/chunks/691.6d99cbfba347cebf.js → skypilot_nightly-1.0.0.dev20250807/sky/dashboard/out/_next/static/chunks/691.5eeedf82cc243343.js +1 -1
  20. skypilot_nightly-1.0.0.dev20250807/sky/dashboard/out/_next/static/chunks/6989-6129c1cfbcf51063.js +1 -0
  21. skypilot_nightly-1.0.0.dev20250807/sky/dashboard/out/_next/static/chunks/6990-0f886f16e0d55ff8.js +1 -0
  22. skypilot_nightly-1.0.0.dev20250807/sky/dashboard/out/_next/static/chunks/8056-019615038d6ce427.js +1 -0
  23. skypilot_nightly-1.0.0.dev20250807/sky/dashboard/out/_next/static/chunks/8252.62b0d23aed618bb2.js +16 -0
  24. skypilot_nightly-1.0.0.dev20250807/sky/dashboard/out/_next/static/chunks/8969-318c3dca725e8e5d.js +1 -0
  25. skypilot_nightly-1.0.0.dev20250807/sky/dashboard/out/_next/static/chunks/9025.a1bef12d672bb66d.js +6 -0
  26. skypilot_nightly-1.0.0.dev20250807/sky/dashboard/out/_next/static/chunks/9159-11421c0f2909236f.js +1 -0
  27. skypilot_nightly-1.0.0.dev20250807/sky/dashboard/out/_next/static/chunks/9360.85b0b1b4054574dd.js +31 -0
  28. skypilot_nightly-1.0.0.dev20250807/sky/dashboard/out/_next/static/chunks/9666.cd4273f2a5c5802c.js +1 -0
  29. skypilot_nightly-1.0.0.dev20250806/sky/dashboard/out/_next/static/chunks/9847.4c46c5e229c78704.js → skypilot_nightly-1.0.0.dev20250807/sky/dashboard/out/_next/static/chunks/9847.757720f3b40c0aa5.js +1 -1
  30. skypilot_nightly-1.0.0.dev20250806/sky/dashboard/out/_next/static/chunks/pages/_app-2a43ea3241bbdacd.js → skypilot_nightly-1.0.0.dev20250807/sky/dashboard/out/_next/static/chunks/pages/_app-1e6de35d15a8d432.js +1 -1
  31. skypilot_nightly-1.0.0.dev20250807/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-6fd1d2d8441aa54b.js +11 -0
  32. skypilot_nightly-1.0.0.dev20250807/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-155d477a6c3e04e2.js +1 -0
  33. skypilot_nightly-1.0.0.dev20250806/sky/dashboard/out/_next/static/chunks/pages/clusters-47f1ddae13a2f8e4.js → skypilot_nightly-1.0.0.dev20250807/sky/dashboard/out/_next/static/chunks/pages/clusters-b30460f683e6ba96.js +1 -1
  34. skypilot_nightly-1.0.0.dev20250807/sky/dashboard/out/_next/static/chunks/pages/config-dfb9bf07b13045f4.js +1 -0
  35. skypilot_nightly-1.0.0.dev20250806/sky/dashboard/out/_next/static/chunks/pages/infra/[context]-2a44e70b500b6b70.js → skypilot_nightly-1.0.0.dev20250807/sky/dashboard/out/_next/static/chunks/pages/infra/[context]-13d53fffc03ccb52.js +1 -1
  36. skypilot_nightly-1.0.0.dev20250806/sky/dashboard/out/_next/static/chunks/pages/infra-22faac9325016d83.js → skypilot_nightly-1.0.0.dev20250807/sky/dashboard/out/_next/static/chunks/pages/infra-fc9222e26c8e2f0d.js +1 -1
  37. skypilot_nightly-1.0.0.dev20250807/sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-154f55cf8af55be5.js +11 -0
  38. skypilot_nightly-1.0.0.dev20250807/sky/dashboard/out/_next/static/chunks/pages/jobs/pools/[pool]-f5ccf5d39d87aebe.js +21 -0
  39. skypilot_nightly-1.0.0.dev20250807/sky/dashboard/out/_next/static/chunks/pages/jobs-cdc60fb5d371e16a.js +1 -0
  40. skypilot_nightly-1.0.0.dev20250806/sky/dashboard/out/_next/static/chunks/pages/users-b90c865a690bfe84.js → skypilot_nightly-1.0.0.dev20250807/sky/dashboard/out/_next/static/chunks/pages/users-7ed36e44e779d5c7.js +1 -1
  41. skypilot_nightly-1.0.0.dev20250806/sky/dashboard/out/_next/static/chunks/pages/volumes-7af733f5d7b6ed1c.js → skypilot_nightly-1.0.0.dev20250807/sky/dashboard/out/_next/static/chunks/pages/volumes-c9695d657f78b5dc.js +1 -1
  42. skypilot_nightly-1.0.0.dev20250807/sky/dashboard/out/_next/static/chunks/pages/workspace/new-3f88a1c7e86a3f86.js +1 -0
  43. skypilot_nightly-1.0.0.dev20250807/sky/dashboard/out/_next/static/chunks/pages/workspaces/[name]-f72f73bcef9541dc.js +1 -0
  44. skypilot_nightly-1.0.0.dev20250807/sky/dashboard/out/_next/static/chunks/pages/workspaces-8f67be60165724cc.js +1 -0
  45. skypilot_nightly-1.0.0.dev20250807/sky/dashboard/out/_next/static/chunks/webpack-76efbdad99742559.js +1 -0
  46. skypilot_nightly-1.0.0.dev20250807/sky/dashboard/out/_next/static/css/4614e06482d7309e.css +3 -0
  47. skypilot_nightly-1.0.0.dev20250807/sky/dashboard/out/clusters/[cluster]/[job].html +1 -0
  48. skypilot_nightly-1.0.0.dev20250807/sky/dashboard/out/clusters/[cluster].html +1 -0
  49. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/dashboard/out/clusters.html +1 -1
  50. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/dashboard/out/config.html +1 -1
  51. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/dashboard/out/index.html +1 -1
  52. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/dashboard/out/infra/[context].html +1 -1
  53. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/dashboard/out/infra.html +1 -1
  54. skypilot_nightly-1.0.0.dev20250807/sky/dashboard/out/jobs/[job].html +1 -0
  55. skypilot_nightly-1.0.0.dev20250807/sky/dashboard/out/jobs/pools/[pool].html +1 -0
  56. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/dashboard/out/jobs.html +1 -1
  57. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/dashboard/out/users.html +1 -1
  58. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/dashboard/out/volumes.html +1 -1
  59. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/dashboard/out/workspace/new.html +1 -1
  60. skypilot_nightly-1.0.0.dev20250807/sky/dashboard/out/workspaces/[name].html +1 -0
  61. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/dashboard/out/workspaces.html +1 -1
  62. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/global_user_state.py +14 -2
  63. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/jobs/__init__.py +2 -0
  64. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/jobs/client/sdk.py +43 -2
  65. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/jobs/server/core.py +48 -1
  66. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/jobs/server/server.py +52 -3
  67. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/jobs/state.py +5 -1
  68. skypilot_nightly-1.0.0.dev20250807/sky/schemas/db/global_user_state/002_add_workspace_to_cluster_history.py +35 -0
  69. skypilot_nightly-1.0.0.dev20250807/sky/schemas/db/spot_jobs/003_pool_hash.py +34 -0
  70. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/serve/client/impl.py +85 -1
  71. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/serve/client/sdk.py +16 -47
  72. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/serve/constants.py +2 -1
  73. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/serve/controller.py +4 -2
  74. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/serve/serve_state.py +28 -5
  75. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/serve/serve_utils.py +77 -46
  76. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/serve/server/core.py +13 -197
  77. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/serve/server/impl.py +239 -2
  78. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/serve/service.py +8 -3
  79. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/server/common.py +11 -4
  80. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/server/constants.py +1 -1
  81. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/server/requests/executor.py +5 -3
  82. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/server/requests/payloads.py +19 -0
  83. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/task.py +18 -11
  84. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/templates/kubernetes-ray.yml.j2 +5 -0
  85. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/templates/sky-serve-controller.yaml.j2 +1 -0
  86. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/usage/usage_lib.py +8 -6
  87. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/annotations.py +8 -3
  88. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/common_utils.py +11 -1
  89. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/db/migration_utils.py +2 -2
  90. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807/skypilot_nightly.egg-info}/PKG-INFO +18 -13
  91. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/skypilot_nightly.egg-info/SOURCES.txt +42 -39
  92. skypilot_nightly-1.0.0.dev20250806/sky/client/sdk.pyi +0 -301
  93. skypilot_nightly-1.0.0.dev20250806/sky/dashboard/out/_next/static/Gelsd19kVxXcX7aQQGsGu/_buildManifest.js +0 -1
  94. skypilot_nightly-1.0.0.dev20250806/sky/dashboard/out/_next/static/chunks/1043-75af48ca5d5aaf57.js +0 -1
  95. skypilot_nightly-1.0.0.dev20250806/sky/dashboard/out/_next/static/chunks/1141-8678a9102cc5f67e.js +0 -11
  96. skypilot_nightly-1.0.0.dev20250806/sky/dashboard/out/_next/static/chunks/1664-22b00e32c9ff96a4.js +0 -1
  97. skypilot_nightly-1.0.0.dev20250806/sky/dashboard/out/_next/static/chunks/1871-ced1c14230cad6e1.js +0 -6
  98. skypilot_nightly-1.0.0.dev20250806/sky/dashboard/out/_next/static/chunks/2003.f90b06bb1f914295.js +0 -1
  99. skypilot_nightly-1.0.0.dev20250806/sky/dashboard/out/_next/static/chunks/2350.fab69e61bac57b23.js +0 -1
  100. skypilot_nightly-1.0.0.dev20250806/sky/dashboard/out/_next/static/chunks/2622-951867535095b0eb.js +0 -1
  101. skypilot_nightly-1.0.0.dev20250806/sky/dashboard/out/_next/static/chunks/3785.0a173cd4393f0fef.js +0 -1
  102. skypilot_nightly-1.0.0.dev20250806/sky/dashboard/out/_next/static/chunks/4725.42f21f250f91f65b.js +0 -1
  103. skypilot_nightly-1.0.0.dev20250806/sky/dashboard/out/_next/static/chunks/4869.18e6a4361a380763.js +0 -16
  104. skypilot_nightly-1.0.0.dev20250806/sky/dashboard/out/_next/static/chunks/5230-f3bb2663e442e86c.js +0 -1
  105. skypilot_nightly-1.0.0.dev20250806/sky/dashboard/out/_next/static/chunks/6601-2109d22e7861861c.js +0 -1
  106. skypilot_nightly-1.0.0.dev20250806/sky/dashboard/out/_next/static/chunks/6990-08b2a1cae076a943.js +0 -1
  107. skypilot_nightly-1.0.0.dev20250806/sky/dashboard/out/_next/static/chunks/8969-9a8cca241b30db83.js +0 -1
  108. skypilot_nightly-1.0.0.dev20250806/sky/dashboard/out/_next/static/chunks/9025.99f29acb7617963e.js +0 -6
  109. skypilot_nightly-1.0.0.dev20250806/sky/dashboard/out/_next/static/chunks/938-bda2685db5eae6cf.js +0 -1
  110. skypilot_nightly-1.0.0.dev20250806/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-7cb24da04ca00956.js +0 -11
  111. skypilot_nightly-1.0.0.dev20250806/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-1e95993124dbfc57.js +0 -1
  112. skypilot_nightly-1.0.0.dev20250806/sky/dashboard/out/_next/static/chunks/pages/config-d56e64f30db7b42e.js +0 -1
  113. skypilot_nightly-1.0.0.dev20250806/sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-90693cb88b5599a7.js +0 -11
  114. skypilot_nightly-1.0.0.dev20250806/sky/dashboard/out/_next/static/chunks/pages/jobs-ab318e52eb4424a7.js +0 -1
  115. skypilot_nightly-1.0.0.dev20250806/sky/dashboard/out/_next/static/chunks/pages/workspace/new-92f741084a89e27b.js +0 -1
  116. skypilot_nightly-1.0.0.dev20250806/sky/dashboard/out/_next/static/chunks/pages/workspaces/[name]-35e0de5bca55e594.js +0 -1
  117. skypilot_nightly-1.0.0.dev20250806/sky/dashboard/out/_next/static/chunks/pages/workspaces-062525fb5462acb6.js +0 -1
  118. skypilot_nightly-1.0.0.dev20250806/sky/dashboard/out/_next/static/chunks/webpack-387626669badf82e.js +0 -1
  119. skypilot_nightly-1.0.0.dev20250806/sky/dashboard/out/_next/static/css/b3227360726f12eb.css +0 -3
  120. skypilot_nightly-1.0.0.dev20250806/sky/dashboard/out/clusters/[cluster]/[job].html +0 -1
  121. skypilot_nightly-1.0.0.dev20250806/sky/dashboard/out/clusters/[cluster].html +0 -1
  122. skypilot_nightly-1.0.0.dev20250806/sky/dashboard/out/jobs/[job].html +0 -1
  123. skypilot_nightly-1.0.0.dev20250806/sky/dashboard/out/workspaces/[name].html +0 -1
  124. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/LICENSE +0 -0
  125. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/MANIFEST.in +0 -0
  126. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/pyproject.toml +0 -0
  127. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/setup.cfg +0 -0
  128. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/setup.py +0 -0
  129. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/adaptors/__init__.py +0 -0
  130. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/adaptors/aws.py +0 -0
  131. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/adaptors/azure.py +0 -0
  132. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/adaptors/cloudflare.py +0 -0
  133. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/adaptors/common.py +0 -0
  134. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/adaptors/cudo.py +0 -0
  135. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/adaptors/do.py +0 -0
  136. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/adaptors/docker.py +0 -0
  137. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/adaptors/gcp.py +0 -0
  138. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/adaptors/hyperbolic.py +0 -0
  139. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/adaptors/ibm.py +0 -0
  140. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/adaptors/kubernetes.py +0 -0
  141. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/adaptors/nebius.py +0 -0
  142. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/adaptors/oci.py +0 -0
  143. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/adaptors/runpod.py +0 -0
  144. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/adaptors/vast.py +0 -0
  145. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/adaptors/vsphere.py +0 -0
  146. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/admin_policy.py +0 -0
  147. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/authentication.py +0 -0
  148. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/backends/__init__.py +0 -0
  149. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/backends/backend.py +0 -0
  150. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/backends/backend_utils.py +0 -0
  151. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/backends/docker_utils.py +0 -0
  152. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/backends/local_docker_backend.py +0 -0
  153. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/backends/monkey_patches/monkey_patch_ray_up.py +0 -0
  154. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/backends/wheel_utils.py +0 -0
  155. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/catalog/__init__.py +0 -0
  156. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/catalog/aws_catalog.py +0 -0
  157. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/catalog/azure_catalog.py +0 -0
  158. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/catalog/common.py +0 -0
  159. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/catalog/config.py +0 -0
  160. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/catalog/cudo_catalog.py +0 -0
  161. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/catalog/data_fetchers/__init__.py +0 -0
  162. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/catalog/data_fetchers/analyze.py +0 -0
  163. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/catalog/data_fetchers/fetch_aws.py +0 -0
  164. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/catalog/data_fetchers/fetch_azure.py +0 -0
  165. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/catalog/data_fetchers/fetch_cudo.py +0 -0
  166. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/catalog/data_fetchers/fetch_fluidstack.py +0 -0
  167. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/catalog/data_fetchers/fetch_gcp.py +0 -0
  168. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/catalog/data_fetchers/fetch_hyperbolic.py +0 -0
  169. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/catalog/data_fetchers/fetch_ibm.py +0 -0
  170. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/catalog/data_fetchers/fetch_lambda_cloud.py +0 -0
  171. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/catalog/data_fetchers/fetch_nebius.py +0 -0
  172. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/catalog/data_fetchers/fetch_vast.py +0 -0
  173. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/catalog/data_fetchers/fetch_vsphere.py +0 -0
  174. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/catalog/do_catalog.py +0 -0
  175. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/catalog/fluidstack_catalog.py +0 -0
  176. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/catalog/gcp_catalog.py +0 -0
  177. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/catalog/hyperbolic_catalog.py +0 -0
  178. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/catalog/ibm_catalog.py +0 -0
  179. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/catalog/kubernetes_catalog.py +0 -0
  180. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/catalog/lambda_catalog.py +0 -0
  181. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/catalog/nebius_catalog.py +0 -0
  182. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/catalog/oci_catalog.py +0 -0
  183. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/catalog/paperspace_catalog.py +0 -0
  184. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/catalog/runpod_catalog.py +0 -0
  185. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/catalog/scp_catalog.py +0 -0
  186. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/catalog/ssh_catalog.py +0 -0
  187. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/catalog/vast_catalog.py +0 -0
  188. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/catalog/vsphere_catalog.py +0 -0
  189. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/cli.py +0 -0
  190. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/client/__init__.py +0 -0
  191. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/client/cli/__init__.py +0 -0
  192. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/client/cli/deprecation_utils.py +0 -0
  193. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/client/cli/flags.py +0 -0
  194. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/client/cli/git.py +0 -0
  195. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/client/common.py +0 -0
  196. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/client/oauth.py +0 -0
  197. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/client/service_account_auth.py +0 -0
  198. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/cloud_stores.py +0 -0
  199. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/clouds/__init__.py +0 -0
  200. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/clouds/aws.py +0 -0
  201. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/clouds/azure.py +0 -0
  202. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/clouds/cloud.py +0 -0
  203. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/clouds/cudo.py +0 -0
  204. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/clouds/do.py +0 -0
  205. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/clouds/fluidstack.py +0 -0
  206. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/clouds/gcp.py +0 -0
  207. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/clouds/hyperbolic.py +0 -0
  208. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/clouds/ibm.py +0 -0
  209. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/clouds/kubernetes.py +0 -0
  210. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/clouds/lambda_cloud.py +0 -0
  211. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/clouds/nebius.py +0 -0
  212. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/clouds/oci.py +0 -0
  213. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/clouds/paperspace.py +0 -0
  214. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/clouds/runpod.py +0 -0
  215. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/clouds/scp.py +0 -0
  216. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/clouds/ssh.py +0 -0
  217. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/clouds/utils/__init__.py +0 -0
  218. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/clouds/utils/aws_utils.py +0 -0
  219. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/clouds/utils/azure_utils.py +0 -0
  220. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/clouds/utils/gcp_utils.py +0 -0
  221. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/clouds/utils/oci_utils.py +0 -0
  222. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/clouds/utils/scp_utils.py +0 -0
  223. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/clouds/vast.py +0 -0
  224. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/clouds/vsphere.py +0 -0
  225. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/core.py +0 -0
  226. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/dag.py +0 -0
  227. {skypilot_nightly-1.0.0.dev20250806/sky/dashboard/out/_next/static/Gelsd19kVxXcX7aQQGsGu → skypilot_nightly-1.0.0.dev20250807/sky/dashboard/out/_next/static/YAirOGsV1z6B2RJ0VIUmD}/_ssgManifest.js +0 -0
  228. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/dashboard/out/_next/static/chunks/1272-1ef0bf0237faccdb.js +0 -0
  229. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/dashboard/out/_next/static/chunks/1559-6c00e20454194859.js +0 -0
  230. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/dashboard/out/_next/static/chunks/2369.fc20f0c2c8ed9fe7.js +0 -0
  231. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/dashboard/out/_next/static/chunks/2641.142718b6b78a6f9b.js +0 -0
  232. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/dashboard/out/_next/static/chunks/3937.210053269f121201.js +0 -0
  233. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/dashboard/out/_next/static/chunks/5739-d67458fcb1386c92.js +0 -0
  234. /skypilot_nightly-1.0.0.dev20250806/sky/dashboard/out/_next/static/chunks/6135-2d7ed3350659d073.js → /skypilot_nightly-1.0.0.dev20250807/sky/dashboard/out/_next/static/chunks/6135-85426374db04811e.js +0 -0
  235. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/dashboard/out/_next/static/chunks/616-3d59f75e2ccf9321.js +0 -0
  236. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/dashboard/out/_next/static/chunks/6212-7bd06f60ba693125.js +0 -0
  237. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/dashboard/out/_next/static/chunks/7411-b15471acd2cba716.js +0 -0
  238. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/dashboard/out/_next/static/chunks/9984.c5564679e467d245.js +0 -0
  239. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/dashboard/out/_next/static/chunks/fd9d1056-86323a29a8f7e46a.js +0 -0
  240. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/dashboard/out/_next/static/chunks/framework-cf60a09ccd051a10.js +0 -0
  241. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/dashboard/out/_next/static/chunks/main-app-587214043926b3cc.js +0 -0
  242. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/dashboard/out/_next/static/chunks/main-f15ccb73239a3bf1.js +0 -0
  243. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/dashboard/out/_next/static/chunks/pages/_error-c66a4e8afc46f17b.js +0 -0
  244. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/dashboard/out/_next/static/chunks/pages/index-444f1804401f04ea.js +0 -0
  245. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/dashboard/out/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js +0 -0
  246. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/dashboard/out/favicon.ico +0 -0
  247. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/dashboard/out/skypilot.svg +0 -0
  248. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/dashboard/out/videos/cursor-small.mp4 +0 -0
  249. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/data/__init__.py +0 -0
  250. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/data/data_transfer.py +0 -0
  251. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/data/data_utils.py +0 -0
  252. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/data/mounting_utils.py +0 -0
  253. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/data/storage.py +0 -0
  254. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/data/storage_utils.py +0 -0
  255. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/exceptions.py +0 -0
  256. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/execution.py +0 -0
  257. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/jobs/client/__init__.py +0 -0
  258. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/jobs/client/sdk_async.py +0 -0
  259. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/jobs/constants.py +0 -0
  260. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/jobs/controller.py +0 -0
  261. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/jobs/recovery_strategy.py +0 -0
  262. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/jobs/scheduler.py +0 -0
  263. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/jobs/server/__init__.py +0 -0
  264. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/jobs/server/utils.py +0 -0
  265. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/jobs/utils.py +0 -0
  266. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/logs/__init__.py +0 -0
  267. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/logs/agent.py +0 -0
  268. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/logs/aws.py +0 -0
  269. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/logs/gcp.py +0 -0
  270. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/metrics/__init__.py +0 -0
  271. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/metrics/utils.py +0 -0
  272. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/models.py +0 -0
  273. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/optimizer.py +0 -0
  274. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/__init__.py +0 -0
  275. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/aws/__init__.py +0 -0
  276. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/aws/config.py +0 -0
  277. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/aws/instance.py +0 -0
  278. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/aws/utils.py +0 -0
  279. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/azure/__init__.py +0 -0
  280. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/azure/azure-config-template.json +0 -0
  281. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/azure/config.py +0 -0
  282. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/azure/instance.py +0 -0
  283. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/common.py +0 -0
  284. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/constants.py +0 -0
  285. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/cudo/__init__.py +0 -0
  286. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/cudo/config.py +0 -0
  287. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/cudo/cudo_machine_type.py +0 -0
  288. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/cudo/cudo_utils.py +0 -0
  289. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/cudo/cudo_wrapper.py +0 -0
  290. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/cudo/instance.py +0 -0
  291. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/do/__init__.py +0 -0
  292. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/do/config.py +0 -0
  293. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/do/constants.py +0 -0
  294. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/do/instance.py +0 -0
  295. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/do/utils.py +0 -0
  296. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/docker_utils.py +0 -0
  297. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/fluidstack/__init__.py +0 -0
  298. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/fluidstack/config.py +0 -0
  299. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/fluidstack/fluidstack_utils.py +0 -0
  300. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/fluidstack/instance.py +0 -0
  301. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/gcp/__init__.py +0 -0
  302. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/gcp/config.py +0 -0
  303. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/gcp/constants.py +0 -0
  304. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/gcp/instance.py +0 -0
  305. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/gcp/instance_utils.py +0 -0
  306. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/gcp/mig_utils.py +0 -0
  307. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/gcp/volume_utils.py +0 -0
  308. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/hyperbolic/__init__.py +0 -0
  309. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/hyperbolic/config.py +0 -0
  310. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/hyperbolic/instance.py +0 -0
  311. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/hyperbolic/utils.py +0 -0
  312. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/instance_setup.py +0 -0
  313. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/kubernetes/__init__.py +0 -0
  314. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/kubernetes/config.py +0 -0
  315. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/kubernetes/constants.py +0 -0
  316. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/kubernetes/instance.py +0 -0
  317. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/kubernetes/manifests/fusermount-server-daemonset.yaml +0 -0
  318. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/kubernetes/network.py +0 -0
  319. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/kubernetes/network_utils.py +0 -0
  320. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/kubernetes/utils.py +0 -0
  321. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/kubernetes/volume.py +0 -0
  322. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/lambda_cloud/__init__.py +0 -0
  323. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/lambda_cloud/config.py +0 -0
  324. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/lambda_cloud/instance.py +0 -0
  325. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/lambda_cloud/lambda_utils.py +0 -0
  326. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/logging.py +0 -0
  327. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/metadata_utils.py +0 -0
  328. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/nebius/__init__.py +0 -0
  329. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/nebius/config.py +0 -0
  330. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/nebius/constants.py +0 -0
  331. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/nebius/instance.py +0 -0
  332. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/nebius/utils.py +0 -0
  333. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/oci/__init__.py +0 -0
  334. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/oci/config.py +0 -0
  335. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/oci/instance.py +0 -0
  336. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/oci/query_utils.py +0 -0
  337. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/paperspace/__init__.py +0 -0
  338. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/paperspace/config.py +0 -0
  339. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/paperspace/constants.py +0 -0
  340. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/paperspace/instance.py +0 -0
  341. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/paperspace/utils.py +0 -0
  342. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/provisioner.py +0 -0
  343. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/runpod/__init__.py +0 -0
  344. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/runpod/api/__init__.py +0 -0
  345. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/runpod/api/commands.py +0 -0
  346. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/runpod/api/pods.py +0 -0
  347. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/runpod/config.py +0 -0
  348. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/runpod/instance.py +0 -0
  349. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/runpod/utils.py +0 -0
  350. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/scp/__init__.py +0 -0
  351. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/scp/config.py +0 -0
  352. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/scp/instance.py +0 -0
  353. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/ssh/__init__.py +0 -0
  354. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/vast/__init__.py +0 -0
  355. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/vast/config.py +0 -0
  356. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/vast/instance.py +0 -0
  357. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/vast/utils.py +0 -0
  358. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/vsphere/__init__.py +0 -0
  359. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/vsphere/common/__init__.py +0 -0
  360. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/vsphere/common/cls_api_client.py +0 -0
  361. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/vsphere/common/cls_api_helper.py +0 -0
  362. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/vsphere/common/custom_script.py +0 -0
  363. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/vsphere/common/id_generator.py +0 -0
  364. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/vsphere/common/metadata_utils.py +0 -0
  365. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/vsphere/common/service_manager.py +0 -0
  366. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/vsphere/common/service_manager_factory.py +0 -0
  367. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/vsphere/common/ssl_helper.py +0 -0
  368. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/vsphere/common/vapiconnect.py +0 -0
  369. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/vsphere/common/vim_utils.py +0 -0
  370. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/vsphere/config.py +0 -0
  371. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/vsphere/instance.py +0 -0
  372. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/provision/vsphere/vsphere_utils.py +0 -0
  373. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/py.typed +0 -0
  374. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/resources.py +0 -0
  375. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/schemas/db/README +0 -0
  376. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/schemas/db/env.py +0 -0
  377. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/schemas/db/global_user_state/001_initial_schema.py +0 -0
  378. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/schemas/db/script.py.mako +0 -0
  379. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/schemas/db/spot_jobs/001_initial_schema.py +0 -0
  380. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/schemas/db/spot_jobs/002_cluster_pool.py +0 -0
  381. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/serve/__init__.py +0 -0
  382. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/serve/autoscalers.py +0 -0
  383. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/serve/client/__init__.py +0 -0
  384. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/serve/client/sdk_async.py +0 -0
  385. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/serve/load_balancer.py +0 -0
  386. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/serve/load_balancing_policies.py +0 -0
  387. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/serve/replica_managers.py +0 -0
  388. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/serve/server/__init__.py +0 -0
  389. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/serve/server/server.py +0 -0
  390. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/serve/service_spec.py +0 -0
  391. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/serve/spot_placer.py +0 -0
  392. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/server/__init__.py +0 -0
  393. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/server/auth/__init__.py +0 -0
  394. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/server/auth/authn.py +0 -0
  395. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/server/auth/oauth2_proxy.py +0 -0
  396. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/server/config.py +0 -0
  397. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/server/daemons.py +0 -0
  398. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/server/html/log.html +0 -0
  399. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/server/html/token_page.html +0 -0
  400. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/server/metrics.py +0 -0
  401. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/server/requests/__init__.py +0 -0
  402. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/server/requests/event_loop.py +0 -0
  403. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/server/requests/preconditions.py +0 -0
  404. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/server/requests/process.py +0 -0
  405. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/server/requests/queues/__init__.py +0 -0
  406. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/server/requests/queues/local_queue.py +0 -0
  407. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/server/requests/queues/mp_queue.py +0 -0
  408. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/server/requests/requests.py +0 -0
  409. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/server/requests/serializers/__init__.py +0 -0
  410. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/server/requests/serializers/decoders.py +0 -0
  411. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/server/requests/serializers/encoders.py +0 -0
  412. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/server/rest.py +0 -0
  413. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/server/server.py +0 -0
  414. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/server/state.py +0 -0
  415. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/server/stream_utils.py +0 -0
  416. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/server/uvicorn.py +0 -0
  417. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/server/versions.py +0 -0
  418. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/setup_files/MANIFEST.in +0 -0
  419. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/setup_files/alembic.ini +0 -0
  420. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/setup_files/dependencies.py +0 -0
  421. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/setup_files/setup.py +0 -0
  422. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/sky_logging.py +0 -0
  423. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/skylet/LICENSE +0 -0
  424. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/skylet/__init__.py +0 -0
  425. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/skylet/attempt_skylet.py +0 -0
  426. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/skylet/autostop_lib.py +0 -0
  427. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/skylet/configs.py +0 -0
  428. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/skylet/constants.py +0 -0
  429. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/skylet/events.py +0 -0
  430. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/skylet/job_lib.py +0 -0
  431. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/skylet/log_lib.py +0 -0
  432. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/skylet/log_lib.pyi +0 -0
  433. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/skylet/providers/__init__.py +0 -0
  434. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/skylet/providers/command_runner.py +0 -0
  435. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/skylet/providers/ibm/__init__.py +0 -0
  436. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/skylet/providers/ibm/node_provider.py +0 -0
  437. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/skylet/providers/ibm/utils.py +0 -0
  438. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/skylet/providers/ibm/vpc_provider.py +0 -0
  439. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/skylet/ray_patches/__init__.py +0 -0
  440. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/skylet/ray_patches/autoscaler.py.patch +0 -0
  441. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/skylet/ray_patches/cli.py.patch +0 -0
  442. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/skylet/ray_patches/command_runner.py.patch +0 -0
  443. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/skylet/ray_patches/log_monitor.py.patch +0 -0
  444. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/skylet/ray_patches/resource_demand_scheduler.py.patch +0 -0
  445. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/skylet/ray_patches/updater.py.patch +0 -0
  446. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/skylet/ray_patches/worker.py.patch +0 -0
  447. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/skylet/skylet.py +0 -0
  448. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/skylet/subprocess_daemon.py +0 -0
  449. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/skypilot_config.py +0 -0
  450. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/ssh_node_pools/__init__.py +0 -0
  451. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/ssh_node_pools/core.py +0 -0
  452. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/ssh_node_pools/server.py +0 -0
  453. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/templates/aws-ray.yml.j2 +0 -0
  454. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/templates/azure-ray.yml.j2 +0 -0
  455. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/templates/cudo-ray.yml.j2 +0 -0
  456. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/templates/do-ray.yml.j2 +0 -0
  457. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/templates/fluidstack-ray.yml.j2 +0 -0
  458. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/templates/gcp-ray.yml.j2 +0 -0
  459. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/templates/hyperbolic-ray.yml.j2 +0 -0
  460. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/templates/ibm-ray.yml.j2 +0 -0
  461. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/templates/jobs-controller.yaml.j2 +0 -0
  462. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/templates/kubernetes-ingress.yml.j2 +0 -0
  463. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/templates/kubernetes-loadbalancer.yml.j2 +0 -0
  464. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/templates/kubernetes-port-forward-proxy-command.sh +0 -0
  465. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/templates/kubernetes-ssh-jump.yml.j2 +0 -0
  466. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/templates/lambda-ray.yml.j2 +0 -0
  467. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/templates/local-ray.yml.j2 +0 -0
  468. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/templates/nebius-ray.yml.j2 +0 -0
  469. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/templates/oci-ray.yml.j2 +0 -0
  470. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/templates/paperspace-ray.yml.j2 +0 -0
  471. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/templates/runpod-ray.yml.j2 +0 -0
  472. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/templates/scp-ray.yml.j2 +0 -0
  473. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/templates/skypilot-server-kubernetes-proxy.sh +0 -0
  474. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/templates/vast-ray.yml.j2 +0 -0
  475. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/templates/vsphere-ray.yml.j2 +0 -0
  476. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/templates/websocket_proxy.py +0 -0
  477. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/usage/__init__.py +0 -0
  478. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/usage/constants.py +0 -0
  479. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/users/__init__.py +0 -0
  480. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/users/model.conf +0 -0
  481. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/users/permission.py +0 -0
  482. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/users/rbac.py +0 -0
  483. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/users/server.py +0 -0
  484. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/users/token_service.py +0 -0
  485. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/__init__.py +0 -0
  486. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/accelerator_registry.py +0 -0
  487. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/admin_policy_utils.py +0 -0
  488. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/atomic.py +0 -0
  489. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/aws/__init__.py +0 -0
  490. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/aws/get_default_security_group.py +0 -0
  491. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/cli_utils/__init__.py +0 -0
  492. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/cli_utils/status_utils.py +0 -0
  493. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/cluster_utils.py +0 -0
  494. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/command_runner.py +0 -0
  495. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/command_runner.pyi +0 -0
  496. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/common.py +0 -0
  497. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/config_utils.py +0 -0
  498. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/context.py +0 -0
  499. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/context_utils.py +0 -0
  500. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/control_master_utils.py +0 -0
  501. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/controller_utils.py +0 -0
  502. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/dag_utils.py +0 -0
  503. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/db/__init__.py +0 -0
  504. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/db/db_utils.py +0 -0
  505. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/env_options.py +0 -0
  506. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/git.py +0 -0
  507. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/git_clone.sh +0 -0
  508. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/infra_utils.py +0 -0
  509. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/kubernetes/__init__.py +0 -0
  510. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/kubernetes/cleanup-tunnel.sh +0 -0
  511. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/kubernetes/config_map_utils.py +0 -0
  512. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/kubernetes/create_cluster.sh +0 -0
  513. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/kubernetes/delete_cluster.sh +0 -0
  514. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/kubernetes/deploy_remote_cluster.py +0 -0
  515. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/kubernetes/exec_kubeconfig_converter.py +0 -0
  516. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/kubernetes/generate_kind_config.py +0 -0
  517. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/kubernetes/generate_kubeconfig.sh +0 -0
  518. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/kubernetes/gpu_labeler.py +0 -0
  519. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/kubernetes/k8s_gpu_labeler_job.yaml +0 -0
  520. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml +0 -0
  521. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/kubernetes/kubernetes_deploy_utils.py +0 -0
  522. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/kubernetes/rsync_helper.sh +0 -0
  523. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/kubernetes/ssh-tunnel.sh +0 -0
  524. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/kubernetes/ssh_jump_lifecycle_manager.py +0 -0
  525. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/kubernetes/ssh_utils.py +0 -0
  526. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/kubernetes_enums.py +0 -0
  527. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/locks.py +0 -0
  528. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/log_utils.py +0 -0
  529. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/message_utils.py +0 -0
  530. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/registry.py +0 -0
  531. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/resource_checker.py +0 -0
  532. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/resources_utils.py +0 -0
  533. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/rich_console_utils.py +0 -0
  534. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/rich_utils.py +0 -0
  535. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/schemas.py +0 -0
  536. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/status_lib.py +0 -0
  537. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/subprocess_utils.py +0 -0
  538. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/tempstore.py +0 -0
  539. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/timeline.py +0 -0
  540. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/ux_utils.py +0 -0
  541. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/validator.py +0 -0
  542. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/utils/volume.py +0 -0
  543. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/volumes/__init__.py +0 -0
  544. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/volumes/client/__init__.py +0 -0
  545. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/volumes/client/sdk.py +0 -0
  546. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/volumes/server/__init__.py +0 -0
  547. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/volumes/server/core.py +0 -0
  548. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/volumes/server/server.py +0 -0
  549. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/volumes/utils.py +0 -0
  550. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/volumes/volume.py +0 -0
  551. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/workspaces/__init__.py +0 -0
  552. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/workspaces/core.py +0 -0
  553. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/workspaces/server.py +0 -0
  554. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/sky/workspaces/utils.py +0 -0
  555. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/skypilot_nightly.egg-info/dependency_links.txt +0 -0
  556. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/skypilot_nightly.egg-info/entry_points.txt +0 -0
  557. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/skypilot_nightly.egg-info/requires.txt +0 -0
  558. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/skypilot_nightly.egg-info/top_level.txt +0 -0
  559. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/tests/test_api.py +0 -0
  560. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/tests/test_api_compatibility.py +0 -0
  561. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/tests/test_cli.py +0 -0
  562. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/tests/test_config.py +0 -0
  563. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/tests/test_db_utils.py +0 -0
  564. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/tests/test_failover.py +0 -0
  565. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/tests/test_global_user_state.py +0 -0
  566. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/tests/test_jobs.py +0 -0
  567. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/tests/test_jobs_and_serve.py +0 -0
  568. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/tests/test_list_accelerators.py +0 -0
  569. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/tests/test_no_parellel.py +0 -0
  570. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/tests/test_optimizer_dryruns.py +0 -0
  571. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/tests/test_optimizer_random_dag.py +0 -0
  572. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/tests/test_serve_autoscaler.py +0 -0
  573. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/tests/test_smoke.py +0 -0
  574. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/tests/test_storage.py +0 -0
  575. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/tests/test_wheels.py +0 -0
  576. {skypilot_nightly-1.0.0.dev20250806 → skypilot_nightly-1.0.0.dev20250807}/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.dev20250806
3
+ Version: 1.0.0.dev20250807
4
4
  Summary: SkyPilot: Run AI on Any Infra — Unified, Faster, Cheaper.
5
5
  Author: SkyPilot Team
6
6
  License: Apache 2.0
@@ -256,12 +256,18 @@ Dynamic: summary
256
256
 
257
257
  ----
258
258
 
259
- SkyPilot is an open-source framework for running AI and batch workloads on any infra.
259
+ SkyPilot is an open-source system for running AI and batch workloads on any infra.
260
260
 
261
261
  SkyPilot **is easy to use for AI users**:
262
- - Quickly spin up compute on your own infra
262
+ - Quickly spin up jobs on your own infra
263
263
  - Environment and job as code — simple and portable
264
- - Easy job management: queue, run, and auto-recover many jobs
264
+ - Easy management: queue, run, and auto-recover many jobs
265
+
266
+ SkyPilot **makes Kubernetes easy for AI teams**:
267
+
268
+ - Slurm-like ease of use, cloud-native robustness
269
+ - Local dev experience on K8s: SSH into pods, sync code, or connect IDE
270
+ - Turbocharge your clusters: gang scheduling, multi-cluster, and scaling
265
271
 
266
272
  SkyPilot **unifies multiple clusters, clouds, and hardware**:
267
273
  - One interface to use reserved GPUs, Kubernetes clusters, or 16+ clouds
@@ -309,7 +315,7 @@ You can find our documentation [here](https://docs.skypilot.co/).
309
315
 
310
316
  A SkyPilot task specifies: resource requirements, data to be synced, setup commands, and the task commands.
311
317
 
312
- Once written in this [**unified interface**](https://docs.skypilot.co/en/latest/reference/yaml-spec.html) (YAML or Python API), the task can be launched on any available cloud. This avoids vendor lock-in, and allows easily moving jobs to a different provider.
318
+ Once written in this [**unified interface**](https://docs.skypilot.co/en/latest/reference/yaml-spec.html) (YAML or Python API), the task can be launched on any available infra (Kubernetes, cloud, etc.). This avoids vendor lock-in, and allows easily moving jobs to a different provider.
313
319
 
314
320
  Paste the following into a file `my_task.yaml`:
315
321
 
@@ -347,12 +353,11 @@ sky launch my_task.yaml
347
353
  ```
348
354
 
349
355
  SkyPilot then performs the heavy-lifting for you, including:
350
- 1. Find the lowest priced VM instance type across different clouds
351
- 2. Provision the VM, with auto-failover if the cloud returned capacity errors
352
- 3. Sync the local `workdir` to the VM
353
- 4. Run the task's `setup` commands to prepare the VM for running the task
354
- 5. Run the task's `run` commands
355
-
356
+ 1. Find the cheapest & available infra across your clusters or clouds
357
+ 2. Provision the GPUs (pods or VMs), with auto-failover if the infra returned capacity errors
358
+ 3. Sync your local `workdir` to the provisioned cluster
359
+ 4. Auto-install dependencies by running the task's `setup` commands
360
+ 5. Run the task's `run` commands, and stream logs
356
361
 
357
362
  See [Quickstart](https://docs.skypilot.co/en/latest/getting-started/quickstart.html) to get started with SkyPilot.
358
363
 
@@ -364,13 +369,13 @@ Latest featured examples:
364
369
 
365
370
  | Task | Examples |
366
371
  |----------|----------|
367
- | Training | [PyTorch](https://docs.skypilot.co/en/latest/getting-started/tutorial.html), [DeepSpeed](https://docs.skypilot.co/en/latest/examples/training/deepspeed.html), [Finetune Llama 3](https://docs.skypilot.co/en/latest/examples/training/llama-3_1-finetuning.html), [NeMo](https://docs.skypilot.co/en/latest/examples/training/nemo.html), [Ray](https://docs.skypilot.co/en/latest/examples/training/ray.html), [Unsloth](https://docs.skypilot.co/en/latest/examples/training/unsloth.html), [Jax/TPU](https://docs.skypilot.co/en/latest/examples/training/tpu.html) |
372
+ | Training | [Verl](https://docs.skypilot.co/en/latest/examples/training/verl.html), [Finetune Llama 4](https://docs.skypilot.co/en/latest/examples/training/llama-4-finetuning.html), [PyTorch](https://docs.skypilot.co/en/latest/getting-started/tutorial.html), [DeepSpeed](https://docs.skypilot.co/en/latest/examples/training/deepspeed.html), [NeMo](https://docs.skypilot.co/en/latest/examples/training/nemo.html), [Ray](https://docs.skypilot.co/en/latest/examples/training/ray.html), [Unsloth](https://docs.skypilot.co/en/latest/examples/training/unsloth.html), [Jax/TPU](https://docs.skypilot.co/en/latest/examples/training/tpu.html) |
368
373
  | Serving | [vLLM](https://docs.skypilot.co/en/latest/examples/serving/vllm.html), [SGLang](https://docs.skypilot.co/en/latest/examples/serving/sglang.html), [Ollama](https://docs.skypilot.co/en/latest/examples/serving/ollama.html) |
369
374
  | Models | [DeepSeek-R1](https://docs.skypilot.co/en/latest/examples/models/deepseek-r1.html), [Llama 3](https://docs.skypilot.co/en/latest/examples/models/llama-3.html), [CodeLlama](https://docs.skypilot.co/en/latest/examples/models/codellama.html), [Qwen](https://docs.skypilot.co/en/latest/examples/models/qwen.html), [Mixtral](https://docs.skypilot.co/en/latest/examples/models/mixtral.html) |
370
375
  | AI apps | [RAG](https://docs.skypilot.co/en/latest/examples/applications/rag.html), [vector databases](https://docs.skypilot.co/en/latest/examples/applications/vector_database.html) (ChromaDB, CLIP) |
371
376
  | Common frameworks | [Airflow](https://docs.skypilot.co/en/latest/examples/frameworks/airflow.html), [Jupyter](https://docs.skypilot.co/en/latest/examples/frameworks/jupyter.html) |
372
377
 
373
- Source files and more examples can be found in [`llm/`](https://github.com/skypilot-org/skypilot/tree/master/llm) and [`examples/`](https://github.com/skypilot-org/skypilot/tree/master/examples).
378
+ Source files can be found in [`llm/`](https://github.com/skypilot-org/skypilot/tree/master/llm) and [`examples/`](https://github.com/skypilot-org/skypilot/tree/master/examples).
374
379
 
375
380
  ## More information
376
381
  To learn more, see [SkyPilot Overview](https://docs.skypilot.co/en/latest/overview.html), [SkyPilot docs](https://docs.skypilot.co/en/latest/), and [SkyPilot blog](https://blog.skypilot.co/).
@@ -57,12 +57,18 @@
57
57
 
58
58
  ----
59
59
 
60
- SkyPilot is an open-source framework for running AI and batch workloads on any infra.
60
+ SkyPilot is an open-source system for running AI and batch workloads on any infra.
61
61
 
62
62
  SkyPilot **is easy to use for AI users**:
63
- - Quickly spin up compute on your own infra
63
+ - Quickly spin up jobs on your own infra
64
64
  - Environment and job as code — simple and portable
65
- - Easy job management: queue, run, and auto-recover many jobs
65
+ - Easy management: queue, run, and auto-recover many jobs
66
+
67
+ SkyPilot **makes Kubernetes easy for AI teams**:
68
+
69
+ - Slurm-like ease of use, cloud-native robustness
70
+ - Local dev experience on K8s: SSH into pods, sync code, or connect IDE
71
+ - Turbocharge your clusters: gang scheduling, multi-cluster, and scaling
66
72
 
67
73
  SkyPilot **unifies multiple clusters, clouds, and hardware**:
68
74
  - One interface to use reserved GPUs, Kubernetes clusters, or 16+ clouds
@@ -113,7 +119,7 @@ You can find our documentation [here](https://docs.skypilot.co/).
113
119
 
114
120
  A SkyPilot task specifies: resource requirements, data to be synced, setup commands, and the task commands.
115
121
 
116
- Once written in this [**unified interface**](https://docs.skypilot.co/en/latest/reference/yaml-spec.html) (YAML or Python API), the task can be launched on any available cloud. This avoids vendor lock-in, and allows easily moving jobs to a different provider.
122
+ Once written in this [**unified interface**](https://docs.skypilot.co/en/latest/reference/yaml-spec.html) (YAML or Python API), the task can be launched on any available infra (Kubernetes, cloud, etc.). This avoids vendor lock-in, and allows easily moving jobs to a different provider.
117
123
 
118
124
  Paste the following into a file `my_task.yaml`:
119
125
 
@@ -151,12 +157,11 @@ sky launch my_task.yaml
151
157
  ```
152
158
 
153
159
  SkyPilot then performs the heavy-lifting for you, including:
154
- 1. Find the lowest priced VM instance type across different clouds
155
- 2. Provision the VM, with auto-failover if the cloud returned capacity errors
156
- 3. Sync the local `workdir` to the VM
157
- 4. Run the task's `setup` commands to prepare the VM for running the task
158
- 5. Run the task's `run` commands
159
-
160
+ 1. Find the cheapest & available infra across your clusters or clouds
161
+ 2. Provision the GPUs (pods or VMs), with auto-failover if the infra returned capacity errors
162
+ 3. Sync your local `workdir` to the provisioned cluster
163
+ 4. Auto-install dependencies by running the task's `setup` commands
164
+ 5. Run the task's `run` commands, and stream logs
160
165
 
161
166
  See [Quickstart](https://docs.skypilot.co/en/latest/getting-started/quickstart.html) to get started with SkyPilot.
162
167
 
@@ -168,13 +173,13 @@ Latest featured examples:
168
173
 
169
174
  | Task | Examples |
170
175
  |----------|----------|
171
- | Training | [PyTorch](https://docs.skypilot.co/en/latest/getting-started/tutorial.html), [DeepSpeed](https://docs.skypilot.co/en/latest/examples/training/deepspeed.html), [Finetune Llama 3](https://docs.skypilot.co/en/latest/examples/training/llama-3_1-finetuning.html), [NeMo](https://docs.skypilot.co/en/latest/examples/training/nemo.html), [Ray](https://docs.skypilot.co/en/latest/examples/training/ray.html), [Unsloth](https://docs.skypilot.co/en/latest/examples/training/unsloth.html), [Jax/TPU](https://docs.skypilot.co/en/latest/examples/training/tpu.html) |
176
+ | Training | [Verl](https://docs.skypilot.co/en/latest/examples/training/verl.html), [Finetune Llama 4](https://docs.skypilot.co/en/latest/examples/training/llama-4-finetuning.html), [PyTorch](https://docs.skypilot.co/en/latest/getting-started/tutorial.html), [DeepSpeed](https://docs.skypilot.co/en/latest/examples/training/deepspeed.html), [NeMo](https://docs.skypilot.co/en/latest/examples/training/nemo.html), [Ray](https://docs.skypilot.co/en/latest/examples/training/ray.html), [Unsloth](https://docs.skypilot.co/en/latest/examples/training/unsloth.html), [Jax/TPU](https://docs.skypilot.co/en/latest/examples/training/tpu.html) |
172
177
  | Serving | [vLLM](https://docs.skypilot.co/en/latest/examples/serving/vllm.html), [SGLang](https://docs.skypilot.co/en/latest/examples/serving/sglang.html), [Ollama](https://docs.skypilot.co/en/latest/examples/serving/ollama.html) |
173
178
  | Models | [DeepSeek-R1](https://docs.skypilot.co/en/latest/examples/models/deepseek-r1.html), [Llama 3](https://docs.skypilot.co/en/latest/examples/models/llama-3.html), [CodeLlama](https://docs.skypilot.co/en/latest/examples/models/codellama.html), [Qwen](https://docs.skypilot.co/en/latest/examples/models/qwen.html), [Mixtral](https://docs.skypilot.co/en/latest/examples/models/mixtral.html) |
174
179
  | AI apps | [RAG](https://docs.skypilot.co/en/latest/examples/applications/rag.html), [vector databases](https://docs.skypilot.co/en/latest/examples/applications/vector_database.html) (ChromaDB, CLIP) |
175
180
  | Common frameworks | [Airflow](https://docs.skypilot.co/en/latest/examples/frameworks/airflow.html), [Jupyter](https://docs.skypilot.co/en/latest/examples/frameworks/jupyter.html) |
176
181
 
177
- Source files and more examples can be found in [`llm/`](https://github.com/skypilot-org/skypilot/tree/master/llm) and [`examples/`](https://github.com/skypilot-org/skypilot/tree/master/examples).
182
+ Source files can be found in [`llm/`](https://github.com/skypilot-org/skypilot/tree/master/llm) and [`examples/`](https://github.com/skypilot-org/skypilot/tree/master/examples).
178
183
 
179
184
  ## More information
180
185
  To learn more, see [SkyPilot Overview](https://docs.skypilot.co/en/latest/overview.html), [SkyPilot docs](https://docs.skypilot.co/en/latest/), and [SkyPilot blog](https://blog.skypilot.co/).
@@ -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 = '57784d97d8d63f3c87f4d5d22f3e820b10154241'
8
+ _SKYPILOT_COMMIT_SHA = 'a167cba8230b0ffda6baa0c825fa0eb5d5ab4aa4'
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.dev20250806'
38
+ __version__ = '1.0.0.dev20250807'
39
39
  __root_dir__ = os.path.dirname(os.path.abspath(__file__))
40
40
 
41
41
 
@@ -168,6 +168,9 @@ _MAX_INLINE_SCRIPT_LENGTH = 100 * 1024
168
168
  _RESOURCES_UNAVAILABLE_LOG = (
169
169
  'Reasons for provision failures (for details, please check the log above):')
170
170
 
171
+ # Number of seconds to wait locking the cluster before communicating with user.
172
+ _CLUSTER_LOCK_TIMEOUT = 5.0
173
+
171
174
 
172
175
  def _is_command_length_over_limit(command: str) -> bool:
173
176
  """Check if the length of the command exceeds the limit.
@@ -2917,10 +2920,36 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
2917
2920
  # exceptions.ClusterOwnerIdentityMismatchError
2918
2921
  backend_utils.check_owner_identity(cluster_name)
2919
2922
  lock_id = backend_utils.cluster_status_lock_id(cluster_name)
2920
- with timeline.DistributedLockEvent(lock_id):
2921
- # Try to launch the exiting cluster first. If no existing cluster,
2922
- # this function will create a to_provision_config with required
2923
- # resources.
2923
+ communicated_with_user = False
2924
+
2925
+ while True:
2926
+ try:
2927
+ return self._locked_provision(lock_id, task, to_provision,
2928
+ dryrun, stream_logs, cluster_name,
2929
+ retry_until_up,
2930
+ skip_unnecessary_provisioning)
2931
+ except locks.LockTimeout:
2932
+ if not communicated_with_user:
2933
+ logger.info(f'{colorama.Fore.YELLOW}'
2934
+ f'Launching delayed, check concurrent tasks: '
2935
+ f'sky api status')
2936
+ communicated_with_user = True
2937
+
2938
+ def _locked_provision(
2939
+ self,
2940
+ lock_id: str,
2941
+ task: task_lib.Task,
2942
+ to_provision: Optional[resources_lib.Resources],
2943
+ dryrun: bool,
2944
+ stream_logs: bool,
2945
+ cluster_name: str,
2946
+ retry_until_up: bool = False,
2947
+ skip_unnecessary_provisioning: bool = False,
2948
+ ) -> Tuple[Optional[CloudVmRayResourceHandle], bool]:
2949
+ with timeline.DistributedLockEvent(lock_id, _CLUSTER_LOCK_TIMEOUT):
2950
+ # Try to launch the exiting cluster first. If no existing
2951
+ # cluster, this function will create a to_provision_config
2952
+ # with required resources.
2924
2953
  to_provision_config = self._check_existing_cluster(
2925
2954
  task, to_provision, cluster_name, dryrun)
2926
2955
  assert to_provision_config.resources is not None, (
@@ -467,8 +467,18 @@ def _print_checked_cloud(
467
467
  if ok:
468
468
  enabled_capabilities.append(capability)
469
469
  # `dict` reasons for K8s and SSH will be printed in detail in
470
- # _format_enabled_cloud. Skip here.
470
+ # _format_enabled_cloud. Skip here unless the cloud is disabled.
471
471
  if not isinstance(reason, str):
472
+ if not ok and isinstance(cloud_tuple[1],
473
+ (sky_clouds.SSH, sky_clouds.Kubernetes)):
474
+ if reason is not None:
475
+ reason_str = _format_context_details(cloud_tuple[1],
476
+ show_details=True,
477
+ ctx2text=reason)
478
+ reason_str = '\n'.join(
479
+ ' ' + line for line in reason_str.splitlines())
480
+ reasons_to_capabilities.setdefault(reason_str,
481
+ []).append(capability)
472
482
  continue
473
483
  if ok:
474
484
  if reason is not None:
@@ -4972,6 +4972,205 @@ def jobs_pool_down(
4972
4972
  _async_call_or_wait(request_id, async_call, 'sky.jobs.pool_down')
4973
4973
 
4974
4974
 
4975
+ def _handle_serve_logs(
4976
+ service_name: str,
4977
+ follow: bool,
4978
+ controller: bool,
4979
+ load_balancer: bool,
4980
+ replica_ids: Tuple[int, ...],
4981
+ sync_down: bool,
4982
+ tail: Optional[int],
4983
+ pool: bool, # pylint: disable=redefined-outer-name
4984
+ ):
4985
+ noun = 'pool' if pool else 'service'
4986
+ capnoun = noun.capitalize()
4987
+ repnoun = 'worker' if pool else 'replica'
4988
+ if tail is not None:
4989
+ if tail < 0:
4990
+ raise click.UsageError('--tail must be a non-negative integer.')
4991
+ # TODO(arda): We could add ability to tail and follow logs together.
4992
+ if follow:
4993
+ follow = False
4994
+ logger.warning(
4995
+ f'{colorama.Fore.YELLOW}'
4996
+ '--tail and --follow cannot be used together. '
4997
+ f'Changed the mode to --no-follow.{colorama.Style.RESET_ALL}')
4998
+
4999
+ chosen_components: Set[serve_lib.ServiceComponent] = set()
5000
+ if controller:
5001
+ chosen_components.add(serve_lib.ServiceComponent.CONTROLLER)
5002
+ if load_balancer:
5003
+ assert not pool, 'Load balancer is not supported for pools.'
5004
+ chosen_components.add(serve_lib.ServiceComponent.LOAD_BALANCER)
5005
+ # replica_ids contains the specific replica IDs provided by the user.
5006
+ # If it's not empty, it implies the user wants replica logs.
5007
+ if replica_ids:
5008
+ chosen_components.add(serve_lib.ServiceComponent.REPLICA)
5009
+
5010
+ if sync_down:
5011
+ # For sync-down, multiple targets are allowed.
5012
+ # If no specific components/replicas are mentioned, sync all.
5013
+ # Note: Multiple replicas or targets can only be specified when
5014
+ # using --sync-down.
5015
+ targets_to_sync = list(chosen_components)
5016
+ if not targets_to_sync and not replica_ids:
5017
+ # Default to all components if nothing specific is requested
5018
+ targets_to_sync = [
5019
+ serve_lib.ServiceComponent.CONTROLLER,
5020
+ serve_lib.ServiceComponent.REPLICA,
5021
+ ]
5022
+ if not pool:
5023
+ targets_to_sync.append(serve_lib.ServiceComponent.LOAD_BALANCER)
5024
+
5025
+ timestamp = sky_logging.get_run_timestamp()
5026
+ log_dir = (pathlib.Path(constants.SKY_LOGS_DIRECTORY) / noun /
5027
+ f'{service_name}_{timestamp}').expanduser()
5028
+ log_dir.mkdir(parents=True, exist_ok=True)
5029
+
5030
+ with rich_utils.client_status(
5031
+ ux_utils.spinner_message(f'Downloading {noun} logs...')):
5032
+ if pool:
5033
+ managed_jobs.pool_sync_down_logs(service_name,
5034
+ str(log_dir),
5035
+ targets=targets_to_sync,
5036
+ worker_ids=list(replica_ids),
5037
+ tail=tail)
5038
+ else:
5039
+ serve_lib.sync_down_logs(service_name,
5040
+ str(log_dir),
5041
+ targets=targets_to_sync,
5042
+ replica_ids=list(replica_ids),
5043
+ tail=tail)
5044
+ style = colorama.Style
5045
+ fore = colorama.Fore
5046
+ logger.info(f'{fore.CYAN}{capnoun} {service_name} logs: '
5047
+ f'{log_dir}{style.RESET_ALL}')
5048
+ return
5049
+
5050
+ # Tailing requires exactly one target.
5051
+ num_targets = len(chosen_components)
5052
+ # If REPLICA component is chosen, len(replica_ids) must be 1 for tailing.
5053
+ if serve_lib.ServiceComponent.REPLICA in chosen_components:
5054
+ if len(replica_ids) != 1:
5055
+ raise click.UsageError(
5056
+ f'Can only tail logs from a single {repnoun} at a time. '
5057
+ f'Provide exactly one {repnoun.upper()}_ID or use --sync-down '
5058
+ f'to download logs from multiple {repnoun}s.')
5059
+ # If replica is chosen and len is 1, num_targets effectively counts it.
5060
+ # We need to ensure no other component (controller/LB) is selected.
5061
+ if num_targets > 1:
5062
+ raise click.UsageError(
5063
+ 'Can only tail logs from one target at a time (controller, '
5064
+ f'load balancer, or a single {repnoun}). Use --sync-down '
5065
+ 'to download logs from multiple sources.')
5066
+ elif num_targets == 0:
5067
+ raise click.UsageError(
5068
+ 'Specify a target to tail: --controller, --load-balancer, or '
5069
+ f'a {repnoun.upper()}_ID.')
5070
+ elif num_targets > 1:
5071
+ raise click.UsageError(
5072
+ 'Can only tail logs from one target at a time. Use --sync-down '
5073
+ 'to download logs from multiple sources.')
5074
+
5075
+ # At this point, we have exactly one target for tailing.
5076
+ assert len(chosen_components) == 1
5077
+ assert len(replica_ids) in [0, 1]
5078
+ target_component = chosen_components.pop()
5079
+ target_replica_id: Optional[int] = replica_ids[0] if replica_ids else None
5080
+
5081
+ try:
5082
+ if pool:
5083
+ managed_jobs.pool_tail_logs(service_name,
5084
+ target=target_component,
5085
+ worker_id=target_replica_id,
5086
+ follow=follow,
5087
+ tail=tail)
5088
+ else:
5089
+ serve_lib.tail_logs(service_name,
5090
+ target=target_component,
5091
+ replica_id=target_replica_id,
5092
+ follow=follow,
5093
+ tail=tail)
5094
+ except exceptions.ClusterNotUpError:
5095
+ with ux_utils.print_exception_no_traceback():
5096
+ raise
5097
+
5098
+
5099
+ @pool.command('logs', cls=_DocumentedCodeCommand)
5100
+ @flags.config_option(expose_value=False)
5101
+ @click.option(
5102
+ '--follow/--no-follow',
5103
+ is_flag=True,
5104
+ default=True,
5105
+ help=('Follow the logs of the job. [default: --follow] '
5106
+ 'If --no-follow is specified, print the log so far and exit.'))
5107
+ @click.option('--controller',
5108
+ is_flag=True,
5109
+ default=False,
5110
+ required=False,
5111
+ help='Show the controller logs of this pool.')
5112
+ @click.option('--sync-down',
5113
+ '-s',
5114
+ is_flag=True,
5115
+ default=False,
5116
+ help='Sync down logs to the local machine. Can be combined with '
5117
+ '--controller or worker ID to narrow scope.')
5118
+ @click.option(
5119
+ '--tail',
5120
+ default=None,
5121
+ type=int,
5122
+ help='The number of lines to display from the end of the log file. '
5123
+ 'Default is None, which means print all lines.')
5124
+ @click.argument('pool_name', required=True, type=str)
5125
+ @click.argument('worker_ids', required=False, type=int, nargs=-1)
5126
+ @usage_lib.entrypoint
5127
+ # TODO(tian): Add default argument for this CLI if none of the flags are
5128
+ # specified.
5129
+ def pool_logs(
5130
+ pool_name: str,
5131
+ follow: bool,
5132
+ controller: bool,
5133
+ worker_ids: Tuple[int, ...],
5134
+ sync_down: bool,
5135
+ tail: Optional[int],
5136
+ ):
5137
+ """Tail or sync down logs of a pool.
5138
+
5139
+ Logs can be tailed from one target (controller, or a single worker) or
5140
+ synced down from multiple targets simultaneously.
5141
+
5142
+ Example:
5143
+
5144
+ .. code-block:: bash
5145
+
5146
+ # Tail the controller logs of a pool
5147
+ sky pool logs --controller [POOL_NAME]
5148
+ \b
5149
+ # Print the worker logs so far and exit
5150
+ sky pool logs --no-follow [POOL_NAME]
5151
+ \b
5152
+ # Tail the logs of worker 1
5153
+ sky pool logs [POOL_NAME] 1
5154
+ \b
5155
+ # Show the last 100 lines of the controller logs
5156
+ sky pool logs --controller --tail 100 [POOL_NAME]
5157
+ \b
5158
+ # Sync down all logs of the pool (controller, all workers)
5159
+ sky pool logs [POOL_NAME] --sync-down
5160
+ \b
5161
+ # Sync down controller logs and logs for workers 1 and 3
5162
+ sky pool logs [POOL_NAME] 1 3 --controller --sync-down
5163
+ """
5164
+ _handle_serve_logs(pool_name,
5165
+ follow=follow,
5166
+ controller=controller,
5167
+ load_balancer=False,
5168
+ replica_ids=worker_ids,
5169
+ sync_down=sync_down,
5170
+ tail=tail,
5171
+ pool=True)
5172
+
5173
+
4975
5174
  @cli.command(cls=_DocumentedCodeCommand)
4976
5175
  @flags.config_option(expose_value=False)
4977
5176
  @usage_lib.entrypoint
@@ -5555,6 +5754,7 @@ def serve_down(
5555
5754
  show_default=True)
5556
5755
 
5557
5756
  if replica_id_is_defined:
5757
+ assert replica_id is not None
5558
5758
  request_id = serve_lib.terminate_replica(service_names[0], replica_id,
5559
5759
  purge)
5560
5760
  else:
@@ -5635,99 +5835,14 @@ def serve_logs(
5635
5835
  # Sync down controller logs and logs for replicas 1 and 3
5636
5836
  sky serve logs [SERVICE_NAME] 1 3 --controller --sync-down
5637
5837
  """
5638
- if tail is not None:
5639
- if tail < 0:
5640
- raise click.UsageError('--tail must be a non-negative integer.')
5641
- # TODO(arda): We could add ability to tail and follow logs together.
5642
- if follow:
5643
- follow = False
5644
- logger.warning(
5645
- f'{colorama.Fore.YELLOW}'
5646
- '--tail and --follow cannot be used together. '
5647
- f'Changed the mode to --no-follow.{colorama.Style.RESET_ALL}')
5648
-
5649
- chosen_components: Set[serve_lib.ServiceComponent] = set()
5650
- if controller:
5651
- chosen_components.add(serve_lib.ServiceComponent.CONTROLLER)
5652
- if load_balancer:
5653
- chosen_components.add(serve_lib.ServiceComponent.LOAD_BALANCER)
5654
- # replica_ids contains the specific replica IDs provided by the user.
5655
- # If it's not empty, it implies the user wants replica logs.
5656
- if replica_ids:
5657
- chosen_components.add(serve_lib.ServiceComponent.REPLICA)
5658
-
5659
- if sync_down:
5660
- # For sync-down, multiple targets are allowed.
5661
- # If no specific components/replicas are mentioned, sync all.
5662
- # Note: Multiple replicas or targets can only be specified when
5663
- # using --sync-down.
5664
- targets_to_sync = list(chosen_components)
5665
- if not targets_to_sync and not replica_ids:
5666
- # Default to all components if nothing specific is requested
5667
- targets_to_sync = [
5668
- serve_lib.ServiceComponent.CONTROLLER,
5669
- serve_lib.ServiceComponent.LOAD_BALANCER,
5670
- serve_lib.ServiceComponent.REPLICA,
5671
- ]
5672
-
5673
- timestamp = sky_logging.get_run_timestamp()
5674
- log_dir = (pathlib.Path(constants.SKY_LOGS_DIRECTORY) / 'service' /
5675
- f'{service_name}_{timestamp}').expanduser()
5676
- log_dir.mkdir(parents=True, exist_ok=True)
5677
-
5678
- with rich_utils.client_status(
5679
- ux_utils.spinner_message('Downloading service logs...')):
5680
- serve_lib.sync_down_logs(service_name,
5681
- local_dir=str(log_dir),
5682
- targets=targets_to_sync,
5683
- replica_ids=list(replica_ids),
5684
- tail=tail)
5685
- style = colorama.Style
5686
- fore = colorama.Fore
5687
- logger.info(f'{fore.CYAN}Service {service_name} logs: '
5688
- f'{log_dir}{style.RESET_ALL}')
5689
- return
5690
-
5691
- # Tailing requires exactly one target.
5692
- num_targets = len(chosen_components)
5693
- # If REPLICA component is chosen, len(replica_ids) must be 1 for tailing.
5694
- if serve_lib.ServiceComponent.REPLICA in chosen_components:
5695
- if len(replica_ids) != 1:
5696
- raise click.UsageError(
5697
- 'Can only tail logs from a single replica at a time. '
5698
- 'Provide exactly one REPLICA_ID or use --sync-down '
5699
- 'to download logs from multiple replicas.')
5700
- # If replica is chosen and len is 1, num_targets effectively counts it.
5701
- # We need to ensure no other component (controller/LB) is selected.
5702
- if num_targets > 1:
5703
- raise click.UsageError(
5704
- 'Can only tail logs from one target at a time (controller, '
5705
- 'load balancer, or a single replica). Use --sync-down '
5706
- 'to download logs from multiple sources.')
5707
- elif num_targets == 0:
5708
- raise click.UsageError(
5709
- 'Specify a target to tail: --controller, --load-balancer, or '
5710
- 'a REPLICA_ID.')
5711
- elif num_targets > 1:
5712
- raise click.UsageError(
5713
- 'Can only tail logs from one target at a time. Use --sync-down '
5714
- 'to download logs from multiple sources.')
5715
-
5716
- # At this point, we have exactly one target for tailing.
5717
- assert len(chosen_components) == 1
5718
- assert len(replica_ids) in [0, 1]
5719
- target_component = chosen_components.pop()
5720
- target_replica_id: Optional[int] = replica_ids[0] if replica_ids else None
5721
-
5722
- try:
5723
- serve_lib.tail_logs(service_name,
5724
- target=target_component,
5725
- replica_id=target_replica_id,
5726
- follow=follow,
5727
- tail=tail)
5728
- except exceptions.ClusterNotUpError:
5729
- with ux_utils.print_exception_no_traceback():
5730
- raise
5838
+ _handle_serve_logs(service_name,
5839
+ follow=follow,
5840
+ controller=controller,
5841
+ load_balancer=load_balancer,
5842
+ replica_ids=replica_ids,
5843
+ sync_down=sync_down,
5844
+ tail=tail,
5845
+ pool=False)
5731
5846
 
5732
5847
 
5733
5848
  @cli.group(cls=_NaturalOrderGroup, hidden=True)
@@ -352,7 +352,14 @@ def validate(
352
352
  validation. This is only required when a admin policy is in use,
353
353
  see: https://docs.skypilot.co/en/latest/cloud-setup/policy.html
354
354
  """
355
+ remote_api_version = versions.get_remote_api_version()
356
+ # TODO(kevin): remove this in v0.13.0
357
+ omit_user_specified_yaml = (remote_api_version is None or
358
+ remote_api_version < 15)
355
359
  for task in dag.tasks:
360
+ if omit_user_specified_yaml:
361
+ # pylint: disable=protected-access
362
+ task._user_specified_yaml = None
356
363
  task.expand_and_validate_workdir()
357
364
  if not workdir_only:
358
365
  task.expand_and_validate_file_mounts()
@@ -1874,6 +1881,10 @@ def stream_and_get(
1874
1881
  with ux_utils.print_exception_no_traceback():
1875
1882
  raise RuntimeError(f'Failed to stream logs: {detail}')
1876
1883
  elif response.status_code != 200:
1884
+ # TODO(syang): handle the case where the requestID is not provided
1885
+ # see https://github.com/skypilot-org/skypilot/issues/6549
1886
+ if request_id is None:
1887
+ return None
1877
1888
  return get(request_id)
1878
1889
  return stream_response(request_id, response, output_stream)
1879
1890
 
@@ -2420,7 +2431,9 @@ def api_login(endpoint: Optional[str] = None,
2420
2431
  _save_config_updates(endpoint=endpoint)
2421
2432
  dashboard_url = server_common.get_dashboard_url(endpoint)
2422
2433
 
2423
- server_common.get_api_server_status.cache_clear()
2434
+ # see https://github.com/python/mypy/issues/5107 on why
2435
+ # typing is disabled on this line
2436
+ server_common.get_api_server_status.cache_clear() # type: ignore
2424
2437
  # After successful authentication, check server health again to get user
2425
2438
  # identity
2426
2439
  server_status, final_api_server_info = server_common.check_server_healthy(
@@ -244,6 +244,10 @@ async def stream_and_get(
244
244
  with ux_utils.print_exception_no_traceback():
245
245
  raise RuntimeError(f'Failed to stream logs: {detail}')
246
246
  elif response.status != 200:
247
+ # TODO(syang): handle the case where the requestID is not
248
+ # provided. https://github.com/skypilot-org/skypilot/issues/6549
249
+ if request_id is None:
250
+ return None
247
251
  return await get(request_id)
248
252
 
249
253
  return await stream_response_async(request_id, response,
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-387626669badf82e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-2a43ea3241bbdacd.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_error-c66a4e8afc46f17b.js" defer=""></script><script src="/dashboard/_next/static/Gelsd19kVxXcX7aQQGsGu/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/Gelsd19kVxXcX7aQQGsGu/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"Gelsd19kVxXcX7aQQGsGu","assetPrefix":"/dashboard","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-76efbdad99742559.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-1e6de35d15a8d432.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_error-c66a4e8afc46f17b.js" defer=""></script><script src="/dashboard/_next/static/YAirOGsV1z6B2RJ0VIUmD/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/YAirOGsV1z6B2RJ0VIUmD/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"YAirOGsV1z6B2RJ0VIUmD","assetPrefix":"/dashboard","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
@@ -0,0 +1 @@
1
+ self.__BUILD_MANIFEST=function(s,c,e,a,t,f,u,n,o,r,j,i,b,k,h){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},"/":["static/chunks/pages/index-444f1804401f04ea.js"],"/_error":["static/chunks/pages/_error-c66a4e8afc46f17b.js"],"/clusters":["static/chunks/pages/clusters-b30460f683e6ba96.js"],"/clusters/[cluster]":[s,c,e,f,u,j,r,a,t,n,i,b,o,k,h,"static/chunks/1871-980a395e92633a5c.js","static/chunks/pages/clusters/[cluster]-155d477a6c3e04e2.js"],"/clusters/[cluster]/[job]":[s,c,e,f,a,t,o,"static/chunks/pages/clusters/[cluster]/[job]-6fd1d2d8441aa54b.js"],"/config":["static/chunks/pages/config-dfb9bf07b13045f4.js"],"/infra":["static/chunks/pages/infra-fc9222e26c8e2f0d.js"],"/infra/[context]":["static/chunks/pages/infra/[context]-13d53fffc03ccb52.js"],"/jobs":["static/chunks/pages/jobs-cdc60fb5d371e16a.js"],"/jobs/pools/[pool]":[s,c,e,u,r,a,t,n,"static/chunks/pages/jobs/pools/[pool]-f5ccf5d39d87aebe.js"],"/jobs/[job]":[s,c,e,f,u,r,a,t,n,o,"static/chunks/pages/jobs/[job]-154f55cf8af55be5.js"],"/users":["static/chunks/pages/users-7ed36e44e779d5c7.js"],"/volumes":["static/chunks/pages/volumes-c9695d657f78b5dc.js"],"/workspace/new":["static/chunks/pages/workspace/new-3f88a1c7e86a3f86.js"],"/workspaces":["static/chunks/pages/workspaces-8f67be60165724cc.js"],"/workspaces/[name]":[s,c,e,f,u,j,a,t,n,i,b,o,k,h,"static/chunks/1141-a8a8f1adba34c892.js","static/chunks/pages/workspaces/[name]-f72f73bcef9541dc.js"],sortedPages:["/","/_app","/_error","/clusters","/clusters/[cluster]","/clusters/[cluster]/[job]","/config","/infra","/infra/[context]","/jobs","/jobs/pools/[pool]","/jobs/[job]","/users","/volumes","/workspace/new","/workspaces","/workspaces/[name]"]}}("static/chunks/616-3d59f75e2ccf9321.js","static/chunks/6130-2be46d70a38f1e82.js","static/chunks/5739-d67458fcb1386c92.js","static/chunks/6989-6129c1cfbcf51063.js","static/chunks/3850-ff4a9a69d978632b.js","static/chunks/7411-b15471acd2cba716.js","static/chunks/1272-1ef0bf0237faccdb.js","static/chunks/8969-318c3dca725e8e5d.js","static/chunks/6135-85426374db04811e.js","static/chunks/6212-7bd06f60ba693125.js","static/chunks/1559-6c00e20454194859.js","static/chunks/6990-0f886f16e0d55ff8.js","static/chunks/8056-019615038d6ce427.js","static/chunks/6601-3e21152fe16da09c.js","static/chunks/9159-11421c0f2909236f.js"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();