skypilot-nightly 1.0.0.dev20250624__py3-none-any.whl → 1.0.0.dev20250625__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. sky/__init__.py +2 -2
  2. sky/backends/backend_utils.py +26 -11
  3. sky/backends/cloud_vm_ray_backend.py +16 -5
  4. sky/client/cli/command.py +222 -4
  5. sky/client/sdk.py +110 -82
  6. sky/clouds/aws.py +10 -7
  7. sky/clouds/azure.py +10 -7
  8. sky/clouds/cloud.py +2 -0
  9. sky/clouds/cudo.py +2 -0
  10. sky/clouds/do.py +10 -7
  11. sky/clouds/fluidstack.py +2 -0
  12. sky/clouds/gcp.py +10 -7
  13. sky/clouds/hyperbolic.py +10 -7
  14. sky/clouds/ibm.py +2 -0
  15. sky/clouds/kubernetes.py +26 -9
  16. sky/clouds/lambda_cloud.py +10 -7
  17. sky/clouds/nebius.py +10 -7
  18. sky/clouds/oci.py +10 -7
  19. sky/clouds/paperspace.py +10 -7
  20. sky/clouds/runpod.py +10 -7
  21. sky/clouds/scp.py +10 -7
  22. sky/clouds/vast.py +10 -7
  23. sky/clouds/vsphere.py +2 -0
  24. sky/core.py +1 -0
  25. sky/dag.py +14 -0
  26. sky/dashboard/out/404.html +1 -1
  27. sky/dashboard/out/_next/static/ZWdSYkqVe3WjnFR8ocqoG/_buildManifest.js +1 -0
  28. sky/dashboard/out/_next/static/chunks/230-d6e363362017ff3a.js +1 -0
  29. sky/dashboard/out/_next/static/chunks/310.2671028c20e892c7.js +16 -0
  30. sky/dashboard/out/_next/static/chunks/{37-4650f214e2119168.js → 37-1f1e94f5a561202a.js} +2 -2
  31. sky/dashboard/out/_next/static/chunks/42.bc85e5b1a4debf22.js +6 -0
  32. sky/dashboard/out/_next/static/chunks/470-92dd1614396389be.js +1 -0
  33. sky/dashboard/out/_next/static/chunks/544.110e53813fb98e2e.js +1 -0
  34. sky/dashboard/out/_next/static/chunks/645.961f08e39b8ce447.js +1 -0
  35. sky/dashboard/out/_next/static/chunks/66-66ae330df2d3c1c7.js +1 -0
  36. sky/dashboard/out/_next/static/chunks/682.00e56a220dd26fe1.js +6 -0
  37. sky/dashboard/out/_next/static/chunks/697.6460bf72e760addd.js +20 -0
  38. sky/dashboard/out/_next/static/chunks/{856-bfddc18e16f3873c.js → 856-cdf66268ec878d0c.js} +1 -1
  39. sky/dashboard/out/_next/static/chunks/pages/{_app-ce31493da9747ef4.js → _app-0ef7418d1a3822f3.js} +1 -1
  40. sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-aff040d7bc5d0086.js +6 -0
  41. sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-32ce4f49f2261f55.js +6 -0
  42. sky/dashboard/out/_next/static/chunks/pages/clusters-4aa031d1f42723d8.js +1 -0
  43. sky/dashboard/out/_next/static/chunks/pages/config-3102d02a188f04b3.js +1 -0
  44. sky/dashboard/out/_next/static/chunks/pages/infra/[context]-6f1e02e31eecb5ce.js +1 -0
  45. sky/dashboard/out/_next/static/chunks/pages/infra-fd5dc8a91bd9169a.js +1 -0
  46. sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-e4b23128db0774cd.js +16 -0
  47. sky/dashboard/out/_next/static/chunks/pages/jobs-26da173e20af16e4.js +1 -0
  48. sky/dashboard/out/_next/static/chunks/pages/users-ce29e7420385563d.js +1 -0
  49. sky/dashboard/out/_next/static/chunks/pages/volumes-476b670ef33d1ecd.js +1 -0
  50. sky/dashboard/out/_next/static/chunks/pages/workspace/new-09ae0f6f972aa871.js +1 -0
  51. sky/dashboard/out/_next/static/chunks/pages/workspaces/{[name]-ecc5a7003776cfa7.js → [name]-0b4c662a25e4747a.js} +1 -1
  52. sky/dashboard/out/_next/static/chunks/pages/workspaces-862b120406461b10.js +1 -0
  53. sky/dashboard/out/_next/static/chunks/webpack-6133dc1e928bd0b5.js +1 -0
  54. sky/dashboard/out/_next/static/css/b23cb0257bf96c51.css +3 -0
  55. sky/dashboard/out/clusters/[cluster]/[job].html +1 -1
  56. sky/dashboard/out/clusters/[cluster].html +1 -1
  57. sky/dashboard/out/clusters.html +1 -1
  58. sky/dashboard/out/config.html +1 -1
  59. sky/dashboard/out/index.html +1 -1
  60. sky/dashboard/out/infra/[context].html +1 -1
  61. sky/dashboard/out/infra.html +1 -1
  62. sky/dashboard/out/jobs/[job].html +1 -1
  63. sky/dashboard/out/jobs.html +1 -1
  64. sky/dashboard/out/users.html +1 -1
  65. sky/dashboard/out/volumes.html +1 -0
  66. sky/dashboard/out/workspace/new.html +1 -1
  67. sky/dashboard/out/workspaces/[name].html +1 -1
  68. sky/dashboard/out/workspaces.html +1 -1
  69. sky/data/storage_utils.py +2 -4
  70. sky/exceptions.py +15 -0
  71. sky/execution.py +5 -0
  72. sky/global_user_state.py +129 -0
  73. sky/jobs/client/sdk.py +13 -11
  74. sky/jobs/server/core.py +4 -0
  75. sky/models.py +16 -0
  76. sky/provision/__init__.py +26 -0
  77. sky/provision/kubernetes/__init__.py +3 -0
  78. sky/provision/kubernetes/instance.py +38 -77
  79. sky/provision/kubernetes/utils.py +52 -2
  80. sky/provision/kubernetes/volume.py +147 -0
  81. sky/resources.py +20 -76
  82. sky/serve/client/sdk.py +13 -13
  83. sky/serve/server/core.py +5 -1
  84. sky/server/common.py +40 -5
  85. sky/server/constants.py +5 -1
  86. sky/server/metrics.py +105 -0
  87. sky/server/requests/executor.py +30 -14
  88. sky/server/requests/payloads.py +16 -0
  89. sky/server/requests/requests.py +35 -1
  90. sky/server/rest.py +152 -0
  91. sky/server/server.py +66 -16
  92. sky/server/state.py +20 -0
  93. sky/server/stream_utils.py +8 -3
  94. sky/server/uvicorn.py +153 -13
  95. sky/setup_files/dependencies.py +2 -0
  96. sky/skylet/constants.py +14 -3
  97. sky/task.py +141 -18
  98. sky/templates/kubernetes-ray.yml.j2 +30 -1
  99. sky/users/permission.py +2 -0
  100. sky/utils/context.py +3 -1
  101. sky/utils/resources_utils.py +66 -0
  102. sky/utils/rich_utils.py +6 -0
  103. sky/utils/schemas.py +146 -3
  104. sky/utils/status_lib.py +10 -0
  105. sky/utils/validator.py +11 -1
  106. sky/volumes/__init__.py +0 -0
  107. sky/volumes/client/__init__.py +0 -0
  108. sky/volumes/client/sdk.py +64 -0
  109. sky/volumes/server/__init__.py +0 -0
  110. sky/volumes/server/core.py +199 -0
  111. sky/volumes/server/server.py +85 -0
  112. sky/volumes/utils.py +158 -0
  113. sky/volumes/volume.py +198 -0
  114. {skypilot_nightly-1.0.0.dev20250624.dist-info → skypilot_nightly-1.0.0.dev20250625.dist-info}/METADATA +2 -1
  115. {skypilot_nightly-1.0.0.dev20250624.dist-info → skypilot_nightly-1.0.0.dev20250625.dist-info}/RECORD +123 -108
  116. sky/dashboard/out/_next/static/chunks/350.9e123a4551f68b0d.js +0 -1
  117. sky/dashboard/out/_next/static/chunks/42.2273cc2415291ceb.js +0 -6
  118. sky/dashboard/out/_next/static/chunks/470-1494c899266cf5c9.js +0 -1
  119. sky/dashboard/out/_next/static/chunks/641.c8e452bc5070a630.js +0 -1
  120. sky/dashboard/out/_next/static/chunks/682.4dd5dc116f740b5f.js +0 -6
  121. sky/dashboard/out/_next/static/chunks/760-a89d354797ce7af5.js +0 -1
  122. sky/dashboard/out/_next/static/chunks/901-b424d293275e1fd7.js +0 -1
  123. sky/dashboard/out/_next/static/chunks/984.ae8c08791d274ca0.js +0 -50
  124. sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-4e065c812a52460b.js +0 -6
  125. sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-520ec1ab65e2f2a4.js +0 -6
  126. sky/dashboard/out/_next/static/chunks/pages/clusters-7e9736af1c6345a6.js +0 -1
  127. sky/dashboard/out/_next/static/chunks/pages/config-e4f473661889e7cd.js +0 -1
  128. sky/dashboard/out/_next/static/chunks/pages/infra/[context]-00fd23b9577492ca.js +0 -1
  129. sky/dashboard/out/_next/static/chunks/pages/infra-8a4bf7370d4d9bb7.js +0 -1
  130. sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-171c27f4ca94861c.js +0 -16
  131. sky/dashboard/out/_next/static/chunks/pages/jobs-55e5bcb16d563231.js +0 -1
  132. sky/dashboard/out/_next/static/chunks/pages/users-c9f4d785cdaa52d8.js +0 -1
  133. sky/dashboard/out/_next/static/chunks/pages/workspace/new-31aa8bdcb7592635.js +0 -1
  134. sky/dashboard/out/_next/static/chunks/pages/workspaces-f00cba35691483b1.js +0 -1
  135. sky/dashboard/out/_next/static/chunks/webpack-c85998e6a5722f21.js +0 -1
  136. sky/dashboard/out/_next/static/css/6ab927686b492a4a.css +0 -3
  137. sky/dashboard/out/_next/static/zsALxITkbP8J8NVwSDwMo/_buildManifest.js +0 -1
  138. /sky/dashboard/out/_next/static/{zsALxITkbP8J8NVwSDwMo → ZWdSYkqVe3WjnFR8ocqoG}/_ssgManifest.js +0 -0
  139. /sky/dashboard/out/_next/static/chunks/{843-bde186946d353355.js → 843-07d25a7e64462fd8.js} +0 -0
  140. /sky/dashboard/out/_next/static/chunks/{938-ce7991c156584b06.js → 938-068520cc11738deb.js} +0 -0
  141. /sky/dashboard/out/_next/static/chunks/{973-56412c7976b4655b.js → 973-5b5019ba333e8d62.js} +0 -0
  142. {skypilot_nightly-1.0.0.dev20250624.dist-info → skypilot_nightly-1.0.0.dev20250625.dist-info}/WHEEL +0 -0
  143. {skypilot_nightly-1.0.0.dev20250624.dist-info → skypilot_nightly-1.0.0.dev20250625.dist-info}/entry_points.txt +0 -0
  144. {skypilot_nightly-1.0.0.dev20250624.dist-info → skypilot_nightly-1.0.0.dev20250625.dist-info}/licenses/LICENSE +0 -0
  145. {skypilot_nightly-1.0.0.dev20250624.dist-info → skypilot_nightly-1.0.0.dev20250625.dist-info}/top_level.txt +0 -0
@@ -1,20 +1,20 @@
1
- sky/__init__.py,sha256=6EDyx2cZc17m6-7099UVbdLHV1REXkQrTmfHKMUxpsg,6419
1
+ sky/__init__.py,sha256=RZFqktIWm9VjDd9MvcA69cl8cIDECyax-7XYwnjbnLc,6419
2
2
  sky/admin_policy.py,sha256=54DnRMDS0YaVNKG0vCfCaIUY7tKfMmEOFKKiuhGJgro,8976
3
3
  sky/authentication.py,sha256=jIX30mcTDVHKdJJa5Tje4qSgX8pL1xE1IJWRK_aHnHw,25465
4
4
  sky/check.py,sha256=qN0SGRxSGMOKaxubRlCQayZUMIjviTInEKhNMYZQ4cw,30246
5
5
  sky/cli.py,sha256=VXIZryeTtJPYpPTBKymVPmuOCyh8knfWrq-qnkr6R-4,178
6
6
  sky/cloud_stores.py,sha256=Ln5GBpel-sEs7rVx7bBrMkfLwA_bctI05Rox2uoz7Lo,26388
7
- sky/core.py,sha256=Ii0O3Yia5DZJ-yeKb2QVLRKgvhR3Z5el4euFFb0-FTQ,55541
8
- sky/dag.py,sha256=8x-VMtjvSi0lYBemCMPLYq5ONljhoABjWzMKjmmdjSo,3369
9
- sky/exceptions.py,sha256=cGGW4eVluLFEzAfI3Bxq7RGwTfCcl2KfslumCZLbxW0,18689
10
- sky/execution.py,sha256=LIRTPuRJFyvNkx1ZlIyUhbcy7k4YUnU-MEx6lnH1pg0,32990
11
- sky/global_user_state.py,sha256=bmjQp7MxYCznJ7mHbPjNfCF7aUIwNrUsKJsrNuEOd2A,59050
12
- sky/models.py,sha256=6TK3hdCxYYDNwHZH4CbFLWF8YH0pRhe0PLJQ9D9JsaA,2218
7
+ sky/core.py,sha256=C2L9k7z_bH1A0T_T3O1G02w1w-7Q9JYulyLo5W6ylhk,55580
8
+ sky/dag.py,sha256=5MFXlP43y9U54zxfYGhVyBiWEInoFFlt_zJ7ASJntXw,3889
9
+ sky/exceptions.py,sha256=YRPgpFkBRGE9jmG2r3SWJGS9p9-RPP2TZGjfd2VblSc,19044
10
+ sky/execution.py,sha256=BhI4paGKpXMhWJoelHFe7LGFbCnW7hl0rIAmdIay-dk,33223
11
+ sky/global_user_state.py,sha256=HIlFwH7x8KcWJkBKkPT-aG9HxVLgj5n-flGvY-10SzY,63670
12
+ sky/models.py,sha256=I_DgzfDcNeJBoVV8FRR8BcNYkE0hzwxuj28Jjs6oxZg,2611
13
13
  sky/optimizer.py,sha256=2JZl6exFMuOAzpWefvfY9CZPWnvjDLLvR92A2qpvtRs,61418
14
- sky/resources.py,sha256=4jPrHs6nnrqypTqHhHlN1XmEXlMK99Iz232i49eSt-k,102069
14
+ sky/resources.py,sha256=Jcg6z337r54D0NA_nTSnG8453lceC2zlTbC1bQwk8lQ,100064
15
15
  sky/sky_logging.py,sha256=cMurxhFExKEFX1frcMR71Ti_s9Obg9WY30veVxsZB6o,7285
16
16
  sky/skypilot_config.py,sha256=YB2CpsOy7jFXd0cr9NKARWuq0-k85inEszV8OvPjnJA,34032
17
- sky/task.py,sha256=_Kepsyrz3pEumqorXglvdrPLOyW7TWuaLcaTb1KZPxU,64734
17
+ sky/task.py,sha256=lSPLp4mc_plmY7ZI0mCmNG6aeeHFtIQzx23UWNclUOs,70701
18
18
  sky/adaptors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
19
  sky/adaptors/aws.py,sha256=4caUTO5nxZQyDVPyQdoPljaF-Lz_Fa6NEnu3FfmLZd4,8633
20
20
  sky/adaptors/azure.py,sha256=7l5jobSTsTUcTo3ptrgOpRgngHY92U64eQBPxvDe1HA,21986
@@ -34,8 +34,8 @@ sky/adaptors/vast.py,sha256=tpvmHi7IkQNzbbHVkeo04kUSajoEpSzXr2XgeO_I1LU,695
34
34
  sky/adaptors/vsphere.py,sha256=zJP9SeObEoLrpgHW2VHvZE48EhgVf8GfAEIwBeaDMfM,2129
35
35
  sky/backends/__init__.py,sha256=tpa9gAygQopsiBUUuy3wVmr4E05FoPTFHIWqEo4i-u0,627
36
36
  sky/backends/backend.py,sha256=o47WUnB_h2nd_SkV0q0NTJ4vCwk23-KH5DgAm_JpKgE,7739
37
- sky/backends/backend_utils.py,sha256=nCSLMV-uoeRhIXTfuQsBNYN1W6lXt5AWs6acEIu7OOQ,141562
38
- sky/backends/cloud_vm_ray_backend.py,sha256=NJvxmf83i9M3Ukx8RVkx0GNIUXxpxxKzCOlCcdbt__k,258929
37
+ sky/backends/backend_utils.py,sha256=nhU9ipILO79zxNohMp3bPxs9bQkOy_WjNdL44AL-J34,142039
38
+ sky/backends/cloud_vm_ray_backend.py,sha256=WPmK75JRfX4nLphJQVJFapyZRQcblAiUhITrzNUt3Hc,259437
39
39
  sky/backends/docker_utils.py,sha256=Hyw1YY20EyghhEbYx6O2FIMDcGkNzBzV9TM7LFynei8,8358
40
40
  sky/backends/local_docker_backend.py,sha256=r80BGJZmAH8F49v6Y_pG3_pHmW5LQEQRusLkKoYoe9Q,17047
41
41
  sky/backends/wheel_utils.py,sha256=IUruJijm5854UGDdSayHbHzjjWRM46bATK1nSnK44xY,11071
@@ -76,110 +76,113 @@ sky/catalog/data_fetchers/fetch_vsphere.py,sha256=Yf7tKzwJsQ_4f64IT1EAP108C1D3Rg
76
76
  sky/client/__init__.py,sha256=pz6xvVSd9X-gwqbsDL0E9QOojYqM0KAD0j-NCyCIF1k,38
77
77
  sky/client/common.py,sha256=E_5cjxd8fWRB7fU1yfIbiyQf-IyVhpD5KkB7Fl3cQEI,15215
78
78
  sky/client/oauth.py,sha256=sNJ_DMsSTcxluj5FeNQ2IafZJLImRFmCAZ79bXeABn4,2871
79
- sky/client/sdk.py,sha256=J8ejaIO5dNqmkOEcLeQUHrCwAhK3tqEkyV4uzuUCp54,85013
79
+ sky/client/sdk.py,sha256=gTcnoDn7-1QEB0XbMBVk3nXnYxGrFty5yqErI4_5Y3k,86241
80
80
  sky/client/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
81
- sky/client/cli/command.py,sha256=pnXO8kmeRxOSBSvbsu0JTkjh9soEJ_0zrhTl43dgk40,207112
81
+ sky/client/cli/command.py,sha256=W4nzQ64ckekLrLOFynqP-BcXUHMMNO0mpNQrH5J-mEQ,214654
82
82
  sky/client/cli/deprecation_utils.py,sha256=H_d5UyF2CekEoThduAzt5cihBO8hwKYMu0-Wqfbjv5E,3370
83
83
  sky/client/cli/flags.py,sha256=6IdS_G2lB1C6r8kJMzLVREY_qV50VHiSfWlmppVrWuc,11623
84
84
  sky/clouds/__init__.py,sha256=tC9_Vi6GvVceWUi6uZvm7vXzBa0uH3CjRQ-QCYqdJMw,1624
85
- sky/clouds/aws.py,sha256=tODEKjWW1f64T58FAE6ScOYeQED7eSPZe4rz98mJ1ag,54931
86
- sky/clouds/azure.py,sha256=0MBY0xr7RmIg-GBS031lbQ7DwnZCh-uwugebATYuOaA,32485
87
- sky/clouds/cloud.py,sha256=_rmsnmNCvXsgf-1On57ubsFGr61duhBxjIgbJb5kVRw,38772
88
- sky/clouds/cudo.py,sha256=6tbXfxrR9xzY-Z0XCugUWDqfgXk3mvM66C6esOULZmA,13522
89
- sky/clouds/do.py,sha256=lBXN9x8ZeS1P4r5znfSTcDVPWAiLif7gt7agcWdchMo,11900
90
- sky/clouds/fluidstack.py,sha256=ya9eUT9jCaTsRozIjyq1M_c0EQDJWeNQJrscBAzKZv0,12933
91
- sky/clouds/gcp.py,sha256=IduBMFgl8JWS1aoFevAmuT50v-1F025Kxq_GP0HBjIo,67667
92
- sky/clouds/hyperbolic.py,sha256=SnFM8XvORJOEHlkB4dFNsqsLcrI_gbBXszMudUqvKF8,11393
93
- sky/clouds/ibm.py,sha256=FPU8j20LSBxr7gilD4F2liMG40eQyxp2ZDqNh-pmKYU,22262
94
- sky/clouds/kubernetes.py,sha256=R6roqUETcFkJllr4surrHcKQnhvOMvOdcFs8gSrSmqw,44518
95
- sky/clouds/lambda_cloud.py,sha256=ZBpIA3wO8aNV-Ox1TpxE91J4K6Tcfp8pFXLh192lE3c,12993
96
- sky/clouds/nebius.py,sha256=sgQnDY6Tjaur5VgjqWi00LB5sixo4xqxIUD15DZeiEM,20521
97
- sky/clouds/oci.py,sha256=lMUO5SjgFZK1rs2KOoBG-hePRLiHEcbNWP44weugav8,27875
98
- sky/clouds/paperspace.py,sha256=ir-nBlluANVH95LgbYCDJUzatLgfqgtWwZz81nk8E4w,11315
99
- sky/clouds/runpod.py,sha256=aE5i3N7Q2N1Y2Miamc22EfA3iIVQzvKwvTYb33E5wwU,12708
100
- sky/clouds/scp.py,sha256=-mg4IRabyo8piliwlXjDfOmEdvF511jqzB0rVn3MVZc,15556
85
+ sky/clouds/aws.py,sha256=vkC-6gMgz71zoygvD0SrfcaS5ysvitl4MjkOHz0o-o8,55030
86
+ sky/clouds/azure.py,sha256=h-5hyp4w-g0FDwi4_AbLHRV5R9V869aBaVZA6Tsq3yE,32584
87
+ sky/clouds/cloud.py,sha256=yKFBuceNYsSisvoQ3lqgi5gDOCvUHxcMBiEBfATqN_0,38893
88
+ sky/clouds/cudo.py,sha256=DvKod2xbCqd7wCXzwC3ePtz9GRLZhCiBl09QJVLWwYg,13643
89
+ sky/clouds/do.py,sha256=x1oxaoGL3ioFJFwt3BA1N4seGyetPpV23ENemQLDe2I,11999
90
+ sky/clouds/fluidstack.py,sha256=FYjTOYXulqUx_nH7iL3CpHTAxMMyFymKIW35LHtuvaM,13054
91
+ sky/clouds/gcp.py,sha256=tBch7sBE4htY4P_kJXjfWC5W4TRPyCneSU84J7WjOkg,67766
92
+ sky/clouds/hyperbolic.py,sha256=cvcYeTs7js36OOXwehme4vzzjtDWqjPyqtxmb4XuUk4,11492
93
+ sky/clouds/ibm.py,sha256=kGJpdpC1oJJY05PVHVqez_rTDkAALeq0P0xuoXyQZwM,22383
94
+ sky/clouds/kubernetes.py,sha256=3NVngZ2TWv_U-FYPCZiBjbFjNwD3u6bTTIDiv7lXWeA,45358
95
+ sky/clouds/lambda_cloud.py,sha256=oP0G8u3qXPTtxF5s2650p6f9ebAqcdxUVPQtu-p9A9g,13092
96
+ sky/clouds/nebius.py,sha256=XJnRjPXjTCIBrIeV18w8uXaHefHyKNbz2CGxL_cmk1Q,20620
97
+ sky/clouds/oci.py,sha256=_6FtvLBaoFo9ndyDudezMuUVW5gaP4AaZbMoEV82YBQ,27974
98
+ sky/clouds/paperspace.py,sha256=cZkidPfWp7GwV23yNQAnlW2X6m_GXsl5qnmDvw5upHA,11414
99
+ sky/clouds/runpod.py,sha256=5pR4oyFu3yh2BQzE3pxIpNIglsvzwGQ9YkabPW-gBVM,12807
100
+ sky/clouds/scp.py,sha256=Q3DZcio9bIlY3hBuHt7NF3qgXlVzOTdqStSFsH9mI4Y,15655
101
101
  sky/clouds/ssh.py,sha256=8zapahEhAPkeAxU1UB0L0LYR7Yyp8OT1HCYclXYzx_4,8460
102
- sky/clouds/vast.py,sha256=0qfa_keCxr_pXSQT15zYabWGb7Jg8cVRM3jnF5bRdPM,11652
103
- sky/clouds/vsphere.py,sha256=2X5d0pOdwU_GBz1DH6zI1-HqIdUii5NEcFgqv3n3jio,12640
102
+ sky/clouds/vast.py,sha256=1pzpdGqWDi9sEhDGq8E0f2G9v-2bsQjblNoGVyYR1yI,11751
103
+ sky/clouds/vsphere.py,sha256=8jq_zS7q2DJDRC-MkmQh9ZWPN3j3ZsMucsAk_SZu8lc,12761
104
104
  sky/clouds/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
105
105
  sky/clouds/utils/aws_utils.py,sha256=W5BRC-2F_VY4BymRA1kS6-MufsI3V8cfY_hv--4gJBU,1986
106
106
  sky/clouds/utils/azure_utils.py,sha256=NToRBnhEyuUvb-nBnsKTxjhOBRkMcrelL8LK4w6s4t8,3555
107
107
  sky/clouds/utils/gcp_utils.py,sha256=rh4a91euYFflq6V7bLpY9XnAwnwyNczRueOShpD-E8U,7204
108
108
  sky/clouds/utils/oci_utils.py,sha256=0YxhgZdeIHQUI1AZ86YuswsZg5HdVCIVfSTRJsSHYI0,6396
109
109
  sky/clouds/utils/scp_utils.py,sha256=VGuccVO5uFGr8-yolWSoYrgr11z6cIeDBGcqkBzAyOs,18409
110
- sky/dashboard/out/404.html,sha256=V_iIvFCfKf4Grbs2Rtokz0dgeyHphHxYI0InlJ9B1cY,1423
111
- sky/dashboard/out/clusters.html,sha256=fAuCPuKydeAMP-QUoozp6Kob7dKh3eiRuREVMUMoYEE,1418
112
- sky/dashboard/out/config.html,sha256=WzdHMEHqaTRSF0EE2jYKRF0RPaiQIftEMyYtCpTGZUk,1414
110
+ sky/dashboard/out/404.html,sha256=byaTFiB4W4MrZjcBfttGmqfVCbpXHz4MIx7QLeINeYs,1423
111
+ sky/dashboard/out/clusters.html,sha256=IAvFrm7GKELDwKbOw3ir5bQVvPfSouq2zpcAHaj9Zrw,1418
112
+ sky/dashboard/out/config.html,sha256=xU2zmHN_EuX-m6xTHpoASEweMTZ3UtoL5v9kQ589dOA,1414
113
113
  sky/dashboard/out/favicon.ico,sha256=XilUZZglAl_1zRsg85QsbQgmQAzGPQjcUIJ-A3AzYn8,93590
114
- sky/dashboard/out/index.html,sha256=35L42OMy7QC8JQ3FEp5j2EsMmRLyN33kJGVpgfIptZ0,1407
115
- sky/dashboard/out/infra.html,sha256=auUbnKV9gak1BJZ-Lup9ZHaPEob5HljxJTQrOoX349Y,1412
116
- sky/dashboard/out/jobs.html,sha256=UdK2e9zKpAYKGrrUek4DH9qpeBr93QYw-7XSyHDkLic,1410
114
+ sky/dashboard/out/index.html,sha256=ioS6J2Ev70zvTZ5rxVqn_uoPTYbelifzdApL_5W5DGI,1407
115
+ sky/dashboard/out/infra.html,sha256=GG-Yo_LD9LzpN5EuxbYg06X6pudgqEHRsm0Us6arsDI,1412
116
+ sky/dashboard/out/jobs.html,sha256=Lo3vtkhZUjV_uw6Qy1HM5h0rDzFwPZF40z0ZK2CZABw,1410
117
117
  sky/dashboard/out/skypilot.svg,sha256=c0iRtlfLlaUm2p0rG9NFmo5FN0Qhf3pq5Xph-AeMPJw,5064
118
- sky/dashboard/out/users.html,sha256=FOEY5SIY-AeAh4H4ALEF8IlOgKrd4R-WIn9hgiqDyWs,1412
119
- sky/dashboard/out/workspaces.html,sha256=uVQFpVJ4I_uJmUzCkZ3i-a90fgirHCh-LV3pXnlzARQ,1422
118
+ sky/dashboard/out/users.html,sha256=Sv-UEzL3ym2hOtZuaSIwQ45Gh2fuyJiLna6EbLa1wjA,1412
119
+ sky/dashboard/out/volumes.html,sha256=pN1OTaS2szR8PrWZYSUuKM5xU2vYB1aPDoKvR7h39UY,1416
120
+ sky/dashboard/out/workspaces.html,sha256=cXXl0reWo3P7uvsPFAGMedLV09X-iGU0VZLsaJe3_Po,1422
121
+ sky/dashboard/out/_next/static/ZWdSYkqVe3WjnFR8ocqoG/_buildManifest.js,sha256=0kBB6ES7EOMSdHv8Z42A-YHAXHD7imkO3uUCrlvILF8,2169
122
+ sky/dashboard/out/_next/static/ZWdSYkqVe3WjnFR8ocqoG/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
120
123
  sky/dashboard/out/_next/static/chunks/211.692afc57e812ae1a.js,sha256=TbpmhT-AzGXhDbjA6mJG_D5dLgq_st-hMr0nbCpRsEY,3778
121
- sky/dashboard/out/_next/static/chunks/350.9e123a4551f68b0d.js,sha256=Sj1tcifLEZKm43SFf3zYfT0VC-kcGSb18EV3kV_KTTs,266
122
- sky/dashboard/out/_next/static/chunks/37-4650f214e2119168.js,sha256=35QPBMfnORwULgTBC6KEnIj1M_EXv4BuElq9ChUTmYQ,19047
123
- sky/dashboard/out/_next/static/chunks/42.2273cc2415291ceb.js,sha256=JN0OTmLUIu-7xC4ULxLyIG9_aOb646IiOTV6N-Cw18c,11923
124
+ sky/dashboard/out/_next/static/chunks/230-d6e363362017ff3a.js,sha256=WkDwCK_WCE2UfSYZNnfVrRHsYqgkpA9HBfnZtXKSkeI,22583
125
+ sky/dashboard/out/_next/static/chunks/310.2671028c20e892c7.js,sha256=BGOhxV6TGjf7Z8uUymcI7f6Ncaj_3YObJtTd3Br3d8U,34756
126
+ sky/dashboard/out/_next/static/chunks/37-1f1e94f5a561202a.js,sha256=zBzeMhOb8Of1aH4uU-lMSrvowGjxikvVBkP5hjTWyiU,19047
127
+ sky/dashboard/out/_next/static/chunks/42.bc85e5b1a4debf22.js,sha256=3UEzVVmejY2fxKtQq_jKQP1_Fu-oOFiS9bMlWt2lGoo,13452
124
128
  sky/dashboard/out/_next/static/chunks/443.b2242d0efcdf5f47.js,sha256=PCxtMhwuF2YB0CtKlV6rjYXSyZZtPLA7miWqyCGEEHo,18352
125
- sky/dashboard/out/_next/static/chunks/470-1494c899266cf5c9.js,sha256=88bQp5W5lwm8iup3L7uMD6kghCcta4uC7tDw4Pjb8yA,14910
129
+ sky/dashboard/out/_next/static/chunks/470-92dd1614396389be.js,sha256=JVu40o9FW6PdYFiPRZ7MWsLxrVgd5iuxe0kK7pQEcUw,15590
126
130
  sky/dashboard/out/_next/static/chunks/491.b3d264269613fe09.js,sha256=WVRPM-7C1QZqInNmEaFw_vpaCR0GcyjnOTvGMWdbYRs,8486
127
131
  sky/dashboard/out/_next/static/chunks/513.309df9e18a9ff005.js,sha256=N_W6rOSJNHKK1lnldigsLWogv_WLUJaaHz4fq1kjBvI,7088
132
+ sky/dashboard/out/_next/static/chunks/544.110e53813fb98e2e.js,sha256=sZMt5pTninJj64KQrKZtmgyy2kEPHlFP1MLjWrj8_88,306
128
133
  sky/dashboard/out/_next/static/chunks/616-d6128fa9e7cae6e6.js,sha256=KdZtaXM4mX6I7wJME5yyIOOX8jGgstijnb9QPgo3bdM,179244
129
- sky/dashboard/out/_next/static/chunks/641.c8e452bc5070a630.js,sha256=gxDg_6aeVet-pkt14V_iA-gLi8bSCI3aWoZtUTgHGtI,32900
134
+ sky/dashboard/out/_next/static/chunks/645.961f08e39b8ce447.js,sha256=N3zoEuCVl072EOJjTeBE2ElGppaQYTgR6T2xXEB7eUw,20033
135
+ sky/dashboard/out/_next/static/chunks/66-66ae330df2d3c1c7.js,sha256=v_vmRxImKOGhTFF2TAkinfhsSA5esLMN2orjr1WwehQ,13291
130
136
  sky/dashboard/out/_next/static/chunks/664-047bc03493fda379.js,sha256=zPR7g3iSBlKD2s7vlzJ9sBtaNkg6uqdp1u_0587Fxyo,6556
131
- sky/dashboard/out/_next/static/chunks/682.4dd5dc116f740b5f.js,sha256=VgnSHJUwbZQokAwmnrlF_0t9Cb4lrJoZ1oaSwuOxT48,17253
132
- sky/dashboard/out/_next/static/chunks/760-a89d354797ce7af5.js,sha256=htSTCVzwaMLrKoA_uIW8Gv_miITj-lef66eYPakNXoM,22675
137
+ sky/dashboard/out/_next/static/chunks/682.00e56a220dd26fe1.js,sha256=V9Y4u4JsVb45YZo7CbSvdP5kbrTs3Px02lmcUKB8kio,22326
138
+ sky/dashboard/out/_next/static/chunks/697.6460bf72e760addd.js,sha256=rKeQh2I9u5AeRlsQUXBQhtplnX6iAkujYoho6rg8dXY,9413
133
139
  sky/dashboard/out/_next/static/chunks/798-c0525dc3f21e488d.js,sha256=qROA0j-IKFdZFhQdWglA67iuCH8pf6mQRDqD6Q4hy00,38450
134
140
  sky/dashboard/out/_next/static/chunks/799-3625946b2ec2eb30.js,sha256=KZOrIkUG_Ju9ObLHlSS3_PIllwuGzw1o9FrCL_NsXGY,64559
135
141
  sky/dashboard/out/_next/static/chunks/804-4c9fc53aa74bc191.js,sha256=yC-hYtK6OPB30EDHw7JG50eDF5-CufVV-lCg4__Fg-w,11465
136
- sky/dashboard/out/_next/static/chunks/843-bde186946d353355.js,sha256=GLzSTxq-eW2lOhXEDQOJzHJPYzUE5bIgxN6y4Zkpu_E,17674
137
- sky/dashboard/out/_next/static/chunks/856-bfddc18e16f3873c.js,sha256=WWYhFQJwFWzIJzYGyZ8bwlgQr9DRfClPuVSWq8POL7A,14238
138
- sky/dashboard/out/_next/static/chunks/901-b424d293275e1fd7.js,sha256=USJBNVTy4Wh7XiefTztrin48bUQU93kBmhjDegpPN1s,13128
142
+ sky/dashboard/out/_next/static/chunks/843-07d25a7e64462fd8.js,sha256=GLzSTxq-eW2lOhXEDQOJzHJPYzUE5bIgxN6y4Zkpu_E,17674
143
+ sky/dashboard/out/_next/static/chunks/856-cdf66268ec878d0c.js,sha256=xS7JlfYASz1ysPXoizWKtaEltOdDvF-qDo7Mv6BmqA8,14268
139
144
  sky/dashboard/out/_next/static/chunks/937.3759f538f11a0953.js,sha256=IaXGhx7oSJ72AJzmF9c1IoK02F_rVo_YlnM2WWofWPo,54431
140
- sky/dashboard/out/_next/static/chunks/938-ce7991c156584b06.js,sha256=dQMOHFUBZrLmC7V2YvbcjGGo5NCEIUlmy8_kRh-GVdc,25678
145
+ sky/dashboard/out/_next/static/chunks/938-068520cc11738deb.js,sha256=dQMOHFUBZrLmC7V2YvbcjGGo5NCEIUlmy8_kRh-GVdc,25678
141
146
  sky/dashboard/out/_next/static/chunks/947-6620842ef80ae879.js,sha256=wVQ6A5PftPlT_QrlH9sd3i1IKtJLXBWg6rVisQ9Ktfs,10017
142
147
  sky/dashboard/out/_next/static/chunks/969-d3a0b53f728d280a.js,sha256=7vGNbFr0SbImIdjqEecyzD9d0sM7Lsfg851gUAMHBoM,9798
143
- sky/dashboard/out/_next/static/chunks/973-56412c7976b4655b.js,sha256=Ae6HPYDbcw8KzXylLfuirURKWoxuA6y6Vhk1PR-t4U0,10628
144
- sky/dashboard/out/_next/static/chunks/984.ae8c08791d274ca0.js,sha256=p84RL05ys05JWIfmLDsXclrWrHsD_Ys5nyH7GagnTtE,12174
148
+ sky/dashboard/out/_next/static/chunks/973-5b5019ba333e8d62.js,sha256=Ae6HPYDbcw8KzXylLfuirURKWoxuA6y6Vhk1PR-t4U0,10628
145
149
  sky/dashboard/out/_next/static/chunks/989-db34c16ad7ea6155.js,sha256=sTGISt_JIACVJorZS8_lq9_RtlwUG98wI6xzosS-zCI,9434
146
150
  sky/dashboard/out/_next/static/chunks/fd9d1056-2821b0f0cabcd8bd.js,sha256=ce2WOATL1LdzsWouKQ-1NCiBQJmcykgzqP8wCp1yqbE,172831
147
151
  sky/dashboard/out/_next/static/chunks/framework-87d061ee6ed71b28.js,sha256=dh6TKdXcSRoGP4HqHe2uwzWCZBPz16dyTWufLsxeRvM,140942
148
152
  sky/dashboard/out/_next/static/chunks/main-app-241eb28595532291.js,sha256=P0_tU7pqs_pOQaw-lVzCNl6recBw5lFfkAD0jRk2uzc,115881
149
153
  sky/dashboard/out/_next/static/chunks/main-e0e2335212e72357.js,sha256=BxTmVbZDnMUQvQd57MEl1Ui0VZaNmwLOviY7h_xMjP0,109884
150
154
  sky/dashboard/out/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js,sha256=6QPOwdWeAVe8x-SsiDrm-Ga6u2DkqgG5SFqglrlyIgA,91381
151
- sky/dashboard/out/_next/static/chunks/webpack-c85998e6a5722f21.js,sha256=5aI5D-IrN5pa66GWuzXjn31q4DbkggJfURgYxZLQUPA,4445
152
- sky/dashboard/out/_next/static/chunks/pages/_app-ce31493da9747ef4.js,sha256=RGNHieLBdAZsXSeD-IwS6u9SFyK2Ho-EOqJKFClcn4E,7570
155
+ sky/dashboard/out/_next/static/chunks/webpack-6133dc1e928bd0b5.js,sha256=uCGsNfrDyAEsZeoVskW68gFkGzbiBnAo8h5OvSOIcKc,4492
156
+ sky/dashboard/out/_next/static/chunks/pages/_app-0ef7418d1a3822f3.js,sha256=kGC1bIix42JPaw3QBOZWTRSDrcxM_LcwJsEj_m7ipwk,7570
153
157
  sky/dashboard/out/_next/static/chunks/pages/_error-1be831200e60c5c0.js,sha256=TZqrus06KKPx-CMABDMPKF7w-NQ5s2gwJAM8Huyl7qU,247
154
- sky/dashboard/out/_next/static/chunks/pages/clusters-7e9736af1c6345a6.js,sha256=60u_R4aethzYguT_zi1OiG3iDCpj9e6fcxFw-tb1WK4,833
155
- sky/dashboard/out/_next/static/chunks/pages/config-e4f473661889e7cd.js,sha256=Cq28W2EqgrLk0DOzbK3zNA2mAjd9KOSKCNCpd0T2Hhs,785
158
+ sky/dashboard/out/_next/static/chunks/pages/clusters-4aa031d1f42723d8.js,sha256=LSz1JeDcSp42CHvKMlaBlOXyTgRJIaIkEZrVVUMXOqM,832
159
+ sky/dashboard/out/_next/static/chunks/pages/config-3102d02a188f04b3.js,sha256=34Gvm5Z_WYlEQD1gwyeaMGAff4woNpY2ShfGqLkuPrc,776
156
160
  sky/dashboard/out/_next/static/chunks/pages/index-6b0d9e5031b70c58.js,sha256=Fp2FKnKQtORK_5O7MEQ08tlTk7ewMLuecw_EY5g4Dlg,513
157
- sky/dashboard/out/_next/static/chunks/pages/infra-8a4bf7370d4d9bb7.js,sha256=U1iabqXrI0GccNOh8noO50Ksw74n2WcUt5Ous0BzcrY,797
158
- sky/dashboard/out/_next/static/chunks/pages/jobs-55e5bcb16d563231.js,sha256=1IIjzguKSmaUBLpT7ftxPyby_CshJmK-T1Xw1TAf3yk,835
159
- sky/dashboard/out/_next/static/chunks/pages/users-c9f4d785cdaa52d8.js,sha256=nA5fqDtOhArcrBiO_-PbEcwgYUwYaz47RfkHgr8lRGM,807
160
- sky/dashboard/out/_next/static/chunks/pages/workspaces-f00cba35691483b1.js,sha256=BcyFK_4V7qMyzym7XTENU0r9_OFWoBwpwtYcsMqOxLM,849
161
- sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-520ec1ab65e2f2a4.js,sha256=Jwpa1LhrRLCO5-T4uUWIyl9-EAMEy--VIbsfwzjuInQ,11627
162
- sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-4e065c812a52460b.js,sha256=_USlnmh1uosY3jwOe9j3irMpRDHEe0XGUgl0_LCAkNI,20102
163
- sky/dashboard/out/_next/static/chunks/pages/infra/[context]-00fd23b9577492ca.js,sha256=qkoIO7GFCExBpJiu9k5NhOGAFQSmRgSevC7qk_ul61s,807
164
- sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-171c27f4ca94861c.js,sha256=wjWyGRESeSgQuucRHJEf8ysndmKcH76dpFiGxPMU1FY,24198
165
- sky/dashboard/out/_next/static/chunks/pages/workspace/new-31aa8bdcb7592635.js,sha256=Rp48cs4oSH9b8voWWgYMePJdmKx9Qt0KpjcOWOeBp5o,758
166
- sky/dashboard/out/_next/static/chunks/pages/workspaces/[name]-ecc5a7003776cfa7.js,sha256=pr0VGH-WInvbGbPDDm0nXue_Gcb8n6Ck42Igx0LAjSI,4389
167
- sky/dashboard/out/_next/static/css/6ab927686b492a4a.css,sha256=AU71ZG9ULEaPBNE5bvDQs0E4Vve4BS3fhg990EGQbsA,42652
168
- sky/dashboard/out/_next/static/zsALxITkbP8J8NVwSDwMo/_buildManifest.js,sha256=EnZkn4YSlcjul_4O8SpF-r8bqAQdIenAfmpLzt_3t98,2096
169
- sky/dashboard/out/_next/static/zsALxITkbP8J8NVwSDwMo/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
170
- sky/dashboard/out/clusters/[cluster].html,sha256=X5Pk4iR8MY97zTfizUCx50vrAuvJueyfS3hICPA5ySg,2746
171
- sky/dashboard/out/clusters/[cluster]/[job].html,sha256=PPiE7vDr7scCW21I1dLEW8lknXb_K3ymM9QgKCFvbVM,2067
172
- sky/dashboard/out/infra/[context].html,sha256=TaoOqo4UXuylXtDoO33FOxzTAViYvsPbtHHoIUkaIZQ,1436
173
- sky/dashboard/out/jobs/[job].html,sha256=slWzE8SCMU7ECcU0kYj5YNUOMRxHXz0rZuPoZAvnXss,2209
161
+ sky/dashboard/out/_next/static/chunks/pages/infra-fd5dc8a91bd9169a.js,sha256=j1zE9goTgbtdv3oP6Fm4vQTY0h9QswXeT88hAhtrjxo,796
162
+ sky/dashboard/out/_next/static/chunks/pages/jobs-26da173e20af16e4.js,sha256=RO6x7pAOL2VIeKShgY6i5UVZAxsC4FGUxbvnJK8h8ro,834
163
+ sky/dashboard/out/_next/static/chunks/pages/users-ce29e7420385563d.js,sha256=P5_tfLlra4rWlh_mg3dvL1j1M6UlWpiENnIt_Y5Bc3Q,806
164
+ sky/dashboard/out/_next/static/chunks/pages/volumes-476b670ef33d1ecd.js,sha256=dUTHjiMED4zNARhKc7ICqwvX5IN1hBSAMiXzegabXbE,768
165
+ sky/dashboard/out/_next/static/chunks/pages/workspaces-862b120406461b10.js,sha256=5TR39mw2x2ozZnPTnCubqVQ_1DiPSFp1lKYDitgQcks,848
166
+ sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-32ce4f49f2261f55.js,sha256=CSoE89n2Z1TawUloaGSr02V6KdW-Y9oBggf1wLKo7ys,16531
167
+ sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-aff040d7bc5d0086.js,sha256=S0T39ORq8pVhFgUNG7FTeF22w9v85-HbHQknM4z0U2A,20240
168
+ sky/dashboard/out/_next/static/chunks/pages/infra/[context]-6f1e02e31eecb5ce.js,sha256=pqsNYG5ZO0yEinn4Z5L3Oyzo6z1YpPnSP8czCt7SQ8k,806
169
+ sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-e4b23128db0774cd.js,sha256=Yub_S1nVTAzh0A4r9k6UkRbkVxghk4etLhqXpS_i_yw,24343
170
+ sky/dashboard/out/_next/static/chunks/pages/workspace/new-09ae0f6f972aa871.js,sha256=X3o7lqMpE0TbVZe-vTRGoFvCloySSIWoLBQ6EqSOD7c,757
171
+ sky/dashboard/out/_next/static/chunks/pages/workspaces/[name]-0b4c662a25e4747a.js,sha256=Q-ZQr1E844k16lHVNfpwvxlGMmatPl5KOL-pn_Yh41w,4388
172
+ sky/dashboard/out/_next/static/css/b23cb0257bf96c51.css,sha256=AWeYAaU26H8hRy70cFYf7IQ_AaAbhybcGueFvjU92S4,43095
173
+ sky/dashboard/out/clusters/[cluster].html,sha256=1Sjy410Ld4bwXtHZe4-FbDoKzHC484eTS0O8yAH6DiI,2745
174
+ sky/dashboard/out/clusters/[cluster]/[job].html,sha256=5yvOerMpt3GjRWv9v_34zXtC2lu2QaNZ1mRTwJCO4Jc,2067
175
+ sky/dashboard/out/infra/[context].html,sha256=ZyZnbqTwr6hn_9_Ll64fKRG8mbYGrJrY0tz8DIUXhjs,1436
176
+ sky/dashboard/out/jobs/[job].html,sha256=k0rkWIeYFEwBSonSEPiAfecU3oHpdo62MZ_SIfOv7-I,2209
174
177
  sky/dashboard/out/videos/cursor-small.mp4,sha256=8tRdp1vjawOrXUar1cfjOc-nkaKmcwCPZx_LO0XlCvQ,203285
175
- sky/dashboard/out/workspace/new.html,sha256=NGci6ilHauPFTVHj0KEH5e5Gs45BwMoAwebWZFOrAJg,1428
176
- sky/dashboard/out/workspaces/[name].html,sha256=iGG0bXA9rExSw4ia09hqnanqy54VOIQghQfbB9mLQ7g,2745
178
+ sky/dashboard/out/workspace/new.html,sha256=lr3CmpxCK8lnf_LmSLNnbhIpfqpKHAsSpCZ1klLouOw,1428
179
+ sky/dashboard/out/workspaces/[name].html,sha256=bwVBZZEU2KsLhtm-un6Ou40vDoDJK7YhoGL4v9PHKmU,2744
177
180
  sky/data/__init__.py,sha256=Nhaf1NURisXpZuwWANa2IuCyppIuc720FRwqSE2oEwY,184
178
181
  sky/data/data_transfer.py,sha256=N8b0CQebDuHieXjvEVwlYmK6DbQxUGG1RQJEyTbh3dU,12040
179
182
  sky/data/data_utils.py,sha256=CNYPM963qby5ddW0DZNbhiWXkqgB9MHh_jrC5DoBctM,33437
180
183
  sky/data/mounting_utils.py,sha256=6f1d0EeBj4dY-LQPwh8EtI6yoEHZawDgHaC8LChDS2s,21946
181
184
  sky/data/storage.py,sha256=OzbHt8tJ8de_43-Wjj347htugGsumfSxkh8FYAKQyq8,236662
182
- sky/data/storage_utils.py,sha256=z9Sp4ZUntGeteZ21WmGzh796LC-_1aF-Ol6ttewSm8k,13915
185
+ sky/data/storage_utils.py,sha256=l6sx0r3j0F2mTcIVn1S7-4Y_vFRZcvwsVrG_CCacVR8,13856
183
186
  sky/jobs/__init__.py,sha256=qoI53-xXE0-SOkrLWigvhgFXjk7dWE0OTqGPYIk-kmM,1458
184
187
  sky/jobs/constants.py,sha256=5n6wcYVyOnllM39uJDQDv7hHILcdSwiyg_-tqMc7nJk,3305
185
188
  sky/jobs/controller.py,sha256=7QvYO1xsa3CgQavenP2N6fs66SHuMLA2QyFLOlqMyIs,35391
@@ -188,14 +191,14 @@ sky/jobs/scheduler.py,sha256=b3RAjEzCXyoikh_BcmmGjoZ9ZeXr-tBnXoLFctt95ko,14375
188
191
  sky/jobs/state.py,sha256=B8q6jf8GTPMREdu1MRPyIucEtZlxHcgGuTlAfPlDwAk,55675
189
192
  sky/jobs/utils.py,sha256=2BscuxGkEUL8yJt_T3urmtyxd-QvRQ1-xOvTPJSRNVA,71326
190
193
  sky/jobs/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
191
- sky/jobs/client/sdk.py,sha256=OiDSRqVn9Inbb3K66KKl2eNYvqldOcEWSrDkaxXf8aI,11125
194
+ sky/jobs/client/sdk.py,sha256=t6mkY2slViz5LDNeAdHlikdiTB-lsW9D26QmNqHoRrU,11292
192
195
  sky/jobs/server/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
193
- sky/jobs/server/core.py,sha256=TI_SN91wFw4mexQtKkGjE-33PQtO2Q-dD-ay5tLW0UU,31451
196
+ sky/jobs/server/core.py,sha256=CAiNesCc-JcUD76t0RS1a-mRFESWs8MoslSdU5Tj_K4,31640
194
197
  sky/jobs/server/server.py,sha256=ae8JAs-2ipWqL_GsA3x8T2mY-OJLc3ioWg_CfRzCUIY,4011
195
198
  sky/logs/__init__.py,sha256=0ybWMfXcpAzh8dtDnJwpfovNIk0zJRJvzdISqFdKmdE,549
196
199
  sky/logs/agent.py,sha256=tv0C40_FauZpvU93Ro_mC23LnaXWhSTjqch1JQMXiqw,2771
197
200
  sky/logs/gcp.py,sha256=eKVEcHO3FJRg_YTcE9omE8uAIF6AdBWWpkEPqWFAqXg,3857
198
- sky/provision/__init__.py,sha256=Xt8OR7TJxxSw3rl3HlpaO3oIxz-i_m_ZaEybRbS0e4g,6554
201
+ sky/provision/__init__.py,sha256=n0euexj6eKchVI-6_EZgUif_d88LC7OqtrW-9gP8fms,7319
199
202
  sky/provision/common.py,sha256=LdjM9SL9NDtsARom12tVv_WoUNL3PTlU5RoLfeWGGgM,10807
200
203
  sky/provision/constants.py,sha256=oc_XDUkcoLQ_lwDy5yMeMSWviKS0j0s1c0pjlvpNeWY,800
201
204
  sky/provision/docker_utils.py,sha256=ev_f5ZebMZ4NYe6OxleisBO8EAB6W0FHFJlaqVK3ugE,20939
@@ -237,13 +240,14 @@ sky/provision/hyperbolic/__init__.py,sha256=aRsbh9iBXe9ChrksPoV0s9oX5HyIylnAy3Lc
237
240
  sky/provision/hyperbolic/config.py,sha256=N7ekDE57bc8GPQc4zabQ1f9y95syadpADRRH6gZZiNI,276
238
241
  sky/provision/hyperbolic/instance.py,sha256=eFsOWWn9-ll_-6yP063-_Jtd8wwuLnzOuvRR1XZdmow,16814
239
242
  sky/provision/hyperbolic/utils.py,sha256=NCa3ULvIi64-YHYoOnPd3SShlJ6VuQsEwaTBqHFrqpg,14953
240
- sky/provision/kubernetes/__init__.py,sha256=y6yVfii81WYG3ROxv4hiIj-ydinS5-xGxLvXnARVQoI,719
243
+ sky/provision/kubernetes/__init__.py,sha256=xzVA9OCga0pCdUAQ7zZiCZMdq-Y0182oHlIKWESA15A,896
241
244
  sky/provision/kubernetes/config.py,sha256=-6ddvMro9LZ-y7K-hUPo8GdUGZ-01YyBzTAdkKblGXY,29623
242
245
  sky/provision/kubernetes/constants.py,sha256=OXyMNSruqyfTJV90yH8PsHtmi04cgeac8mvjoXc5N8o,800
243
- sky/provision/kubernetes/instance.py,sha256=Nk_6MHSQelPOFf4d9olo1FA8_xH9IGFeZ_td2FFWUp0,59599
246
+ sky/provision/kubernetes/instance.py,sha256=mPQA7r3y8Bg2WDN4nsgk3hgBo5NeL4RuLg0VELvjBTo,57981
244
247
  sky/provision/kubernetes/network.py,sha256=PEy7lZvmoysmormB49JW245tRcy4owAXzDGV5KHVPEI,12672
245
248
  sky/provision/kubernetes/network_utils.py,sha256=6uck1aBkgtm-gGBitU3_hEUp8j14ZuG_4Xo70ReZYXs,11654
246
- sky/provision/kubernetes/utils.py,sha256=DK6_-6Cyp_n-I1yNk9VIjr52nw2E_7B4egl2JjCyLS8,138857
249
+ sky/provision/kubernetes/utils.py,sha256=C6jP93SXdYaw5rS4ISIvdTM_Gh-q4XK9n00vVWWE4o8,140904
250
+ sky/provision/kubernetes/volume.py,sha256=EI3XM1oO2qKBOsBe1vlt3uX1IuaBl23KFyJD-3jUqH8,5665
247
251
  sky/provision/kubernetes/manifests/fusermount-server-daemonset.yaml,sha256=S87GNAbDqgTrLuxF-afPAqQ0V-i41El4s_9KBZMuaag,1331
248
252
  sky/provision/lambda_cloud/__init__.py,sha256=6EEvSgtUeEiup9ivIFevHmgv0GqleroO2X0K7TRa2nE,612
249
253
  sky/provision/lambda_cloud/config.py,sha256=jq1iLzp4Up61r4JGxvtpVbJlgXnea3LHYQhCQyyl7ik,272
@@ -306,26 +310,29 @@ sky/serve/service.py,sha256=f-Lpxl9YtIprcE3Wr0JUslSvEDylNFe-fyaKIJeKb2c,14315
306
310
  sky/serve/service_spec.py,sha256=t7wh7sx68DKjPyrk1Ub-c1ZjkWD8ehG-YOj9CNdC9qQ,18552
307
311
  sky/serve/spot_placer.py,sha256=auRlYZNg8uIW-lxiirxpDP-iIaJtkrhesm6OGMgwPq4,11288
308
312
  sky/serve/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
309
- sky/serve/client/sdk.py,sha256=FqtBFHO9tChpVDtL1DfoIIin-c4dcPxrhE4fZQHUnDk,15272
313
+ sky/serve/client/sdk.py,sha256=OxO_58L5lYi13M6fg4c7GfKmYB2mqIWlHZP3XoXwqAA,15326
310
314
  sky/serve/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
311
- sky/serve/server/core.py,sha256=ikakpSOTc2bnmbqWZG-1LWmi9X9eRZTtJVfrD5OjnF4,41512
315
+ sky/serve/server/core.py,sha256=zKvDnq6W9CftH5ljmNMdTDGsLO3mzbFgrMBMCSua4dM,41662
312
316
  sky/serve/server/server.py,sha256=A9K37a0nQgZeN3eKWv62Oh2C5TSAReTZ9pHmztqlI-c,4396
313
317
  sky/server/__init__.py,sha256=MPPBqFzXz6Jv5QSk6td_IcvnfXfNErDZVcizu4MLRow,27
314
- sky/server/common.py,sha256=B4A5zJ9LojIqzNzPEBikspcoxEFArkvEVMngFSR3PzU,32613
318
+ sky/server/common.py,sha256=QrImjzIfx8YKdPBjwkCP-K4OaXVjRL9fcJUbBk5tQjE,34178
315
319
  sky/server/config.py,sha256=XWf5Kw4am6vMO5wcyWevbQAFH-dmKb7AMEgDzD083-M,8538
316
- sky/server/constants.py,sha256=fhNLbK-Oc2S6h05e91IvmKAq4DoOp6G0YyWfqdEH_CY,1189
317
- sky/server/server.py,sha256=5jhFiOaKGscm4bIY3jU8U4A5qXexCpD48L1NQxBTAMU,59969
318
- sky/server/stream_utils.py,sha256=8MAi3OpC7JijSDgjIsWu4NzwN25669SNzYaLpmlS2B8,8914
319
- sky/server/uvicorn.py,sha256=4bTlvqQiykYDEIfV6Ta9KXWKZUtSfIrhDeT1F9yQuvs,3323
320
+ sky/server/constants.py,sha256=o2gyedC4nYwHCdM05ZClnDnoOn5kCjAHpdkz0MsgK6k,1319
321
+ sky/server/metrics.py,sha256=aVRaSwpBVXE9dXIVd9bNsSigKM4bkqNq0eTpP0Noyo8,3657
322
+ sky/server/rest.py,sha256=x0BUQ0FXgG3U8Bf3eZ0r2fNkJ3Yd7GTuoS7gXeAjr-E,5738
323
+ sky/server/server.py,sha256=6Hb2F6IVnDHGrUXQpa905sz7yXb47oMgn_TY2btlepI,62316
324
+ sky/server/state.py,sha256=YbVOMJ1JipQQv17gLIGyiGN7MKfnP83qlUa5MB1z0Yk,747
325
+ sky/server/stream_utils.py,sha256=RS4RuMxQqTGqp3uxzZVtmFWzos4d49P7hMX_VklzEVU,9189
326
+ sky/server/uvicorn.py,sha256=3mdSUbc8zHRYAbZZLkfPB6U9VXD_t2jDM1BMjpTx1Mo,9014
320
327
  sky/server/html/log.html,sha256=TSGZktua9Ysl_ysg3w60rjxAxhH61AJnsYDHdtqrjmI,6929
321
328
  sky/server/html/token_page.html,sha256=eUndS5u1foL9vaWGPRTLMt7lCzD1g0wYJ2v_EeeFzlc,7046
322
329
  sky/server/requests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
323
330
  sky/server/requests/event_loop.py,sha256=OhpPbuce65bbjpGRlcJa78AVnYSm08SzFKt70ypCUuQ,1211
324
- sky/server/requests/executor.py,sha256=ffdhI6ZsNYjUgI7dRSeGVDfvJt-rGLiJ-u45YGys40c,25867
325
- sky/server/requests/payloads.py,sha256=18sQL3N-WVmhhfDmNsQmVV8tjPm6mPorIi9bdIQ6AOE,20204
331
+ sky/server/requests/executor.py,sha256=viR8GEztMAgOMfnXlIPmq-RmXbBcJXIH117scPgZTgQ,26338
332
+ sky/server/requests/payloads.py,sha256=b2GO1x2f4tQewV8EGMJ6we83x01RPdVnSsGekKx_Stk,20608
326
333
  sky/server/requests/preconditions.py,sha256=uUQjzFFHf7O5-WvBypMzqViGmd1CXksbqrrDPmY_s_Y,7178
327
334
  sky/server/requests/process.py,sha256=I0ToOcF_cMJi5TfZMJOn9rDmJYewQOV07Pnetzqj2IU,10805
328
- sky/server/requests/requests.py,sha256=F6uWXuW4KmND6Zyei9VJ2YUMztSZJWYOMF5c2CzOp6A,23367
335
+ sky/server/requests/requests.py,sha256=HyUB4JrendLmsXEnxqinv2xm-xiMUvtogVX60IeQHYw,24813
329
336
  sky/server/requests/queues/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
330
337
  sky/server/requests/queues/local_queue.py,sha256=X6VkBiUmgd_kfqIK1hCtMWG1b8GiZbY70TBiBR6c6GY,416
331
338
  sky/server/requests/queues/mp_queue.py,sha256=jDqP4Jd28U3ibSFyMR1DF9I2OWZrPZqFJrG5S6RFpyw,3403
@@ -333,14 +340,14 @@ sky/server/requests/serializers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm
333
340
  sky/server/requests/serializers/decoders.py,sha256=qphN79pRAaaitCbcsZIrslphgZn1iYndl6JnmergEe4,6361
334
341
  sky/server/requests/serializers/encoders.py,sha256=4bQV5yTg8RTPT_HkRyQpjaBY_uUvBJ4NH189W0-6Pi0,5578
335
342
  sky/setup_files/MANIFEST.in,sha256=BzWGsYZz9fO40HN1Uxm1Ca4pn1FkKn3lcoY1B9-YRiA,644
336
- sky/setup_files/dependencies.py,sha256=tlExE87nagnM7Zo6nohYox4JRPrrbS4EY66I4h5yiHE,7031
343
+ sky/setup_files/dependencies.py,sha256=oYbrcf3oB1RTzR06zvYEgv9jw5Jx6f2juWwE-itNhHc,7101
337
344
  sky/setup_files/setup.py,sha256=GTXvAi65S4_TSLhQ1GzkmaWf_yzciHiaxMbZumcTtKU,7522
338
345
  sky/skylet/LICENSE,sha256=BnFrJSvUFpMUoH5mOpWnEvaC5R6Uux8W6WXgrte8iYg,12381
339
346
  sky/skylet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
340
347
  sky/skylet/attempt_skylet.py,sha256=GZ6ITjjA0m-da3IxXXfoHR6n4pjp3X3TOXUqVvSrV0k,2136
341
348
  sky/skylet/autostop_lib.py,sha256=kGUnHm-jpF4zl3UJfB-4pnoldWpnVeR96WwYGSw7em0,4630
342
349
  sky/skylet/configs.py,sha256=kV490lonYVVQMDRO2haizlt9fpQmqBIpwBScn14zS78,2132
343
- sky/skylet/constants.py,sha256=kP_fLhJV2ww6EXNOu8ccGWBsBRvV_BiHQ8SRCMbIpIk,22395
350
+ sky/skylet/constants.py,sha256=Z4bp0K6iL3WZfVh1P_2CzN0oB-J0YHFljZOkXjUL3og,22853
344
351
  sky/skylet/events.py,sha256=pnV3ZiwWhXqTHpU5B5Y9Xwam_7FQDI6IrxgSx7X_NVA,12743
345
352
  sky/skylet/job_lib.py,sha256=aZ_lUU1u0HVU2AdTcYcFUAS7eeelK-bAbJlCoZ3QX7A,48267
346
353
  sky/skylet/log_lib.py,sha256=9nLOhevnM668itQyVyPSoQHKfZ2MWm_FwXPxK28X0oM,23201
@@ -373,7 +380,7 @@ sky/templates/jobs-controller.yaml.j2,sha256=3HxM6p0t50_eZjk-gVThkLtM5hlwU6F1jFm
373
380
  sky/templates/kubernetes-ingress.yml.j2,sha256=73iDklVDWBMbItg0IexCa6_ClXPJOxw7PWz3leku4nE,1340
374
381
  sky/templates/kubernetes-loadbalancer.yml.j2,sha256=IxrNYM366N01bbkJEbZ_UPYxUP8wyVEbRNFHRsBuLsw,626
375
382
  sky/templates/kubernetes-port-forward-proxy-command.sh,sha256=iw7mypHszg6Ggq9MbyiYMFOkSlXaQZulaxqC5IWYGCc,3381
376
- sky/templates/kubernetes-ray.yml.j2,sha256=f1AtirO5Y12DL2b0LvqXumc5aOebP-OFRlppXZ6aCKg,45224
383
+ sky/templates/kubernetes-ray.yml.j2,sha256=S8Uqag6CfH91GMK1008ZaTDxEcjk3UfkDbGTuNmOHCA,46293
377
384
  sky/templates/kubernetes-ssh-jump.yml.j2,sha256=k5W5sOIMppU7dDkJMwPlqsUcb92y7L5_TVG3hkgMy8M,2747
378
385
  sky/templates/lambda-ray.yml.j2,sha256=AeFThho5hPQMncrOWQ6DhEWOsAuZtdxf1gjmp_6kPJA,4747
379
386
  sky/templates/local-ray.yml.j2,sha256=FNHeyHF6nW9nU9QLIZceUWfvrFTTcO51KqhTnYCEFaA,1185
@@ -392,7 +399,7 @@ sky/usage/constants.py,sha256=mFrTgrFIfFf4kpcl-M1VDU7_moD5_mJazUJTUDrybms,1102
392
399
  sky/usage/usage_lib.py,sha256=PEjQH7do7lrcGMaIqW6bFQvNIFo-ipoF7L0xlt3vmDg,21427
393
400
  sky/users/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
394
401
  sky/users/model.conf,sha256=nPAaMai2fc-nlnEDTfW5Lyw6vgCcOS32BSms4aFOHoY,259
395
- sky/users/permission.py,sha256=zaxlauLHJG3KDfK_tUKDHwPYPhzc-BQeADod2vc_QhQ,13881
402
+ sky/users/permission.py,sha256=5byXR23TBBn47-u9I4Zu_xZSAOmXApV3owOv2DzkS0M,14004
396
403
  sky/users/rbac.py,sha256=3ZWukXo85u6zWbPmHcPsF9EtZ3cd_51PLZYf2h-7uAM,3636
397
404
  sky/users/server.py,sha256=hnDbSmMb23woUS8CVV1b8MgXk-mDD4a8OhUnjFb26_M,12282
398
405
  sky/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -406,7 +413,7 @@ sky/utils/command_runner.pyi,sha256=IS3qeCTgWys94KhaHx3S2Pty8qDWn_zFht7bgDLJFcw,
406
413
  sky/utils/common.py,sha256=nTg-mjNu0diZjs2UvyiMc84Tu1ZonRLRAmfqFIP1TtY,2242
407
414
  sky/utils/common_utils.py,sha256=QMOt8-PTdBCwS25biSc6L2d5iqFdni5mFJohV24xIIs,35717
408
415
  sky/utils/config_utils.py,sha256=v8yZcr8OvEfXmBDYcdOj3U-AH1XERY76zGJMNdqzvqc,10339
409
- sky/utils/context.py,sha256=C7FF-SGmkTRLjGQsMGNAK0KWazOVWXk7mh6IUESVuU8,9843
416
+ sky/utils/context.py,sha256=yEGvcKr9fKEeoAnNKiXDiky7dlLOChFdZYXGr0EeQ9g,9997
410
417
  sky/utils/context_utils.py,sha256=cby-QPmnGObjIE4K7eZ_dkWZdUo7YJUmnJr5oKf_v54,6712
411
418
  sky/utils/control_master_utils.py,sha256=iD4M0onjYOdZ2RuxjwMBl4KhafHXJzuHjvqlBUnu-VE,1450
412
419
  sky/utils/controller_utils.py,sha256=ZIaAEnIC7l62sk_2Fpd0irpPXppEHHv0HL9d5I3Zkgo,55224
@@ -418,15 +425,15 @@ sky/utils/kubernetes_enums.py,sha256=imGqHSa8O07zD_6xH1SDMM7dBU5lF5fzFFlQuQy00QM
418
425
  sky/utils/log_utils.py,sha256=_PMfgKNH5aaTkWoQoS2_XfyAmLa_UbboKMDGxJq3k6s,27360
419
426
  sky/utils/message_utils.py,sha256=zi2Z7PEX6Xq_zvho-aEZe_J7UvpKOLdVDdGAcipRQPU,2662
420
427
  sky/utils/registry.py,sha256=I08nS0rvCF-xR5GEZoHEVgN1jcOeglz77h7xPpBCIjU,4179
421
- sky/utils/resources_utils.py,sha256=C_iDlFz1CGgkNusiy5OdKpiLHZKWpzILiISgMyLOAq0,12578
428
+ sky/utils/resources_utils.py,sha256=R86RcezIy-fnMhJLLn8QM1DzQOPzTWToXnPu1oSt6Bk,14860
422
429
  sky/utils/rich_console_utils.py,sha256=wPvAlshaFHuMZSjiDnaK3OSBppZLBjAn-lj7AvxNBQk,553
423
- sky/utils/rich_utils.py,sha256=EmtLN6U49SKiANTGmqgZXICXEnDLJW9EPpw6O4-FVUE,14432
424
- sky/utils/schemas.py,sha256=VqNIyPhA3_kFhKIdMpW6jNaup6OwAqxRl18ysLktxs4,46502
425
- sky/utils/status_lib.py,sha256=zn_MSuRYQdNKF8pnFOGQ54X_s_R7dyqWS6Q3a9zENw8,1512
430
+ sky/utils/rich_utils.py,sha256=ZKztFc0D5q7ma_NE2p9UKjVS9zqcJ3L53FRw6SPoUvg,14707
431
+ sky/utils/schemas.py,sha256=s7SgNBG4wGsycc_AIYSbZoY5ItCo3uKVKI_3PsoLJXA,51385
432
+ sky/utils/status_lib.py,sha256=QGkd6COD1GX1h30Mk9RMUdyeUOMJs5971GkxTcFgdsU,1705
426
433
  sky/utils/subprocess_utils.py,sha256=3euz4h7B-tHulmjhQUkY9oWUA0Np5hlL8kHdTHHZOs0,16060
427
434
  sky/utils/timeline.py,sha256=ob6s3bc7nwAuSI76yLKBrSR5bzOHnOhbozz1avwoet4,4070
428
435
  sky/utils/ux_utils.py,sha256=FChNkVnTX3vKsu4_kXt7eaf2jNSoTfwH4XLMBtGK0t4,10233
429
- sky/utils/validator.py,sha256=yo5cPUjGxqfa0ZxGyEYZMCWZ8O35G-k3VOEAtAoA_3w,856
436
+ sky/utils/validator.py,sha256=AHIYEBpxzpC2Eg8TulruFqQSjTxeynB0Dc7cfP1RX2M,1159
430
437
  sky/utils/aws/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
431
438
  sky/utils/aws/get_default_security_group.py,sha256=LPzz5133ZUMbzDD3iqqACL9PdlgqiQR5hKZIn-D1zhw,228
432
439
  sky/utils/cli_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -447,13 +454,21 @@ sky/utils/kubernetes/kubernetes_deploy_utils.py,sha256=lF9hMg0TVVX1jE8W1xmzkaz66
447
454
  sky/utils/kubernetes/rsync_helper.sh,sha256=MT29sI5iD2QxYlXFwrN16oq0Er4TPFQVs4Z4A3U4a7Q,2483
448
455
  sky/utils/kubernetes/ssh-tunnel.sh,sha256=60eHKF7phJe9pFEkGlqdwWzI80tpog8QCkL7fAbIAic,12143
449
456
  sky/utils/kubernetes/ssh_jump_lifecycle_manager.py,sha256=Kq1MDygF2IxFmu9FXpCxqucXLmeUrvs6OtRij6XTQbo,6554
457
+ sky/volumes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
458
+ sky/volumes/utils.py,sha256=qhRtW9nMUBBGpeb5Sr1jIP9M6ZcZq5cVB0hfPwflTZQ,5009
459
+ sky/volumes/volume.py,sha256=Cl_1A8Uv6mDK0avFZQoVllKKwrWnJcUDVjHtp9g0d2I,7130
460
+ sky/volumes/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
461
+ sky/volumes/client/sdk.py,sha256=O2XEmm1Ee8IDHtmiS0CBO3nEAM259C__QbqVMMsK7k0,2335
462
+ sky/volumes/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
463
+ sky/volumes/server/core.py,sha256=iHn96yb2F6d-sLkNVdVWrXP6Vsdsl9bY8SBj4D0Jnjg,7128
464
+ sky/volumes/server/server.py,sha256=BJcXZzSzNgj49eVKs-r7i1NdAJSquAnAtLfs825eCg0,3028
450
465
  sky/workspaces/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
451
466
  sky/workspaces/core.py,sha256=2kKUP-V5Qo1n-xfayA4M1OE_ina6_4bxkTF3dv3yBEU,20704
452
467
  sky/workspaces/server.py,sha256=Box45DS54xXGHy7I3tGKGy-JP0a8G_z6IhfvGlEXtsA,3439
453
468
  sky/workspaces/utils.py,sha256=IIAiFoS6sdb2t0X5YoX9AietpTanZUQNTK8cePun-sY,2143
454
- skypilot_nightly-1.0.0.dev20250624.dist-info/licenses/LICENSE,sha256=emRJAvE7ngL6x0RhQvlns5wJzGI3NEQ_WMjNmd9TZc4,12170
455
- skypilot_nightly-1.0.0.dev20250624.dist-info/METADATA,sha256=4VDetOd0ez212U9OTYNa65zN16KAeF5oOwNluBCskXw,18770
456
- skypilot_nightly-1.0.0.dev20250624.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
457
- skypilot_nightly-1.0.0.dev20250624.dist-info/entry_points.txt,sha256=StA6HYpuHj-Y61L2Ze-hK2IcLWgLZcML5gJu8cs6nU4,36
458
- skypilot_nightly-1.0.0.dev20250624.dist-info/top_level.txt,sha256=qA8QuiNNb6Y1OF-pCUtPEr6sLEwy2xJX06Bd_CrtrHY,4
459
- skypilot_nightly-1.0.0.dev20250624.dist-info/RECORD,,
469
+ skypilot_nightly-1.0.0.dev20250625.dist-info/licenses/LICENSE,sha256=emRJAvE7ngL6x0RhQvlns5wJzGI3NEQ_WMjNmd9TZc4,12170
470
+ skypilot_nightly-1.0.0.dev20250625.dist-info/METADATA,sha256=4Zq9Vbzp3vrL3oL941tvHV1C7waPXmcelo7OOtVUq7k,18810
471
+ skypilot_nightly-1.0.0.dev20250625.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
472
+ skypilot_nightly-1.0.0.dev20250625.dist-info/entry_points.txt,sha256=StA6HYpuHj-Y61L2Ze-hK2IcLWgLZcML5gJu8cs6nU4,36
473
+ skypilot_nightly-1.0.0.dev20250625.dist-info/top_level.txt,sha256=qA8QuiNNb6Y1OF-pCUtPEr6sLEwy2xJX06Bd_CrtrHY,4
474
+ skypilot_nightly-1.0.0.dev20250625.dist-info/RECORD,,
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[350],{2350:function(n,r,u){u.d(r,{cn:function(){return c}});var e=u(512),t=u(8388);function c(){for(var n=arguments.length,r=Array(n),u=0;u<n;u++)r[u]=arguments[u];return(0,t.m6)((0,e.W)(r))}}}]);
@@ -1,6 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[42,211],{9333:function(e,r,n){n.d(r,{Z:function(){return t}});/**
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 t=(0,n(998).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"}]])},4042:function(e,r,n){n.r(r),n.d(r,{Config:function(){return g}});var t=n(5893),s=n(7294),l=n(1163),a=n(803),i=n(7673),o=n(7324),c=n(1812),d=n(8799),u=n(9333),f=n(1272),m=n(6989),x=n(7145);function h(){let[e,r]=(0,s.useState)(null),[n,l]=(0,s.useState)(null),a=async()=>{let e=await x.x.get("/api/health"),n=await e.json();n.version&&r(n.version),n.commit&&l(n.commit)};return((0,s.useEffect)(()=>{a()},[]),e)?(0,t.jsx)(m.Md,{content:n?"Commit: ".concat(n):"Commit information not available",className:"text-sm text-muted-foreground",children:(0,t.jsxs)("div",{className:"text-sm text-gray-500 cursor-help border-b border-dotted border-gray-400 inline-block",children:["Version: ",e]})}):null}function g(){let e=(0,l.useRouter)(),[r,n]=(0,s.useState)(""),[m,g]=(0,s.useState)(!0),[p,v]=(0,s.useState)(!1),[b,j]=(0,s.useState)(null),[y,N]=(0,s.useState)(!1),w=(0,s.useRef)(null);(0,s.useEffect)(()=>{k()},[]),(0,s.useEffect)(()=>()=>{w.current&&clearTimeout(w.current)},[]);let k=async()=>{g(!0),j(null);try{let e=await (0,o.iE)();0===Object.keys(e).length?n(""):n(f.ZP.dump(e,{indent:2}))}catch(e){console.error("Error loading config:",e),j(e)}finally{g(!1)}},C=async()=>{v(!0),j(null),w.current&&(clearTimeout(w.current),w.current=null);try{let e=await x.x.get("/users/role");if(!e.ok){let r=await e.json();throw Error(r.detail||"Failed to get user role")}let n=await e.json(),t=n.role;if("admin"!=t){j(Error("".concat(n.name," is logged in as non-admin and cannot edit config"))),v(!1);return}let s=f.ZP.load(r);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.",j(Error(e)),v(!1);return}await (0,o.rF)(s),N(!0),w.current=setTimeout(()=>{N(!1),w.current=null},5e3)}catch(e){console.error("Error saving config:",e),j(e)}finally{v(!1)}};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-4 h-5",children:[(0,t.jsx)("div",{className:"text-base flex items-center",children:(0,t.jsx)("span",{className:"text-sky-blue",children:"SkyPilot Configuration"})}),(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsx)("div",{className:"text-sm flex items-center",children:(m||p)&&(0,t.jsxs)("div",{className:"flex items-center mr-4",children:[(0,t.jsx)(d.Z,{size:15,className:"mt-0"}),(0,t.jsx)("span",{className:"ml-2 text-gray-500",children:p?"Applying...":"Loading..."})]})}),(0,t.jsx)(h,{})]})]}),(0,t.jsxs)(i.Zb,{className:"w-full",children:[(0,t.jsx)(i.Ol,{children:(0,t.jsx)(i.ll,{className:"text-base font-normal flex items-center justify-between",children:(0,t.jsx)("span",{children:"Edit SkyPilot API Server Configuration"})})}),(0,t.jsxs)(i.aY,{className:"space-y-4",children:[(0,t.jsxs)("p",{className:"text-sm text-gray-600 mb-3",children:["Refer to the"," ",(0,t.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."]}),y&&(0,t.jsx)("div",{className:"bg-green-50 border border-green-200 rounded p-4 mb-6",children:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsx)("div",{className:"flex-shrink-0",children:(0,t.jsx)("svg",{className:"h-5 w-5 text-green-400",viewBox:"0 0 20 20",fill:"currentColor",children:(0,t.jsx)("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 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,t.jsx)("div",{className:"ml-3",children:(0,t.jsx)("p",{className:"text-sm font-medium text-green-800",children:"Configuration saved successfully!"})})]}),(0,t.jsx)("div",{className:"ml-auto pl-3",children:(0,t.jsx)("div",{className:"-mx-1.5 -my-1.5",children:(0,t.jsxs)("button",{type:"button",onClick:()=>{N(!1),w.current&&(clearTimeout(w.current),w.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,t.jsx)("span",{className:"sr-only",children:"Dismiss"}),(0,t.jsx)("svg",{className:"h-5 w-5",viewBox:"0 0 20 20",fill:"currentColor",children:(0,t.jsx)("path",{fillRule:"evenodd",d:"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z",clipRule:"evenodd"})})]})})})]})}),b&&(0,t.jsx)("div",{className:"mb-6",children:(0,t.jsx)(c.X,{error:b,title:"Failed to apply new configuration",onDismiss:()=>j(null)})}),(0,t.jsx)("div",{className:"w-full",children:(0,t.jsx)("textarea",{value:r,onChange:e=>n(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:m?"Loading configuration...":"# Enter SkyPilot configuration in YAML format\n# Example:\n# kubernetes:\n# allowed_contexts: [default, my-context]",disabled:m||p})}),(0,t.jsxs)("div",{className:"flex justify-end space-x-3 pt-3",children:[(0,t.jsx)(a.z,{variant:"outline",onClick:()=>{e.push("/workspaces")},disabled:p,children:"Cancel"}),(0,t.jsx)(a.z,{onClick:C,disabled:m||p,className:"inline-flex items-center bg-blue-600 hover:bg-blue-700 text-white",children:p?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(d.Z,{size:16,className:"mr-2"}),"Applying..."]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(u.Z,{className:"w-4 h-4 mr-1.5"}),"Apply"]})})]})]})]})]})}},1812:function(e,r,n){n.d(r,{X:function(){return a}});var t=n(5893),s=n(7294);let l=e=>{if(!(null==e?void 0:e.message))return"An unexpected error occurred.";let r=e.message;return r.includes("failed:")&&(r=r.split("failed:")[1].trim()),r},a=e=>{let{error:r,title:n="Error",onDismiss:a}=e,[i,o]=(0,s.useState)(!1);if((0,s.useEffect)(()=>{r&&o(!1)},[r]),!r||i)return null;let c="string"==typeof r?r:l(r);return(0,t.jsx)("div",{className:"bg-red-50 border border-red-200 rounded-md p-3 mb-4",children:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("div",{className:"flex-shrink-0",children:(0,t.jsx)("svg",{className:"h-5 w-5 text-red-400",viewBox:"0 0 20 20",fill:"currentColor",children:(0,t.jsx)("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z",clipRule:"evenodd"})})}),(0,t.jsx)("div",{className:"ml-3",children:(0,t.jsxs)("div",{className:"text-sm text-red-800",children:[(0,t.jsxs)("strong",{children:[n,":"]})," ",c]})})]}),(0,t.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,t.jsx)("svg",{className:"h-4 w-4",viewBox:"0 0 20 20",fill:"currentColor",children:(0,t.jsx)("path",{fillRule:"evenodd",d:"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z",clipRule:"evenodd"})})})]})})}},803:function(e,r,n){n.d(r,{z:function(){return c}});var t=n(5893),s=n(7294),l=n(8426),a=n(2003),i=n(2350);let o=(0,a.j)("inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),c=s.forwardRef((e,r)=>{let{className:n,variant:s,size:a,asChild:c=!1,...d}=e,u=c?l.g7:"button";return(0,t.jsx)(u,{className:(0,i.cn)(o({variant:s,size:a,className:n})),ref:r,...d})});c.displayName="Button"},7673:function(e,r,n){n.d(r,{Ol:function(){return c},Zb:function(){return o},aY:function(){return f},eW:function(){return m},ll:function(){return d}});var t=n(5893),s=n(7294),l=n(5697),a=n.n(l),i=n(2350);let o=s.forwardRef((e,r)=>{let{className:n,children:s,...l}=e;return(0,t.jsx)("div",{ref:r,className:(0,i.cn)("rounded-lg border bg-card text-card-foreground shadow-sm",n),...l,children:s})});o.displayName="Card",o.propTypes={className:a().string,children:a().node};let c=s.forwardRef((e,r)=>{let{className:n,children:s,...l}=e;return(0,t.jsx)("div",{ref:r,className:(0,i.cn)("flex flex-col space-y-1.5 p-6",n),...l,children:s})});c.displayName="CardHeader",c.propTypes={className:a().string,children:a().node};let d=s.forwardRef((e,r)=>{let{className:n,children:s,...l}=e;return(0,t.jsx)("h3",{ref:r,className:(0,i.cn)("text-2xl font-semibold leading-none tracking-tight",n),...l,children:s})});d.displayName="CardTitle",d.propTypes={className:a().string,children:a().node};let u=s.forwardRef((e,r)=>{let{className:n,children:s,...l}=e;return(0,t.jsx)("p",{ref:r,className:(0,i.cn)("text-sm text-muted-foreground",n),...l,children:s})});u.displayName="CardDescription",u.propTypes={className:a().string,children:a().node};let f=s.forwardRef((e,r)=>{let{className:n,children:s,...l}=e;return(0,t.jsx)("div",{ref:r,className:(0,i.cn)("p-6 pt-0",n),...l,children:s})});f.displayName="CardContent",f.propTypes={className:a().string,children:a().node};let m=s.forwardRef((e,r)=>{let{className:n,children:s,...l}=e;return(0,t.jsx)("div",{ref:r,className:(0,i.cn)("flex items-center p-6 pt-0",n),...l,children:s})});m.displayName="CardFooter",m.propTypes={className:a().string,children:a().node}},2003:function(e,r,n){n.d(r,{j:function(){return a}});var t=n(512);let s=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,l=t.W,a=(e,r)=>n=>{var t;if((null==r?void 0:r.variants)==null)return l(e,null==n?void 0:n.class,null==n?void 0:n.className);let{variants:a,defaultVariants:i}=r,o=Object.keys(a).map(e=>{let r=null==n?void 0:n[e],t=null==i?void 0:i[e];if(null===r)return null;let l=s(r)||s(t);return a[e][l]}),c=n&&Object.entries(n).reduce((e,r)=>{let[n,t]=r;return void 0===t||(e[n]=t),e},{});return l(e,o,null==r?void 0:null===(t=r.compoundVariants)||void 0===t?void 0:t.reduce((e,r)=>{let{class:n,className:t,...s}=r;return Object.entries(s).every(e=>{let[r,n]=e;return Array.isArray(n)?n.includes({...i,...c}[r]):({...i,...c})[r]===n})?[...e,n,t]:e},[]),null==n?void 0:n.class,null==n?void 0:n.className)}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[470],{3850:function(e,t,r){r.d(t,{E9:function(){return j},J$:function(){return l},PC:function(){return d},Ps:function(){return i},QT:function(){return x},Vp:function(){return u},W2:function(){return c},Ye:function(){return a},aD:function(){return g},fp:function(){return h},fy:function(){return m},h0:function(){return f},mU:function(){return p},oy:function(){return v},r7:function(){return w}});var n=r(5893);r(7294);var s=r(8507),o=r(8586);function i(e){return(0,n.jsx)("svg",{...e,xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"currentColor",stroke:"currentColor",strokeWidth:"0",strokeLinecap:"round",strokeLinejoin:"round",children:(0,n.jsx)("rect",{width:"18",height:"18",x:"3",y:"3",rx:"2"})})}function c(e){return(0,n.jsx)("svg",{...e,xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"currentColor",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,n.jsx)("circle",{cx:"10",cy:"10",r:"8"})})}function l(e){return(0,n.jsx)("svg",{...e,xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,n.jsx)("circle",{cx:"10",cy:"10",r:"8"})})}function a(e){return(0,n.jsx)("svg",{...e,xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"5",strokeLinecap:"round",strokeLinejoin:"round",children:(0,n.jsx)("path",{d:"M6 12l4 4 8-8"})})}function h(e){return(0,n.jsxs)("svg",{...e,xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"currentColor",stroke:"currentColor",strokeWidth:"0",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("rect",{x:"6",y:"5",width:"4",height:"14",rx:"1"}),(0,n.jsx)("rect",{x:"14",y:"5",width:"4",height:"14",rx:"1"})]})}function x(e){return(0,n.jsxs)("svg",{...e,xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2"}),(0,n.jsx)("rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2"}),(0,n.jsx)("line",{x1:"6",x2:"6.01",y1:"6",y2:"6"}),(0,n.jsx)("line",{x1:"6",x2:"6.01",y1:"18",y2:"18"})]})}function u(e){return(0,n.jsxs)("svg",{...e,xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("path",{d:"M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16"}),(0,n.jsx)("rect",{width:"20",height:"14",x:"2",y:"6",rx:"2"})]})}function d(e){return(0,n.jsxs)("svg",{...e,xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2",ry:"2"}),(0,n.jsx)("rect",{x:"9",y:"9",width:"6",height:"6"}),(0,n.jsx)("line",{x1:"9",y1:"1",x2:"9",y2:"4"}),(0,n.jsx)("line",{x1:"15",y1:"1",x2:"15",y2:"4"}),(0,n.jsx)("line",{x1:"9",y1:"20",x2:"9",y2:"23"}),(0,n.jsx)("line",{x1:"15",y1:"20",x2:"15",y2:"23"}),(0,n.jsx)("line",{x1:"20",y1:"9",x2:"23",y2:"9"}),(0,n.jsx)("line",{x1:"20",y1:"14",x2:"23",y2:"14"}),(0,n.jsx)("line",{x1:"1",y1:"9",x2:"4",y2:"9"}),(0,n.jsx)("line",{x1:"1",y1:"14",x2:"4",y2:"14"})]})}function f(e){return(0,n.jsxs)("svg",{...e,xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"}),(0,n.jsx)("polyline",{points:"15 3 21 3 21 9"}),(0,n.jsx)("line",{x1:"10",y1:"14",x2:"21",y2:"3"})]})}function m(e){return(0,n.jsx)("svg",{...e,xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"currentColor",children:(0,n.jsx)("path",{d:"M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"})})}function w(e){return(0,n.jsx)("svg",{...e,xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,n.jsx)("polygon",{points:"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"})})}function p(e){return(0,n.jsx)("svg",{...e,xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"currentColor",children:(0,n.jsx)("path",{transform:"scale(0.85) translate(1.8, 1.8)",d:"M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zM6.313 15.165a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zM8.834 6.313a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zM18.956 8.834a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522V8.834zM17.688 8.834a2.528 2.528 0 0 1-2.523 2.521 2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312zM15.165 18.956a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522h2.52zM15.165 17.688a2.527 2.527 0 0 1-2.52-2.523 2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165a2.528 2.528 0 0 1-2.522 2.523h-6.313z"})})}function j(e){return(0,n.jsx)("svg",{...e,stroke:"currentColor",fill:"currentColor",strokeWidth:"0",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:(0,n.jsxs)("g",{children:[(0,n.jsx)("path",{fill:"none",d:"M0 0h24v24H0z"}),(0,n.jsx)("path",{d:"M3 18.5V5a3 3 0 0 1 3-3h14a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5A3.5 3.5 0 0 1 3 18.5zM19 20v-3H6.5a1.5 1.5 0 0 0 0 3H19zM10 4H6a1 1 0 0 0-1 1v10.337A3.486 3.486 0 0 1 6.5 15H19V4h-2v8l-3.5-2-3.5 2V4z"})]})})}let g=s.Z,v=o.Z},9470:function(e,t,r){r.r(t),r.d(t,{Layout:function(){return v}});var n=r(5893),s=r(7294),o=r(5675),i=r.n(o),c=r(1163),l=r(1664),a=r.n(l),h=r(3850),x=r(355),u=r(6021),d=r(3225),f=r(6989),m=r(3001);let w=(0,s.createContext)(null);function p(e){let{children:t}=e,[r,o]=(0,s.useState)(!0),[i,c]=(0,s.useState)(null),[l,a]=(0,s.useState)(null),h=window.location.origin,x="".concat(h).concat(d.f4);return(0,s.useEffect)(()=>{fetch("".concat(x,"/api/health")).then(e=>e.json()).then(e=>{e.user&&e.user.name&&(c(e.user.name),(async()=>{try{let e=await fetch("".concat(x,"/users/role"));if(e.ok){let t=await e.json();t.role&&a(t.role)}}catch(e){console.log("Could not fetch user role:",e)}})())}).catch(e=>{console.error("Error fetching user data:",e)})},[x]),(0,n.jsx)(w.Provider,{value:{isSidebarOpen:r,toggleSidebar:()=>{o(e=>!e)},userEmail:i,userRole:l},children:t})}function j(){let e,t;let r=(0,c.useRouter)(),o=(0,m.X)(),{userEmail:l,userRole:p}=function(){let e=(0,s.useContext)(w);if(!e)throw Error("useSidebar must be used within a SidebarProvider");return e}(),[j,g]=(0,s.useState)(!1),v=(0,s.useRef)(null);(0,s.useEffect)(()=>{function e(e){v.current&&!v.current.contains(e.target)&&g(!1)}return document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e)}},[v]);let y=e=>"/workspaces"===e?r.pathname.startsWith("/workspaces")||r.pathname.startsWith("/workspace"):r.pathname.startsWith(e),k=e=>{let t=y(e);return"inline-flex items-center border-b-2 ".concat(t?"border-transparent text-blue-600":"border-transparent hover:text-blue-600"," ").concat(o?"px-2 py-1":"px-1 pt-1 space-x-2")};return(0,n.jsx)("div",{className:"fixed top-0 left-0 right-0 bg-white z-30 h-14 px-4 border-b border-gray-200 shadow-sm",children:(0,n.jsxs)("div",{className:"flex items-center h-full",children:[(0,n.jsx)("div",{className:"flex items-center ".concat(o?"space-x-2 mr-2":"space-x-4 mr-6"),children:(0,n.jsx)(a(),{href:"/",className:"flex items-center px-1 pt-1 h-full",prefetch:!1,children:(0,n.jsx)("div",{className:"h-20 w-20 flex items-center justify-center",children:(0,n.jsx)(i(),{src:"".concat(d.GW,"/skypilot.svg"),alt:"SkyPilot Logo",width:80,height:80,priority:!0,className:"w-full h-full object-contain"})})})}),(0,n.jsxs)("div",{className:"flex items-center ".concat(o?"space-x-1":"space-x-2 md:space-x-4"," ").concat(o?"mr-2":"mr-6"),children:[(0,n.jsxs)(a(),{href:"/clusters",className:k("/clusters"),prefetch:!1,children:[(0,n.jsx)(h.QT,{className:"w-4 h-4"}),!o&&(0,n.jsx)("span",{children:"Clusters"})]}),(0,n.jsxs)(a(),{href:"/jobs",className:k("/jobs"),prefetch:!1,children:[(0,n.jsx)(h.Vp,{className:"w-4 h-4"}),!o&&(0,n.jsx)("span",{children:"Jobs"})]}),(0,n.jsx)("div",{className:"border-l border-gray-200 h-6 mx-1"}),(0,n.jsxs)(a(),{href:"/infra",className:k("/infra"),prefetch:!1,children:[(0,n.jsx)(h.PC,{className:"w-4 h-4"}),!o&&(0,n.jsx)("span",{children:"Infra"})]}),(0,n.jsxs)(a(),{href:"/workspaces",className:k("/workspaces"),prefetch:!1,children:[(0,n.jsx)(h.E9,{className:"w-4 h-4"}),!o&&(0,n.jsx)("span",{children:"Workspaces"})]}),(0,n.jsxs)(a(),{href:"/users",className:k("/users"),prefetch:!1,children:[(0,n.jsx)(h.oy,{className:"w-4 h-4"}),!o&&(0,n.jsx)("span",{children:"Users"})]})]}),(0,n.jsxs)("div",{className:"flex items-center space-x-1 ".concat(o?"ml-0":"ml-auto"),children:[(0,n.jsx)(f.WH,{content:"Documentation",className:"text-sm text-muted-foreground",children:(0,n.jsxs)("a",{href:"https://skypilot.readthedocs.io/en/latest/",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center px-2 py-1 text-gray-600 hover:text-blue-600 transition-colors duration-150 cursor-pointer",title:"Docs",children:[!o&&(0,n.jsx)("span",{className:"mr-1",children:"Docs"}),(0,n.jsx)(h.h0,{className:"".concat(o?"w-4 h-4":"w-3.5 h-3.5")})]})}),(0,n.jsx)(f.WH,{content:"GitHub Repository",className:"text-sm text-muted-foreground",children:(0,n.jsx)("a",{href:"https://github.com/skypilot-org/skypilot",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center justify-center p-2 rounded-full text-gray-600 hover:bg-gray-100 transition-colors duration-150 cursor-pointer",title:"GitHub",children:(0,n.jsx)(h.fy,{className:"".concat(o?"w-4 h-4":"w-5 h-5")})})}),(0,n.jsx)(f.WH,{content:"Join Slack",className:"text-sm text-muted-foreground",children:(0,n.jsx)("a",{href:"https://slack.skypilot.co/",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center justify-center p-2 rounded-full text-gray-600 hover:bg-gray-100 transition-colors duration-150 cursor-pointer",title:"Slack",children:(0,n.jsx)(h.mU,{className:"".concat(o?"w-4 h-4":"w-5 h-5")})})}),(0,n.jsx)(f.WH,{content:"Leave Feedback",className:"text-sm text-muted-foreground",children:(0,n.jsx)("a",{href:"https://github.com/skypilot-org/skypilot/issues/new",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center justify-center p-2 rounded-full text-gray-600 hover:bg-gray-100 transition-colors duration-150 cursor-pointer",title:"Leave Feedback",children:(0,n.jsx)(h.aD,{className:"".concat(o?"w-4 h-4":"w-5 h-5")})})}),(0,n.jsx)("div",{className:"border-l border-gray-200 h-6"}),(0,n.jsx)(f.WH,{content:"Configuration",className:"text-sm text-muted-foreground",children:(0,n.jsx)(a(),{href:"/config",className:"inline-flex items-center justify-center p-2 rounded-full transition-colors duration-150 cursor-pointer ".concat(y("/config")?"text-blue-600 hover:bg-gray-100":"text-gray-600 hover:bg-gray-100"),title:"Configuration",prefetch:!1,children:(0,n.jsx)(x.Z,{className:"".concat(o?"w-4 h-4":"w-5 h-5")})})}),l&&(0,n.jsxs)("div",{className:"relative",ref:v,children:[(0,n.jsx)("button",{onClick:()=>g(!j),className:"inline-flex items-center justify-center rounded-full transition-colors duration-150 cursor-pointer hover:ring-2 hover:ring-blue-200",title:"User Profile",children:(0,n.jsx)("div",{className:"".concat(o?"w-6 h-6":"w-7 h-7"," bg-blue-600 text-white rounded-full flex items-center justify-center font-medium ").concat(o?"text-xs":"text-sm"," hover:bg-blue-700 transition-colors"),children:l?l.includes("@")?l.split("@")[0].charAt(0).toUpperCase():l.charAt(0).toUpperCase():"?"})}),j&&(0,n.jsxs)("div",{className:"absolute right-0 mt-2 w-48 bg-white rounded-md shadow-lg z-50 border border-gray-200",children:[(e=l,t=null,l&&l.includes("@")&&(e=l.split("@")[0],t=l),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"px-4 pt-2 pb-1 text-sm font-medium text-gray-900",children:e}),t&&(0,n.jsx)("div",{className:"px-4 pt-0 pb-1 text-xs text-gray-500",children:t}),p&&(0,n.jsx)("div",{className:"px-4 pt-0 pb-2 text-xs",children:"admin"===p?(0,n.jsxs)("span",{className:"inline-flex items-center text-blue-600",children:[(0,n.jsx)(h.r7,{className:"w-3 h-3 mr-1"}),"Admin"]}):(0,n.jsxs)("span",{className:"inline-flex items-center text-gray-600",children:[(0,n.jsx)(u.Z,{className:"w-3 h-3 mr-1"}),"User"]})})]})),(0,n.jsx)("div",{className:"border-t border-gray-200 mx-1 my-1"}),(0,n.jsx)(a(),{href:"/users",className:"block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 hover:text-blue-600",onClick:()=>g(!1),prefetch:!1,children:"See all users"})]})]})]})]})})}function g(e){let{children:t,highlighted:r}=e;return(0,m.X)(),(0,n.jsxs)("div",{className:"min-h-screen bg-gray-50",children:[(0,n.jsx)("div",{className:"fixed top-0 left-0 right-0 z-50 shadow-sm",children:(0,n.jsx)(j,{})}),(0,n.jsx)("div",{className:"transition-all duration-200 ease-in-out min-h-screen",style:{paddingTop:"56px"},children:(0,n.jsx)("main",{className:"p-6",children:t})})]})}function v(e){return(0,n.jsx)(p,{children:(0,n.jsx)(g,{...e})})}},3001:function(e,t,r){r.d(t,{X:function(){return s}});var n=r(7294);function s(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:768,[t,r]=(0,n.useState)(!1);return(0,n.useEffect)(()=>{let t=()=>{r(window.innerWidth<e)};return t(),window.addEventListener("resize",t),()=>{window.removeEventListener("resize",t)}},[e]),t}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[641],{1812:function(e,s,r){r.d(s,{X:function(){return l}});var t=r(5893),a=r(7294);let n=e=>{if(!(null==e?void 0:e.message))return"An unexpected error occurred.";let s=e.message;return s.includes("failed:")&&(s=s.split("failed:")[1].trim()),s},l=e=>{let{error:s,title:r="Error",onDismiss:l}=e,[i,o]=(0,a.useState)(!1);if((0,a.useEffect)(()=>{s&&o(!1)},[s]),!s||i)return null;let c="string"==typeof s?s:n(s);return(0,t.jsx)("div",{className:"bg-red-50 border border-red-200 rounded-md p-3 mb-4",children:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("div",{className:"flex-shrink-0",children:(0,t.jsx)("svg",{className:"h-5 w-5 text-red-400",viewBox:"0 0 20 20",fill:"currentColor",children:(0,t.jsx)("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z",clipRule:"evenodd"})})}),(0,t.jsx)("div",{className:"ml-3",children:(0,t.jsxs)("div",{className:"text-sm text-red-800",children:[(0,t.jsxs)("strong",{children:[r,":"]})," ",c]})})]}),(0,t.jsx)("button",{onClick:()=>{o(!0),l&&l()},className:"flex-shrink-0 ml-4 text-red-400 hover:text-red-600 focus:outline-none focus:ring-2 focus:ring-red-500 focus:ring-offset-2 focus:ring-offset-red-50 rounded","aria-label":"Dismiss error",children:(0,t.jsx)("svg",{className:"h-4 w-4",viewBox:"0 0 20 20",fill:"currentColor",children:(0,t.jsx)("path",{fillRule:"evenodd",d:"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z",clipRule:"evenodd"})})})]})})}},803:function(e,s,r){r.d(s,{z:function(){return c}});var t=r(5893),a=r(7294),n=r(8426),l=r(2003),i=r(2350);let o=(0,l.j)("inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),c=a.forwardRef((e,s)=>{let{className:r,variant:a,size:l,asChild:c=!1,...d}=e,u=c?n.g7:"button";return(0,t.jsx)(u,{className:(0,i.cn)(o({variant:a,size:l,className:r})),ref:s,...d})});c.displayName="Button"},7673:function(e,s,r){r.d(s,{Ol:function(){return c},Zb:function(){return o},aY:function(){return m},eW:function(){return x},ll:function(){return d}});var t=r(5893),a=r(7294),n=r(5697),l=r.n(n),i=r(2350);let o=a.forwardRef((e,s)=>{let{className:r,children:a,...n}=e;return(0,t.jsx)("div",{ref:s,className:(0,i.cn)("rounded-lg border bg-card text-card-foreground shadow-sm",r),...n,children:a})});o.displayName="Card",o.propTypes={className:l().string,children:l().node};let c=a.forwardRef((e,s)=>{let{className:r,children:a,...n}=e;return(0,t.jsx)("div",{ref:s,className:(0,i.cn)("flex flex-col space-y-1.5 p-6",r),...n,children:a})});c.displayName="CardHeader",c.propTypes={className:l().string,children:l().node};let d=a.forwardRef((e,s)=>{let{className:r,children:a,...n}=e;return(0,t.jsx)("h3",{ref:s,className:(0,i.cn)("text-2xl font-semibold leading-none tracking-tight",r),...n,children:a})});d.displayName="CardTitle",d.propTypes={className:l().string,children:l().node};let u=a.forwardRef((e,s)=>{let{className:r,children:a,...n}=e;return(0,t.jsx)("p",{ref:s,className:(0,i.cn)("text-sm text-muted-foreground",r),...n,children:a})});u.displayName="CardDescription",u.propTypes={className:l().string,children:l().node};let m=a.forwardRef((e,s)=>{let{className:r,children:a,...n}=e;return(0,t.jsx)("div",{ref:s,className:(0,i.cn)("p-6 pt-0",r),...n,children:a})});m.displayName="CardContent",m.propTypes={className:l().string,children:l().node};let x=a.forwardRef((e,s)=>{let{className:r,children:a,...n}=e;return(0,t.jsx)("div",{ref:s,className:(0,i.cn)("flex items-center p-6 pt-0",r),...n,children:a})});x.displayName="CardFooter",x.propTypes={className:l().string,children:l().node}},326:function(e,s,r){r.d(s,{$N:function(){return f},Be:function(){return h},Vq:function(){return o},cN:function(){return x},cZ:function(){return u},fK:function(){return m}});var t=r(5893),a=r(7294),n=r(6327),l=r(2350),i=r(3767);let o=n.fC;n.xz;let c=n.h_;n.x8;let d=a.forwardRef((e,s)=>{let{className:r,...a}=e;return(0,t.jsx)(n.aV,{ref:s,className:(0,l.cn)("fixed inset-0 z-50 bg-black/50 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",r),...a})});d.displayName=n.aV.displayName;let u=a.forwardRef((e,s)=>{let{className:r,children:a,...o}=e;return(0,t.jsxs)(c,{children:[(0,t.jsx)(d,{}),(0,t.jsxs)(n.VY,{ref:s,className:(0,l.cn)("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-gray-200 bg-white p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",r),...o,children:[a,(0,t.jsxs)(n.x8,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-white transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-gray-400 focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-gray-100 data-[state=open]:text-gray-500",children:[(0,t.jsx)(i.Z,{className:"h-4 w-4"}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})});u.displayName=n.VY.displayName;let m=e=>{let{className:s,...r}=e;return(0,t.jsx)("div",{className:(0,l.cn)("flex flex-col space-y-1.5 text-center sm:text-left",s),...r})};m.displayName="DialogHeader";let x=e=>{let{className:s,...r}=e;return(0,t.jsx)("div",{className:(0,l.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",s),...r})};x.displayName="DialogFooter";let f=a.forwardRef((e,s)=>{let{className:r,...a}=e;return(0,t.jsx)(n.Dx,{ref:s,className:(0,l.cn)("text-lg font-semibold leading-none tracking-tight",r),...a})});f.displayName=n.Dx.displayName;let h=a.forwardRef((e,s)=>{let{className:r,...a}=e;return(0,t.jsx)(n.dk,{ref:s,className:(0,l.cn)("text-sm text-gray-500",r),...a})});h.displayName=n.dk.displayName},8764:function(e,s,r){r.d(s,{RM:function(){return o},SC:function(){return c},iA:function(){return l},pj:function(){return u},ss:function(){return d},xD:function(){return i}});var t=r(5893),a=r(7294),n=r(2350);let l=a.forwardRef((e,s)=>{let{className:r,...a}=e;return(0,t.jsx)("div",{className:"relative w-full overflow-auto",children:(0,t.jsx)("table",{ref:s,className:(0,n.cn)("w-full caption-bottom text-base",r),...a})})});l.displayName="Table";let i=a.forwardRef((e,s)=>{let{className:r,...a}=e;return(0,t.jsx)("thead",{ref:s,className:(0,n.cn)("[&_tr]:border-b",r),...a})});i.displayName="TableHeader";let o=a.forwardRef((e,s)=>{let{className:r,...a}=e;return(0,t.jsx)("tbody",{ref:s,className:(0,n.cn)("[&_tr:last-child]:border-0",r),...a})});o.displayName="TableBody",a.forwardRef((e,s)=>{let{className:r,...a}=e;return(0,t.jsx)("tfoot",{ref:s,className:(0,n.cn)("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",r),...a})}).displayName="TableFooter";let c=a.forwardRef((e,s)=>{let{className:r,...a}=e;return(0,t.jsx)("tr",{ref:s,className:(0,n.cn)("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",r),...a})});c.displayName="TableRow";let d=a.forwardRef((e,s)=>{let{className:r,...a}=e;return(0,t.jsx)("th",{ref:s,className:(0,n.cn)("h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0",r),...a})});d.displayName="TableHead";let u=a.forwardRef((e,s)=>{let{className:r,...a}=e;return(0,t.jsx)("td",{ref:s,className:(0,n.cn)("p-4 align-middle [&:has([role=checkbox])]:pr-0",r),...a})});u.displayName="TableCell",a.forwardRef((e,s)=>{let{className:r,...a}=e;return(0,t.jsx)("caption",{ref:s,className:(0,n.cn)("mt-4 text-base text-muted-foreground",r),...a})}).displayName="TableCaption"},2641:function(e,s,r){r.r(s),r.d(s,{Users:function(){return V}});var t=r(5893),a=r(7294),n=r(5697),l=r.n(n),i=r(8799),o=r(1664),c=r.n(o),d=r(803),u=r(8764),m=r(3081),x=r(3266),f=r(8969),h=r(6378),p=r(6856),g=r(1214),b=r(4545),j=r(1109),y=r(3626),v=r(3685),N=r(6741),w=r(6826),k=r(282),C=r(3767),R=r(5274),D=r(3936),S=r(7603);r(9470);var E=r(3001),I=r(7673),U=r(7145),F=r(326),_=r(1812);let L=(e,s)=>e&&e.includes("@")?e.split("@")[0]:e||"N/A",Z=(e,s)=>e&&e.includes("@")?e:s||"-",z=g.nb.REFRESH_INTERVAL,T=e=>{let{message:s,onDismiss:r}=e;return s?(0,t.jsx)("div",{className:"bg-green-50 border border-green-200 rounded p-4 mb-6",children:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsx)("div",{className:"flex-shrink-0",children:(0,t.jsx)("svg",{className:"h-5 w-5 text-green-400",viewBox:"0 0 20 20",fill:"currentColor",children:(0,t.jsx)("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 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,t.jsx)("div",{className:"ml-3",children:(0,t.jsx)("p",{className:"text-sm font-medium text-green-800",children:s})})]}),r&&(0,t.jsx)("div",{className:"ml-auto pl-3",children:(0,t.jsx)("div",{className:"-mx-1.5 -my-1.5",children:(0,t.jsxs)("button",{type:"button",onClick:r,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,t.jsx)("span",{className:"sr-only",children:"Dismiss"}),(0,t.jsx)("svg",{className:"h-5 w-5",viewBox:"0 0 20 20",fill:"currentColor",children:(0,t.jsx)("path",{fillRule:"evenodd",d:"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z",clipRule:"evenodd"})})]})})})]})}):null};function V(){let[e,s]=(0,a.useState)(!1),r=(0,a.useRef)(null),n=(0,E.X)(),[l,o]=(0,a.useState)(!1),[u,p]=(0,a.useState)({username:"",password:"",role:"user"}),[g,b]=(0,a.useState)(!1),[k,C]=(0,a.useState)({open:!1,message:"",userName:""}),[R,D]=(0,a.useState)(null),[S,I]=(0,a.useState)(!1),[L,Z]=(0,a.useState)(!1),[V,A]=(0,a.useState)(!1),[q,M]=(0,a.useState)(null),[B,O]=(0,a.useState)(!1),[K,H]=(0,a.useState)(null),[Y,$]=(0,a.useState)("import"),[X,J]=(0,a.useState)(!1),[W,G]=(0,a.useState)(null),[Q,ee]=(0,a.useState)(""),[es,er]=(0,a.useState)(!1),[et,ea]=(0,a.useState)(null),[en,el]=(0,a.useState)(!1),[ei,eo]=(0,a.useState)(null),[ec,ed]=(0,a.useState)(null),[eu,em]=(0,a.useState)(!1),[ex,ef]=(0,a.useState)(null),[eh,ep]=(0,a.useState)(null),[eg,eb]=(0,a.useState)(void 0);(0,a.useEffect)(()=>{(async function(){try{let e=await U.x.get("/api/health");if(e.ok){let s=await e.json();eb(!!s.basic_auth_enabled)}else eb(!1)}catch(e){eb(!1)}})()},[]),(0,a.useEffect)(()=>{ej().catch(()=>{console.error("Failed to get user role")})},[]);let ej=async()=>{if(R&&Date.now()-R.timestamp<3e5)return R;I(!0);try{let e=await U.x.get("/users/role");if(!e.ok){let s=await e.json();throw Error(s.detail||"Failed to get user role")}let s=await e.json(),r={role:s.role,name:s.name,id:s.id,timestamp:Date.now()};return D(r),I(!1),r}catch(e){throw I(!1),e}},ey=async(e,s)=>{try{let r=await ej();if("admin"!==r.role)return C({open:!0,message:e,userName:r.name.toLowerCase()}),!1;return s(),!0}catch(e){return console.error("Failed to check user role:",e),C({open:!0,message:"Error: ".concat(e.message),userName:""}),!1}},ev=()=>{h.default.invalidate(m.R),h.default.invalidate(x.getClusters),h.default.invalidate(f.getManagedJobs,[{allUsers:!0}]),r.current&&r.current()},eN=async()=>{if(!u.username||!u.password){ep(Error("Username and password are required.")),o(!1);return}b(!0),ep(null),ef(null);try{let e=await U.x.post("/users/create",u);if(!e.ok){let s=await e.json();throw Error(s.detail||"Failed to create user")}ef('User "'.concat(u.username,'" created successfully!')),o(!1),p({username:"",password:"",role:"user"}),ev()}catch(e){ep(e),o(!1),p({username:"",password:"",role:"user"})}finally{b(!1)}},ew=async e=>{let s=e.target.files[0];s&&(M(s),H(null))},ek=async()=>{if(!q){alert("Please select a CSV file first.");return}O(!0);try{let e=new FileReader;e.onload=async e=>{try{let s=e.target.result,r=await U.x.post("/users/import",{csv_content:s});if(!r.ok){let e=await r.json();throw Error(e.detail||"Failed to import users")}let t=await r.json(),a="Import completed. ".concat(t.success_count," users created successfully.");t.error_count>0&&(a+="\n".concat(t.error_count," failed."),t.creation_errors.length>0&&(a+="\nErrors: ".concat(t.creation_errors.slice(0,3).join(", ")),t.creation_errors.length>3&&(a+=" and ".concat(t.creation_errors.length-3," more...")))),H({message:a}),t.success_count>0&&ev()}catch(e){alert("Error importing users: ".concat(e.message))}finally{O(!1)}},e.readAsText(q)}catch(e){alert("Error reading file: ".concat(e.message)),O(!1)}},eC=async e=>{G(e),ee(""),J(!0)},eR=async()=>{if(!Q){ea(Error("Please enter a new password."));return}er(!0),ea(null);try{let e=await U.x.post("/users/update",{user_id:W.userId,password:Q});if(!e.ok){let s=await e.json();throw Error(s.detail||"Failed to reset password")}ef('Password reset successfully for user "'.concat(W.usernameDisplay,'"!')),J(!1),G(null),ee("")}catch(e){ea(e)}finally{er(!1)}},eD=async()=>{if(ei){em(!0),ed(null);try{let e=await U.x.post("/users/delete",{user_id:ei.userId});if(!e.ok){let s=await e.json();throw Error(s.detail||"Failed to delete user")}ef('User "'.concat(ei.usernameDisplay,'" deleted successfully!')),el(!1),eo(null),ev()}catch(e){ed(e)}finally{em(!1)}}},eS=()=>{el(!1),eo(null),ed(null)},eE=()=>{J(!1),G(null),ee(""),ea(null)};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-4 h-5",children:[(0,t.jsx)("div",{className:"text-base",children:(0,t.jsx)(c(),{href:"/users",className:"text-sky-blue hover:underline leading-none",children:"Users"})}),(0,t.jsxs)("div",{className:"flex items-center",children:[e&&(0,t.jsxs)("div",{className:"flex items-center mr-2",children:[(0,t.jsx)(i.Z,{size:15,className:"mt-0"}),(0,t.jsx)("span",{className:"ml-2 text-gray-500 text-sm",children:"Loading..."})]}),eg&&(null==R?void 0:R.role)==="admin"&&(0,t.jsx)("button",{onClick:async()=>{await ey("cannot create users",()=>{o(!0)})},className:"text-sky-blue hover:text-sky-blue-bright flex items-center border-sky-blue rounded px-2 py-1 mr-2",title:"Create New User",children:"+ New User"}),eg&&(null==R?void 0:R.role)==="admin"&&(0,t.jsxs)("button",{onClick:async()=>{await ey("cannot import users",()=>{A(!0)})},className:"text-sky-blue hover:text-sky-blue-bright flex items-center rounded px-2 py-1 mr-2",title:"Import/Export Users",children:[(0,t.jsx)(j.Z,{className:"h-4 w-4 mr-1"}),"Import/Export"]}),(0,t.jsxs)("button",{onClick:ev,disabled:e,className:"text-sky-blue hover:text-sky-blue-bright flex items-center",children:[(0,t.jsx)(y.Z,{className:"h-4 w-4 mr-1.5"}),!n&&(0,t.jsx)("span",{children:"Refresh"})]})]})]}),(0,t.jsx)(T,{message:ex,onDismiss:()=>ef(null)}),(0,t.jsx)(_.X,{error:eh,title:"Error",onDismiss:()=>ep(null)}),(0,t.jsx)(P,{refreshInterval:z,setLoading:s,refreshDataRef:r,checkPermissionAndAct:ey,roleLoading:S,onResetPassword:eC,onDeleteUser:e=>{ey("cannot delete users",()=>{eo(e),el(!0)})},basicAuthEnabled:eg,currentUserRole:null==R?void 0:R.role,currentUserId:null==R?void 0:R.id}),(0,t.jsx)(F.Vq,{open:l,onOpenChange:o,children:(0,t.jsxs)(F.cZ,{className:"sm:max-w-md",children:[(0,t.jsx)(F.fK,{children:(0,t.jsx)(F.$N,{children:"Create User"})}),(0,t.jsxs)("div",{className:"flex flex-col gap-4 py-4",children:[(0,t.jsxs)("div",{className:"grid gap-2",children:[(0,t.jsx)("label",{className:"text-sm font-medium text-gray-700",children:"Username"}),(0,t.jsx)("input",{className:"border rounded px-3 py-2 w-full",placeholder:"Username",value:u.username,onChange:e=>p({...u,username:e.target.value})})]}),(0,t.jsxs)("div",{className:"grid gap-2",children:[(0,t.jsx)("label",{className:"text-sm font-medium text-gray-700",children:"Password"}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("input",{className:"border rounded px-3 py-2 w-full pr-10",placeholder:"Password",type:L?"text":"password",value:u.password,onChange:e=>p({...u,password:e.target.value})}),(0,t.jsx)("button",{type:"button",className:"absolute inset-y-0 right-0 pr-3 flex items-center text-gray-400 hover:text-gray-600",onClick:()=>Z(!L),children:L?(0,t.jsx)(v.Z,{className:"h-4 w-4"}):(0,t.jsx)(N.Z,{className:"h-4 w-4"})})]})]}),(0,t.jsxs)("div",{className:"grid gap-2",children:[(0,t.jsx)("label",{className:"text-sm font-medium text-gray-700",children:"Role"}),(0,t.jsxs)("select",{className:"border rounded px-3 py-2 w-full",value:u.role,onChange:e=>p({...u,role:e.target.value}),children:[(0,t.jsx)("option",{value:"user",children:"User"}),(0,t.jsx)("option",{value:"admin",children:"Admin"})]})]})]}),(0,t.jsxs)(F.cN,{children:[(0,t.jsx)("button",{className:"inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border border-input bg-background hover:bg-accent hover:text-accent-foreground h-10 px-4 py-2",onClick:()=>o(!1),disabled:g,children:"Cancel"}),(0,t.jsx)("button",{className:"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-sky-600 text-white hover:bg-sky-700 h-10 px-4 py-2",onClick:eN,disabled:g,children:g?"Creating...":"Create"})]})]})}),(0,t.jsx)(F.Vq,{open:k.open,onOpenChange:e=>C(s=>({...s,open:e})),children:(0,t.jsxs)(F.cZ,{className:"sm:max-w-md transition-all duration-200 ease-in-out",children:[(0,t.jsxs)(F.fK,{children:[(0,t.jsx)(F.$N,{children:"Permission Denied"}),(0,t.jsx)(F.Be,{children:S?(0,t.jsxs)("div",{className:"flex items-center py-2",children:[(0,t.jsx)(i.Z,{size:16,className:"mr-2"}),(0,t.jsx)("span",{children:"Checking permissions..."})]}):(0,t.jsx)(t.Fragment,{children:k.userName?(0,t.jsxs)(t.Fragment,{children:[k.userName," is logged in as non-admin and ",k.message,"."]}):k.message})})]}),(0,t.jsx)(F.cN,{children:(0,t.jsx)(d.z,{variant:"outline",onClick:()=>C(e=>({...e,open:!1})),disabled:S,children:"OK"})})]})}),(0,t.jsx)(F.Vq,{open:V,onOpenChange:A,children:(0,t.jsxs)(F.cZ,{className:"sm:max-w-lg",children:[(0,t.jsx)(F.fK,{children:(0,t.jsx)(F.$N,{children:"Import/Export Users"})}),(0,t.jsxs)("div",{className:"flex border-b border-gray-200 mb-4",children:[(0,t.jsx)("button",{className:"px-4 py-2 text-sm font-medium ".concat("import"===Y?"border-b-2 border-sky-500 text-sky-600":"text-gray-500 hover:text-gray-700"),onClick:()=>$("import"),children:"Import"}),(0,t.jsx)("button",{className:"px-4 py-2 text-sm font-medium ".concat("export"===Y?"border-b-2 border-sky-500 text-sky-600":"text-gray-500 hover:text-gray-700"),onClick:()=>$("export"),children:"Export"})]}),(0,t.jsx)("div",{className:"flex flex-col gap-4 py-4",children:"import"===Y?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"grid gap-2",children:[(0,t.jsx)("label",{className:"text-sm font-medium text-gray-700",children:"CSV File"}),(0,t.jsx)("input",{type:"file",accept:".csv",onChange:ew,className:"border rounded px-3 py-2 w-full"}),(0,t.jsxs)("p",{className:"text-xs text-gray-500",children:["CSV should have columns: username, password, role",(0,t.jsx)("br",{}),"Supports both plain text passwords and exported password hashes."]})]}),K&&(0,t.jsx)("div",{className:"p-3 bg-green-50 border border-green-200 rounded text-green-700 text-sm",children:K.message})]}):(0,t.jsx)(t.Fragment,{children:(0,t.jsxs)("div",{className:"grid gap-2",children:[(0,t.jsx)("label",{className:"text-sm font-medium text-gray-700",children:"Export Users to CSV"}),(0,t.jsx)("p",{className:"text-xs text-gray-500",children:"Download all users as a CSV file with password hashes."}),(0,t.jsxs)("div",{className:"p-3 bg-amber-50 border border-amber-200 rounded",children:[(0,t.jsx)("p",{className:"text-sm text-amber-700",children:"⚠️ This will export all users with columns: username, password (hashed), role"}),(0,t.jsx)("p",{className:"text-xs text-amber-600 mt-1",children:"Password hashes can be imported directly for system backups."})]})]})})}),(0,t.jsxs)(F.cN,{children:[(0,t.jsx)("button",{className:"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border border-input bg-background hover:bg-accent hover:text-accent-foreground h-10 px-4 py-2",onClick:()=>A(!1),disabled:B,children:"Cancel"}),"import"===Y?(0,t.jsx)("button",{className:"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-sky-600 text-white hover:bg-sky-700 h-10 px-4 py-2",onClick:ek,disabled:B||!q,children:B?"Importing...":"Import"}):(0,t.jsxs)("button",{className:"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-sky-600 text-white hover:bg-sky-700 h-10 px-4 py-2",onClick:async()=>{try{let e=await U.x.get("/users/export");if(!e.ok){let s=await e.json();throw Error(s.detail||"Failed to export users")}let s=await e.json(),r=s.csv_content,t=new Blob([r],{type:"text/csv;charset=utf-8;"}),a=URL.createObjectURL(t),n=document.createElement("a");n.href=a;let l=new Date,i=e=>String(e).padStart(2,"0"),o=l.getFullYear(),c=i(l.getMonth()+1),d=i(l.getDate()),u=i(l.getHours()),m=i(l.getMinutes()),x=i(l.getSeconds());n.download="users_export_".concat(o,"-").concat(c,"-").concat(d,"-").concat(u,"-").concat(m,"-").concat(x,".csv"),n.click(),URL.revokeObjectURL(a),alert("Successfully exported ".concat(s.user_count," users to CSV file."))}catch(e){alert("Error exporting users: ".concat(e.message))}},children:[(0,t.jsx)(w.Z,{className:"h-4 w-4 mr-1"}),"Export"]})]})]})}),(0,t.jsx)(F.Vq,{open:X,onOpenChange:eE,children:(0,t.jsxs)(F.cZ,{className:"sm:max-w-md",children:[(0,t.jsxs)(F.fK,{children:[(0,t.jsx)(F.$N,{children:"Reset Password"}),(0,t.jsxs)(F.Be,{children:["Enter a new password for"," ",(null==W?void 0:W.usernameDisplay)||"this user","."]})]}),(0,t.jsx)("div",{className:"flex flex-col gap-4 py-4",children:(0,t.jsxs)("div",{className:"grid gap-2",children:[(0,t.jsx)("label",{className:"text-sm font-medium text-gray-700",children:"New Password"}),(0,t.jsx)("input",{type:"password",className:"border rounded px-3 py-2 w-full",placeholder:"Enter new password",value:Q,onChange:e=>ee(e.target.value),autoFocus:!0})]})}),(0,t.jsx)(_.X,{error:et,title:"Reset Failed",onDismiss:()=>ea(null)}),(0,t.jsxs)(F.cN,{children:[(0,t.jsx)(d.z,{variant:"outline",onClick:eE,disabled:es,children:"Cancel"}),(0,t.jsx)(d.z,{variant:"default",onClick:eR,disabled:es||!Q,className:"bg-sky-600 text-white hover:bg-sky-700",children:es?"Resetting...":"Reset Password"})]})]})}),(0,t.jsx)(F.Vq,{open:en,onOpenChange:eS,children:(0,t.jsxs)(F.cZ,{className:"sm:max-w-md",children:[(0,t.jsxs)(F.fK,{children:[(0,t.jsx)(F.$N,{children:"Delete User"}),(0,t.jsxs)(F.Be,{children:['Are you sure you want to delete user "',(null==ei?void 0:ei.usernameDisplay)||"this user",'"? This action cannot be undone.']})]}),(0,t.jsx)(_.X,{error:ec,title:"Deletion Failed",onDismiss:()=>ed(null)}),(0,t.jsxs)(F.cN,{children:[(0,t.jsx)(d.z,{variant:"outline",onClick:eS,disabled:eu,children:"Cancel"}),(0,t.jsx)(d.z,{variant:"destructive",onClick:eD,disabled:eu,children:eu?"Deleting...":"Delete"})]})]})})]})}function P(e){let{refreshInterval:s,setLoading:r,refreshDataRef:n,checkPermissionAndAct:l,roleLoading:o,onResetPassword:d,onDeleteUser:g,basicAuthEnabled:j,currentUserRole:y,currentUserId:v}=e,[N,w]=(0,a.useState)([]),[E,F]=(0,a.useState)(!0),[_,z]=(0,a.useState)(!1),[T,V]=(0,a.useState)({key:"username",direction:"ascending"}),[P,A]=(0,a.useState)(null),[q,M]=(0,a.useState)(""),B=(0,a.useCallback)(async function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];r&&e&&r(!0),e&&F(!0);try{let s=await h.default.get(m.R),t=(s||[]).map(e=>({...e,usernameDisplay:L(e.username,e.userId),fullEmailID:Z(e.username,e.userId),clusterCount:-1,jobCount:-1}));w(t),z(!0),r&&e&&r(!1),e&&F(!1);let[a,n]=await Promise.all([h.default.get(x.getClusters),h.default.get(f.getManagedJobs,[{allUsers:!0}])]),l=n.jobs||[],i=(s||[]).map(e=>{let s=(a||[]).filter(s=>s.user_hash===e.userId),r=(l||[]).filter(s=>s.user_hash===e.userId);return{...e,usernameDisplay:L(e.username,e.userId),fullEmailID:Z(e.username,e.userId),clusterCount:s.length,jobCount:r.length}});w(i)}catch(s){console.error("Failed to fetch or process user data:",s),w([]),z(!0),r&&e&&r(!1),e&&F(!1)}},[r]);(0,a.useEffect)(()=>{n&&(n.current=()=>B(!0))},[n,B]),(0,a.useEffect)(()=>{(async()=>{z(!1),F(!0),await p.ZP.preloadForPage("users"),B(!0)})();let e=setInterval(()=>{B(!1)},s);return()=>clearInterval(e)},[B,s]);let O=(0,a.useMemo)(()=>(0,b.R0)(N,T.key,T.direction),[N,T]),K=e=>{let s="ascending";T.key===e&&"ascending"===T.direction&&(s="descending"),V({key:e,direction:s})},H=e=>T.key===e?"ascending"===T.direction?" ↑":" ↓":"",Y=async(e,s)=>{await l("cannot edit user role",()=>{A(e),M(s)})},$=()=>{A(null),M("")},X=async e=>{if(!e||!q){console.error("User ID or role is missing."),alert("Error: User ID or role is missing.");return}F(!0);try{let s=await U.x.post("/users/update",{user_id:e,role:q});if(!s.ok){let e=await s.json();throw Error(e.detail||"Failed to update role")}h.default.invalidate(m.R),await B(!0),$()}catch(e){console.error("Failed to update user role:",e),alert("Error updating role: ".concat(e.message))}finally{F(!1)}};return E&&0===N.length&&!_?(0,t.jsx)("div",{className:"flex justify-center items-center h-64",children:(0,t.jsx)(i.Z,{})}):_?O&&0!==O.length?(0,t.jsx)(I.Zb,{children:(0,t.jsxs)(u.iA,{children:[(0,t.jsx)(u.xD,{children:(0,t.jsxs)(u.SC,{children:[(0,t.jsxs)(u.ss,{onClick:()=>K("usernameDisplay"),className:"sortable whitespace-nowrap cursor-pointer hover:bg-gray-50 w-1/5",children:["Name",H("usernameDisplay")]}),(0,t.jsxs)(u.ss,{onClick:()=>K("fullEmailID"),className:"sortable whitespace-nowrap cursor-pointer hover:bg-gray-50 w-1/5",children:["User ID",H("fullEmailID")]}),(0,t.jsxs)(u.ss,{onClick:()=>K("role"),className:"sortable whitespace-nowrap cursor-pointer hover:bg-gray-50 w-1/5",children:["Role",H("role")]}),(0,t.jsxs)(u.ss,{onClick:()=>K("clusterCount"),className:"sortable whitespace-nowrap cursor-pointer hover:bg-gray-50 w-1/5",children:["Clusters",H("clusterCount")]}),(0,t.jsxs)(u.ss,{onClick:()=>K("jobCount"),className:"sortable whitespace-nowrap cursor-pointer hover:bg-gray-50 w-1/5",children:["Jobs",H("jobCount")]}),j&&(0,t.jsx)(u.ss,{className:"whitespace-nowrap w-1/6",children:"Actions"})]})}),(0,t.jsx)(u.RM,{children:O.map(e=>(0,t.jsxs)(u.SC,{children:[(0,t.jsx)(u.pj,{className:"truncate",title:e.username,children:e.usernameDisplay}),(0,t.jsx)(u.pj,{className:"truncate",title:e.fullEmailID,children:e.fullEmailID}),(0,t.jsx)(u.pj,{className:"truncate",title:e.role,children:(0,t.jsx)("div",{className:"flex items-center gap-2",children:P===e.userId?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("select",{value:q,onChange:e=>M(e.target.value),className:"block w-auto p-1 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-sky-blue focus:border-sky-blue sm:text-sm",children:[(0,t.jsx)("option",{value:"admin",children:"Admin"}),(0,t.jsx)("option",{value:"user",children:"User"})]}),(0,t.jsx)("button",{onClick:()=>X(e.userId),className:"text-green-600 hover:text-green-800 p-1",title:"Save",children:(0,t.jsx)(k.Z,{className:"h-4 w-4"})}),(0,t.jsx)("button",{onClick:$,className:"text-gray-500 hover:text-gray-700 p-1",title:"Cancel",children:(0,t.jsx)(C.Z,{className:"h-4 w-4"})})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"capitalize",children:e.role}),"admin"===y&&(0,t.jsx)("button",{onClick:()=>Y(e.userId,e.role),className:"text-sky-blue hover:text-sky-blue-bright p-1",title:"Edit role",children:(0,t.jsx)(R.Z,{className:"h-3 w-3"})})]})})}),(0,t.jsx)(u.pj,{children:-1===e.clusterCount?(0,t.jsxs)("span",{className:"px-2 py-0.5 bg-gray-100 text-gray-400 rounded text-xs font-medium flex items-center",children:[(0,t.jsx)(i.Z,{size:10,className:"mr-1"}),"Loading..."]}):(0,t.jsx)(c(),{href:"/clusters?user=".concat(encodeURIComponent(e.userId)),className:"px-2 py-0.5 rounded text-xs font-medium transition-colors duration-200 cursor-pointer inline-block ".concat(e.clusterCount>0?"bg-blue-100 text-blue-800 hover:bg-blue-200 hover:text-blue-900":"bg-gray-100 text-gray-500 hover:bg-gray-200 hover:text-gray-700"),title:"View ".concat(e.clusterCount," cluster").concat(1!==e.clusterCount?"s":""," for ").concat(e.usernameDisplay),children:e.clusterCount})}),(0,t.jsx)(u.pj,{children:-1===e.jobCount?(0,t.jsxs)("span",{className:"px-2 py-0.5 bg-gray-100 text-gray-400 rounded text-xs font-medium flex items-center",children:[(0,t.jsx)(i.Z,{size:10,className:"mr-1"}),"Loading..."]}):(0,t.jsx)(c(),{href:"/jobs?user=".concat(encodeURIComponent(e.userId)),className:"px-2 py-0.5 rounded text-xs font-medium transition-colors duration-200 cursor-pointer inline-block ".concat(e.jobCount>0?"bg-green-100 text-green-800 hover:bg-green-200 hover:text-green-900":"bg-gray-100 text-gray-500 hover:bg-gray-200 hover:text-gray-700"),title:"View ".concat(e.jobCount," job").concat(1!==e.jobCount?"s":""," for ").concat(e.usernameDisplay),children:e.jobCount})}),j&&(0,t.jsx)(u.pj,{className:"relative",children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("button",{onClick:"admin"===y||e.userId===v?async()=>{d(e)}:void 0,className:"admin"===y||e.userId===v?"text-sky-blue hover:text-sky-blue-bright p-1":"text-gray-300 cursor-not-allowed p-1",title:"admin"===y||e.userId===v?"Reset Password":"You can only reset your own password",disabled:"admin"!==y&&e.userId!==v,children:(0,t.jsx)(D.Z,{className:"h-4 w-4"})}),"admin"===y&&(0,t.jsx)("button",{onClick:()=>g(e),className:"text-sky-blue hover:text-red-500 p-1",title:"Delete User",children:(0,t.jsx)(S.Z,{className:"h-4 w-4"})})]})})]},e.userId))})]})}):(0,t.jsxs)("div",{className:"text-center py-12",children:[(0,t.jsx)("p",{className:"text-lg font-semibold text-gray-500",children:"No users found."}),(0,t.jsx)("p",{className:"text-sm text-gray-400 mt-1",children:"There are currently no users to display."})]}):(0,t.jsxs)("div",{className:"flex justify-center items-center h-64",children:[(0,t.jsx)(i.Z,{}),(0,t.jsx)("span",{className:"ml-2 text-gray-500",children:"Loading users..."})]})}P.propTypes={refreshInterval:l().number.isRequired,setLoading:l().func.isRequired,refreshDataRef:l().shape({current:l().func}).isRequired,checkPermissionAndAct:l().func.isRequired,roleLoading:l().bool.isRequired,onResetPassword:l().func.isRequired,onDeleteUser:l().func.isRequired,basicAuthEnabled:l().bool,currentUserRole:l().string,currentUserId:l().string}},4545:function(e,s,r){function t(e){return e.startsWith("sky-jobs-controller-")}function a(e,s,r){return null===s?e:[...e].sort((e,t)=>e[s]<t[s]?"ascending"===r?-1:1:e[s]>t[s]?"ascending"===r?1:-1:0)}r.d(s,{R0:function(){return a},Ym:function(){return t}})}}]);