skypilot-nightly 1.0.0.dev20250630__py3-none-any.whl → 1.0.0.dev20250701__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.
Files changed (34) hide show
  1. sky/__init__.py +2 -2
  2. sky/backends/cloud_vm_ray_backend.py +3 -3
  3. sky/dashboard/out/404.html +1 -1
  4. sky/dashboard/out/clusters/[cluster]/[job].html +1 -1
  5. sky/dashboard/out/clusters/[cluster].html +1 -1
  6. sky/dashboard/out/clusters.html +1 -1
  7. sky/dashboard/out/config.html +1 -1
  8. sky/dashboard/out/index.html +1 -1
  9. sky/dashboard/out/infra/[context].html +1 -1
  10. sky/dashboard/out/infra.html +1 -1
  11. sky/dashboard/out/jobs/[job].html +1 -1
  12. sky/dashboard/out/jobs.html +1 -1
  13. sky/dashboard/out/users.html +1 -1
  14. sky/dashboard/out/volumes.html +1 -1
  15. sky/dashboard/out/workspace/new.html +1 -1
  16. sky/dashboard/out/workspaces/[name].html +1 -1
  17. sky/dashboard/out/workspaces.html +1 -1
  18. sky/jobs/controller.py +4 -0
  19. sky/jobs/server/core.py +5 -9
  20. sky/jobs/state.py +820 -670
  21. sky/jobs/utils.py +7 -15
  22. sky/server/common.py +1 -0
  23. sky/server/server.py +37 -15
  24. sky/setup_files/dependencies.py +2 -0
  25. sky/task.py +1 -1
  26. sky/utils/dag_utils.py +4 -2
  27. {skypilot_nightly-1.0.0.dev20250630.dist-info → skypilot_nightly-1.0.0.dev20250701.dist-info}/METADATA +4 -1
  28. {skypilot_nightly-1.0.0.dev20250630.dist-info → skypilot_nightly-1.0.0.dev20250701.dist-info}/RECORD +34 -34
  29. /sky/dashboard/out/_next/static/{NdypbqMxaYucRGfopkKXa → Md3rlE87jmL5uv7gSo8mR}/_buildManifest.js +0 -0
  30. /sky/dashboard/out/_next/static/{NdypbqMxaYucRGfopkKXa → Md3rlE87jmL5uv7gSo8mR}/_ssgManifest.js +0 -0
  31. {skypilot_nightly-1.0.0.dev20250630.dist-info → skypilot_nightly-1.0.0.dev20250701.dist-info}/WHEEL +0 -0
  32. {skypilot_nightly-1.0.0.dev20250630.dist-info → skypilot_nightly-1.0.0.dev20250701.dist-info}/entry_points.txt +0 -0
  33. {skypilot_nightly-1.0.0.dev20250630.dist-info → skypilot_nightly-1.0.0.dev20250701.dist-info}/licenses/LICENSE +0 -0
  34. {skypilot_nightly-1.0.0.dev20250630.dist-info → skypilot_nightly-1.0.0.dev20250701.dist-info}/top_level.txt +0 -0
sky/jobs/utils.py CHANGED
@@ -180,12 +180,6 @@ def is_consolidation_mode() -> bool:
180
180
  return consolidation_mode
181
181
 
182
182
 
183
- def get_ha_dump_script_path(job_id: int) -> pathlib.Path:
184
- """Get the path to the HA dump script for a job."""
185
- return pathlib.Path(constants.PERSISTENT_RUN_SCRIPT_DIR).expanduser(
186
- ).resolve() / f'sky_job_{job_id}'
187
-
188
-
189
183
  def ha_recovery_for_consolidation_mode():
190
184
  """Recovery logic for HA mode."""
191
185
  # No setup recovery is needed in consolidation mode, as the API server
@@ -221,17 +215,15 @@ def ha_recovery_for_consolidation_mode():
221
215
  managed_job_state.ManagedJobScheduleState.DONE,
222
216
  managed_job_state.ManagedJobScheduleState.WAITING
223
217
  ]:
224
- dump_script_path = get_ha_dump_script_path(job_id)
225
- if not dump_script_path.exists():
226
- f.write(f'Job {job_id}\'s recovery file ({dump_script_path}'
227
- ') does not exist. Skipping recovery. Job '
228
- f'schedule state: {job["schedule_state"]}\n')
218
+ script = managed_job_state.get_ha_recovery_script(job_id)
219
+ if script is None:
220
+ f.write(f'Job {job_id}\'s recovery script does not exist. '
221
+ 'Skipping recovery. Job schedule state: '
222
+ f'{job["schedule_state"]}\n')
229
223
  continue
230
- with open(dump_script_path, 'r', encoding='utf-8') as script_f:
231
- script = script_f.read()
232
224
  runner.run(script)
233
- f.write(f'Job {job_id} (file: {dump_script_path}) completed '
234
- f'recovery at {datetime.datetime.now()}\n')
225
+ f.write(f'Job {job_id} completed recovery at '
226
+ f'{datetime.datetime.now()}\n')
235
227
  f.write(f'HA recovery completed at {datetime.datetime.now()}\n')
236
228
  f.write(f'Total recovery time: {time.time() - start} seconds\n')
237
229
 
sky/server/common.py CHANGED
@@ -293,6 +293,7 @@ def get_api_server_status(endpoint: Optional[str] = None) -> ApiServerInfo:
293
293
  try:
294
294
  response = make_authenticated_request('GET',
295
295
  '/api/health',
296
+ server_url=server_url,
296
297
  timeout=2.5)
297
298
  except requests.exceptions.Timeout:
298
299
  if time_out_try_count == RETRY_COUNT_ON_TIMEOUT:
sky/server/server.py CHANGED
@@ -277,29 +277,51 @@ class BearerTokenMiddleware(starlette.middleware.base.BaseHTTPMiddleware):
277
277
  """Middleware to handle Bearer Token Auth (Service Accounts)."""
278
278
 
279
279
  async def dispatch(self, request: fastapi.Request, call_next):
280
- # Only process requests with Bearer token authorization header
280
+ """Make sure correct bearer token auth is present.
281
+
282
+ 1. If the request has the X-Skypilot-Auth-Mode: token header, it must
283
+ have a valid bearer token.
284
+ 2. For backwards compatibility, if the request has a Bearer token
285
+ beginning with "sky_" (even if X-Skypilot-Auth-Mode is not present),
286
+ it must be a valid token.
287
+ 3. If X-Skypilot-Auth-Mode is not set to "token", and there is no Bearer
288
+ token beginning with "sky_", allow the request to continue.
289
+
290
+ In conjunction with an auth proxy, the idea is to make the auth proxy
291
+ bypass requests with bearer tokens, instead setting the
292
+ X-Skypilot-Auth-Mode header. The auth proxy should either validate the
293
+ auth or set the header X-Skypilot-Auth-Mode: token.
294
+ """
295
+ has_skypilot_auth_header = (
296
+ request.headers.get('X-Skypilot-Auth-Mode') == 'token')
281
297
  auth_header = request.headers.get('authorization')
282
- if not auth_header or not auth_header.lower().startswith('bearer '):
298
+ has_bearer_token_starting_with_sky = (
299
+ auth_header and auth_header.lower().startswith('bearer ') and
300
+ auth_header.split(' ', 1)[1].startswith('sky_'))
301
+
302
+ if (not has_skypilot_auth_header and
303
+ not has_bearer_token_starting_with_sky):
304
+ # This is case #3 above. We do not need to validate the request.
283
305
  # No Bearer token, continue with normal processing (OAuth2 cookies,
284
306
  # etc.)
285
307
  return await call_next(request)
308
+ # After this point, all requests must be validated.
309
+
310
+ if auth_header is None:
311
+ return fastapi.responses.JSONResponse(
312
+ status_code=401, content={'detail': 'Authentication required'})
286
313
 
287
314
  # Extract token
288
- sa_token = auth_header.split(' ', 1)[1]
315
+ split_header = auth_header.split(' ', 1)
316
+ if split_header[0].lower() != 'bearer':
317
+ return fastapi.responses.JSONResponse(
318
+ status_code=401,
319
+ content={'detail': 'Invalid authentication method'})
320
+ sa_token = split_header[1]
289
321
 
290
322
  # Handle SkyPilot service account tokens
291
- if sa_token.startswith('sky_'):
292
- return await self._handle_service_account_token(
293
- request, sa_token, call_next)
294
-
295
- # Handle other Bearer tokens (OAuth2 access tokens, etc.)
296
- # These requests bypassed OAuth2 proxy, so let the application decide
297
- # how to handle them
298
- # For now, we'll let them continue through normal processing
299
- logger.debug(
300
- 'Non-SkyPilot Bearer token detected, continuing with normal '
301
- 'processing')
302
- return await call_next(request)
323
+ return await self._handle_service_account_token(request, sa_token,
324
+ call_next)
303
325
 
304
326
  async def _handle_service_account_token(self, request: fastapi.Request,
305
327
  sa_token: str, call_next):
@@ -65,12 +65,14 @@ install_requires = [
65
65
  # Required for API server metrics
66
66
  'prometheus_client>=0.8.0',
67
67
  'passlib',
68
+ 'pyjwt',
68
69
  ]
69
70
 
70
71
  server_dependencies = [
71
72
  'casbin',
72
73
  'sqlalchemy_adapter',
73
74
  'passlib',
75
+ 'pyjwt',
74
76
  ]
75
77
 
76
78
  local_ray = [
sky/task.py CHANGED
@@ -1512,7 +1512,7 @@ class Task:
1512
1512
  d[k] = v
1513
1513
  return d
1514
1514
 
1515
- def to_yaml_config(self, redact_secrets: bool = True) -> Dict[str, Any]:
1515
+ def to_yaml_config(self, redact_secrets: bool = False) -> Dict[str, Any]:
1516
1516
  """Returns a yaml-style dict representation of the task.
1517
1517
 
1518
1518
  INTERNAL: this method is internal-facing.
sky/utils/dag_utils.py CHANGED
@@ -147,11 +147,13 @@ def load_chain_dag_from_yaml_str(
147
147
  return _load_chain_dag(configs, env_overrides, secrets_overrides)
148
148
 
149
149
 
150
- def dump_chain_dag_to_yaml_str(dag: dag_lib.Dag) -> str:
150
+ def dump_chain_dag_to_yaml_str(dag: dag_lib.Dag,
151
+ redact_secrets: bool = False) -> str:
151
152
  """Dumps a chain DAG to a YAML string.
152
153
 
153
154
  Args:
154
155
  dag: the DAG to dump.
156
+ redact_secrets: whether to redact secrets in the YAML string.
155
157
 
156
158
  Returns:
157
159
  The YAML string.
@@ -159,7 +161,7 @@ def dump_chain_dag_to_yaml_str(dag: dag_lib.Dag) -> str:
159
161
  assert dag.is_chain(), dag
160
162
  configs = [{'name': dag.name}]
161
163
  for task in dag.tasks:
162
- configs.append(task.to_yaml_config())
164
+ configs.append(task.to_yaml_config(redact_secrets=redact_secrets))
163
165
  return common_utils.dump_yaml_str(configs)
164
166
 
165
167
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: skypilot-nightly
3
- Version: 1.0.0.dev20250630
3
+ Version: 1.0.0.dev20250701
4
4
  Summary: SkyPilot: Run AI on Any Infra — Unified, Faster, Cheaper.
5
5
  Author: SkyPilot Team
6
6
  License: Apache 2.0
@@ -53,6 +53,7 @@ Requires-Dist: casbin
53
53
  Requires-Dist: sqlalchemy_adapter
54
54
  Requires-Dist: prometheus_client>=0.8.0
55
55
  Requires-Dist: passlib
56
+ Requires-Dist: pyjwt
56
57
  Provides-Extra: aws
57
58
  Requires-Dist: awscli>=1.27.10; extra == "aws"
58
59
  Requires-Dist: botocore>=1.29.10; extra == "aws"
@@ -126,6 +127,7 @@ Provides-Extra: server
126
127
  Requires-Dist: casbin; extra == "server"
127
128
  Requires-Dist: sqlalchemy_adapter; extra == "server"
128
129
  Requires-Dist: passlib; extra == "server"
130
+ Requires-Dist: pyjwt; extra == "server"
129
131
  Provides-Extra: all
130
132
  Requires-Dist: awscli>=1.27.10; extra == "all"
131
133
  Requires-Dist: botocore>=1.29.10; extra == "all"
@@ -178,6 +180,7 @@ Requires-Dist: colorama<0.4.5; extra == "all"
178
180
  Requires-Dist: casbin; extra == "all"
179
181
  Requires-Dist: sqlalchemy_adapter; extra == "all"
180
182
  Requires-Dist: passlib; extra == "all"
183
+ Requires-Dist: pyjwt; extra == "all"
181
184
  Dynamic: author
182
185
  Dynamic: classifier
183
186
  Dynamic: description
@@ -1,4 +1,4 @@
1
- sky/__init__.py,sha256=ESTGf7vpWh7gXn4Rb3kKyLu9InHOBEQFGx76Ou7uXU4,6419
1
+ sky/__init__.py,sha256=xnNASWOZXK5qA6EMZvK5Jd4Jy4gjv6TiCS3UG2yGe2M,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
@@ -14,7 +14,7 @@ sky/optimizer.py,sha256=mE3VG2AhMsY6yL0uIqtqWudjVLZPYaBw9eLhQIAi6jI,63282
14
14
  sky/resources.py,sha256=Xqnda_-2Gegtdf8GVTy8QaUZToYy4zFrn4ACMuE7gFM,100267
15
15
  sky/sky_logging.py,sha256=cMurxhFExKEFX1frcMR71Ti_s9Obg9WY30veVxsZB6o,7285
16
16
  sky/skypilot_config.py,sha256=6o5T4_U-b38tJglH3vRV0cfvsD8wLAt2qFuLux_FDv4,35235
17
- sky/task.py,sha256=N_nkTIIRPHog7lwt1tK6dvdXseegiSpHGrvQl5ZuHQ8,71075
17
+ sky/task.py,sha256=ftmaGsxLoX8Uewzh45OjhlPDJu5n3060Za1S0X9i7M0,71076
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=HFuEwwO28H-V3ytr18rNFMr1ol9sAroG8VeXTgKi9YQ,145088
38
- sky/backends/cloud_vm_ray_backend.py,sha256=WPmK75JRfX4nLphJQVJFapyZRQcblAiUhITrzNUt3Hc,259437
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
41
41
  sky/backends/wheel_utils.py,sha256=IUruJijm5854UGDdSayHbHzjjWRM46bATK1nSnK44xY,11071
@@ -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=hFS_EwRD2TbML2_QfLeRiU4DWI7QotAdd74Xr9K2Z3E,1423
112
- sky/dashboard/out/clusters.html,sha256=oRvLRVd0GIPawwEU4DKjn0H-JzXJXaPix5tGUaDfM9Q,1418
113
- sky/dashboard/out/config.html,sha256=Gf1SHKKifXb5Qfj119i-R0VWffCqqnVihgNEok5mRqM,1414
111
+ sky/dashboard/out/404.html,sha256=5MaLosc-IEF7yxlimcsZtcZAPwAmjcprtQ1a9-ykypk,1423
112
+ sky/dashboard/out/clusters.html,sha256=I8_99s0orihQ5OmxiECaCxny8d2zUQJbRUShl9tC6u0,1418
113
+ sky/dashboard/out/config.html,sha256=-EuRAnr8xDTjBy6fmYDce0BDnmmXhyQjA09HkwQq3xc,1414
114
114
  sky/dashboard/out/favicon.ico,sha256=XilUZZglAl_1zRsg85QsbQgmQAzGPQjcUIJ-A3AzYn8,93590
115
- sky/dashboard/out/index.html,sha256=QSY0mE7ByJF3hC37z7i9negvLxzc3EwpPMdrWgRrEws,1407
116
- sky/dashboard/out/infra.html,sha256=8o1UoCxuCnynLNKpsp1Rk3JWoKjOjXX5SnKIpbMhs_E,1412
117
- sky/dashboard/out/jobs.html,sha256=_6s45QfriRX-5Z0xl0Od6RuFgnhHvKZ5C5aOWBlcSjA,1410
115
+ sky/dashboard/out/index.html,sha256=zqBxJWLb1AxOznjRnBO1d7_H_gxhaDtq75C5ZlPI8P8,1407
116
+ sky/dashboard/out/infra.html,sha256=1zcQrK3TZ6uKVb-1bSlhSnvVeGrWEEEEJgFRD82n9uQ,1412
117
+ sky/dashboard/out/jobs.html,sha256=FHnt5J53N3Y0zkcAsAqejGG_ZMNhKhxbn0oo_nu_1z0,1410
118
118
  sky/dashboard/out/skypilot.svg,sha256=c0iRtlfLlaUm2p0rG9NFmo5FN0Qhf3pq5Xph-AeMPJw,5064
119
- sky/dashboard/out/users.html,sha256=h5SeQQ9blBy0zrzx06X0ak3QBZFhErAa_3wNkSYooNY,1412
120
- sky/dashboard/out/volumes.html,sha256=GalUyfFQtZFjbuH0YVPVG4fIPsfI9vGFLif2RmAVwFU,1416
121
- sky/dashboard/out/workspaces.html,sha256=lq2xB6KDDwa3Ba5TY5F_C1bxpCdo9Oq3srqkxbNhBRs,1422
122
- sky/dashboard/out/_next/static/NdypbqMxaYucRGfopkKXa/_buildManifest.js,sha256=AUBq9iFFkgyZiALTu2JdM3ypyEQ-Wfa_vECVEP0p3Zc,2235
123
- sky/dashboard/out/_next/static/NdypbqMxaYucRGfopkKXa/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
119
+ sky/dashboard/out/users.html,sha256=hPV_Ds1avur0T3aTExSTKPw-9FqE77kaOHB2rHfsyho,1412
120
+ sky/dashboard/out/volumes.html,sha256=hTKhfj3aZW_ejYDfnh0L4FKiJgf_IyovP-mG9FUUtBI,1416
121
+ sky/dashboard/out/workspaces.html,sha256=yOA8huFvBqfdODzzvuD5J4ZZL_kQX5JHP6RA-4IQn5Y,1422
122
+ sky/dashboard/out/_next/static/Md3rlE87jmL5uv7gSo8mR/_buildManifest.js,sha256=AUBq9iFFkgyZiALTu2JdM3ypyEQ-Wfa_vECVEP0p3Zc,2235
123
+ sky/dashboard/out/_next/static/Md3rlE87jmL5uv7gSo8mR/_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=GtE4CtLPv7SowWY7s3CIh2K1hEnSg02LvupuKOBLR3c,2847
178
- sky/dashboard/out/clusters/[cluster]/[job].html,sha256=Gt_A5y2DPGCtkdBysicDXDj05q7IxJ56LNbJZ3fpw1k,2160
179
- sky/dashboard/out/infra/[context].html,sha256=SbITumVDAw_TWeuMHGSCXUatMj2s6WHwAuBol5w2kug,1436
180
- sky/dashboard/out/jobs/[job].html,sha256=yu0klRpVWwpZrdvFl5NQ_0q6znz9d7bRWwhInBLvTBg,2304
177
+ sky/dashboard/out/clusters/[cluster].html,sha256=1SgSWlE8Zlgz36DjsoDSTXHLCCXabVK3hiMyiHCp0go,2847
178
+ sky/dashboard/out/clusters/[cluster]/[job].html,sha256=B3KAlHNVXs_w3DA7skM3wpGym9KOEBig4SH2G8c5a_g,2160
179
+ sky/dashboard/out/infra/[context].html,sha256=bjSWPRZqsrSfNnW9AEUjH2o1vxK8L-1gr-vlDlEWlIU,1436
180
+ sky/dashboard/out/jobs/[job].html,sha256=uq434sj_B9qiP3a2RfhrbTmP8LJuOIUdtsrkwGVN2K4,2304
181
181
  sky/dashboard/out/videos/cursor-small.mp4,sha256=8tRdp1vjawOrXUar1cfjOc-nkaKmcwCPZx_LO0XlCvQ,203285
182
- sky/dashboard/out/workspace/new.html,sha256=QRleG95yeljr7hwQuLPsFRiuQNOl01GyiOqN0OEO8R0,1428
183
- sky/dashboard/out/workspaces/[name].html,sha256=5SqK0War0p43B-D8PgBpFP1Tnh9rUt8IR5jEGle4E2I,2845
182
+ sky/dashboard/out/workspace/new.html,sha256=vFvjxf5LJuidZLZb2ISaL3Nt9W7p1YN9vlSGKZq3Amg,1428
183
+ sky/dashboard/out/workspaces/[name].html,sha256=LRYjKeeAflSeMm7oiulrN9uLHCwsr81usO_FBwN3U4M,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
@@ -189,15 +189,15 @@ 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
191
  sky/jobs/constants.py,sha256=5n6wcYVyOnllM39uJDQDv7hHILcdSwiyg_-tqMc7nJk,3305
192
- sky/jobs/controller.py,sha256=7QvYO1xsa3CgQavenP2N6fs66SHuMLA2QyFLOlqMyIs,35391
192
+ sky/jobs/controller.py,sha256=C-SrZ4MyNg30Rx-K7bpLf99V039QuW9m29_3vzVm8i0,35631
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=B8q6jf8GTPMREdu1MRPyIucEtZlxHcgGuTlAfPlDwAk,55675
196
- sky/jobs/utils.py,sha256=2BscuxGkEUL8yJt_T3urmtyxd-QvRQ1-xOvTPJSRNVA,71326
195
+ sky/jobs/state.py,sha256=HHERdEhuJ3QHMu5dvY2mHVJgtHzIkAI6F1Cv2Iz3Hvw,65516
196
+ sky/jobs/utils.py,sha256=gfW4smCWWMmE4OwIbEqI5j5gVh5Gvfs6paqKQR2Tia8,70920
197
197
  sky/jobs/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
198
198
  sky/jobs/client/sdk.py,sha256=0ZDm5h1kqPYXvsgiXBhbsXj9jfKW7GHH_VtQbSQjmCw,11068
199
199
  sky/jobs/server/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
200
- sky/jobs/server/core.py,sha256=CAiNesCc-JcUD76t0RS1a-mRFESWs8MoslSdU5Tj_K4,31640
200
+ sky/jobs/server/core.py,sha256=SioPzD6O0OO-_mg0vA-ND3d_4SPsMs5W9eStMtwfp_U,31405
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
@@ -319,12 +319,12 @@ sky/serve/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,
319
319
  sky/serve/server/core.py,sha256=zKvDnq6W9CftH5ljmNMdTDGsLO3mzbFgrMBMCSua4dM,41662
320
320
  sky/serve/server/server.py,sha256=A9K37a0nQgZeN3eKWv62Oh2C5TSAReTZ9pHmztqlI-c,4396
321
321
  sky/server/__init__.py,sha256=MPPBqFzXz6Jv5QSk6td_IcvnfXfNErDZVcizu4MLRow,27
322
- sky/server/common.py,sha256=nGPK1df6DEebJH-Y3FiJHnK97YkzB7UNx7YZ9KtTzoQ,35955
322
+ sky/server/common.py,sha256=LKZPf-jaNxIMCG_bFetFcq3g8xB4MSOBuUzjEB1xQEI,36028
323
323
  sky/server/config.py,sha256=XWf5Kw4am6vMO5wcyWevbQAFH-dmKb7AMEgDzD083-M,8538
324
324
  sky/server/constants.py,sha256=15r9CGX4yo62BeRLSfyrVaKd5fqeu_8GBS_JqyeXSfk,1431
325
325
  sky/server/metrics.py,sha256=aVRaSwpBVXE9dXIVd9bNsSigKM4bkqNq0eTpP0Noyo8,3657
326
326
  sky/server/rest.py,sha256=3xOQXsQ_r9XBcUOhQbf-Wk0UXx0XrAmzQ6JSqLr6nJ0,5430
327
- sky/server/server.py,sha256=Rj0Miy_poyS51G8wmdcWbeZE2VeTuQqsIiokkR1dWwU,66407
327
+ sky/server/server.py,sha256=C-JOBQ1cbu840ve06Onwt5VYSPAB57vyhJ96D1A5BxE,67590
328
328
  sky/server/state.py,sha256=YbVOMJ1JipQQv17gLIGyiGN7MKfnP83qlUa5MB1z0Yk,747
329
329
  sky/server/stream_utils.py,sha256=RS4RuMxQqTGqp3uxzZVtmFWzos4d49P7hMX_VklzEVU,9189
330
330
  sky/server/uvicorn.py,sha256=3mdSUbc8zHRYAbZZLkfPB6U9VXD_t2jDM1BMjpTx1Mo,9014
@@ -344,7 +344,7 @@ sky/server/requests/serializers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm
344
344
  sky/server/requests/serializers/decoders.py,sha256=qphN79pRAaaitCbcsZIrslphgZn1iYndl6JnmergEe4,6361
345
345
  sky/server/requests/serializers/encoders.py,sha256=4bQV5yTg8RTPT_HkRyQpjaBY_uUvBJ4NH189W0-6Pi0,5578
346
346
  sky/setup_files/MANIFEST.in,sha256=BzWGsYZz9fO40HN1Uxm1Ca4pn1FkKn3lcoY1B9-YRiA,644
347
- sky/setup_files/dependencies.py,sha256=oYbrcf3oB1RTzR06zvYEgv9jw5Jx6f2juWwE-itNhHc,7101
347
+ sky/setup_files/dependencies.py,sha256=OY4-KzEp2MObl4vTUUFD_UVXXb4IYFl51_O4iZny8Jg,7127
348
348
  sky/setup_files/setup.py,sha256=GTXvAi65S4_TSLhQ1GzkmaWf_yzciHiaxMbZumcTtKU,7522
349
349
  sky/skylet/LICENSE,sha256=BnFrJSvUFpMUoH5mOpWnEvaC5R6Uux8W6WXgrte8iYg,12381
350
350
  sky/skylet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -425,7 +425,7 @@ sky/utils/context.py,sha256=yEGvcKr9fKEeoAnNKiXDiky7dlLOChFdZYXGr0EeQ9g,9997
425
425
  sky/utils/context_utils.py,sha256=cby-QPmnGObjIE4K7eZ_dkWZdUo7YJUmnJr5oKf_v54,6712
426
426
  sky/utils/control_master_utils.py,sha256=iD4M0onjYOdZ2RuxjwMBl4KhafHXJzuHjvqlBUnu-VE,1450
427
427
  sky/utils/controller_utils.py,sha256=sl3KrjmU_0UvoNJVH-Aw9mfxdkHUe2Nkr8cwe7OA7H4,55366
428
- sky/utils/dag_utils.py,sha256=539bdesvxuh3i4NLthR46wKCWOz0kLAVedcm8D02n5Y,8354
428
+ sky/utils/dag_utils.py,sha256=lqzmSPgmNGmil_7pcVdyf4a4BSC2rMcTAIKazSX_3qk,8514
429
429
  sky/utils/db_utils.py,sha256=MlJN4dVUEcMkLMn5rYi1F-WnD9ap2oOoF9lDiqlL0h4,5243
430
430
  sky/utils/env_options.py,sha256=PaQGjem9nK4R8Y_YvCLkNZ891wWiS3t50hE8q2HLis0,1922
431
431
  sky/utils/infra_utils.py,sha256=WkkB4Hj6CX-3eV029fPYqydNVyFZ8ZwRAVA_GCLJ9QU,6981
@@ -476,9 +476,9 @@ sky/workspaces/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
476
476
  sky/workspaces/core.py,sha256=MkQoVqWN67tf4VRq284U9vgAw4lwb_cpUfwHQT4V9Ow,16598
477
477
  sky/workspaces/server.py,sha256=Box45DS54xXGHy7I3tGKGy-JP0a8G_z6IhfvGlEXtsA,3439
478
478
  sky/workspaces/utils.py,sha256=IIAiFoS6sdb2t0X5YoX9AietpTanZUQNTK8cePun-sY,2143
479
- skypilot_nightly-1.0.0.dev20250630.dist-info/licenses/LICENSE,sha256=emRJAvE7ngL6x0RhQvlns5wJzGI3NEQ_WMjNmd9TZc4,12170
480
- skypilot_nightly-1.0.0.dev20250630.dist-info/METADATA,sha256=VrvqOJAFXYqkzOxSj7RwfcaWGXG_aEF-5DLXahulPNU,18810
481
- skypilot_nightly-1.0.0.dev20250630.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
482
- skypilot_nightly-1.0.0.dev20250630.dist-info/entry_points.txt,sha256=StA6HYpuHj-Y61L2Ze-hK2IcLWgLZcML5gJu8cs6nU4,36
483
- skypilot_nightly-1.0.0.dev20250630.dist-info/top_level.txt,sha256=qA8QuiNNb6Y1OF-pCUtPEr6sLEwy2xJX06Bd_CrtrHY,4
484
- skypilot_nightly-1.0.0.dev20250630.dist-info/RECORD,,
479
+ skypilot_nightly-1.0.0.dev20250701.dist-info/licenses/LICENSE,sha256=emRJAvE7ngL6x0RhQvlns5wJzGI3NEQ_WMjNmd9TZc4,12170
480
+ skypilot_nightly-1.0.0.dev20250701.dist-info/METADATA,sha256=PWitj6oqOfvmSkruLvIhdnonMphHD7Jn_L82thZX_y8,18908
481
+ skypilot_nightly-1.0.0.dev20250701.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
482
+ skypilot_nightly-1.0.0.dev20250701.dist-info/entry_points.txt,sha256=StA6HYpuHj-Y61L2Ze-hK2IcLWgLZcML5gJu8cs6nU4,36
483
+ skypilot_nightly-1.0.0.dev20250701.dist-info/top_level.txt,sha256=qA8QuiNNb6Y1OF-pCUtPEr6sLEwy2xJX06Bd_CrtrHY,4
484
+ skypilot_nightly-1.0.0.dev20250701.dist-info/RECORD,,