skypilot-nightly 1.0.0.dev20250703__py3-none-any.whl → 1.0.0.dev20250704__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/backends/backend_utils.py +24 -24
- sky/catalog/data_fetchers/fetch_cudo.py +37 -37
- sky/client/sdk.py +4 -6
- sky/clouds/aws.py +1 -1
- sky/clouds/cudo.py +1 -1
- sky/dashboard/out/404.html +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.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/exceptions.py +5 -0
- sky/jobs/client/sdk.py +3 -1
- sky/jobs/server/core.py +3 -1
- sky/provision/cudo/cudo_utils.py +14 -8
- sky/provision/cudo/cudo_wrapper.py +71 -70
- sky/server/common.py +46 -92
- sky/server/constants.py +25 -4
- sky/server/requests/payloads.py +55 -10
- sky/server/requests/requests.py +6 -28
- sky/server/rest.py +15 -4
- sky/server/server.py +40 -7
- sky/server/versions.py +270 -0
- {skypilot_nightly-1.0.0.dev20250703.dist-info → skypilot_nightly-1.0.0.dev20250704.dist-info}/METADATA +1 -1
- {skypilot_nightly-1.0.0.dev20250703.dist-info → skypilot_nightly-1.0.0.dev20250704.dist-info}/RECORD +41 -40
- /sky/dashboard/out/_next/static/{A-fbCEgJE_q2cV8biIOIr → 6TieQqyqsJiaJC33q0FfI}/_buildManifest.js +0 -0
- /sky/dashboard/out/_next/static/{A-fbCEgJE_q2cV8biIOIr → 6TieQqyqsJiaJC33q0FfI}/_ssgManifest.js +0 -0
- {skypilot_nightly-1.0.0.dev20250703.dist-info → skypilot_nightly-1.0.0.dev20250704.dist-info}/WHEEL +0 -0
- {skypilot_nightly-1.0.0.dev20250703.dist-info → skypilot_nightly-1.0.0.dev20250704.dist-info}/entry_points.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250703.dist-info → skypilot_nightly-1.0.0.dev20250704.dist-info}/licenses/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20250703.dist-info → skypilot_nightly-1.0.0.dev20250704.dist-info}/top_level.txt +0 -0
sky/server/server.py
CHANGED
@@ -4,7 +4,6 @@ import argparse
|
|
4
4
|
import asyncio
|
5
5
|
import base64
|
6
6
|
import contextlib
|
7
|
-
import dataclasses
|
8
7
|
import datetime
|
9
8
|
import hashlib
|
10
9
|
import json
|
@@ -49,6 +48,7 @@ from sky.server import constants as server_constants
|
|
49
48
|
from sky.server import metrics
|
50
49
|
from sky.server import state
|
51
50
|
from sky.server import stream_utils
|
51
|
+
from sky.server import versions
|
52
52
|
from sky.server.requests import executor
|
53
53
|
from sky.server.requests import payloads
|
54
54
|
from sky.server.requests import preconditions
|
@@ -559,6 +559,35 @@ class GracefulShutdownMiddleware(starlette.middleware.base.BaseHTTPMiddleware):
|
|
559
559
|
return await call_next(request)
|
560
560
|
|
561
561
|
|
562
|
+
class APIVersionMiddleware(starlette.middleware.base.BaseHTTPMiddleware):
|
563
|
+
"""Middleware to add API version to the request."""
|
564
|
+
|
565
|
+
async def dispatch(self, request: fastapi.Request, call_next):
|
566
|
+
version_info = versions.check_compatibility_at_server(request.headers)
|
567
|
+
# Bypass version handling for backward compatibility with clients prior
|
568
|
+
# to v0.11.0, the client will check the version in the body of
|
569
|
+
# /api/health response and hint an upgrade.
|
570
|
+
# TODO(aylei): remove this after v0.13.0 is released.
|
571
|
+
if version_info is None:
|
572
|
+
return await call_next(request)
|
573
|
+
if version_info.error is None:
|
574
|
+
versions.set_remote_api_version(version_info.api_version)
|
575
|
+
versions.set_remote_version(version_info.version)
|
576
|
+
response = await call_next(request)
|
577
|
+
else:
|
578
|
+
response = fastapi.responses.JSONResponse(
|
579
|
+
status_code=400,
|
580
|
+
content={
|
581
|
+
'error': common.ApiServerStatus.VERSION_MISMATCH.value,
|
582
|
+
'message': version_info.error,
|
583
|
+
})
|
584
|
+
response.headers[server_constants.API_VERSION_HEADER] = str(
|
585
|
+
server_constants.API_VERSION)
|
586
|
+
response.headers[server_constants.VERSION_HEADER] = \
|
587
|
+
versions.get_local_readable_version()
|
588
|
+
return response
|
589
|
+
|
590
|
+
|
562
591
|
app = fastapi.FastAPI(prefix='/api/v1', debug=True, lifespan=lifespan)
|
563
592
|
# Middleware wraps in the order defined here. E.g., given
|
564
593
|
# app.add_middleware(Middleware1)
|
@@ -571,6 +600,8 @@ app = fastapi.FastAPI(prefix='/api/v1', debug=True, lifespan=lifespan)
|
|
571
600
|
# Use environment variable to make the metrics middleware optional.
|
572
601
|
if os.environ.get(constants.ENV_VAR_SERVER_METRICS_ENABLED):
|
573
602
|
app.add_middleware(metrics.PrometheusMiddleware)
|
603
|
+
app.add_middleware(APIVersionMiddleware)
|
604
|
+
app.add_middleware(RBACMiddleware)
|
574
605
|
app.add_middleware(InternalDashboardPrefixMiddleware)
|
575
606
|
app.add_middleware(GracefulShutdownMiddleware)
|
576
607
|
app.add_middleware(PathCleanMiddleware)
|
@@ -1335,7 +1366,7 @@ async def local_down(request: fastapi.Request) -> None:
|
|
1335
1366
|
|
1336
1367
|
# === API server related APIs ===
|
1337
1368
|
@app.get('/api/get')
|
1338
|
-
async def api_get(request_id: str) ->
|
1369
|
+
async def api_get(request_id: str) -> payloads.RequestPayload:
|
1339
1370
|
"""Gets a request with a given request ID prefix."""
|
1340
1371
|
while True:
|
1341
1372
|
request_task = requests_lib.get_request(request_id)
|
@@ -1350,9 +1381,8 @@ async def api_get(request_id: str) -> requests_lib.RequestPayload:
|
|
1350
1381
|
detail=f'Request {request_id!r} should be retried')
|
1351
1382
|
request_error = request_task.get_error()
|
1352
1383
|
if request_error is not None:
|
1353
|
-
raise fastapi.HTTPException(
|
1354
|
-
|
1355
|
-
request_task.encode()))
|
1384
|
+
raise fastapi.HTTPException(
|
1385
|
+
status_code=500, detail=request_task.encode().model_dump())
|
1356
1386
|
return request_task.encode()
|
1357
1387
|
# yield control to allow other coroutines to run, sleep shortly
|
1358
1388
|
# to avoid storming the DB and CPU in the meantime
|
@@ -1490,7 +1520,7 @@ async def api_status(
|
|
1490
1520
|
None, description='Request IDs to get status for.'),
|
1491
1521
|
all_status: bool = fastapi.Query(
|
1492
1522
|
False, description='Get finished requests as well.'),
|
1493
|
-
) -> List[
|
1523
|
+
) -> List[payloads.RequestPayload]:
|
1494
1524
|
"""Gets the list of requests."""
|
1495
1525
|
if request_ids is None:
|
1496
1526
|
statuses = None
|
@@ -1530,7 +1560,10 @@ async def health(request: fastapi.Request) -> Dict[str, Any]:
|
|
1530
1560
|
logger.info(f'Health endpoint: request.state.auth_user = {user}')
|
1531
1561
|
return {
|
1532
1562
|
'status': common.ApiServerStatus.HEALTHY.value,
|
1533
|
-
|
1563
|
+
# Kept for backward compatibility, clients before 0.11.0 will read this
|
1564
|
+
# field to check compatibility and hint the user to upgrade the CLI.
|
1565
|
+
# TODO(aylei): remove this field after 0.13.0
|
1566
|
+
'api_version': str(server_constants.API_VERSION),
|
1534
1567
|
'version': sky.__version__,
|
1535
1568
|
'version_on_disk': common.get_skypilot_version_on_disk(),
|
1536
1569
|
'commit': sky.__commit__,
|
sky/server/versions.py
ADDED
@@ -0,0 +1,270 @@
|
|
1
|
+
"""API versioning module."""
|
2
|
+
|
3
|
+
import contextvars
|
4
|
+
import functools
|
5
|
+
import re
|
6
|
+
from typing import Callable, Literal, Mapping, NamedTuple, Optional, Tuple
|
7
|
+
|
8
|
+
import colorama
|
9
|
+
from packaging import version as version_lib
|
10
|
+
|
11
|
+
import sky
|
12
|
+
from sky import exceptions
|
13
|
+
from sky import sky_logging
|
14
|
+
from sky.server import constants
|
15
|
+
from sky.utils import ux_utils
|
16
|
+
|
17
|
+
logger = sky_logging.init_logger(__name__)
|
18
|
+
|
19
|
+
CLIENT_TOO_OLD_ERROR = (
|
20
|
+
f'{colorama.Fore.YELLOW}Your SkyPilot client version is too old:'
|
21
|
+
'{remote_version}\n'
|
22
|
+
f'{colorama.Style.RESET_ALL}'
|
23
|
+
'The server is running on {local_version} and the minimum compatible '
|
24
|
+
'version is {min_version}.\n'
|
25
|
+
f'Upgrade your client with:\n{colorama.Fore.YELLOW}'
|
26
|
+
'{command}'
|
27
|
+
f'{colorama.Style.RESET_ALL}')
|
28
|
+
SERVER_TOO_OLD_ERROR = (
|
29
|
+
f'{colorama.Fore.YELLOW}Your SkyPilot API server version is too old: '
|
30
|
+
'{remote_version}\n'
|
31
|
+
f'{colorama.Style.RESET_ALL}'
|
32
|
+
'The client is running on {local_version} and the minimum compatible '
|
33
|
+
'version is {min_version}.\n'
|
34
|
+
'Contact your administrator to upgrade the remote API server or downgrade '
|
35
|
+
f'your client with:\n{colorama.Fore.YELLOW}'
|
36
|
+
'{command}'
|
37
|
+
f'{colorama.Style.RESET_ALL}')
|
38
|
+
|
39
|
+
# SkyPilot dev version.
|
40
|
+
DEV_VERSION = '1.0.0-dev0'
|
41
|
+
|
42
|
+
_REMOTE_TO_ERROR = {
|
43
|
+
'client': CLIENT_TOO_OLD_ERROR,
|
44
|
+
'server': SERVER_TOO_OLD_ERROR,
|
45
|
+
}
|
46
|
+
|
47
|
+
# Context-local (thread or cooroutine) remote API version, captured during
|
48
|
+
# communication with the remote peer.
|
49
|
+
_remote_api_version: contextvars.ContextVar[Optional[int]] = \
|
50
|
+
contextvars.ContextVar('remote_api_version', default=None)
|
51
|
+
_remote_version: contextvars.ContextVar[str] = \
|
52
|
+
contextvars.ContextVar('remote_version', default='unknown')
|
53
|
+
_reminded_for_minor_version_upgrade = False
|
54
|
+
|
55
|
+
|
56
|
+
def get_remote_api_version() -> Optional[int]:
|
57
|
+
return _remote_api_version.get()
|
58
|
+
|
59
|
+
|
60
|
+
def set_remote_api_version(api_version: int) -> None:
|
61
|
+
_remote_api_version.set(api_version)
|
62
|
+
|
63
|
+
|
64
|
+
def get_remote_version() -> str:
|
65
|
+
return _remote_version.get()
|
66
|
+
|
67
|
+
|
68
|
+
def set_remote_version(version: str) -> None:
|
69
|
+
_remote_version.set(version)
|
70
|
+
|
71
|
+
|
72
|
+
class VersionInfo(NamedTuple):
|
73
|
+
api_version: int
|
74
|
+
version: str
|
75
|
+
error: Optional[str] = None
|
76
|
+
|
77
|
+
|
78
|
+
def check_compatibility_at_server(
|
79
|
+
client_headers: Mapping[str, str]) -> Optional[VersionInfo]:
|
80
|
+
"""Check API compatibility between client and server."""
|
81
|
+
return _check_version_compatibility(client_headers, 'client')
|
82
|
+
|
83
|
+
|
84
|
+
def check_compatibility_at_client(
|
85
|
+
server_headers: Mapping[str, str]) -> Optional[VersionInfo]:
|
86
|
+
"""Check API compatibility between client and server."""
|
87
|
+
return _check_version_compatibility(server_headers, 'server')
|
88
|
+
|
89
|
+
|
90
|
+
def _check_version_compatibility(
|
91
|
+
remote_headers: Mapping[str, str],
|
92
|
+
remote_type: Literal['client', 'server']) -> Optional[VersionInfo]:
|
93
|
+
"""Check API compatibility between client and server.
|
94
|
+
|
95
|
+
This function can be called at both client and server side, where the
|
96
|
+
headers should contain the version info of the remote.
|
97
|
+
|
98
|
+
Args:
|
99
|
+
remote_headers: The headers of the request/response sent from the
|
100
|
+
remote.
|
101
|
+
remote_type: The type of the remote, used to determine the error
|
102
|
+
message. Valid options are 'client' and 'server'.
|
103
|
+
|
104
|
+
Returns:
|
105
|
+
The version info of the remote, None if the version info is not found
|
106
|
+
in the headers for backward compatibility.
|
107
|
+
"""
|
108
|
+
api_version_str = remote_headers.get(constants.API_VERSION_HEADER)
|
109
|
+
version = remote_headers.get(constants.VERSION_HEADER)
|
110
|
+
if version is None or api_version_str is None:
|
111
|
+
return None
|
112
|
+
try:
|
113
|
+
api_version = int(api_version_str)
|
114
|
+
except ValueError:
|
115
|
+
# The future change is expected to not break the compatibility of this
|
116
|
+
# header, so we are encountering a bug or a malicious request here,
|
117
|
+
# just raise an error.
|
118
|
+
raise ValueError(
|
119
|
+
f'Header {constants.API_VERSION_HEADER}: '
|
120
|
+
f'{api_version_str} is not a valid API version.') from None
|
121
|
+
|
122
|
+
if api_version < constants.MIN_COMPATIBLE_API_VERSION:
|
123
|
+
if remote_type == 'server':
|
124
|
+
# Hint the user to downgrade to client to the remote server server.
|
125
|
+
server_version, server_commit = parse_readable_version(version)
|
126
|
+
command = install_version_command(server_version, server_commit)
|
127
|
+
else:
|
128
|
+
# Hint the client to upgrade to upgrade the server version
|
129
|
+
command = install_version_command(sky.__version__, sky.__commit__)
|
130
|
+
return VersionInfo(api_version=api_version,
|
131
|
+
version=version,
|
132
|
+
error=_REMOTE_TO_ERROR[remote_type].format(
|
133
|
+
remote_version=version,
|
134
|
+
local_version=get_local_readable_version(),
|
135
|
+
min_version=constants.MIN_COMPATIBLE_VERSION,
|
136
|
+
command=command,
|
137
|
+
))
|
138
|
+
|
139
|
+
if remote_type == 'server':
|
140
|
+
# Only print the reminder at client-side.
|
141
|
+
_remind_minor_version_upgrade(version)
|
142
|
+
|
143
|
+
return VersionInfo(api_version=api_version, version=version)
|
144
|
+
|
145
|
+
|
146
|
+
def get_local_readable_version() -> str:
|
147
|
+
"""Get the readable version of the SkyPilot code loaded in current process.
|
148
|
+
|
149
|
+
For dev version, the version is formatted as: 1.0.0-dev0 (commit: 1234567)
|
150
|
+
to make it meaningful for users.
|
151
|
+
"""
|
152
|
+
if sky.__version__ == DEV_VERSION:
|
153
|
+
return f'{sky.__version__} (commit: {sky.__commit__})'
|
154
|
+
else:
|
155
|
+
return sky.__version__
|
156
|
+
|
157
|
+
|
158
|
+
def parse_readable_version(version: str) -> Tuple[str, Optional[str]]:
|
159
|
+
"""Parse a readable produced by get_local_readable_version.
|
160
|
+
|
161
|
+
Args:
|
162
|
+
version: The version string to parse.
|
163
|
+
|
164
|
+
Returns:
|
165
|
+
A tuple of (version, optional_commit) where:
|
166
|
+
- version: The base version string (e.g., "1.0.0-dev0")
|
167
|
+
- optional_commit: The commit hash if present, None otherwise
|
168
|
+
"""
|
169
|
+
# Check if this is a dev version with commit info
|
170
|
+
# Format: "1.0.0-dev0 (commit: 1234567)"
|
171
|
+
commit_pattern = r'^(.+) \(commit: ([a-f0-9]+)\)$'
|
172
|
+
match = re.match(commit_pattern, version)
|
173
|
+
|
174
|
+
if match:
|
175
|
+
base_version = match.group(1)
|
176
|
+
commit = match.group(2)
|
177
|
+
return base_version, commit
|
178
|
+
else:
|
179
|
+
# Regular version without commit info
|
180
|
+
return version, None
|
181
|
+
|
182
|
+
|
183
|
+
def install_version_command(version: str, commit: Optional[str] = None) -> str:
|
184
|
+
if version == DEV_VERSION:
|
185
|
+
if commit is not None:
|
186
|
+
return ('pip install git+https://github.com/skypilot-org/skypilot@'
|
187
|
+
f'{commit}')
|
188
|
+
elif 'dev' in version:
|
189
|
+
return f'pip install -U "skypilot-nightly=={version}"'
|
190
|
+
return f'pip install -U "skypilot=={version}"'
|
191
|
+
|
192
|
+
|
193
|
+
def _remind_minor_version_upgrade(remote_version: str) -> None:
|
194
|
+
"""Remind the user to upgrade the CLI/SDK."""
|
195
|
+
# Only print the reminder once per process.
|
196
|
+
global _reminded_for_minor_version_upgrade
|
197
|
+
if _reminded_for_minor_version_upgrade:
|
198
|
+
return
|
199
|
+
# Skip for dev versions.
|
200
|
+
if 'dev' in sky.__version__ or 'dev' in remote_version:
|
201
|
+
return
|
202
|
+
|
203
|
+
# Remove the commit info if any.
|
204
|
+
remote_base_version, _ = parse_readable_version(remote_version)
|
205
|
+
|
206
|
+
# Parse semver for both local and remote versions
|
207
|
+
try:
|
208
|
+
local = version_lib.parse(sky.__version__)
|
209
|
+
remote = version_lib.parse(remote_base_version)
|
210
|
+
|
211
|
+
# Check if local version is behind remote version, ignore patch version.
|
212
|
+
if (local.major, local.minor) < (remote.major, remote.minor):
|
213
|
+
logger.warning(
|
214
|
+
f'{colorama.Fore.YELLOW}The SkyPilot API server is running in '
|
215
|
+
f'version {remote_version}, which is newer than your client '
|
216
|
+
f'version {sky.__version__}. The compatibility for your '
|
217
|
+
f'current version might be dropped in the next server upgrade.'
|
218
|
+
f'\nConsider upgrading your client with:\n'
|
219
|
+
f'{install_version_command(remote_version)}'
|
220
|
+
f'{colorama.Style.RESET_ALL}')
|
221
|
+
_reminded_for_minor_version_upgrade = True
|
222
|
+
except version_lib.InvalidVersion:
|
223
|
+
# Skip for non-valid semver (probabely a dev version)
|
224
|
+
pass
|
225
|
+
|
226
|
+
|
227
|
+
# TODO(aylei): maybe we can use similiar approach to mark a new argument can
|
228
|
+
# only be used in the new server version.
|
229
|
+
def minimal_api_version(min_version: int) -> Callable:
|
230
|
+
"""Decorator to enforce a minimum remote API version for an SDK function.
|
231
|
+
|
232
|
+
New SDK method must be decorated with this decorator to make sure it raises
|
233
|
+
an readable error when the remote server is not upgraded.
|
234
|
+
|
235
|
+
Args:
|
236
|
+
min_version: The minimum remote API version required to call the
|
237
|
+
function.
|
238
|
+
|
239
|
+
Returns:
|
240
|
+
A decorator function that checks API version before execution.
|
241
|
+
|
242
|
+
Raises:
|
243
|
+
APINotSupportedError: If the remote API version is below the minimum
|
244
|
+
required.
|
245
|
+
"""
|
246
|
+
|
247
|
+
def decorator(func: Callable) -> Callable:
|
248
|
+
|
249
|
+
@functools.wraps(func)
|
250
|
+
def wrapper(*args, **kwargs):
|
251
|
+
remote_api_version = get_remote_api_version()
|
252
|
+
if remote_api_version is None:
|
253
|
+
return func(*args, **kwargs)
|
254
|
+
if remote_api_version < min_version:
|
255
|
+
with ux_utils.print_exception_no_traceback():
|
256
|
+
hint = 'Please upgrade the remote server.'
|
257
|
+
# The client runs in a released version, do better hint.
|
258
|
+
if 'dev' not in sky.__version__:
|
259
|
+
hint = (
|
260
|
+
f'Upgrade the remote server to {sky.__version__} '
|
261
|
+
'and re-run the command.')
|
262
|
+
raise exceptions.APINotSupportedError(
|
263
|
+
f'Function {func.__name__} is introduced after the '
|
264
|
+
f'remote server version {get_remote_version()!r} is '
|
265
|
+
f'released. {hint}')
|
266
|
+
return func(*args, **kwargs)
|
267
|
+
|
268
|
+
return wrapper
|
269
|
+
|
270
|
+
return decorator
|
{skypilot_nightly-1.0.0.dev20250703.dist-info → skypilot_nightly-1.0.0.dev20250704.dist-info}/RECORD
RENAMED
@@ -1,4 +1,4 @@
|
|
1
|
-
sky/__init__.py,sha256=
|
1
|
+
sky/__init__.py,sha256=8LPF74IsNl_AZzy1od36U0W_b93dBkCKW3e5LZWLLKs,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
|
@@ -6,7 +6,7 @@ sky/cli.py,sha256=VXIZryeTtJPYpPTBKymVPmuOCyh8knfWrq-qnkr6R-4,178
|
|
6
6
|
sky/cloud_stores.py,sha256=Ln5GBpel-sEs7rVx7bBrMkfLwA_bctI05Rox2uoz7Lo,26388
|
7
7
|
sky/core.py,sha256=5UbaZ5xamYTajEq4TyiT81Q_cVzqPnMQRXASSz4OcNg,56272
|
8
8
|
sky/dag.py,sha256=5MFXlP43y9U54zxfYGhVyBiWEInoFFlt_zJ7ASJntXw,3889
|
9
|
-
sky/exceptions.py,sha256=
|
9
|
+
sky/exceptions.py,sha256=Vn7VVhyrTaMBTdVxsro325aKSMM4_KRJOghFX31xIVM,19164
|
10
10
|
sky/execution.py,sha256=BhI4paGKpXMhWJoelHFe7LGFbCnW7hl0rIAmdIay-dk,33223
|
11
11
|
sky/global_user_state.py,sha256=8_oKM5l5aey_IadFC6beiilfsbG10J27sqVxnHxFc7A,73040
|
12
12
|
sky/models.py,sha256=Eor-cT4D71QTimogcnJ5ey1G1PXK-OXN-snEtE8Uu_g,3152
|
@@ -34,7 +34,7 @@ sky/adaptors/vast.py,sha256=tpvmHi7IkQNzbbHVkeo04kUSajoEpSzXr2XgeO_I1LU,695
|
|
34
34
|
sky/adaptors/vsphere.py,sha256=zJP9SeObEoLrpgHW2VHvZE48EhgVf8GfAEIwBeaDMfM,2129
|
35
35
|
sky/backends/__init__.py,sha256=tpa9gAygQopsiBUUuy3wVmr4E05FoPTFHIWqEo4i-u0,627
|
36
36
|
sky/backends/backend.py,sha256=o47WUnB_h2nd_SkV0q0NTJ4vCwk23-KH5DgAm_JpKgE,7739
|
37
|
-
sky/backends/backend_utils.py,sha256=
|
37
|
+
sky/backends/backend_utils.py,sha256=1FlFUQbJfwWBs8kaBP4oCH6K7frcLYTewivh3xqJG5I,145117
|
38
38
|
sky/backends/cloud_vm_ray_backend.py,sha256=ILAOxfN4tZJolbmx7Sl1kTaSnd-sZdNTtvZKFbfzDoM,259464
|
39
39
|
sky/backends/docker_utils.py,sha256=Hyw1YY20EyghhEbYx6O2FIMDcGkNzBzV9TM7LFynei8,8358
|
40
40
|
sky/backends/local_docker_backend.py,sha256=r80BGJZmAH8F49v6Y_pG3_pHmW5LQEQRusLkKoYoe9Q,17047
|
@@ -65,7 +65,7 @@ sky/catalog/data_fetchers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJW
|
|
65
65
|
sky/catalog/data_fetchers/analyze.py,sha256=ftnrOceREmjimFWBLwhtF2aqOnOZNl6TmYxqD6eIhHY,2069
|
66
66
|
sky/catalog/data_fetchers/fetch_aws.py,sha256=RTkqG2LE2YxRoK4K4p_hq-vA9tsPr9UoWIiNamGyLyI,23406
|
67
67
|
sky/catalog/data_fetchers/fetch_azure.py,sha256=7YVnoGDGGZI2TK02bj_LOoD4E5J5CFl6eqz2XlR4Vy8,12790
|
68
|
-
sky/catalog/data_fetchers/fetch_cudo.py,sha256=
|
68
|
+
sky/catalog/data_fetchers/fetch_cudo.py,sha256=hmVt7yTQ50EFPhum3rstKdy9cxv2GoxkpDaSRFP7ITc,3635
|
69
69
|
sky/catalog/data_fetchers/fetch_fluidstack.py,sha256=hsqpQi_YUI-qil3zLCEGatrR7BkWzywr4otRdHrd-4k,7350
|
70
70
|
sky/catalog/data_fetchers/fetch_gcp.py,sha256=y3boC2NBLRErLyY12078AS7QWGx9ItrzmFcO17h_VH8,31925
|
71
71
|
sky/catalog/data_fetchers/fetch_hyperbolic.py,sha256=VLBJXWvrKJH5QbMUiREPEMfO3x37_XsqMAmOo7bCQtc,4537
|
@@ -76,17 +76,17 @@ sky/catalog/data_fetchers/fetch_vsphere.py,sha256=Yf7tKzwJsQ_4f64IT1EAP108C1D3Rg
|
|
76
76
|
sky/client/__init__.py,sha256=pz6xvVSd9X-gwqbsDL0E9QOojYqM0KAD0j-NCyCIF1k,38
|
77
77
|
sky/client/common.py,sha256=E_5cjxd8fWRB7fU1yfIbiyQf-IyVhpD5KkB7Fl3cQEI,15215
|
78
78
|
sky/client/oauth.py,sha256=sNJ_DMsSTcxluj5FeNQ2IafZJLImRFmCAZ79bXeABn4,2871
|
79
|
-
sky/client/sdk.py,sha256=
|
79
|
+
sky/client/sdk.py,sha256=hZ2SLsHItKJOs-t_suVDMxIrvEixr1ZWzDehkOYycSc,91024
|
80
80
|
sky/client/service_account_auth.py,sha256=5jXk0G6ufuW-SHCO7BEHQeTO0_2a8KfFmA63auXFRj4,1529
|
81
81
|
sky/client/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
82
82
|
sky/client/cli/command.py,sha256=tuK-39aOz9xresShPe4uvGAjn7OgnyxLovnycJUAzaE,217309
|
83
83
|
sky/client/cli/deprecation_utils.py,sha256=H_d5UyF2CekEoThduAzt5cihBO8hwKYMu0-Wqfbjv5E,3370
|
84
84
|
sky/client/cli/flags.py,sha256=6IdS_G2lB1C6r8kJMzLVREY_qV50VHiSfWlmppVrWuc,11623
|
85
85
|
sky/clouds/__init__.py,sha256=tC9_Vi6GvVceWUi6uZvm7vXzBa0uH3CjRQ-QCYqdJMw,1624
|
86
|
-
sky/clouds/aws.py,sha256=
|
86
|
+
sky/clouds/aws.py,sha256=A7ouOPS4vvh4rLbwMLTyAW5aih9d151Fz7KvHfo7b9I,55192
|
87
87
|
sky/clouds/azure.py,sha256=Tm2kl-p736MGL9z-r7HTADneRKEVg-p2Lq3yHVaLAn8,32683
|
88
88
|
sky/clouds/cloud.py,sha256=R4bdXwIWx66GkBeFFRdapZOQTTB7pSFonCRqmVT25_s,38995
|
89
|
-
sky/clouds/cudo.py,sha256=
|
89
|
+
sky/clouds/cudo.py,sha256=L657d8oD9XP8upQjWmG8h-MHmhS0C81FEhcwqdbZ6so,13648
|
90
90
|
sky/clouds/do.py,sha256=x1oxaoGL3ioFJFwt3BA1N4seGyetPpV23ENemQLDe2I,11999
|
91
91
|
sky/clouds/fluidstack.py,sha256=FYjTOYXulqUx_nH7iL3CpHTAxMMyFymKIW35LHtuvaM,13054
|
92
92
|
sky/clouds/gcp.py,sha256=lXKymalvUeqS7XcBxZXXFVd1Z6r8TXtMTte7npTqEf8,68326
|
@@ -108,19 +108,19 @@ sky/clouds/utils/azure_utils.py,sha256=NToRBnhEyuUvb-nBnsKTxjhOBRkMcrelL8LK4w6s4
|
|
108
108
|
sky/clouds/utils/gcp_utils.py,sha256=ZNupZEBsZS9ZvvzB7vsc6f5y1JUBoRcKE0erso_Y93k,7659
|
109
109
|
sky/clouds/utils/oci_utils.py,sha256=yv_Y9oM5WNCnOofu44aKyOPTZZdKfpFLCx3ewZ2VBFY,7994
|
110
110
|
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=
|
111
|
+
sky/dashboard/out/404.html,sha256=yNzQQsN9o6oyq0e-av29_xLDT1r1OTML7o9TWGuS0m0,1423
|
112
|
+
sky/dashboard/out/clusters.html,sha256=0rJ4h7PP3KGRHOrmAGPP7lvXuJVkLpIkiHRGxQZFY_4,1418
|
113
|
+
sky/dashboard/out/config.html,sha256=rKr2CZvuJm1U2NFfNiEvNCka0yJB2d_V_JHcTVA2Iik,1414
|
114
114
|
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=
|
115
|
+
sky/dashboard/out/index.html,sha256=Euf9Dw7IjOxchHvRWdFygR8SkMsn0QpcVeC4iFG2kiI,1407
|
116
|
+
sky/dashboard/out/infra.html,sha256=Ppikha45vtEboyLPM2frMRSlXN5JUQ9VZp_yiGYP1MQ,1412
|
117
|
+
sky/dashboard/out/jobs.html,sha256=aziBpqaL9ghltymq6J8WslEaFg78f90tmdaAMLd5GL0,1410
|
118
118
|
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/
|
119
|
+
sky/dashboard/out/users.html,sha256=QF18NuylmTUhFshF7ArVA6vE2pLFymlclX0D6CHgJJw,1412
|
120
|
+
sky/dashboard/out/volumes.html,sha256=OOjj7wqNfoNem-U7_NzW-pmrZ5qj_71lx0bmG6z_f68,1416
|
121
|
+
sky/dashboard/out/workspaces.html,sha256=VRpJVIhkZw5z8iLNZO9sJP3QbXWDwMhLDonxy5L4w3Q,1422
|
122
|
+
sky/dashboard/out/_next/static/6TieQqyqsJiaJC33q0FfI/_buildManifest.js,sha256=SMKLljkiS_9UQoF0v1MyY_ziwbXl8KnBBlwCuTRc3V8,2235
|
123
|
+
sky/dashboard/out/_next/static/6TieQqyqsJiaJC33q0FfI/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
|
124
124
|
sky/dashboard/out/_next/static/chunks/1043-1b39779691bb4030.js,sha256=k8-hHIedPKi22M0wZwGOdWZ_S-H0jVnepFwm7i9_zg4,18192
|
125
125
|
sky/dashboard/out/_next/static/chunks/1141-726e5a3f00b67185.js,sha256=lEAVPk_18NZpZuPrGx1Xy9VWqE_5n3JuqWbIPS1_ZMw,17823
|
126
126
|
sky/dashboard/out/_next/static/chunks/1272-1ef0bf0237faccdb.js,sha256=VJ6y-Z6Eg2T93hQIRfWAbjAkQ7nQhglmIaVbEpKSILY,38451
|
@@ -174,13 +174,13 @@ sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-c4d5cfac7fbc0668.js,sha25
|
|
174
174
|
sky/dashboard/out/_next/static/chunks/pages/workspace/new-5629d4e551dba1ee.js,sha256=K9tqKHcB2kiSHTAddLaM2oL1PzmqZNTdLDOuNzCaJNM,765
|
175
175
|
sky/dashboard/out/_next/static/chunks/pages/workspaces/[name]-7c0187f43757a548.js,sha256=FsoenC6VRkPLE29KkLd4nlSq2qociH4zFexYMxgetOM,1530
|
176
176
|
sky/dashboard/out/_next/static/css/0da6afe66176678a.css,sha256=I8b7x4ULdoXHkgk0BsNa0D6k2UYoA2mEhq7H1G_tVQE,44869
|
177
|
-
sky/dashboard/out/clusters/[cluster].html,sha256=
|
178
|
-
sky/dashboard/out/clusters/[cluster]/[job].html,sha256=
|
179
|
-
sky/dashboard/out/infra/[context].html,sha256=
|
180
|
-
sky/dashboard/out/jobs/[job].html,sha256=
|
177
|
+
sky/dashboard/out/clusters/[cluster].html,sha256=lxJjYd3ccjhdhqCoJbdqxqQJb-J9nW7hOhGHg1Cad0w,2847
|
178
|
+
sky/dashboard/out/clusters/[cluster]/[job].html,sha256=3dpg96pStIpsO21nEAh0mQvjCrHmrsOmoq7u1xXf1Vo,2160
|
179
|
+
sky/dashboard/out/infra/[context].html,sha256=zB4Y-_FgAUCUZ-_TUvxXxNqdXjDbvJmWNZT9F-OlaWI,1436
|
180
|
+
sky/dashboard/out/jobs/[job].html,sha256=ZBj9RP-fE-lNYtoqg2LK4BJua_0zlOhq0Fw-WmqFFqM,2304
|
181
181
|
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=
|
182
|
+
sky/dashboard/out/workspace/new.html,sha256=XSCLSV2bZqtbyD-eqS7mRyLOhLBpucznrYXxdx2tEyI,1428
|
183
|
+
sky/dashboard/out/workspaces/[name].html,sha256=M0x3-_wm2L2VSRSY-0SzCHkSpMjZLbuTUw1Ln3d1kK0,2845
|
184
184
|
sky/data/__init__.py,sha256=Nhaf1NURisXpZuwWANa2IuCyppIuc720FRwqSE2oEwY,184
|
185
185
|
sky/data/data_transfer.py,sha256=N8b0CQebDuHieXjvEVwlYmK6DbQxUGG1RQJEyTbh3dU,12040
|
186
186
|
sky/data/data_utils.py,sha256=CNYPM963qby5ddW0DZNbhiWXkqgB9MHh_jrC5DoBctM,33437
|
@@ -195,9 +195,9 @@ sky/jobs/scheduler.py,sha256=b3RAjEzCXyoikh_BcmmGjoZ9ZeXr-tBnXoLFctt95ko,14375
|
|
195
195
|
sky/jobs/state.py,sha256=HHERdEhuJ3QHMu5dvY2mHVJgtHzIkAI6F1Cv2Iz3Hvw,65516
|
196
196
|
sky/jobs/utils.py,sha256=gfW4smCWWMmE4OwIbEqI5j5gVh5Gvfs6paqKQR2Tia8,70920
|
197
197
|
sky/jobs/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
198
|
-
sky/jobs/client/sdk.py,sha256=
|
198
|
+
sky/jobs/client/sdk.py,sha256=Nw7bP8pJ-uLIi14kMekEtmzqPmdIiN-CbhoNCJlHA7s,11340
|
199
199
|
sky/jobs/server/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
200
|
-
sky/jobs/server/core.py,sha256=
|
200
|
+
sky/jobs/server/core.py,sha256=U9vkOAcg381yh_te-ZTXxDgQ1CrxAVzOx9dUkzXuELo,31992
|
201
201
|
sky/jobs/server/server.py,sha256=ae8JAs-2ipWqL_GsA3x8T2mY-OJLc3ioWg_CfRzCUIY,4011
|
202
202
|
sky/logs/__init__.py,sha256=0ybWMfXcpAzh8dtDnJwpfovNIk0zJRJvzdISqFdKmdE,549
|
203
203
|
sky/logs/agent.py,sha256=tv0C40_FauZpvU93Ro_mC23LnaXWhSTjqch1JQMXiqw,2771
|
@@ -223,8 +223,8 @@ sky/provision/azure/instance.py,sha256=BQ4stZl_m76iULPY_TFEN4WDwNPWI1jmw-LswxxqX
|
|
223
223
|
sky/provision/cudo/__init__.py,sha256=KAEl26MVPsk7IoP9Gg-MOJJRIV6-X9B0fbyHdyJWdLo,741
|
224
224
|
sky/provision/cudo/config.py,sha256=RYOVkV0MoUqVBJRZiKhBZhjFygeyFs7eUdVMdPg1vds,327
|
225
225
|
sky/provision/cudo/cudo_machine_type.py,sha256=Bo2z4DyIvCFe98kYD8itTADx6MG7tn8ny8Jbh6QYbGg,681
|
226
|
-
sky/provision/cudo/cudo_utils.py,sha256=
|
227
|
-
sky/provision/cudo/cudo_wrapper.py,sha256=
|
226
|
+
sky/provision/cudo/cudo_utils.py,sha256=GFwSEf_LXN7Dh37m5UOLs6wXEJqF8kGI2-ys35L4rl8,1883
|
227
|
+
sky/provision/cudo/cudo_wrapper.py,sha256=JG9s8_qh8IR8E-D_x4Mokyv7ZJzSky38sbcD3pnyzss,4919
|
228
228
|
sky/provision/cudo/instance.py,sha256=C2tl48PtQWz0irDWiSNoqWu8YcrDqQrucau0KGUFFxg,8828
|
229
229
|
sky/provision/do/__init__.py,sha256=VAhSO9F9FDAjvEuCDlRPueB-TTA3XHR61vVXyUe85z0,518
|
230
230
|
sky/provision/do/config.py,sha256=WWFz6kZLKrUHoJoKRzHGY8ck_ieQiBrMWDb5JP6rWUk,387
|
@@ -321,24 +321,25 @@ sky/serve/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,
|
|
321
321
|
sky/serve/server/core.py,sha256=zKvDnq6W9CftH5ljmNMdTDGsLO3mzbFgrMBMCSua4dM,41662
|
322
322
|
sky/serve/server/server.py,sha256=A9K37a0nQgZeN3eKWv62Oh2C5TSAReTZ9pHmztqlI-c,4396
|
323
323
|
sky/server/__init__.py,sha256=MPPBqFzXz6Jv5QSk6td_IcvnfXfNErDZVcizu4MLRow,27
|
324
|
-
sky/server/common.py,sha256=
|
324
|
+
sky/server/common.py,sha256=u7hV5oGdCj5GfCxpNmLd6yl0B1mlh11FMFIR5ZoW5pA,34492
|
325
325
|
sky/server/config.py,sha256=XWf5Kw4am6vMO5wcyWevbQAFH-dmKb7AMEgDzD083-M,8538
|
326
|
-
sky/server/constants.py,sha256=
|
326
|
+
sky/server/constants.py,sha256=v6RP8ZEwCNsxO2s2IukgOcEldZO5bvcQaxmOTA0Cf0g,2321
|
327
327
|
sky/server/metrics.py,sha256=aVRaSwpBVXE9dXIVd9bNsSigKM4bkqNq0eTpP0Noyo8,3657
|
328
|
-
sky/server/rest.py,sha256=
|
329
|
-
sky/server/server.py,sha256=
|
328
|
+
sky/server/rest.py,sha256=elMpi-cS301OqTwmFZb7fWYXr1vdJ28YT1zIDH1IpBk,5968
|
329
|
+
sky/server/server.py,sha256=Zv9WgfGfg9dnGQaEfA5mxsua9x3vp067TvCiCxHDIKA,72833
|
330
330
|
sky/server/state.py,sha256=YbVOMJ1JipQQv17gLIGyiGN7MKfnP83qlUa5MB1z0Yk,747
|
331
331
|
sky/server/stream_utils.py,sha256=RS4RuMxQqTGqp3uxzZVtmFWzos4d49P7hMX_VklzEVU,9189
|
332
332
|
sky/server/uvicorn.py,sha256=3mdSUbc8zHRYAbZZLkfPB6U9VXD_t2jDM1BMjpTx1Mo,9014
|
333
|
+
sky/server/versions.py,sha256=3atZzUa7y1XeKNcrfVxKWAo_5ZyCOnbY7DKpIqed7Do,10011
|
333
334
|
sky/server/html/log.html,sha256=TSGZktua9Ysl_ysg3w60rjxAxhH61AJnsYDHdtqrjmI,6929
|
334
335
|
sky/server/html/token_page.html,sha256=eUndS5u1foL9vaWGPRTLMt7lCzD1g0wYJ2v_EeeFzlc,7046
|
335
336
|
sky/server/requests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
336
337
|
sky/server/requests/event_loop.py,sha256=OhpPbuce65bbjpGRlcJa78AVnYSm08SzFKt70ypCUuQ,1211
|
337
338
|
sky/server/requests/executor.py,sha256=v_ae2H9GGMiwxbVT9h0J2fUOSjqIs3F9lKbMtrzb1-k,26476
|
338
|
-
sky/server/requests/payloads.py,sha256=
|
339
|
+
sky/server/requests/payloads.py,sha256=P4Qv8fWQD6Xz7hP-dMvsA63SpPbWjYespgO5-ch2wik,23334
|
339
340
|
sky/server/requests/preconditions.py,sha256=uUQjzFFHf7O5-WvBypMzqViGmd1CXksbqrrDPmY_s_Y,7178
|
340
341
|
sky/server/requests/process.py,sha256=I0ToOcF_cMJi5TfZMJOn9rDmJYewQOV07Pnetzqj2IU,10805
|
341
|
-
sky/server/requests/requests.py,sha256=
|
342
|
+
sky/server/requests/requests.py,sha256=AT4nJKCa2I13rVhZq929hMtZF5-So7w-gp9E_Ld60Xk,25193
|
342
343
|
sky/server/requests/queues/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
343
344
|
sky/server/requests/queues/local_queue.py,sha256=X6VkBiUmgd_kfqIK1hCtMWG1b8GiZbY70TBiBR6c6GY,416
|
344
345
|
sky/server/requests/queues/mp_queue.py,sha256=jDqP4Jd28U3ibSFyMR1DF9I2OWZrPZqFJrG5S6RFpyw,3403
|
@@ -478,9 +479,9 @@ sky/workspaces/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
478
479
|
sky/workspaces/core.py,sha256=MkQoVqWN67tf4VRq284U9vgAw4lwb_cpUfwHQT4V9Ow,16598
|
479
480
|
sky/workspaces/server.py,sha256=Box45DS54xXGHy7I3tGKGy-JP0a8G_z6IhfvGlEXtsA,3439
|
480
481
|
sky/workspaces/utils.py,sha256=IIAiFoS6sdb2t0X5YoX9AietpTanZUQNTK8cePun-sY,2143
|
481
|
-
skypilot_nightly-1.0.0.
|
482
|
-
skypilot_nightly-1.0.0.
|
483
|
-
skypilot_nightly-1.0.0.
|
484
|
-
skypilot_nightly-1.0.0.
|
485
|
-
skypilot_nightly-1.0.0.
|
486
|
-
skypilot_nightly-1.0.0.
|
482
|
+
skypilot_nightly-1.0.0.dev20250704.dist-info/licenses/LICENSE,sha256=emRJAvE7ngL6x0RhQvlns5wJzGI3NEQ_WMjNmd9TZc4,12170
|
483
|
+
skypilot_nightly-1.0.0.dev20250704.dist-info/METADATA,sha256=IhXJKqXPO1QKORMRMFI0hQidarSR6N7yvDbv43VHvFI,18908
|
484
|
+
skypilot_nightly-1.0.0.dev20250704.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
485
|
+
skypilot_nightly-1.0.0.dev20250704.dist-info/entry_points.txt,sha256=StA6HYpuHj-Y61L2Ze-hK2IcLWgLZcML5gJu8cs6nU4,36
|
486
|
+
skypilot_nightly-1.0.0.dev20250704.dist-info/top_level.txt,sha256=qA8QuiNNb6Y1OF-pCUtPEr6sLEwy2xJX06Bd_CrtrHY,4
|
487
|
+
skypilot_nightly-1.0.0.dev20250704.dist-info/RECORD,,
|
/sky/dashboard/out/_next/static/{A-fbCEgJE_q2cV8biIOIr → 6TieQqyqsJiaJC33q0FfI}/_buildManifest.js
RENAMED
File without changes
|
/sky/dashboard/out/_next/static/{A-fbCEgJE_q2cV8biIOIr → 6TieQqyqsJiaJC33q0FfI}/_ssgManifest.js
RENAMED
File without changes
|
{skypilot_nightly-1.0.0.dev20250703.dist-info → skypilot_nightly-1.0.0.dev20250704.dist-info}/WHEEL
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|