skypilot-nightly 1.0.0.dev20250718__py3-none-any.whl → 1.0.0.dev20250720__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

Files changed (109) hide show
  1. sky/__init__.py +4 -2
  2. sky/backends/backend_utils.py +23 -13
  3. sky/backends/cloud_vm_ray_backend.py +19 -11
  4. sky/catalog/__init__.py +3 -1
  5. sky/catalog/aws_catalog.py +8 -5
  6. sky/catalog/azure_catalog.py +8 -5
  7. sky/catalog/common.py +8 -2
  8. sky/catalog/cudo_catalog.py +5 -2
  9. sky/catalog/do_catalog.py +4 -1
  10. sky/catalog/fluidstack_catalog.py +5 -2
  11. sky/catalog/gcp_catalog.py +8 -5
  12. sky/catalog/hyperbolic_catalog.py +5 -2
  13. sky/catalog/ibm_catalog.py +8 -5
  14. sky/catalog/lambda_catalog.py +8 -5
  15. sky/catalog/nebius_catalog.py +8 -5
  16. sky/catalog/oci_catalog.py +8 -5
  17. sky/catalog/paperspace_catalog.py +4 -1
  18. sky/catalog/runpod_catalog.py +5 -2
  19. sky/catalog/scp_catalog.py +8 -5
  20. sky/catalog/vast_catalog.py +5 -2
  21. sky/catalog/vsphere_catalog.py +4 -1
  22. sky/client/cli/command.py +25 -2
  23. sky/client/sdk.py +9 -4
  24. sky/clouds/aws.py +12 -7
  25. sky/clouds/azure.py +12 -7
  26. sky/clouds/cloud.py +9 -8
  27. sky/clouds/cudo.py +13 -7
  28. sky/clouds/do.py +12 -7
  29. sky/clouds/fluidstack.py +11 -6
  30. sky/clouds/gcp.py +12 -7
  31. sky/clouds/hyperbolic.py +11 -6
  32. sky/clouds/ibm.py +11 -6
  33. sky/clouds/kubernetes.py +7 -3
  34. sky/clouds/lambda_cloud.py +11 -6
  35. sky/clouds/nebius.py +12 -7
  36. sky/clouds/oci.py +12 -7
  37. sky/clouds/paperspace.py +12 -7
  38. sky/clouds/runpod.py +12 -7
  39. sky/clouds/scp.py +11 -6
  40. sky/clouds/vast.py +12 -7
  41. sky/clouds/vsphere.py +11 -6
  42. sky/core.py +6 -1
  43. sky/dashboard/out/404.html +1 -1
  44. sky/dashboard/out/_next/static/chunks/{1043-734e57d2b27dfe5d.js → 1043-869d9c78bf5dd3df.js} +1 -1
  45. sky/dashboard/out/_next/static/chunks/1871-a821dcaaae2a3823.js +6 -0
  46. sky/dashboard/out/_next/static/chunks/{2641.35edc9ccaeaad9e3.js → 2641.5233e938f14e31a7.js} +1 -1
  47. sky/dashboard/out/_next/static/chunks/{4725.4c849b1e05c8e9ad.js → 4725.66125dcd9832aa5d.js} +1 -1
  48. sky/dashboard/out/_next/static/chunks/4869.c7c055a5c2814f33.js +16 -0
  49. sky/dashboard/out/_next/static/chunks/938-63fc419cb82ad9b3.js +1 -0
  50. sky/dashboard/out/_next/static/chunks/9470-8178183f3bae198f.js +1 -0
  51. sky/dashboard/out/_next/static/chunks/pages/_app-507712f30cd3cec3.js +20 -0
  52. sky/dashboard/out/_next/static/chunks/webpack-26cdc782eed15a7d.js +1 -0
  53. sky/dashboard/out/_next/static/css/5122cb0a08486fd3.css +3 -0
  54. sky/dashboard/out/_next/static/{FUjweqdImyeYhMYFON-Se → pTQKG61ng32Zc7gsAROFJ}/_buildManifest.js +1 -1
  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 -1
  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/global_user_state.py +13 -143
  70. sky/jobs/state.py +9 -88
  71. sky/jobs/utils.py +28 -13
  72. sky/schemas/db/README +4 -0
  73. sky/schemas/db/env.py +90 -0
  74. sky/schemas/db/global_user_state/001_initial_schema.py +124 -0
  75. sky/schemas/db/script.py.mako +28 -0
  76. sky/schemas/db/skypilot_config/001_initial_schema.py +30 -0
  77. sky/schemas/db/spot_jobs/001_initial_schema.py +97 -0
  78. sky/serve/client/sdk.py +6 -2
  79. sky/serve/controller.py +7 -3
  80. sky/serve/serve_state.py +1 -1
  81. sky/serve/serve_utils.py +171 -75
  82. sky/serve/server/core.py +17 -6
  83. sky/server/requests/payloads.py +2 -0
  84. sky/server/requests/requests.py +1 -1
  85. sky/setup_files/MANIFEST.in +2 -0
  86. sky/setup_files/alembic.ini +152 -0
  87. sky/setup_files/dependencies.py +1 -0
  88. sky/skylet/configs.py +1 -1
  89. sky/skylet/job_lib.py +1 -1
  90. sky/skypilot_config.py +32 -6
  91. sky/users/permission.py +1 -1
  92. sky/utils/common_utils.py +77 -0
  93. sky/utils/db/__init__.py +0 -0
  94. sky/utils/{db_utils.py → db/db_utils.py} +59 -0
  95. sky/utils/db/migration_utils.py +53 -0
  96. {skypilot_nightly-1.0.0.dev20250718.dist-info → skypilot_nightly-1.0.0.dev20250720.dist-info}/METADATA +2 -1
  97. {skypilot_nightly-1.0.0.dev20250718.dist-info → skypilot_nightly-1.0.0.dev20250720.dist-info}/RECORD +102 -93
  98. sky/dashboard/out/_next/static/chunks/1871-76491ac174a95278.js +0 -6
  99. sky/dashboard/out/_next/static/chunks/4869.bdd42f14b51d1d6f.js +0 -16
  100. sky/dashboard/out/_next/static/chunks/938-6a9ffdaa21eee969.js +0 -1
  101. sky/dashboard/out/_next/static/chunks/9470-b6f6a35283863a6f.js +0 -1
  102. sky/dashboard/out/_next/static/chunks/pages/_app-771a40cde532309b.js +0 -20
  103. sky/dashboard/out/_next/static/chunks/webpack-6b0575ea521af4f3.js +0 -1
  104. sky/dashboard/out/_next/static/css/219887b94512388c.css +0 -3
  105. /sky/dashboard/out/_next/static/{FUjweqdImyeYhMYFON-Se → pTQKG61ng32Zc7gsAROFJ}/_ssgManifest.js +0 -0
  106. {skypilot_nightly-1.0.0.dev20250718.dist-info → skypilot_nightly-1.0.0.dev20250720.dist-info}/WHEEL +0 -0
  107. {skypilot_nightly-1.0.0.dev20250718.dist-info → skypilot_nightly-1.0.0.dev20250720.dist-info}/entry_points.txt +0 -0
  108. {skypilot_nightly-1.0.0.dev20250718.dist-info → skypilot_nightly-1.0.0.dev20250720.dist-info}/licenses/LICENSE +0 -0
  109. {skypilot_nightly-1.0.0.dev20250718.dist-info → skypilot_nightly-1.0.0.dev20250720.dist-info}/top_level.txt +0 -0
@@ -1,19 +1,19 @@
1
- sky/__init__.py,sha256=X0mX5IiAQFBtr88nwm8RJtKaUY3kPfsjpHLn5Ov_AcE,6473
1
+ sky/__init__.py,sha256=GuET0B6Bhv2cRG-7IpelA_sEVy6u0Wn8wqnyiIxSICg,6535
2
2
  sky/admin_policy.py,sha256=FMiizgvVTmD9gFA2OUaveXnuY3lbNU-fCbUYAODBZj4,9427
3
3
  sky/authentication.py,sha256=V7zGSV7bqcAKC_EGOOS0KhJ01ZFLnme0WnjLFO7zavs,25603
4
4
  sky/check.py,sha256=R0pFsTq2v-wr3NFePlX9DmDhsbvWEoFJAXsys3pUmT4,30338
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=KbPCVZpCZTJF-vtyWqk1rGFzrT8cGHQI93YN9WRp8P4,56338
7
+ sky/core.py,sha256=k_3QkqJecFpwLSatM52lD-IitVdjUIXn33EPJWcQfWE,56628
8
8
  sky/dag.py,sha256=5MFXlP43y9U54zxfYGhVyBiWEInoFFlt_zJ7ASJntXw,3889
9
9
  sky/exceptions.py,sha256=sxSOaKF1w3-bDHrxsAa31y073LGR1sc6dVEfOdDwTmk,19247
10
10
  sky/execution.py,sha256=sZf0306FCKAo1FS7Vg2yCADSr5XHsODYwESHhwdVTjo,33439
11
- sky/global_user_state.py,sha256=L_NMe0e8on_4aRmZ4wuIJP98RXXxaWaV1TozhaTVx14,73098
11
+ sky/global_user_state.py,sha256=s5g692T7yJO6AEjjVvXgqmpdsDf6XyCiA3BcgYz7T8U,68609
12
12
  sky/models.py,sha256=Eor-cT4D71QTimogcnJ5ey1G1PXK-OXN-snEtE8Uu_g,3152
13
13
  sky/optimizer.py,sha256=rcH6CVix1PJWWSwe1XWItfsmG8igwbKtRE5QVWRlpR4,63804
14
14
  sky/resources.py,sha256=8N32Kwlk3kEPaIE261Qa3hFFSWZYrVKeRRsc3Pfx1O8,105656
15
15
  sky/sky_logging.py,sha256=cMurxhFExKEFX1frcMR71Ti_s9Obg9WY30veVxsZB6o,7285
16
- sky/skypilot_config.py,sha256=3Tc-o9Xm08WIfRLuky1ZH-QtycVI65RGxfx09loRdzM,36532
16
+ sky/skypilot_config.py,sha256=vwSfEt6l6Ush9Gi58mKUNIeD8hsaFQ73r9MFA3oOJn4,37909
17
17
  sky/task.py,sha256=X3VCX66D1xfSK1S7yf9HGYftQXwz8HutG7pnWGl9fN0,72274
18
18
  sky/adaptors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
19
  sky/adaptors/aws.py,sha256=4caUTO5nxZQyDVPyQdoPljaF-Lz_Fa6NEnu3FfmLZd4,8633
@@ -34,33 +34,33 @@ 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=6ltCouZhaXJqv2Zh9nP_YCdHf10_oIRNzAA-XDiMmI8,7969
37
- sky/backends/backend_utils.py,sha256=AOuBC63KZQo5zy8fLnByy4OIGmrXiTwsz9g-XxFZ7Fw,145150
38
- sky/backends/cloud_vm_ray_backend.py,sha256=PHqBl7M8J7iWpYqdwL4nKDNsriQU5hoRdUBQS5jt8Ug,263968
37
+ sky/backends/backend_utils.py,sha256=-OLO8VWuOk5Cfg-_RZbWzKuQ60jT71kVSkKY9XFZ3Nc,145315
38
+ sky/backends/cloud_vm_ray_backend.py,sha256=eD5xNbfuBY3OCVTWLhZ9XJ24tJQPD8DZRDbzWi493Qc,264363
39
39
  sky/backends/docker_utils.py,sha256=_EhM6NStZDAwcegppQqExaB5iuSn1qL4xFFUqXAz2Uk,8392
40
40
  sky/backends/local_docker_backend.py,sha256=r84uhXCk7NK9hGW840KPKnrADd7mCerMwncxOzckHg4,17126
41
41
  sky/backends/wheel_utils.py,sha256=IUruJijm5854UGDdSayHbHzjjWRM46bATK1nSnK44xY,11071
42
42
  sky/backends/monkey_patches/monkey_patch_ray_up.py,sha256=76-y2fCaE3JINj8lEwHT1eirYzCbpD8O1ySsysuGu8o,3450
43
- sky/catalog/__init__.py,sha256=SRV7fsgTDOtidYxXYzyxgPAQTQR6fsIb2epVISCH_AU,14616
44
- sky/catalog/aws_catalog.py,sha256=VnFLKmr4nBuc5NXske7thEByJz_wOg9w5vuN6FtLMuo,13473
45
- sky/catalog/azure_catalog.py,sha256=r_ZBacLF7U8EPGlrMF-zVSwAGjjmh9K1e1MZ3-UPfXo,8126
46
- sky/catalog/common.py,sha256=gRjSvduvUWZdBb0yyeTL-yvHDxqVd23Ec7Sin3ZmQTs,28550
43
+ sky/catalog/__init__.py,sha256=ZcG1CgcNZsoSONpJHizPFuwANBdxRb1A0AVX91cT5Lo,14748
44
+ sky/catalog/aws_catalog.py,sha256=vjJYNiYiSPj8DS11q7kslIFa9aEsMTPPhLoly9DO9Fo,13729
45
+ sky/catalog/azure_catalog.py,sha256=MdCACMw0hxhRH0aWiHGJnleYeGjO6Fl0ePZ7CAUoSI4,8382
46
+ sky/catalog/common.py,sha256=JqkbSW0wEJNQvDJfYyd8aAgrmhwexH0ee6Eo542kv-0,28757
47
47
  sky/catalog/config.py,sha256=ylzqewdEBjDg4awvFek6ldYmFrnvD2bVGLZuLPvEVYA,1793
48
- sky/catalog/cudo_catalog.py,sha256=-abAvpRUmgaEKimEbqxX37_yTw_s3gT-eujSRVO3BZ4,4658
49
- sky/catalog/do_catalog.py,sha256=AduVQNnznUOgrBBw3nsOs_nCHxR2OBV9R4_AcRfO7IA,3683
50
- sky/catalog/fluidstack_catalog.py,sha256=9oVbg8JtSZX2YttkvJSAKgVMeNcyFVe5d1mZAv2UOck,5044
51
- sky/catalog/gcp_catalog.py,sha256=poKGGcrifQkUVztiHMghM0jZrffeLEQr-GVdr8nBcN0,26258
52
- sky/catalog/hyperbolic_catalog.py,sha256=uLMISqIZcDbIpT6TPa73Um9rP3sj3yYH_6OZR9FxzWU,4760
53
- sky/catalog/ibm_catalog.py,sha256=cZplLQPO7ndWrnU3A3kkHbIiHthugU-UoXTvNkPbXt8,4478
48
+ sky/catalog/cudo_catalog.py,sha256=bduyVq_W5NW0mjW7HR4oYzFnd7V0FyUjFp1Gf_-MEEY,4844
49
+ sky/catalog/do_catalog.py,sha256=dxNhi84kdGaHnpxUxeZaO_IoVDpmFGPO9YSRLw00h0w,3817
50
+ sky/catalog/fluidstack_catalog.py,sha256=387bOTlR3Bzj07uT1wvw3VSw3fVACQUi1hFoz4Abc0w,5230
51
+ sky/catalog/gcp_catalog.py,sha256=6LfpdBGMutc9lDfmpoKMCB8YaYy3KKcWOm7Xg4bkAkk,26514
52
+ sky/catalog/hyperbolic_catalog.py,sha256=vMs0HcTyFLBNpuDNdWYFwAIfnKh5TT34mY6CRRPHTFc,4946
53
+ sky/catalog/ibm_catalog.py,sha256=cU-PmiKyJY3ZCVKJzCaT_ClxJx785yZEg9JlK8vlWfc,4734
54
54
  sky/catalog/kubernetes_catalog.py,sha256=GpzLt2Y9a1DUo57Jkn-rcneIJPd38W3REZRxQHhfDSk,14100
55
- sky/catalog/lambda_catalog.py,sha256=bXuEv4i3zEoUSS-ynEDoiDCNgU-cyCEBYlkmi_Iuzhw,5287
56
- sky/catalog/nebius_catalog.py,sha256=I705d93iF60cSptlLcoJoNx-YcBuIkTCJfIjEbYOc2U,4492
57
- sky/catalog/oci_catalog.py,sha256=14siADGl-eaaPOLq5g186D_nqXTVItIwoMXlx1bTM5E,8565
58
- sky/catalog/paperspace_catalog.py,sha256=X3G5CxkSdMdSZiR8BSsQg8jdVGSKfsfH4cxAg0LyZEc,3774
59
- sky/catalog/runpod_catalog.py,sha256=icXtzPBtV0_5e2oTTVY0N7cYpi1_ipAkNT4hhIUWqcA,3733
60
- sky/catalog/scp_catalog.py,sha256=Wf-UvFYkwvx1ULBpdk1OAGL40KAhfzFrtRV8H7OtOU8,5180
55
+ sky/catalog/lambda_catalog.py,sha256=M5g23ILZo55CzSdNbEfB4AzAwvs6bPaJPEsMDGuGoqI,5543
56
+ sky/catalog/nebius_catalog.py,sha256=9TQ309xqe8svquwgNFPht6PHrQc_bMUVhVaEjllGjYk,4748
57
+ sky/catalog/oci_catalog.py,sha256=5SzhG7umqlWpBoEOYNDBhQFgLIF0H4gtoDwfZo7MkTI,8821
58
+ sky/catalog/paperspace_catalog.py,sha256=CBZeXFDTEwqFuv4ONm7_IUoSDsf38h3caS-5DW08D-M,3908
59
+ sky/catalog/runpod_catalog.py,sha256=R5FvDbs5PkibyG0sRs-MoiGdijKS02dbrJfqR7V7RPU,3919
60
+ sky/catalog/scp_catalog.py,sha256=PhsJ_-Ya3KL4MsE88X_WsfOUYmcMlPUuR3XjpLVjzA0,5436
61
61
  sky/catalog/ssh_catalog.py,sha256=v-H7bjGazkRpfrzUFAkXXKC2NQJJFqzjLdToDTJkbT0,5911
62
- sky/catalog/vast_catalog.py,sha256=xdCJFsEzKHayEix4UETrdHgipXw7S3o-u_fpj0D8YWI,4189
63
- sky/catalog/vsphere_catalog.py,sha256=ALa8L8FAkdmvQO0mg9DDhcb0PBTOenIJ7khBen4_fyA,4397
62
+ sky/catalog/vast_catalog.py,sha256=IEOg-TFgtmXjpr0agFx9X7He6k5juZWKduVUoXQ2IWM,4375
63
+ sky/catalog/vsphere_catalog.py,sha256=22LzkYdGwDZDCCK2YZXN2d_D-uhQ6aRQBm6vCwTUdBE,4531
64
64
  sky/catalog/data_fetchers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
65
65
  sky/catalog/data_fetchers/analyze.py,sha256=ftnrOceREmjimFWBLwhtF2aqOnOZNl6TmYxqD6eIhHY,2069
66
66
  sky/catalog/data_fetchers/fetch_aws.py,sha256=RTkqG2LE2YxRoK4K4p_hq-vA9tsPr9UoWIiNamGyLyI,23406
@@ -77,68 +77,66 @@ sky/catalog/data_fetchers/fetch_vsphere.py,sha256=Yf7tKzwJsQ_4f64IT1EAP108C1D3Rg
77
77
  sky/client/__init__.py,sha256=pz6xvVSd9X-gwqbsDL0E9QOojYqM0KAD0j-NCyCIF1k,38
78
78
  sky/client/common.py,sha256=qaSm4QJxk5wfmi1CkvxFtUFtmL-BoielGhjn-aFwuto,15511
79
79
  sky/client/oauth.py,sha256=sNJ_DMsSTcxluj5FeNQ2IafZJLImRFmCAZ79bXeABn4,2871
80
- sky/client/sdk.py,sha256=7sU2Rp3k4lqnfxIlBN7Go00UCzerXaAUHj01bsdu_LU,91019
80
+ sky/client/sdk.py,sha256=w2QwNTy1QeH0Tt7McaSqw6ndq2bMOpnIyHioXe14Iw0,91143
81
81
  sky/client/service_account_auth.py,sha256=5jXk0G6ufuW-SHCO7BEHQeTO0_2a8KfFmA63auXFRj4,1529
82
82
  sky/client/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
83
- sky/client/cli/command.py,sha256=OUoaicWKFcWG0W53AcmWqmMjzHIKcu0eLUrK--uGaBw,221024
83
+ sky/client/cli/command.py,sha256=LujjIN931iYlPRP8XnWo14lmNqWdxX7qfL6ylmkJhko,221913
84
84
  sky/client/cli/deprecation_utils.py,sha256=H_d5UyF2CekEoThduAzt5cihBO8hwKYMu0-Wqfbjv5E,3370
85
85
  sky/client/cli/flags.py,sha256=6IdS_G2lB1C6r8kJMzLVREY_qV50VHiSfWlmppVrWuc,11623
86
86
  sky/client/cli/git.py,sha256=dqSaJI1Ndv6RfKJa6HT6ednXr0j_pVlwSdh3XiQzB60,22018
87
87
  sky/clouds/__init__.py,sha256=tC9_Vi6GvVceWUi6uZvm7vXzBa0uH3CjRQ-QCYqdJMw,1624
88
- sky/clouds/aws.py,sha256=qjRiittsLXeE-DL3KfwlXxjCDryxAGaqnUsiv92sgeI,55402
89
- sky/clouds/azure.py,sha256=MR4tdgy47iA3DKkLjie10AzsxuMFAiQFo9DWtIWxvTk,32861
90
- sky/clouds/cloud.py,sha256=8_xzANWVczYxCRpsloYt7EwraWD5_NoUVZ5muxTqRK0,39136
91
- sky/clouds/cudo.py,sha256=iNgiCg2gYAfsmeFNG8xuO7ysUjXbNj45Q57QIfDimyU,13809
92
- sky/clouds/do.py,sha256=bO5NZ3nvHHTW_7oByUY4817U0fAXQ1t5F4P4qZYg5n4,12167
93
- sky/clouds/fluidstack.py,sha256=TkFHChRa7HH_-f5SDRgtFqKCmUCYcSfPCf4lpQH90do,13222
94
- sky/clouds/gcp.py,sha256=JuIJ8AbwiEjWrM7w4vWBe7qT0QBL1sRcSWP1jWLL2vI,68448
95
- sky/clouds/hyperbolic.py,sha256=DyWiV5RvfitVPCEajkEuqOxy4PAaCCCkmd7zA05G33c,11628
96
- sky/clouds/ibm.py,sha256=JQTJQ5wVxVSqH7O05GOld8X5iO16g6Idd_YmRAGZmB8,22567
97
- sky/clouds/kubernetes.py,sha256=Xu9jyJYchGHuaBqGzLBNvpG-PlMh98GcHmERZFwM_r0,54201
98
- sky/clouds/lambda_cloud.py,sha256=ZoKSseOGYlZFNhue2OK75dTU836AAE_pkuVod4yZX68,13260
99
- sky/clouds/nebius.py,sha256=RNPuZRXU-KTRyziNFp8rnE3DisTCQ35XWLaHeplpY7Y,21000
100
- sky/clouds/oci.py,sha256=Tos4hgXhYJ4kNkh6aa8_WsaxcD_JmbarR_1GltV-YrM,28158
101
- sky/clouds/paperspace.py,sha256=yvtD93p79ttpbL8bw8dlJcG-7pvqAGuUolSyHK-XsNo,11582
102
- sky/clouds/runpod.py,sha256=6fHlT75kYdPWZSfV-mhOvCxum-OkoTlD1iKYEAtlHP4,12973
103
- sky/clouds/scp.py,sha256=zIRlzUaPvuGVbtQKiaJ2tpnQeUrcaz78h8HTwLN4pfg,15823
88
+ sky/clouds/aws.py,sha256=SLr9drj0SUvGA_4PATkX7AIpf6aFvnoQTOfzb2soSt4,55817
89
+ sky/clouds/azure.py,sha256=7nlGetnmE9ikGhbfqqj5K-k8O4SWuZyw0SowKfEV424,33276
90
+ sky/clouds/cloud.py,sha256=sXJcV4fvJUq52SR6VYQWpNZ_Srq8zcyGIawsBwRXPl4,39364
91
+ sky/clouds/cudo.py,sha256=iv-SFnt-Wvk8ktcYpWJb21eCCSofVIra7YWnHleVCbo,14294
92
+ sky/clouds/do.py,sha256=JcZGikLtJKvKtkL4UQ8Up47JyZ9s1Ef1nhTXnbhfz70,12597
93
+ sky/clouds/fluidstack.py,sha256=hINTUq-UukqQvyI6wAH3WoT9M4EN7riQM35gvswWbaY,13603
94
+ sky/clouds/gcp.py,sha256=bOcVZ6dg3yYRyjANImRvEgVNxaP93q3BdgaE85AERLI,68863
95
+ sky/clouds/hyperbolic.py,sha256=MdTwcNn3m5Jqj9yp-PvsW37USo_pRpNO-HHt_zGneHY,12001
96
+ sky/clouds/ibm.py,sha256=6qGnx-lqQdwyTUB5agI3ML3BltBByZfsexYJpY1W790,22862
97
+ sky/clouds/kubernetes.py,sha256=39jTxIAN5uDarEKdVuSaqoayI2RWo0DHGXxNxtfKYNk,54367
98
+ sky/clouds/lambda_cloud.py,sha256=f2Zu36V06PDK_sfEJ6M4IaYOBv82GNe5dbasNwX2RQo,13555
99
+ sky/clouds/nebius.py,sha256=WMYRDxtw29GS88XQz2qB7gRr2N-FAB9-Q8ig3-p1NIg,21415
100
+ sky/clouds/oci.py,sha256=RXykRfajsicjm0ixAb5yHGd4GjeTBCU_hHs5R5GANiA,28573
101
+ sky/clouds/paperspace.py,sha256=ajfRxxi_SRif5UJtK_uw8R2XfsLRZ8_ZjkiGTP_ZBC0,12012
102
+ sky/clouds/runpod.py,sha256=s2HVSH1RJ9HtNEoMTd22BlUks3o9kaamfopNrvKlpy0,13388
103
+ sky/clouds/scp.py,sha256=opnQXi55DvD0ioTMVSnIeO0PJe0ZiF7jF9VNlrFDoyA,16118
104
104
  sky/clouds/ssh.py,sha256=PPs1FzhJ4DV-KsaTfvLii7pd80nkF-LXAlY8bjMN8RQ,9970
105
- sky/clouds/vast.py,sha256=x_yRS99R-Wi2qplLdFaRfENedSyANgyXffCTXhrmIF8,11912
106
- sky/clouds/vsphere.py,sha256=aia0MdK0UPa84JyhVNzht7BHfcs1BiJgR9i-crqVwMo,12930
105
+ sky/clouds/vast.py,sha256=4Sy6YkCrpRK1tg05Xb6ox451tZ2tOeHN57nIQPNMGT0,12327
106
+ sky/clouds/vsphere.py,sha256=lYu2RwQeJrNgYz5Dlw3GHkAfzuEwgFjzELW8Gj3_xPw,13360
107
107
  sky/clouds/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
108
108
  sky/clouds/utils/aws_utils.py,sha256=eT1GUR-OAfKS9CM0ZOARkhAYQ779GEGwPs9OXm6lwt0,2146
109
109
  sky/clouds/utils/azure_utils.py,sha256=NToRBnhEyuUvb-nBnsKTxjhOBRkMcrelL8LK4w6s4t8,3555
110
110
  sky/clouds/utils/gcp_utils.py,sha256=zpdibyvdROgDGqllcvQuST3pKqj6pzqX-gxCw-DsCfc,9873
111
111
  sky/clouds/utils/oci_utils.py,sha256=yv_Y9oM5WNCnOofu44aKyOPTZZdKfpFLCx3ewZ2VBFY,7994
112
112
  sky/clouds/utils/scp_utils.py,sha256=VGuccVO5uFGr8-yolWSoYrgr11z6cIeDBGcqkBzAyOs,18409
113
- sky/dashboard/out/404.html,sha256=XYTAFzaB5xqLMiEecJmeTIsu1h_L6SpKaT6V0LTacfM,1423
114
- sky/dashboard/out/clusters.html,sha256=51YJmAxL6JZ6O-7JJE5NF0qpMD3NGm0R069KuRrRn6M,1418
115
- sky/dashboard/out/config.html,sha256=7TqLOoA_7CFsWH3FTvrAER2f10Kd97XGQ7iSbZ6g5aA,1414
113
+ sky/dashboard/out/404.html,sha256=P4q2e6GomnZgmcgI2GWY28IUn0u4em_rhs-F3zn6cxA,1423
114
+ sky/dashboard/out/clusters.html,sha256=-qwfgvZ3XXbZ5bFliHXj7-lpX_EmB6SeRp0zLw1bdUQ,1418
115
+ sky/dashboard/out/config.html,sha256=iamNPHfykrhs5htAMKirikXQR9tqAVu0ziy7zREWxxA,1414
116
116
  sky/dashboard/out/favicon.ico,sha256=XilUZZglAl_1zRsg85QsbQgmQAzGPQjcUIJ-A3AzYn8,93590
117
- sky/dashboard/out/index.html,sha256=aqxRZlR-KY6omu_VqSQm7FtXYjXi00WbK4OtEUWRQcw,1407
118
- sky/dashboard/out/infra.html,sha256=ZvavCB_bhCCvuVjWCl_7cqVs8KKoB5bIuf4-PZdPBPE,1412
119
- sky/dashboard/out/jobs.html,sha256=XUyIvDGZ69WoCfx-h9Tgd1OcaZFeIV2INOstrdwbCgM,1410
117
+ sky/dashboard/out/index.html,sha256=FJERzla-g-u2h8JdS7i3EkMg-BHEoqmj5v2TFakWPYM,1407
118
+ sky/dashboard/out/infra.html,sha256=zC9-YXP9UKVm7s7bOs79M1mtmfBDnl_nq1td3KxEabE,1412
119
+ sky/dashboard/out/jobs.html,sha256=tP4d1-lt3Fk7v8W3bpMqUHjoWnWJPVCVKNWt7Q13was,1410
120
120
  sky/dashboard/out/skypilot.svg,sha256=c0iRtlfLlaUm2p0rG9NFmo5FN0Qhf3pq5Xph-AeMPJw,5064
121
- sky/dashboard/out/users.html,sha256=wWAqMsjT0IVS8KxfhD9V1UtA2v6DVkgXAgFOeQxUE7E,1412
122
- sky/dashboard/out/volumes.html,sha256=zf8LoLkoIh0mQj5GnuKEkSGH5k9Ln_SkFRK5-Dsno8M,1416
123
- sky/dashboard/out/workspaces.html,sha256=z6hw_raWSruVwuEwuScLMNZyJC0PW1h_T2zg9raPqgI,1422
124
- sky/dashboard/out/_next/static/FUjweqdImyeYhMYFON-Se/_buildManifest.js,sha256=Zd6nUtoIdXHqlFK9Xi-CqgATRVFGPuzYzeMNcxHNqwo,2235
125
- sky/dashboard/out/_next/static/FUjweqdImyeYhMYFON-Se/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
126
- sky/dashboard/out/_next/static/chunks/1043-734e57d2b27dfe5d.js,sha256=fjfUx62j2YxweaOdQJ4PmF2qmpBYRYN4TEqZ8i7SJmg,18286
121
+ sky/dashboard/out/users.html,sha256=pxmdX33joU8YFH6vgUchC3inJX32EO5-bpspwCoWKqk,1412
122
+ sky/dashboard/out/volumes.html,sha256=x9hPMY3fpozLAe7B1JLYpuikG1VTPTnw0az6X6FYxZw,1416
123
+ sky/dashboard/out/workspaces.html,sha256=DUJMFtehtckNZ_py90ema4gsHlftt83MJOqzrtSyXK4,1422
124
+ sky/dashboard/out/_next/static/chunks/1043-869d9c78bf5dd3df.js,sha256=bAxynBdZtwL6IUsmByq0m47nF_VnO1lsMN9Xjdrp1GI,18328
127
125
  sky/dashboard/out/_next/static/chunks/1141-d8c6404a7c6fffe6.js,sha256=ghpPWK4ZTu0gPqZR-UU8tHrwdmZuW4rVZ-cqdUjf_oA,17818
128
126
  sky/dashboard/out/_next/static/chunks/1272-1ef0bf0237faccdb.js,sha256=VJ6y-Z6Eg2T93hQIRfWAbjAkQ7nQhglmIaVbEpKSILY,38451
129
127
  sky/dashboard/out/_next/static/chunks/1664-d65361e92b85e786.js,sha256=hMjNU7ss4lTqwShmHJ45jVOjTSdq-EI04DeVMnTRvRc,6557
130
128
  sky/dashboard/out/_next/static/chunks/1746.27d40aedc22bd2d6.js,sha256=UL_dnIQxaOjmBlJhFuJqn4LeavYAdp_AA5o76629Xis,13121
131
- sky/dashboard/out/_next/static/chunks/1871-76491ac174a95278.js,sha256=v4ZxUUQ_ntzWvPLTl55PD6rpFgwQaL7HEqmekVIw_3M,19782
129
+ sky/dashboard/out/_next/static/chunks/1871-a821dcaaae2a3823.js,sha256=wqgTJSbAS4hWwjY51qTLiY1NNh5jO2HLPbRPzmHWxZI,19465
132
130
  sky/dashboard/out/_next/static/chunks/2544.27f70672535675ed.js,sha256=93-1mEA2lUkeOp5V7MPh2e6SFTLd_N0exVSiCBnNf9s,307
133
- sky/dashboard/out/_next/static/chunks/2641.35edc9ccaeaad9e3.js,sha256=2yNFhFmkhE_hGjD7mteo2bSn6fCbyFLPnepakrTjh0w,48655
131
+ sky/dashboard/out/_next/static/chunks/2641.5233e938f14e31a7.js,sha256=ZcJoJm4bYpG5xr2MywkOl8ft43V-0v5WAID_zYxBbDU,48745
134
132
  sky/dashboard/out/_next/static/chunks/2875.c24c6d57dc82e436.js,sha256=af3HVjuqsxD6wZyPzEDEb7FMq02fb1XB7O9mobwXTos,10053
135
133
  sky/dashboard/out/_next/static/chunks/3698-9fa11dafb5cad4a6.js,sha256=WogAxkOj2hCCvWBODLEG9CwZk34_IW4jfW9lpL1DCUA,7784
136
134
  sky/dashboard/out/_next/static/chunks/3785.95b94f18aaec7233.js,sha256=nKS_ShG6pkesTYPtHQVmqGI_AusbCdftWS_a_TnxiGM,4591
137
135
  sky/dashboard/out/_next/static/chunks/3937.d7f1c55d1916c7f2.js,sha256=EoRS8IfcAMrWLz9Pli9csCTez8gG-FupfQv2SKBY6RE,54557
138
136
  sky/dashboard/out/_next/static/chunks/3947-b059261d6fa88a1f.js,sha256=jRCwpxWd7Gy-wU3-CosmwiIZdKAHHl6S67k-5wj1w38,10019
139
137
  sky/dashboard/out/_next/static/chunks/430.ed51037d1a4a438b.js,sha256=vczgwkklvp5g6SroggeUauhjstjg2oPR0fmpTS9t5Qc,925
140
- sky/dashboard/out/_next/static/chunks/4725.4c849b1e05c8e9ad.js,sha256=NOkZDUb1wPV7qhwfvxtB7O0Od6y1Rc0MXW_BpV4zJSg,14946
141
- sky/dashboard/out/_next/static/chunks/4869.bdd42f14b51d1d6f.js,sha256=etphguNw5i-m8r5qIqNcR70UQATzz1q5Z-7FCkyiNxc,17785
138
+ sky/dashboard/out/_next/static/chunks/4725.66125dcd9832aa5d.js,sha256=5PKF2FE2qMr19C0x7CK5D7243prTLKohfplvUdZ4Gpw,15036
139
+ sky/dashboard/out/_next/static/chunks/4869.c7c055a5c2814f33.js,sha256=3RtPoVOM17-ocRB_SgcSuoqgvOqUdNpzcgypcqov13M,17623
142
140
  sky/dashboard/out/_next/static/chunks/5230-df791914b54d91d9.js,sha256=jy8KepJn43jZhaJUCF2PSK8jJjIEpNO2fMXVQIPQliY,22584
143
141
  sky/dashboard/out/_next/static/chunks/5491.918ffed0ba7a5294.js,sha256=zi9QGpZSoMnyZa9F8JB13haVGnx4gI88520-vdp9AXc,8487
144
142
  sky/dashboard/out/_next/static/chunks/5739-5ea3ffa10fc884f2.js,sha256=3X5yHbRwhHhC96Dcx3-jV__MFmMSjar6ZvmYFzKljlE,65357
@@ -149,8 +147,8 @@ sky/dashboard/out/_next/static/chunks/6990-dcb411b566e64cde.js,sha256=tgaAxMIKhf
149
147
  sky/dashboard/out/_next/static/chunks/804-9f5e98ce84d46bdd.js,sha256=yC-hYtK6OPB30EDHw7JG50eDF5-CufVV-lCg4__Fg-w,11465
150
148
  sky/dashboard/out/_next/static/chunks/8969-8e0b2055bf5dd499.js,sha256=GGx0HHtgZiTOQ82wTi6kTvykPD5b1SHG8jSC2hs4Nrg,10038
151
149
  sky/dashboard/out/_next/static/chunks/9025.133e9ba5c780afeb.js,sha256=st4-ZeYt5iVYkXIlWhNy4Uq638FPLOUjQh7O5tjgw1U,10635
152
- sky/dashboard/out/_next/static/chunks/938-6a9ffdaa21eee969.js,sha256=2nR5pla_QWFUVhhu_liYREnQC_dIYnZIpisq4kRm03Y,25826
153
- sky/dashboard/out/_next/static/chunks/9470-b6f6a35283863a6f.js,sha256=CPmGRW2grevoF93p_jmh9tgO2X15tldm-_xFa4-qXXU,7887
150
+ sky/dashboard/out/_next/static/chunks/938-63fc419cb82ad9b3.js,sha256=438drtPee6wM1bEdzeS5GTvIYSBDcmJJ7L0JTZx02Sg,26605
151
+ sky/dashboard/out/_next/static/chunks/9470-8178183f3bae198f.js,sha256=uTzw0T4qUaWEytPKTVG4xb_BE9HsdiMokPQiUuxtMnk,12190
154
152
  sky/dashboard/out/_next/static/chunks/9847.46e613d000c55859.js,sha256=T9cr8tmlxojVEYt2ARei33ByVWlE8VJS5A5MmaEucNM,39848
155
153
  sky/dashboard/out/_next/static/chunks/9984.2b5e3fa69171bff9.js,sha256=RYensjVzBQz76dmSe49yIXVVSDIU5rRn0sR9RGyEQuk,42094
156
154
  sky/dashboard/out/_next/static/chunks/fd9d1056-61f2257a9cd8b32b.js,sha256=49S_KmXpB4D3U299iKHRbYnFxJnoeN36awxwhBbUn8U,172832
@@ -158,8 +156,8 @@ sky/dashboard/out/_next/static/chunks/framework-efc06c2733009cd3.js,sha256=XKYUV
158
156
  sky/dashboard/out/_next/static/chunks/main-app-68c028b1bc5e1b72.js,sha256=zSukg-WO1Xy-B2xEIIGHXYApy2KOY9xWHcLqAYQvF3A,115883
159
157
  sky/dashboard/out/_next/static/chunks/main-c0a4f1ea606d48d2.js,sha256=DPLM6ccDgTnITBgsqZPN3gmcI2szGCi9b_60PJZkTJQ,109885
160
158
  sky/dashboard/out/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js,sha256=6QPOwdWeAVe8x-SsiDrm-Ga6u2DkqgG5SFqglrlyIgA,91381
161
- sky/dashboard/out/_next/static/chunks/webpack-6b0575ea521af4f3.js,sha256=7o6rpDugRBQMO9xLwhG5gQSnvlpuxL2naGR5cDNSTpY,4655
162
- sky/dashboard/out/_next/static/chunks/pages/_app-771a40cde532309b.js,sha256=-Fb7hImRuSHVFvnqq2sxp4B5V-KezsPj24AdJWaDP28,7587
159
+ sky/dashboard/out/_next/static/chunks/webpack-26cdc782eed15a7d.js,sha256=hd1guUP3nQpD4yUFYpMTSa8buVIUMJOBqzhfS9Gkqjk,4816
160
+ sky/dashboard/out/_next/static/chunks/pages/_app-507712f30cd3cec3.js,sha256=UNH9T5TS5BEnF9ZRRECuqeIxeDLZfwYnQzkHjaVpPbA,9912
163
161
  sky/dashboard/out/_next/static/chunks/pages/_error-c72a1f77a3c0be1b.js,sha256=D2OpMaqpdtCPyq6iPhZHuF2ekyMjleRchSNCLR6fqps,250
164
162
  sky/dashboard/out/_next/static/chunks/pages/clusters-102d169e87913ba1.js,sha256=wzNhCoIzkSiOuaTm9dGBVIYYIYWf4COJOklBr1aaLxE,859
165
163
  sky/dashboard/out/_next/static/chunks/pages/config-a2673b256b6d416f.js,sha256=DYGB9Imk5FCe9uF7M_4nolQ0KbyaB9OHtI-Btilhk0I,787
@@ -175,14 +173,16 @@ sky/dashboard/out/_next/static/chunks/pages/infra/[context]-8b0809f59034d509.js,
175
173
  sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-c5b357bfd9502fbe.js,sha256=TK4wkQbOV1vm93WoRgfc_vyUl6Ov_s4fZIfCKEA1n2w,26029
176
174
  sky/dashboard/out/_next/static/chunks/pages/workspace/new-5629d4e551dba1ee.js,sha256=K9tqKHcB2kiSHTAddLaM2oL1PzmqZNTdLDOuNzCaJNM,765
177
175
  sky/dashboard/out/_next/static/chunks/pages/workspaces/[name]-7c0187f43757a548.js,sha256=FsoenC6VRkPLE29KkLd4nlSq2qociH4zFexYMxgetOM,1530
178
- sky/dashboard/out/_next/static/css/219887b94512388c.css,sha256=e_2-i85AX4kLpT-t-PuzH7GzHJ7VOzRZDfAz64JRQQY,45397
179
- sky/dashboard/out/clusters/[cluster].html,sha256=NOlJFAThG1djP0u3zg_MfnfsXBpvpxY_RZYea1RSPi4,2847
180
- sky/dashboard/out/clusters/[cluster]/[job].html,sha256=BqpEjd4XTf53oAh7G8JLKXW4Rt7CBP-ikSXrO69RYSI,2160
181
- sky/dashboard/out/infra/[context].html,sha256=jG6WGRq1fhtqcwLF3-ZEZKKE7Cm2mJDTkFjNvOJKCn8,1436
182
- sky/dashboard/out/jobs/[job].html,sha256=j0_WLcA47OozWLaYABsA5wXKWARBW6CRQeJ7zXWqO4U,2304
176
+ sky/dashboard/out/_next/static/css/5122cb0a08486fd3.css,sha256=EhMhKxF5whVmQD5tt5c-WvkIXHuTpvg7e1w1h82gjF8,45924
177
+ sky/dashboard/out/_next/static/pTQKG61ng32Zc7gsAROFJ/_buildManifest.js,sha256=oL3uAI9QGuLQGkobPZv0aYJPsohDW_wRZe2YWYQIySQ,2235
178
+ sky/dashboard/out/_next/static/pTQKG61ng32Zc7gsAROFJ/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
179
+ sky/dashboard/out/clusters/[cluster].html,sha256=Lg7oSPY5V2H_A7OSMHd1iMGyYvjEs1ZPLBZML7DoGJw,2847
180
+ sky/dashboard/out/clusters/[cluster]/[job].html,sha256=OABCqaIYsS3iuLI7jlufGeZqlkHzMwZ8Kp22OHEr9Cw,2160
181
+ sky/dashboard/out/infra/[context].html,sha256=-i3NTAkIDHaoHGlwZWBgz_XPDLhOoAEIeIb4gFSLUUg,1436
182
+ sky/dashboard/out/jobs/[job].html,sha256=NO0iWZmr2hq2QpByy3hV2gI7rK0AIKa_3eJjxk8CVks,2304
183
183
  sky/dashboard/out/videos/cursor-small.mp4,sha256=8tRdp1vjawOrXUar1cfjOc-nkaKmcwCPZx_LO0XlCvQ,203285
184
- sky/dashboard/out/workspace/new.html,sha256=R0T2-jo25FcTvDmNMUo3hhBRsOq5CAhZ_HhjswKDBOY,1428
185
- sky/dashboard/out/workspaces/[name].html,sha256=-XmOMNzNrvEWhXbBt98R1DWYaJvtEVOqmEfHxlYPADE,2845
184
+ sky/dashboard/out/workspace/new.html,sha256=nfFJKv7Fij66dZuLpC_TGZRWaKpUn5bECrDzMMTKc6Y,1428
185
+ sky/dashboard/out/workspaces/[name].html,sha256=-AeeQKKnRiaSDeU06y-sTyGKDMvqENQ4fRjSM1pmh0c,2845
186
186
  sky/data/__init__.py,sha256=Nhaf1NURisXpZuwWANa2IuCyppIuc720FRwqSE2oEwY,184
187
187
  sky/data/data_transfer.py,sha256=N8b0CQebDuHieXjvEVwlYmK6DbQxUGG1RQJEyTbh3dU,12040
188
188
  sky/data/data_utils.py,sha256=CNYPM963qby5ddW0DZNbhiWXkqgB9MHh_jrC5DoBctM,33437
@@ -194,8 +194,8 @@ sky/jobs/constants.py,sha256=N7Bw_sSCL8cVd0NmKGXvAhyclR8Y-gJAair597umVo4,3305
194
194
  sky/jobs/controller.py,sha256=kKnBMQs2XRg1TN80ToVWFwVdwKTuFE4TjQapb3V0iUI,36073
195
195
  sky/jobs/recovery_strategy.py,sha256=a9A4W-6U3KU-pjkWiFpIdgTHC8W26-jYrmi4vzU9iOg,28818
196
196
  sky/jobs/scheduler.py,sha256=b3RAjEzCXyoikh_BcmmGjoZ9ZeXr-tBnXoLFctt95ko,14375
197
- sky/jobs/state.py,sha256=5yTPI-8NITu1eQwKA6FACPOrhK27t93Bc9K1mQUkVBI,65990
198
- sky/jobs/utils.py,sha256=MvCTjR6Bthxs41b010UowWvlnC_a9qph6YSdPbE_RNM,72474
197
+ sky/jobs/state.py,sha256=0cI7kSoXa5K-uky-TmbL7S4ldOXsn1yR5Rk6QbBOSaI,62586
198
+ sky/jobs/utils.py,sha256=bYBtRY8Tu60t0gH7Z0FK7yntXoEHQhsO6IdNr_FDAmA,73283
199
199
  sky/jobs/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
200
200
  sky/jobs/client/sdk.py,sha256=SSdXVvaGCX5DjCfmMf6bSXOH1Dzk-a3bNhr7qNyHSuU,11335
201
201
  sky/jobs/server/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
@@ -306,22 +306,28 @@ sky/provision/vsphere/common/service_manager_factory.py,sha256=YkvfHiRXFK_Nb406z
306
306
  sky/provision/vsphere/common/ssl_helper.py,sha256=whhJKsvIQNaGc7ggCNTv5ARkB0fZkHDbzAW6WlAr1cs,949
307
307
  sky/provision/vsphere/common/vapiconnect.py,sha256=piU29ZfdYCJQMV5n-5J0EQ8G56AWOFKQgoX1Q1Rsusg,3088
308
308
  sky/provision/vsphere/common/vim_utils.py,sha256=TjDgxIzV5Iuc5j1aFNL3NpaOwS0KKXhEUEwq7dzQT-s,17849
309
+ sky/schemas/db/README,sha256=M93NBw29groxXu-Gy7sgqSyxpppXpRBbXxEXANLhVCo,122
310
+ sky/schemas/db/env.py,sha256=T-2a00Z9RcaIqcMu90R-RNA_lCutsWBRopDy4LQFnoM,2918
311
+ sky/schemas/db/script.py.mako,sha256=04kgeBtNMa4cCnG8CfQcKt6P6rnloIfj8wy0u_DBydM,704
312
+ sky/schemas/db/global_user_state/001_initial_schema.py,sha256=I7swXDQq_uw0GYPIx94V0xRf2tKKz_PmXGk7ELVYKUg,6162
313
+ sky/schemas/db/skypilot_config/001_initial_schema.py,sha256=haCRylxVcAbn_hWfWkRuyA3FGubr9bu98vhb8aCVrPU,697
314
+ sky/schemas/db/spot_jobs/001_initial_schema.py,sha256=-V4PUL2ajbbnksAB2rxmCfWvhu0EsQv6i5oNE6zUkDU,3755
309
315
  sky/serve/__init__.py,sha256=jlwErB4VeKh0wp9FkTIQoE5JQvc6KIB-vrqhtsJ2q-E,1810
310
316
  sky/serve/autoscalers.py,sha256=kHEL3U2bW50NByiJhv5j64JKjgxKtHwO5dswlJQ1uEA,32698
311
317
  sky/serve/constants.py,sha256=TdavR0D3uNISK9GXasZhBvIp3wBbRKifRrN9cWOzXDU,5002
312
- sky/serve/controller.py,sha256=TBp0PtkSWGWzNTNnWyuetg_cGXnup7ygamS4K-b9L5M,11926
318
+ sky/serve/controller.py,sha256=F_gnmFpbLk7bzZhkCAOICGtRHoMCuxw-8PvHpzW7Ixg,12082
313
319
  sky/serve/load_balancer.py,sha256=oQonisWJj2nsAcSSdN_mdiHylVR1IGJXY9aB_AcRokc,14150
314
320
  sky/serve/load_balancing_policies.py,sha256=Ssr0GtHKyzzAIEOUAMCLvND5rapmrpxI-OQemf3dgxU,5177
315
321
  sky/serve/replica_managers.py,sha256=x8c1tRIQMN4dVzVUHJpZYSEBtEjOCbcwmqZ_GkVzpnc,64785
316
- sky/serve/serve_state.py,sha256=9wLvHTkq3O3NuCpmaGhjlO6sYJdevbYsDzMXwoa1MTQ,22587
317
- sky/serve/serve_utils.py,sha256=ErpByT7SL_z7thgp0kmdXO3dm4qGdVJ8-Vbkj3-bvLw,46747
322
+ sky/serve/serve_state.py,sha256=_VinToQp_E0a48qnBvQm5BBlqGlAvuylsGMhxYoKp-w,22590
323
+ sky/serve/serve_utils.py,sha256=EZ5BlkoNDrAsvNY7njlUnLAuncEhkBUJUxwR1gmCuR8,50443
318
324
  sky/serve/service.py,sha256=f-Lpxl9YtIprcE3Wr0JUslSvEDylNFe-fyaKIJeKb2c,14315
319
325
  sky/serve/service_spec.py,sha256=t7wh7sx68DKjPyrk1Ub-c1ZjkWD8ehG-YOj9CNdC9qQ,18552
320
326
  sky/serve/spot_placer.py,sha256=auRlYZNg8uIW-lxiirxpDP-iIaJtkrhesm6OGMgwPq4,11288
321
327
  sky/serve/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
322
- sky/serve/client/sdk.py,sha256=NNuxbuJ_F8RLdi9ZaEUhd3JadfRkVoP7DqDHdsWatOM,15057
328
+ sky/serve/client/sdk.py,sha256=PB3U8SgUukBJ3BramFbxeJHHWdjyysqG9V9hIMW9bRE,15184
323
329
  sky/serve/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
324
- sky/serve/server/core.py,sha256=zKvDnq6W9CftH5ljmNMdTDGsLO3mzbFgrMBMCSua4dM,41662
330
+ sky/serve/server/core.py,sha256=-djglmHVX-A3XTf0A-4pekoQ7-_Me7KzFnQjK8gaDDY,42080
325
331
  sky/serve/server/server.py,sha256=A9K37a0nQgZeN3eKWv62Oh2C5TSAReTZ9pHmztqlI-c,4396
326
332
  sky/server/__init__.py,sha256=MPPBqFzXz6Jv5QSk6td_IcvnfXfNErDZVcizu4MLRow,27
327
333
  sky/server/common.py,sha256=wXLyxfVdu93CRdr6QAoLLruvfLFXpH9GDmQtjcP2vgo,34746
@@ -339,27 +345,28 @@ sky/server/html/token_page.html,sha256=eUndS5u1foL9vaWGPRTLMt7lCzD1g0wYJ2v_EeeFz
339
345
  sky/server/requests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
340
346
  sky/server/requests/event_loop.py,sha256=OhpPbuce65bbjpGRlcJa78AVnYSm08SzFKt70ypCUuQ,1211
341
347
  sky/server/requests/executor.py,sha256=_BaE4QDTowLyaSyWCFVX_GqfrHknNRWuBexpDPMEdes,27100
342
- sky/server/requests/payloads.py,sha256=UXulzuo5dY1uQTemYhAhYR0AL92AW6vxCdpI6ZgsxXk,23374
348
+ sky/server/requests/payloads.py,sha256=bT_KuagxOw8l2e6o9FNl8VCqemIZTDmpgzTw8kuEKLI,23436
343
349
  sky/server/requests/preconditions.py,sha256=uUQjzFFHf7O5-WvBypMzqViGmd1CXksbqrrDPmY_s_Y,7178
344
350
  sky/server/requests/process.py,sha256=UpJp5rZizNMFRCNRtudFSjbcJhFarFbtAGDWI9x_ZyE,13197
345
- sky/server/requests/requests.py,sha256=jp81kMjXkBVqQK2v4GtLQstXvMR0EOPOOsn88kYJh5g,28670
351
+ sky/server/requests/requests.py,sha256=oktfLJTNM8kem2lRkVpPgj_GMRbjEHrdaHjT4w2SDY0,28673
346
352
  sky/server/requests/queues/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
347
353
  sky/server/requests/queues/local_queue.py,sha256=X6VkBiUmgd_kfqIK1hCtMWG1b8GiZbY70TBiBR6c6GY,416
348
354
  sky/server/requests/queues/mp_queue.py,sha256=jDqP4Jd28U3ibSFyMR1DF9I2OWZrPZqFJrG5S6RFpyw,3403
349
355
  sky/server/requests/serializers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
350
356
  sky/server/requests/serializers/decoders.py,sha256=qphN79pRAaaitCbcsZIrslphgZn1iYndl6JnmergEe4,6361
351
357
  sky/server/requests/serializers/encoders.py,sha256=4bQV5yTg8RTPT_HkRyQpjaBY_uUvBJ4NH189W0-6Pi0,5578
352
- sky/setup_files/MANIFEST.in,sha256=D-wsZ2Dhl8fiKJaIL38IITR1NkbpwFRX5hT0sS4jJyc,667
353
- sky/setup_files/dependencies.py,sha256=iUrV_-10N1d6ZP2J0yBytToS6jxfql0S2kWuzXdlI-I,7190
358
+ sky/setup_files/MANIFEST.in,sha256=nLOrTP5smPxVq89UZrn-Xr5pQIHln1M42LcPnkDMF9M,722
359
+ sky/setup_files/alembic.ini,sha256=uldG3UkMFvZiee9CPlhg8SQAEr4JfluzEybop9DosyU,5087
360
+ sky/setup_files/dependencies.py,sha256=9GL_M7EoLUjQwEU2WNXA6_4uazut6CAsr7UsLG7i11o,7205
354
361
  sky/setup_files/setup.py,sha256=GTXvAi65S4_TSLhQ1GzkmaWf_yzciHiaxMbZumcTtKU,7522
355
362
  sky/skylet/LICENSE,sha256=BnFrJSvUFpMUoH5mOpWnEvaC5R6Uux8W6WXgrte8iYg,12381
356
363
  sky/skylet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
357
364
  sky/skylet/attempt_skylet.py,sha256=GZ6ITjjA0m-da3IxXXfoHR6n4pjp3X3TOXUqVvSrV0k,2136
358
365
  sky/skylet/autostop_lib.py,sha256=kGUnHm-jpF4zl3UJfB-4pnoldWpnVeR96WwYGSw7em0,4630
359
- sky/skylet/configs.py,sha256=kV490lonYVVQMDRO2haizlt9fpQmqBIpwBScn14zS78,2132
366
+ sky/skylet/configs.py,sha256=nNBnpuzoU696FbC3Nv0qKVSDuTw4GAbr7eCcg0_Sldo,2135
360
367
  sky/skylet/constants.py,sha256=Axmn0vsjmEPmoa6nOda9TIpVdHINxO5qzzAisBml1mA,23486
361
368
  sky/skylet/events.py,sha256=pnV3ZiwWhXqTHpU5B5Y9Xwam_7FQDI6IrxgSx7X_NVA,12743
362
- sky/skylet/job_lib.py,sha256=YpjjUK836UokbDZhNjD5rg9SSKy8d9XnAb_3OgJD7cM,49163
369
+ sky/skylet/job_lib.py,sha256=nzXZffHs2jzGlH8LcgmZO976Qf2aPR0NSos2Vfi0cRM,49166
363
370
  sky/skylet/log_lib.py,sha256=9nLOhevnM668itQyVyPSoQHKfZ2MWm_FwXPxK28X0oM,23201
364
371
  sky/skylet/log_lib.pyi,sha256=6LXFSpyW4lMHAELKllvK73B3538JjSo9lPw30DEuO0o,4542
365
372
  sky/skylet/skylet.py,sha256=mWmqCvxSlfdVU_L8NL6P52jmCt3smd8K0HdyNBfMPeI,1234
@@ -412,7 +419,7 @@ sky/usage/constants.py,sha256=mFrTgrFIfFf4kpcl-M1VDU7_moD5_mJazUJTUDrybms,1102
412
419
  sky/usage/usage_lib.py,sha256=PEjQH7do7lrcGMaIqW6bFQvNIFo-ipoF7L0xlt3vmDg,21427
413
420
  sky/users/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
414
421
  sky/users/model.conf,sha256=nPAaMai2fc-nlnEDTfW5Lyw6vgCcOS32BSms4aFOHoY,259
415
- sky/users/permission.py,sha256=tK8Lm5pj9OVdpKEkGxKPxuAXJJbC3VkzZN1brDvphiA,15628
422
+ sky/users/permission.py,sha256=fIJX2hOi55j4u0C557297_XaBUnyBncEjn7PO-Y6LyY,15631
416
423
  sky/users/rbac.py,sha256=3ZWukXo85u6zWbPmHcPsF9EtZ3cd_51PLZYf2h-7uAM,3636
417
424
  sky/users/server.py,sha256=59I2WITevRqvo-kEzmP0p0qyEYATnUQXTRvA_81xZYM,27922
418
425
  sky/users/token_service.py,sha256=78Xgm6rkd5M6IMMUekAp2YNLms4teNNvVDPfHh_5jts,7804
@@ -425,14 +432,13 @@ sky/utils/cluster_utils.py,sha256=s6DFRXktv6_gF_DnwDEXJ7CniifHp8CAPeGciRCbXgI,14
425
432
  sky/utils/command_runner.py,sha256=envbCPiFAD6LnZHhCN07VCdDh1LzbPFbXHoc8j2uxOI,48447
426
433
  sky/utils/command_runner.pyi,sha256=IS3qeCTgWys94KhaHx3S2Pty8qDWn_zFht7bgDLJFcw,9593
427
434
  sky/utils/common.py,sha256=nTg-mjNu0diZjs2UvyiMc84Tu1ZonRLRAmfqFIP1TtY,2242
428
- sky/utils/common_utils.py,sha256=3cBop3bbR11XXsaxgH8oWK9YR8_F_cwvR7904LsRNU0,36285
435
+ sky/utils/common_utils.py,sha256=DXJxmM7--fCEchOMowC7B5UhX6ljZe8NOXVBHjhSnag,39054
429
436
  sky/utils/config_utils.py,sha256=RkTIbZaPbsvQjtj_4R7p4Jz6vIbdkvD-QPs1O5jjiHo,12003
430
437
  sky/utils/context.py,sha256=yEGvcKr9fKEeoAnNKiXDiky7dlLOChFdZYXGr0EeQ9g,9997
431
438
  sky/utils/context_utils.py,sha256=cby-QPmnGObjIE4K7eZ_dkWZdUo7YJUmnJr5oKf_v54,6712
432
439
  sky/utils/control_master_utils.py,sha256=iD4M0onjYOdZ2RuxjwMBl4KhafHXJzuHjvqlBUnu-VE,1450
433
440
  sky/utils/controller_utils.py,sha256=JmO9mML9sfs27crvfSNla0SQnHGDskqkuPDLyRkeq-Y,55508
434
441
  sky/utils/dag_utils.py,sha256=lqzmSPgmNGmil_7pcVdyf4a4BSC2rMcTAIKazSX_3qk,8514
435
- sky/utils/db_utils.py,sha256=pASuL-B_t-e7aS7wSgCW_EyqyRQqwUdHKvXC1dCgSkk,5704
436
442
  sky/utils/env_options.py,sha256=PaQGjem9nK4R8Y_YvCLkNZ891wWiS3t50hE8q2HLis0,1922
437
443
  sky/utils/git.py,sha256=rzGuJ1PEjAk8jG2X9a9QXSVJ-UqiSSNeRsHvr4bG7zI,278
438
444
  sky/utils/git_clone.sh,sha256=hXOz7i1MCYl2IwMdKnFYhinhh8Jaf5a1Qwd65cePQYc,17790
@@ -456,6 +462,9 @@ sky/utils/aws/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
456
462
  sky/utils/aws/get_default_security_group.py,sha256=LPzz5133ZUMbzDD3iqqACL9PdlgqiQR5hKZIn-D1zhw,228
457
463
  sky/utils/cli_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
458
464
  sky/utils/cli_utils/status_utils.py,sha256=Lxf_dQu_VTKRWCI86fDi0NiLjUk7IUCEc4jMo0dKjQA,15733
465
+ sky/utils/db/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
466
+ sky/utils/db/db_utils.py,sha256=Mee-36jZbG0T4qeJrWu8mamJd8qGBC95dQ2AG6ejt_8,7968
467
+ sky/utils/db/migration_utils.py,sha256=jjTVjy1vx-mK-v0tRiVKHevqqDZSFATD17kR_2X7wNw,1940
459
468
  sky/utils/kubernetes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
460
469
  sky/utils/kubernetes/cleanup-tunnel.sh,sha256=rXMXuMfyB9bzKjLvXdMCjimDVvdjGPMXuqeo2ZNx9OA,2244
461
470
  sky/utils/kubernetes/config_map_utils.py,sha256=ucdQGp1XHliZxoCFWU8EMJ2NKfUEs7t-ygw-J61It_w,4760
@@ -485,9 +494,9 @@ sky/workspaces/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
485
494
  sky/workspaces/core.py,sha256=MkQoVqWN67tf4VRq284U9vgAw4lwb_cpUfwHQT4V9Ow,16598
486
495
  sky/workspaces/server.py,sha256=Box45DS54xXGHy7I3tGKGy-JP0a8G_z6IhfvGlEXtsA,3439
487
496
  sky/workspaces/utils.py,sha256=IIAiFoS6sdb2t0X5YoX9AietpTanZUQNTK8cePun-sY,2143
488
- skypilot_nightly-1.0.0.dev20250718.dist-info/licenses/LICENSE,sha256=emRJAvE7ngL6x0RhQvlns5wJzGI3NEQ_WMjNmd9TZc4,12170
489
- skypilot_nightly-1.0.0.dev20250718.dist-info/METADATA,sha256=ZgqGwiuDw-xfE66WylbXtKWQfyI-l-JmvW3xyU-qyIU,19009
490
- skypilot_nightly-1.0.0.dev20250718.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
491
- skypilot_nightly-1.0.0.dev20250718.dist-info/entry_points.txt,sha256=StA6HYpuHj-Y61L2Ze-hK2IcLWgLZcML5gJu8cs6nU4,36
492
- skypilot_nightly-1.0.0.dev20250718.dist-info/top_level.txt,sha256=qA8QuiNNb6Y1OF-pCUtPEr6sLEwy2xJX06Bd_CrtrHY,4
493
- skypilot_nightly-1.0.0.dev20250718.dist-info/RECORD,,
497
+ skypilot_nightly-1.0.0.dev20250720.dist-info/licenses/LICENSE,sha256=emRJAvE7ngL6x0RhQvlns5wJzGI3NEQ_WMjNmd9TZc4,12170
498
+ skypilot_nightly-1.0.0.dev20250720.dist-info/METADATA,sha256=2NZuVA7KbM-JUYtvzF8uJPTmq-kGMhp8HGGmEFLV2Es,19032
499
+ skypilot_nightly-1.0.0.dev20250720.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
500
+ skypilot_nightly-1.0.0.dev20250720.dist-info/entry_points.txt,sha256=StA6HYpuHj-Y61L2Ze-hK2IcLWgLZcML5gJu8cs6nU4,36
501
+ skypilot_nightly-1.0.0.dev20250720.dist-info/top_level.txt,sha256=qA8QuiNNb6Y1OF-pCUtPEr6sLEwy2xJX06Bd_CrtrHY,4
502
+ skypilot_nightly-1.0.0.dev20250720.dist-info/RECORD,,
@@ -1,6 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1871,430],{9037:function(e,s,t){"use strict";t.r(s),t.d(s,{ClusterTable:function(){return _},Clusters:function(){return O},Status2Actions:function(){return z},enabledActions:function(){return V},handleVSCodeConnection:function(){return H}});var r=t(5893),l=t(7294),a=t(1163),n=t(5739),c=t(6989),i=t(1664),o=t.n(i),u=t(803),d=t(7673),h=t(8764),x=t(3266),m=t(7324),p=t(3081),f=t(4545),j=t(3626),v=t(998);/**
2
- * @license lucide-react v0.407.0 - ISC
3
- *
4
- * This source code is licensed under the ISC license.
5
- * See the LICENSE file in the root directory of this source tree.
6
- */let g=(0,v.Z)("Terminal",[["polyline",{points:"4 17 10 11 4 5",key:"akl6gq"}],["line",{x1:"12",x2:"20",y1:"19",y2:"19",key:"q2wloq"}]]),b=(0,v.Z)("SquareCode",[["path",{d:"M10 9.5 8 12l2 2.5",key:"3mjy60"}],["path",{d:"m14 9.5 2 2.5-2 2.5",key:"1bir2l"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]);t(9470);var w=t(9284),y=t(9307),k=t(3001),N=t(8950),C=t(6378),S=t(6856);t(1272);var L=t(546);let M=[{label:"Status",value:"status"},{label:"Cluster",value:"cluster"},{label:"User",value:"user"},{label:"Workspace",value:"workspace"},{label:"Infra",value:"infra"}],I=(e,s)=>{let t="",r="";return e>=0&&(t=e+"m",r=" "),s&&(t+="".concat(r,"(down)")),""===t&&(t="-"),t},R=(e,s)=>{if(e&&e.includes("@")){let t=e.split("@")[0];return s&&s!==t?"".concat(t," (").concat(s,")"):t}let t=e||s||"N/A";return s&&s!==t?"".concat(t," (").concat(s,")"):t},E=e=>{if(!e||0===e)return"-";let s=e=Math.floor(e),t="",r=0;for(let e of[{value:31536e3,label:"y"},{value:2592e3,label:"mo"},{value:86400,label:"d"},{value:3600,label:"h"},{value:60,label:"m"},{value:1,label:"s"}])if(s>=e.value&&r<2){let l=Math.floor(s/e.value);t+="".concat(l).concat(e.label," "),s%=e.value,r++}return t.trim()||"0s"};function O(){let e=(0,a.useRouter)(),[s,t]=(0,l.useState)(!1),i=l.useRef(null),[u,d]=(0,l.useState)(!1),[h,f]=(0,l.useState)(!1),[v,g]=(0,l.useState)(null),[b,y]=(0,l.useState)(!1),N=(0,k.X)(),[L,I]=(0,l.useState)([]),[E,O]=(0,l.useState)({status:[],cluster:[],user:[],workspace:[],infra:[]});(0,l.useEffect)(()=>{e.isReady&&F()},[e.isReady]),(0,l.useEffect)(()=>{(async()=>{try{await S.ZP.preloadForPage("clusters");let e=await C.default.get(m.fX),s=Object.keys(e),t=await C.default.get(x.getClusters),r=[...new Set(t.map(e=>e.workspace||"default").filter(e=>e))],l=new Set(s);r.includes("default")&&l.has("default"),r.forEach(e=>l.add(e));let a=await C.default.get(p.R),n=[...new Set(t.map(e=>({userId:e.user_hash||e.user,username:e.user})).filter(e=>e.userId)).values()],c=new Map;a.forEach(e=>{c.set(e.userId,{userId:e.userId,username:e.username,display:R(e.username,e.userId)})}),n.forEach(e=>{c.has(e.userId)||c.set(e.userId,{userId:e.userId,username:e.username,display:R(e.username,e.userId)})})}catch(e){console.error("Error fetching data for filters:",e)}})()},[]);let H=s=>{let t={...e.query},r=[],l=[],a=[];s.map((e,s)=>{var t;r.push(null!==(t=e.property.toLowerCase())&&void 0!==t?t:""),l.push(e.operator),a.push(e.value)}),t.property=r,t.operator=l,t.value=a,e.replace({pathname:e.pathname,query:t},void 0,{shallow:!0})},F=()=>{let s={...e.query},t=s.property,r=s.operator,l=s.value;if(void 0===t)return;let a=[],n=Array.isArray(t)?t.length:1,c=new Map;if(c.set("",""),c.set("status","Status"),c.set("cluster","Cluster"),c.set("user","User"),c.set("workspace","Workspace"),c.set("infra","Infra"),1===n)a.push({property:c.get(t),operator:r,value:l});else for(let e=0;e<n;e++)a.push({property:c.get(t[e]),operator:r[e],value:l[e]});I(a)};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"flex items-center justify-between mb-2 h-5",children:[(0,r.jsxs)("div",{className:"text-base flex items-center",children:[(0,r.jsx)(o(),{href:"/clusters",className:"text-sky-blue hover:underline leading-none",children:"Sky Clusters"}),(0,r.jsx)(A,{propertyList:M,valueList:E,setFilters:I,updateURLParams:H,placeholder:"Filter clusters"})]}),(0,r.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,r.jsx)("div",{className:"flex items-center",children:(0,r.jsxs)("label",{className:"flex items-center cursor-pointer",children:[(0,r.jsx)("input",{type:"checkbox",checked:b,onChange:e=>y(e.target.checked),className:"sr-only"}),(0,r.jsx)("div",{className:"relative inline-flex h-5 w-9 items-center rounded-full transition-colors ".concat(b?"bg-sky-600":"bg-gray-300"),children:(0,r.jsx)("span",{className:"inline-block h-3 w-3 transform rounded-full bg-white transition-transform ".concat(b?"translate-x-5":"translate-x-1")})}),(0,r.jsx)("span",{className:"ml-2 text-sm text-gray-700",children:"Show history (Last 30 days)"})]})}),(0,r.jsxs)("div",{className:"flex items-center",children:[s&&(0,r.jsxs)("div",{className:"flex items-center mr-2",children:[(0,r.jsx)(n.Z,{size:15,className:"mt-0"}),(0,r.jsx)("span",{className:"ml-2 text-gray-500",children:"Loading..."})]}),(0,r.jsxs)("button",{onClick:()=>{C.default.invalidate(x.getClusters),C.default.invalidate(x.uR),C.default.invalidate(m.fX),C.default.invalidate(p.R),i.current&&i.current()},disabled:s,className:"text-sky-blue hover:text-sky-blue-bright flex items-center",children:[(0,r.jsx)(j.Z,{className:"h-4 w-4 mr-1.5"}),!N&&(0,r.jsx)("span",{children:"Refresh"})]})]})]})]}),(0,r.jsx)(Z,{filters:L,setFilters:I,updateURLParams:H}),(0,r.jsx)(_,{refreshInterval:c.yc,setLoading:t,refreshDataRef:i,filters:L,showHistory:b,onOpenSSHModal:e=>{g(e),d(!0)},onOpenVSCodeModal:e=>{g(e),f(!0)},setOptionValues:O}),(0,r.jsx)(w.Oh,{isOpen:u,onClose:()=>d(!1),cluster:v}),(0,r.jsx)(w._R,{isOpen:h,onClose:()=>f(!1),cluster:v})]})}function _(e){let{refreshInterval:s,setLoading:t,refreshDataRef:a,filters:i,showHistory:m,onOpenSSHModal:p,onOpenVSCodeModal:j,setOptionValues:v}=e,[g,b]=(0,l.useState)([]),[w,k]=(0,l.useState)({key:null,direction:"ascending"}),[N,S]=(0,l.useState)(!1),[M,R]=(0,l.useState)(!0),[O,_]=(0,l.useState)(1),[H,F]=(0,l.useState)(10),V=e=>{let s={status:[],cluster:[],user:[],workspace:[],infra:[]},t=(e,s)=>{e.includes(s)||e.push(s)};return e.map(e=>{t(s.status,e.status),t(s.cluster,e.cluster),t(s.user,e.user),t(s.workspace,e.workspace),t(s.infra,e.infra)}),s},W=l.useCallback(async()=>{t(!0),S(!0);try{let e=await C.default.get(x.getClusters);if(m){let s=await C.default.get(x.uR),t=e.map(e=>({...e,isHistorical:!1})),r=s.map(e=>({...e,isHistorical:!0})),l=[...t];r.forEach(s=>{e.some(e=>(e.cluster||e.name)===(s.cluster||s.name))||l.push(s)}),v(V(l)),b(l)}else{let s=e.map(e=>({...e,isHistorical:!1}));v(V(s)),b(s)}}catch(e){console.error("Error fetching cluster data:",e),v(V([])),b([])}t(!1),S(!1),R(!1)},[t,m]),A=(e,s)=>{var t;let{property:r,operator:l,value:a}=s;if(!a)return!0;if(!r){let s=a.toLowerCase();return Object.values(e).some(e=>null==e?void 0:e.toString().toLowerCase().includes(s))}let n=null===(t=e[r.toLowerCase()])||void 0===t?void 0:t.toString().toLowerCase(),c=a.toString().toLowerCase();switch(l){case"=":return n===c;case":":return null==n?void 0:n.includes(c);default:return!0}},Z=l.useMemo(()=>{let e=0===i.length?g:g.filter(e=>{let s=null;for(let t=0;t<i.length;t++){let r=A(e,i[t]);s=null===s?r:s&&r}return s});return(0,f.R0)(e,w.key,w.direction)},[g,w,i]);l.useEffect(()=>{a&&(a.current=W)},[a,W]),(0,l.useEffect)(()=>{b([]);let e=!0;W();let t=setInterval(()=>{e&&W()},s);return()=>{e=!1,clearInterval(t)}},[s,W]),(0,l.useEffect)(()=>{_(1)},[g.length]);let P=e=>{let s="ascending";w.key===e&&"ascending"===w.direction&&(s="descending"),k({key:e,direction:s})},q=e=>w.key===e?"ascending"===w.direction?" ↑":" ↓":"",B=Math.ceil(Z.length/H),U=(O-1)*H,D=U+H,X=Z.slice(U,D);return(0,r.jsxs)("div",{children:[(0,r.jsx)(d.Zb,{children:(0,r.jsx)("div",{className:"overflow-x-auto rounded-lg",children:(0,r.jsxs)(h.iA,{className:"min-w-full",children:[(0,r.jsx)(h.xD,{children:(0,r.jsxs)(h.SC,{children:[(0,r.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>P("status"),children:["Status",q("status")]}),(0,r.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>P("cluster"),children:["Cluster",q("cluster")]}),(0,r.jsxs)(h.ss,{className:"sortable whitespace-nowrap hidden sm:table-cell",onClick:()=>P("user"),children:["User",q("user")]}),(0,r.jsxs)(h.ss,{className:"sortable whitespace-nowrap hidden md:table-cell",onClick:()=>P("workspace"),children:["Workspace",q("workspace")]}),(0,r.jsxs)(h.ss,{className:"sortable whitespace-nowrap hidden lg:table-cell",onClick:()=>P("infra"),children:["Infra",q("infra")]}),(0,r.jsxs)(h.ss,{className:"sortable whitespace-nowrap hidden xl:table-cell",onClick:()=>P("resources_str"),children:["Resources",q("resources_str")]}),(0,r.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>P("time"),children:["Started",q("time")]}),m&&(0,r.jsxs)(h.ss,{className:"sortable whitespace-nowrap hidden lg:table-cell",onClick:()=>P("duration"),children:["Duration",q("duration")]}),(0,r.jsxs)(h.ss,{className:"sortable whitespace-nowrap hidden md:table-cell",onClick:()=>P("autostop"),children:["Autostop",q("autostop")]}),(0,r.jsx)(h.ss,{className:"sticky right-0 bg-white",children:"Actions"})]})}),(0,r.jsx)(h.RM,{children:N&&M?(0,r.jsx)(h.SC,{children:(0,r.jsx)(h.pj,{colSpan:9,className:"text-center py-6 text-gray-500",children:(0,r.jsxs)("div",{className:"flex justify-center items-center",children:[(0,r.jsx)(n.Z,{size:20,className:"mr-2"}),(0,r.jsx)("span",{children:"Loading..."})]})})}):X.length>0?X.map((e,s)=>(0,r.jsxs)(h.SC,{children:[(0,r.jsx)(h.pj,{children:(0,r.jsx)(y.OE,{status:e.status})}),(0,r.jsx)(h.pj,{children:(0,r.jsx)(o(),{href:"/clusters/".concat(e.isHistorical?e.cluster_hash:e.cluster||e.name),className:"text-blue-600",children:e.cluster||e.name})}),(0,r.jsx)(h.pj,{className:"hidden sm:table-cell",children:(0,r.jsx)(L.H,{username:e.user,userHash:e.user_hash})}),(0,r.jsx)(h.pj,{className:"hidden md:table-cell",children:(0,r.jsx)(o(),{href:"/workspaces",className:"text-gray-700 hover:text-blue-600 hover:underline",children:e.workspace||"default"})}),(0,r.jsx)(h.pj,{className:"hidden lg:table-cell",children:(0,r.jsx)(c.Md,{content:e.full_infra||e.infra,className:"text-sm text-muted-foreground",children:(0,r.jsxs)("span",{children:[(0,r.jsx)(o(),{href:"/infra",className:"text-blue-600 hover:underline",children:e.cloud}),e.infra.includes("(")&&(0,r.jsx)("span",{children:" "+e.infra.substring(e.infra.indexOf("("))})]})})}),(0,r.jsx)(h.pj,{className:"hidden xl:table-cell",children:(0,r.jsx)(c.Md,{content:e.resources_str_full||e.resources_str,className:"text-sm text-muted-foreground",children:(0,r.jsx)("span",{children:e.resources_str})})}),(0,r.jsx)(h.pj,{children:(0,r.jsx)(c.Zg,{date:e.time})}),m&&(0,r.jsx)(h.pj,{className:"hidden lg:table-cell",children:E(e.duration)}),(0,r.jsx)(h.pj,{className:"hidden md:table-cell",children:e.isHistorical?"-":I(e.autostop,e.to_down)}),(0,r.jsx)(h.pj,{className:"text-left sticky right-0 bg-white",children:!e.isHistorical&&(0,r.jsx)(z,{cluster:e.cluster,status:e.status,onOpenSSHModal:p,onOpenVSCodeModal:j})})]},s)):(0,r.jsx)(h.SC,{children:(0,r.jsx)(h.pj,{colSpan:9,className:"text-center py-6 text-gray-500",children:m?"No clusters found":"No active clusters"})})})]})})}),g.length>0&&(0,r.jsx)("div",{className:"flex justify-end items-center py-2 px-4 text-sm text-gray-700",children:(0,r.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,r.jsxs)("div",{className:"flex items-center",children:[(0,r.jsx)("span",{className:"mr-2",children:"Rows per page:"}),(0,r.jsxs)("div",{className:"relative inline-block",children:[(0,r.jsxs)("select",{value:H,onChange:e=>{F(parseInt(e.target.value,10)),_(1)},className:"py-1 pl-2 pr-6 appearance-none outline-none cursor-pointer border-none bg-transparent",style:{minWidth:"40px"},children:[(0,r.jsx)("option",{value:10,children:"10"}),(0,r.jsx)("option",{value:30,children:"30"}),(0,r.jsx)("option",{value:50,children:"50"}),(0,r.jsx)("option",{value:100,children:"100"}),(0,r.jsx)("option",{value:200,children:"200"})]}),(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",className:"h-4 w-4 text-gray-500 absolute right-0 top-1/2 transform -translate-y-1/2 pointer-events-none",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]})]}),(0,r.jsx)("div",{children:"".concat(U+1," - ").concat(Math.min(D,Z.length)," of ").concat(Z.length)}),(0,r.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,r.jsx)(u.z,{variant:"ghost",size:"icon",onClick:()=>{_(e=>Math.max(e-1,1))},disabled:1===O,className:"text-gray-500 h-8 w-8 p-0",children:(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"chevron-left",children:(0,r.jsx)("path",{d:"M15 18l-6-6 6-6"})})}),(0,r.jsx)(u.z,{variant:"ghost",size:"icon",onClick:()=>{_(e=>Math.min(e+1,B))},disabled:O===B||0===B,className:"text-gray-500 h-8 w-8 p-0",children:(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"chevron-right",children:(0,r.jsx)("path",{d:"M9 18l6-6-6-6"})})})]})]})})]})}let H=(e,s)=>{s&&s(e)},F=(e,s)=>{s?s(e):window.open("ssh://".concat(e))},V=e=>"RUNNING"===e?["connect","VSCode"]:[],W={connect:(0,r.jsx)(g,{className:"w-4 h-4 text-gray-500 inline-block"}),VSCode:(0,r.jsx)(b,{className:"w-4 h-4 text-gray-500 inline-block"})};function z(e){let{withLabel:s=!1,cluster:t,status:l,onOpenSSHModal:a,onOpenVSCodeModal:n}=e,i=V(l),o=(0,k.X)(),u=e=>{switch(e){case"connect":F(t,a);break;case"VSCode":H(t,n);break;default:return}};return(0,r.jsx)(r.Fragment,{children:(0,r.jsx)("div",{className:"flex items-center space-x-4",children:Object.entries(W).map(e=>{let t,l,[a,n]=e;switch(a){case"connect":t="Connect",l="Connect with SSH";break;case"VSCode":t="VSCode",l="Open in VS Code"}return(s||(t=""),i.includes(a))?(0,r.jsx)(c.WH,{content:l,className:"capitalize text-sm text-muted-foreground",children:(0,r.jsxs)("button",{onClick:()=>u(a),className:"text-sky-blue hover:text-sky-blue-bright font-medium inline-flex items-center",children:[n,!o&&(0,r.jsx)("span",{className:"ml-1.5",children:t})]})},a):(0,r.jsx)(c.WH,{content:l,className:"capitalize text-sm text-muted-foreground",children:(0,r.jsxs)("span",{className:"opacity-30 flex items-center cursor-not-allowed text-sm",title:a,children:[n,!o&&(0,r.jsx)("span",{className:"ml-1.5",children:t})]})},a)})})})}let A=e=>{let{propertyList:s=[],valueList:t,setFilters:a,updateURLParams:n,placeholder:c="Filter clusters"}=e,i=(0,l.useRef)(null),o=(0,l.useRef)(null),[u,d]=(0,l.useState)(!1),[h,x]=(0,l.useState)(""),[m,p]=(0,l.useState)("status"),[f,j]=(0,l.useState)([]);(0,l.useEffect)(()=>{let e=e=>{o.current&&!o.current.contains(e.target)&&i.current&&!i.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e)}},[]),(0,l.useEffect)(()=>{let e=[];if(t&&"object"==typeof t)switch(m){case"status":e=t.status||[];break;case"user":e=t.user||[];break;case"cluster":e=t.cluster||[];break;case"workspace":e=t.workspace||[];break;case"infra":e=t.infra||[]}""!==h.trim()&&(e=e.filter(e=>e&&e.toString().toLowerCase().includes(h.toLowerCase()))),j(e)},[m,t,h]);let v=e=>{let t=s.find(s=>s.value===e);return t?t.label:e},g=e=>{a(s=>{let t=[...s,{property:v(m),operator:":",value:e}];return n(t),t}),d(!1),x(""),i.current.focus()};return(0,r.jsxs)("div",{className:"flex flex-row ml-4 mr-2 border border-gray-300 rounded-md overflow-visible",children:[(0,r.jsx)("div",{className:"border-r border-gray-300",children:(0,r.jsxs)(N.Ph,{onValueChange:p,value:m,children:[(0,r.jsx)(N.i4,{"aria-label":"Filter Property",className:"focus:ring-0 focus:ring-offset-0 border-none rounded-l-md rounded-r-none w-32 h-8",children:(0,r.jsx)(N.ki,{placeholder:"Select Property"})}),(0,r.jsx)(N.Bw,{children:s.map((e,s)=>(0,r.jsx)(N.Ql,{value:e.value,children:e.label},"property-item-".concat(s)))})]})}),(0,r.jsxs)("div",{className:"relative flex-1",children:[(0,r.jsx)("input",{type:"text",ref:i,placeholder:c,value:h,onChange:e=>{x(e.target.value),u||d(!0)},onFocus:()=>{d(!0)},onKeyDown:e=>{"Enter"===e.key&&""!==h.trim()?(a(e=>{let s=[...e,{property:v(m),operator:":",value:h}];return n(s),s}),x(""),d(!1)):"Escape"===e.key&&(d(!1),i.current.blur())},className:"h-8 w-32 sm:w-96 px-3 pr-8 text-sm border-none rounded-l-none rounded-r-md focus:ring-0 focus:outline-none",autoComplete:"off"}),h&&(0,r.jsx)("button",{onClick:()=>{x(""),d(!1)},className:"absolute right-2 top-1/2 transform -translate-y-1/2 text-gray-400 hover:text-gray-600",title:"Clear filter",tabIndex:-1,children:(0,r.jsx)("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})}),u&&f.length>0&&(0,r.jsx)("div",{ref:o,className:"absolute z-50 mt-1 w-full bg-white border border-gray-200 rounded-md shadow-lg max-h-60 overflow-y-auto",style:{zIndex:9999},children:f.map((e,s)=>(0,r.jsx)("div",{className:"px-3 py-2 cursor-pointer hover:bg-gray-50 text-sm ".concat(s!==f.length-1?"border-b border-gray-100":""),onClick:()=>g(e),children:(0,r.jsx)("span",{className:"text-sm text-gray-700",children:e})},"".concat(e,"-").concat(s)))})]})]})},Z=e=>{let{filters:s=[],setFilters:t,updateURLParams:l}=e,a=e=>{t(s=>{let t=s.filter((s,t)=>t!==e);return l(t),t})};return(0,r.jsx)(r.Fragment,{children:(0,r.jsx)("div",{className:"flex items-center gap-4 py-2 px-2",children:(0,r.jsxs)("div",{className:"flex flex-wrap items-content gap-2",children:[s.map((e,s)=>(0,r.jsx)(P,{filter:e,onRemove:()=>a(s)},"filteritem-".concat(s))),s.length>0&&(0,r.jsx)(r.Fragment,{children:(0,r.jsx)("button",{onClick:()=>{l([]),t([])},className:"rounded-full px-4 py-1 text-sm text-gray-700 bg-gray-200 hover:bg-gray-300",children:"Clear filters"})})]})})})},P=e=>{let{filter:s,onRemove:t}=e;return(0,r.jsx)(r.Fragment,{children:(0,r.jsxs)("div",{className:"flex items-center text-blue-600 bg-blue-100 px-1 py-1 rounded-full text-sm",children:[(0,r.jsxs)("div",{className:"flex items-center gap-1 px-2",children:[(0,r.jsx)("span",{children:"".concat(s.property," ")}),(0,r.jsx)("span",{children:"".concat(s.operator," ")}),(0,r.jsx)("span",{children:" ".concat(s.value)})]}),(0,r.jsx)("button",{onClick:()=>t(),className:"p-0.5 ml-1 transform text-gray-400 hover:text-gray-600 bg-blue-500 hover:bg-blue-600 rounded-full flex flex-col items-center",title:"Clear filter",children:(0,r.jsx)("svg",{className:"h-3 w-3",fill:"none",stroke:"white",viewBox:"0 0 24 24",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:5,d:"M6 18L18 6M6 6l12 12"})})})]})})}},1163:function(e,s,t){e.exports=t(6036)},2003:function(e,s,t){"use strict";t.d(s,{j:function(){return n}});var r=t(512);let l=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,a=r.W,n=(e,s)=>t=>{var r;if((null==s?void 0:s.variants)==null)return a(e,null==t?void 0:t.class,null==t?void 0:t.className);let{variants:n,defaultVariants:c}=s,i=Object.keys(n).map(e=>{let s=null==t?void 0:t[e],r=null==c?void 0:c[e];if(null===s)return null;let a=l(s)||l(r);return n[e][a]}),o=t&&Object.entries(t).reduce((e,s)=>{let[t,r]=s;return void 0===r||(e[t]=r),e},{});return a(e,i,null==s?void 0:null===(r=s.compoundVariants)||void 0===r?void 0:r.reduce((e,s)=>{let{class:t,className:r,...l}=s;return Object.entries(l).every(e=>{let[s,t]=e;return Array.isArray(t)?t.includes({...c,...o}[s]):({...c,...o})[s]===t})?[...e,t,r]:e},[]),null==t?void 0:t.class,null==t?void 0:t.className)}}}]);
@@ -1,16 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4869,430],{1260:function(e,s,l){"use strict";l.d(s,{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,l(998).Z)("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]])},7603:function(e,s,l){"use strict";l.d(s,{Z:function(){return t}});/**
7
- * @license lucide-react v0.407.0 - ISC
8
- *
9
- * This source code is licensed under the ISC license.
10
- * See the LICENSE file in the root directory of this source tree.
11
- */let t=(0,l(998).Z)("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]])},1812:function(e,s,l){"use strict";l.d(s,{X:function(){return n}});var t=l(5893),r=l(7294);let a=e=>{if(!(null==e?void 0:e.message))return"An unexpected error occurred.";let s=e.message;return s.includes("failed:")&&(s=s.split("failed:")[1].trim()),s},n=e=>{let{error:s,title:l="Error",onDismiss:n}=e,[i,c]=(0,r.useState)(!1);if((0,r.useEffect)(()=>{s&&c(!1)},[s]),!s||i)return null;let o="string"==typeof s?s:a(s);return(0,t.jsx)("div",{className:"bg-red-50 border border-red-200 rounded-md p-3 mb-4",children:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex",children:[(0,t.jsx)("div",{className:"flex-shrink-0",children:(0,t.jsx)("svg",{className:"h-5 w-5 text-red-400",viewBox:"0 0 20 20",fill:"currentColor",children:(0,t.jsx)("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z",clipRule:"evenodd"})})}),(0,t.jsx)("div",{className:"ml-3",children:(0,t.jsxs)("div",{className:"text-sm text-red-800",children:[(0,t.jsxs)("strong",{children:[l,":"]})," ",o]})})]}),(0,t.jsx)("button",{onClick:()=>{c(!0),n&&n()},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"})})})]})})}},2077:function(e,s,l){"use strict";l.r(s),l.d(s,{Workspaces:function(){return M}});var t=l(5893),r=l(7294),a=l(1163),n=l(3266),i=l(8969),c=l(7324),o=l(7673),d=l(8764),u=l(803),m=l(5739),x=l(1272),h=l(326);l(3850);var p=l(1812),g=l(3626),f=l(1260);/**
12
- * @license lucide-react v0.407.0 - ISC
13
- *
14
- * This source code is licensed under the ISC license.
15
- * See the LICENSE file in the root directory of this source tree.
16
- */let j=(0,l(998).Z)("SquarePen",[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]]);var v=l(7603),b=l(3001),w=l(938),N=l(6378),k=l(1214),y=l(6856),C=l(7145),L=l(4545),S=l(3225),z=l(1664),Z=l.n(z);let D=e=>{let{isPrivate:s}=e;return s?(0,t.jsx)("span",{className:"inline-flex items-center px-2 py-1 rounded-full text-xs font-medium bg-gray-100 text-gray-700 border border-gray-300",children:"Private"}):(0,t.jsx)("span",{className:"inline-flex items-center px-2 py-1 rounded-full text-xs font-medium bg-green-100 text-green-700 border border-green-300",children:"Public"})},E=k.nb.REFRESH_INTERVAL;function M(){let[e,s]=(0,r.useState)([]),[l,k]=(0,r.useState)({runningClusters:0,totalClusters:0,managedJobs:0}),[z,M]=(0,r.useState)(!0),[R,O]=(0,r.useState)(null),[J,A]=(0,r.useState)({key:"name",direction:"asc"}),[P,T]=(0,r.useState)(""),[W,F]=(0,r.useState)(!1),[B,V]=(0,r.useState)({confirmOpen:!1,workspaceToDelete:null,deleting:!1,error:null}),[X,q]=(0,r.useState)({open:!1,message:"",userName:""}),[I,_]=(0,r.useState)(null),[H,K]=(0,r.useState)(!1),[U,$]=(0,r.useState)(null),[G,Q]=(0,r.useState)(null),Y=(0,a.useRouter)(),ee=(0,b.X)(),es=async()=>{if(I&&Date.now()-I.timestamp<3e5)return I;K(!0);try{let e=await C.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(),l={role:s.role,name:s.name,timestamp:Date.now()};return _(l),K(!1),l}catch(e){throw K(!1),e}},el=async(e,s)=>{try{let l=await es();if("admin"!==l.role)return q({open:!0,message:e,userName:l.name.toLowerCase()}),!1;return s(),!0}catch(e){return console.error("Failed to check user role:",e),q({open:!0,message:"Error: ".concat(e.message),userName:""}),!1}},et=async function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];e&&M(!0);try{let[e,l,t]=await Promise.all([N.default.get(c.fX),N.default.get(n.getClusters),N.default.get(i.getManagedJobs,[{allUsers:!0}])]);O(e);let r=Object.keys(e),a=await Promise.all(r.map(e=>N.default.get(c.yz,[e]))),o=Object.fromEntries(r.map((e,s)=>[e,a[s]]));Object.fromEntries(l.map(e=>[e.cluster,e.workspace||"default"]));let d={};r.forEach(e=>{d[e]={name:e,totalClusterCount:0,runningClusterCount:0,managedJobsCount:0,clouds:new Set}});let u=0;l.forEach(e=>{let s=e.workspace||"default";d[s]||(d[s]={name:s,totalClusterCount:0,runningClusterCount:0,managedJobsCount:0,clouds:new Set}),d[s].totalClusterCount++,("RUNNING"===e.status||"LAUNCHING"===e.status)&&(d[s].runningClusterCount++,u++),e.cloud&&d[s].clouds.add(e.cloud)});let m=t.jobs||[],x=new Set(w.statusGroups.active),h=0;m.forEach(e=>{let s=e.workspace||"default";d[s]&&x.has(e.status)&&d[s].managedJobsCount++,x.has(e.status)&&h++});let p=Object.values(d).filter(e=>r.includes(e.name)).map(e=>({...e,clouds:Array.isArray(o[e.name])?o[e.name]:[]})).sort((e,s)=>e.name.localeCompare(s.name));s(p),k({runningClusters:u,totalClusters:l.length,managedJobs:h})}catch(e){console.error("Error fetching workspace data:",e),s([]),k({runningClusters:0,totalClusters:0,managedJobs:0})}e&&M(!1)};(0,r.useEffect)(()=>{(async()=>{await y.ZP.preloadForPage("workspaces"),et(!0)})();let e=setInterval(()=>{et(!1)},E);return()=>clearInterval(e)},[]);let er=e=>{let s="asc";J.key===e&&"asc"===J.direction&&(s="desc"),A({key:e,direction:s})},ea=e=>J.key===e?"asc"===J.direction?" ↑":" ↓":"",en=r.useMemo(()=>{if(!e)return[];let s=e;if(P&&""!==P.trim()){let l=P.toLowerCase().trim();s=e.filter(e=>!!(e.name.toLowerCase().includes(l)||e.clouds.some(e=>{let s=S.Z2[e.toLowerCase()]||e;return e.toLowerCase().includes(l)||s.toLowerCase().includes(l)}))||!!(!0===((null==R?void 0:R[e.name])||{}).private?"private":"public").includes(l))}return(0,L.R0)(s,J.key,J.direction)},[e,J,P,R]),ei=e=>{el("cannot delete workspace",()=>{V({confirmOpen:!0,workspaceToDelete:e,deleting:!1,error:null})})},ec=async()=>{if(B.workspaceToDelete){V(e=>({...e,deleting:!0,error:null}));try{await (0,c.zl)(B.workspaceToDelete),Q('Workspace "'.concat(B.workspaceToDelete,'" deleted successfully!')),V({confirmOpen:!1,workspaceToDelete:null,deleting:!1,error:null}),N.default.invalidate(c.fX),await et(!0)}catch(e){console.error("Error deleting workspace:",e),V(e=>({...e,deleting:!1,error:null})),$(e)}}},eo=()=>{V({confirmOpen:!1,workspaceToDelete:null,deleting:!1,error:null})},ed=e=>{el("cannot edit workspace",()=>{Y.push("/workspaces/".concat(e))})};return z&&0===e.length?(0,t.jsxs)("div",{className:"flex justify-center items-center h-64",children:[(0,t.jsx)(m.Z,{}),(0,t.jsx)("span",{className:"ml-2 text-gray-500",children:"Loading workspaces..."})]}):(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"fixed top-20 right-4 z-[9999] max-w-md",children:[G&&(0,t.jsx)("div",{className:"bg-green-50 border border-green-200 rounded p-4 mb-4",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:G})})]}),(0,t.jsx)("div",{className:"ml-auto pl-3",children:(0,t.jsxs)("button",{type:"button",onClick:()=>Q(null),className:"inline-flex rounded-md bg-green-50 p-1.5 text-green-500 hover:bg-green-100",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"})})]})})]})}),(0,t.jsx)(p.X,{error:U,title:"Error",onDismiss:()=>$(null)})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between mb-2 h-5",children:[(0,t.jsx)("div",{className:"text-base flex items-center",children:(0,t.jsx)("span",{className:"text-sky-blue leading-none",children:"Workspaces"})}),(0,t.jsxs)("div",{className:"flex items-center",children:[z&&(0,t.jsxs)("div",{className:"flex items-center mr-2",children:[(0,t.jsx)(m.Z,{size:15,className:"mt-0"}),(0,t.jsx)("span",{className:"ml-2 text-gray-500 text-xs",children:"Refreshing..."})]}),(0,t.jsxs)("button",{onClick:()=>{N.default.invalidate(c.fX),N.default.invalidate(n.getClusters),N.default.invalidate(i.getManagedJobs,[{allUsers:!0}]),N.default.invalidateFunction(c.yz),et(!0)},disabled:z,className:"text-sky-blue hover:text-sky-blue-bright flex items-center",children:[(0,t.jsx)(g.Z,{className:"h-4 w-4 mr-1.5"}),!ee&&(0,t.jsx)("span",{children:"Refresh"})]})]})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,t.jsxs)("div",{className:"relative flex-1 max-w-md",children:[(0,t.jsx)("input",{type:"text",placeholder:"Filter workspaces",value:P,onChange:e=>T(e.target.value),className:"h-8 w-full px-3 pr-8 text-sm border border-gray-300 rounded-md focus:ring-1 focus:ring-sky-500 focus:border-sky-500 outline-none"}),P&&(0,t.jsx)("button",{onClick:()=>T(""),className:"absolute right-2 top-1/2 transform -translate-y-1/2 text-gray-400 hover:text-gray-600",title:"Clear search",children:(0,t.jsx)("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,t.jsx)("button",{onClick:()=>{el("cannot create workspace",()=>{Y.push("/workspace/new")})},disabled:H,className:"ml-4 bg-sky-600 hover:bg-sky-700 text-white flex items-center rounded-md px-3 py-1 text-sm font-medium transition-colors duration-200",title:"Create Workspace",children:H?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(m.Z,{size:12,className:"mr-2"}),(0,t.jsx)("span",{children:"Create Workspace"})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(f.Z,{className:"h-4 w-4 mr-2"}),"Create Workspace"]})})]}),0!==e.length||z?(0,t.jsx)(o.Zb,{children:(0,t.jsx)("div",{className:"overflow-x-auto rounded-lg",children:(0,t.jsxs)(d.iA,{className:"min-w-full",children:[(0,t.jsx)(d.xD,{children:(0,t.jsxs)(d.SC,{children:[(0,t.jsxs)(d.ss,{className:"sortable whitespace-nowrap cursor-pointer hover:bg-gray-50",onClick:()=>er("name"),children:["Workspace",ea("name")]}),(0,t.jsxs)(d.ss,{className:"sortable whitespace-nowrap cursor-pointer hover:bg-gray-50 hidden sm:table-cell",onClick:()=>er("totalClusterCount"),children:["Clusters ",ea("totalClusterCount")]}),(0,t.jsxs)(d.ss,{className:"sortable whitespace-nowrap cursor-pointer hover:bg-gray-50 hidden md:table-cell",onClick:()=>er("managedJobsCount"),children:["Jobs",ea("managedJobsCount")]}),(0,t.jsx)(d.ss,{className:"whitespace-nowrap hidden lg:table-cell",children:"Enabled infra"}),(0,t.jsx)(d.ss,{className:"whitespace-nowrap",children:"Actions"})]})}),(0,t.jsx)(d.RM,{children:z&&0===en.length?(0,t.jsx)(d.SC,{children:(0,t.jsx)(d.pj,{colSpan:5,className:"text-center py-6 text-gray-500",children:(0,t.jsxs)("div",{className:"flex justify-center items-center",children:[(0,t.jsx)(m.Z,{size:20,className:"mr-2"}),(0,t.jsx)("span",{children:"Loading..."})]})})}):en.length>0?en.map(e=>{let s=!0===((null==R?void 0:R[e.name])||{}).private;return(0,t.jsxs)(d.SC,{className:"hover:bg-gray-50",children:[(0,t.jsxs)(d.pj,{className:"",children:[(0,t.jsx)("button",{onClick:()=>ed(e.name),disabled:H,className:"text-blue-600 hover:text-blue-600 hover:underline text-left",children:e.name}),(0,t.jsx)("span",{className:"ml-2",children:(0,t.jsx)(D,{isPrivate:s})})]}),(0,t.jsx)(d.pj,{className:"hidden sm:table-cell",children:(0,t.jsxs)("button",{onClick:()=>{Y.push({pathname:"/clusters",query:{workspace:e.name}})},className:"text-gray-700 hover:text-blue-600 hover:underline",children:[e.runningClusterCount," running,"," ",e.totalClusterCount," total"]})}),(0,t.jsx)(d.pj,{className:"hidden md:table-cell",children:(0,t.jsx)("button",{onClick:()=>{Y.push({pathname:"/jobs",query:{workspace:e.name}})},className:"text-gray-700 hover:text-blue-600 hover:underline",children:e.managedJobsCount})}),(0,t.jsx)(d.pj,{className:"hidden lg:table-cell",children:e.clouds.length>0?[...e.clouds].sort().map((s,l)=>{let r=S.Z2[s.toLowerCase()]||s;return(0,t.jsxs)("span",{children:[(0,t.jsx)(Z(),{href:"/infra",className:"inline-flex items-center px-2 py-1 rounded text-sm bg-sky-100 text-sky-800 hover:bg-sky-200 hover:text-sky-900 transition-colors duration-200",children:r}),l<e.clouds.length-1&&" "]},s)}):(0,t.jsx)("span",{className:"text-gray-500 text-sm",children:"-"})}),(0,t.jsxs)(d.pj,{children:[(0,t.jsx)(u.z,{variant:"ghost",size:"sm",onClick:()=>ed(e.name),disabled:H,className:"text-gray-600 hover:text-gray-800 mr-1",children:(0,t.jsx)(j,{className:"w-4 h-4"})}),(0,t.jsx)(u.z,{variant:"ghost",size:"sm",onClick:()=>ei(e.name),disabled:"default"===e.name||H,title:"default"===e.name?"Cannot delete default workspace":"Delete workspace",className:"text-red-600 hover:text-red-700 hover:bg-red-50",children:(0,t.jsx)(v.Z,{className:"w-4 h-4"})})]})]},e.name)}):(0,t.jsx)(d.SC,{children:(0,t.jsx)(d.pj,{colSpan:5,className:"text-center py-6 text-gray-500",children:"No workspaces found"})})})]})})}):(0,t.jsxs)("div",{className:"text-center py-10",children:[(0,t.jsx)("p",{className:"text-lg text-gray-600",children:"No workspaces found."}),(0,t.jsx)("p",{className:"text-sm text-gray-500 mt-2",children:"Create a cluster to see its workspace here."})]}),R&&(0,t.jsx)(h.Vq,{open:W,onOpenChange:F,children:(0,t.jsxs)(h.cZ,{className:"sm:max-w-md md:max-w-lg lg:max-w-xl xl:max-w-2xl w-full max-h-[90vh] flex flex-col",children:[(0,t.jsx)(h.fK,{children:(0,t.jsx)(h.$N,{className:"pr-10",children:"All Workspaces Configuration"})}),(0,t.jsx)("div",{className:"flex-grow overflow-y-auto py-4",children:(0,t.jsx)("pre",{style:{backgroundColor:"#f5f5f5",padding:"16px",borderRadius:"8px",overflowX:"auto",whiteSpace:"pre",wordBreak:"normal"},children:x.ZP.dump(R,{indent:2})})})]})}),(0,t.jsx)(h.Vq,{open:X.open,onOpenChange:e=>{q(s=>({...s,open:e})),e||$(null)},children:(0,t.jsxs)(h.cZ,{className:"sm:max-w-md transition-all duration-200 ease-in-out",children:[(0,t.jsxs)(h.fK,{children:[(0,t.jsx)(h.$N,{children:"Permission Denied"}),(0,t.jsx)(h.Be,{children:H?(0,t.jsxs)("div",{className:"flex items-center py-2",children:[(0,t.jsx)(m.Z,{size:16,className:"mr-2"}),(0,t.jsx)("span",{children:"Checking permissions..."})]}):(0,t.jsx)(t.Fragment,{children:X.userName?(0,t.jsxs)(t.Fragment,{children:[X.userName," is logged in as non-admin and ",X.message,"."]}):X.message})})]}),(0,t.jsx)(h.cN,{children:(0,t.jsx)(u.z,{variant:"outline",onClick:()=>q(e=>({...e,open:!1})),disabled:H,children:"OK"})})]})}),(0,t.jsx)(h.Vq,{open:B.confirmOpen,onOpenChange:e=>{e||(eo(),$(null))},children:(0,t.jsxs)(h.cZ,{className:"sm:max-w-md",children:[(0,t.jsxs)(h.fK,{children:[(0,t.jsx)(h.$N,{children:"Delete Workspace"}),(0,t.jsxs)(h.Be,{children:['Are you sure you want to delete workspace "',B.workspaceToDelete,'"? This action cannot be undone.']})]}),(0,t.jsxs)(h.cN,{children:[(0,t.jsx)(u.z,{variant:"outline",onClick:eo,disabled:B.deleting,children:"Cancel"}),(0,t.jsx)(u.z,{variant:"destructive",onClick:ec,disabled:B.deleting,children:B.deleting?"Deleting...":"Delete"})]})]})})]})}},1163:function(e,s,l){e.exports=l(6036)},2003:function(e,s,l){"use strict";l.d(s,{j:function(){return n}});var t=l(512);let r=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,a=t.W,n=(e,s)=>l=>{var t;if((null==s?void 0:s.variants)==null)return a(e,null==l?void 0:l.class,null==l?void 0:l.className);let{variants:n,defaultVariants:i}=s,c=Object.keys(n).map(e=>{let s=null==l?void 0:l[e],t=null==i?void 0:i[e];if(null===s)return null;let a=r(s)||r(t);return n[e][a]}),o=l&&Object.entries(l).reduce((e,s)=>{let[l,t]=s;return void 0===t||(e[l]=t),e},{});return a(e,c,null==s?void 0:null===(t=s.compoundVariants)||void 0===t?void 0:t.reduce((e,s)=>{let{class:l,className:t,...r}=s;return Object.entries(r).every(e=>{let[s,l]=e;return Array.isArray(l)?l.includes({...i,...o}[s]):({...i,...o})[s]===l})?[...e,l,t]:e},[]),null==l?void 0:l.class,null==l?void 0:l.className)}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[938],{938:function(e,s,t){t.r(s),t.d(s,{ClusterJobs:function(){return W},ManagedJobs:function(){return U},ManagedJobsTable:function(){return q},Status2Actions:function(){return z},filterJobsByName:function(){return M},filterJobsByUser:function(){return D},filterJobsByWorkspace:function(){return A},statusGroups:function(){return _}});var r=t(5893),n=t(7294),a=t(1163),l=t(1664),i=t.n(l),c=t(5739),o=t(803),d=t(7673),u=t(8764),h=t(6989),x=t(8969),m=t(3266),j=t(7324),p=t(3081);t(9470);var f=t(3626),g=t(3293),b=t(6521),w=t(3610),N=t(9284),y=t(4545),v=t(9307),k=t(546),C=t(3001),S=t(8950),L=t(6378),E=t(6856);let _={active:["PENDING","RUNNING","RECOVERING","SUBMITTED","STARTING","CANCELLING"],finished:["SUCCEEDED","FAILED","CANCELLED","FAILED_SETUP","FAILED_PRECHECKS","FAILED_NO_RESOURCE","FAILED_CONTROLLER"]},I="__ALL_WORKSPACES__",R="__ALL_USERS__";function M(e,s){if(!s||""===s.trim())return e;let t=s.toLowerCase().trim();return e.filter(e=>(e.name||"").toLowerCase().includes(t))}function A(e,s){return s&&s!==I?e.filter(e=>(e.workspace||"default").toLowerCase()===s.toLowerCase()):e}function D(e,s){return s&&s!==R?e.filter(e=>(e.user_hash||e.user)===s):e}let O=(e,s)=>{if(e&&e.includes("@")){let t=e.split("@")[0];return s&&s!==t?"".concat(t," (").concat(s,")"):t}let t=e||s||"N/A";return s&&s!==t?"".concat(t," (").concat(s,")"):t},F=e=>{if(!e)return"-";let s=e instanceof Date?e:new Date(1e3*e);return(0,r.jsx)(h.Zg,{date:s})};function U(){var e;let s=(0,a.useRouter)(),[t,l]=(0,n.useState)(!1),o=n.useRef(null),[d,u]=(0,n.useState)({isOpen:!1,title:"",message:"",onConfirm:null}),m=(0,C.X)(),[g,b]=(0,n.useState)(I),[w,y]=(0,n.useState)(R),[v,k]=(0,n.useState)(""),[_,M]=(0,n.useState)([]),[A,D]=(0,n.useState)([]);(0,n.useEffect)(()=>{s.isReady&&(s.query.workspace&&b(Array.isArray(s.query.workspace)?s.query.workspace[0]:s.query.workspace),s.query.user&&y(Array.isArray(s.query.user)?s.query.user[0]:s.query.user),s.query.name&&k(Array.isArray(s.query.name)?s.query.name[0]:s.query.name))},[s.isReady,s.query.workspace,s.query.user,s.query.name]);let F=(e,t,r)=>{let n={...s.query};e&&e!==I?n.workspace=e:delete n.workspace,t&&t!==R?n.user=t:delete n.user,r&&""!==r.trim()?n.name=r.trim():delete n.name,s.replace({pathname:s.pathname,query:n},void 0,{shallow:!0})},U=e=>{k(e),F(g,w,e)};return(0,n.useEffect)(()=>{(async()=>{try{await E.ZP.preloadForPage("jobs");let e=await L.default.get(j.fX),s=Object.keys(e),t=(await L.default.get(x.getManagedJobs,[{allUsers:!0}])).jobs||[],r=[...new Set(t.map(e=>e.workspace||"default").filter(e=>e))],n=new Set(s);r.forEach(e=>n.add(e)),M(Array.from(n).sort());let a=await L.default.get(p.R),l=[...new Set(t.map(e=>({userId:e.user_hash||e.user,username:e.user})).filter(e=>e.userId)).values()],i=new Map;a.forEach(e=>{i.set(e.userId,{userId:e.userId,username:e.username,display:O(e.username,e.userId)})}),l.forEach(e=>{i.has(e.userId)||i.set(e.userId,{userId:e.userId,username:e.username,display:O(e.username,e.userId)})}),D(Array.from(i.values()).sort((e,s)=>e.display.localeCompare(s.display)))}catch(e){console.error("Error fetching data for filters:",e),M(["default"]),D([])}})()},[]),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"flex items-center justify-between mb-4 h-5",children:[(0,r.jsxs)("div",{className:"text-base flex items-center",children:[(0,r.jsx)(i(),{href:"/jobs",className:"text-sky-blue hover:underline leading-none",children:"Managed Jobs"}),(0,r.jsxs)("div",{className:"relative ml-4 mr-2",children:[(0,r.jsx)("input",{type:"text",placeholder:"Filter by job name",value:v,onChange:e=>U(e.target.value),className:"h-8 w-48 px-3 pr-8 text-sm border border-gray-300 rounded-md focus:ring-1 focus:ring-sky-500 focus:border-sky-500 outline-none"}),v&&(0,r.jsx)("button",{onClick:()=>U(""),className:"absolute right-2 top-1/2 transform -translate-y-1/2 text-gray-400 hover:text-gray-600",title:"Clear filter",children:(0,r.jsx)("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,r.jsxs)(S.Ph,{value:g,onValueChange:e=>{b(e),F(e,w,v)},children:[(0,r.jsx)(S.i4,{className:"h-8 w-48 ml-2 mr-2 text-sm border-none focus:ring-0 focus:outline-none",children:(0,r.jsx)(S.ki,{placeholder:"Filter by workspace...",children:g===I?"All Workspaces":g})}),(0,r.jsxs)(S.Bw,{children:[(0,r.jsx)(S.Ql,{value:I,children:"All Workspaces"}),_.map(e=>(0,r.jsx)(S.Ql,{value:e,children:e},e))]})]}),(0,r.jsxs)(S.Ph,{value:w,onValueChange:e=>{y(e),F(g,e,v)},children:[(0,r.jsx)(S.i4,{className:"h-8 w-48 ml-2 mr-2 text-sm border-none focus:ring-0 focus:outline-none",children:(0,r.jsx)(S.ki,{placeholder:"Filter by user...",children:w===R?"All Users":(null===(e=A.find(e=>e.userId===w))||void 0===e?void 0:e.display)||w})}),(0,r.jsxs)(S.Bw,{children:[(0,r.jsx)(S.Ql,{value:R,children:"All Users"}),A.map(e=>(0,r.jsx)(S.Ql,{value:e.userId,children:e.display},e.userId))]})]})]}),(0,r.jsxs)("div",{className:"flex items-center space-x-2",children:[t&&(0,r.jsxs)("div",{className:"flex items-center mr-2",children:[(0,r.jsx)(c.Z,{size:15,className:"mt-0"}),(0,r.jsx)("span",{className:"ml-2 text-gray-500 text-sm",children:"Loading..."})]}),(0,r.jsxs)("button",{onClick:()=>{L.default.invalidate(x.getManagedJobs,[{allUsers:!0}]),L.default.invalidate(j.fX),L.default.invalidate(p.R),o.current&&o.current()},disabled:t,className:"text-sky-blue hover:text-sky-blue-bright flex items-center",title:"Refresh",children:[(0,r.jsx)(f.Z,{className:"h-4 w-4 mr-1.5"}),!m&&(0,r.jsx)("span",{children:"Refresh"})]})]})]}),(0,r.jsx)(q,{refreshInterval:h.yc,setLoading:l,refreshDataRef:o,workspaceFilter:g,userFilter:w,nameFilter:v}),(0,r.jsx)(N.cV,{isOpen:d.isOpen,onClose:()=>u({...d,isOpen:!1}),onConfirm:d.onConfirm,title:d.title,message:d.message})]})}function q(e){let{refreshInterval:s,setLoading:t,refreshDataRef:a,workspaceFilter:l,userFilter:j,nameFilter:p}=e,[f,b]=(0,n.useState)([]),[w,C]=(0,n.useState)({key:null,direction:"ascending"}),[S,E]=(0,n.useState)(!1),[I,R]=(0,n.useState)(!0),[O,U]=(0,n.useState)(1),[q,W]=(0,n.useState)(10),[Z,B]=(0,n.useState)(null),T=(0,n.useRef)(null),[H,G]=(0,n.useState)([]),[V,Q]=(0,n.useState)({}),[X,K]=(0,n.useState)(!1),[Y,$]=(0,n.useState)(!1),[ee,es]=(0,n.useState)(!1),[et,er]=(0,n.useState)("all"),[en,ea]=(0,n.useState)(!0),[el,ei]=(0,n.useState)({isOpen:!1,title:"",message:"",onConfirm:null}),ec=async()=>{ei({isOpen:!0,title:"Restart Controller",message:"Are you sure you want to restart the controller?",onConfirm:async()=>{try{es(!0),E(!0),await (0,x.Ce)("restartcontroller"),await eo()}catch(e){console.error("Error restarting controller:",e)}finally{es(!1),E(!1)}}})},eo=n.useCallback(async()=>{E(!0),t(!0);try{let[e,s]=await Promise.all([L.default.get(x.getManagedJobs,[{allUsers:!0}]),L.default.get(m.getClusters)]),{jobs:t=[],controllerStopped:r=!1}=e||{},n=null==s?void 0:s.find(e=>(0,y.Ym)(e.cluster)),a=n?n.status:"NOT_FOUND",l=!1;"STOPPED"==a&&r&&(l=!0),"LAUNCHING"==a?$(!0):$(!1),b(t),K(l),R(!1)}catch(e){console.error("Error fetching data:",e),b([]),K(!1),R(!1)}finally{E(!1),t(!1)}},[t]);n.useEffect(()=>{a&&(a.current=eo)},[a,eo]),(0,n.useEffect)(()=>{b([]);let e=!0;eo();let t=setInterval(()=>{e&&eo()},s);return()=>{e=!1,clearInterval(t)}},[s,eo]),(0,n.useEffect)(()=>{U(1)},[et,null==f?void 0:f.length]),(0,n.useEffect)(()=>{G([]),ea(!0)},[et]);let ed=e=>{let s="ascending";w.key===e&&"ascending"===w.direction&&(s="descending"),C({key:e,direction:s})},eu=e=>w.key===e?"ascending"===w.direction?" ↑":" ↓":"";n.useMemo(()=>{let e=f||[];return{active:e.filter(e=>_.active.includes(e.status)).length,finished:e.filter(e=>_.finished.includes(e.status)).length}},[f]);let eh=e=>H.length>0?H.includes(e):"all"===et||_[et].includes(e),ex=n.useMemo(()=>{let e=A(f,l);return(e=M(e=D(e,j),p),H.length>0)?e.filter(e=>H.includes(e.status)):en?"all"===et?e:e.filter(e=>_[et].includes(e.status)):[]},[f,et,H,en,l,j,p]),em=n.useMemo(()=>w.key?[...ex].sort((e,s)=>e[w.key]<s[w.key]?"ascending"===w.direction?-1:1:e[w.key]>s[w.key]?"ascending"===w.direction?1:-1:0):ex,[ex,w]),ej=Math.ceil(em.length/q),ep=(O-1)*q,ef=ep+q,eg=em.slice(ep,ef),eb=e=>{if(H.includes(e)){let s=H.filter(s=>s!==e);0===s.length?(ea(!0),G([])):(G(s),ea(!1))}else G([...H,e]),ea(!1)};return(0,n.useEffect)(()=>{Q((f||[]).reduce((e,s)=>(e[s.status]=(e[s.status]||0)+1,e),{}))},[f]),(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsx)("div",{className:"flex flex-col space-y-1 mb-1",children:(0,r.jsxs)("div",{className:"flex flex-wrap items-center text-sm mb-1",children:[(0,r.jsx)("span",{className:"mr-2 text-sm font-medium",children:"Statuses:"}),(0,r.jsxs)("div",{className:"flex flex-wrap gap-2 items-center",children:[!S&&(!f||0===f.length)&&!I&&(0,r.jsx)("span",{className:"text-gray-500 mr-2",children:"No jobs found"}),Object.entries(V).map(e=>{let[s,t]=e;return(0,r.jsxs)("button",{onClick:()=>eb(s),className:"px-3 py-0.5 rounded-full flex items-center space-x-2 ".concat(eh(s)||H.includes(s)?(0,v.Cl)(s):"bg-gray-50 text-gray-600 hover:bg-gray-100"),children:[(0,r.jsx)("span",{children:s}),(0,r.jsx)("span",{className:"text-xs ".concat(eh(s)||H.includes(s)?"bg-white/50":"bg-gray-200"," px-1.5 py-0.5 rounded"),children:t})]},s)}),f&&f.length>0&&(0,r.jsxs)("div",{className:"flex items-center ml-2 gap-2",children:[(0,r.jsx)("span",{className:"text-gray-500",children:"("}),(0,r.jsx)("button",{onClick:()=>{er("all"),G([]),ea(!0)},className:"text-sm font-medium ".concat("all"===et&&en?"text-purple-700 underline":"text-gray-600 hover:text-purple-700 hover:underline"),children:"show all jobs"}),(0,r.jsx)("span",{className:"text-gray-500 mx-1",children:"|"}),(0,r.jsx)("button",{onClick:()=>{er("active"),G([]),ea(!0)},className:"text-sm font-medium ".concat("active"===et&&en?"text-green-700 underline":"text-gray-600 hover:text-green-700 hover:underline"),children:"show all active jobs"}),(0,r.jsx)("span",{className:"text-gray-500 mx-1",children:"|"}),(0,r.jsx)("button",{onClick:()=>{er("finished"),G([]),ea(!0)},className:"text-sm font-medium ".concat("finished"===et&&en?"text-blue-700 underline":"text-gray-600 hover:text-blue-700 hover:underline"),children:"show all finished jobs"}),(0,r.jsx)("span",{className:"text-gray-500",children:")"})]})]})]})}),(0,r.jsx)(d.Zb,{children:(0,r.jsxs)(u.iA,{children:[(0,r.jsx)(u.xD,{children:(0,r.jsxs)(u.SC,{children:[(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>ed("id"),children:["ID",eu("id")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>ed("name"),children:["Name",eu("name")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>ed("user"),children:["User",eu("user")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>ed("workspace"),children:["Workspace",eu("workspace")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>ed("submitted_at"),children:["Submitted",eu("submitted_at")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>ed("job_duration"),children:["Duration",eu("job_duration")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>ed("status"),children:["Status",eu("status")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>ed("resources_str"),children:["Requested",eu("resources_str")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>ed("infra"),children:["Infra",eu("infra")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>ed("cluster"),children:["Resources",eu("cluster")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>ed("recoveries"),children:["Recoveries",eu("recoveries")]}),(0,r.jsx)(u.ss,{children:"Details"}),(0,r.jsx)(u.ss,{children:"Logs"})]})}),(0,r.jsx)(u.RM,{children:S||I?(0,r.jsx)(u.SC,{children:(0,r.jsx)(u.pj,{colSpan:12,className:"text-center py-6 text-gray-500",children:(0,r.jsxs)("div",{className:"flex justify-center items-center",children:[(0,r.jsx)(c.Z,{size:20,className:"mr-2"}),(0,r.jsx)("span",{children:"Loading..."})]})})}):eg.length>0?(0,r.jsx)(r.Fragment,{children:eg.map(e=>(0,r.jsxs)(n.Fragment,{children:[(0,r.jsxs)(u.SC,{children:[(0,r.jsx)(u.pj,{children:(0,r.jsx)(i(),{href:"/jobs/".concat(e.id),className:"text-blue-600",children:e.id})}),(0,r.jsx)(u.pj,{children:(0,r.jsx)(i(),{href:"/jobs/".concat(e.id),className:"text-blue-600",children:e.name})}),(0,r.jsx)(u.pj,{children:(0,r.jsx)(k.H,{username:e.user,userHash:e.user_hash})}),(0,r.jsx)(u.pj,{children:(0,r.jsx)(i(),{href:"/workspaces",className:"text-gray-700 hover:text-blue-600 hover:underline",children:e.workspace||"default"})}),(0,r.jsx)(u.pj,{children:F(e.submitted_at)}),(0,r.jsx)(u.pj,{children:(0,h.LU)(e.job_duration)}),(0,r.jsx)(u.pj,{children:(0,r.jsx)(v.OE,{status:e.status})}),(0,r.jsx)(u.pj,{children:e.requested_resources}),(0,r.jsx)(u.pj,{children:e.infra&&"-"!==e.infra?(0,r.jsx)(h.Md,{content:e.full_infra||e.infra,className:"text-sm text-muted-foreground",children:(0,r.jsxs)("span",{children:[(0,r.jsx)(i(),{href:"/infra",className:"text-blue-600 hover:underline",children:e.cloud||e.infra.split("(")[0].trim()}),e.infra.includes("(")&&(0,r.jsx)("span",{children:" "+e.infra.substring(e.infra.indexOf("("))})]})}):(0,r.jsx)("span",{children:e.infra||"-"})}),(0,r.jsx)(u.pj,{children:(0,r.jsx)(h.Md,{content:e.resources_str_full||e.resources_str,className:"text-sm text-muted-foreground",children:(0,r.jsx)("span",{children:e.resources_str})})}),(0,r.jsx)(u.pj,{children:e.recoveries}),(0,r.jsx)(u.pj,{children:e.details?(0,r.jsx)(P,{text:e.details,rowId:e.id,expandedRowId:Z,setExpandedRowId:B}):"-"}),(0,r.jsx)(u.pj,{children:(0,r.jsx)(z,{jobParent:"/jobs",jobId:e.id,managed:!0})})]}),Z===e.id&&(0,r.jsx)(J,{text:e.details,colSpan:12,innerRef:T})]},e.id))}):(0,r.jsx)(u.SC,{children:(0,r.jsx)(u.pj,{colSpan:12,className:"text-center py-6",children:(0,r.jsxs)("div",{className:"flex flex-col items-center space-y-4",children:[Y&&(0,r.jsxs)("div",{className:"flex flex-col items-center space-y-2",children:[(0,r.jsx)("p",{className:"text-gray-700",children:"The managed job controller is launching. It will be ready shortly."}),(0,r.jsxs)("div",{className:"flex items-center",children:[(0,r.jsx)(c.Z,{size:12,className:"mr-2"}),(0,r.jsx)("span",{className:"text-gray-500",children:"Launching..."})]})]}),!X&&!Y&&(0,r.jsx)("p",{className:"text-gray-500",children:"No active jobs"}),X&&(0,r.jsxs)("div",{className:"flex flex-col items-center space-y-2",children:[(0,r.jsx)("p",{className:"text-gray-700",children:"The managed job controller has been stopped. Restart to check the latest job status."}),(0,r.jsx)(o.z,{variant:"outline",size:"sm",onClick:ec,className:"text-sky-blue hover:text-sky-blue-bright",disabled:S||ee,children:ee?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(c.Z,{size:12,className:"mr-2"}),"Restarting..."]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(g.Z,{className:"h-4 w-4 mr-2"}),"Restart Controller"]})})]})]})})})})]})}),em&&em.length>0&&(0,r.jsx)("div",{className:"flex justify-end items-center py-2 px-4 text-sm text-gray-700",children:(0,r.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,r.jsxs)("div",{className:"flex items-center",children:[(0,r.jsx)("span",{className:"mr-2",children:"Rows per page:"}),(0,r.jsxs)("div",{className:"relative inline-block",children:[(0,r.jsxs)("select",{value:q,onChange:e=>{W(parseInt(e.target.value,10)),U(1)},className:"py-1 pl-2 pr-6 appearance-none outline-none cursor-pointer border-none bg-transparent",style:{minWidth:"40px"},children:[(0,r.jsx)("option",{value:10,children:"10"}),(0,r.jsx)("option",{value:30,children:"30"}),(0,r.jsx)("option",{value:50,children:"50"}),(0,r.jsx)("option",{value:100,children:"100"}),(0,r.jsx)("option",{value:200,children:"200"})]}),(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",className:"h-4 w-4 text-gray-500 absolute right-0 top-1/2 transform -translate-y-1/2 pointer-events-none",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]})]}),(0,r.jsxs)("div",{children:[ep+1," – ",Math.min(ef,em.length)," of"," ",em.length]}),(0,r.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,r.jsx)(o.z,{variant:"ghost",size:"icon",onClick:()=>{U(e=>Math.max(e-1,1))},disabled:1===O,className:"text-gray-500 h-8 w-8 p-0",children:(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"chevron-left",children:(0,r.jsx)("path",{d:"M15 18l-6-6 6-6"})})}),(0,r.jsx)(o.z,{variant:"ghost",size:"icon",onClick:()=>{U(e=>Math.min(e+1,ej))},disabled:O===ej||0===ej,className:"text-gray-500 h-8 w-8 p-0",children:(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"chevron-right",children:(0,r.jsx)("path",{d:"M9 18l6-6-6-6"})})})]})]})}),(0,r.jsx)(N.cV,{isOpen:el.isOpen,onClose:()=>ei({...el,isOpen:!1}),onConfirm:el.onConfirm,title:el.title,message:el.message,confirmClassName:"bg-blue-600 hover:bg-blue-700 text-white"})]})}function z(e){let{withLabel:s=!1,jobParent:t,jobId:n,managed:l}=e,i=(0,a.useRouter)(),c=(e,s)=>{e.preventDefault(),e.stopPropagation(),i.push({pathname:"".concat(t,"/").concat(n),query:{tab:s}})};return(0,r.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,r.jsx)(h.WH,{content:"View Job Logs",className:"capitalize text-sm text-muted-foreground",children:(0,r.jsxs)("button",{onClick:e=>c(e,"logs"),className:"text-sky-blue hover:text-sky-blue-bright font-medium inline-flex items-center h-8",children:[(0,r.jsx)(b.Z,{className:"w-4 h-4"}),s&&(0,r.jsx)("span",{className:"ml-1.5",children:"Logs"})]})},"logs"),l&&(0,r.jsx)(h.WH,{content:"View Controller Logs",className:"capitalize text-sm text-muted-foreground",children:(0,r.jsxs)("button",{onClick:e=>c(e,"controllerlogs"),className:"text-sky-blue hover:text-sky-blue-bright font-medium inline-flex items-center h-8",children:[(0,r.jsx)(w.Z,{className:"w-4 h-4"}),s&&(0,r.jsx)("span",{className:"ml-2",children:"Controller Logs"})]})},"controllerlogs")]})}function W(e){let{clusterName:s,clusterJobData:t,loading:a,refreshClusterJobsOnly:l,userFilter:x=null,nameFilter:m=null}=e,[j,p]=(0,n.useState)(null),[g,b]=(0,n.useState)({key:null,direction:"ascending"}),[w,N]=(0,n.useState)(1),[y,C]=(0,n.useState)(10),S=(0,n.useRef)(null),[L,E]=(0,n.useState)(null);(0,n.useEffect)(()=>{let e=e=>{j&&S.current&&!S.current.contains(e.target)&&p(null)};return document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e)}},[j]);let _=n.useMemo(()=>{let e=t||[];return x&&x!==R&&(e=D(e,x)),m&&(e=M(e,m)),e},[t,x,m]);(0,n.useEffect)(()=>{JSON.stringify(t)!==JSON.stringify(L)&&E(t)},[t,L]);let I=n.useMemo(()=>g.key?[..._].sort((e,s)=>e[g.key]<s[g.key]?"ascending"===g.direction?-1:1:e[g.key]>s[g.key]?"ascending"===g.direction?1:-1:0):_,[_,g]),A=e=>{let s="ascending";g.key===e&&"ascending"===g.direction&&(s="descending"),b({key:e,direction:s})},O=e=>g.key===e?"ascending"===g.direction?" ↑":" ↓":"",U=Math.ceil(I.length/y),q=(w-1)*y,W=q+y,Z=I.slice(q,W);return(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsxs)(d.Zb,{children:[(0,r.jsxs)("div",{className:"flex items-center justify-between p-4",children:[(0,r.jsx)("h3",{className:"text-lg font-semibold",children:"Cluster Jobs"}),(0,r.jsx)("div",{className:"flex items-center",children:l&&(0,r.jsxs)("button",{onClick:l,disabled:a,className:"text-sky-blue hover:text-sky-blue-bright font-medium inline-flex items-center text-sm ml-2",children:[(0,r.jsx)(f.Z,{className:"w-4 h-4 mr-1"}),"Refresh Jobs"]})})]}),(0,r.jsxs)(u.iA,{children:[(0,r.jsx)(u.xD,{children:(0,r.jsxs)(u.SC,{children:[(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>A("id"),children:["ID",O("id")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>A("job"),children:["Name",O("job")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>A("user"),children:["User",O("user")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>A("workspace"),children:["Workspace",O("workspace")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>A("submitted_at"),children:["Submitted",O("submitted_at")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>A("job_duration"),children:["Duration",O("job_duration")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>A("status"),children:["Status",O("status")]}),(0,r.jsxs)(u.ss,{className:"sortable whitespace-nowrap",onClick:()=>A("resources"),children:["Resources",O("resources")]}),(0,r.jsx)(u.ss,{className:"whitespace-nowrap",children:"Logs"})]})}),(0,r.jsx)(u.RM,{children:a?(0,r.jsx)(u.SC,{children:(0,r.jsx)(u.pj,{colSpan:9,className:"text-center py-12 text-gray-500",children:(0,r.jsxs)("div",{className:"flex justify-center items-center",children:[(0,r.jsx)(c.Z,{size:24,className:"mr-2"}),(0,r.jsx)("span",{children:"Loading cluster jobs..."})]})})}):Z.length>0?Z.map(e=>(0,r.jsxs)(n.Fragment,{children:[(0,r.jsxs)(u.SC,{className:j===e.id?"selected-row":"",children:[(0,r.jsx)(u.pj,{children:(0,r.jsx)(i(),{href:"/clusters/".concat(s,"/").concat(e.id),className:"text-blue-600",children:e.id})}),(0,r.jsx)(u.pj,{children:(0,r.jsx)(i(),{href:"/clusters/".concat(s,"/").concat(e.id),className:"text-blue-600",children:(0,r.jsx)(P,{text:e.job||"Unnamed job",rowId:e.id,expandedRowId:j,setExpandedRowId:p})})}),(0,r.jsx)(u.pj,{children:(0,r.jsx)(k.H,{username:e.user,userHash:e.user_hash})}),(0,r.jsx)(u.pj,{children:(0,r.jsx)(i(),{href:"/workspaces",className:"text-gray-700 hover:text-blue-600 hover:underline",children:e.workspace||"default"})}),(0,r.jsx)(u.pj,{children:F(e.submitted_at)}),(0,r.jsx)(u.pj,{children:(0,h.LU)(e.job_duration)}),(0,r.jsx)(u.pj,{children:(0,r.jsx)(v.OE,{status:e.status})}),(0,r.jsx)(u.pj,{children:e.resources}),(0,r.jsx)(u.pj,{className:"flex content-center items-center",children:(0,r.jsx)(z,{jobParent:"/clusters/".concat(s),jobId:e.id,managed:!1})})]}),j===e.id&&(0,r.jsx)(J,{text:e.job||"Unnamed job",colSpan:9,innerRef:S})]},e.id)):(0,r.jsx)(u.SC,{children:(0,r.jsx)(u.pj,{colSpan:8,className:"text-center py-6 text-gray-500",children:"No jobs found"})})})]})]}),I&&I.length>0&&(0,r.jsx)("div",{className:"flex justify-end items-center py-2 px-4 text-sm text-gray-700",children:(0,r.jsxs)("div",{className:"flex items-center space-x-4",children:[(0,r.jsxs)("div",{className:"flex items-center",children:[(0,r.jsx)("span",{className:"mr-2",children:"Rows per page:"}),(0,r.jsxs)("div",{className:"relative inline-block",children:[(0,r.jsxs)("select",{value:y,onChange:e=>{C(parseInt(e.target.value,10)),N(1)},className:"py-1 pl-2 pr-6 appearance-none outline-none cursor-pointer border-none bg-transparent",style:{minWidth:"40px"},children:[(0,r.jsx)("option",{value:5,children:"5"}),(0,r.jsx)("option",{value:10,children:"10"}),(0,r.jsx)("option",{value:20,children:"20"}),(0,r.jsx)("option",{value:50,children:"50"})]}),(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",className:"h-4 w-4 text-gray-500 absolute right-0 top-1/2 transform -translate-y-1/2 pointer-events-none",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]})]}),(0,r.jsxs)("div",{children:[q+1," – ",Math.min(W,I.length)," of"," ",I.length]}),(0,r.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,r.jsx)(o.z,{variant:"ghost",size:"icon",onClick:()=>{N(e=>Math.max(e-1,1))},disabled:1===w,className:"text-gray-500 h-8 w-8 p-0",children:(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"chevron-left",children:(0,r.jsx)("path",{d:"M15 18l-6-6 6-6"})})}),(0,r.jsx)(o.z,{variant:"ghost",size:"icon",onClick:()=>{N(e=>Math.min(e+1,U))},disabled:w===U||0===U,className:"text-gray-500 h-8 w-8 p-0",children:(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"chevron-right",children:(0,r.jsx)("path",{d:"M9 18l6-6-6-6"})})})]})]})})]})}function J(e){let{text:s,colSpan:t,innerRef:n}=e;return(0,r.jsx)(u.SC,{className:"expanded-details",children:(0,r.jsx)(u.pj,{colSpan:t,children:(0,r.jsx)("div",{className:"p-4 bg-gray-50 rounded-md border border-gray-200",ref:n,children:(0,r.jsx)("div",{className:"flex justify-between items-start",children:(0,r.jsxs)("div",{className:"flex-1",children:[(0,r.jsx)("p",{className:"text-sm font-medium text-gray-900",children:"Full Details"}),(0,r.jsx)("p",{className:"mt-1 text-sm text-gray-700",style:{whiteSpace:"pre-wrap"},children:s})]})})})})})}function P(e){let{text:s,rowId:t,expandedRowId:a,setExpandedRowId:l}=e,i=s||"",c=i.length>50,o=a===t,d=c?"".concat(i.substring(0,50)):i,u=(0,n.useRef)(null);return(0,r.jsxs)("div",{className:"truncated-details relative max-w-full flex items-center",children:[(0,r.jsx)("span",{className:"truncate",children:d}),c&&(0,r.jsx)("button",{ref:u,type:"button",onClick:e=>{e.preventDefault(),e.stopPropagation(),l(o?null:t)},className:"text-blue-600 hover:text-blue-800 font-medium ml-1 flex-shrink-0","data-button-type":"show-more-less",children:o?"... show less":"... show more"})]})}}}]);