skypilot-nightly 1.0.0.dev20250906__tar.gz → 1.0.0.dev20250908__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 (574) hide show
  1. {skypilot_nightly-1.0.0.dev20250906/skypilot_nightly.egg-info → skypilot_nightly-1.0.0.dev20250908}/PKG-INFO +34 -34
  2. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/__init__.py +2 -2
  3. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/adaptors/common.py +24 -1
  4. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/adaptors/do.py +8 -2
  5. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/clouds/aws.py +4 -6
  6. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/clouds/azure.py +12 -13
  7. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/clouds/cudo.py +4 -8
  8. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/clouds/do.py +5 -6
  9. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/clouds/oci.py +7 -7
  10. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/clouds/runpod.py +59 -18
  11. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/clouds/vast.py +21 -22
  12. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/clouds/vsphere.py +10 -15
  13. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/404.html +1 -1
  14. skypilot_nightly-1.0.0.dev20250908/sky/dashboard/out/_next/static/chunks/8969-0487dfbf149d9e53.js +1 -0
  15. skypilot_nightly-1.0.0.dev20250906/sky/dashboard/out/_next/static/chunks/webpack-8df25bce0107f4bd.js → skypilot_nightly-1.0.0.dev20250908/sky/dashboard/out/_next/static/chunks/webpack-47c64cc05717f8a3.js +1 -1
  16. {skypilot_nightly-1.0.0.dev20250906/sky/dashboard/out/_next/static/ZOaq9s6U49jSoGAMkeKqu → skypilot_nightly-1.0.0.dev20250908/sky/dashboard/out/_next/static/qikl6zGuwe8BKavteei3r}/_buildManifest.js +1 -1
  17. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/clusters/[cluster]/[job].html +1 -1
  18. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/clusters/[cluster].html +1 -1
  19. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/clusters.html +1 -1
  20. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/config.html +1 -1
  21. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/index.html +1 -1
  22. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/infra/[context].html +1 -1
  23. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/infra.html +1 -1
  24. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/jobs/[job].html +1 -1
  25. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/jobs/pools/[pool].html +1 -1
  26. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/jobs.html +1 -1
  27. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/users.html +1 -1
  28. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/volumes.html +1 -1
  29. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/workspace/new.html +1 -1
  30. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/workspaces/[name].html +1 -1
  31. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/workspaces.html +1 -1
  32. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/jobs/server/core.py +44 -2
  33. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/jobs/server/server.py +17 -0
  34. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/server/constants.py +1 -1
  35. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/server/daemons.py +2 -0
  36. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/server/requests/executor.py +7 -0
  37. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/server/requests/payloads.py +8 -0
  38. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/server/requests/serializers/decoders.py +7 -1
  39. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/server/requests/serializers/encoders.py +10 -2
  40. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/common_utils.py +18 -0
  41. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/resource_checker.py +2 -3
  42. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908/skypilot_nightly.egg-info}/PKG-INFO +34 -34
  43. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/skypilot_nightly.egg-info/SOURCES.txt +4 -4
  44. skypilot_nightly-1.0.0.dev20250906/sky/dashboard/out/_next/static/chunks/8969-0be3036bf86f8256.js +0 -1
  45. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/LICENSE +0 -0
  46. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/MANIFEST.in +0 -0
  47. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/README.md +0 -0
  48. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/pyproject.toml +0 -0
  49. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/setup.cfg +0 -0
  50. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/setup.py +0 -0
  51. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/adaptors/__init__.py +0 -0
  52. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/adaptors/aws.py +0 -0
  53. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/adaptors/azure.py +0 -0
  54. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/adaptors/cloudflare.py +0 -0
  55. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/adaptors/cudo.py +0 -0
  56. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/adaptors/docker.py +0 -0
  57. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/adaptors/gcp.py +0 -0
  58. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/adaptors/hyperbolic.py +0 -0
  59. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/adaptors/ibm.py +0 -0
  60. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/adaptors/kubernetes.py +0 -0
  61. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/adaptors/nebius.py +0 -0
  62. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/adaptors/oci.py +0 -0
  63. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/adaptors/runpod.py +0 -0
  64. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/adaptors/vast.py +0 -0
  65. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/adaptors/vsphere.py +0 -0
  66. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/admin_policy.py +0 -0
  67. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/authentication.py +0 -0
  68. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/backends/__init__.py +0 -0
  69. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/backends/backend.py +0 -0
  70. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/backends/backend_utils.py +0 -0
  71. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/backends/cloud_vm_ray_backend.py +0 -0
  72. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/backends/docker_utils.py +0 -0
  73. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/backends/local_docker_backend.py +0 -0
  74. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/backends/monkey_patches/monkey_patch_ray_up.py +0 -0
  75. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/backends/wheel_utils.py +0 -0
  76. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/catalog/__init__.py +0 -0
  77. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/catalog/aws_catalog.py +0 -0
  78. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/catalog/azure_catalog.py +0 -0
  79. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/catalog/common.py +0 -0
  80. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/catalog/config.py +0 -0
  81. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/catalog/cudo_catalog.py +0 -0
  82. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/catalog/data_fetchers/__init__.py +0 -0
  83. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/catalog/data_fetchers/analyze.py +0 -0
  84. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/catalog/data_fetchers/fetch_aws.py +0 -0
  85. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/catalog/data_fetchers/fetch_azure.py +0 -0
  86. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/catalog/data_fetchers/fetch_cudo.py +0 -0
  87. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/catalog/data_fetchers/fetch_fluidstack.py +0 -0
  88. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/catalog/data_fetchers/fetch_gcp.py +0 -0
  89. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/catalog/data_fetchers/fetch_hyperbolic.py +0 -0
  90. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/catalog/data_fetchers/fetch_ibm.py +0 -0
  91. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/catalog/data_fetchers/fetch_lambda_cloud.py +0 -0
  92. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/catalog/data_fetchers/fetch_nebius.py +0 -0
  93. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/catalog/data_fetchers/fetch_vast.py +0 -0
  94. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/catalog/data_fetchers/fetch_vsphere.py +0 -0
  95. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/catalog/do_catalog.py +0 -0
  96. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/catalog/fluidstack_catalog.py +0 -0
  97. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/catalog/gcp_catalog.py +0 -0
  98. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/catalog/hyperbolic_catalog.py +0 -0
  99. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/catalog/ibm_catalog.py +0 -0
  100. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/catalog/kubernetes_catalog.py +0 -0
  101. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/catalog/lambda_catalog.py +0 -0
  102. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/catalog/nebius_catalog.py +0 -0
  103. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/catalog/oci_catalog.py +0 -0
  104. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/catalog/paperspace_catalog.py +0 -0
  105. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/catalog/runpod_catalog.py +0 -0
  106. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/catalog/scp_catalog.py +0 -0
  107. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/catalog/ssh_catalog.py +0 -0
  108. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/catalog/vast_catalog.py +0 -0
  109. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/catalog/vsphere_catalog.py +0 -0
  110. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/check.py +0 -0
  111. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/cli.py +0 -0
  112. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/client/__init__.py +0 -0
  113. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/client/cli/__init__.py +0 -0
  114. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/client/cli/command.py +0 -0
  115. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/client/cli/deprecation_utils.py +0 -0
  116. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/client/cli/flags.py +0 -0
  117. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/client/cli/git.py +0 -0
  118. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/client/common.py +0 -0
  119. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/client/oauth.py +0 -0
  120. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/client/sdk.py +0 -0
  121. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/client/sdk_async.py +0 -0
  122. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/client/service_account_auth.py +0 -0
  123. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/cloud_stores.py +0 -0
  124. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/clouds/__init__.py +0 -0
  125. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/clouds/cloud.py +0 -0
  126. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/clouds/fluidstack.py +0 -0
  127. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/clouds/gcp.py +0 -0
  128. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/clouds/hyperbolic.py +0 -0
  129. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/clouds/ibm.py +0 -0
  130. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/clouds/kubernetes.py +0 -0
  131. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/clouds/lambda_cloud.py +0 -0
  132. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/clouds/nebius.py +1 -1
  133. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/clouds/paperspace.py +0 -0
  134. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/clouds/scp.py +0 -0
  135. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/clouds/ssh.py +0 -0
  136. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/clouds/utils/__init__.py +0 -0
  137. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/clouds/utils/aws_utils.py +0 -0
  138. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/clouds/utils/azure_utils.py +0 -0
  139. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/clouds/utils/gcp_utils.py +0 -0
  140. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/clouds/utils/oci_utils.py +0 -0
  141. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/clouds/utils/scp_utils.py +0 -0
  142. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/core.py +0 -0
  143. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dag.py +0 -0
  144. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/1121-408ed10b2f9fce17.js +0 -0
  145. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/1141-943efc7aff0f0c06.js +0 -0
  146. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/1272-1ef0bf0237faccdb.js +0 -0
  147. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/1836-37fede578e2da5f8.js +0 -0
  148. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/2350.fab69e61bac57b23.js +0 -0
  149. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/3015-86cabed5d4669ad0.js +0 -0
  150. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/3294.c80326aec9bfed40.js +0 -0
  151. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/3785.4872a2f3aa489880.js +0 -0
  152. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/3850-ff4a9a69d978632b.js +0 -0
  153. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/3937.210053269f121201.js +0 -0
  154. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/4045.b30465273dc5e468.js +0 -0
  155. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/4676-9da7fdbde90b5549.js +0 -0
  156. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/4725.10f7a9a5d3ea8208.js +0 -0
  157. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/5339.3fda4a4010ff4e06.js +0 -0
  158. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/5739-d67458fcb1386c92.js +0 -0
  159. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/6130-2be46d70a38f1e82.js +0 -0
  160. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/6135-4b4d5e824b7f9d3c.js +0 -0
  161. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/616-3d59f75e2ccf9321.js +0 -0
  162. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/649.b9d7f7d10c1b8c53.js +0 -0
  163. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/6601-06114c982db410b6.js +0 -0
  164. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/6856-6e2bc8a6fd0867af.js +0 -0
  165. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/6989-01359c57e018caa4.js +0 -0
  166. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/6990-08b2a1cae076a943.js +0 -0
  167. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/7325.b4bc99ce0892dcd5.js +0 -0
  168. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/7411-b15471acd2cba716.js +0 -0
  169. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/754-d0da8ab45f9509e9.js +0 -0
  170. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/7669.1f5d9a402bf5cc42.js +0 -0
  171. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/9025.c12318fb6a1a9093.js +0 -0
  172. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/9037-fa1737818d0a0969.js +0 -0
  173. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/fd9d1056-86323a29a8f7e46a.js +0 -0
  174. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/framework-cf60a09ccd051a10.js +0 -0
  175. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/main-app-587214043926b3cc.js +0 -0
  176. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/main-f15ccb73239a3bf1.js +0 -0
  177. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/pages/_app-ce361c6959bc2001.js +0 -0
  178. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/pages/_error-c66a4e8afc46f17b.js +0 -0
  179. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-1cbba24bd1bd35f8.js +0 -0
  180. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-0b4b35dc1dfe046c.js +0 -0
  181. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/pages/clusters-469814d711d63b1b.js +0 -0
  182. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/pages/config-dfb9bf07b13045f4.js +0 -0
  183. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/pages/index-444f1804401f04ea.js +0 -0
  184. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/pages/infra/[context]-6563820e094f68ca.js +0 -0
  185. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/pages/infra-aabba60d57826e0f.js +0 -0
  186. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-dd64309c3fe67ed2.js +0 -0
  187. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/pages/jobs/pools/[pool]-07349868f7905d37.js +0 -0
  188. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/pages/jobs-1f70d9faa564804f.js +0 -0
  189. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/pages/users-018bf31cda52e11b.js +0 -0
  190. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/pages/volumes-739726d6b823f532.js +0 -0
  191. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/pages/workspace/new-3f88a1c7e86a3f86.js +0 -0
  192. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/pages/workspaces/[name]-af76bb06dbb3954f.js +0 -0
  193. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/pages/workspaces-7598c33a746cdc91.js +0 -0
  194. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js +0 -0
  195. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/_next/static/css/4614e06482d7309e.css +0 -0
  196. {skypilot_nightly-1.0.0.dev20250906/sky/dashboard/out/_next/static/ZOaq9s6U49jSoGAMkeKqu → skypilot_nightly-1.0.0.dev20250908/sky/dashboard/out/_next/static/qikl6zGuwe8BKavteei3r}/_ssgManifest.js +0 -0
  197. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/favicon.ico +0 -0
  198. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/skypilot.svg +0 -0
  199. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/dashboard/out/videos/cursor-small.mp4 +0 -0
  200. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/data/__init__.py +0 -0
  201. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/data/data_transfer.py +0 -0
  202. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/data/data_utils.py +0 -0
  203. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/data/mounting_utils.py +0 -0
  204. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/data/storage.py +0 -0
  205. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/data/storage_utils.py +0 -0
  206. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/exceptions.py +0 -0
  207. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/execution.py +0 -0
  208. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/global_user_state.py +0 -0
  209. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/jobs/__init__.py +0 -0
  210. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/jobs/client/__init__.py +0 -0
  211. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/jobs/client/sdk.py +0 -0
  212. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/jobs/client/sdk_async.py +0 -0
  213. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/jobs/constants.py +0 -0
  214. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/jobs/controller.py +0 -0
  215. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/jobs/recovery_strategy.py +0 -0
  216. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/jobs/scheduler.py +0 -0
  217. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/jobs/server/__init__.py +0 -0
  218. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/jobs/server/utils.py +0 -0
  219. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/jobs/state.py +0 -0
  220. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/jobs/utils.py +0 -0
  221. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/logs/__init__.py +0 -0
  222. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/logs/agent.py +0 -0
  223. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/logs/aws.py +0 -0
  224. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/logs/gcp.py +0 -0
  225. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/metrics/__init__.py +0 -0
  226. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/metrics/utils.py +0 -0
  227. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/models.py +0 -0
  228. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/optimizer.py +0 -0
  229. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/__init__.py +0 -0
  230. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/aws/__init__.py +0 -0
  231. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/aws/config.py +0 -0
  232. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/aws/instance.py +0 -0
  233. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/aws/utils.py +0 -0
  234. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/azure/__init__.py +0 -0
  235. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/azure/azure-config-template.json +0 -0
  236. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/azure/config.py +0 -0
  237. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/azure/instance.py +0 -0
  238. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/common.py +0 -0
  239. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/constants.py +0 -0
  240. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/cudo/__init__.py +0 -0
  241. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/cudo/config.py +0 -0
  242. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/cudo/cudo_machine_type.py +0 -0
  243. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/cudo/cudo_utils.py +0 -0
  244. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/cudo/cudo_wrapper.py +0 -0
  245. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/cudo/instance.py +0 -0
  246. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/do/__init__.py +0 -0
  247. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/do/config.py +0 -0
  248. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/do/constants.py +0 -0
  249. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/do/instance.py +0 -0
  250. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/do/utils.py +0 -0
  251. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/docker_utils.py +0 -0
  252. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/fluidstack/__init__.py +0 -0
  253. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/fluidstack/config.py +0 -0
  254. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/fluidstack/fluidstack_utils.py +0 -0
  255. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/fluidstack/instance.py +0 -0
  256. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/gcp/__init__.py +0 -0
  257. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/gcp/config.py +0 -0
  258. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/gcp/constants.py +0 -0
  259. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/gcp/instance.py +0 -0
  260. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/gcp/instance_utils.py +0 -0
  261. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/gcp/mig_utils.py +0 -0
  262. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/gcp/volume_utils.py +0 -0
  263. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/hyperbolic/__init__.py +0 -0
  264. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/hyperbolic/config.py +0 -0
  265. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/hyperbolic/instance.py +0 -0
  266. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/hyperbolic/utils.py +0 -0
  267. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/instance_setup.py +0 -0
  268. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/kubernetes/__init__.py +0 -0
  269. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/kubernetes/config.py +0 -0
  270. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/kubernetes/constants.py +0 -0
  271. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/kubernetes/instance.py +0 -0
  272. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/kubernetes/manifests/fusermount-server-daemonset.yaml +0 -0
  273. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/kubernetes/network.py +0 -0
  274. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/kubernetes/network_utils.py +0 -0
  275. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/kubernetes/utils.py +0 -0
  276. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/kubernetes/volume.py +0 -0
  277. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/lambda_cloud/__init__.py +0 -0
  278. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/lambda_cloud/config.py +0 -0
  279. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/lambda_cloud/instance.py +0 -0
  280. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/lambda_cloud/lambda_utils.py +0 -0
  281. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/logging.py +0 -0
  282. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/metadata_utils.py +0 -0
  283. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/nebius/__init__.py +0 -0
  284. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/nebius/config.py +0 -0
  285. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/nebius/constants.py +0 -0
  286. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/nebius/instance.py +0 -0
  287. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/nebius/utils.py +0 -0
  288. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/oci/__init__.py +0 -0
  289. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/oci/config.py +0 -0
  290. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/oci/instance.py +0 -0
  291. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/oci/query_utils.py +0 -0
  292. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/paperspace/__init__.py +0 -0
  293. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/paperspace/config.py +0 -0
  294. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/paperspace/constants.py +0 -0
  295. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/paperspace/instance.py +0 -0
  296. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/paperspace/utils.py +0 -0
  297. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/provisioner.py +0 -0
  298. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/runpod/__init__.py +0 -0
  299. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/runpod/api/__init__.py +0 -0
  300. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/runpod/api/commands.py +0 -0
  301. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/runpod/api/pods.py +0 -0
  302. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/runpod/config.py +0 -0
  303. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/runpod/instance.py +0 -0
  304. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/runpod/utils.py +0 -0
  305. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/runpod/volume.py +0 -0
  306. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/scp/__init__.py +0 -0
  307. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/scp/config.py +0 -0
  308. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/scp/instance.py +0 -0
  309. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/ssh/__init__.py +0 -0
  310. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/vast/__init__.py +0 -0
  311. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/vast/config.py +0 -0
  312. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/vast/instance.py +0 -0
  313. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/vast/utils.py +0 -0
  314. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/vsphere/__init__.py +0 -0
  315. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/vsphere/common/__init__.py +0 -0
  316. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/vsphere/common/cls_api_client.py +0 -0
  317. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/vsphere/common/cls_api_helper.py +0 -0
  318. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/vsphere/common/custom_script.py +0 -0
  319. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/vsphere/common/id_generator.py +0 -0
  320. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/vsphere/common/metadata_utils.py +0 -0
  321. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/vsphere/common/service_manager.py +0 -0
  322. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/vsphere/common/service_manager_factory.py +0 -0
  323. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/vsphere/common/ssl_helper.py +0 -0
  324. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/vsphere/common/vapiconnect.py +0 -0
  325. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/vsphere/common/vim_utils.py +0 -0
  326. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/vsphere/config.py +0 -0
  327. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/vsphere/instance.py +0 -0
  328. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/provision/vsphere/vsphere_utils.py +0 -0
  329. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/py.typed +0 -0
  330. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/resources.py +0 -0
  331. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/schemas/__init__.py +0 -0
  332. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/schemas/api/__init__.py +0 -0
  333. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/schemas/api/responses.py +0 -0
  334. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/schemas/db/README +0 -0
  335. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/schemas/db/env.py +0 -0
  336. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/schemas/db/global_user_state/001_initial_schema.py +0 -0
  337. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/schemas/db/global_user_state/002_add_workspace_to_cluster_history.py +0 -0
  338. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/schemas/db/global_user_state/003_fix_initial_revision.py +0 -0
  339. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/schemas/db/global_user_state/004_is_managed.py +0 -0
  340. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/schemas/db/global_user_state/005_cluster_event.py +0 -0
  341. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/schemas/db/global_user_state/006_provision_log.py +0 -0
  342. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/schemas/db/global_user_state/007_cluster_event_request_id.py +0 -0
  343. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/schemas/db/script.py.mako +0 -0
  344. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/schemas/db/serve_state/001_initial_schema.py +0 -0
  345. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/schemas/db/spot_jobs/001_initial_schema.py +0 -0
  346. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/schemas/db/spot_jobs/002_cluster_pool.py +0 -0
  347. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/schemas/db/spot_jobs/003_pool_hash.py +0 -0
  348. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/schemas/generated/__init__.py +0 -0
  349. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/schemas/generated/autostopv1_pb2.py +0 -0
  350. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/schemas/generated/autostopv1_pb2.pyi +0 -0
  351. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/schemas/generated/autostopv1_pb2_grpc.py +0 -0
  352. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/serve/__init__.py +0 -0
  353. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/serve/autoscalers.py +0 -0
  354. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/serve/client/__init__.py +0 -0
  355. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/serve/client/impl.py +0 -0
  356. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/serve/client/sdk.py +0 -0
  357. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/serve/client/sdk_async.py +0 -0
  358. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/serve/constants.py +0 -0
  359. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/serve/controller.py +0 -0
  360. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/serve/load_balancer.py +0 -0
  361. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/serve/load_balancing_policies.py +0 -0
  362. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/serve/replica_managers.py +0 -0
  363. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/serve/serve_state.py +0 -0
  364. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/serve/serve_utils.py +0 -0
  365. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/serve/server/__init__.py +0 -0
  366. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/serve/server/core.py +0 -0
  367. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/serve/server/impl.py +0 -0
  368. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/serve/server/server.py +0 -0
  369. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/serve/service.py +0 -0
  370. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/serve/service_spec.py +0 -0
  371. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/serve/spot_placer.py +0 -0
  372. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/server/__init__.py +0 -0
  373. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/server/auth/__init__.py +0 -0
  374. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/server/auth/authn.py +0 -0
  375. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/server/auth/oauth2_proxy.py +0 -0
  376. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/server/common.py +0 -0
  377. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/server/config.py +0 -0
  378. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/server/html/log.html +0 -0
  379. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/server/html/token_page.html +0 -0
  380. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/server/metrics.py +0 -0
  381. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/server/requests/__init__.py +0 -0
  382. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/server/requests/event_loop.py +0 -0
  383. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/server/requests/preconditions.py +0 -0
  384. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/server/requests/process.py +0 -0
  385. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/server/requests/queues/__init__.py +0 -0
  386. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/server/requests/queues/local_queue.py +0 -0
  387. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/server/requests/queues/mp_queue.py +0 -0
  388. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/server/requests/requests.py +0 -0
  389. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/server/requests/serializers/__init__.py +0 -0
  390. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/server/rest.py +0 -0
  391. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/server/server.py +0 -0
  392. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/server/state.py +0 -0
  393. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/server/stream_utils.py +0 -0
  394. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/server/uvicorn.py +0 -0
  395. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/server/versions.py +0 -0
  396. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/setup_files/MANIFEST.in +0 -0
  397. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/setup_files/alembic.ini +0 -0
  398. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/setup_files/dependencies.py +0 -0
  399. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/setup_files/setup.py +0 -0
  400. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/sky_logging.py +0 -0
  401. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/skylet/LICENSE +0 -0
  402. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/skylet/__init__.py +0 -0
  403. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/skylet/attempt_skylet.py +0 -0
  404. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/skylet/autostop_lib.py +0 -0
  405. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/skylet/configs.py +0 -0
  406. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/skylet/constants.py +0 -0
  407. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/skylet/events.py +0 -0
  408. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/skylet/job_lib.py +0 -0
  409. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/skylet/log_lib.py +0 -0
  410. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/skylet/log_lib.pyi +0 -0
  411. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/skylet/providers/__init__.py +0 -0
  412. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/skylet/providers/command_runner.py +0 -0
  413. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/skylet/providers/ibm/__init__.py +0 -0
  414. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/skylet/providers/ibm/node_provider.py +0 -0
  415. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/skylet/providers/ibm/utils.py +0 -0
  416. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/skylet/providers/ibm/vpc_provider.py +0 -0
  417. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/skylet/ray_patches/__init__.py +0 -0
  418. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/skylet/ray_patches/autoscaler.py.diff +0 -0
  419. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/skylet/ray_patches/autoscaler.py.patch +0 -0
  420. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/skylet/ray_patches/cli.py.diff +0 -0
  421. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/skylet/ray_patches/cli.py.patch +0 -0
  422. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/skylet/ray_patches/command_runner.py.diff +0 -0
  423. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/skylet/ray_patches/command_runner.py.patch +0 -0
  424. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/skylet/ray_patches/log_monitor.py.diff +0 -0
  425. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/skylet/ray_patches/log_monitor.py.patch +0 -0
  426. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/skylet/ray_patches/resource_demand_scheduler.py.diff +0 -0
  427. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/skylet/ray_patches/resource_demand_scheduler.py.patch +0 -0
  428. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/skylet/ray_patches/updater.py.diff +0 -0
  429. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/skylet/ray_patches/updater.py.patch +0 -0
  430. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/skylet/ray_patches/worker.py.diff +0 -0
  431. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/skylet/ray_patches/worker.py.patch +0 -0
  432. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/skylet/services.py +0 -0
  433. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/skylet/skylet.py +0 -0
  434. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/skylet/subprocess_daemon.py +0 -0
  435. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/skypilot_config.py +0 -0
  436. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/ssh_node_pools/__init__.py +0 -0
  437. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/ssh_node_pools/core.py +0 -0
  438. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/ssh_node_pools/server.py +0 -0
  439. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/task.py +0 -0
  440. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/templates/aws-ray.yml.j2 +0 -0
  441. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/templates/azure-ray.yml.j2 +0 -0
  442. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/templates/cudo-ray.yml.j2 +0 -0
  443. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/templates/do-ray.yml.j2 +0 -0
  444. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/templates/fluidstack-ray.yml.j2 +0 -0
  445. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/templates/gcp-ray.yml.j2 +0 -0
  446. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/templates/hyperbolic-ray.yml.j2 +0 -0
  447. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/templates/ibm-ray.yml.j2 +0 -0
  448. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/templates/jobs-controller.yaml.j2 +0 -0
  449. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/templates/kubernetes-ingress.yml.j2 +0 -0
  450. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/templates/kubernetes-loadbalancer.yml.j2 +0 -0
  451. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/templates/kubernetes-port-forward-proxy-command.sh +0 -0
  452. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/templates/kubernetes-ray.yml.j2 +0 -0
  453. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/templates/kubernetes-ssh-jump.yml.j2 +0 -0
  454. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/templates/lambda-ray.yml.j2 +0 -0
  455. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/templates/local-ray.yml.j2 +0 -0
  456. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/templates/nebius-ray.yml.j2 +0 -0
  457. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/templates/oci-ray.yml.j2 +0 -0
  458. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/templates/paperspace-ray.yml.j2 +0 -0
  459. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/templates/runpod-ray.yml.j2 +0 -0
  460. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/templates/scp-ray.yml.j2 +0 -0
  461. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/templates/sky-serve-controller.yaml.j2 +0 -0
  462. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/templates/skypilot-server-kubernetes-proxy.sh +0 -0
  463. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/templates/vast-ray.yml.j2 +0 -0
  464. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/templates/vsphere-ray.yml.j2 +0 -0
  465. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/templates/websocket_proxy.py +0 -0
  466. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/usage/__init__.py +0 -0
  467. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/usage/constants.py +0 -0
  468. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/usage/usage_lib.py +0 -0
  469. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/users/__init__.py +0 -0
  470. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/users/model.conf +0 -0
  471. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/users/permission.py +0 -0
  472. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/users/rbac.py +0 -0
  473. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/users/server.py +0 -0
  474. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/users/token_service.py +0 -0
  475. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/__init__.py +0 -0
  476. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/accelerator_registry.py +0 -0
  477. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/admin_policy_utils.py +0 -0
  478. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/annotations.py +0 -0
  479. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/atomic.py +0 -0
  480. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/aws/__init__.py +0 -0
  481. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/aws/get_default_security_group.py +0 -0
  482. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/benchmark_utils.py +0 -0
  483. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/cli_utils/__init__.py +0 -0
  484. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/cli_utils/status_utils.py +0 -0
  485. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/cluster_utils.py +0 -0
  486. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/command_runner.py +0 -0
  487. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/command_runner.pyi +0 -0
  488. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/common.py +0 -0
  489. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/config_utils.py +0 -0
  490. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/context.py +0 -0
  491. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/context_utils.py +0 -0
  492. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/control_master_utils.py +0 -0
  493. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/controller_utils.py +0 -0
  494. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/dag_utils.py +0 -0
  495. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/db/__init__.py +0 -0
  496. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/db/db_utils.py +0 -0
  497. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/db/migration_utils.py +0 -0
  498. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/directory_utils.py +0 -0
  499. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/env_options.py +0 -0
  500. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/git.py +0 -0
  501. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/git_clone.sh +0 -0
  502. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/infra_utils.py +0 -0
  503. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/kubernetes/__init__.py +0 -0
  504. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/kubernetes/cleanup-tunnel.sh +0 -0
  505. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/kubernetes/config_map_utils.py +0 -0
  506. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/kubernetes/create_cluster.sh +0 -0
  507. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/kubernetes/delete_cluster.sh +0 -0
  508. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/kubernetes/deploy_remote_cluster.py +0 -0
  509. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/kubernetes/exec_kubeconfig_converter.py +0 -0
  510. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/kubernetes/generate_kind_config.py +0 -0
  511. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/kubernetes/generate_kubeconfig.sh +0 -0
  512. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/kubernetes/gpu_labeler.py +0 -0
  513. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/kubernetes/k8s_gpu_labeler_job.yaml +0 -0
  514. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml +0 -0
  515. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/kubernetes/kubernetes_deploy_utils.py +0 -0
  516. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/kubernetes/rsync_helper.sh +0 -0
  517. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/kubernetes/ssh-tunnel.sh +0 -0
  518. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/kubernetes/ssh_jump_lifecycle_manager.py +0 -0
  519. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/kubernetes/ssh_utils.py +0 -0
  520. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/kubernetes_enums.py +0 -0
  521. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/lock_events.py +0 -0
  522. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/locks.py +0 -0
  523. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/log_utils.py +0 -0
  524. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/message_utils.py +0 -0
  525. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/perf_utils.py +0 -0
  526. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/registry.py +0 -0
  527. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/resources_utils.py +0 -0
  528. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/rich_console_utils.py +0 -0
  529. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/rich_utils.py +0 -0
  530. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/schemas.py +0 -0
  531. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/serialize_utils.py +0 -0
  532. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/status_lib.py +0 -0
  533. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/subprocess_utils.py +0 -0
  534. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/tempstore.py +0 -0
  535. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/timeline.py +0 -0
  536. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/ux_utils.py +0 -0
  537. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/validator.py +0 -0
  538. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/volume.py +0 -0
  539. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/utils/yaml_utils.py +0 -0
  540. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/volumes/__init__.py +0 -0
  541. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/volumes/client/__init__.py +0 -0
  542. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/volumes/client/sdk.py +0 -0
  543. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/volumes/server/__init__.py +0 -0
  544. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/volumes/server/core.py +0 -0
  545. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/volumes/server/server.py +0 -0
  546. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/volumes/utils.py +0 -0
  547. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/volumes/volume.py +0 -0
  548. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/workspaces/__init__.py +0 -0
  549. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/workspaces/core.py +0 -0
  550. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/workspaces/server.py +0 -0
  551. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/sky/workspaces/utils.py +0 -0
  552. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/skypilot_nightly.egg-info/dependency_links.txt +0 -0
  553. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/skypilot_nightly.egg-info/entry_points.txt +0 -0
  554. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/skypilot_nightly.egg-info/requires.txt +33 -33
  555. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/skypilot_nightly.egg-info/top_level.txt +0 -0
  556. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/tests/test_api.py +0 -0
  557. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/tests/test_api_compatibility.py +0 -0
  558. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/tests/test_cli.py +0 -0
  559. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/tests/test_config.py +0 -0
  560. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/tests/test_db_utils.py +0 -0
  561. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/tests/test_failover.py +0 -0
  562. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/tests/test_global_user_state.py +0 -0
  563. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/tests/test_jobs.py +0 -0
  564. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/tests/test_jobs_and_serve.py +0 -0
  565. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/tests/test_list_accelerators.py +0 -0
  566. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/tests/test_no_parellel.py +0 -0
  567. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/tests/test_optimizer_dryruns.py +0 -0
  568. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/tests/test_optimizer_random_dag.py +0 -0
  569. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/tests/test_serve_autoscaler.py +0 -0
  570. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/tests/test_smoke.py +0 -0
  571. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/tests/test_ssh_proxy_lag.py +0 -0
  572. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/tests/test_storage.py +0 -0
  573. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/tests/test_wheels.py +0 -0
  574. {skypilot_nightly-1.0.0.dev20250906 → skypilot_nightly-1.0.0.dev20250908}/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.dev20250906
3
+ Version: 1.0.0.dev20250908
4
4
  Summary: SkyPilot: Run AI on Any Infra — Unified, Faster, Cheaper.
5
5
  Author: SkyPilot Team
6
6
  License: Apache 2.0
@@ -145,48 +145,48 @@ Requires-Dist: grpcio>=1.63.0; extra == "server"
145
145
  Requires-Dist: protobuf<7.0.0,>=5.26.1; extra == "server"
146
146
  Requires-Dist: aiosqlite; extra == "server"
147
147
  Provides-Extra: all
148
+ Requires-Dist: grpcio>=1.63.0; extra == "all"
149
+ Requires-Dist: azure-cli>=2.65.0; extra == "all"
150
+ Requires-Dist: msgraph-sdk; extra == "all"
151
+ Requires-Dist: vastai-sdk>=0.1.12; extra == "all"
152
+ Requires-Dist: google-api-python-client>=2.69.0; extra == "all"
153
+ Requires-Dist: botocore>=1.29.10; extra == "all"
154
+ Requires-Dist: pyopenssl<24.3.0,>=23.2.0; extra == "all"
155
+ Requires-Dist: anyio; extra == "all"
156
+ Requires-Dist: docker; extra == "all"
157
+ Requires-Dist: python-dateutil; extra == "all"
158
+ Requires-Dist: websockets; extra == "all"
159
+ Requires-Dist: pyvmomi==8.0.1.0.2; extra == "all"
160
+ Requires-Dist: casbin; extra == "all"
161
+ Requires-Dist: pyjwt; extra == "all"
162
+ Requires-Dist: azure-core>=1.24.0; extra == "all"
163
+ Requires-Dist: azure-mgmt-compute>=33.0.0; extra == "all"
164
+ Requires-Dist: azure-identity>=1.19.0; extra == "all"
165
+ Requires-Dist: aiohttp; extra == "all"
166
+ Requires-Dist: ibm-cloud-sdk-core; extra == "all"
167
+ Requires-Dist: sqlalchemy_adapter; extra == "all"
168
+ Requires-Dist: ray[default]!=2.6.0,>=2.2.0; extra == "all"
148
169
  Requires-Dist: oci; extra == "all"
170
+ Requires-Dist: azure-core>=1.31.0; extra == "all"
171
+ Requires-Dist: runpod>=1.6.1; extra == "all"
172
+ Requires-Dist: ibm-vpc; extra == "all"
173
+ Requires-Dist: msrestazure; extra == "all"
149
174
  Requires-Dist: google-cloud-storage; extra == "all"
150
- Requires-Dist: ray[default]!=2.6.0,>=2.2.0; extra == "all"
151
175
  Requires-Dist: colorama<0.4.5; extra == "all"
176
+ Requires-Dist: azure-mgmt-network>=27.0.0; extra == "all"
152
177
  Requires-Dist: aiosqlite; extra == "all"
153
- Requires-Dist: azure-identity>=1.19.0; extra == "all"
154
- Requires-Dist: vastai-sdk>=0.1.12; extra == "all"
178
+ Requires-Dist: pydo>=0.3.0; extra == "all"
155
179
  Requires-Dist: boto3>=1.26.1; extra == "all"
156
- Requires-Dist: azure-core>=1.24.0; extra == "all"
157
- Requires-Dist: azure-common; extra == "all"
158
- Requires-Dist: cudo-compute>=0.1.10; extra == "all"
180
+ Requires-Dist: ibm-platform-services>=0.48.0; extra == "all"
159
181
  Requires-Dist: kubernetes!=32.0.0,>=20.0.0; extra == "all"
182
+ Requires-Dist: nebius>=0.2.47; extra == "all"
183
+ Requires-Dist: cudo-compute>=0.1.10; extra == "all"
184
+ Requires-Dist: azure-storage-blob>=12.23.1; extra == "all"
185
+ Requires-Dist: awscli>=1.27.10; extra == "all"
160
186
  Requires-Dist: protobuf<7.0.0,>=5.26.1; extra == "all"
161
- Requires-Dist: pyjwt; extra == "all"
162
- Requires-Dist: grpcio>=1.63.0; extra == "all"
163
- Requires-Dist: sqlalchemy_adapter; extra == "all"
164
- Requires-Dist: ibm-cloud-sdk-core; extra == "all"
187
+ Requires-Dist: azure-common; extra == "all"
165
188
  Requires-Dist: passlib; extra == "all"
166
- Requires-Dist: awscli>=1.27.10; extra == "all"
167
- Requires-Dist: aiohttp; extra == "all"
168
- Requires-Dist: azure-mgmt-compute>=33.0.0; extra == "all"
169
189
  Requires-Dist: ibm-cos-sdk; extra == "all"
170
- Requires-Dist: pyopenssl<24.3.0,>=23.2.0; extra == "all"
171
- Requires-Dist: ibm-vpc; extra == "all"
172
- Requires-Dist: runpod>=1.6.1; extra == "all"
173
- Requires-Dist: nebius>=0.2.47; extra == "all"
174
- Requires-Dist: msgraph-sdk; extra == "all"
175
- Requires-Dist: websockets; extra == "all"
176
- Requires-Dist: anyio; extra == "all"
177
- Requires-Dist: docker; extra == "all"
178
- Requires-Dist: pyvmomi==8.0.1.0.2; extra == "all"
179
- Requires-Dist: azure-cli>=2.65.0; extra == "all"
180
- Requires-Dist: pydo>=0.3.0; extra == "all"
181
- Requires-Dist: google-api-python-client>=2.69.0; extra == "all"
182
- Requires-Dist: msrestazure; extra == "all"
183
- Requires-Dist: ibm-platform-services>=0.48.0; extra == "all"
184
- Requires-Dist: azure-storage-blob>=12.23.1; extra == "all"
185
- Requires-Dist: python-dateutil; extra == "all"
186
- Requires-Dist: casbin; extra == "all"
187
- Requires-Dist: azure-core>=1.31.0; extra == "all"
188
- Requires-Dist: azure-mgmt-network>=27.0.0; extra == "all"
189
- Requires-Dist: botocore>=1.29.10; extra == "all"
190
190
  Dynamic: author
191
191
  Dynamic: classifier
192
192
  Dynamic: description
@@ -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 = '5f5c370acf6a60ccb53feb289f87f77ae0960e3b'
10
+ _SKYPILOT_COMMIT_SHA = 'b524e8144d09fdae15d26ccdc977b0752027070c'
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.dev20250906'
40
+ __version__ = '1.0.0.dev20250908'
41
41
  __root_dir__ = directory_utils.get_sky_dir()
42
42
 
43
43
 
@@ -1,9 +1,10 @@
1
1
  """Lazy import for modules to avoid import error when not used."""
2
+ from importlib import util as importlib_util
2
3
  import functools
3
4
  import importlib
4
5
  import threading
5
6
  import types
6
- from typing import Any, Callable, Optional, Tuple
7
+ from typing import Any, Callable, List, Optional, Tuple
7
8
 
8
9
 
9
10
  class LazyImport(types.ModuleType):
@@ -78,3 +79,25 @@ def load_lazy_modules(modules: Tuple[LazyImport, ...]):
78
79
  return wrapper
79
80
 
80
81
  return decorator
82
+
83
+
84
+ def can_import_modules(module_names: List[str]) -> bool:
85
+ """ module availability without actually importing it to
86
+ save memory footprint.
87
+
88
+ Args:
89
+ module_names: List[str], the names of the modules to check.
90
+
91
+ Returns:
92
+ True if all modules are available, False otherwise.
93
+ If a module exists in sys.modules, but is set to None,
94
+ then it is considered as not available.
95
+ """
96
+ try:
97
+ for module_name in module_names:
98
+ module_spec = importlib_util.find_spec(module_name)
99
+ if module_spec is None:
100
+ return False
101
+ return True
102
+ except ValueError:
103
+ return False
@@ -1,7 +1,5 @@
1
1
  """Digital Ocean cloud adaptors"""
2
2
 
3
- # pylint: disable=import-outside-toplevel
4
-
5
3
  from sky.adaptors import common
6
4
 
7
5
  _IMPORT_ERROR_MESSAGE = ('Failed to import dependencies for DO. '
@@ -16,5 +14,13 @@ _LAZY_MODULES = (pydo, azure)
16
14
  @common.load_lazy_modules(modules=_LAZY_MODULES)
17
15
  def exceptions():
18
16
  """Azure exceptions."""
17
+ # pylint: disable=import-outside-toplevel
19
18
  from azure.core import exceptions as azure_exceptions
20
19
  return azure_exceptions
20
+
21
+
22
+ def check_exceptions_dependencies_installed():
23
+ """Check if the azure.core.exceptions module is installed."""
24
+ if not common.can_import_modules(['azure.core.exceptions']):
25
+ return False, _IMPORT_ERROR_MESSAGE
26
+ return True, None
@@ -17,6 +17,7 @@ from sky import provision as provision_lib
17
17
  from sky import sky_logging
18
18
  from sky import skypilot_config
19
19
  from sky.adaptors import aws
20
+ from sky.adaptors import common
20
21
  from sky.catalog import common as catalog_common
21
22
  from sky.clouds.utils import aws_utils
22
23
  from sky.skylet import constants
@@ -787,12 +788,9 @@ class AWS(clouds.Cloud):
787
788
  stderr=subprocess.PIPE)
788
789
  if proc.returncode != 0:
789
790
  return False, dependency_installation_hints
790
- try:
791
- # Checks if aws boto is installed properly
792
- # pylint: disable=import-outside-toplevel, unused-import
793
- import boto3
794
- import botocore
795
- except ImportError:
791
+
792
+ # Checks if aws boto is installed properly
793
+ if not common.can_import_modules(['boto3', 'botocore']):
796
794
  return False, dependency_installation_hints
797
795
 
798
796
  # Checks if AWS credentials 1) exist and 2) are valid.
@@ -15,6 +15,7 @@ from sky import exceptions
15
15
  from sky import sky_logging
16
16
  from sky import skypilot_config
17
17
  from sky.adaptors import azure
18
+ from sky.adaptors import common as adaptors_common
18
19
  from sky.clouds.utils import azure_utils
19
20
  from sky.utils import annotations
20
21
  from sky.utils import common_utils
@@ -546,6 +547,7 @@ class Azure(clouds.Cloud):
546
547
  @classmethod
547
548
  def _check_credentials(cls) -> Tuple[bool, Optional[str]]:
548
549
  """Checks if the user has access credentials to this cloud."""
550
+
549
551
  help_str = (
550
552
  ' Run the following commands:'
551
553
  f'\n{cls._INDENT_PREFIX} $ az login'
@@ -561,6 +563,16 @@ class Azure(clouds.Cloud):
561
563
  return (False,
562
564
  f'{azure_token_cache_file} does not exist.' + help_str)
563
565
 
566
+ dependency_installation_hints = (
567
+ 'Azure dependencies are not installed. '
568
+ 'Run the following commands:'
569
+ f'\n{cls._INDENT_PREFIX} $ pip install skypilot[azure]'
570
+ f'\n{cls._INDENT_PREFIX}Credentials may also need to be set.')
571
+ # Check if the azure blob storage dependencies are installed.
572
+ if not adaptors_common.can_import_modules(
573
+ ['azure.storage.blob', 'msgraph']):
574
+ return False, dependency_installation_hints
575
+
564
576
  try:
565
577
  _run_output('az --version')
566
578
  except subprocess.CalledProcessError as e:
@@ -580,19 +592,6 @@ class Azure(clouds.Cloud):
580
592
  return False, (f'Getting user\'s Azure identity failed.{help_str}\n'
581
593
  f'{cls._INDENT_PREFIX}Details: '
582
594
  f'{common_utils.format_exception(e)}')
583
-
584
- # Check if the azure blob storage dependencies are installed.
585
- try:
586
- # pylint: disable=redefined-outer-name, import-outside-toplevel, unused-import
587
- from azure.storage import blob
588
- import msgraph
589
- except ImportError as e:
590
- return False, (
591
- f'Azure blob storage depdencies are not installed. '
592
- 'Run the following commands:'
593
- f'\n{cls._INDENT_PREFIX} $ pip install skypilot[azure]'
594
- f'\n{cls._INDENT_PREFIX}Details: '
595
- f'{common_utils.format_exception(e)}')
596
595
  return True, None
597
596
 
598
597
  def get_credential_file_mounts(self) -> Dict[str, str]:
@@ -5,6 +5,7 @@ from typing import Dict, Iterator, List, Optional, Tuple, Union
5
5
 
6
6
  from sky import catalog
7
7
  from sky import clouds
8
+ from sky.adaptors import common
8
9
  from sky.utils import common_utils
9
10
  from sky.utils import registry
10
11
  from sky.utils import resources_utils
@@ -287,14 +288,9 @@ class Cudo(clouds.Cloud):
287
288
  cls) -> Tuple[bool, Optional[Union[str, Dict[str, str]]]]:
288
289
  """Checks if the user has access credentials to
289
290
  Cudo's compute service."""
290
- try:
291
- # pylint: disable=import-outside-toplevel,unused-import
292
- from cudo_compute import cudo_api
293
- except (ImportError, subprocess.CalledProcessError) as e:
294
- return False, (
295
- f'{cls._DEPENDENCY_HINT}\n'
296
- f'{cls._INDENT_PREFIX}'
297
- f'{common_utils.format_exception(e, use_bracket=True)}')
291
+ if not common.can_import_modules(['cudo_api']):
292
+ return False, (f'{cls._DEPENDENCY_HINT}\n'
293
+ f'{cls._INDENT_PREFIX}')
298
294
 
299
295
  try:
300
296
  _run_output('cudoctl --version')
@@ -283,18 +283,17 @@ class DO(clouds.Cloud):
283
283
  """Verify that the user has valid credentials for
284
284
  DO's compute service."""
285
285
 
286
- try:
287
- do.exceptions()
288
- except ImportError as err:
289
- return False, str(err)
286
+ installed, err_msg = do.check_exceptions_dependencies_installed()
287
+ if not installed:
288
+ return False, err_msg
290
289
 
291
290
  try:
292
291
  # attempt to make a CURL request for listing instances
293
292
  do_utils.client().droplets.list()
294
- except do.exceptions().HttpResponseError as err:
295
- return False, str(err)
296
293
  except do_utils.DigitalOceanError as err:
297
294
  return False, str(err)
295
+ except do.exceptions().HttpResponseError as err:
296
+ return False, str(err)
298
297
 
299
298
  return True, None
300
299
 
@@ -28,6 +28,7 @@ from typing import Any, Dict, Iterator, List, Optional, Tuple, Union
28
28
  from sky import catalog
29
29
  from sky import clouds
30
30
  from sky import exceptions
31
+ from sky.adaptors import common
31
32
  from sky.adaptors import oci as oci_adaptor
32
33
  from sky.clouds.utils import oci_utils
33
34
  from sky.provision.oci.query_utils import query_helper
@@ -454,13 +455,12 @@ class OCI(clouds.Cloud):
454
455
  f'{cls._INDENT_PREFIX} region=us-sanjose-1\n'
455
456
  f'{cls._INDENT_PREFIX} key_file=~/.oci/oci_api_key.pem')
456
457
 
457
- try:
458
- # pylint: disable=import-outside-toplevel,unused-import
459
- import oci
460
- except ImportError:
461
- return False, ('`oci` is not installed. Install it with: '
462
- 'pip install oci\n'
463
- f'{cls._INDENT_PREFIX}{short_credential_help_str}')
458
+ dependency_error_msg = (
459
+ '`oci` is not installed. Install it with: '
460
+ 'pip install oci\n'
461
+ f'{cls._INDENT_PREFIX}{short_credential_help_str}')
462
+ if not common.can_import_modules(['oci']):
463
+ return False, dependency_error_msg
464
464
 
465
465
  conf_file = oci_adaptor.get_config_file()
466
466
 
@@ -1,5 +1,7 @@
1
1
  """ RunPod Cloud. """
2
2
 
3
+ from importlib import util as import_lib_util
4
+ import os
3
5
  import typing
4
6
  from typing import Dict, Iterator, List, Optional, Tuple, Union
5
7
 
@@ -12,9 +14,7 @@ if typing.TYPE_CHECKING:
12
14
  from sky import resources as resources_lib
13
15
  from sky.utils import volume as volume_lib
14
16
 
15
- _CREDENTIAL_FILES = [
16
- 'config.toml',
17
- ]
17
+ _CREDENTIAL_FILE = 'config.toml'
18
18
 
19
19
 
20
20
  @registry.CLOUD_REGISTRY.register
@@ -285,30 +285,71 @@ class RunPod(clouds.Cloud):
285
285
 
286
286
  @classmethod
287
287
  def _check_credentials(cls) -> Tuple[bool, Optional[str]]:
288
- """ Verify that the user has valid credentials for RunPod. """
288
+ """Verify that the user has valid credentials for RunPod. """
289
+ dependency_error_msg = ('Failed to import runpod. '
290
+ 'To install, run: pip install skypilot[runpod]')
289
291
  try:
290
- import runpod # pylint: disable=import-outside-toplevel
291
- valid, error = runpod.check_credentials()
292
+ runpod_spec = import_lib_util.find_spec('runpod')
293
+ if runpod_spec is None:
294
+ return False, dependency_error_msg
295
+ toml_spec = import_lib_util.find_spec('toml')
296
+ if toml_spec is None:
297
+ return False, dependency_error_msg
298
+ except ValueError:
299
+ # docstring of importlib_util.find_spec:
300
+ # First, sys.modules is checked to see if the module was alread
301
+ # imported.
302
+ # If so, then sys.modules[name].__spec__ is returned.
303
+ # If that happens to be set to None, then ValueError is raised.
304
+ return False, dependency_error_msg
305
+
306
+ valid, error = cls._check_runpod_credentials()
307
+ if not valid:
308
+ return False, (
309
+ f'{error} \n' # First line is indented by 4 spaces
310
+ ' Credentials can be set up by running: \n'
311
+ f' $ pip install runpod \n'
312
+ f' $ runpod config\n'
313
+ ' For more information, see https://docs.skypilot.co/en/latest/getting-started/installation.html#runpod' # pylint: disable=line-too-long
314
+ )
292
315
 
293
- if not valid:
316
+ return True, None
317
+
318
+ @classmethod
319
+ def _check_runpod_credentials(cls, profile: str = 'default'):
320
+ """Checks if the credentials file exists and is valid."""
321
+ credential_file = os.path.expanduser(f'~/.runpod/{_CREDENTIAL_FILE}')
322
+ if not os.path.exists(credential_file):
323
+ return False, '~/.runpod/config.toml does not exist.'
324
+
325
+ # we don't need to import toml here if config.toml does not exist,
326
+ # wait until we know the cred file exists.
327
+ import tomli as toml # pylint: disable=import-outside-toplevel
328
+
329
+ # Check for default api_key
330
+ try:
331
+ with open(credential_file, 'rb') as cred_file:
332
+ config = toml.load(cred_file)
333
+
334
+ if profile not in config:
294
335
  return False, (
295
- f'{error} \n' # First line is indented by 4 spaces
296
- ' Credentials can be set up by running: \n'
297
- f' $ pip install runpod \n'
298
- f' $ runpod config\n'
299
- ' For more information, see https://docs.skypilot.co/en/latest/getting-started/installation.html#runpod' # pylint: disable=line-too-long
336
+ f'~/.runpod/config.toml is missing {profile} profile.')
337
+
338
+ if 'api_key' not in config[profile]:
339
+ return (
340
+ False,
341
+ '~/.runpod/config.toml is missing '
342
+ f'api_key for {profile} profile.',
300
343
  )
301
344
 
302
- return True, None
345
+ except (TypeError, ValueError):
346
+ return False, '~/.runpod/config.toml is not a valid TOML file.'
303
347
 
304
- except ImportError:
305
- return False, ('Failed to import runpod. '
306
- 'To install, run: pip install skypilot[runpod]')
348
+ return True, None
307
349
 
308
350
  def get_credential_file_mounts(self) -> Dict[str, str]:
309
351
  return {
310
- f'~/.runpod/{filename}': f'~/.runpod/{filename}'
311
- for filename in _CREDENTIAL_FILES
352
+ f'~/.runpod/{_CREDENTIAL_FILE}': f'~/.runpod/{_CREDENTIAL_FILE}'
312
353
  }
313
354
 
314
355
  @classmethod
@@ -1,10 +1,12 @@
1
1
  """ Vast Cloud. """
2
2
 
3
+ import os
3
4
  import typing
4
5
  from typing import Dict, Iterator, List, Optional, Tuple, Union
5
6
 
6
7
  from sky import catalog
7
8
  from sky import clouds
9
+ from sky.adaptors import common
8
10
  from sky.utils import registry
9
11
  from sky.utils import resources_utils
10
12
 
@@ -12,6 +14,8 @@ if typing.TYPE_CHECKING:
12
14
  from sky import resources as resources_lib
13
15
  from sky.utils import volume as volume_lib
14
16
 
17
+ _CREDENTIAL_PATH = '~/.config/vastai/vast_api_key'
18
+
15
19
 
16
20
  @registry.CLOUD_REGISTRY.register
17
21
  class Vast(clouds.Cloud):
@@ -253,32 +257,27 @@ class Vast(clouds.Cloud):
253
257
  def _check_compute_credentials(
254
258
  cls) -> Tuple[bool, Optional[Union[str, Dict[str, str]]]]:
255
259
  """Checks if the user has valid credentials for
256
- Vast's compute service. """
257
- try:
258
- import vastai_sdk as _vast # pylint: disable=import-outside-toplevel
259
- vast = _vast.VastAI()
260
-
261
- # We only support file pased credential passing
262
- if vast.creds_source != 'FILE':
263
- return False, (
264
- 'error \n' # First line is indented by 4 spaces
265
- ' Credentials can be set up by running: \n'
266
- ' $ pip install vastai\n'
267
- ' $ mkdir -p ~/.config/vastai\n'
268
- ' $ echo [key] > ~/.config/vastai/vast_api_key\n'
269
- ' For more information, see https://skypilot.readthedocs.io/en/latest/getting-started/installation.html#vast' # pylint: disable=line-too-long
270
- )
260
+ Vast's compute service."""
261
+
262
+ dependency_error_msg = ('Failed to import vast. '
263
+ 'To install, run: pip install skypilot[vast]')
264
+ if not common.can_import_modules(['vastai_sdk']):
265
+ return False, dependency_error_msg
271
266
 
272
- return True, None
267
+ if not os.path.exists(os.path.expanduser(_CREDENTIAL_PATH)):
268
+ return False, (
269
+ 'error \n' # First line is indented by 4 spaces
270
+ ' Credentials can be set up by running: \n'
271
+ ' $ pip install vastai\n'
272
+ ' $ mkdir -p ~/.config/vastai\n'
273
+ f' $ echo [key] > {_CREDENTIAL_PATH}\n'
274
+ ' For more information, see https://skypilot.readthedocs.io/en/latest/getting-started/installation.html#vast' # pylint: disable=line-too-long
275
+ )
273
276
 
274
- except ImportError:
275
- return False, ('Failed to import vast. '
276
- 'To install, run: pip install skypilot[vast]')
277
+ return True, None
277
278
 
278
279
  def get_credential_file_mounts(self) -> Dict[str, str]:
279
- return {
280
- '~/.config/vastai/vast_api_key': '~/.config/vastai/vast_api_key'
281
- }
280
+ return {f'{_CREDENTIAL_PATH}': f'{_CREDENTIAL_PATH}'}
282
281
 
283
282
  @classmethod
284
283
  def get_user_identities(cls) -> Optional[List[List[str]]]:
@@ -1,5 +1,4 @@
1
1
  """Vsphere cloud implementation."""
2
- import subprocess
3
2
  import typing
4
3
  from typing import Dict, Iterator, List, Optional, Tuple, Union
5
4
 
@@ -9,7 +8,6 @@ from sky.adaptors import common as adaptors_common
9
8
  from sky.provision.vsphere import vsphere_utils
10
9
  from sky.provision.vsphere.vsphere_utils import get_vsphere_credentials
11
10
  from sky.provision.vsphere.vsphere_utils import initialize_vsphere_data
12
- from sky.utils import common_utils
13
11
  from sky.utils import registry
14
12
  from sky.utils import resources_utils
15
13
 
@@ -278,19 +276,16 @@ class Vsphere(clouds.Cloud):
278
276
  cls) -> Tuple[bool, Optional[Union[str, Dict[str, str]]]]:
279
277
  """Checks if the user has access credentials to
280
278
  vSphere's compute service."""
281
-
282
- try:
283
- # pylint: disable=import-outside-toplevel,unused-import
284
- # Check pyVmomi installation.
285
- import pyVmomi
286
- except (ImportError, subprocess.CalledProcessError) as e:
287
- return False, (
288
- 'vSphere dependencies are not installed. '
289
- 'Run the following commands:'
290
- f'\n{cls._INDENT_PREFIX} $ pip install skypilot[vSphere]'
291
- f'\n{cls._INDENT_PREFIX}Credentials may also need to be set. '
292
- 'For more details. See https://docs.skypilot.co/en/latest/getting-started/installation.html#vmware-vsphere' # pylint: disable=line-too-long
293
- f'{common_utils.format_exception(e, use_bracket=True)}')
279
+ dependency_error_msg = (
280
+ 'vSphere dependencies are not installed. '
281
+ 'Run the following commands:'
282
+ f'\n{cls._INDENT_PREFIX} $ pip install skypilot[vSphere]'
283
+ f'\n{cls._INDENT_PREFIX}Credentials may also need to be set. '
284
+ 'For more details. See https://docs.skypilot.co/en/latest/getting-started/installation.html#vmware-vsphere' # pylint: disable=line-too-long
285
+ )
286
+ # Check pyVmomi installation.
287
+ if not adaptors_common.can_import_modules(['pyVmomi']):
288
+ return False, dependency_error_msg
294
289
 
295
290
  required_keys = ['name', 'username', 'password', 'clusters']
296
291
  skip_key = 'skip_verification'
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-8df25bce0107f4bd.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_error-c66a4e8afc46f17b.js" defer=""></script><script src="/dashboard/_next/static/ZOaq9s6U49jSoGAMkeKqu/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/ZOaq9s6U49jSoGAMkeKqu/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"ZOaq9s6U49jSoGAMkeKqu","assetPrefix":"/dashboard","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-47c64cc05717f8a3.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_error-c66a4e8afc46f17b.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"qikl6zGuwe8BKavteei3r","assetPrefix":"/dashboard","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8969],{68969:function(e,t,o){o.d(t,{Ce:function(){return p},NJ:function(){return h},UA:function(){return u},aT:function(){return i},getManagedJobs:function(){return l},jh:function(){return b},vs:function(){return d}});var r=o(67294),a=o(15821),n=o(93225),c=o(6378),s=o(47145);async function l(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};try{var t;let{allUsers:o=!0,nameMatch:r,userMatch:a,workspaceMatch:c,poolMatch:l,page:i,limit:d,statuses:u}=e,h={all_users:o,verbose:!0};void 0!==r&&(h.name_match=r),void 0!==a&&(h.user_match=a),void 0!==c&&(h.workspace_match=c),void 0!==l&&(h.pool_match=l),void 0!==i&&(h.page=i),void 0!==d&&(h.limit=d),void 0!==u&&u.length>0&&(h.statuses=u);let p=(await s.x.post("/jobs/queue/v2",h)).headers.get("X-Skypilot-Request-ID"),b=await s.x.get("/api/get?request_id=".concat(p));if(500===b.status){try{let e=await b.json();if(e.detail&&e.detail.error)try{let t=JSON.parse(e.detail.error);if(t.type&&t.type===n.iW)return{jobs:[],total:0,controllerStopped:!0}}catch(e){console.error("Error parsing JSON:",e)}}catch(e){console.error("Error parsing JSON:",e)}return{jobs:[],total:0,controllerStopped:!1}}let g=await b.json(),f=g.return_value?JSON.parse(g.return_value):[],m=Array.isArray(f)?f:(null==f?void 0:f.jobs)||[],_=Array.isArray(f)?m.length:null!==(t=null==f?void 0:f.total)&&void 0!==t?t:m.length,y=(null==f?void 0:f.total_no_filter)||_,w=(null==f?void 0:f.status_counts)||{};return{jobs:m.map(e=>{var t;let o=0;e.end_at&&e.submitted_at?o=e.end_at-e.submitted_at:e.submitted_at&&(o=Date.now()/1e3-e.submitted_at);let r=[];e.submitted_at&&r.push({type:"PENDING",timestamp:e.submitted_at}),e.start_at&&r.push({type:"RUNNING",timestamp:e.start_at}),e.end_at&&r.push({type:e.status,timestamp:e.end_at});let a="",n="",c="",s="",l="";try{if(a=e.cloud||"",c=e.cluster_resources,n=e.region||"",a&&(s=a,n&&(s+="/".concat(n))),l=s,e.accelerators){let t=Object.entries(e.accelerators).map(e=>{let[t,o]=e;return"".concat(o,"x").concat(t)}).join(", ");t&&(l+=" (".concat(t,")"))}}catch(t){c=e.cluster_resources}return{id:e.job_id,task_job_id:e._job_id,task:e.task_name,name:e.job_name,job_duration:e.job_duration,total_duration:o,workspace:e.workspace,status:e.status,requested_resources:e.resources,resources_str:c,resources_str_full:e.cluster_resources_full||c,cloud:a,region:e.region,infra:s,full_infra:l,recoveries:e.recovery_count,details:e.details||e.failure_reason,user:e.user_name,user_hash:e.user_hash,submitted_at:e.submitted_at?new Date(1e3*e.submitted_at):null,events:r,dag_yaml:e.user_yaml,entrypoint:e.entrypoint,git_commit:(null===(t=e.metadata)||void 0===t?void 0:t.git_commit)||"-",pool:e.pool,pool_hash:e.pool_hash,current_cluster_name:e.current_cluster_name,job_id_on_pool_cluster:e.job_id_on_pool_cluster}}),total:_,totalNoFilter:y,controllerStopped:!1,statusCounts:w}}catch(e){return console.error("Error fetching managed job data:",e),{jobs:[],total:0,totalNoFilter:0,controllerStopped:!1,statusCounts:{}}}}async function i(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{allUsers:t=!0,nameMatch:o,userMatch:r,workspaceMatch:a,poolMatch:n,page:c=1,limit:s=10,useClientPagination:i=!0}=e;try{if(!i)return await l(e);let d=await l({allUsers:t,nameMatch:o,userMatch:r,workspaceMatch:a,poolMatch:n});if(d.controllerStopped||!d.jobs)return d;let u=d.jobs,h=u.length,p=(c-1)*s;return{jobs:u.slice(p,p+s),total:h,controllerStopped:!1}}catch(e){return console.error("Error fetching managed job data with client pagination:",e),{jobs:[],total:0,controllerStopped:!1}}}async function d(){try{let e=(await s.x.post("/jobs/pool_status",{pool_names:null})).headers.get("X-Skypilot-Request-ID"),t=await s.x.get("/api/get?request_id=".concat(e));if(500===t.status){try{let e=await t.json();if(e.detail&&e.detail.error)try{let t=JSON.parse(e.detail.error);if(t.type&&t.type===n.iW)return{pools:[],controllerStopped:!0}}catch(e){console.error("Failed to parse error JSON:",e)}}catch(e){console.error("Failed to parse response JSON:",e)}throw Error("Server error")}let o=await t.json(),r=o.return_value?JSON.parse(o.return_value):[],a={jobs:[]};try{let e=await l({allUsers:!0});e.controllerStopped||(a=e)}catch(e){console.warn("Failed to fetch jobs for pool job counts:",e)}let c={},i=["SUCCEEDED","FAILED","FAILED_SETUP","FAILED_PRECHECKS","FAILED_NO_RESOURCE","FAILED_CONTROLLER","CANCELLED"];return a.jobs&&Array.isArray(a.jobs)&&a.jobs.forEach(e=>{let t=e.pool,o=e.status;t&&!i.includes(o)&&(c[t]||(c[t]={}),c[t][o]=(c[t][o]||0)+1)}),{pools:r.map(e=>({...e,jobCounts:c[e.name]||{}})),controllerStopped:!1}}catch(e){throw console.error("Error fetching pools:",e),e}}function u(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,[o,a]=(0,r.useState)(null),[n,s]=(0,r.useState)(!0);return(0,r.useEffect)(()=>{(async function(){if(e)try{var t;s(!0);let o=await c.default.get(l,[{allUsers:!0}]),r=null==o?void 0:null===(t=o.jobs)||void 0===t?void 0:t.find(t=>String(t.id)===String(e));r?a({jobs:[r],controllerStopped:o.controllerStopped||!1}):a({jobs:[],controllerStopped:o.controllerStopped||!1})}catch(e){console.error("Error fetching single managed job data:",e),a({jobs:[],controllerStopped:!1})}finally{s(!1)}})()},[e,t]),{jobData:o,loading:n}}async function h(e){let t,{jobId:o,controller:r=!1,signal:c,onNewLog:s}=e,l=Date.now(),i=new Promise(e=>{let o=()=>{let r=Date.now()-l;r>=3e4?e({timeout:!0}):t=setTimeout(o,3e4-r)};t=setTimeout(o,3e4)}),d=window.location.origin,u="".concat(d).concat(n.f4),h=(async()=>{try{let e=(await fetch("".concat(u,"/jobs/logs"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({controller:r,follow:!1,job_id:o,tail:1e4}),...c?{signal:c}:{}})).body.getReader();try{for(;;){let{done:t,value:o}=await e.read();if(t)break;l=Date.now();let r=new TextDecoder().decode(o);s(r)}}finally{if(!c||!c.aborted)try{e.cancel()}catch(e){"AbortError"!==e.name&&console.warn("Error canceling reader:",e)}t&&clearTimeout(t)}return{timeout:!1}}catch(e){if(t&&clearTimeout(t),"AbortError"===e.name)return{timeout:!1};throw e}})(),p=await Promise.race([h,i]);if(t&&clearTimeout(t),p.timeout){(0,a.C)("Log request for job ".concat(o," timed out after ").concat(30,"s of inactivity"),"warning");return}}async function p(e,t,o){let r="",c="",s="",l={};if("restartcontroller"===e)r="Restarting",c="restarted",s="jobs/queue/v2",l={all_users:!0,refresh:!0},t="controller";else throw Error("Invalid action: ".concat(e));(0,a.C)("".concat(r," job ").concat(t,"..."),"info");let i=window.location.origin,d="".concat(i).concat(n.f4);try{try{let e=(await fetch("".concat(d,"/").concat(s),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(l)})).headers.get("X-Skypilot-Request-ID"),i=await fetch("".concat(d,"/api/get?request_id=").concat(e));if(200===i.status)(0,a.C)("Job ".concat(t," ").concat(c," successfully."),"success");else if(500===i.status)try{let e=await i.json();if(e.detail&&e.detail.error)try{let c=JSON.parse(e.detail.error);c.type&&c.type===n.Bo?(0,a.C)("".concat(r," job ").concat(t," is not supported!"),"error",1e4):c.type&&c.type===n.mF?(0,a.C)("Cluster ".concat(o," does not exist."),"error"):c.type&&c.type===n.iW?(0,a.C)("Cluster ".concat(o," is not up."),"error"):(0,a.C)("".concat(r," job ").concat(t," failed: ").concat(c.type),"error")}catch(o){(0,a.C)("".concat(r," job ").concat(t," failed: ").concat(e.detail.error),"error")}else(0,a.C)("".concat(r," job ").concat(t," failed with no details."),"error")}catch(e){(0,a.C)("".concat(r," job ").concat(t," failed with parse error."),"error")}else(0,a.C)("".concat(r," job ").concat(t," failed with status ").concat(i.status,"."),"error")}catch(e){console.error("Fetch error:",e),(0,a.C)("Network error ".concat(r," job ").concat(t,": ").concat(e.message),"error")}}catch(e){console.error("Error in handleStop:",e),(0,a.C)("Critical error ".concat(r," job ").concat(t,": ").concat(e.message),"error")}}async function b(e){let{jobId:t=null,name:o=null,controller:r=!1}=e;try{let e=await s.x.fetch("/jobs/download_logs",{job_id:t,name:o,controller:r,refresh:!1}),c=Object.values(e||{});if(!c.length){(0,a.C)("No logs found to download.","warning");return}let l=window.location.origin,i="".concat(l).concat(n.f4,"/download"),d=await fetch("".concat(i,"?relative=items"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({folder_paths:c})});if(!d.ok){let e=await d.text();throw Error("Download failed: ".concat(d.status," ").concat(e))}let u=await d.blob(),h=window.URL.createObjectURL(u),p=document.createElement("a"),b=new Date().toISOString().replace(/[:.]/g,"-"),g=t?"job-".concat(t):o?"job-".concat(o):"job";p.href=h,p.download="managed-".concat(g,"-").concat(r?"controller-logs":"logs","-").concat(b,".zip"),document.body.appendChild(p),p.click(),p.remove(),window.URL.revokeObjectURL(h)}catch(e){console.error("Error downloading managed job logs:",e),(0,a.C)("Error downloading managed job logs: ".concat(e.message),"error")}}},15821:function(e,t,o){o.d(t,{C:function(){return r}});function r(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"info",o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:5e3,r=document.getElementById("toast-container");r||((r=document.createElement("div")).id="toast-container",r.className="fixed top-0 right-0 p-4 z-[9999] flex flex-col items-end space-y-2",document.body.appendChild(r));let a=document.createElement("div");switch(a.className="rounded-md border-l-4 p-4 shadow-md flex items-center justify-between max-w-md w-full mb-2 pointer-events-auto",t){case"success":a.className+=" bg-green-100 border-green-500 text-green-800";break;case"error":a.className+=" bg-red-100 border-red-500 text-red-800";break;case"warning":a.className+=" bg-yellow-100 border-yellow-500 text-yellow-800";break;default:a.className+=" bg-blue-100 border-blue-500 text-blue-800"}return a.innerHTML='\n <div class="flex-1 mr-2">\n <p class="text-sm font-medium">'.concat(e,'</p>\n </div>\n <button class="text-gray-500 hover:text-gray-700 focus:outline-none" aria-label="Close toast">\n <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">\n <line x1="18" y1="6" x2="6" y2="18"></line>\n <line x1="6" y1="6" x2="18" y2="18"></line>\n </svg>\n </button>\n '),r.appendChild(a),a.querySelector("button").addEventListener("click",()=>{r.removeChild(a)}),setTimeout(()=>{r.contains(a)&&r.removeChild(a)},o),a}},6378:function(e,t,o){o.r(t),o.d(t,{DashboardCache:function(){return a},dashboardCache:function(){return n}});let r=o(51214).ej.DEFAULT_TTL;class a{setPreloader(e){this.preloader=e}async get(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=o.ttl||r,n=!1!==o.refreshOnAccess,c=this._generateKey(e,t),s=e.name||"anonymous",l=this.cache.get(c),i=Date.now();if(l&&i-l.lastUpdated<a){let o=Math.round((i-l.lastUpdated)/1e3);if(this._debug("Cache HIT for ".concat(s," (age: ").concat(o,"s, TTL: ").concat(Math.round(a/1e3),"s)")),n&&(this.cache.set(c,{data:l.data,lastUpdated:i}),this._debug("Cache TTL refreshed for ".concat(s))),!this.backgroundJobs.has(c)){var d;(null===(d=this.preloader)||void 0===d?void 0:d.wasRecentlyPreloaded(e,t))?this._debug("Skipping background refresh for ".concat(s," - recently preloaded")):this._refreshInBackground(e,t,c)}return l.data}try{let o=await e(...t);return this.cache.set(c,{data:o,lastUpdated:i}),o}catch(e){if(l)return console.warn("Failed to fetch fresh data for ".concat(c,", returning stale data:"),e),l.data;throw e}}invalidate(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],o=this._generateKey(e,t);this.cache.delete(o),this.backgroundJobs.delete(o)}invalidateFunction(e){let t=e.name||"anonymous",o=[];for(let e of this.cache.keys())e.startsWith("".concat(t,"_"))&&o.push(e);o.forEach(e=>{this.cache.delete(e),this.backgroundJobs.delete(e)})}clear(){this.cache.clear(),this.backgroundJobs.clear()}getStats(){return{cacheSize:this.cache.size,backgroundJobs:this.backgroundJobs.size,keys:Array.from(this.cache.keys())}}getDetailedStats(){let e=Date.now(),t=[];for(let[o,r]of this.cache.entries()){let a=e-r.lastUpdated;t.push({key:o,age:Math.round(a/1e3),lastUpdated:new Date(r.lastUpdated).toISOString(),hasBackgroundJob:this.backgroundJobs.has(o)})}return{cacheSize:this.cache.size,backgroundJobs:this.backgroundJobs.size,entries:t.sort((e,t)=>e.age-t.age)}}setDebugMode(e){this.debugMode=e}_debug(e){for(var t=arguments.length,o=Array(t>1?t-1:0),r=1;r<t;r++)o[r-1]=arguments[r];this.debugMode&&console.log("[DashboardCache] ".concat(e),...o)}_refreshInBackground(e,t,o){this.backgroundJobs.set(o,!0),e(...t).then(e=>{this.cache.set(o,{data:e,lastUpdated:Date.now()})}).catch(e=>{console.warn("Background refresh failed for ".concat(o,":"),e)}).finally(()=>{this.backgroundJobs.delete(o)})}_generateKey(e,t){let o=function(e){let t=5381;for(let o=0;o<e.length;o++)t=(t<<5)+t+e.charCodeAt(o);return t>>>0}(e.toString()),r=t.length>0?JSON.stringify(t):"";return"".concat(o,"_").concat(r)}constructor(){this.cache=new Map,this.backgroundJobs=new Map,this.debugMode=!1,this.preloader=null}}let n=new a;t.default=n}}]);
@@ -1 +1 @@
1
- !function(){"use strict";var e,t,n,r,c,o,u,a,f,i={},d={};function s(e){var t=d[e];if(void 0!==t)return t.exports;var n=d[e]={exports:{}},r=!0;try{i[e](n,n.exports,s),r=!1}finally{r&&delete d[e]}return n.exports}s.m=i,e=[],s.O=function(t,n,r,c){if(n){c=c||0;for(var o=e.length;o>0&&e[o-1][2]>c;o--)e[o]=e[o-1];e[o]=[n,r,c];return}for(var u=1/0,o=0;o<e.length;o++){for(var n=e[o][0],r=e[o][1],c=e[o][2],a=!0,f=0;f<n.length;f++)u>=c&&Object.keys(s.O).every(function(e){return s.O[e](n[f])})?n.splice(f--,1):(a=!1,c<u&&(u=c));if(a){e.splice(o--,1);var i=r();void 0!==i&&(t=i)}}return t},s.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return s.d(t,{a:t}),t},n=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},s.t=function(e,r){if(1&r&&(e=this(e)),8&r||"object"==typeof e&&e&&(4&r&&e.__esModule||16&r&&"function"==typeof e.then))return e;var c=Object.create(null);s.r(c);var o={};t=t||[null,n({}),n([]),n(n)];for(var u=2&r&&e;"object"==typeof u&&!~t.indexOf(u);u=n(u))Object.getOwnPropertyNames(u).forEach(function(t){o[t]=function(){return e[t]}});return o.default=function(){return e},s.d(c,o),c},s.d=function(e,t){for(var n in t)s.o(t,n)&&!s.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},s.f={},s.e=function(e){return Promise.all(Object.keys(s.f).reduce(function(t,n){return s.f[n](e,t),t},[]))},s.u=function(e){return 2350===e?"static/chunks/2350.fab69e61bac57b23.js":7325===e?"static/chunks/7325.b4bc99ce0892dcd5.js":3937===e?"static/chunks/3937.210053269f121201.js":9025===e?"static/chunks/9025.c12318fb6a1a9093.js":3294===e?"static/chunks/3294.c80326aec9bfed40.js":649===e?"static/chunks/649.b9d7f7d10c1b8c53.js":7669===e?"static/chunks/7669.1f5d9a402bf5cc42.js":4045===e?"static/chunks/4045.b30465273dc5e468.js":4725===e?"static/chunks/4725.10f7a9a5d3ea8208.js":3785===e?"static/chunks/3785.4872a2f3aa489880.js":5339===e?"static/chunks/5339.3fda4a4010ff4e06.js":"static/chunks/"+e+"-"+({616:"3d59f75e2ccf9321",1121:"408ed10b2f9fce17",1141:"943efc7aff0f0c06",1272:"1ef0bf0237faccdb",1836:"37fede578e2da5f8",3015:"86cabed5d4669ad0",3850:"ff4a9a69d978632b",4676:"9da7fdbde90b5549",5739:"d67458fcb1386c92",6130:"2be46d70a38f1e82",6135:"4b4d5e824b7f9d3c",6601:"06114c982db410b6",6856:"6e2bc8a6fd0867af",6989:"01359c57e018caa4",6990:"08b2a1cae076a943",7411:"b15471acd2cba716",8969:"0be3036bf86f8256",9037:"fa1737818d0a0969"})[e]+".js"},s.miniCssF=function(e){},s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),s.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r={},c="_N_E:",s.l=function(e,t,n,o){if(r[e]){r[e].push(t);return}if(void 0!==n)for(var u,a,f=document.getElementsByTagName("script"),i=0;i<f.length;i++){var d=f[i];if(d.getAttribute("src")==e||d.getAttribute("data-webpack")==c+n){u=d;break}}u||(a=!0,(u=document.createElement("script")).charset="utf-8",u.timeout=120,s.nc&&u.setAttribute("nonce",s.nc),u.setAttribute("data-webpack",c+n),u.src=s.tu(e)),r[e]=[t];var b=function(t,n){u.onerror=u.onload=null,clearTimeout(l);var c=r[e];if(delete r[e],u.parentNode&&u.parentNode.removeChild(u),c&&c.forEach(function(e){return e(n)}),t)return t(n)},l=setTimeout(b.bind(null,void 0,{type:"timeout",target:u}),12e4);u.onerror=b.bind(null,u.onerror),u.onload=b.bind(null,u.onload),a&&document.head.appendChild(u)},s.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.tt=function(){return void 0===o&&(o={createScriptURL:function(e){return e}},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(o=trustedTypes.createPolicy("nextjs#bundler",o))),o},s.tu=function(e){return s.tt().createScriptURL(e)},s.p="/dashboard/_next/",u={2272:0},s.f.j=function(e,t){var n=s.o(u,e)?u[e]:void 0;if(0!==n){if(n)t.push(n[2]);else if(2272!=e){var r=new Promise(function(t,r){n=u[e]=[t,r]});t.push(n[2]=r);var c=s.p+s.u(e),o=Error();s.l(c,function(t){if(s.o(u,e)&&(0!==(n=u[e])&&(u[e]=void 0),n)){var r=t&&("load"===t.type?"missing":t.type),c=t&&t.target&&t.target.src;o.message="Loading chunk "+e+" failed.\n("+r+": "+c+")",o.name="ChunkLoadError",o.type=r,o.request=c,n[1](o)}},"chunk-"+e,e)}else u[e]=0}},s.O.j=function(e){return 0===u[e]},a=function(e,t){var n,r,c=t[0],o=t[1],a=t[2],f=0;if(c.some(function(e){return 0!==u[e]})){for(n in o)s.o(o,n)&&(s.m[n]=o[n]);if(a)var i=a(s)}for(e&&e(t);f<c.length;f++)r=c[f],s.o(u,r)&&u[r]&&u[r][0](),u[r]=0;return s.O(i)},(f=self.webpackChunk_N_E=self.webpackChunk_N_E||[]).forEach(a.bind(null,0)),f.push=a.bind(null,f.push.bind(f)),s.nc=void 0}();
1
+ !function(){"use strict";var e,t,n,r,c,o,u,a,f,i={},d={};function s(e){var t=d[e];if(void 0!==t)return t.exports;var n=d[e]={exports:{}},r=!0;try{i[e](n,n.exports,s),r=!1}finally{r&&delete d[e]}return n.exports}s.m=i,e=[],s.O=function(t,n,r,c){if(n){c=c||0;for(var o=e.length;o>0&&e[o-1][2]>c;o--)e[o]=e[o-1];e[o]=[n,r,c];return}for(var u=1/0,o=0;o<e.length;o++){for(var n=e[o][0],r=e[o][1],c=e[o][2],a=!0,f=0;f<n.length;f++)u>=c&&Object.keys(s.O).every(function(e){return s.O[e](n[f])})?n.splice(f--,1):(a=!1,c<u&&(u=c));if(a){e.splice(o--,1);var i=r();void 0!==i&&(t=i)}}return t},s.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return s.d(t,{a:t}),t},n=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},s.t=function(e,r){if(1&r&&(e=this(e)),8&r||"object"==typeof e&&e&&(4&r&&e.__esModule||16&r&&"function"==typeof e.then))return e;var c=Object.create(null);s.r(c);var o={};t=t||[null,n({}),n([]),n(n)];for(var u=2&r&&e;"object"==typeof u&&!~t.indexOf(u);u=n(u))Object.getOwnPropertyNames(u).forEach(function(t){o[t]=function(){return e[t]}});return o.default=function(){return e},s.d(c,o),c},s.d=function(e,t){for(var n in t)s.o(t,n)&&!s.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},s.f={},s.e=function(e){return Promise.all(Object.keys(s.f).reduce(function(t,n){return s.f[n](e,t),t},[]))},s.u=function(e){return 2350===e?"static/chunks/2350.fab69e61bac57b23.js":7325===e?"static/chunks/7325.b4bc99ce0892dcd5.js":3937===e?"static/chunks/3937.210053269f121201.js":9025===e?"static/chunks/9025.c12318fb6a1a9093.js":3294===e?"static/chunks/3294.c80326aec9bfed40.js":649===e?"static/chunks/649.b9d7f7d10c1b8c53.js":7669===e?"static/chunks/7669.1f5d9a402bf5cc42.js":4045===e?"static/chunks/4045.b30465273dc5e468.js":4725===e?"static/chunks/4725.10f7a9a5d3ea8208.js":5339===e?"static/chunks/5339.3fda4a4010ff4e06.js":3785===e?"static/chunks/3785.4872a2f3aa489880.js":"static/chunks/"+e+"-"+({616:"3d59f75e2ccf9321",1121:"408ed10b2f9fce17",1141:"943efc7aff0f0c06",1272:"1ef0bf0237faccdb",1836:"37fede578e2da5f8",3015:"86cabed5d4669ad0",3850:"ff4a9a69d978632b",4676:"9da7fdbde90b5549",5739:"d67458fcb1386c92",6130:"2be46d70a38f1e82",6135:"4b4d5e824b7f9d3c",6601:"06114c982db410b6",6856:"6e2bc8a6fd0867af",6989:"01359c57e018caa4",6990:"08b2a1cae076a943",7411:"b15471acd2cba716",8969:"0487dfbf149d9e53",9037:"fa1737818d0a0969"})[e]+".js"},s.miniCssF=function(e){},s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),s.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r={},c="_N_E:",s.l=function(e,t,n,o){if(r[e]){r[e].push(t);return}if(void 0!==n)for(var u,a,f=document.getElementsByTagName("script"),i=0;i<f.length;i++){var d=f[i];if(d.getAttribute("src")==e||d.getAttribute("data-webpack")==c+n){u=d;break}}u||(a=!0,(u=document.createElement("script")).charset="utf-8",u.timeout=120,s.nc&&u.setAttribute("nonce",s.nc),u.setAttribute("data-webpack",c+n),u.src=s.tu(e)),r[e]=[t];var b=function(t,n){u.onerror=u.onload=null,clearTimeout(l);var c=r[e];if(delete r[e],u.parentNode&&u.parentNode.removeChild(u),c&&c.forEach(function(e){return e(n)}),t)return t(n)},l=setTimeout(b.bind(null,void 0,{type:"timeout",target:u}),12e4);u.onerror=b.bind(null,u.onerror),u.onload=b.bind(null,u.onload),a&&document.head.appendChild(u)},s.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.tt=function(){return void 0===o&&(o={createScriptURL:function(e){return e}},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(o=trustedTypes.createPolicy("nextjs#bundler",o))),o},s.tu=function(e){return s.tt().createScriptURL(e)},s.p="/dashboard/_next/",u={2272:0},s.f.j=function(e,t){var n=s.o(u,e)?u[e]:void 0;if(0!==n){if(n)t.push(n[2]);else if(2272!=e){var r=new Promise(function(t,r){n=u[e]=[t,r]});t.push(n[2]=r);var c=s.p+s.u(e),o=Error();s.l(c,function(t){if(s.o(u,e)&&(0!==(n=u[e])&&(u[e]=void 0),n)){var r=t&&("load"===t.type?"missing":t.type),c=t&&t.target&&t.target.src;o.message="Loading chunk "+e+" failed.\n("+r+": "+c+")",o.name="ChunkLoadError",o.type=r,o.request=c,n[1](o)}},"chunk-"+e,e)}else u[e]=0}},s.O.j=function(e){return 0===u[e]},a=function(e,t){var n,r,c=t[0],o=t[1],a=t[2],f=0;if(c.some(function(e){return 0!==u[e]})){for(n in o)s.o(o,n)&&(s.m[n]=o[n]);if(a)var i=a(s)}for(e&&e(t);f<c.length;f++)r=c[f],s.o(u,r)&&u[r]&&u[r][0](),u[r]=0;return s.O(i)},(f=self.webpackChunk_N_E=self.webpackChunk_N_E||[]).forEach(a.bind(null,0)),f.push=a.bind(null,f.push.bind(f)),s.nc=void 0}();