skypilot-nightly 1.0.0.dev20250903__py3-none-any.whl → 1.0.0.dev20250904__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.

Potentially problematic release.


This version of skypilot-nightly might be problematic. Click here for more details.

Files changed (72) hide show
  1. sky/__init__.py +2 -2
  2. sky/backends/cloud_vm_ray_backend.py +7 -2
  3. sky/client/cli/command.py +18 -1
  4. sky/client/sdk.py +22 -1
  5. sky/clouds/nebius.py +4 -2
  6. sky/dashboard/out/404.html +1 -1
  7. sky/dashboard/out/_next/static/chunks/{1121-ec35954c8cbea535.js → 1121-408ed10b2f9fce17.js} +1 -1
  8. sky/dashboard/out/_next/static/chunks/{7205-88191679e7988c57.js → 1836-37fede578e2da5f8.js} +4 -9
  9. sky/dashboard/out/_next/static/chunks/3015-86cabed5d4669ad0.js +1 -0
  10. sky/dashboard/out/_next/static/chunks/3294.c80326aec9bfed40.js +6 -0
  11. sky/dashboard/out/_next/static/chunks/{3785.d5b86f6ebc88e6e6.js → 3785.4872a2f3aa489880.js} +1 -1
  12. sky/dashboard/out/_next/static/chunks/{4783.c485f48348349f47.js → 5339.3fda4a4010ff4e06.js} +4 -9
  13. sky/dashboard/out/_next/static/chunks/{9946.3b7b43c217ff70ec.js → 649.b9d7f7d10c1b8c53.js} +4 -9
  14. sky/dashboard/out/_next/static/chunks/6856-66e696640347e77b.js +1 -0
  15. sky/dashboard/out/_next/static/chunks/9025.c12318fb6a1a9093.js +6 -0
  16. sky/dashboard/out/_next/static/chunks/9037-1c0101b86582136f.js +6 -0
  17. sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-39c9bd4cdb7e5a57.js +16 -0
  18. sky/dashboard/out/_next/static/chunks/pages/clusters/{[cluster]-a0527109c2fab467.js → [cluster]-0b4b35dc1dfe046c.js} +2 -7
  19. sky/dashboard/out/_next/static/chunks/pages/infra/{[context]-81351f95f3bec08e.js → [context]-6563820e094f68ca.js} +1 -1
  20. sky/dashboard/out/_next/static/chunks/pages/{infra-c320641c2bcbbea6.js → infra-aabba60d57826e0f.js} +1 -1
  21. sky/dashboard/out/_next/static/chunks/pages/jobs-1f70d9faa564804f.js +1 -0
  22. sky/dashboard/out/_next/static/chunks/pages/workspaces/{[name]-de06e613e20bc977.js → [name]-af76bb06dbb3954f.js} +1 -1
  23. sky/dashboard/out/_next/static/chunks/pages/{workspaces-be35b22e2046564c.js → workspaces-7598c33a746cdc91.js} +1 -1
  24. sky/dashboard/out/_next/static/chunks/webpack-24c4fc6d30ce0193.js +1 -0
  25. sky/dashboard/out/_next/static/mriHUOVL_Ht-CeW-e7saa/_buildManifest.js +1 -0
  26. sky/dashboard/out/clusters/[cluster]/[job].html +1 -1
  27. sky/dashboard/out/clusters/[cluster].html +1 -1
  28. sky/dashboard/out/clusters.html +1 -1
  29. sky/dashboard/out/config.html +1 -1
  30. sky/dashboard/out/index.html +1 -1
  31. sky/dashboard/out/infra/[context].html +1 -1
  32. sky/dashboard/out/infra.html +1 -1
  33. sky/dashboard/out/jobs/[job].html +1 -1
  34. sky/dashboard/out/jobs/pools/[pool].html +1 -1
  35. sky/dashboard/out/jobs.html +1 -1
  36. sky/dashboard/out/users.html +1 -1
  37. sky/dashboard/out/volumes.html +1 -1
  38. sky/dashboard/out/workspace/new.html +1 -1
  39. sky/dashboard/out/workspaces/[name].html +1 -1
  40. sky/dashboard/out/workspaces.html +1 -1
  41. sky/data/mounting_utils.py +29 -38
  42. sky/global_user_state.py +17 -5
  43. sky/jobs/state.py +1 -1
  44. sky/provision/kubernetes/instance.py +10 -3
  45. sky/serve/serve_state.py +1 -1
  46. sky/server/config.py +31 -3
  47. sky/server/requests/executor.py +9 -3
  48. sky/server/requests/requests.py +9 -0
  49. sky/server/server.py +24 -21
  50. sky/server/uvicorn.py +9 -3
  51. sky/skylet/constants.py +1 -1
  52. sky/skypilot_config.py +21 -9
  53. sky/ssh_node_pools/server.py +5 -5
  54. sky/users/server.py +18 -15
  55. sky/utils/db/db_utils.py +58 -1
  56. sky/utils/db/migration_utils.py +0 -32
  57. {skypilot_nightly-1.0.0.dev20250903.dist-info → skypilot_nightly-1.0.0.dev20250904.dist-info}/METADATA +33 -33
  58. {skypilot_nightly-1.0.0.dev20250903.dist-info → skypilot_nightly-1.0.0.dev20250904.dist-info}/RECORD +63 -63
  59. sky/dashboard/out/_next/static/chunks/3015-8089ed1e0b7e37fd.js +0 -1
  60. sky/dashboard/out/_next/static/chunks/6856-049014c6d43d127b.js +0 -1
  61. sky/dashboard/out/_next/static/chunks/9025.a1bef12d672bb66d.js +0 -6
  62. sky/dashboard/out/_next/static/chunks/9037-89a84fd7fa31362d.js +0 -6
  63. sky/dashboard/out/_next/static/chunks/9984.7eb6cc51fb460cae.js +0 -6
  64. sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-b77360a343d48902.js +0 -16
  65. sky/dashboard/out/_next/static/chunks/pages/jobs-7421e63ac35f8fce.js +0 -1
  66. sky/dashboard/out/_next/static/chunks/webpack-60556df644cd5d71.js +0 -1
  67. sky/dashboard/out/_next/static/yLz6EPhW_XXmnNs1I6dmS/_buildManifest.js +0 -1
  68. /sky/dashboard/out/_next/static/{yLz6EPhW_XXmnNs1I6dmS → mriHUOVL_Ht-CeW-e7saa}/_ssgManifest.js +0 -0
  69. {skypilot_nightly-1.0.0.dev20250903.dist-info → skypilot_nightly-1.0.0.dev20250904.dist-info}/WHEEL +0 -0
  70. {skypilot_nightly-1.0.0.dev20250903.dist-info → skypilot_nightly-1.0.0.dev20250904.dist-info}/entry_points.txt +0 -0
  71. {skypilot_nightly-1.0.0.dev20250903.dist-info → skypilot_nightly-1.0.0.dev20250904.dist-info}/licenses/LICENSE +0 -0
  72. {skypilot_nightly-1.0.0.dev20250903.dist-info → skypilot_nightly-1.0.0.dev20250904.dist-info}/top_level.txt +0 -0
@@ -1,4 +1,4 @@
1
- sky/__init__.py,sha256=lxXbfNywhtvA2VJCL1wjwuRAhSZeZRctA-W9TSBG53w,6615
1
+ sky/__init__.py,sha256=6VsyEs_eZAHE-kPePu4-NoGyrelqqt1XNiiIC0akmkY,6615
2
2
  sky/admin_policy.py,sha256=XdcJnYqmude-LGGop-8U-FeiJcqtfYsYtIy4rmoCJnM,9799
3
3
  sky/authentication.py,sha256=00EHVELI7nuW7JQ_74t1RKIc7iohKnwdvlw6h2gXRmg,25487
4
4
  sky/check.py,sha256=Z7D6txaOAEL7fyEQ8q-Zxk1aWaHpEcl412Rj2mThbQ0,31025
@@ -8,13 +8,13 @@ sky/core.py,sha256=qL76-P4aE_BGsZDmnBIwMw_MoPtFVLsJ0cQP7OSyCt8,57534
8
8
  sky/dag.py,sha256=0ZpAEDXuIFo1SP7YJpF9vXiFxpRwqP8od-UXMg95td8,3929
9
9
  sky/exceptions.py,sha256=sZ0rYuPZKKv4brkfPPJacWo2dY48FfqevwFT1bFzORU,20328
10
10
  sky/execution.py,sha256=v1JNAjjQC1iOXjG8eba-zrMDVGrjZjx7Ys4f4ExwQp0,34674
11
- sky/global_user_state.py,sha256=6vV4zbRBcncbyh8wmlFzUls5jiO2GHa0_Eu6puCHdc4,89756
11
+ sky/global_user_state.py,sha256=ojdAnueNZz4DialJZoMe9dAhYS6IV-Bc1TuIc6VU9GU,90165
12
12
  sky/models.py,sha256=3rvk-ADu7qAbqSj02JEPvsWIk9AG6h4-SFA4X9z3qM8,3234
13
13
  sky/optimizer.py,sha256=iR57bL_8BeG6bh1sH3J6n6i65EBFjmyftezYM4nnDZA,64150
14
14
  sky/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
15
  sky/resources.py,sha256=TY-JVOOBexmLEbUj_8tYU8O_F9jKDpFkexcGUjl0XJk,107313
16
16
  sky/sky_logging.py,sha256=BQtgSnt-4TLeMLLoxhk9jE7JCnXGko1cTim9ouuefAY,9755
17
- sky/skypilot_config.py,sha256=OpvpkG1ENMcotLR0J7IMAvp6e6Bt80rirZgdyTRXTGU,36775
17
+ sky/skypilot_config.py,sha256=UEDR6hOOs-B95rfIvkTk0kq0XvuLRA2nzs3OczHPK6k,37260
18
18
  sky/task.py,sha256=CApXHc5gHAWyvtIwA1sLloBC_nCgASZ_VrtkBNwQlNI,75929
19
19
  sky/adaptors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
20
  sky/adaptors/aws.py,sha256=4caUTO5nxZQyDVPyQdoPljaF-Lz_Fa6NEnu3FfmLZd4,8633
@@ -36,7 +36,7 @@ sky/adaptors/vsphere.py,sha256=zJP9SeObEoLrpgHW2VHvZE48EhgVf8GfAEIwBeaDMfM,2129
36
36
  sky/backends/__init__.py,sha256=tpa9gAygQopsiBUUuy3wVmr4E05FoPTFHIWqEo4i-u0,627
37
37
  sky/backends/backend.py,sha256=6ltCouZhaXJqv2Zh9nP_YCdHf10_oIRNzAA-XDiMmI8,7969
38
38
  sky/backends/backend_utils.py,sha256=r3-ZPO6aAWZhUNFxu5Ed6MgRvfEBUBSvy8U98T7hGdU,161711
39
- sky/backends/cloud_vm_ray_backend.py,sha256=jzvNeOAFD6JLqchR-aI-L8T6vljUmMf2LYZPIRJKG2M,278941
39
+ sky/backends/cloud_vm_ray_backend.py,sha256=A8OWPkY1PLB4-Pvduq0qMAMHG7m6ae_rxTt6GEdVNJc,279302
40
40
  sky/backends/docker_utils.py,sha256=_EhM6NStZDAwcegppQqExaB5iuSn1qL4xFFUqXAz2Uk,8392
41
41
  sky/backends/local_docker_backend.py,sha256=r84uhXCk7NK9hGW840KPKnrADd7mCerMwncxOzckHg4,17126
42
42
  sky/backends/wheel_utils.py,sha256=DE71Muq5qLRhGpCVg1Rb6YOI7S_BzT8Hak27Pz8L4yw,12486
@@ -78,11 +78,11 @@ sky/catalog/data_fetchers/fetch_vsphere.py,sha256=Yf7tKzwJsQ_4f64IT1EAP108C1D3Rg
78
78
  sky/client/__init__.py,sha256=pz6xvVSd9X-gwqbsDL0E9QOojYqM0KAD0j-NCyCIF1k,38
79
79
  sky/client/common.py,sha256=aYkFeiWgiyJTXm25z_o3ISrvMA-SthbggmKG6qPtwj8,16740
80
80
  sky/client/oauth.py,sha256=sNJ_DMsSTcxluj5FeNQ2IafZJLImRFmCAZ79bXeABn4,2871
81
- sky/client/sdk.py,sha256=_-N62t5FsOU6tMm_Gl7xLHdfBALnKHNOhxhg3-nmEpA,104857
81
+ sky/client/sdk.py,sha256=jOlGH8ndc1Vdai6kvBd-fAZecuYBVNW826iApSmEbJI,105888
82
82
  sky/client/sdk_async.py,sha256=nZK9s6BKUsJ6F04vzKI4-SHFF1-3hn5V6ByS9MQ1LmY,30674
83
83
  sky/client/service_account_auth.py,sha256=5jXk0G6ufuW-SHCO7BEHQeTO0_2a8KfFmA63auXFRj4,1529
84
84
  sky/client/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
85
- sky/client/cli/command.py,sha256=JC4tK6z7geoqWQiSPeOjxrRs-E_8k7YJWb2g3vfyflQ,248949
85
+ sky/client/cli/command.py,sha256=PJzDBIGBDgQ63vGxlNYDkDRtZkvOCBFyfNLzLVLKgPI,249670
86
86
  sky/client/cli/deprecation_utils.py,sha256=H_d5UyF2CekEoThduAzt5cihBO8hwKYMu0-Wqfbjv5E,3370
87
87
  sky/client/cli/flags.py,sha256=lLXHooU4HEslbHJuGAiCrKYkJZx99hAKaJbstw7s1bc,12136
88
88
  sky/client/cli/git.py,sha256=dqSaJI1Ndv6RfKJa6HT6ednXr0j_pVlwSdh3XiQzB60,22018
@@ -98,7 +98,7 @@ sky/clouds/hyperbolic.py,sha256=bmV4NFpUPgzR0ownavHHVqyw26EtOgQ_ZB6SlxlgmJw,1199
98
98
  sky/clouds/ibm.py,sha256=qMbOkTMJzPn2HDH9cie9zERvukRZbZoueLIaufCECAw,22860
99
99
  sky/clouds/kubernetes.py,sha256=_-UCrA09EPMjClQzySApcaPF3OumgCDNbi_eLoC6NTs,56704
100
100
  sky/clouds/lambda_cloud.py,sha256=aRW4GwLjaFFR6_bPbBr9o8z-SKHtuP18BAVwoPuDtBE,13553
101
- sky/clouds/nebius.py,sha256=2CWWZsPJOSttYdyV4vlL5n2UqPmyJ2E9WAD_6s4_WC4,21348
101
+ sky/clouds/nebius.py,sha256=rc50NiQKr5HLcOeDFBKEnFKwwtTPO030qxg1QdHO9eE,21473
102
102
  sky/clouds/oci.py,sha256=U5wtBx78RqCgCAqjlTTgSnRqWWa7D7LIvyoo8097Fno,28571
103
103
  sky/clouds/paperspace.py,sha256=-wvFUsUGaOlFYfe3jCdEB3_mwDmK4R66hJy8nX9822o,12010
104
104
  sky/clouds/runpod.py,sha256=vxZn5XRrj_Cub26s9vjGhA5XIrkxuvf1Iau4f13Au-I,14104
@@ -112,85 +112,85 @@ sky/clouds/utils/azure_utils.py,sha256=NToRBnhEyuUvb-nBnsKTxjhOBRkMcrelL8LK4w6s4
112
112
  sky/clouds/utils/gcp_utils.py,sha256=09MF4Vx0EW7S-GXGpyxpl2aQlHrqeu9ioV0nyionAyk,9890
113
113
  sky/clouds/utils/oci_utils.py,sha256=TFqAqRLggg4Z0bhxrrq8nouSSomZy-ub1frHXEkud2M,7302
114
114
  sky/clouds/utils/scp_utils.py,sha256=VGuccVO5uFGr8-yolWSoYrgr11z6cIeDBGcqkBzAyOs,18409
115
- sky/dashboard/out/404.html,sha256=kg7QguxiUxKA2JA_8az7Pi5cpGVB666XrvENgeTtV-Y,1423
116
- sky/dashboard/out/clusters.html,sha256=fb6UMjTu-lmrOebH9I6Yd7phPyE5sYUZy6G5AdyWhQQ,1418
117
- sky/dashboard/out/config.html,sha256=YK6OP3uyDVNcONPDCwE6S610Yn6ixn1w2vnoZ1idMVY,1414
115
+ sky/dashboard/out/404.html,sha256=1Hdi1NwYVns8aYZCW_vomTxH_QgO8buHOMVb2H0xwwE,1423
116
+ sky/dashboard/out/clusters.html,sha256=wmhWLtTzeArBYBL_16Y9xEuFQQd0ONCZNQ6Q9eNW3CU,1418
117
+ sky/dashboard/out/config.html,sha256=wt8rsVZpCU8fv-XcO-vTUcuG60nF-PNslJV5-NEBGLI,1414
118
118
  sky/dashboard/out/favicon.ico,sha256=XilUZZglAl_1zRsg85QsbQgmQAzGPQjcUIJ-A3AzYn8,93590
119
- sky/dashboard/out/index.html,sha256=jxRcaaynnj2ZLtadEvrOLFDkNHfLFmyn8DpVa4zpBRY,1407
120
- sky/dashboard/out/infra.html,sha256=n8CBkA2MhiNGqpZpuozQdkUSx1cZyAWivLoBA50kLOg,1412
121
- sky/dashboard/out/jobs.html,sha256=Cy_KLkhf2oXzr_jBrFUnUQtiGKBzu92_uxPwq8C-qLk,1410
119
+ sky/dashboard/out/index.html,sha256=LQ6mpvIZknJvdgCuz5AfA-d_IDODM_tfufqeBqAXS4Q,1407
120
+ sky/dashboard/out/infra.html,sha256=XtUncYNBxphc9oKzmcLnIHKsQIckynprMIlIqNAvgmI,1412
121
+ sky/dashboard/out/jobs.html,sha256=0W7knIkb2GoktN3TGC1gW4RaaXaaivKBrd5f32tcRN8,1410
122
122
  sky/dashboard/out/skypilot.svg,sha256=c0iRtlfLlaUm2p0rG9NFmo5FN0Qhf3pq5Xph-AeMPJw,5064
123
- sky/dashboard/out/users.html,sha256=MSCo9CTwxCv9KLqMbEOXSpNvNED48TQMGgLiUhrXSCE,1412
124
- sky/dashboard/out/volumes.html,sha256=-xi5erAvJYQVo3CvnppT2KJfqJp4ZVNlaA3RR6Xxap0,1416
125
- sky/dashboard/out/workspaces.html,sha256=hgKXuTnLDyN055UPcuwErPA2luJmscNeJjD73yn8GMA,1422
126
- sky/dashboard/out/_next/static/chunks/1121-ec35954c8cbea535.js,sha256=re1n51sXlIbCwZ0n4vQ8QRVuRyDYFn3fvx7dbqKv6_0,8577
123
+ sky/dashboard/out/users.html,sha256=vqGpSSSNsCKLJZeQ1xPo5LGl9P-9YhCEhqVStZnmm14,1412
124
+ sky/dashboard/out/volumes.html,sha256=upbI6aXjiX_Mxsnni4uEZPHGI7-xft6zspZluiV0ksI,1416
125
+ sky/dashboard/out/workspaces.html,sha256=Qpds0HpKbCh61iatp9X7baDiAFk04VNy75E7PmNnLRM,1422
126
+ sky/dashboard/out/_next/static/chunks/1121-408ed10b2f9fce17.js,sha256=WRuwuuT4OiOBZc-c8VIS-vO9wtyRdKvGN51obQLfxwA,8596
127
127
  sky/dashboard/out/_next/static/chunks/1141-943efc7aff0f0c06.js,sha256=tUOoU0nIEShZeD5pBiOWrl8-czHc6PpnxxJilnDplHM,17330
128
128
  sky/dashboard/out/_next/static/chunks/1272-1ef0bf0237faccdb.js,sha256=VJ6y-Z6Eg2T93hQIRfWAbjAkQ7nQhglmIaVbEpKSILY,38451
129
+ sky/dashboard/out/_next/static/chunks/1836-37fede578e2da5f8.js,sha256=2ibdKVUjO2N62T4dtfY0xsRFwG-IJh41sK450Dv0_48,10554
129
130
  sky/dashboard/out/_next/static/chunks/2350.fab69e61bac57b23.js,sha256=TQCHO4AUL9MZo1e_8GOiL8y6vjQpj5tdXZ8oCKwM1LA,271
130
- sky/dashboard/out/_next/static/chunks/3015-8089ed1e0b7e37fd.js,sha256=rA7xoHpljSEvc9r-Owxyftb9ze4rPK6r2yKh96MlbYs,39820
131
- sky/dashboard/out/_next/static/chunks/3785.d5b86f6ebc88e6e6.js,sha256=vYbhoNejiE7xKPOKVVw4OyepR6jVNDQ5rrZ4TeihJKE,4427
131
+ sky/dashboard/out/_next/static/chunks/3015-86cabed5d4669ad0.js,sha256=pnfFVGEiuRRx-yEp4GPD1yJIK9lqmvEyz-famLn0vCQ,39050
132
+ sky/dashboard/out/_next/static/chunks/3294.c80326aec9bfed40.js,sha256=B8zEF35JzbIQValgIvO3UTTA3tC-7D3c25rxuhnIP7A,40590
133
+ sky/dashboard/out/_next/static/chunks/3785.4872a2f3aa489880.js,sha256=V0L9WACQo3jTNejH405N0IrEMhgxxbstCK2FdjoyDsc,4427
132
134
  sky/dashboard/out/_next/static/chunks/3850-ff4a9a69d978632b.js,sha256=XphBY9psNzmvGD28zgDunQEb-TX0_eOVaElmcuOjD1g,7455
133
135
  sky/dashboard/out/_next/static/chunks/3937.210053269f121201.js,sha256=0tYP8uuog_WLEZmEuej4zenfX0PUa17nR874wSSBgqI,54583
134
136
  sky/dashboard/out/_next/static/chunks/4045.b30465273dc5e468.js,sha256=tapRUwwIf-YKMV73OTSX78ZWKDKCZdcBx-JC-0wgEF4,31405
135
137
  sky/dashboard/out/_next/static/chunks/4676-9da7fdbde90b5549.js,sha256=cfO5u2g0pHjyBqEtXvxjqyzqSSCXL6l1vYdMFd90WGg,8571
136
138
  sky/dashboard/out/_next/static/chunks/4725.10f7a9a5d3ea8208.js,sha256=Og54dlTz1nWvsEyE9mmzeKjfJcNkloX5MbQN7ujfrt0,15962
137
- sky/dashboard/out/_next/static/chunks/4783.c485f48348349f47.js,sha256=jFLx8ImF7DRXHUIb3scnAZnLBgI-SQhkCRMoSm-Fy8A,20663
139
+ sky/dashboard/out/_next/static/chunks/5339.3fda4a4010ff4e06.js,sha256=9piflLFuNDC2BZhIZG0-Wia_-9rI0K3Izbx0jAS-dWI,20129
138
140
  sky/dashboard/out/_next/static/chunks/5739-d67458fcb1386c92.js,sha256=UMLEyZH3SWcAdDnaOYztbUYUzCCP2t0KiwP2vT_swDQ,65504
139
141
  sky/dashboard/out/_next/static/chunks/6130-2be46d70a38f1e82.js,sha256=5gyzVH8d5jnrVqCh9y0HEFcRmg4zguJ9_fe9olGFW2U,29162
140
142
  sky/dashboard/out/_next/static/chunks/6135-4b4d5e824b7f9d3c.js,sha256=OLvQvfyMwh1ltTzUqJda3AF23BSCllkw9J7MVmkTyKI,15165
141
143
  sky/dashboard/out/_next/static/chunks/616-3d59f75e2ccf9321.js,sha256=UQxIbEZseq4ore8Y1Tm5OT3Re7fU8ZZKjQQWk4JPvK4,179393
144
+ sky/dashboard/out/_next/static/chunks/649.b9d7f7d10c1b8c53.js,sha256=wUdmzEiSknP_LP1jtpaNdiDRrF8dtxaC7Z_bWNRC8sM,11946
142
145
  sky/dashboard/out/_next/static/chunks/6601-06114c982db410b6.js,sha256=coh7shL8L5Vp2MsibBTx-xxNq_BI-zp0jAl7f6eVmUQ,9659
143
- sky/dashboard/out/_next/static/chunks/6856-049014c6d43d127b.js,sha256=mfXoB61ooynzKpZqIF5OcPFeUVvWh8mPzbAmwJ12bnk,11490
146
+ sky/dashboard/out/_next/static/chunks/6856-66e696640347e77b.js,sha256=S8fTbvIdcqZ8eGqTsYmBg9cvPBJDdI2zH1yPKOA92IY,15306
144
147
  sky/dashboard/out/_next/static/chunks/6989-01359c57e018caa4.js,sha256=iIEGQp3dsChOsDxd7QH_ShGczWhvigMfIT35CSsZjjY,11873
145
148
  sky/dashboard/out/_next/static/chunks/6990-08b2a1cae076a943.js,sha256=fWdN6V7HMAPhUGCaejOrETv_O1D7atMOpnMiE6LIsc8,16117
146
- sky/dashboard/out/_next/static/chunks/7205-88191679e7988c57.js,sha256=z_Yjm7qPPSdBKI_YxSItLuHXo11yI2dPkz4s03oHCSc,11088
147
149
  sky/dashboard/out/_next/static/chunks/7325.b4bc99ce0892dcd5.js,sha256=5x42A-PEZANeHAcNDbcnJ21uQF48yTrP3XeW5L4RH1g,495
148
150
  sky/dashboard/out/_next/static/chunks/7411-b15471acd2cba716.js,sha256=Dnmr9e-yZQbnkjwzqIZU3aK-3u1Tqr8STF-ODYWLkaw,13304
149
151
  sky/dashboard/out/_next/static/chunks/754-d0da8ab45f9509e9.js,sha256=R6UUmK1P1PfVx9zOU0jlBsVSk5ZchuPwWObAeVkkhU0,785694
150
152
  sky/dashboard/out/_next/static/chunks/7669.1f5d9a402bf5cc42.js,sha256=FbppLXkHKPxzVKrJg15FwCoqLU18yn5jBgYgDkjqDGM,52179
151
153
  sky/dashboard/out/_next/static/chunks/8969-4a6f1a928fb6d370.js,sha256=sr3ziFsAJEhAoBBHE_cHUCfKoVh7KKuVnmXHWOVuSPg,13191
152
- sky/dashboard/out/_next/static/chunks/9025.a1bef12d672bb66d.js,sha256=Qmu5IJ8QMLwYYKT22vy4Rbzsf5BHzaUhdolaX4dhfQc,10561
153
- sky/dashboard/out/_next/static/chunks/9037-89a84fd7fa31362d.js,sha256=2ivIVd6v8xfZg1T4aXFtuZEXDeuejYEKPCQoLMmvbRo,18942
154
- sky/dashboard/out/_next/static/chunks/9946.3b7b43c217ff70ec.js,sha256=VBkPZwDbUpmP2iYJKdnKOcVjY_ZtEGiftXh7Raxs7ck,12481
155
- sky/dashboard/out/_next/static/chunks/9984.7eb6cc51fb460cae.js,sha256=oL14jmN_217nK9OBWcAXikK7XZBcjLCfUymuXbvuTUE,43003
154
+ sky/dashboard/out/_next/static/chunks/9025.c12318fb6a1a9093.js,sha256=1Txv8nMuBYtB0UoWdwmFbkA2iB85jgKB1EJJrE1ETDo,10605
155
+ sky/dashboard/out/_next/static/chunks/9037-1c0101b86582136f.js,sha256=9PUNf3fHjQXmQKTpJq88tdtY7jyIVv-wUuCVe77ttdc,18760
156
156
  sky/dashboard/out/_next/static/chunks/fd9d1056-86323a29a8f7e46a.js,sha256=2lquiZSfbI-gX4j4TW4JSMLL_D5ShqwydgWpFyXrTy8,172834
157
157
  sky/dashboard/out/_next/static/chunks/framework-cf60a09ccd051a10.js,sha256=_QbamfAbTV4_xMVOTjz0rhiAPAi8ET5MuSNjjW5oMng,140965
158
158
  sky/dashboard/out/_next/static/chunks/main-app-587214043926b3cc.js,sha256=t7glRfataAjNw691Wni-ZU4a3BsygRzPKoI8NOm-lsY,116244
159
159
  sky/dashboard/out/_next/static/chunks/main-f15ccb73239a3bf1.js,sha256=jxOPLDVX3rkMc_jvGx2a-N2v6mvfOa8O6V0o-sLT0tI,110208
160
160
  sky/dashboard/out/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js,sha256=6QPOwdWeAVe8x-SsiDrm-Ga6u2DkqgG5SFqglrlyIgA,91381
161
- sky/dashboard/out/_next/static/chunks/webpack-60556df644cd5d71.js,sha256=9QyiAStSuBsuMdldm-N9PCR_IwedqWG8zKp2GfFxfxg,4744
161
+ sky/dashboard/out/_next/static/chunks/webpack-24c4fc6d30ce0193.js,sha256=_-DGyQ8PMhf8YYyN2ReQZkOi9-OWYPf7-HgYI6NX-Gc,4742
162
162
  sky/dashboard/out/_next/static/chunks/pages/_app-ce361c6959bc2001.js,sha256=mllo4Yasw61zRtEO49uE_MrAutg9josSJShD0DNSjf0,95518
163
163
  sky/dashboard/out/_next/static/chunks/pages/_error-c66a4e8afc46f17b.js,sha256=vjERjtMAbVk-19LyPf1Jc-H6TMcrSznSz6brzNqbqf8,253
164
164
  sky/dashboard/out/_next/static/chunks/pages/clusters-469814d711d63b1b.js,sha256=p8CQtv5n745WbV7QdyCapmglI2s_2UBB-f_KZE4RAZg,879
165
165
  sky/dashboard/out/_next/static/chunks/pages/config-dfb9bf07b13045f4.js,sha256=imQqQzmk2dN9ly16TS_d7BV1rHuhzYxrkyx4YUylJCw,796
166
166
  sky/dashboard/out/_next/static/chunks/pages/index-444f1804401f04ea.js,sha256=caOxDw7dl3NlA86txmKO4O-D02wQ_o8WbGleTa-bU1I,482
167
- sky/dashboard/out/_next/static/chunks/pages/infra-c320641c2bcbbea6.js,sha256=ENGA6uTlyElTQY977jpF7jsN-R02XPdruME8Ucbfwlw,839
168
- sky/dashboard/out/_next/static/chunks/pages/jobs-7421e63ac35f8fce.js,sha256=sKihhiBvnPaqWkWAqFiCYGiW-5PM_Q30ebuQ3ArVsrY,832
167
+ sky/dashboard/out/_next/static/chunks/pages/infra-aabba60d57826e0f.js,sha256=2o5gq-Seq79I7ZDayTassiTgmowCjcFgjfmTrUau84k,839
168
+ sky/dashboard/out/_next/static/chunks/pages/jobs-1f70d9faa564804f.js,sha256=Jru6ZTgzabGhsPRSXpjWF1xx1rHJ1F_pB8eCogUZcdY,831
169
169
  sky/dashboard/out/_next/static/chunks/pages/users-018bf31cda52e11b.js,sha256=mZuU1XexJy9ix9hAMnH0l2btGQHJPxohZg4K7NY8faA,838
170
170
  sky/dashboard/out/_next/static/chunks/pages/volumes-739726d6b823f532.js,sha256=URJ4PMHh15XCXB6os2a7ymR3mG3MfTNrKyizYEhW2OE,836
171
- sky/dashboard/out/_next/static/chunks/pages/workspaces-be35b22e2046564c.js,sha256=GECjvYOxR-KjwjvaMxE738HlZnimvjIHKAXjNtai288,863
172
- sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-a0527109c2fab467.js,sha256=bA5Yw2O5deSwLzMWMbMRmZc5hLVjNW1Cqym7bBaATqQ,20079
173
- sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-b77360a343d48902.js,sha256=RqhzNoaAuU_v9rLyUNpjKpyCdj2zRxAJ2-9OKcYUSgY,25560
174
- sky/dashboard/out/_next/static/chunks/pages/infra/[context]-81351f95f3bec08e.js,sha256=82dg8LHkKpmDVPYtAE8RLkkfiWiV_usv7lrqqZfyI1g,847
171
+ sky/dashboard/out/_next/static/chunks/pages/workspaces-7598c33a746cdc91.js,sha256=y_qEXM9YPRja20D8IVLj8mgIEHQPQr2Le733bVrsXJw,863
172
+ sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-0b4b35dc1dfe046c.js,sha256=w4xXHVeRMtj-YgS247UzTnAQFY2Sn_f3lChW1YoyZZ4,19554
173
+ sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-39c9bd4cdb7e5a57.js,sha256=jrHvjeY6koQXoMG7IC87cdQj_zIebCXnhCz4brndpvQ,25579
174
+ sky/dashboard/out/_next/static/chunks/pages/infra/[context]-6563820e094f68ca.js,sha256=P3fWbG3DX-Q1SusyuaCuJILvs9suIxNsdo1SRAenZpc,847
175
175
  sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-dd64309c3fe67ed2.js,sha256=pDCMgJauG-gMgWzCSTF3CBcc_WduZw75NhuyRBbm8bg,29203
176
176
  sky/dashboard/out/_next/static/chunks/pages/jobs/pools/[pool]-07349868f7905d37.js,sha256=Q0LIzBnqZxcH4wL87way-kjcfK74u2K75ytBzz4W0PY,25590
177
177
  sky/dashboard/out/_next/static/chunks/pages/workspace/new-3f88a1c7e86a3f86.js,sha256=83s5N5CZwIaRcmYMfqn2we60n2VRmgFw6Tbx18b8-e0,762
178
- sky/dashboard/out/_next/static/chunks/pages/workspaces/[name]-de06e613e20bc977.js,sha256=8d4XLtF8E3ahNnsbdNUQkJVbM1b9sIG9wRaoRjRwMhE,1495
178
+ sky/dashboard/out/_next/static/chunks/pages/workspaces/[name]-af76bb06dbb3954f.js,sha256=cGCpDszMI6ckUHVelwAh9ZVk1erfz_UXSLz9GCqGUAE,1495
179
179
  sky/dashboard/out/_next/static/css/4614e06482d7309e.css,sha256=nk6GriyGVd1aGXrLd7BcMibnN4v0z-Q_mXGxrHFWqrE,56126
180
- sky/dashboard/out/_next/static/yLz6EPhW_XXmnNs1I6dmS/_buildManifest.js,sha256=0vx9Ui5cReCzs-XsZskgzTXU0ceLC-nwsAGnbXzB0XM,2428
181
- sky/dashboard/out/_next/static/yLz6EPhW_XXmnNs1I6dmS/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
182
- sky/dashboard/out/clusters/[cluster].html,sha256=m4wSO1msOthMmthF6Wtdck1SG1QHxpz0LwSzBgELts0,2936
183
- sky/dashboard/out/clusters/[cluster]/[job].html,sha256=YeyoUGJ5CjdTlv6Vfrn6Nx0myWiL9OVLMvJgfUVnH6w,2073
184
- sky/dashboard/out/infra/[context].html,sha256=gp9HP2TdXGN3OawOonj6ocqIANLcZM3rnAx0AVa-da0,1436
185
- sky/dashboard/out/jobs/[job].html,sha256=-7rs72ZonPD4gF0RQLlxGTrn4AIUqPvkAX5LFWuP3n4,2304
186
- sky/dashboard/out/jobs/pools/[pool].html,sha256=XMROKQ56X9H4v6ozmT9rWors6UeytdU-zCPhH13wSjM,2142
180
+ sky/dashboard/out/_next/static/mriHUOVL_Ht-CeW-e7saa/_buildManifest.js,sha256=j4hUKdEb7DHqZJ-rvMOxT3mkQo9AEt-irTGtT_71I_Y,2428
181
+ sky/dashboard/out/_next/static/mriHUOVL_Ht-CeW-e7saa/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
182
+ sky/dashboard/out/clusters/[cluster].html,sha256=awKI1ERGY6gsZ4wVy4wpWt87s4c1iYU0znx3d_cGIHE,2936
183
+ sky/dashboard/out/clusters/[cluster]/[job].html,sha256=gT6rW2bwM0fEMmUgJ9HPVP0XOYr1pjQwOyr9-5Ub4KY,2073
184
+ sky/dashboard/out/infra/[context].html,sha256=51jI9EF9qbjQ-n5jncustgZCLO5dqJN5pzDdwE1ygi4,1436
185
+ sky/dashboard/out/jobs/[job].html,sha256=jzszBcZp6Sf2Ts4HqMbE91fIyCVI-mwUwFKWGYZE9Yw,2304
186
+ sky/dashboard/out/jobs/pools/[pool].html,sha256=9KH_9Wx1m86GSuv55-qO3FLrykoMEgHNhOLN9dDWOHY,2142
187
187
  sky/dashboard/out/videos/cursor-small.mp4,sha256=8tRdp1vjawOrXUar1cfjOc-nkaKmcwCPZx_LO0XlCvQ,203285
188
- sky/dashboard/out/workspace/new.html,sha256=wNBCU_Eiv6DMC-B2aq8OXnD4xitvKgnJumUk8N-GaSM,1428
189
- sky/dashboard/out/workspaces/[name].html,sha256=dtQFbM0FxIpCcpQOT-hbouQIqN7rHPKzKHM-oqJkirE,2759
188
+ sky/dashboard/out/workspace/new.html,sha256=7dQtWG5nPjziujK8cx24lcqOJm7i-yXDUhj2pIDjqZk,1428
189
+ sky/dashboard/out/workspaces/[name].html,sha256=FPxDbOfSyjHOh2GL-pbEJJrstPTXB_hI5wLUAaaWEtU,2759
190
190
  sky/data/__init__.py,sha256=Nhaf1NURisXpZuwWANa2IuCyppIuc720FRwqSE2oEwY,184
191
191
  sky/data/data_transfer.py,sha256=N8b0CQebDuHieXjvEVwlYmK6DbQxUGG1RQJEyTbh3dU,12040
192
192
  sky/data/data_utils.py,sha256=AjEA_JRjo9NBMlv-Lq5iV4lBED_YZ1VqBR9pG6fGVWE,35179
193
- sky/data/mounting_utils.py,sha256=OduhvpNQuuqXc3VgDEpwnZI1gY6zDwZlx_sTJfvv5IY,24582
193
+ sky/data/mounting_utils.py,sha256=Iq0ACgj3FG1Cr8AHWj4MkmY_xSz28h24OVzfERNHxdE,23972
194
194
  sky/data/storage.py,sha256=5GShP2kJaPDNldVWQxrRXOqhL74rc40JhkpB_mpytfQ,208682
195
195
  sky/data/storage_utils.py,sha256=YVLrBdZvQr5wvug0TYOpuSuSriySIiqkD-xsdAIB84s,14978
196
196
  sky/jobs/__init__.py,sha256=BiABNdlab7xZDOv4C34kc1XuxG6C_Ip7Q96mT2iCnIg,1686
@@ -198,7 +198,7 @@ sky/jobs/constants.py,sha256=UEjv_adaHB8UDiOPF_cgZauAM5U9vMu2rn6N60f3bhk,3306
198
198
  sky/jobs/controller.py,sha256=e6a5-AnknM3IVslXtKFs70FQwxe5p1WiZm4mOgo7pmY,38671
199
199
  sky/jobs/recovery_strategy.py,sha256=8fbaTOcsXxmivBJ3t8yiEM-1BI1cT8ySKoQz8WsZ0qE,31614
200
200
  sky/jobs/scheduler.py,sha256=iBcMy0SS60QxvwK93HAziFErt66t_66CckFP6i7pJDU,15265
201
- sky/jobs/state.py,sha256=eDlI8eB2RGR-B1UDYRfcBsAJOp_K9DZOl91tkUEYcAc,67404
201
+ sky/jobs/state.py,sha256=mV1NKHokYmB5y3cBAmW5em7zIorN_gulWdEemwzqAI0,67397
202
202
  sky/jobs/utils.py,sha256=1FLCcD-RHyA9xZdHmZO2mlb-NVpMiyQ85oETx0wbApc,85690
203
203
  sky/jobs/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
204
204
  sky/jobs/client/sdk.py,sha256=ypSb8iRHWI7WEwai5ngBeShgBNTJf_0iehdGx-xyASA,16566
@@ -258,7 +258,7 @@ sky/provision/hyperbolic/utils.py,sha256=NCa3ULvIi64-YHYoOnPd3SShlJ6VuQsEwaTBqHF
258
258
  sky/provision/kubernetes/__init__.py,sha256=xzVA9OCga0pCdUAQ7zZiCZMdq-Y0182oHlIKWESA15A,896
259
259
  sky/provision/kubernetes/config.py,sha256=a5HzkR_FKVhHHTiBA1sS9GZaOSKa3ML88wGrzm-7J3Y,29512
260
260
  sky/provision/kubernetes/constants.py,sha256=vZJQsAVjAgwsOskB48tIFSXtNw7IFnJOQE_H6N-vOYQ,1130
261
- sky/provision/kubernetes/instance.py,sha256=PFqJg7-NqKfXv6R6zLmxipMAMwPD608EZHxPB2ClNvU,69732
261
+ sky/provision/kubernetes/instance.py,sha256=NgCQxnbBqVKeU5Tng6JCR_Lqi9Y6Eo05Jcj5FyMZnUo,70031
262
262
  sky/provision/kubernetes/network.py,sha256=Dgj8u7IQBHKHt-mSDhYzue1wfDk96FR_8fO89TwuZ2E,12846
263
263
  sky/provision/kubernetes/network_utils.py,sha256=XYgZ6BEO-YB2o3Y_eXgr2Czk9wxGdWSs0mEJnpLU77Q,12256
264
264
  sky/provision/kubernetes/utils.py,sha256=6WVW-yQYaOJ80YZOyHNlWVA-jKITKFfzVLjELRHibCU,159371
@@ -341,7 +341,7 @@ sky/serve/controller.py,sha256=lyB6EHIfEMqKg-gshFLKUHEZqs77ufsD_ev6catz10Q,13975
341
341
  sky/serve/load_balancer.py,sha256=gQpjOwnpu2HLdymbYCeCgJodDklMEwYMGgYU9ThXHPM,15774
342
342
  sky/serve/load_balancing_policies.py,sha256=hhPrcuwT_rEJx4DMRC6iuLpUY8wOabUtXtPK7clg1F8,10148
343
343
  sky/serve/replica_managers.py,sha256=DVEclqGoCS-9xhOs7lkaxhxLtj97s1ZfAeatFAz3f0o,70857
344
- sky/serve/serve_state.py,sha256=k9rvkz-l8tpZZN1cL7aBtb60l_DE_3dE0DVyfT4tYzg,33328
344
+ sky/serve/serve_state.py,sha256=pRtxWBagIUUvgrKNZ51-9xfW0hadSGILIMzVRzm_0IU,33321
345
345
  sky/serve/serve_utils.py,sha256=SIfOJ5yhGR3STcZgbltG3iU1Dg9rC6jeukNeGPLMtMg,69243
346
346
  sky/serve/service.py,sha256=mD5bOfw6VeyyqkBG-NPiM89ZP4V7I4ACTiqg4jLQaJg,18464
347
347
  sky/serve/service_spec.py,sha256=WTkDVJib1n6h70E3EhKGNn01qeAxD5ZGYMrFshz6yd8,22701
@@ -356,15 +356,15 @@ sky/serve/server/impl.py,sha256=mqK3FZR8Nutu9p3WPNJZaHoLetcF1UghKB21aZ5J5_M,4278
356
356
  sky/serve/server/server.py,sha256=zzHQdsFWdSzoAIgPw-SQsxem559psu31X6BG0sSWSxw,4464
357
357
  sky/server/__init__.py,sha256=MPPBqFzXz6Jv5QSk6td_IcvnfXfNErDZVcizu4MLRow,27
358
358
  sky/server/common.py,sha256=0sXjJqrAg1G1oZKg3492RzYuBjzCgXp8JXqyRIf3ysk,39410
359
- sky/server/config.py,sha256=XWf5Kw4am6vMO5wcyWevbQAFH-dmKb7AMEgDzD083-M,8538
359
+ sky/server/config.py,sha256=lWggVysR8dFn5gxk1Xab9abyCyDBcA6kehEWFmWU97I,9916
360
360
  sky/server/constants.py,sha256=yjX8t73w6gj3_SDSP4vBFdNdiOqq7dnlXT2pw3yo0jM,2321
361
361
  sky/server/daemons.py,sha256=Og2F560XO4n70TPxxvrbkNUujftX4V4GxRA0E6-nSrw,9206
362
362
  sky/server/metrics.py,sha256=G9HMhioPmx9ppbyrPAk-pyVe5yUw6LBuXD5aRqqsEfM,6140
363
363
  sky/server/rest.py,sha256=6Qcn6fjypP3j9UHdKRgvt2-PU1LKz2VU2aVQEA1D6EI,14354
364
- sky/server/server.py,sha256=edmJkXtwzplRaS62b4WezuXcIRU90_zIID9FK6zMYrk,80764
364
+ sky/server/server.py,sha256=ZCCtVsDV6uHYLEXHn9rsKFnmHfaGpDPDuNpjcw5qvZ8,81027
365
365
  sky/server/state.py,sha256=YbVOMJ1JipQQv17gLIGyiGN7MKfnP83qlUa5MB1z0Yk,747
366
366
  sky/server/stream_utils.py,sha256=RrxRjZR0623A_ITjSMgUmDlXcSkT8NnNjb4f24OLiAE,9613
367
- sky/server/uvicorn.py,sha256=xUgpisc9EF2jorUEENwsOvIMD50_-HK_zOooOH8Hrxc,11082
367
+ sky/server/uvicorn.py,sha256=5Eps3F5jAgcIDVuXIDvXSz_rmBldy_y-pxwAuI6Audc,11440
368
368
  sky/server/versions.py,sha256=3atZzUa7y1XeKNcrfVxKWAo_5ZyCOnbY7DKpIqed7Do,10011
369
369
  sky/server/auth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
370
370
  sky/server/auth/authn.py,sha256=zvabLsEAf9Ql6AbXJuWZ54uaiOr1mwFGGvQn84v66H4,2037
@@ -373,11 +373,11 @@ sky/server/html/log.html,sha256=TSGZktua9Ysl_ysg3w60rjxAxhH61AJnsYDHdtqrjmI,6929
373
373
  sky/server/html/token_page.html,sha256=eUndS5u1foL9vaWGPRTLMt7lCzD1g0wYJ2v_EeeFzlc,7046
374
374
  sky/server/requests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
375
375
  sky/server/requests/event_loop.py,sha256=OhpPbuce65bbjpGRlcJa78AVnYSm08SzFKt70ypCUuQ,1211
376
- sky/server/requests/executor.py,sha256=5yrttKUBi2wReUlizGIX5XYofVNp4TUfhGyxDWuTioI,27735
376
+ sky/server/requests/executor.py,sha256=gf9TO-HCDj7Afw2lxhN2Gh4zlHAa8d-IQ17hXaYBLsE,28022
377
377
  sky/server/requests/payloads.py,sha256=2MqjAwAkZ2Gspes5aAToC0Z5gYOSBzB39mUVA8ep6Kw,26526
378
378
  sky/server/requests/preconditions.py,sha256=KxTAoYqpJU96Ot36NHtRq3PC3f_BXk_cHI0b2eA8U6A,7323
379
379
  sky/server/requests/process.py,sha256=UpJp5rZizNMFRCNRtudFSjbcJhFarFbtAGDWI9x_ZyE,13197
380
- sky/server/requests/requests.py,sha256=yQ_dFkV7Aiv36geNqdXjIg3fU5-J8EY8YuO0pKyeF14,29956
380
+ sky/server/requests/requests.py,sha256=67R7DsBerd4nKhynn2pJMEfrfCFA9WAQow09LEafxG8,30073
381
381
  sky/server/requests/queues/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
382
382
  sky/server/requests/queues/local_queue.py,sha256=X6VkBiUmgd_kfqIK1hCtMWG1b8GiZbY70TBiBR6c6GY,416
383
383
  sky/server/requests/queues/mp_queue.py,sha256=jDqP4Jd28U3ibSFyMR1DF9I2OWZrPZqFJrG5S6RFpyw,3403
@@ -393,7 +393,7 @@ sky/skylet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
393
393
  sky/skylet/attempt_skylet.py,sha256=GZ6ITjjA0m-da3IxXXfoHR6n4pjp3X3TOXUqVvSrV0k,2136
394
394
  sky/skylet/autostop_lib.py,sha256=2eab980ckQ5dA2DFAJlI5bAJ6EI7YI-JSlzFoTA9XwU,9698
395
395
  sky/skylet/configs.py,sha256=nNBnpuzoU696FbC3Nv0qKVSDuTw4GAbr7eCcg0_Sldo,2135
396
- sky/skylet/constants.py,sha256=5rZEEB6fEjnp5py1Gxc7G8APBE4KKtICd1TlUJGahy0,24152
396
+ sky/skylet/constants.py,sha256=8mVjUT2-_vYYmdSWUlodbRiBNFbDDj1NygOdZDHksBE,24165
397
397
  sky/skylet/events.py,sha256=vOGqqgZM0aJAjSg3YluIO7mnbbxg9VF-iBVPuQHuBac,13801
398
398
  sky/skylet/job_lib.py,sha256=cUud2sVcnHcZbqzHYGpiBy7EKSIphX8SqWg5Rsh-Su4,49533
399
399
  sky/skylet/log_lib.py,sha256=-kfeSNb7gR7Z-G7ADHh9Na4_QO-T0o2WzYYhcrrHSIE,23349
@@ -424,7 +424,7 @@ sky/skylet/ray_patches/worker.py.diff,sha256=agiK3C1elsLO8aLcspfUJvtG-88ckLZoDmx
424
424
  sky/skylet/ray_patches/worker.py.patch,sha256=_OBhibdr3xOy5Qje6Tt8D1eQVm_msi50TJbCJmOTxVU,565
425
425
  sky/ssh_node_pools/__init__.py,sha256=phpYJAd7I0uO1-O87eb9PbetGbtMiKW5mI-NQCZlXPA,40
426
426
  sky/ssh_node_pools/core.py,sha256=uUWDsn5zXkOOtIX5dpB_8qwb33_Fy6NhBDQADGAQ5WA,4917
427
- sky/ssh_node_pools/server.py,sha256=Qb4Zu6DxqDQG8snUtvWLnUu40hqZEczdA1hVaP-h-y0,8351
427
+ sky/ssh_node_pools/server.py,sha256=o0plwpeFboTFsxHS5kT8veqqJvP6MRKVPSOcEe0L-Eg,8321
428
428
  sky/templates/aws-ray.yml.j2,sha256=ppW_L_o4g465jOgYNyDBssMt0V5ryWNoeLjs6Xeq9pE,9380
429
429
  sky/templates/azure-ray.yml.j2,sha256=cQfCDev0quaVfVst_ly3tA8XrGXuAmAhkRJuS7qxFhg,6373
430
430
  sky/templates/cudo-ray.yml.j2,sha256=9g0yFYUk6xPet-JNTPuVDZlVZ9oAcFPL1qaE6fyy-Xc,3797
@@ -458,7 +458,7 @@ sky/users/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
458
458
  sky/users/model.conf,sha256=nPAaMai2fc-nlnEDTfW5Lyw6vgCcOS32BSms4aFOHoY,259
459
459
  sky/users/permission.py,sha256=ttqU5aVH9gNTIkO8vGeURTwC8eB5yYSFVGUbgNNbzpo,15563
460
460
  sky/users/rbac.py,sha256=3ZWukXo85u6zWbPmHcPsF9EtZ3cd_51PLZYf2h-7uAM,3636
461
- sky/users/server.py,sha256=ObkKa4eLgyfwDDWPObWCl7DID5f8PXbpiIit_4YFyNs,27972
461
+ sky/users/server.py,sha256=1EyTX26oB07yXXe35nDncyBT53caGzw9HxSrScZABK8,28091
462
462
  sky/users/token_service.py,sha256=78Xgm6rkd5M6IMMUekAp2YNLms4teNNvVDPfHh_5jts,7804
463
463
  sky/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
464
464
  sky/utils/accelerator_registry.py,sha256=I2BLe74i7qBTE4X73N-cVbOJNX1Pcextm9OIRQFfnl0,4803
@@ -508,8 +508,8 @@ sky/utils/aws/get_default_security_group.py,sha256=LPzz5133ZUMbzDD3iqqACL9Pdlgqi
508
508
  sky/utils/cli_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
509
509
  sky/utils/cli_utils/status_utils.py,sha256=KYjicOiPs9n8C9VsA-JiDbhh5onHj2HwtLmIaicGjbc,16122
510
510
  sky/utils/db/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
511
- sky/utils/db/db_utils.py,sha256=JKHYHNqAwVSqpFAgJT1ESJl5AIWA3Q1kRLYYXGuP3-E,12968
512
- sky/utils/db/migration_utils.py,sha256=f0ePBNUSjsLlWrx31R7riwZm8zUmdUn2ku-dMKTqbDk,5732
511
+ sky/utils/db/db_utils.py,sha256=UmU7XXWhrsxA0DsOo1SfaWWJQuZyj4RGJssdcjNJjC4,15069
512
+ sky/utils/db/migration_utils.py,sha256=UlcCJ6jo0GHOSjMO_hf2cx2XSl18HldNKSBY-g9Ern8,4438
513
513
  sky/utils/kubernetes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
514
514
  sky/utils/kubernetes/cleanup-tunnel.sh,sha256=rXMXuMfyB9bzKjLvXdMCjimDVvdjGPMXuqeo2ZNx9OA,2244
515
515
  sky/utils/kubernetes/config_map_utils.py,sha256=Qq-Glt1SeYDfhcCqcpRtBDRPum0CYR50gpoa_Xm7u1s,4754
@@ -539,9 +539,9 @@ sky/workspaces/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
539
539
  sky/workspaces/core.py,sha256=AjwbbRwk0glzCnqICJk4sQzMoUcawixbXoQWKLB3-aQ,25372
540
540
  sky/workspaces/server.py,sha256=Box45DS54xXGHy7I3tGKGy-JP0a8G_z6IhfvGlEXtsA,3439
541
541
  sky/workspaces/utils.py,sha256=IIAiFoS6sdb2t0X5YoX9AietpTanZUQNTK8cePun-sY,2143
542
- skypilot_nightly-1.0.0.dev20250903.dist-info/licenses/LICENSE,sha256=emRJAvE7ngL6x0RhQvlns5wJzGI3NEQ_WMjNmd9TZc4,12170
543
- skypilot_nightly-1.0.0.dev20250903.dist-info/METADATA,sha256=bVWCgttQYNzObKNHZA_OEgd8txp8f-XK2I5VQWNaXjE,19709
544
- skypilot_nightly-1.0.0.dev20250903.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
545
- skypilot_nightly-1.0.0.dev20250903.dist-info/entry_points.txt,sha256=StA6HYpuHj-Y61L2Ze-hK2IcLWgLZcML5gJu8cs6nU4,36
546
- skypilot_nightly-1.0.0.dev20250903.dist-info/top_level.txt,sha256=qA8QuiNNb6Y1OF-pCUtPEr6sLEwy2xJX06Bd_CrtrHY,4
547
- skypilot_nightly-1.0.0.dev20250903.dist-info/RECORD,,
542
+ skypilot_nightly-1.0.0.dev20250904.dist-info/licenses/LICENSE,sha256=emRJAvE7ngL6x0RhQvlns5wJzGI3NEQ_WMjNmd9TZc4,12170
543
+ skypilot_nightly-1.0.0.dev20250904.dist-info/METADATA,sha256=bqgt3hFWsgQE5EaxqT2RJ1IlNekMoTs9GGtKezL6Kug,19709
544
+ skypilot_nightly-1.0.0.dev20250904.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
545
+ skypilot_nightly-1.0.0.dev20250904.dist-info/entry_points.txt,sha256=StA6HYpuHj-Y61L2Ze-hK2IcLWgLZcML5gJu8cs6nU4,36
546
+ skypilot_nightly-1.0.0.dev20250904.dist-info/top_level.txt,sha256=qA8QuiNNb6Y1OF-pCUtPEr6sLEwy2xJX06Bd_CrtrHY,4
547
+ skypilot_nightly-1.0.0.dev20250904.dist-info/RECORD,,
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3015],{23015:function(e,s,t){t.r(s),t.d(s,{ClusterJobs:function(){return K},ManagedJobs:function(){return B},ManagedJobsTable:function(){return H},Status2Actions:function(){return q},filterJobsByName:function(){return J},filterJobsByPool:function(){return Z},filterJobsByUser:function(){return O},filterJobsByWorkspace:function(){return U},statusGroups:function(){return P}});var r=t(85893),a=t(67294),l=t(11163),n=t(41664),i=t.n(n),c=t(55739),o=t(30803),d=t(37673),u=t(68764),h=t(36989),x=t(51214),m=t(68969),p=t(6378);class j{_generateFilterKey(e){let{allUsers:s=!0,nameMatch:t,userMatch:r,workspaceMatch:a,poolMatch:l,statuses:n}=e;return["allUsers:".concat(s),t?"name:".concat(t):"",r?"user:".concat(r):"",a?"workspace:".concat(a):"",l?"pool:".concat(l):"",n&&n.length>0?"statuses:".concat(n.sort().join(",")):""].filter(Boolean).join("|")||"default"}_getCacheStatus(e){let s=this.fullDataCache.get(e),t=Date.now();if(!s)return{isCached:!1,isFresh:!1,age:0,maxAge:12e4,hasData:!1};let r=t-s.timestamp;return{isCached:!0,isFresh:r<12e4,age:r,maxAge:12e4,hasData:s.jobs&&Array.isArray(s.jobs),data:s}}async getPaginatedJobs(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{page:s=1,limit:t=10,...r}=e,a=this._generateFilterKey(r);try{let e=this._getCacheStatus(a);if(e.isCached&&e.hasData){let l=e.data,n=(s-1)*t,i=l.jobs.slice(n,n+t);if(!this.prefetching.has(a)&&(!e.isFresh||e.age>e.maxAge/2)){let e=this._loadFullDataset(r,a).catch(()=>{}).finally(()=>this.prefetching.delete(a));this.prefetching.set(a,e)}return{jobs:i,total:l.total,totalNoFilter:l.totalNoFilter||l.total,controllerStopped:l.controllerStopped,statusCounts:l.statusCounts||{},fromCache:!0,cacheStatus:e.isFresh?"local_cache_hit":"local_cache_stale_hit"}}let l=await p.default.get(m.getManagedJobs,[{...r,page:s,limit:t}]),n=(null==l?void 0:l.jobs)||[],i="number"==typeof(null==l?void 0:l.total)?l.total:n.length,c=!!(null==l?void 0:l.controllerStopped);if(!this.prefetching.has(a)){let e=this._loadFullDataset(r,a).catch(e=>{console.warn("Background prefetch of full jobs failed:",e)}).finally(()=>{this.prefetching.delete(a)});this.prefetching.set(a,e)}return{jobs:n,total:i,totalNoFilter:(null==l?void 0:l.totalNoFilter)||i,controllerStopped:c,statusCounts:(null==l?void 0:l.statusCounts)||{},fromCache:!1,cacheStatus:"server_page_fetch"}}catch(e){return console.error("Error in getPaginatedJobs:",e),{jobs:[],total:0,totalNoFilter:0,controllerStopped:!1,statusCounts:{},fromCache:!1,cacheStatus:"error"}}}async _loadFullDataset(e,s){let t=await p.default.get(m.getManagedJobs,[e]);if(t.controllerStopped||!t.jobs)return t;let r={jobs:t.jobs,total:t.jobs.length,totalNoFilter:t.totalNoFilter||t.jobs.length,controllerStopped:!1,statusCounts:t.statusCounts||{},timestamp:Date.now()};return this.fullDataCache.set(s,r),r}isDataLoading(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},s=this._generateFilterKey(e);return this.isLoading.has(s)||this.prefetching.has(s)}isDataCached(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},s=this._generateFilterKey(e),t=this._getCacheStatus(s);return t.isCached&&t.isFresh&&t.hasData}getCacheStatus(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},s=this._generateFilterKey(e);return this._getCacheStatus(s)}invalidateCache(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;if(e){let s=this._generateFilterKey(e);this.fullDataCache.delete(s),this.isLoading.delete(s),this.prefetching.delete(s)}else this.fullDataCache.clear(),this.isLoading.clear(),this.prefetching.clear();p.default.invalidateFunction(m.getManagedJobs)}getCacheStats(){let e={cachedFilters:Array.from(this.fullDataCache.keys()),loadingFilters:Array.from(this.isLoading.keys()),prefetchingFilters:Array.from(this.prefetching.keys()),cacheSize:this.fullDataCache.size,loadingCount:this.isLoading.size,prefetchingCount:this.prefetching.size};for(let[s,t]of(e.detailedStatus={},this.fullDataCache.entries())){let r=this._getCacheStatus(s);e.detailedStatus[s]={age:r.age,isFresh:r.isFresh,hasData:r.hasData,jobCount:t.jobs?t.jobs.length:0}}return e}constructor(){this.fullDataCache=new Map,this.isLoading=new Map,this.prefetching=new Map}}let f=new j;var g=t(23266),b=t(17324),v=t(53081),N=t(13626),w=t(23293),y=t(6521),k=t(16826),C=t(53610),S=t(92128),L=t(94545),_=t(99307),E=t(20546),D=t(23001),R=t(88950);let F=(e,s)=>{let t={...e.query},r=[],a=[],l=[];s.map((e,s)=>{var t;r.push(null!==(t=e.property.toLowerCase())&&void 0!==t?t:""),a.push(e.operator),l.push(e.value)}),t.property=r,t.operator=a,t.value=l,e.replace({pathname:e.pathname,query:t},void 0,{shallow:!0})},M=(e,s)=>{let t={...e.query},r=t.property,a=t.operator,l=t.value;if(void 0===r)return[];let n=[],i=Array.isArray(r)?r.length:1;if(1===i)n.push({property:s.get(r),operator:a,value:l});else for(let e=0;e<i;e++)n.push({property:s.get(r[e]),operator:a[e],value:l[e]});return n},I=e=>{var s,t;let{propertyList:l=[],valueList:n,setFilters:i,updateURLParams:c,placeholder:o="Filter items"}=e,d=(0,a.useRef)(null),u=(0,a.useRef)(null),[h,x]=(0,a.useState)(!1),[m,p]=(0,a.useState)(""),[j,f]=(0,a.useState)((null===(s=l[0])||void 0===s?void 0:s.value)||"status"),[g,b]=(0,a.useState)([]);(0,a.useEffect)(()=>{let e=e=>{u.current&&!u.current.contains(e.target)&&d.current&&!d.current.contains(e.target)&&x(!1)};return document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e)}},[]),(0,a.useEffect)(()=>{let e=[];n&&"object"==typeof n&&(e=n[j]||[]),""!==m.trim()&&(e=e.filter(e=>e&&e.toString().toLowerCase().includes(m.toLowerCase()))),b(e)},[j,n,m]);let v=e=>{let s=l.find(s=>s.value===e);return s?s.label:e},N=e=>{i(s=>{let t=[...s,{property:v(j),operator:":",value:e}];return c(t),t}),x(!1),p(""),d.current.focus()};return(0,r.jsxs)("div",{className:"flex flex-row border border-gray-300 rounded-md overflow-visible",children:[(0,r.jsx)("div",{className:"border-r border-gray-300 flex-shrink-0",children:(0,r.jsxs)(R.Ph,{onValueChange:f,value:j,children:[(0,r.jsx)(R.i4,{"aria-label":"Filter Property",className:"focus:ring-0 focus:ring-offset-0 border-none rounded-l-md rounded-r-none w-20 sm:w-24 md:w-32 h-8 text-xs sm:text-sm",children:(0,r.jsx)(R.ki,{placeholder:(null===(t=l[0])||void 0===t?void 0:t.label)||"Status"})}),(0,r.jsx)(R.Bw,{children:l.map((e,s)=>(0,r.jsx)(R.Ql,{value:e.value,children:e.label},"property-item-".concat(s)))})]})}),(0,r.jsxs)("div",{className:"relative flex-1",children:[(0,r.jsx)("input",{type:"text",ref:d,placeholder:o,value:m,onChange:e=>{p(e.target.value),h||x(!0)},onFocus:()=>{x(!0)},onKeyDown:e=>{"Enter"===e.key&&""!==m.trim()?(i(e=>{let s=[...e,{property:v(j),operator:":",value:m}];return c(s),s}),p(""),x(!1)):"Escape"===e.key&&(x(!1),d.current.blur())},className:"h-8 w-full sm:w-96 px-3 pr-8 text-sm border-none rounded-l-none rounded-r-md focus:ring-0 focus:outline-none",autoComplete:"off"}),m&&(0,r.jsx)("button",{onClick:()=>{p(""),x(!1)},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,r.jsx)("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})}),h&&g.length>0&&(0,r.jsx)("div",{ref:u,className:"absolute z-50 mt-1 w-full bg-white border border-gray-200 rounded-md shadow-lg max-h-60 overflow-y-auto",style:{zIndex:9999},children:g.map((e,s)=>(0,r.jsx)("div",{className:"px-3 py-2 cursor-pointer hover:bg-gray-50 text-sm ".concat(s!==g.length-1?"border-b border-gray-100":""),onClick:()=>N(e),children:(0,r.jsx)("span",{className:"text-sm text-gray-700",children:e})},"".concat(e,"-").concat(s)))})]})]})},A=e=>{let{filters:s=[],setFilters:t,updateURLParams:a}=e,l=e=>{t(s=>{let t=s.filter((s,t)=>t!==e);return a(t),t})};return(0,r.jsx)(r.Fragment,{children:(0,r.jsx)("div",{className:"flex items-center gap-4 py-2 px-2",children:(0,r.jsxs)("div",{className:"flex flex-wrap items-content gap-2",children:[s.map((e,s)=>(0,r.jsx)(z,{filter:e,onRemove:()=>l(s)},"filteritem-".concat(s))),s.length>0&&(0,r.jsx)(r.Fragment,{children:(0,r.jsx)("button",{onClick:()=>{a([]),t([])},className:"rounded-full px-4 py-1 text-sm text-gray-700 bg-gray-200 hover:bg-gray-300",children:"Clear filters"})})]})})})},z=e=>{let{filter:s,onRemove:t}=e;return(0,r.jsx)(r.Fragment,{children:(0,r.jsxs)("div",{className:"flex items-center text-blue-600 bg-blue-100 px-1 py-1 rounded-full text-sm",children:[(0,r.jsxs)("div",{className:"flex items-center gap-1 px-2",children:[(0,r.jsx)("span",{children:"".concat(s.property," ")}),(0,r.jsx)("span",{children:"".concat(s.operator," ")}),(0,r.jsx)("span",{children:" ".concat(s.value)})]}),(0,r.jsx)("button",{onClick:()=>t(),className:"p-0.5 ml-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,r.jsx)("svg",{className:"h-3 w-3",fill:"none",stroke:"white",viewBox:"0 0 24 24",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:5,d:"M6 18L18 6M6 6l12 12"})})})]})})},P={active:["PENDING","RUNNING","RECOVERING","SUBMITTED","STARTING","CANCELLING"],finished:["SUCCEEDED","FAILED","CANCELLED","FAILED_SETUP","FAILED_PRECHECKS","FAILED_NO_RESOURCE","FAILED_CONTROLLER"]},W=[{label:"Name",value:"name"},{label:"User",value:"user"},{label:"Workspace",value:"workspace"},{label:"Pool",value:"pool"}];function J(e,s){if(!s||""===s.trim())return e;let t=s.toLowerCase().trim();return e.filter(e=>(e.name||"").toLowerCase().includes(t))}function U(e,s){return s&&"ALL_WORKSPACES"!==s?e.filter(e=>(e.workspace||"default").toLowerCase()===s.toLowerCase()):e}function O(e,s){return s&&"ALL_USERS"!==s?e.filter(e=>(e.user_hash||e.user)===s):e}function Z(e,s){if(!s||""===s.trim())return e;let t=s.toLowerCase().trim();return e.filter(e=>(e.pool||"").toLowerCase().includes(t))}let T=e=>{if(!e)return"-";let s=e instanceof Date?e:new Date(1e3*e);return(0,r.jsx)(h.Zg,{date:s})};function B(){let e=(0,l.useRouter)(),[s,t]=(0,a.useState)(!1),[n,c]=(0,a.useState)(!0),[o,d]=(0,a.useState)(!0),u=a.useRef(null),x=a.useRef(null),[j,g]=(0,a.useState)([]),[N,w]=(0,a.useState)([]),y=async function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];t(!0),!e&&o&&c(!0);try{let[e]=await Promise.all([p.default.get(m.vs,[{}])]);g(e.pools||[])}catch(e){console.error("Error fetching data:",e)}finally{t(!1),!e&&o&&(c(!1),d(!1))}};(0,a.useEffect)(()=>{y()},[]);let k=s=>{F(e,s)},C=a.useCallback(()=>{let s=new Map;s.set("",""),s.set("status","Status"),s.set("name","Name"),s.set("user","User"),s.set("workspace","Workspace"),s.set("pool","Pool"),w(M(e,s))},[e,w]);return(0,a.useEffect)(()=>{e.isReady&&C()},[e.isReady,e.query.tab,C]),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-2 mb-1",children:[(0,r.jsx)("div",{className:"text-base",children:(0,r.jsx)(i(),{href:"/jobs",className:"text-sky-blue hover:underline leading-none",children:"Managed Jobs"})}),(0,r.jsx)("div",{className:"w-full sm:w-auto",children:(0,r.jsx)(I,{propertyList:W,valueList:{},setFilters:w,updateURLParams:k,placeholder:"Filter jobs"})})]}),(0,r.jsx)(A,{filters:N,setFilters:w,updateURLParams:k}),(0,r.jsx)(H,{refreshInterval:h.yc,setLoading:t,refreshDataRef:u,filters:N,onRefresh:()=>{f.invalidateCache(),p.default.invalidate(m.vs,[{}]),p.default.invalidate(b.fX),p.default.invalidate(v.R),y(!0),u.current&&u.current(),x.current&&x.current()},poolsData:j,poolsLoading:n}),(0,r.jsx)("div",{className:"mb-4",children:(0,r.jsx)(X,{refreshInterval:h.yc,setLoading:t,refreshDataRef:x})})]})}function H(e){let{refreshInterval:s,setLoading:t,refreshDataRef:l,filters:n,onRefresh:j,poolsData:b,poolsLoading:v}=e,[y,k]=(0,a.useState)([]),[C,R]=(0,a.useState)(0),[F,M]=(0,a.useState)(0),[I,A]=(0,a.useState)({key:null,direction:"ascending"}),[z,W]=(0,a.useState)(!1),[J,U]=(0,a.useState)(!0),[O,Z]=(0,a.useState)(1),[B,H]=(0,a.useState)(10),[K,X]=(0,a.useState)(null),Y=(0,a.useRef)(null),[Q,$]=(0,a.useState)([]),[ee,es]=(0,a.useState)({}),[et,er]=(0,a.useState)({}),[ea,el]=(0,a.useState)(!1),[en,ei]=(0,a.useState)(!1),[ec,eo]=(0,a.useState)(!1),[ed,eu]=(0,a.useState)("all"),[eh,ex]=(0,a.useState)(!0),[em,ep]=(0,a.useState)({isOpen:!1,title:"",message:"",onConfirm:null}),ej=(0,D.X)(),ef=async()=>{ep({isOpen:!0,title:"Restart Controller",message:"Are you sure you want to restart the controller?",onConfirm:async()=>{try{eo(!0),W(!0),await (0,m.Ce)("restartcontroller"),await eg()}catch(e){console.error("Error restarting controller:",e)}finally{eo(!1),W(!1)}}})},eg=a.useCallback(async function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},s=!1!==e.includeStatus;W(!0),t(!0);try{let e,t;let r=e=>{let s=(n||[]).find(s=>(s.property||"").toLowerCase()===e);return s&&s.value?String(s.value):void 0};Q.length>0?t=Q:eh?"active"===ed?t=P.active:"finished"===ed&&(t=P.finished):t=[];let a={allUsers:!0,nameMatch:r("name"),userMatch:r("user"),workspaceMatch:r("workspace"),poolMatch:r("pool"),statuses:t,page:O,limit:B},l=null;if(f.isDataCached(a),f.isDataLoading(a),s){let[s,t]=await Promise.all([f.getPaginatedJobs(a),p.default.get(g.getClusters)]);e=s,l=t}else e=await f.getPaginatedJobs(a);let{jobs:i=[],total:c=0,totalNoFilter:o=0,controllerStopped:d=!1,cacheStatus:u="unknown",statusCounts:h={}}=e||{},x=!1,m=!1;if(s&&l){let e=null==l?void 0:l.find(e=>(0,L.Ym)(e.cluster)),s=e?e.status:"NOT_FOUND";"STOPPED"==s&&d&&(x=!0),"LAUNCHING"==s&&(m=!0)}k(i),R(c||0),M(o||0),el(!!x),ei(!!m),er(h),U(!1)}catch(e){console.error("Error fetching data:",e),k([]),el(!1),U(!1)}finally{W(!1),t(!1)}},[t,n,O,B,Q,eh,ed]);a.useEffect(()=>{l&&(l.current=eg)},[l,eg]);let eb=a.useRef(eg);a.useEffect(()=>{eb.current=eg},[eg]),a.useEffect(()=>{eg({includeStatus:!0})},[]),a.useEffect(()=>{eg({includeStatus:!1})},[O]),a.useEffect(()=>{eg({includeStatus:!0})},[n,B]),a.useEffect(()=>{eg({includeStatus:!0})},[ed,Q,eh]),(0,a.useEffect)(()=>{let e=setInterval(()=>{eb.current&&eb.current({includeStatus:!0})},s);return()=>{clearInterval(e)}},[s]),(0,a.useEffect)(()=>{Z(1)},[ed]),(0,a.useEffect)(()=>{Z(1)},[n,B]),(0,a.useEffect)(()=>{$([]),ex(!0)},[ed]);let ev=e=>{let s="ascending";I.key===e&&"ascending"===I.direction&&(s="descending"),A({key:e,direction:s})},eN=e=>I.key===e?"ascending"===I.direction?" ↑":" ↓":"";a.useMemo(()=>{let e=y||[];return{active:e.filter(e=>P.active.includes(e.status)).length,finished:e.filter(e=>P.finished.includes(e.status)).length}},[y]);let ew=e=>Q.length>0?Q.includes(e):"all"===ed||P[ed].includes(e),ey=a.useMemo(()=>y,[y]),ek=a.useMemo(()=>I.key?[...ey].sort((e,s)=>e[I.key]<s[I.key]?"ascending"===I.direction?-1:1:e[I.key]>s[I.key]?"ascending"===I.direction?1:-1:0):ey,[ey,I]),eC=(O-1)*B,eS=C>0?Math.ceil(C/B):0,eL=C>0?Math.min(eC+ek.length,C):0,e_=e=>{if(Q.includes(e)){let s=Q.filter(s=>s!==e);0===s.length?(ex(!0),$([])):($(s),ex(!1))}else $([...Q,e]),ex(!1);Z(1)};return(0,a.useEffect)(()=>{es(et)},[et]),(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsx)("div",{className:"flex flex-col space-y-1 mb-1",children:(0,r.jsxs)("div",{className:"flex flex-wrap items-center justify-between text-sm mb-1",children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center",children:[(0,r.jsx)("span",{className:"mr-2 text-sm font-medium",children:"Statuses:"}),(0,r.jsxs)("div",{className:"flex flex-wrap gap-2 items-center",children:[!z&&0===F&&!J&&(0,r.jsx)("span",{className:"text-gray-500 mr-2",children:"No jobs found"}),Object.entries(ee).map(e=>{let[s,t]=e;return(0,r.jsxs)("button",{onClick:()=>e_(s),className:"px-3 py-0.5 rounded-full flex items-center space-x-2 ".concat(ew(s)||Q.includes(s)?(0,_.Cl)(s):"bg-gray-50 text-gray-600 hover:bg-gray-100"),children:[(0,r.jsx)("span",{children:s}),(0,r.jsx)("span",{className:"text-xs ".concat(ew(s)||Q.includes(s)?"bg-white/50":"bg-gray-200"," px-1.5 py-0.5 rounded"),children:t})]},s)}),F>0&&(0,r.jsxs)("div",{className:"flex items-center ml-2 gap-2",children:[(0,r.jsx)("span",{className:"text-gray-500",children:"("}),(0,r.jsx)("button",{onClick:()=>{a.startTransition(()=>{eu("all"),$([]),ex(!0),Z(1)})},className:"text-sm font-medium ".concat("all"===ed&&eh?"text-purple-700 underline":"text-gray-600 hover:text-purple-700 hover:underline"),children:"show all jobs"}),(0,r.jsx)("span",{className:"text-gray-500 mx-1",children:"|"}),(0,r.jsx)("button",{onClick:()=>{a.startTransition(()=>{eu("active"),$([]),ex(!0),Z(1)})},className:"text-sm font-medium ".concat("active"===ed&&eh?"text-green-700 underline":"text-gray-600 hover:text-green-700 hover:underline"),children:"show all active jobs"}),(0,r.jsx)("span",{className:"text-gray-500 mx-1",children:"|"}),(0,r.jsx)("button",{onClick:()=>{a.startTransition(()=>{eu("finished"),$([]),ex(!0),Z(1)})},className:"text-sm font-medium ".concat("finished"===ed&&eh?"text-blue-700 underline":"text-gray-600 hover:text-blue-700 hover:underline"),children:"show all finished jobs"}),(0,r.jsx)("span",{className:"text-gray-500",children:")"})]})]})]}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[z&&(0,r.jsxs)("div",{className:"flex items-center",children:[(0,r.jsx)(c.Z,{size:15,className:"mt-0"}),(0,r.jsx)("span",{className:"ml-2 text-gray-500 text-sm",children:"Loading..."})]}),(0,r.jsxs)("button",{onClick:()=>{j&&j(),l&&l.current&&l.current()},disabled:z,className:"text-sky-blue hover:text-sky-blue-bright flex items-center text-sm",children:[(0,r.jsx)(N.Z,{className:"h-4 w-4 mr-1.5"}),(0,r.jsx)("span",{children:"Refresh"})]})]})]})}),ej&&ea&&0===ek.length&&!z&&!J&&(0,r.jsx)("div",{className:"mb-4 p-4 bg-gray-50 rounded-lg border",children:(0,r.jsxs)("div",{className:"flex flex-col items-center space-y-3",children:[(0,r.jsxs)("p",{className:"text-gray-700 text-center text-sm",children:["Job controller stopped.",(0,r.jsx)("br",{}),"Restart to check status."]}),(0,r.jsx)(o.z,{variant:"outline",size:"sm",onClick:ef,className:"text-sky-blue hover:text-sky-blue-bright",disabled:z||ec,children:ec?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(c.Z,{size:12,className:"mr-2"}),"Restarting..."]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(w.Z,{className:"h-4 w-4 mr-2"}),"Restart"]})})]})}),(0,r.jsx)(d.Zb,{children:(0,r.jsx)("div",{className:"overflow-x-auto rounded-lg",children:(0,r.jsxs)(u.iA,{className:"min-w-full",children:[(0,r.jsx)(u.xD,{children:(0,r.jsxs)(u.SC,{children:[(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>ev("id"),children:["ID",eN("id")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>ev("name"),children:["Name",eN("name")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>ev("user"),children:["User",eN("user")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>ev("workspace"),children:["Workspace",eN("workspace")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>ev("submitted_at"),children:["Submitted",eN("submitted_at")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>ev("job_duration"),children:["Duration",eN("job_duration")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>ev("status"),children:["Status",eN("status")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>ev("resources_str"),children:["Requested",eN("resources_str")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>ev("infra"),children:["Infra",eN("infra")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>ev("cluster"),children:["Resources",eN("cluster")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>ev("recoveries"),children:["Recoveries",eN("recoveries")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>ev("pool"),children:["Worker Pool",eN("pool")]}),(0,r.jsx)(u.ss,{children:"Details"}),(0,r.jsx)(u.ss,{children:"Logs"})]})}),(0,r.jsx)(u.RM,{children:z&&J?(0,r.jsx)(u.SC,{children:(0,r.jsx)(u.pj,{colSpan:12,className:"text-center py-6 text-gray-500",children:(0,r.jsxs)("div",{className:"flex justify-center items-center",children:[(0,r.jsx)(c.Z,{size:20,className:"mr-2"}),(0,r.jsx)("span",{children:"Loading..."})]})})}):ek.length>0?(0,r.jsx)(r.Fragment,{children:ek.map(e=>(0,r.jsxs)(a.Fragment,{children:[(0,r.jsxs)(u.SC,{children:[(0,r.jsx)(u.pj,{children:(0,r.jsx)(i(),{href:"/jobs/".concat(e.id),className:"text-blue-600",children:e.id})}),(0,r.jsx)(u.pj,{children:(0,r.jsx)(i(),{href:"/jobs/".concat(e.id),className:"text-blue-600",children:e.name})}),(0,r.jsx)(u.pj,{children:(0,r.jsx)(E.H,{username:e.user,userHash:e.user_hash})}),(0,r.jsx)(u.pj,{children:(0,r.jsx)(i(),{href:"/workspaces",className:"text-gray-700 hover:text-blue-600 hover:underline",children:e.workspace||"default"})}),(0,r.jsx)(u.pj,{children:T(e.submitted_at)}),(0,r.jsx)(u.pj,{children:(0,h.LU)(e.job_duration)}),(0,r.jsx)(u.pj,{children:(0,r.jsx)(_.OE,{status:e.status})}),(0,r.jsx)(u.pj,{children:e.requested_resources}),(0,r.jsx)(u.pj,{children:e.infra&&"-"!==e.infra?(0,r.jsx)(h.Md,{content:e.full_infra||e.infra,className:"text-sm text-muted-foreground",children:(0,r.jsxs)("span",{children:[(0,r.jsx)(i(),{href:"/infra",className:"text-blue-600 hover:underline",children:e.cloud||e.infra.split("(")[0].trim()}),e.infra.includes("(")&&(0,r.jsx)("span",{children:" "+(()=>{let s=x.MO.NAME_TRUNCATE_LENGTH,t=e.infra.substring(e.infra.indexOf("(")),r=t.substring(1,t.length-1);if(r.length<=s)return t;let a="".concat(r.substring(0,Math.floor((s-3)/2)),"...").concat(r.substring(r.length-Math.ceil((s-3)/2)));return"(".concat(a,")")})()})]})}):(0,r.jsx)("span",{children:e.infra||"-"})}),(0,r.jsx)(u.pj,{children:(0,r.jsx)(h.Md,{content:e.resources_str_full||e.resources_str,className:"text-sm text-muted-foreground",children:(0,r.jsx)("span",{children:e.resources_str})})}),(0,r.jsx)(u.pj,{children:e.recoveries}),(0,r.jsx)(u.pj,{children:(0,r.jsx)("div",{className:v?"blur-sm transition-all duration-300":"",children:v?"-":(0,h.os)(e.pool,e.pool_hash,b)})}),(0,r.jsx)(u.pj,{children:e.details?(0,r.jsx)(V,{text:e.details,rowId:e.id,expandedRowId:K,setExpandedRowId:X}):"-"}),(0,r.jsx)(u.pj,{children:(0,r.jsx)(q,{jobParent:"/jobs",jobId:e.id,managed:!0})})]}),K===e.id&&(0,r.jsx)(G,{text:e.details,colSpan:13,innerRef:Y})]},e.task_job_id))}):(0,r.jsx)(u.SC,{children:(0,r.jsx)(u.pj,{colSpan:13,className:"text-center py-6",children:(0,r.jsxs)("div",{className:"flex flex-col items-center space-y-4",children:[en&&(0,r.jsxs)("div",{className:"flex flex-col items-center space-y-2",children:[(0,r.jsx)("p",{className:"text-gray-700",children:"The managed job controller is launching. It will be ready shortly."}),(0,r.jsxs)("div",{className:"flex items-center",children:[(0,r.jsx)(c.Z,{size:12,className:"mr-2"}),(0,r.jsx)("span",{className:"text-gray-500",children:"Launching..."})]})]}),!ea&&!en&&(0,r.jsx)("p",{className:"text-gray-500",children:"No active jobs"}),!ej&&ea&&(0,r.jsxs)("div",{className:"flex flex-col items-center space-y-3 px-4",children:[(0,r.jsx)("p",{className:"text-gray-700 text-center text-sm sm:text-base max-w-md",children:"The managed job controller has been stopped. Restart to check the latest job status."}),(0,r.jsx)(o.z,{variant:"outline",size:"sm",onClick:ef,className:"text-sky-blue hover:text-sky-blue-bright",disabled:z||ec,children:ec?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(c.Z,{size:12,className:"mr-2"}),"Restarting..."]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(w.Z,{className:"h-4 w-4 mr-2"}),"Restart Controller"]})})]})]})})})})]})})}),(0,r.jsx)("div",{className:"flex justify-end items-center py-2 px-4 text-sm text-gray-700",children:(0,r.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,r.jsxs)("div",{className:"flex items-center",children:[(0,r.jsx)("span",{className:"mr-2",children:"Rows per page:"}),(0,r.jsxs)("div",{className:"relative inline-block",children:[(0,r.jsxs)("select",{value:B,onChange:e=>{H(parseInt(e.target.value,10)),Z(1)},className:"py-1 pl-2 pr-6 appearance-none outline-none cursor-pointer border-none bg-transparent",style:{minWidth:"40px"},children:[(0,r.jsx)("option",{value:10,children:"10"}),(0,r.jsx)("option",{value:30,children:"30"}),(0,r.jsx)("option",{value:50,children:"50"}),(0,r.jsx)("option",{value:100,children:"100"}),(0,r.jsx)("option",{value:200,children:"200"})]}),(0,r.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,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]})]}),(0,r.jsx)("div",{children:C>0?"".concat(eC+1," – ").concat(eL," of ").concat(C):"0 – 0 of 0"}),(0,r.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,r.jsx)(o.z,{variant:"ghost",size:"icon",onClick:()=>{Z(e=>Math.max(e-1,1))},disabled:1===O||!ek||0===ek.length,className:"text-gray-500 h-8 w-8 p-0",children:(0,r.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,r.jsx)("path",{d:"M15 18l-6-6 6-6"})})}),(0,r.jsx)(o.z,{variant:"ghost",size:"icon",onClick:()=>{eS>0&&O<eS&&Z(e=>e+1)},disabled:0===eS||O>=eS||!ek||0===ek.length,className:"text-gray-500 h-8 w-8 p-0",children:(0,r.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,r.jsx)("path",{d:"M9 18l6-6-6-6"})})})]})]})}),(0,r.jsx)(S.cV,{isOpen:em.isOpen,onClose:()=>ep({...em,isOpen:!1}),onConfirm:em.onConfirm,title:em.title,message:em.message,confirmClassName:"bg-blue-600 hover:bg-blue-700 text-white"})]})}function q(e){let{withLabel:s=!1,jobParent:t,jobId:a,managed:n}=e,i=(0,l.useRouter)(),c=(e,s)=>{e.preventDefault(),e.stopPropagation(),i.push({pathname:"".concat(t,"/").concat(a),query:{tab:s}})},o=function(e){let s=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(e.preventDefault(),e.stopPropagation(),n)(0,m.jh)({jobId:parseInt(a),controller:s});else{let e=t.match(/\/clusters\/(.+)/);if(e){let s=e[1];(0,g.GH)({clusterName:s,jobIds:[a],workspace:"default"})}}};return(0,r.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,r.jsx)(h.WH,{content:"View Job Logs",className:"capitalize text-sm text-muted-foreground",children:(0,r.jsxs)("button",{onClick:e=>c(e,"logs"),className:"text-sky-blue hover:text-sky-blue-bright font-medium inline-flex items-center h-8",children:[(0,r.jsx)(y.Z,{className:"w-4 h-4"}),s&&(0,r.jsx)("span",{className:"ml-1.5",children:"Logs"})]})},"logs"),(0,r.jsx)(h.WH,{content:"Download Job Logs",className:"capitalize text-sm text-muted-foreground",children:(0,r.jsxs)("button",{onClick:e=>o(e,!1),className:"text-sky-blue hover:text-sky-blue-bright font-medium inline-flex items-center h-8",children:[(0,r.jsx)(k.Z,{className:"w-4 h-4"}),s&&(0,r.jsx)("span",{className:"ml-1.5",children:"Download"})]})},"downloadlogs"),n&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(h.WH,{content:"View Controller Logs",className:"capitalize text-sm text-muted-foreground",children:(0,r.jsxs)("button",{onClick:e=>c(e,"controllerlogs"),className:"text-sky-blue hover:text-sky-blue-bright font-medium inline-flex items-center h-8",children:[(0,r.jsx)(C.Z,{className:"w-4 h-4"}),s&&(0,r.jsx)("span",{className:"ml-2",children:"Controller Logs"})]})},"controllerlogs"),(0,r.jsx)(h.WH,{content:"Download Controller Logs",className:"capitalize text-sm text-muted-foreground",children:(0,r.jsxs)("button",{onClick:e=>o(e,!0),className:"text-sky-blue hover:text-sky-blue-bright font-medium inline-flex items-center h-8",children:[(0,r.jsx)(k.Z,{className:"w-4 h-4"}),s&&(0,r.jsx)("span",{className:"ml-1.5",children:"Download Controller"})]})},"downloadcontrollerlogs")]})]})}function K(e){let{clusterName:s,clusterJobData:t,loading:l,refreshClusterJobsOnly:n,userFilter:x=null,nameFilter:m=null}=e,[p,j]=(0,a.useState)(null),[f,g]=(0,a.useState)({key:null,direction:"ascending"}),[b,v]=(0,a.useState)(1),[w,y]=(0,a.useState)(10),k=(0,a.useRef)(null),[C,S]=(0,a.useState)(null);(0,a.useEffect)(()=>{let e=e=>{p&&k.current&&!k.current.contains(e.target)&&j(null)};return document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e)}},[p]);let L=a.useMemo(()=>{let e=t||[];return x&&"ALL_USERS"!==x&&(e=O(e,x)),m&&(e=J(e,m)),e},[t,x,m]);(0,a.useEffect)(()=>{JSON.stringify(t)!==JSON.stringify(C)&&S(t)},[t,C]);let D=a.useMemo(()=>f.key?[...L].sort((e,s)=>e[f.key]<s[f.key]?"ascending"===f.direction?-1:1:e[f.key]>s[f.key]?"ascending"===f.direction?1:-1:0):L,[L,f]),R=e=>{let s="ascending";f.key===e&&"ascending"===f.direction&&(s="descending"),g({key:e,direction:s})},F=e=>f.key===e?"ascending"===f.direction?" ↑":" ↓":"",M=Math.ceil(D.length/w),I=(b-1)*w,A=I+w,z=D.slice(I,A);return(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsxs)(d.Zb,{children:[(0,r.jsxs)("div",{className:"flex items-center justify-between p-4",children:[(0,r.jsx)("h3",{className:"text-lg font-semibold",children:"Cluster Jobs"}),(0,r.jsx)("div",{className:"flex items-center",children:n&&(0,r.jsxs)("button",{onClick:n,disabled:l,className:"text-sky-blue hover:text-sky-blue-bright font-medium inline-flex items-center text-sm ml-2",children:[(0,r.jsx)(N.Z,{className:"w-4 h-4 mr-1"}),"Refresh Jobs"]})})]}),(0,r.jsxs)(u.iA,{children:[(0,r.jsx)(u.xD,{children:(0,r.jsxs)(u.SC,{children:[(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>R("id"),children:["ID",F("id")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>R("job"),children:["Name",F("job")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>R("user"),children:["User",F("user")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>R("workspace"),children:["Workspace",F("workspace")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>R("submitted_at"),children:["Submitted",F("submitted_at")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>R("job_duration"),children:["Duration",F("job_duration")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>R("status"),children:["Status",F("status")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>R("resources"),children:["Resources",F("resources")]}),(0,r.jsx)(u.ss,{className:"whitespace-nowrap",children:"Logs"})]})}),(0,r.jsx)(u.RM,{children:l?(0,r.jsx)(u.SC,{children:(0,r.jsx)(u.pj,{colSpan:9,className:"text-center py-12 text-gray-500",children:(0,r.jsxs)("div",{className:"flex justify-center items-center",children:[(0,r.jsx)(c.Z,{size:24,className:"mr-2"}),(0,r.jsx)("span",{children:"Loading cluster jobs..."})]})})}):z.length>0?z.map(e=>(0,r.jsxs)(a.Fragment,{children:[(0,r.jsxs)(u.SC,{className:p===e.id?"selected-row":"",children:[(0,r.jsx)(u.pj,{children:(0,r.jsx)(i(),{href:"/clusters/".concat(s,"/").concat(e.id),className:"text-blue-600",children:e.id})}),(0,r.jsx)(u.pj,{children:(0,r.jsx)(i(),{href:"/clusters/".concat(s,"/").concat(e.id),className:"text-blue-600",children:(0,r.jsx)(V,{text:e.job||"Unnamed job",rowId:e.id,expandedRowId:p,setExpandedRowId:j})})}),(0,r.jsx)(u.pj,{children:(0,r.jsx)(E.H,{username:e.user,userHash:e.user_hash})}),(0,r.jsx)(u.pj,{children:(0,r.jsx)(i(),{href:"/workspaces",className:"text-gray-700 hover:text-blue-600 hover:underline",children:e.workspace||"default"})}),(0,r.jsx)(u.pj,{children:T(e.submitted_at)}),(0,r.jsx)(u.pj,{children:(0,h.LU)(e.job_duration)}),(0,r.jsx)(u.pj,{children:(0,r.jsx)(_.OE,{status:e.status})}),(0,r.jsx)(u.pj,{children:e.resources}),(0,r.jsx)(u.pj,{className:"flex content-center items-center",children:(0,r.jsx)(q,{jobParent:"/clusters/".concat(s),jobId:e.id,managed:!1})})]}),p===e.id&&(0,r.jsx)(G,{text:e.job||"Unnamed job",colSpan:9,innerRef:k})]},e.id)):(0,r.jsx)(u.SC,{children:(0,r.jsx)(u.pj,{colSpan:8,className:"text-center py-6 text-gray-500",children:"No jobs found"})})})]})]}),D&&D.length>0&&(0,r.jsx)("div",{className:"flex justify-end items-center py-2 px-4 text-sm text-gray-700",children:(0,r.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,r.jsxs)("div",{className:"flex items-center",children:[(0,r.jsx)("span",{className:"mr-2",children:"Rows per page:"}),(0,r.jsxs)("div",{className:"relative inline-block",children:[(0,r.jsxs)("select",{value:w,onChange:e=>{y(parseInt(e.target.value,10)),v(1)},className:"py-1 pl-2 pr-6 appearance-none outline-none cursor-pointer border-none bg-transparent",style:{minWidth:"40px"},children:[(0,r.jsx)("option",{value:5,children:"5"}),(0,r.jsx)("option",{value:10,children:"10"}),(0,r.jsx)("option",{value:20,children:"20"}),(0,r.jsx)("option",{value:50,children:"50"})]}),(0,r.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,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]})]}),(0,r.jsxs)("div",{children:[I+1," – ",Math.min(A,D.length)," of"," ",D.length]}),(0,r.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,r.jsx)(o.z,{variant:"ghost",size:"icon",onClick:()=>{v(e=>Math.max(e-1,1))},disabled:1===b,className:"text-gray-500 h-8 w-8 p-0",children:(0,r.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,r.jsx)("path",{d:"M15 18l-6-6 6-6"})})}),(0,r.jsx)(o.z,{variant:"ghost",size:"icon",onClick:()=>{v(e=>Math.min(e+1,M))},disabled:b===M||0===M,className:"text-gray-500 h-8 w-8 p-0",children:(0,r.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,r.jsx)("path",{d:"M9 18l6-6-6-6"})})})]})]})})]})}function G(e){let{text:s,colSpan:t,innerRef:a}=e;return(0,r.jsx)(u.SC,{className:"expanded-details",children:(0,r.jsx)(u.pj,{colSpan:t,children:(0,r.jsx)("div",{className:"p-4 bg-gray-50 rounded-md border border-gray-200",ref:a,children:(0,r.jsx)("div",{className:"flex justify-between items-start",children:(0,r.jsxs)("div",{className:"flex-1",children:[(0,r.jsx)("p",{className:"text-sm font-medium text-gray-900",children:"Full Details"}),(0,r.jsx)("p",{className:"mt-1 text-sm text-gray-700",style:{whiteSpace:"pre-wrap"},children:s})]})})})})})}function V(e){let{text:s,rowId:t,expandedRowId:l,setExpandedRowId:n}=e,i=s||"",c=i.length>50,o=l===t,d=c?"".concat(i.substring(0,50)):i,u=(0,a.useRef)(null);return(0,r.jsxs)("div",{className:"truncated-details relative max-w-full flex items-center",children:[(0,r.jsx)("span",{className:"truncate",children:d}),c&&(0,r.jsx)("button",{ref:u,type:"button",onClick:e=>{e.preventDefault(),e.stopPropagation(),n(o?null:t)},className:"text-blue-600 hover:text-blue-800 font-medium ml-1 flex-shrink-0","data-button-type":"show-more-less",children:o?"... show less":"... show more"})]})}function X(e){let{refreshInterval:s,setLoading:t,refreshDataRef:l}=e,[n,o]=(0,a.useState)([]),[x,j]=(0,a.useState)({key:null,direction:"ascending"}),[f,g]=(0,a.useState)(!1),[b,v]=(0,a.useState)(!0),[N,w]=(0,a.useState)(1),[y,k]=(0,a.useState)(10),C=a.useCallback(async()=>{g(!0),t(!0);try{let{pools:e=[]}=await p.default.get(m.vs,[{}])||{};o(e),v(!1)}catch(e){console.error("Error fetching pools data:",e),o([]),v(!1)}finally{g(!1),t(!1)}},[t]);a.useEffect(()=>{l&&(l.current=C)},[l,C]),(0,a.useEffect)(()=>{o([]);let e=!0;C();let t=setInterval(()=>{e&&C()},s);return()=>{e=!1,clearInterval(t)}},[s,C]);let S=e=>{let s="ascending";x.key===e&&"ascending"===x.direction&&(s="descending"),j({key:e,direction:s})},L=e=>x.key===e?"ascending"===x.direction?" ↑":" ↓":"",E=a.useMemo(()=>x.key?[...n].sort((e,s)=>e[x.key]<s[x.key]?"ascending"===x.direction?-1:1:e[x.key]>s[x.key]?"ascending"===x.direction?1:-1:0):n,[n,x]),D=Math.ceil(E.length/y),R=(N-1)*y,F=R+y,M=E.slice(R,F),I=e=>{if(!e||!e.replica_info||0===e.replica_info.length)return"0 (target: 0)";let s=e.replica_info.filter(e=>"READY"===e.status).length,t=e.target_num_replicas||0;return"".concat(s," (target: ").concat(t,")")},A=e=>{let{jobCounts:s}=e;return(0,r.jsx)(h.x9,{jobCounts:s,getStatusStyle:_.Cl})},z=e=>{let{replicaInfo:s}=e;return(0,r.jsx)(h.Kl,{replicaInfo:s})};return(0,r.jsxs)(d.Zb,{children:[(0,r.jsx)("div",{className:"overflow-x-auto rounded-lg",children:(0,r.jsxs)(u.iA,{className:"min-w-full table-fixed",children:[(0,r.jsx)(u.xD,{children:(0,r.jsxs)(u.SC,{children:[(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap w-32",onClick:()=>S("name"),children:["Pool",L("name")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap w-40",onClick:()=>S("job_counts"),children:["Jobs",L("job_counts")]}),(0,r.jsx)(u.ss,{className:"whitespace-nowrap w-20",children:"Workers"}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap w-36",onClick:()=>S("requested_resources_str"),children:["Worker Details",L("requested_resources_str")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap w-40",onClick:()=>S("requested_resources_str"),children:["Worker Resources",L("requested_resources_str")]})]})}),(0,r.jsx)(u.RM,{children:f&&b?(0,r.jsx)(u.SC,{children:(0,r.jsx)(u.pj,{colSpan:5,className:"text-center py-6 text-gray-500",children:(0,r.jsxs)("div",{className:"flex justify-center items-center",children:[(0,r.jsx)(c.Z,{size:20,className:"mr-2"}),(0,r.jsx)("span",{children:"Loading..."})]})})}):M.length>0?M.map(e=>(0,r.jsxs)(u.SC,{children:[(0,r.jsx)(u.pj,{children:(0,r.jsx)(i(),{href:"/jobs/pools/".concat(e.name),className:"text-blue-600 hover:text-blue-800",children:e.name})}),(0,r.jsx)(u.pj,{children:(0,r.jsx)(A,{jobCounts:e.jobCounts})}),(0,r.jsx)(u.pj,{children:I(e)}),(0,r.jsx)(u.pj,{children:(0,r.jsx)(z,{replicaInfo:e.replica_info})}),(0,r.jsx)(u.pj,{children:e.requested_resources_str||"-"})]},e.name)):(0,r.jsx)(u.SC,{children:(0,r.jsx)(u.pj,{colSpan:5,className:"text-center py-6 text-gray-500",children:"No pools found"})})})]})}),M.length>0&&D>1&&(0,r.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-t border-gray-200",children:[(0,r.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,r.jsx)("span",{className:"text-sm text-gray-700",children:"Rows per page:"}),(0,r.jsxs)("select",{value:y,onChange:e=>{k(parseInt(e.target.value,10)),w(1)},className:"border border-gray-300 rounded px-2 py-1 text-sm",children:[(0,r.jsx)("option",{value:5,children:"5"}),(0,r.jsx)("option",{value:10,children:"10"}),(0,r.jsx)("option",{value:25,children:"25"}),(0,r.jsx)("option",{value:50,children:"50"})]})]}),(0,r.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,r.jsxs)("span",{className:"text-sm text-gray-700",children:[R+1,"-",Math.min(F,E.length)," of"," ",E.length]}),(0,r.jsx)("button",{onClick:()=>{w(e=>Math.max(e-1,1))},disabled:1===N,className:"px-2 py-1 text-sm border border-gray-300 rounded disabled:opacity-50 disabled:cursor-not-allowed hover:bg-gray-50",children:"Previous"}),(0,r.jsx)("button",{onClick:()=>{w(e=>Math.min(e+1,D))},disabled:N===D,className:"px-2 py-1 text-sm border border-gray-300 rounded disabled:opacity-50 disabled:cursor-not-allowed hover:bg-gray-50",children:"Next"})]})]})]})}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6856],{32045:function(e,t,r){r.d(t,{l4:function(){return n}});var a=r(93225),o=r(47145);async function s(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];try{let s=[];try{if(r){console.log("Force refreshing clouds by running sky check...");try{let e=await o.x.post("/check",{}),t=e.headers.get("X-Skypilot-Request-ID")||e.headers.get("X-Request-ID"),r=await o.x.get("/api/get?request_id=".concat(t)),a=await r.json();console.log("Sky check completed:",a)}catch(e){console.error("Error running sky check:",e)}}let e=await o.x.get("/enabled_clouds"),t=e.headers.get("X-Skypilot-Request-ID")||e.headers.get("X-Request-ID"),a=await o.x.get("/api/get?request_id=".concat(t)),n=await a.json();s=n.return_value?JSON.parse(n.return_value):[],console.log("Enabled clouds:",s)}catch(e){console.error("Error fetching enabled clouds:",e),s=[]}let n={};a.$m.forEach(e=>{let t=s.includes(e.toLowerCase());n[e]={name:e,clusters:0,jobs:0,enabled:t}}),e.forEach(e=>{if(e.cloud){let t=e.cloud;n[t]&&(n[t].clusters+=1,n[t].enabled=!0)}}),t.forEach(e=>{if(e.cloud){let t=e.cloud;n[t]&&(n[t].jobs+=1,n[t].enabled=!0)}});let l=a.$m.length,c=Object.values(n).filter(e=>e.enabled).length;return{clouds:Object.values(n).filter(e=>e.enabled).sort((e,t)=>e.name.localeCompare(t.name)),totalClouds:l,enabledClouds:c}}catch(e){return console.error("Error fetching cloud infrastructure:",e),{clouds:[],totalClouds:a.$m.length,enabledClouds:0}}}async function n(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],{getClusters:t}=await Promise.resolve().then(r.bind(r,23266)),{getManagedJobs:a}=await Promise.resolve().then(r.bind(r,68969)),o=(await Promise.resolve().then(r.bind(r,6378))).default,[n,c]=await Promise.all([o.get(t),o.get(a,[{allUsers:!0}])]),u=n||[],i=(null==c?void 0:c.jobs)||[],[d,g]=await Promise.all([l(u,i),s(u,i,e)]);return{gpuData:d,cloudData:g}}async function l(e,t){return await g({clusters:e||[],jobs:t||[]})}async function c(){try{let e=await o.x.post("/realtime_kubernetes_gpu_availability",{context:null,name_filter:null,quantity_filter:null});if(!e.ok)return console.error("Error fetching Kubernetes context GPUs (in getKubernetesContextGPUs): ".concat(e.status," ").concat(e.statusText)),[];let t=e.headers.get("X-Skypilot-Request-ID")||e.headers.get("x-request-id");if(!t)return console.error("No request ID returned for Kubernetes GPU availability (in getKubernetesContextGPUs)"),[];let r=await o.x.get("/api/get?request_id=".concat(t)),a=await r.text();if(500===r.status){try{let e=JSON.parse(a);if(e.detail&&e.detail.error)try{let t=JSON.parse(e.detail.error);console.error("[infra.jsx] getKubernetesContextGPUs: Server error detail:",t.message)}catch(t){console.error("[infra.jsx] getKubernetesContextGPUs: Error parsing server error JSON:",t,"Original error text:",e.detail.error)}}catch(e){console.error("[infra.jsx] getKubernetesContextGPUs: Error parsing 500 error response JSON:",e,"Raw text was:",a)}return[]}let s=JSON.parse(a);return s.return_value?JSON.parse(s.return_value):[]}catch(e){return console.error("[infra.jsx] Outer error in getKubernetesContextGPUs:",e),[]}}async function u(){try{let e=await o.x.get("/all_contexts");if(!e.ok)return console.error("Error fetching all contexts: ".concat(e.status," ").concat(e.statusText)),[];let t=e.headers.get("X-Skypilot-Request-ID")||e.headers.get("x-request-id");if(!t)return console.error("No request ID returned for /all_contexts"),[];let r=await o.x.get("/api/get?request_id=".concat(t)),a=await r.json();return a.return_value?JSON.parse(a.return_value):[]}catch(e){return console.error("[infra.jsx] Error in getAllContexts:",e),[]}}async function i(e){try{let t=await o.x.post("/kubernetes_node_info",{context:e}),r=t.headers.get("X-Skypilot-Request-ID")||t.headers.get("x-request-id"),a=await o.x.get("/api/get?request_id=".concat(r));if(500===a.status){try{let e=await a.json();if(e.detail&&e.detail.error)try{let t=JSON.parse(e.detail.error);console.error("Error fetching Kubernetes per node GPUs:",t.message)}catch(e){console.error("Error parsing JSON:",e)}}catch(e){console.error("Error parsing JSON:",e)}return{}}let s=await a.json();return(s.return_value?JSON.parse(s.return_value):{}).node_info_dict||{}}catch(t){return console.error("[infra.jsx] Error in getKubernetesPerNodeGPUs for context",e,":",t),{}}}async function d(e){try{let t=e.clusters,r=e.jobs,a={};return t.forEach(e=>{let t=null;if("Kubernetes"===e.cloud)(t=e.region)&&(t="kubernetes/".concat(t));else if("SSH"===e.cloud&&(t=e.region)){let e=t.startsWith("ssh-")?t.substring(4):t;t="ssh/".concat(e)}t&&(a[t]||(a[t]={clusters:0,jobs:0}),a[t].clusters+=1)}),r.forEach(e=>{let t=null;if("Kubernetes"===e.cloud)(t=e.region)&&(t="kubernetes/".concat(t));else if("SSH"===e.cloud&&(t=e.region)){let e=t.startsWith("ssh-")?t.substring(4):t;t="ssh/".concat(e)}t&&(a[t]||(a[t]={clusters:0,jobs:0}),a[t].jobs+=1)}),a}catch(e){return console.error("=== Error in getContextClustersAndJobs ===",e),{}}}async function g(e){try{let s=await u();if(!s||0===s.length)return console.log("No contexts found from /all_contexts endpoint."),{allContextNames:[],allGPUs:[],perContextGPUs:[],perNodeGPUs:[],contextStats:{}};let n=await d(e),l=await c(),g=new Map;l&&l.forEach(e=>{g.set(e[0],e[1])});let f={},p={},h={};for(let e of s){p[e]||(p[e]=[]);let s=g.get(e);if(s&&s.length>0)for(let t of s){let r=t[0],a=t[1].join(", "),o=t[2],s=t[3];r in f?(f[r].gpu_total+=o,f[r].gpu_free+=s):f[r]={gpu_total:o,gpu_free:s,gpu_name:r},p[e].push({gpu_name:r,gpu_requestable_qty_per_node:a,gpu_total:o,gpu_free:s,context:e})}let n=await i(e);if(n&&Object.keys(n).length>0)for(let s in n){var t,r,a,o;let l=n[s],c=l.accelerator_type||"-",u=null!==(a=null===(t=l.total)||void 0===t?void 0:t.accelerator_count)&&void 0!==a?a:0,i=null!==(o=null===(r=l.free)||void 0===r?void 0:r.accelerators_available)&&void 0!==o?o:0;h["".concat(e,"/").concat(s)]={node_name:l.name,gpu_name:c,gpu_total:u,gpu_free:i,ip_address:l.ip_address||null,context:e},"-"===c||p[e].some(e=>e.gpu_name===c)||(c in f||(f[c]={gpu_total:0,gpu_free:0,gpu_name:c}),p[e].find(e=>e.gpu_name===c)||p[e].push({gpu_name:c,gpu_requestable_qty_per_node:"-",gpu_total:0,gpu_free:0,context:e}))}0===p[e].length&&n&&Object.keys(n).length}return{allContextNames:s.sort(),allGPUs:Object.values(f).sort((e,t)=>e.gpu_name.localeCompare(t.gpu_name)),perContextGPUs:Object.values(p).flat().sort((e,t)=>e.context.localeCompare(t.context)||e.gpu_name.localeCompare(t.gpu_name)),perNodeGPUs:Object.values(h).sort((e,t)=>e.context.localeCompare(t.context)||e.node_name.localeCompare(t.node_name)||e.gpu_name.localeCompare(t.gpu_name)),contextStats:n}}catch(e){return console.error("[infra.jsx] Outer error in getKubernetesGPUs:",e),{allContextNames:[],allGPUs:[],perContextGPUs:[],perNodeGPUs:[],contextStats:{}}}}},19238:function(e,t,r){r.d(t,{C:function(){return o},w:function(){return s}});var a=r(47145);async function o(){try{return(await a.x.fetch("/volumes",{},"GET")).map(e=>{var t,r,a;let o=e.cloud||"";return e.region&&(o+="/".concat(e.region)),e.zone&&(o+="/".concat(e.zone)),{name:e.name,launched_at:e.launched_at,user_hash:e.user_hash,user_name:e.user_name||"-",workspace:e.workspace||"-",last_attached_at:e.last_attached_at,status:e.status,type:e.type,cloud:e.cloud,region:e.region,zone:e.zone,infra:o,size:"".concat(e.size,"Gi"),config:e.config,storage_class:(null===(t=e.config)||void 0===t?void 0:t.storage_class_name)||"-",access_mode:(null===(r=e.config)||void 0===r?void 0:r.access_mode)||"-",namespace:(null===(a=e.config)||void 0===a?void 0:a.namespace)||"-",name_on_cloud:e.name_on_cloud,usedby_pods:e.usedby_pods,usedby_clusters:e.usedby_clusters}})||[]}catch(e){return console.error("Failed to fetch volumes:",e),[]}}async function s(e){let t="";try{let r=await a.x.post("/volumes/delete",{names:[e]}),o=r.headers.get("X-SkyPilot-Request-ID")||r.headers.get("X-Request-ID"),s=await a.x.get("/api/get?request_id=".concat(o));if(500===s.status){try{let e=await s.json();if(e.detail&&e.detail.error)try{t=JSON.parse(e.detail.error).message}catch(e){console.error("Error parsing JSON:",e)}}catch(e){console.error("Error parsing JSON:",e)}return{success:!1,msg:t}}return{success:!0}}catch(e){return console.error("Failed to delete volume:",e),{success:!1,msg:e.message}}}},36856:function(e,t,r){var a=r(6378),o=r(23266),s=r(68969),n=r(17324),l=r(53081),c=r(32045),u=r(19238);let i={base:{getClusters:{fn:o.getClusters,args:[]},getClusterHistory:{fn:o.uR,args:[]},getManagedJobs:{fn:s.aT,args:[{allUsers:!0}]},getWorkspaces:{fn:n.fX,args:[]},getUsers:{fn:l.R,args:[]},getInfraData:{fn:c.l4,args:[]},getVolumes:{fn:u.C,args:[]}},dynamic:{getEnabledClouds:{fn:n.yz,requiresWorkspaces:!0}},pages:{clusters:["getClusters","getClusterHistory","getWorkspaces","getUsers"],jobs:["getManagedJobs","getClusters","getWorkspaces","getUsers"],infra:["getInfraData","getClusters","getManagedJobs"],workspaces:["getWorkspaces","getClusters","getManagedJobs","getEnabledClouds"],users:["getUsers","getClusters","getManagedJobs"],volumes:["getVolumes"]}};class d{async preloadForPage(e,t){let{backgroundPreload:r=!0,force:a=!1}=t||{};if(!i.pages[e]){console.warn("Unknown page: ".concat(e));return}console.log("[CachePreloader] Preloading cache for page: ".concat(e));try{await this._loadPageData(e,a),r&&this._backgroundPreloadOtherPages(e)}catch(t){console.error("[CachePreloader] Error preloading for page ".concat(e,":"),t)}}async _loadPageData(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=i.pages[e],o=[];for(let e of r)if(i.base[e]){let{fn:r,args:s}=i.base[e];t&&a.default.invalidate(r,s),o.push(a.default.get(r,s))}else"getEnabledClouds"===e&&o.push(this._loadEnabledCloudsForAllWorkspaces(t));await Promise.allSettled(o),console.log("[CachePreloader] Loaded data for page: ".concat(e))}async _loadEnabledCloudsForAllWorkspaces(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];try{e&&a.default.invalidate(n.fX);let t=await a.default.get(n.fX),r=Object.keys(t||{}).map(t=>(e&&a.default.invalidate(n.yz,[t]),a.default.get(n.yz,[t])));await Promise.allSettled(r)}catch(e){console.error("[CachePreloader] Error loading enabled clouds:",e)}}_backgroundPreloadOtherPages(e){if(this.isPreloading)return;this.isPreloading=!0;let t=Object.keys(i.pages).filter(t=>t!==e);console.log("[CachePreloader] Background preloading pages: ".concat(t.join(", "))),Promise.allSettled(t.map(async e=>{try{await this._loadPageData(e,!1),console.log("[CachePreloader] Background loaded: ".concat(e))}catch(t){console.error("[CachePreloader] Background load failed for ".concat(e,":"),t)}})).then(()=>{this.isPreloading=!1,console.log("[CachePreloader] Background preloading complete")})}async preloadBaseFunctions(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];console.log("[CachePreloader] Preloading all base functions");let t=Object.entries(i.base).map(t=>{let[r,{fn:o,args:s}]=t;return e&&a.default.invalidate(o,s),a.default.get(o,s).catch(e=>{console.error("[CachePreloader] Failed to preload ".concat(r,":"),e)})});await Promise.allSettled(t),console.log("[CachePreloader] Base functions preloaded")}getCacheStats(){return{...a.default.getStats(),isPreloading:this.isPreloading}}clearCache(){a.default.clear(),this.isPreloading=!1,this.preloadPromises.clear(),console.log("[CachePreloader] Cache cleared")}constructor(){this.isPreloading=!1,this.preloadPromises=new Map}}let g=new d;t.ZP=g}}]);
@@ -1,6 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9025],{99333:function(e,n,r){r.d(n,{Z:function(){return l}});/**
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 l=(0,r(60998).Z)("Save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]])},54042:function(e,n,r){r.r(n),r.d(n,{Config:function(){return g}});var l=r(85893),s=r(67294),t=r(11163),a=r(30803),i=r(37673),o=r(17324),c=r(1812),d=r(55739),u=r(99333),m=r(1272),f=r(36989),x=r(47145);function h(){let[e,n]=(0,s.useState)(null),[r,t]=(0,s.useState)(null),a=async()=>{let e=await x.x.get("/api/health"),r=await e.json();r.version&&n(r.version),r.commit&&t(r.commit)};return((0,s.useEffect)(()=>{a()},[]),e)?(0,l.jsx)(f.Md,{content:r?"Commit: ".concat(r):"Commit information not available",className:"text-sm text-muted-foreground",children:(0,l.jsxs)("div",{className:"text-sm text-gray-500 cursor-help border-b border-dotted border-gray-400 inline-block",children:["Version: ",e]})}):null}var v=r(17853);function g(){let e=(0,t.useRouter)(),[n,r]=(0,s.useState)(""),[f,g]=(0,s.useState)(!0),[p,j]=(0,s.useState)(!1),[b,y]=(0,s.useState)(null),[w,N]=(0,s.useState)(!1),[k,C]=(0,s.useState)(!1),L=(0,s.useRef)(null);(0,s.useEffect)(()=>{A(),(async()=>{C(await (0,v.TO)())})()},[]),(0,s.useEffect)(()=>()=>{L.current&&clearTimeout(L.current)},[]);let A=async()=>{g(!0),y(null);try{let e=await (0,o.iE)();0===Object.keys(e).length?r(""):r(m.ZP.dump(e,{indent:2}))}catch(e){console.error("Error loading config:",e),y(e)}finally{g(!1)}},S=async()=>{j(!0),y(null),L.current&&(clearTimeout(L.current),L.current=null);try{let e=await x.x.get("/users/role");if(!e.ok){let n=await e.json();throw Error(n.detail||"Failed to get user role")}let r=await e.json(),l=r.role;if("admin"!=l){y(Error("".concat(r.name," is logged in as non-admin and cannot edit config"))),j(!1);return}let s=m.ZP.load(n);if(null==s&&(s={}),"object"!=typeof s||Array.isArray(s)){let e="Invalid config structure: Configuration must be a mapping (key-value pairs) in YAML format.";Array.isArray(s),e="Invalid config structure: Configuration must be a mapping (key-value pairs) in YAML format.",y(Error(e)),j(!1);return}await (0,o.rF)(s),N(!0),L.current=setTimeout(()=>{N(!1),L.current=null},5e3)}catch(e){console.error("Error saving config:",e),y(e)}finally{j(!1)}};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)("div",{className:"flex items-center justify-between mb-4 h-5",children:[(0,l.jsx)("div",{className:"text-base flex items-center",children:(0,l.jsx)("span",{className:"text-sky-blue",children:"SkyPilot API Server"})}),(0,l.jsxs)("div",{className:"flex items-center",children:[(0,l.jsx)("div",{className:"text-sm flex items-center",children:(f||p)&&(0,l.jsxs)("div",{className:"flex items-center mr-4",children:[(0,l.jsx)(d.Z,{size:15,className:"mt-0"}),(0,l.jsx)("span",{className:"ml-2 text-gray-500",children:p?"Applying...":"Loading..."})]})}),k&&(0,l.jsxs)("button",{onClick:()=>{let e=(0,v.ki)(),n=window.location.hostname;window.open("".concat(e,"/d/skypilot-apiserver-overview/skypilot-api-server?orgId=1&from=now-1h&to=now&timezone=browser&var-app=").concat(n),"_blank")},className:"inline-flex items-center px-3 py-2 text-sm font-medium text-white bg-sky-blue-bright border border-transparent rounded-md shadow-sm hover:bg-sky-blue focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-sky-blue mr-4",children:[(0,l.jsx)("svg",{className:"w-4 h-4 mr-2",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:(0,l.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"})}),"View API Server Metrics"]}),(0,l.jsx)(h,{})]})]}),(0,l.jsxs)(i.Zb,{className:"w-full",children:[(0,l.jsx)(i.Ol,{children:(0,l.jsx)(i.ll,{className:"text-base font-normal flex items-center justify-between",children:(0,l.jsx)("span",{children:"Edit SkyPilot API Server Configuration"})})}),(0,l.jsxs)(i.aY,{className:"space-y-4",children:[(0,l.jsxs)("p",{className:"text-sm text-gray-600 mb-3",children:["Refer to the"," ",(0,l.jsx)("a",{href:"https://docs.skypilot.co/en/latest/reference/config.html",target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:underline",children:"SkyPilot Docs"})," ","for details. The configuration should be in YAML format."]}),w&&(0,l.jsx)("div",{className:"bg-green-50 border border-green-200 rounded p-4 mb-6",children:(0,l.jsxs)("div",{className:"flex items-center justify-between",children:[(0,l.jsxs)("div",{className:"flex items-center",children:[(0,l.jsx)("div",{className:"flex-shrink-0",children:(0,l.jsx)("svg",{className:"h-5 w-5 text-green-400",viewBox:"0 0 20 20",fill:"currentColor",children:(0,l.jsx)("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z",clipRule:"evenodd"})})}),(0,l.jsx)("div",{className:"ml-3",children:(0,l.jsx)("p",{className:"text-sm font-medium text-green-800",children:"Configuration saved successfully!"})})]}),(0,l.jsx)("div",{className:"ml-auto pl-3",children:(0,l.jsx)("div",{className:"-mx-1.5 -my-1.5",children:(0,l.jsxs)("button",{type:"button",onClick:()=>{N(!1),L.current&&(clearTimeout(L.current),L.current=null)},className:"inline-flex rounded-md bg-green-50 p-1.5 text-green-500 hover:bg-green-100 focus:outline-none focus:ring-2 focus:ring-green-600 focus:ring-offset-2 focus:ring-offset-green-50",children:[(0,l.jsx)("span",{className:"sr-only",children:"Dismiss"}),(0,l.jsx)("svg",{className:"h-5 w-5",viewBox:"0 0 20 20",fill:"currentColor",children:(0,l.jsx)("path",{fillRule:"evenodd",d:"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z",clipRule:"evenodd"})})]})})})]})}),b&&(0,l.jsx)("div",{className:"mb-6",children:(0,l.jsx)(c.X,{error:b,title:"Failed to apply new configuration",onDismiss:()=>y(null)})}),(0,l.jsx)("div",{className:"w-full",children:(0,l.jsx)("textarea",{value:n,onChange:e=>r(e.target.value),className:"w-full h-96 p-3 border border-gray-300 rounded font-mono text-sm resize-vertical focus:outline-none focus:ring-2 focus:ring-blue-500",placeholder:f?"Loading configuration...":"# Enter SkyPilot configuration in YAML format\n# Example:\n# kubernetes:\n# allowed_contexts: [default, my-context]",disabled:f||p})}),(0,l.jsxs)("div",{className:"flex justify-end space-x-3 pt-3",children:[(0,l.jsx)(a.z,{variant:"outline",onClick:()=>{e.push("/workspaces")},disabled:p,children:"Cancel"}),(0,l.jsx)(a.z,{onClick:S,disabled:f||p,className:"inline-flex items-center bg-sky-600 hover:bg-sky-700 text-white",children:p?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(d.Z,{size:16,className:"mr-2"}),"Applying..."]}):(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(u.Z,{className:"w-4 h-4 mr-1.5"}),"Apply"]})})]})]})]})]})}},1812:function(e,n,r){r.d(n,{X:function(){return a}});var l=r(85893),s=r(67294);let t=e=>{if(!(null==e?void 0:e.message))return"An unexpected error occurred.";let n=e.message;return n.includes("failed:")&&(n=n.split("failed:")[1].trim()),n},a=e=>{let{error:n,title:r="Error",onDismiss:a}=e,[i,o]=(0,s.useState)(!1);if((0,s.useEffect)(()=>{n&&o(!1)},[n]),!n||i)return null;let c="string"==typeof n?n:t(n);return(0,l.jsx)("div",{className:"bg-red-50 border border-red-200 rounded-md p-3 mb-4",children:(0,l.jsxs)("div",{className:"flex items-center justify-between",children:[(0,l.jsxs)("div",{className:"flex",children:[(0,l.jsx)("div",{className:"flex-shrink-0",children:(0,l.jsx)("svg",{className:"h-5 w-5 text-red-400",viewBox:"0 0 20 20",fill:"currentColor",children:(0,l.jsx)("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z",clipRule:"evenodd"})})}),(0,l.jsx)("div",{className:"ml-3",children:(0,l.jsxs)("div",{className:"text-sm text-red-800",children:[(0,l.jsxs)("strong",{children:[r,":"]})," ",c]})})]}),(0,l.jsx)("button",{onClick:()=>{o(!0),a&&a()},className:"flex-shrink-0 ml-4 text-red-400 hover:text-red-600 focus:outline-none focus:ring-2 focus:ring-red-500 focus:ring-offset-2 focus:ring-offset-red-50 rounded","aria-label":"Dismiss error",children:(0,l.jsx)("svg",{className:"h-4 w-4",viewBox:"0 0 20 20",fill:"currentColor",children:(0,l.jsx)("path",{fillRule:"evenodd",d:"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z",clipRule:"evenodd"})})})]})})}},17853:function(e,n,r){r.d(n,{TO:function(){return t},ki:function(){return a}});let l=null,s=null,t=async()=>null!==l?l:s||(s=(async()=>{try{let e="".concat(window.location.origin,"/grafana"),n=await fetch("".concat(e,"/api/health"),{method:"GET",credentials:"include",headers:{Accept:"application/json"},signal:AbortSignal.timeout(5e3)});return 200==n.status}catch(e){return console.debug("Grafana availability check failed:",e),l=!1,!1}finally{s=null}})()),a=()=>"".concat(window.location.origin,"/grafana")},12003:function(e,n,r){r.d(n,{j:function(){return a}});var l=r(90512);let s=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,t=l.W,a=(e,n)=>r=>{var l;if((null==n?void 0:n.variants)==null)return t(e,null==r?void 0:r.class,null==r?void 0:r.className);let{variants:a,defaultVariants:i}=n,o=Object.keys(a).map(e=>{let n=null==r?void 0:r[e],l=null==i?void 0:i[e];if(null===n)return null;let t=s(n)||s(l);return a[e][t]}),c=r&&Object.entries(r).reduce((e,n)=>{let[r,l]=n;return void 0===l||(e[r]=l),e},{});return t(e,o,null==n?void 0:null===(l=n.compoundVariants)||void 0===l?void 0:l.reduce((e,n)=>{let{class:r,className:l,...s}=n;return Object.entries(s).every(e=>{let[n,r]=e;return Array.isArray(r)?r.includes({...i,...c}[n]):({...i,...c})[n]===r})?[...e,r,l]:e},[]),null==r?void 0:r.class,null==r?void 0:r.className)}}}]);
@@ -1,6 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9037],{39037:function(e,s,t){t.r(s),t.d(s,{ClusterTable:function(){return H},Clusters:function(){return _},Status2Actions:function(){return q},enabledActions:function(){return V},handleVSCodeConnection:function(){return O}});var r=t(85893),a=t(67294),l=t(11163),n=t(55739),c=t(36989),i=t(41664),o=t.n(i),u=t(30803),d=t(37673),h=t(68764),x=t(23266),p=t(17324),m=t(53081),f=t(94545),j=t(13626),g=t(60998);/**
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 v=(0,g.Z)("Terminal",[["polyline",{points:"4 17 10 11 4 5",key:"akl6gq"}],["line",{x1:"12",x2:"20",y1:"19",y2:"19",key:"q2wloq"}]]),w=(0,g.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(6135);var y=t(92128),b=t(99307),k=t(23001),N=t(88950),C=t(6378),S=t(36856);t(1272);var L=t(20546);let M=[{label:"Status",value:"status"},{label:"Cluster",value:"cluster"},{label:"User",value:"user"},{label:"Workspace",value:"workspace"},{label:"Infra",value:"infra"}],R=(e,s)=>{let t="",r="";return e>=0&&(t=e+"m",r=" "),s&&(t+="".concat(r,"(down)")),""===t&&(t="-"),t},I=(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},E=e=>{if(!e||0===e)return"-";let s=e=Math.floor(e),t="",r=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&&r<2){let a=Math.floor(s/e.value);t+="".concat(a).concat(e.label," "),s%=e.value,r++}return t.trim()||"0s"};function _(){let e=(0,l.useRouter)(),[s,t]=(0,a.useState)(!1),i=a.useRef(null),[u,d]=(0,a.useState)(!1),[h,f]=(0,a.useState)(!1),[g,v]=(0,a.useState)(null),[w,b]=(0,a.useState)(()=>!!e.isReady&&"true"===e.query.history),[N,L]=(0,a.useState)(!0),R=(0,k.X)(),[E,_]=(0,a.useState)([]),[O,F]=(0,a.useState)({status:[],cluster:[],user:[],workspace:[],infra:[]});(0,a.useEffect)(()=>{if(e.isReady){q();let s="true"===e.query.history;w!==s&&(L(!1),b(s),setTimeout(()=>L(!0),50))}},[e.isReady,e.query.history]),(0,a.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),r=[...new Set(t.map(e=>e.workspace||"default").filter(e=>e))],a=new Set(s);r.includes("default")&&a.has("default"),r.forEach(e=>a.add(e));let l=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;l.forEach(e=>{c.set(e.userId,{userId:e.userId,username:e.username,display:I(e.username,e.userId)})}),n.forEach(e=>{c.has(e.userId)||c.set(e.userId,{userId:e.userId,username:e.username,display:I(e.username,e.userId)})})}catch(e){console.error("Error fetching data for filters:",e)}})()},[]);let V=s=>{let t={...e.query},r=[],a=[],l=[];s.map((e,s)=>{var t;r.push(null!==(t=e.property.toLowerCase())&&void 0!==t?t:""),a.push(e.operator),l.push(e.value)}),t.property=r,t.operator=a,t.value=l,e.replace({pathname:e.pathname,query:t},void 0,{shallow:!0})},W=s=>{let t={...e.query};t.history=s.toString(),e.replace({pathname:e.pathname,query:t},void 0,{shallow:!0})},q=()=>{let s={...e.query},t=s.property,r=s.operator,a=s.value;if(void 0===t)return;let l=[],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)l.push({property:c.get(t),operator:r,value:a});else for(let e=0;e<n;e++)l.push({property:c.get(t[e]),operator:r[e],value:a[e]});_(l)};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-2 mb-1 min-h-[20px]",children:[(0,r.jsx)("div",{className:"flex items-center gap-2",children:(0,r.jsx)(o(),{href:"/clusters",className:"text-sky-blue hover:underline leading-none text-base",children:"Sky Clusters"})}),(0,r.jsx)("div",{className:"w-full sm:w-auto",children:(0,r.jsx)(z,{propertyList:M,valueList:O,setFilters:_,updateURLParams:V,placeholder:"Filter clusters"})}),(0,r.jsxs)("div",{className:"flex items-center gap-2 ml-auto",children:[(0,r.jsxs)("label",{className:"flex items-center cursor-pointer",children:[(0,r.jsx)("input",{type:"checkbox",checked:w,onChange:e=>{let s=e.target.checked;b(s),W(s)},className:"sr-only"}),(0,r.jsx)("div",{className:"relative inline-flex h-5 w-9 items-center rounded-full ".concat(N?"transition-colors":""," ").concat(w?"bg-sky-600":"bg-gray-300"),children:(0,r.jsx)("span",{className:"inline-block h-3 w-3 transform rounded-full bg-white ".concat(N?"transition-transform":""," ").concat(w?"translate-x-5":"translate-x-1")})}),(0,r.jsx)("span",{className:"ml-2 text-sm text-gray-700",children:"Show history (Last 30 days)"})]}),s&&(0,r.jsxs)("div",{className:"flex items-center",children:[(0,r.jsx)(n.Z,{size:15,className:"mt-0"}),(0,r.jsx)("span",{className:"ml-2 text-gray-500 text-sm",children:"Loading..."})]}),(0,r.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,r.jsx)(j.Z,{className:"h-4 w-4 mr-1.5"}),!R&&(0,r.jsx)("span",{children:"Refresh"})]})]})]}),(0,r.jsx)(A,{filters:E,setFilters:_,updateURLParams:V}),(0,r.jsx)(H,{refreshInterval:c.yc,setLoading:t,refreshDataRef:i,filters:E,showHistory:w,onOpenSSHModal:e=>{v(e),d(!0)},onOpenVSCodeModal:e=>{v(e),f(!0)},setOptionValues:F}),(0,r.jsx)(y.Oh,{isOpen:u,onClose:()=>d(!1),cluster:g}),(0,r.jsx)(y._R,{isOpen:h,onClose:()=>f(!1),cluster:g})]})}function H(e){let{refreshInterval:s,setLoading:t,refreshDataRef:l,filters:i,showHistory:p,onOpenSSHModal:m,onOpenVSCodeModal:j,setOptionValues:g}=e,[v,w]=(0,a.useState)([]),[y,k]=(0,a.useState)({key:null,direction:"ascending"}),[N,S]=(0,a.useState)(!1),[M,I]=(0,a.useState)(!0),[_,H]=(0,a.useState)(1),[O,F]=(0,a.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=a.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})),r=s.map(e=>({...e,isHistorical:!0})),a=[...t];r.forEach(s=>{e.some(e=>e.cluster_hash===s.cluster_hash)||a.push(s)}),g(V(a)),w(a)}else{let s=e.map(e=>({...e,isHistorical:!1}));g(V(s)),w(s)}}catch(e){console.error("Error fetching cluster data:",e),g(V([])),w([])}t(!1),S(!1),I(!1)},[t,p,g]),z=(e,s)=>{var t;let{property:r,operator:a,value:l}=s;if(!l)return!0;if(!r){let s=l.toLowerCase();return Object.values(e).some(e=>null==e?void 0:e.toString().toLowerCase().includes(s))}let n=null===(t=e[r.toLowerCase()])||void 0===t?void 0:t.toString().toLowerCase(),c=l.toString().toLowerCase();switch(a){case"=":return n===c;case":":return null==n?void 0:n.includes(c);default:return!0}},A=a.useMemo(()=>{let e=0===i.length?v:v.filter(e=>{let s=null;for(let t=0;t<i.length;t++){let r=z(e,i[t]);s=null===s?r:s&&r}return s});return(0,f.R0)(e,y.key,y.direction)},[v,y,i]);a.useEffect(()=>{l&&(l.current=W)},[l,W]),(0,a.useEffect)(()=>{w([]);let e=!0;W();let t=setInterval(()=>{e&&W()},s);return()=>{e=!1,clearInterval(t)}},[s,W]),(0,a.useEffect)(()=>{H(1)},[v.length]);let Z=e=>{let s="ascending";y.key===e&&"ascending"===y.direction&&(s="descending"),k({key:e,direction:s})},B=e=>y.key===e?"ascending"===y.direction?" ↑":" ↓":"",P=Math.ceil(A.length/O),U=(_-1)*O,D=U+O,X=A.slice(U,D);return(0,r.jsxs)("div",{children:[(0,r.jsx)(d.Zb,{children:(0,r.jsx)("div",{className:"overflow-x-auto rounded-lg",children:(0,r.jsxs)(h.iA,{className:"min-w-full",children:[(0,r.jsx)(h.xD,{children:(0,r.jsxs)(h.SC,{children:[(0,r.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>Z("status"),children:["Status",B("status")]}),(0,r.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>Z("cluster"),children:["Cluster",B("cluster")]}),(0,r.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>Z("user"),children:["User",B("user")]}),(0,r.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>Z("workspace"),children:["Workspace",B("workspace")]}),(0,r.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>Z("infra"),children:["Infra",B("infra")]}),(0,r.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>Z("resources_str"),children:["Resources",B("resources_str")]}),(0,r.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>Z("time"),children:["Started",B("time")]}),p&&(0,r.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>Z("duration"),children:["Duration",B("duration")]}),(0,r.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>Z("autostop"),children:["Autostop",B("autostop")]}),(0,r.jsx)(h.ss,{className:"md:sticky md:right-0 md:bg-white",children:"Actions"})]})}),(0,r.jsx)(h.RM,{children:N&&M?(0,r.jsx)(h.SC,{children:(0,r.jsx)(h.pj,{colSpan:9,className:"text-center py-6 text-gray-500",children:(0,r.jsxs)("div",{className:"flex justify-center items-center",children:[(0,r.jsx)(n.Z,{size:20,className:"mr-2"}),(0,r.jsx)("span",{children:"Loading..."})]})})}):X.length>0?X.map((e,s)=>(0,r.jsxs)(h.SC,{children:[(0,r.jsx)(h.pj,{children:(0,r.jsx)(b.OE,{status:e.status})}),(0,r.jsx)(h.pj,{children:(0,r.jsx)(o(),{href:"/clusters/".concat(e.isHistorical?e.cluster_hash:e.cluster||e.name),className:"text-blue-600",children:e.cluster||e.name})}),(0,r.jsx)(h.pj,{children:(0,r.jsx)(L.H,{username:e.user,userHash:e.user_hash})}),(0,r.jsx)(h.pj,{children:(0,r.jsx)(o(),{href:"/workspaces",className:"text-gray-700 hover:text-blue-600 hover:underline",children:e.workspace||"default"})}),(0,r.jsx)(h.pj,{children:(0,r.jsx)(c.Md,{content:e.full_infra||e.infra,className:"text-sm text-muted-foreground",children:(0,r.jsxs)("span",{children:[(0,r.jsx)(o(),{href:"/infra",className:"text-blue-600 hover:underline",children:e.cloud}),e.infra.includes("(")&&(0,r.jsx)("span",{children:" "+e.infra.substring(e.infra.indexOf("("))})]})})}),(0,r.jsx)(h.pj,{children:(0,r.jsx)(c.Md,{content:e.resources_str_full||e.resources_str,className:"text-sm text-muted-foreground",children:(0,r.jsx)("span",{children:e.resources_str})})}),(0,r.jsx)(h.pj,{children:(0,r.jsx)(c.Zg,{date:e.time})}),p&&(0,r.jsx)(h.pj,{children:E(e.duration)}),(0,r.jsx)(h.pj,{children:e.isHistorical?"-":R(e.autostop,e.to_down)}),(0,r.jsx)(h.pj,{className:"text-left md:sticky md:right-0 md:bg-white",children:!e.isHistorical&&(0,r.jsx)(q,{cluster:e.cluster,status:e.status,onOpenSSHModal:m,onOpenVSCodeModal:j})})]},s)):(0,r.jsx)(h.SC,{children:(0,r.jsx)(h.pj,{colSpan:9,className:"text-center py-6 text-gray-500",children:p?"No clusters found":"No active clusters"})})})]})})}),v.length>0&&(0,r.jsx)("div",{className:"flex justify-end items-center py-2 px-4 text-sm text-gray-700",children:(0,r.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,r.jsxs)("div",{className:"flex items-center",children:[(0,r.jsx)("span",{className:"mr-2",children:"Rows per page:"}),(0,r.jsxs)("div",{className:"relative inline-block",children:[(0,r.jsxs)("select",{value:O,onChange:e=>{F(parseInt(e.target.value,10)),H(1)},className:"py-1 pl-2 pr-6 appearance-none outline-none cursor-pointer border-none bg-transparent",style:{minWidth:"40px"},children:[(0,r.jsx)("option",{value:10,children:"10"}),(0,r.jsx)("option",{value:30,children:"30"}),(0,r.jsx)("option",{value:50,children:"50"}),(0,r.jsx)("option",{value:100,children:"100"}),(0,r.jsx)("option",{value:200,children:"200"})]}),(0,r.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,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]})]}),(0,r.jsx)("div",{children:"".concat(U+1," - ").concat(Math.min(D,A.length)," of ").concat(A.length)}),(0,r.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,r.jsx)(u.z,{variant:"ghost",size:"icon",onClick:()=>{H(e=>Math.max(e-1,1))},disabled:1===_,className:"text-gray-500 h-8 w-8 p-0",children:(0,r.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,r.jsx)("path",{d:"M15 18l-6-6 6-6"})})}),(0,r.jsx)(u.z,{variant:"ghost",size:"icon",onClick:()=>{H(e=>Math.min(e+1,P))},disabled:_===P||0===P,className:"text-gray-500 h-8 w-8 p-0",children:(0,r.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,r.jsx)("path",{d:"M9 18l6-6-6-6"})})})]})]})})]})}let O=(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,r.jsx)(v,{className:"w-4 h-4 text-gray-500 inline-block"}),VSCode:(0,r.jsx)(w,{className:"w-4 h-4 text-gray-500 inline-block"})};function q(e){let{withLabel:s=!1,cluster:t,status:a,onOpenSSHModal:l,onOpenVSCodeModal:n}=e,i=V(a),o=(0,k.X)(),u=e=>{switch(e){case"connect":F(t,l);break;case"VSCode":O(t,n);break;default:return}};return(0,r.jsx)(r.Fragment,{children:(0,r.jsx)("div",{className:"flex items-center space-x-4",children:Object.entries(W).map(e=>{let t,a,[l,n]=e;switch(l){case"connect":t="Connect",a="Connect with SSH";break;case"VSCode":t="VSCode",a="Open in VS Code"}return(s||(t=""),i.includes(l))?(0,r.jsx)(c.WH,{content:a,className:"capitalize text-sm text-muted-foreground",children:(0,r.jsxs)("button",{onClick:()=>u(l),className:"text-sky-blue hover:text-sky-blue-bright font-medium inline-flex items-center",children:[n,!o&&(0,r.jsx)("span",{className:"ml-1.5",children:t})]})},l):(0,r.jsx)(c.WH,{content:a,className:"capitalize text-sm text-muted-foreground",children:(0,r.jsxs)("span",{className:"opacity-30 flex items-center cursor-not-allowed text-sm",title:l,children:[n,!o&&(0,r.jsx)("span",{className:"ml-1.5",children:t})]})},l)})})})}let z=e=>{let{propertyList:s=[],valueList:t,setFilters:l,updateURLParams:n,placeholder:c="Filter clusters"}=e,i=(0,a.useRef)(null),o=(0,a.useRef)(null),[u,d]=(0,a.useState)(!1),[h,x]=(0,a.useState)(""),[p,m]=(0,a.useState)("status"),[f,j]=(0,a.useState)([]);(0,a.useEffect)(()=>{let e=e=>{o.current&&!o.current.contains(e.target)&&i.current&&!i.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e)}},[]),(0,a.useEffect)(()=>{let e=[];if(t&&"object"==typeof t)switch(p){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||[]}""!==h.trim()&&(e=e.filter(e=>e&&e.toString().toLowerCase().includes(h.toLowerCase()))),j(e)},[p,t,h]);let g=e=>{let t=s.find(s=>s.value===e);return t?t.label:e},v=e=>{l(s=>{let t=[...s,{property:g(p),operator:":",value:e}];return n(t),t}),d(!1),x(""),i.current.focus()};return(0,r.jsxs)("div",{className:"flex flex-row border border-gray-300 rounded-md overflow-visible",children:[(0,r.jsx)("div",{className:"border-r border-gray-300 flex-shrink-0",children:(0,r.jsxs)(N.Ph,{onValueChange:m,value:p,children:[(0,r.jsx)(N.i4,{"aria-label":"Filter Property",className:"focus:ring-0 focus:ring-offset-0 border-none rounded-l-md rounded-r-none w-20 sm:w-24 md:w-32 h-8 text-xs sm:text-sm",children:(0,r.jsx)(N.ki,{placeholder:"Status"})}),(0,r.jsx)(N.Bw,{children:s.map((e,s)=>(0,r.jsx)(N.Ql,{value:e.value,children:e.label},"property-item-".concat(s)))})]})}),(0,r.jsxs)("div",{className:"relative flex-1",children:[(0,r.jsx)("input",{type:"text",ref:i,placeholder:c,value:h,onChange:e=>{x(e.target.value),u||d(!0)},onFocus:()=>{d(!0)},onKeyDown:e=>{"Enter"===e.key&&""!==h.trim()?(l(e=>{let s=[...e,{property:g(p),operator:":",value:h}];return n(s),s}),x(""),d(!1)):"Escape"===e.key&&(d(!1),i.current.blur())},className:"h-8 w-full sm:w-96 px-3 pr-8 text-sm border-none rounded-l-none rounded-r-md focus:ring-0 focus:outline-none",autoComplete:"off"}),h&&(0,r.jsx)("button",{onClick:()=>{x(""),d(!1)},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,r.jsx)("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})}),u&&f.length>0&&(0,r.jsx)("div",{ref:o,className:"absolute z-50 mt-1 w-full bg-white border border-gray-200 rounded-md shadow-lg max-h-60 overflow-y-auto",style:{zIndex:9999},children:f.map((e,s)=>(0,r.jsx)("div",{className:"px-3 py-2 cursor-pointer hover:bg-gray-50 text-sm ".concat(s!==f.length-1?"border-b border-gray-100":""),onClick:()=>v(e),children:(0,r.jsx)("span",{className:"text-sm text-gray-700",children:e})},"".concat(e,"-").concat(s)))})]})]})},A=e=>{let{filters:s=[],setFilters:t,updateURLParams:a}=e,l=e=>{t(s=>{let t=s.filter((s,t)=>t!==e);return a(t),t})};return(0,r.jsx)(r.Fragment,{children:(0,r.jsx)("div",{className:"flex items-center gap-4 py-2 px-2",children:(0,r.jsxs)("div",{className:"flex flex-wrap items-content gap-2",children:[s.map((e,s)=>(0,r.jsx)(Z,{filter:e,onRemove:()=>l(s)},"filteritem-".concat(s))),s.length>0&&(0,r.jsx)(r.Fragment,{children:(0,r.jsx)("button",{onClick:()=>{a([]),t([])},className:"rounded-full px-4 py-1 text-sm text-gray-700 bg-gray-200 hover:bg-gray-300",children:"Clear filters"})})]})})})},Z=e=>{let{filter:s,onRemove:t}=e;return(0,r.jsx)(r.Fragment,{children:(0,r.jsxs)("div",{className:"flex items-center text-blue-600 bg-blue-100 px-1 py-1 rounded-full text-sm",children:[(0,r.jsxs)("div",{className:"flex items-center gap-1 px-2",children:[(0,r.jsx)("span",{children:"".concat(s.property," ")}),(0,r.jsx)("span",{children:"".concat(s.operator," ")}),(0,r.jsx)("span",{children:" ".concat(s.value)})]}),(0,r.jsx)("button",{onClick:()=>t(),className:"p-0.5 ml-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,r.jsx)("svg",{className:"h-3 w-3",fill:"none",stroke:"white",viewBox:"0 0 24 24",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:5,d:"M6 18L18 6M6 6l12 12"})})})]})})}}}]);