skypilot-nightly 1.0.0.dev20250925__py3-none-any.whl → 1.0.0.dev20250926__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.
- sky/__init__.py +2 -2
- sky/backends/backend_utils.py +13 -10
- sky/client/cli/command.py +16 -8
- sky/client/common.py +4 -2
- sky/client/sdk.py +4 -2
- sky/core.py +3 -2
- sky/dashboard/out/404.html +1 -1
- sky/dashboard/out/_next/static/{bn-NHt5qTzeTN2PefXuDA → VXU6_xE28M55BOdwmUUJS}/_buildManifest.js +1 -1
- sky/dashboard/out/_next/static/chunks/1121-d0782b9251f0fcd3.js +1 -0
- sky/dashboard/out/_next/static/chunks/9037-d0c00018a5ba198c.js +6 -0
- sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-ad77b12fc736dca3.js +16 -0
- sky/dashboard/out/_next/static/chunks/{webpack-16ba1d7187d2e3b1.js → webpack-8e64d11e58eab5cb.js} +1 -1
- sky/dashboard/out/clusters/[cluster]/[job].html +1 -1
- sky/dashboard/out/clusters/[cluster].html +1 -1
- sky/dashboard/out/clusters.html +1 -1
- sky/dashboard/out/config.html +1 -1
- sky/dashboard/out/index.html +1 -1
- sky/dashboard/out/infra/[context].html +1 -1
- sky/dashboard/out/infra.html +1 -1
- sky/dashboard/out/jobs/[job].html +1 -1
- sky/dashboard/out/jobs/pools/[pool].html +1 -1
- sky/dashboard/out/jobs.html +1 -1
- sky/dashboard/out/users.html +1 -1
- sky/dashboard/out/volumes.html +1 -1
- sky/dashboard/out/workspace/new.html +1 -1
- sky/dashboard/out/workspaces/[name].html +1 -1
- sky/dashboard/out/workspaces.html +1 -1
- sky/global_user_state.py +54 -31
- sky/jobs/constants.py +2 -0
- sky/jobs/controller.py +4 -0
- sky/jobs/server/core.py +2 -0
- sky/provision/runpod/__init__.py +2 -0
- sky/schemas/db/global_user_state/009_last_activity_and_launched_at.py +89 -0
- sky/server/requests/payloads.py +2 -1
- sky/setup_files/dependencies.py +1 -1
- sky/skylet/constants.py +4 -1
- sky/skylet/events.py +42 -0
- sky/templates/jobs-controller.yaml.j2 +3 -0
- sky/templates/kubernetes-ray.yml.j2 +8 -3
- sky/utils/db/db_utils.py +5 -1
- sky/utils/db/migration_utils.py +1 -1
- sky/utils/kubernetes/kubernetes_deploy_utils.py +35 -12
- sky/volumes/server/core.py +1 -0
- sky/volumes/volume.py +16 -17
- {skypilot_nightly-1.0.0.dev20250925.dist-info → skypilot_nightly-1.0.0.dev20250926.dist-info}/METADATA +37 -37
- {skypilot_nightly-1.0.0.dev20250925.dist-info → skypilot_nightly-1.0.0.dev20250926.dist-info}/RECORD +51 -50
- sky/dashboard/out/_next/static/chunks/1121-b911fc0a0b4742f0.js +0 -1
- sky/dashboard/out/_next/static/chunks/9037-472ee1222cb1e158.js +0 -6
- sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-2cb9b15e09cda628.js +0 -16
- /sky/dashboard/out/_next/static/{bn-NHt5qTzeTN2PefXuDA → VXU6_xE28M55BOdwmUUJS}/_ssgManifest.js +0 -0
- {skypilot_nightly-1.0.0.dev20250925.dist-info → skypilot_nightly-1.0.0.dev20250926.dist-info}/WHEEL +0 -0
- {skypilot_nightly-1.0.0.dev20250925.dist-info → skypilot_nightly-1.0.0.dev20250926.dist-info}/entry_points.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250925.dist-info → skypilot_nightly-1.0.0.dev20250926.dist-info}/licenses/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20250925.dist-info → skypilot_nightly-1.0.0.dev20250926.dist-info}/top_level.txt +0 -0
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
"""Utility functions for deploying Kubernetes clusters."""
|
|
2
2
|
import os
|
|
3
|
+
import random
|
|
3
4
|
import shlex
|
|
4
5
|
import subprocess
|
|
5
6
|
import sys
|
|
6
7
|
import tempfile
|
|
7
8
|
import textwrap
|
|
8
|
-
from typing import List, Optional
|
|
9
|
+
from typing import List, Optional, Tuple
|
|
9
10
|
|
|
10
11
|
import colorama
|
|
11
12
|
|
|
@@ -26,8 +27,9 @@ logger = sky_logging.init_logger(__name__)
|
|
|
26
27
|
# Default path for Kubernetes configuration file
|
|
27
28
|
DEFAULT_KUBECONFIG_PATH = os.path.expanduser('~/.kube/config')
|
|
28
29
|
DEFAULT_LOCAL_CLUSTER_NAME = 'skypilot'
|
|
29
|
-
LOCAL_CLUSTER_PORT_RANGE =
|
|
30
|
+
LOCAL_CLUSTER_PORT_RANGE = 100
|
|
30
31
|
LOCAL_CLUSTER_INTERNAL_PORT_START = 30000
|
|
32
|
+
LOCAL_CLUSTER_INTERNAL_PORT_END = 30099
|
|
31
33
|
|
|
32
34
|
|
|
33
35
|
def check_ssh_cluster_dependencies(
|
|
@@ -262,7 +264,7 @@ def generate_kind_config(port_start: int,
|
|
|
262
264
|
"""Generate a kind cluster config with ports mapped from host to container
|
|
263
265
|
|
|
264
266
|
Port range will be [port_start, port_start + LOCAL_CLUSTER_PORT_RANGE)
|
|
265
|
-
Internally, this will map to ports 30000 -
|
|
267
|
+
Internally, this will map to ports 30000 - 30099
|
|
266
268
|
|
|
267
269
|
Args:
|
|
268
270
|
path: Path to generate the config file at
|
|
@@ -274,7 +276,7 @@ def generate_kind_config(port_start: int,
|
|
|
274
276
|
The kind cluster config
|
|
275
277
|
"""
|
|
276
278
|
internal_start = LOCAL_CLUSTER_INTERNAL_PORT_START
|
|
277
|
-
internal_end =
|
|
279
|
+
internal_end = LOCAL_CLUSTER_INTERNAL_PORT_END
|
|
278
280
|
|
|
279
281
|
config = textwrap.dedent(f"""
|
|
280
282
|
apiVersion: kind.x-k8s.io/v1alpha4
|
|
@@ -315,8 +317,33 @@ def generate_kind_config(port_start: int,
|
|
|
315
317
|
return config
|
|
316
318
|
|
|
317
319
|
|
|
318
|
-
def
|
|
320
|
+
def _get_port_range(name: str, port_start: Optional[int]) -> Tuple[int, int]:
|
|
321
|
+
is_default = name == DEFAULT_LOCAL_CLUSTER_NAME
|
|
322
|
+
if port_start is None:
|
|
323
|
+
if is_default:
|
|
324
|
+
port_start = LOCAL_CLUSTER_INTERNAL_PORT_START
|
|
325
|
+
else:
|
|
326
|
+
port_start = random.randint(301, 399) * 100
|
|
327
|
+
port_end = port_start + LOCAL_CLUSTER_PORT_RANGE - 1
|
|
328
|
+
|
|
329
|
+
port_range = f'Current port range: {port_start}-{port_end}'
|
|
330
|
+
if is_default and port_start != LOCAL_CLUSTER_INTERNAL_PORT_START:
|
|
331
|
+
raise ValueError('Default local cluster `skypilot` should have '
|
|
332
|
+
f'port range from 30000 to 30099. {port_range}.')
|
|
333
|
+
if not is_default and port_start == LOCAL_CLUSTER_INTERNAL_PORT_START:
|
|
334
|
+
raise ValueError('Port range 30000 to 30099 is reserved for '
|
|
335
|
+
f'default local cluster `skypilot`. {port_range}.')
|
|
336
|
+
if port_start % 100 != 0:
|
|
337
|
+
raise ValueError('Local cluster port start must be a multiple of 100. '
|
|
338
|
+
f'{port_range}.')
|
|
339
|
+
|
|
340
|
+
return port_start, port_end
|
|
341
|
+
|
|
342
|
+
|
|
343
|
+
def deploy_local_cluster(name: Optional[str], port_start: Optional[int],
|
|
344
|
+
gpus: bool):
|
|
319
345
|
name = name or DEFAULT_LOCAL_CLUSTER_NAME
|
|
346
|
+
port_start, port_end = _get_port_range(name, port_start)
|
|
320
347
|
context_name = f'kind-{name}'
|
|
321
348
|
cluster_created = False
|
|
322
349
|
|
|
@@ -341,12 +368,7 @@ def deploy_local_cluster(name: Optional[str], gpus: bool):
|
|
|
341
368
|
delete=True) as f:
|
|
342
369
|
# Choose random port range to use on the host machine.
|
|
343
370
|
# Port range is port_start - port_start + 99 (exactly 100 ports).
|
|
344
|
-
|
|
345
|
-
# TODO (kyuds): hard coding to pass smoketests. Need to figure out
|
|
346
|
-
# how to deal with this later.
|
|
347
|
-
port_start = LOCAL_CLUSTER_INTERNAL_PORT_START
|
|
348
|
-
port_end = port_start + LOCAL_CLUSTER_PORT_RANGE - 1
|
|
349
|
-
logger.debug(f'Using port range {port_start}-{port_end}')
|
|
371
|
+
logger.debug(f'Using host port range {port_start}-{port_end}')
|
|
350
372
|
f.write(generate_kind_config(port_start, gpus=gpus))
|
|
351
373
|
f.flush()
|
|
352
374
|
|
|
@@ -458,7 +480,8 @@ def deploy_local_cluster(name: Optional[str], gpus: bool):
|
|
|
458
480
|
ux_utils.finishing_message(
|
|
459
481
|
message=(
|
|
460
482
|
f'Local Kubernetes cluster {name} created successfully '
|
|
461
|
-
f'with {num_cpus} CPUs{gpu_message}
|
|
483
|
+
f'with {num_cpus} CPUs{gpu_message} on host port range '
|
|
484
|
+
f'{port_start}-{port_end}.'),
|
|
462
485
|
log_path=log_path,
|
|
463
486
|
is_local=True,
|
|
464
487
|
follow_up_message=(
|
sky/volumes/server/core.py
CHANGED
|
@@ -213,6 +213,7 @@ def volume_apply(
|
|
|
213
213
|
# generate the storage name on cloud.
|
|
214
214
|
cloud_obj = registry.CLOUD_REGISTRY.from_str(cloud)
|
|
215
215
|
assert cloud_obj is not None
|
|
216
|
+
region, zone = cloud_obj.validate_region_zone(region, zone)
|
|
216
217
|
name_uuid = str(uuid.uuid4())[:6]
|
|
217
218
|
name_on_cloud = common_utils.make_cluster_name_on_cloud(
|
|
218
219
|
name, max_length=cloud_obj.max_cluster_name_length())
|
sky/volumes/volume.py
CHANGED
|
@@ -100,7 +100,7 @@ class Volume:
|
|
|
100
100
|
}
|
|
101
101
|
|
|
102
102
|
def _normalize_config(self) -> None:
|
|
103
|
-
"""
|
|
103
|
+
"""Normalize and validate the config."""
|
|
104
104
|
# Validate schema
|
|
105
105
|
common_utils.validate_schema(self.to_yaml_config(),
|
|
106
106
|
schemas.get_volume_schema(),
|
|
@@ -115,6 +115,18 @@ class Volume:
|
|
|
115
115
|
self.region = infra_info.region
|
|
116
116
|
self.zone = infra_info.zone
|
|
117
117
|
|
|
118
|
+
# Set cloud from volume type if not specified
|
|
119
|
+
cloud_obj_from_type = VOLUME_TYPE_TO_CLOUD.get(
|
|
120
|
+
volume_lib.VolumeType(self.type))
|
|
121
|
+
if self.cloud:
|
|
122
|
+
cloud_obj = registry.CLOUD_REGISTRY.from_str(self.cloud)
|
|
123
|
+
assert cloud_obj is not None
|
|
124
|
+
if not cloud_obj.is_same_cloud(cloud_obj_from_type):
|
|
125
|
+
raise ValueError(
|
|
126
|
+
f'Invalid cloud {self.cloud} for volume type {self.type}')
|
|
127
|
+
else:
|
|
128
|
+
self.cloud = str(cloud_obj_from_type)
|
|
129
|
+
|
|
118
130
|
def _adjust_config(self) -> None:
|
|
119
131
|
"""Adjust the volume config (e.g., parse size)."""
|
|
120
132
|
if self.size is None:
|
|
@@ -150,22 +162,9 @@ class Volume:
|
|
|
150
162
|
'use the --size flag.')
|
|
151
163
|
|
|
152
164
|
def validate_cloud_compatibility(self) -> None:
|
|
153
|
-
"""Validates
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
if self.cloud:
|
|
157
|
-
cloud_obj = registry.CLOUD_REGISTRY.from_str(self.cloud)
|
|
158
|
-
assert cloud_obj is not None
|
|
159
|
-
if not cloud_obj.is_same_cloud(cloud_obj_from_type):
|
|
160
|
-
raise ValueError(
|
|
161
|
-
f'Invalid cloud {self.cloud} for volume type {self.type}')
|
|
162
|
-
else:
|
|
163
|
-
self.cloud = str(cloud_obj_from_type)
|
|
164
|
-
cloud_obj = cloud_obj_from_type
|
|
165
|
-
assert cloud_obj is not None
|
|
166
|
-
|
|
167
|
-
self.region, self.zone = cloud_obj.validate_region_zone(
|
|
168
|
-
self.region, self.zone)
|
|
165
|
+
"""Validates region, zone, name, labels with the cloud."""
|
|
166
|
+
cloud_obj = registry.CLOUD_REGISTRY.from_str(self.cloud)
|
|
167
|
+
assert cloud_obj is not None
|
|
169
168
|
|
|
170
169
|
valid, err_msg = cloud_obj.is_volume_name_valid(self.name)
|
|
171
170
|
if not valid:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: skypilot-nightly
|
|
3
|
-
Version: 1.0.0.
|
|
3
|
+
Version: 1.0.0.dev20250926
|
|
4
4
|
Summary: SkyPilot: Run AI on Any Infra — Unified, Faster, Cheaper.
|
|
5
5
|
Author: SkyPilot Team
|
|
6
6
|
License: Apache 2.0
|
|
@@ -59,7 +59,7 @@ Requires-Dist: casbin
|
|
|
59
59
|
Requires-Dist: sqlalchemy_adapter
|
|
60
60
|
Requires-Dist: prometheus_client>=0.8.0
|
|
61
61
|
Requires-Dist: passlib
|
|
62
|
-
Requires-Dist: bcrypt
|
|
62
|
+
Requires-Dist: bcrypt==4.0.1
|
|
63
63
|
Requires-Dist: pyjwt
|
|
64
64
|
Requires-Dist: gitpython
|
|
65
65
|
Requires-Dist: types-paramiko
|
|
@@ -154,51 +154,51 @@ Requires-Dist: protobuf<7.0.0,>=5.26.1; extra == "server"
|
|
|
154
154
|
Requires-Dist: aiosqlite; extra == "server"
|
|
155
155
|
Requires-Dist: greenlet; extra == "server"
|
|
156
156
|
Provides-Extra: all
|
|
157
|
-
Requires-Dist:
|
|
158
|
-
Requires-Dist:
|
|
159
|
-
Requires-Dist: tomli; python_version < "3.11" and extra == "all"
|
|
160
|
-
Requires-Dist: azure-mgmt-compute>=33.0.0; extra == "all"
|
|
157
|
+
Requires-Dist: pyopenssl<24.3.0,>=23.2.0; extra == "all"
|
|
158
|
+
Requires-Dist: azure-core>=1.31.0; extra == "all"
|
|
161
159
|
Requires-Dist: docker; extra == "all"
|
|
162
|
-
Requires-Dist:
|
|
163
|
-
Requires-Dist:
|
|
164
|
-
Requires-Dist:
|
|
165
|
-
Requires-Dist: websockets; extra == "all"
|
|
160
|
+
Requires-Dist: ibm-cos-sdk; extra == "all"
|
|
161
|
+
Requires-Dist: azure-identity>=1.19.0; extra == "all"
|
|
162
|
+
Requires-Dist: azure-mgmt-compute>=33.0.0; extra == "all"
|
|
166
163
|
Requires-Dist: protobuf<7.0.0,>=5.26.1; extra == "all"
|
|
167
|
-
Requires-Dist: pyopenssl<24.3.0,>=23.2.0; extra == "all"
|
|
168
|
-
Requires-Dist: ibm-platform-services>=0.48.0; extra == "all"
|
|
169
|
-
Requires-Dist: runpod>=1.6.1; extra == "all"
|
|
170
|
-
Requires-Dist: nebius>=0.2.47; extra == "all"
|
|
171
|
-
Requires-Dist: pyjwt; extra == "all"
|
|
172
164
|
Requires-Dist: azure-cli>=2.65.0; extra == "all"
|
|
173
|
-
Requires-Dist:
|
|
174
|
-
Requires-Dist:
|
|
165
|
+
Requires-Dist: google-api-python-client>=2.69.0; extra == "all"
|
|
166
|
+
Requires-Dist: boto3>=1.26.1; extra == "all"
|
|
167
|
+
Requires-Dist: msrestazure; extra == "all"
|
|
168
|
+
Requires-Dist: ibm-platform-services>=0.48.0; extra == "all"
|
|
169
|
+
Requires-Dist: aiohttp; extra == "all"
|
|
170
|
+
Requires-Dist: colorama<0.4.5; extra == "all"
|
|
171
|
+
Requires-Dist: websockets; extra == "all"
|
|
172
|
+
Requires-Dist: ecsapi>=0.2.0; extra == "all"
|
|
173
|
+
Requires-Dist: kubernetes!=32.0.0,>=20.0.0; extra == "all"
|
|
174
|
+
Requires-Dist: tomli; python_version < "3.11" and extra == "all"
|
|
175
|
+
Requires-Dist: pydo>=0.3.0; extra == "all"
|
|
175
176
|
Requires-Dist: casbin; extra == "all"
|
|
177
|
+
Requires-Dist: ray[default]>=2.6.1; extra == "all"
|
|
176
178
|
Requires-Dist: azure-core>=1.24.0; extra == "all"
|
|
177
|
-
Requires-Dist:
|
|
178
|
-
Requires-Dist: greenlet; extra == "all"
|
|
179
|
-
Requires-Dist: msrestazure; extra == "all"
|
|
179
|
+
Requires-Dist: cudo-compute>=0.1.10; extra == "all"
|
|
180
180
|
Requires-Dist: sqlalchemy_adapter; extra == "all"
|
|
181
|
-
Requires-Dist:
|
|
182
|
-
Requires-Dist:
|
|
183
|
-
Requires-Dist:
|
|
184
|
-
Requires-Dist:
|
|
185
|
-
Requires-Dist: awscli>=1.27.10; extra == "all"
|
|
181
|
+
Requires-Dist: ibm-vpc; extra == "all"
|
|
182
|
+
Requires-Dist: runpod>=1.6.1; extra == "all"
|
|
183
|
+
Requires-Dist: passlib; extra == "all"
|
|
184
|
+
Requires-Dist: anyio; extra == "all"
|
|
186
185
|
Requires-Dist: grpcio>=1.63.0; extra == "all"
|
|
187
|
-
Requires-Dist:
|
|
186
|
+
Requires-Dist: python-dateutil; extra == "all"
|
|
187
|
+
Requires-Dist: nebius>=0.2.47; extra == "all"
|
|
188
188
|
Requires-Dist: pyvmomi==8.0.1.0.2; extra == "all"
|
|
189
|
-
Requires-Dist:
|
|
190
|
-
Requires-Dist:
|
|
191
|
-
Requires-Dist:
|
|
192
|
-
Requires-Dist: anyio; extra == "all"
|
|
193
|
-
Requires-Dist: colorama<0.4.5; extra == "all"
|
|
194
|
-
Requires-Dist: ecsapi>=0.2.0; extra == "all"
|
|
195
|
-
Requires-Dist: azure-core>=1.31.0; extra == "all"
|
|
196
|
-
Requires-Dist: google-api-python-client>=2.69.0; extra == "all"
|
|
197
|
-
Requires-Dist: ibm-vpc; extra == "all"
|
|
189
|
+
Requires-Dist: oci; extra == "all"
|
|
190
|
+
Requires-Dist: pyjwt; extra == "all"
|
|
191
|
+
Requires-Dist: msgraph-sdk; extra == "all"
|
|
198
192
|
Requires-Dist: azure-common; extra == "all"
|
|
199
193
|
Requires-Dist: azure-mgmt-network>=27.0.0; extra == "all"
|
|
200
|
-
Requires-Dist:
|
|
201
|
-
Requires-Dist:
|
|
194
|
+
Requires-Dist: vastai-sdk>=0.1.12; extra == "all"
|
|
195
|
+
Requires-Dist: azure-storage-blob>=12.23.1; extra == "all"
|
|
196
|
+
Requires-Dist: ibm-cloud-sdk-core; extra == "all"
|
|
197
|
+
Requires-Dist: aiosqlite; extra == "all"
|
|
198
|
+
Requires-Dist: awscli>=1.27.10; extra == "all"
|
|
199
|
+
Requires-Dist: botocore>=1.29.10; extra == "all"
|
|
200
|
+
Requires-Dist: google-cloud-storage; extra == "all"
|
|
201
|
+
Requires-Dist: greenlet; extra == "all"
|
|
202
202
|
Dynamic: author
|
|
203
203
|
Dynamic: classifier
|
|
204
204
|
Dynamic: description
|
{skypilot_nightly-1.0.0.dev20250925.dist-info → skypilot_nightly-1.0.0.dev20250926.dist-info}/RECORD
RENAMED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
sky/__init__.py,sha256=
|
|
1
|
+
sky/__init__.py,sha256=5DzNcNmJww2JcDpdra9LeeOy5UrWFipeCU8W9qAYpyk,6713
|
|
2
2
|
sky/admin_policy.py,sha256=XdcJnYqmude-LGGop-8U-FeiJcqtfYsYtIy4rmoCJnM,9799
|
|
3
3
|
sky/authentication.py,sha256=xWdnHD4b172-FPTcVFmRhYvt_JNVLYvgFkaFS5qvs-k,28210
|
|
4
4
|
sky/check.py,sha256=Z7D6txaOAEL7fyEQ8q-Zxk1aWaHpEcl412Rj2mThbQ0,31025
|
|
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=
|
|
7
|
+
sky/core.py,sha256=R9TT3NrPKGChKgOvHNwyiU2_EwQa_sffWu82NURdm7I,58209
|
|
8
8
|
sky/dag.py,sha256=0ZpAEDXuIFo1SP7YJpF9vXiFxpRwqP8od-UXMg95td8,3929
|
|
9
9
|
sky/exceptions.py,sha256=IprWNwo6z5cHE-vTuQ5bMcjCfE2kgwZ3PRuawLPucXY,20466
|
|
10
10
|
sky/execution.py,sha256=NIAywx4e3dOWv6eW2mc55nCcdaVl2gh0e_BO78w5BxY,35087
|
|
11
|
-
sky/global_user_state.py,sha256=
|
|
11
|
+
sky/global_user_state.py,sha256=Lc6NkhTNpW9ki-kEH7VYP-avK1BH8sUZPZ7hSRWBVUc,102511
|
|
12
12
|
sky/models.py,sha256=ZKisLai7vqUr6_BPev6Oziu5N23WLzTh9nRtHSlRchw,3999
|
|
13
13
|
sky/optimizer.py,sha256=iR57bL_8BeG6bh1sH3J6n6i65EBFjmyftezYM4nnDZA,64150
|
|
14
14
|
sky/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -37,7 +37,7 @@ sky/adaptors/vast.py,sha256=tpvmHi7IkQNzbbHVkeo04kUSajoEpSzXr2XgeO_I1LU,695
|
|
|
37
37
|
sky/adaptors/vsphere.py,sha256=zJP9SeObEoLrpgHW2VHvZE48EhgVf8GfAEIwBeaDMfM,2129
|
|
38
38
|
sky/backends/__init__.py,sha256=l1xXpkzPFMma0ZkT4GzVMu7uvgS3AsECg6zLc0S3JHQ,702
|
|
39
39
|
sky/backends/backend.py,sha256=6bvW1K1hVgxWiD4B8NiBD8OJ9ihfEdhyY5p60-3aQf4,8433
|
|
40
|
-
sky/backends/backend_utils.py,sha256=
|
|
40
|
+
sky/backends/backend_utils.py,sha256=osrNzT8w03ZZHq35YCx69p4F70yIKTsEKj1pq0t0r_M,176246
|
|
41
41
|
sky/backends/cloud_vm_ray_backend.py,sha256=h24UBmdG1dG7reIKKJlZG0uz7XsMV7di33x6FkSCeMI,301736
|
|
42
42
|
sky/backends/docker_utils.py,sha256=_EhM6NStZDAwcegppQqExaB5iuSn1qL4xFFUqXAz2Uk,8392
|
|
43
43
|
sky/backends/local_docker_backend.py,sha256=EyLYwJSihhOEOwpgzXVtykjByEJuZOrqEr9N0cta3k4,17563
|
|
@@ -81,13 +81,13 @@ sky/catalog/data_fetchers/fetch_seeweb.py,sha256=jzFpZy5Fb0UCFdRUFTqoZGsPzlaIAjv
|
|
|
81
81
|
sky/catalog/data_fetchers/fetch_vast.py,sha256=xoVDSsQVgMLzyibCFN7yDgyH1Y96gk5G53to1ZAGRyg,5017
|
|
82
82
|
sky/catalog/data_fetchers/fetch_vsphere.py,sha256=Yf7tKzwJsQ_4f64IT1EAP108C1D3Rg35RUIwp7UX8KI,21438
|
|
83
83
|
sky/client/__init__.py,sha256=pz6xvVSd9X-gwqbsDL0E9QOojYqM0KAD0j-NCyCIF1k,38
|
|
84
|
-
sky/client/common.py,sha256=
|
|
84
|
+
sky/client/common.py,sha256=j8ENgeRN3KdKBf0-pi1K9w1HtkqrkBR12QtF_wGWG8M,16950
|
|
85
85
|
sky/client/oauth.py,sha256=sNJ_DMsSTcxluj5FeNQ2IafZJLImRFmCAZ79bXeABn4,2871
|
|
86
|
-
sky/client/sdk.py,sha256
|
|
86
|
+
sky/client/sdk.py,sha256=T7EYx9EKO7FKy_YT4LJDXcgRQQxEQzsVZGGZBBH9d6E,107621
|
|
87
87
|
sky/client/sdk_async.py,sha256=9ThZq9kmaXjB5T__7Gmcgvqlr_T8JEPsPXPaFo58Rk8,31100
|
|
88
88
|
sky/client/service_account_auth.py,sha256=5jXk0G6ufuW-SHCO7BEHQeTO0_2a8KfFmA63auXFRj4,1529
|
|
89
89
|
sky/client/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
90
|
-
sky/client/cli/command.py,sha256=
|
|
90
|
+
sky/client/cli/command.py,sha256=s2BHJot_2GAxBiiqIHUlSeyKXa6KJlz51iD3rOAoqPQ,249732
|
|
91
91
|
sky/client/cli/deprecation_utils.py,sha256=H_d5UyF2CekEoThduAzt5cihBO8hwKYMu0-Wqfbjv5E,3370
|
|
92
92
|
sky/client/cli/flags.py,sha256=lLXHooU4HEslbHJuGAiCrKYkJZx99hAKaJbstw7s1bc,12136
|
|
93
93
|
sky/clouds/__init__.py,sha256=hX6oZM4U6WuXQclg9-8mP2OAeFbzTbaVuPzJxqudKIc,1750
|
|
@@ -118,20 +118,20 @@ sky/clouds/utils/azure_utils.py,sha256=NToRBnhEyuUvb-nBnsKTxjhOBRkMcrelL8LK4w6s4
|
|
|
118
118
|
sky/clouds/utils/gcp_utils.py,sha256=09MF4Vx0EW7S-GXGpyxpl2aQlHrqeu9ioV0nyionAyk,9890
|
|
119
119
|
sky/clouds/utils/oci_utils.py,sha256=TFqAqRLggg4Z0bhxrrq8nouSSomZy-ub1frHXEkud2M,7302
|
|
120
120
|
sky/clouds/utils/scp_utils.py,sha256=VGuccVO5uFGr8-yolWSoYrgr11z6cIeDBGcqkBzAyOs,18409
|
|
121
|
-
sky/dashboard/out/404.html,sha256=
|
|
122
|
-
sky/dashboard/out/clusters.html,sha256=
|
|
123
|
-
sky/dashboard/out/config.html,sha256=
|
|
121
|
+
sky/dashboard/out/404.html,sha256=j1FmpIHZ8tqQ7uzP6e4qYdgHSITKVM-srSd9wwT1lnk,1423
|
|
122
|
+
sky/dashboard/out/clusters.html,sha256=uyvxY-4mq32q2yMCtwHfEbNOOoxuUE-TWGnslzEv-yY,1418
|
|
123
|
+
sky/dashboard/out/config.html,sha256=SGJ-SbCHyZt3r2Ite0jaVMWiKJLSdXuvb6TA3292c-s,1414
|
|
124
124
|
sky/dashboard/out/favicon.ico,sha256=XilUZZglAl_1zRsg85QsbQgmQAzGPQjcUIJ-A3AzYn8,93590
|
|
125
|
-
sky/dashboard/out/index.html,sha256=
|
|
126
|
-
sky/dashboard/out/infra.html,sha256=
|
|
127
|
-
sky/dashboard/out/jobs.html,sha256=
|
|
125
|
+
sky/dashboard/out/index.html,sha256=h2KEu7h-jUQSEJtrT1y8dTQXRff85notBMrNQCxdefU,1407
|
|
126
|
+
sky/dashboard/out/infra.html,sha256=xAjw88z6T_yd9YiO_IAvK8sDC977eNoZpYQuJP6OKxY,1412
|
|
127
|
+
sky/dashboard/out/jobs.html,sha256=1K4pNsxWiWB3tknC0gsq4qXpGXzpYtzlwoeki4umfts,1410
|
|
128
128
|
sky/dashboard/out/skypilot.svg,sha256=c0iRtlfLlaUm2p0rG9NFmo5FN0Qhf3pq5Xph-AeMPJw,5064
|
|
129
|
-
sky/dashboard/out/users.html,sha256=
|
|
130
|
-
sky/dashboard/out/volumes.html,sha256=
|
|
131
|
-
sky/dashboard/out/workspaces.html,sha256=
|
|
132
|
-
sky/dashboard/out/_next/static/
|
|
133
|
-
sky/dashboard/out/_next/static/
|
|
134
|
-
sky/dashboard/out/_next/static/chunks/1121-
|
|
129
|
+
sky/dashboard/out/users.html,sha256=dWVmL888KaFitx2fF0dzo_GCA5tNWsKw1o_MXPLgBwc,1412
|
|
130
|
+
sky/dashboard/out/volumes.html,sha256=LWby354l0oPPdL7Audo3YtmsynS1cKr1BFIQtjckm0M,1416
|
|
131
|
+
sky/dashboard/out/workspaces.html,sha256=imFmUD30DiZ_4WBmmAMldoVFHbnVx6FdO5JEbfDhMyE,1422
|
|
132
|
+
sky/dashboard/out/_next/static/VXU6_xE28M55BOdwmUUJS/_buildManifest.js,sha256=2VOffezYWwqKP0NKG6tfQPnNZnMOt7zo80K1WvXbqzM,2428
|
|
133
|
+
sky/dashboard/out/_next/static/VXU6_xE28M55BOdwmUUJS/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
|
|
134
|
+
sky/dashboard/out/_next/static/chunks/1121-d0782b9251f0fcd3.js,sha256=jIvnDxaTleAz3HdZK9-RScSB0ZMg8-D63KQmn8avaHI,8883
|
|
135
135
|
sky/dashboard/out/_next/static/chunks/1141-159df2d4c441a9d1.js,sha256=kdYh_Ek9hdib5emC7Iezojh3qASBnOIUHH5zX_ScR0U,17355
|
|
136
136
|
sky/dashboard/out/_next/static/chunks/1272-1ef0bf0237faccdb.js,sha256=VJ6y-Z6Eg2T93hQIRfWAbjAkQ7nQhglmIaVbEpKSILY,38451
|
|
137
137
|
sky/dashboard/out/_next/static/chunks/1836-37fede578e2da5f8.js,sha256=2ibdKVUjO2N62T4dtfY0xsRFwG-IJh41sK450Dv0_48,10554
|
|
@@ -160,13 +160,13 @@ sky/dashboard/out/_next/static/chunks/754-d0da8ab45f9509e9.js,sha256=R6UUmK1P1Pf
|
|
|
160
160
|
sky/dashboard/out/_next/static/chunks/7669.1f5d9a402bf5cc42.js,sha256=FbppLXkHKPxzVKrJg15FwCoqLU18yn5jBgYgDkjqDGM,52179
|
|
161
161
|
sky/dashboard/out/_next/static/chunks/8969-d8bc3a2b9cf839a9.js,sha256=zlNQBdtDWArQvpMDp0STGPDJ3DtCsWOwwGhqUwiI694,13411
|
|
162
162
|
sky/dashboard/out/_next/static/chunks/9025.c12318fb6a1a9093.js,sha256=1Txv8nMuBYtB0UoWdwmFbkA2iB85jgKB1EJJrE1ETDo,10605
|
|
163
|
-
sky/dashboard/out/_next/static/chunks/9037-
|
|
163
|
+
sky/dashboard/out/_next/static/chunks/9037-d0c00018a5ba198c.js,sha256=6P21MKO405fAX4VTgiwOI6OMzey3HW2TfPvOMUMmUVQ,19843
|
|
164
164
|
sky/dashboard/out/_next/static/chunks/fd9d1056-86323a29a8f7e46a.js,sha256=2lquiZSfbI-gX4j4TW4JSMLL_D5ShqwydgWpFyXrTy8,172834
|
|
165
165
|
sky/dashboard/out/_next/static/chunks/framework-cf60a09ccd051a10.js,sha256=_QbamfAbTV4_xMVOTjz0rhiAPAi8ET5MuSNjjW5oMng,140965
|
|
166
166
|
sky/dashboard/out/_next/static/chunks/main-app-587214043926b3cc.js,sha256=t7glRfataAjNw691Wni-ZU4a3BsygRzPKoI8NOm-lsY,116244
|
|
167
167
|
sky/dashboard/out/_next/static/chunks/main-f15ccb73239a3bf1.js,sha256=jxOPLDVX3rkMc_jvGx2a-N2v6mvfOa8O6V0o-sLT0tI,110208
|
|
168
168
|
sky/dashboard/out/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js,sha256=6QPOwdWeAVe8x-SsiDrm-Ga6u2DkqgG5SFqglrlyIgA,91381
|
|
169
|
-
sky/dashboard/out/_next/static/chunks/webpack-
|
|
169
|
+
sky/dashboard/out/_next/static/chunks/webpack-8e64d11e58eab5cb.js,sha256=iVnZXu5Q8BDmUOV-UCi0MjABZiWI5MK1DAYhcxITIZQ,4742
|
|
170
170
|
sky/dashboard/out/_next/static/chunks/pages/_app-ce361c6959bc2001.js,sha256=mllo4Yasw61zRtEO49uE_MrAutg9josSJShD0DNSjf0,95518
|
|
171
171
|
sky/dashboard/out/_next/static/chunks/pages/_error-c66a4e8afc46f17b.js,sha256=vjERjtMAbVk-19LyPf1Jc-H6TMcrSznSz6brzNqbqf8,253
|
|
172
172
|
sky/dashboard/out/_next/static/chunks/pages/clusters-469814d711d63b1b.js,sha256=p8CQtv5n745WbV7QdyCapmglI2s_2UBB-f_KZE4RAZg,879
|
|
@@ -178,21 +178,21 @@ sky/dashboard/out/_next/static/chunks/pages/users-018bf31cda52e11b.js,sha256=mZu
|
|
|
178
178
|
sky/dashboard/out/_next/static/chunks/pages/volumes-739726d6b823f532.js,sha256=URJ4PMHh15XCXB6os2a7ymR3mG3MfTNrKyizYEhW2OE,836
|
|
179
179
|
sky/dashboard/out/_next/static/chunks/pages/workspaces-7528cc0ef8c522c5.js,sha256=y_qEXM9YPRja20D8IVLj8mgIEHQPQr2Le733bVrsXJw,863
|
|
180
180
|
sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-e052384df65ef200.js,sha256=i9XnmK5y5f83bYYZIAdMHPsPixB5FcTgOPKtIl3ADFM,19942
|
|
181
|
-
sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-
|
|
181
|
+
sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-ad77b12fc736dca3.js,sha256=DJ5SwyD8Jl58gx8M3uU1aBAaQJX6fL_fjFlIEXpLXA4,26086
|
|
182
182
|
sky/dashboard/out/_next/static/chunks/pages/infra/[context]-6563820e094f68ca.js,sha256=P3fWbG3DX-Q1SusyuaCuJILvs9suIxNsdo1SRAenZpc,847
|
|
183
183
|
sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-dd64309c3fe67ed2.js,sha256=pDCMgJauG-gMgWzCSTF3CBcc_WduZw75NhuyRBbm8bg,29203
|
|
184
184
|
sky/dashboard/out/_next/static/chunks/pages/jobs/pools/[pool]-07349868f7905d37.js,sha256=Q0LIzBnqZxcH4wL87way-kjcfK74u2K75ytBzz4W0PY,25590
|
|
185
185
|
sky/dashboard/out/_next/static/chunks/pages/workspace/new-3f88a1c7e86a3f86.js,sha256=83s5N5CZwIaRcmYMfqn2we60n2VRmgFw6Tbx18b8-e0,762
|
|
186
186
|
sky/dashboard/out/_next/static/chunks/pages/workspaces/[name]-af76bb06dbb3954f.js,sha256=cGCpDszMI6ckUHVelwAh9ZVk1erfz_UXSLz9GCqGUAE,1495
|
|
187
187
|
sky/dashboard/out/_next/static/css/4614e06482d7309e.css,sha256=nk6GriyGVd1aGXrLd7BcMibnN4v0z-Q_mXGxrHFWqrE,56126
|
|
188
|
-
sky/dashboard/out/clusters/[cluster].html,sha256=
|
|
189
|
-
sky/dashboard/out/clusters/[cluster]/[job].html,sha256=
|
|
190
|
-
sky/dashboard/out/infra/[context].html,sha256=
|
|
191
|
-
sky/dashboard/out/jobs/[job].html,sha256=
|
|
192
|
-
sky/dashboard/out/jobs/pools/[pool].html,sha256=
|
|
188
|
+
sky/dashboard/out/clusters/[cluster].html,sha256=0FdegFVZqZ8-93X5sdOW2XQ6km0s2Srv2JQzFLt0kng,2936
|
|
189
|
+
sky/dashboard/out/clusters/[cluster]/[job].html,sha256=M0C5NvVDSgKNLDDV3IDd6APdN2FTvEVt3vG3SWIHpl4,2073
|
|
190
|
+
sky/dashboard/out/infra/[context].html,sha256=l-3tLT9GQOlcVUiW8_SeBWg0o_0nIFPiAqxkMhDItdE,1436
|
|
191
|
+
sky/dashboard/out/jobs/[job].html,sha256=YkiySFCOVLyNw1osIrSWb-ZmyTSEvNZeH4Kafjm4ceQ,2304
|
|
192
|
+
sky/dashboard/out/jobs/pools/[pool].html,sha256=YGjVcFNdruCVYJCaEvyClbEk51BJD2N6PUZqkOX5xN8,2142
|
|
193
193
|
sky/dashboard/out/videos/cursor-small.mp4,sha256=8tRdp1vjawOrXUar1cfjOc-nkaKmcwCPZx_LO0XlCvQ,203285
|
|
194
|
-
sky/dashboard/out/workspace/new.html,sha256=
|
|
195
|
-
sky/dashboard/out/workspaces/[name].html,sha256=
|
|
194
|
+
sky/dashboard/out/workspace/new.html,sha256=tt5ucivgKN-S48YbNmJKW2X4Xwfj_GzQnVJlNtgF7MI,1428
|
|
195
|
+
sky/dashboard/out/workspaces/[name].html,sha256=am7TjP_9iW-8LayUfOdcTiPaW9RYezRtDXwecCfSbds,2759
|
|
196
196
|
sky/data/__init__.py,sha256=Nhaf1NURisXpZuwWANa2IuCyppIuc720FRwqSE2oEwY,184
|
|
197
197
|
sky/data/data_transfer.py,sha256=N8b0CQebDuHieXjvEVwlYmK6DbQxUGG1RQJEyTbh3dU,12040
|
|
198
198
|
sky/data/data_utils.py,sha256=AjEA_JRjo9NBMlv-Lq5iV4lBED_YZ1VqBR9pG6fGVWE,35179
|
|
@@ -200,8 +200,8 @@ sky/data/mounting_utils.py,sha256=QZjcSNB3HiQgzIodbx0I-IyKaW_XUzUuNTpgJAZAfEk,24
|
|
|
200
200
|
sky/data/storage.py,sha256=T26wy8eFQRaP-gH1PPp6fhIaVdPfyeb0RKvKf8oZjl0,208910
|
|
201
201
|
sky/data/storage_utils.py,sha256=YVLrBdZvQr5wvug0TYOpuSuSriySIiqkD-xsdAIB84s,14978
|
|
202
202
|
sky/jobs/__init__.py,sha256=BiABNdlab7xZDOv4C34kc1XuxG6C_Ip7Q96mT2iCnIg,1686
|
|
203
|
-
sky/jobs/constants.py,sha256=
|
|
204
|
-
sky/jobs/controller.py,sha256=
|
|
203
|
+
sky/jobs/constants.py,sha256=74kv_hCMbzDCYIXqa8Tc2BmECweNZIO2s5mP0IDunmg,3500
|
|
204
|
+
sky/jobs/controller.py,sha256=G9uaLk8hkc5MTSgMTcU5EHbA5mzQsws11FGGPBiaK0E,56048
|
|
205
205
|
sky/jobs/recovery_strategy.py,sha256=w8HqSnnVJ10nH-ENFO3NpIM70cyxBzTijzH6EFggiaM,36948
|
|
206
206
|
sky/jobs/scheduler.py,sha256=rUait5vQoIxAMuxWDRkR6DtFpmmVqQHxECHyhhrY9HI,16564
|
|
207
207
|
sky/jobs/state.py,sha256=LTpmMrEdFoaXXrPDVWM9yzBpBkFkYRj3RAJr-iBvBnc,77472
|
|
@@ -210,7 +210,7 @@ sky/jobs/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
210
210
|
sky/jobs/client/sdk.py,sha256=IL2zVKiXLbgiZY0ewCPv42dFvQ5FAB_QwwGwZlMqMBo,17071
|
|
211
211
|
sky/jobs/client/sdk_async.py,sha256=hsyPshdpbKG0RUzw2ntDeAJAkOIl-O9WDoSREV_km3o,4875
|
|
212
212
|
sky/jobs/server/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
213
|
-
sky/jobs/server/core.py,sha256
|
|
213
|
+
sky/jobs/server/core.py,sha256=CnDjJmFTERoMs0RFUonG6m3Ua2fpD9tlGiSnwN4-6nE,43567
|
|
214
214
|
sky/jobs/server/server.py,sha256=mklShi9XBUyyF8Wv_hdK8ag0_8mK4Bh769NzGLWYBeg,8890
|
|
215
215
|
sky/jobs/server/utils.py,sha256=eb4QSaNQb-d_m8yJFt2Q8iaj6xkJrxz1v2b7Iq2nhmM,3573
|
|
216
216
|
sky/logs/__init__.py,sha256=zW4gAEvWDz5S53FlLp3krAuKrmTSJ0e3kZDnhxSbW4E,722
|
|
@@ -292,7 +292,7 @@ sky/provision/primeintellect/__init__.py,sha256=gzCdC0CBJ2au7JA5ZvKlQY0vJuoNe5WA
|
|
|
292
292
|
sky/provision/primeintellect/config.py,sha256=IsPoOAdTFHx8k6VsaNgOJItFS0Z0V6cjwFH9QQ8k7PE,330
|
|
293
293
|
sky/provision/primeintellect/instance.py,sha256=GjvlOwlT4PTtQfk61X1v94HrFDvA1o_pxsu4GDvcLhI,18318
|
|
294
294
|
sky/provision/primeintellect/utils.py,sha256=-5rrZ3hTchqcyJasJtv2PRKxj938A_ZcWmF6hfQRgzQ,15320
|
|
295
|
-
sky/provision/runpod/__init__.py,sha256=
|
|
295
|
+
sky/provision/runpod/__init__.py,sha256=fAIjLnvrRIUXKxz4yIS_VrdlYqPu0wGeKmXjsoXYpS8,847
|
|
296
296
|
sky/provision/runpod/config.py,sha256=9ulZJVL7nHuxhTdoj8D7lNn7SdicJ5zc6FIcHIG9tcg,321
|
|
297
297
|
sky/provision/runpod/instance.py,sha256=FjQxgZ8TSmH7rwUqyOYiXji5YOlntzOfpSXVYHpv7cA,11238
|
|
298
298
|
sky/provision/runpod/utils.py,sha256=rScHrVpM__V_a4m1LDKaOJZVQIBquFxfc0tfIPVfh1Q,14127
|
|
@@ -340,6 +340,7 @@ sky/schemas/db/global_user_state/005_cluster_event.py,sha256=ceIhoILBxESCIhhEXSE
|
|
|
340
340
|
sky/schemas/db/global_user_state/006_provision_log.py,sha256=oj5Av1Zn58k_BWQqXpYB--8O4JrlUYXY5ndLCNU-ziM,1252
|
|
341
341
|
sky/schemas/db/global_user_state/007_cluster_event_request_id.py,sha256=LpXRCAzQZ1ly3dR-kMlMNHuEgiGpPdF7tA2sbMxa6_M,900
|
|
342
342
|
sky/schemas/db/global_user_state/008_skylet_ssh_tunnel_metadata.py,sha256=z8yfOVHFyaZlt4K-93nCLPPXcgeJMrg1MySET5pXEe0,937
|
|
343
|
+
sky/schemas/db/global_user_state/009_last_activity_and_launched_at.py,sha256=Q45bY_9_yRnZRpWBYDB4-GQhFkJggqzlhyaoeQMR8MU,3297
|
|
343
344
|
sky/schemas/db/serve_state/001_initial_schema.py,sha256=9vy5hO4Zqe-DN-33vBJQTvgJnDFcTgz18gKfO3UB62g,2595
|
|
344
345
|
sky/schemas/db/spot_jobs/001_initial_schema.py,sha256=eHT3GxFHQhySA1rO5uZq9QlloJdtTMQp93f0CRmayf8,3759
|
|
345
346
|
sky/schemas/db/spot_jobs/002_cluster_pool.py,sha256=9ef0D_lUb4WB0e9uz8E0my_X4cgK_oX-WIj4p8usbOA,1369
|
|
@@ -395,7 +396,7 @@ sky/server/html/token_page.html,sha256=eUndS5u1foL9vaWGPRTLMt7lCzD1g0wYJ2v_EeeFz
|
|
|
395
396
|
sky/server/requests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
396
397
|
sky/server/requests/event_loop.py,sha256=OhpPbuce65bbjpGRlcJa78AVnYSm08SzFKt70ypCUuQ,1211
|
|
397
398
|
sky/server/requests/executor.py,sha256=0TVY8OhASBtBqFPUlvBu0BjyqKfKQfJuLck2DAuu-yw,33070
|
|
398
|
-
sky/server/requests/payloads.py,sha256=
|
|
399
|
+
sky/server/requests/payloads.py,sha256=4ZXDJuu35lQiQ06aJNfTzSGQxCGSxZZgBsAWcf3nKJc,28022
|
|
399
400
|
sky/server/requests/preconditions.py,sha256=En-mSIe8JXDkiRCMlpgyJGFgYDnhthGReihV5u0oqy8,7283
|
|
400
401
|
sky/server/requests/process.py,sha256=UpJp5rZizNMFRCNRtudFSjbcJhFarFbtAGDWI9x_ZyE,13197
|
|
401
402
|
sky/server/requests/requests.py,sha256=wqiAiH4miFz3C2ZC5tDK-YQgAVMnpbE0wBiKx0nI39c,30146
|
|
@@ -407,15 +408,15 @@ sky/server/requests/serializers/decoders.py,sha256=3SSfn1S1H0zEwncMRw3D8pfyqz_sW
|
|
|
407
408
|
sky/server/requests/serializers/encoders.py,sha256=nAiFssF3UD6dt0LdiGVpvpod90HmnyXZVZ2fO-UE8iA,7900
|
|
408
409
|
sky/setup_files/MANIFEST.in,sha256=4gbgHHwSdP6BbMJv5XOt-2K6wUVWF_T9CGsdESvh918,776
|
|
409
410
|
sky/setup_files/alembic.ini,sha256=854_UKvCaFmZ8vI16tSHbGgP9IMFQ42Td6c9Zmn2Oxs,5079
|
|
410
|
-
sky/setup_files/dependencies.py,sha256=
|
|
411
|
+
sky/setup_files/dependencies.py,sha256=sgsKCFkGlZXFm1xi50X9TvwM4L_pIhxls-ySAbfZJ94,8888
|
|
411
412
|
sky/setup_files/setup.py,sha256=4M8u9Y4wwmFCJk-EfsnMWtpNq7ynzqbjdVTKW3w5GXA,7820
|
|
412
413
|
sky/skylet/LICENSE,sha256=BnFrJSvUFpMUoH5mOpWnEvaC5R6Uux8W6WXgrte8iYg,12381
|
|
413
414
|
sky/skylet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
414
415
|
sky/skylet/attempt_skylet.py,sha256=BbnCgMDGc1wxZx6Olp7ezhsXC0E1aYhmfug-9NrJ00g,2137
|
|
415
416
|
sky/skylet/autostop_lib.py,sha256=2eab980ckQ5dA2DFAJlI5bAJ6EI7YI-JSlzFoTA9XwU,9698
|
|
416
417
|
sky/skylet/configs.py,sha256=nNBnpuzoU696FbC3Nv0qKVSDuTw4GAbr7eCcg0_Sldo,2135
|
|
417
|
-
sky/skylet/constants.py,sha256=
|
|
418
|
-
sky/skylet/events.py,sha256=
|
|
418
|
+
sky/skylet/constants.py,sha256=4iMNVMHpNEtXDWYvxScAw7rDsNPt5z0Yyy8eL6jQOgs,24823
|
|
419
|
+
sky/skylet/events.py,sha256=9MFVSSzHZNPPuS5mKjCRdpJv9i5pou7Hk7qxL-0u1F8,15826
|
|
419
420
|
sky/skylet/job_lib.py,sha256=-qzv1nCGrrN5zB8ZueBFlLDOlmQtP7DRuCu62GrJQus,54232
|
|
420
421
|
sky/skylet/log_lib.py,sha256=EC-Vmnz86Uz5SLpiz9p14J3owBaF-GbFkyixQ3KfPqg,23775
|
|
421
422
|
sky/skylet/log_lib.pyi,sha256=OI4izel66u3Rr3H6OFXRIJfmM8HJD30VPpdlfwqM3IU,4762
|
|
@@ -454,11 +455,11 @@ sky/templates/fluidstack-ray.yml.j2,sha256=dNr9svMNp0z6-PHyQeRa6Hl3SbgqMESgBdfpv
|
|
|
454
455
|
sky/templates/gcp-ray.yml.j2,sha256=WO07ZUGBS6mWCMcdrmcXNGKSNTxhmOb6lMqwycnEFc4,11860
|
|
455
456
|
sky/templates/hyperbolic-ray.yml.j2,sha256=ThGcxd9m6RbgnZcT6imdikimwRhO5baYrP2h3Wx4HXM,2488
|
|
456
457
|
sky/templates/ibm-ray.yml.j2,sha256=n_EsoqQx1DUPDh7ZgCxvlEEZnROJ4rBXrFcHYVRIN2c,6907
|
|
457
|
-
sky/templates/jobs-controller.yaml.j2,sha256=
|
|
458
|
+
sky/templates/jobs-controller.yaml.j2,sha256=Yif85ihH1Q7YziQ55-KkLaBkkbZUrtE5lmQf8vYpAwM,2935
|
|
458
459
|
sky/templates/kubernetes-ingress.yml.j2,sha256=73iDklVDWBMbItg0IexCa6_ClXPJOxw7PWz3leku4nE,1340
|
|
459
460
|
sky/templates/kubernetes-loadbalancer.yml.j2,sha256=Dc44sC_-EwDG69eZoD4pkLKQjzxH_qrlhd-rZ2gePJc,804
|
|
460
461
|
sky/templates/kubernetes-port-forward-proxy-command.sh,sha256=iw7mypHszg6Ggq9MbyiYMFOkSlXaQZulaxqC5IWYGCc,3381
|
|
461
|
-
sky/templates/kubernetes-ray.yml.j2,sha256=
|
|
462
|
+
sky/templates/kubernetes-ray.yml.j2,sha256=DlNsBu4nUSTCG5FIdYq-v4-98vScv4S60Ol3s6OQN24,64776
|
|
462
463
|
sky/templates/kubernetes-ssh-jump.yml.j2,sha256=k5W5sOIMppU7dDkJMwPlqsUcb92y7L5_TVG3hkgMy8M,2747
|
|
463
464
|
sky/templates/lambda-ray.yml.j2,sha256=PbUjxrGhyxhXxL2cmONAI_PRsua3I3Xr5V8yoEy7H6c,4760
|
|
464
465
|
sky/templates/local-ray.yml.j2,sha256=FNHeyHF6nW9nU9QLIZceUWfvrFTTcO51KqhTnYCEFaA,1185
|
|
@@ -531,8 +532,8 @@ sky/utils/aws/get_default_security_group.py,sha256=LPzz5133ZUMbzDD3iqqACL9Pdlgqi
|
|
|
531
532
|
sky/utils/cli_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
532
533
|
sky/utils/cli_utils/status_utils.py,sha256=_hdPmlFC3YOnJkttHx2GMGc9lBQqRWY8WTWc1ZWR4GI,16183
|
|
533
534
|
sky/utils/db/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
534
|
-
sky/utils/db/db_utils.py,sha256=
|
|
535
|
-
sky/utils/db/migration_utils.py,sha256=
|
|
535
|
+
sky/utils/db/db_utils.py,sha256=TMmgKOKpuKOscXGM6Hu-7ZTVTyfbBib-eiysNQqDQ60,16504
|
|
536
|
+
sky/utils/db/migration_utils.py,sha256=5MkXajbf9WGbZCnUZr7ntTr_d0ynDg3pnHvoPwgez4w,4438
|
|
536
537
|
sky/utils/kubernetes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
537
538
|
sky/utils/kubernetes/cleanup-tunnel.sh,sha256=rXMXuMfyB9bzKjLvXdMCjimDVvdjGPMXuqeo2ZNx9OA,2244
|
|
538
539
|
sky/utils/kubernetes/config_map_utils.py,sha256=Qq-Glt1SeYDfhcCqcpRtBDRPum0CYR50gpoa_Xm7u1s,4754
|
|
@@ -545,26 +546,26 @@ sky/utils/kubernetes/generate_kubeconfig.sh,sha256=JnHiFJ8RTULB55jpbbmQrixzxLpc2
|
|
|
545
546
|
sky/utils/kubernetes/gpu_labeler.py,sha256=9Jr-8p8NdWhvwB9C8aCx3CB8WExOzCoRhdwCPx7G30s,10389
|
|
546
547
|
sky/utils/kubernetes/k8s_gpu_labeler_job.yaml,sha256=k0TBoQ4zgf79-sVkixKSGYFHQ7ZWF5gdVIZPupCCo9A,1224
|
|
547
548
|
sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml,sha256=VLKT2KKimZu1GDg_4AIlIt488oMQvhRZWwsj9vBbPUg,3812
|
|
548
|
-
sky/utils/kubernetes/kubernetes_deploy_utils.py,sha256=
|
|
549
|
+
sky/utils/kubernetes/kubernetes_deploy_utils.py,sha256=B8pjaEl1JE9uAEmIqY1kfVj7vbuztWPa8Xacdbp58sU,22142
|
|
549
550
|
sky/utils/kubernetes/rsync_helper.sh,sha256=MT29sI5iD2QxYlXFwrN16oq0Er4TPFQVs4Z4A3U4a7Q,2483
|
|
550
551
|
sky/utils/kubernetes/ssh-tunnel.sh,sha256=60eHKF7phJe9pFEkGlqdwWzI80tpog8QCkL7fAbIAic,12143
|
|
551
552
|
sky/utils/kubernetes/ssh_jump_lifecycle_manager.py,sha256=Kq1MDygF2IxFmu9FXpCxqucXLmeUrvs6OtRij6XTQbo,6554
|
|
552
553
|
sky/utils/kubernetes/ssh_utils.py,sha256=hPV2gU6j3j1aVf8kFvkux_KE88R5j8-JUDEopG6v70o,9046
|
|
553
554
|
sky/volumes/__init__.py,sha256=oy7JTgRXxkK2nOOF-OWivr0xeSL1-Syz703kZEuUnn0,241
|
|
554
555
|
sky/volumes/utils.py,sha256=rBUDbR2nGmoreVXGs_6DbxHKzp9Yyg36eTnsqo4JKQk,7408
|
|
555
|
-
sky/volumes/volume.py,sha256=
|
|
556
|
+
sky/volumes/volume.py,sha256=8K0EfriVslXmVnbIj0FJEv0TAoCvUpls9pSrdLAMujc,7842
|
|
556
557
|
sky/volumes/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
557
558
|
sky/volumes/client/sdk.py,sha256=o6facpXM6s2CYxTeVsKgkeGoXYMBK84HfYTBLnFkhCA,4148
|
|
558
559
|
sky/volumes/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
559
|
-
sky/volumes/server/core.py,sha256=
|
|
560
|
+
sky/volumes/server/core.py,sha256=IqqcmZiPo46Kz_69_P2pHubhXvwIDPYidRajil3Or5Q,9902
|
|
560
561
|
sky/volumes/server/server.py,sha256=eCRCygyGeaTkrae7gxjscqTpJ3EaaRjS_mnsHBkrR5E,4552
|
|
561
562
|
sky/workspaces/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
562
563
|
sky/workspaces/core.py,sha256=kRrdh-8MhX1953pML1B_DoStnDuNrsmHcZlnWoAxVo0,27218
|
|
563
564
|
sky/workspaces/server.py,sha256=Box45DS54xXGHy7I3tGKGy-JP0a8G_z6IhfvGlEXtsA,3439
|
|
564
565
|
sky/workspaces/utils.py,sha256=IIAiFoS6sdb2t0X5YoX9AietpTanZUQNTK8cePun-sY,2143
|
|
565
|
-
skypilot_nightly-1.0.0.
|
|
566
|
-
skypilot_nightly-1.0.0.
|
|
567
|
-
skypilot_nightly-1.0.0.
|
|
568
|
-
skypilot_nightly-1.0.0.
|
|
569
|
-
skypilot_nightly-1.0.0.
|
|
570
|
-
skypilot_nightly-1.0.0.
|
|
566
|
+
skypilot_nightly-1.0.0.dev20250926.dist-info/licenses/LICENSE,sha256=emRJAvE7ngL6x0RhQvlns5wJzGI3NEQ_WMjNmd9TZc4,12170
|
|
567
|
+
skypilot_nightly-1.0.0.dev20250926.dist-info/METADATA,sha256=37tf3tUL8ThZYnsKNSfY22KkDTl3sjEB_M7MxX_Y0us,20433
|
|
568
|
+
skypilot_nightly-1.0.0.dev20250926.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
569
|
+
skypilot_nightly-1.0.0.dev20250926.dist-info/entry_points.txt,sha256=StA6HYpuHj-Y61L2Ze-hK2IcLWgLZcML5gJu8cs6nU4,36
|
|
570
|
+
skypilot_nightly-1.0.0.dev20250926.dist-info/top_level.txt,sha256=qA8QuiNNb6Y1OF-pCUtPEr6sLEwy2xJX06Bd_CrtrHY,4
|
|
571
|
+
skypilot_nightly-1.0.0.dev20250926.dist-info/RECORD,,
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1121],{50326:function(e,t,a){a.d(t,{$N:function(){return m},Be:function(){return h},Vq:function(){return c},cN:function(){return _},cZ:function(){return d},fK:function(){return f}});var r=a(85893),s=a(67294),o=a(6327),n=a(32350),l=a(43767);let c=o.fC;o.xz;let u=o.h_;o.x8;let i=s.forwardRef((e,t)=>{let{className:a,...s}=e;return(0,r.jsx)(o.aV,{ref:t,className:(0,n.cn)("fixed inset-0 z-50 bg-black/50 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",a),...s})});i.displayName=o.aV.displayName;let d=s.forwardRef((e,t)=>{let{className:a,children:s,...c}=e;return(0,r.jsxs)(u,{children:[(0,r.jsx)(i,{}),(0,r.jsxs)(o.VY,{ref:t,className:(0,n.cn)("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-gray-200 bg-white p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",a),...c,children:[s,(0,r.jsxs)(o.x8,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-white transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-gray-400 focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-gray-100 data-[state=open]:text-gray-500",children:[(0,r.jsx)(l.Z,{className:"h-4 w-4"}),(0,r.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})});d.displayName=o.VY.displayName;let f=e=>{let{className:t,...a}=e;return(0,r.jsx)("div",{className:(0,n.cn)("flex flex-col space-y-1.5 text-center sm:text-left",t),...a})};f.displayName="DialogHeader";let _=e=>{let{className:t,...a}=e;return(0,r.jsx)("div",{className:(0,n.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",t),...a})};_.displayName="DialogFooter";let m=s.forwardRef((e,t)=>{let{className:a,...s}=e;return(0,r.jsx)(o.Dx,{ref:t,className:(0,n.cn)("text-lg font-semibold leading-none tracking-tight",a),...s})});m.displayName=o.Dx.displayName;let h=s.forwardRef((e,t)=>{let{className:a,...s}=e;return(0,r.jsx)(o.dk,{ref:t,className:(0,n.cn)("text-sm text-gray-500",a),...s})});h.displayName=o.dk.displayName},23266:function(e,t,a){a.d(t,{GH:function(){return f},QL:function(){return m},Sl:function(){return d},getClusters:function(){return u},uR:function(){return i}});var r=a(67294),s=a(15821),o=a(47145),n=a(93225),l=a(6378);let c={UP:"RUNNING",STOPPED:"STOPPED",INIT:"LAUNCHING",null:"TERMINATED"};async function u(){let{clusterNames:e=null}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};try{return(await o.x.fetch("/status",{cluster_names:e,all_users:!0,include_credentials:!1,summary_response:null==e})).map(e=>{let t="",a=t=e.zone?e.zone:e.region;return t&&t.length>25&&(t=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:15;if(!e||e.length<=t)return e;if(t<=3)return"...";let a=Math.floor((t-3)/2),r=a+(t-3)%2;return 0===a?e.substring(0,r)+"...":e.substring(0,r)+"..."+e.substring(e.length-a)}(t,25)),{status:c[e.status],cluster:e.name,user:e.user_name,user_hash:e.user_hash,cluster_hash:e.cluster_hash,cloud:e.cloud,region:e.region,infra:t?e.cloud+" ("+t+")":e.cloud,full_infra:a?"".concat(e.cloud," (").concat(a,")"):e.cloud,cpus:e.cpus,mem:e.memory,gpus:e.accelerators,resources_str:e.resources_str,resources_str_full:e.resources_str_full,time:new Date(1e3*e.launched_at),num_nodes:e.nodes,workspace:e.workspace,autostop:e.autostop,last_event:e.last_event,to_down:e.to_down,cluster_name_on_cloud:e.cluster_name_on_cloud,jobs:[],command:e.last_creation_command||e.last_use,task_yaml:e.last_creation_yaml||"{}",events:[{time:new Date(1e3*e.launched_at),event:"Cluster created."}]}})}catch(e){return console.error("Error fetching clusters:",e),[]}}async function i(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;try{let t={days:30,dashboard_summary_response:!0};e&&(t.cluster_hashes=[e]);let a=await o.x.fetch("/cost_report",t);console.log("Raw cluster history data:",a);let r=a.map(e=>{let t="Unknown";e.cloud?t=e.cloud:e.resources&&e.resources.cloud&&(t=e.resources.cloud);let a=e.user_name||"-";return{status:e.status?c[e.status]:"TERMINATED",cluster:e.name,user:a,user_hash:e.user_hash,cluster_hash:e.cluster_hash,cloud:t,region:"",infra:t,full_infra:t,resources_str:e.resources_str,resources_str_full:e.resources_str_full,time:e.launched_at?new Date(1e3*e.launched_at):null,num_nodes:e.num_nodes||1,duration:e.duration,total_cost:e.total_cost,workspace:e.workspace||"default",autostop:-1,last_event:e.last_event,to_down:!1,cluster_name_on_cloud:null,usage_intervals:e.usage_intervals,command:e.last_creation_command||"",task_yaml:e.last_creation_yaml||"{}",events:[{time:e.launched_at?new Date(1e3*e.launched_at):new Date,event:"Cluster created."}]}});return console.log("Processed cluster history data:",r),r}catch(e){return console.error("Error fetching cluster history:",e),[]}}async function d(e){let{clusterName:t,jobId:a,onNewLog:r,workspace:n}=e;try{await o.x.stream("/logs",{follow:!1,cluster_name:t,job_id:a,tail:1e4,override_skypilot_config:{active_workspace:n||"default"}},r)}catch(e){console.error("Error in streamClusterJobLogs:",e),(0,s.C)("Error in streamClusterJobLogs: ".concat(e.message),"error")}}async function f(e){let{clusterName:t,jobIds:a=null,workspace:r}=e;try{let e=await o.x.fetch("/download_logs",{cluster_name:t,job_ids:a?a.map(String):null,override_skypilot_config:{active_workspace:r||"default"}}),l=Object.values(e||{});if(!l.length){(0,s.C)("No logs found to download.","warning");return}let c=window.location.origin,u="".concat(c).concat(n.f4,"/download"),i=await fetch("".concat(u,"?relative=items"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({folder_paths:l})});if(!i.ok){let e=await i.text();throw Error("Download failed: ".concat(i.status," ").concat(e))}let d=await i.blob(),f=window.URL.createObjectURL(d),_=document.createElement("a"),m=new Date().toISOString().replace(/[:.]/g,"-"),h=a&&1===a.length?"job-".concat(a[0]):"jobs";_.href=f,_.download="".concat(t,"-").concat(h,"-logs-").concat(m,".zip"),document.body.appendChild(_),_.click(),_.remove(),window.URL.revokeObjectURL(f)}catch(e){console.error("Error downloading logs:",e),(0,s.C)("Error downloading logs: ".concat(e.message),"error")}}async function _(e){let{clusterName:t,workspace:a}=e;try{return(await o.x.fetch("/queue",{cluster_name:t,all_users:!0,override_skypilot_config:{active_workspace:a}})).map(e=>{var r;let s=e.end_at?e.end_at:Date.now()/1e3,o=0,n=0;return e.submitted_at&&(o=s-e.submitted_at),e.start_at&&(n=s-e.start_at),{id:e.job_id,status:e.status,job:e.job_name,user:e.username,user_hash:e.user_hash,gpus:e.accelerators||{},submitted_at:e.submitted_at?new Date(1e3*e.submitted_at):null,resources:e.resources,cluster:t,total_duration:o,job_duration:n,infra:"",logs:"",workspace:a||"default",git_commit:(null===(r=e.metadata)||void 0===r?void 0:r.git_commit)||"-"}})}catch(e){return console.error("Error fetching cluster jobs:",e),[]}}function m(e){let{cluster:t,job:a=null}=e,[s,o]=(0,r.useState)(null),[n,c]=(0,r.useState)(null),[i,d]=(0,r.useState)(!0),[f,m]=(0,r.useState)(!0),h=(0,r.useCallback)(async()=>{if(t)try{d(!0);let e=await l.default.get(u,[{clusterNames:[t]}]);return o(e[0]),e[0]}catch(e){console.error("Error fetching cluster data:",e)}finally{d(!1)}return null},[t]),g=(0,r.useCallback)(async e=>{if(t)try{m(!0);let a=await l.default.get(_,[{clusterName:t,workspace:e||"default"}]);c(a)}catch(e){console.error("Error fetching cluster job data:",e)}finally{m(!1)}},[t]),p=(0,r.useCallback)(async()=>{l.default.invalidate(u,[{clusterNames:[t]}]);let e=await h();e&&(l.default.invalidate(_,[{clusterName:t,workspace:e.workspace||"default"}]),await g(e.workspace))},[h,g,t]),w=(0,r.useCallback)(async()=>{s&&(l.default.invalidate(_,[{clusterName:t,workspace:s.workspace||"default"}]),await g(s.workspace))},[g,s,t]);return(0,r.useEffect)(()=>{(async()=>{let e=await h();e&&g(e.workspace)})()},[t,a,h,g]),{clusterData:s,clusterJobData:n,loading:i,clusterDetailsLoading:i,clusterJobsLoading:f,refreshData:p,refreshClusterJobsOnly:w}}},53081:function(e,t,a){a.d(t,{R:function(){return s}}),a(23266),a(68969);var r=a(47145);async function s(){try{let e=await r.x.get("/users");if(!e.ok)throw Error("HTTP error! status: ".concat(e.status));return(await e.json()).map(e=>({userId:e.id,username:e.name,role:e.role,created_at:e.created_at}))||[]}catch(e){return console.error("Failed to fetch users:",e),[]}}}}]);
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9037],{39037:function(e,s,t){t.r(s),t.d(s,{ClusterTable:function(){return I},Clusters:function(){return _},Status2Actions:function(){return V},enabledActions:function(){return F},handleVSCodeConnection:function(){return H}});var r=t(85893),a=t(67294),l=t(11163),n=t(55739),c=t(36989),i=t(41664),o=t.n(i),u=t(30803),d=t(37673),h=t(68764),x=t(23266),p=t(17324),m=t(94545),f=t(13626),j=t(60998);/**
|
|
2
|
-
* @license lucide-react v0.407.0 - ISC
|
|
3
|
-
*
|
|
4
|
-
* This source code is licensed under the ISC license.
|
|
5
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
-
*/let g=(0,j.Z)("Terminal",[["polyline",{points:"4 17 10 11 4 5",key:"akl6gq"}],["line",{x1:"12",x2:"20",y1:"19",y2:"19",key:"q2wloq"}]]),v=(0,j.Z)("SquareCode",[["path",{d:"M10 9.5 8 12l2 2.5",key:"3mjy60"}],["path",{d:"m14 9.5 2 2.5-2 2.5",key:"1bir2l"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]);t(6135);var w=t(92128),y=t(99307),b=t(23001),k=t(88950),N=t(6378),C=t(36856);t(1272);var S=t(20546);let L=[{label:"Status",value:"status"},{label:"Cluster",value:"cluster"},{label:"User",value:"user"},{label:"Workspace",value:"workspace"},{label:"Infra",value:"infra"}],M=(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 a=Math.floor(s/e.value);t+="".concat(a).concat(e.label," "),s%=e.value,r++}return t.trim()||"0s"};function _(){let e=(0,l.useRouter)(),[s,t]=(0,a.useState)(!1),i=a.useRef(null),[u,d]=(0,a.useState)(!1),[h,m]=(0,a.useState)(!1),[j,g]=(0,a.useState)(null),[v,y]=(0,a.useState)(()=>!!e.isReady&&"true"===e.query.history),[k,S]=(0,a.useState)(!0),M=(0,b.X)(),[E,_]=(0,a.useState)([]),[H,O]=(0,a.useState)({status:[],cluster:[],user:[],workspace:[],infra:[]}),[F,W]=(0,a.useState)(!1);(0,a.useEffect)(()=>{if(e.isReady){A();let s="true"===e.query.history;v!==s&&(S(!1),y(s),setTimeout(()=>S(!0),50))}},[e.isReady,e.query.history]),(0,a.useEffect)(()=>{(async()=>{try{await C.ZP.preloadForPage("clusters");let e=await N.default.get(p.getWorkspaces),s=Object.keys(e),t=await N.default.get(x.getClusters),r=[...new Set(t.map(e=>e.workspace||"default").filter(e=>e))],a=new Set(s);r.includes("default")&&a.has("default"),r.forEach(e=>a.add(e));let l=[...new Set(t.map(e=>({userId:e.user_hash||e.user,username:e.user})).filter(e=>e.userId)).values()],n=new Map;l.forEach(e=>{n.set(e.userId,{userId:e.userId,username:e.username,display:R(e.username,e.userId)})}),W(!0)}catch(e){console.error("Error fetching data for filters:",e),W(!0)}})()},[]);let V=s=>{let t={...e.query},r=[],a=[],l=[];s.map((e,s)=>{var t;r.push(null!==(t=e.property.toLowerCase())&&void 0!==t?t:""),a.push(e.operator),l.push(e.value)}),t.property=r,t.operator=a,t.value=l,e.replace({pathname:e.pathname,query:t},void 0,{shallow:!0})},Z=s=>{let t={...e.query};t.history=s.toString(),e.replace({pathname:e.pathname,query:t},void 0,{shallow:!0})},A=()=>{let s={...e.query},t=s.property,r=s.operator,a=s.value;if(void 0===t)return;let l=[],n=Array.isArray(t)?t.length:1,c=new Map;if(c.set("",""),c.set("status","Status"),c.set("cluster","Cluster"),c.set("user","User"),c.set("workspace","Workspace"),c.set("infra","Infra"),1===n)l.push({property:c.get(t),operator:r,value:a});else for(let e=0;e<n;e++)l.push({property:c.get(t[e]),operator:r[e],value:a[e]});_(l)};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-2 mb-1 min-h-[20px]",children:[(0,r.jsx)("div",{className:"flex items-center gap-2",children:(0,r.jsx)(o(),{href:"/clusters",className:"text-sky-blue hover:underline leading-none text-base",children:"Sky Clusters"})}),(0,r.jsx)("div",{className:"w-full sm:w-auto",children:(0,r.jsx)(q,{propertyList:L,valueList:H,setFilters:_,updateURLParams:V,placeholder:"Filter clusters"})}),(0,r.jsxs)("div",{className:"flex items-center gap-2 ml-auto",children:[(0,r.jsxs)("label",{className:"flex items-center cursor-pointer",children:[(0,r.jsx)("input",{type:"checkbox",checked:v,onChange:e=>{let s=e.target.checked;y(s),Z(s)},className:"sr-only"}),(0,r.jsx)("div",{className:"relative inline-flex h-5 w-9 items-center rounded-full ".concat(k?"transition-colors":""," ").concat(v?"bg-sky-600":"bg-gray-300"),children:(0,r.jsx)("span",{className:"inline-block h-3 w-3 transform rounded-full bg-white ".concat(k?"transition-transform":""," ").concat(v?"translate-x-5":"translate-x-1")})}),(0,r.jsx)("span",{className:"ml-2 text-sm text-gray-700",children:"Show history (Last 30 days)"})]}),s&&(0,r.jsxs)("div",{className:"flex items-center",children:[(0,r.jsx)(n.Z,{size:15,className:"mt-0"}),(0,r.jsx)("span",{className:"ml-2 text-gray-500 text-sm",children:"Loading..."})]}),(0,r.jsxs)("button",{onClick:()=>{N.default.invalidate(x.getClusters),N.default.invalidate(p.getWorkspaces),v&&N.default.invalidate(x.uR),W(!1),C.ZP.preloadForPage("clusters",{force:!0}).then(()=>{W(!0),i.current&&i.current()})},disabled:s,className:"text-sky-blue hover:text-sky-blue-bright flex items-center",children:[(0,r.jsx)(f.Z,{className:"h-4 w-4 mr-1.5"}),!M&&(0,r.jsx)("span",{children:"Refresh"})]})]})]}),(0,r.jsx)(z,{filters:E,setFilters:_,updateURLParams:V}),(0,r.jsx)(I,{refreshInterval:c.yc,setLoading:t,refreshDataRef:i,filters:E,showHistory:v,onOpenSSHModal:e=>{g(e),d(!0)},onOpenVSCodeModal:e=>{g(e),m(!0)},setOptionValues:O,preloadingComplete:F}),(0,r.jsx)(w.Oh,{isOpen:u,onClose:()=>d(!1),cluster:j}),(0,r.jsx)(w._R,{isOpen:h,onClose:()=>m(!1),cluster:j})]})}function I(e){let{refreshInterval:s,setLoading:t,refreshDataRef:l,filters:i,showHistory:p,onOpenSSHModal:f,onOpenVSCodeModal:j,setOptionValues:g,preloadingComplete:v}=e,[w,b]=(0,a.useState)([]),[k,C]=(0,a.useState)({key:null,direction:"ascending"}),[L,R]=(0,a.useState)(!1),[_,I]=(0,a.useState)(!0),[H,O]=(0,a.useState)(1),[F,W]=(0,a.useState)(10),q=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},z=a.useCallback(async()=>{t(!0),R(!0);try{let e=await N.default.get(x.getClusters);if(p){let s=await N.default.get(x.uR),t=e.map(e=>({...e,isHistorical:!1})),r=s.map(e=>({...e,isHistorical:!0})),a=[...t];r.forEach(s=>{e.some(e=>e.cluster_hash===s.cluster_hash)||a.push(s)}),g(q(a)),b(a)}else{let s=e.map(e=>({...e,isHistorical:!1}));g(q(s)),b(s)}}catch(e){console.error("Error fetching cluster data:",e),g(q([])),b([])}t(!1),R(!1),I(!1)},[t,p,g]),Z=(e,s)=>{var t;let{property:r,operator:a,value:l}=s;if(!l)return!0;if(!r){let s=l.toLowerCase();return Object.values(e).some(e=>null==e?void 0:e.toString().toLowerCase().includes(s))}let n=null===(t=e[r.toLowerCase()])||void 0===t?void 0:t.toString().toLowerCase(),c=l.toString().toLowerCase();switch(a){case"=":return n===c;case":":return null==n?void 0:n.includes(c);default:return!0}},A=a.useMemo(()=>{let e=0===i.length?w:w.filter(e=>{let s=null;for(let t=0;t<i.length;t++){let r=Z(e,i[t]);s=null===s?r:s&&r}return s});return(0,m.R0)(e,k.key,k.direction)},[w,k,i]);a.useEffect(()=>{l&&(l.current=z)},[l,z]),(0,a.useEffect)(()=>{b([]);let e=!0;if(v){z();let t=setInterval(()=>{e&&z()},s);return()=>{e=!1,clearInterval(t)}}return()=>{e=!1}},[s,z,v]),(0,a.useEffect)(()=>{O(1)},[w.length]);let P=e=>{let s="ascending";k.key===e&&"ascending"===k.direction&&(s="descending"),C({key:e,direction:s})},B=e=>k.key===e?"ascending"===k.direction?" ↑":" ↓":"",U=Math.ceil(A.length/F),D=(H-1)*F,T=D+F,X=A.slice(D,T);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",B("status")]}),(0,r.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>P("cluster"),children:["Cluster",B("cluster")]}),(0,r.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>P("user"),children:["User",B("user")]}),(0,r.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>P("workspace"),children:["Workspace",B("workspace")]}),(0,r.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>P("infra"),children:["Infra",B("infra")]}),(0,r.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>P("resources_str"),children:["Resources",B("resources_str")]}),(0,r.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>P("time"),children:["Started",B("time")]}),p&&(0,r.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>P("duration"),children:["Duration",B("duration")]}),(0,r.jsxs)(h.ss,{className:"sortable whitespace-nowrap",onClick:()=>P("autostop"),children:["Autostop",B("autostop")]}),(0,r.jsx)(h.ss,{className:"md:sticky md:right-0 md:bg-white",children:"Actions"})]})}),(0,r.jsx)(h.RM,{children:L||!v?(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,{children:(0,r.jsx)(S.H,{username:e.user,userHash:e.user_hash})}),(0,r.jsx)(h.pj,{children:(0,r.jsx)(o(),{href:"/workspaces",className:"text-gray-700 hover:text-blue-600 hover:underline",children:e.workspace||"default"})}),(0,r.jsx)(h.pj,{children:(0,r.jsx)(c.Md,{content:e.full_infra||e.infra,className:"text-sm text-muted-foreground",children:(0,r.jsxs)("span",{children:[(0,r.jsx)(o(),{href:"/infra",className:"text-blue-600 hover:underline",children:e.cloud}),e.infra.includes("(")&&(0,r.jsx)("span",{children:" "+e.infra.substring(e.infra.indexOf("("))})]})})}),(0,r.jsx)(h.pj,{children:(0,r.jsx)(c.Md,{content:e.resources_str_full||e.resources_str,className:"text-sm text-muted-foreground",children:(0,r.jsx)("span",{children:e.resources_str})})}),(0,r.jsx)(h.pj,{children:(0,r.jsx)(c.Zg,{date:e.time})}),p&&(0,r.jsx)(h.pj,{children:E(e.duration)}),(0,r.jsx)(h.pj,{children:e.isHistorical?"-":M(e.autostop,e.to_down)}),(0,r.jsx)(h.pj,{className:"text-left md:sticky md:right-0 md:bg-white",children:!e.isHistorical&&(0,r.jsx)(V,{cluster:e.cluster,status:e.status,onOpenSSHModal:f,onOpenVSCodeModal:j})})]},s)):(0,r.jsx)(h.SC,{children:(0,r.jsx)(h.pj,{colSpan:9,className:"text-center py-6 text-gray-500",children:p?"No clusters found":"No active clusters"})})})]})})}),w.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:F,onChange:e=>{W(parseInt(e.target.value,10)),O(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(D+1," - ").concat(Math.min(T,A.length)," of ").concat(A.length)}),(0,r.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,r.jsx)(u.z,{variant:"ghost",size:"icon",onClick:()=>{O(e=>Math.max(e-1,1))},disabled:1===H,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:()=>{O(e=>Math.min(e+1,U))},disabled:H===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"})})})]})]})})]})}let H=(e,s)=>{s&&s(e)},O=(e,s)=>{s?s(e):window.open("ssh://".concat(e))},F=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)(v,{className:"w-4 h-4 text-gray-500 inline-block"})};function V(e){let{withLabel:s=!1,cluster:t,status:a,onOpenSSHModal:l,onOpenVSCodeModal:n}=e,i=F(a),o=(0,b.X)(),u=e=>{switch(e){case"connect":O(t,l);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,a,[l,n]=e;switch(l){case"connect":t="Connect",a="Connect with SSH";break;case"VSCode":t="VSCode",a="Open in VS Code"}return(s||(t=""),i.includes(l))?(0,r.jsx)(c.WH,{content:a,className:"capitalize text-sm text-muted-foreground",children:(0,r.jsxs)("button",{onClick:()=>u(l),className:"text-sky-blue hover:text-sky-blue-bright font-medium inline-flex items-center",children:[n,!o&&(0,r.jsx)("span",{className:"ml-1.5",children:t})]})},l):(0,r.jsx)(c.WH,{content:a,className:"capitalize text-sm text-muted-foreground",children:(0,r.jsxs)("span",{className:"opacity-30 flex items-center cursor-not-allowed text-sm",title:l,children:[n,!o&&(0,r.jsx)("span",{className:"ml-1.5",children:t})]})},l)})})})}let q=e=>{let{propertyList:s=[],valueList:t,setFilters:l,updateURLParams:n,placeholder:c="Filter clusters"}=e,i=(0,a.useRef)(null),o=(0,a.useRef)(null),[u,d]=(0,a.useState)(!1),[h,x]=(0,a.useState)(""),[p,m]=(0,a.useState)("status"),[f,j]=(0,a.useState)([]);(0,a.useEffect)(()=>{let e=e=>{o.current&&!o.current.contains(e.target)&&i.current&&!i.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e)}},[]),(0,a.useEffect)(()=>{let e=[];if(t&&"object"==typeof t)switch(p){case"status":e=t.status||[];break;case"user":e=t.user||[];break;case"cluster":e=t.cluster||[];break;case"workspace":e=t.workspace||[];break;case"infra":e=t.infra||[]}""!==h.trim()&&(e=e.filter(e=>e&&e.toString().toLowerCase().includes(h.toLowerCase()))),j(e)},[p,t,h]);let g=e=>{let t=s.find(s=>s.value===e);return t?t.label:e},v=e=>{l(s=>{let t=[...s,{property:g(p),operator:":",value:e}];return n(t),t}),d(!1),x(""),i.current.focus()};return(0,r.jsxs)("div",{className:"flex flex-row border border-gray-300 rounded-md overflow-visible",children:[(0,r.jsx)("div",{className:"border-r border-gray-300 flex-shrink-0",children:(0,r.jsxs)(k.Ph,{onValueChange:m,value:p,children:[(0,r.jsx)(k.i4,{"aria-label":"Filter Property",className:"focus:ring-0 focus:ring-offset-0 border-none rounded-l-md rounded-r-none w-20 sm:w-24 md:w-32 h-8 text-xs sm:text-sm",children:(0,r.jsx)(k.ki,{placeholder:"Status"})}),(0,r.jsx)(k.Bw,{children:s.map((e,s)=>(0,r.jsx)(k.Ql,{value:e.value,children:e.label},"property-item-".concat(s)))})]})}),(0,r.jsxs)("div",{className:"relative flex-1",children:[(0,r.jsx)("input",{type:"text",ref:i,placeholder:c,value:h,onChange:e=>{x(e.target.value),u||d(!0)},onFocus:()=>{d(!0)},onKeyDown:e=>{"Enter"===e.key&&""!==h.trim()?(l(e=>{let s=[...e,{property:g(p),operator:":",value:h}];return n(s),s}),x(""),d(!1)):"Escape"===e.key&&(d(!1),i.current.blur())},className:"h-8 w-full sm:w-96 px-3 pr-8 text-sm border-none rounded-l-none rounded-r-md focus:ring-0 focus:outline-none",autoComplete:"off"}),h&&(0,r.jsx)("button",{onClick:()=>{x(""),d(!1)},className:"absolute right-2 top-1/2 transform -translate-y-1/2 text-gray-400 hover:text-gray-600",title:"Clear filter",tabIndex:-1,children:(0,r.jsx)("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})}),u&&f.length>0&&(0,r.jsx)("div",{ref:o,className:"absolute z-50 mt-1 w-full bg-white border border-gray-200 rounded-md shadow-lg max-h-60 overflow-y-auto",style:{zIndex:9999},children:f.map((e,s)=>(0,r.jsx)("div",{className:"px-3 py-2 cursor-pointer hover:bg-gray-50 text-sm ".concat(s!==f.length-1?"border-b border-gray-100":""),onClick:()=>v(e),children:(0,r.jsx)("span",{className:"text-sm text-gray-700",children:e})},"".concat(e,"-").concat(s)))})]})]})},z=e=>{let{filters:s=[],setFilters:t,updateURLParams:a}=e,l=e=>{t(s=>{let t=s.filter((s,t)=>t!==e);return a(t),t})};return(0,r.jsx)(r.Fragment,{children:(0,r.jsx)("div",{className:"flex items-center gap-4 py-2 px-2",children:(0,r.jsxs)("div",{className:"flex flex-wrap items-content gap-2",children:[s.map((e,s)=>(0,r.jsx)(Z,{filter:e,onRemove:()=>l(s)},"filteritem-".concat(s))),s.length>0&&(0,r.jsx)(r.Fragment,{children:(0,r.jsx)("button",{onClick:()=>{a([]),t([])},className:"rounded-full px-4 py-1 text-sm text-gray-700 bg-gray-200 hover:bg-gray-300",children:"Clear filters"})})]})})})},Z=e=>{let{filter:s,onRemove:t}=e;return(0,r.jsx)(r.Fragment,{children:(0,r.jsxs)("div",{className:"flex items-center text-blue-600 bg-blue-100 px-1 py-1 rounded-full text-sm",children:[(0,r.jsxs)("div",{className:"flex items-center gap-1 px-2",children:[(0,r.jsx)("span",{children:"".concat(s.property," ")}),(0,r.jsx)("span",{children:"".concat(s.operator," ")}),(0,r.jsx)("span",{children:" ".concat(s.value)})]}),(0,r.jsx)("button",{onClick:()=>t(),className:"p-0.5 ml-1 transform text-gray-400 hover:text-gray-600 bg-blue-500 hover:bg-blue-600 rounded-full flex flex-col items-center",title:"Clear filter",children:(0,r.jsx)("svg",{className:"h-3 w-3",fill:"none",stroke:"white",viewBox:"0 0 24 24",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:5,d:"M6 18L18 6M6 6l12 12"})})})]})})}}}]);
|