skypilot-nightly 1.0.0.dev20250306__tar.gz → 1.0.0.dev20250308__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.
Files changed (372) hide show
  1. {skypilot_nightly-1.0.0.dev20250306/skypilot_nightly.egg-info → skypilot_nightly-1.0.0.dev20250308}/PKG-INFO +7 -5
  2. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/README.md +6 -4
  3. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/__init__.py +2 -2
  4. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/backends/wheel_utils.py +29 -14
  5. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/jobs/server/core.py +2 -2
  6. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/jobs/server/server.py +3 -0
  7. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/skylet/constants.py +6 -0
  8. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/templates/jobs-controller.yaml.j2 +2 -3
  9. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/utils/command_runner.py +2 -2
  10. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/utils/common_utils.py +3 -0
  11. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/utils/controller_utils.py +5 -0
  12. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/utils/rich_utils.py +41 -3
  13. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308/skypilot_nightly.egg-info}/PKG-INFO +7 -5
  14. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/LICENSE +0 -0
  15. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/MANIFEST.in +0 -0
  16. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/pyproject.toml +0 -0
  17. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/setup.cfg +0 -0
  18. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/setup.py +0 -0
  19. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/adaptors/__init__.py +0 -0
  20. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/adaptors/aws.py +0 -0
  21. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/adaptors/azure.py +0 -0
  22. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/adaptors/cloudflare.py +0 -0
  23. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/adaptors/common.py +0 -0
  24. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/adaptors/cudo.py +0 -0
  25. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/adaptors/do.py +0 -0
  26. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/adaptors/docker.py +0 -0
  27. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/adaptors/gcp.py +0 -0
  28. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/adaptors/ibm.py +0 -0
  29. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/adaptors/kubernetes.py +0 -0
  30. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/adaptors/nebius.py +0 -0
  31. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/adaptors/oci.py +0 -0
  32. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/adaptors/runpod.py +0 -0
  33. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/adaptors/vast.py +0 -0
  34. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/adaptors/vsphere.py +0 -0
  35. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/admin_policy.py +0 -0
  36. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/authentication.py +0 -0
  37. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/backends/__init__.py +0 -0
  38. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/backends/backend.py +0 -0
  39. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/backends/backend_utils.py +0 -0
  40. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/backends/cloud_vm_ray_backend.py +0 -0
  41. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/backends/docker_utils.py +0 -0
  42. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/backends/local_docker_backend.py +0 -0
  43. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/backends/monkey_patches/monkey_patch_ray_up.py +0 -0
  44. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/benchmark/__init__.py +0 -0
  45. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/benchmark/benchmark_state.py +0 -0
  46. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/benchmark/benchmark_utils.py +0 -0
  47. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/check.py +0 -0
  48. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/cli.py +0 -0
  49. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/client/__init__.py +0 -0
  50. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/client/cli.py +0 -0
  51. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/client/common.py +0 -0
  52. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/client/sdk.py +0 -0
  53. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/cloud_stores.py +0 -0
  54. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/__init__.py +0 -0
  55. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/aws.py +0 -0
  56. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/azure.py +0 -0
  57. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/cloud.py +0 -0
  58. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/cudo.py +0 -0
  59. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/do.py +0 -0
  60. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/fluidstack.py +0 -0
  61. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/gcp.py +0 -0
  62. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/ibm.py +0 -0
  63. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/kubernetes.py +0 -0
  64. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/lambda_cloud.py +0 -0
  65. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/nebius.py +0 -0
  66. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/oci.py +0 -0
  67. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/paperspace.py +0 -0
  68. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/runpod.py +0 -0
  69. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/scp.py +0 -0
  70. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/service_catalog/__init__.py +0 -0
  71. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/service_catalog/aws_catalog.py +0 -0
  72. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/service_catalog/azure_catalog.py +0 -0
  73. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/service_catalog/common.py +0 -0
  74. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/service_catalog/config.py +0 -0
  75. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/service_catalog/constants.py +0 -0
  76. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/service_catalog/cudo_catalog.py +0 -0
  77. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/service_catalog/data_fetchers/__init__.py +0 -0
  78. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/service_catalog/data_fetchers/fetch_aws.py +0 -0
  79. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/service_catalog/data_fetchers/fetch_azure.py +0 -0
  80. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/service_catalog/data_fetchers/fetch_cudo.py +0 -0
  81. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/service_catalog/data_fetchers/fetch_fluidstack.py +0 -0
  82. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/service_catalog/data_fetchers/fetch_gcp.py +0 -0
  83. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/service_catalog/data_fetchers/fetch_lambda_cloud.py +0 -0
  84. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/service_catalog/data_fetchers/fetch_vast.py +0 -0
  85. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/service_catalog/data_fetchers/fetch_vsphere.py +0 -0
  86. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/service_catalog/do_catalog.py +0 -0
  87. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/service_catalog/fluidstack_catalog.py +0 -0
  88. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/service_catalog/gcp_catalog.py +0 -0
  89. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/service_catalog/ibm_catalog.py +0 -0
  90. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/service_catalog/kubernetes_catalog.py +0 -0
  91. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/service_catalog/lambda_catalog.py +0 -0
  92. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/service_catalog/nebius_catalog.py +0 -0
  93. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/service_catalog/oci_catalog.py +0 -0
  94. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/service_catalog/paperspace_catalog.py +0 -0
  95. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/service_catalog/runpod_catalog.py +0 -0
  96. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/service_catalog/scp_catalog.py +0 -0
  97. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/service_catalog/vast_catalog.py +0 -0
  98. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/service_catalog/vsphere_catalog.py +0 -0
  99. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/utils/__init__.py +0 -0
  100. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/utils/aws_utils.py +0 -0
  101. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/utils/azure_utils.py +0 -0
  102. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/utils/gcp_utils.py +0 -0
  103. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/utils/oci_utils.py +0 -0
  104. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/utils/scp_utils.py +0 -0
  105. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/vast.py +0 -0
  106. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/clouds/vsphere.py +0 -0
  107. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/core.py +0 -0
  108. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/dag.py +0 -0
  109. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/data/__init__.py +0 -0
  110. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/data/data_transfer.py +0 -0
  111. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/data/data_utils.py +0 -0
  112. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/data/mounting_utils.py +0 -0
  113. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/data/storage.py +0 -0
  114. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/data/storage_utils.py +0 -0
  115. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/exceptions.py +0 -0
  116. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/execution.py +0 -0
  117. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/global_user_state.py +0 -0
  118. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/jobs/__init__.py +0 -0
  119. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/jobs/client/__init__.py +0 -0
  120. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/jobs/client/sdk.py +0 -0
  121. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/jobs/constants.py +0 -0
  122. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/jobs/controller.py +0 -0
  123. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/jobs/dashboard/dashboard.py +0 -0
  124. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/jobs/dashboard/static/favicon.ico +0 -0
  125. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/jobs/dashboard/templates/index.html +0 -0
  126. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/jobs/recovery_strategy.py +0 -0
  127. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/jobs/scheduler.py +0 -0
  128. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/jobs/server/__init__.py +0 -0
  129. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/jobs/server/dashboard_utils.py +0 -0
  130. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/jobs/state.py +0 -0
  131. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/jobs/utils.py +0 -0
  132. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/models.py +0 -0
  133. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/optimizer.py +0 -0
  134. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/__init__.py +0 -0
  135. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/aws/__init__.py +0 -0
  136. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/aws/config.py +0 -0
  137. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/aws/instance.py +0 -0
  138. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/aws/utils.py +0 -0
  139. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/azure/__init__.py +0 -0
  140. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/azure/azure-config-template.json +0 -0
  141. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/azure/config.py +0 -0
  142. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/azure/instance.py +0 -0
  143. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/common.py +0 -0
  144. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/constants.py +0 -0
  145. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/cudo/__init__.py +0 -0
  146. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/cudo/config.py +0 -0
  147. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/cudo/cudo_machine_type.py +0 -0
  148. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/cudo/cudo_utils.py +0 -0
  149. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/cudo/cudo_wrapper.py +0 -0
  150. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/cudo/instance.py +0 -0
  151. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/do/__init__.py +0 -0
  152. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/do/config.py +0 -0
  153. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/do/constants.py +0 -0
  154. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/do/instance.py +0 -0
  155. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/do/utils.py +0 -0
  156. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/docker_utils.py +0 -0
  157. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/fluidstack/__init__.py +0 -0
  158. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/fluidstack/config.py +0 -0
  159. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/fluidstack/fluidstack_utils.py +0 -0
  160. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/fluidstack/instance.py +0 -0
  161. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/gcp/__init__.py +0 -0
  162. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/gcp/config.py +0 -0
  163. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/gcp/constants.py +0 -0
  164. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/gcp/instance.py +0 -0
  165. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/gcp/instance_utils.py +0 -0
  166. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/gcp/mig_utils.py +0 -0
  167. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/instance_setup.py +0 -0
  168. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/kubernetes/__init__.py +0 -0
  169. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/kubernetes/config.py +0 -0
  170. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/kubernetes/constants.py +0 -0
  171. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/kubernetes/instance.py +0 -0
  172. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/kubernetes/manifests/smarter-device-manager-configmap.yaml +0 -0
  173. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/kubernetes/manifests/smarter-device-manager-daemonset.yaml +0 -0
  174. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/kubernetes/network.py +0 -0
  175. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/kubernetes/network_utils.py +0 -0
  176. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/kubernetes/utils.py +0 -0
  177. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/lambda_cloud/__init__.py +0 -0
  178. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/lambda_cloud/config.py +0 -0
  179. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/lambda_cloud/instance.py +0 -0
  180. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/lambda_cloud/lambda_utils.py +0 -0
  181. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/logging.py +0 -0
  182. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/metadata_utils.py +0 -0
  183. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/nebius/__init__.py +0 -0
  184. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/nebius/config.py +0 -0
  185. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/nebius/instance.py +0 -0
  186. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/nebius/utils.py +0 -0
  187. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/oci/__init__.py +0 -0
  188. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/oci/config.py +0 -0
  189. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/oci/instance.py +0 -0
  190. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/oci/query_utils.py +0 -0
  191. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/paperspace/__init__.py +0 -0
  192. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/paperspace/config.py +0 -0
  193. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/paperspace/constants.py +0 -0
  194. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/paperspace/instance.py +0 -0
  195. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/paperspace/utils.py +0 -0
  196. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/provisioner.py +0 -0
  197. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/runpod/__init__.py +0 -0
  198. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/runpod/api/__init__.py +0 -0
  199. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/runpod/api/commands.py +0 -0
  200. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/runpod/api/pods.py +0 -0
  201. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/runpod/config.py +0 -0
  202. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/runpod/instance.py +0 -0
  203. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/runpod/utils.py +0 -0
  204. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/vast/__init__.py +0 -0
  205. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/vast/config.py +0 -0
  206. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/vast/instance.py +0 -0
  207. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/vast/utils.py +0 -0
  208. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/vsphere/__init__.py +0 -0
  209. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/vsphere/common/__init__.py +0 -0
  210. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/vsphere/common/cls_api_client.py +0 -0
  211. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/vsphere/common/cls_api_helper.py +0 -0
  212. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/vsphere/common/custom_script.py +0 -0
  213. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/vsphere/common/id_generator.py +0 -0
  214. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/vsphere/common/metadata_utils.py +0 -0
  215. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/vsphere/common/service_manager.py +0 -0
  216. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/vsphere/common/service_manager_factory.py +0 -0
  217. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/vsphere/common/ssl_helper.py +0 -0
  218. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/vsphere/common/vapiconnect.py +0 -0
  219. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/vsphere/common/vim_utils.py +0 -0
  220. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/vsphere/config.py +0 -0
  221. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/vsphere/instance.py +0 -0
  222. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/provision/vsphere/vsphere_utils.py +0 -0
  223. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/resources.py +0 -0
  224. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/serve/__init__.py +0 -0
  225. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/serve/autoscalers.py +0 -0
  226. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/serve/client/__init__.py +0 -0
  227. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/serve/client/sdk.py +0 -0
  228. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/serve/constants.py +0 -0
  229. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/serve/controller.py +0 -0
  230. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/serve/load_balancer.py +0 -0
  231. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/serve/load_balancing_policies.py +0 -0
  232. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/serve/replica_managers.py +0 -0
  233. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/serve/serve_state.py +0 -0
  234. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/serve/serve_utils.py +0 -0
  235. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/serve/server/__init__.py +0 -0
  236. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/serve/server/core.py +0 -0
  237. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/serve/server/server.py +0 -0
  238. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/serve/service.py +0 -0
  239. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/serve/service_spec.py +0 -0
  240. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/server/__init__.py +0 -0
  241. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/server/common.py +0 -0
  242. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/server/constants.py +0 -0
  243. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/server/html/log.html +0 -0
  244. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/server/requests/__init__.py +0 -0
  245. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/server/requests/executor.py +0 -0
  246. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/server/requests/payloads.py +0 -0
  247. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/server/requests/queues/__init__.py +0 -0
  248. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/server/requests/queues/mp_queue.py +0 -0
  249. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/server/requests/requests.py +0 -0
  250. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/server/requests/serializers/__init__.py +0 -0
  251. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/server/requests/serializers/decoders.py +0 -0
  252. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/server/requests/serializers/encoders.py +0 -0
  253. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/server/server.py +0 -0
  254. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/server/stream_utils.py +0 -0
  255. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/setup_files/MANIFEST.in +0 -0
  256. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/setup_files/dependencies.py +0 -0
  257. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/setup_files/setup.py +0 -0
  258. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/sky_logging.py +0 -0
  259. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/skylet/LICENSE +0 -0
  260. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/skylet/__init__.py +0 -0
  261. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/skylet/attempt_skylet.py +0 -0
  262. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/skylet/autostop_lib.py +0 -0
  263. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/skylet/configs.py +0 -0
  264. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/skylet/events.py +0 -0
  265. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/skylet/job_lib.py +0 -0
  266. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/skylet/log_lib.py +0 -0
  267. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/skylet/log_lib.pyi +0 -0
  268. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/skylet/providers/__init__.py +0 -0
  269. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/skylet/providers/command_runner.py +0 -0
  270. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/skylet/providers/ibm/__init__.py +0 -0
  271. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/skylet/providers/ibm/node_provider.py +0 -0
  272. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/skylet/providers/ibm/utils.py +0 -0
  273. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/skylet/providers/ibm/vpc_provider.py +0 -0
  274. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/skylet/providers/scp/__init__.py +0 -0
  275. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/skylet/providers/scp/config.py +0 -0
  276. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/skylet/providers/scp/node_provider.py +0 -0
  277. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/skylet/ray_patches/__init__.py +0 -0
  278. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/skylet/ray_patches/autoscaler.py.patch +0 -0
  279. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/skylet/ray_patches/cli.py.patch +0 -0
  280. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/skylet/ray_patches/command_runner.py.patch +0 -0
  281. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/skylet/ray_patches/log_monitor.py.patch +0 -0
  282. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/skylet/ray_patches/resource_demand_scheduler.py.patch +0 -0
  283. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/skylet/ray_patches/updater.py.patch +0 -0
  284. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/skylet/ray_patches/worker.py.patch +0 -0
  285. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/skylet/skylet.py +0 -0
  286. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/skylet/subprocess_daemon.py +0 -0
  287. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/skypilot_config.py +0 -0
  288. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/task.py +0 -0
  289. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/templates/aws-ray.yml.j2 +0 -0
  290. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/templates/azure-ray.yml.j2 +0 -0
  291. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/templates/cudo-ray.yml.j2 +0 -0
  292. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/templates/do-ray.yml.j2 +0 -0
  293. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/templates/fluidstack-ray.yml.j2 +0 -0
  294. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/templates/gcp-ray.yml.j2 +0 -0
  295. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/templates/ibm-ray.yml.j2 +0 -0
  296. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/templates/kubernetes-ingress.yml.j2 +0 -0
  297. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/templates/kubernetes-loadbalancer.yml.j2 +0 -0
  298. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/templates/kubernetes-port-forward-proxy-command.sh +0 -0
  299. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/templates/kubernetes-ray.yml.j2 +0 -0
  300. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/templates/kubernetes-ssh-jump.yml.j2 +0 -0
  301. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/templates/lambda-ray.yml.j2 +0 -0
  302. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/templates/local-ray.yml.j2 +0 -0
  303. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/templates/nebius-ray.yml.j2 +0 -0
  304. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/templates/oci-ray.yml.j2 +0 -0
  305. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/templates/paperspace-ray.yml.j2 +0 -0
  306. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/templates/runpod-ray.yml.j2 +0 -0
  307. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/templates/scp-ray.yml.j2 +0 -0
  308. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/templates/sky-serve-controller.yaml.j2 +0 -0
  309. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/templates/skypilot-server-kubernetes-proxy.sh +0 -0
  310. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/templates/vast-ray.yml.j2 +0 -0
  311. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/templates/vsphere-ray.yml.j2 +0 -0
  312. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/templates/websocket_proxy.py +0 -0
  313. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/usage/__init__.py +0 -0
  314. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/usage/constants.py +0 -0
  315. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/usage/usage_lib.py +0 -0
  316. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/utils/__init__.py +0 -0
  317. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/utils/accelerator_registry.py +0 -0
  318. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/utils/admin_policy_utils.py +0 -0
  319. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/utils/annotations.py +0 -0
  320. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/utils/cli_utils/__init__.py +0 -0
  321. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/utils/cli_utils/status_utils.py +0 -0
  322. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/utils/cluster_utils.py +0 -0
  323. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/utils/command_runner.pyi +0 -0
  324. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/utils/common.py +0 -0
  325. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/utils/config_utils.py +0 -0
  326. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/utils/control_master_utils.py +0 -0
  327. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/utils/dag_utils.py +0 -0
  328. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/utils/db_utils.py +0 -0
  329. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/utils/env_options.py +0 -0
  330. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/utils/kubernetes/__init__.py +0 -0
  331. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/utils/kubernetes/create_cluster.sh +0 -0
  332. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/utils/kubernetes/delete_cluster.sh +0 -0
  333. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/utils/kubernetes/deploy_remote_cluster.sh +0 -0
  334. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/utils/kubernetes/exec_kubeconfig_converter.py +0 -0
  335. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/utils/kubernetes/generate_kind_config.py +0 -0
  336. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/utils/kubernetes/generate_kubeconfig.sh +0 -0
  337. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/utils/kubernetes/gpu_labeler.py +0 -0
  338. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/utils/kubernetes/k8s_gpu_labeler_job.yaml +0 -0
  339. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml +0 -0
  340. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/utils/kubernetes/kubernetes_deploy_utils.py +0 -0
  341. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/utils/kubernetes/rsync_helper.sh +0 -0
  342. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/utils/kubernetes/ssh_jump_lifecycle_manager.py +0 -0
  343. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/utils/kubernetes_enums.py +0 -0
  344. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/utils/log_utils.py +0 -0
  345. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/utils/message_utils.py +0 -0
  346. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/utils/registry.py +0 -0
  347. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/utils/resources_utils.py +0 -0
  348. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/utils/schemas.py +0 -0
  349. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/utils/status_lib.py +0 -0
  350. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/utils/subprocess_utils.py +0 -0
  351. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/utils/timeline.py +0 -0
  352. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/utils/ux_utils.py +0 -0
  353. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/sky/utils/validator.py +0 -0
  354. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/skypilot_nightly.egg-info/SOURCES.txt +0 -0
  355. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/skypilot_nightly.egg-info/dependency_links.txt +0 -0
  356. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/skypilot_nightly.egg-info/entry_points.txt +0 -0
  357. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/skypilot_nightly.egg-info/requires.txt +0 -0
  358. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/skypilot_nightly.egg-info/top_level.txt +0 -0
  359. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/tests/test_api.py +0 -0
  360. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/tests/test_cli.py +0 -0
  361. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/tests/test_config.py +0 -0
  362. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/tests/test_global_user_state.py +0 -0
  363. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/tests/test_jobs.py +0 -0
  364. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/tests/test_jobs_and_serve.py +0 -0
  365. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/tests/test_list_accelerators.py +0 -0
  366. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/tests/test_optimizer_dryruns.py +0 -0
  367. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/tests/test_optimizer_random_dag.py +0 -0
  368. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/tests/test_serve_autoscaler.py +0 -0
  369. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/tests/test_smoke.py +0 -0
  370. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/tests/test_storage.py +0 -0
  371. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/tests/test_wheels.py +0 -0
  372. {skypilot_nightly-1.0.0.dev20250306 → skypilot_nightly-1.0.0.dev20250308}/tests/test_yaml_parser.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: skypilot-nightly
3
- Version: 1.0.0.dev20250306
3
+ Version: 1.0.0.dev20250308
4
4
  Summary: SkyPilot: An intercloud broker for the clouds
5
5
  Author: SkyPilot Team
6
6
  License: Apache 2.0
@@ -208,12 +208,12 @@ Dynamic: summary
208
208
 
209
209
  SkyPilot is a framework for running AI and batch workloads on any infra, offering unified execution, high cost savings, and high GPU availability.
210
210
 
211
- SkyPilot **abstracts away infra burdens**:
211
+ SkyPilot **abstracts away AI infra burden**:
212
212
  - Launch [clusters](https://docs.skypilot.co/en/latest/examples/interactive-development.html), [jobs](https://docs.skypilot.co/en/latest/examples/managed-jobs.html), and [serving](https://docs.skypilot.co/en/latest/serving/sky-serve.html) on any infra
213
213
  - Easy job management: queue, run, and auto-recover many jobs
214
214
 
215
- SkyPilot **supports multiple clusters, clouds, and hardware** ([the Sky](https://arxiv.org/abs/2205.07147)):
216
- - Bring your reserved GPUs, Kubernetes clusters, or 12+ clouds
215
+ SkyPilot **supports multiple clusters, clouds, and hardware**:
216
+ - Bring reserved GPUs, Kubernetes clusters, or 15+ clouds
217
217
  - [Flexible provisioning](https://docs.skypilot.co/en/latest/examples/auto-failover.html) of GPUs, TPUs, CPUs, with auto-retry
218
218
 
219
219
  SkyPilot **cuts your cloud costs & maximizes GPU availability**:
@@ -235,7 +235,9 @@ pip install "skypilot-nightly[kubernetes,aws,gcp,azure,oci,lambda,runpod,fluidst
235
235
  ```
236
236
 
237
237
 
238
- [Current supported infra](https://docs.skypilot.co/en/latest/getting-started/installation.html) (Kubernetes; AWS, GCP, Azure, OCI, Lambda Cloud, Fluidstack, RunPod, Cudo, Digital Ocean, Paperspace, Cloudflare, Samsung, IBM, Vast.ai, VMware vSphere, Nebius):
238
+ Current supported infra: Kubernetes, AWS, GCP, Azure, OCI, Lambda Cloud, Fluidstack,
239
+ RunPod, Cudo, Digital Ocean, Paperspace, Cloudflare, Samsung, IBM, Vast.ai,
240
+ VMware vSphere, Nebius.
239
241
  <p align="center">
240
242
  <img alt="SkyPilot" src="https://raw.githubusercontent.com/skypilot-org/skypilot/master/docs/source/images/cloud-logos-light.png" width=85%>
241
243
  </p>
@@ -48,12 +48,12 @@
48
48
 
49
49
  SkyPilot is a framework for running AI and batch workloads on any infra, offering unified execution, high cost savings, and high GPU availability.
50
50
 
51
- SkyPilot **abstracts away infra burdens**:
51
+ SkyPilot **abstracts away AI infra burden**:
52
52
  - Launch [clusters](https://docs.skypilot.co/en/latest/examples/interactive-development.html), [jobs](https://docs.skypilot.co/en/latest/examples/managed-jobs.html), and [serving](https://docs.skypilot.co/en/latest/serving/sky-serve.html) on any infra
53
53
  - Easy job management: queue, run, and auto-recover many jobs
54
54
 
55
- SkyPilot **supports multiple clusters, clouds, and hardware** ([the Sky](https://arxiv.org/abs/2205.07147)):
56
- - Bring your reserved GPUs, Kubernetes clusters, or 12+ clouds
55
+ SkyPilot **supports multiple clusters, clouds, and hardware**:
56
+ - Bring reserved GPUs, Kubernetes clusters, or 15+ clouds
57
57
  - [Flexible provisioning](https://docs.skypilot.co/en/latest/examples/auto-failover.html) of GPUs, TPUs, CPUs, with auto-retry
58
58
 
59
59
  SkyPilot **cuts your cloud costs & maximizes GPU availability**:
@@ -75,7 +75,9 @@ pip install "skypilot-nightly[kubernetes,aws,gcp,azure,oci,lambda,runpod,fluidst
75
75
  ```
76
76
 
77
77
 
78
- [Current supported infra](https://docs.skypilot.co/en/latest/getting-started/installation.html) (Kubernetes; AWS, GCP, Azure, OCI, Lambda Cloud, Fluidstack, RunPod, Cudo, Digital Ocean, Paperspace, Cloudflare, Samsung, IBM, Vast.ai, VMware vSphere, Nebius):
78
+ Current supported infra: Kubernetes, AWS, GCP, Azure, OCI, Lambda Cloud, Fluidstack,
79
+ RunPod, Cudo, Digital Ocean, Paperspace, Cloudflare, Samsung, IBM, Vast.ai,
80
+ VMware vSphere, Nebius.
79
81
  <p align="center">
80
82
  <picture>
81
83
  <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/skypilot-org/skypilot/master/docs/source/images/cloud-logos-dark.png">
@@ -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 = 'db832e82e19faa3e428e946c74825a752ebb7402'
8
+ _SKYPILOT_COMMIT_SHA = 'f2c2092f3fc343d59348bf209b3ad0d4d76cea7b'
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.dev20250306'
38
+ __version__ = '1.0.0.dev20250308'
39
39
  __root_dir__ = os.path.dirname(os.path.abspath(__file__))
40
40
 
41
41
 
@@ -17,7 +17,7 @@ import re
17
17
  import shutil
18
18
  import subprocess
19
19
  import tempfile
20
- from typing import Tuple
20
+ from typing import Optional, Tuple
21
21
 
22
22
  import filelock
23
23
  from packaging import version
@@ -149,16 +149,29 @@ def build_sky_wheel() -> Tuple[pathlib.Path, str]:
149
149
  - wheel_hash: The wheel content hash.
150
150
  """
151
151
 
152
- def _get_latest_modification_time(path: pathlib.Path) -> float:
152
+ def _get_latest_modification_time(path: pathlib.Path) -> Optional[float]:
153
+ max_time = -1.
153
154
  if not path.exists():
154
- return -1.
155
- try:
156
- return max(
157
- os.path.getmtime(os.path.join(root, f))
158
- for root, dirs, files in os.walk(path)
159
- for f in (*dirs, *files))
160
- except ValueError:
161
- return -1.
155
+ return max_time
156
+ for root, dirs, files in os.walk(path):
157
+ # Prune __pycache__ directories to prevent walking into them and
158
+ # exclude them from processing
159
+ if '__pycache__' in dirs:
160
+ dirs.remove('__pycache__')
161
+ # Filter out .pyc files
162
+ filtered_files = [f for f in files if not f.endswith('.pyc')]
163
+ # Process remaining directories and files
164
+ for entry in (*dirs, *filtered_files):
165
+ entry_path = os.path.join(root, entry)
166
+ try:
167
+ mtime = os.path.getmtime(entry_path)
168
+ if mtime > max_time:
169
+ max_time = mtime
170
+ except OSError:
171
+ # Handle cases where file might have been deleted after
172
+ # listing
173
+ return None
174
+ return max_time
162
175
 
163
176
  # This lock prevents that the wheel is updated while being copied.
164
177
  # Although the current caller already uses a lock, we still lock it here
@@ -170,10 +183,12 @@ def build_sky_wheel() -> Tuple[pathlib.Path, str]:
170
183
  last_modification_time = _get_latest_modification_time(SKY_PACKAGE_PATH)
171
184
  last_wheel_modification_time = _get_latest_modification_time(WHEEL_DIR)
172
185
 
173
- # Only build wheels if the wheel is outdated or wheel does not exist
174
- # for the requested version.
175
- if (last_wheel_modification_time < last_modification_time) or not any(
176
- WHEEL_DIR.glob(f'**/{_WHEEL_PATTERN}')):
186
+ # Only build wheels if the wheel is outdated, wheel does not exist
187
+ # for the requested version, or files were deleted during checking.
188
+ if ((last_modification_time is None or
189
+ last_wheel_modification_time is None) or
190
+ (last_wheel_modification_time < last_modification_time) or
191
+ not any(WHEEL_DIR.glob(f'**/{_WHEEL_PATTERN}'))):
177
192
  if not WHEEL_DIR.exists():
178
193
  WHEEL_DIR.mkdir(parents=True, exist_ok=True)
179
194
  latest_wheel = _build_sky_wheel()
@@ -157,6 +157,7 @@ def launch(
157
157
  'modified_catalogs':
158
158
  service_catalog_common.get_modified_catalog_file_mounts(),
159
159
  'dashboard_setup_cmd': managed_job_constants.DASHBOARD_SETUP_CMD,
160
+ 'dashboard_user_id': common.SERVER_ID,
160
161
  **controller_utils.shared_controller_vars_to_fill(
161
162
  controller_utils.Controllers.JOBS_CONTROLLER,
162
163
  remote_user_config_path=remote_user_config_path,
@@ -305,10 +306,9 @@ def _maybe_restart_controller(
305
306
  with rich_utils.safe_status(
306
307
  ux_utils.spinner_message('Starting dashboard...')):
307
308
  runner = handle.get_command_runners()[0]
308
- user_hash = common_utils.get_user_hash()
309
309
  runner.run(
310
310
  f'export '
311
- f'{skylet_constants.USER_ID_ENV_VAR}={user_hash!r}; '
311
+ f'{skylet_constants.USER_ID_ENV_VAR}={common.SERVER_ID!r}; '
312
312
  f'{managed_job_constants.DASHBOARD_SETUP_CMD}',
313
313
  stream_logs=True,
314
314
  )
@@ -159,6 +159,9 @@ async def dashboard(request: fastapi.Request,
159
159
  except Exception as e: # pylint: disable=broad-except
160
160
  # We catch all exceptions to gracefully handle unknown
161
161
  # errors and retry or raise an HTTPException to the client.
162
+ # Assume an exception indicates that the dashboard connection
163
+ # is stale - remove it so that a new one is created.
164
+ dashboard_utils.remove_dashboard_session(user_hash)
162
165
  msg = (
163
166
  f'Dashboard connection attempt {attempt + 1} failed with '
164
167
  f'{common_utils.format_exception(e, use_bracket=True)}')
@@ -268,6 +268,12 @@ USER_ID_ENV_VAR = f'{SKYPILOT_ENV_VAR_PREFIX}USER_ID'
268
268
  # runs on a VM launched by SkyPilot will be recognized as the same user.
269
269
  USER_ENV_VAR = f'{SKYPILOT_ENV_VAR_PREFIX}USER'
270
270
 
271
+ # Internal: Env var indicating the system is running with a remote API server.
272
+ # It is used for internal purposes, including the jobs controller to mark
273
+ # clusters as launched with a remote API server.
274
+ USING_REMOTE_API_SERVER_ENV_VAR = (
275
+ f'{SKYPILOT_ENV_VAR_PREFIX}USING_REMOTE_API_SERVER')
276
+
271
277
  # In most clouds, cluster names can only contain lowercase letters, numbers
272
278
  # and hyphens. We use this regex to validate the cluster name.
273
279
  CLUSTER_NAME_VALID_REGEX = '[a-zA-Z]([-_.a-zA-Z0-9]*[a-zA-Z0-9])?'
@@ -39,9 +39,7 @@ setup: |
39
39
  After=network.target
40
40
 
41
41
  [Service]
42
- Environment="PATH={{ sky_python_env_path }}:\$PATH"
43
- Environment="SKYPILOT_USER_ID={{controller_envs.SKYPILOT_USER_ID}}"
44
- Environment="SKYPILOT_USER={{controller_envs.SKYPILOT_USER}}"
42
+ Environment="SKYPILOT_USER_ID={{ dashboard_user_id }}"
45
43
  Restart=always
46
44
  StandardOutput=append:/home/$USER/.sky/job-dashboard.log
47
45
  StandardError=append:/home/$USER/.sky/job-dashboard.log
@@ -51,6 +49,7 @@ setup: |
51
49
  WantedBy=default.target
52
50
  EOF
53
51
 
52
+ export SKYPILOT_USER_ID="{{ dashboard_user_id }}"
54
53
  {{ dashboard_setup_cmd }}
55
54
 
56
55
  run: |
@@ -531,8 +531,8 @@ class SSHCommandRunner(CommandRunner):
531
531
  if port_forward is not None:
532
532
  for local, remote in port_forward:
533
533
  logger.info(
534
- f'Forwarding port {local} to port {remote} on localhost.')
535
- ssh += ['-NL', f'{remote}:localhost:{local}']
534
+ f'Forwarding local port {local} to remote port {remote}.')
535
+ ssh += ['-NL', f'{local}:localhost:{remote}']
536
536
  if self._docker_ssh_proxy_command is not None:
537
537
  docker_ssh_proxy_command = self._docker_ssh_proxy_command(ssh)
538
538
  else:
@@ -291,6 +291,9 @@ def get_current_client_entrypoint(server_entrypoint: str) -> str:
291
291
 
292
292
  def get_using_remote_api_server() -> bool:
293
293
  """Returns whether the API server is remote."""
294
+ if os.getenv(constants.USING_REMOTE_API_SERVER_ENV_VAR) is not None:
295
+ return os.getenv(constants.USING_REMOTE_API_SERVER_ENV_VAR,
296
+ '').lower() in ('true', '1')
294
297
  if _using_remote_api_server is not None:
295
298
  return _using_remote_api_server
296
299
  # This gets the right status for the local client.
@@ -431,6 +431,11 @@ def shared_controller_vars_to_fill(
431
431
  env_options.Options.SKIP_CLOUD_IDENTITY_CHECK.env_key: '1',
432
432
  # Disable minimize logging to get more details on the controller.
433
433
  env_options.Options.MINIMIZE_LOGGING.env_key: '0',
434
+ # Make sure the clusters launched by the controller are marked as
435
+ # launched with a remote API server if the controller is launched
436
+ # with a remote API server.
437
+ constants.USING_REMOTE_API_SERVER_ENV_VAR: str(
438
+ common_utils.get_using_remote_api_server()),
434
439
  })
435
440
  if skypilot_config.loaded():
436
441
  # Only set the SKYPILOT_CONFIG env var if the user has a config file.
@@ -230,15 +230,53 @@ def decode_rich_status(
230
230
  decoding_status = None
231
231
  try:
232
232
  last_line = ''
233
+ # Buffer to store incomplete UTF-8 bytes between chunks
234
+ undecoded_buffer = b''
235
+
233
236
  # Iterate over the response content in chunks. We do not use iter_lines
234
237
  # because it will strip the trailing newline characters, causing the
235
238
  # progress bar ending with `\r` becomes a pyramid.
236
- for encoded_msg in response.iter_content(chunk_size=None):
237
- if encoded_msg is None:
239
+ for chunk in response.iter_content(chunk_size=None):
240
+ if chunk is None:
238
241
  return
239
- encoded_msg = encoded_msg.decode('utf-8')
242
+
243
+ # Append the new chunk to any leftover bytes from previous iteration
244
+ current_bytes = undecoded_buffer + chunk
245
+ undecoded_buffer = b''
246
+
247
+ # Try to decode the combined bytes
248
+ try:
249
+ encoded_msg = current_bytes.decode('utf-8')
250
+ except UnicodeDecodeError as e:
251
+ # Check if this is potentially an incomplete sequence at the end
252
+ if e.start > 0:
253
+ # Decode the valid part
254
+ encoded_msg = current_bytes[:e.start].decode('utf-8')
255
+
256
+ # Check if the remaining bytes are likely a partial char
257
+ # or actually invalid UTF-8
258
+ remaining_bytes = current_bytes[e.start:]
259
+ if len(remaining_bytes) < 4: # Max UTF-8 char is 4 bytes
260
+ # Likely incomplete - save for next chunk
261
+ undecoded_buffer = remaining_bytes
262
+ else:
263
+ # Likely invalid - replace with replacement character
264
+ encoded_msg += remaining_bytes.decode('utf-8',
265
+ errors='replace')
266
+ undecoded_buffer = b''
267
+ else:
268
+ # Error at the very beginning of the buffer - invalid UTF-8
269
+ encoded_msg = current_bytes.decode('utf-8',
270
+ errors='replace')
271
+ undecoded_buffer = b''
272
+
240
273
  lines = encoded_msg.splitlines(keepends=True)
241
274
 
275
+ # Skip processing if lines is empty to avoid IndexError
276
+ if not lines:
277
+ continue
278
+
279
+ # Append any leftover text from previous chunk to first line
242
280
  lines[0] = last_line + lines[0]
243
281
  last_line = lines[-1]
244
282
  # If the last line is not ended with `\r` or `\n` (with ending
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: skypilot-nightly
3
- Version: 1.0.0.dev20250306
3
+ Version: 1.0.0.dev20250308
4
4
  Summary: SkyPilot: An intercloud broker for the clouds
5
5
  Author: SkyPilot Team
6
6
  License: Apache 2.0
@@ -208,12 +208,12 @@ Dynamic: summary
208
208
 
209
209
  SkyPilot is a framework for running AI and batch workloads on any infra, offering unified execution, high cost savings, and high GPU availability.
210
210
 
211
- SkyPilot **abstracts away infra burdens**:
211
+ SkyPilot **abstracts away AI infra burden**:
212
212
  - Launch [clusters](https://docs.skypilot.co/en/latest/examples/interactive-development.html), [jobs](https://docs.skypilot.co/en/latest/examples/managed-jobs.html), and [serving](https://docs.skypilot.co/en/latest/serving/sky-serve.html) on any infra
213
213
  - Easy job management: queue, run, and auto-recover many jobs
214
214
 
215
- SkyPilot **supports multiple clusters, clouds, and hardware** ([the Sky](https://arxiv.org/abs/2205.07147)):
216
- - Bring your reserved GPUs, Kubernetes clusters, or 12+ clouds
215
+ SkyPilot **supports multiple clusters, clouds, and hardware**:
216
+ - Bring reserved GPUs, Kubernetes clusters, or 15+ clouds
217
217
  - [Flexible provisioning](https://docs.skypilot.co/en/latest/examples/auto-failover.html) of GPUs, TPUs, CPUs, with auto-retry
218
218
 
219
219
  SkyPilot **cuts your cloud costs & maximizes GPU availability**:
@@ -235,7 +235,9 @@ pip install "skypilot-nightly[kubernetes,aws,gcp,azure,oci,lambda,runpod,fluidst
235
235
  ```
236
236
 
237
237
 
238
- [Current supported infra](https://docs.skypilot.co/en/latest/getting-started/installation.html) (Kubernetes; AWS, GCP, Azure, OCI, Lambda Cloud, Fluidstack, RunPod, Cudo, Digital Ocean, Paperspace, Cloudflare, Samsung, IBM, Vast.ai, VMware vSphere, Nebius):
238
+ Current supported infra: Kubernetes, AWS, GCP, Azure, OCI, Lambda Cloud, Fluidstack,
239
+ RunPod, Cudo, Digital Ocean, Paperspace, Cloudflare, Samsung, IBM, Vast.ai,
240
+ VMware vSphere, Nebius.
239
241
  <p align="center">
240
242
  <img alt="SkyPilot" src="https://raw.githubusercontent.com/skypilot-org/skypilot/master/docs/source/images/cloud-logos-light.png" width=85%>
241
243
  </p>