skypilot-nightly 1.0.0.dev20250708__py3-none-any.whl → 1.0.0.dev20250710__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/cloud_vm_ray_backend.py +6 -4
- sky/clouds/kubernetes.py +2 -2
- sky/dashboard/out/404.html +1 -1
- sky/dashboard/out/_next/static/{O3wBEOmvYEVEqZxAP7Czn → P2Di1JdUlHuKN2lBws4Mr}/_buildManifest.js +1 -1
- sky/dashboard/out/_next/static/chunks/8969-13bb52ce3cffa4e3.js +1 -0
- sky/dashboard/out/_next/static/chunks/{webpack-9a81ea998672c303.js → webpack-fd62f17bd9ce1fcc.js} +1 -1
- sky/dashboard/out/clusters/[cluster]/[job].html +1 -1
- sky/dashboard/out/clusters/[cluster].html +1 -1
- sky/dashboard/out/clusters.html +1 -1
- sky/dashboard/out/config.html +1 -1
- sky/dashboard/out/index.html +1 -1
- sky/dashboard/out/infra/[context].html +1 -1
- sky/dashboard/out/infra.html +1 -1
- sky/dashboard/out/jobs/[job].html +1 -1
- sky/dashboard/out/jobs.html +1 -1
- sky/dashboard/out/users.html +1 -1
- sky/dashboard/out/volumes.html +1 -1
- sky/dashboard/out/workspace/new.html +1 -1
- sky/dashboard/out/workspaces/[name].html +1 -1
- sky/dashboard/out/workspaces.html +1 -1
- sky/global_user_state.py +7 -4
- sky/jobs/constants.py +1 -1
- sky/jobs/controller.py +7 -0
- sky/jobs/server/core.py +2 -1
- sky/jobs/server/utils.py +81 -0
- sky/jobs/state.py +55 -33
- sky/jobs/utils.py +34 -3
- sky/provision/kubernetes/instance.py +17 -0
- sky/provision/kubernetes/utils.py +5 -0
- sky/provision/provisioner.py +20 -0
- sky/server/metrics.py +2 -3
- sky/server/requests/executor.py +2 -5
- sky/server/requests/payloads.py +1 -0
- sky/server/requests/requests.py +94 -4
- sky/server/server.py +19 -5
- sky/server/uvicorn.py +4 -1
- sky/skylet/constants.py +1 -6
- sky/skylet/job_lib.py +30 -8
- sky/skypilot_config.py +4 -2
- sky/task.py +17 -0
- sky/users/permission.py +3 -0
- sky/utils/common_utils.py +13 -0
- sky/utils/db_utils.py +16 -0
- sky/utils/schemas.py +6 -0
- sky/utils/ux_utils.py +2 -4
- {skypilot_nightly-1.0.0.dev20250708.dist-info → skypilot_nightly-1.0.0.dev20250710.dist-info}/METADATA +1 -1
- {skypilot_nightly-1.0.0.dev20250708.dist-info → skypilot_nightly-1.0.0.dev20250710.dist-info}/RECORD +53 -52
- sky/dashboard/out/_next/static/chunks/8969-909d53833da080cb.js +0 -1
- /sky/dashboard/out/_next/static/{O3wBEOmvYEVEqZxAP7Czn → P2Di1JdUlHuKN2lBws4Mr}/_ssgManifest.js +0 -0
- {skypilot_nightly-1.0.0.dev20250708.dist-info → skypilot_nightly-1.0.0.dev20250710.dist-info}/WHEEL +0 -0
- {skypilot_nightly-1.0.0.dev20250708.dist-info → skypilot_nightly-1.0.0.dev20250710.dist-info}/entry_points.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250708.dist-info → skypilot_nightly-1.0.0.dev20250710.dist-info}/licenses/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20250708.dist-info → skypilot_nightly-1.0.0.dev20250710.dist-info}/top_level.txt +0 -0
sky/skylet/job_lib.py
CHANGED
@@ -63,6 +63,7 @@ class JobInfoLoc(enum.IntEnum):
|
|
63
63
|
RESOURCES = 8
|
64
64
|
PID = 9
|
65
65
|
LOG_PATH = 10
|
66
|
+
METADATA = 11
|
66
67
|
|
67
68
|
|
68
69
|
def create_table(cursor, conn):
|
@@ -103,7 +104,8 @@ def create_table(cursor, conn):
|
|
103
104
|
end_at FLOAT DEFAULT NULL,
|
104
105
|
resources TEXT DEFAULT NULL,
|
105
106
|
pid INTEGER DEFAULT -1,
|
106
|
-
log_dir TEXT DEFAULT NULL
|
107
|
+
log_dir TEXT DEFAULT NULL,
|
108
|
+
metadata TEXT DEFAULT '{}')""")
|
107
109
|
|
108
110
|
cursor.execute("""CREATE TABLE IF NOT EXISTS pending_jobs(
|
109
111
|
job_id INTEGER,
|
@@ -118,6 +120,12 @@ def create_table(cursor, conn):
|
|
118
120
|
'INTEGER DEFAULT -1')
|
119
121
|
db_utils.add_column_to_table(cursor, conn, 'jobs', 'log_dir',
|
120
122
|
'TEXT DEFAULT NULL')
|
123
|
+
db_utils.add_column_to_table(cursor,
|
124
|
+
conn,
|
125
|
+
'jobs',
|
126
|
+
'metadata',
|
127
|
+
'TEXT DEFAULT \'{}\'',
|
128
|
+
value_to_replace_existing_entries='{}')
|
121
129
|
conn.commit()
|
122
130
|
|
123
131
|
|
@@ -338,16 +346,19 @@ def make_job_command_with_user_switching(username: str,
|
|
338
346
|
|
339
347
|
|
340
348
|
@init_db
|
341
|
-
def add_job(job_name: str,
|
342
|
-
|
349
|
+
def add_job(job_name: str,
|
350
|
+
username: str,
|
351
|
+
run_timestamp: str,
|
352
|
+
resources_str: str,
|
353
|
+
metadata: str = '{}') -> Tuple[int, str]:
|
343
354
|
"""Atomically reserve the next available job id for the user."""
|
344
355
|
assert _DB is not None
|
345
356
|
job_submitted_at = time.time()
|
346
357
|
# job_id will autoincrement with the null value
|
347
358
|
_DB.cursor.execute(
|
348
|
-
'INSERT INTO jobs VALUES (null, ?, ?, ?, ?, ?, ?, null, ?, 0, null)',
|
359
|
+
'INSERT INTO jobs VALUES (null, ?, ?, ?, ?, ?, ?, null, ?, 0, null, ?)',
|
349
360
|
(job_name, username, job_submitted_at, JobStatus.INIT.value,
|
350
|
-
run_timestamp, None, resources_str))
|
361
|
+
run_timestamp, None, resources_str, metadata))
|
351
362
|
_DB.conn.commit()
|
352
363
|
rows = _DB.cursor.execute('SELECT job_id FROM jobs WHERE run_timestamp=(?)',
|
353
364
|
(run_timestamp,))
|
@@ -569,6 +580,7 @@ def _get_records_from_rows(rows) -> List[Dict[str, Any]]:
|
|
569
580
|
'end_at': row[JobInfoLoc.END_AT.value],
|
570
581
|
'resources': row[JobInfoLoc.RESOURCES.value],
|
571
582
|
'pid': row[JobInfoLoc.PID.value],
|
583
|
+
'metadata': json.loads(row[JobInfoLoc.METADATA.value]),
|
572
584
|
})
|
573
585
|
return records
|
574
586
|
|
@@ -839,7 +851,7 @@ def format_job_queue(jobs: List[Dict[str, Any]]):
|
|
839
851
|
"""
|
840
852
|
job_table = log_utils.create_table([
|
841
853
|
'ID', 'NAME', 'USER', 'SUBMITTED', 'STARTED', 'DURATION', 'RESOURCES',
|
842
|
-
'STATUS', 'LOG'
|
854
|
+
'STATUS', 'LOG', 'GIT COMMIT'
|
843
855
|
])
|
844
856
|
for job in jobs:
|
845
857
|
job_table.add_row([
|
@@ -854,6 +866,7 @@ def format_job_queue(jobs: List[Dict[str, Any]]):
|
|
854
866
|
job['resources'],
|
855
867
|
job['status'].colored_str(),
|
856
868
|
job['log_path'],
|
869
|
+
job.get('metadata', {}).get('git_commit', '-'),
|
857
870
|
])
|
858
871
|
return job_table
|
859
872
|
|
@@ -1055,7 +1068,7 @@ class JobLibCodeGen:
|
|
1055
1068
|
|
1056
1069
|
@classmethod
|
1057
1070
|
def add_job(cls, job_name: Optional[str], username: str, run_timestamp: str,
|
1058
|
-
resources_str: str) -> str:
|
1071
|
+
resources_str: str, metadata: str) -> str:
|
1059
1072
|
if job_name is None:
|
1060
1073
|
job_name = '-'
|
1061
1074
|
code = [
|
@@ -1066,11 +1079,20 @@ class JobLibCodeGen:
|
|
1066
1079
|
'\nif int(constants.SKYLET_VERSION) < 9: '
|
1067
1080
|
'raise RuntimeError("SkyPilot runtime is too old, which does not '
|
1068
1081
|
'support submitting jobs.")',
|
1069
|
-
'\nresult =
|
1082
|
+
'\nresult = None',
|
1083
|
+
'\nif int(constants.SKYLET_VERSION) < 15: '
|
1084
|
+
'\n result = job_lib.add_job('
|
1070
1085
|
f'{job_name!r},'
|
1071
1086
|
f'{username!r},'
|
1072
1087
|
f'{run_timestamp!r},'
|
1073
1088
|
f'{resources_str!r})',
|
1089
|
+
'\nelse: '
|
1090
|
+
'\n result = job_lib.add_job('
|
1091
|
+
f'{job_name!r},'
|
1092
|
+
f'{username!r},'
|
1093
|
+
f'{run_timestamp!r},'
|
1094
|
+
f'{resources_str!r},'
|
1095
|
+
f'metadata={metadata!r})',
|
1074
1096
|
('\nif isinstance(result, tuple):'
|
1075
1097
|
'\n print("Job ID: " + str(result[0]), flush=True)'
|
1076
1098
|
'\n print("Log Dir: " + str(result[1]), flush=True)'
|
sky/skypilot_config.py
CHANGED
@@ -573,7 +573,8 @@ def _reload_config_as_server() -> None:
|
|
573
573
|
with _DB_USE_LOCK:
|
574
574
|
sqlalchemy_engine = sqlalchemy.create_engine(db_url,
|
575
575
|
poolclass=NullPool)
|
576
|
-
Base.metadata
|
576
|
+
db_utils.add_tables_to_db_sqlalchemy(Base.metadata,
|
577
|
+
sqlalchemy_engine)
|
577
578
|
|
578
579
|
def _get_config_yaml_from_db(
|
579
580
|
key: str) -> Optional[config_utils.Config]:
|
@@ -859,7 +860,8 @@ def update_api_server_config_no_lock(config: config_utils.Config) -> None:
|
|
859
860
|
with _DB_USE_LOCK:
|
860
861
|
sqlalchemy_engine = sqlalchemy.create_engine(existing_db_url,
|
861
862
|
poolclass=NullPool)
|
862
|
-
Base.metadata
|
863
|
+
db_utils.add_tables_to_db_sqlalchemy(Base.metadata,
|
864
|
+
sqlalchemy_engine)
|
863
865
|
|
864
866
|
def _set_config_yaml_to_db(key: str,
|
865
867
|
config: config_utils.Config):
|
sky/task.py
CHANGED
@@ -255,6 +255,7 @@ class Task:
|
|
255
255
|
# Internal use only.
|
256
256
|
file_mounts_mapping: Optional[Dict[str, str]] = None,
|
257
257
|
volume_mounts: Optional[List[volume_lib.VolumeMount]] = None,
|
258
|
+
metadata: Optional[Dict[str, Any]] = None,
|
258
259
|
):
|
259
260
|
"""Initializes a Task.
|
260
261
|
|
@@ -313,6 +314,7 @@ class Task:
|
|
313
314
|
is used.) The base docker image that this Task will be built on.
|
314
315
|
Defaults to 'gpuci/miniforge-cuda:11.4-devel-ubuntu18.04'.
|
315
316
|
blocked_resources: A set of resources that this task cannot run on.
|
317
|
+
metadata: A dictionary of metadata to be added to the task.
|
316
318
|
"""
|
317
319
|
self.name = name
|
318
320
|
self.run = run
|
@@ -369,6 +371,8 @@ class Task:
|
|
369
371
|
self.volume_mounts: Optional[List[volume_lib.VolumeMount]] = (
|
370
372
|
volume_mounts)
|
371
373
|
|
374
|
+
self._metadata = metadata if metadata is not None else {}
|
375
|
+
|
372
376
|
dag = sky.dag.get_current_dag()
|
373
377
|
if dag is not None:
|
374
378
|
dag.add(self)
|
@@ -503,6 +507,8 @@ class Task:
|
|
503
507
|
'Workdir must be a valid directory (or '
|
504
508
|
f'a symlink to a directory). {user_workdir} not found.')
|
505
509
|
|
510
|
+
self._metadata['git_commit'] = common_utils.get_git_commit(self.workdir)
|
511
|
+
|
506
512
|
@staticmethod
|
507
513
|
def from_yaml_config(
|
508
514
|
config: Dict[str, Any],
|
@@ -599,6 +605,7 @@ class Task:
|
|
599
605
|
event_callback=config.pop('event_callback', None),
|
600
606
|
file_mounts_mapping=config.pop('file_mounts_mapping', None),
|
601
607
|
volumes=config.pop('volumes', None),
|
608
|
+
metadata=config.pop('_metadata', None),
|
602
609
|
)
|
603
610
|
|
604
611
|
# Create lists to store storage objects inlined in file_mounts.
|
@@ -872,6 +879,14 @@ class Task:
|
|
872
879
|
f'num_nodes should be a positive int. Got: {num_nodes}')
|
873
880
|
self._num_nodes = num_nodes
|
874
881
|
|
882
|
+
@property
|
883
|
+
def metadata(self) -> Dict[str, Any]:
|
884
|
+
return self._metadata
|
885
|
+
|
886
|
+
@property
|
887
|
+
def metadata_json(self) -> str:
|
888
|
+
return json.dumps(self._metadata)
|
889
|
+
|
875
890
|
@property
|
876
891
|
def envs(self) -> Dict[str, str]:
|
877
892
|
return self._envs
|
@@ -1588,6 +1603,8 @@ class Task:
|
|
1588
1603
|
volume_mount.to_yaml_config()
|
1589
1604
|
for volume_mount in self.volume_mounts
|
1590
1605
|
]
|
1606
|
+
# we manually check if its empty to not clog up the generated yaml
|
1607
|
+
add_if_not_none('_metadata', self._metadata if self._metadata else None)
|
1591
1608
|
return config
|
1592
1609
|
|
1593
1610
|
def get_required_cloud_features(
|
sky/users/permission.py
CHANGED
@@ -15,6 +15,7 @@ from sky import sky_logging
|
|
15
15
|
from sky.skylet import constants
|
16
16
|
from sky.users import rbac
|
17
17
|
from sky.utils import common_utils
|
18
|
+
from sky.utils import db_utils
|
18
19
|
|
19
20
|
logging.getLogger('casbin.policy').setLevel(sky_logging.ERROR)
|
20
21
|
logging.getLogger('casbin.role').setLevel(sky_logging.ERROR)
|
@@ -38,6 +39,8 @@ class PermissionService:
|
|
38
39
|
if _enforcer_instance is None:
|
39
40
|
_enforcer_instance = self
|
40
41
|
engine = global_user_state.initialize_and_get_db()
|
42
|
+
db_utils.add_tables_to_db_sqlalchemy(
|
43
|
+
sqlalchemy_adapter.Base.metadata, engine)
|
41
44
|
adapter = sqlalchemy_adapter.Adapter(engine)
|
42
45
|
model_path = os.path.join(os.path.dirname(__file__),
|
43
46
|
'model.conf')
|
sky/utils/common_utils.py
CHANGED
@@ -11,6 +11,7 @@ import platform
|
|
11
11
|
import random
|
12
12
|
import re
|
13
13
|
import socket
|
14
|
+
import subprocess
|
14
15
|
import sys
|
15
16
|
import time
|
16
17
|
import typing
|
@@ -87,6 +88,18 @@ def generate_user_hash() -> str:
|
|
87
88
|
return user_hash
|
88
89
|
|
89
90
|
|
91
|
+
def get_git_commit(path: Optional[str] = None) -> Optional[str]:
|
92
|
+
try:
|
93
|
+
result = subprocess.run(['git', 'rev-parse', 'HEAD'],
|
94
|
+
capture_output=True,
|
95
|
+
text=True,
|
96
|
+
cwd=path,
|
97
|
+
check=True)
|
98
|
+
return result.stdout.strip()
|
99
|
+
except subprocess.CalledProcessError:
|
100
|
+
return None
|
101
|
+
|
102
|
+
|
90
103
|
def get_user_hash() -> str:
|
91
104
|
"""Returns a unique user-machine specific hash as a user id.
|
92
105
|
|
sky/utils/db_utils.py
CHANGED
@@ -84,6 +84,22 @@ def add_column_to_table(
|
|
84
84
|
conn.commit()
|
85
85
|
|
86
86
|
|
87
|
+
def add_tables_to_db_sqlalchemy(
|
88
|
+
metadata: sqlalchemy.MetaData,
|
89
|
+
engine: sqlalchemy.Engine,
|
90
|
+
):
|
91
|
+
"""Add tables to the database."""
|
92
|
+
for table in metadata.tables.values():
|
93
|
+
try:
|
94
|
+
table.create(bind=engine, checkfirst=True)
|
95
|
+
except (sqlalchemy_exc.OperationalError,
|
96
|
+
sqlalchemy_exc.ProgrammingError) as e:
|
97
|
+
if 'already exists' in str(e):
|
98
|
+
pass
|
99
|
+
else:
|
100
|
+
raise
|
101
|
+
|
102
|
+
|
87
103
|
def add_column_to_table_sqlalchemy(
|
88
104
|
session: 'Session',
|
89
105
|
table_name: str,
|
sky/utils/schemas.py
CHANGED
@@ -870,6 +870,9 @@ def get_task_schema():
|
|
870
870
|
'type': 'array',
|
871
871
|
'items': get_volume_mount_schema(),
|
872
872
|
},
|
873
|
+
'_metadata': {
|
874
|
+
'type': 'object',
|
875
|
+
},
|
873
876
|
**_experimental_task_schema(),
|
874
877
|
}
|
875
878
|
}
|
@@ -1449,6 +1452,9 @@ def get_config_schema():
|
|
1449
1452
|
}
|
1450
1453
|
]
|
1451
1454
|
},
|
1455
|
+
'requests_retention_hours': {
|
1456
|
+
'type': 'integer',
|
1457
|
+
},
|
1452
1458
|
}
|
1453
1459
|
}
|
1454
1460
|
|
sky/utils/ux_utils.py
CHANGED
@@ -253,9 +253,7 @@ def command_hint_messages(hint_type: CommandHintType,
|
|
253
253
|
f'{BOLD}sky jobs logs {job_id}{RESET_BOLD}'
|
254
254
|
f'\n{INDENT_SYMBOL}To stream controller logs:\t\t'
|
255
255
|
f'{BOLD}sky jobs logs --controller {job_id}{RESET_BOLD}'
|
256
|
-
f'\n{
|
257
|
-
f'{BOLD}sky jobs queue{RESET_BOLD}'
|
258
|
-
f'\n{INDENT_LAST_SYMBOL}To view managed job dashboard:\t\t'
|
259
|
-
f'{BOLD}sky jobs dashboard{RESET_BOLD}')
|
256
|
+
f'\n{INDENT_LAST_SYMBOL}To view all managed jobs:\t\t'
|
257
|
+
f'{BOLD}sky jobs queue{RESET_BOLD}')
|
260
258
|
else:
|
261
259
|
raise ValueError(f'Invalid hint type: {hint_type}')
|
{skypilot_nightly-1.0.0.dev20250708.dist-info → skypilot_nightly-1.0.0.dev20250710.dist-info}/RECORD
RENAMED
@@ -1,4 +1,4 @@
|
|
1
|
-
sky/__init__.py,sha256=
|
1
|
+
sky/__init__.py,sha256=YreJsIF48ci3aEqe2XYTNIe9HRkwwnOdWSxHsteefoM,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
|
@@ -8,13 +8,13 @@ sky/core.py,sha256=5UbaZ5xamYTajEq4TyiT81Q_cVzqPnMQRXASSz4OcNg,56272
|
|
8
8
|
sky/dag.py,sha256=5MFXlP43y9U54zxfYGhVyBiWEInoFFlt_zJ7ASJntXw,3889
|
9
9
|
sky/exceptions.py,sha256=Vn7VVhyrTaMBTdVxsro325aKSMM4_KRJOghFX31xIVM,19164
|
10
10
|
sky/execution.py,sha256=BhI4paGKpXMhWJoelHFe7LGFbCnW7hl0rIAmdIay-dk,33223
|
11
|
-
sky/global_user_state.py,sha256=
|
11
|
+
sky/global_user_state.py,sha256=an2P_UVhFpdBn85X4DpCHnrpEgC6aoKPw8ccxxj9K1c,73137
|
12
12
|
sky/models.py,sha256=Eor-cT4D71QTimogcnJ5ey1G1PXK-OXN-snEtE8Uu_g,3152
|
13
13
|
sky/optimizer.py,sha256=oE4NrDmyE1A9B5NI3T_s7QUV5HkCeSJUU75NoJoVIPI,63323
|
14
14
|
sky/resources.py,sha256=MHdipCUpW2foB2romFIM57b__Lg4WCBfYDNSYAx2MEA,105546
|
15
15
|
sky/sky_logging.py,sha256=cMurxhFExKEFX1frcMR71Ti_s9Obg9WY30veVxsZB6o,7285
|
16
|
-
sky/skypilot_config.py,sha256=
|
17
|
-
sky/task.py,sha256=
|
16
|
+
sky/skypilot_config.py,sha256=3xJ5NlBEnnDIexZCQ_4AEkPY7kkNEvyMkvEvyU6ADFQ,36368
|
17
|
+
sky/task.py,sha256=wQelWSNWlB-rVt1GhqwijK9CxTL1f1FN0ESc-ZpjOto,71734
|
18
18
|
sky/adaptors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
19
19
|
sky/adaptors/aws.py,sha256=4caUTO5nxZQyDVPyQdoPljaF-Lz_Fa6NEnu3FfmLZd4,8633
|
20
20
|
sky/adaptors/azure.py,sha256=7l5jobSTsTUcTo3ptrgOpRgngHY92U64eQBPxvDe1HA,21986
|
@@ -35,7 +35,7 @@ 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
37
|
sky/backends/backend_utils.py,sha256=AOuBC63KZQo5zy8fLnByy4OIGmrXiTwsz9g-XxFZ7Fw,145150
|
38
|
-
sky/backends/cloud_vm_ray_backend.py,sha256=
|
38
|
+
sky/backends/cloud_vm_ray_backend.py,sha256=EGL3vy8uP8sGpltobJM3kjMzDbE1kFT01-qpnG3b0sk,261777
|
39
39
|
sky/backends/docker_utils.py,sha256=Hyw1YY20EyghhEbYx6O2FIMDcGkNzBzV9TM7LFynei8,8358
|
40
40
|
sky/backends/local_docker_backend.py,sha256=r80BGJZmAH8F49v6Y_pG3_pHmW5LQEQRusLkKoYoe9Q,17047
|
41
41
|
sky/backends/wheel_utils.py,sha256=IUruJijm5854UGDdSayHbHzjjWRM46bATK1nSnK44xY,11071
|
@@ -92,7 +92,7 @@ sky/clouds/fluidstack.py,sha256=TkFHChRa7HH_-f5SDRgtFqKCmUCYcSfPCf4lpQH90do,1322
|
|
92
92
|
sky/clouds/gcp.py,sha256=92qzPagPCabVScWMqbDh4Nd14LzcZnK5ojb_phw9bRA,68430
|
93
93
|
sky/clouds/hyperbolic.py,sha256=cvcYeTs7js36OOXwehme4vzzjtDWqjPyqtxmb4XuUk4,11492
|
94
94
|
sky/clouds/ibm.py,sha256=JQTJQ5wVxVSqH7O05GOld8X5iO16g6Idd_YmRAGZmB8,22567
|
95
|
-
sky/clouds/kubernetes.py,sha256=
|
95
|
+
sky/clouds/kubernetes.py,sha256=0og8H4h-liU7q9ywLjSYl0bUWi94jl5yK_lFf9vRG_0,47949
|
96
96
|
sky/clouds/lambda_cloud.py,sha256=ZoKSseOGYlZFNhue2OK75dTU836AAE_pkuVod4yZX68,13260
|
97
97
|
sky/clouds/nebius.py,sha256=0ceJUwl1kjwhTJOSDERke8jCrfRxeyb9nLMkQfjBktQ,20926
|
98
98
|
sky/clouds/oci.py,sha256=Tos4hgXhYJ4kNkh6aa8_WsaxcD_JmbarR_1GltV-YrM,28158
|
@@ -108,19 +108,19 @@ sky/clouds/utils/azure_utils.py,sha256=NToRBnhEyuUvb-nBnsKTxjhOBRkMcrelL8LK4w6s4
|
|
108
108
|
sky/clouds/utils/gcp_utils.py,sha256=zpdibyvdROgDGqllcvQuST3pKqj6pzqX-gxCw-DsCfc,9873
|
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=60Uzu66Ut1LutNJbNnrQGCh0SCY-Qwx9T4admd9Ylik,1423
|
112
|
+
sky/dashboard/out/clusters.html,sha256=tillHaHLTQsaKzAZw4nXpbMxXk6Jup_8h0Uf-4Yiu_k,1418
|
113
|
+
sky/dashboard/out/config.html,sha256=Pp7MJebLrNP8MV7KjoBYV2u8NqYTDpqu8iZjgmJiH0I,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=yxdrRiXeu-TdOK3ELox3yYwfZw730Ub2thNmuFoa1ZE,1407
|
116
|
+
sky/dashboard/out/infra.html,sha256=6SHlr_XF0IgtksmtgyZtTEXH4N9-H8WyJWgnIi-ohS8,1412
|
117
|
+
sky/dashboard/out/jobs.html,sha256=0uTlv64nQIu41WMKjaNkf95G2L3ep-UrQ2-X6qvCp4U,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=7sBj9KAv4sA0UhjBLpDyHe3g3P9HPX56-vRDb8W8OQY,1412
|
120
|
+
sky/dashboard/out/volumes.html,sha256=y8lNWlHj_m5jeZH3Ht2dBf2yjPILgmNGadI72ecSe9c,1416
|
121
|
+
sky/dashboard/out/workspaces.html,sha256=xyCTRERjoklKLEYw52tox_mtjkPl-U-xEmxv6ddfPHg,1422
|
122
|
+
sky/dashboard/out/_next/static/P2Di1JdUlHuKN2lBws4Mr/_buildManifest.js,sha256=873ePHVgFWslxvm9YCKz0P3CmFUQWhzepzASR7ZqAMM,2235
|
123
|
+
sky/dashboard/out/_next/static/P2Di1JdUlHuKN2lBws4Mr/_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
|
@@ -145,7 +145,7 @@ sky/dashboard/out/_next/static/chunks/6601-fcfad0ddf92ec7ab.js,sha256=2YiVH71mJv
|
|
145
145
|
sky/dashboard/out/_next/static/chunks/6989-6ff4e45dfb49d11d.js,sha256=CApsRgStyx9_RKLSE7wegJ51DcORjy2snKeEZMpejsM,9435
|
146
146
|
sky/dashboard/out/_next/static/chunks/6990-d0dc765474fa0eca.js,sha256=6yYTJ0jYQvnwON-rVGIdusJM-oEtEx1FVrHFxX7YCBM,16116
|
147
147
|
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-
|
148
|
+
sky/dashboard/out/_next/static/chunks/8969-13bb52ce3cffa4e3.js,sha256=YrTrcR303uCovqxoDQRUBm8KKUmLGZ2fWIgYEjWVYBQ,9949
|
149
149
|
sky/dashboard/out/_next/static/chunks/8982.a2e214068f30a857.js,sha256=fQlHyU9rqSfks7lbZ-C6FYSRjG_XyaPSw_gojuY7TeU,17059
|
150
150
|
sky/dashboard/out/_next/static/chunks/9025.a7c44babfe56ce09.js,sha256=0ciCX9lNsRd3HNYlFQ29BXu2S-xCuoqUwGcrawVwiZM,10637
|
151
151
|
sky/dashboard/out/_next/static/chunks/938-044ad21de8b4626b.js,sha256=cbzoiWQ1IkgyTfObKZsxVts30tFHFl_1e9_PQdcXCjs,25784
|
@@ -156,7 +156,7 @@ sky/dashboard/out/_next/static/chunks/framework-efc06c2733009cd3.js,sha256=XKYUV
|
|
156
156
|
sky/dashboard/out/_next/static/chunks/main-app-68c028b1bc5e1b72.js,sha256=zSukg-WO1Xy-B2xEIIGHXYApy2KOY9xWHcLqAYQvF3A,115883
|
157
157
|
sky/dashboard/out/_next/static/chunks/main-c0a4f1ea606d48d2.js,sha256=DPLM6ccDgTnITBgsqZPN3gmcI2szGCi9b_60PJZkTJQ,109885
|
158
158
|
sky/dashboard/out/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js,sha256=6QPOwdWeAVe8x-SsiDrm-Ga6u2DkqgG5SFqglrlyIgA,91381
|
159
|
-
sky/dashboard/out/_next/static/chunks/webpack-
|
159
|
+
sky/dashboard/out/_next/static/chunks/webpack-fd62f17bd9ce1fcc.js,sha256=AbJls00G4461-JSM6NPX6ZhA4sjtmH6o8UG111HrEBM,4655
|
160
160
|
sky/dashboard/out/_next/static/chunks/pages/_app-a37b06ddb64521fd.js,sha256=H1r6Y8kJC7-I-8jRr71VINRghHy_yaY6scBkjN4cyxw,7587
|
161
161
|
sky/dashboard/out/_next/static/chunks/pages/_error-c72a1f77a3c0be1b.js,sha256=D2OpMaqpdtCPyq6iPhZHuF2ekyMjleRchSNCLR6fqps,250
|
162
162
|
sky/dashboard/out/_next/static/chunks/pages/clusters-9744c271a1642f76.js,sha256=wzNhCoIzkSiOuaTm9dGBVIYYIYWf4COJOklBr1aaLxE,859
|
@@ -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=FwfPnWrvB3J-nj0wav3KSLbXoXRjD2iFAYc69-7JJT8,2847
|
178
|
+
sky/dashboard/out/clusters/[cluster]/[job].html,sha256=p-yfm7GwBCvmnTIhf2YDLhKfdCdPlmqtDJNenFIi_wQ,2160
|
179
|
+
sky/dashboard/out/infra/[context].html,sha256=c1qulozucYXnu9lL3AAA9w1JWFUdd1y5tsWL69mZh1c,1436
|
180
|
+
sky/dashboard/out/jobs/[job].html,sha256=lKsWkzV8qPgWYffZ1jJ3sup3vXTZyikz0ES3rLpq9ek,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=_8i34c0NebZ-OY8F15UbGPlLe1411gwnx3e5fwqF0vU,1428
|
183
|
+
sky/dashboard/out/workspaces/[name].html,sha256=Zon7CN3K0l69pkBGi0diN4bWRl-tySU9nJyX0GvFAfs,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
|
@@ -188,17 +188,18 @@ sky/data/mounting_utils.py,sha256=6f1d0EeBj4dY-LQPwh8EtI6yoEHZawDgHaC8LChDS2s,21
|
|
188
188
|
sky/data/storage.py,sha256=ISEr9v880aiXcLr58LhsdL094NucaI_VsB_P2IVOhI0,236874
|
189
189
|
sky/data/storage_utils.py,sha256=l6sx0r3j0F2mTcIVn1S7-4Y_vFRZcvwsVrG_CCacVR8,13856
|
190
190
|
sky/jobs/__init__.py,sha256=qoI53-xXE0-SOkrLWigvhgFXjk7dWE0OTqGPYIk-kmM,1458
|
191
|
-
sky/jobs/constants.py,sha256=
|
192
|
-
sky/jobs/controller.py,sha256=
|
191
|
+
sky/jobs/constants.py,sha256=N7Bw_sSCL8cVd0NmKGXvAhyclR8Y-gJAair597umVo4,3305
|
192
|
+
sky/jobs/controller.py,sha256=kKnBMQs2XRg1TN80ToVWFwVdwKTuFE4TjQapb3V0iUI,36073
|
193
193
|
sky/jobs/recovery_strategy.py,sha256=a9A4W-6U3KU-pjkWiFpIdgTHC8W26-jYrmi4vzU9iOg,28818
|
194
194
|
sky/jobs/scheduler.py,sha256=b3RAjEzCXyoikh_BcmmGjoZ9ZeXr-tBnXoLFctt95ko,14375
|
195
|
-
sky/jobs/state.py,sha256=
|
196
|
-
sky/jobs/utils.py,sha256=
|
195
|
+
sky/jobs/state.py,sha256=DKbHHlT0VfgEP562H0YtrI4HBoy7pvgY2xEa9hkNF2c,66029
|
196
|
+
sky/jobs/utils.py,sha256=_V3LRBDjkp3ltTjg7wqn7tMuSSIOO3hQfMuLD5u-f50,72076
|
197
197
|
sky/jobs/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
198
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=FVFNWGIHwRTwhvvU0TN_3C-h15uVZcvG6KTe0W3BPHY,32050
|
201
201
|
sky/jobs/server/server.py,sha256=ae8JAs-2ipWqL_GsA3x8T2mY-OJLc3ioWg_CfRzCUIY,4011
|
202
|
+
sky/jobs/server/utils.py,sha256=q9KL1VGJ8TBIypzt3U9ozHd90QwRib7CBPrXZypMQ98,3496
|
202
203
|
sky/logs/__init__.py,sha256=0ybWMfXcpAzh8dtDnJwpfovNIk0zJRJvzdISqFdKmdE,549
|
203
204
|
sky/logs/agent.py,sha256=tv0C40_FauZpvU93Ro_mC23LnaXWhSTjqch1JQMXiqw,2771
|
204
205
|
sky/logs/gcp.py,sha256=eKVEcHO3FJRg_YTcE9omE8uAIF6AdBWWpkEPqWFAqXg,3857
|
@@ -211,7 +212,7 @@ sky/provision/docker_utils.py,sha256=ev_f5ZebMZ4NYe6OxleisBO8EAB6W0FHFJlaqVK3ugE
|
|
211
212
|
sky/provision/instance_setup.py,sha256=YjANEJoPSamKLav_BjoGiTOkFlGKoR_F1DlGuUFe-U0,26141
|
212
213
|
sky/provision/logging.py,sha256=_sx_TH6nLt0FF3myS5pEZbiMhXyl4s1XwMidu_TTBUw,2091
|
213
214
|
sky/provision/metadata_utils.py,sha256=LrxeV4wD2QPzNdXV_npj8q-pr35FatxBBjF_jSbpOT0,4013
|
214
|
-
sky/provision/provisioner.py,sha256=
|
215
|
+
sky/provision/provisioner.py,sha256=rzfGWSXWlC3A9D8v6oyWy6--40PydAz4qzqz8QN3GuE,32436
|
215
216
|
sky/provision/aws/__init__.py,sha256=mxq8PeWJqUtalDozTNpbtENErRZ1ktEs8uf2aG9UUgU,731
|
216
217
|
sky/provision/aws/config.py,sha256=2PifaPQpD-2Kxqd6843sCUIjEhJR3lI3cJRXE1ox_ls,26728
|
217
218
|
sky/provision/aws/instance.py,sha256=cVW0aQU0Jvo86u4aqfbq29-XrEcgMFFZNIkVS2PvgH8,42295
|
@@ -249,10 +250,10 @@ sky/provision/hyperbolic/utils.py,sha256=NCa3ULvIi64-YHYoOnPd3SShlJ6VuQsEwaTBqHF
|
|
249
250
|
sky/provision/kubernetes/__init__.py,sha256=xzVA9OCga0pCdUAQ7zZiCZMdq-Y0182oHlIKWESA15A,896
|
250
251
|
sky/provision/kubernetes/config.py,sha256=iuKFZdivSaEOZf6PWz3JLju3bqyIuO58jTb9fFUn8nE,29632
|
251
252
|
sky/provision/kubernetes/constants.py,sha256=vZJQsAVjAgwsOskB48tIFSXtNw7IFnJOQE_H6N-vOYQ,1130
|
252
|
-
sky/provision/kubernetes/instance.py,sha256=
|
253
|
+
sky/provision/kubernetes/instance.py,sha256=oQ_-QD6uAv4b32Q5kB_fRRE3iO_3xmVqPLbYBA0Wd08,59861
|
253
254
|
sky/provision/kubernetes/network.py,sha256=Dgj8u7IQBHKHt-mSDhYzue1wfDk96FR_8fO89TwuZ2E,12846
|
254
255
|
sky/provision/kubernetes/network_utils.py,sha256=eEbt8acJW3Ohe6qHZNZ9GAQ29kIZEQX7Q5S08yOuvhA,12220
|
255
|
-
sky/provision/kubernetes/utils.py,sha256=
|
256
|
+
sky/provision/kubernetes/utils.py,sha256=kZiWGZ7vFUEK-owCpUMIK8kGesrPmSbMszcZrxf0AR0,143316
|
256
257
|
sky/provision/kubernetes/volume.py,sha256=KaYls4QU_QNXoncAiySeUX479zuzeCeW2iB1tWtJe8w,8061
|
257
258
|
sky/provision/kubernetes/manifests/fusermount-server-daemonset.yaml,sha256=S87GNAbDqgTrLuxF-afPAqQ0V-i41El4s_9KBZMuaag,1331
|
258
259
|
sky/provision/lambda_cloud/__init__.py,sha256=6EEvSgtUeEiup9ivIFevHmgv0GqleroO2X0K7TRa2nE,612
|
@@ -324,22 +325,22 @@ sky/server/__init__.py,sha256=MPPBqFzXz6Jv5QSk6td_IcvnfXfNErDZVcizu4MLRow,27
|
|
324
325
|
sky/server/common.py,sha256=u7hV5oGdCj5GfCxpNmLd6yl0B1mlh11FMFIR5ZoW5pA,34492
|
325
326
|
sky/server/config.py,sha256=XWf5Kw4am6vMO5wcyWevbQAFH-dmKb7AMEgDzD083-M,8538
|
326
327
|
sky/server/constants.py,sha256=v6RP8ZEwCNsxO2s2IukgOcEldZO5bvcQaxmOTA0Cf0g,2321
|
327
|
-
sky/server/metrics.py,sha256=
|
328
|
+
sky/server/metrics.py,sha256=6H6n6dq_C5HMaU97mJlRUB9bqOEA_k205PO15wE3AWk,3648
|
328
329
|
sky/server/rest.py,sha256=elMpi-cS301OqTwmFZb7fWYXr1vdJ28YT1zIDH1IpBk,5968
|
329
|
-
sky/server/server.py,sha256=
|
330
|
+
sky/server/server.py,sha256=OLWzK9SBfPwaBIdbMPxtngMEXCDQQuRC7ooOpw6d9kE,73466
|
330
331
|
sky/server/state.py,sha256=YbVOMJ1JipQQv17gLIGyiGN7MKfnP83qlUa5MB1z0Yk,747
|
331
332
|
sky/server/stream_utils.py,sha256=RS4RuMxQqTGqp3uxzZVtmFWzos4d49P7hMX_VklzEVU,9189
|
332
|
-
sky/server/uvicorn.py,sha256=
|
333
|
+
sky/server/uvicorn.py,sha256=I-JUJwgUznt87hboDd66NTRaw0WtfFVzxxtoxowNqBg,9266
|
333
334
|
sky/server/versions.py,sha256=3atZzUa7y1XeKNcrfVxKWAo_5ZyCOnbY7DKpIqed7Do,10011
|
334
335
|
sky/server/html/log.html,sha256=TSGZktua9Ysl_ysg3w60rjxAxhH61AJnsYDHdtqrjmI,6929
|
335
336
|
sky/server/html/token_page.html,sha256=eUndS5u1foL9vaWGPRTLMt7lCzD1g0wYJ2v_EeeFzlc,7046
|
336
337
|
sky/server/requests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
337
338
|
sky/server/requests/event_loop.py,sha256=OhpPbuce65bbjpGRlcJa78AVnYSm08SzFKt70ypCUuQ,1211
|
338
|
-
sky/server/requests/executor.py,sha256=
|
339
|
-
sky/server/requests/payloads.py,sha256=
|
339
|
+
sky/server/requests/executor.py,sha256=_wQSD_3qAmXup5eTHs_GUzTRYemModz1gECsDRQmxg4,26424
|
340
|
+
sky/server/requests/payloads.py,sha256=UXulzuo5dY1uQTemYhAhYR0AL92AW6vxCdpI6ZgsxXk,23374
|
340
341
|
sky/server/requests/preconditions.py,sha256=uUQjzFFHf7O5-WvBypMzqViGmd1CXksbqrrDPmY_s_Y,7178
|
341
342
|
sky/server/requests/process.py,sha256=I0ToOcF_cMJi5TfZMJOn9rDmJYewQOV07Pnetzqj2IU,10805
|
342
|
-
sky/server/requests/requests.py,sha256=
|
343
|
+
sky/server/requests/requests.py,sha256=jp81kMjXkBVqQK2v4GtLQstXvMR0EOPOOsn88kYJh5g,28670
|
343
344
|
sky/server/requests/queues/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
344
345
|
sky/server/requests/queues/local_queue.py,sha256=X6VkBiUmgd_kfqIK1hCtMWG1b8GiZbY70TBiBR6c6GY,416
|
345
346
|
sky/server/requests/queues/mp_queue.py,sha256=jDqP4Jd28U3ibSFyMR1DF9I2OWZrPZqFJrG5S6RFpyw,3403
|
@@ -354,9 +355,9 @@ sky/skylet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
354
355
|
sky/skylet/attempt_skylet.py,sha256=GZ6ITjjA0m-da3IxXXfoHR6n4pjp3X3TOXUqVvSrV0k,2136
|
355
356
|
sky/skylet/autostop_lib.py,sha256=kGUnHm-jpF4zl3UJfB-4pnoldWpnVeR96WwYGSw7em0,4630
|
356
357
|
sky/skylet/configs.py,sha256=kV490lonYVVQMDRO2haizlt9fpQmqBIpwBScn14zS78,2132
|
357
|
-
sky/skylet/constants.py,sha256=
|
358
|
+
sky/skylet/constants.py,sha256=Axmn0vsjmEPmoa6nOda9TIpVdHINxO5qzzAisBml1mA,23486
|
358
359
|
sky/skylet/events.py,sha256=pnV3ZiwWhXqTHpU5B5Y9Xwam_7FQDI6IrxgSx7X_NVA,12743
|
359
|
-
sky/skylet/job_lib.py,sha256=
|
360
|
+
sky/skylet/job_lib.py,sha256=YpjjUK836UokbDZhNjD5rg9SSKy8d9XnAb_3OgJD7cM,49163
|
360
361
|
sky/skylet/log_lib.py,sha256=9nLOhevnM668itQyVyPSoQHKfZ2MWm_FwXPxK28X0oM,23201
|
361
362
|
sky/skylet/log_lib.pyi,sha256=6LXFSpyW4lMHAELKllvK73B3538JjSo9lPw30DEuO0o,4542
|
362
363
|
sky/skylet/skylet.py,sha256=mWmqCvxSlfdVU_L8NL6P52jmCt3smd8K0HdyNBfMPeI,1234
|
@@ -409,7 +410,7 @@ sky/usage/constants.py,sha256=mFrTgrFIfFf4kpcl-M1VDU7_moD5_mJazUJTUDrybms,1102
|
|
409
410
|
sky/usage/usage_lib.py,sha256=PEjQH7do7lrcGMaIqW6bFQvNIFo-ipoF7L0xlt3vmDg,21427
|
410
411
|
sky/users/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
411
412
|
sky/users/model.conf,sha256=nPAaMai2fc-nlnEDTfW5Lyw6vgCcOS32BSms4aFOHoY,259
|
412
|
-
sky/users/permission.py,sha256=
|
413
|
+
sky/users/permission.py,sha256=4G55ujboXgYH0N3kV-STxT2FpnIY27U1pskJqlDhuWQ,15256
|
413
414
|
sky/users/rbac.py,sha256=3ZWukXo85u6zWbPmHcPsF9EtZ3cd_51PLZYf2h-7uAM,3636
|
414
415
|
sky/users/server.py,sha256=59I2WITevRqvo-kEzmP0p0qyEYATnUQXTRvA_81xZYM,27922
|
415
416
|
sky/users/token_service.py,sha256=nzIryoYSbw58SceBVRJ4VF7Z9beTSpYZd6WSyYYzK-s,7179
|
@@ -422,14 +423,14 @@ sky/utils/cluster_utils.py,sha256=s6DFRXktv6_gF_DnwDEXJ7CniifHp8CAPeGciRCbXgI,14
|
|
422
423
|
sky/utils/command_runner.py,sha256=mPNdPhQX6TtQ7c5MTrdiMEx8yMcKrULMFQas66vJSpQ,43912
|
423
424
|
sky/utils/command_runner.pyi,sha256=IS3qeCTgWys94KhaHx3S2Pty8qDWn_zFht7bgDLJFcw,9593
|
424
425
|
sky/utils/common.py,sha256=nTg-mjNu0diZjs2UvyiMc84Tu1ZonRLRAmfqFIP1TtY,2242
|
425
|
-
sky/utils/common_utils.py,sha256=
|
426
|
+
sky/utils/common_utils.py,sha256=3cBop3bbR11XXsaxgH8oWK9YR8_F_cwvR7904LsRNU0,36285
|
426
427
|
sky/utils/config_utils.py,sha256=RkTIbZaPbsvQjtj_4R7p4Jz6vIbdkvD-QPs1O5jjiHo,12003
|
427
428
|
sky/utils/context.py,sha256=yEGvcKr9fKEeoAnNKiXDiky7dlLOChFdZYXGr0EeQ9g,9997
|
428
429
|
sky/utils/context_utils.py,sha256=cby-QPmnGObjIE4K7eZ_dkWZdUo7YJUmnJr5oKf_v54,6712
|
429
430
|
sky/utils/control_master_utils.py,sha256=iD4M0onjYOdZ2RuxjwMBl4KhafHXJzuHjvqlBUnu-VE,1450
|
430
431
|
sky/utils/controller_utils.py,sha256=sl3KrjmU_0UvoNJVH-Aw9mfxdkHUe2Nkr8cwe7OA7H4,55366
|
431
432
|
sky/utils/dag_utils.py,sha256=lqzmSPgmNGmil_7pcVdyf4a4BSC2rMcTAIKazSX_3qk,8514
|
432
|
-
sky/utils/db_utils.py,sha256=
|
433
|
+
sky/utils/db_utils.py,sha256=pASuL-B_t-e7aS7wSgCW_EyqyRQqwUdHKvXC1dCgSkk,5704
|
433
434
|
sky/utils/env_options.py,sha256=PaQGjem9nK4R8Y_YvCLkNZ891wWiS3t50hE8q2HLis0,1922
|
434
435
|
sky/utils/infra_utils.py,sha256=WkkB4Hj6CX-3eV029fPYqydNVyFZ8ZwRAVA_GCLJ9QU,6981
|
435
436
|
sky/utils/kubernetes_enums.py,sha256=imGqHSa8O07zD_6xH1SDMM7dBU5lF5fzFFlQuQy00QM,1384
|
@@ -440,12 +441,12 @@ sky/utils/resource_checker.py,sha256=N18XhoVIqjY1VzmKvxQxRchRgC2WIgcEQyHDkLvg4Y8
|
|
440
441
|
sky/utils/resources_utils.py,sha256=zcJXHYQt6WtQHKuWEif1QP1NtSO7XQYJBaEs625yV1Y,15958
|
441
442
|
sky/utils/rich_console_utils.py,sha256=wPvAlshaFHuMZSjiDnaK3OSBppZLBjAn-lj7AvxNBQk,553
|
442
443
|
sky/utils/rich_utils.py,sha256=ZKztFc0D5q7ma_NE2p9UKjVS9zqcJ3L53FRw6SPoUvg,14707
|
443
|
-
sky/utils/schemas.py,sha256=
|
444
|
+
sky/utils/schemas.py,sha256=iIZxiSVsYwHrGq1Bz7j-bw9cD3QTvkD9wGV2dRyAau4,52409
|
444
445
|
sky/utils/status_lib.py,sha256=QGkd6COD1GX1h30Mk9RMUdyeUOMJs5971GkxTcFgdsU,1705
|
445
446
|
sky/utils/subprocess_utils.py,sha256=tOpFY_1ml7JkVGAN1o473lcKPklGR95qBCW61eu8kEo,15773
|
446
447
|
sky/utils/tempstore.py,sha256=TvCVXnPHzy_BLAXHhWvUcldqOY8iXh1vEWtBGHcpbmo,1725
|
447
448
|
sky/utils/timeline.py,sha256=ob6s3bc7nwAuSI76yLKBrSR5bzOHnOhbozz1avwoet4,4070
|
448
|
-
sky/utils/ux_utils.py,sha256
|
449
|
+
sky/utils/ux_utils.py,sha256=-fxqsar64eZWZ7vSH6gy1voxsDZTqcTR02a9uf_uRZg,10292
|
449
450
|
sky/utils/validator.py,sha256=AHIYEBpxzpC2Eg8TulruFqQSjTxeynB0Dc7cfP1RX2M,1159
|
450
451
|
sky/utils/aws/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
451
452
|
sky/utils/aws/get_default_security_group.py,sha256=LPzz5133ZUMbzDD3iqqACL9PdlgqiQR5hKZIn-D1zhw,228
|
@@ -480,9 +481,9 @@ sky/workspaces/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
480
481
|
sky/workspaces/core.py,sha256=MkQoVqWN67tf4VRq284U9vgAw4lwb_cpUfwHQT4V9Ow,16598
|
481
482
|
sky/workspaces/server.py,sha256=Box45DS54xXGHy7I3tGKGy-JP0a8G_z6IhfvGlEXtsA,3439
|
482
483
|
sky/workspaces/utils.py,sha256=IIAiFoS6sdb2t0X5YoX9AietpTanZUQNTK8cePun-sY,2143
|
483
|
-
skypilot_nightly-1.0.0.
|
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.
|
484
|
+
skypilot_nightly-1.0.0.dev20250710.dist-info/licenses/LICENSE,sha256=emRJAvE7ngL6x0RhQvlns5wJzGI3NEQ_WMjNmd9TZc4,12170
|
485
|
+
skypilot_nightly-1.0.0.dev20250710.dist-info/METADATA,sha256=nvk7Ebd5rVL05_GHEahZ3GU-34M064Zmw1YT9_WLsAw,18864
|
486
|
+
skypilot_nightly-1.0.0.dev20250710.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
487
|
+
skypilot_nightly-1.0.0.dev20250710.dist-info/entry_points.txt,sha256=StA6HYpuHj-Y61L2Ze-hK2IcLWgLZcML5gJu8cs6nU4,36
|
488
|
+
skypilot_nightly-1.0.0.dev20250710.dist-info/top_level.txt,sha256=qA8QuiNNb6Y1OF-pCUtPEr6sLEwy2xJX06Bd_CrtrHY,4
|
489
|
+
skypilot_nightly-1.0.0.dev20250710.dist-info/RECORD,,
|
@@ -1 +0,0 @@
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8969],{8969:function(e,t,r){r.d(t,{Ce:function(){return u},NJ:function(){return d},UA:function(){return l},getManagedJobs:function(){return i}});var o=r(7294),a=r(5821),n=r(3225),c=r(6378),s=r(7145);async function i(){let{allUsers:e=!0}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};try{let t=(await s.x.post("/jobs/queue",{all_users:e})).headers.get("X-Skypilot-Request-ID"),r=await s.x.get("/api/get?request_id=".concat(t));if(500===r.status){try{let e=await r.json();if(e.detail&&e.detail.error)try{let t=JSON.parse(e.detail.error);if(t.type&&t.type===n.iW)return{jobs:[],controllerStopped:!0}}catch(e){console.error("Error parsing JSON:",e)}}catch(e){console.error("Error parsing JSON:",e)}return{jobs:[],controllerStopped:!1}}let o=await r.json();return{jobs:(o.return_value?JSON.parse(o.return_value):[]).map(e=>{let t=[];e.submitted_at&&t.push({time:new Date(1e3*e.submitted_at),event:"Job submitted."}),e.start_at&&t.push({time:new Date(1e3*e.start_at),event:"Job started."}),e.end_at&&("CANCELLING"==e.status||"CANCELLED"==e.status?t.push({time:new Date(1e3*e.end_at),event:"Job cancelled."}):t.push({time:new Date(1e3*e.end_at),event:"Job completed."})),e.last_recovered_at&&e.last_recovered_at!=e.start_at&&t.push({time:new Date(1e3*e.last_recovered_at),event:"Job recovered."});let r=(e.end_at?e.end_at:Date.now()/1e3)-e.submitted_at,o=e.cloud,a=e.cluster_resources;if(!o){if(e.cluster_resources&&"-"!==e.cluster_resources)try{o=e.cluster_resources.split("(")[0].split("x").pop().trim(),a=e.cluster_resources.replace("".concat(o,"("),"(").replace("x ","x")}catch(e){o="Unknown"}else o="Unknown"}let n="",c=n=e.zone?e.zone:e.region;n&&n.length>15&&(n=n.substring(0,15)+"...");let s=o+" ("+n+")";"-"===n&&(s=o);let i=o+" ("+c+")";return"-"===c&&(i=o),{id:e.job_id,task:e.task_name,name:e.job_name,job_duration:e.job_duration,total_duration:r,workspace:e.workspace,status:e.status,requested_resources:e.resources,resources_str:a,resources_str_full:e.cluster_resources_full||a,cloud:o,region:e.region,infra:s,full_infra:i,recoveries:e.recovery_count,details:e.details||e.failure_reason,user:e.user_name,user_hash:e.user_hash,submitted_at:e.submitted_at?new Date(1e3*e.submitted_at):null,events:t,dag_yaml:e.user_yaml,entrypoint:e.entrypoint}}),controllerStopped:!1}}catch(e){return console.error("Error fetching managed job data:",e),{jobs:[],controllerStopped:!1}}}function l(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,[r,a]=(0,o.useState)(null),[n,s]=(0,o.useState)(!0);return(0,o.useEffect)(()=>{(async function(){if(e)try{var t;s(!0);let r=await c.default.get(i,[{allUsers:!0}]),o=null==r?void 0:null===(t=r.jobs)||void 0===t?void 0:t.find(t=>String(t.id)===String(e));o?a({jobs:[o],controllerStopped:r.controllerStopped||!1}):a({jobs:[],controllerStopped:r.controllerStopped||!1})}catch(e){console.error("Error fetching single managed job data:",e),a({jobs:[],controllerStopped:!1})}finally{s(!1)}})()},[e,t]),{jobData:r,loading:n}}async function d(e){let t,{jobId:r,controller:o=!1,signal:c,onNewLog:s}=e,i=Date.now(),l=new Promise(e=>{let r=()=>{let o=Date.now()-i;o>=3e4?e({timeout:!0}):t=setTimeout(r,3e4-o)};t=setTimeout(r,3e4)}),d=window.location.origin,u="".concat(d).concat(n.f4),h=(async()=>{try{let e=(await fetch("".concat(u,"/jobs/logs"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({controller:o,follow:!1,job_id:r,tail:1e3}),...c?{signal:c}:{}})).body.getReader();try{for(;;){let{done:t,value:r}=await e.read();if(t)break;i=Date.now();let o=new TextDecoder().decode(r);s(o)}}finally{if(!c||!c.aborted)try{e.cancel()}catch(e){"AbortError"!==e.name&&console.warn("Error canceling reader:",e)}t&&clearTimeout(t)}return{timeout:!1}}catch(e){if(t&&clearTimeout(t),"AbortError"===e.name)return{timeout:!1};throw e}})(),b=await Promise.race([h,l]);if(t&&clearTimeout(t),b.timeout){(0,a.C)("Log request for job ".concat(r," timed out after ").concat(30,"s of inactivity"),"warning");return}}async function u(e,t,r){let o="",c="",s="",i={};if("restartcontroller"===e)o="Restarting",c="restarted",s="jobs/queue",i={all_users:!0,refresh:!0},t="controller";else throw Error("Invalid action: ".concat(e));(0,a.C)("".concat(o," job ").concat(t,"..."),"info");let l=window.location.origin,d="".concat(l).concat(n.f4);try{try{let e=(await fetch("".concat(d,"/").concat(s),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(i)})).headers.get("X-Skypilot-Request-ID"),l=await fetch("".concat(d,"/api/get?request_id=").concat(e));if(200===l.status)(0,a.C)("Job ".concat(t," ").concat(c," successfully."),"success");else if(500===l.status)try{let e=await l.json();if(e.detail&&e.detail.error)try{let c=JSON.parse(e.detail.error);c.type&&c.type===n.Bo?(0,a.C)("".concat(o," job ").concat(t," is not supported!"),"error",1e4):c.type&&c.type===n.mF?(0,a.C)("Cluster ".concat(r," does not exist."),"error"):c.type&&c.type===n.iW?(0,a.C)("Cluster ".concat(r," is not up."),"error"):(0,a.C)("".concat(o," job ").concat(t," failed: ").concat(c.type),"error")}catch(r){(0,a.C)("".concat(o," job ").concat(t," failed: ").concat(e.detail.error),"error")}else(0,a.C)("".concat(o," job ").concat(t," failed with no details."),"error")}catch(e){(0,a.C)("".concat(o," job ").concat(t," failed with parse error."),"error")}else(0,a.C)("".concat(o," job ").concat(t," failed with status ").concat(l.status,"."),"error")}catch(e){console.error("Fetch error:",e),(0,a.C)("Network error ".concat(o," job ").concat(t,": ").concat(e.message),"error")}}catch(e){console.error("Error in handleStop:",e),(0,a.C)("Critical error ".concat(o," job ").concat(t,": ").concat(e.message),"error")}}},5821:function(e,t,r){r.d(t,{C:function(){return o}});function o(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"info",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:5e3,o=document.getElementById("toast-container");o||((o=document.createElement("div")).id="toast-container",o.className="fixed top-0 right-0 p-4 z-[9999] flex flex-col items-end space-y-2",document.body.appendChild(o));let a=document.createElement("div");switch(a.className="rounded-md border-l-4 p-4 shadow-md flex items-center justify-between max-w-md w-full mb-2 pointer-events-auto",t){case"success":a.className+=" bg-green-100 border-green-500 text-green-800";break;case"error":a.className+=" bg-red-100 border-red-500 text-red-800";break;case"warning":a.className+=" bg-yellow-100 border-yellow-500 text-yellow-800";break;default:a.className+=" bg-blue-100 border-blue-500 text-blue-800"}return a.innerHTML='\n <div class="flex-1 mr-2">\n <p class="text-sm font-medium">'.concat(e,'</p>\n </div>\n <button class="text-gray-500 hover:text-gray-700 focus:outline-none" aria-label="Close toast">\n <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">\n <line x1="18" y1="6" x2="6" y2="18"></line>\n <line x1="6" y1="6" x2="18" y2="18"></line>\n </svg>\n </button>\n '),o.appendChild(a),a.querySelector("button").addEventListener("click",()=>{o.removeChild(a)}),setTimeout(()=>{o.contains(a)&&o.removeChild(a)},r),a}},6378:function(e,t,r){r.r(t),r.d(t,{DashboardCache:function(){return a},dashboardCache:function(){return n}});let o=r(1214).ej.DEFAULT_TTL;class a{async get(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=r.ttl||o,n=!1!==r.refreshOnAccess,c=this._generateKey(e,t),s=e.name||"anonymous",i=this.cache.get(c),l=Date.now();if(i&&l-i.lastUpdated<a){let r=Math.round((l-i.lastUpdated)/1e3);return this._debug("Cache HIT for ".concat(s," (age: ").concat(r,"s, TTL: ").concat(Math.round(a/1e3),"s)")),n&&(this.cache.set(c,{data:i.data,lastUpdated:l}),this._debug("Cache TTL refreshed for ".concat(s))),this.backgroundJobs.has(c)||this._refreshInBackground(e,t,c),i.data}try{let r=await e(...t);return this.cache.set(c,{data:r,lastUpdated:l}),r}catch(e){if(i)return console.warn("Failed to fetch fresh data for ".concat(c,", returning stale data:"),e),i.data;throw e}}invalidate(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=this._generateKey(e,t);this.cache.delete(r),this.backgroundJobs.delete(r)}invalidateFunction(e){let t=e.name||"anonymous",r=[];for(let e of this.cache.keys())e.startsWith("".concat(t,"_"))&&r.push(e);r.forEach(e=>{this.cache.delete(e),this.backgroundJobs.delete(e)})}clear(){this.cache.clear(),this.backgroundJobs.clear()}getStats(){return{cacheSize:this.cache.size,backgroundJobs:this.backgroundJobs.size,keys:Array.from(this.cache.keys())}}getDetailedStats(){let e=Date.now(),t=[];for(let[r,o]of this.cache.entries()){let a=e-o.lastUpdated;t.push({key:r,age:Math.round(a/1e3),lastUpdated:new Date(o.lastUpdated).toISOString(),hasBackgroundJob:this.backgroundJobs.has(r)})}return{cacheSize:this.cache.size,backgroundJobs:this.backgroundJobs.size,entries:t.sort((e,t)=>e.age-t.age)}}setDebugMode(e){this.debugMode=e}_debug(e){for(var t=arguments.length,r=Array(t>1?t-1:0),o=1;o<t;o++)r[o-1]=arguments[o];this.debugMode&&console.log("[DashboardCache] ".concat(e),...r)}_refreshInBackground(e,t,r){this.backgroundJobs.set(r,!0),e(...t).then(e=>{this.cache.set(r,{data:e,lastUpdated:Date.now()})}).catch(e=>{console.warn("Background refresh failed for ".concat(r,":"),e)}).finally(()=>{this.backgroundJobs.delete(r)})}_generateKey(e,t){let r=function(e){let t=5381;for(let r=0;r<e.length;r++)t=(t<<5)+t+e.charCodeAt(r);return t>>>0}(e.toString()),o=t.length>0?JSON.stringify(t):"";return"".concat(r,"_").concat(o)}constructor(){this.cache=new Map,this.backgroundJobs=new Map,this.debugMode=!1}}let n=new a;t.default=n}}]);
|
/sky/dashboard/out/_next/static/{O3wBEOmvYEVEqZxAP7Czn → P2Di1JdUlHuKN2lBws4Mr}/_ssgManifest.js
RENAMED
File without changes
|
{skypilot_nightly-1.0.0.dev20250708.dist-info → skypilot_nightly-1.0.0.dev20250710.dist-info}/WHEEL
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|