skypilot-nightly 1.0.0.dev20250713__py3-none-any.whl → 1.0.0.dev20250716__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.
- sky/__init__.py +2 -2
- sky/adaptors/nebius.py +6 -0
- sky/catalog/data_fetchers/fetch_nebius.py +308 -0
- sky/client/cli/command.py +10 -6
- sky/clouds/hyperbolic.py +2 -0
- sky/clouds/nebius.py +6 -4
- sky/dashboard/out/404.html +1 -1
- sky/dashboard/out/_next/static/chunks/1141-d8c6404a7c6fffe6.js +11 -0
- sky/dashboard/out/_next/static/chunks/1746.27d40aedc22bd2d6.js +60 -0
- sky/dashboard/out/_next/static/chunks/1871-76491ac174a95278.js +6 -0
- sky/dashboard/out/_next/static/chunks/2641.35edc9ccaeaad9e3.js +1 -0
- sky/dashboard/out/_next/static/chunks/{3785.b3cc2bc1d49d2c3c.js → 3785.95b94f18aaec7233.js} +1 -1
- sky/dashboard/out/_next/static/chunks/4869.c139c0124e677fc8.js +16 -0
- sky/dashboard/out/_next/static/chunks/6990-dcb411b566e64cde.js +1 -0
- sky/dashboard/out/_next/static/chunks/{9025.a7c44babfe56ce09.js → 9025.133e9ba5c780afeb.js} +1 -1
- sky/dashboard/out/_next/static/chunks/9847.46e613d000c55859.js +30 -0
- sky/dashboard/out/_next/static/chunks/pages/{_app-49ff6c04332cc621.js → _app-771a40cde532309b.js} +1 -1
- sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-9096ea50b8e2cf9e.js +6 -0
- sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-14d404b7dd28502a.js +16 -0
- sky/dashboard/out/_next/static/chunks/pages/{users-cd43fb3c122eedde.js → users-19e98664bdd61643.js} +1 -1
- sky/dashboard/out/_next/static/chunks/pages/volumes-61ea7ba7e56f8d06.js +1 -0
- sky/dashboard/out/_next/static/chunks/pages/{workspaces-06bde99155fa6292.js → workspaces-a1e43d9ef51a9cea.js} +1 -1
- sky/dashboard/out/_next/static/chunks/{webpack-4d50ce5087a63a95.js → webpack-3fad5d4a0541a02d.js} +1 -1
- sky/dashboard/out/_next/static/css/219887b94512388c.css +3 -0
- sky/dashboard/out/_next/static/gVXjeFhvtWXyOsx9xYNvM/_buildManifest.js +1 -0
- 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.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/execution.py +4 -0
- sky/provision/hyperbolic/__init__.py +1 -0
- sky/provision/hyperbolic/instance.py +10 -0
- sky/server/requests/executor.py +20 -7
- sky/server/requests/process.py +46 -3
- sky/server/server.py +3 -0
- sky/setup_files/dependencies.py +1 -1
- sky/utils/command_runner.py +3 -2
- sky/utils/tempstore.py +20 -1
- {skypilot_nightly-1.0.0.dev20250713.dist-info → skypilot_nightly-1.0.0.dev20250716.dist-info}/METADATA +3 -3
- {skypilot_nightly-1.0.0.dev20250713.dist-info → skypilot_nightly-1.0.0.dev20250716.dist-info}/RECORD +62 -61
- sky/dashboard/out/_next/static/JnRZeU80MTbNRfWV2kd8w/_buildManifest.js +0 -1
- sky/dashboard/out/_next/static/chunks/1141-726e5a3f00b67185.js +0 -11
- sky/dashboard/out/_next/static/chunks/1691.44e378727a41f3b5.js +0 -21
- sky/dashboard/out/_next/static/chunks/1871-cf1a47986d716dd2.js +0 -6
- sky/dashboard/out/_next/static/chunks/3256.7257acd01b481bed.js +0 -11
- sky/dashboard/out/_next/static/chunks/4697.f5421144224da9fc.js +0 -20
- sky/dashboard/out/_next/static/chunks/6990-d0dc765474fa0eca.js +0 -1
- sky/dashboard/out/_next/static/chunks/8982.a2e214068f30a857.js +0 -1
- sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-4608dc89f95eba89.js +0 -6
- sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-980d6f6b64ca7833.js +0 -16
- sky/dashboard/out/_next/static/chunks/pages/volumes-4ebf6484f7216387.js +0 -1
- sky/dashboard/out/_next/static/css/a713705ccc8fe059.css +0 -3
- /sky/dashboard/out/_next/static/chunks/{1043-5e5ef6198735ff7e.js → 1043-90a88c46f27b3df5.js} +0 -0
- /sky/dashboard/out/_next/static/chunks/{3698-52ad1ca228faa776.js → 3698-9fa11dafb5cad4a6.js} +0 -0
- /sky/dashboard/out/_next/static/chunks/{6601-d38d10f957dff832.js → 6601-d4a381403a8bae91.js} +0 -0
- /sky/dashboard/out/_next/static/chunks/{8969-13bb52ce3cffa4e3.js → 8969-743abf4bc86baf48.js} +0 -0
- /sky/dashboard/out/_next/static/chunks/{938-8e25c8ea0baa271a.js → 938-6a9ffdaa21eee969.js} +0 -0
- /sky/dashboard/out/_next/static/chunks/{9470-21d059a1dfa03f61.js → 9470-b6f6a35283863a6f.js} +0 -0
- /sky/dashboard/out/_next/static/chunks/pages/clusters/{[cluster]-0fbfb1dd0b08c90c.js → [cluster]-0c37ee1ac5f3474d.js} +0 -0
- /sky/dashboard/out/_next/static/{JnRZeU80MTbNRfWV2kd8w → gVXjeFhvtWXyOsx9xYNvM}/_ssgManifest.js +0 -0
- {skypilot_nightly-1.0.0.dev20250713.dist-info → skypilot_nightly-1.0.0.dev20250716.dist-info}/WHEEL +0 -0
- {skypilot_nightly-1.0.0.dev20250713.dist-info → skypilot_nightly-1.0.0.dev20250716.dist-info}/entry_points.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250713.dist-info → skypilot_nightly-1.0.0.dev20250716.dist-info}/licenses/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20250713.dist-info → skypilot_nightly-1.0.0.dev20250716.dist-info}/top_level.txt +0 -0
sky/server/requests/executor.py
CHANGED
@@ -176,7 +176,7 @@ class RequestWorker:
|
|
176
176
|
if request_element is None:
|
177
177
|
time.sleep(0.1)
|
178
178
|
return
|
179
|
-
request_id, ignore_return_value,
|
179
|
+
request_id, ignore_return_value, _ = request_element
|
180
180
|
request = api_requests.get_request(request_id)
|
181
181
|
assert request is not None, f'Request with ID {request_id} is None'
|
182
182
|
if request.status == api_requests.RequestStatus.CANCELLED:
|
@@ -190,12 +190,10 @@ class RequestWorker:
|
|
190
190
|
# the process, such as subprocess_daemon.py.
|
191
191
|
fut = executor.submit_until_success(_request_execution_wrapper,
|
192
192
|
request_id, ignore_return_value)
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
args=(fut, request_element),
|
198
|
-
daemon=True).start()
|
193
|
+
# Monitor the result of the request execution.
|
194
|
+
threading.Thread(target=self.handle_task_result,
|
195
|
+
args=(fut, request_element),
|
196
|
+
daemon=True).start()
|
199
197
|
|
200
198
|
logger.info(f'[{self}] Submitted request: {request_id}')
|
201
199
|
except (Exception, SystemExit) as e: # pylint: disable=broad-except
|
@@ -209,6 +207,21 @@ class RequestWorker:
|
|
209
207
|
request_element: Tuple[str, bool, bool]) -> None:
|
210
208
|
try:
|
211
209
|
fut.result()
|
210
|
+
except concurrent.futures.process.BrokenProcessPool as e:
|
211
|
+
# Happens when the worker process dies unexpectedly, e.g. OOM
|
212
|
+
# killed.
|
213
|
+
request_id, _, retryable = request_element
|
214
|
+
# Ensure the request status.
|
215
|
+
api_requests.set_request_failed(request_id, e)
|
216
|
+
logger.error(
|
217
|
+
f'Request {request_id} failed to get processed '
|
218
|
+
f'{common_utils.format_exception(e, use_bracket=True)}')
|
219
|
+
if retryable:
|
220
|
+
# If the request is retryable and disrupted by broken
|
221
|
+
# process pool, reschedule it immediately to get it
|
222
|
+
# retried in the new process pool.
|
223
|
+
queue = _get_queue(self.schedule_type)
|
224
|
+
queue.put(request_element)
|
212
225
|
except exceptions.ExecutionRetryableError as e:
|
213
226
|
time.sleep(e.retry_wait_seconds)
|
214
227
|
# Reschedule the request.
|
sky/server/requests/process.py
CHANGED
@@ -202,6 +202,9 @@ class BurstableExecutor:
|
|
202
202
|
burst_workers: int = 0,
|
203
203
|
**kwargs):
|
204
204
|
if garanteed_workers > 0:
|
205
|
+
self._guaranteed_workers = garanteed_workers
|
206
|
+
self._guaranteed_pool_kwargs = kwargs
|
207
|
+
self._guaranteed_pool_lock = threading.Lock()
|
205
208
|
self._executor = PoolExecutor(max_workers=garanteed_workers,
|
206
209
|
**kwargs)
|
207
210
|
if burst_workers > 0:
|
@@ -225,8 +228,7 @@ class BurstableExecutor:
|
|
225
228
|
|
226
229
|
while True:
|
227
230
|
if self._executor is not None and self._executor.has_idle_workers():
|
228
|
-
|
229
|
-
return self._executor.submit(fn, *args, **kwargs)
|
231
|
+
return self._submit_to_guaranteed_pool(fn, *args, **kwargs)
|
230
232
|
if (self._burst_executor is not None and
|
231
233
|
self._burst_executor.has_idle_workers()):
|
232
234
|
try:
|
@@ -238,11 +240,52 @@ class BurstableExecutor:
|
|
238
240
|
if self._executor is not None:
|
239
241
|
# No idle workers in either pool, still queue the request
|
240
242
|
# to the guaranteed pool to keep behavior consistent.
|
241
|
-
return self.
|
243
|
+
return self._submit_to_guaranteed_pool(fn, *args, **kwargs)
|
242
244
|
logger.debug('No guaranteed pool set and the burst pool is full, '
|
243
245
|
'retry later.')
|
244
246
|
time.sleep(0.1)
|
245
247
|
|
248
|
+
def _submit_to_guaranteed_pool(self, fn, *args,
|
249
|
+
**kwargs) -> concurrent.futures.Future:
|
250
|
+
"""Submit to the guaranteed pool with retry.
|
251
|
+
|
252
|
+
The concurrent.futures.ProcessPoolExecutor will terminate all child
|
253
|
+
processes and reject new tasks if any of the child process died, e.g.
|
254
|
+
OOM killed. So when the pool is broken, we have to rebuild a new pool
|
255
|
+
to execute tasks.
|
256
|
+
|
257
|
+
Alternatives considered:
|
258
|
+
- multiprocessing.Pool: individual process failure does not affect the
|
259
|
+
pool, but it lacks of lazy-init support and does not handle process
|
260
|
+
failure gracefully.
|
261
|
+
- inherit from concurrent.futures.ProcessPoolExecutor: If a child
|
262
|
+
process dies when executing a task, we have to set an exception
|
263
|
+
in the Future object of the task. But there is a race condition
|
264
|
+
that the child process may dies exactly after get the task from
|
265
|
+
queue so there is no (obviously) safe way to record process PID
|
266
|
+
to task mapping in the current architecture of
|
267
|
+
ProcessPoolExecutor. It is more feasible to implement a custom
|
268
|
+
ProcessPoolExecutor with an new architecture.
|
269
|
+
- a custom ProcessPoolExecutor: non-trivial to implement, keep for
|
270
|
+
future improvement as BrokenProcessPool is not expected to be
|
271
|
+
a common case, i.e. it usually indicates there a bug elsewhere
|
272
|
+
when this happens.
|
273
|
+
"""
|
274
|
+
with self._guaranteed_pool_lock:
|
275
|
+
assert self._executor is not None
|
276
|
+
try:
|
277
|
+
return self._executor.submit(fn, *args, **kwargs)
|
278
|
+
except concurrent.futures.process.BrokenProcessPool as e:
|
279
|
+
logger.warning('The guaranteed pool is broken, '
|
280
|
+
f'replacing the pool and retrying. Error: {e}')
|
281
|
+
broken_pool = self._executor
|
282
|
+
threading.Thread(target=broken_pool.shutdown,
|
283
|
+
daemon=True).start()
|
284
|
+
self._executor = PoolExecutor(
|
285
|
+
max_workers=self._guaranteed_workers,
|
286
|
+
**self._guaranteed_pool_kwargs)
|
287
|
+
return self._submit_to_guaranteed_pool(fn, *args, **kwargs)
|
288
|
+
|
246
289
|
def shutdown(self) -> None:
|
247
290
|
"""Shutdown the executor."""
|
248
291
|
|
sky/server/server.py
CHANGED
@@ -491,6 +491,9 @@ async def lifespan(app: fastapi.FastAPI): # pylint: disable=redefined-outer-nam
|
|
491
491
|
func=event.run_event,
|
492
492
|
schedule_type=requests_lib.ScheduleType.SHORT,
|
493
493
|
is_skypilot_system=True,
|
494
|
+
# Request deamon should be retried if the process pool is
|
495
|
+
# broken.
|
496
|
+
retryable=True,
|
494
497
|
)
|
495
498
|
except exceptions.RequestAlreadyExistsError:
|
496
499
|
# Lifespan will be executed in each uvicorn worker process, we
|
sky/setup_files/dependencies.py
CHANGED
@@ -174,7 +174,7 @@ extras_require: Dict[str, List[str]] = {
|
|
174
174
|
# 'vsphere-automation-sdk @ git+https://github.com/vmware/vsphere-automation-sdk-python.git@v8.0.1.0' pylint: disable=line-too-long
|
175
175
|
],
|
176
176
|
'nebius': [
|
177
|
-
'nebius>=0.2.
|
177
|
+
'nebius>=0.2.37',
|
178
178
|
] + aws_dependencies,
|
179
179
|
'hyperbolic': [], # No dependencies needed for hyperbolic
|
180
180
|
'server': server_dependencies,
|
sky/utils/command_runner.py
CHANGED
@@ -956,8 +956,9 @@ class KubernetesCommandRunner(CommandRunner):
|
|
956
956
|
return remote_home_dir
|
957
957
|
|
958
958
|
# Build command.
|
959
|
-
helper_path =
|
960
|
-
|
959
|
+
helper_path = shlex.quote(
|
960
|
+
os.path.join(os.path.abspath(os.path.dirname(__file__)),
|
961
|
+
'kubernetes', 'rsync_helper.sh'))
|
961
962
|
namespace_context = f'{self.namespace}+{self.context}'
|
962
963
|
# Avoid rsync interpreting :, /, and + in namespace_context as the
|
963
964
|
# default delimiter for options and arguments.
|
sky/utils/tempstore.py
CHANGED
@@ -2,9 +2,11 @@
|
|
2
2
|
|
3
3
|
import contextlib
|
4
4
|
import contextvars
|
5
|
+
import functools
|
5
6
|
import os
|
6
7
|
import tempfile
|
7
|
-
|
8
|
+
import typing
|
9
|
+
from typing import Any, Callable, Iterator, Optional, TypeVar
|
8
10
|
|
9
11
|
_TEMP_DIR: contextvars.ContextVar[Optional[str]] = contextvars.ContextVar(
|
10
12
|
'temp_store_dir', default=None)
|
@@ -49,3 +51,20 @@ def mkdtemp(suffix: Optional[str] = None,
|
|
49
51
|
os.makedirs(dir, exist_ok=True)
|
50
52
|
|
51
53
|
return tempfile.mkdtemp(suffix=suffix, prefix=prefix, dir=dir)
|
54
|
+
|
55
|
+
|
56
|
+
F = TypeVar('F', bound=Callable[..., Any])
|
57
|
+
|
58
|
+
|
59
|
+
def with_tempdir(func: F) -> F:
|
60
|
+
"""Decorator that wraps a function call with tempdir() context manager.
|
61
|
+
|
62
|
+
Refer to `tempdir` for more details.
|
63
|
+
"""
|
64
|
+
|
65
|
+
@functools.wraps(func)
|
66
|
+
def wrapper(*args, **kwargs):
|
67
|
+
with tempdir():
|
68
|
+
return func(*args, **kwargs)
|
69
|
+
|
70
|
+
return typing.cast(F, wrapper)
|
@@ -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.dev20250716
|
4
4
|
Summary: SkyPilot: Run AI on Any Infra — Unified, Faster, Cheaper.
|
5
5
|
Author: SkyPilot Team
|
6
6
|
License: Apache 2.0
|
@@ -118,7 +118,7 @@ Requires-Dist: vastai-sdk>=0.1.12; extra == "vast"
|
|
118
118
|
Provides-Extra: vsphere
|
119
119
|
Requires-Dist: pyvmomi==8.0.1.0.2; extra == "vsphere"
|
120
120
|
Provides-Extra: nebius
|
121
|
-
Requires-Dist: nebius>=0.2.
|
121
|
+
Requires-Dist: nebius>=0.2.37; extra == "nebius"
|
122
122
|
Requires-Dist: awscli>=1.27.10; extra == "nebius"
|
123
123
|
Requires-Dist: botocore>=1.29.10; extra == "nebius"
|
124
124
|
Requires-Dist: boto3>=1.26.1; extra == "nebius"
|
@@ -174,7 +174,7 @@ Requires-Dist: azure-core>=1.24.0; extra == "all"
|
|
174
174
|
Requires-Dist: azure-common; extra == "all"
|
175
175
|
Requires-Dist: vastai-sdk>=0.1.12; extra == "all"
|
176
176
|
Requires-Dist: pyvmomi==8.0.1.0.2; extra == "all"
|
177
|
-
Requires-Dist: nebius>=0.2.
|
177
|
+
Requires-Dist: nebius>=0.2.37; extra == "all"
|
178
178
|
Requires-Dist: awscli>=1.27.10; extra == "all"
|
179
179
|
Requires-Dist: botocore>=1.29.10; extra == "all"
|
180
180
|
Requires-Dist: boto3>=1.26.1; extra == "all"
|
{skypilot_nightly-1.0.0.dev20250713.dist-info → skypilot_nightly-1.0.0.dev20250716.dist-info}/RECORD
RENAMED
@@ -1,4 +1,4 @@
|
|
1
|
-
sky/__init__.py,sha256=
|
1
|
+
sky/__init__.py,sha256=GESLKWuHS4YDwBX1YGyWiGeqkjvqKk0d2ysHcU4ULYY,6419
|
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
|
@@ -7,7 +7,7 @@ sky/cloud_stores.py,sha256=Ln5GBpel-sEs7rVx7bBrMkfLwA_bctI05Rox2uoz7Lo,26388
|
|
7
7
|
sky/core.py,sha256=KbPCVZpCZTJF-vtyWqk1rGFzrT8cGHQI93YN9WRp8P4,56338
|
8
8
|
sky/dag.py,sha256=5MFXlP43y9U54zxfYGhVyBiWEInoFFlt_zJ7ASJntXw,3889
|
9
9
|
sky/exceptions.py,sha256=Vn7VVhyrTaMBTdVxsro325aKSMM4_KRJOghFX31xIVM,19164
|
10
|
-
sky/execution.py,sha256=
|
10
|
+
sky/execution.py,sha256=MDbjsPDHhrLixiULkLu3xHfTIh79Bz8fwX4-0Qj_5Dk,33416
|
11
11
|
sky/global_user_state.py,sha256=L_NMe0e8on_4aRmZ4wuIJP98RXXxaWaV1TozhaTVx14,73098
|
12
12
|
sky/models.py,sha256=Eor-cT4D71QTimogcnJ5ey1G1PXK-OXN-snEtE8Uu_g,3152
|
13
13
|
sky/optimizer.py,sha256=rcH6CVix1PJWWSwe1XWItfsmG8igwbKtRE5QVWRlpR4,63804
|
@@ -27,7 +27,7 @@ sky/adaptors/gcp.py,sha256=oEb9jClEtApw6PQnxdxDYxOCYsedvM3aiko1EW1FDVo,3501
|
|
27
27
|
sky/adaptors/hyperbolic.py,sha256=iyHDmtLFVTK9QajpAmObk0XO2OZnnO_1LbvDffPpt68,245
|
28
28
|
sky/adaptors/ibm.py,sha256=7YbHrWbYcZsJDgxMBNZr1yBI03mjs_C3pnCTCz-MNtQ,5068
|
29
29
|
sky/adaptors/kubernetes.py,sha256=I0DS2nrwb4rZMf8uPNR_dVdOXBqo1JU01yroBJz81sI,9888
|
30
|
-
sky/adaptors/nebius.py,sha256=
|
30
|
+
sky/adaptors/nebius.py,sha256=EXONbdbNEm61KeezeJvbE8WrRBD0Zu4zJKsQqO0FHeE,8869
|
31
31
|
sky/adaptors/oci.py,sha256=xJt6J9xBSFIENa6FwEt1V1sZE8puAZ_vPEoGlyQACPs,2839
|
32
32
|
sky/adaptors/runpod.py,sha256=4Nt_BfZhJAKQNA3wO8cxvvNI8x4NsDGHu_4EhRDlGYQ,225
|
33
33
|
sky/adaptors/vast.py,sha256=tpvmHi7IkQNzbbHVkeo04kUSajoEpSzXr2XgeO_I1LU,695
|
@@ -71,6 +71,7 @@ sky/catalog/data_fetchers/fetch_gcp.py,sha256=y3boC2NBLRErLyY12078AS7QWGx9ItrzmF
|
|
71
71
|
sky/catalog/data_fetchers/fetch_hyperbolic.py,sha256=VLBJXWvrKJH5QbMUiREPEMfO3x37_XsqMAmOo7bCQtc,4537
|
72
72
|
sky/catalog/data_fetchers/fetch_ibm.py,sha256=WPzR1y5ZaTdv-R3HLIdSUnOfWh4N9cqzKoKiKJQkjFk,7414
|
73
73
|
sky/catalog/data_fetchers/fetch_lambda_cloud.py,sha256=MUzogyLruLQmIt-To6TsfnGPgv_nnlp49XYbeshsd7I,5003
|
74
|
+
sky/catalog/data_fetchers/fetch_nebius.py,sha256=qmk7wkz8-L8XxYXZyDpneAuvOPY2Pzw7H3GwrdM1MXo,10772
|
74
75
|
sky/catalog/data_fetchers/fetch_vast.py,sha256=xoVDSsQVgMLzyibCFN7yDgyH1Y96gk5G53to1ZAGRyg,5017
|
75
76
|
sky/catalog/data_fetchers/fetch_vsphere.py,sha256=Yf7tKzwJsQ_4f64IT1EAP108C1D3Rg35RUIwp7UX8KI,21438
|
76
77
|
sky/client/__init__.py,sha256=pz6xvVSd9X-gwqbsDL0E9QOojYqM0KAD0j-NCyCIF1k,38
|
@@ -79,7 +80,7 @@ sky/client/oauth.py,sha256=sNJ_DMsSTcxluj5FeNQ2IafZJLImRFmCAZ79bXeABn4,2871
|
|
79
80
|
sky/client/sdk.py,sha256=hZ2SLsHItKJOs-t_suVDMxIrvEixr1ZWzDehkOYycSc,91024
|
80
81
|
sky/client/service_account_auth.py,sha256=5jXk0G6ufuW-SHCO7BEHQeTO0_2a8KfFmA63auXFRj4,1529
|
81
82
|
sky/client/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
82
|
-
sky/client/cli/command.py,sha256=
|
83
|
+
sky/client/cli/command.py,sha256=i_ls96k9DClqjePdjOyJMTWbLrkpTLF43Zz7cBN4Y_M,217541
|
83
84
|
sky/client/cli/deprecation_utils.py,sha256=H_d5UyF2CekEoThduAzt5cihBO8hwKYMu0-Wqfbjv5E,3370
|
84
85
|
sky/client/cli/flags.py,sha256=6IdS_G2lB1C6r8kJMzLVREY_qV50VHiSfWlmppVrWuc,11623
|
85
86
|
sky/clouds/__init__.py,sha256=tC9_Vi6GvVceWUi6uZvm7vXzBa0uH3CjRQ-QCYqdJMw,1624
|
@@ -90,11 +91,11 @@ sky/clouds/cudo.py,sha256=iNgiCg2gYAfsmeFNG8xuO7ysUjXbNj45Q57QIfDimyU,13809
|
|
90
91
|
sky/clouds/do.py,sha256=bO5NZ3nvHHTW_7oByUY4817U0fAXQ1t5F4P4qZYg5n4,12167
|
91
92
|
sky/clouds/fluidstack.py,sha256=TkFHChRa7HH_-f5SDRgtFqKCmUCYcSfPCf4lpQH90do,13222
|
92
93
|
sky/clouds/gcp.py,sha256=92qzPagPCabVScWMqbDh4Nd14LzcZnK5ojb_phw9bRA,68430
|
93
|
-
sky/clouds/hyperbolic.py,sha256=
|
94
|
+
sky/clouds/hyperbolic.py,sha256=DyWiV5RvfitVPCEajkEuqOxy4PAaCCCkmd7zA05G33c,11628
|
94
95
|
sky/clouds/ibm.py,sha256=JQTJQ5wVxVSqH7O05GOld8X5iO16g6Idd_YmRAGZmB8,22567
|
95
96
|
sky/clouds/kubernetes.py,sha256=Xu9jyJYchGHuaBqGzLBNvpG-PlMh98GcHmERZFwM_r0,54201
|
96
97
|
sky/clouds/lambda_cloud.py,sha256=ZoKSseOGYlZFNhue2OK75dTU836AAE_pkuVod4yZX68,13260
|
97
|
-
sky/clouds/nebius.py,sha256=
|
98
|
+
sky/clouds/nebius.py,sha256=RNPuZRXU-KTRyziNFp8rnE3DisTCQ35XWLaHeplpY7Y,21000
|
98
99
|
sky/clouds/oci.py,sha256=Tos4hgXhYJ4kNkh6aa8_WsaxcD_JmbarR_1GltV-YrM,28158
|
99
100
|
sky/clouds/paperspace.py,sha256=yvtD93p79ttpbL8bw8dlJcG-7pvqAGuUolSyHK-XsNo,11582
|
100
101
|
sky/clouds/runpod.py,sha256=6fHlT75kYdPWZSfV-mhOvCxum-OkoTlD1iKYEAtlHP4,12973
|
@@ -108,79 +109,79 @@ sky/clouds/utils/azure_utils.py,sha256=NToRBnhEyuUvb-nBnsKTxjhOBRkMcrelL8LK4w6s4
|
|
108
109
|
sky/clouds/utils/gcp_utils.py,sha256=zpdibyvdROgDGqllcvQuST3pKqj6pzqX-gxCw-DsCfc,9873
|
109
110
|
sky/clouds/utils/oci_utils.py,sha256=yv_Y9oM5WNCnOofu44aKyOPTZZdKfpFLCx3ewZ2VBFY,7994
|
110
111
|
sky/clouds/utils/scp_utils.py,sha256=VGuccVO5uFGr8-yolWSoYrgr11z6cIeDBGcqkBzAyOs,18409
|
111
|
-
sky/dashboard/out/404.html,sha256=
|
112
|
-
sky/dashboard/out/clusters.html,sha256=
|
113
|
-
sky/dashboard/out/config.html,sha256=
|
112
|
+
sky/dashboard/out/404.html,sha256=SGhBWASItFyf4v3zYTa-Ja7-mmyhkDu5g4hKUnU-PpI,1423
|
113
|
+
sky/dashboard/out/clusters.html,sha256=nfKlsgkeOb5O2c36lkCWOxIXDYcUph7Ld2Xuwu86xSs,1418
|
114
|
+
sky/dashboard/out/config.html,sha256=11P0Q99G7IbVLXp6dvK_2JMWJVBLc7I2mIAZmhU9OHs,1414
|
114
115
|
sky/dashboard/out/favicon.ico,sha256=XilUZZglAl_1zRsg85QsbQgmQAzGPQjcUIJ-A3AzYn8,93590
|
115
|
-
sky/dashboard/out/index.html,sha256=
|
116
|
-
sky/dashboard/out/infra.html,sha256=
|
117
|
-
sky/dashboard/out/jobs.html,sha256=
|
116
|
+
sky/dashboard/out/index.html,sha256=hkZa9BveMEOSh2-fgNLb6sPD7TVR311R5mQgsMxaJ30,1407
|
117
|
+
sky/dashboard/out/infra.html,sha256=mKS3PwqvdIuQi9UbmekYDY_GEvDk5sDURZjQtngD_HY,1412
|
118
|
+
sky/dashboard/out/jobs.html,sha256=IDxbC8LqKVwhG3JA7P6yc8WqaS9vIZju8qEgofhKd50,1410
|
118
119
|
sky/dashboard/out/skypilot.svg,sha256=c0iRtlfLlaUm2p0rG9NFmo5FN0Qhf3pq5Xph-AeMPJw,5064
|
119
|
-
sky/dashboard/out/users.html,sha256=
|
120
|
-
sky/dashboard/out/volumes.html,sha256=
|
121
|
-
sky/dashboard/out/workspaces.html,sha256=
|
122
|
-
sky/dashboard/out/_next/static/
|
123
|
-
sky/dashboard/out/_next/static/
|
124
|
-
sky/dashboard/out/_next/static/chunks/1043-5e5ef6198735ff7e.js,sha256=-9qAHQCv3B2H3wlAqzPknzAuG0lciC0BbpK2mhx5t9o,18216
|
125
|
-
sky/dashboard/out/_next/static/chunks/1141-726e5a3f00b67185.js,sha256=lEAVPk_18NZpZuPrGx1Xy9VWqE_5n3JuqWbIPS1_ZMw,17823
|
120
|
+
sky/dashboard/out/users.html,sha256=YPicQXrftOVsUfqajNZIgdQtcKOHKQJ2rdHXzzS8hYE,1412
|
121
|
+
sky/dashboard/out/volumes.html,sha256=UXxpMoyppXGcxgNx_bAFqCKehFXEXux2y2qt9UFI88w,1416
|
122
|
+
sky/dashboard/out/workspaces.html,sha256=TR9Obtmu6n93KkDp_Yxq1by76aU2ror5Tgsg7kD1G9k,1422
|
123
|
+
sky/dashboard/out/_next/static/chunks/1043-90a88c46f27b3df5.js,sha256=-9qAHQCv3B2H3wlAqzPknzAuG0lciC0BbpK2mhx5t9o,18216
|
124
|
+
sky/dashboard/out/_next/static/chunks/1141-d8c6404a7c6fffe6.js,sha256=ghpPWK4ZTu0gPqZR-UU8tHrwdmZuW4rVZ-cqdUjf_oA,17818
|
126
125
|
sky/dashboard/out/_next/static/chunks/1272-1ef0bf0237faccdb.js,sha256=VJ6y-Z6Eg2T93hQIRfWAbjAkQ7nQhglmIaVbEpKSILY,38451
|
127
126
|
sky/dashboard/out/_next/static/chunks/1664-d65361e92b85e786.js,sha256=hMjNU7ss4lTqwShmHJ45jVOjTSdq-EI04DeVMnTRvRc,6557
|
128
|
-
sky/dashboard/out/_next/static/chunks/
|
129
|
-
sky/dashboard/out/_next/static/chunks/1871-
|
127
|
+
sky/dashboard/out/_next/static/chunks/1746.27d40aedc22bd2d6.js,sha256=UL_dnIQxaOjmBlJhFuJqn4LeavYAdp_AA5o76629Xis,13121
|
128
|
+
sky/dashboard/out/_next/static/chunks/1871-76491ac174a95278.js,sha256=v4ZxUUQ_ntzWvPLTl55PD6rpFgwQaL7HEqmekVIw_3M,19782
|
130
129
|
sky/dashboard/out/_next/static/chunks/2544.27f70672535675ed.js,sha256=93-1mEA2lUkeOp5V7MPh2e6SFTLd_N0exVSiCBnNf9s,307
|
130
|
+
sky/dashboard/out/_next/static/chunks/2641.35edc9ccaeaad9e3.js,sha256=2yNFhFmkhE_hGjD7mteo2bSn6fCbyFLPnepakrTjh0w,48655
|
131
131
|
sky/dashboard/out/_next/static/chunks/2875.c24c6d57dc82e436.js,sha256=af3HVjuqsxD6wZyPzEDEb7FMq02fb1XB7O9mobwXTos,10053
|
132
|
-
sky/dashboard/out/_next/static/chunks/
|
133
|
-
sky/dashboard/out/_next/static/chunks/
|
134
|
-
sky/dashboard/out/_next/static/chunks/3785.b3cc2bc1d49d2c3c.js,sha256=LmCeOam_QpIjprSUJkRTtxcMLNYIFCLzmwDSXHYPFCs,4593
|
132
|
+
sky/dashboard/out/_next/static/chunks/3698-9fa11dafb5cad4a6.js,sha256=WogAxkOj2hCCvWBODLEG9CwZk34_IW4jfW9lpL1DCUA,7784
|
133
|
+
sky/dashboard/out/_next/static/chunks/3785.95b94f18aaec7233.js,sha256=nKS_ShG6pkesTYPtHQVmqGI_AusbCdftWS_a_TnxiGM,4591
|
135
134
|
sky/dashboard/out/_next/static/chunks/3937.d7f1c55d1916c7f2.js,sha256=EoRS8IfcAMrWLz9Pli9csCTez8gG-FupfQv2SKBY6RE,54557
|
136
135
|
sky/dashboard/out/_next/static/chunks/3947-b059261d6fa88a1f.js,sha256=jRCwpxWd7Gy-wU3-CosmwiIZdKAHHl6S67k-5wj1w38,10019
|
137
136
|
sky/dashboard/out/_next/static/chunks/430.ed51037d1a4a438b.js,sha256=vczgwkklvp5g6SroggeUauhjstjg2oPR0fmpTS9t5Qc,925
|
138
|
-
sky/dashboard/out/_next/static/chunks/4697.f5421144224da9fc.js,sha256=tjUsemiZOArTgwQi-KXFqJzlAcOfZoW0t4GQ9YUkorw,9414
|
139
137
|
sky/dashboard/out/_next/static/chunks/4725.4c849b1e05c8e9ad.js,sha256=NOkZDUb1wPV7qhwfvxtB7O0Od6y1Rc0MXW_BpV4zJSg,14946
|
138
|
+
sky/dashboard/out/_next/static/chunks/4869.c139c0124e677fc8.js,sha256=HklWfDYtHDgG6MM0dTNA4Xnhp8j_o0iF9_TX4OgV1pM,17834
|
140
139
|
sky/dashboard/out/_next/static/chunks/5230-df791914b54d91d9.js,sha256=jy8KepJn43jZhaJUCF2PSK8jJjIEpNO2fMXVQIPQliY,22584
|
141
140
|
sky/dashboard/out/_next/static/chunks/5491.918ffed0ba7a5294.js,sha256=zi9QGpZSoMnyZa9F8JB13haVGnx4gI88520-vdp9AXc,8487
|
142
141
|
sky/dashboard/out/_next/static/chunks/5739-5ea3ffa10fc884f2.js,sha256=3X5yHbRwhHhC96Dcx3-jV__MFmMSjar6ZvmYFzKljlE,65357
|
143
142
|
sky/dashboard/out/_next/static/chunks/616-162f3033ffcd3d31.js,sha256=p-UXLnK6MHA4gij1kki4bFdhk8ANfnn-XzCInpzoDj0,179264
|
144
|
-
sky/dashboard/out/_next/static/chunks/6601-
|
143
|
+
sky/dashboard/out/_next/static/chunks/6601-d4a381403a8bae91.js,sha256=349Wv6Ua29bfbBpnCwCjI33UFemyyIeBXzS3obGapw4,9053
|
145
144
|
sky/dashboard/out/_next/static/chunks/6989-eab0e9c16b64fd9f.js,sha256=nUs4DAMCOn7QvwRXZ4MLN0GLkdVcFPK7LBR7cxAcFb0,9433
|
146
|
-
sky/dashboard/out/_next/static/chunks/6990-
|
145
|
+
sky/dashboard/out/_next/static/chunks/6990-dcb411b566e64cde.js,sha256=tgaAxMIKhfF57bZohuSarNp7EdQ_WpLOQKzRgwopa9E,16092
|
147
146
|
sky/dashboard/out/_next/static/chunks/804-9f5e98ce84d46bdd.js,sha256=yC-hYtK6OPB30EDHw7JG50eDF5-CufVV-lCg4__Fg-w,11465
|
148
|
-
sky/dashboard/out/_next/static/chunks/8969-
|
149
|
-
sky/dashboard/out/_next/static/chunks/
|
150
|
-
sky/dashboard/out/_next/static/chunks/
|
151
|
-
sky/dashboard/out/_next/static/chunks/
|
152
|
-
sky/dashboard/out/_next/static/chunks/
|
147
|
+
sky/dashboard/out/_next/static/chunks/8969-743abf4bc86baf48.js,sha256=YrTrcR303uCovqxoDQRUBm8KKUmLGZ2fWIgYEjWVYBQ,9949
|
148
|
+
sky/dashboard/out/_next/static/chunks/9025.133e9ba5c780afeb.js,sha256=st4-ZeYt5iVYkXIlWhNy4Uq638FPLOUjQh7O5tjgw1U,10635
|
149
|
+
sky/dashboard/out/_next/static/chunks/938-6a9ffdaa21eee969.js,sha256=2nR5pla_QWFUVhhu_liYREnQC_dIYnZIpisq4kRm03Y,25826
|
150
|
+
sky/dashboard/out/_next/static/chunks/9470-b6f6a35283863a6f.js,sha256=CPmGRW2grevoF93p_jmh9tgO2X15tldm-_xFa4-qXXU,7887
|
151
|
+
sky/dashboard/out/_next/static/chunks/9847.46e613d000c55859.js,sha256=T9cr8tmlxojVEYt2ARei33ByVWlE8VJS5A5MmaEucNM,39848
|
153
152
|
sky/dashboard/out/_next/static/chunks/9984.b56614f3c4c5961d.js,sha256=kij2wjmGv52Dl66I9E_Nrc7aG9JN_orwMY-GqPJriN8,41450
|
154
153
|
sky/dashboard/out/_next/static/chunks/fd9d1056-61f2257a9cd8b32b.js,sha256=49S_KmXpB4D3U299iKHRbYnFxJnoeN36awxwhBbUn8U,172832
|
155
154
|
sky/dashboard/out/_next/static/chunks/framework-efc06c2733009cd3.js,sha256=XKYUV5T_2HxRwN7wZa9-Lj1J5gHLS0TKT2t2GobVewY,140943
|
156
155
|
sky/dashboard/out/_next/static/chunks/main-app-68c028b1bc5e1b72.js,sha256=zSukg-WO1Xy-B2xEIIGHXYApy2KOY9xWHcLqAYQvF3A,115883
|
157
156
|
sky/dashboard/out/_next/static/chunks/main-c0a4f1ea606d48d2.js,sha256=DPLM6ccDgTnITBgsqZPN3gmcI2szGCi9b_60PJZkTJQ,109885
|
158
157
|
sky/dashboard/out/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js,sha256=6QPOwdWeAVe8x-SsiDrm-Ga6u2DkqgG5SFqglrlyIgA,91381
|
159
|
-
sky/dashboard/out/_next/static/chunks/webpack-
|
160
|
-
sky/dashboard/out/_next/static/chunks/pages/_app-
|
158
|
+
sky/dashboard/out/_next/static/chunks/webpack-3fad5d4a0541a02d.js,sha256=ZVGYpe4EI46HJv1YIJfOdLZbavqWGWoI5lWXaKsEjSg,4655
|
159
|
+
sky/dashboard/out/_next/static/chunks/pages/_app-771a40cde532309b.js,sha256=-Fb7hImRuSHVFvnqq2sxp4B5V-KezsPj24AdJWaDP28,7587
|
161
160
|
sky/dashboard/out/_next/static/chunks/pages/_error-c72a1f77a3c0be1b.js,sha256=D2OpMaqpdtCPyq6iPhZHuF2ekyMjleRchSNCLR6fqps,250
|
162
161
|
sky/dashboard/out/_next/static/chunks/pages/clusters-102d169e87913ba1.js,sha256=wzNhCoIzkSiOuaTm9dGBVIYYIYWf4COJOklBr1aaLxE,859
|
163
162
|
sky/dashboard/out/_next/static/chunks/pages/config-a2673b256b6d416f.js,sha256=DYGB9Imk5FCe9uF7M_4nolQ0KbyaB9OHtI-Btilhk0I,787
|
164
163
|
sky/dashboard/out/_next/static/chunks/pages/index-927ddeebe57a8ac3.js,sha256=HNHKZ1ZGl68cTrJtLgtcXdVxfZpOAb1kU7F-DKbdzDc,516
|
165
164
|
sky/dashboard/out/_next/static/chunks/pages/infra-ae9d2f705ce582c9.js,sha256=VQCeBoIUFxwk21fCG5bRlJCAZGhPJYw6l-ewEXxodU0,829
|
166
165
|
sky/dashboard/out/_next/static/chunks/pages/jobs-5bbdc71878f0a068.js,sha256=DzFFkeiqV3zM2q7h9jrCByud3E9qaJ_GMj64IYEZqXU,858
|
167
|
-
sky/dashboard/out/_next/static/chunks/pages/users-
|
168
|
-
sky/dashboard/out/_next/static/chunks/pages/volumes-
|
169
|
-
sky/dashboard/out/_next/static/chunks/pages/workspaces-
|
170
|
-
sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-
|
171
|
-
sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-
|
166
|
+
sky/dashboard/out/_next/static/chunks/pages/users-19e98664bdd61643.js,sha256=q9tNDBEUTgzW45YyC6FfF_bUFxcO7y4I5uX0lcGvuNE,830
|
167
|
+
sky/dashboard/out/_next/static/chunks/pages/volumes-61ea7ba7e56f8d06.js,sha256=xbOOckYP3Ur6V8RDcYbACbdp-NvaOlM5B1v2GxHiPwg,817
|
168
|
+
sky/dashboard/out/_next/static/chunks/pages/workspaces-a1e43d9ef51a9cea.js,sha256=oYmmr6GczgrRKhFroNQb-BeWC7Q_9rjhIzh6kWAIZ9o,874
|
169
|
+
sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-0c37ee1ac5f3474d.js,sha256=GqMjMN3_Z8kYZWCz01aabcu8epNuKAUihohv9wxF34Y,16659
|
170
|
+
sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-9096ea50b8e2cf9e.js,sha256=p8a0Vq0MGjYiyAjDyKdrfko1phl3A7cGiTh_BsPkf4Q,21259
|
172
171
|
sky/dashboard/out/_next/static/chunks/pages/infra/[context]-8b0809f59034d509.js,sha256=2X6wnNqROGTzwZorrDJpUmO6XnUmS9VN3ImpTvhJ4IM,839
|
173
|
-
sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-
|
172
|
+
sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-14d404b7dd28502a.js,sha256=YQnczaJsLALfG3pAV_SFApECqPKJYaUMlJpUzlb1woA,25242
|
174
173
|
sky/dashboard/out/_next/static/chunks/pages/workspace/new-5629d4e551dba1ee.js,sha256=K9tqKHcB2kiSHTAddLaM2oL1PzmqZNTdLDOuNzCaJNM,765
|
175
174
|
sky/dashboard/out/_next/static/chunks/pages/workspaces/[name]-7c0187f43757a548.js,sha256=FsoenC6VRkPLE29KkLd4nlSq2qociH4zFexYMxgetOM,1530
|
176
|
-
sky/dashboard/out/_next/static/css/
|
177
|
-
sky/dashboard/out/
|
178
|
-
sky/dashboard/out/
|
179
|
-
sky/dashboard/out/
|
180
|
-
sky/dashboard/out/
|
175
|
+
sky/dashboard/out/_next/static/css/219887b94512388c.css,sha256=e_2-i85AX4kLpT-t-PuzH7GzHJ7VOzRZDfAz64JRQQY,45397
|
176
|
+
sky/dashboard/out/_next/static/gVXjeFhvtWXyOsx9xYNvM/_buildManifest.js,sha256=JMbLeJA2GWcsfkPy5YSiiUVoFu3fq69LJOFyYgVTryQ,2235
|
177
|
+
sky/dashboard/out/_next/static/gVXjeFhvtWXyOsx9xYNvM/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
|
178
|
+
sky/dashboard/out/clusters/[cluster].html,sha256=15ihUi0RpQw0KDx-KM8IBFuWlYz79R6CySBRSPn7A6Q,2847
|
179
|
+
sky/dashboard/out/clusters/[cluster]/[job].html,sha256=UhO4-K1t47b-V72EZh8QGWYuqxYBsNIVgLE0txPMOQw,2160
|
180
|
+
sky/dashboard/out/infra/[context].html,sha256=CCsKEFB4-c3XSZi--Qpmfgh7P2FcC22zaHKbjkeocDc,1436
|
181
|
+
sky/dashboard/out/jobs/[job].html,sha256=22DSXoACPu47-ly8vEE5cL0FjybC30nWEXKWf3cztcs,2304
|
181
182
|
sky/dashboard/out/videos/cursor-small.mp4,sha256=8tRdp1vjawOrXUar1cfjOc-nkaKmcwCPZx_LO0XlCvQ,203285
|
182
|
-
sky/dashboard/out/workspace/new.html,sha256=
|
183
|
-
sky/dashboard/out/workspaces/[name].html,sha256=
|
183
|
+
sky/dashboard/out/workspace/new.html,sha256=ek6CxuPVfFScJHU7HZvM1dHUNdumYqRvy809xLPRoXA,1428
|
184
|
+
sky/dashboard/out/workspaces/[name].html,sha256=ZU3iPS9n7V0eI1EWXwlxjOQtQZgA6Ac1aACxgigG6mY,2845
|
184
185
|
sky/data/__init__.py,sha256=Nhaf1NURisXpZuwWANa2IuCyppIuc720FRwqSE2oEwY,184
|
185
186
|
sky/data/data_transfer.py,sha256=N8b0CQebDuHieXjvEVwlYmK6DbQxUGG1RQJEyTbh3dU,12040
|
186
187
|
sky/data/data_utils.py,sha256=CNYPM963qby5ddW0DZNbhiWXkqgB9MHh_jrC5DoBctM,33437
|
@@ -243,9 +244,9 @@ sky/provision/gcp/instance.py,sha256=AZmqFDckqkPKhDvN6fDBRFGNVkrWzoZRcWI57HI3o9A
|
|
243
244
|
sky/provision/gcp/instance_utils.py,sha256=RM5KOAk56TU8q1LNRoo9yl4VwQ3DDq7FAfTxpgdZVTc,72094
|
244
245
|
sky/provision/gcp/mig_utils.py,sha256=oFpcFZoapHMILSE4iIm8V5bxP1RhbMHRF7cciqq8qAk,7883
|
245
246
|
sky/provision/gcp/volume_utils.py,sha256=tTZ8QFbssPYJQlFZ48_DUUemywn248__Jr1-l429WK8,11856
|
246
|
-
sky/provision/hyperbolic/__init__.py,sha256=
|
247
|
+
sky/provision/hyperbolic/__init__.py,sha256=76Z9YhSwNvnisvnYto2wIEtWg1qt4Y4hG3Nmttqbp1U,673
|
247
248
|
sky/provision/hyperbolic/config.py,sha256=N7ekDE57bc8GPQc4zabQ1f9y95syadpADRRH6gZZiNI,276
|
248
|
-
sky/provision/hyperbolic/instance.py,sha256=
|
249
|
+
sky/provision/hyperbolic/instance.py,sha256=LM6tYpS8aZpIrQcR-PKaW11Oa4qCZl6cLgRmWhwyRW4,17131
|
249
250
|
sky/provision/hyperbolic/utils.py,sha256=NCa3ULvIi64-YHYoOnPd3SShlJ6VuQsEwaTBqHFrqpg,14953
|
250
251
|
sky/provision/kubernetes/__init__.py,sha256=xzVA9OCga0pCdUAQ7zZiCZMdq-Y0182oHlIKWESA15A,896
|
251
252
|
sky/provision/kubernetes/config.py,sha256=iuKFZdivSaEOZf6PWz3JLju3bqyIuO58jTb9fFUn8nE,29632
|
@@ -327,7 +328,7 @@ sky/server/config.py,sha256=XWf5Kw4am6vMO5wcyWevbQAFH-dmKb7AMEgDzD083-M,8538
|
|
327
328
|
sky/server/constants.py,sha256=v6RP8ZEwCNsxO2s2IukgOcEldZO5bvcQaxmOTA0Cf0g,2321
|
328
329
|
sky/server/metrics.py,sha256=6H6n6dq_C5HMaU97mJlRUB9bqOEA_k205PO15wE3AWk,3648
|
329
330
|
sky/server/rest.py,sha256=elMpi-cS301OqTwmFZb7fWYXr1vdJ28YT1zIDH1IpBk,5968
|
330
|
-
sky/server/server.py,sha256=
|
331
|
+
sky/server/server.py,sha256=kSgxuqCI7ERRweqNThaCGci34nCC4-anaPR6pf3cB2I,73598
|
331
332
|
sky/server/state.py,sha256=YbVOMJ1JipQQv17gLIGyiGN7MKfnP83qlUa5MB1z0Yk,747
|
332
333
|
sky/server/stream_utils.py,sha256=RS4RuMxQqTGqp3uxzZVtmFWzos4d49P7hMX_VklzEVU,9189
|
333
334
|
sky/server/uvicorn.py,sha256=I-JUJwgUznt87hboDd66NTRaw0WtfFVzxxtoxowNqBg,9266
|
@@ -336,10 +337,10 @@ sky/server/html/log.html,sha256=TSGZktua9Ysl_ysg3w60rjxAxhH61AJnsYDHdtqrjmI,6929
|
|
336
337
|
sky/server/html/token_page.html,sha256=eUndS5u1foL9vaWGPRTLMt7lCzD1g0wYJ2v_EeeFzlc,7046
|
337
338
|
sky/server/requests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
338
339
|
sky/server/requests/event_loop.py,sha256=OhpPbuce65bbjpGRlcJa78AVnYSm08SzFKt70ypCUuQ,1211
|
339
|
-
sky/server/requests/executor.py,sha256=
|
340
|
+
sky/server/requests/executor.py,sha256=_BaE4QDTowLyaSyWCFVX_GqfrHknNRWuBexpDPMEdes,27100
|
340
341
|
sky/server/requests/payloads.py,sha256=UXulzuo5dY1uQTemYhAhYR0AL92AW6vxCdpI6ZgsxXk,23374
|
341
342
|
sky/server/requests/preconditions.py,sha256=uUQjzFFHf7O5-WvBypMzqViGmd1CXksbqrrDPmY_s_Y,7178
|
342
|
-
sky/server/requests/process.py,sha256=
|
343
|
+
sky/server/requests/process.py,sha256=UpJp5rZizNMFRCNRtudFSjbcJhFarFbtAGDWI9x_ZyE,13197
|
343
344
|
sky/server/requests/requests.py,sha256=jp81kMjXkBVqQK2v4GtLQstXvMR0EOPOOsn88kYJh5g,28670
|
344
345
|
sky/server/requests/queues/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
345
346
|
sky/server/requests/queues/local_queue.py,sha256=X6VkBiUmgd_kfqIK1hCtMWG1b8GiZbY70TBiBR6c6GY,416
|
@@ -348,7 +349,7 @@ sky/server/requests/serializers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm
|
|
348
349
|
sky/server/requests/serializers/decoders.py,sha256=qphN79pRAaaitCbcsZIrslphgZn1iYndl6JnmergEe4,6361
|
349
350
|
sky/server/requests/serializers/encoders.py,sha256=4bQV5yTg8RTPT_HkRyQpjaBY_uUvBJ4NH189W0-6Pi0,5578
|
350
351
|
sky/setup_files/MANIFEST.in,sha256=BzWGsYZz9fO40HN1Uxm1Ca4pn1FkKn3lcoY1B9-YRiA,644
|
351
|
-
sky/setup_files/dependencies.py,sha256=
|
352
|
+
sky/setup_files/dependencies.py,sha256=cEqPoh4IOLIJ3GXzihFx98oAtEG7VLQDu5jyaNFqwT0,7151
|
352
353
|
sky/setup_files/setup.py,sha256=GTXvAi65S4_TSLhQ1GzkmaWf_yzciHiaxMbZumcTtKU,7522
|
353
354
|
sky/skylet/LICENSE,sha256=BnFrJSvUFpMUoH5mOpWnEvaC5R6Uux8W6WXgrte8iYg,12381
|
354
355
|
sky/skylet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -420,7 +421,7 @@ sky/utils/admin_policy_utils.py,sha256=VkE3FGzv5a7KnRO0R1PX0buJ274vF__n1xgXJ_9yk
|
|
420
421
|
sky/utils/annotations.py,sha256=-rfacB30Sl0xkFriejGvxma3oKctGfXXLZkQPHG33eo,1626
|
421
422
|
sky/utils/atomic.py,sha256=vrw-7XCnckF0xCx-ttamao7evPdGtVsnjaTtgMlBXIE,1280
|
422
423
|
sky/utils/cluster_utils.py,sha256=s6DFRXktv6_gF_DnwDEXJ7CniifHp8CAPeGciRCbXgI,14432
|
423
|
-
sky/utils/command_runner.py,sha256=
|
424
|
+
sky/utils/command_runner.py,sha256=5-RbJQXMFeKbVcHwAtroJVJGoARVBZ1wrTm4mhNYjfI,43928
|
424
425
|
sky/utils/command_runner.pyi,sha256=IS3qeCTgWys94KhaHx3S2Pty8qDWn_zFht7bgDLJFcw,9593
|
425
426
|
sky/utils/common.py,sha256=nTg-mjNu0diZjs2UvyiMc84Tu1ZonRLRAmfqFIP1TtY,2242
|
426
427
|
sky/utils/common_utils.py,sha256=3cBop3bbR11XXsaxgH8oWK9YR8_F_cwvR7904LsRNU0,36285
|
@@ -444,7 +445,7 @@ sky/utils/rich_utils.py,sha256=ZKztFc0D5q7ma_NE2p9UKjVS9zqcJ3L53FRw6SPoUvg,14707
|
|
444
445
|
sky/utils/schemas.py,sha256=L-FD12KpFWgch3ynBQjkaOszv_fB_u6f5iTRgg7Zq-A,52466
|
445
446
|
sky/utils/status_lib.py,sha256=QGkd6COD1GX1h30Mk9RMUdyeUOMJs5971GkxTcFgdsU,1705
|
446
447
|
sky/utils/subprocess_utils.py,sha256=tOpFY_1ml7JkVGAN1o473lcKPklGR95qBCW61eu8kEo,15773
|
447
|
-
sky/utils/tempstore.py,sha256=
|
448
|
+
sky/utils/tempstore.py,sha256=3S5fJ3UjnE12ve38c3MpTXpoRWfDSGndZpqNe7P_8aU,2148
|
448
449
|
sky/utils/timeline.py,sha256=ob6s3bc7nwAuSI76yLKBrSR5bzOHnOhbozz1avwoet4,4070
|
449
450
|
sky/utils/ux_utils.py,sha256=-fxqsar64eZWZ7vSH6gy1voxsDZTqcTR02a9uf_uRZg,10292
|
450
451
|
sky/utils/validator.py,sha256=AHIYEBpxzpC2Eg8TulruFqQSjTxeynB0Dc7cfP1RX2M,1159
|
@@ -481,9 +482,9 @@ sky/workspaces/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
481
482
|
sky/workspaces/core.py,sha256=MkQoVqWN67tf4VRq284U9vgAw4lwb_cpUfwHQT4V9Ow,16598
|
482
483
|
sky/workspaces/server.py,sha256=Box45DS54xXGHy7I3tGKGy-JP0a8G_z6IhfvGlEXtsA,3439
|
483
484
|
sky/workspaces/utils.py,sha256=IIAiFoS6sdb2t0X5YoX9AietpTanZUQNTK8cePun-sY,2143
|
484
|
-
skypilot_nightly-1.0.0.
|
485
|
-
skypilot_nightly-1.0.0.
|
486
|
-
skypilot_nightly-1.0.0.
|
487
|
-
skypilot_nightly-1.0.0.
|
488
|
-
skypilot_nightly-1.0.0.
|
489
|
-
skypilot_nightly-1.0.0.
|
485
|
+
skypilot_nightly-1.0.0.dev20250716.dist-info/licenses/LICENSE,sha256=emRJAvE7ngL6x0RhQvlns5wJzGI3NEQ_WMjNmd9TZc4,12170
|
486
|
+
skypilot_nightly-1.0.0.dev20250716.dist-info/METADATA,sha256=fVy_msGcnJ6VSqUIUIhwcVh871RmnZQn20N2_Dtea1o,18954
|
487
|
+
skypilot_nightly-1.0.0.dev20250716.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
488
|
+
skypilot_nightly-1.0.0.dev20250716.dist-info/entry_points.txt,sha256=StA6HYpuHj-Y61L2Ze-hK2IcLWgLZcML5gJu8cs6nU4,36
|
489
|
+
skypilot_nightly-1.0.0.dev20250716.dist-info/top_level.txt,sha256=qA8QuiNNb6Y1OF-pCUtPEr6sLEwy2xJX06Bd_CrtrHY,4
|
490
|
+
skypilot_nightly-1.0.0.dev20250716.dist-info/RECORD,,
|
@@ -1 +0,0 @@
|
|
1
|
-
self.__BUILD_MANIFEST=function(s,c,a,e,t,f,u,n,r,i,b,j,d,k,o){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},"/":["static/chunks/pages/index-927ddeebe57a8ac3.js"],"/_error":["static/chunks/pages/_error-c72a1f77a3c0be1b.js"],"/clusters":["static/chunks/pages/clusters-102d169e87913ba1.js"],"/clusters/[cluster]":[s,c,a,e,t,r,b,f,u,n,j,i,d,k,o,"static/chunks/1871-cf1a47986d716dd2.js","static/chunks/pages/clusters/[cluster]-0fbfb1dd0b08c90c.js"],"/clusters/[cluster]/[job]":[s,c,a,e,t,f,u,n,"static/chunks/pages/clusters/[cluster]/[job]-4608dc89f95eba89.js"],"/config":["static/chunks/pages/config-a2673b256b6d416f.js"],"/infra":["static/chunks/pages/infra-ae9d2f705ce582c9.js"],"/infra/[context]":["static/chunks/pages/infra/[context]-8b0809f59034d509.js"],"/jobs":["static/chunks/pages/jobs-5bbdc71878f0a068.js"],"/jobs/[job]":[s,c,a,e,t,r,f,u,n,i,"static/chunks/pages/jobs/[job]-980d6f6b64ca7833.js"],"/users":["static/chunks/pages/users-cd43fb3c122eedde.js"],"/volumes":["static/chunks/pages/volumes-4ebf6484f7216387.js"],"/workspace/new":["static/chunks/pages/workspace/new-5629d4e551dba1ee.js"],"/workspaces":["static/chunks/pages/workspaces-06bde99155fa6292.js"],"/workspaces/[name]":[s,c,a,e,t,r,b,f,u,n,j,i,d,k,o,"static/chunks/1141-726e5a3f00b67185.js","static/chunks/pages/workspaces/[name]-7c0187f43757a548.js"],sortedPages:["/","/_app","/_error","/clusters","/clusters/[cluster]","/clusters/[cluster]/[job]","/config","/infra","/infra/[context]","/jobs","/jobs/[job]","/users","/volumes","/workspace/new","/workspaces","/workspaces/[name]"]}}("static/chunks/616-162f3033ffcd3d31.js","static/chunks/5230-df791914b54d91d9.js","static/chunks/5739-5ea3ffa10fc884f2.js","static/chunks/1664-d65361e92b85e786.js","static/chunks/804-9f5e98ce84d46bdd.js","static/chunks/6989-eab0e9c16b64fd9f.js","static/chunks/3698-52ad1ca228faa776.js","static/chunks/9470-21d059a1dfa03f61.js","static/chunks/1272-1ef0bf0237faccdb.js","static/chunks/8969-13bb52ce3cffa4e3.js","static/chunks/3947-b059261d6fa88a1f.js","static/chunks/6990-d0dc765474fa0eca.js","static/chunks/1043-5e5ef6198735ff7e.js","static/chunks/6601-d38d10f957dff832.js","static/chunks/938-8e25c8ea0baa271a.js"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
|
@@ -1,11 +0,0 @@
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1141],{9333:function(e,s,l){l.d(s,{Z:function(){return r}});/**
|
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 r=(0,l(998).Z)("Save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]])},8418:function(e,s,l){l.d(s,{Z:function(){return r}});/**
|
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 r=(0,l(998).Z)("Trash",[["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"}]])},1812:function(e,s,l){l.d(s,{X:function(){return n}});var r=l(5893),a=l(7294);let t=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,[c,i]=(0,a.useState)(!1);if((0,a.useEffect)(()=>{s&&i(!1)},[s]),!s||c)return null;let o="string"==typeof s?s:t(s);return(0,r.jsx)("div",{className:"bg-red-50 border border-red-200 rounded-md p-3 mb-4",children:(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsxs)("div",{className:"flex",children:[(0,r.jsx)("div",{className:"flex-shrink-0",children:(0,r.jsx)("svg",{className:"h-5 w-5 text-red-400",viewBox:"0 0 20 20",fill:"currentColor",children:(0,r.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,r.jsx)("div",{className:"ml-3",children:(0,r.jsxs)("div",{className:"text-sm text-red-800",children:[(0,r.jsxs)("strong",{children:[l,":"]})," ",o]})})]}),(0,r.jsx)("button",{onClick:()=>{i(!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,r.jsx)("svg",{className:"h-4 w-4",viewBox:"0 0 20 20",fill:"currentColor",children:(0,r.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"})})})]})})}},9123:function(e,s,l){l.d(s,{g:function(){return n}});var r=l(5893),a=l(7294),t=l(2350);let n=a.forwardRef((e,s)=>{let{className:l,...a}=e;return(0,r.jsx)("textarea",{className:(0,t.cn)("flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",l),ref:s,...a})});n.displayName="Textarea"},1141:function(e,s,l){l.r(s),l.d(s,{WorkspaceEditor:function(){return R}});var r=l(5893),a=l(7294),t=l(1163),n=l(7324),c=l(3266),i=l(8969);l(9470);var o=l(1664),d=l.n(o),u=l(9008),x=l.n(u),m=l(7673),h=l(803),f=l(9123),g=l(5739),p=l(282),b=l(6021),j=l(3626),y=l(8418),N=l(9333),v=l(326);let w=e=>{let{className:s="",variant:l="default",children:a,...t}=e;return(0,r.jsx)("div",{role:"alert",className:"".concat("relative w-full rounded-lg border p-4 flex items-start space-x-2"," ").concat({default:"bg-blue-50 border-blue-200 text-blue-800",destructive:"bg-red-50 border-red-200 text-red-800"}[l]," ").concat(s),...t,children:a})},k=e=>{let{className:s="",children:l,...a}=e;return(0,r.jsx)("div",{className:"text-sm leading-relaxed ".concat(s),...a,children:l})};var C=l(3850),L=l(1812),S=l(938),E=l(1272),M=l(3225),D=l(3081);let Z=e=>{let{message:s}=e;return s?(0,r.jsxs)(w,{className:"border-green-200 bg-green-50",children:[(0,r.jsx)(p.Z,{className:"h-4 w-4 text-green-600"}),(0,r.jsx)(k,{className:"text-green-800",children:s})]}):null},A=e=>{let{workspaceName:s,config:l,enabledClouds:a=[]}=e;if(!l)return null;let t="default"===s,n=0===Object.keys(l).length;if(t&&n)return(0,r.jsx)("div",{className:"text-sm text-gray-500 mb-3 italic p-3 bg-sky-50 rounded border border-sky-200",children:"Workspace 'default' can use all accessible infrastructure."});let c=[],i=[],o=[],d=new Set(a.map(e=>e.toLowerCase()));Object.entries(l).forEach(e=>{let[s,l]=e;if("private"===s||"allowed_users"===s)return;let a=M.MN[s.toLowerCase()]||s.toUpperCase(),t=d.has(null==a?void 0:a.toLowerCase());if((null==l?void 0:l.disabled)===!0)i.push(a);else if(l&&Object.keys(l).length>0){let e="";"gcp"===s.toLowerCase()&&l.project_id?e=" (Project ID: ".concat(l.project_id,")"):"aws"===s.toLowerCase()&&l.region&&(e=" (Region: ".concat(l.region,")")),t?c.push((0,r.jsxs)("span",{className:"block",children:[a,e," is enabled."]},"".concat(s,"-enabled"))):o.push((0,r.jsxs)("span",{className:"block text-amber-700",children:[a,e," is configured but not currently available."]},"".concat(s,"-configured-not-enabled")))}else t?c.push((0,r.jsxs)("span",{className:"block",children:[a," is enabled (using default settings)."]},"".concat(s,"-default-enabled"))):o.push((0,r.jsxs)("span",{className:"block text-amber-700",children:[a," is configured but not currently available."]},"".concat(s,"-default-not-enabled")))});let u=[];if(i.length>0){let e=i.join(" and ");u.push((0,r.jsxs)("span",{className:"block",children:[e," ",1===i.length?"is":"are"," explicitly disabled."]},"disabled-clouds"))}return(u.push(...c),u.push(...o),u.length>0)?(0,r.jsx)("div",{className:"text-sm text-gray-700 mb-3 p-3 bg-sky-50 rounded border border-sky-200",children:u}):!t&&n?(0,r.jsx)("div",{className:"text-sm text-gray-500 mb-3 italic p-3 bg-sky-50 rounded border border-sky-200",children:"This workspace has no specific cloud resource configurations and can use all accessible infrastructure."}):null},W=e=>{let{isPrivate:s}=e;return s?(0,r.jsx)("span",{className:"inline-flex items-center px-2 py-1 rounded-full text-xs font-medium bg-amber-100 text-amber-800 border border-amber-300",children:"Private"}):(0,r.jsx)("span",{className:"inline-flex items-center px-2 py-1 rounded-full text-xs font-medium bg-green-100 text-green-800 border border-green-300",children:"Public"})},P=e=>{let{workspaceConfig:s,allUsers:l}=e;if(!s.private)return null;let a=s.allowed_users||[],t=(l||[]).filter(e=>"admin"===e.role).map(e=>e.username),n=[...new Set([...a,...t])];return 0===n.length?(0,r.jsxs)("div",{className:"mt-4",children:[(0,r.jsx)("h4",{className:"mb-2 text-xs text-gray-500 tracking-wider",children:"Allowed Users (0)"}),(0,r.jsx)("div",{className:"text-amber-600 text-xs italic p-2 bg-amber-50 rounded border border-amber-200",children:"No users configured (workspace may be inaccessible)"})]}):(0,r.jsxs)("div",{className:"mt-4",children:[(0,r.jsxs)("h4",{className:"mb-2 text-xs text-gray-500 tracking-wider",children:["Allowed Users (",n.length,")"]}),(0,r.jsx)("div",{className:"space-y-1 max-h-48 overflow-y-auto border border-gray-200 rounded",children:n.map(e=>{let s=t.includes(e);return(0,r.jsxs)("div",{className:"flex items-center justify-between text-xs p-2 bg-gray-50 hover:bg-gray-100 border-b border-gray-100 last:border-b-0",children:[(0,r.jsx)("span",{className:"font-medium text-gray-700",children:e}),s?(0,r.jsxs)("span",{className:"inline-flex items-center text-blue-600",children:[(0,r.jsx)(C.r7,{className:"w-3 h-3 mr-1"}),"Admin"]}):(0,r.jsxs)("span",{className:"inline-flex items-center text-gray-600",children:[(0,r.jsx)(b.Z,{className:"w-3 h-3 mr-1"}),"User"]})]},e)})})]})};function R(e){let{workspaceName:s,isNewWorkspace:l=!1}=e,o=(0,t.useRouter)(),[u,p]=(0,a.useState)({}),[b,w]=(0,a.useState)({}),[k,M]=(0,a.useState)(""),[R,_]=(0,a.useState)(!0),[z,O]=(0,a.useState)(!1),[T,U]=(0,a.useState)(!1),[Y,J]=(0,a.useState)(null),[I,V]=(0,a.useState)(null),[F,H]=(0,a.useState)(null),[X,B]=(0,a.useState)([]),[G,q]=(0,a.useState)({showDialog:!1,deleting:!1,error:null}),[K,Q]=(0,a.useState)({totalClusterCount:0,runningClusterCount:0,managedJobsCount:0,clouds:[]}),[$,ee]=(0,a.useState)(!1),es=(0,a.useCallback)(async()=>{_(!0),J(null);try{let e;let[l,r]=await Promise.all([(0,n.fX)(),(0,D.R)()]),a=l[s]||{};p(a),w(a),B(r||[]),e=0===Object.keys(a).length?"".concat(s,":\n # Empty workspace configuration - uses all accessible infrastructure\n"):E.ZP.dump({[s]:a},{indent:2,lineWidth:-1,noRefs:!0,skipInvalid:!0,flowLevel:-1}),M(e)}catch(e){console.error("Error fetching workspace config:",e),J(e)}finally{_(!1)}},[s]),el=(0,a.useCallback)(async()=>{if(!l){ee(!0);try{let[e,l,r]=await Promise.all([(0,c.getClusters)(),(0,i.getManagedJobs)(),(0,n.yz)(s,!0)]),a=e.filter(e=>(e.workspace||"default")===s),t=a.filter(e=>"RUNNING"===e.status||"LAUNCHING"===e.status),o={};e.forEach(e=>{o[e.cluster]=e.workspace||"default"});let d=l.jobs||[],u=new Set(S.statusGroups.active),x=0;d.forEach(e=>{let l=e.cluster_name||e.resources&&e.resources.cluster_name;l&&o[l]===s&&u.has(e.status)&&x++}),Q({totalClusterCount:a.length,runningClusterCount:t.length,managedJobsCount:x,clouds:Array.isArray(r)?r:[]})}catch(e){console.error("Failed to fetch workspace stats:",e)}finally{ee(!1)}}},[s,l]);(0,a.useEffect)(()=>{l?(_(!1),M("".concat(s,":\n # New workspace configuration\n # Leave empty to use all accessible infrastructure\n"))):(es(),el())},[s,l,es,el]),(0,a.useEffect)(()=>{U(JSON.stringify(u)!==JSON.stringify(b))},[u,b]);let er=e=>{M(e),H(null);try{let l=E.ZP.load(e)||{},r=Object.keys(l);if(0===r.length)p({});else if(1===r.length){let e=r[0];if(e!==s){H('Workspace name cannot be changed. Expected "'.concat(s,'" but found "').concat(e,'".'));return}let a=l[s]||{};p(a)}else H("Configuration must contain only one workspace. Found: ".concat(r.join(", ")))}catch(e){H("Invalid YAML: ".concat(e.message))}},ea=async()=>{O(!0),J(null),V(null);try{if(F)throw Error("Please fix YAML errors before saving");let e=E.ZP.load(k)||{},r=Object.keys(e);if(r.length>0&&r[0]!==s)throw Error('Workspace name cannot be changed. Expected "'.concat(s,'".'));l?(await (0,n.MB)(s,u),V("Workspace created successfully!"),setTimeout(()=>{o.push("/workspaces/".concat(s))},1500)):(await (0,n.eA)(s,u),V("Workspace updated successfully!"),w(u),el())}catch(e){console.error("Error saving workspace:",e),J(e)}finally{O(!1)}},et=async()=>{q(e=>({...e,deleting:!0,error:null}));try{await (0,n.zl)(s),V("Workspace deleted successfully!"),setTimeout(()=>{o.push("/workspaces")},1500)}catch(e){console.error("Error deleting workspace:",e),q(s=>({...s,deleting:!1,error:e}))}},en=()=>{q({showDialog:!1,deleting:!1,error:null})},ec=async()=>{await Promise.all([es(),el()])};if(!o.isReady)return(0,r.jsx)("div",{children:"Loading..."});let ei=l?"Create New Workspace | SkyPilot Dashboard":"Workspace: ".concat(s," | SkyPilot Dashboard");return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(x(),{children:(0,r.jsx)("title",{children:ei})}),(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)(d(),{href:"/workspaces",className:"text-sky-blue hover:underline",children:"Workspaces"}),(0,r.jsx)("span",{className:"mx-2 text-gray-500",children:"›"}),(0,r.jsx)(d(),{href:l?"/workspace/new":"/workspaces/".concat(s),className:"text-sky-blue hover:underline",children:l?"New Workspace":s}),T&&(0,r.jsx)("span",{className:"ml-3 px-2 py-1 bg-yellow-100 text-yellow-800 text-xs rounded",children:"Unsaved changes"})]}),(0,r.jsxs)("div",{className:"text-sm flex items-center",children:[(R||z||$)&&(0,r.jsxs)("div",{className:"flex items-center mr-4",children:[(0,r.jsx)(g.Z,{size:15,className:"mt-0"}),(0,r.jsx)("span",{className:"ml-2 text-gray-500",children:z?"Saving...":"Loading..."})]}),(0,r.jsxs)("div",{className:"flex items-center space-x-4",children:[!l&&(0,r.jsxs)("button",{onClick:ec,disabled:R||z||$,className:"text-sky-blue hover:text-sky-blue-bright font-medium inline-flex items-center",children:[(0,r.jsx)(j.Z,{className:"w-4 h-4 mr-1.5"}),"Refresh"]}),!l&&"default"!==s&&(0,r.jsxs)("button",{onClick:()=>q({...G,showDialog:!0}),disabled:G.deleting||z,className:"text-red-600 hover:text-red-700 font-medium inline-flex items-center",children:[(0,r.jsx)(y.Z,{className:"w-4 h-4 mr-1.5"}),"Delete"]})]})]})]}),R?(0,r.jsxs)("div",{className:"flex justify-center items-center py-12",children:[(0,r.jsx)(g.Z,{size:24,className:"mr-2"}),(0,r.jsx)("span",{className:"text-gray-500",children:"Loading workspace configuration..."})]}):(0,r.jsxs)("div",{className:"space-y-6",children:[(0,r.jsx)(L.X,{error:Y,title:"Error",onDismiss:()=>J(null)}),(0,r.jsx)(Z,{message:I}),(0,r.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6",children:[!l&&(0,r.jsx)("div",{className:"lg:col-span-1",children:(0,r.jsxs)(m.Zb,{className:"h-full",children:[(0,r.jsx)(m.Ol,{children:(0,r.jsx)(m.ll,{className:"text-base font-normal",children:(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:"font-semibold",children:"Workspace:"})," ",s]}),(0,r.jsx)(W,{isPrivate:!0===b.private})]})})}),(0,r.jsxs)(m.aY,{className:"text-sm pb-2 flex-1",children:[(0,r.jsxs)("div",{className:"py-2 flex items-center justify-between",children:[(0,r.jsxs)("div",{className:"flex items-center text-gray-600",children:[(0,r.jsx)(C.QT,{className:"w-4 h-4 mr-2 text-gray-500"}),(0,r.jsx)("span",{children:"Clusters (Running / Total)"})]}),(0,r.jsx)("span",{className:"font-normal text-gray-800",children:$?"...":"".concat(K.runningClusterCount," / ").concat(K.totalClusterCount)})]}),(0,r.jsxs)("div",{className:"py-2 flex items-center justify-between border-t border-gray-100",children:[(0,r.jsxs)("div",{className:"flex items-center text-gray-600",children:[(0,r.jsx)(C.Vp,{className:"w-4 h-4 mr-2 text-gray-500"}),(0,r.jsx)("span",{children:"Managed Jobs"})]}),(0,r.jsx)("span",{className:"font-normal text-gray-800",children:$?"...":K.managedJobsCount})]})]}),(0,r.jsxs)("div",{className:"px-6 pb-6 text-sm pt-3",children:[(0,r.jsx)("h4",{className:"mb-2 text-xs text-gray-500 tracking-wider",children:"Enabled Infra"}),(0,r.jsx)("div",{className:"flex flex-wrap gap-x-4 gap-y-1",children:$?(0,r.jsx)("span",{className:"text-gray-500",children:"Loading..."}):K.clouds.length>0?K.clouds.map(e=>(0,r.jsxs)("div",{className:"flex items-center text-gray-700",children:[(0,r.jsx)(C.Ye,{className:"w-3.5 h-3.5 mr-1.5 text-green-500"}),(0,r.jsx)("span",{children:e})]},e)):(0,r.jsx)("span",{className:"text-gray-500 italic",children:"No enabled infrastructure"})}),(0,r.jsx)("div",{className:"mt-4",children:(0,r.jsx)(A,{workspaceName:s,config:b,enabledClouds:K.clouds})}),(0,r.jsx)(P,{workspaceConfig:b,allUsers:X})]})]})}),(0,r.jsx)("div",{className:l?"lg:col-span-3":"lg:col-span-2",children:(0,r.jsxs)(m.Zb,{className:"h-full flex flex-col",children:[(0,r.jsx)(m.Ol,{children:(0,r.jsx)(m.ll,{className:"text-base font-normal",children:l?"New Workspace YAML":"Edit Workspace YAML"})}),(0,r.jsx)(m.aY,{className:"flex-1 flex flex-col",children:(0,r.jsxs)("div",{className:"space-y-4 flex-1 flex flex-col",children:[F&&(0,r.jsx)(L.X,{error:F,onDismiss:()=>H(null)}),(0,r.jsxs)("div",{className:"flex-1 flex flex-col",children:[(0,r.jsxs)("p",{className:"text-sm text-gray-600 mb-3",children:["Configure infra-specific settings for this workspace. Leave empty to use all accessible infrastructure. Refer to"," ",(0,r.jsx)("a",{href:"https://docs.skypilot.co/en/latest/admin/workspaces.html#configuration",target:"_blank",rel:"noopener noreferrer",className:"text-blue-600",children:"SkyPilot Docs"})," ","for more details."]}),(0,r.jsxs)("div",{className:"mb-4",children:[(0,r.jsx)("h4",{className:"text-sm font-medium text-gray-700 mb-2",children:"Example configuration:"}),(0,r.jsx)("div",{className:"p-3 bg-gray-50 border rounded-lg",children:(0,r.jsx)("pre",{className:"text-xs font-mono text-gray-600 whitespace-pre-wrap",children:"".concat(s||"my-workspace",":\n private: true\n allowed_users:\n - user1@mydomain.com\n - user2@mydomain.com\n gcp:\n project_id: xxx\n disabled: false\n kubernetes:\n allowed_contexts:\n - context-1")})})]}),(0,r.jsx)(f.g,{value:k,onChange:e=>er(e.target.value),className:"font-mono text-sm flex-1 resize-none",style:{minHeight:"350px"},spellCheck:!1,placeholder:"# Enter workspace configuration in YAML format"}),(0,r.jsx)("div",{className:"flex justify-end space-x-3 pt-3 border-gray-200",children:(0,r.jsxs)(h.z,{onClick:ea,disabled:z||F||R,className:"inline-flex items-center bg-blue-600 hover:bg-blue-700 text-white",children:[(0,r.jsx)(N.Z,{className:"w-4 h-4 mr-1.5"}),z?"Applying...":"Apply"]})})]})]})})]})})]})]}),(0,r.jsx)(v.Vq,{open:G.showDialog,onOpenChange:en,children:(0,r.jsxs)(v.cZ,{className:"sm:max-w-md",children:[(0,r.jsxs)(v.fK,{className:"",children:[(0,r.jsx)(v.$N,{children:"Delete Workspace"}),(0,r.jsxs)(v.Be,{children:['Are you sure you want to delete workspace "',s,'"? This action cannot be undone.']})]}),G.error&&(0,r.jsx)(L.X,{error:G.error,title:"Deletion Failed",onDismiss:()=>q(e=>({...e,error:null}))}),(0,r.jsxs)(v.cN,{className:"",children:[(0,r.jsx)(h.z,{variant:"outline",onClick:en,disabled:G.deleting,children:"Cancel"}),(0,r.jsx)(h.z,{variant:"destructive",onClick:et,disabled:G.deleting,children:G.deleting?"Deleting...":"Delete"})]})]})})]})]})}}}]);
|