skypilot-nightly 1.0.0.dev20250815__tar.gz → 1.0.0.dev20250817__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 (565) hide show
  1. {skypilot_nightly-1.0.0.dev20250815/skypilot_nightly.egg-info → skypilot_nightly-1.0.0.dev20250817}/PKG-INFO +2 -2
  2. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/README.md +1 -1
  3. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/__init__.py +2 -2
  4. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/backends/backend.py +5 -3
  5. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/backends/backend_utils.py +16 -5
  6. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/backends/cloud_vm_ray_backend.py +37 -14
  7. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/backends/local_docker_backend.py +8 -3
  8. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/client/cli/command.py +3 -2
  9. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/client/sdk.py +1 -1
  10. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/core.py +9 -3
  11. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/404.html +1 -1
  12. skypilot_nightly-1.0.0.dev20250817/sky/dashboard/out/_next/static/chunks/1121-2edb8ab2ba080a76.js +1 -0
  13. skypilot_nightly-1.0.0.dev20250815/sky/dashboard/out/_next/static/chunks/3785.8ce85b31e5c602e9.js → skypilot_nightly-1.0.0.dev20250817/sky/dashboard/out/_next/static/chunks/3785.bc5d2853355c9c47.js +1 -1
  14. skypilot_nightly-1.0.0.dev20250817/sky/dashboard/out/_next/static/chunks/4725.10f7a9a5d3ea8208.js +1 -0
  15. skypilot_nightly-1.0.0.dev20250817/sky/dashboard/out/_next/static/chunks/6601-06114c982db410b6.js +1 -0
  16. skypilot_nightly-1.0.0.dev20250817/sky/dashboard/out/_next/static/chunks/7669.1f5d9a402bf5cc42.js +36 -0
  17. skypilot_nightly-1.0.0.dev20250815/sky/dashboard/out/_next/static/chunks/6014.d466a44b73af8348.js → skypilot_nightly-1.0.0.dev20250817/sky/dashboard/out/_next/static/chunks/9984.7eb6cc51fb460cae.js +2 -2
  18. skypilot_nightly-1.0.0.dev20250817/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-06afb50d25f7c61f.js +16 -0
  19. skypilot_nightly-1.0.0.dev20250815/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-30c5954a7b1f67d7.js → skypilot_nightly-1.0.0.dev20250817/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-ec747e4f2dc39b57.js +1 -1
  20. skypilot_nightly-1.0.0.dev20250815/sky/dashboard/out/_next/static/chunks/pages/clusters-fa94c3548b5834aa.js → skypilot_nightly-1.0.0.dev20250817/sky/dashboard/out/_next/static/chunks/pages/clusters-469814d711d63b1b.js +1 -1
  21. skypilot_nightly-1.0.0.dev20250815/sky/dashboard/out/_next/static/chunks/pages/infra/[context]-5264c5645299cde9.js → skypilot_nightly-1.0.0.dev20250817/sky/dashboard/out/_next/static/chunks/pages/infra/[context]-81351f95f3bec08e.js +1 -1
  22. skypilot_nightly-1.0.0.dev20250817/sky/dashboard/out/_next/static/chunks/pages/infra-c320641c2bcbbea6.js +1 -0
  23. skypilot_nightly-1.0.0.dev20250815/sky/dashboard/out/_next/static/chunks/pages/jobs-c6a6a8a737ad7e2d.js → skypilot_nightly-1.0.0.dev20250817/sky/dashboard/out/_next/static/chunks/pages/jobs-4b3ba1792dc6f21d.js +1 -1
  24. skypilot_nightly-1.0.0.dev20250815/sky/dashboard/out/_next/static/chunks/pages/users-d112a9b3d854abb2.js → skypilot_nightly-1.0.0.dev20250817/sky/dashboard/out/_next/static/chunks/pages/users-018bf31cda52e11b.js +1 -1
  25. skypilot_nightly-1.0.0.dev20250815/sky/dashboard/out/_next/static/chunks/pages/volumes-b87fec189298a0c0.js → skypilot_nightly-1.0.0.dev20250817/sky/dashboard/out/_next/static/chunks/pages/volumes-739726d6b823f532.js +1 -1
  26. skypilot_nightly-1.0.0.dev20250815/sky/dashboard/out/_next/static/chunks/pages/workspaces/[name]-8a86ca4c98812df9.js → skypilot_nightly-1.0.0.dev20250817/sky/dashboard/out/_next/static/chunks/pages/workspaces/[name]-65f72dee417237ef.js +1 -1
  27. skypilot_nightly-1.0.0.dev20250815/sky/dashboard/out/_next/static/chunks/pages/workspaces-74ef46fc370f7c71.js → skypilot_nightly-1.0.0.dev20250817/sky/dashboard/out/_next/static/chunks/pages/workspaces-338de9df523d883a.js +1 -1
  28. skypilot_nightly-1.0.0.dev20250817/sky/dashboard/out/_next/static/chunks/webpack-b6987eb47888da9c.js +1 -0
  29. skypilot_nightly-1.0.0.dev20250817/sky/dashboard/out/_next/static/s93sHgT13r_pnzP1An3gW/_buildManifest.js +1 -0
  30. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/clusters/[cluster]/[job].html +1 -1
  31. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/clusters/[cluster].html +1 -1
  32. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/clusters.html +1 -1
  33. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/config.html +1 -1
  34. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/index.html +1 -1
  35. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/infra/[context].html +1 -1
  36. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/infra.html +1 -1
  37. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/jobs/[job].html +1 -1
  38. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/jobs/pools/[pool].html +1 -1
  39. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/jobs.html +1 -1
  40. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/users.html +1 -1
  41. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/volumes.html +1 -1
  42. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/workspace/new.html +1 -1
  43. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/workspaces/[name].html +1 -1
  44. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/workspaces.html +1 -1
  45. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/data/storage_utils.py +29 -9
  46. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/global_user_state.py +3 -1
  47. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/jobs/recovery_strategy.py +0 -3
  48. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/jobs/utils.py +0 -3
  49. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/kubernetes/instance.py +2 -1
  50. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/schemas/api/responses.py +50 -1
  51. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/server/common.py +2 -3
  52. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/server/requests/serializers/decoders.py +8 -3
  53. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/server/requests/serializers/encoders.py +11 -6
  54. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/server/server.py +13 -9
  55. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/cli_utils/status_utils.py +2 -1
  56. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817/skypilot_nightly.egg-info}/PKG-INFO +2 -2
  57. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/skypilot_nightly.egg-info/SOURCES.txt +23 -23
  58. skypilot_nightly-1.0.0.dev20250815/sky/dashboard/out/_next/static/I-djf3wB8zZl_bI67BOyZ/_buildManifest.js +0 -1
  59. skypilot_nightly-1.0.0.dev20250815/sky/dashboard/out/_next/static/chunks/4509-fa63866741388427.js +0 -1
  60. skypilot_nightly-1.0.0.dev20250815/sky/dashboard/out/_next/static/chunks/4725.68d5ce4d6bcb7991.js +0 -1
  61. skypilot_nightly-1.0.0.dev20250815/sky/dashboard/out/_next/static/chunks/7557-5855617d0421ed55.js +0 -1
  62. skypilot_nightly-1.0.0.dev20250815/sky/dashboard/out/_next/static/chunks/8310.4ae62d5937045bf3.js +0 -31
  63. skypilot_nightly-1.0.0.dev20250815/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-6d43d6a6bd1d4c77.js +0 -11
  64. skypilot_nightly-1.0.0.dev20250815/sky/dashboard/out/_next/static/chunks/pages/infra-83991650ae4bd083.js +0 -1
  65. skypilot_nightly-1.0.0.dev20250815/sky/dashboard/out/_next/static/chunks/webpack-aba778a6d6eb496d.js +0 -1
  66. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/LICENSE +0 -0
  67. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/MANIFEST.in +0 -0
  68. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/pyproject.toml +0 -0
  69. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/setup.cfg +0 -0
  70. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/setup.py +0 -0
  71. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/adaptors/__init__.py +0 -0
  72. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/adaptors/aws.py +0 -0
  73. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/adaptors/azure.py +0 -0
  74. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/adaptors/cloudflare.py +0 -0
  75. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/adaptors/common.py +0 -0
  76. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/adaptors/cudo.py +0 -0
  77. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/adaptors/do.py +0 -0
  78. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/adaptors/docker.py +0 -0
  79. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/adaptors/gcp.py +0 -0
  80. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/adaptors/hyperbolic.py +0 -0
  81. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/adaptors/ibm.py +0 -0
  82. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/adaptors/kubernetes.py +0 -0
  83. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/adaptors/nebius.py +0 -0
  84. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/adaptors/oci.py +0 -0
  85. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/adaptors/runpod.py +0 -0
  86. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/adaptors/vast.py +0 -0
  87. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/adaptors/vsphere.py +0 -0
  88. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/admin_policy.py +0 -0
  89. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/authentication.py +0 -0
  90. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/backends/__init__.py +0 -0
  91. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/backends/docker_utils.py +0 -0
  92. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/backends/monkey_patches/monkey_patch_ray_up.py +0 -0
  93. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/backends/wheel_utils.py +0 -0
  94. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/catalog/__init__.py +0 -0
  95. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/catalog/aws_catalog.py +0 -0
  96. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/catalog/azure_catalog.py +0 -0
  97. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/catalog/common.py +0 -0
  98. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/catalog/config.py +0 -0
  99. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/catalog/cudo_catalog.py +0 -0
  100. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/catalog/data_fetchers/__init__.py +0 -0
  101. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/catalog/data_fetchers/analyze.py +0 -0
  102. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/catalog/data_fetchers/fetch_aws.py +0 -0
  103. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/catalog/data_fetchers/fetch_azure.py +0 -0
  104. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/catalog/data_fetchers/fetch_cudo.py +0 -0
  105. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/catalog/data_fetchers/fetch_fluidstack.py +0 -0
  106. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/catalog/data_fetchers/fetch_gcp.py +0 -0
  107. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/catalog/data_fetchers/fetch_hyperbolic.py +0 -0
  108. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/catalog/data_fetchers/fetch_ibm.py +0 -0
  109. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/catalog/data_fetchers/fetch_lambda_cloud.py +0 -0
  110. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/catalog/data_fetchers/fetch_nebius.py +0 -0
  111. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/catalog/data_fetchers/fetch_vast.py +0 -0
  112. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/catalog/data_fetchers/fetch_vsphere.py +0 -0
  113. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/catalog/do_catalog.py +0 -0
  114. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/catalog/fluidstack_catalog.py +0 -0
  115. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/catalog/gcp_catalog.py +0 -0
  116. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/catalog/hyperbolic_catalog.py +0 -0
  117. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/catalog/ibm_catalog.py +0 -0
  118. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/catalog/kubernetes_catalog.py +0 -0
  119. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/catalog/lambda_catalog.py +0 -0
  120. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/catalog/nebius_catalog.py +0 -0
  121. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/catalog/oci_catalog.py +0 -0
  122. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/catalog/paperspace_catalog.py +0 -0
  123. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/catalog/runpod_catalog.py +0 -0
  124. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/catalog/scp_catalog.py +0 -0
  125. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/catalog/ssh_catalog.py +0 -0
  126. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/catalog/vast_catalog.py +0 -0
  127. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/catalog/vsphere_catalog.py +0 -0
  128. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/check.py +0 -0
  129. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/cli.py +0 -0
  130. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/client/__init__.py +0 -0
  131. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/client/cli/__init__.py +0 -0
  132. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/client/cli/deprecation_utils.py +0 -0
  133. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/client/cli/flags.py +0 -0
  134. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/client/cli/git.py +0 -0
  135. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/client/common.py +0 -0
  136. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/client/oauth.py +0 -0
  137. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/client/sdk_async.py +0 -0
  138. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/client/service_account_auth.py +0 -0
  139. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/cloud_stores.py +0 -0
  140. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/clouds/__init__.py +0 -0
  141. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/clouds/aws.py +0 -0
  142. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/clouds/azure.py +0 -0
  143. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/clouds/cloud.py +0 -0
  144. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/clouds/cudo.py +0 -0
  145. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/clouds/do.py +0 -0
  146. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/clouds/fluidstack.py +0 -0
  147. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/clouds/gcp.py +0 -0
  148. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/clouds/hyperbolic.py +0 -0
  149. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/clouds/ibm.py +0 -0
  150. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/clouds/kubernetes.py +0 -0
  151. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/clouds/lambda_cloud.py +0 -0
  152. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/clouds/nebius.py +0 -0
  153. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/clouds/oci.py +0 -0
  154. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/clouds/paperspace.py +0 -0
  155. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/clouds/runpod.py +0 -0
  156. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/clouds/scp.py +0 -0
  157. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/clouds/ssh.py +0 -0
  158. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/clouds/utils/__init__.py +0 -0
  159. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/clouds/utils/aws_utils.py +0 -0
  160. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/clouds/utils/azure_utils.py +0 -0
  161. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/clouds/utils/gcp_utils.py +0 -0
  162. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/clouds/utils/oci_utils.py +0 -0
  163. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/clouds/utils/scp_utils.py +0 -0
  164. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/clouds/vast.py +0 -0
  165. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/clouds/vsphere.py +0 -0
  166. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dag.py +0 -0
  167. /skypilot_nightly-1.0.0.dev20250815/sky/dashboard/out/_next/static/chunks/1141-a96678fed5043c12.js → /skypilot_nightly-1.0.0.dev20250817/sky/dashboard/out/_next/static/chunks/1141-2f60a90b7d76838e.js +0 -0
  168. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/_next/static/chunks/1272-1ef0bf0237faccdb.js +0 -0
  169. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/_next/static/chunks/2350.fab69e61bac57b23.js +0 -0
  170. /skypilot_nightly-1.0.0.dev20250815/sky/dashboard/out/_next/static/chunks/3015-77d22ae2fad4071c.js → /skypilot_nightly-1.0.0.dev20250817/sky/dashboard/out/_next/static/chunks/3015-fd15b3ff228f7738.js +0 -0
  171. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/_next/static/chunks/3850-ff4a9a69d978632b.js +0 -0
  172. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/_next/static/chunks/3937.210053269f121201.js +0 -0
  173. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/_next/static/chunks/4045.b30465273dc5e468.js +0 -0
  174. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/_next/static/chunks/4676-9da7fdbde90b5549.js +0 -0
  175. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/_next/static/chunks/5739-d67458fcb1386c92.js +0 -0
  176. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/_next/static/chunks/6130-2be46d70a38f1e82.js +0 -0
  177. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/_next/static/chunks/6135-4b4d5e824b7f9d3c.js +0 -0
  178. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/_next/static/chunks/616-3d59f75e2ccf9321.js +0 -0
  179. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/_next/static/chunks/6633-efe924b9b8136699.js +0 -0
  180. /skypilot_nightly-1.0.0.dev20250815/sky/dashboard/out/_next/static/chunks/6856-58370d8c9a79f72b.js → /skypilot_nightly-1.0.0.dev20250817/sky/dashboard/out/_next/static/chunks/6856-e6f350f567182e87.js +0 -0
  181. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/_next/static/chunks/6989-01359c57e018caa4.js +0 -0
  182. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/_next/static/chunks/6990-08b2a1cae076a943.js +0 -0
  183. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/_next/static/chunks/7325.b4bc99ce0892dcd5.js +0 -0
  184. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/_next/static/chunks/7411-b15471acd2cba716.js +0 -0
  185. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/_next/static/chunks/754-d0da8ab45f9509e9.js +0 -0
  186. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/_next/static/chunks/8838.e7953f42af2b0544.js +0 -0
  187. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/_next/static/chunks/8969-6d493b1e2fa45826.js +0 -0
  188. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/_next/static/chunks/9025.a1bef12d672bb66d.js +0 -0
  189. /skypilot_nightly-1.0.0.dev20250815/sky/dashboard/out/_next/static/chunks/9037-f71c3c42670a4be0.js → /skypilot_nightly-1.0.0.dev20250817/sky/dashboard/out/_next/static/chunks/9037-89a84fd7fa31362d.js +0 -0
  190. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/_next/static/chunks/9277.71481d5b2e606e33.js +0 -0
  191. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/_next/static/chunks/fd9d1056-86323a29a8f7e46a.js +0 -0
  192. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/_next/static/chunks/framework-cf60a09ccd051a10.js +0 -0
  193. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/_next/static/chunks/main-app-587214043926b3cc.js +0 -0
  194. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/_next/static/chunks/main-f15ccb73239a3bf1.js +0 -0
  195. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/_next/static/chunks/pages/_app-ce361c6959bc2001.js +0 -0
  196. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/_next/static/chunks/pages/_error-c66a4e8afc46f17b.js +0 -0
  197. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/_next/static/chunks/pages/config-dfb9bf07b13045f4.js +0 -0
  198. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/_next/static/chunks/pages/index-444f1804401f04ea.js +0 -0
  199. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-ad2cd5aab787bc15.js +0 -0
  200. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/_next/static/chunks/pages/jobs/pools/[pool]-7d4182df6625fe10.js +0 -0
  201. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/_next/static/chunks/pages/workspace/new-3f88a1c7e86a3f86.js +0 -0
  202. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js +0 -0
  203. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/_next/static/css/4614e06482d7309e.css +0 -0
  204. {skypilot_nightly-1.0.0.dev20250815/sky/dashboard/out/_next/static/I-djf3wB8zZl_bI67BOyZ → skypilot_nightly-1.0.0.dev20250817/sky/dashboard/out/_next/static/s93sHgT13r_pnzP1An3gW}/_ssgManifest.js +0 -0
  205. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/favicon.ico +0 -0
  206. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/skypilot.svg +0 -0
  207. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/dashboard/out/videos/cursor-small.mp4 +0 -0
  208. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/data/__init__.py +0 -0
  209. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/data/data_transfer.py +0 -0
  210. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/data/data_utils.py +0 -0
  211. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/data/mounting_utils.py +0 -0
  212. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/data/storage.py +0 -0
  213. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/exceptions.py +0 -0
  214. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/execution.py +0 -0
  215. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/jobs/__init__.py +0 -0
  216. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/jobs/client/__init__.py +0 -0
  217. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/jobs/client/sdk.py +0 -0
  218. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/jobs/client/sdk_async.py +0 -0
  219. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/jobs/constants.py +0 -0
  220. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/jobs/controller.py +0 -0
  221. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/jobs/scheduler.py +0 -0
  222. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/jobs/server/__init__.py +0 -0
  223. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/jobs/server/core.py +0 -0
  224. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/jobs/server/server.py +0 -0
  225. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/jobs/server/utils.py +0 -0
  226. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/jobs/state.py +0 -0
  227. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/logs/__init__.py +0 -0
  228. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/logs/agent.py +0 -0
  229. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/logs/aws.py +0 -0
  230. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/logs/gcp.py +0 -0
  231. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/metrics/__init__.py +0 -0
  232. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/metrics/utils.py +0 -0
  233. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/models.py +0 -0
  234. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/optimizer.py +0 -0
  235. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/__init__.py +0 -0
  236. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/aws/__init__.py +0 -0
  237. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/aws/config.py +0 -0
  238. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/aws/instance.py +0 -0
  239. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/aws/utils.py +0 -0
  240. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/azure/__init__.py +0 -0
  241. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/azure/azure-config-template.json +0 -0
  242. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/azure/config.py +0 -0
  243. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/azure/instance.py +0 -0
  244. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/common.py +0 -0
  245. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/constants.py +0 -0
  246. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/cudo/__init__.py +0 -0
  247. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/cudo/config.py +0 -0
  248. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/cudo/cudo_machine_type.py +0 -0
  249. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/cudo/cudo_utils.py +0 -0
  250. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/cudo/cudo_wrapper.py +0 -0
  251. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/cudo/instance.py +0 -0
  252. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/do/__init__.py +0 -0
  253. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/do/config.py +0 -0
  254. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/do/constants.py +0 -0
  255. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/do/instance.py +0 -0
  256. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/do/utils.py +0 -0
  257. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/docker_utils.py +0 -0
  258. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/fluidstack/__init__.py +0 -0
  259. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/fluidstack/config.py +0 -0
  260. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/fluidstack/fluidstack_utils.py +0 -0
  261. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/fluidstack/instance.py +0 -0
  262. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/gcp/__init__.py +0 -0
  263. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/gcp/config.py +0 -0
  264. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/gcp/constants.py +0 -0
  265. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/gcp/instance.py +0 -0
  266. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/gcp/instance_utils.py +0 -0
  267. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/gcp/mig_utils.py +0 -0
  268. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/gcp/volume_utils.py +0 -0
  269. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/hyperbolic/__init__.py +0 -0
  270. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/hyperbolic/config.py +0 -0
  271. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/hyperbolic/instance.py +0 -0
  272. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/hyperbolic/utils.py +0 -0
  273. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/instance_setup.py +0 -0
  274. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/kubernetes/__init__.py +0 -0
  275. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/kubernetes/config.py +0 -0
  276. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/kubernetes/constants.py +0 -0
  277. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/kubernetes/manifests/fusermount-server-daemonset.yaml +0 -0
  278. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/kubernetes/network.py +0 -0
  279. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/kubernetes/network_utils.py +0 -0
  280. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/kubernetes/utils.py +0 -0
  281. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/kubernetes/volume.py +0 -0
  282. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/lambda_cloud/__init__.py +0 -0
  283. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/lambda_cloud/config.py +0 -0
  284. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/lambda_cloud/instance.py +0 -0
  285. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/lambda_cloud/lambda_utils.py +0 -0
  286. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/logging.py +0 -0
  287. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/metadata_utils.py +0 -0
  288. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/nebius/__init__.py +0 -0
  289. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/nebius/config.py +0 -0
  290. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/nebius/constants.py +0 -0
  291. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/nebius/instance.py +0 -0
  292. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/nebius/utils.py +0 -0
  293. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/oci/__init__.py +0 -0
  294. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/oci/config.py +0 -0
  295. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/oci/instance.py +0 -0
  296. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/oci/query_utils.py +0 -0
  297. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/paperspace/__init__.py +0 -0
  298. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/paperspace/config.py +0 -0
  299. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/paperspace/constants.py +0 -0
  300. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/paperspace/instance.py +0 -0
  301. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/paperspace/utils.py +0 -0
  302. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/provisioner.py +0 -0
  303. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/runpod/__init__.py +0 -0
  304. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/runpod/api/__init__.py +0 -0
  305. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/runpod/api/commands.py +0 -0
  306. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/runpod/api/pods.py +0 -0
  307. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/runpod/config.py +0 -0
  308. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/runpod/instance.py +0 -0
  309. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/runpod/utils.py +0 -0
  310. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/scp/__init__.py +0 -0
  311. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/scp/config.py +0 -0
  312. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/scp/instance.py +0 -0
  313. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/ssh/__init__.py +0 -0
  314. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/vast/__init__.py +0 -0
  315. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/vast/config.py +0 -0
  316. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/vast/instance.py +0 -0
  317. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/vast/utils.py +0 -0
  318. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/vsphere/__init__.py +0 -0
  319. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/vsphere/common/__init__.py +0 -0
  320. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/vsphere/common/cls_api_client.py +0 -0
  321. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/vsphere/common/cls_api_helper.py +0 -0
  322. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/vsphere/common/custom_script.py +0 -0
  323. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/vsphere/common/id_generator.py +0 -0
  324. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/vsphere/common/metadata_utils.py +0 -0
  325. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/vsphere/common/service_manager.py +0 -0
  326. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/vsphere/common/service_manager_factory.py +0 -0
  327. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/vsphere/common/ssl_helper.py +0 -0
  328. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/vsphere/common/vapiconnect.py +0 -0
  329. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/vsphere/common/vim_utils.py +0 -0
  330. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/vsphere/config.py +0 -0
  331. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/vsphere/instance.py +0 -0
  332. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/provision/vsphere/vsphere_utils.py +0 -0
  333. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/py.typed +0 -0
  334. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/resources.py +0 -0
  335. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/schemas/__init__.py +0 -0
  336. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/schemas/api/__init__.py +0 -0
  337. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/schemas/db/README +0 -0
  338. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/schemas/db/env.py +0 -0
  339. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/schemas/db/global_user_state/001_initial_schema.py +0 -0
  340. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/schemas/db/global_user_state/002_add_workspace_to_cluster_history.py +0 -0
  341. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/schemas/db/global_user_state/003_fix_initial_revision.py +0 -0
  342. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/schemas/db/global_user_state/004_is_managed.py +0 -0
  343. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/schemas/db/global_user_state/005_cluster_event.py +0 -0
  344. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/schemas/db/global_user_state/006_provision_log.py +0 -0
  345. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/schemas/db/script.py.mako +0 -0
  346. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/schemas/db/serve_state/001_initial_schema.py +0 -0
  347. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/schemas/db/spot_jobs/001_initial_schema.py +0 -0
  348. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/schemas/db/spot_jobs/002_cluster_pool.py +0 -0
  349. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/schemas/db/spot_jobs/003_pool_hash.py +0 -0
  350. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/schemas/generated/__init__.py +0 -0
  351. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/schemas/generated/autostopv1_pb2.py +0 -0
  352. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/schemas/generated/autostopv1_pb2.pyi +0 -0
  353. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/schemas/generated/autostopv1_pb2_grpc.py +0 -0
  354. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/serve/__init__.py +0 -0
  355. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/serve/autoscalers.py +0 -0
  356. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/serve/client/__init__.py +0 -0
  357. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/serve/client/impl.py +0 -0
  358. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/serve/client/sdk.py +0 -0
  359. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/serve/client/sdk_async.py +0 -0
  360. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/serve/constants.py +0 -0
  361. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/serve/controller.py +0 -0
  362. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/serve/load_balancer.py +0 -0
  363. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/serve/load_balancing_policies.py +0 -0
  364. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/serve/replica_managers.py +0 -0
  365. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/serve/serve_state.py +0 -0
  366. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/serve/serve_utils.py +0 -0
  367. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/serve/server/__init__.py +0 -0
  368. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/serve/server/core.py +0 -0
  369. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/serve/server/impl.py +0 -0
  370. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/serve/server/server.py +0 -0
  371. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/serve/service.py +0 -0
  372. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/serve/service_spec.py +0 -0
  373. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/serve/spot_placer.py +0 -0
  374. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/server/__init__.py +0 -0
  375. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/server/auth/__init__.py +0 -0
  376. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/server/auth/authn.py +0 -0
  377. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/server/auth/oauth2_proxy.py +0 -0
  378. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/server/config.py +0 -0
  379. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/server/constants.py +0 -0
  380. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/server/daemons.py +0 -0
  381. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/server/html/log.html +0 -0
  382. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/server/html/token_page.html +0 -0
  383. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/server/metrics.py +0 -0
  384. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/server/requests/__init__.py +0 -0
  385. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/server/requests/event_loop.py +0 -0
  386. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/server/requests/executor.py +0 -0
  387. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/server/requests/payloads.py +0 -0
  388. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/server/requests/preconditions.py +0 -0
  389. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/server/requests/process.py +0 -0
  390. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/server/requests/queues/__init__.py +0 -0
  391. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/server/requests/queues/local_queue.py +0 -0
  392. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/server/requests/queues/mp_queue.py +0 -0
  393. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/server/requests/requests.py +0 -0
  394. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/server/requests/serializers/__init__.py +0 -0
  395. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/server/rest.py +0 -0
  396. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/server/state.py +0 -0
  397. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/server/stream_utils.py +0 -0
  398. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/server/uvicorn.py +0 -0
  399. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/server/versions.py +0 -0
  400. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/setup_files/MANIFEST.in +0 -0
  401. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/setup_files/alembic.ini +0 -0
  402. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/setup_files/dependencies.py +0 -0
  403. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/setup_files/setup.py +0 -0
  404. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/sky_logging.py +0 -0
  405. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/skylet/LICENSE +0 -0
  406. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/skylet/__init__.py +0 -0
  407. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/skylet/attempt_skylet.py +0 -0
  408. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/skylet/autostop_lib.py +0 -0
  409. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/skylet/configs.py +0 -0
  410. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/skylet/constants.py +0 -0
  411. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/skylet/events.py +0 -0
  412. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/skylet/job_lib.py +0 -0
  413. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/skylet/log_lib.py +0 -0
  414. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/skylet/log_lib.pyi +0 -0
  415. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/skylet/providers/__init__.py +0 -0
  416. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/skylet/providers/command_runner.py +0 -0
  417. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/skylet/providers/ibm/__init__.py +0 -0
  418. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/skylet/providers/ibm/node_provider.py +0 -0
  419. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/skylet/providers/ibm/utils.py +0 -0
  420. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/skylet/providers/ibm/vpc_provider.py +0 -0
  421. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/skylet/ray_patches/__init__.py +0 -0
  422. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/skylet/ray_patches/autoscaler.py.patch +0 -0
  423. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/skylet/ray_patches/cli.py.patch +0 -0
  424. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/skylet/ray_patches/command_runner.py.patch +0 -0
  425. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/skylet/ray_patches/log_monitor.py.patch +0 -0
  426. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/skylet/ray_patches/resource_demand_scheduler.py.patch +0 -0
  427. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/skylet/ray_patches/updater.py.patch +0 -0
  428. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/skylet/ray_patches/worker.py.patch +0 -0
  429. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/skylet/services.py +0 -0
  430. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/skylet/skylet.py +0 -0
  431. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/skylet/subprocess_daemon.py +0 -0
  432. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/skypilot_config.py +0 -0
  433. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/ssh_node_pools/__init__.py +0 -0
  434. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/ssh_node_pools/core.py +0 -0
  435. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/ssh_node_pools/server.py +0 -0
  436. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/task.py +0 -0
  437. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/templates/aws-ray.yml.j2 +0 -0
  438. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/templates/azure-ray.yml.j2 +0 -0
  439. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/templates/cudo-ray.yml.j2 +0 -0
  440. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/templates/do-ray.yml.j2 +0 -0
  441. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/templates/fluidstack-ray.yml.j2 +0 -0
  442. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/templates/gcp-ray.yml.j2 +0 -0
  443. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/templates/hyperbolic-ray.yml.j2 +0 -0
  444. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/templates/ibm-ray.yml.j2 +0 -0
  445. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/templates/jobs-controller.yaml.j2 +0 -0
  446. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/templates/kubernetes-ingress.yml.j2 +0 -0
  447. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/templates/kubernetes-loadbalancer.yml.j2 +0 -0
  448. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/templates/kubernetes-port-forward-proxy-command.sh +0 -0
  449. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/templates/kubernetes-ray.yml.j2 +0 -0
  450. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/templates/kubernetes-ssh-jump.yml.j2 +0 -0
  451. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/templates/lambda-ray.yml.j2 +0 -0
  452. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/templates/local-ray.yml.j2 +0 -0
  453. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/templates/nebius-ray.yml.j2 +0 -0
  454. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/templates/oci-ray.yml.j2 +0 -0
  455. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/templates/paperspace-ray.yml.j2 +0 -0
  456. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/templates/runpod-ray.yml.j2 +0 -0
  457. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/templates/scp-ray.yml.j2 +0 -0
  458. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/templates/sky-serve-controller.yaml.j2 +0 -0
  459. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/templates/skypilot-server-kubernetes-proxy.sh +0 -0
  460. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/templates/vast-ray.yml.j2 +0 -0
  461. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/templates/vsphere-ray.yml.j2 +0 -0
  462. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/templates/websocket_proxy.py +0 -0
  463. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/usage/__init__.py +0 -0
  464. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/usage/constants.py +0 -0
  465. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/usage/usage_lib.py +0 -0
  466. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/users/__init__.py +0 -0
  467. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/users/model.conf +0 -0
  468. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/users/permission.py +0 -0
  469. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/users/rbac.py +0 -0
  470. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/users/server.py +0 -0
  471. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/users/token_service.py +0 -0
  472. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/__init__.py +0 -0
  473. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/accelerator_registry.py +0 -0
  474. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/admin_policy_utils.py +0 -0
  475. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/annotations.py +0 -0
  476. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/atomic.py +0 -0
  477. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/aws/__init__.py +0 -0
  478. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/aws/get_default_security_group.py +0 -0
  479. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/cli_utils/__init__.py +0 -0
  480. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/cluster_utils.py +0 -0
  481. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/command_runner.py +0 -0
  482. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/command_runner.pyi +0 -0
  483. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/common.py +0 -0
  484. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/common_utils.py +0 -0
  485. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/config_utils.py +0 -0
  486. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/context.py +0 -0
  487. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/context_utils.py +0 -0
  488. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/control_master_utils.py +0 -0
  489. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/controller_utils.py +0 -0
  490. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/dag_utils.py +0 -0
  491. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/db/__init__.py +0 -0
  492. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/db/db_utils.py +0 -0
  493. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/db/migration_utils.py +0 -0
  494. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/env_options.py +0 -0
  495. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/git.py +0 -0
  496. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/git_clone.sh +0 -0
  497. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/infra_utils.py +0 -0
  498. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/kubernetes/__init__.py +0 -0
  499. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/kubernetes/cleanup-tunnel.sh +0 -0
  500. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/kubernetes/config_map_utils.py +0 -0
  501. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/kubernetes/create_cluster.sh +0 -0
  502. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/kubernetes/delete_cluster.sh +0 -0
  503. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/kubernetes/deploy_remote_cluster.py +0 -0
  504. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/kubernetes/exec_kubeconfig_converter.py +0 -0
  505. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/kubernetes/generate_kind_config.py +0 -0
  506. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/kubernetes/generate_kubeconfig.sh +0 -0
  507. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/kubernetes/gpu_labeler.py +0 -0
  508. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/kubernetes/k8s_gpu_labeler_job.yaml +0 -0
  509. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml +0 -0
  510. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/kubernetes/kubernetes_deploy_utils.py +0 -0
  511. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/kubernetes/rsync_helper.sh +0 -0
  512. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/kubernetes/ssh-tunnel.sh +0 -0
  513. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/kubernetes/ssh_jump_lifecycle_manager.py +0 -0
  514. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/kubernetes/ssh_utils.py +0 -0
  515. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/kubernetes_enums.py +0 -0
  516. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/locks.py +0 -0
  517. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/log_utils.py +0 -0
  518. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/message_utils.py +0 -0
  519. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/registry.py +0 -0
  520. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/resource_checker.py +0 -0
  521. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/resources_utils.py +0 -0
  522. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/rich_console_utils.py +0 -0
  523. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/rich_utils.py +0 -0
  524. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/schemas.py +0 -0
  525. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/status_lib.py +0 -0
  526. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/subprocess_utils.py +0 -0
  527. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/tempstore.py +0 -0
  528. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/timeline.py +0 -0
  529. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/ux_utils.py +0 -0
  530. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/validator.py +0 -0
  531. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/utils/volume.py +0 -0
  532. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/volumes/__init__.py +0 -0
  533. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/volumes/client/__init__.py +0 -0
  534. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/volumes/client/sdk.py +0 -0
  535. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/volumes/server/__init__.py +0 -0
  536. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/volumes/server/core.py +0 -0
  537. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/volumes/server/server.py +0 -0
  538. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/volumes/utils.py +0 -0
  539. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/volumes/volume.py +0 -0
  540. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/workspaces/__init__.py +0 -0
  541. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/workspaces/core.py +0 -0
  542. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/workspaces/server.py +0 -0
  543. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/sky/workspaces/utils.py +0 -0
  544. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/skypilot_nightly.egg-info/dependency_links.txt +0 -0
  545. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/skypilot_nightly.egg-info/entry_points.txt +0 -0
  546. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/skypilot_nightly.egg-info/requires.txt +0 -0
  547. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/skypilot_nightly.egg-info/top_level.txt +0 -0
  548. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/tests/test_api.py +0 -0
  549. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/tests/test_api_compatibility.py +0 -0
  550. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/tests/test_cli.py +0 -0
  551. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/tests/test_config.py +0 -0
  552. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/tests/test_db_utils.py +0 -0
  553. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/tests/test_failover.py +0 -0
  554. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/tests/test_global_user_state.py +0 -0
  555. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/tests/test_jobs.py +0 -0
  556. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/tests/test_jobs_and_serve.py +0 -0
  557. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/tests/test_list_accelerators.py +0 -0
  558. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/tests/test_no_parellel.py +0 -0
  559. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/tests/test_optimizer_dryruns.py +0 -0
  560. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/tests/test_optimizer_random_dag.py +0 -0
  561. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/tests/test_serve_autoscaler.py +0 -0
  562. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/tests/test_smoke.py +0 -0
  563. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/tests/test_storage.py +0 -0
  564. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/tests/test_wheels.py +0 -0
  565. {skypilot_nightly-1.0.0.dev20250815 → skypilot_nightly-1.0.0.dev20250817}/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.dev20250815
3
+ Version: 1.0.0.dev20250817
4
4
  Summary: SkyPilot: Run AI on Any Infra — Unified, Faster, Cheaper.
5
5
  Author: SkyPilot Team
6
6
  License: Apache 2.0
@@ -369,7 +369,7 @@ Latest featured examples:
369
369
  |----------|----------|
370
370
  | Training | [Verl](https://docs.skypilot.co/en/latest/examples/training/verl.html), [Finetune Llama 4](https://docs.skypilot.co/en/latest/examples/training/llama-4-finetuning.html), [PyTorch](https://docs.skypilot.co/en/latest/getting-started/tutorial.html), [DeepSpeed](https://docs.skypilot.co/en/latest/examples/training/deepspeed.html), [NeMo](https://docs.skypilot.co/en/latest/examples/training/nemo.html), [Ray](https://docs.skypilot.co/en/latest/examples/training/ray.html), [Unsloth](https://docs.skypilot.co/en/latest/examples/training/unsloth.html), [Jax/TPU](https://docs.skypilot.co/en/latest/examples/training/tpu.html) |
371
371
  | Serving | [vLLM](https://docs.skypilot.co/en/latest/examples/serving/vllm.html), [SGLang](https://docs.skypilot.co/en/latest/examples/serving/sglang.html), [Ollama](https://docs.skypilot.co/en/latest/examples/serving/ollama.html) |
372
- | Models | [DeepSeek-R1](https://docs.skypilot.co/en/latest/examples/models/deepseek-r1.html), [Llama 3](https://docs.skypilot.co/en/latest/examples/models/llama-3.html), [CodeLlama](https://docs.skypilot.co/en/latest/examples/models/codellama.html), [Qwen](https://docs.skypilot.co/en/latest/examples/models/qwen.html), [Mixtral](https://docs.skypilot.co/en/latest/examples/models/mixtral.html) |
372
+ | Models | [DeepSeek-R1](https://docs.skypilot.co/en/latest/examples/models/deepseek-r1.html), [Llama 4](https://docs.skypilot.co/en/latest/examples/models/llama-4.html), [Llama 3](https://docs.skypilot.co/en/latest/examples/models/llama-3.html), [CodeLlama](https://docs.skypilot.co/en/latest/examples/models/codellama.html), [Qwen](https://docs.skypilot.co/en/latest/examples/models/qwen.html), [Kimi-K2](https://docs.skypilot.co/en/latest/examples/models/kimi-k2.html), [Mixtral](https://docs.skypilot.co/en/latest/examples/models/mixtral.html) |
373
373
  | AI apps | [RAG](https://docs.skypilot.co/en/latest/examples/applications/rag.html), [vector databases](https://docs.skypilot.co/en/latest/examples/applications/vector_database.html) (ChromaDB, CLIP) |
374
374
  | Common frameworks | [Airflow](https://docs.skypilot.co/en/latest/examples/frameworks/airflow.html), [Jupyter](https://docs.skypilot.co/en/latest/examples/frameworks/jupyter.html) |
375
375
 
@@ -175,7 +175,7 @@ Latest featured examples:
175
175
  |----------|----------|
176
176
  | Training | [Verl](https://docs.skypilot.co/en/latest/examples/training/verl.html), [Finetune Llama 4](https://docs.skypilot.co/en/latest/examples/training/llama-4-finetuning.html), [PyTorch](https://docs.skypilot.co/en/latest/getting-started/tutorial.html), [DeepSpeed](https://docs.skypilot.co/en/latest/examples/training/deepspeed.html), [NeMo](https://docs.skypilot.co/en/latest/examples/training/nemo.html), [Ray](https://docs.skypilot.co/en/latest/examples/training/ray.html), [Unsloth](https://docs.skypilot.co/en/latest/examples/training/unsloth.html), [Jax/TPU](https://docs.skypilot.co/en/latest/examples/training/tpu.html) |
177
177
  | Serving | [vLLM](https://docs.skypilot.co/en/latest/examples/serving/vllm.html), [SGLang](https://docs.skypilot.co/en/latest/examples/serving/sglang.html), [Ollama](https://docs.skypilot.co/en/latest/examples/serving/ollama.html) |
178
- | Models | [DeepSeek-R1](https://docs.skypilot.co/en/latest/examples/models/deepseek-r1.html), [Llama 3](https://docs.skypilot.co/en/latest/examples/models/llama-3.html), [CodeLlama](https://docs.skypilot.co/en/latest/examples/models/codellama.html), [Qwen](https://docs.skypilot.co/en/latest/examples/models/qwen.html), [Mixtral](https://docs.skypilot.co/en/latest/examples/models/mixtral.html) |
178
+ | Models | [DeepSeek-R1](https://docs.skypilot.co/en/latest/examples/models/deepseek-r1.html), [Llama 4](https://docs.skypilot.co/en/latest/examples/models/llama-4.html), [Llama 3](https://docs.skypilot.co/en/latest/examples/models/llama-3.html), [CodeLlama](https://docs.skypilot.co/en/latest/examples/models/codellama.html), [Qwen](https://docs.skypilot.co/en/latest/examples/models/qwen.html), [Kimi-K2](https://docs.skypilot.co/en/latest/examples/models/kimi-k2.html), [Mixtral](https://docs.skypilot.co/en/latest/examples/models/mixtral.html) |
179
179
  | AI apps | [RAG](https://docs.skypilot.co/en/latest/examples/applications/rag.html), [vector databases](https://docs.skypilot.co/en/latest/examples/applications/vector_database.html) (ChromaDB, CLIP) |
180
180
  | Common frameworks | [Airflow](https://docs.skypilot.co/en/latest/examples/frameworks/airflow.html), [Jupyter](https://docs.skypilot.co/en/latest/examples/frameworks/jupyter.html) |
181
181
 
@@ -5,7 +5,7 @@ from typing import Optional
5
5
  import urllib.request
6
6
 
7
7
  # Replaced with the current commit when building the wheels.
8
- _SKYPILOT_COMMIT_SHA = '83f7c60583fed1ee759f73a5cf859239f86fb3f9'
8
+ _SKYPILOT_COMMIT_SHA = 'abdd87bf8b26f1381079d68ea731f63fb937159a'
9
9
 
10
10
 
11
11
  def _get_git_commit():
@@ -35,7 +35,7 @@ def _get_git_commit():
35
35
 
36
36
 
37
37
  __commit__ = _get_git_commit()
38
- __version__ = '1.0.0.dev20250815'
38
+ __version__ = '1.0.0.dev20250817'
39
39
  __root_dir__ = os.path.dirname(os.path.abspath(__file__))
40
40
 
41
41
 
@@ -147,8 +147,9 @@ class Backend(Generic[_ResourceHandleType]):
147
147
  def teardown(self,
148
148
  handle: _ResourceHandleType,
149
149
  terminate: bool,
150
- purge: bool = False) -> None:
151
- self._teardown(handle, terminate, purge)
150
+ purge: bool = False,
151
+ explicitly_requested: bool = False) -> None:
152
+ self._teardown(handle, terminate, purge, explicitly_requested)
152
153
 
153
154
  def register_info(self, **kwargs) -> None:
154
155
  """Register backend-specific information."""
@@ -200,5 +201,6 @@ class Backend(Generic[_ResourceHandleType]):
200
201
  def _teardown(self,
201
202
  handle: _ResourceHandleType,
202
203
  terminate: bool,
203
- purge: bool = False):
204
+ purge: bool = False,
205
+ explicitly_requested: bool = False):
204
206
  raise NotImplementedError
@@ -2017,7 +2017,15 @@ def _update_cluster_status(cluster_name: str) -> Optional[Dict[str, Any]]:
2017
2017
  if handle.cluster_yaml is None:
2018
2018
  # Remove cluster from db since this cluster does not have a config file
2019
2019
  # or any other ongoing requests
2020
- global_user_state.remove_cluster(cluster_name, terminate=True)
2020
+ global_user_state.add_cluster_event(
2021
+ cluster_name,
2022
+ None,
2023
+ 'Cluster has no YAML file. Removing the cluster from cache.',
2024
+ global_user_state.ClusterEventType.STATUS_CHANGE,
2025
+ nop_if_duplicate=True)
2026
+ global_user_state.remove_cluster(cluster_name,
2027
+ terminate=True,
2028
+ remove_events=True)
2021
2029
  logger.debug(f'Cluster {cluster_name!r} has no YAML file. '
2022
2030
  'Removing the cluster from cache.')
2023
2031
  return None
@@ -2277,9 +2285,12 @@ def _update_cluster_status(cluster_name: str) -> Optional[Dict[str, Any]]:
2277
2285
  -1,
2278
2286
  autostop_lib.DEFAULT_AUTOSTOP_WAIT_FOR,
2279
2287
  stream_logs=False)
2280
- except exceptions.CommandError as e:
2288
+ except (exceptions.CommandError,
2289
+ grpc.FutureTimeoutError) as e:
2281
2290
  success = False
2282
- if e.returncode == 255:
2291
+ if isinstance(e, grpc.FutureTimeoutError) or (
2292
+ isinstance(e, exceptions.CommandError) and
2293
+ e.returncode == 255):
2283
2294
  word = 'autostopped' if noun == 'autostop' else 'autodowned'
2284
2295
  logger.debug(f'The cluster is likely {word}.')
2285
2296
  reset_local_autostop = False
@@ -2349,10 +2360,10 @@ def _update_cluster_status(cluster_name: str) -> Optional[Dict[str, Any]]:
2349
2360
  # Now is_abnormal is False: either node_statuses is empty or all nodes are
2350
2361
  # STOPPED.
2351
2362
  backend = backends.CloudVmRayBackend()
2352
- backend.post_teardown_cleanup(handle, terminate=to_terminate, purge=False)
2353
2363
  global_user_state.add_cluster_event(
2354
- cluster_name, None, 'All nodes stopped, terminating cluster.',
2364
+ cluster_name, None, 'All nodes terminated, cleaning up the cluster.',
2355
2365
  global_user_state.ClusterEventType.STATUS_CHANGE)
2366
+ backend.post_teardown_cleanup(handle, terminate=to_terminate, purge=False)
2356
2367
  return global_user_state.get_cluster_from_name(cluster_name)
2357
2368
 
2358
2369
 
@@ -3168,8 +3168,15 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
3168
3168
  # Do not remove the stopped cluster from the global state
3169
3169
  # if failed to start.
3170
3170
  if not e.no_failover:
3171
+ global_user_state.add_cluster_event(
3172
+ cluster_name,
3173
+ None,
3174
+ 'Provision failed: ' + str(e),
3175
+ global_user_state.ClusterEventType.STATUS_CHANGE,
3176
+ nop_if_duplicate=True)
3171
3177
  global_user_state.remove_cluster(cluster_name,
3172
- terminate=True)
3178
+ terminate=True,
3179
+ remove_events=False)
3173
3180
  usage_lib.messages.usage.update_final_cluster_status(
3174
3181
  None)
3175
3182
  logger.error(
@@ -3971,7 +3978,8 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
3971
3978
  def _teardown(self,
3972
3979
  handle: CloudVmRayResourceHandle,
3973
3980
  terminate: bool,
3974
- purge: bool = False):
3981
+ purge: bool = False,
3982
+ explicitly_requested: bool = False):
3975
3983
  """Tear down or stop the cluster.
3976
3984
 
3977
3985
  Args:
@@ -4046,7 +4054,8 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
4046
4054
  # ClusterOwnerIdentityMismatchError. The argument/flag
4047
4055
  # `purge` should bypass such ID mismatch errors.
4048
4056
  refresh_cluster_status=(
4049
- not is_identity_mismatch_and_purge))
4057
+ not is_identity_mismatch_and_purge),
4058
+ explicitly_requested=explicitly_requested)
4050
4059
  if terminate:
4051
4060
  lock.force_unlock()
4052
4061
  break
@@ -4427,7 +4436,8 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
4427
4436
  purge: bool = False,
4428
4437
  post_teardown_cleanup: bool = True,
4429
4438
  refresh_cluster_status: bool = True,
4430
- remove_from_db: bool = True) -> None:
4439
+ remove_from_db: bool = True,
4440
+ explicitly_requested: bool = False) -> None:
4431
4441
  """Teardown the cluster without acquiring the cluster status lock.
4432
4442
 
4433
4443
  NOTE: This method should not be called without holding the cluster
@@ -4491,7 +4501,8 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
4491
4501
  f'provision yaml so it '
4492
4502
  'has not been provisioned. Skipped.')
4493
4503
  global_user_state.remove_cluster(handle.cluster_name,
4494
- terminate=terminate)
4504
+ terminate=terminate,
4505
+ remove_events=False)
4495
4506
  return
4496
4507
  log_path = os.path.join(os.path.expanduser(self.log_dir),
4497
4508
  'teardown.log')
@@ -4548,8 +4559,12 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
4548
4559
  raise
4549
4560
 
4550
4561
  if post_teardown_cleanup:
4551
- self.post_teardown_cleanup(handle, terminate, purge,
4552
- remove_from_db)
4562
+ self.post_teardown_cleanup(
4563
+ handle,
4564
+ terminate,
4565
+ purge,
4566
+ remove_from_db,
4567
+ explicitly_requested=explicitly_requested)
4553
4568
  return
4554
4569
 
4555
4570
  if (isinstance(cloud, clouds.IBM) and terminate and
@@ -4649,7 +4664,8 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
4649
4664
  terminate: bool,
4650
4665
  purge: bool = False,
4651
4666
  remove_from_db: bool = True,
4652
- failover: bool = False) -> None:
4667
+ failover: bool = False,
4668
+ explicitly_requested: bool = False) -> None:
4653
4669
  """Cleanup local configs/caches and delete TPUs after teardown.
4654
4670
 
4655
4671
  This method will handle the following cleanup steps:
@@ -4828,7 +4844,8 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
4828
4844
 
4829
4845
  if not terminate or remove_from_db:
4830
4846
  global_user_state.remove_cluster(handle.cluster_name,
4831
- terminate=terminate)
4847
+ terminate=terminate,
4848
+ remove_events=explicitly_requested)
4832
4849
 
4833
4850
  def remove_cluster_config(self, handle: CloudVmRayResourceHandle) -> None:
4834
4851
  """Remove the YAML config of a cluster."""
@@ -4937,11 +4954,17 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
4937
4954
  # We cannot check if the cluster is autostopping.
4938
4955
  return False
4939
4956
  if handle.is_grpc_enabled:
4940
- request = autostopv1_pb2.IsAutostoppingRequest()
4941
- response = backend_utils.invoke_skylet_with_retries(
4942
- handle, lambda: SkyletClient(handle.get_grpc_channel()).
4943
- is_autostopping(request))
4944
- return response.is_autostopping
4957
+ try:
4958
+ request = autostopv1_pb2.IsAutostoppingRequest()
4959
+ response = backend_utils.invoke_skylet_with_retries(
4960
+ handle, lambda: SkyletClient(handle.get_grpc_channel()).
4961
+ is_autostopping(request))
4962
+ return response.is_autostopping
4963
+ except Exception as e: # pylint: disable=broad-except
4964
+ # The cluster may have been terminated, causing the gRPC call
4965
+ # to timeout and fail.
4966
+ logger.debug(f'Failed to check if cluster is autostopping: {e}')
4967
+ return False
4945
4968
  else:
4946
4969
  logger.info(
4947
4970
  'Using legacy remote execution for is_autostopping on '
@@ -256,7 +256,9 @@ class LocalDockerBackend(backends.Backend['LocalDockerResourceHandle']):
256
256
  logger.error(
257
257
  'Unable to run container - nvidia runtime for docker not '
258
258
  'found. Have you installed nvidia-docker on your machine?')
259
- global_user_state.remove_cluster(cluster_name, terminate=True)
259
+ global_user_state.remove_cluster(cluster_name,
260
+ terminate=True,
261
+ remove_events=False)
260
262
  raise e
261
263
  self.containers[handle] = container
262
264
  logger.info(
@@ -323,7 +325,8 @@ class LocalDockerBackend(backends.Backend['LocalDockerResourceHandle']):
323
325
  def _teardown(self,
324
326
  handle: LocalDockerResourceHandle,
325
327
  terminate: bool,
326
- purge: bool = False):
328
+ purge: bool = False,
329
+ explicitly_requested: bool = False):
327
330
  """Teardown kills the container."""
328
331
  del purge # Unused.
329
332
  if not terminate:
@@ -339,7 +342,9 @@ class LocalDockerBackend(backends.Backend['LocalDockerResourceHandle']):
339
342
  container.remove(force=True)
340
343
  cluster_name = handle.get_cluster_name()
341
344
 
342
- global_user_state.remove_cluster(cluster_name, terminate=True)
345
+ global_user_state.remove_cluster(cluster_name,
346
+ terminate=True,
347
+ remove_events=explicitly_requested)
343
348
 
344
349
  # --- Utilities ---
345
350
 
@@ -60,6 +60,7 @@ from sky.client.cli import git
60
60
  from sky.data import storage_utils
61
61
  from sky.provision.kubernetes import constants as kubernetes_constants
62
62
  from sky.provision.kubernetes import utils as kubernetes_utils
63
+ from sky.schemas.api import responses
63
64
  from sky.server import common as server_common
64
65
  from sky.server import constants as server_constants
65
66
  from sky.server.requests import requests
@@ -123,7 +124,7 @@ def _get_cluster_records_and_set_ssh_config(
123
124
  clusters: Optional[List[str]],
124
125
  refresh: common.StatusRefreshMode = common.StatusRefreshMode.NONE,
125
126
  all_users: bool = False,
126
- ) -> List[dict]:
127
+ ) -> List[responses.StatusResponse]:
127
128
  """Returns a list of clusters that match the glob pattern.
128
129
 
129
130
  Args:
@@ -1562,7 +1563,7 @@ def _status_kubernetes(show_all: bool):
1562
1563
 
1563
1564
 
1564
1565
  def _show_endpoint(query_clusters: Optional[List[str]],
1565
- cluster_records: List[Dict[str, Any]], ip: bool,
1566
+ cluster_records: List[responses.StatusResponse], ip: bool,
1566
1567
  endpoints: bool, endpoint: Optional[int]) -> None:
1567
1568
  show_endpoints = endpoints or endpoint is not None
1568
1569
  show_single_endpoint = endpoint is not None
@@ -1372,7 +1372,7 @@ def status(
1372
1372
  cluster_names: Optional[List[str]] = None,
1373
1373
  refresh: common.StatusRefreshMode = common.StatusRefreshMode.NONE,
1374
1374
  all_users: bool = False,
1375
- ) -> server_common.RequestId[List[Dict[str, Any]]]:
1375
+ ) -> server_common.RequestId[List[responses.StatusResponse]]:
1376
1376
  """Gets cluster statuses.
1377
1377
 
1378
1378
  If cluster_names is given, return those clusters. Otherwise, return all
@@ -25,6 +25,7 @@ from sky.clouds import cloud as sky_cloud
25
25
  from sky.jobs.server import core as managed_jobs_core
26
26
  from sky.provision.kubernetes import constants as kubernetes_constants
27
27
  from sky.provision.kubernetes import utils as kubernetes_utils
28
+ from sky.schemas.api import responses
28
29
  from sky.skylet import autostop_lib
29
30
  from sky.skylet import constants
30
31
  from sky.skylet import job_lib
@@ -95,7 +96,7 @@ def status(
95
96
  cluster_names: Optional[Union[str, List[str]]] = None,
96
97
  refresh: common.StatusRefreshMode = common.StatusRefreshMode.NONE,
97
98
  all_users: bool = False,
98
- ) -> List[Dict[str, Any]]:
99
+ ) -> List[responses.StatusResponse]:
99
100
  # NOTE(dev): Keep the docstring consistent between the Python API and CLI.
100
101
  """Gets cluster statuses.
101
102
 
@@ -171,7 +172,9 @@ def status(
171
172
  clusters = backend_utils.get_clusters(refresh=refresh,
172
173
  cluster_names=cluster_names,
173
174
  all_users=all_users)
174
- return clusters
175
+ return [
176
+ responses.StatusResponse.model_validate(cluster) for cluster in clusters
177
+ ]
175
178
 
176
179
 
177
180
  def status_kubernetes(
@@ -593,7 +596,10 @@ def down(cluster_name: str, purge: bool = False) -> None:
593
596
 
594
597
  usage_lib.record_cluster_name_for_current_operation(cluster_name)
595
598
  backend = backend_utils.get_backend_from_handle(handle)
596
- backend.teardown(handle, terminate=True, purge=purge)
599
+ backend.teardown(handle,
600
+ terminate=True,
601
+ purge=purge,
602
+ explicitly_requested=True)
597
603
 
598
604
 
599
605
  @usage_lib.entrypoint
@@ -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-aba778a6d6eb496d.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/I-djf3wB8zZl_bI67BOyZ/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/I-djf3wB8zZl_bI67BOyZ/_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":"I-djf3wB8zZl_bI67BOyZ","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-b6987eb47888da9c.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/s93sHgT13r_pnzP1An3gW/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/s93sHgT13r_pnzP1An3gW/_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":"s93sHgT13r_pnzP1An3gW","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([[1121],{50326:function(e,t,a){a.d(t,{$N:function(){return _},Be:function(){return g},Vq:function(){return c},cN:function(){return m},cZ:function(){return d},fK:function(){return f}});var r=a(85893),s=a(67294),o=a(6327),n=a(32350),l=a(43767);let c=o.fC;o.xz;let u=o.h_;o.x8;let i=s.forwardRef((e,t)=>{let{className:a,...s}=e;return(0,r.jsx)(o.aV,{ref:t,className:(0,n.cn)("fixed inset-0 z-50 bg-black/50 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",a),...s})});i.displayName=o.aV.displayName;let d=s.forwardRef((e,t)=>{let{className:a,children:s,...c}=e;return(0,r.jsxs)(u,{children:[(0,r.jsx)(i,{}),(0,r.jsxs)(o.VY,{ref:t,className:(0,n.cn)("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-gray-200 bg-white p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",a),...c,children:[s,(0,r.jsxs)(o.x8,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-white transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-gray-400 focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-gray-100 data-[state=open]:text-gray-500",children:[(0,r.jsx)(l.Z,{className:"h-4 w-4"}),(0,r.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})});d.displayName=o.VY.displayName;let f=e=>{let{className:t,...a}=e;return(0,r.jsx)("div",{className:(0,n.cn)("flex flex-col space-y-1.5 text-center sm:text-left",t),...a})};f.displayName="DialogHeader";let m=e=>{let{className:t,...a}=e;return(0,r.jsx)("div",{className:(0,n.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",t),...a})};m.displayName="DialogFooter";let _=s.forwardRef((e,t)=>{let{className:a,...s}=e;return(0,r.jsx)(o.Dx,{ref:t,className:(0,n.cn)("text-lg font-semibold leading-none tracking-tight",a),...s})});_.displayName=o.Dx.displayName;let g=s.forwardRef((e,t)=>{let{className:a,...s}=e;return(0,r.jsx)(o.dk,{ref:t,className:(0,n.cn)("text-sm text-gray-500",a),...s})});g.displayName=o.dk.displayName},23266:function(e,t,a){a.d(t,{GH:function(){return f},QL:function(){return _},Sl:function(){return d},getClusters:function(){return u},uR:function(){return i}});var r=a(67294),s=a(15821),o=a(47145),n=a(93225),l=a(6378);let c={UP:"RUNNING",STOPPED:"STOPPED",INIT:"LAUNCHING",null:"TERMINATED"};async function u(){let{clusterNames:e=null}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};try{return(await o.x.fetch("/status",{cluster_names:e,all_users:!0})).map(e=>{let t="",a=t=e.zone?e.zone:e.region;return t&&t.length>25&&(t=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:15;if(!e||e.length<=t)return e;if(t<=3)return"...";let a=Math.floor((t-3)/2),r=a+(t-3)%2;return 0===a?e.substring(0,r)+"...":e.substring(0,r)+"..."+e.substring(e.length-a)}(t,25)),{status:c[e.status],cluster:e.name,user:e.user_name,user_hash:e.user_hash,cluster_hash:e.cluster_hash,cloud:e.cloud,region:e.region,infra:t?e.cloud+" ("+t+")":e.cloud,full_infra:a?"".concat(e.cloud," (").concat(a,")"):e.cloud,cpus:e.cpus,mem:e.memory,gpus:e.accelerators,resources_str:e.resources_str,resources_str_full:e.resources_str_full,time:new Date(1e3*e.launched_at),num_nodes:e.nodes,workspace:e.workspace,autostop:e.autostop,last_event:e.last_event,to_down:e.to_down,jobs:[],command:e.last_creation_command||e.last_use,task_yaml:e.last_creation_yaml||"{}",events:[{time:new Date(1e3*e.launched_at),event:"Cluster created."}]}})}catch(e){return console.error("Error fetching clusters:",e),[]}}async function i(){try{let e=await o.x.fetch("/cost_report",{days:30});console.log("Raw cluster history data:",e);let t=e.map(e=>{let t="Unknown";e.cloud?t=e.cloud:e.resources&&e.resources.cloud&&(t=e.resources.cloud);let a=e.user_name||"-";return{status:e.status?c[e.status]:"TERMINATED",cluster:e.name,user:a,user_hash:e.user_hash,cluster_hash:e.cluster_hash,cloud:t,region:"",infra:t,full_infra:t,resources_str:e.resources_str,resources_str_full:e.resources_str_full,time:e.launched_at?new Date(1e3*e.launched_at):null,num_nodes:e.num_nodes||1,duration:e.duration,total_cost:e.total_cost,workspace:e.workspace||"default",autostop:-1,last_event:e.last_event,to_down:!1,usage_intervals:e.usage_intervals,command:e.last_creation_command||"",task_yaml:e.last_creation_yaml||"{}",events:[{time:e.launched_at?new Date(1e3*e.launched_at):new Date,event:"Cluster created."}]}});return console.log("Processed cluster history data:",t),t}catch(e){return console.error("Error fetching cluster history:",e),[]}}async function d(e){let{clusterName:t,jobId:a,onNewLog:r,workspace:n}=e;try{await o.x.stream("/logs",{follow:!1,cluster_name:t,job_id:a,tail:1e4,override_skypilot_config:{active_workspace:n||"default"}},r)}catch(e){console.error("Error in streamClusterJobLogs:",e),(0,s.C)("Error in streamClusterJobLogs: ".concat(e.message),"error")}}async function f(e){let{clusterName:t,jobIds:a=null,workspace:r}=e;try{let e=await o.x.fetch("/download_logs",{cluster_name:t,job_ids:a,override_skypilot_config:{active_workspace:r||"default"}}),l=Object.values(e||{});if(!l.length){(0,s.C)("No logs found to download.","warning");return}let c=window.location.origin,u="".concat(c).concat(n.f4,"/download"),i=await fetch("".concat(u,"?relative=items"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({folder_paths:l})});if(!i.ok){let e=await i.text();throw Error("Download failed: ".concat(i.status," ").concat(e))}let d=await i.blob(),f=window.URL.createObjectURL(d),m=document.createElement("a"),_=new Date().toISOString().replace(/[:.]/g,"-"),g=a&&1===a.length?"job-".concat(a[0]):"jobs";m.href=f,m.download="".concat(t,"-").concat(g,"-logs-").concat(_,".zip"),document.body.appendChild(m),m.click(),m.remove(),window.URL.revokeObjectURL(f)}catch(e){console.error("Error downloading logs:",e),(0,s.C)("Error downloading logs: ".concat(e.message),"error")}}async function m(e){let{clusterName:t,workspace:a}=e;try{return(await o.x.fetch("/queue",{cluster_name:t,all_users:!0,override_skypilot_config:{active_workspace:a}})).map(e=>{var r;let s=e.end_at?e.end_at:Date.now()/1e3,o=0,n=0;return e.submitted_at&&(o=s-e.submitted_at),e.start_at&&(n=s-e.start_at),{id:e.job_id,status:e.status,job:e.job_name,user:e.username,user_hash:e.user_hash,gpus:e.accelerators||{},submitted_at:e.submitted_at?new Date(1e3*e.submitted_at):null,resources:e.resources,cluster:t,total_duration:o,job_duration:n,infra:"",logs:"",workspace:a||"default",git_commit:(null===(r=e.metadata)||void 0===r?void 0:r.git_commit)||"-"}})}catch(e){return console.error("Error fetching cluster jobs:",e),[]}}function _(e){let{cluster:t,job:a=null}=e,[s,o]=(0,r.useState)(null),[n,c]=(0,r.useState)(null),[i,d]=(0,r.useState)(!0),[f,_]=(0,r.useState)(!0),g=(0,r.useCallback)(async()=>{if(t)try{d(!0);let e=await l.default.get(u,[{clusterNames:[t]}]);return o(e[0]),e[0]}catch(e){console.error("Error fetching cluster data:",e)}finally{d(!1)}return null},[t]),h=(0,r.useCallback)(async e=>{if(t)try{_(!0);let a=await l.default.get(m,[{clusterName:t,workspace:e||"default"}]);c(a)}catch(e){console.error("Error fetching cluster job data:",e)}finally{_(!1)}},[t]),p=(0,r.useCallback)(async()=>{l.default.invalidate(u,[{clusterNames:[t]}]);let e=await g();e&&(l.default.invalidate(m,[{clusterName:t,workspace:e.workspace||"default"}]),await h(e.workspace))},[g,h,t]),w=(0,r.useCallback)(async()=>{s&&(l.default.invalidate(m,[{clusterName:t,workspace:s.workspace||"default"}]),await h(s.workspace))},[h,s,t]);return(0,r.useEffect)(()=>{(async()=>{let e=await g();e&&h(e.workspace)})()},[t,a,g,h]),{clusterData:s,clusterJobData:n,loading:i,clusterDetailsLoading:i,clusterJobsLoading:f,refreshData:p,refreshClusterJobsOnly:w}}},53081:function(e,t,a){a.d(t,{R:function(){return s}}),a(23266),a(68969);var r=a(47145);async function s(){try{let e=await r.x.get("/users");if(!e.ok)throw Error("HTTP error! status: ".concat(e.status));return(await e.json()).map(e=>({userId:e.id,username:e.name,role:e.role,created_at:e.created_at}))||[]}catch(e){return console.error("Failed to fetch users:",e),[]}}}}]);
@@ -1 +1 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3785],{42557:function(e,s,r){r.d(s,{I:function(){return n}});var t=r(85893),a=r(67294),l=r(32350);let n=a.forwardRef((e,s)=>{let{className:r,type:a,...n}=e;return(0,t.jsx)("input",{type:a,className:(0,l.cn)("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",r),ref:s,...n})});n.displayName="Input"},29749:function(e,s,r){r.d(s,{_:function(){return d}});var t=r(85893),a=r(67294),l=r(75320),n=a.forwardRef((e,s)=>(0,t.jsx)(l.WV.label,{...e,ref:s,onMouseDown:s=>{s.target.closest("button, input, select, textarea")||(e.onMouseDown?.(s),!s.defaultPrevented&&s.detail>1&&s.preventDefault())}}));n.displayName="Label";var i=r(12003),o=r(32350);let c=(0,i.j)("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),d=a.forwardRef((e,s)=>{let{className:r,...a}=e;return(0,t.jsx)(n,{ref:s,className:(0,o.cn)(c(),r),...a})});d.displayName=n.displayName},33785:function(e,s,r){r.r(s),r.d(s,{NewWorkspace:function(){return b}});var t=r(85893),a=r(67294),l=r(11163),n=r(41664),i=r.n(n),o=r(5152),c=r.n(o),d=r(17324),u=r(30803),m=r(42557),f=r(29749),p=r(37673);let x=c()(()=>Promise.all([r.e(616),r.e(5739),r.e(7411),r.e(1272),r.e(6633),r.e(6989),r.e(3850),r.e(8969),r.e(6135),r.e(4509),r.e(7557),r.e(3015),r.e(1141)]).then(r.bind(r,11141)).then(e=>e.WorkspaceEditor),{loadableGenerated:{webpack:()=>[11141]},ssr:!1});function b(){(0,l.useRouter)();let[e,s]=(0,a.useState)(""),[r,n]=(0,a.useState)(!1),[o,c]=(0,a.useState)({}),[b,h]=(0,a.useState)(!0);(0,a.useEffect)(()=>{v()},[]);let v=async()=>{try{let e=await (0,d.fX)();c(e)}catch(e){console.error("Failed to fetch existing workspaces:",e)}finally{h(!1)}},k=()=>{e.trim()&&!y&&n(!0)},y=e.trim()&&o.hasOwnProperty(e.trim()),w=e.trim()&&!y;return r?(0,t.jsx)(x,{workspaceName:e,isNewWorkspace:!0}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"flex items-center justify-between mb-4 h-5",children:(0,t.jsxs)("div",{className:"text-base flex items-center",children:[(0,t.jsx)(i(),{href:"/workspaces",className:"text-sky-blue hover:underline",children:"Workspaces"}),(0,t.jsx)("span",{className:"mx-2 text-gray-500",children:"›"}),(0,t.jsx)("span",{className:"text-sky-blue",children:"New Workspace"})]})}),(0,t.jsxs)(p.Zb,{className:"max-w-md",children:[(0,t.jsx)(p.Ol,{children:(0,t.jsx)(p.ll,{className:"text-base font-normal",children:"Create New Workspace"})}),(0,t.jsxs)(p.aY,{className:"space-y-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(f._,{htmlFor:"workspace-name",className:"text-sm font-normal",children:"Workspace name"}),(0,t.jsx)(m.I,{id:"workspace-name",value:e,onChange:e=>s(e.target.value),placeholder:"Enter workspace name",autoFocus:!0,onKeyPress:e=>{"Enter"===e.key&&w&&k()}}),y?(0,t.jsxs)("p",{className:"text-sm text-gray-500 mt-1",children:['Workspace "',e,'" already exists.'," ",(0,t.jsx)(i(),{href:"/workspaces/".concat(e),className:"text-blue-600 hover:underline",children:"View the workspace"})]}):(0,t.jsx)("p",{className:"text-sm text-gray-500 mt-1",children:"Choose a unique name for your workspace"})]}),(0,t.jsx)(u.z,{onClick:k,disabled:!w||b,className:"w-full bg-sky-600 hover:bg-sky-700 text-white disabled:bg-gray-300 disabled:text-gray-500",children:b?"Loading...":"Next: Configure Workspace"})]})]})]})}},12003:function(e,s,r){r.d(s,{j:function(){return n}});var t=r(90512);let a=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,l=t.W,n=(e,s)=>r=>{var t;if((null==s?void 0:s.variants)==null)return l(e,null==r?void 0:r.class,null==r?void 0:r.className);let{variants:n,defaultVariants:i}=s,o=Object.keys(n).map(e=>{let s=null==r?void 0:r[e],t=null==i?void 0:i[e];if(null===s)return null;let l=a(s)||a(t);return n[e][l]}),c=r&&Object.entries(r).reduce((e,s)=>{let[r,t]=s;return void 0===t||(e[r]=t),e},{});return l(e,o,null==s?void 0:null===(t=s.compoundVariants)||void 0===t?void 0:t.reduce((e,s)=>{let{class:r,className:t,...a}=s;return Object.entries(a).every(e=>{let[s,r]=e;return Array.isArray(r)?r.includes({...i,...c}[s]):({...i,...c})[s]===r})?[...e,r,t]:e},[]),null==r?void 0:r.class,null==r?void 0:r.className)}}}]);
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3785],{42557:function(e,s,r){r.d(s,{I:function(){return n}});var t=r(85893),a=r(67294),l=r(32350);let n=a.forwardRef((e,s)=>{let{className:r,type:a,...n}=e;return(0,t.jsx)("input",{type:a,className:(0,l.cn)("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",r),ref:s,...n})});n.displayName="Input"},29749:function(e,s,r){r.d(s,{_:function(){return d}});var t=r(85893),a=r(67294),l=r(75320),n=a.forwardRef((e,s)=>(0,t.jsx)(l.WV.label,{...e,ref:s,onMouseDown:s=>{s.target.closest("button, input, select, textarea")||(e.onMouseDown?.(s),!s.defaultPrevented&&s.detail>1&&s.preventDefault())}}));n.displayName="Label";var i=r(12003),o=r(32350);let c=(0,i.j)("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),d=a.forwardRef((e,s)=>{let{className:r,...a}=e;return(0,t.jsx)(n,{ref:s,className:(0,o.cn)(c(),r),...a})});d.displayName=n.displayName},33785:function(e,s,r){r.r(s),r.d(s,{NewWorkspace:function(){return b}});var t=r(85893),a=r(67294),l=r(11163),n=r(41664),i=r.n(n),o=r(5152),c=r.n(o),d=r(17324),u=r(30803),m=r(42557),f=r(29749),p=r(37673);let x=c()(()=>Promise.all([r.e(616),r.e(5739),r.e(7411),r.e(1272),r.e(6633),r.e(6989),r.e(3850),r.e(8969),r.e(6135),r.e(1121),r.e(6601),r.e(3015),r.e(1141)]).then(r.bind(r,11141)).then(e=>e.WorkspaceEditor),{loadableGenerated:{webpack:()=>[11141]},ssr:!1});function b(){(0,l.useRouter)();let[e,s]=(0,a.useState)(""),[r,n]=(0,a.useState)(!1),[o,c]=(0,a.useState)({}),[b,h]=(0,a.useState)(!0);(0,a.useEffect)(()=>{v()},[]);let v=async()=>{try{let e=await (0,d.fX)();c(e)}catch(e){console.error("Failed to fetch existing workspaces:",e)}finally{h(!1)}},k=()=>{e.trim()&&!y&&n(!0)},y=e.trim()&&o.hasOwnProperty(e.trim()),w=e.trim()&&!y;return r?(0,t.jsx)(x,{workspaceName:e,isNewWorkspace:!0}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"flex items-center justify-between mb-4 h-5",children:(0,t.jsxs)("div",{className:"text-base flex items-center",children:[(0,t.jsx)(i(),{href:"/workspaces",className:"text-sky-blue hover:underline",children:"Workspaces"}),(0,t.jsx)("span",{className:"mx-2 text-gray-500",children:"›"}),(0,t.jsx)("span",{className:"text-sky-blue",children:"New Workspace"})]})}),(0,t.jsxs)(p.Zb,{className:"max-w-md",children:[(0,t.jsx)(p.Ol,{children:(0,t.jsx)(p.ll,{className:"text-base font-normal",children:"Create New Workspace"})}),(0,t.jsxs)(p.aY,{className:"space-y-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(f._,{htmlFor:"workspace-name",className:"text-sm font-normal",children:"Workspace name"}),(0,t.jsx)(m.I,{id:"workspace-name",value:e,onChange:e=>s(e.target.value),placeholder:"Enter workspace name",autoFocus:!0,onKeyPress:e=>{"Enter"===e.key&&w&&k()}}),y?(0,t.jsxs)("p",{className:"text-sm text-gray-500 mt-1",children:['Workspace "',e,'" already exists.'," ",(0,t.jsx)(i(),{href:"/workspaces/".concat(e),className:"text-blue-600 hover:underline",children:"View the workspace"})]}):(0,t.jsx)("p",{className:"text-sm text-gray-500 mt-1",children:"Choose a unique name for your workspace"})]}),(0,t.jsx)(u.z,{onClick:k,disabled:!w||b,className:"w-full bg-sky-600 hover:bg-sky-700 text-white disabled:bg-gray-300 disabled:text-gray-500",children:b?"Loading...":"Next: Configure Workspace"})]})]})]})}},12003:function(e,s,r){r.d(s,{j:function(){return n}});var t=r(90512);let a=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,l=t.W,n=(e,s)=>r=>{var t;if((null==s?void 0:s.variants)==null)return l(e,null==r?void 0:r.class,null==r?void 0:r.className);let{variants:n,defaultVariants:i}=s,o=Object.keys(n).map(e=>{let s=null==r?void 0:r[e],t=null==i?void 0:i[e];if(null===s)return null;let l=a(s)||a(t);return n[e][l]}),c=r&&Object.entries(r).reduce((e,s)=>{let[r,t]=s;return void 0===t||(e[r]=t),e},{});return l(e,o,null==s?void 0:null===(t=s.compoundVariants)||void 0===t?void 0:t.reduce((e,s)=>{let{class:r,className:t,...a}=s;return Object.entries(a).every(e=>{let[s,r]=e;return Array.isArray(r)?r.includes({...i,...c}[s]):({...i,...c})[s]===r})?[...e,r,t]:e},[]),null==r?void 0:r.class,null==r?void 0:r.className)}}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4725],{1812:function(e,s,r){r.d(s,{X:function(){return l}});var t=r(85893),n=r(67294);let a=e=>{if(!(null==e?void 0:e.message))return"An unexpected error occurred.";let s=e.message;return s.includes("failed:")&&(s=s.split("failed:")[1].trim()),s},l=e=>{let{error:s,title:r="Error",onDismiss:l}=e,[c,i]=(0,n.useState)(!1);if((0,n.useEffect)(()=>{s&&i(!1)},[s]),!s||c)return null;let o="string"==typeof s?s:a(s);return(0,t.jsx)("div",{className:"bg-red-50 border border-red-200 rounded-md p-3 mb-4",children:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("div",{className:"flex-shrink-0",children:(0,t.jsx)("svg",{className:"h-5 w-5 text-red-400",viewBox:"0 0 20 20",fill:"currentColor",children:(0,t.jsx)("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z",clipRule:"evenodd"})})}),(0,t.jsx)("div",{className:"ml-3",children:(0,t.jsxs)("div",{className:"text-sm text-red-800",children:[(0,t.jsxs)("strong",{children:[r,":"]})," ",o]})})]}),(0,t.jsx)("button",{onClick:()=>{i(!0),l&&l()},className:"flex-shrink-0 ml-4 text-red-400 hover:text-red-600 focus:outline-none focus:ring-2 focus:ring-red-500 focus:ring-offset-2 focus:ring-offset-red-50 rounded","aria-label":"Dismiss error",children:(0,t.jsx)("svg",{className:"h-4 w-4",viewBox:"0 0 20 20",fill:"currentColor",children:(0,t.jsx)("path",{fillRule:"evenodd",d:"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z",clipRule:"evenodd"})})})]})})}},99307:function(e,s,r){r.d(s,{Cl:function(){return c},OE:function(){return d}});var t=r(85893);r(67294);var n=r(55739),a=r(36989),l=r(53850);let c=e=>{switch(e){case"LAUNCHING":return"bg-blue-100 text-sky-blue";case"RUNNING":case"IN_USE":case"READY":return"bg-green-50 text-green-700";case"STOPPED":return"bg-yellow-100 text-yellow-800";case"TERMINATED":case"PENDING":case"UNKNOWN":default:return"bg-gray-100 text-gray-800";case"SUCCEEDED":case"PROVISIONING":case"CONTROLLER_INIT":case"REPLICA_INIT":return"bg-blue-50 text-blue-700";case"FAILED":case"FAILED_PRECHECKS":case"FAILED_NO_RESOURCE":case"FAILED_CONTROLLER":case"FAILED_INITIAL_DELAY":case"FAILED_PROBING":case"FAILED_PROVISION":case"FAILED_CLEANUP":case"CONTROLLER_FAILED":return"bg-red-50 text-red-700";case"CANCELLED":case"CANCELLING":case"NOT_READY":return"bg-yellow-50 text-yellow-700";case"RECOVERING":case"SHUTTING_DOWN":return"bg-orange-50 text-orange-700";case"SUBMITTED":return"bg-indigo-50 text-indigo-700";case"STARTING":return"bg-cyan-50 text-cyan-700";case"FAILED_SETUP":return"bg-pink-50 text-pink-700";case"PREEMPTED":case"NO_REPLICA":return"bg-purple-50 text-purple-700"}},i=e=>{switch(e){case"LAUNCHING":case"STARTING":case"PROVISIONING":case"SHUTTING_DOWN":return(0,t.jsx)(n.Z,{size:12,className:"w-3 h-3 mr-1"});case"RUNNING":case"IN_USE":default:return(0,t.jsx)(l.W2,{className:"w-3 h-3 mr-1"});case"STOPPED":case"PREEMPTED":return(0,t.jsx)(l.fp,{className:"w-3 h-3 mr-1"});case"TERMINATED":case"FAILED":case"CANCELLED":case"FAILED_INITIAL_DELAY":case"FAILED_PROBING":case"FAILED_PROVISION":case"FAILED_CLEANUP":case"CONTROLLER_FAILED":case"UNKNOWN":return(0,t.jsx)(l.Ps,{className:"w-3 h-3 mr-1"});case"SUCCEEDED":return(0,t.jsx)(l.Ye,{className:"w-3 h-3 mr-1"});case"PENDING":case"RECOVERING":case"SUBMITTED":case"CANCELLING":case"FAILED_SETUP":case"FAILED_PRECHECKS":case"FAILED_NO_RESOURCE":case"FAILED_CONTROLLER":case"READY":case"NOT_READY":case"CONTROLLER_INIT":case"REPLICA_INIT":case"NO_REPLICA":return(0,t.jsx)(l.J$,{className:"w-3 h-3 mr-1"})}},o=e=>{let s=c(e),r=i(e);return(0,t.jsxs)("span",{className:"".concat("inline-flex items-center px-2 py-1 rounded-full text-sm"," ").concat(s),children:[r,e]})},d=e=>{let{status:s}=e;return(0,t.jsx)(a.WH,{content:s,className:"text-muted-foreground text-sm",children:(0,t.jsx)("span",{children:o(s)})})}},68764:function(e,s,r){r.d(s,{RM:function(){return i},SC:function(){return o},iA:function(){return l},pj:function(){return u},ss:function(){return d},xD:function(){return c}});var t=r(85893),n=r(67294),a=r(32350);let l=n.forwardRef((e,s)=>{let{className:r,...n}=e;return(0,t.jsx)("div",{className:"relative w-full overflow-auto",children:(0,t.jsx)("table",{ref:s,className:(0,a.cn)("w-full caption-bottom text-base",r),...n})})});l.displayName="Table";let c=n.forwardRef((e,s)=>{let{className:r,...n}=e;return(0,t.jsx)("thead",{ref:s,className:(0,a.cn)("[&_tr]:border-b",r),...n})});c.displayName="TableHeader";let i=n.forwardRef((e,s)=>{let{className:r,...n}=e;return(0,t.jsx)("tbody",{ref:s,className:(0,a.cn)("[&_tr:last-child]:border-0",r),...n})});i.displayName="TableBody",n.forwardRef((e,s)=>{let{className:r,...n}=e;return(0,t.jsx)("tfoot",{ref:s,className:(0,a.cn)("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",r),...n})}).displayName="TableFooter";let o=n.forwardRef((e,s)=>{let{className:r,...n}=e;return(0,t.jsx)("tr",{ref:s,className:(0,a.cn)("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",r),...n})});o.displayName="TableRow";let d=n.forwardRef((e,s)=>{let{className:r,...n}=e;return(0,t.jsx)("th",{ref:s,className:(0,a.cn)("h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0",r),...n})});d.displayName="TableHead";let u=n.forwardRef((e,s)=>{let{className:r,...n}=e;return(0,t.jsx)("td",{ref:s,className:(0,a.cn)("p-4 align-middle [&:has([role=checkbox])]:pr-0",r),...n})});u.displayName="TableCell",n.forwardRef((e,s)=>{let{className:r,...n}=e;return(0,t.jsx)("caption",{ref:s,className:(0,a.cn)("mt-4 text-base text-muted-foreground",r),...n})}).displayName="TableCaption"},54725:function(e,s,r){r.r(s),r.d(s,{Volumes:function(){return C}});var t=r(85893),n=r(67294),a=r(45697),l=r.n(a),c=r(55739),i=r(65168),o=r(30803),d=r(68764),u=r(19238),h=r(51214),x=r(94545),m=r(13626),N=r(47603),f=r(23001),j=r(37673),p=r(50326),g=r(1812),v=r(41664),E=r.n(v),b=r(36989),w=r(99307),y=r(6378),I=r(36856);let R=h.nb.REFRESH_INTERVAL;function C(){let[e,s]=(0,n.useState)(!1),r=(0,n.useRef)(null),a=(0,f.X)(),[l,i]=(0,n.useState)(!1),[d,h]=(0,n.useState)(null),[x,N]=(0,n.useState)(null),[j,v]=(0,n.useState)(!1),b=()=>{y.default.invalidate(u.C),r.current&&r.current()},w=async()=>{if(d){v(!0),N(null);try{let e=await (0,u.w)(d.name);if(!e.success)throw Error(e.msg);i(!1),h(null),b()}catch(e){N(e)}finally{v(!1)}}},C=()=>{i(!1),h(null),N(null)};return(0,n.useEffect)(()=>{I.ZP.preloadForPage("volumes")},[]),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-4 h-5",children:[(0,t.jsx)("div",{className:"text-base",children:(0,t.jsx)(E(),{href:"/volumes",className:"text-sky-blue hover:underline leading-none",children:"Volumes"})}),(0,t.jsxs)("div",{className:"flex items-center",children:[e&&(0,t.jsxs)("div",{className:"flex items-center mr-2",children:[(0,t.jsx)(c.Z,{size:15,className:"mt-0"}),(0,t.jsx)("span",{className:"ml-2 text-gray-500 text-sm",children:"Loading..."})]}),(0,t.jsxs)("button",{onClick:b,disabled:e,className:"text-sky-blue hover:text-sky-blue-bright flex items-center",children:[(0,t.jsx)(m.Z,{className:"h-4 w-4 mr-1.5"}),!a&&(0,t.jsx)("span",{children:"Refresh"})]})]})]}),(0,t.jsx)(L,{refreshInterval:R,setLoading:s,refreshDataRef:r,onDeleteVolume:e=>{h(e),i(!0),N(null)}},"volumes"),(0,t.jsx)(p.Vq,{open:l,onOpenChange:C,children:(0,t.jsxs)(p.cZ,{className:"sm:max-w-md",children:[(0,t.jsxs)(p.fK,{children:[(0,t.jsx)(p.$N,{children:"Delete Volume"}),(0,t.jsxs)(p.Be,{children:['Are you sure you want to delete volume "',(null==d?void 0:d.name)||"this volume",'"? This action cannot be undone.']})]}),(0,t.jsx)(g.X,{error:x,title:"Deletion Failed",onDismiss:()=>N(null)}),(0,t.jsxs)(p.cN,{children:[(0,t.jsx)(o.z,{variant:"outline",onClick:C,disabled:j,children:"Cancel"}),(0,t.jsx)(o.z,{variant:"destructive",onClick:w,disabled:j,children:j?"Deleting...":"Delete"})]})]})})]})}function L(e){let{refreshInterval:s,setLoading:r,refreshDataRef:a,onDeleteVolume:l}=e,[i,h]=(0,n.useState)([]),[m,f]=(0,n.useState)({key:null,direction:"ascending"}),[p,g]=(0,n.useState)(!1),[v,E]=(0,n.useState)(!0),[I,R]=(0,n.useState)(1),[C,L]=(0,n.useState)(10),D=(0,n.useCallback)(async()=>{r(!0),g(!0);try{let e=await y.default.get(u.C);h(e)}catch(e){console.error("Failed to fetch volumes:",e),h([])}finally{r(!1),g(!1),E(!1)}},[r]),_=(0,n.useMemo)(()=>(0,x.R0)(i,m.key,m.direction),[i,m]);(0,n.useEffect)(()=>{a&&(a.current=D)},[a,D]),(0,n.useEffect)(()=>{h([]);let e=!0;D();let r=setInterval(()=>{e&&D()},s);return()=>{e=!1,clearInterval(r)}},[s,D]),(0,n.useEffect)(()=>{R(1)},[i.length]);let k=e=>{let s="ascending";m.key===e&&"ascending"===m.direction&&(s="descending"),f({key:e,direction:s})},T=e=>m.key===e?"ascending"===m.direction?" ↑":" ↓":"",S=Math.ceil(_.length/C),O=(I-1)*C,P=O+C,F=_.slice(O,P),U=e=>e||"-",z=e=>{if(!e)return"N/A";try{let s=new Date(1e3*e);return(0,t.jsx)(b.Zg,{date:s})}catch(e){return"Invalid Date"}};return(0,t.jsxs)("div",{children:[(0,t.jsx)(j.Zb,{children:(0,t.jsx)("div",{className:"overflow-x-auto rounded-lg",children:(0,t.jsxs)(d.iA,{className:"min-w-full",children:[(0,t.jsx)(d.xD,{children:(0,t.jsxs)(d.SC,{children:[(0,t.jsxs)(d.ss,{className:"sortable whitespace-nowrap cursor-pointer hover:bg-gray-50",onClick:()=>k("name"),children:["Name",T("name")]}),(0,t.jsxs)(d.ss,{className:"sortable whitespace-nowrap cursor-pointer hover:bg-gray-50",onClick:()=>k("infra"),children:["Infra",T("infra")]}),(0,t.jsxs)(d.ss,{className:"sortable whitespace-nowrap cursor-pointer hover:bg-gray-50",onClick:()=>k("status"),children:["Status",T("status")]}),(0,t.jsxs)(d.ss,{className:"sortable whitespace-nowrap cursor-pointer hover:bg-gray-50",onClick:()=>k("size"),children:["Size",T("size")]}),(0,t.jsxs)(d.ss,{className:"sortable whitespace-nowrap cursor-pointer hover:bg-gray-50",onClick:()=>k("user_name"),children:["User",T("user_name")]}),(0,t.jsxs)(d.ss,{className:"sortable whitespace-nowrap cursor-pointer hover:bg-gray-50",onClick:()=>k("last_attached_at"),children:["Last Use",T("last_attached_at")]}),(0,t.jsxs)(d.ss,{className:"sortable whitespace-nowrap cursor-pointer hover:bg-gray-50",onClick:()=>k("type"),children:["Type",T("type")]}),(0,t.jsxs)(d.ss,{className:"sortable whitespace-nowrap cursor-pointer hover:bg-gray-50",onClick:()=>k("usedby_clusters"),children:["Used By",T("usedby_clusters")]}),(0,t.jsx)(d.ss,{children:"Actions"})]})}),(0,t.jsx)(d.RM,{children:p&&v?(0,t.jsx)(d.SC,{children:(0,t.jsx)(d.pj,{colSpan:11,className:"text-center py-6 text-gray-500",children:(0,t.jsxs)("div",{className:"flex justify-center items-center",children:[(0,t.jsx)(c.Z,{size:20,className:"mr-2"}),(0,t.jsx)("span",{children:"Loading..."})]})})}):F.length>0?F.map(e=>(0,t.jsxs)(d.SC,{children:[(0,t.jsx)(d.pj,{className:"font-medium",children:e.name}),(0,t.jsx)(d.pj,{children:e.infra||"N/A"}),(0,t.jsx)(d.pj,{children:(0,t.jsx)(w.OE,{status:e.status})}),(0,t.jsx)(d.pj,{children:U(e.size)}),(0,t.jsx)(d.pj,{children:e.user_name||"N/A"}),(0,t.jsx)(d.pj,{children:z(e.last_attached_at)}),(0,t.jsx)(d.pj,{children:e.type||"N/A"}),(0,t.jsx)(d.pj,{children:(0,t.jsx)(A,{clusters:e.usedby_clusters,pods:e.usedby_pods})}),(0,t.jsx)(d.pj,{children:(0,t.jsx)(o.z,{variant:"ghost",size:"sm",onClick:()=>l(e),className:"text-red-600 hover:text-red-700 hover:bg-red-50",title:"Delete volume",children:(0,t.jsx)(N.Z,{className:"w-4 h-4"})})})]},e.name)):(0,t.jsx)(d.SC,{children:(0,t.jsx)(d.pj,{colSpan:11,className:"text-center py-6 text-gray-500",children:"No volumes found"})})})]})})}),i.length>0&&(0,t.jsx)("div",{className:"flex justify-end items-center py-2 px-4 text-sm text-gray-700",children:(0,t.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsx)("span",{className:"mr-2",children:"Rows per page:"}),(0,t.jsxs)("div",{className:"relative inline-block",children:[(0,t.jsxs)("select",{value:C,onChange:e=>{L(parseInt(e.target.value,10)),R(1)},className:"py-1 pl-2 pr-6 appearance-none outline-none cursor-pointer border-none bg-transparent",style:{minWidth:"40px"},children:[(0,t.jsx)("option",{value:10,children:"10"}),(0,t.jsx)("option",{value:30,children:"30"}),(0,t.jsx)("option",{value:50,children:"50"}),(0,t.jsx)("option",{value:100,children:"100"}),(0,t.jsx)("option",{value:200,children:"200"})]}),(0,t.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",className:"h-4 w-4 text-gray-500 absolute right-0 top-1/2 transform -translate-y-1/2 pointer-events-none",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]})]}),(0,t.jsxs)("div",{children:[O+1," – ",Math.min(P,i.length)," of"," ",i.length]}),(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsx)(o.z,{variant:"ghost",size:"icon",onClick:()=>{R(e=>Math.max(e-1,1))},disabled:1===I,className:"text-gray-500 h-8 w-8 p-0",children:(0,t.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"chevron-left",children:(0,t.jsx)("path",{d:"M15 18l-6-6 6-6"})})}),(0,t.jsx)(o.z,{variant:"ghost",size:"icon",onClick:()=>{R(e=>Math.min(e+1,S))},disabled:I===S||0===S,className:"text-gray-500 h-8 w-8 p-0",children:(0,t.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"chevron-right",children:(0,t.jsx)("path",{d:"M9 18l6-6-6-6"})})})]})]})})]})}function A(e){let{clusters:s,pods:r}=e,[a,l]=(0,n.useState)(null),c=Array.isArray(s)&&s.length>0?s:Array.isArray(r)&&r.length>0?r:[],o=Array.isArray(s)&&s.length>0;if(!c||0===c.length)return"N/A";let d=c.slice(0,2),u=c.slice(2);return(0,t.jsxs)(t.Fragment,{children:[d.map((e,s)=>(0,t.jsxs)("span",{children:[o?(0,t.jsx)(E(),{href:"/clusters/".concat(encodeURIComponent(e)),className:"text-sky-blue hover:underline",children:e}):(0,t.jsx)("span",{children:e}),s<d.length-1?", ":""]},e)),u.length>0&&(0,t.jsxs)(t.Fragment,{children:[","," ",(0,t.jsxs)("span",{className:"text-sky-blue cursor-pointer underline",onClick:e=>{l(e.currentTarget)},style:{userSelect:"none"},children:["+",u.length," more"]}),(0,t.jsx)(i.ZP,{open:!!a,anchorEl:a,onClose:()=>{l(null)},anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},children:(0,t.jsx)("div",{style:{padding:12,maxWidth:300},children:u.map(e=>(0,t.jsx)("div",{style:{marginBottom:4},children:o?(0,t.jsx)(E(),{href:"/clusters/".concat(encodeURIComponent(e)),className:"text-sky-blue hover:underline",children:e}):(0,t.jsx)("span",{children:e})},e))})})]})]})}L.propTypes={refreshInterval:l().number.isRequired,setLoading:l().func.isRequired,refreshDataRef:l().shape({current:l().func}).isRequired,onDeleteVolume:l().func.isRequired}},94545:function(e,s,r){function t(e){return e.startsWith("sky-jobs-controller-")}function n(e,s,r){return null===s?e:[...e].sort((e,t)=>e[s]<t[s]?"ascending"===r?-1:1:e[s]>t[s]?"ascending"===r?1:-1:0)}r.d(s,{R0:function(){return n},Ym:function(){return t}})},23001:function(e,s,r){r.d(s,{X:function(){return n}});var t=r(67294);function n(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:768,[s,r]=(0,t.useState)(!1);return(0,t.useEffect)(()=>{let s=()=>{r(window.innerWidth<e)};return s(),window.addEventListener("resize",s),()=>{window.removeEventListener("resize",s)}},[e]),s}}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6601],{99307:function(e,s,t){t.d(s,{Cl:function(){return l},OE:function(){return d}});var a=t(85893);t(67294);var r=t(55739),n=t(36989),c=t(53850);let l=e=>{switch(e){case"LAUNCHING":return"bg-blue-100 text-sky-blue";case"RUNNING":case"IN_USE":case"READY":return"bg-green-50 text-green-700";case"STOPPED":return"bg-yellow-100 text-yellow-800";case"TERMINATED":case"PENDING":case"UNKNOWN":default:return"bg-gray-100 text-gray-800";case"SUCCEEDED":case"PROVISIONING":case"CONTROLLER_INIT":case"REPLICA_INIT":return"bg-blue-50 text-blue-700";case"FAILED":case"FAILED_PRECHECKS":case"FAILED_NO_RESOURCE":case"FAILED_CONTROLLER":case"FAILED_INITIAL_DELAY":case"FAILED_PROBING":case"FAILED_PROVISION":case"FAILED_CLEANUP":case"CONTROLLER_FAILED":return"bg-red-50 text-red-700";case"CANCELLED":case"CANCELLING":case"NOT_READY":return"bg-yellow-50 text-yellow-700";case"RECOVERING":case"SHUTTING_DOWN":return"bg-orange-50 text-orange-700";case"SUBMITTED":return"bg-indigo-50 text-indigo-700";case"STARTING":return"bg-cyan-50 text-cyan-700";case"FAILED_SETUP":return"bg-pink-50 text-pink-700";case"PREEMPTED":case"NO_REPLICA":return"bg-purple-50 text-purple-700"}},i=e=>{switch(e){case"LAUNCHING":case"STARTING":case"PROVISIONING":case"SHUTTING_DOWN":return(0,a.jsx)(r.Z,{size:12,className:"w-3 h-3 mr-1"});case"RUNNING":case"IN_USE":default:return(0,a.jsx)(c.W2,{className:"w-3 h-3 mr-1"});case"STOPPED":case"PREEMPTED":return(0,a.jsx)(c.fp,{className:"w-3 h-3 mr-1"});case"TERMINATED":case"FAILED":case"CANCELLED":case"FAILED_INITIAL_DELAY":case"FAILED_PROBING":case"FAILED_PROVISION":case"FAILED_CLEANUP":case"CONTROLLER_FAILED":case"UNKNOWN":return(0,a.jsx)(c.Ps,{className:"w-3 h-3 mr-1"});case"SUCCEEDED":return(0,a.jsx)(c.Ye,{className:"w-3 h-3 mr-1"});case"PENDING":case"RECOVERING":case"SUBMITTED":case"CANCELLING":case"FAILED_SETUP":case"FAILED_PRECHECKS":case"FAILED_NO_RESOURCE":case"FAILED_CONTROLLER":case"READY":case"NOT_READY":case"CONTROLLER_INIT":case"REPLICA_INIT":case"NO_REPLICA":return(0,a.jsx)(c.J$,{className:"w-3 h-3 mr-1"})}},o=e=>{let s=l(e),t=i(e);return(0,a.jsxs)("span",{className:"".concat("inline-flex items-center px-2 py-1 rounded-full text-sm"," ").concat(s),children:[t,e]})},d=e=>{let{status:s}=e;return(0,a.jsx)(n.WH,{content:s,className:"text-muted-foreground text-sm",children:(0,a.jsx)("span",{children:o(s)})})}},20546:function(e,s,t){t.d(s,{H:function(){return d}});var a=t(85893);t(67294);var r=t(41664),n=t.n(r),c=t(45697),l=t.n(c);function i(e){return!!e&&"string"==typeof e&&e.toLowerCase().startsWith("sa-")}let o=()=>(0,a.jsx)("span",{className:"px-2 py-0.5 text-xs bg-blue-100 text-blue-700 rounded font-medium ml-1",children:"SA"}),d=e=>{let{username:s,userHash:t,className:r="flex items-center gap-1",linkClassName:c="text-gray-700 hover:text-blue-600 hover:underline",showBadge:l=!0}=e,d=i(t),u=i(t)?"/users?tab=service-accounts":"/users";return(0,a.jsxs)("div",{className:r,children:[(0,a.jsx)(n(),{href:u,className:c,children:s}),l&&d&&(0,a.jsx)(o,{})]})};d.propTypes={username:l().string.isRequired,userHash:l().string,className:l().string,linkClassName:l().string,showBadge:l().bool}},92128:function(e,s,t){t.d(s,{Oh:function(){return m},_R:function(){return x},cV:function(){return N}});var a=t(85893),r=t(67294),n=t(50326),c=t(30803),l=t(37673),i=t(27325),o=t(36989),d=t(93225),u=t(23001);function m(e){let{isOpen:s,onClose:t,cluster:d}=e,[u,m]=r.useState(!1),x=e=>{navigator.clipboard.writeText(e),m(!0),setTimeout(()=>m(!1),2e3)},N=["sky status ".concat(d),"ssh ".concat(d)],h=N.join("\n");return(0,a.jsx)(n.Vq,{open:s,onOpenChange:t,children:(0,a.jsxs)(n.cZ,{className:"sm:max-w-md",children:[(0,a.jsxs)(n.fK,{children:[(0,a.jsxs)(n.$N,{children:["Connect to: ",(0,a.jsx)("span",{className:"font-light",children:d})]}),(0,a.jsx)(n.Be,{children:"Use these instructions to connect to your cluster via SSH."})]}),(0,a.jsxs)("div",{className:"flex flex-col space-y-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h3",{className:"text-sm font-medium mb-2",children:"SSH Command"}),(0,a.jsx)(l.Zb,{className:"p-3 bg-gray-50",children:(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("pre",{className:"text-sm w-full whitespace-pre-wrap",children:N.map((e,s)=>(0,a.jsx)("code",{className:"block",children:e},s))}),(0,a.jsx)(o.WH,{content:u?"Copied!":"Copy command",children:(0,a.jsx)(c.z,{variant:"ghost",size:"icon",onClick:()=>x(h),className:"h-8 w-8 rounded-full",children:(0,a.jsx)(i.Z,{className:"h-4 w-4"})})})]})})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("h3",{className:"text-sm font-medium mb-2",children:"Additional Information"}),(0,a.jsxs)("p",{className:"text-sm text-secondary-foreground",children:["Make sure to run"," ",(0,a.jsxs)("code",{className:"text-sm",children:["sky status ",d]})," first to have SkyPilot set up the SSH access."]})]})]})]})})}function x(e){let{isOpen:s,onClose:t,cluster:r}=e,m=(0,u.X)();return(0,a.jsx)(n.Vq,{open:s,onOpenChange:t,children:(0,a.jsx)(n.cZ,{className:"sm:max-w-3xl",children:(0,a.jsxs)(n.fK,{children:[(0,a.jsxs)(n.$N,{children:["Connect to: ",(0,a.jsx)("span",{className:"font-light",children:r})]}),(0,a.jsx)(n.Be,{children:(0,a.jsxs)("div",{className:"flex flex-col space-y-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h3",{className:"text-sm font-medium mb-2 my-2",children:"Setup SSH access"}),(0,a.jsx)(l.Zb,{className:"p-3 bg-gray-50",children:(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("pre",{className:"text-sm",children:(0,a.jsxs)("code",{children:["sky status ",r]})}),(0,a.jsx)(o.WH,{content:"Copy command",children:(0,a.jsx)(c.z,{variant:"ghost",size:"icon",onClick:()=>navigator.clipboard.writeText("sky status ".concat(r)),className:"h-8 w-8 rounded-full",children:(0,a.jsx)(i.Z,{className:"h-4 w-4"})})})]})})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("h3",{className:"text-sm font-medium mb-2 my-2",children:"Connect with VSCode/Cursor"}),(0,a.jsx)(l.Zb,{className:"p-3 bg-gray-50",children:(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("pre",{className:"text-sm",children:(0,a.jsxs)("code",{children:["code --remote ssh-remote+",r,' "/home"']})}),(0,a.jsx)(o.WH,{content:"Copy command",children:(0,a.jsx)(c.z,{variant:"ghost",size:"icon",onClick:()=>navigator.clipboard.writeText("code --remote ssh-remote+".concat(r,' "/home"')),className:"h-8 w-8 rounded-full",children:(0,a.jsx)(i.Z,{className:"h-4 w-4"})})})]})})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("h3",{className:"text-sm font-medium",children:"Or use the GUI to connect"}),(0,a.jsx)("div",{className:"relative ".concat(m?"-mt-5":"-mt-10"),style:{paddingBottom:"70%"},children:(0,a.jsxs)("video",{className:"absolute top-0 left-0 w-full h-full rounded-lg",controls:!0,autoPlay:!0,muted:!0,preload:"metadata",children:[(0,a.jsx)("source",{src:"".concat(d.GW,"/videos/cursor-small.mp4"),type:"video/mp4"}),"Your browser does not support the video tag."]})})]})]})})]})})})}function N(e){let{isOpen:s,onClose:t,onConfirm:r,title:l,message:i,confirmText:o="Confirm",confirmVariant:d="destructive",confirmClassName:u=null}=e;return(0,a.jsx)(n.Vq,{open:s,onOpenChange:t,children:(0,a.jsxs)(n.cZ,{className:"sm:max-w-md",children:[(0,a.jsxs)(n.fK,{children:[(0,a.jsx)(n.$N,{children:l}),(0,a.jsx)(n.Be,{children:i})]}),(0,a.jsxs)(n.cN,{className:"flex justify-end gap-2 pt-4",children:[(0,a.jsx)(c.z,{variant:"outline",onClick:t,children:"Cancel"}),(0,a.jsx)(c.z,{variant:u?void 0:d,className:u,onClick:()=>{r(),t()},children:o})]})]})})}},68764:function(e,s,t){t.d(s,{RM:function(){return i},SC:function(){return o},iA:function(){return c},pj:function(){return u},ss:function(){return d},xD:function(){return l}});var a=t(85893),r=t(67294),n=t(32350);let c=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("div",{className:"relative w-full overflow-auto",children:(0,a.jsx)("table",{ref:s,className:(0,n.cn)("w-full caption-bottom text-base",t),...r})})});c.displayName="Table";let l=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("thead",{ref:s,className:(0,n.cn)("[&_tr]:border-b",t),...r})});l.displayName="TableHeader";let i=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("tbody",{ref:s,className:(0,n.cn)("[&_tr:last-child]:border-0",t),...r})});i.displayName="TableBody",r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("tfoot",{ref:s,className:(0,n.cn)("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",t),...r})}).displayName="TableFooter";let o=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("tr",{ref:s,className:(0,n.cn)("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",t),...r})});o.displayName="TableRow";let d=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("th",{ref:s,className:(0,n.cn)("h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0",t),...r})});d.displayName="TableHead";let u=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("td",{ref:s,className:(0,n.cn)("p-4 align-middle [&:has([role=checkbox])]:pr-0",t),...r})});u.displayName="TableCell",r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("caption",{ref:s,className:(0,n.cn)("mt-4 text-base text-muted-foreground",t),...r})}).displayName="TableCaption"},94545:function(e,s,t){function a(e){return e.startsWith("sky-jobs-controller-")}function r(e,s,t){return null===s?e:[...e].sort((e,a)=>e[s]<a[s]?"ascending"===t?-1:1:e[s]>a[s]?"ascending"===t?1:-1:0)}t.d(s,{R0:function(){return r},Ym:function(){return a}})}}]);