skypilot-nightly 1.0.0.dev20251011__tar.gz → 1.0.0.dev20251013__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 (610) hide show
  1. {skypilot_nightly-1.0.0.dev20251011/skypilot_nightly.egg-info → skypilot_nightly-1.0.0.dev20251013}/PKG-INFO +38 -36
  2. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/README.md +3 -2
  3. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/__init__.py +4 -2
  4. skypilot_nightly-1.0.0.dev20251013/sky/adaptors/shadeform.py +89 -0
  5. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/authentication.py +43 -0
  6. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/backends/backend_utils.py +2 -0
  7. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/backends/cloud_vm_ray_backend.py +4 -2
  8. skypilot_nightly-1.0.0.dev20251013/sky/catalog/data_fetchers/fetch_shadeform.py +142 -0
  9. skypilot_nightly-1.0.0.dev20251013/sky/catalog/shadeform_catalog.py +165 -0
  10. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/client/cli/command.py +44 -3
  11. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/client/sdk.py +11 -3
  12. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/__init__.py +2 -0
  13. skypilot_nightly-1.0.0.dev20251013/sky/clouds/shadeform.py +393 -0
  14. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/404.html +1 -1
  15. skypilot_nightly-1.0.0.dev20251011/sky/dashboard/out/_next/static/chunks/webpack-66f23594d38c7f16.js → skypilot_nightly-1.0.0.dev20251013/sky/dashboard/out/_next/static/chunks/webpack-ac3a34c8f9fef041.js +1 -1
  16. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/clusters/[cluster]/[job].html +1 -1
  17. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/clusters/[cluster].html +1 -1
  18. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/clusters.html +1 -1
  19. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/config.html +1 -1
  20. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/index.html +1 -1
  21. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/infra/[context].html +1 -1
  22. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/infra.html +1 -1
  23. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/jobs/[job].html +1 -1
  24. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/jobs/pools/[pool].html +1 -1
  25. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/jobs.html +1 -1
  26. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/users.html +1 -1
  27. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/volumes.html +1 -1
  28. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/workspace/new.html +1 -1
  29. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/workspaces/[name].html +1 -1
  30. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/workspaces.html +1 -1
  31. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/__init__.py +1 -0
  32. skypilot_nightly-1.0.0.dev20251013/sky/provision/shadeform/__init__.py +11 -0
  33. skypilot_nightly-1.0.0.dev20251013/sky/provision/shadeform/config.py +12 -0
  34. skypilot_nightly-1.0.0.dev20251013/sky/provision/shadeform/instance.py +351 -0
  35. skypilot_nightly-1.0.0.dev20251013/sky/provision/shadeform/shadeform_utils.py +83 -0
  36. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/serve/constants.py +0 -3
  37. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/serve/service_spec.py +1 -8
  38. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/server/constants.py +4 -0
  39. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/server/requests/executor.py +22 -2
  40. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/server/requests/payloads.py +2 -0
  41. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/server/requests/requests.py +119 -2
  42. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/server/server.py +17 -6
  43. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/setup_files/dependencies.py +1 -0
  44. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/constants.py +1 -1
  45. skypilot_nightly-1.0.0.dev20251013/sky/templates/shadeform-ray.yml.j2 +72 -0
  46. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/context_utils.py +13 -9
  47. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013/skypilot_nightly.egg-info}/PKG-INFO +38 -36
  48. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/skypilot_nightly.egg-info/SOURCES.txt +12 -3
  49. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/skypilot_nightly.egg-info/requires.txt +34 -32
  50. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/tests/test_optimizer_dryruns.py +4 -4
  51. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/LICENSE +0 -0
  52. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/MANIFEST.in +0 -0
  53. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/pyproject.toml +0 -0
  54. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/setup.cfg +0 -0
  55. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/setup.py +0 -0
  56. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/adaptors/__init__.py +0 -0
  57. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/adaptors/aws.py +0 -0
  58. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/adaptors/azure.py +0 -0
  59. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/adaptors/cloudflare.py +0 -0
  60. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/adaptors/common.py +0 -0
  61. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/adaptors/cudo.py +0 -0
  62. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/adaptors/do.py +0 -0
  63. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/adaptors/docker.py +0 -0
  64. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/adaptors/gcp.py +0 -0
  65. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/adaptors/hyperbolic.py +0 -0
  66. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/adaptors/ibm.py +0 -0
  67. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/adaptors/kubernetes.py +0 -0
  68. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/adaptors/nebius.py +0 -0
  69. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/adaptors/oci.py +0 -0
  70. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/adaptors/primeintellect.py +0 -0
  71. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/adaptors/runpod.py +0 -0
  72. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/adaptors/seeweb.py +0 -0
  73. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/adaptors/vast.py +0 -0
  74. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/adaptors/vsphere.py +0 -0
  75. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/admin_policy.py +0 -0
  76. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/backends/__init__.py +0 -0
  77. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/backends/backend.py +0 -0
  78. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/backends/docker_utils.py +0 -0
  79. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/backends/local_docker_backend.py +0 -0
  80. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/backends/monkey_patches/monkey_patch_ray_up.py +0 -0
  81. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/backends/wheel_utils.py +0 -0
  82. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/__init__.py +0 -0
  83. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/aws_catalog.py +0 -0
  84. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/azure_catalog.py +0 -0
  85. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/common.py +0 -0
  86. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/config.py +0 -0
  87. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/cudo_catalog.py +0 -0
  88. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/data_fetchers/__init__.py +0 -0
  89. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/data_fetchers/analyze.py +0 -0
  90. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/data_fetchers/fetch_aws.py +0 -0
  91. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/data_fetchers/fetch_azure.py +0 -0
  92. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/data_fetchers/fetch_cudo.py +0 -0
  93. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/data_fetchers/fetch_fluidstack.py +0 -0
  94. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/data_fetchers/fetch_gcp.py +0 -0
  95. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/data_fetchers/fetch_hyperbolic.py +0 -0
  96. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/data_fetchers/fetch_ibm.py +0 -0
  97. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/data_fetchers/fetch_lambda_cloud.py +0 -0
  98. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/data_fetchers/fetch_nebius.py +0 -0
  99. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/data_fetchers/fetch_seeweb.py +0 -0
  100. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/data_fetchers/fetch_vast.py +0 -0
  101. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/data_fetchers/fetch_vsphere.py +0 -0
  102. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/do_catalog.py +0 -0
  103. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/fluidstack_catalog.py +0 -0
  104. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/gcp_catalog.py +0 -0
  105. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/hyperbolic_catalog.py +0 -0
  106. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/ibm_catalog.py +0 -0
  107. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/kubernetes_catalog.py +0 -0
  108. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/lambda_catalog.py +0 -0
  109. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/nebius_catalog.py +0 -0
  110. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/oci_catalog.py +0 -0
  111. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/paperspace_catalog.py +0 -0
  112. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/primeintellect_catalog.py +0 -0
  113. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/runpod_catalog.py +0 -0
  114. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/scp_catalog.py +0 -0
  115. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/seeweb_catalog.py +0 -0
  116. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/ssh_catalog.py +0 -0
  117. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/vast_catalog.py +0 -0
  118. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/catalog/vsphere_catalog.py +0 -0
  119. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/check.py +0 -0
  120. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/cli.py +0 -0
  121. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/client/__init__.py +0 -0
  122. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/client/cli/__init__.py +0 -0
  123. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/client/cli/deprecation_utils.py +0 -0
  124. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/client/cli/flags.py +0 -0
  125. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/client/cli/table_utils.py +0 -0
  126. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/client/common.py +0 -0
  127. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/client/oauth.py +0 -0
  128. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/client/sdk_async.py +0 -0
  129. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/client/service_account_auth.py +0 -0
  130. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/cloud_stores.py +0 -0
  131. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/aws.py +0 -0
  132. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/azure.py +0 -0
  133. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/cloud.py +0 -0
  134. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/cudo.py +0 -0
  135. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/do.py +0 -0
  136. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/fluidstack.py +0 -0
  137. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/gcp.py +0 -0
  138. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/hyperbolic.py +0 -0
  139. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/ibm.py +0 -0
  140. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/kubernetes.py +0 -0
  141. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/lambda_cloud.py +0 -0
  142. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/nebius.py +0 -0
  143. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/oci.py +0 -0
  144. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/paperspace.py +0 -0
  145. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/primeintellect.py +0 -0
  146. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/runpod.py +0 -0
  147. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/scp.py +0 -0
  148. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/seeweb.py +0 -0
  149. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/ssh.py +0 -0
  150. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/utils/__init__.py +0 -0
  151. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/utils/aws_utils.py +0 -0
  152. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/utils/azure_utils.py +0 -0
  153. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/utils/gcp_utils.py +0 -0
  154. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/utils/oci_utils.py +0 -0
  155. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/utils/scp_utils.py +0 -0
  156. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/vast.py +0 -0
  157. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/clouds/vsphere.py +0 -0
  158. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/core.py +0 -0
  159. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dag.py +0 -0
  160. {skypilot_nightly-1.0.0.dev20251011/sky/dashboard/out/_next/static/Xs6jdcfyNaUuBO8jmzU9_ → skypilot_nightly-1.0.0.dev20251013/sky/dashboard/out/_next/static/MtlDUf-nH1hhcy7xwbCj3}/_buildManifest.js +0 -0
  161. {skypilot_nightly-1.0.0.dev20251011/sky/dashboard/out/_next/static/Xs6jdcfyNaUuBO8jmzU9_ → skypilot_nightly-1.0.0.dev20251013/sky/dashboard/out/_next/static/MtlDUf-nH1hhcy7xwbCj3}/_ssgManifest.js +0 -0
  162. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/1121-d0782b9251f0fcd3.js +0 -0
  163. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/1141-3b40c39626f99c89.js +0 -0
  164. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/1272-1ef0bf0237faccdb.js +0 -0
  165. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/1871-49141c317f3a9020.js +0 -0
  166. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/2350.fab69e61bac57b23.js +0 -0
  167. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/2369.fc20f0c2c8ed9fe7.js +0 -0
  168. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/2755.97300e1362fe7c98.js +0 -0
  169. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/3015-7e0e8f06bb2f881c.js +0 -0
  170. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/3294.1fafbf42b3bcebff.js +0 -0
  171. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/3785.a19328ba41517b8b.js +0 -0
  172. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/3850-ff4a9a69d978632b.js +0 -0
  173. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/3937.210053269f121201.js +0 -0
  174. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/4725.10f7a9a5d3ea8208.js +0 -0
  175. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/4937.a2baa2df5572a276.js +0 -0
  176. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/5739-d67458fcb1386c92.js +0 -0
  177. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/6130-2be46d70a38f1e82.js +0 -0
  178. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/6135-4b4d5e824b7f9d3c.js +0 -0
  179. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/616-3d59f75e2ccf9321.js +0 -0
  180. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/6212-7bd06f60ba693125.js +0 -0
  181. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/6601-06114c982db410b6.js +0 -0
  182. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/6856-5fdc9b851a18acdb.js +0 -0
  183. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/6989-01359c57e018caa4.js +0 -0
  184. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/6990-f6818c84ed8f1c86.js +0 -0
  185. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/7359-c8d04e06886000b3.js +0 -0
  186. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/7411-b15471acd2cba716.js +0 -0
  187. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/8640.5b9475a2d18c5416.js +0 -0
  188. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/8969-66237729cdf9749e.js +0 -0
  189. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/9025.c12318fb6a1a9093.js +0 -0
  190. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/9360.71e83b2ddc844ec2.js +0 -0
  191. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/9847.3aaca6bb33455140.js +0 -0
  192. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/fd9d1056-86323a29a8f7e46a.js +0 -0
  193. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/framework-cf60a09ccd051a10.js +0 -0
  194. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/main-app-587214043926b3cc.js +0 -0
  195. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/main-f15ccb73239a3bf1.js +0 -0
  196. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/pages/_app-ce361c6959bc2001.js +0 -0
  197. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/pages/_error-c66a4e8afc46f17b.js +0 -0
  198. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-8f058b0346db2aff.js +0 -0
  199. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-477555ab7c0b13d8.js +0 -0
  200. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/pages/clusters-2f61f65487f6d8ff.js +0 -0
  201. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/pages/config-dfb9bf07b13045f4.js +0 -0
  202. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/pages/index-444f1804401f04ea.js +0 -0
  203. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/pages/infra/[context]-553b8b5cb65e100b.js +0 -0
  204. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/pages/infra-910a22500c50596f.js +0 -0
  205. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-e5c9ce6a24fc0de4.js +0 -0
  206. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/pages/jobs/pools/[pool]-bc979970c247d8f3.js +0 -0
  207. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/pages/jobs-a35a9dc3c5ccd657.js +0 -0
  208. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/pages/users-98d2ed979084162a.js +0 -0
  209. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/pages/volumes-835d14ba94808f79.js +0 -0
  210. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/pages/workspace/new-3f88a1c7e86a3f86.js +0 -0
  211. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/pages/workspaces/[name]-e8688c35c06f0ac5.js +0 -0
  212. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/pages/workspaces-69c80d677d3c2949.js +0 -0
  213. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js +0 -0
  214. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/_next/static/css/4614e06482d7309e.css +0 -0
  215. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/favicon.ico +0 -0
  216. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/skypilot.svg +0 -0
  217. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/dashboard/out/videos/cursor-small.mp4 +0 -0
  218. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/data/__init__.py +0 -0
  219. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/data/data_transfer.py +0 -0
  220. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/data/data_utils.py +0 -0
  221. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/data/mounting_utils.py +0 -0
  222. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/data/storage.py +0 -0
  223. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/data/storage_utils.py +0 -0
  224. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/exceptions.py +0 -0
  225. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/execution.py +0 -0
  226. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/global_user_state.py +0 -0
  227. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/jobs/__init__.py +0 -0
  228. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/jobs/client/__init__.py +0 -0
  229. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/jobs/client/sdk.py +0 -0
  230. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/jobs/client/sdk_async.py +0 -0
  231. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/jobs/constants.py +0 -0
  232. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/jobs/controller.py +0 -0
  233. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/jobs/recovery_strategy.py +0 -0
  234. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/jobs/scheduler.py +0 -0
  235. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/jobs/server/__init__.py +0 -0
  236. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/jobs/server/core.py +0 -0
  237. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/jobs/server/server.py +0 -0
  238. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/jobs/server/utils.py +0 -0
  239. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/jobs/state.py +0 -0
  240. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/jobs/utils.py +0 -0
  241. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/logs/__init__.py +0 -0
  242. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/logs/agent.py +0 -0
  243. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/logs/aws.py +0 -0
  244. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/logs/gcp.py +0 -0
  245. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/metrics/__init__.py +0 -0
  246. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/metrics/utils.py +0 -0
  247. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/models.py +0 -0
  248. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/optimizer.py +0 -0
  249. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/aws/__init__.py +0 -0
  250. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/aws/config.py +0 -0
  251. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/aws/instance.py +0 -0
  252. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/aws/utils.py +0 -0
  253. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/azure/__init__.py +0 -0
  254. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/azure/azure-config-template.json +0 -0
  255. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/azure/config.py +0 -0
  256. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/azure/instance.py +0 -0
  257. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/common.py +0 -0
  258. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/constants.py +0 -0
  259. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/cudo/__init__.py +0 -0
  260. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/cudo/config.py +0 -0
  261. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/cudo/cudo_machine_type.py +0 -0
  262. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/cudo/cudo_utils.py +0 -0
  263. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/cudo/cudo_wrapper.py +0 -0
  264. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/cudo/instance.py +0 -0
  265. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/do/__init__.py +0 -0
  266. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/do/config.py +0 -0
  267. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/do/constants.py +0 -0
  268. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/do/instance.py +0 -0
  269. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/do/utils.py +0 -0
  270. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/docker_utils.py +0 -0
  271. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/fluidstack/__init__.py +0 -0
  272. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/fluidstack/config.py +0 -0
  273. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/fluidstack/fluidstack_utils.py +0 -0
  274. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/fluidstack/instance.py +0 -0
  275. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/gcp/__init__.py +0 -0
  276. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/gcp/config.py +0 -0
  277. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/gcp/constants.py +0 -0
  278. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/gcp/instance.py +0 -0
  279. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/gcp/instance_utils.py +0 -0
  280. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/gcp/mig_utils.py +0 -0
  281. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/gcp/volume_utils.py +0 -0
  282. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/hyperbolic/__init__.py +0 -0
  283. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/hyperbolic/config.py +0 -0
  284. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/hyperbolic/instance.py +0 -0
  285. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/hyperbolic/utils.py +0 -0
  286. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/instance_setup.py +0 -0
  287. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/kubernetes/__init__.py +0 -0
  288. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/kubernetes/config.py +0 -0
  289. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/kubernetes/constants.py +0 -0
  290. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/kubernetes/instance.py +0 -0
  291. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/kubernetes/manifests/fusermount-server-daemonset.yaml +0 -0
  292. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/kubernetes/network.py +0 -0
  293. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/kubernetes/network_utils.py +0 -0
  294. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/kubernetes/utils.py +0 -0
  295. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/kubernetes/volume.py +0 -0
  296. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/lambda_cloud/__init__.py +0 -0
  297. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/lambda_cloud/config.py +0 -0
  298. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/lambda_cloud/instance.py +0 -0
  299. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/lambda_cloud/lambda_utils.py +0 -0
  300. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/logging.py +0 -0
  301. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/metadata_utils.py +0 -0
  302. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/nebius/__init__.py +0 -0
  303. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/nebius/config.py +0 -0
  304. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/nebius/constants.py +0 -0
  305. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/nebius/instance.py +0 -0
  306. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/nebius/utils.py +0 -0
  307. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/oci/__init__.py +0 -0
  308. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/oci/config.py +0 -0
  309. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/oci/instance.py +0 -0
  310. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/oci/query_utils.py +0 -0
  311. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/paperspace/__init__.py +0 -0
  312. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/paperspace/config.py +0 -0
  313. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/paperspace/constants.py +0 -0
  314. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/paperspace/instance.py +0 -0
  315. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/paperspace/utils.py +0 -0
  316. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/primeintellect/__init__.py +0 -0
  317. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/primeintellect/config.py +0 -0
  318. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/primeintellect/instance.py +0 -0
  319. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/primeintellect/utils.py +0 -0
  320. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/provisioner.py +0 -0
  321. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/runpod/__init__.py +0 -0
  322. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/runpod/api/__init__.py +0 -0
  323. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/runpod/api/commands.py +0 -0
  324. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/runpod/api/pods.py +0 -0
  325. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/runpod/config.py +0 -0
  326. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/runpod/instance.py +0 -0
  327. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/runpod/utils.py +0 -0
  328. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/runpod/volume.py +0 -0
  329. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/scp/__init__.py +0 -0
  330. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/scp/config.py +0 -0
  331. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/scp/instance.py +0 -0
  332. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/seeweb/__init__.py +0 -0
  333. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/seeweb/config.py +0 -0
  334. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/seeweb/instance.py +0 -0
  335. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/ssh/__init__.py +0 -0
  336. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/vast/__init__.py +0 -0
  337. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/vast/config.py +0 -0
  338. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/vast/instance.py +0 -0
  339. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/vast/utils.py +0 -0
  340. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/vsphere/__init__.py +0 -0
  341. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/vsphere/common/__init__.py +0 -0
  342. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/vsphere/common/cls_api_client.py +0 -0
  343. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/vsphere/common/cls_api_helper.py +0 -0
  344. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/vsphere/common/custom_script.py +0 -0
  345. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/vsphere/common/id_generator.py +0 -0
  346. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/vsphere/common/metadata_utils.py +0 -0
  347. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/vsphere/common/service_manager.py +0 -0
  348. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/vsphere/common/service_manager_factory.py +0 -0
  349. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/vsphere/common/ssl_helper.py +0 -0
  350. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/vsphere/common/vapiconnect.py +0 -0
  351. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/vsphere/common/vim_utils.py +0 -0
  352. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/vsphere/config.py +0 -0
  353. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/vsphere/instance.py +0 -0
  354. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/provision/vsphere/vsphere_utils.py +0 -0
  355. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/py.typed +0 -0
  356. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/resources.py +0 -0
  357. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/__init__.py +0 -0
  358. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/api/__init__.py +0 -0
  359. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/api/responses.py +0 -0
  360. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/db/README +0 -0
  361. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/db/env.py +0 -0
  362. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/db/global_user_state/001_initial_schema.py +0 -0
  363. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/db/global_user_state/002_add_workspace_to_cluster_history.py +0 -0
  364. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/db/global_user_state/003_fix_initial_revision.py +0 -0
  365. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/db/global_user_state/004_is_managed.py +0 -0
  366. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/db/global_user_state/005_cluster_event.py +0 -0
  367. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/db/global_user_state/006_provision_log.py +0 -0
  368. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/db/global_user_state/007_cluster_event_request_id.py +0 -0
  369. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/db/global_user_state/008_skylet_ssh_tunnel_metadata.py +0 -0
  370. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/db/global_user_state/009_last_activity_and_launched_at.py +0 -0
  371. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/db/global_user_state/010_save_ssh_key.py +0 -0
  372. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/db/script.py.mako +0 -0
  373. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/db/serve_state/001_initial_schema.py +0 -0
  374. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/db/spot_jobs/001_initial_schema.py +0 -0
  375. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/db/spot_jobs/002_cluster_pool.py +0 -0
  376. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/db/spot_jobs/003_pool_hash.py +0 -0
  377. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/generated/__init__.py +0 -0
  378. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/generated/autostopv1_pb2.py +0 -0
  379. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/generated/autostopv1_pb2.pyi +0 -0
  380. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/generated/autostopv1_pb2_grpc.py +0 -0
  381. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/generated/jobsv1_pb2.py +0 -0
  382. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/generated/jobsv1_pb2.pyi +0 -0
  383. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/generated/jobsv1_pb2_grpc.py +0 -0
  384. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/generated/managed_jobsv1_pb2.py +0 -0
  385. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/generated/managed_jobsv1_pb2.pyi +0 -0
  386. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/generated/managed_jobsv1_pb2_grpc.py +0 -0
  387. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/generated/servev1_pb2.py +0 -0
  388. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/generated/servev1_pb2.pyi +0 -0
  389. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/schemas/generated/servev1_pb2_grpc.py +0 -0
  390. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/serve/__init__.py +0 -0
  391. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/serve/autoscalers.py +0 -0
  392. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/serve/client/__init__.py +0 -0
  393. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/serve/client/impl.py +0 -0
  394. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/serve/client/sdk.py +0 -0
  395. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/serve/client/sdk_async.py +0 -0
  396. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/serve/controller.py +0 -0
  397. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/serve/load_balancer.py +0 -0
  398. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/serve/load_balancing_policies.py +0 -0
  399. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/serve/replica_managers.py +0 -0
  400. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/serve/serve_rpc_utils.py +0 -0
  401. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/serve/serve_state.py +0 -0
  402. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/serve/serve_utils.py +0 -0
  403. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/serve/server/__init__.py +0 -0
  404. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/serve/server/core.py +0 -0
  405. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/serve/server/impl.py +0 -0
  406. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/serve/server/server.py +0 -0
  407. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/serve/service.py +0 -0
  408. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/serve/spot_placer.py +0 -0
  409. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/server/__init__.py +0 -0
  410. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/server/auth/__init__.py +0 -0
  411. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/server/auth/authn.py +0 -0
  412. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/server/auth/loopback.py +0 -0
  413. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/server/auth/oauth2_proxy.py +0 -0
  414. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/server/common.py +0 -0
  415. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/server/config.py +0 -0
  416. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/server/daemons.py +0 -0
  417. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/server/html/log.html +0 -0
  418. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/server/html/token_page.html +0 -0
  419. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/server/metrics.py +0 -0
  420. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/server/requests/__init__.py +0 -0
  421. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/server/requests/event_loop.py +0 -0
  422. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/server/requests/preconditions.py +0 -0
  423. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/server/requests/process.py +0 -0
  424. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/server/requests/queues/__init__.py +0 -0
  425. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/server/requests/queues/local_queue.py +0 -0
  426. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/server/requests/queues/mp_queue.py +0 -0
  427. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/server/requests/serializers/__init__.py +0 -0
  428. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/server/requests/serializers/decoders.py +0 -0
  429. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/server/requests/serializers/encoders.py +0 -0
  430. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/server/rest.py +0 -0
  431. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/server/state.py +0 -0
  432. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/server/stream_utils.py +0 -0
  433. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/server/uvicorn.py +0 -0
  434. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/server/versions.py +0 -0
  435. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/setup_files/MANIFEST.in +0 -0
  436. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/setup_files/alembic.ini +0 -0
  437. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/setup_files/setup.py +0 -0
  438. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/sky_logging.py +0 -0
  439. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/LICENSE +0 -0
  440. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/__init__.py +0 -0
  441. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/attempt_skylet.py +0 -0
  442. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/autostop_lib.py +0 -0
  443. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/configs.py +0 -0
  444. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/events.py +0 -0
  445. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/job_lib.py +0 -0
  446. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/log_lib.py +0 -0
  447. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/log_lib.pyi +0 -0
  448. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/providers/__init__.py +0 -0
  449. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/providers/command_runner.py +0 -0
  450. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/providers/ibm/__init__.py +0 -0
  451. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/providers/ibm/node_provider.py +0 -0
  452. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/providers/ibm/utils.py +0 -0
  453. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/providers/ibm/vpc_provider.py +0 -0
  454. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/ray_patches/__init__.py +0 -0
  455. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/ray_patches/autoscaler.py.diff +0 -0
  456. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/ray_patches/autoscaler.py.patch +0 -0
  457. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/ray_patches/cli.py.diff +0 -0
  458. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/ray_patches/cli.py.patch +0 -0
  459. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/ray_patches/command_runner.py.diff +0 -0
  460. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/ray_patches/command_runner.py.patch +0 -0
  461. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/ray_patches/log_monitor.py.diff +0 -0
  462. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/ray_patches/log_monitor.py.patch +0 -0
  463. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/ray_patches/resource_demand_scheduler.py.diff +0 -0
  464. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/ray_patches/resource_demand_scheduler.py.patch +0 -0
  465. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/ray_patches/updater.py.diff +0 -0
  466. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/ray_patches/updater.py.patch +0 -0
  467. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/ray_patches/worker.py.diff +0 -0
  468. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/ray_patches/worker.py.patch +0 -0
  469. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/services.py +0 -0
  470. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/skylet.py +0 -0
  471. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/skylet/subprocess_daemon.py +0 -0
  472. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/skypilot_config.py +0 -0
  473. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/ssh_node_pools/__init__.py +0 -0
  474. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/ssh_node_pools/core.py +0 -0
  475. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/ssh_node_pools/server.py +0 -0
  476. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/task.py +0 -0
  477. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/aws-ray.yml.j2 +0 -0
  478. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/azure-ray.yml.j2 +0 -0
  479. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/cudo-ray.yml.j2 +0 -0
  480. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/do-ray.yml.j2 +0 -0
  481. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/fluidstack-ray.yml.j2 +0 -0
  482. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/gcp-ray.yml.j2 +0 -0
  483. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/hyperbolic-ray.yml.j2 +0 -0
  484. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/ibm-ray.yml.j2 +0 -0
  485. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/jobs-controller.yaml.j2 +0 -0
  486. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/kubernetes-ingress.yml.j2 +0 -0
  487. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/kubernetes-loadbalancer.yml.j2 +0 -0
  488. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/kubernetes-port-forward-proxy-command.sh +0 -0
  489. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/kubernetes-ray.yml.j2 +0 -0
  490. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/lambda-ray.yml.j2 +0 -0
  491. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/local-ray.yml.j2 +0 -0
  492. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/nebius-ray.yml.j2 +0 -0
  493. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/oci-ray.yml.j2 +0 -0
  494. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/paperspace-ray.yml.j2 +0 -0
  495. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/primeintellect-ray.yml.j2 +0 -0
  496. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/runpod-ray.yml.j2 +0 -0
  497. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/scp-ray.yml.j2 +0 -0
  498. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/seeweb-ray.yml.j2 +0 -0
  499. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/sky-serve-controller.yaml.j2 +0 -0
  500. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/skypilot-server-kubernetes-proxy.sh +0 -0
  501. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/vast-ray.yml.j2 +0 -0
  502. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/vsphere-ray.yml.j2 +0 -0
  503. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/templates/websocket_proxy.py +0 -0
  504. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/usage/__init__.py +0 -0
  505. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/usage/constants.py +0 -0
  506. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/usage/usage_lib.py +0 -0
  507. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/users/__init__.py +0 -0
  508. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/users/model.conf +0 -0
  509. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/users/permission.py +0 -0
  510. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/users/rbac.py +0 -0
  511. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/users/server.py +0 -0
  512. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/users/token_service.py +0 -0
  513. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/__init__.py +0 -0
  514. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/accelerator_registry.py +0 -0
  515. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/admin_policy_utils.py +0 -0
  516. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/annotations.py +0 -0
  517. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/atomic.py +0 -0
  518. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/aws/__init__.py +0 -0
  519. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/aws/get_default_security_group.py +0 -0
  520. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/benchmark_utils.py +0 -0
  521. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/cli_utils/__init__.py +0 -0
  522. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/cli_utils/status_utils.py +0 -0
  523. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/cluster_utils.py +0 -0
  524. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/command_runner.py +0 -0
  525. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/command_runner.pyi +0 -0
  526. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/common.py +0 -0
  527. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/common_utils.py +0 -0
  528. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/config_utils.py +0 -0
  529. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/context.py +0 -0
  530. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/control_master_utils.py +0 -0
  531. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/controller_utils.py +0 -0
  532. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/dag_utils.py +0 -0
  533. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/db/__init__.py +0 -0
  534. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/db/db_utils.py +0 -0
  535. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/db/migration_utils.py +0 -0
  536. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/directory_utils.py +0 -0
  537. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/env_options.py +0 -0
  538. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/git.py +0 -0
  539. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/git_clone.sh +0 -0
  540. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/infra_utils.py +0 -0
  541. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/kubernetes/__init__.py +0 -0
  542. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/kubernetes/cleanup-tunnel.sh +0 -0
  543. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/kubernetes/config_map_utils.py +0 -0
  544. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/kubernetes/create_cluster.sh +0 -0
  545. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/kubernetes/delete_cluster.sh +0 -0
  546. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/kubernetes/deploy_remote_cluster.py +0 -0
  547. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/kubernetes/exec_kubeconfig_converter.py +0 -0
  548. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/kubernetes/generate_kind_config.py +0 -0
  549. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/kubernetes/generate_kubeconfig.sh +0 -0
  550. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/kubernetes/gpu_labeler.py +0 -0
  551. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/kubernetes/k8s_gpu_labeler_job.yaml +0 -0
  552. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml +0 -0
  553. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/kubernetes/kubernetes_deploy_utils.py +0 -0
  554. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/kubernetes/rsync_helper.sh +0 -0
  555. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/kubernetes/ssh-tunnel.sh +0 -0
  556. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/kubernetes/ssh_utils.py +0 -0
  557. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/kubernetes_enums.py +0 -0
  558. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/lock_events.py +0 -0
  559. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/locks.py +0 -0
  560. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/log_utils.py +0 -0
  561. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/message_utils.py +0 -0
  562. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/perf_utils.py +0 -0
  563. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/registry.py +0 -0
  564. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/resource_checker.py +0 -0
  565. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/resources_utils.py +0 -0
  566. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/rich_console_utils.py +0 -0
  567. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/rich_utils.py +0 -0
  568. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/schemas.py +0 -0
  569. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/serialize_utils.py +0 -0
  570. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/status_lib.py +0 -0
  571. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/subprocess_utils.py +0 -0
  572. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/tempstore.py +0 -0
  573. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/timeline.py +0 -0
  574. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/ux_utils.py +0 -0
  575. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/validator.py +0 -0
  576. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/volume.py +0 -0
  577. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/utils/yaml_utils.py +0 -0
  578. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/volumes/__init__.py +0 -0
  579. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/volumes/client/__init__.py +0 -0
  580. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/volumes/client/sdk.py +0 -0
  581. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/volumes/server/__init__.py +0 -0
  582. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/volumes/server/core.py +0 -0
  583. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/volumes/server/server.py +0 -0
  584. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/volumes/volume.py +0 -0
  585. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/workspaces/__init__.py +0 -0
  586. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/workspaces/core.py +0 -0
  587. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/workspaces/server.py +0 -0
  588. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/sky/workspaces/utils.py +0 -0
  589. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/skypilot_nightly.egg-info/dependency_links.txt +0 -0
  590. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/skypilot_nightly.egg-info/entry_points.txt +0 -0
  591. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/skypilot_nightly.egg-info/top_level.txt +0 -0
  592. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/tests/test_api.py +0 -0
  593. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/tests/test_api_compatibility.py +0 -0
  594. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/tests/test_cli.py +0 -0
  595. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/tests/test_config.py +0 -0
  596. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/tests/test_db_utils.py +0 -0
  597. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/tests/test_failover.py +0 -0
  598. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/tests/test_global_user_state.py +0 -0
  599. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/tests/test_jobs.py +0 -0
  600. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/tests/test_jobs_and_serve.py +0 -0
  601. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/tests/test_jobs_state_async_vs_sync.py +0 -0
  602. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/tests/test_list_accelerators.py +0 -0
  603. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/tests/test_no_parellel.py +0 -0
  604. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/tests/test_optimizer_random_dag.py +0 -0
  605. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/tests/test_serve_autoscaler.py +0 -0
  606. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/tests/test_smoke.py +0 -0
  607. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/tests/test_ssh_proxy_lag.py +0 -0
  608. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/tests/test_storage.py +0 -0
  609. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/tests/test_wheels.py +0 -0
  610. {skypilot_nightly-1.0.0.dev20251011 → skypilot_nightly-1.0.0.dev20251013}/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.dev20251011
3
+ Version: 1.0.0.dev20251013
4
4
  Summary: SkyPilot: Run AI on Any Infra — Unified, Faster, Cheaper.
5
5
  Author: SkyPilot Team
6
6
  License: Apache 2.0
@@ -154,52 +154,53 @@ Requires-Dist: grpcio>=1.63.0; extra == "server"
154
154
  Requires-Dist: protobuf<7.0.0,>=5.26.1; extra == "server"
155
155
  Requires-Dist: aiosqlite; extra == "server"
156
156
  Requires-Dist: greenlet; extra == "server"
157
+ Provides-Extra: shadeform
157
158
  Provides-Extra: all
159
+ Requires-Dist: boto3>=1.26.1; extra == "all"
160
+ Requires-Dist: ecsapi>=0.2.0; extra == "all"
161
+ Requires-Dist: nebius>=0.2.47; extra == "all"
162
+ Requires-Dist: aiohttp; extra == "all"
163
+ Requires-Dist: cudo-compute>=0.1.10; extra == "all"
164
+ Requires-Dist: vastai-sdk>=0.1.12; extra == "all"
158
165
  Requires-Dist: grpcio>=1.63.0; extra == "all"
159
166
  Requires-Dist: colorama<0.4.5; extra == "all"
160
- Requires-Dist: ibm-vpc; extra == "all"
161
- Requires-Dist: ibm-cloud-sdk-core; extra == "all"
162
- Requires-Dist: google-cloud-storage; extra == "all"
163
- Requires-Dist: botocore>=1.29.10; extra == "all"
164
- Requires-Dist: casbin; extra == "all"
165
- Requires-Dist: runpod>=1.6.1; extra == "all"
166
- Requires-Dist: pyopenssl<24.3.0,>=23.2.0; extra == "all"
167
- Requires-Dist: azure-storage-blob>=12.23.1; extra == "all"
168
- Requires-Dist: azure-identity>=1.19.0; extra == "all"
169
- Requires-Dist: azure-core>=1.31.0; extra == "all"
170
- Requires-Dist: sqlalchemy_adapter; extra == "all"
171
167
  Requires-Dist: anyio; extra == "all"
172
- Requires-Dist: google-api-python-client>=2.69.0; extra == "all"
173
- Requires-Dist: oci; extra == "all"
174
168
  Requires-Dist: passlib; extra == "all"
175
169
  Requires-Dist: azure-mgmt-network>=27.0.0; extra == "all"
176
- Requires-Dist: boto3>=1.26.1; extra == "all"
177
- Requires-Dist: greenlet; extra == "all"
170
+ Requires-Dist: pyjwt; extra == "all"
171
+ Requires-Dist: python-dateutil; extra == "all"
172
+ Requires-Dist: runpod>=1.6.1; extra == "all"
173
+ Requires-Dist: websockets; extra == "all"
174
+ Requires-Dist: tomli; python_version < "3.11" and extra == "all"
175
+ Requires-Dist: pydo>=0.3.0; extra == "all"
176
+ Requires-Dist: ibm-platform-services>=0.48.0; extra == "all"
178
177
  Requires-Dist: ibm-cos-sdk; extra == "all"
179
- Requires-Dist: aiohttp; extra == "all"
180
- Requires-Dist: aiosqlite; extra == "all"
181
- Requires-Dist: awscli>=1.27.10; extra == "all"
182
178
  Requires-Dist: pyvmomi==8.0.1.0.2; extra == "all"
183
- Requires-Dist: protobuf<7.0.0,>=5.26.1; extra == "all"
184
- Requires-Dist: kubernetes!=32.0.0,>=20.0.0; extra == "all"
185
- Requires-Dist: msrestazure; extra == "all"
179
+ Requires-Dist: oci; extra == "all"
180
+ Requires-Dist: aiosqlite; extra == "all"
181
+ Requires-Dist: google-cloud-storage; extra == "all"
186
182
  Requires-Dist: docker; extra == "all"
187
- Requires-Dist: nebius>=0.2.47; extra == "all"
188
- Requires-Dist: vastai-sdk>=0.1.12; extra == "all"
189
- Requires-Dist: pydo>=0.3.0; extra == "all"
190
- Requires-Dist: ecsapi>=0.2.0; extra == "all"
183
+ Requires-Dist: casbin; extra == "all"
184
+ Requires-Dist: ibm-cloud-sdk-core; extra == "all"
185
+ Requires-Dist: msgraph-sdk; extra == "all"
191
186
  Requires-Dist: azure-common; extra == "all"
187
+ Requires-Dist: botocore>=1.29.10; extra == "all"
188
+ Requires-Dist: ibm-vpc; extra == "all"
189
+ Requires-Dist: ray[default]>=2.6.1; extra == "all"
190
+ Requires-Dist: azure-identity>=1.19.0; extra == "all"
191
+ Requires-Dist: sqlalchemy_adapter; extra == "all"
192
+ Requires-Dist: greenlet; extra == "all"
193
+ Requires-Dist: awscli>=1.27.10; extra == "all"
194
+ Requires-Dist: azure-core>=1.31.0; extra == "all"
192
195
  Requires-Dist: azure-mgmt-compute>=33.0.0; extra == "all"
196
+ Requires-Dist: azure-storage-blob>=12.23.1; extra == "all"
197
+ Requires-Dist: pyopenssl<24.3.0,>=23.2.0; extra == "all"
193
198
  Requires-Dist: azure-core>=1.24.0; extra == "all"
194
- Requires-Dist: cudo-compute>=0.1.10; extra == "all"
199
+ Requires-Dist: kubernetes!=32.0.0,>=20.0.0; extra == "all"
195
200
  Requires-Dist: azure-cli>=2.65.0; extra == "all"
196
- Requires-Dist: ray[default]>=2.6.1; extra == "all"
197
- Requires-Dist: ibm-platform-services>=0.48.0; extra == "all"
198
- Requires-Dist: msgraph-sdk; extra == "all"
199
- Requires-Dist: websockets; extra == "all"
200
- Requires-Dist: python-dateutil; extra == "all"
201
- Requires-Dist: tomli; python_version < "3.11" and extra == "all"
202
- Requires-Dist: pyjwt; extra == "all"
201
+ Requires-Dist: protobuf<7.0.0,>=5.26.1; extra == "all"
202
+ Requires-Dist: msrestazure; extra == "all"
203
+ Requires-Dist: google-api-python-client>=2.69.0; extra == "all"
203
204
  Dynamic: author
204
205
  Dynamic: classifier
205
206
  Dynamic: description
@@ -249,10 +250,11 @@ Dynamic: summary
249
250
  ----
250
251
 
251
252
  :fire: *News* :fire:
253
+ - [Oct 2025] Run large-scale **LLM training with TorchTitan** on any AI infra: [**example**](./llm/torchtitan/)
254
+ - [Sep 2025] Scaling AI infrastructure at Abridge - **10x faster development** with SkyPilot: [**blog**](https://blog.skypilot.co/abridge/)
255
+ - [Sep 2025] Network and Storage Benchmarks for LLM training on the cloud: [**blog**](https://maknee.github.io/blog/2025/Network-And-Storage-Training-Skypilot/)
252
256
  - [Aug 2025] Serve and finetune **OpenAI GPT-OSS models** (gpt-oss-120b, gpt-oss-20b) with one command on any infra: [**serve**](./llm/gpt-oss/) + [**LoRA and full finetuning**](./llm/gpt-oss-finetuning/)
253
- - [Jul 2025] Run large-scale **LLM training with TorchTitan** on any cloud: [**example**](./llm/torchtitan/)
254
257
  - [Jul 2025] Run distributed **RL training for LLMs** with Verl (PPO, GRPO) on any cloud: [**example**](./llm/verl/)
255
- - [Jul 2025] 🎉 SkyPilot v0.10.0 released! [**blog post**](https://blog.skypilot.co/announcing-skypilot-0.10.0/), [**release notes**](https://github.com/skypilot-org/skypilot/releases/tag/v0.10.0)
256
258
  - [Jul 2025] Finetune **Llama4** on any distributed cluster/cloud: [**example**](./llm/llama-4-finetuning/)
257
259
  - [Jul 2025] Two-part blog series, `The Evolution of AI Job Orchestration`: (1) [Running AI jobs on GPU Neoclouds](https://blog.skypilot.co/ai-job-orchestration-pt1-gpu-neoclouds/), (2) [The AI-Native Control Plane & Orchestration that Finally Works for ML](https://blog.skypilot.co/ai-job-orchestration-pt2-ai-control-plane/)
258
260
  - [Apr 2025] Spin up **Qwen3** on your cluster/cloud: [**example**](./llm/qwen/)
@@ -39,10 +39,11 @@
39
39
  ----
40
40
 
41
41
  :fire: *News* :fire:
42
+ - [Oct 2025] Run large-scale **LLM training with TorchTitan** on any AI infra: [**example**](./llm/torchtitan/)
43
+ - [Sep 2025] Scaling AI infrastructure at Abridge - **10x faster development** with SkyPilot: [**blog**](https://blog.skypilot.co/abridge/)
44
+ - [Sep 2025] Network and Storage Benchmarks for LLM training on the cloud: [**blog**](https://maknee.github.io/blog/2025/Network-And-Storage-Training-Skypilot/)
42
45
  - [Aug 2025] Serve and finetune **OpenAI GPT-OSS models** (gpt-oss-120b, gpt-oss-20b) with one command on any infra: [**serve**](./llm/gpt-oss/) + [**LoRA and full finetuning**](./llm/gpt-oss-finetuning/)
43
- - [Jul 2025] Run large-scale **LLM training with TorchTitan** on any cloud: [**example**](./llm/torchtitan/)
44
46
  - [Jul 2025] Run distributed **RL training for LLMs** with Verl (PPO, GRPO) on any cloud: [**example**](./llm/verl/)
45
- - [Jul 2025] 🎉 SkyPilot v0.10.0 released! [**blog post**](https://blog.skypilot.co/announcing-skypilot-0.10.0/), [**release notes**](https://github.com/skypilot-org/skypilot/releases/tag/v0.10.0)
46
47
  - [Jul 2025] Finetune **Llama4** on any distributed cluster/cloud: [**example**](./llm/llama-4-finetuning/)
47
48
  - [Jul 2025] Two-part blog series, `The Evolution of AI Job Orchestration`: (1) [Running AI jobs on GPU Neoclouds](https://blog.skypilot.co/ai-job-orchestration-pt1-gpu-neoclouds/), (2) [The AI-Native Control Plane & Orchestration that Finally Works for ML](https://blog.skypilot.co/ai-job-orchestration-pt2-ai-control-plane/)
48
49
  - [Apr 2025] Spin up **Qwen3** on your cluster/cloud: [**example**](./llm/qwen/)
@@ -7,7 +7,7 @@ import urllib.request
7
7
  from sky.utils import directory_utils
8
8
 
9
9
  # Replaced with the current commit when building the wheels.
10
- _SKYPILOT_COMMIT_SHA = '72125e8f2e379d977fb80480f2b3ae63eebcf82c'
10
+ _SKYPILOT_COMMIT_SHA = 'c9063aba1971bd726c07f76164ad1127ac90424c'
11
11
 
12
12
 
13
13
  def _get_git_commit():
@@ -37,7 +37,7 @@ def _get_git_commit():
37
37
 
38
38
 
39
39
  __commit__ = _get_git_commit()
40
- __version__ = '1.0.0.dev20251011'
40
+ __version__ = '1.0.0.dev20251013'
41
41
  __root_dir__ = directory_utils.get_sky_dir()
42
42
 
43
43
 
@@ -150,6 +150,7 @@ Vsphere = clouds.Vsphere
150
150
  Fluidstack = clouds.Fluidstack
151
151
  Nebius = clouds.Nebius
152
152
  Hyperbolic = clouds.Hyperbolic
153
+ Shadeform = clouds.Shadeform
153
154
  Seeweb = clouds.Seeweb
154
155
 
155
156
  __all__ = [
@@ -172,6 +173,7 @@ __all__ = [
172
173
  'Fluidstack',
173
174
  'Nebius',
174
175
  'Hyperbolic',
176
+ 'Shadeform',
175
177
  'Seeweb',
176
178
  'Optimizer',
177
179
  'OptimizeTarget',
@@ -0,0 +1,89 @@
1
+ """Shadeform cloud adaptor."""
2
+
3
+ import functools
4
+ import socket
5
+ from typing import Any, Dict, List, Optional
6
+
7
+ import requests
8
+
9
+ from sky import sky_logging
10
+ from sky.provision.shadeform import shadeform_utils
11
+ from sky.utils import common_utils
12
+
13
+ logger = sky_logging.init_logger(__name__)
14
+
15
+ _shadeform_sdk = None
16
+
17
+
18
+ def import_package(func):
19
+
20
+ @functools.wraps(func)
21
+ def wrapper(*args, **kwargs):
22
+ global _shadeform_sdk
23
+ if _shadeform_sdk is None:
24
+ try:
25
+ import shadeform as _shadeform # pylint: disable=import-outside-toplevel
26
+ _shadeform_sdk = _shadeform
27
+ except ImportError:
28
+ raise ImportError(
29
+ 'Failed to import dependencies for Shadeform. '
30
+ 'Try pip install "skypilot[shadeform]"') from None
31
+ return func(*args, **kwargs)
32
+
33
+ return wrapper
34
+
35
+
36
+ @import_package
37
+ def shadeform():
38
+ """Return the shadeform package."""
39
+ return _shadeform_sdk
40
+
41
+
42
+ def list_ssh_keys() -> List[Dict[str, Any]]:
43
+ """List all SSH keys in Shadeform account."""
44
+ try:
45
+ response = shadeform_utils.get_ssh_keys()
46
+ return response.get('ssh_keys', [])
47
+ except (ValueError, KeyError, requests.exceptions.RequestException) as e:
48
+ logger.warning(f'Failed to list SSH keys from Shadeform: {e}')
49
+ return []
50
+
51
+
52
+ def add_ssh_key_to_shadeform(public_key: str) -> Optional[str]:
53
+ """Add SSH key to Shadeform if it doesn't already exist.
54
+
55
+ Args:
56
+ public_key: The SSH public key string.
57
+
58
+ Returns:
59
+ The name of the key if added successfully, None otherwise.
60
+ """
61
+ try:
62
+ # Check if key already exists
63
+ existing_keys = list_ssh_keys()
64
+ key_exists = False
65
+ key_id = None
66
+ for key in existing_keys:
67
+ if key.get('public_key') == public_key:
68
+ key_exists = True
69
+ key_id = key.get('id')
70
+ break
71
+
72
+ if key_exists:
73
+ logger.info('SSH key already exists in Shadeform account')
74
+ return key_id
75
+
76
+ # Generate a unique key name
77
+ hostname = socket.gethostname()
78
+ key_name = f'skypilot-{hostname}-{common_utils.get_user_hash()[:8]}'
79
+
80
+ # Add the key
81
+ response = shadeform_utils.add_ssh_key(name=key_name,
82
+ public_key=public_key)
83
+ key_id = response['id']
84
+ logger.info(f'Added SSH key to Shadeform: {key_name, key_id}')
85
+ return key_id
86
+
87
+ except (ValueError, KeyError, requests.exceptions.RequestException) as e:
88
+ logger.warning(f'Failed to add SSH key to Shadeform: {e}')
89
+ return None
@@ -39,6 +39,7 @@ from sky.adaptors import gcp
39
39
  from sky.adaptors import ibm
40
40
  from sky.adaptors import runpod
41
41
  from sky.adaptors import seeweb as seeweb_adaptor
42
+ from sky.adaptors import shadeform as shadeform_adaptor
42
43
  from sky.adaptors import vast
43
44
  from sky.provision.fluidstack import fluidstack_utils
44
45
  from sky.provision.kubernetes import utils as kubernetes_utils
@@ -511,6 +512,48 @@ def setup_hyperbolic_authentication(config: Dict[str, Any]) -> Dict[str, Any]:
511
512
  return configure_ssh_info(config)
512
513
 
513
514
 
515
+ def setup_shadeform_authentication(config: Dict[str, Any]) -> Dict[str, Any]:
516
+ """Sets up SSH authentication for Shadeform.
517
+ - Generates a new SSH key pair if one does not exist.
518
+ - Adds the public SSH key to the user's Shadeform account.
519
+
520
+ Note: This assumes there is a Shadeform Python SDK available.
521
+ If no official SDK exists, this function would need to use direct API calls.
522
+ """
523
+
524
+ _, public_key_path = get_or_generate_keys()
525
+ ssh_key_id = None
526
+
527
+ with open(public_key_path, 'r', encoding='utf-8') as f:
528
+ public_key = f.read().strip()
529
+
530
+ try:
531
+ # Add SSH key to Shadeform using our utility functions
532
+ ssh_key_id = shadeform_adaptor.add_ssh_key_to_shadeform(public_key)
533
+
534
+ except ImportError as e:
535
+ # If required dependencies are missing
536
+ logger.warning(
537
+ f'Failed to add Shadeform SSH key due to missing dependencies: '
538
+ f'{e}. Manually configure SSH keys in your Shadeform account.')
539
+
540
+ except Exception as e:
541
+ logger.warning(f'Failed to set up Shadeform authentication: {e}')
542
+ raise exceptions.CloudUserIdentityError(
543
+ 'Failed to set up SSH authentication for Shadeform. '
544
+ f'Please ensure your Shadeform credentials are configured: {e}'
545
+ ) from e
546
+
547
+ if ssh_key_id is None:
548
+ raise Exception('Failed to add SSH key to Shadeform')
549
+
550
+ # Configure SSH info in the config
551
+ config['auth']['ssh_public_key'] = public_key_path
552
+ config['auth']['ssh_key_id'] = ssh_key_id
553
+
554
+ return configure_ssh_info(config)
555
+
556
+
514
557
  def setup_primeintellect_authentication(
515
558
  config: Dict[str, Any]) -> Dict[str, Any]:
516
559
  """Sets up SSH authentication for Prime Intellect.
@@ -1124,6 +1124,8 @@ def _add_auth_to_cluster_config(cloud: clouds.Cloud, tmp_yaml_path: str):
1124
1124
  config = auth.setup_fluidstack_authentication(config)
1125
1125
  elif isinstance(cloud, clouds.Hyperbolic):
1126
1126
  config = auth.setup_hyperbolic_authentication(config)
1127
+ elif isinstance(cloud, clouds.Shadeform):
1128
+ config = auth.setup_shadeform_authentication(config)
1127
1129
  elif isinstance(cloud, clouds.PrimeIntellect):
1128
1130
  config = auth.setup_primeintellect_authentication(config)
1129
1131
  elif isinstance(cloud, clouds.Seeweb):
@@ -141,6 +141,7 @@ _NODES_LAUNCHING_PROGRESS_TIMEOUT = {
141
141
  clouds.OCI: 300,
142
142
  clouds.Paperspace: 600,
143
143
  clouds.Kubernetes: 300,
144
+ clouds.Shadeform: 300,
144
145
  clouds.Vsphere: 240,
145
146
  }
146
147
 
@@ -304,6 +305,7 @@ def _get_cluster_config_template(cloud):
304
305
  clouds.RunPod: 'runpod-ray.yml.j2',
305
306
  clouds.Kubernetes: 'kubernetes-ray.yml.j2',
306
307
  clouds.SSH: 'kubernetes-ray.yml.j2',
308
+ clouds.Shadeform: 'shadeform-ray.yml.j2',
307
309
  clouds.Vsphere: 'vsphere-ray.yml.j2',
308
310
  clouds.Vast: 'vast-ray.yml.j2',
309
311
  clouds.Fluidstack: 'fluidstack-ray.yml.j2',
@@ -2826,7 +2828,7 @@ class CloudVmRayResourceHandle(backends.backend.ResourceHandle):
2826
2828
  return grpc.insecure_channel(f'localhost:{tunnel.port}',
2827
2829
  options=grpc_options)
2828
2830
  except socket.error as e:
2829
- logger.warning(
2831
+ logger.debug(
2830
2832
  'Failed to connect to SSH tunnel for cluster '
2831
2833
  f'{self.cluster_name!r} on port {tunnel.port} ({e}), '
2832
2834
  'acquiring lock')
@@ -2852,7 +2854,7 @@ class CloudVmRayResourceHandle(backends.backend.ResourceHandle):
2852
2854
  return grpc.insecure_channel(f'localhost:{tunnel.port}',
2853
2855
  options=grpc_options)
2854
2856
  except socket.error as e:
2855
- logger.warning(
2857
+ logger.debug(
2856
2858
  'Failed to connect to SSH tunnel for cluster '
2857
2859
  f'{self.cluster_name!r} on port {tunnel.port} ({e}), '
2858
2860
  'opening new tunnel')
@@ -0,0 +1,142 @@
1
+ """A script that generates the Shadeform catalog.
2
+
3
+ Usage:
4
+ python fetch_shadeform.py [-h] [--api-key API_KEY]
5
+ [--api-key-path API_KEY_PATH]
6
+
7
+ If neither --api-key nor --api-key-path are provided, this script will parse
8
+ `~/.shadeform/api_key` to look for Shadeform API key.
9
+ """
10
+ import argparse
11
+ import csv
12
+ import json
13
+ import os
14
+ from typing import Dict
15
+
16
+ import requests
17
+
18
+ ENDPOINT = 'https://api.shadeform.ai/v1/instances/types'
19
+ DEFAULT_SHADEFORM_API_KEY_PATH = os.path.expanduser('~/.shadeform/api_key')
20
+
21
+
22
+ def parse_gpu_info(gpu_type: str, num_gpus: int, ram_per_gpu: int) -> Dict:
23
+ """Parse GPU information for the catalog."""
24
+
25
+ manufacturer = 'NVIDIA'
26
+ if gpu_type == 'MI300X':
27
+ manufacturer = 'AMD'
28
+ elif gpu_type == 'GAUDI2':
29
+ manufacturer = 'Intel'
30
+
31
+ return {
32
+ 'Gpus': [{
33
+ 'Name': gpu_type,
34
+ 'Manufacturer': manufacturer,
35
+ 'Count': float(num_gpus),
36
+ 'MemoryInfo': {
37
+ 'SizeInMiB': ram_per_gpu
38
+ },
39
+ 'TotalGpuMemoryInMiB': ram_per_gpu * num_gpus
40
+ }]
41
+ }
42
+
43
+
44
+ def create_catalog(api_key: str, output_path: str) -> None:
45
+ """Create Shadeform catalog by fetching from API."""
46
+ headers = {'X-API-KEY': api_key}
47
+
48
+ params = {'available': 'true'}
49
+
50
+ response = requests.get(ENDPOINT,
51
+ headers=headers,
52
+ params=params,
53
+ timeout=30)
54
+ response.raise_for_status()
55
+
56
+ data = response.json()
57
+ instance_types = data.get('instance_types', [])
58
+
59
+ with open(output_path, mode='w', encoding='utf-8') as f:
60
+ writer = csv.writer(f, delimiter=',', quotechar='"')
61
+ writer.writerow([
62
+ 'InstanceType', 'AcceleratorName', 'AcceleratorCount', 'vCPUs',
63
+ 'MemoryGiB', 'Price', 'Region', 'GpuInfo', 'SpotPrice'
64
+ ])
65
+
66
+ for instance in instance_types:
67
+ config = instance['configuration']
68
+
69
+ cloud = instance['cloud']
70
+ shade_instance_type = instance['shade_instance_type']
71
+ instance_type = f'{cloud}_{shade_instance_type.replace("_", "-")}'
72
+ gpu_type = config['gpu_type'].replace('_', '-')
73
+ gpu_count = float(config['num_gpus'])
74
+ vcpus = float(config['vcpus'])
75
+ memory_gb = int(config['memory_in_gb'])
76
+
77
+ # Append "B" to instance_type and gpu_type if they end with "G"
78
+ if instance_type.endswith('G'):
79
+ instance_type += 'B'
80
+ if gpu_type.endswith('G'):
81
+ gpu_type += 'B'
82
+
83
+ # Replace "Gx" with "GBx" (case sensitive)
84
+ if 'Gx' in instance_type:
85
+ instance_type = instance_type.replace('Gx', 'GBx')
86
+
87
+ # Price is in cents per hour, convert to dollars
88
+ price = float(instance['hourly_price']) / 100
89
+
90
+ # Create GPU info
91
+ gpuinfo = None
92
+ if gpu_count > 0:
93
+ gpuinfo_dict = parse_gpu_info(gpu_type, int(gpu_count),
94
+ int(config['vram_per_gpu_in_gb']))
95
+ gpuinfo = json.dumps(gpuinfo_dict).replace('"', '\'')
96
+
97
+ # Write entry for each available region
98
+ for availability in instance.get('availability', []):
99
+ if availability['available'] and gpu_count > 0:
100
+ region = availability['region']
101
+ writer.writerow([
102
+ instance_type,
103
+ gpu_type,
104
+ gpu_count,
105
+ vcpus,
106
+ memory_gb,
107
+ price,
108
+ region,
109
+ gpuinfo,
110
+ '' # No spot pricing info available
111
+ ])
112
+
113
+
114
+ def get_api_key(cmdline_args: argparse.Namespace) -> str:
115
+ """Get Shadeform API key from cmdline or default path."""
116
+ api_key = cmdline_args.api_key
117
+ if api_key is None:
118
+ if cmdline_args.api_key_path is not None:
119
+ with open(cmdline_args.api_key_path, mode='r',
120
+ encoding='utf-8') as f:
121
+ api_key = f.read().strip()
122
+ else:
123
+ # Read from ~/.shadeform/api_key
124
+ with open(DEFAULT_SHADEFORM_API_KEY_PATH,
125
+ mode='r',
126
+ encoding='utf-8') as f:
127
+ api_key = f.read().strip()
128
+ assert api_key is not None, (
129
+ f'API key not found. Please provide via --api-key or place in '
130
+ f'{DEFAULT_SHADEFORM_API_KEY_PATH}')
131
+ return api_key
132
+
133
+
134
+ if __name__ == '__main__':
135
+ parser = argparse.ArgumentParser()
136
+ parser.add_argument('--api-key', help='Shadeform API key.')
137
+ parser.add_argument('--api-key-path',
138
+ help='path of file containing Shadeform API key.')
139
+ args = parser.parse_args()
140
+ os.makedirs('shadeform', exist_ok=True)
141
+ create_catalog(get_api_key(args), 'shadeform/vms.csv')
142
+ print('Shadeform catalog saved to shadeform/vms.csv')
@@ -0,0 +1,165 @@
1
+ """ Shadeform | Catalog
2
+
3
+ This module loads pricing and instance information from the Shadeform API
4
+ and can be used to query instance types and pricing information for Shadeform.
5
+ """
6
+
7
+ import typing
8
+ from typing import Dict, List, Optional, Tuple, Union
9
+
10
+ import pandas as pd
11
+
12
+ from sky.catalog import common
13
+
14
+ if typing.TYPE_CHECKING:
15
+ from sky.clouds import cloud
16
+
17
+ # We'll use dynamic fetching, so no static CSV file to load
18
+ _df = None
19
+
20
+
21
+ def _get_df():
22
+ """Get the dataframe, fetching from API if needed."""
23
+ global _df
24
+ if _df is None:
25
+ # For now, we'll fall back to a minimal static catalog
26
+ # In a full implementation, this would call the Shadeform API
27
+ # to dynamically fetch the latest instance types and pricing
28
+ try:
29
+ df = common.read_catalog('shadeform/vms.csv')
30
+ except FileNotFoundError:
31
+ # If no static catalog exists, create an empty one
32
+ # This would be replaced with dynamic API fetching
33
+ _df = pd.DataFrame(columns=[
34
+ 'InstanceType', 'AcceleratorName', 'AcceleratorCount', 'vCPUs',
35
+ 'MemoryGiB', 'Price', 'Region', 'GpuInfo', 'SpotPrice'
36
+ ])
37
+ else:
38
+ df = df[df['InstanceType'].notna()]
39
+ if 'AcceleratorName' in df.columns:
40
+ df = df[df['AcceleratorName'].notna()]
41
+ df = df.assign(AcceleratorName=df['AcceleratorName'].astype(
42
+ str).str.strip())
43
+ _df = df.reset_index(drop=True)
44
+ return _df
45
+
46
+
47
+ def _is_not_found_error(err: ValueError) -> bool:
48
+ msg = str(err).lower()
49
+ return 'not found' in msg or 'not supported' in msg
50
+
51
+
52
+ def _call_or_default(func, default):
53
+ try:
54
+ return func()
55
+ except ValueError as err:
56
+ if _is_not_found_error(err):
57
+ return default
58
+ raise
59
+
60
+
61
+ def instance_type_exists(instance_type: str) -> bool:
62
+ """Check if an instance type exists."""
63
+ return common.instance_type_exists_impl(_get_df(), instance_type)
64
+
65
+
66
+ def validate_region_zone(
67
+ region: Optional[str],
68
+ zone: Optional[str]) -> Tuple[Optional[str], Optional[str]]:
69
+ """Validate region and zone for Shadeform."""
70
+ return common.validate_region_zone_impl('shadeform', _get_df(), region,
71
+ zone)
72
+
73
+
74
+ def get_hourly_cost(instance_type: str,
75
+ use_spot: bool = False,
76
+ region: Optional[str] = None,
77
+ zone: Optional[str] = None) -> float:
78
+ """Returns the cost, or the cheapest cost among all zones for spot."""
79
+ # Shadeform doesn't support spot instances currently
80
+ if use_spot:
81
+ raise ValueError('Spot instances are not supported on Shadeform')
82
+
83
+ return common.get_hourly_cost_impl(_get_df(), instance_type, use_spot,
84
+ region, zone)
85
+
86
+
87
+ def get_vcpus_mem_from_instance_type(
88
+ instance_type: str) -> Tuple[Optional[float], Optional[float]]:
89
+ """Get vCPUs and memory from instance type."""
90
+ return _call_or_default(
91
+ lambda: common.get_vcpus_mem_from_instance_type_impl(
92
+ _get_df(), instance_type), (None, None))
93
+
94
+
95
+ def get_default_instance_type(cpus: Optional[str] = None,
96
+ memory: Optional[str] = None,
97
+ disk_tier: Optional[str] = None,
98
+ region: Optional[str] = None,
99
+ zone: Optional[str] = None) -> Optional[str]:
100
+ """Get default instance type based on requirements."""
101
+ del disk_tier # Shadeform doesn't support custom disk tiers yet
102
+ return _call_or_default(
103
+ lambda: common.get_instance_type_for_cpus_mem_impl(
104
+ _get_df(), cpus, memory, region, zone), None)
105
+
106
+
107
+ def get_accelerators_from_instance_type(
108
+ instance_type: str) -> Optional[Dict[str, Union[int, float]]]:
109
+ """Get accelerator information from instance type."""
110
+ return _call_or_default(
111
+ lambda: common.get_accelerators_from_instance_type_impl(
112
+ _get_df(), instance_type), None)
113
+
114
+
115
+ def get_instance_type_for_accelerator(
116
+ acc_name: str,
117
+ acc_count: int,
118
+ cpus: Optional[str] = None,
119
+ memory: Optional[str] = None,
120
+ use_spot: bool = False,
121
+ region: Optional[str] = None,
122
+ zone: Optional[str] = None) -> Tuple[Optional[List[str]], List[str]]:
123
+ """Returns a list of instance types that have the given accelerator."""
124
+ if use_spot:
125
+ # Return empty lists since spot is not supported
126
+ return None, ['Spot instances are not supported on Shadeform']
127
+
128
+ return _call_or_default(
129
+ lambda: common.get_instance_type_for_accelerator_impl(
130
+ df=_get_df(),
131
+ acc_name=acc_name,
132
+ acc_count=acc_count,
133
+ cpus=cpus,
134
+ memory=memory,
135
+ use_spot=use_spot,
136
+ region=region,
137
+ zone=zone), (None, []))
138
+
139
+
140
+ def get_region_zones_for_instance_type(instance_type: str,
141
+ use_spot: bool) -> List['cloud.Region']:
142
+ """Get regions and zones for an instance type."""
143
+ if use_spot:
144
+ return [] # No spot support
145
+
146
+ df = _get_df()
147
+ df_filtered = df[df['InstanceType'] == instance_type]
148
+ return _call_or_default(
149
+ lambda: common.get_region_zones(df_filtered, use_spot), [])
150
+
151
+
152
+ def list_accelerators(
153
+ gpus_only: bool,
154
+ name_filter: Optional[str],
155
+ region_filter: Optional[str],
156
+ quantity_filter: Optional[int],
157
+ case_sensitive: bool = True,
158
+ all_regions: bool = False,
159
+ require_price: bool = True) -> Dict[str, List[common.InstanceTypeInfo]]:
160
+ """Returns all instance types in Shadeform offering GPUs."""
161
+ del require_price # Unused.
162
+ return common.list_accelerators_impl('Shadeform', _get_df(), gpus_only,
163
+ name_filter, region_filter,
164
+ quantity_filter, case_sensitive,
165
+ all_regions)