skypilot-nightly 1.0.0.dev20250510__py3-none-any.whl → 1.0.0.dev20250514__py3-none-any.whl

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 (35) hide show
  1. sky/__init__.py +2 -2
  2. sky/backends/cloud_vm_ray_backend.py +22 -3
  3. sky/cli.py +109 -109
  4. sky/client/cli.py +109 -109
  5. sky/clouds/gcp.py +59 -16
  6. sky/clouds/service_catalog/data_fetchers/fetch_gcp.py +33 -11
  7. sky/clouds/service_catalog/gcp_catalog.py +7 -1
  8. sky/dashboard/out/404.html +1 -1
  9. sky/dashboard/out/_next/static/chunks/845-0ca6f2c1ba667c3b.js +1 -0
  10. sky/dashboard/out/_next/static/{C0fkLhvxyqkymoV7IeInQ → tdxxQrPV6NW90a983oHXe}/_buildManifest.js +1 -1
  11. sky/dashboard/out/clusters/[cluster]/[job].html +1 -1
  12. sky/dashboard/out/clusters/[cluster].html +1 -1
  13. sky/dashboard/out/clusters.html +1 -1
  14. sky/dashboard/out/index.html +1 -1
  15. sky/dashboard/out/jobs/[job].html +1 -1
  16. sky/dashboard/out/jobs.html +1 -1
  17. sky/provision/docker_utils.py +4 -1
  18. sky/provision/gcp/config.py +197 -15
  19. sky/provision/gcp/constants.py +64 -0
  20. sky/provision/nebius/instance.py +3 -1
  21. sky/provision/nebius/utils.py +4 -2
  22. sky/resources.py +4 -0
  23. sky/skylet/constants.py +3 -0
  24. sky/templates/gcp-ray.yml.j2 +11 -0
  25. sky/templates/nebius-ray.yml.j2 +7 -1
  26. sky/templates/websocket_proxy.py +29 -9
  27. sky/utils/schemas.py +9 -1
  28. {skypilot_nightly-1.0.0.dev20250510.dist-info → skypilot_nightly-1.0.0.dev20250514.dist-info}/METADATA +1 -1
  29. {skypilot_nightly-1.0.0.dev20250510.dist-info → skypilot_nightly-1.0.0.dev20250514.dist-info}/RECORD +34 -34
  30. sky/dashboard/out/_next/static/chunks/845-0f8017370869e269.js +0 -1
  31. /sky/dashboard/out/_next/static/{C0fkLhvxyqkymoV7IeInQ → tdxxQrPV6NW90a983oHXe}/_ssgManifest.js +0 -0
  32. {skypilot_nightly-1.0.0.dev20250510.dist-info → skypilot_nightly-1.0.0.dev20250514.dist-info}/WHEEL +0 -0
  33. {skypilot_nightly-1.0.0.dev20250510.dist-info → skypilot_nightly-1.0.0.dev20250514.dist-info}/entry_points.txt +0 -0
  34. {skypilot_nightly-1.0.0.dev20250510.dist-info → skypilot_nightly-1.0.0.dev20250514.dist-info}/licenses/LICENSE +0 -0
  35. {skypilot_nightly-1.0.0.dev20250510.dist-info → skypilot_nightly-1.0.0.dev20250514.dist-info}/top_level.txt +0 -0
@@ -9,6 +9,7 @@ provider:
9
9
  type: external
10
10
  module: sky.provision.nebius
11
11
  region: "{{region}}"
12
+ use_internal_ips: {{use_internal_ips}}
12
13
 
13
14
  {%- if docker_image is not none %}
14
15
  docker:
@@ -34,6 +35,9 @@ docker:
34
35
  auth:
35
36
  ssh_user: ubuntu
36
37
  ssh_private_key: {{ssh_private_key}}
38
+ {% if ssh_proxy_command is not none %}
39
+ ssh_proxy_command: {{ssh_proxy_command}}
40
+ {% endif %}
37
41
 
38
42
  available_node_types:
39
43
  ray_head_default:
@@ -101,6 +105,7 @@ file_mounts: {
101
105
  "{{sky_remote_path}}/{{sky_wheel_hash}}": "{{sky_local_path}}",
102
106
  {%- for remote_path, local_path in credentials.items() %}
103
107
  "{{remote_path}}": "{{local_path}}",
108
+ "~/.ssh/sky-cluster-key": "{{ssh_private_key}}",
104
109
  {%- endfor %}
105
110
  }
106
111
 
@@ -116,6 +121,7 @@ initialization_commands: []
116
121
  # Increment the following for catching performance bugs easier:
117
122
  # current num items (num SSH connections): 1
118
123
  setup_commands:
124
+ # Add ~/.ssh/sky-cluster-key to SSH config to allow nodes within a cluster to connect to each other
119
125
  # Disable `unattended-upgrades` to prevent apt-get from hanging. It should be called at the beginning before the process started to avoid being blocked. (This is a temporary fix.)
120
126
  # Create ~/.ssh/config file in case the file does not exist in the image.
121
127
  # Line 'rm ..': there is another installation of pip.
@@ -138,6 +144,6 @@ setup_commands:
138
144
  {{ ray_skypilot_installation_commands }}
139
145
  sudo bash -c 'rm -rf /etc/security/limits.d; echo "* soft nofile 1048576" >> /etc/security/limits.conf; echo "* hard nofile 1048576" >> /etc/security/limits.conf';
140
146
  sudo grep -e '^DefaultTasksMax' /etc/systemd/system.conf || (sudo bash -c 'echo "DefaultTasksMax=infinity" >> /etc/systemd/system.conf'); sudo systemctl set-property user-$(id -u $(whoami)).slice TasksMax=infinity; sudo systemctl daemon-reload;
141
- mkdir -p ~/.ssh; (grep -Pzo -q "Host \*\n StrictHostKeyChecking no" ~/.ssh/config) || printf "Host *\n StrictHostKeyChecking no\n" >> ~/.ssh/config;
147
+ mkdir -p ~/.ssh; (grep -Pzo -q "Host \*\n StrictHostKeyChecking no\n IdentityFile ~/.ssh/sky-cluster-key\n IdentityFile ~/.ssh/id_rsa" ~/.ssh/config) || printf "Host *\n StrictHostKeyChecking no\n IdentityFile ~/.ssh/sky-cluster-key\n IdentityFile ~/.ssh/id_rsa\n" >> ~/.ssh/config;
142
148
  [ -f /etc/fuse.conf ] && sudo sed -i 's/#user_allow_other/user_allow_other/g' /etc/fuse.conf || (sudo sh -c 'echo "user_allow_other" > /etc/fuse.conf');
143
149
  {{ ssh_max_sessions_config }}
@@ -16,8 +16,11 @@ from typing import Dict
16
16
  from urllib.request import Request
17
17
 
18
18
  import websockets
19
+ from websockets.asyncio.client import ClientConnection
19
20
  from websockets.asyncio.client import connect
20
21
 
22
+ BUFFER_SIZE = 2**16 # 64KB
23
+
21
24
 
22
25
  def _get_cookie_header(url: str) -> Dict[str, str]:
23
26
  """Extract Cookie header value from a cookie jar for a specific URL"""
@@ -51,19 +54,36 @@ async def main(url: str) -> None:
51
54
  old_settings = None
52
55
 
53
56
  try:
54
- await asyncio.gather(stdin_to_websocket(websocket),
55
- websocket_to_stdout(websocket))
57
+ loop = asyncio.get_running_loop()
58
+ # Use asyncio.Stream primitives to wrap stdin and stdout, this is to
59
+ # avoid creating a new thread for each read/write operation
60
+ # excessively.
61
+ stdin_reader = asyncio.StreamReader()
62
+ protocol = asyncio.StreamReaderProtocol(stdin_reader)
63
+ await loop.connect_read_pipe(lambda: protocol, sys.stdin)
64
+ transport, protocol = await loop.connect_write_pipe(
65
+ asyncio.streams.FlowControlMixin, sys.stdout) # type: ignore
66
+ stdout_writer = asyncio.StreamWriter(transport, protocol, None,
67
+ loop)
68
+
69
+ await asyncio.gather(stdin_to_websocket(stdin_reader, websocket),
70
+ websocket_to_stdout(websocket, stdout_writer))
56
71
  finally:
57
72
  if old_settings:
58
73
  termios.tcsetattr(sys.stdin.fileno(), termios.TCSADRAIN,
59
74
  old_settings)
60
75
 
61
76
 
62
- async def stdin_to_websocket(websocket):
77
+ async def stdin_to_websocket(reader: asyncio.StreamReader,
78
+ websocket: ClientConnection):
63
79
  try:
64
80
  while True:
65
- data = await asyncio.get_event_loop().run_in_executor(
66
- None, sys.stdin.buffer.read, 1)
81
+ # Read at most BUFFER_SIZE bytes, this not affect
82
+ # responsiveness since it will return as soon as
83
+ # there is at least one byte.
84
+ # The BUFFER_SIZE is chosen to be large enough to improve
85
+ # throughput.
86
+ data = await reader.read(BUFFER_SIZE)
67
87
  if not data:
68
88
  break
69
89
  await websocket.send(data)
@@ -73,13 +93,13 @@ async def stdin_to_websocket(websocket):
73
93
  await websocket.close()
74
94
 
75
95
 
76
- async def websocket_to_stdout(websocket):
96
+ async def websocket_to_stdout(websocket: ClientConnection,
97
+ writer: asyncio.StreamWriter):
77
98
  try:
78
99
  while True:
79
100
  message = await websocket.recv()
80
- sys.stdout.buffer.write(message)
81
- await asyncio.get_event_loop().run_in_executor(
82
- None, sys.stdout.buffer.flush)
101
+ writer.write(message)
102
+ await writer.drain()
83
103
  except websockets.exceptions.ConnectionClosed:
84
104
  print('WebSocket connection closed', file=sys.stderr)
85
105
  except Exception as e: # pylint: disable=broad-except
sky/utils/schemas.py CHANGED
@@ -837,6 +837,12 @@ def get_config_schema():
837
837
  'enable_gvnic': {
838
838
  'type': 'boolean'
839
839
  },
840
+ 'enable_gpu_direct': {
841
+ 'type': 'boolean'
842
+ },
843
+ 'placement_policy': {
844
+ 'type': 'string',
845
+ },
840
846
  'vpc_name': {
841
847
  'oneOf': [
842
848
  {
@@ -966,7 +972,9 @@ def get_config_schema():
966
972
  'nebius': {
967
973
  'type': 'object',
968
974
  'required': [],
969
- 'properties': {},
975
+ 'properties': {
976
+ **_NETWORK_CONFIG_SCHEMA,
977
+ },
970
978
  'additionalProperties': {
971
979
  'type': 'object',
972
980
  'required': [],
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: skypilot-nightly
3
- Version: 1.0.0.dev20250510
3
+ Version: 1.0.0.dev20250514
4
4
  Summary: SkyPilot: Run AI on Any Infra — Unified, Faster, Cheaper.
5
5
  Author: SkyPilot Team
6
6
  License: Apache 2.0
@@ -1,8 +1,8 @@
1
- sky/__init__.py,sha256=kiYTt-5CKhaeGBGmmgNg0Qz6jRl8qKVJPrTHccPXN6U,6428
1
+ sky/__init__.py,sha256=ay-KHIkQI1h4Tqmd1-FcAX47sxW7wo3auNDnzRv5J0M,6428
2
2
  sky/admin_policy.py,sha256=hPo02f_A32gCqhUueF0QYy1fMSSKqRwYEg_9FxScN_s,3248
3
3
  sky/authentication.py,sha256=ND011K_-Ud1dVZF37A9KrwYir_ihJXcHc7iDWmuBc8Q,22872
4
4
  sky/check.py,sha256=AOc2t7n7mFYxlwtGNP98xIpy0azjLFewajwRJrxPV5E,16546
5
- sky/cli.py,sha256=_lCbPP2MDS1r5drdHSh7MIIwnsh08-SivUFzDoNqEi4,233657
5
+ sky/cli.py,sha256=oLdFcZ8_jGp7n1M9xQFoHCmgrouG_MHK5h2kuKu-1AU,232909
6
6
  sky/cloud_stores.py,sha256=Ln5GBpel-sEs7rVx7bBrMkfLwA_bctI05Rox2uoz7Lo,26388
7
7
  sky/core.py,sha256=vIVBnsK3KUh2rH0bya6VnGihm1_GWC1440AbYPHbwLA,49157
8
8
  sky/dag.py,sha256=8x-VMtjvSi0lYBemCMPLYq5ONljhoABjWzMKjmmdjSo,3369
@@ -11,7 +11,7 @@ sky/execution.py,sha256=b3mdvP1K7hx-JIWaqbBcs5FVo4ZLGwd7XJ3J1Vi7ZnE,29529
11
11
  sky/global_user_state.py,sha256=ZG72TlGWIqBSFF-MroWf9-pqycAZAvBrKE4Paf0KUGs,33832
12
12
  sky/models.py,sha256=bGMSATMkSMr_Kp6SCoiJVVeebwSdZuzjw_jrJzVWAAc,1603
13
13
  sky/optimizer.py,sha256=VzfNH-Idp9Kcsu4HOiTrY4IDRoowTUc8orCSvDAsFqg,59672
14
- sky/resources.py,sha256=B6xe7k_mpXt5rkq_yoHt2SUIKKWZ3XvEuk8FoVjLvTw,74688
14
+ sky/resources.py,sha256=omGLFJbRmSRsf3CGVdDr5gLf5VcsPblHZyRH1RradnA,74823
15
15
  sky/sky_logging.py,sha256=Nmc29vvg-GgKRZcajNrGlkuCIFxrVqefdXTPiS7Y-9o,5914
16
16
  sky/skypilot_config.py,sha256=kQUpx0QwMM0NiQO9qoMhsALDlJCPCQKchqZ1WyjXW8c,21188
17
17
  sky/task.py,sha256=S_UmRG6jMw9-6nR_s8Cxf12J1mAdH_dmcZS9wOPn4m8,57021
@@ -34,7 +34,7 @@ sky/adaptors/vsphere.py,sha256=zJP9SeObEoLrpgHW2VHvZE48EhgVf8GfAEIwBeaDMfM,2129
34
34
  sky/backends/__init__.py,sha256=UDjwbUgpTRApbPJnNfR786GadUuwgRk3vsWoVu5RB_c,536
35
35
  sky/backends/backend.py,sha256=wrVNzPkxDjHVAh46-iejBNe0nqx4DB6-Awtaqx5j2zs,7723
36
36
  sky/backends/backend_utils.py,sha256=PKGvPneDv5ACRfHySVfIew8iCTLGf1MSPVUq3TL2gEg,137515
37
- sky/backends/cloud_vm_ray_backend.py,sha256=CwiiFUxOKFrET5pF8B2AkQvMNqJSNhrZcI6P1ubdbO8,252705
37
+ sky/backends/cloud_vm_ray_backend.py,sha256=3jg9G-wYfU7dg5gaKrO0rli93sXjRGND9TDZzrRTbEg,253879
38
38
  sky/backends/docker_utils.py,sha256=Hyw1YY20EyghhEbYx6O2FIMDcGkNzBzV9TM7LFynei8,8358
39
39
  sky/backends/local_docker_backend.py,sha256=r80BGJZmAH8F49v6Y_pG3_pHmW5LQEQRusLkKoYoe9Q,17047
40
40
  sky/backends/wheel_utils.py,sha256=IUruJijm5854UGDdSayHbHzjjWRM46bATK1nSnK44xY,11071
@@ -43,7 +43,7 @@ sky/benchmark/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
43
43
  sky/benchmark/benchmark_state.py,sha256=X8CXmuU9KgsDRhKedhFgjeRMUFWtQsjFs1qECvPG2yg,8723
44
44
  sky/benchmark/benchmark_utils.py,sha256=7rf-iHt6RXZ_pnBBWOMwcdodHQW69x27xNyx0yVog1U,26385
45
45
  sky/client/__init__.py,sha256=pz6xvVSd9X-gwqbsDL0E9QOojYqM0KAD0j-NCyCIF1k,38
46
- sky/client/cli.py,sha256=_lCbPP2MDS1r5drdHSh7MIIwnsh08-SivUFzDoNqEi4,233657
46
+ sky/client/cli.py,sha256=oLdFcZ8_jGp7n1M9xQFoHCmgrouG_MHK5h2kuKu-1AU,232909
47
47
  sky/client/common.py,sha256=E_5cjxd8fWRB7fU1yfIbiyQf-IyVhpD5KkB7Fl3cQEI,15215
48
48
  sky/client/sdk.py,sha256=i2YJpJMGs3nptN-yRzgPvQ3pWoRqTfm2RHP8-ImskaE,71381
49
49
  sky/clouds/__init__.py,sha256=OW6mJ-9hpJSBORCgt2LippLQEYZHNfnBW1mooRNNvxo,1416
@@ -53,7 +53,7 @@ sky/clouds/cloud.py,sha256=1EfHyYTJxaSo7Q4Hw_SF-Lj8L11P8v6Q1sepHTJKP30,37120
53
53
  sky/clouds/cudo.py,sha256=fqmZl0FUzxv17QKS_KFWgH_GXGxjkt8U66d5_4Uxrf4,13374
54
54
  sky/clouds/do.py,sha256=n7Mler69EHV1A3038IybSssMapm7LPmpdupsc1pOg7A,11754
55
55
  sky/clouds/fluidstack.py,sha256=5WZcuOP8RzkG35I8t_q60dWR_5m9s2bGVyOnSvDGAHc,12834
56
- sky/clouds/gcp.py,sha256=eCl0uJSCUtck4pbTTNPfveUU7dUjGAuRWFRm9yQBhbQ,58433
56
+ sky/clouds/gcp.py,sha256=SjnbV1M1mfS2wSHBos6-mVeXCszCIm5DoGubRP9zyV0,60500
57
57
  sky/clouds/ibm.py,sha256=BDWY3VmQ_Wqg7WG58lnJ-94iI4g9rCKQkdee-Yf8CJ0,22168
58
58
  sky/clouds/kubernetes.py,sha256=zYmPJ_20wWikkolT6CjJM87-2i89yuV5kb1m3Tw5C38,38218
59
59
  sky/clouds/lambda_cloud.py,sha256=vfq4cjbHfONioOKlkx7Ct-2t3t14qg6aU4A8JEPWzoQ,12942
@@ -73,7 +73,7 @@ sky/clouds/service_catalog/constants.py,sha256=N-Qgy93rtWC4lMNO7eeYYgXH9LXn-Y3lc
73
73
  sky/clouds/service_catalog/cudo_catalog.py,sha256=V_takvL6dWTGQaTLCEvjKIotCDPnMujiNUZ87kZKGVI,4673
74
74
  sky/clouds/service_catalog/do_catalog.py,sha256=Cug2QaQlSN6nFhba7f1ksyzs6z0ICTj6vSiR-792WnI,3698
75
75
  sky/clouds/service_catalog/fluidstack_catalog.py,sha256=21-cvrYEYTIi7n3ZNF2e7_0QX-PF4BkhlVJUWQOvKrY,5059
76
- sky/clouds/service_catalog/gcp_catalog.py,sha256=vmuXr4A3ONCBJtFaJ3AcoFUCg6L1C503o3gwWixvSXg,25267
76
+ sky/clouds/service_catalog/gcp_catalog.py,sha256=1fhw1nqgdqC1tByxFjOc04G7vEZ4-5H5iGgGtVZ19L4,25371
77
77
  sky/clouds/service_catalog/ibm_catalog.py,sha256=1iK0KvbI82U7sySb7chr-qm_16x3tTnZ6nIo7o76ouc,4493
78
78
  sky/clouds/service_catalog/kubernetes_catalog.py,sha256=vm7UDpOiG2EFWlxHz6td7-dXL_OtajpvuP5PoD9nkUk,13733
79
79
  sky/clouds/service_catalog/lambda_catalog.py,sha256=2R-ccu63BbdvO6X80MtxiniA-jLewXb6I0Ye1rYD9fY,5302
@@ -90,7 +90,7 @@ sky/clouds/service_catalog/data_fetchers/fetch_aws.py,sha256=OtMBQkfh6wIKGbaWt6c
90
90
  sky/clouds/service_catalog/data_fetchers/fetch_azure.py,sha256=7YVnoGDGGZI2TK02bj_LOoD4E5J5CFl6eqz2XlR4Vy8,12790
91
91
  sky/clouds/service_catalog/data_fetchers/fetch_cudo.py,sha256=52P48lvWN0s1ArjeLPeLemPRpxjSRcHincRle0nqdm4,3440
92
92
  sky/clouds/service_catalog/data_fetchers/fetch_fluidstack.py,sha256=hsqpQi_YUI-qil3zLCEGatrR7BkWzywr4otRdHrd-4k,7350
93
- sky/clouds/service_catalog/data_fetchers/fetch_gcp.py,sha256=IKcb0kh9u2N3B2jV7v8ekrqu2Tb1M1yEBfgzI77n0kg,31026
93
+ sky/clouds/service_catalog/data_fetchers/fetch_gcp.py,sha256=DurLnZxNlJQZnQFThY9WMZ6vUrISNhUFyFAZBqbnjCI,31746
94
94
  sky/clouds/service_catalog/data_fetchers/fetch_ibm.py,sha256=WPzR1y5ZaTdv-R3HLIdSUnOfWh4N9cqzKoKiKJQkjFk,7414
95
95
  sky/clouds/service_catalog/data_fetchers/fetch_lambda_cloud.py,sha256=MUzogyLruLQmIt-To6TsfnGPgv_nnlp49XYbeshsd7I,5003
96
96
  sky/clouds/service_catalog/data_fetchers/fetch_vast.py,sha256=MRxk52FUeG-R2hPUbkH44HXRPou73dxXWYAHDEXg3xU,5016
@@ -101,19 +101,17 @@ sky/clouds/utils/azure_utils.py,sha256=NToRBnhEyuUvb-nBnsKTxjhOBRkMcrelL8LK4w6s4
101
101
  sky/clouds/utils/gcp_utils.py,sha256=YtuS4EoAMvcRnGPgE_WLENPOPWIdvhp7dLceTw_zfas,7114
102
102
  sky/clouds/utils/oci_utils.py,sha256=0YxhgZdeIHQUI1AZ86YuswsZg5HdVCIVfSTRJsSHYI0,6396
103
103
  sky/clouds/utils/scp_utils.py,sha256=MqawUhhFHHxVnn29nOI4gJ_nF665ich4Po7bsy1afsA,15948
104
- sky/dashboard/out/404.html,sha256=XM6CgWKPDZUuJB52IoVvI3jcgA0CAUNYw_68pOI4w9k,2296
105
- sky/dashboard/out/clusters.html,sha256=qtEM1rxv33TPxar6EzywC4Tph60hM6tztbF-iBbiOHQ,11739
104
+ sky/dashboard/out/404.html,sha256=6qG6bTGu0DOHKD-4W6oiWtmK7MZPzyq0wIi95UwRNRM,2296
105
+ sky/dashboard/out/clusters.html,sha256=V5Te0Nb95Yh7dl9aqZ7hvkfIaw__F-BfDuG5MF-LKVI,11739
106
106
  sky/dashboard/out/favicon.ico,sha256=XilUZZglAl_1zRsg85QsbQgmQAzGPQjcUIJ-A3AzYn8,93590
107
- sky/dashboard/out/index.html,sha256=7ZR11UQwGmpFerJ8HRlwW2N1pdOI1H4hO_DbHRWVfjs,1407
108
- sky/dashboard/out/jobs.html,sha256=FW6DO3B_T20sXpi-1GWhH0E1IiwSP9UiY87udD8ZpzM,12829
107
+ sky/dashboard/out/index.html,sha256=LzFtDAUQoQOtBkhQ_jUHVU1GzSZdpR_uvvWUDNA2lgE,1407
108
+ sky/dashboard/out/jobs.html,sha256=kxntB9ZUCUTbCJlC8yAX6FGPFkrwO2uItxqtoqHD7m8,12829
109
109
  sky/dashboard/out/skypilot.svg,sha256=c0iRtlfLlaUm2p0rG9NFmo5FN0Qhf3pq5Xph-AeMPJw,5064
110
- sky/dashboard/out/_next/static/C0fkLhvxyqkymoV7IeInQ/_buildManifest.js,sha256=BtT7Yf5lqiLvYxh6Rva3kJw5RhV4MI5BcJSMhIoFLSo,1048
111
- sky/dashboard/out/_next/static/C0fkLhvxyqkymoV7IeInQ/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
112
110
  sky/dashboard/out/_next/static/chunks/236-f49500b82ad5392d.js,sha256=9wdZ7DUV0_tZZYOT6VAAXFy1xN7Xhj9YS-8vfJjonHc,24858
113
111
  sky/dashboard/out/_next/static/chunks/312-c3c8845990db8ffc.js,sha256=H8yGnoxM_IYM2kU-A7mESi4aV4Ph3PxbIdnM2v5Kd3M,25150
114
112
  sky/dashboard/out/_next/static/chunks/37-0a572fe0dbb89c4d.js,sha256=1w7y8HAPvOZ-KtEzw8mdTqqZvxUEMPJ8U-capQ-SH0c,8107
115
113
  sky/dashboard/out/_next/static/chunks/678-206dddca808e6d16.js,sha256=Y5VxbAyqp8zSfif94d1iDcS5_OXdBfb-YzwlmLu8kSg,325098
116
- sky/dashboard/out/_next/static/chunks/845-0f8017370869e269.js,sha256=LWPqFcIoY2FikjgxtB-2i2dhlxpf6TRyH8DZS4bq_II,11837
114
+ sky/dashboard/out/_next/static/chunks/845-0ca6f2c1ba667c3b.js,sha256=oVb14mtcBGD3PLVuyI33YvwKeiDJbG33h6bKBYG2-wY,12779
117
115
  sky/dashboard/out/_next/static/chunks/979-7bf73a4c7cea0f5c.js,sha256=1IY2VZuc9Z0KI0LjWZ2nkJ8SkMA-U1QXtHownMeLM8s,24031
118
116
  sky/dashboard/out/_next/static/chunks/fd9d1056-2821b0f0cabcd8bd.js,sha256=ce2WOATL1LdzsWouKQ-1NCiBQJmcykgzqP8wCp1yqbE,172831
119
117
  sky/dashboard/out/_next/static/chunks/framework-87d061ee6ed71b28.js,sha256=dh6TKdXcSRoGP4HqHe2uwzWCZBPz16dyTWufLsxeRvM,140942
@@ -130,9 +128,11 @@ sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-f383db7389368ea7.
130
128
  sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-e15db85d0ea1fbe1.js,sha256=r75whZ38dwNQ6-xxUTWSdsS3mO1kUDVt2KIDdAsp6Jc,8997
131
129
  sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-03f279c6741fb48b.js,sha256=FS0JMVMjM1F6_5WTb_HlamHVsS69MdratUiY8ztxanQ,13438
132
130
  sky/dashboard/out/_next/static/css/c6933bbb2ce7f4dd.css,sha256=V9pn7LZ7uXLy3EQjFl-5MydGktBkn2yM4SWccJF9Sm0,31944
133
- sky/dashboard/out/clusters/[cluster].html,sha256=jpoYYcWvTLYZeODepg0zGM0upI9PzaC10d5zY6GL1co,1984
134
- sky/dashboard/out/clusters/[cluster]/[job].html,sha256=Rey6T7HfT-Sdl-BHT4vMdzQzClEyuc7PQ-nNoxAVWvg,1653
135
- sky/dashboard/out/jobs/[job].html,sha256=ILarMmAx9Egyk9GZ5QW8k2unL1QHRc3SDD2-G2VmPO4,1621
131
+ sky/dashboard/out/_next/static/tdxxQrPV6NW90a983oHXe/_buildManifest.js,sha256=4NtjYBWj-HWskfkWBlIfUd0hRPpVQRjNs6Rrr9F5Z-k,1048
132
+ sky/dashboard/out/_next/static/tdxxQrPV6NW90a983oHXe/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
133
+ sky/dashboard/out/clusters/[cluster].html,sha256=0V_SE4cdQ5SQN34ge35h2JqbxS4pna1pH3Kshb8pSfs,1984
134
+ sky/dashboard/out/clusters/[cluster]/[job].html,sha256=QAt3NfNnPly4DhfaX0E7BZAcfIpbeeTLmp3uxdkoVqE,1653
135
+ sky/dashboard/out/jobs/[job].html,sha256=8UioFXTIZHUCRTOxX-xE9sNgE7KGoRJzddJvmW6f9Iw,1621
136
136
  sky/dashboard/out/videos/cursor-small.mp4,sha256=8tRdp1vjawOrXUar1cfjOc-nkaKmcwCPZx_LO0XlCvQ,203285
137
137
  sky/data/__init__.py,sha256=Nhaf1NURisXpZuwWANa2IuCyppIuc720FRwqSE2oEwY,184
138
138
  sky/data/data_transfer.py,sha256=N8b0CQebDuHieXjvEVwlYmK6DbQxUGG1RQJEyTbh3dU,12040
@@ -159,7 +159,7 @@ sky/jobs/server/server.py,sha256=LqBWzYVMMJ6rRcGeDsqCQco6pG_CcDCAHzmVbt57IQM,861
159
159
  sky/provision/__init__.py,sha256=LzOo5LjkRXwSf29dUqN14YbjzQu3liXLQcmweTeZ4dE,6457
160
160
  sky/provision/common.py,sha256=mTsL1UU-kPYGAc1gWUo-btI8bdL6tAWg9OMMAb-v8ws,10197
161
161
  sky/provision/constants.py,sha256=oc_XDUkcoLQ_lwDy5yMeMSWviKS0j0s1c0pjlvpNeWY,800
162
- sky/provision/docker_utils.py,sha256=6o5AUBkFVLtSTfREJQ5XLXhwzLZ6PONcFlZWu-hB2vw,20741
162
+ sky/provision/docker_utils.py,sha256=ev_f5ZebMZ4NYe6OxleisBO8EAB6W0FHFJlaqVK3ugE,20939
163
163
  sky/provision/instance_setup.py,sha256=mI-V89Fa0MzLP74YJ8Ns-dgR-Y_CkAxLdrUudTdmKGk,24435
164
164
  sky/provision/logging.py,sha256=_sx_TH6nLt0FF3myS5pEZbiMhXyl4s1XwMidu_TTBUw,2091
165
165
  sky/provision/metadata_utils.py,sha256=LrxeV4wD2QPzNdXV_npj8q-pr35FatxBBjF_jSbpOT0,4013
@@ -188,8 +188,8 @@ sky/provision/fluidstack/config.py,sha256=hDqesKEVjIhXLTWej3fDdpbHtKBXoybxFGgC6T
188
188
  sky/provision/fluidstack/fluidstack_utils.py,sha256=NdhQcwhIPGT21g7lQR-t6j-1zTA_1ZgOhh1oR7rmV4A,5883
189
189
  sky/provision/fluidstack/instance.py,sha256=TCGLojd5mEuEaUQ1BnmRvXMOSSBjltyf7dhPG3OLdgQ,13787
190
190
  sky/provision/gcp/__init__.py,sha256=zlgjR2JoaGD7sStGStMRu9bJ62f-8NKEIyb-bFHBlzM,528
191
- sky/provision/gcp/config.py,sha256=mAJBOCVQgdYKf06kL6a7whe3CknaMoxPnf-XNYdKKcE,33748
192
- sky/provision/gcp/constants.py,sha256=G4Q5zUantKFEnkt9DG1-in3q_KtD7JObRFTw1kEFDWA,7567
191
+ sky/provision/gcp/config.py,sha256=RaNz4-MlxYE_V_hAtOeOMwr_lz2SZ98insjw0kJAi-o,41504
192
+ sky/provision/gcp/constants.py,sha256=3650EDtLKekfv8L9j5lH6DUrlOFvZnYfuYc0EzrRwp8,10364
193
193
  sky/provision/gcp/instance.py,sha256=fHtOh-Qo1rk_oL7wZML2s6tKUyQxQu2nuIsb_E0x_rQ,25118
194
194
  sky/provision/gcp/instance_utils.py,sha256=EjfBsTqfzSA9Y83N17Is9LA1q69VJVd-ovG8b8ThRkY,71553
195
195
  sky/provision/gcp/mig_utils.py,sha256=oFpcFZoapHMILSE4iIm8V5bxP1RhbMHRF7cciqq8qAk,7883
@@ -207,8 +207,8 @@ sky/provision/lambda_cloud/instance.py,sha256=zenKFaAS9bAJxXM5_-Vnz7Fm7sSf3KSIlX
207
207
  sky/provision/lambda_cloud/lambda_utils.py,sha256=G1dciGF8U3OGYk0-1pc3IDsT8AyA8AceujOkQy4fqho,13284
208
208
  sky/provision/nebius/__init__.py,sha256=30I3181mu0W5g9fNvaWMPoBJZoGZ9RibuTpBH9P2pDg,558
209
209
  sky/provision/nebius/config.py,sha256=LK9kTDp2w6zZrn3vNdcSGgsgS-dL_j63Nh4_u3pqNiA,321
210
- sky/provision/nebius/instance.py,sha256=kfpZqwh56XV7h6XsX5dGJYilsVdRhC1EUgk0flaCo_E,11889
211
- sky/provision/nebius/utils.py,sha256=jhkwOjq1hbIrgx27FjLBBBcphbb0--3K7k3MxLzlV68,12043
210
+ sky/provision/nebius/instance.py,sha256=baaH-sbtuaXboK_GTJ3TXiiLw2KuXjm4nU3y6_ygm4c,12004
211
+ sky/provision/nebius/utils.py,sha256=QJXwHY46rp_LwmQ1IvuLEAN372z5xHdI9oMDGNSQOzg,12157
212
212
  sky/provision/oci/__init__.py,sha256=5E6EUtTK3mqGVREw5TuVl5DxteBYTZigIii7c8gHExU,612
213
213
  sky/provision/oci/config.py,sha256=diSDTyHLokcuXGB2XgZCHFvsXa8bah1PP2XuMouW_UU,1650
214
214
  sky/provision/oci/instance.py,sha256=rVGee5y0qkoeLIP5vPDmLq1N8G1n8mru62VHb0Bv5iY,16784
@@ -290,7 +290,7 @@ sky/skylet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
290
290
  sky/skylet/attempt_skylet.py,sha256=GZ6ITjjA0m-da3IxXXfoHR6n4pjp3X3TOXUqVvSrV0k,2136
291
291
  sky/skylet/autostop_lib.py,sha256=kGUnHm-jpF4zl3UJfB-4pnoldWpnVeR96WwYGSw7em0,4630
292
292
  sky/skylet/configs.py,sha256=UtnpmEL0F9hH6PSjhsps7xgjGZ6qzPOfW1p2yj9tSng,1887
293
- sky/skylet/constants.py,sha256=Hcrn7U5BZ-mzLMCg05OuI_Ygvw85tEGLDsdlm4z8Dic,20326
293
+ sky/skylet/constants.py,sha256=i42NbiShZ67f4LEIV9R3yu9j32Vn0Bf0GeP4ZY90iAc,20422
294
294
  sky/skylet/events.py,sha256=pnV3ZiwWhXqTHpU5B5Y9Xwam_7FQDI6IrxgSx7X_NVA,12743
295
295
  sky/skylet/job_lib.py,sha256=LInoIK4M37ZPSb5c7u5d8h990B68O2imiayDIH4wEaA,44473
296
296
  sky/skylet/log_lib.py,sha256=eQT_nbdPVp6wLtFxeoYL5Vt-VFIdmV588G08iEljncc,21053
@@ -319,7 +319,7 @@ sky/templates/azure-ray.yml.j2,sha256=2_WQ3x_LoraE3F12qc97DUXZvD9no0gs8jGRhvkV3N
319
319
  sky/templates/cudo-ray.yml.j2,sha256=9g0yFYUk6xPet-JNTPuVDZlVZ9oAcFPL1qaE6fyy-Xc,3797
320
320
  sky/templates/do-ray.yml.j2,sha256=7XZsM2H6RF2muHCm6xnqglnKhONXH8S3Y_mFiVxD558,4220
321
321
  sky/templates/fluidstack-ray.yml.j2,sha256=dNr9svMNp0z6-PHyQeRa6Hl3SbgqMESgBdfpvtP3aH0,3789
322
- sky/templates/gcp-ray.yml.j2,sha256=Gj7Di7Hts42Wjh6ZSZqi4JFa3_d3tml0IC-f0pUfBxg,10093
322
+ sky/templates/gcp-ray.yml.j2,sha256=IgvSSBgYhvQxUO4CJo35wyVDJb2tE1sCKoan7UVA8zU,10403
323
323
  sky/templates/ibm-ray.yml.j2,sha256=n_EsoqQx1DUPDh7ZgCxvlEEZnROJ4rBXrFcHYVRIN2c,6907
324
324
  sky/templates/jobs-controller.yaml.j2,sha256=LbeWGkarOcrRbbdvkZv_ZfyydEcJBohKItCoAfWK6X0,2432
325
325
  sky/templates/kubernetes-ingress.yml.j2,sha256=73iDklVDWBMbItg0IexCa6_ClXPJOxw7PWz3leku4nE,1340
@@ -329,7 +329,7 @@ sky/templates/kubernetes-ray.yml.j2,sha256=G_2rwLWfBBTHwD8LSkt_W0Bz6bYCx6xPZvXaS
329
329
  sky/templates/kubernetes-ssh-jump.yml.j2,sha256=k5W5sOIMppU7dDkJMwPlqsUcb92y7L5_TVG3hkgMy8M,2747
330
330
  sky/templates/lambda-ray.yml.j2,sha256=AeFThho5hPQMncrOWQ6DhEWOsAuZtdxf1gjmp_6kPJA,4747
331
331
  sky/templates/local-ray.yml.j2,sha256=FNHeyHF6nW9nU9QLIZceUWfvrFTTcO51KqhTnYCEFaA,1185
332
- sky/templates/nebius-ray.yml.j2,sha256=C4md2IwZSbV82liKuKnCsX9tuYcn78tIYguPf1P56Ro,5696
332
+ sky/templates/nebius-ray.yml.j2,sha256=AvZJXst-8cmGlLfLffp1Jsl6qNDRmSl4ttG0JEB8Pv4,6122
333
333
  sky/templates/oci-ray.yml.j2,sha256=TvB2at81DuXSG1QV4dxmqjjMdfDTsCU5T4JH01vI5DU,4810
334
334
  sky/templates/paperspace-ray.yml.j2,sha256=GrMfpUKgeZ76FoKsnqggBrOPkwiYqUw297npPMOcMFw,4270
335
335
  sky/templates/runpod-ray.yml.j2,sha256=Ch306rKPPScu8Q6A_IJID31hRa46xnuqu_r0ziWZWG8,4604
@@ -338,7 +338,7 @@ sky/templates/sky-serve-controller.yaml.j2,sha256=W4i1-OGRU2WDvauLC4EDXcYrNxj7mz
338
338
  sky/templates/skypilot-server-kubernetes-proxy.sh,sha256=n5swq5LauF9dnhDWMYqFFHkXeJ44Zjmg1RVbF60jNbE,1079
339
339
  sky/templates/vast-ray.yml.j2,sha256=Kjq8AtfL86VllOB8vDSnZeKsyv4QJV-80diXO2xuB6g,3020
340
340
  sky/templates/vsphere-ray.yml.j2,sha256=zSCAptPE40wQcxn-bL5GPU-ac5mV9kgsbJXcSJTSWHA,3886
341
- sky/templates/websocket_proxy.py,sha256=CWCXL8tskiRRQQWLKf5VETo9HY4angfEqeBusBn9npI,3483
341
+ sky/templates/websocket_proxy.py,sha256=0zcKUQuna5b3XQ-FVYg8uf2XV-VuT4lgYBZX2aa7zYc,4549
342
342
  sky/usage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
343
343
  sky/usage/constants.py,sha256=mFrTgrFIfFf4kpcl-M1VDU7_moD5_mJazUJTUDrybms,1102
344
344
  sky/usage/usage_lib.py,sha256=rInJW2kj2O1wwXUZAbeVVLhnoa7T_xBHqDhbBBrUqfI,21400
@@ -365,7 +365,7 @@ sky/utils/registry.py,sha256=I08nS0rvCF-xR5GEZoHEVgN1jcOeglz77h7xPpBCIjU,4179
365
365
  sky/utils/resources_utils.py,sha256=GbmD95DPwPB7xCnczhEpcopY16PUD6a37Xlq3U8mAe4,10530
366
366
  sky/utils/rich_console_utils.py,sha256=wPvAlshaFHuMZSjiDnaK3OSBppZLBjAn-lj7AvxNBQk,553
367
367
  sky/utils/rich_utils.py,sha256=PK5nVUFRMvg7ngYoIxZU6Ldcyiy3VfXriOLgNFkv53g,12980
368
- sky/utils/schemas.py,sha256=wSSph_7m5_Bhlw3v9AtA2YMJjkd7GqbiulUiZ8Kd7do,33112
368
+ sky/utils/schemas.py,sha256=FCrPy2FoG9NpvAzJ1hbBHRwJYivwHXy2QvqXlR6qc_o,33358
369
369
  sky/utils/status_lib.py,sha256=zn_MSuRYQdNKF8pnFOGQ54X_s_R7dyqWS6Q3a9zENw8,1512
370
370
  sky/utils/subprocess_utils.py,sha256=yM2WumV49gSKuZs0v6E3R8XKl5Q9b6veIzi6us5ORU8,15927
371
371
  sky/utils/timeline.py,sha256=ob6s3bc7nwAuSI76yLKBrSR5bzOHnOhbozz1avwoet4,4070
@@ -388,9 +388,9 @@ sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml,sha256=VLKT2KKimZu1GDg_4AIlIt488
388
388
  sky/utils/kubernetes/kubernetes_deploy_utils.py,sha256=HPVgNt-wbCVPd9dpDFiA7t2mzQLpjXHJ61eiwRbEr-c,10378
389
389
  sky/utils/kubernetes/rsync_helper.sh,sha256=MT29sI5iD2QxYlXFwrN16oq0Er4TPFQVs4Z4A3U4a7Q,2483
390
390
  sky/utils/kubernetes/ssh_jump_lifecycle_manager.py,sha256=Kq1MDygF2IxFmu9FXpCxqucXLmeUrvs6OtRij6XTQbo,6554
391
- skypilot_nightly-1.0.0.dev20250510.dist-info/licenses/LICENSE,sha256=emRJAvE7ngL6x0RhQvlns5wJzGI3NEQ_WMjNmd9TZc4,12170
392
- skypilot_nightly-1.0.0.dev20250510.dist-info/METADATA,sha256=J2kNgmduAPUDvBslpQ1JfbS4oXBnBru-PVlSLuaPtCU,17978
393
- skypilot_nightly-1.0.0.dev20250510.dist-info/WHEEL,sha256=DnLRTWE75wApRYVsjgc6wsVswC54sMSJhAEd4xhDpBk,91
394
- skypilot_nightly-1.0.0.dev20250510.dist-info/entry_points.txt,sha256=StA6HYpuHj-Y61L2Ze-hK2IcLWgLZcML5gJu8cs6nU4,36
395
- skypilot_nightly-1.0.0.dev20250510.dist-info/top_level.txt,sha256=qA8QuiNNb6Y1OF-pCUtPEr6sLEwy2xJX06Bd_CrtrHY,4
396
- skypilot_nightly-1.0.0.dev20250510.dist-info/RECORD,,
391
+ skypilot_nightly-1.0.0.dev20250514.dist-info/licenses/LICENSE,sha256=emRJAvE7ngL6x0RhQvlns5wJzGI3NEQ_WMjNmd9TZc4,12170
392
+ skypilot_nightly-1.0.0.dev20250514.dist-info/METADATA,sha256=uOq1PtmZnw27sIy9my2U-PdT8YCRmaLzEastjIyO6Gg,17978
393
+ skypilot_nightly-1.0.0.dev20250514.dist-info/WHEEL,sha256=DnLRTWE75wApRYVsjgc6wsVswC54sMSJhAEd4xhDpBk,91
394
+ skypilot_nightly-1.0.0.dev20250514.dist-info/entry_points.txt,sha256=StA6HYpuHj-Y61L2Ze-hK2IcLWgLZcML5gJu8cs6nU4,36
395
+ skypilot_nightly-1.0.0.dev20250514.dist-info/top_level.txt,sha256=qA8QuiNNb6Y1OF-pCUtPEr6sLEwy2xJX06Bd_CrtrHY,4
396
+ skypilot_nightly-1.0.0.dev20250514.dist-info/RECORD,,
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[845],{1266:function(e,t,a){a.d(t,{cV:function(){return _},Oh:function(){return v},_R:function(){return w}});var s=a(5893),r=a(7294),n=a(5235),o=a(2350),l=a(3767);let c=n.fC;n.xz;let i=n.h_;n.x8;let d=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(n.aV,{ref:t,className:(0,o.cn)("fixed inset-0 z-50 bg-black/50 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",a),...r})});d.displayName=n.aV.displayName;let u=r.forwardRef((e,t)=>{let{className:a,children:r,...c}=e;return(0,s.jsxs)(i,{children:[(0,s.jsx)(d,{}),(0,s.jsxs)(n.VY,{ref:t,className:(0,o.cn)("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-gray-200 bg-white p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",a),...c,children:[r,(0,s.jsxs)(n.x8,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-white transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-gray-400 focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-gray-100 data-[state=open]:text-gray-500",children:[(0,s.jsx)(l.Z,{className:"h-4 w-4"}),(0,s.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})});u.displayName=n.VY.displayName;let f=e=>{let{className:t,...a}=e;return(0,s.jsx)("div",{className:(0,o.cn)("flex flex-col space-y-1.5 text-center sm:text-left",t),...a})};f.displayName="DialogHeader";let m=e=>{let{className:t,...a}=e;return(0,s.jsx)("div",{className:(0,o.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",t),...a})};m.displayName="DialogFooter";let h=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(n.Dx,{ref:t,className:(0,o.cn)("text-lg font-semibold leading-none tracking-tight",a),...r})});h.displayName=n.Dx.displayName;let x=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(n.dk,{ref:t,className:(0,o.cn)("text-sm text-gray-500",a),...r})});x.displayName=n.dk.displayName;var p=a(803),g=a(7673),b=a(8671),j=a(7469),y=a(3225),N=a(3001);function v(e){let{isOpen:t,onClose:a,cluster:n}=e,[o,l]=r.useState(!1),i=e=>{navigator.clipboard.writeText(e),l(!0),setTimeout(()=>l(!1),2e3)},d=["sky status ".concat(n),"ssh ".concat(n)],m=d.join("\n");return(0,s.jsx)(c,{open:t,onOpenChange:a,children:(0,s.jsxs)(u,{className:"sm:max-w-md",children:[(0,s.jsxs)(f,{children:[(0,s.jsxs)(h,{children:["Connect to: ",(0,s.jsx)("span",{className:"font-light",children:n})]}),(0,s.jsx)(x,{children:"Use these instructions to connect to your cluster via SSH."})]}),(0,s.jsxs)("div",{className:"flex flex-col space-y-4",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h3",{className:"text-sm font-medium mb-2",children:"SSH Command"}),(0,s.jsx)(g.Zb,{className:"p-3 bg-gray-50",children:(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsx)("pre",{className:"text-sm w-full whitespace-pre-wrap",children:d.map((e,t)=>(0,s.jsx)("code",{className:"block",children:e},t))}),(0,s.jsx)(j.WH,{content:o?"Copied!":"Copy command",children:(0,s.jsx)(p.z,{variant:"ghost",size:"icon",onClick:()=>i(m),className:"h-8 w-8 rounded-full",children:(0,s.jsx)(b.Z,{className:"h-4 w-4"})})})]})})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("h3",{className:"text-sm font-medium mb-2",children:"Additional Information"}),(0,s.jsxs)("p",{className:"text-sm text-secondary-foreground",children:["Make sure to run"," ",(0,s.jsxs)("code",{className:"text-sm",children:["sky status ",n]})," first to have SkyPilot set up the SSH access."]})]})]})]})})}function w(e){let{isOpen:t,onClose:a,cluster:r}=e,n=(0,N.X)();return(0,s.jsx)(c,{open:t,onOpenChange:a,children:(0,s.jsx)(u,{className:"sm:max-w-3xl",children:(0,s.jsxs)(f,{children:[(0,s.jsxs)(h,{children:["Connect to: ",(0,s.jsx)("span",{className:"font-light",children:r})]}),(0,s.jsx)(x,{children:(0,s.jsxs)("div",{className:"flex flex-col space-y-4",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h3",{className:"text-sm font-medium mb-2 my-2",children:"Setup SSH access"}),(0,s.jsx)(g.Zb,{className:"p-3 bg-gray-50",children:(0,s.jsx)("pre",{className:"text-sm",children:(0,s.jsxs)("code",{children:["sky status ",r]})})})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("h3",{className:"text-sm font-medium",children:"Connect with VSCode/Cursor"}),(0,s.jsx)("div",{className:"relative ".concat(n?"-mt-5":"-mt-10"),style:{paddingBottom:"75%"},children:(0,s.jsxs)("video",{className:"absolute top-0 left-0 w-full h-full rounded-lg",controls:!0,autoPlay:!0,muted:!0,preload:"metadata",children:[(0,s.jsx)("source",{src:"".concat(y.GW,"/videos/cursor-small.mp4"),type:"video/mp4"}),"Your browser does not support the video tag."]})})]})]})})]})})})}function _(e){let{isOpen:t,onClose:a,onConfirm:r,title:n,message:o,confirmText:l="Confirm",confirmVariant:i="destructive"}=e;return(0,s.jsx)(c,{open:t,onOpenChange:a,children:(0,s.jsxs)(u,{className:"sm:max-w-md",children:[(0,s.jsxs)(f,{children:[(0,s.jsx)(h,{children:n}),(0,s.jsx)(x,{children:o})]}),(0,s.jsxs)(m,{className:"flex justify-end gap-2 pt-4",children:[(0,s.jsx)(p.z,{variant:"outline",onClick:a,children:"Cancel"}),(0,s.jsx)(p.z,{variant:i,onClick:()=>{r(),a()},children:l})]})]})})}},803:function(e,t,a){a.d(t,{z:function(){return i}});var s=a(5893),r=a(7294),n=a(8426),o=a(5139),l=a(2350);let c=(0,o.j)("inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),i=r.forwardRef((e,t)=>{let{className:a,variant:r,size:o,asChild:i=!1,...d}=e,u=i?n.g7:"button";return(0,s.jsx)(u,{className:(0,l.cn)(c({variant:r,size:o,className:a})),ref:t,...d})});i.displayName="Button"},8764:function(e,t,a){a.d(t,{RM:function(){return c},SC:function(){return i},iA:function(){return o},pj:function(){return u},ss:function(){return d},xD:function(){return l}});var s=a(5893),r=a(7294),n=a(2350);let o=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)("div",{className:"relative w-full overflow-auto",children:(0,s.jsx)("table",{ref:t,className:(0,n.cn)("w-full caption-bottom text-base",a),...r})})});o.displayName="Table";let l=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)("thead",{ref:t,className:(0,n.cn)("[&_tr]:border-b",a),...r})});l.displayName="TableHeader";let c=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)("tbody",{ref:t,className:(0,n.cn)("[&_tr:last-child]:border-0",a),...r})});c.displayName="TableBody",r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)("tfoot",{ref:t,className:(0,n.cn)("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",a),...r})}).displayName="TableFooter";let i=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)("tr",{ref:t,className:(0,n.cn)("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",a),...r})});i.displayName="TableRow";let d=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)("th",{ref:t,className:(0,n.cn)("h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0",a),...r})});d.displayName="TableHead";let u=r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)("td",{ref:t,className:(0,n.cn)("p-4 align-middle [&:has([role=checkbox])]:pr-0",a),...r})});u.displayName="TableCell",r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)("caption",{ref:t,className:(0,n.cn)("mt-4 text-base text-muted-foreground",a),...r})}).displayName="TableCaption"},3266:function(e,t,a){a.d(t,{QL:function(){return d},Sl:function(){return c},zd:function(){return l}});var s=a(7294),r=a(5821),n=a(3225);let o={UP:"RUNNING",STOPPED:"STOPPED",INIT:"LAUNCHING",null:"TERMINATED"};async function l(){let{clusterNames:e=null}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};try{let t=await fetch("".concat(n.f4,"/status"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cluster_names:e,all_users:!0})}),a=t.headers.get("X-Skypilot-Request-ID")||t.headers.get("X-Request-ID"),s=await fetch("".concat(n.f4,"/api/get?request_id=").concat(a)),r=await s.json();return(r.return_value?JSON.parse(r.return_value):[]).map(e=>({status:o[e.status],cluster:e.name,user:e.user_name,infra:e.cloud,region:e.region,cpus:e.cpus,mem:e.memory,gpus:e.accelerators,resources_str:e.resources_str,time:new Date(1e3*e.launched_at),num_nodes:e.nodes,jobs:[],events:[{time:new Date(1e3*e.launched_at),event:"Cluster created."}]}))}catch(e){return console.error("Error fetching clusters:",e),[]}}async function c(e){let{clusterName:t,jobId:a,onNewLog:s}=e;try{let e=(await fetch("".concat(n.f4,"/logs"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({follow:!1,cluster_name:t,job_id:a})})).body.getReader();for(;;){let{done:t,value:a}=await e.read();if(t)break;let r=new TextDecoder().decode(a);s(r)}}catch(e){console.error("Error in streamClusterJobLogs:",e),(0,r.C)("Error in streamClusterJobLogs: ".concat(e.message),"error")}}async function i(e){let{clusterName:t}=e;try{let e=await fetch("".concat(n.f4,"/queue"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cluster_name:t,all_users:!0})}),a=e.headers.get("X-Skypilot-Request-ID")||e.headers.get("X-Request-ID"),s=await fetch("".concat(n.f4,"/api/get?request_id=").concat(a)),r=await s.json();return JSON.parse(r.return_value).map(e=>{let a=e.end_at?e.end_at:Date.now()/1e3,s=0,r=0;return e.submitted_at&&(s=a-e.submitted_at),e.start_at&&(r=a-e.start_at),{id:e.job_id,status:e.status,job:e.job_name,user:e.username,gpus:e.accelerators||{},submitted_at:e.submitted_at?new Date(1e3*e.submitted_at):null,resources:e.resources,cluster:t,total_duration:s,job_duration:r,infra:"",logs:""}})}catch(e){return console.error("Error fetching cluster jobs:",e),[]}}function d(e){let{cluster:t,job:a=null}=e,[r,n]=(0,s.useState)(null),[o,c]=(0,s.useState)(null),[d,u]=(0,s.useState)(!0),[f,m]=(0,s.useState)(!0),h=(0,s.useCallback)(async()=>{if(t)try{u(!0);let e=await l({clusterNames:[t]});n(e[0])}catch(e){console.error("Error fetching cluster data:",e)}finally{u(!1)}},[t]),x=(0,s.useCallback)(async()=>{if(t)try{m(!0);let e=await i({clusterName:t,job:a});c(e)}catch(e){console.error("Error fetching cluster job data:",e)}finally{m(!1)}},[t,a]),p=(0,s.useCallback)(async()=>{await Promise.all([h(),x()])},[h,x]);return(0,s.useEffect)(()=>{h(),x()},[t,a,h,x]),{clusterData:r,clusterJobData:o,loading:d||f,refreshData:p}}},4545:function(e,t,a){function s(e){return e.startsWith("sky-jobs-controller-")}function r(e,t,a){return null===t?e:[...e].sort((e,s)=>e[t]<s[t]?"ascending"===a?-1:1:e[t]>s[t]?"ascending"===a?1:-1:0)}a.d(t,{R0:function(){return r},Ym:function(){return s}})}}]);