skypilot-nightly 1.0.0.dev20250709__tar.gz → 1.0.0.dev20250711__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (517) hide show
  1. {skypilot_nightly-1.0.0.dev20250709/skypilot_nightly.egg-info → skypilot_nightly-1.0.0.dev20250711}/PKG-INFO +1 -1
  2. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/__init__.py +2 -2
  3. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/backends/cloud_vm_ray_backend.py +6 -4
  4. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/clouds/kubernetes.py +137 -23
  5. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/core.py +3 -1
  6. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/404.html +1 -1
  7. skypilot_nightly-1.0.0.dev20250711/sky/dashboard/out/_next/static/chunks/1871-3a0f047988be65cd.js +6 -0
  8. skypilot_nightly-1.0.0.dev20250711/sky/dashboard/out/_next/static/chunks/8969-13bb52ce3cffa4e3.js +1 -0
  9. skypilot_nightly-1.0.0.dev20250709/sky/dashboard/out/_next/static/chunks/webpack-9a81ea998672c303.js → skypilot_nightly-1.0.0.dev20250711/sky/dashboard/out/_next/static/chunks/webpack-60070a62f55486a6.js +1 -1
  10. skypilot_nightly-1.0.0.dev20250711/sky/dashboard/out/_next/static/css/6cbd41a88d2e9e1c.css +3 -0
  11. {skypilot_nightly-1.0.0.dev20250709/sky/dashboard/out/_next/static/EqELoF4IXcALfWVihInou → skypilot_nightly-1.0.0.dev20250711/sky/dashboard/out/_next/static/ldZFQWCiYX_vZnIfB_o8S}/_buildManifest.js +1 -1
  12. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/clusters/[cluster]/[job].html +1 -1
  13. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/clusters/[cluster].html +1 -1
  14. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/clusters.html +1 -1
  15. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/config.html +1 -1
  16. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/index.html +1 -1
  17. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/infra/[context].html +1 -1
  18. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/infra.html +1 -1
  19. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/jobs/[job].html +1 -1
  20. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/jobs.html +1 -1
  21. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/users.html +1 -1
  22. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/volumes.html +1 -1
  23. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/workspace/new.html +1 -1
  24. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/workspaces/[name].html +1 -1
  25. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/workspaces.html +1 -1
  26. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/global_user_state.py +10 -11
  27. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/jobs/constants.py +1 -1
  28. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/jobs/controller.py +7 -0
  29. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/jobs/server/core.py +2 -1
  30. skypilot_nightly-1.0.0.dev20250711/sky/jobs/server/utils.py +81 -0
  31. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/jobs/state.py +58 -40
  32. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/jobs/utils.py +45 -6
  33. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/kubernetes/instance.py +17 -0
  34. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/kubernetes/utils.py +134 -0
  35. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/provisioner.py +20 -0
  36. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/skylet/constants.py +1 -6
  37. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/skylet/job_lib.py +30 -8
  38. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/skypilot_config.py +8 -3
  39. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/task.py +17 -0
  40. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/templates/kubernetes-ray.yml.j2 +298 -10
  41. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/users/permission.py +18 -1
  42. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/users/token_service.py +25 -3
  43. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/common_utils.py +13 -0
  44. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/db_utils.py +16 -0
  45. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/schemas.py +6 -0
  46. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/ux_utils.py +2 -4
  47. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711/skypilot_nightly.egg-info}/PKG-INFO +1 -1
  48. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/skypilot_nightly.egg-info/SOURCES.txt +10 -9
  49. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/tests/test_failover.py +1 -1
  50. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/tests/test_jobs.py +1 -1
  51. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/tests/test_jobs_and_serve.py +4 -2
  52. skypilot_nightly-1.0.0.dev20250709/sky/dashboard/out/_next/static/chunks/1871-80dea41717729fa5.js +0 -6
  53. skypilot_nightly-1.0.0.dev20250709/sky/dashboard/out/_next/static/chunks/8969-909d53833da080cb.js +0 -1
  54. skypilot_nightly-1.0.0.dev20250709/sky/dashboard/out/_next/static/css/0da6afe66176678a.css +0 -3
  55. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/LICENSE +0 -0
  56. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/MANIFEST.in +0 -0
  57. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/README.md +0 -0
  58. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/pyproject.toml +0 -0
  59. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/setup.cfg +0 -0
  60. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/setup.py +0 -0
  61. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/adaptors/__init__.py +0 -0
  62. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/adaptors/aws.py +0 -0
  63. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/adaptors/azure.py +0 -0
  64. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/adaptors/cloudflare.py +0 -0
  65. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/adaptors/common.py +0 -0
  66. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/adaptors/cudo.py +0 -0
  67. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/adaptors/do.py +0 -0
  68. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/adaptors/docker.py +0 -0
  69. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/adaptors/gcp.py +0 -0
  70. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/adaptors/hyperbolic.py +0 -0
  71. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/adaptors/ibm.py +0 -0
  72. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/adaptors/kubernetes.py +0 -0
  73. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/adaptors/nebius.py +0 -0
  74. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/adaptors/oci.py +0 -0
  75. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/adaptors/runpod.py +0 -0
  76. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/adaptors/vast.py +0 -0
  77. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/adaptors/vsphere.py +0 -0
  78. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/admin_policy.py +0 -0
  79. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/authentication.py +0 -0
  80. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/backends/__init__.py +0 -0
  81. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/backends/backend.py +0 -0
  82. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/backends/backend_utils.py +0 -0
  83. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/backends/docker_utils.py +0 -0
  84. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/backends/local_docker_backend.py +0 -0
  85. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/backends/monkey_patches/monkey_patch_ray_up.py +0 -0
  86. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/backends/wheel_utils.py +0 -0
  87. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/catalog/__init__.py +0 -0
  88. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/catalog/aws_catalog.py +0 -0
  89. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/catalog/azure_catalog.py +0 -0
  90. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/catalog/common.py +0 -0
  91. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/catalog/config.py +0 -0
  92. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/catalog/cudo_catalog.py +0 -0
  93. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/catalog/data_fetchers/__init__.py +0 -0
  94. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/catalog/data_fetchers/analyze.py +0 -0
  95. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/catalog/data_fetchers/fetch_aws.py +0 -0
  96. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/catalog/data_fetchers/fetch_azure.py +0 -0
  97. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/catalog/data_fetchers/fetch_cudo.py +0 -0
  98. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/catalog/data_fetchers/fetch_fluidstack.py +0 -0
  99. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/catalog/data_fetchers/fetch_gcp.py +0 -0
  100. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/catalog/data_fetchers/fetch_hyperbolic.py +0 -0
  101. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/catalog/data_fetchers/fetch_ibm.py +0 -0
  102. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/catalog/data_fetchers/fetch_lambda_cloud.py +0 -0
  103. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/catalog/data_fetchers/fetch_vast.py +0 -0
  104. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/catalog/data_fetchers/fetch_vsphere.py +0 -0
  105. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/catalog/do_catalog.py +0 -0
  106. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/catalog/fluidstack_catalog.py +0 -0
  107. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/catalog/gcp_catalog.py +0 -0
  108. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/catalog/hyperbolic_catalog.py +0 -0
  109. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/catalog/ibm_catalog.py +0 -0
  110. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/catalog/kubernetes_catalog.py +0 -0
  111. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/catalog/lambda_catalog.py +0 -0
  112. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/catalog/nebius_catalog.py +0 -0
  113. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/catalog/oci_catalog.py +0 -0
  114. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/catalog/paperspace_catalog.py +0 -0
  115. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/catalog/runpod_catalog.py +0 -0
  116. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/catalog/scp_catalog.py +0 -0
  117. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/catalog/ssh_catalog.py +0 -0
  118. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/catalog/vast_catalog.py +0 -0
  119. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/catalog/vsphere_catalog.py +0 -0
  120. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/check.py +0 -0
  121. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/cli.py +0 -0
  122. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/client/__init__.py +0 -0
  123. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/client/cli/__init__.py +0 -0
  124. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/client/cli/command.py +0 -0
  125. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/client/cli/deprecation_utils.py +0 -0
  126. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/client/cli/flags.py +0 -0
  127. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/client/common.py +0 -0
  128. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/client/oauth.py +0 -0
  129. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/client/sdk.py +0 -0
  130. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/client/service_account_auth.py +0 -0
  131. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/cloud_stores.py +0 -0
  132. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/clouds/__init__.py +0 -0
  133. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/clouds/aws.py +0 -0
  134. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/clouds/azure.py +0 -0
  135. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/clouds/cloud.py +0 -0
  136. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/clouds/cudo.py +0 -0
  137. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/clouds/do.py +0 -0
  138. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/clouds/fluidstack.py +0 -0
  139. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/clouds/gcp.py +0 -0
  140. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/clouds/hyperbolic.py +0 -0
  141. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/clouds/ibm.py +0 -0
  142. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/clouds/lambda_cloud.py +0 -0
  143. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/clouds/nebius.py +0 -0
  144. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/clouds/oci.py +0 -0
  145. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/clouds/paperspace.py +0 -0
  146. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/clouds/runpod.py +0 -0
  147. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/clouds/scp.py +0 -0
  148. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/clouds/ssh.py +0 -0
  149. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/clouds/utils/__init__.py +0 -0
  150. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/clouds/utils/aws_utils.py +0 -0
  151. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/clouds/utils/azure_utils.py +0 -0
  152. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/clouds/utils/gcp_utils.py +0 -0
  153. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/clouds/utils/oci_utils.py +0 -0
  154. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/clouds/utils/scp_utils.py +0 -0
  155. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/clouds/vast.py +0 -0
  156. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/clouds/vsphere.py +0 -0
  157. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dag.py +0 -0
  158. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/1043-1b39779691bb4030.js +0 -0
  159. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/1141-726e5a3f00b67185.js +0 -0
  160. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/1272-1ef0bf0237faccdb.js +0 -0
  161. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/1664-d65361e92b85e786.js +0 -0
  162. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/1691.44e378727a41f3b5.js +0 -0
  163. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/2544.27f70672535675ed.js +0 -0
  164. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/2875.c24c6d57dc82e436.js +0 -0
  165. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/3256.7257acd01b481bed.js +0 -0
  166. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/3698-52ad1ca228faa776.js +0 -0
  167. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/3785.b3cc2bc1d49d2c3c.js +0 -0
  168. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/3937.d7f1c55d1916c7f2.js +0 -0
  169. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/3947-b059261d6fa88a1f.js +0 -0
  170. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/430.ed51037d1a4a438b.js +0 -0
  171. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/4697.f5421144224da9fc.js +0 -0
  172. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/4725.4c849b1e05c8e9ad.js +0 -0
  173. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/5230-df791914b54d91d9.js +0 -0
  174. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/5491.918ffed0ba7a5294.js +0 -0
  175. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/5739-5ea3ffa10fc884f2.js +0 -0
  176. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/616-162f3033ffcd3d31.js +0 -0
  177. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/6601-fcfad0ddf92ec7ab.js +0 -0
  178. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/6989-6ff4e45dfb49d11d.js +0 -0
  179. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/6990-d0dc765474fa0eca.js +0 -0
  180. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/804-9f5e98ce84d46bdd.js +0 -0
  181. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/8982.a2e214068f30a857.js +0 -0
  182. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/9025.a7c44babfe56ce09.js +0 -0
  183. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/938-044ad21de8b4626b.js +0 -0
  184. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/9470-21d059a1dfa03f61.js +0 -0
  185. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/9984.b56614f3c4c5961d.js +0 -0
  186. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/fd9d1056-61f2257a9cd8b32b.js +0 -0
  187. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/framework-efc06c2733009cd3.js +0 -0
  188. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/main-app-68c028b1bc5e1b72.js +0 -0
  189. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/main-c0a4f1ea606d48d2.js +0 -0
  190. /skypilot_nightly-1.0.0.dev20250709/sky/dashboard/out/_next/static/chunks/pages/_app-a37b06ddb64521fd.js → /skypilot_nightly-1.0.0.dev20250711/sky/dashboard/out/_next/static/chunks/pages/_app-e6e82dc8abb50c4f.js +0 -0
  191. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/pages/_error-c72a1f77a3c0be1b.js +0 -0
  192. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-8135aba0712bda37.js +0 -0
  193. /skypilot_nightly-1.0.0.dev20250709/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-1159f362b960e2b8.js → /skypilot_nightly-1.0.0.dev20250711/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-0fbfb1dd0b08c90c.js +0 -0
  194. /skypilot_nightly-1.0.0.dev20250709/sky/dashboard/out/_next/static/chunks/pages/clusters-9744c271a1642f76.js → /skypilot_nightly-1.0.0.dev20250711/sky/dashboard/out/_next/static/chunks/pages/clusters-102d169e87913ba1.js +0 -0
  195. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/pages/config-a2673b256b6d416f.js +0 -0
  196. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/pages/index-927ddeebe57a8ac3.js +0 -0
  197. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/pages/infra/[context]-8b0809f59034d509.js +0 -0
  198. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/pages/infra-ae9d2f705ce582c9.js +0 -0
  199. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-c4d5cfac7fbc0668.js +0 -0
  200. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/pages/jobs-5bbdc71878f0a068.js +0 -0
  201. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/pages/users-cd43fb3c122eedde.js +0 -0
  202. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/pages/volumes-4ebf6484f7216387.js +0 -0
  203. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/pages/workspace/new-5629d4e551dba1ee.js +0 -0
  204. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/pages/workspaces/[name]-7c0187f43757a548.js +0 -0
  205. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/pages/workspaces-06bde99155fa6292.js +0 -0
  206. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js +0 -0
  207. {skypilot_nightly-1.0.0.dev20250709/sky/dashboard/out/_next/static/EqELoF4IXcALfWVihInou → skypilot_nightly-1.0.0.dev20250711/sky/dashboard/out/_next/static/ldZFQWCiYX_vZnIfB_o8S}/_ssgManifest.js +0 -0
  208. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/favicon.ico +0 -0
  209. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/skypilot.svg +0 -0
  210. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/dashboard/out/videos/cursor-small.mp4 +0 -0
  211. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/data/__init__.py +0 -0
  212. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/data/data_transfer.py +0 -0
  213. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/data/data_utils.py +0 -0
  214. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/data/mounting_utils.py +0 -0
  215. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/data/storage.py +0 -0
  216. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/data/storage_utils.py +0 -0
  217. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/exceptions.py +0 -0
  218. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/execution.py +0 -0
  219. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/jobs/__init__.py +0 -0
  220. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/jobs/client/__init__.py +0 -0
  221. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/jobs/client/sdk.py +0 -0
  222. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/jobs/recovery_strategy.py +0 -0
  223. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/jobs/scheduler.py +0 -0
  224. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/jobs/server/__init__.py +0 -0
  225. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/jobs/server/server.py +0 -0
  226. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/logs/__init__.py +0 -0
  227. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/logs/agent.py +0 -0
  228. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/logs/gcp.py +0 -0
  229. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/metrics/__init__.py +0 -0
  230. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/metrics/utils.py +0 -0
  231. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/models.py +0 -0
  232. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/optimizer.py +0 -0
  233. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/__init__.py +0 -0
  234. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/aws/__init__.py +0 -0
  235. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/aws/config.py +0 -0
  236. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/aws/instance.py +0 -0
  237. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/aws/utils.py +0 -0
  238. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/azure/__init__.py +0 -0
  239. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/azure/azure-config-template.json +0 -0
  240. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/azure/config.py +0 -0
  241. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/azure/instance.py +0 -0
  242. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/common.py +0 -0
  243. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/constants.py +0 -0
  244. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/cudo/__init__.py +0 -0
  245. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/cudo/config.py +0 -0
  246. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/cudo/cudo_machine_type.py +0 -0
  247. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/cudo/cudo_utils.py +0 -0
  248. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/cudo/cudo_wrapper.py +0 -0
  249. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/cudo/instance.py +0 -0
  250. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/do/__init__.py +0 -0
  251. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/do/config.py +0 -0
  252. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/do/constants.py +0 -0
  253. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/do/instance.py +0 -0
  254. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/do/utils.py +0 -0
  255. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/docker_utils.py +0 -0
  256. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/fluidstack/__init__.py +0 -0
  257. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/fluidstack/config.py +0 -0
  258. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/fluidstack/fluidstack_utils.py +0 -0
  259. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/fluidstack/instance.py +0 -0
  260. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/gcp/__init__.py +0 -0
  261. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/gcp/config.py +0 -0
  262. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/gcp/constants.py +0 -0
  263. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/gcp/instance.py +0 -0
  264. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/gcp/instance_utils.py +0 -0
  265. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/gcp/mig_utils.py +0 -0
  266. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/gcp/volume_utils.py +0 -0
  267. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/hyperbolic/__init__.py +0 -0
  268. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/hyperbolic/config.py +0 -0
  269. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/hyperbolic/instance.py +0 -0
  270. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/hyperbolic/utils.py +0 -0
  271. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/instance_setup.py +0 -0
  272. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/kubernetes/__init__.py +0 -0
  273. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/kubernetes/config.py +0 -0
  274. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/kubernetes/constants.py +0 -0
  275. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/kubernetes/manifests/fusermount-server-daemonset.yaml +0 -0
  276. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/kubernetes/network.py +0 -0
  277. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/kubernetes/network_utils.py +0 -0
  278. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/kubernetes/volume.py +0 -0
  279. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/lambda_cloud/__init__.py +0 -0
  280. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/lambda_cloud/config.py +0 -0
  281. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/lambda_cloud/instance.py +0 -0
  282. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/lambda_cloud/lambda_utils.py +0 -0
  283. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/logging.py +0 -0
  284. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/metadata_utils.py +0 -0
  285. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/nebius/__init__.py +0 -0
  286. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/nebius/config.py +0 -0
  287. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/nebius/constants.py +0 -0
  288. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/nebius/instance.py +0 -0
  289. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/nebius/utils.py +0 -0
  290. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/oci/__init__.py +0 -0
  291. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/oci/config.py +0 -0
  292. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/oci/instance.py +0 -0
  293. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/oci/query_utils.py +0 -0
  294. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/paperspace/__init__.py +0 -0
  295. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/paperspace/config.py +0 -0
  296. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/paperspace/constants.py +0 -0
  297. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/paperspace/instance.py +0 -0
  298. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/paperspace/utils.py +0 -0
  299. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/runpod/__init__.py +0 -0
  300. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/runpod/api/__init__.py +0 -0
  301. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/runpod/api/commands.py +0 -0
  302. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/runpod/api/pods.py +0 -0
  303. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/runpod/config.py +0 -0
  304. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/runpod/instance.py +0 -0
  305. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/runpod/utils.py +0 -0
  306. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/scp/__init__.py +0 -0
  307. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/scp/config.py +0 -0
  308. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/scp/instance.py +0 -0
  309. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/ssh/__init__.py +0 -0
  310. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/vast/__init__.py +0 -0
  311. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/vast/config.py +0 -0
  312. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/vast/instance.py +0 -0
  313. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/vast/utils.py +0 -0
  314. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/vsphere/__init__.py +0 -0
  315. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/vsphere/common/__init__.py +0 -0
  316. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/vsphere/common/cls_api_client.py +0 -0
  317. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/vsphere/common/cls_api_helper.py +0 -0
  318. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/vsphere/common/custom_script.py +0 -0
  319. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/vsphere/common/id_generator.py +0 -0
  320. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/vsphere/common/metadata_utils.py +0 -0
  321. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/vsphere/common/service_manager.py +0 -0
  322. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/vsphere/common/service_manager_factory.py +0 -0
  323. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/vsphere/common/ssl_helper.py +0 -0
  324. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/vsphere/common/vapiconnect.py +0 -0
  325. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/vsphere/common/vim_utils.py +0 -0
  326. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/vsphere/config.py +0 -0
  327. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/vsphere/instance.py +0 -0
  328. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/provision/vsphere/vsphere_utils.py +0 -0
  329. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/resources.py +0 -0
  330. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/serve/__init__.py +0 -0
  331. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/serve/autoscalers.py +0 -0
  332. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/serve/client/__init__.py +0 -0
  333. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/serve/client/sdk.py +0 -0
  334. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/serve/constants.py +0 -0
  335. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/serve/controller.py +0 -0
  336. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/serve/load_balancer.py +0 -0
  337. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/serve/load_balancing_policies.py +0 -0
  338. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/serve/replica_managers.py +0 -0
  339. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/serve/serve_state.py +0 -0
  340. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/serve/serve_utils.py +0 -0
  341. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/serve/server/__init__.py +0 -0
  342. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/serve/server/core.py +0 -0
  343. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/serve/server/server.py +0 -0
  344. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/serve/service.py +0 -0
  345. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/serve/service_spec.py +0 -0
  346. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/serve/spot_placer.py +0 -0
  347. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/server/__init__.py +0 -0
  348. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/server/common.py +0 -0
  349. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/server/config.py +0 -0
  350. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/server/constants.py +0 -0
  351. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/server/html/log.html +0 -0
  352. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/server/html/token_page.html +0 -0
  353. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/server/metrics.py +0 -0
  354. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/server/requests/__init__.py +0 -0
  355. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/server/requests/event_loop.py +0 -0
  356. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/server/requests/executor.py +0 -0
  357. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/server/requests/payloads.py +0 -0
  358. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/server/requests/preconditions.py +0 -0
  359. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/server/requests/process.py +0 -0
  360. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/server/requests/queues/__init__.py +0 -0
  361. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/server/requests/queues/local_queue.py +0 -0
  362. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/server/requests/queues/mp_queue.py +0 -0
  363. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/server/requests/requests.py +0 -0
  364. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/server/requests/serializers/__init__.py +0 -0
  365. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/server/requests/serializers/decoders.py +0 -0
  366. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/server/requests/serializers/encoders.py +0 -0
  367. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/server/rest.py +0 -0
  368. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/server/server.py +0 -0
  369. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/server/state.py +0 -0
  370. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/server/stream_utils.py +0 -0
  371. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/server/uvicorn.py +0 -0
  372. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/server/versions.py +0 -0
  373. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/setup_files/MANIFEST.in +0 -0
  374. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/setup_files/dependencies.py +0 -0
  375. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/setup_files/setup.py +0 -0
  376. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/sky_logging.py +0 -0
  377. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/skylet/LICENSE +0 -0
  378. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/skylet/__init__.py +0 -0
  379. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/skylet/attempt_skylet.py +0 -0
  380. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/skylet/autostop_lib.py +0 -0
  381. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/skylet/configs.py +0 -0
  382. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/skylet/events.py +0 -0
  383. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/skylet/log_lib.py +0 -0
  384. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/skylet/log_lib.pyi +0 -0
  385. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/skylet/providers/__init__.py +0 -0
  386. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/skylet/providers/command_runner.py +0 -0
  387. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/skylet/providers/ibm/__init__.py +0 -0
  388. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/skylet/providers/ibm/node_provider.py +0 -0
  389. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/skylet/providers/ibm/utils.py +0 -0
  390. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/skylet/providers/ibm/vpc_provider.py +0 -0
  391. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/skylet/ray_patches/__init__.py +0 -0
  392. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/skylet/ray_patches/autoscaler.py.patch +0 -0
  393. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/skylet/ray_patches/cli.py.patch +0 -0
  394. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/skylet/ray_patches/command_runner.py.patch +0 -0
  395. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/skylet/ray_patches/log_monitor.py.patch +0 -0
  396. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/skylet/ray_patches/resource_demand_scheduler.py.patch +0 -0
  397. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/skylet/ray_patches/updater.py.patch +0 -0
  398. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/skylet/ray_patches/worker.py.patch +0 -0
  399. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/skylet/skylet.py +0 -0
  400. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/skylet/subprocess_daemon.py +0 -0
  401. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/ssh_node_pools/__init__.py +0 -0
  402. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/ssh_node_pools/core.py +0 -0
  403. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/ssh_node_pools/server.py +0 -0
  404. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/templates/aws-ray.yml.j2 +0 -0
  405. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/templates/azure-ray.yml.j2 +0 -0
  406. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/templates/cudo-ray.yml.j2 +0 -0
  407. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/templates/do-ray.yml.j2 +0 -0
  408. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/templates/fluidstack-ray.yml.j2 +0 -0
  409. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/templates/gcp-ray.yml.j2 +0 -0
  410. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/templates/hyperbolic-ray.yml.j2 +0 -0
  411. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/templates/ibm-ray.yml.j2 +0 -0
  412. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/templates/jobs-controller.yaml.j2 +0 -0
  413. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/templates/kubernetes-ingress.yml.j2 +0 -0
  414. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/templates/kubernetes-loadbalancer.yml.j2 +0 -0
  415. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/templates/kubernetes-port-forward-proxy-command.sh +0 -0
  416. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/templates/kubernetes-ssh-jump.yml.j2 +0 -0
  417. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/templates/lambda-ray.yml.j2 +0 -0
  418. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/templates/local-ray.yml.j2 +0 -0
  419. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/templates/nebius-ray.yml.j2 +0 -0
  420. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/templates/oci-ray.yml.j2 +0 -0
  421. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/templates/paperspace-ray.yml.j2 +0 -0
  422. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/templates/runpod-ray.yml.j2 +0 -0
  423. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/templates/scp-ray.yml.j2 +0 -0
  424. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/templates/sky-serve-controller.yaml.j2 +0 -0
  425. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/templates/skypilot-server-kubernetes-proxy.sh +0 -0
  426. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/templates/vast-ray.yml.j2 +0 -0
  427. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/templates/vsphere-ray.yml.j2 +0 -0
  428. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/templates/websocket_proxy.py +0 -0
  429. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/usage/__init__.py +0 -0
  430. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/usage/constants.py +0 -0
  431. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/usage/usage_lib.py +0 -0
  432. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/users/__init__.py +0 -0
  433. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/users/model.conf +0 -0
  434. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/users/rbac.py +0 -0
  435. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/users/server.py +0 -0
  436. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/__init__.py +0 -0
  437. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/accelerator_registry.py +0 -0
  438. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/admin_policy_utils.py +0 -0
  439. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/annotations.py +0 -0
  440. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/atomic.py +0 -0
  441. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/aws/__init__.py +0 -0
  442. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/aws/get_default_security_group.py +0 -0
  443. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/cli_utils/__init__.py +0 -0
  444. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/cli_utils/status_utils.py +0 -0
  445. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/cluster_utils.py +0 -0
  446. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/command_runner.py +0 -0
  447. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/command_runner.pyi +0 -0
  448. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/common.py +0 -0
  449. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/config_utils.py +0 -0
  450. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/context.py +0 -0
  451. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/context_utils.py +0 -0
  452. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/control_master_utils.py +0 -0
  453. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/controller_utils.py +0 -0
  454. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/dag_utils.py +0 -0
  455. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/env_options.py +0 -0
  456. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/infra_utils.py +0 -0
  457. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/kubernetes/__init__.py +0 -0
  458. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/kubernetes/cleanup-tunnel.sh +0 -0
  459. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/kubernetes/config_map_utils.py +0 -0
  460. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/kubernetes/create_cluster.sh +0 -0
  461. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/kubernetes/delete_cluster.sh +0 -0
  462. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/kubernetes/deploy_remote_cluster.py +0 -0
  463. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/kubernetes/exec_kubeconfig_converter.py +0 -0
  464. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/kubernetes/generate_kind_config.py +0 -0
  465. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/kubernetes/generate_kubeconfig.sh +0 -0
  466. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/kubernetes/gpu_labeler.py +0 -0
  467. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/kubernetes/k8s_gpu_labeler_job.yaml +0 -0
  468. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml +0 -0
  469. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/kubernetes/kubernetes_deploy_utils.py +0 -0
  470. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/kubernetes/rsync_helper.sh +0 -0
  471. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/kubernetes/ssh-tunnel.sh +0 -0
  472. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/kubernetes/ssh_jump_lifecycle_manager.py +0 -0
  473. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/kubernetes/ssh_utils.py +0 -0
  474. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/kubernetes_enums.py +0 -0
  475. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/log_utils.py +0 -0
  476. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/message_utils.py +0 -0
  477. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/registry.py +0 -0
  478. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/resource_checker.py +0 -0
  479. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/resources_utils.py +0 -0
  480. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/rich_console_utils.py +0 -0
  481. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/rich_utils.py +0 -0
  482. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/status_lib.py +0 -0
  483. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/subprocess_utils.py +0 -0
  484. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/tempstore.py +0 -0
  485. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/timeline.py +0 -0
  486. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/utils/validator.py +0 -0
  487. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/volumes/__init__.py +0 -0
  488. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/volumes/client/__init__.py +0 -0
  489. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/volumes/client/sdk.py +0 -0
  490. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/volumes/server/__init__.py +0 -0
  491. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/volumes/server/core.py +0 -0
  492. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/volumes/server/server.py +0 -0
  493. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/volumes/utils.py +0 -0
  494. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/volumes/volume.py +0 -0
  495. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/workspaces/__init__.py +0 -0
  496. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/workspaces/core.py +0 -0
  497. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/workspaces/server.py +0 -0
  498. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/sky/workspaces/utils.py +0 -0
  499. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/skypilot_nightly.egg-info/dependency_links.txt +0 -0
  500. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/skypilot_nightly.egg-info/entry_points.txt +0 -0
  501. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/skypilot_nightly.egg-info/requires.txt +0 -0
  502. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/skypilot_nightly.egg-info/top_level.txt +0 -0
  503. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/tests/test_api.py +0 -0
  504. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/tests/test_api_compatibility.py +0 -0
  505. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/tests/test_cli.py +0 -0
  506. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/tests/test_config.py +0 -0
  507. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/tests/test_db_utils.py +0 -0
  508. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/tests/test_global_user_state.py +0 -0
  509. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/tests/test_list_accelerators.py +0 -0
  510. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/tests/test_no_parellel.py +0 -0
  511. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/tests/test_optimizer_dryruns.py +0 -0
  512. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/tests/test_optimizer_random_dag.py +0 -0
  513. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/tests/test_serve_autoscaler.py +0 -0
  514. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/tests/test_smoke.py +0 -0
  515. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/tests/test_storage.py +0 -0
  516. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/tests/test_wheels.py +0 -0
  517. {skypilot_nightly-1.0.0.dev20250709 → skypilot_nightly-1.0.0.dev20250711}/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.dev20250709
3
+ Version: 1.0.0.dev20250711
4
4
  Summary: SkyPilot: Run AI on Any Infra — Unified, Faster, Cheaper.
5
5
  Author: SkyPilot Team
6
6
  License: Apache 2.0
@@ -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 = '049a61037fec870c541621cb37b03783e046d44b'
8
+ _SKYPILOT_COMMIT_SHA = '3e703cfc764cd4284f3beefd3d99e73ae5a5b238'
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.dev20250709'
38
+ __version__ = '1.0.0.dev20250711'
39
39
  __root_dir__ = os.path.dirname(os.path.abspath(__file__))
40
40
 
41
41
 
@@ -3613,13 +3613,14 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
3613
3613
  self.tail_logs(handle, job_id)
3614
3614
 
3615
3615
  def _add_job(self, handle: CloudVmRayResourceHandle,
3616
- job_name: Optional[str],
3617
- resources_str: str) -> Tuple[int, str]:
3616
+ job_name: Optional[str], resources_str: str,
3617
+ metadata: str) -> Tuple[int, str]:
3618
3618
  code = job_lib.JobLibCodeGen.add_job(
3619
3619
  job_name=job_name,
3620
3620
  username=common_utils.get_user_hash(),
3621
3621
  run_timestamp=self.run_timestamp,
3622
- resources_str=resources_str)
3622
+ resources_str=resources_str,
3623
+ metadata=metadata)
3623
3624
  returncode, result_str, stderr = self.run_on_head(handle,
3624
3625
  code,
3625
3626
  stream_logs=False,
@@ -3702,7 +3703,8 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
3702
3703
  logger.info(f'Dryrun complete. Would have run:\n{task}')
3703
3704
  return None
3704
3705
 
3705
- job_id, log_dir = self._add_job(handle, task_copy.name, resources_str)
3706
+ job_id, log_dir = self._add_job(handle, task_copy.name, resources_str,
3707
+ task.metadata_json)
3706
3708
 
3707
3709
  num_actual_nodes = task.num_nodes * handle.num_ips_per_node
3708
3710
  # Case: task_lib.Task(run, num_nodes=N) or TPU VM Pods
@@ -16,9 +16,11 @@ from sky import skypilot_config
16
16
  from sky.adaptors import kubernetes
17
17
  from sky.clouds.utils import gcp_utils
18
18
  from sky.provision import instance_setup
19
+ from sky.provision.gcp import constants as gcp_constants
19
20
  from sky.provision.kubernetes import network_utils
20
21
  from sky.provision.kubernetes import utils as kubernetes_utils
21
22
  from sky.provision.kubernetes.utils import is_tpu_on_gke
23
+ from sky.provision.kubernetes.utils import KubernetesHighPerformanceNetworkType
22
24
  from sky.provision.kubernetes.utils import normalize_tpu_accelerator_name
23
25
  from sky.skylet import constants
24
26
  from sky.utils import annotations
@@ -127,7 +129,9 @@ class Kubernetes(clouds.Cloud):
127
129
  clouds.CloudImplementationFeatures.SPOT_INSTANCE, None)
128
130
  # Allow custom network tier if supported by the cluster
129
131
  # (e.g., Nebius clusters with high performance networking)
130
- if cls._cluster_supports_high_performance_networking(context):
132
+ network_type, _ = cls._detect_network_type(context,
133
+ resources.network_tier)
134
+ if network_type.supports_high_performance_networking():
131
135
  unsupported_features.pop(
132
136
  clouds.CloudImplementationFeatures.CUSTOM_NETWORK_TIER,
133
137
  None)
@@ -597,22 +601,25 @@ class Kubernetes(clouds.Cloud):
597
601
  if resources.use_spot:
598
602
  spot_label_key, spot_label_value = kubernetes_utils.get_spot_label()
599
603
 
604
+ network_type, machine_type = self._detect_network_type(
605
+ context, resources.network_tier)
606
+
600
607
  # Check if this cluster supports high performance networking and
601
- # configure IPC_LOCK capability for clusters like Nebius that support it
602
- k8s_ipc_lock_capability = False
608
+ # configure appropriate settings for different cluster types
603
609
  if (resources.network_tier is not None and
604
610
  resources.network_tier == resources_utils.NetworkTier.BEST):
605
611
  # Only proceed if CUSTOM_NETWORK_TIER is supported by this cluster
606
612
  unsupported_features = self._unsupported_features_for_resources(
607
613
  resources)
608
614
  if clouds.CloudImplementationFeatures.CUSTOM_NETWORK_TIER \
609
- not in unsupported_features:
610
- k8s_ipc_lock_capability = True
611
-
612
- if k8s_ipc_lock_capability:
613
- k8s_env_vars['NCCL_IB_HCA'] = 'mlx5'
614
- k8s_env_vars['UCX_NET_DEVICES'] = \
615
- 'mlx5_0:1,mlx5_1:1,mlx5_2:1,mlx5_3:1,mlx5_4:1,mlx5_5:1,mlx5_6:1,mlx5_7:1' # pylint: disable=line-too-long
615
+ not in unsupported_features:
616
+ # Add high-performance networking environment variables for
617
+ # Nebius (GCP environment variables are handled directly in
618
+ # the template)
619
+ if (network_type == KubernetesHighPerformanceNetworkType.NEBIUS
620
+ ):
621
+ network_env_vars = network_type.get_network_env_vars()
622
+ k8s_env_vars.update(network_env_vars)
616
623
 
617
624
  # We specify object-store-memory to be 500MB to avoid taking up too
618
625
  # much memory on the head node. 'num-cpus' should be set to limit
@@ -732,7 +739,6 @@ class Kubernetes(clouds.Cloud):
732
739
  'k8s_high_availability_storage_class_name':
733
740
  (k8s_ha_storage_class_name),
734
741
  'avoid_label_keys': avoid_label_keys,
735
- 'k8s_ipc_lock_capability': k8s_ipc_lock_capability,
736
742
  'k8s_enable_flex_start': enable_flex_start,
737
743
  'k8s_max_run_duration_seconds': max_run_duration_seconds,
738
744
  }
@@ -745,6 +751,22 @@ class Kubernetes(clouds.Cloud):
745
751
  namespace = kubernetes_utils.get_kube_config_context_namespace(context)
746
752
  deploy_vars['k8s_namespace'] = namespace
747
753
 
754
+ # Add backward compatibility template variables for GPUDirect variants
755
+ deploy_vars['k8s_enable_gpudirect_tcpx'] = (
756
+ network_type == KubernetesHighPerformanceNetworkType.GCP_TCPX)
757
+ deploy_vars['k8s_enable_gpudirect_tcpxo'] = (
758
+ network_type == KubernetesHighPerformanceNetworkType.GCP_TCPXO)
759
+ rdma_enabled = (network_type ==
760
+ KubernetesHighPerformanceNetworkType.GCP_GPUDIRECT_RDMA)
761
+ deploy_vars['k8s_enable_gpudirect_rdma'] = rdma_enabled
762
+ if rdma_enabled and machine_type.startswith('a4'):
763
+ deploy_vars['k8s_enable_gpudirect_rdma_a4'] = True
764
+ else:
765
+ deploy_vars['k8s_enable_gpudirect_rdma_a4'] = False
766
+
767
+ deploy_vars['k8s_ipc_lock_capability'] = (
768
+ network_type.requires_ipc_lock_capability())
769
+
748
770
  return deploy_vars
749
771
 
750
772
  def _get_feasible_launchable_resources(
@@ -1039,28 +1061,120 @@ class Kubernetes(clouds.Cloud):
1039
1061
  ]
1040
1062
 
1041
1063
  @classmethod
1042
- @annotations.lru_cache(scope='request', maxsize=10)
1043
- def _cluster_supports_high_performance_networking(cls,
1044
- context: str) -> bool:
1045
- """Check if the cluster supports high performance networking.
1046
-
1047
- Currently detects Nebius clusters by checking for nebius.com/ labels
1048
- on cluster nodes.
1064
+ def _detect_network_type(
1065
+ cls,
1066
+ context: str,
1067
+ network_tier: Optional['resources_utils.NetworkTier'] = None
1068
+ ) -> Tuple[KubernetesHighPerformanceNetworkType, str]:
1069
+ """Detect the type of Kubernetes network based on node labels.
1049
1070
 
1050
1071
  Args:
1051
1072
  context: The Kubernetes context to check.
1073
+ network_tier: The network tier requested. If None or not BEST,
1074
+ returns NONE (no high-performance networking).
1052
1075
 
1053
1076
  Returns:
1054
- True if the cluster supports high performance networking.
1077
+ A tuple of the detected network type and the instance type.
1055
1078
  """
1079
+ # If network_tier is None or not BEST, return NONE
1080
+ if (network_tier is None or
1081
+ network_tier != resources_utils.NetworkTier.BEST):
1082
+ return KubernetesHighPerformanceNetworkType.NONE, ''
1083
+
1056
1084
  try:
1057
1085
  nodes = kubernetes_utils.get_kubernetes_nodes(context=context)
1058
1086
  for node in nodes:
1059
1087
  if node.metadata.labels:
1060
- for label_key in node.metadata.labels.keys():
1088
+ # Check for Nebius clusters
1089
+ for label_key, _ in node.metadata.labels.items():
1061
1090
  if label_key.startswith('nebius.com/'):
1062
- return True
1091
+ return (KubernetesHighPerformanceNetworkType.NEBIUS,
1092
+ '')
1093
+
1094
+ # Check for GKE clusters with specific GPUDirect variants
1095
+ machine_family = node.metadata.labels.get(
1096
+ 'cloud.google.com/machine-family', '')
1097
+ instance_type = node.metadata.labels.get(
1098
+ 'node.kubernetes.io/instance-type', '')
1099
+ gke_accelerator = node.metadata.labels.get(
1100
+ 'cloud.google.com/gke-accelerator', '')
1101
+
1102
+ # Check if this is a GKE cluster with A3/A4 machine family
1103
+ if machine_family in ['a3', 'a4']:
1104
+ # Check instance type to determine specific GPUDirect
1105
+ # variant
1106
+ if 'a3-highgpu-8g' in instance_type:
1107
+ return (
1108
+ KubernetesHighPerformanceNetworkType.GCP_TCPX,
1109
+ 'a3-highgpu-8g')
1110
+ elif 'a3-edgegpu-8g' in instance_type:
1111
+ return (
1112
+ KubernetesHighPerformanceNetworkType.GCP_TCPX,
1113
+ 'a3-edgegpu-8g')
1114
+ elif 'a3-megagpu-8g' in instance_type:
1115
+ return (
1116
+ KubernetesHighPerformanceNetworkType.GCP_TCPXO,
1117
+ 'a3-megagpu-8g')
1118
+ elif 'a4-highgpu-8g' in instance_type:
1119
+ return (KubernetesHighPerformanceNetworkType.
1120
+ GCP_GPUDIRECT_RDMA, 'a4-highgpu-8g')
1121
+ elif 'a3-ultragpu-8g' in instance_type:
1122
+ return (KubernetesHighPerformanceNetworkType.
1123
+ GCP_GPUDIRECT_RDMA, 'a3-ultragpu-8g')
1124
+ # Generic A3/A4 detection as fallback
1125
+ elif machine_family == 'a4':
1126
+ return (KubernetesHighPerformanceNetworkType.
1127
+ GCP_GPUDIRECT_RDMA, 'a4')
1128
+
1129
+ # Fallback: Check for GPU Direct TCPX capable instance
1130
+ # types with high-perf GPUs
1131
+ is_gpu_direct_tcpx_instance = (
1132
+ instance_type
1133
+ in gcp_constants.GPU_DIRECT_TCPX_INSTANCE_TYPES)
1134
+ has_high_perf_gpu = ('nvidia-h100' in gke_accelerator or
1135
+ 'nvidia-h200' in gke_accelerator or
1136
+ 'nvidia-b200' in gke_accelerator)
1137
+
1138
+ if is_gpu_direct_tcpx_instance and has_high_perf_gpu:
1139
+ # Default to TCPX if we can't determine the specific
1140
+ # variant
1141
+ return (KubernetesHighPerformanceNetworkType.GCP_TCPX,
1142
+ instance_type)
1143
+
1063
1144
  except exceptions.KubeAPIUnreachableError:
1064
1145
  # If we can't reach the cluster, assume no high perf networking
1065
- return False
1066
- return False
1146
+ pass
1147
+
1148
+ # If we cannot determine the network type based on nodes
1149
+ # Check if the cluster has any node pools with autoscaling enabled
1150
+ # with machine types that support high perf networking for GKE.
1151
+ autoscaler_type = skypilot_config.get_effective_region_config(
1152
+ cloud='kubernetes',
1153
+ region=context,
1154
+ keys=('autoscaler',),
1155
+ default_value=None)
1156
+ if (autoscaler_type !=
1157
+ kubernetes_enums.KubernetesAutoscalerType.GKE.value):
1158
+ return KubernetesHighPerformanceNetworkType.NONE, ''
1159
+ autoscaler = kubernetes_utils.get_autoscaler(
1160
+ kubernetes_enums.KubernetesAutoscalerType(autoscaler_type))
1161
+ logger.debug(f'{context} has autoscaler of type: {autoscaler_type}')
1162
+ machine_types = autoscaler.get_available_machine_types(context)
1163
+ # Check if any machine type supports high perf networking for GKE.
1164
+ if 'a3-highgpu-8g' in machine_types:
1165
+ return (KubernetesHighPerformanceNetworkType.GCP_TCPX,
1166
+ 'a3-highgpu-8g')
1167
+ elif 'a3-edgegpu-8g' in machine_types:
1168
+ return (KubernetesHighPerformanceNetworkType.GCP_TCPX,
1169
+ 'a3-edgegpu-8g')
1170
+ elif 'a3-megagpu-8g' in machine_types:
1171
+ return (KubernetesHighPerformanceNetworkType.GCP_TCPXO,
1172
+ 'a3-megagpu-8g')
1173
+ elif 'a4-highgpu-8g' in machine_types:
1174
+ return (KubernetesHighPerformanceNetworkType.GCP_GPUDIRECT_RDMA,
1175
+ 'a4-highgpu-8g')
1176
+ elif 'a3-ultragpu-8g' in machine_types:
1177
+ return (KubernetesHighPerformanceNetworkType.GCP_GPUDIRECT_RDMA,
1178
+ 'a3-ultragpu-8g')
1179
+
1180
+ return KubernetesHighPerformanceNetworkType.NONE, ''
@@ -878,8 +878,10 @@ def cancel(
878
878
  f'handle for cluster {cluster_name!r} should not be None')
879
879
 
880
880
  backend = backend_utils.get_backend_from_handle(handle)
881
+ user_hash: Optional[str] = common_utils.get_current_user().id
881
882
 
882
883
  if all_users:
884
+ user_hash = None
883
885
  sky_logging.print(
884
886
  f'{colorama.Fore.YELLOW}'
885
887
  f'Cancelling all users\' jobs on cluster {cluster_name!r}...'
@@ -904,7 +906,7 @@ def cancel(
904
906
  backend.cancel_jobs(handle,
905
907
  job_ids,
906
908
  cancel_all=all or all_users,
907
- user_hash=common_utils.get_current_user().id)
909
+ user_hash=user_hash)
908
910
 
909
911
 
910
912
  @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/0da6afe66176678a.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/0da6afe66176678a.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-9a81ea998672c303.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-a37b06ddb64521fd.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_error-c72a1f77a3c0be1b.js" defer=""></script><script src="/dashboard/_next/static/EqELoF4IXcALfWVihInou/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/EqELoF4IXcALfWVihInou/_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":"EqELoF4IXcALfWVihInou","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/6cbd41a88d2e9e1c.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/6cbd41a88d2e9e1c.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-60070a62f55486a6.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-e6e82dc8abb50c4f.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_error-c72a1f77a3c0be1b.js" defer=""></script><script src="/dashboard/_next/static/ldZFQWCiYX_vZnIfB_o8S/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/ldZFQWCiYX_vZnIfB_o8S/_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":"ldZFQWCiYX_vZnIfB_o8S","assetPrefix":"/dashboard","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
@@ -0,0 +1,6 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1871,430],{9037:function(e,s,t){"use strict";t.r(s),t.d(s,{ClusterTable:function(){return _},Clusters:function(){return E},Status2Actions:function(){return A},enabledActions:function(){return V},handleVSCodeConnection:function(){return H}});var l=t(5893),r=t(7294),a=t(1163),n=t(5739),c=t(6989),i=t(1664),o=t.n(i),u=t(803),d=t(7673),h=t(8764),x=t(3266),p=t(7324),m=t(3081),f=t(4545),j=t(3626),v=t(998);/**
2
+ * @license lucide-react v0.407.0 - ISC
3
+ *
4
+ * This source code is licensed under the ISC license.
5
+ * See the LICENSE file in the root directory of this source tree.
6
+ */let g=(0,v.Z)("Terminal",[["polyline",{points:"4 17 10 11 4 5",key:"akl6gq"}],["line",{x1:"12",x2:"20",y1:"19",y2:"19",key:"q2wloq"}]]),b=(0,v.Z)("SquareCode",[["path",{d:"M10 9.5 8 12l2 2.5",key:"3mjy60"}],["path",{d:"m14 9.5 2 2.5-2 2.5",key:"1bir2l"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]);t(9470);var w=t(9284),y=t(9307),k=t(3001),N=t(8950),C=t(6378),S=t(6856);t(1272);var L=t(546);let M=[{label:"Status",value:"status"},{label:"Cluster",value:"cluster"},{label:"User",value:"user"},{label:"Infra",value:"infra"},{label:"Workspace",value:"workspace"}],I=(e,s)=>{let t="",l="";return e>=0&&(t=e+"m",l=" "),s&&(t+="".concat(l,"(down)")),""===t&&(t="-"),t},R=(e,s)=>{if(e&&e.includes("@")){let t=e.split("@")[0];return s&&s!==t?"".concat(t," (").concat(s,")"):t}let t=e||s||"N/A";return s&&s!==t?"".concat(t," (").concat(s,")"):t},O=e=>{if(!e||0===e)return"-";let s=e=Math.floor(e),t="",l=0;for(let e of[{value:31536e3,label:"y"},{value:2592e3,label:"mo"},{value:86400,label:"d"},{value:3600,label:"h"},{value:60,label:"m"},{value:1,label:"s"}])if(s>=e.value&&l<2){let r=Math.floor(s/e.value);t+="".concat(r).concat(e.label," "),s%=e.value,l++}return t.trim()||"0s"};function E(){let e=(0,a.useRouter)(),[s,t]=(0,r.useState)(!1),i=r.useRef(null),[u,d]=(0,r.useState)(!1),[h,f]=(0,r.useState)(!1),[v,g]=(0,r.useState)(null),[b,y]=(0,r.useState)(!1),N=(0,k.X)(),[L,I]=(0,r.useState)([]),[O,E]=(0,r.useState)({status:[],cluster:[],user:[],workspace:[],infra:[]});(0,r.useEffect)(()=>{e.isReady&&F()},[e.isReady]),(0,r.useEffect)(()=>{(async()=>{try{await S.ZP.preloadForPage("clusters");let e=await C.default.get(p.fX),s=Object.keys(e),t=await C.default.get(x.getClusters),l=[...new Set(t.map(e=>e.workspace||"default").filter(e=>e))],r=new Set(s);l.includes("default")&&r.has("default"),l.forEach(e=>r.add(e));let a=await C.default.get(m.R),n=[...new Set(t.map(e=>({userId:e.user_hash||e.user,username:e.user})).filter(e=>e.userId)).values()],c=new Map;a.forEach(e=>{c.set(e.userId,{userId:e.userId,username:e.username,display:R(e.username,e.userId)})}),n.forEach(e=>{c.has(e.userId)||c.set(e.userId,{userId:e.userId,username:e.username,display:R(e.username,e.userId)})})}catch(e){console.error("Error fetching data for filters:",e)}})()},[]);let H=s=>{let t={...e.query},l=[],r=[],a=[];s.map((e,s)=>{var t;l.push(null!==(t=e.property.toLowerCase())&&void 0!==t?t:""),r.push(e.operator),a.push(e.value)}),t.property=l,t.operator=r,t.value=a,e.replace({pathname:e.pathname,query:t},void 0,{shallow:!0})},F=()=>{let s={...e.query},t=s.property,l=s.operator,r=s.value;if(void 0===t)return;let a=[],n=Array.isArray(t)?t.length:1,c=new Map;if(c.set("",""),c.set("status","Status"),c.set("cluster","Cluster"),c.set("user","User"),c.set("workspace","Workspace"),c.set("infra","Infra"),1===n)a.push({property:c.get(t),operator:l,value:r});else for(let e=0;e<n;e++)a.push({property:c.get(t[e]),operator:l[e],value:r[e]});I(a)};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)("div",{className:"flex items-center justify-between mb-4 h-5",children:[(0,l.jsxs)("div",{className:"text-base flex items-center",children:[(0,l.jsx)(o(),{href:"/clusters",className:"text-sky-blue hover:underline leading-none",children:"Sky Clusters"}),(0,l.jsx)("div",{className:"flex items-center ml-6 space-x-3",children:(0,l.jsxs)("label",{className:"flex items-center cursor-pointer",children:[(0,l.jsx)("input",{type:"checkbox",checked:b,onChange:e=>y(e.target.checked),className:"sr-only"}),(0,l.jsx)("div",{className:"relative inline-flex h-5 w-9 items-center rounded-full transition-colors ".concat(b?"bg-sky-600":"bg-gray-300"),children:(0,l.jsx)("span",{className:"inline-block h-3 w-3 transform rounded-full bg-white transition-transform ".concat(b?"translate-x-5":"translate-x-1")})}),(0,l.jsx)("span",{className:"ml-2 text-sm text-gray-700",children:"Show history (Last 30 days)"})]})}),(0,l.jsx)(z,{propertyList:M,valueList:O,setFilters:I,updateURLParams:H,placeholder:"Filter clusters"})]}),(0,l.jsxs)("div",{className:"flex items-center",children:[s&&(0,l.jsxs)("div",{className:"flex items-center mr-2",children:[(0,l.jsx)(n.Z,{size:15,className:"mt-0"}),(0,l.jsx)("span",{className:"ml-2 text-gray-500",children:"Loading..."})]}),(0,l.jsxs)("button",{onClick:()=>{C.default.invalidate(x.getClusters),C.default.invalidate(x.uR),C.default.invalidate(p.fX),C.default.invalidate(m.R),i.current&&i.current()},disabled:s,className:"text-sky-blue hover:text-sky-blue-bright flex items-center",children:[(0,l.jsx)(j.Z,{className:"h-4 w-4 mr-1.5"}),!N&&(0,l.jsx)("span",{children:"Refresh"})]})]})]}),(0,l.jsx)(Z,{filters:L,setFilters:I,updateURLParams:H}),(0,l.jsx)(_,{refreshInterval:c.yc,setLoading:t,refreshDataRef:i,filters:L,showHistory:b,onOpenSSHModal:e=>{g(e),d(!0)},onOpenVSCodeModal:e=>{g(e),f(!0)},setOptionValues:E}),(0,l.jsx)(w.Oh,{isOpen:u,onClose:()=>d(!1),cluster:v}),(0,l.jsx)(w._R,{isOpen:h,onClose:()=>f(!1),cluster:v})]})}function _(e){let{refreshInterval:s,setLoading:t,refreshDataRef:a,filters:i,showHistory:p,onOpenSSHModal:m,onOpenVSCodeModal:j,setOptionValues:v}=e,[g,b]=(0,r.useState)([]),[w,k]=(0,r.useState)({key:null,direction:"ascending"}),[N,S]=(0,r.useState)(!1),[M,R]=(0,r.useState)(!0),[E,_]=(0,r.useState)(1),[H,F]=(0,r.useState)(10),V=e=>{let s={status:[],cluster:[],user:[],workspace:[],infra:[]},t=(e,s)=>{e.includes(s)||e.push(s)};return e.map(e=>{t(s.status,e.status),t(s.cluster,e.cluster),t(s.user,e.user),t(s.workspace,e.workspace),t(s.infra,e.infra)}),s},W=r.useCallback(async()=>{t(!0),S(!0);try{let e=await C.default.get(x.getClusters);if(p){let s=await C.default.get(x.uR),t=e.map(e=>({...e,isHistorical:!1})),l=s.map(e=>({...e,isHistorical:!0})),r=[...t];l.forEach(s=>{e.some(e=>(e.cluster||e.name)===(s.cluster||s.name))||r.push(s)}),v(V(r)),b(r)}else{let s=e.map(e=>({...e,isHistorical:!1}));v(V(s)),b(s)}}catch(e){console.error("Error fetching cluster data:",e),v(V([])),b([])}t(!1),S(!1),R(!1)},[t,p]),z=(e,s)=>{var t;let{property:l,operator:r,value:a}=s;if(!a)return!0;if(!l){let s=a.toLowerCase();return Object.values(e).some(e=>null==e?void 0:e.toString().toLowerCase().includes(s))}let n=null===(t=e[l.toLowerCase()])||void 0===t?void 0:t.toString().toLowerCase(),c=a.toString().toLowerCase();switch(r){case"=":return n===c;case":":return null==n?void 0:n.includes(c);default:return!0}},Z=r.useMemo(()=>{let e=0===i.length?g:g.filter(e=>{let s=null;for(let t=0;t<i.length;t++){let l=z(e,i[t]);s=null===s?l:s&&l}return s});return(0,f.R0)(e,w.key,w.direction)},[g,w,i]);r.useEffect(()=>{a&&(a.current=W)},[a,W]),(0,r.useEffect)(()=>{b([]);let e=!0;W();let t=setInterval(()=>{e&&W()},s);return()=>{e=!1,clearInterval(t)}},[s,W]),(0,r.useEffect)(()=>{_(1)},[g.length]);let B=e=>{let s="ascending";w.key===e&&"ascending"===w.direction&&(s="descending"),k({key:e,direction:s})},q=e=>w.key===e?"ascending"===w.direction?" ↑":" ↓":"",D=Math.ceil(Z.length/H),P=(E-1)*H,U=P+H,X=Z.slice(P,U);return(0,l.jsxs)("div",{children:[(0,l.jsx)(d.Zb,{children:(0,l.jsx)("div",{className:"overflow-x-auto",children:(0,l.jsxs)(h.iA,{className:"min-w-full",children:[(0,l.jsx)(h.xD,{children:(0,l.jsxs)(h.SC,{children:[(0,l.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>B("status"),children:["Status",q("status")]}),(0,l.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>B("cluster"),children:["Cluster",q("cluster")]}),(0,l.jsxs)(h.ss,{className:"sortable whitespace-nowrap hidden sm:table-cell",onClick:()=>B("user"),children:["User",q("user")]}),(0,l.jsxs)(h.ss,{className:"sortable whitespace-nowrap hidden md:table-cell",onClick:()=>B("workspace"),children:["Workspace",q("workspace")]}),(0,l.jsxs)(h.ss,{className:"sortable whitespace-nowrap hidden lg:table-cell",onClick:()=>B("infra"),children:["Infra",q("infra")]}),(0,l.jsxs)(h.ss,{className:"sortable whitespace-nowrap hidden xl:table-cell",onClick:()=>B("resources_str"),children:["Resources",q("resources_str")]}),(0,l.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>B("time"),children:["Started",q("time")]}),p&&(0,l.jsxs)(h.ss,{className:"sortable whitespace-nowrap hidden lg:table-cell",onClick:()=>B("duration"),children:["Duration",q("duration")]}),(0,l.jsxs)(h.ss,{className:"sortable whitespace-nowrap hidden md:table-cell",onClick:()=>B("autostop"),children:["Autostop",q("autostop")]}),(0,l.jsx)(h.ss,{className:"sticky right-0 bg-white",children:"Actions"})]})}),(0,l.jsx)(h.RM,{children:N&&M?(0,l.jsx)(h.SC,{children:(0,l.jsx)(h.pj,{colSpan:9,className:"text-center py-6 text-gray-500",children:(0,l.jsxs)("div",{className:"flex justify-center items-center",children:[(0,l.jsx)(n.Z,{size:20,className:"mr-2"}),(0,l.jsx)("span",{children:"Loading..."})]})})}):X.length>0?X.map((e,s)=>(0,l.jsxs)(h.SC,{children:[(0,l.jsx)(h.pj,{children:(0,l.jsx)(y.OE,{status:e.status})}),(0,l.jsx)(h.pj,{children:(0,l.jsx)(o(),{href:"/clusters/".concat(e.isHistorical?e.cluster_hash:e.cluster||e.name),className:"text-blue-600",children:e.cluster||e.name})}),(0,l.jsx)(h.pj,{className:"hidden sm:table-cell",children:(0,l.jsx)(L.H,{username:e.user,userHash:e.user_hash})}),(0,l.jsx)(h.pj,{className:"hidden md:table-cell",children:(0,l.jsx)(o(),{href:"/workspaces",className:"text-blue-600 hover:underline",children:e.workspace||"default"})}),(0,l.jsx)(h.pj,{className:"hidden lg:table-cell",children:(0,l.jsx)(c.Md,{content:e.full_infra||e.infra,className:"text-sm text-muted-foreground",children:(0,l.jsxs)("span",{children:[(0,l.jsx)(o(),{href:"/infra",className:"text-blue-600 hover:underline",children:e.cloud}),e.infra.includes("(")&&(0,l.jsx)("span",{children:" "+e.infra.substring(e.infra.indexOf("("))})]})})}),(0,l.jsx)(h.pj,{className:"hidden xl:table-cell",children:(0,l.jsx)(c.Md,{content:e.resources_str_full||e.resources_str,className:"text-sm text-muted-foreground",children:(0,l.jsx)("span",{children:e.resources_str})})}),(0,l.jsx)(h.pj,{children:(0,l.jsx)(c.Zg,{date:e.time})}),p&&(0,l.jsx)(h.pj,{className:"hidden lg:table-cell",children:O(e.duration)}),(0,l.jsx)(h.pj,{className:"hidden md:table-cell",children:e.isHistorical?"-":I(e.autostop,e.to_down)}),(0,l.jsx)(h.pj,{className:"text-left sticky right-0 bg-white",children:!e.isHistorical&&(0,l.jsx)(A,{cluster:e.cluster,status:e.status,onOpenSSHModal:m,onOpenVSCodeModal:j})})]},s)):(0,l.jsx)(h.SC,{children:(0,l.jsx)(h.pj,{colSpan:9,className:"text-center py-6 text-gray-500",children:p?"No clusters found":"No active clusters"})})})]})})}),g.length>0&&(0,l.jsx)("div",{className:"flex justify-end items-center py-2 px-4 text-sm text-gray-700",children:(0,l.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,l.jsxs)("div",{className:"flex items-center",children:[(0,l.jsx)("span",{className:"mr-2",children:"Rows per page:"}),(0,l.jsxs)("div",{className:"relative inline-block",children:[(0,l.jsxs)("select",{value:H,onChange:e=>{F(parseInt(e.target.value,10)),_(1)},className:"py-1 pl-2 pr-6 appearance-none outline-none cursor-pointer border-none bg-transparent",style:{minWidth:"40px"},children:[(0,l.jsx)("option",{value:10,children:"10"}),(0,l.jsx)("option",{value:30,children:"30"}),(0,l.jsx)("option",{value:50,children:"50"}),(0,l.jsx)("option",{value:100,children:"100"}),(0,l.jsx)("option",{value:200,children:"200"})]}),(0,l.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,l.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]})]}),(0,l.jsx)("div",{children:"".concat(P+1," - ").concat(Math.min(U,Z.length)," of ").concat(Z.length)}),(0,l.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,l.jsx)(u.z,{variant:"ghost",size:"icon",onClick:()=>{_(e=>Math.max(e-1,1))},disabled:1===E,className:"text-gray-500 h-8 w-8 p-0",children:(0,l.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,l.jsx)("path",{d:"M15 18l-6-6 6-6"})})}),(0,l.jsx)(u.z,{variant:"ghost",size:"icon",onClick:()=>{_(e=>Math.min(e+1,D))},disabled:E===D||0===D,className:"text-gray-500 h-8 w-8 p-0",children:(0,l.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,l.jsx)("path",{d:"M9 18l6-6-6-6"})})})]})]})})]})}let H=(e,s)=>{s&&s(e)},F=(e,s)=>{s?s(e):window.open("ssh://".concat(e))},V=e=>"RUNNING"===e?["connect","VSCode"]:[],W={connect:(0,l.jsx)(g,{className:"w-4 h-4 text-gray-500 inline-block"}),VSCode:(0,l.jsx)(b,{className:"w-4 h-4 text-gray-500 inline-block"})};function A(e){let{withLabel:s=!1,cluster:t,status:r,onOpenSSHModal:a,onOpenVSCodeModal:n}=e,i=V(r),o=(0,k.X)(),u=e=>{switch(e){case"connect":F(t,a);break;case"VSCode":H(t,n);break;default:return}};return(0,l.jsx)(l.Fragment,{children:(0,l.jsx)("div",{className:"flex items-center space-x-4",children:Object.entries(W).map(e=>{let t,r,[a,n]=e;switch(a){case"connect":t="Connect",r="Connect with SSH";break;case"VSCode":t="VSCode",r="Open in VS Code"}return(s||(t=""),i.includes(a))?(0,l.jsx)(c.WH,{content:r,className:"capitalize text-sm text-muted-foreground",children:(0,l.jsxs)("button",{onClick:()=>u(a),className:"text-sky-blue hover:text-sky-blue-bright font-medium inline-flex items-center",children:[n,!o&&(0,l.jsx)("span",{className:"ml-1.5",children:t})]})},a):(0,l.jsx)(c.WH,{content:r,className:"capitalize text-sm text-muted-foreground",children:(0,l.jsxs)("span",{className:"opacity-30 flex items-center cursor-not-allowed text-sm",title:a,children:[n,!o&&(0,l.jsx)("span",{className:"ml-1.5",children:t})]})},a)})})})}let z=e=>{let{propertyList:s=[],valueList:t,setFilters:a,updateURLParams:n,placeholder:c="Filter clusters"}=e,i=(0,r.useRef)(null),[o,u]=(0,r.useState)(!1),[d,h]=(0,r.useState)(""),[x,p]=(0,r.useState)("cluster"),[m,f]=(0,r.useState)([]),j=[];(0,r.useEffect)(()=>{let e=[];switch(x){case"status":e=t.status;break;case"user":e=t.user;break;case"cluster":e=t.cluster;break;case"workspace":e=t.workspace;break;case"infra":e=t.infra}f(e=e.filter(e=>e.includes(d.toLowerCase())))},[x,t,d]);let v=e=>{h(e.target.value)};return(0,l.jsx)(l.Fragment,{children:(0,l.jsxs)("div",{className:"flex flex-row ml-4 mr-2 border border-gray-300 rounded-md",children:[(0,l.jsx)("div",{className:"border-r",children:(0,l.jsxs)(N.Ph,{onValueChange:e=>p(e),value:x,children:[(0,l.jsx)(N.i4,{"aria-label":"Node",className:"focus:ring-0 focus:ring-offset-0 border-none w-36",children:(0,l.jsx)(N.ki,{placeholder:"Select Property"})}),(0,l.jsx)(N.Bw,{children:s.map((e,s)=>(0,l.jsx)(N.Ql,{value:e.value,children:e.label},"property-item-".concat(s)))})]})}),(0,l.jsxs)("div",{className:"relative",children:[(0,l.jsx)("input",{type:"text",ref:i,placeholder:c,value:d,onChange:e=>v(e),onFocus:()=>u(!0),onBlur:()=>u(!1),onKeyDown:e=>{"Enter"===e.key&&""!==d&&(a(e=>{let s=[...e,{property:x,operator:":",value:d}];return n(s),s}),h(""),u(!1),i.current.blur())},className:"h-10 w-32 sm:w-96 px-3 pr-8 text-sm rounded-md outline-none my-auto",autoComplete:"off"}),d&&(0,l.jsx)("button",{onClick:()=>{h("")},className:"absolute right-2 top-1/2 transform -translate-y-1/2 text-gray-400 hover:text-gray-600",title:"Clear filter",tabIndex:-1,children:(0,l.jsx)("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,l.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})}),o&&m.length>0&&(0,l.jsx)("div",{className:"flex flex-col absolute z-10 mt-1 w-full bg-white border border-gray-200 rounded-md shadow-lg",children:m.map((e,s)=>(0,l.jsx)("div",{className:"flex flex-col pl-7 py-2 cursor-pointer hover:bg-sky-50 text-sm ".concat(s!=j.length-1," && border-b"),onMouseDown:s=>{s.preventDefault(),a(s=>{let t=[...s,{property:x,operator:"=",value:e}];return n(t),t}),u(!1),h(""),i.current.blur()},children:(0,l.jsx)("span",{className:"text-sm text-gray-600",children:e})},e))})]})]})})},Z=e=>{let{filters:s=[],setFilters:t,updateURLParams:r}=e,a=e=>{t(s=>{let t=s.filter((s,t)=>t!==e);return r(t),t})};return(0,l.jsx)(l.Fragment,{children:(0,l.jsx)("div",{className:"flex items-center gap-4 p-2",children:(0,l.jsxs)("div",{className:"flex flex-wrap items-content gap-2",children:[s.map((e,s)=>(0,l.jsx)(B,{filter:e,onRemove:()=>a(s)},"filteritem-".concat(s))),s.length>0&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("div",{className:"border border-gray-400 h-8"}),(0,l.jsx)("button",{onClick:()=>{r([]),t([])},className:"rounded-full px-4 py-1 text-blue-600 bg-blue-100 hover:bg-blue-200",children:"Clear filters"})]})]})})})},B=e=>{let{filter:s,onRemove:t}=e;return(0,l.jsx)(l.Fragment,{children:(0,l.jsxs)("div",{className:"flex items-center gap-2 text-blue-600 bg-blue-100 px-2 rounded-full",children:[(0,l.jsxs)("div",{className:"flex items-center gap-1 px-2 py-1 rounded-l-lg",children:[(0,l.jsx)("span",{children:"".concat(s.property," ")}),(0,l.jsx)("span",{className:"font-bold",children:"".concat(s.operator," ").concat(s.value)})]}),(0,l.jsx)("button",{onClick:()=>t(),className:"p-1 transform text-gray-400 hover:text-gray-600 bg-blue-500 hover:bg-blue-600 rounded-full flex flex-col items-center",title:"Clear filter",children:(0,l.jsx)("svg",{className:"h-3 w-3",fill:"none",stroke:"white",viewBox:"0 0 24 24",children:(0,l.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:5,d:"M6 18L18 6M6 6l12 12"})})})]})})}},1163:function(e,s,t){e.exports=t(6036)},2003:function(e,s,t){"use strict";t.d(s,{j:function(){return n}});var l=t(512);let r=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,a=l.W,n=(e,s)=>t=>{var l;if((null==s?void 0:s.variants)==null)return a(e,null==t?void 0:t.class,null==t?void 0:t.className);let{variants:n,defaultVariants:c}=s,i=Object.keys(n).map(e=>{let s=null==t?void 0:t[e],l=null==c?void 0:c[e];if(null===s)return null;let a=r(s)||r(l);return n[e][a]}),o=t&&Object.entries(t).reduce((e,s)=>{let[t,l]=s;return void 0===l||(e[t]=l),e},{});return a(e,i,null==s?void 0:null===(l=s.compoundVariants)||void 0===l?void 0:l.reduce((e,s)=>{let{class:t,className:l,...r}=s;return Object.entries(r).every(e=>{let[s,t]=e;return Array.isArray(t)?t.includes({...c,...o}[s]):({...c,...o})[s]===t})?[...e,t,l]:e},[]),null==t?void 0:t.class,null==t?void 0:t.className)}}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8969],{8969:function(e,t,r){r.d(t,{Ce:function(){return u},NJ:function(){return d},UA:function(){return l},getManagedJobs:function(){return i}});var o=r(7294),a=r(5821),n=r(3225),c=r(6378),s=r(7145);async function i(){let{allUsers:e=!0}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};try{let t=(await s.x.post("/jobs/queue",{all_users:e})).headers.get("X-Skypilot-Request-ID"),r=await s.x.get("/api/get?request_id=".concat(t));if(500===r.status){try{let e=await r.json();if(e.detail&&e.detail.error)try{let t=JSON.parse(e.detail.error);if(t.type&&t.type===n.iW)return{jobs:[],controllerStopped:!0}}catch(e){console.error("Error parsing JSON:",e)}}catch(e){console.error("Error parsing JSON:",e)}return{jobs:[],controllerStopped:!1}}let o=await r.json();return{jobs:(o.return_value?JSON.parse(o.return_value):[]).map(e=>{let t=[];e.submitted_at&&t.push({time:new Date(1e3*e.submitted_at),event:"Job submitted."}),e.start_at&&t.push({time:new Date(1e3*e.start_at),event:"Job started."}),e.end_at&&("CANCELLING"==e.status||"CANCELLED"==e.status?t.push({time:new Date(1e3*e.end_at),event:"Job cancelled."}):t.push({time:new Date(1e3*e.end_at),event:"Job completed."})),e.last_recovered_at&&e.last_recovered_at!=e.start_at&&t.push({time:new Date(1e3*e.last_recovered_at),event:"Job recovered."});let r=(e.end_at?e.end_at:Date.now()/1e3)-e.submitted_at,o=e.cloud,a=e.cluster_resources;if(!o){if(e.cluster_resources&&"-"!==e.cluster_resources)try{o=e.cluster_resources.split("(")[0].split("x").pop().trim(),a=e.cluster_resources.replace("".concat(o,"("),"(").replace("x ","x")}catch(e){o="Unknown"}else o="Unknown"}let n="",c=n=e.zone?e.zone:e.region;n&&n.length>15&&(n="".concat(n.substring(0,Math.floor(6)),"...").concat(n.substring(n.length-Math.ceil(6))));let s=o+" ("+n+")";"-"===n&&(s=o);let i=o+" ("+c+")";return"-"===c&&(i=o),{id:e.job_id,task:e.task_name,name:e.job_name,job_duration:e.job_duration,total_duration:r,workspace:e.workspace,status:e.status,requested_resources:e.resources,resources_str:a,resources_str_full:e.cluster_resources_full||a,cloud:o,region:e.region,infra:s,full_infra:i,recoveries:e.recovery_count,details:e.details||e.failure_reason,user:e.user_name,user_hash:e.user_hash,submitted_at:e.submitted_at?new Date(1e3*e.submitted_at):null,events:t,dag_yaml:e.user_yaml,entrypoint:e.entrypoint}}),controllerStopped:!1}}catch(e){return console.error("Error fetching managed job data:",e),{jobs:[],controllerStopped:!1}}}function l(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,[r,a]=(0,o.useState)(null),[n,s]=(0,o.useState)(!0);return(0,o.useEffect)(()=>{(async function(){if(e)try{var t;s(!0);let r=await c.default.get(i,[{allUsers:!0}]),o=null==r?void 0:null===(t=r.jobs)||void 0===t?void 0:t.find(t=>String(t.id)===String(e));o?a({jobs:[o],controllerStopped:r.controllerStopped||!1}):a({jobs:[],controllerStopped:r.controllerStopped||!1})}catch(e){console.error("Error fetching single managed job data:",e),a({jobs:[],controllerStopped:!1})}finally{s(!1)}})()},[e,t]),{jobData:r,loading:n}}async function d(e){let t,{jobId:r,controller:o=!1,signal:c,onNewLog:s}=e,i=Date.now(),l=new Promise(e=>{let r=()=>{let o=Date.now()-i;o>=3e4?e({timeout:!0}):t=setTimeout(r,3e4-o)};t=setTimeout(r,3e4)}),d=window.location.origin,u="".concat(d).concat(n.f4),h=(async()=>{try{let e=(await fetch("".concat(u,"/jobs/logs"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({controller:o,follow:!1,job_id:r,tail:1e3}),...c?{signal:c}:{}})).body.getReader();try{for(;;){let{done:t,value:r}=await e.read();if(t)break;i=Date.now();let o=new TextDecoder().decode(r);s(o)}}finally{if(!c||!c.aborted)try{e.cancel()}catch(e){"AbortError"!==e.name&&console.warn("Error canceling reader:",e)}t&&clearTimeout(t)}return{timeout:!1}}catch(e){if(t&&clearTimeout(t),"AbortError"===e.name)return{timeout:!1};throw e}})(),b=await Promise.race([h,l]);if(t&&clearTimeout(t),b.timeout){(0,a.C)("Log request for job ".concat(r," timed out after ").concat(30,"s of inactivity"),"warning");return}}async function u(e,t,r){let o="",c="",s="",i={};if("restartcontroller"===e)o="Restarting",c="restarted",s="jobs/queue",i={all_users:!0,refresh:!0},t="controller";else throw Error("Invalid action: ".concat(e));(0,a.C)("".concat(o," job ").concat(t,"..."),"info");let l=window.location.origin,d="".concat(l).concat(n.f4);try{try{let e=(await fetch("".concat(d,"/").concat(s),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(i)})).headers.get("X-Skypilot-Request-ID"),l=await fetch("".concat(d,"/api/get?request_id=").concat(e));if(200===l.status)(0,a.C)("Job ".concat(t," ").concat(c," successfully."),"success");else if(500===l.status)try{let e=await l.json();if(e.detail&&e.detail.error)try{let c=JSON.parse(e.detail.error);c.type&&c.type===n.Bo?(0,a.C)("".concat(o," job ").concat(t," is not supported!"),"error",1e4):c.type&&c.type===n.mF?(0,a.C)("Cluster ".concat(r," does not exist."),"error"):c.type&&c.type===n.iW?(0,a.C)("Cluster ".concat(r," is not up."),"error"):(0,a.C)("".concat(o," job ").concat(t," failed: ").concat(c.type),"error")}catch(r){(0,a.C)("".concat(o," job ").concat(t," failed: ").concat(e.detail.error),"error")}else(0,a.C)("".concat(o," job ").concat(t," failed with no details."),"error")}catch(e){(0,a.C)("".concat(o," job ").concat(t," failed with parse error."),"error")}else(0,a.C)("".concat(o," job ").concat(t," failed with status ").concat(l.status,"."),"error")}catch(e){console.error("Fetch error:",e),(0,a.C)("Network error ".concat(o," job ").concat(t,": ").concat(e.message),"error")}}catch(e){console.error("Error in handleStop:",e),(0,a.C)("Critical error ".concat(o," job ").concat(t,": ").concat(e.message),"error")}}},5821:function(e,t,r){r.d(t,{C:function(){return o}});function o(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"info",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:5e3,o=document.getElementById("toast-container");o||((o=document.createElement("div")).id="toast-container",o.className="fixed top-0 right-0 p-4 z-[9999] flex flex-col items-end space-y-2",document.body.appendChild(o));let a=document.createElement("div");switch(a.className="rounded-md border-l-4 p-4 shadow-md flex items-center justify-between max-w-md w-full mb-2 pointer-events-auto",t){case"success":a.className+=" bg-green-100 border-green-500 text-green-800";break;case"error":a.className+=" bg-red-100 border-red-500 text-red-800";break;case"warning":a.className+=" bg-yellow-100 border-yellow-500 text-yellow-800";break;default:a.className+=" bg-blue-100 border-blue-500 text-blue-800"}return a.innerHTML='\n <div class="flex-1 mr-2">\n <p class="text-sm font-medium">'.concat(e,'</p>\n </div>\n <button class="text-gray-500 hover:text-gray-700 focus:outline-none" aria-label="Close toast">\n <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">\n <line x1="18" y1="6" x2="6" y2="18"></line>\n <line x1="6" y1="6" x2="18" y2="18"></line>\n </svg>\n </button>\n '),o.appendChild(a),a.querySelector("button").addEventListener("click",()=>{o.removeChild(a)}),setTimeout(()=>{o.contains(a)&&o.removeChild(a)},r),a}},6378:function(e,t,r){r.r(t),r.d(t,{DashboardCache:function(){return a},dashboardCache:function(){return n}});let o=r(1214).ej.DEFAULT_TTL;class a{async get(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=r.ttl||o,n=!1!==r.refreshOnAccess,c=this._generateKey(e,t),s=e.name||"anonymous",i=this.cache.get(c),l=Date.now();if(i&&l-i.lastUpdated<a){let r=Math.round((l-i.lastUpdated)/1e3);return this._debug("Cache HIT for ".concat(s," (age: ").concat(r,"s, TTL: ").concat(Math.round(a/1e3),"s)")),n&&(this.cache.set(c,{data:i.data,lastUpdated:l}),this._debug("Cache TTL refreshed for ".concat(s))),this.backgroundJobs.has(c)||this._refreshInBackground(e,t,c),i.data}try{let r=await e(...t);return this.cache.set(c,{data:r,lastUpdated:l}),r}catch(e){if(i)return console.warn("Failed to fetch fresh data for ".concat(c,", returning stale data:"),e),i.data;throw e}}invalidate(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=this._generateKey(e,t);this.cache.delete(r),this.backgroundJobs.delete(r)}invalidateFunction(e){let t=e.name||"anonymous",r=[];for(let e of this.cache.keys())e.startsWith("".concat(t,"_"))&&r.push(e);r.forEach(e=>{this.cache.delete(e),this.backgroundJobs.delete(e)})}clear(){this.cache.clear(),this.backgroundJobs.clear()}getStats(){return{cacheSize:this.cache.size,backgroundJobs:this.backgroundJobs.size,keys:Array.from(this.cache.keys())}}getDetailedStats(){let e=Date.now(),t=[];for(let[r,o]of this.cache.entries()){let a=e-o.lastUpdated;t.push({key:r,age:Math.round(a/1e3),lastUpdated:new Date(o.lastUpdated).toISOString(),hasBackgroundJob:this.backgroundJobs.has(r)})}return{cacheSize:this.cache.size,backgroundJobs:this.backgroundJobs.size,entries:t.sort((e,t)=>e.age-t.age)}}setDebugMode(e){this.debugMode=e}_debug(e){for(var t=arguments.length,r=Array(t>1?t-1:0),o=1;o<t;o++)r[o-1]=arguments[o];this.debugMode&&console.log("[DashboardCache] ".concat(e),...r)}_refreshInBackground(e,t,r){this.backgroundJobs.set(r,!0),e(...t).then(e=>{this.cache.set(r,{data:e,lastUpdated:Date.now()})}).catch(e=>{console.warn("Background refresh failed for ".concat(r,":"),e)}).finally(()=>{this.backgroundJobs.delete(r)})}_generateKey(e,t){let r=function(e){let t=5381;for(let r=0;r<e.length;r++)t=(t<<5)+t+e.charCodeAt(r);return t>>>0}(e.toString()),o=t.length>0?JSON.stringify(t):"";return"".concat(r,"_").concat(o)}constructor(){this.cache=new Map,this.backgroundJobs=new Map,this.debugMode=!1}}let n=new a;t.default=n}}]);
@@ -1 +1 @@
1
- !function(){"use strict";var e,t,n,r,c,a,o,u,f,i={},d={};function s(e){var t=d[e];if(void 0!==t)return t.exports;var n=d[e]={exports:{}},r=!0;try{i[e](n,n.exports,s),r=!1}finally{r&&delete d[e]}return n.exports}s.m=i,e=[],s.O=function(t,n,r,c){if(n){c=c||0;for(var a=e.length;a>0&&e[a-1][2]>c;a--)e[a]=e[a-1];e[a]=[n,r,c];return}for(var o=1/0,a=0;a<e.length;a++){for(var n=e[a][0],r=e[a][1],c=e[a][2],u=!0,f=0;f<n.length;f++)o>=c&&Object.keys(s.O).every(function(e){return s.O[e](n[f])})?n.splice(f--,1):(u=!1,c<o&&(o=c));if(u){e.splice(a--,1);var i=r();void 0!==i&&(t=i)}}return t},s.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return s.d(t,{a:t}),t},n=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},s.t=function(e,r){if(1&r&&(e=this(e)),8&r||"object"==typeof e&&e&&(4&r&&e.__esModule||16&r&&"function"==typeof e.then))return e;var c=Object.create(null);s.r(c);var a={};t=t||[null,n({}),n([]),n(n)];for(var o=2&r&&e;"object"==typeof o&&!~t.indexOf(o);o=n(o))Object.getOwnPropertyNames(o).forEach(function(t){a[t]=function(){return e[t]}});return a.default=function(){return e},s.d(c,a),c},s.d=function(e,t){for(var n in t)s.o(t,n)&&!s.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},s.f={},s.e=function(e){return Promise.all(Object.keys(s.f).reduce(function(t,n){return s.f[n](e,t),t},[]))},s.u=function(e){return 2544===e?"static/chunks/2544.27f70672535675ed.js":5491===e?"static/chunks/5491.918ffed0ba7a5294.js":3937===e?"static/chunks/3937.d7f1c55d1916c7f2.js":9025===e?"static/chunks/9025.a7c44babfe56ce09.js":2875===e?"static/chunks/2875.c24c6d57dc82e436.js":9984===e?"static/chunks/9984.b56614f3c4c5961d.js":430===e?"static/chunks/430.ed51037d1a4a438b.js":4697===e?"static/chunks/4697.f5421144224da9fc.js":1691===e?"static/chunks/1691.44e378727a41f3b5.js":3256===e?"static/chunks/3256.7257acd01b481bed.js":4725===e?"static/chunks/4725.4c849b1e05c8e9ad.js":3785===e?"static/chunks/3785.b3cc2bc1d49d2c3c.js":8982===e?"static/chunks/8982.a2e214068f30a857.js":"static/chunks/"+e+"-"+({616:"162f3033ffcd3d31",804:"9f5e98ce84d46bdd",938:"044ad21de8b4626b",1043:"1b39779691bb4030",1141:"726e5a3f00b67185",1272:"1ef0bf0237faccdb",1664:"d65361e92b85e786",1871:"80dea41717729fa5",3698:"52ad1ca228faa776",3947:"b059261d6fa88a1f",5230:"df791914b54d91d9",5739:"5ea3ffa10fc884f2",6601:"fcfad0ddf92ec7ab",6989:"6ff4e45dfb49d11d",6990:"d0dc765474fa0eca",8969:"909d53833da080cb",9470:"21d059a1dfa03f61"})[e]+".js"},s.miniCssF=function(e){},s.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r={},c="_N_E:",s.l=function(e,t,n,a){if(r[e]){r[e].push(t);return}if(void 0!==n)for(var o,u,f=document.getElementsByTagName("script"),i=0;i<f.length;i++){var d=f[i];if(d.getAttribute("src")==e||d.getAttribute("data-webpack")==c+n){o=d;break}}o||(u=!0,(o=document.createElement("script")).charset="utf-8",o.timeout=120,s.nc&&o.setAttribute("nonce",s.nc),o.setAttribute("data-webpack",c+n),o.src=s.tu(e)),r[e]=[t];var b=function(t,n){o.onerror=o.onload=null,clearTimeout(l);var c=r[e];if(delete r[e],o.parentNode&&o.parentNode.removeChild(o),c&&c.forEach(function(e){return e(n)}),t)return t(n)},l=setTimeout(b.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=b.bind(null,o.onerror),o.onload=b.bind(null,o.onload),u&&document.head.appendChild(o)},s.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.tt=function(){return void 0===a&&(a={createScriptURL:function(e){return e}},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(a=trustedTypes.createPolicy("nextjs#bundler",a))),a},s.tu=function(e){return s.tt().createScriptURL(e)},s.p="/dashboard/_next/",o={2272:0},s.f.j=function(e,t){var n=s.o(o,e)?o[e]:void 0;if(0!==n){if(n)t.push(n[2]);else if(2272!=e){var r=new Promise(function(t,r){n=o[e]=[t,r]});t.push(n[2]=r);var c=s.p+s.u(e),a=Error();s.l(c,function(t){if(s.o(o,e)&&(0!==(n=o[e])&&(o[e]=void 0),n)){var r=t&&("load"===t.type?"missing":t.type),c=t&&t.target&&t.target.src;a.message="Loading chunk "+e+" failed.\n("+r+": "+c+")",a.name="ChunkLoadError",a.type=r,a.request=c,n[1](a)}},"chunk-"+e,e)}else o[e]=0}},s.O.j=function(e){return 0===o[e]},u=function(e,t){var n,r,c=t[0],a=t[1],u=t[2],f=0;if(c.some(function(e){return 0!==o[e]})){for(n in a)s.o(a,n)&&(s.m[n]=a[n]);if(u)var i=u(s)}for(e&&e(t);f<c.length;f++)r=c[f],s.o(o,r)&&o[r]&&o[r][0](),o[r]=0;return s.O(i)},(f=self.webpackChunk_N_E=self.webpackChunk_N_E||[]).forEach(u.bind(null,0)),f.push=u.bind(null,f.push.bind(f)),s.nc=void 0}();
1
+ !function(){"use strict";var e,t,n,r,c,a,o,u,f,i={},s={};function d(e){var t=s[e];if(void 0!==t)return t.exports;var n=s[e]={exports:{}},r=!0;try{i[e](n,n.exports,d),r=!1}finally{r&&delete s[e]}return n.exports}d.m=i,e=[],d.O=function(t,n,r,c){if(n){c=c||0;for(var a=e.length;a>0&&e[a-1][2]>c;a--)e[a]=e[a-1];e[a]=[n,r,c];return}for(var o=1/0,a=0;a<e.length;a++){for(var n=e[a][0],r=e[a][1],c=e[a][2],u=!0,f=0;f<n.length;f++)o>=c&&Object.keys(d.O).every(function(e){return d.O[e](n[f])})?n.splice(f--,1):(u=!1,c<o&&(o=c));if(u){e.splice(a--,1);var i=r();void 0!==i&&(t=i)}}return t},d.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return d.d(t,{a:t}),t},n=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},d.t=function(e,r){if(1&r&&(e=this(e)),8&r||"object"==typeof e&&e&&(4&r&&e.__esModule||16&r&&"function"==typeof e.then))return e;var c=Object.create(null);d.r(c);var a={};t=t||[null,n({}),n([]),n(n)];for(var o=2&r&&e;"object"==typeof o&&!~t.indexOf(o);o=n(o))Object.getOwnPropertyNames(o).forEach(function(t){a[t]=function(){return e[t]}});return a.default=function(){return e},d.d(c,a),c},d.d=function(e,t){for(var n in t)d.o(t,n)&&!d.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},d.f={},d.e=function(e){return Promise.all(Object.keys(d.f).reduce(function(t,n){return d.f[n](e,t),t},[]))},d.u=function(e){return 2544===e?"static/chunks/2544.27f70672535675ed.js":5491===e?"static/chunks/5491.918ffed0ba7a5294.js":3937===e?"static/chunks/3937.d7f1c55d1916c7f2.js":9025===e?"static/chunks/9025.a7c44babfe56ce09.js":2875===e?"static/chunks/2875.c24c6d57dc82e436.js":9984===e?"static/chunks/9984.b56614f3c4c5961d.js":430===e?"static/chunks/430.ed51037d1a4a438b.js":4697===e?"static/chunks/4697.f5421144224da9fc.js":3256===e?"static/chunks/3256.7257acd01b481bed.js":4725===e?"static/chunks/4725.4c849b1e05c8e9ad.js":1691===e?"static/chunks/1691.44e378727a41f3b5.js":3785===e?"static/chunks/3785.b3cc2bc1d49d2c3c.js":8982===e?"static/chunks/8982.a2e214068f30a857.js":"static/chunks/"+e+"-"+({616:"162f3033ffcd3d31",804:"9f5e98ce84d46bdd",938:"044ad21de8b4626b",1043:"1b39779691bb4030",1141:"726e5a3f00b67185",1272:"1ef0bf0237faccdb",1664:"d65361e92b85e786",1871:"3a0f047988be65cd",3698:"52ad1ca228faa776",3947:"b059261d6fa88a1f",5230:"df791914b54d91d9",5739:"5ea3ffa10fc884f2",6601:"fcfad0ddf92ec7ab",6989:"6ff4e45dfb49d11d",6990:"d0dc765474fa0eca",8969:"13bb52ce3cffa4e3",9470:"21d059a1dfa03f61"})[e]+".js"},d.miniCssF=function(e){},d.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r={},c="_N_E:",d.l=function(e,t,n,a){if(r[e]){r[e].push(t);return}if(void 0!==n)for(var o,u,f=document.getElementsByTagName("script"),i=0;i<f.length;i++){var s=f[i];if(s.getAttribute("src")==e||s.getAttribute("data-webpack")==c+n){o=s;break}}o||(u=!0,(o=document.createElement("script")).charset="utf-8",o.timeout=120,d.nc&&o.setAttribute("nonce",d.nc),o.setAttribute("data-webpack",c+n),o.src=d.tu(e)),r[e]=[t];var b=function(t,n){o.onerror=o.onload=null,clearTimeout(l);var c=r[e];if(delete r[e],o.parentNode&&o.parentNode.removeChild(o),c&&c.forEach(function(e){return e(n)}),t)return t(n)},l=setTimeout(b.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=b.bind(null,o.onerror),o.onload=b.bind(null,o.onload),u&&document.head.appendChild(o)},d.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},d.tt=function(){return void 0===a&&(a={createScriptURL:function(e){return e}},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(a=trustedTypes.createPolicy("nextjs#bundler",a))),a},d.tu=function(e){return d.tt().createScriptURL(e)},d.p="/dashboard/_next/",o={2272:0},d.f.j=function(e,t){var n=d.o(o,e)?o[e]:void 0;if(0!==n){if(n)t.push(n[2]);else if(2272!=e){var r=new Promise(function(t,r){n=o[e]=[t,r]});t.push(n[2]=r);var c=d.p+d.u(e),a=Error();d.l(c,function(t){if(d.o(o,e)&&(0!==(n=o[e])&&(o[e]=void 0),n)){var r=t&&("load"===t.type?"missing":t.type),c=t&&t.target&&t.target.src;a.message="Loading chunk "+e+" failed.\n("+r+": "+c+")",a.name="ChunkLoadError",a.type=r,a.request=c,n[1](a)}},"chunk-"+e,e)}else o[e]=0}},d.O.j=function(e){return 0===o[e]},u=function(e,t){var n,r,c=t[0],a=t[1],u=t[2],f=0;if(c.some(function(e){return 0!==o[e]})){for(n in a)d.o(a,n)&&(d.m[n]=a[n]);if(u)var i=u(d)}for(e&&e(t);f<c.length;f++)r=c[f],d.o(o,r)&&o[r]&&o[r][0](),o[r]=0;return d.O(i)},(f=self.webpackChunk_N_E=self.webpackChunk_N_E||[]).forEach(u.bind(null,0)),f.push=u.bind(null,f.push.bind(f)),d.nc=void 0}();
@@ -0,0 +1,3 @@
1
+ *,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
2
+ ! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com
3
+ */*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background:0 0% 100%;--foreground:220 17% 27%;--card:0 0% 100%;--card-foreground:220 17% 27%;--popover:0 0% 100%;--popover-foreground:220 17% 27%;--primary:222.2 47.4% 11.2%;--primary-foreground:220 17% 27%;--secondary:210 40% 96.1%;--secondary-foreground:220 9% 46%;--muted:210 40% 96.1%;--muted-foreground:210 40% 96.1%;--accent:210 40% 96.1%;--accent-foreground:220 17% 27%;--destructive:0 84.2% 60.2%;--destructive-foreground:210 40% 98%;--border:214.3 31.8% 91.4%;--input:214.3 31.8% 91.4%;--ring:222.2 84% 4.9%;--radius:0.5rem;--chart-1:12 76% 61%;--chart-2:173 58% 39%;--chart-3:197 37% 24%;--chart-4:43 74% 66%;--chart-5:27 87% 67%;--text-strong:220 17% 27%}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground))}.container{width:100%;margin-right:auto;margin-left:auto;padding-right:2rem;padding-left:2rem}@media (min-width:1400px){.container{max-width:1400px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-y-0{top:0;bottom:0}.left-0{left:0}.left-2{left:.5rem}.left-\[50\%\]{left:50%}.left-full{left:100%}.right-0{right:0}.right-2{right:.5rem}.right-4{right:1rem}.top-0{top:0}.top-1\/2{top:50%}.top-14{top:3.5rem}.top-20{top:5rem}.top-4{top:1rem}.top-\[50\%\]{top:50%}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.z-\[9999\]{z-index:9999}.col-span-2{grid-column:span 2/span 2}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.-mx-1\.5{margin-left:-.375rem;margin-right:-.375rem}.-my-1\.5{margin-top:-.375rem;margin-bottom:-.375rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-auto{margin-top:auto;margin-bottom:auto}.-mt-10{margin-top:-2.5rem}.-mt-5{margin-top:-1.25rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-0{margin-left:0}.ml-1{margin-left:.25rem}.ml-1\.5{margin-left:.375rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-6{margin-left:1.5rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-1\.5{margin-right:.375rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.mr-6{margin-right:1.5rem}.mt-0{margin-top:0}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1/1}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-20{height:5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-96{height:24rem}.h-\[calc\(100vh-56px\)\]{height:calc(100vh - 56px)}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-full{height:100%}.h-px{height:1px}.max-h-48{max-height:12rem}.max-h-96{max-height:24rem}.max-h-\[250px\]{max-height:250px}.max-h-\[80vh\]{max-height:80vh}.max-h-\[90vh\]{max-height:90vh}.min-h-\[80px\]{min-height:80px}.min-h-screen{min-height:100vh}.w-1\/2{width:50%}.w-1\/4{width:25%}.w-1\/6{width:16.666667%}.w-10{width:2.5rem}.w-12{width:3rem}.w-16{width:4rem}.w-2\/3{width:66.666667%}.w-20{width:5rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-36{width:9rem}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-auto{width:auto}.w-full{width:100%}.w-max{width:max-content}.min-w-5{min-width:1.25rem}.min-w-\[100px\]{min-width:100px}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.caption-bottom{caption-side:bottom}.-translate-x-full{--tw-translate-x:-100%}.-translate-x-full,.-translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%}.translate-x-0{--tw-translate-x:0px}.translate-x-0,.translate-x-1{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-1{--tw-translate-x:0.25rem}.translate-x-5{--tw-translate-x:1.25rem}.translate-x-5,.translate-x-\[-50\%\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[-50\%\]{--tw-translate-x:-50%}.translate-y-\[-50\%\]{--tw-translate-y:-50%}.transform,.translate-y-\[-50\%\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{user-select:none}.resize-none{resize:none}.resize{resize:both}.appearance-none{appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.content-center{align-content:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-x-4{column-gap:1rem}.gap-y-1{row-gap:.25rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(229 231 235/var(--tw-divide-opacity,1))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-l-lg{border-top-left-radius:var(--radius);border-bottom-left-radius:var(--radius)}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-dotted{border-style:dotted}.border-none{border-style:none}.border-amber-200{--tw-border-opacity:1;border-color:rgb(253 230 138/var(--tw-border-opacity,1))}.border-amber-300{--tw-border-opacity:1;border-color:rgb(252 211 77/var(--tw-border-opacity,1))}.border-blue-200{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}.border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.border-gray-100{--tw-border-opacity:1;border-color:rgb(243 244 246/var(--tw-border-opacity,1))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.border-gray-400{--tw-border-opacity:1;border-color:rgb(156 163 175/var(--tw-border-opacity,1))}.border-green-200{--tw-border-opacity:1;border-color:rgb(187 247 208/var(--tw-border-opacity,1))}.border-green-300{--tw-border-opacity:1;border-color:rgb(134 239 172/var(--tw-border-opacity,1))}.border-green-500{--tw-border-opacity:1;border-color:rgb(34 197 94/var(--tw-border-opacity,1))}.border-input{border-color:hsl(var(--input))}.border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.border-red-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.border-sky-200{--tw-border-opacity:1;border-color:rgb(186 230 253/var(--tw-border-opacity,1))}.border-sky-300{--tw-border-opacity:1;border-color:rgb(125 211 252/var(--tw-border-opacity,1))}.border-sky-500{--tw-border-opacity:1;border-color:rgb(14 165 233/var(--tw-border-opacity,1))}.border-sky-blue{--tw-border-opacity:1;border-color:rgb(14 46 101/var(--tw-border-opacity,1))}.border-transparent{border-color:transparent}.border-yellow-500{--tw-border-opacity:1;border-color:rgb(234 179 8/var(--tw-border-opacity,1))}.bg-\[\#f7f7f7\]{--tw-bg-opacity:1;background-color:rgb(247 247 247/var(--tw-bg-opacity,1))}.bg-amber-100{--tw-bg-opacity:1;background-color:rgb(254 243 199/var(--tw-bg-opacity,1))}.bg-amber-50{--tw-bg-opacity:1;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.bg-background{background-color:hsl(var(--background))}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.bg-black\/50{background-color:rgba(0,0,0,.5)}.bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.bg-card{background-color:hsl(var(--card))}.bg-cyan-50{--tw-bg-opacity:1;background-color:rgb(236 254 255/var(--tw-bg-opacity,1))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.bg-gray-300{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity,1))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.bg-gray-500{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))}.bg-gray-600{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.bg-green-600{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.bg-green-700{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.bg-indigo-50{--tw-bg-opacity:1;background-color:rgb(238 242 255/var(--tw-bg-opacity,1))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/50{background-color:hsl(var(--muted)/.5)}.bg-orange-50{--tw-bg-opacity:1;background-color:rgb(255 247 237/var(--tw-bg-opacity,1))}.bg-pink-50{--tw-bg-opacity:1;background-color:rgb(253 242 248/var(--tw-bg-opacity,1))}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-sky-100{--tw-bg-opacity:1;background-color:rgb(224 242 254/var(--tw-bg-opacity,1))}.bg-sky-50{--tw-bg-opacity:1;background-color:rgb(240 249 255/var(--tw-bg-opacity,1))}.bg-sky-600{--tw-bg-opacity:1;background-color:rgb(2 132 199/var(--tw-bg-opacity,1))}.bg-sky-blue{--tw-bg-opacity:1;background-color:rgb(14 46 101/var(--tw-bg-opacity,1))}.bg-sky-blue-bright{--tw-bg-opacity:1;background-color:rgb(30 98 204/var(--tw-bg-opacity,1))}.bg-slate-100{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-white\/50{background-color:hsla(0,0%,100%,.5)}.bg-yellow-100{--tw-bg-opacity:1;background-color:rgb(254 249 195/var(--tw-bg-opacity,1))}.bg-yellow-50{--tw-bg-opacity:1;background-color:rgb(254 252 232/var(--tw-bg-opacity,1))}.bg-yellow-500{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))}.object-contain{object-fit:contain}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-32{padding-top:8rem;padding-bottom:8rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-1{padding-bottom:.25rem}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-6{padding-bottom:1.5rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-7{padding-left:1.75rem}.pl-8{padding-left:2rem}.pr-10{padding-right:2.5rem}.pr-2{padding-right:.5rem}.pr-3{padding-right:.75rem}.pr-6{padding-right:1.5rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.tracking-tight{letter-spacing:-.025em}.tracking-wider{letter-spacing:.05em}.text-\[hsl\(var\(--text-strong\)\)\]{color:hsl(var(--text-strong))}.text-amber-600{--tw-text-opacity:1;color:rgb(217 119 6/var(--tw-text-opacity,1))}.text-amber-700{--tw-text-opacity:1;color:rgb(180 83 9/var(--tw-text-opacity,1))}.text-amber-800{--tw-text-opacity:1;color:rgb(146 64 14/var(--tw-text-opacity,1))}.text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-cyan-700{--tw-text-opacity:1;color:rgb(14 116 144/var(--tw-text-opacity,1))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.text-green-900{--tw-text-opacity:1;color:rgb(20 83 45/var(--tw-text-opacity,1))}.text-indigo-700{--tw-text-opacity:1;color:rgb(67 56 202/var(--tw-text-opacity,1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-orange-700{--tw-text-opacity:1;color:rgb(194 65 12/var(--tw-text-opacity,1))}.text-pink-700{--tw-text-opacity:1;color:rgb(190 24 93/var(--tw-text-opacity,1))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-purple-700{--tw-text-opacity:1;color:rgb(126 34 206/var(--tw-text-opacity,1))}.text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-sky-600{--tw-text-opacity:1;color:rgb(2 132 199/var(--tw-text-opacity,1))}.text-sky-700{--tw-text-opacity:1;color:rgb(3 105 161/var(--tw-text-opacity,1))}.text-sky-blue{--tw-text-opacity:1;color:rgb(14 46 101/var(--tw-text-opacity,1))}.text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.text-slate-950{--tw-text-opacity:1;color:rgb(2 6 23/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-yellow-700{--tw-text-opacity:1;color:rgb(161 98 7/var(--tw-text-opacity,1))}.text-yellow-800{--tw-text-opacity:1;color:rgb(133 77 14/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-md,.shadow-none{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-offset-background{--tw-ring-offset-color:hsl(var(--background))}.ring-offset-white{--tw-ring-offset-color:#fff}.blur{--tw-blur:blur(8px)}.blur,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-150,.transition-transform{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.duration-150{animation-duration:.15s}.duration-200{animation-duration:.2s}.duration-300{animation-duration:.3s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.running{animation-play-state:running}.sortable{cursor:pointer;user-select:none}.sortable:hover{text-decoration:underline}.container{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:20px}.chart{border:1px solid #ccc;padding:10px;border-radius:5px;background-color:#fff;box-shadow:0 2px 10px rgba(0,0,0,.1);max-height:400px;overflow:auto}.flip-card-container{display:flex;flex-wrap:wrap;gap:20px;justify-content:center}.flip-card-back,.flip-card-front{width:300px;height:350px;border:1px solid #ccc;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fff;border-radius:10px;box-shadow:0 4px 8px rgba(0,0,0,.1)}.flip-card-back{padding:20px;text-align:center}.home-card{display:flex;flex-direction:column;justify-content:space-between;flex:1 1 0;height:100%}.home-cloud-card{background-color:#f0fff0}.chartContainer{width:200px;height:200px}.tableCellWidth{width:210px!important}.tableCellWidth-sm{width:10px!important}.items-center h3.text-xl.font-semibold.mb-4:first-of-type{font-size:0;margin-bottom:1rem}.items-center h3.text-xl.font-semibold.mb-4:first-of-type:after{content:"";font-size:1.25rem}.file\:mr-2::file-selector-button{margin-right:.5rem}.file\:cursor-pointer::file-selector-button{cursor:pointer}.file\:rounded::file-selector-button{border-radius:.25rem}.file\:border::file-selector-button{border-width:1px}.file\:border-0::file-selector-button{border-width:0}.file\:border-gray-300::file-selector-button{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.file\:bg-gray-50::file-selector-button{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:px-3::file-selector-button{padding-left:.75rem;padding-right:.75rem}.file\:py-1::file-selector-button{padding-top:.25rem;padding-bottom:.25rem}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.placeholder\:text-gray-500::placeholder{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.last\:border-b-0:last-child{border-bottom-width:0}.hover\:border-sky-400:hover{--tw-border-opacity:1;border-color:rgb(56 189 248/var(--tw-border-opacity,1))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-blue-200:hover{--tw-bg-opacity:1;background-color:rgb(191 219 254/var(--tw-bg-opacity,1))}.hover\:bg-blue-600:hover{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.hover\:bg-blue-700:hover{--tw-bg-opacity:1;background-color:rgb(29 78 216/var(--tw-bg-opacity,1))}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive)/.9)}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.hover\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.hover\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.hover\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.hover\:bg-green-100:hover{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.hover\:bg-green-200:hover{--tw-bg-opacity:1;background-color:rgb(187 247 208/var(--tw-bg-opacity,1))}.hover\:bg-green-700:hover{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted)/.5)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary)/.9)}.hover\:bg-red-50:hover{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.hover\:bg-red-700:hover{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary)/.8)}.hover\:bg-sky-50:hover{--tw-bg-opacity:1;background-color:rgb(240 249 255/var(--tw-bg-opacity,1))}.hover\:bg-sky-700:hover{--tw-bg-opacity:1;background-color:rgb(3 105 161/var(--tw-bg-opacity,1))}.hover\:bg-sky-blue:hover{--tw-bg-opacity:1;background-color:rgb(14 46 101/var(--tw-bg-opacity,1))}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-blue-600:hover{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.hover\:text-blue-700:hover{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.hover\:text-blue-800:hover{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.hover\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.hover\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.hover\:text-gray-900:hover{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.hover\:text-green-700:hover{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.hover\:text-green-800:hover{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.hover\:text-purple-700:hover{--tw-text-opacity:1;color:rgb(126 34 206/var(--tw-text-opacity,1))}.hover\:text-red-600:hover{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.hover\:text-red-700:hover{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.hover\:text-red-800:hover{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.hover\:text-sky-blue-bright:hover{--tw-text-opacity:1;color:rgb(30 98 204/var(--tw-text-opacity,1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:ring-2:hover{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.hover\:ring-blue-200:hover{--tw-ring-opacity:1;--tw-ring-color:rgb(191 219 254/var(--tw-ring-opacity,1))}.hover\:file\:bg-gray-100::file-selector-button:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.focus\:border-sky-500:focus{--tw-border-opacity:1;border-color:rgb(14 165 233/var(--tw-border-opacity,1))}.focus\:border-sky-blue:focus{--tw-border-opacity:1;border-color:rgb(14 46 101/var(--tw-border-opacity,1))}.focus\:border-transparent:focus{border-color:transparent}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-0:focus,.focus\:ring-1:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-1:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-blue-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.focus\:ring-gray-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(156 163 175/var(--tw-ring-opacity,1))}.focus\:ring-green-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(22 163 74/var(--tw-ring-opacity,1))}.focus\:ring-red-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(239 68 68/var(--tw-ring-opacity,1))}.focus\:ring-ring:focus{--tw-ring-color:hsl(var(--ring))}.focus\:ring-sky-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(14 165 233/var(--tw-ring-opacity,1))}.focus\:ring-sky-blue:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(14 46 101/var(--tw-ring-opacity,1))}.focus\:ring-offset-0:focus{--tw-ring-offset-width:0px}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.focus\:ring-offset-green-50:focus{--tw-ring-offset-color:#f0fdf4}.focus\:ring-offset-red-50:focus{--tw-ring-offset-color:#fef2f2}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.focus-visible\:ring-slate-400:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgb(148 163 184/var(--tw-ring-opacity,1))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-gray-300:disabled{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity,1))}.disabled\:text-gray-500:disabled{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:hover\:bg-transparent:hover:disabled{background-color:transparent}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:0.25rem}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom],.data-\[side\=left\]\:-translate-x-1[data-side=left]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:-0.25rem}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:0.25rem}.data-\[side\=right\]\:translate-x-1[data-side=right],.data-\[side\=top\]\:-translate-y-1[data-side=top]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:-0.25rem}.data-\[state\=active\]\:bg-white[data-state=active]{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.data-\[state\=open\]\:bg-gray-100[data-state=open]{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:hsl(var(--muted))}.data-\[state\=active\]\:text-slate-950[data-state=active]{--tw-text-opacity:1;color:rgb(2 6 23/var(--tw-text-opacity,1))}.data-\[state\=open\]\:text-gray-500[data-state=open]{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.data-\[state\=open\]\:animate-in[data-state=open]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:-0.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:0.5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:-0.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:0.5rem}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x:-50%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y:-48%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x:-50%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y:-48%}.dark\:bg-slate-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.dark\:bg-slate-950:is(.dark *){--tw-bg-opacity:1;background-color:rgb(2 6 23/var(--tw-bg-opacity,1))}.dark\:text-slate-400:is(.dark *){--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.dark\:text-slate-50:is(.dark *){--tw-text-opacity:1;color:rgb(248 250 252/var(--tw-text-opacity,1))}.dark\:ring-offset-slate-950:is(.dark *){--tw-ring-offset-color:#020617}.dark\:focus-visible\:ring-slate-800:focus-visible:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(30 41 59/var(--tw-ring-opacity,1))}.dark\:data-\[state\=active\]\:bg-slate-950[data-state=active]:is(.dark *){--tw-bg-opacity:1;background-color:rgb(2 6 23/var(--tw-bg-opacity,1))}.dark\:data-\[state\=active\]\:text-slate-50[data-state=active]:is(.dark *){--tw-text-opacity:1;color:rgb(248 250 252/var(--tw-text-opacity,1))}@media (min-width:640px){.sm\:table-cell{display:table-cell}.sm\:w-96{width:24rem}.sm\:max-w-2xl{max-width:42rem}.sm\:max-w-3xl{max-width:48rem}.sm\:max-w-4xl{max-width:56rem}.sm\:max-w-lg{max-width:32rem}.sm\:max-w-md{max-width:28rem}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-end{justify-content:flex-end}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:text-left{text-align:left}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}}@media (min-width:768px){.md\:table-cell{display:table-cell}.md\:max-w-lg{max-width:32rem}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}}@media (min-width:1024px){.lg\:col-span-1{grid-column:span 1/span 1}.lg\:col-span-2{grid-column:span 2/span 2}.lg\:col-span-3{grid-column:span 3/span 3}.lg\:table-cell{display:table-cell}.lg\:max-w-xl{max-width:36rem}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:1280px){.xl\:table-cell{display:table-cell}.xl\:max-w-2xl{max-width:42rem}}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\>span\]\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0}.\[\&_tr\]\:border-b tr{border-bottom-width:1px}
@@ -1 +1 @@
1
- self.__BUILD_MANIFEST=function(s,c,a,e,t,f,u,n,r,b,i,j,d,k,o){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},"/":["static/chunks/pages/index-927ddeebe57a8ac3.js"],"/_error":["static/chunks/pages/_error-c72a1f77a3c0be1b.js"],"/clusters":["static/chunks/pages/clusters-9744c271a1642f76.js"],"/clusters/[cluster]":[s,c,a,e,t,r,i,f,u,n,j,b,d,k,o,"static/chunks/1871-80dea41717729fa5.js","static/chunks/pages/clusters/[cluster]-1159f362b960e2b8.js"],"/clusters/[cluster]/[job]":[s,c,a,e,t,f,u,n,"static/chunks/pages/clusters/[cluster]/[job]-8135aba0712bda37.js"],"/config":["static/chunks/pages/config-a2673b256b6d416f.js"],"/infra":["static/chunks/pages/infra-ae9d2f705ce582c9.js"],"/infra/[context]":["static/chunks/pages/infra/[context]-8b0809f59034d509.js"],"/jobs":["static/chunks/pages/jobs-5bbdc71878f0a068.js"],"/jobs/[job]":[s,c,a,e,t,r,f,u,n,b,"static/chunks/pages/jobs/[job]-c4d5cfac7fbc0668.js"],"/users":["static/chunks/pages/users-cd43fb3c122eedde.js"],"/volumes":["static/chunks/pages/volumes-4ebf6484f7216387.js"],"/workspace/new":["static/chunks/pages/workspace/new-5629d4e551dba1ee.js"],"/workspaces":["static/chunks/pages/workspaces-06bde99155fa6292.js"],"/workspaces/[name]":[s,c,a,e,t,r,i,f,u,n,j,b,d,k,o,"static/chunks/1141-726e5a3f00b67185.js","static/chunks/pages/workspaces/[name]-7c0187f43757a548.js"],sortedPages:["/","/_app","/_error","/clusters","/clusters/[cluster]","/clusters/[cluster]/[job]","/config","/infra","/infra/[context]","/jobs","/jobs/[job]","/users","/volumes","/workspace/new","/workspaces","/workspaces/[name]"]}}("static/chunks/616-162f3033ffcd3d31.js","static/chunks/5230-df791914b54d91d9.js","static/chunks/5739-5ea3ffa10fc884f2.js","static/chunks/1664-d65361e92b85e786.js","static/chunks/804-9f5e98ce84d46bdd.js","static/chunks/6989-6ff4e45dfb49d11d.js","static/chunks/3698-52ad1ca228faa776.js","static/chunks/9470-21d059a1dfa03f61.js","static/chunks/1272-1ef0bf0237faccdb.js","static/chunks/8969-909d53833da080cb.js","static/chunks/3947-b059261d6fa88a1f.js","static/chunks/6990-d0dc765474fa0eca.js","static/chunks/1043-1b39779691bb4030.js","static/chunks/6601-fcfad0ddf92ec7ab.js","static/chunks/938-044ad21de8b4626b.js"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
1
+ self.__BUILD_MANIFEST=function(s,c,a,e,t,f,u,n,b,r,i,d,j,k,o){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},"/":["static/chunks/pages/index-927ddeebe57a8ac3.js"],"/_error":["static/chunks/pages/_error-c72a1f77a3c0be1b.js"],"/clusters":["static/chunks/pages/clusters-102d169e87913ba1.js"],"/clusters/[cluster]":[s,c,a,e,t,b,i,f,u,n,d,r,j,k,o,"static/chunks/1871-3a0f047988be65cd.js","static/chunks/pages/clusters/[cluster]-0fbfb1dd0b08c90c.js"],"/clusters/[cluster]/[job]":[s,c,a,e,t,f,u,n,"static/chunks/pages/clusters/[cluster]/[job]-8135aba0712bda37.js"],"/config":["static/chunks/pages/config-a2673b256b6d416f.js"],"/infra":["static/chunks/pages/infra-ae9d2f705ce582c9.js"],"/infra/[context]":["static/chunks/pages/infra/[context]-8b0809f59034d509.js"],"/jobs":["static/chunks/pages/jobs-5bbdc71878f0a068.js"],"/jobs/[job]":[s,c,a,e,t,b,f,u,n,r,"static/chunks/pages/jobs/[job]-c4d5cfac7fbc0668.js"],"/users":["static/chunks/pages/users-cd43fb3c122eedde.js"],"/volumes":["static/chunks/pages/volumes-4ebf6484f7216387.js"],"/workspace/new":["static/chunks/pages/workspace/new-5629d4e551dba1ee.js"],"/workspaces":["static/chunks/pages/workspaces-06bde99155fa6292.js"],"/workspaces/[name]":[s,c,a,e,t,b,i,f,u,n,d,r,j,k,o,"static/chunks/1141-726e5a3f00b67185.js","static/chunks/pages/workspaces/[name]-7c0187f43757a548.js"],sortedPages:["/","/_app","/_error","/clusters","/clusters/[cluster]","/clusters/[cluster]/[job]","/config","/infra","/infra/[context]","/jobs","/jobs/[job]","/users","/volumes","/workspace/new","/workspaces","/workspaces/[name]"]}}("static/chunks/616-162f3033ffcd3d31.js","static/chunks/5230-df791914b54d91d9.js","static/chunks/5739-5ea3ffa10fc884f2.js","static/chunks/1664-d65361e92b85e786.js","static/chunks/804-9f5e98ce84d46bdd.js","static/chunks/6989-6ff4e45dfb49d11d.js","static/chunks/3698-52ad1ca228faa776.js","static/chunks/9470-21d059a1dfa03f61.js","static/chunks/1272-1ef0bf0237faccdb.js","static/chunks/8969-13bb52ce3cffa4e3.js","static/chunks/3947-b059261d6fa88a1f.js","static/chunks/6990-d0dc765474fa0eca.js","static/chunks/1043-1b39779691bb4030.js","static/chunks/6601-fcfad0ddf92ec7ab.js","static/chunks/938-044ad21de8b4626b.js"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
@@ -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/0da6afe66176678a.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/0da6afe66176678a.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-9a81ea998672c303.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-a37b06ddb64521fd.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-162f3033ffcd3d31.js" defer=""></script><script src="/dashboard/_next/static/chunks/5230-df791914b54d91d9.js" defer=""></script><script src="/dashboard/_next/static/chunks/5739-5ea3ffa10fc884f2.js" defer=""></script><script src="/dashboard/_next/static/chunks/1664-d65361e92b85e786.js" defer=""></script><script src="/dashboard/_next/static/chunks/804-9f5e98ce84d46bdd.js" defer=""></script><script src="/dashboard/_next/static/chunks/6989-6ff4e45dfb49d11d.js" defer=""></script><script src="/dashboard/_next/static/chunks/3698-52ad1ca228faa776.js" defer=""></script><script src="/dashboard/_next/static/chunks/9470-21d059a1dfa03f61.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters/%5Bcluster%5D/%5Bjob%5D-8135aba0712bda37.js" defer=""></script><script src="/dashboard/_next/static/EqELoF4IXcALfWVihInou/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/EqELoF4IXcALfWVihInou/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters/[cluster]/[job]","query":{},"buildId":"EqELoF4IXcALfWVihInou","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"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/6cbd41a88d2e9e1c.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/6cbd41a88d2e9e1c.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-60070a62f55486a6.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-e6e82dc8abb50c4f.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-162f3033ffcd3d31.js" defer=""></script><script src="/dashboard/_next/static/chunks/5230-df791914b54d91d9.js" defer=""></script><script src="/dashboard/_next/static/chunks/5739-5ea3ffa10fc884f2.js" defer=""></script><script src="/dashboard/_next/static/chunks/1664-d65361e92b85e786.js" defer=""></script><script src="/dashboard/_next/static/chunks/804-9f5e98ce84d46bdd.js" defer=""></script><script src="/dashboard/_next/static/chunks/6989-6ff4e45dfb49d11d.js" defer=""></script><script src="/dashboard/_next/static/chunks/3698-52ad1ca228faa776.js" defer=""></script><script src="/dashboard/_next/static/chunks/9470-21d059a1dfa03f61.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters/%5Bcluster%5D/%5Bjob%5D-8135aba0712bda37.js" defer=""></script><script src="/dashboard/_next/static/ldZFQWCiYX_vZnIfB_o8S/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/ldZFQWCiYX_vZnIfB_o8S/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters/[cluster]/[job]","query":{},"buildId":"ldZFQWCiYX_vZnIfB_o8S","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -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/0da6afe66176678a.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/0da6afe66176678a.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-9a81ea998672c303.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-a37b06ddb64521fd.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-162f3033ffcd3d31.js" defer=""></script><script src="/dashboard/_next/static/chunks/5230-df791914b54d91d9.js" defer=""></script><script src="/dashboard/_next/static/chunks/5739-5ea3ffa10fc884f2.js" defer=""></script><script src="/dashboard/_next/static/chunks/1664-d65361e92b85e786.js" defer=""></script><script src="/dashboard/_next/static/chunks/804-9f5e98ce84d46bdd.js" defer=""></script><script src="/dashboard/_next/static/chunks/1272-1ef0bf0237faccdb.js" defer=""></script><script src="/dashboard/_next/static/chunks/3947-b059261d6fa88a1f.js" defer=""></script><script src="/dashboard/_next/static/chunks/6989-6ff4e45dfb49d11d.js" defer=""></script><script src="/dashboard/_next/static/chunks/3698-52ad1ca228faa776.js" defer=""></script><script src="/dashboard/_next/static/chunks/9470-21d059a1dfa03f61.js" defer=""></script><script src="/dashboard/_next/static/chunks/6990-d0dc765474fa0eca.js" defer=""></script><script src="/dashboard/_next/static/chunks/8969-909d53833da080cb.js" defer=""></script><script src="/dashboard/_next/static/chunks/1043-1b39779691bb4030.js" defer=""></script><script src="/dashboard/_next/static/chunks/6601-fcfad0ddf92ec7ab.js" defer=""></script><script src="/dashboard/_next/static/chunks/938-044ad21de8b4626b.js" defer=""></script><script src="/dashboard/_next/static/chunks/1871-80dea41717729fa5.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters/%5Bcluster%5D-1159f362b960e2b8.js" defer=""></script><script src="/dashboard/_next/static/EqELoF4IXcALfWVihInou/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/EqELoF4IXcALfWVihInou/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters/[cluster]","query":{},"buildId":"EqELoF4IXcALfWVihInou","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"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/6cbd41a88d2e9e1c.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/6cbd41a88d2e9e1c.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-60070a62f55486a6.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-e6e82dc8abb50c4f.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-162f3033ffcd3d31.js" defer=""></script><script src="/dashboard/_next/static/chunks/5230-df791914b54d91d9.js" defer=""></script><script src="/dashboard/_next/static/chunks/5739-5ea3ffa10fc884f2.js" defer=""></script><script src="/dashboard/_next/static/chunks/1664-d65361e92b85e786.js" defer=""></script><script src="/dashboard/_next/static/chunks/804-9f5e98ce84d46bdd.js" defer=""></script><script src="/dashboard/_next/static/chunks/1272-1ef0bf0237faccdb.js" defer=""></script><script src="/dashboard/_next/static/chunks/3947-b059261d6fa88a1f.js" defer=""></script><script src="/dashboard/_next/static/chunks/6989-6ff4e45dfb49d11d.js" defer=""></script><script src="/dashboard/_next/static/chunks/3698-52ad1ca228faa776.js" defer=""></script><script src="/dashboard/_next/static/chunks/9470-21d059a1dfa03f61.js" defer=""></script><script src="/dashboard/_next/static/chunks/6990-d0dc765474fa0eca.js" defer=""></script><script src="/dashboard/_next/static/chunks/8969-13bb52ce3cffa4e3.js" defer=""></script><script src="/dashboard/_next/static/chunks/1043-1b39779691bb4030.js" defer=""></script><script src="/dashboard/_next/static/chunks/6601-fcfad0ddf92ec7ab.js" defer=""></script><script src="/dashboard/_next/static/chunks/938-044ad21de8b4626b.js" defer=""></script><script src="/dashboard/_next/static/chunks/1871-3a0f047988be65cd.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters/%5Bcluster%5D-0fbfb1dd0b08c90c.js" defer=""></script><script src="/dashboard/_next/static/ldZFQWCiYX_vZnIfB_o8S/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/ldZFQWCiYX_vZnIfB_o8S/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters/[cluster]","query":{},"buildId":"ldZFQWCiYX_vZnIfB_o8S","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>