dstack 0.19.23rc1__py3-none-any.whl → 0.19.25rc1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of dstack might be problematic. Click here for more details.

Files changed (60) hide show
  1. dstack/_internal/cli/commands/apply.py +14 -2
  2. dstack/_internal/cli/commands/init.py +47 -2
  3. dstack/_internal/cli/commands/offer.py +68 -60
  4. dstack/_internal/cli/services/configurators/run.py +38 -10
  5. dstack/_internal/cli/services/repos.py +6 -24
  6. dstack/_internal/cli/utils/common.py +7 -0
  7. dstack/_internal/cli/utils/gpu.py +210 -0
  8. dstack/_internal/cli/utils/run.py +33 -0
  9. dstack/_internal/core/backends/aws/compute.py +1 -4
  10. dstack/_internal/core/backends/base/compute.py +0 -4
  11. dstack/_internal/core/backends/gcp/compute.py +1 -4
  12. dstack/_internal/core/backends/nebius/compute.py +1 -4
  13. dstack/_internal/core/models/common.py +1 -1
  14. dstack/_internal/core/models/config.py +3 -1
  15. dstack/_internal/core/models/configurations.py +16 -14
  16. dstack/_internal/core/models/fleets.py +2 -2
  17. dstack/_internal/core/models/instances.py +4 -1
  18. dstack/_internal/core/models/profiles.py +2 -2
  19. dstack/_internal/core/models/repos/remote.py +2 -2
  20. dstack/_internal/core/models/resources.py +4 -4
  21. dstack/_internal/core/models/runs.py +13 -9
  22. dstack/_internal/core/services/configs/__init__.py +4 -6
  23. dstack/_internal/proxy/gateway/services/registry.py +2 -0
  24. dstack/_internal/server/app.py +2 -0
  25. dstack/_internal/server/background/tasks/process_fleets.py +10 -2
  26. dstack/_internal/server/background/tasks/process_running_jobs.py +66 -46
  27. dstack/_internal/server/background/tasks/process_runs.py +16 -15
  28. dstack/_internal/server/background/tasks/process_submitted_jobs.py +251 -52
  29. dstack/_internal/server/migrations/versions/3d7f6c2ec000_add_jobmodel_registered.py +28 -0
  30. dstack/_internal/server/migrations/versions/74a1f55209bd_store_enums_as_strings.py +484 -0
  31. dstack/_internal/server/migrations/versions/e2d08cd1b8d9_add_jobmodel_fleet.py +41 -0
  32. dstack/_internal/server/models.py +24 -13
  33. dstack/_internal/server/routers/gpus.py +29 -0
  34. dstack/_internal/server/schemas/gateways.py +1 -1
  35. dstack/_internal/server/schemas/gpus.py +66 -0
  36. dstack/_internal/server/services/docker.py +1 -1
  37. dstack/_internal/server/services/gpus.py +390 -0
  38. dstack/_internal/server/services/jobs/__init__.py +3 -1
  39. dstack/_internal/server/services/offers.py +48 -31
  40. dstack/_internal/server/services/probes.py +5 -1
  41. dstack/_internal/server/services/proxy/repo.py +1 -0
  42. dstack/_internal/server/services/repos.py +1 -1
  43. dstack/_internal/server/services/runs.py +15 -12
  44. dstack/_internal/server/services/secrets.py +1 -1
  45. dstack/_internal/server/services/services/__init__.py +60 -41
  46. dstack/_internal/server/statics/index.html +1 -1
  47. dstack/_internal/server/statics/logo-notext.svg +116 -0
  48. dstack/_internal/server/statics/{main-03e818b110e1d5705378.css → main-aec4762350e34d6fbff9.css} +1 -1
  49. dstack/_internal/server/statics/{main-cc067b7fd1a8f33f97da.js → main-d151b300fcac3933213d.js} +20 -23
  50. dstack/_internal/server/statics/{main-cc067b7fd1a8f33f97da.js.map → main-d151b300fcac3933213d.js.map} +1 -1
  51. dstack/_internal/server/testing/common.py +7 -2
  52. dstack/api/_public/repos.py +8 -7
  53. dstack/api/server/__init__.py +6 -0
  54. dstack/api/server/_gpus.py +22 -0
  55. dstack/version.py +1 -1
  56. {dstack-0.19.23rc1.dist-info → dstack-0.19.25rc1.dist-info}/METADATA +1 -1
  57. {dstack-0.19.23rc1.dist-info → dstack-0.19.25rc1.dist-info}/RECORD +60 -51
  58. {dstack-0.19.23rc1.dist-info → dstack-0.19.25rc1.dist-info}/WHEEL +0 -0
  59. {dstack-0.19.23rc1.dist-info → dstack-0.19.25rc1.dist-info}/entry_points.txt +0 -0
  60. {dstack-0.19.23rc1.dist-info → dstack-0.19.25rc1.dist-info}/licenses/LICENSE.md +0 -0
@@ -258,8 +258,8 @@ async def create_file_archive(
258
258
 
259
259
 
260
260
  def get_run_spec(
261
- run_name: str,
262
261
  repo_id: str,
262
+ run_name: str = "test-run",
263
263
  configuration_path: str = "dstack.yaml",
264
264
  profile: Union[Profile, Callable[[], Profile], None] = lambda: Profile(name="default"),
265
265
  configuration: Optional[AnyRunConfiguration] = None,
@@ -330,6 +330,7 @@ async def create_run(
330
330
  async def create_job(
331
331
  session: AsyncSession,
332
332
  run: RunModel,
333
+ fleet: Optional[FleetModel] = None,
333
334
  submission_num: int = 0,
334
335
  status: JobStatus = JobStatus.SUBMITTED,
335
336
  submitted_at: datetime = datetime(2023, 1, 2, 3, 4, tzinfo=timezone.utc),
@@ -343,6 +344,7 @@ async def create_job(
343
344
  deployment_num: Optional[int] = None,
344
345
  instance_assigned: bool = False,
345
346
  disconnected_at: Optional[datetime] = None,
347
+ registered: bool = False,
346
348
  ) -> JobModel:
347
349
  if deployment_num is None:
348
350
  deployment_num = run.deployment_num
@@ -353,6 +355,7 @@ async def create_job(
353
355
  job_spec.job_num = job_num
354
356
  job = JobModel(
355
357
  project_id=run.project_id,
358
+ fleet=fleet,
356
359
  run_id=run.id,
357
360
  run_name=run.run_name,
358
361
  job_num=job_num,
@@ -372,6 +375,7 @@ async def create_job(
372
375
  used_instance_id=instance.id if instance is not None else None,
373
376
  disconnected_at=disconnected_at,
374
377
  probes=[],
378
+ registered=registered,
375
379
  )
376
380
  session.add(job)
377
381
  await session.commit()
@@ -733,6 +737,7 @@ def get_instance_offer_with_availability(
733
737
  availability_zones: Optional[List[str]] = None,
734
738
  price: float = 1.0,
735
739
  instance_type: str = "instance",
740
+ availability: InstanceAvailability = InstanceAvailability.AVAILABLE,
736
741
  ):
737
742
  gpus = [
738
743
  Gpu(
@@ -756,7 +761,7 @@ def get_instance_offer_with_availability(
756
761
  ),
757
762
  region=region,
758
763
  price=price,
759
- availability=InstanceAvailability.AVAILABLE,
764
+ availability=availability,
760
765
  availability_zones=availability_zones,
761
766
  blocks=blocks,
762
767
  total_blocks=total_blocks,
@@ -112,27 +112,28 @@ class RepoCollection:
112
112
  " Run `dstack init` to initialize the current directory as a repo or specify `--repo`."
113
113
  )
114
114
  repo = load_repo(repo_config)
115
- try:
116
- self._api_client.repos.get(self._project, repo.repo_id, include_creds=False)
117
- except ResourceNotExistsError:
115
+ if not self.is_initialized(repo):
118
116
  raise ConfigurationError(
119
117
  "The repo is not initialized."
120
118
  " Run `dstack init` to initialize the current directory as a repo or specify `--repo`."
121
119
  )
122
120
  else:
123
121
  logger.debug("Initializing repo")
124
- repo = LocalRepo(repo_dir=repo_dir) # default
125
- if not local:
122
+ if local:
123
+ repo = LocalRepo(repo_dir=repo_dir)
124
+ else:
126
125
  try:
127
126
  repo = RemoteRepo.from_dir(repo_dir)
128
127
  except InvalidGitRepositoryError:
129
- pass # use default
128
+ raise ConfigurationError(
129
+ f"Git repo not found: {repo_dir}. Use `files` to mount an arbitrary"
130
+ " directory: https://dstack.ai/docs/concepts/tasks/#files"
131
+ )
130
132
  self.init(repo, git_identity_file, oauth_token)
131
133
  config.save_repo_config(
132
134
  repo.get_repo_dir_or_error(),
133
135
  repo.repo_id,
134
136
  RepoType(repo.run_repo_data.repo_type),
135
- get_ssh_keypair(None, config.dstack_key_path),
136
137
  )
137
138
  return repo
138
139
 
@@ -17,6 +17,7 @@ from dstack.api.server._backends import BackendsAPIClient
17
17
  from dstack.api.server._files import FilesAPIClient
18
18
  from dstack.api.server._fleets import FleetsAPIClient
19
19
  from dstack.api.server._gateways import GatewaysAPIClient
20
+ from dstack.api.server._gpus import GpusAPIClient
20
21
  from dstack.api.server._logs import LogsAPIClient
21
22
  from dstack.api.server._metrics import MetricsAPIClient
22
23
  from dstack.api.server._projects import ProjectsAPIClient
@@ -44,6 +45,7 @@ class APIClient:
44
45
  backends: operations with backends
45
46
  fleets: operations with fleets
46
47
  runs: operations with runs
48
+ gpus: operations with GPUs
47
49
  metrics: operations with metrics
48
50
  logs: operations with logs
49
51
  gateways: operations with gateways
@@ -93,6 +95,10 @@ class APIClient:
93
95
  def runs(self) -> RunsAPIClient:
94
96
  return RunsAPIClient(self._request)
95
97
 
98
+ @property
99
+ def gpus(self) -> GpusAPIClient:
100
+ return GpusAPIClient(self._request)
101
+
96
102
  @property
97
103
  def metrics(self) -> MetricsAPIClient:
98
104
  return MetricsAPIClient(self._request)
@@ -0,0 +1,22 @@
1
+ from typing import List, Optional
2
+
3
+ from pydantic import parse_obj_as
4
+
5
+ from dstack._internal.core.models.runs import RunSpec
6
+ from dstack._internal.server.schemas.gpus import GpuGroup, ListGpusRequest, ListGpusResponse
7
+ from dstack.api.server._group import APIClientGroup
8
+
9
+
10
+ class GpusAPIClient(APIClientGroup):
11
+ def list_gpus(
12
+ self,
13
+ project_name: str,
14
+ run_spec: RunSpec,
15
+ group_by: Optional[List[str]] = None,
16
+ ) -> List[GpuGroup]:
17
+ body = ListGpusRequest(run_spec=run_spec, group_by=group_by)
18
+ resp = self._request(
19
+ f"/api/project/{project_name}/gpus/list",
20
+ body=body.json(),
21
+ )
22
+ return parse_obj_as(ListGpusResponse, resp.json()).gpus
dstack/version.py CHANGED
@@ -1,4 +1,4 @@
1
- __version__ = "0.19.23rc1"
1
+ __version__ = "0.19.25rc1"
2
2
  __is_release__ = True
3
3
  base_image = "0.10"
4
4
  base_image_ubuntu_version = "22.04"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dstack
3
- Version: 0.19.23rc1
3
+ Version: 0.19.25rc1
4
4
  Summary: dstack is an open-source orchestration engine for running AI workloads on any cloud or on-premises.
5
5
  Project-URL: Homepage, https://dstack.ai
6
6
  Project-URL: Source, https://github.com/dstackai/dstack
@@ -1,22 +1,22 @@
1
1
  dstack/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- dstack/version.py,sha256=jL9BbKRLGqK7kARA-DE4jWDe8OMTz0JS4S5EtDB8BwA,105
2
+ dstack/version.py,sha256=qJlTs4AgCUq2YUKIW7SHqi7nHBmHdzwfOGnNcuQyiAo,105
3
3
  dstack/_internal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  dstack/_internal/compat.py,sha256=bF9U9fTMfL8UVhCouedoUSTYFl7UAOiU0WXrnRoByxw,40
5
5
  dstack/_internal/settings.py,sha256=FYtd7tRk17Oc62Kl_3O8NuT5JHb8TKhLThl1TsfjjVs,1390
6
6
  dstack/_internal/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
7
  dstack/_internal/cli/main.py,sha256=-T-TNnwkCaPLOo5gh_WJ8ZruSbBqfdNYWdQ9NbhxgcU,3901
8
8
  dstack/_internal/cli/commands/__init__.py,sha256=e8EjD8Ej7Q3_APlxAN7NBwY7dGnW-DR91nH_RgcjBXg,2023
9
- dstack/_internal/cli/commands/apply.py,sha256=r40TznKpxCekLixL4Bbx17TpTbnUh5jo20te76OPCbM,5183
9
+ dstack/_internal/cli/commands/apply.py,sha256=3tf0YJai0kiZdahlt0_6sQ-6yzpWGsed_OP8HHY7N_k,5646
10
10
  dstack/_internal/cli/commands/attach.py,sha256=AfB7ITXJ59fCzCUwdC6nNDsiAOkAQlLQQyxFxwHdtu8,5118
11
11
  dstack/_internal/cli/commands/completion.py,sha256=2gDBYNb9u1JtuvZaAzqEOy0_ZatBvwn0Aq10j138xnA,546
12
12
  dstack/_internal/cli/commands/config.py,sha256=cpNCVCklQDW4vcdD9ovtJs6bcDIM1dULOZ6PKx3D39o,3148
13
13
  dstack/_internal/cli/commands/delete.py,sha256=agFBwJg8JXy1xp1UplRFLEPbix1bKvt6XvSBKpSPwYI,1418
14
14
  dstack/_internal/cli/commands/fleet.py,sha256=J0Yi5CAYvIQF_NC4ZBsDYGc3grTOtvaF7sVcobd19Go,4028
15
15
  dstack/_internal/cli/commands/gateway.py,sha256=DcD6P_MvXbSL9aXkLX9hgGYSAzARjgY6RSbrCMzdNcg,6075
16
- dstack/_internal/cli/commands/init.py,sha256=bLhSlViNWtjflB6xNq_PuCR2o2A06h222luh1NeUgVA,1169
16
+ dstack/_internal/cli/commands/init.py,sha256=0goiNgTNWbChfAuILxobOiRVPLpTku6uds8salU-9io,3211
17
17
  dstack/_internal/cli/commands/logs.py,sha256=o8ehPAKM12Xn9thg2jjnYdr7_wKqF-00ziVry8IVVwE,1528
18
18
  dstack/_internal/cli/commands/metrics.py,sha256=ZS_dHD4_YK135J09xKpVTY_3CXzhj8QhDo18Ail9Pas,5862
19
- dstack/_internal/cli/commands/offer.py,sha256=6gem4Wz6WJmHur9-eiC65JwqObrGIAybROCAp5pr59k,4221
19
+ dstack/_internal/cli/commands/offer.py,sha256=Cb0816wWMe6-B0ejmnwbkUBp6a4hqf5K9Ap-eKC1JsQ,4751
20
20
  dstack/_internal/cli/commands/project.py,sha256=V8gJwQWQGvGKQJPUyce_M7Ij_B7bOxYzo2IQgkLLHFE,6151
21
21
  dstack/_internal/cli/commands/ps.py,sha256=5RU4mcL4-FT4PcXktfKb4htCOPqia7mIuVGgfK7x9lY,1894
22
22
  dstack/_internal/cli/commands/secrets.py,sha256=UfwxM3t-6PpuJLEvDxGrnyxv-tkDaS5M2gFPX1PgXxE,3082
@@ -28,19 +28,20 @@ dstack/_internal/cli/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5N
28
28
  dstack/_internal/cli/services/args.py,sha256=82rnGiYZfqMBIQh76bTXyvyXc85N_WDTTFppZJf8lic,755
29
29
  dstack/_internal/cli/services/completion.py,sha256=ro-XyE6xftdsY4uY-8eIv1tDtEJBQH_-bx9xg1sGDf4,3171
30
30
  dstack/_internal/cli/services/profile.py,sha256=c8qW5LWTxfkdRsGYqMG-lYefQjQ_OG-XvE_KmC4BZZA,5853
31
- dstack/_internal/cli/services/repos.py,sha256=ImJuElGjsR4OQ7dBquy4PCQUbBM4bR4vhyLwMrVBS7k,3307
31
+ dstack/_internal/cli/services/repos.py,sha256=J3xr4CSf70jPi8MGfw06ETKnbkZt6D6d0YRPUYJJF1c,2631
32
32
  dstack/_internal/cli/services/configurators/__init__.py,sha256=7nRXl8qTcqiHkJn1-p61G2bYm5MxFcHuMwDYF2DYU0U,2912
33
33
  dstack/_internal/cli/services/configurators/base.py,sha256=bGfde2zoma28lLE8MUACO4-NKT1CdJJQJoXrzjpz0mQ,3360
34
34
  dstack/_internal/cli/services/configurators/fleet.py,sha256=nAW3wvL6N2icHjM3Q4p3kJsirpF3Nc07WPrmoMcAQ6U,18998
35
35
  dstack/_internal/cli/services/configurators/gateway.py,sha256=yfT637T2k8cafM9DO4QLj30aCSVNvsL-uN42-cXqCDo,8952
36
- dstack/_internal/cli/services/configurators/run.py,sha256=W9Pz-Ofr1lCxeKnJRCwqbOoIA5q0ToWREfK-dCRJjSc,27469
36
+ dstack/_internal/cli/services/configurators/run.py,sha256=_VUljPEtwc5rSQSx4AWjw0H2xn8VrGr_KvGNnQVE_MY,29129
37
37
  dstack/_internal/cli/services/configurators/volume.py,sha256=W4Aecv5grw0hxYzoOjBrkxG5OeDn0NrcrC8ODUMfq-A,8544
38
38
  dstack/_internal/cli/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
- dstack/_internal/cli/utils/common.py,sha256=saq78R0dHNgiNY_liAMA3A9mFFTGqu-xDSAUCVU5BrM,3214
39
+ dstack/_internal/cli/utils/common.py,sha256=xgq2Rdx6wGS1NLx8FlmkjKrGaNYD428oeBB4VMjvJ5c,3447
40
40
  dstack/_internal/cli/utils/fleet.py,sha256=qgyZnhKSsdx4nWVnzcU30vhwV7dtrwn8C0yNKMQ1H4g,4044
41
41
  dstack/_internal/cli/utils/gateway.py,sha256=qMYa1NTAT_O98x2_mSyWDRbiHj5fqt6xUXFh9NIUwAM,1502
42
+ dstack/_internal/cli/utils/gpu.py,sha256=5LrOFo2bWSNZcyf_vCxhInT1AFYZLbPUvOqJgWP45vM,7688
42
43
  dstack/_internal/cli/utils/rich.py,sha256=Gx1MJU929kMKsbdo9qF7XHARNta2426Ssb-xMLVhwbQ,5710
43
- dstack/_internal/cli/utils/run.py,sha256=YbBVxJYfxVMQm6SPnUkI4tNsXR7tGGvuxtbBs2xCgFI,10654
44
+ dstack/_internal/cli/utils/run.py,sha256=-hZI0q09qnTeUFJF5zkJ4v3NLS2y2mCDrYHjplZs8RA,11789
44
45
  dstack/_internal/cli/utils/secrets.py,sha256=c7an9e8HwB24oiP1q225G1dhWcvCKw4aZtN0rN38_PE,654
45
46
  dstack/_internal/cli/utils/updates.py,sha256=pGr5keEmHojnbY0ayjWL4GWTz4ParY6fP85tHpJ11pI,3043
46
47
  dstack/_internal/cli/utils/volume.py,sha256=mU9I06dVMFbpjfkefxrZNoSWadKLoib3U14rHudNQN4,1975
@@ -54,7 +55,7 @@ dstack/_internal/core/backends/models.py,sha256=WwPVKXCmAXwr3VtyYM9p-HGrF02hk8JG
54
55
  dstack/_internal/core/backends/aws/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
55
56
  dstack/_internal/core/backends/aws/auth.py,sha256=BAe3HAedoAO42Fbv7YhpODKWlyil8M0PuRJsL-_u_kw,978
56
57
  dstack/_internal/core/backends/aws/backend.py,sha256=pjROH-S9pgrSMm-Eox_ocL7cTU6mIMRxvURq7Vi-2J8,876
57
- dstack/_internal/core/backends/aws/compute.py,sha256=j6a8lJwu3bVNzjNkSQ29Yu6w1WqWlNtcgT9kQQlRyNs,44300
58
+ dstack/_internal/core/backends/aws/compute.py,sha256=wtOPjJRRBbIc8JGvMDZL0kpnxEVpYtwI5ERUnpTyV-U,44203
58
59
  dstack/_internal/core/backends/aws/configurator.py,sha256=gGynfTQW89hUt7acAjVnZnRtCbzhno7l4baCKnBEuQI,7499
59
60
  dstack/_internal/core/backends/aws/models.py,sha256=EUCHXHmZnshe3rwI9UtjilwcUMu1Z7MO4Y4-nlZ_IcA,4404
60
61
  dstack/_internal/core/backends/aws/resources.py,sha256=ccvdQd2H1DuUupdzMtqf86nkrenYPBJb1k3VgHu5Gp4,23610
@@ -68,7 +69,7 @@ dstack/_internal/core/backends/azure/resources.py,sha256=cJWS2Yjxdg-XtjpdBxfVDZa
68
69
  dstack/_internal/core/backends/azure/utils.py,sha256=taHMJq6UHRzUXLUcO2P5VCKy3wJaye2bG-6QdkEPNdY,1741
69
70
  dstack/_internal/core/backends/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
70
71
  dstack/_internal/core/backends/base/backend.py,sha256=hdFMHED1RMV9GVfLSU0yGhGE-cXlbLvt1coDA885PMM,505
71
- dstack/_internal/core/backends/base/compute.py,sha256=uJijJFRX_37-UlS0DWRGx-jZ3JxQ6jkN1I_5YWUfksE,29583
72
+ dstack/_internal/core/backends/base/compute.py,sha256=FgBD8WAeBXvRdlD57YyqrwFh_ZwgXDCCE8I0goMnUzA,29369
72
73
  dstack/_internal/core/backends/base/configurator.py,sha256=OCv8N2oxcxy3In2zS1PKiCJ0a-COZwxGjBz2FYkQnfg,3807
73
74
  dstack/_internal/core/backends/base/models.py,sha256=Ij0osOl-T-ABsKLoVg2eY81DMkwdWkevAnjXj2QnLXI,532
74
75
  dstack/_internal/core/backends/base/offers.py,sha256=2BARohq0sJk0a9K0Z4OuIbpIQNSSq8ZTzAnO8pCxO4M,6228
@@ -94,7 +95,7 @@ dstack/_internal/core/backends/dstack/models.py,sha256=Jbe0Syez43N5i97TlIc8l-5Vn
94
95
  dstack/_internal/core/backends/gcp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
95
96
  dstack/_internal/core/backends/gcp/auth.py,sha256=VWCn34hapaZ3E0OHCoiAVL97o3s64RF9w85CZ6xdtmk,2235
96
97
  dstack/_internal/core/backends/gcp/backend.py,sha256=OvTv1c7j4LTPCIEtkwD3-q6Eo1QET8xlM8CzbY0hLmI,572
97
- dstack/_internal/core/backends/gcp/compute.py,sha256=csmOXa13Rb3zBOjOHPyUU3lSRGWw6LeEKwtm29YKEog,42448
98
+ dstack/_internal/core/backends/gcp/compute.py,sha256=q8X7EzXgd6ZgU5WK7Yukbdv5Qd8OCI3Sw0u685SKV3M,42351
98
99
  dstack/_internal/core/backends/gcp/configurator.py,sha256=mvI7WMz8cC1YnN-0KFIIEqkfcEBehRJI0WgKnqILjv0,6730
99
100
  dstack/_internal/core/backends/gcp/models.py,sha256=biLA3rlFcoPatAZpKycuIl-8PdnNSAFiDCJjov65_zo,4612
100
101
  dstack/_internal/core/backends/gcp/resources.py,sha256=2jpg24NH4Ov4J4Of1F3DPkwEWkRxEi-x4ZTx8XSNGIQ,16926
@@ -123,7 +124,7 @@ dstack/_internal/core/backends/local/backend.py,sha256=KJuNXUXrg60NhLywnExD1EXH2
123
124
  dstack/_internal/core/backends/local/compute.py,sha256=-FUD8Ii5VTBtygAV1U3k1j10MFdK1whGvrSeRwTk29Y,3788
124
125
  dstack/_internal/core/backends/nebius/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
125
126
  dstack/_internal/core/backends/nebius/backend.py,sha256=2XqZIbSR8VzlfOnuVklXlDxNmwAkQj7txQN8VXF1j2E,566
126
- dstack/_internal/core/backends/nebius/compute.py,sha256=87etdeEaFjfOITJnPjvf0KYD8IrvNTdYRefwhxWYxZA,14951
127
+ dstack/_internal/core/backends/nebius/compute.py,sha256=xu0Big6akcLihvFvF234i6BYFtDWVgtNwW547INgKVM,14847
127
128
  dstack/_internal/core/backends/nebius/configurator.py,sha256=ML2KCD6Ddxc2f6X1juxqKulUcOjF6uJk20_0Teyi65A,3072
128
129
  dstack/_internal/core/backends/nebius/fabrics.py,sha256=-X-nSPV2pUin2PAYDHGm-j14KPboIFRpLi93PKHUXTM,1616
129
130
  dstack/_internal/core/backends/nebius/models.py,sha256=UudYX32p-ZY-GWR83VEtY5dpZBaWhKXQIfn2nrBCq-4,4245
@@ -173,22 +174,22 @@ dstack/_internal/core/compatibility/logs.py,sha256=keXt3OFKR0CjD_XMsetzRu8yQGCz7
173
174
  dstack/_internal/core/compatibility/runs.py,sha256=i3KiW6BRz6qeWUojMgZjVoyFwqX-TNFNim5aCGNIjac,8368
174
175
  dstack/_internal/core/compatibility/volumes.py,sha256=ofjpVusuc-pq285bGrIh8PAqu0QlAd6NQgU3gfJQIc0,1546
175
176
  dstack/_internal/core/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
176
- dstack/_internal/core/models/common.py,sha256=RI03rSaxhSigIpqtWDeBZ9_yX6R0-6_wC1bMGqYsTZE,3855
177
- dstack/_internal/core/models/config.py,sha256=JJ7rT7dztzTWCY5TkoyxXxTvG5D4IFYhGe7EzwkLOWQ,581
178
- dstack/_internal/core/models/configurations.py,sha256=DdKRCvFkozwMg26DkS59KQuPyUc9L2yvi_uo9l4ETxk,25330
177
+ dstack/_internal/core/models/common.py,sha256=shjHcamBZ7ivJTLuHUxsL95nv4iT-mCC0tnEk10EHm4,3873
178
+ dstack/_internal/core/models/config.py,sha256=VYfgyWG2kfGhJxkC48vZDCbHahIEnO05mDDagJ5kA6s,787
179
+ dstack/_internal/core/models/configurations.py,sha256=wybEwhesaGbuO3LkLgTRbJzlvNghfrnA9-UFghciW5M,25305
179
180
  dstack/_internal/core/models/envs.py,sha256=yq84YRFBILOy4x3XnGcTgYpbZ69eFTCQPgBCr9Ndov4,4969
180
181
  dstack/_internal/core/models/files.py,sha256=j6hVyOxSXQJTpoz6zh6KXHIs4w4tunCsgQuFMN_m13A,1988
181
- dstack/_internal/core/models/fleets.py,sha256=-zMty_njiIT0dgr89h55Yyb90ONU3YKvszrF48SiEcA,12361
182
+ dstack/_internal/core/models/fleets.py,sha256=XZL5PMt7T9rqPmBwOYWK_XlCEurx6uFR_0kj_ZM2GSI,12397
182
183
  dstack/_internal/core/models/gateways.py,sha256=_O8EWwHWLdgNoWY4P4u71KM-uEr5DDp42LXfyv1qMDI,4054
183
184
  dstack/_internal/core/models/health.py,sha256=Q0Z5pYbW-rD5wLn3-EDre2Q7X6tX7DFaglKz5SDv18U,570
184
- dstack/_internal/core/models/instances.py,sha256=brjaMIQ6eZsPD7m8DlFVzw-rHMURY-IVSloBt1KtGLU,6758
185
+ dstack/_internal/core/models/instances.py,sha256=cILMmY-NaHz3Hnl5pm0BQyAq4LXDe7fYHqLENa0dOGI,6895
185
186
  dstack/_internal/core/models/logs.py,sha256=VOsgEsvUIRNNHivD6OZnPZNC52ioqafv7ccdnFQ1YI8,529
186
187
  dstack/_internal/core/models/metrics.py,sha256=Xb8hCXUL-ncQ3PMsErIUAJTe9gwh5jyrQ4UQoZbibsc,269
187
188
  dstack/_internal/core/models/placement.py,sha256=WJVq5ENJykyRarQzL2EeYQag_9_jV7VSAtR_xoFvPVM,720
188
- dstack/_internal/core/models/profiles.py,sha256=M9PXPaqQsOSOy32OHWwmWUwpdHR-8Ue9tEPJRSdLjKM,12866
189
+ dstack/_internal/core/models/profiles.py,sha256=LeT5TlYIPNvZQZHL4zKJRJrBvntm4Nve9Lek5b038tI,12902
189
190
  dstack/_internal/core/models/projects.py,sha256=HmmlrvUSSEjfGfX7X5tmGJ-CbKeyGK6shHD5OghDNks,671
190
- dstack/_internal/core/models/resources.py,sha256=mUqFwLazN2fUHV3ZOoi1_ZtmtjNUsIqmXYjviM_BERU,14370
191
- dstack/_internal/core/models/runs.py,sha256=mfCPJGRiRlnmdJ8Mc_8Pm2UmFip0SDtGSGrL45-34Kw,21453
191
+ dstack/_internal/core/models/resources.py,sha256=Bq0VbOew_L6kcYtjE84vbgoIJD7_fs0UkGlc3ECHhME,14442
192
+ dstack/_internal/core/models/runs.py,sha256=pSudui6_Rdmx_W-83ynNdpe8zO6vlYN57dCn_-fIxtg,21774
192
193
  dstack/_internal/core/models/secrets.py,sha256=5T4B4eCeZmVQ8t22qYYlm4NUyX7VloiXCJuyDfE92QA,413
193
194
  dstack/_internal/core/models/server.py,sha256=Hkc1v2s3KOiwslsWVmhUOAzcSeREoG-HD1SzSX9WUGg,152
194
195
  dstack/_internal/core/models/services.py,sha256=2Hpi7j0Q1shaf_0wd0C0044AJAmuYi-D3qx3PH849oI,3076
@@ -200,7 +201,7 @@ dstack/_internal/core/models/backends/base.py,sha256=9mD2lgMMo9s1EAAcvfLo7x6RKuq
200
201
  dstack/_internal/core/models/repos/__init__.py,sha256=7Qo1QgJ852LklUuM-mlCNFodp_XrQ4iqV7uRPiX_qm0,885
201
202
  dstack/_internal/core/models/repos/base.py,sha256=nErlSR3AbG9fwDE5vuJK5DIrP8JB3fG8a7mXqosJ9gY,846
202
203
  dstack/_internal/core/models/repos/local.py,sha256=zKnEOyN7hSDQ7EKn8q9aJ3uikiTTtGdGEN_3896HTTc,2913
203
- dstack/_internal/core/models/repos/remote.py,sha256=r50v39KHhoVMfdnIHe58VJEi2Abm-37Y1ttXigdjc9o,11553
204
+ dstack/_internal/core/models/repos/remote.py,sha256=KzzfOJLtuaZZxvNpFj4axDdJGUTKdzE6ZjbmqOUZQfk,11592
204
205
  dstack/_internal/core/models/repos/virtual.py,sha256=8g4hGSQ6Z8oDKoF6cj2souJ2A5vRop5OyFCQ5z84rw4,2582
205
206
  dstack/_internal/core/services/__init__.py,sha256=UVVcj26WYVgo7jHzD07sNRqSOO7zA3QzQv-9LnCDqR4,415
206
207
  dstack/_internal/core/services/api_client.py,sha256=HTQ0fcZciUh-nmfV09hUt__Z4N2zq_R12xAiYXD0Jy0,650
@@ -208,7 +209,7 @@ dstack/_internal/core/services/diff.py,sha256=xtJzlSLIw9pnECpMQTy-a2zcfnSd4Q9qi_
208
209
  dstack/_internal/core/services/logs.py,sha256=7_eJdH4MD-3rVb4A6rIJfjj_p4jzUOCmjRVlPD-UDsg,2166
209
210
  dstack/_internal/core/services/profiles.py,sha256=JfzujgdM7Z_ABPgh2km2byy-Y9xZsdgmAZIKZl2LU2Q,1622
210
211
  dstack/_internal/core/services/repos.py,sha256=j8Jr1AyTBLXTY3UKMJNnpJEU3xvH1DHnxA7YeBRpZ44,5133
211
- dstack/_internal/core/services/configs/__init__.py,sha256=hBFfU1IhkFJ7HZU9JgzBys8i1l_YM-iEKt0JqYd1YiE,5580
212
+ dstack/_internal/core/services/configs/__init__.py,sha256=bqPEKPP7rCUQigx50YkHGO9kkJ2Iw9zsPPPllft9r6Q,5513
212
213
  dstack/_internal/core/services/ssh/__init__.py,sha256=UhgC3Lv3CPSGqSPEQZIKOfLKUlCFnaB0uqPQhfKCFt0,878
213
214
  dstack/_internal/core/services/ssh/attach.py,sha256=6YZ_HaimKrjdLzcDLksGi0_9rlVyLeBgPmmWHC7dYxo,9096
214
215
  dstack/_internal/core/services/ssh/client.py,sha256=FUg74jNOagYR3OKuWMBwNgJWIDwHfYrIMSER8xn92D8,4102
@@ -240,7 +241,7 @@ dstack/_internal/proxy/gateway/schemas/registry.py,sha256=Jpzz86TURuUs4g1vJD16L2
240
241
  dstack/_internal/proxy/gateway/schemas/stats.py,sha256=ZbdbnujlrS0D48ymP8Fxxd7_UeDV36ok0n_Hi1Z6vfQ,275
241
242
  dstack/_internal/proxy/gateway/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
242
243
  dstack/_internal/proxy/gateway/services/nginx.py,sha256=tGvs0Ci1X0aO8HjaflCgkxEXop0Z7o6euw7ADfCUOro,6149
243
- dstack/_internal/proxy/gateway/services/registry.py,sha256=Gqyri5PaJW79iRYufawS09XHO_q7a1Re3tx2dGjBTfQ,13580
244
+ dstack/_internal/proxy/gateway/services/registry.py,sha256=PUNef-A5AmJirvp0CZaVUjtXzrx-z0k73vMeudn-oMU,13750
244
245
  dstack/_internal/proxy/gateway/services/server_client.py,sha256=KSnpO8iPm5wxQPU0DcW7kqUzwliaQrb3b0K8Jmk8iA0,3630
245
246
  dstack/_internal/proxy/gateway/services/stats.py,sha256=F1LI34oXk_vF3VkWqpRnf_aO2ykECv6_WmBlZVa2jU8,5945
246
247
  dstack/_internal/proxy/gateway/testing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -268,16 +269,16 @@ dstack/_internal/proxy/lib/testing/auth.py,sha256=-firWTnis9Eogoi58BURv1S-te4Hf9
268
269
  dstack/_internal/proxy/lib/testing/common.py,sha256=5e2VYboMqjBnUxkvidaWLoQ-uaBGh_hnURb_VJc38q4,1518
269
270
  dstack/_internal/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
270
271
  dstack/_internal/server/alembic.ini,sha256=rTauBJC8Jxlw76KUygW061OFAGV7GhwAStinlaxoYGY,3166
271
- dstack/_internal/server/app.py,sha256=-6ZMmZJK7f9CsziXHM18ySLAIprEHu-f23OVktykZnc,15052
272
+ dstack/_internal/server/app.py,sha256=bTwLlgaGiKIdhtvJ6cCOefoFqRywEm1zDA3xB5vFLTI,15106
272
273
  dstack/_internal/server/db.py,sha256=WjuqmjG3QAZmSMCeUaJ_ynbowlHuNAvYCZO649cTPHc,3210
273
274
  dstack/_internal/server/deps.py,sha256=31e8SU_ogPJWHIDLkgl7cuC_5V91xbJoLyAj17VanfM,670
274
275
  dstack/_internal/server/main.py,sha256=kztKhCYNoHSDyJJQScWfZXE0naNleJOCQULW6dd8SGw,109
275
- dstack/_internal/server/models.py,sha256=nlmTBzeL7xG1IcLN7ROyIIB2uzRRfHm7SdNUs9PW-mQ,33183
276
+ dstack/_internal/server/models.py,sha256=AvE85LoIxQKHd7TNjiSaAsfX-u2778Dd6xlJeQSAZ8U,33902
276
277
  dstack/_internal/server/settings.py,sha256=0gW2TDzRgkpKXrXoljhCT2iOfpjegNzVUAxd6fZjg-k,5784
277
278
  dstack/_internal/server/background/__init__.py,sha256=QftEjgQZffu83sY-F0WL65vRp28FbBEtezfowQYcTv4,5606
278
279
  dstack/_internal/server/background/tasks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
279
280
  dstack/_internal/server/background/tasks/common.py,sha256=N7xSXbf2MoBWgbJ1e3AEzYBTf1Gn-pDXYND8Zr_YCJQ,970
280
- dstack/_internal/server/background/tasks/process_fleets.py,sha256=PInDWAcD7c-tSXGb4WzOBmJM4TIoD3Xy6C84kj6p1Zk,3703
281
+ dstack/_internal/server/background/tasks/process_fleets.py,sha256=ufuCGbLXlmYqtNCUSHvu5-mUrDYmxC61zM2dUUWzqjE,3945
281
282
  dstack/_internal/server/background/tasks/process_gateways.py,sha256=Ee8uGE4rKPP7U0I9OpgvIRfO3sNkpp_tdFW0Gh4XYdE,8259
282
283
  dstack/_internal/server/background/tasks/process_idle_volumes.py,sha256=mqnl8wvWaKTYvJMbgFJbOP-bZMRQG2vrhUnaNcyBldE,5223
283
284
  dstack/_internal/server/background/tasks/process_instances.py,sha256=ONcv5iNFW17TFKvcDD5FiQyVwlrQ4MWr1qGR_7whLyQ,45879
@@ -285,9 +286,9 @@ dstack/_internal/server/background/tasks/process_metrics.py,sha256=yKXe9J7m3oleK
285
286
  dstack/_internal/server/background/tasks/process_placement_groups.py,sha256=lgYIzjHG9EITK31yG6uQjlIcSwW5jsP9ZOBBZqW_eNs,4263
286
287
  dstack/_internal/server/background/tasks/process_probes.py,sha256=Mdly2wMKBrMIjlgvr7Dwr8Alc0lmVVm1VUKQo8-xgFw,6454
287
288
  dstack/_internal/server/background/tasks/process_prometheus_metrics.py,sha256=_UZm37FVV4rhdd0So7HtcKbIgrSdAr5Vx-Uen_xizec,5459
288
- dstack/_internal/server/background/tasks/process_running_jobs.py,sha256=rZq1TuG0UNk-iUOPUdC9zLtxompWcAhftlj597NqtDQ,44271
289
- dstack/_internal/server/background/tasks/process_runs.py,sha256=WWfFyEipQZJESTDbHil77pxxelb4FREUK-TkkhMUnTI,24700
290
- dstack/_internal/server/background/tasks/process_submitted_jobs.py,sha256=9jIB7yMC211yhQLFVtlmw__jGjb7w-7X1fZZ2wa4f4U,28913
289
+ dstack/_internal/server/background/tasks/process_running_jobs.py,sha256=il8OEpEtHQMw-5L3Q087XqmF4QPYO4Tl0Z7sfywiJns,44707
290
+ dstack/_internal/server/background/tasks/process_runs.py,sha256=afB2PJt6D0L8OpZEzXv0mqg92qz5PRp-iq8u8tYJ_TQ,24942
291
+ dstack/_internal/server/background/tasks/process_submitted_jobs.py,sha256=RFctBR6v8AP99UGEwKSRAsJrS9d0I5oFu1nQ8CM_Aw0,36841
291
292
  dstack/_internal/server/background/tasks/process_terminating_jobs.py,sha256=4civvAaLPT1R-PopVNkcTNnbn_Na7fIhFL8szYqLHUg,4074
292
293
  dstack/_internal/server/background/tasks/process_volumes.py,sha256=7qNGX3yRoVmx2zUwJ9iTU124lGGBjKL3E8aEwKFX9eg,5208
293
294
  dstack/_internal/server/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -311,6 +312,7 @@ dstack/_internal/server/migrations/versions/29c08c6a8cb3_.py,sha256=GjSwd3Q7oiVX
311
312
  dstack/_internal/server/migrations/versions/35e90e1b0d3e_add_rolling_deployment_fields.py,sha256=xZL_mOJ5uEWJeJcR1RYBXcOmWZsB4dbTu7bcS6lyH8Y,1559
312
313
  dstack/_internal/server/migrations/versions/35f732ee4cf5_add_projectmodel_is_public.py,sha256=RJvjqV8c-xhz4j5l0CnJdvY69WI5iFK_OFSo9fOn7DQ,1227
313
314
  dstack/_internal/server/migrations/versions/3cf77fb8bcf1_store_repo_clone_url.py,sha256=xLeKpAecepsy_3uszFP6ViDsHRRYmFK-qICKFIGr11s,2494
315
+ dstack/_internal/server/migrations/versions/3d7f6c2ec000_add_jobmodel_registered.py,sha256=z57mNUepVtjzlIKNHxIWbFfPn4-Cb2jouiEMoSkxEKM,662
314
316
  dstack/_internal/server/migrations/versions/3dbdce90d0e0_fix_code_uq_constraint.py,sha256=lmQH-X2zhVIFt39jiYwBfNOpo5y0kH07PqHJUG88fNA,995
315
317
  dstack/_internal/server/migrations/versions/48ad3ecbaea2_do_not_delete_projects_and_runs.py,sha256=FaVmRi9ocsygGEf5j2XDPaYbdgGl98ykycpFul1GdMw,1453
316
318
  dstack/_internal/server/migrations/versions/4ae1a5b0e7f1_add_run_list_index.py,sha256=qpzzdCpETXGCVCyhMDFoUviPBFrz585Kg5znYTffha8,862
@@ -330,6 +332,7 @@ dstack/_internal/server/migrations/versions/686fb8341ea5_add_user_emails.py,sha2
330
332
  dstack/_internal/server/migrations/versions/6c1a9d6530ee_add_jobmodel_exit_status.py,sha256=aYZIGWhM38hZ6SkrUsFESOmOIVhSAIbA9dbyFKsLUr8,615
331
333
  dstack/_internal/server/migrations/versions/710e5b3fac8f_add_encryption.py,sha256=nBURp4A6TpT13H1ccH4WyzkU2GGy3uDGKCNG88cAciw,1827
332
334
  dstack/_internal/server/migrations/versions/728b1488b1b4_add_instance_health.py,sha256=sAu5WXzTo9t9CHpHZ9RkbmOzkBmae5n3OSM8EGN7mR0,1709
335
+ dstack/_internal/server/migrations/versions/74a1f55209bd_store_enums_as_strings.py,sha256=CFhxzF0w1g8J5JnTqgV23m-E5-sTz9Aba_vr0nqX8yo,15791
333
336
  dstack/_internal/server/migrations/versions/7b24b1c8eba7_add_instancemodel_last_processed_at.py,sha256=o1A8nzrmMFcivBzaIMemCtRfCZ9mq1IuBko1CJXoVOo,2124
334
337
  dstack/_internal/server/migrations/versions/7ba3b59d7ca6_add_runmodel_resubmission_attempt.py,sha256=FUvCRzOzkp8HjRYy0-kuOwvBGbwuCgyjXU7hD-AWRJs,1045
335
338
  dstack/_internal/server/migrations/versions/7bc2586e8b9e_make_instancemodel_pool_id_optional.py,sha256=ch6yqwMldIiA7hlQbU5TGjzMbLpRyhiAcXqfUHlj-EI,980
@@ -363,6 +366,7 @@ dstack/_internal/server/migrations/versions/d5863798bf41_add_volumemodel_last_jo
363
366
  dstack/_internal/server/migrations/versions/d6b11105f659_add_usermodel_active.py,sha256=SK6CKeSBa7k9kibLbo4fOvaJ7rpTn44XIRunjfDoHFA,991
364
367
  dstack/_internal/server/migrations/versions/da574e93fee0_add_jobmodel_volumes_detached_at.py,sha256=mApwpPjCmRfNl68JbpPBXfUqpjDqgIVch8i4fy_789M,1001
365
368
  dstack/_internal/server/migrations/versions/dfffd6a1165c_add_fields_for_gateways_behind_alb.py,sha256=l7gsJ5gRZ04XfIuKQiqGr_cgBFdCf64JxBMfi0XmjlU,1110
369
+ dstack/_internal/server/migrations/versions/e2d08cd1b8d9_add_jobmodel_fleet.py,sha256=mhWJRWLzGoeT5bVGNoQ3GiQQXNa-llWb_jHvjZDAd7M,1142
366
370
  dstack/_internal/server/migrations/versions/e3b7db07727f_add_gatewaycomputemodel_app_updated_at.py,sha256=XAhYoza5xvG6ALFtNJn2H0LK8MMTDoAAV40U0opm1bg,1860
367
371
  dstack/_internal/server/migrations/versions/e6391ca6a264_separate_gateways_from_compute.py,sha256=efWiMgcv9LCrimVC52dvA_sH1nfxtNm5Ywadr_pbW7s,2612
368
372
  dstack/_internal/server/migrations/versions/ea60480f82bb_add_membermodel_member_num.py,sha256=jdUjThL8ELQAiFtODts2pxjo62fn3WEd8w50jp7-e44,825
@@ -375,6 +379,7 @@ dstack/_internal/server/routers/backends.py,sha256=MgAZJV7QezgmoB0UqnEJIUrqYWqOF
375
379
  dstack/_internal/server/routers/files.py,sha256=80FZbrazKYJEPRPQs6ZzRSu6aCG4nB4ERxWaE1Rwid0,2539
376
380
  dstack/_internal/server/routers/fleets.py,sha256=wO8DZdThjY38Sxpb0EyORqKlP0Xp57IotiyuHDIVa_s,5946
377
381
  dstack/_internal/server/routers/gateways.py,sha256=ZZ77Qjv4sHVfsu63RLWf4mKRRSrdJV4l8Bf8fRdnLsI,3471
382
+ dstack/_internal/server/routers/gpus.py,sha256=Jgi3P-8yXN9kbodIPPSSVwv46DZFkxqUeJWhG89f5w8,1144
378
383
  dstack/_internal/server/routers/instances.py,sha256=VwhQ7vANbcluhgq10pPxm2RcR1OlDqUX6rP_OAZ20xU,2710
379
384
  dstack/_internal/server/routers/logs.py,sha256=qvlS_8fqyJe-vOEt420xYj4nc9eMb9ngzclmSiXk7Zs,1233
380
385
  dstack/_internal/server/routers/metrics.py,sha256=iXLbcJuwdi5F-lfkPhl9RzvC2m8FSp1EqaOwa-rb6YY,2426
@@ -391,7 +396,8 @@ dstack/_internal/server/schemas/backends.py,sha256=KC6ZunAW71OCEIE_LnPO-wScJKVFX
391
396
  dstack/_internal/server/schemas/common.py,sha256=FCt3EwntxkykIK8ykKATmJM_gq3X3js-f8Z5tYqdQqA,230
392
397
  dstack/_internal/server/schemas/files.py,sha256=3SW-aMv5eAL5Fs_N3isCSPc6xgjOkRQnA-Nf5UAplFE,120
393
398
  dstack/_internal/server/schemas/fleets.py,sha256=9JcKe8VQM6p705lsgrp0xO08aTC32R88BJah7vZ-LgM,1101
394
- dstack/_internal/server/schemas/gateways.py,sha256=wrLQgSFkpxf-pijeyl2UjR8SpQXVshal6pW8wZf73Yk,1142
399
+ dstack/_internal/server/schemas/gateways.py,sha256=JFKIoC937THftILhpIR-4k_qtflsQcRPlO4OH2v0P6g,1160
400
+ dstack/_internal/server/schemas/gpus.py,sha256=z3Oa5w0KBdTy2gvDIelfnrFz-iZq7qygzK62EKyw2xc,1872
395
401
  dstack/_internal/server/schemas/instances.py,sha256=PQZ34rtCn2AVaoCuTcHOjENSbzVuVbucRPpDdNKoixA,1470
396
402
  dstack/_internal/server/schemas/logs.py,sha256=I4KaPgXiaYLWtovBchUiqK0wk-b7py-yTHKzhPH8tYc,453
397
403
  dstack/_internal/server/schemas/projects.py,sha256=sXm9KMecLYaLemE4rPr8MzvlkHvpwzawmL5GNB87wuY,804
@@ -407,23 +413,24 @@ dstack/_internal/server/security/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRk
407
413
  dstack/_internal/server/security/permissions.py,sha256=7lWM9jiNt-6cMms6t5g9Fn0H3B3-MEJ7gDCtL7xZ9Lg,8187
408
414
  dstack/_internal/server/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
409
415
  dstack/_internal/server/services/config.py,sha256=yo8njslwfS7_blhbPPhOtzCMyg8N_mmFSw5aPvirSzw,10691
410
- dstack/_internal/server/services/docker.py,sha256=zAvjFHxIP03Td92NzbGEScz0piLjloE60tQ7vz0AeCA,5328
416
+ dstack/_internal/server/services/docker.py,sha256=FGMf3kE89VZqOfQlz8U625y54T9V134f-LkEQpsfe34,5346
411
417
  dstack/_internal/server/services/files.py,sha256=LJYFRtIJwB-QL-FhIu1408oqVVfa2lPZZlaTuZMo6pw,2847
412
418
  dstack/_internal/server/services/fleets.py,sha256=ugbITHV_KRkFBFKkRIaaRDUcKFzTYEYmtrZsmoa64b8,37146
419
+ dstack/_internal/server/services/gpus.py,sha256=p_PYvzkoeRRKYU7LK7DuYmqzt1dH3MQKKbIOesj3Sh4,14476
413
420
  dstack/_internal/server/services/instances.py,sha256=BPSGMqhlSkP0V9mpRo0ODcZhTPqUmvPdHt-CeECYDsE,22456
414
421
  dstack/_internal/server/services/locking.py,sha256=4y_k8U7X71_lExdaXDSSEfizhfydBXOZKe64zo-1DX8,5224
415
422
  dstack/_internal/server/services/logging.py,sha256=owCEHZ2sdMDtEf7QyV1IgLSRgxCc6rdoXUdrDrwWRPU,661
416
423
  dstack/_internal/server/services/metrics.py,sha256=jKLy1jSCVR_crqVu_CmsOMbvMkucWBandI0SS1LDeRQ,6896
417
- dstack/_internal/server/services/offers.py,sha256=ACfTGW6Nx7RoUwJObsSH22lI_BDDi2ux55PXWZN6els,7746
424
+ dstack/_internal/server/services/offers.py,sha256=ZQ396DZQreNCTa87UffP5xRncQvB7wMZZkWlXNqUnJ8,8238
418
425
  dstack/_internal/server/services/permissions.py,sha256=l7Ngdelmn65vjw13NcOdaC6lBYMRuSw6FbHzYwdK3nE,1005
419
426
  dstack/_internal/server/services/placement.py,sha256=U-7z4kJ6ZyrCXzkDychWoOhniz19ooFwiNI2InoTLls,2420
420
427
  dstack/_internal/server/services/plugins.py,sha256=KgBqBUqxjQirRcYNuXVetE4OQj0EPkdC7ccbrNV1WQE,3825
421
- dstack/_internal/server/services/probes.py,sha256=c--HE7M1lq1L57q-rVNKvql1C2-VFreWixFCJCXxhuE,228
428
+ dstack/_internal/server/services/probes.py,sha256=pdgtkOvBuvneUo4Gysg8_afibTf1wuWnrrcuAnOGBE0,357
422
429
  dstack/_internal/server/services/projects.py,sha256=hNvQB2N3hEXX6AELwuz5IEDE4hanpVIWpBUWVRVVGys,23410
423
- dstack/_internal/server/services/repos.py,sha256=f9ztN7jz_2gvD9hXF5sJwWDVyG2-NHRfjIdSukowPh8,9342
430
+ dstack/_internal/server/services/repos.py,sha256=ECl1cbpdzhTv1P3Y9IQmoWyHHF8iXFyL4s2drfwRDvg,9352
424
431
  dstack/_internal/server/services/resources.py,sha256=VRFOih_cMJdc0c2m9nSGsX8vWAJQV3M6N87aqS_JXfw,699
425
- dstack/_internal/server/services/runs.py,sha256=hT63JPyBRhZyiGy0GZ1YFPYwfejwQbRrbG1XhXljGPs,47026
426
- dstack/_internal/server/services/secrets.py,sha256=oVz8mv4pQv8onaDdPKft2qJYq3Xnh8-uskoMxBuyfpE,5567
432
+ dstack/_internal/server/services/runs.py,sha256=-wh-ZiGYXmUjzNXggsqsmPTnips0BPsa8nAPEBLrl2U,47121
433
+ dstack/_internal/server/services/secrets.py,sha256=M7RS4X1-DIL0f7m6BBb3PhsrAbxwKUD3_pZEWRfR3sM,5567
427
434
  dstack/_internal/server/services/ssh.py,sha256=MIVUuPffM2Y45qUdapztOBbRdWeyyrgQmuqVVUuRbqU,2812
428
435
  dstack/_internal/server/services/users.py,sha256=L-COF4RjtwYSfnkGQefrSiEU0haTv0o1P2OuUdvMK8E,7378
429
436
  dstack/_internal/server/services/volumes.py,sha256=DBGIUsysAO7sQ6vb4mjhzO9XLdyQvtNujucxhGnkSsU,16682
@@ -438,7 +445,7 @@ dstack/_internal/server/services/gateways/__init__.py,sha256=eI98kRhV0eJuZPwRJLt
438
445
  dstack/_internal/server/services/gateways/client.py,sha256=kgkBxfIIklVQh2Djk8_qlDVHHbnoTRvoJNEwNNxTcY8,7653
439
446
  dstack/_internal/server/services/gateways/connection.py,sha256=ot3lV85XdmCT45vBWeyj57nLPcLPNm316zu3jMyeWjA,5625
440
447
  dstack/_internal/server/services/gateways/pool.py,sha256=0LclTl1tyx-doS78LeaAKjr-SMp98zuwh5f9s06JSd0,1914
441
- dstack/_internal/server/services/jobs/__init__.py,sha256=t6ufQhntlxm8jzfwcL4pY9m4hnARltC6AkmyNlGVLiw,27811
448
+ dstack/_internal/server/services/jobs/__init__.py,sha256=axf0n2tFN-9Kpn3Fk5-a5bj3Dox20pOk3YJNTCilIdI,27875
442
449
  dstack/_internal/server/services/jobs/configurators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
443
450
  dstack/_internal/server/services/jobs/configurators/base.py,sha256=ItPc5nbFNavxptkE1wsbZqo9cJ1yaJQM5Y7tkzH2jTA,14597
444
451
  dstack/_internal/server/services/jobs/configurators/dev.py,sha256=i58_LYvX__gxLoCx7GwjNj26M67FjgAIcEWyl3f8mOU,2435
@@ -459,7 +466,7 @@ dstack/_internal/server/services/prometheus/custom_metrics.py,sha256=xjBuNAbJQtf
459
466
  dstack/_internal/server/services/proxy/__init__.py,sha256=aklmvGaGXISztQft-nH8R98WRU6x_L0Fx3RwVDhwt3g,85
460
467
  dstack/_internal/server/services/proxy/auth.py,sha256=AVhDCnk9KvxJ7Jsd8Xmotl_29V4lNuBw8mQNBhx90Ws,485
461
468
  dstack/_internal/server/services/proxy/deps.py,sha256=u4dHHKBlTgC8Fnnl3onErgE1HGKFwyZTwvq0uT6IdQ4,846
462
- dstack/_internal/server/services/proxy/repo.py,sha256=hGa_cd51XFFgM4yiCVuTdMs5k2FDZ0Rd5jiQ_H0ZJmE,7394
469
+ dstack/_internal/server/services/proxy/repo.py,sha256=3O-L6nttl-2QSPh3B2k-0B2wBWFumBFSkQQDB0wUcq0,7439
463
470
  dstack/_internal/server/services/proxy/routers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
464
471
  dstack/_internal/server/services/proxy/routers/service_proxy.py,sha256=5oB-SX8f_f32tTs5aJe9ZuMycHAyVTQDO9xJcFmUKCs,1953
465
472
  dstack/_internal/server/services/proxy/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -467,7 +474,7 @@ dstack/_internal/server/services/proxy/services/service_proxy.py,sha256=4JrSxHqh
467
474
  dstack/_internal/server/services/runner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
468
475
  dstack/_internal/server/services/runner/client.py,sha256=Ozw2hkRlNCSua2vHmbsDerOIyLc9M0h790-rIvKmyME,17440
469
476
  dstack/_internal/server/services/runner/ssh.py,sha256=UdFdyNcFfCyGxMAJa2B1A206yfCplqAoXt31D7mG9c4,5056
470
- dstack/_internal/server/services/services/__init__.py,sha256=X5JEwtiuxyjs0v0SEOh1pUc1Yc_r6PSbqwUjOUZVH5E,11834
477
+ dstack/_internal/server/services/services/__init__.py,sha256=P--lW7M19E548f8gPbYombVib7QPml85JxpUO0qmwoU,12765
471
478
  dstack/_internal/server/services/services/autoscalers.py,sha256=wg3QgfdKcaBdbtyJJlAzeMlicGKQMuRGpMPZKyemK5U,4447
472
479
  dstack/_internal/server/services/services/options.py,sha256=BEpZbRY4PKFVkNNWxLtY--QISqBL1_aPPzZYLPpRgvM,2234
473
480
  dstack/_internal/server/services/storage/__init__.py,sha256=ZjlLdCQiclM7h_dKJM9HXjMJDKCFOAf3yI4iO6K3HHk,1384
@@ -499,10 +506,11 @@ dstack/_internal/server/statics/e467d7d60aae81ab198b.svg,sha256=_XHc9mfQZgGkcy4h
499
506
  dstack/_internal/server/statics/eb9b344b73818fe2b71a.png,sha256=2H14eOCQRyZhFGJ1Kn2LH1j70kTF1Qop4vH-tiKqyPI,85
500
507
  dstack/_internal/server/statics/f517dd626eb964120de0.png,sha256=4QQuNa8SqmcZ67HK6739OHCyjnAJseU1bkcn454KRQs,159
501
508
  dstack/_internal/server/statics/f958aecddee5d8e3222c.png,sha256=8CoZkVNgRfOAe62X1dU-AZDvwh_nESKaQblEmaX2Xrs,87
502
- dstack/_internal/server/statics/index.html,sha256=eo6HuLJBeXuJDaYNgU7Ek714Xpa3XMmDLCC4vAdBvi0,10468
503
- dstack/_internal/server/statics/main-03e818b110e1d5705378.css,sha256=WreQOro6z_dirzlHFOCFsTWzN2H8h0bMWjrcm-HQCOA,1353840
504
- dstack/_internal/server/statics/main-cc067b7fd1a8f33f97da.js,sha256=xuUQlLQrMuMnPyBswuEZVPeRmqsswpCEs0oMD73ORqY,6401280
505
- dstack/_internal/server/statics/main-cc067b7fd1a8f33f97da.js.map,sha256=P8e296h9QODKmbvwB0H53cf84PJfHQ2hQ3yUxR5d92M,8475856
509
+ dstack/_internal/server/statics/index.html,sha256=-py8KlEvfxueuwrYc9YRe0OyyETkrU0vwlW2PQY07ZU,11071
510
+ dstack/_internal/server/statics/logo-notext.svg,sha256=Oth7XfcAeDJcaPdzNtDaqYuLU7mCB0JqNtxeyWb6Z3c,11231
511
+ dstack/_internal/server/statics/main-aec4762350e34d6fbff9.css,sha256=siDI2FtwN5Iax3O6-EKHbeROGytzFEWMvM8jyRoTcVM,1353840
512
+ dstack/_internal/server/statics/main-d151b300fcac3933213d.js,sha256=MEnX2JndE26t-GRltuoO-L7HqY8QddC8G7fwJ-OPjKk,6403176
513
+ dstack/_internal/server/statics/main-d151b300fcac3933213d.js.map,sha256=EIgrdkMwboFjqppQWO1iCa0Waof3iBoZCgqUr3VpxQQ,8481266
506
514
  dstack/_internal/server/statics/manifest.json,sha256=430w2BoWVmYYVr14lDvUxx-ROPt3VjigzeMqfLeiSCM,340
507
515
  dstack/_internal/server/statics/robots.txt,sha256=kNJLw79pisHhc3OVAimMzKcq3x9WT6sF9IS4xI0crdI,67
508
516
  dstack/_internal/server/statics/assets/android-chrome-144x144.png,sha256=tB3V-95O-VVEoawN5V1XFoMQRSK0I6gthraV8bATGaw,23414
@@ -581,7 +589,7 @@ dstack/_internal/server/statics/static/media/logo.f602feeb138844eda97c8cb6414614
581
589
  dstack/_internal/server/statics/static/media/okta.12f178e6873a1100965f2a4dbd18fcec.svg,sha256=KqFI05gQM135zC1plF1WBRF2F7CyKL7km97WKsZjAHI,319
582
590
  dstack/_internal/server/statics/static/media/theme.3994c817bb7dda191c1c9640dee0bf42.svg,sha256=ZxFFBVZWuRLqmWH4zhwGLNtKjOzHj-5MGJRunFAtu1I,561
583
591
  dstack/_internal/server/testing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
584
- dstack/_internal/server/testing/common.py,sha256=R9GHnaeEQFT3ITTq9cVaoeowcXeSvYCoTShu6JwYvjs,35642
592
+ dstack/_internal/server/testing/common.py,sha256=fNuN9CEHyMmpSuWV6ED1OCL3s6uwSMwsOiq8vgrIP1o,35832
585
593
  dstack/_internal/server/testing/conf.py,sha256=-zhujfFjTHNfQDOK-hBck32By11c_kC0OeinB3esQGg,1902
586
594
  dstack/_internal/server/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
587
595
  dstack/_internal/server/utils/common.py,sha256=PbjXtqYy1taKXpyG5ys8cIrz9MXqc9dBAsR_9D1brrk,1414
@@ -613,14 +621,15 @@ dstack/api/__init__.py,sha256=7qbG42qEHMyNDFRCz9FgfuimAKws3hV8eMXs6oRgh5c,1607
613
621
  dstack/api/utils.py,sha256=_la3CRk1vgrPGkInPI1SOr33e8Jvh8ziJC32fjvKnaU,4188
614
622
  dstack/api/_public/__init__.py,sha256=mbzsdV3nWUJRksc7czX5C0iPT3NA6YRpriQQRiXwIbY,3429
615
623
  dstack/api/_public/backends.py,sha256=w_cIUVU3L1tN8VoPH6-ltq-oJewlfXWTiEFXfDvm-1Q,1056
616
- dstack/api/_public/repos.py,sha256=2ufUtxY8WyPci9tCGYzsnyIFTXNJfTuPzDYvpTydZ6k,6133
624
+ dstack/api/_public/repos.py,sha256=fjc9fgwXI3_2Ly8wYzlYk1NOPNqzBkKdeXcKKdkVuP4,6174
617
625
  dstack/api/_public/runs.py,sha256=gUGKlVnkORBsgBQWF5swUF4p-z4Dufzepe9OJ-l4nC4,31357
618
626
  dstack/api/huggingface/__init__.py,sha256=oIrEij3wttLZ1yrywEGvCMd6zswMQrX5pPjrqdSi0UA,2201
619
- dstack/api/server/__init__.py,sha256=aSIGTueIRjUzI9Me-0Ul7Yrid4NJ-DtGL0xYj1Hf2Bk,6319
627
+ dstack/api/server/__init__.py,sha256=aGMNDDQwXCqfIMG0OIFmk59HUIGQV6SY2Jlj1RNt6I0,6500
620
628
  dstack/api/server/_backends.py,sha256=tSvJ4j-yp-S-4IYo7pKHluDaSsx6Xbwo08Ff6Do85fo,1639
621
629
  dstack/api/server/_files.py,sha256=iOBHm1CvJiG4TqNx3t5LYOf7w3jff9I15wxYpIAg-r4,780
622
630
  dstack/api/server/_fleets.py,sha256=6Duz5-SF1HI4qIkgdJr8OikzDosYtavJZOEyMwyDu_8,2882
623
631
  dstack/api/server/_gateways.py,sha256=2wyoERBl9R-uWtBI0AiRgLFLtNRlagQxlcgOWHkAlhA,2274
632
+ dstack/api/server/_gpus.py,sha256=GoB4FzPQHDFVHJNWKh6S2vcWlQuhrjWPrGb6MItjthE,723
624
633
  dstack/api/server/_group.py,sha256=f9a_YvwZ7s1vDTQhOWHLwm3kO84C5R_zXToD4cxAnvY,432
625
634
  dstack/api/server/_logs.py,sha256=MOs7P_EX0qhwIodEumXeE2CK3o_5YmUVvkMd8rA_4mk,647
626
635
  dstack/api/server/_metrics.py,sha256=OPb8sLhI_U605sHOPrELgy0_6cNFLJVfpvr-qkEukRM,670
@@ -640,8 +649,8 @@ dstack/plugins/builtin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3
640
649
  dstack/plugins/builtin/rest_plugin/__init__.py,sha256=lgTsq8Z6Km2F2UhPRChVB4vDM5ZpWtdk1iB1aa20ypA,440
641
650
  dstack/plugins/builtin/rest_plugin/_models.py,sha256=9hgVuU6OGSxidar88XhQnNo9izYWeQvVH45ciErv-Es,1910
642
651
  dstack/plugins/builtin/rest_plugin/_plugin.py,sha256=iv8TmQh959iEUZjCFTzmGnFW8fHukTVpPmD4iBzOfS4,5361
643
- dstack-0.19.23rc1.dist-info/METADATA,sha256=wbJpVsSqKkPL1IEE_wTKPMjldhsQBgm030QVrEV2o_g,20589
644
- dstack-0.19.23rc1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
645
- dstack-0.19.23rc1.dist-info/entry_points.txt,sha256=GnLrMS8hx3rWAySQjA7tPNhtixV6a-brRkmal1PKoHc,58
646
- dstack-0.19.23rc1.dist-info/licenses/LICENSE.md,sha256=qDABaRGjSKVOib1U8viw2P_96sIK7Puo426784oD9f8,15976
647
- dstack-0.19.23rc1.dist-info/RECORD,,
652
+ dstack-0.19.25rc1.dist-info/METADATA,sha256=g2DVlSPhfvNQL5dH2EDNgTVO0cPGNAmg-0u7s_KEnTE,20589
653
+ dstack-0.19.25rc1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
654
+ dstack-0.19.25rc1.dist-info/entry_points.txt,sha256=GnLrMS8hx3rWAySQjA7tPNhtixV6a-brRkmal1PKoHc,58
655
+ dstack-0.19.25rc1.dist-info/licenses/LICENSE.md,sha256=qDABaRGjSKVOib1U8viw2P_96sIK7Puo426784oD9f8,15976
656
+ dstack-0.19.25rc1.dist-info/RECORD,,