plato-sdk-v2 2.7.3__py3-none-any.whl → 2.7.5__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.
- plato/_generated/__init__.py +1 -1
- plato/_generated/api/v1/testcases/get_testcase_metadata_for_scoring.py +6 -6
- plato/_generated/api/v2/__init__.py +14 -2
- plato/_generated/api/v2/admin/__init__.py +3 -0
- plato/_generated/api/v2/admin/cache/__init__.py +11 -0
- plato/_generated/api/v2/admin/cache/clear_all.py +74 -0
- plato/_generated/api/v2/admin/cache/clear_single_cache.py +79 -0
- plato/_generated/api/v2/admin/cache/delete_key.py +84 -0
- plato/_generated/api/v2/admin/cache/get_stats.py +70 -0
- plato/_generated/api/v2/admin/cache/list_cache_names.py +67 -0
- plato/_generated/api/v2/sessions/__init__.py +3 -1
- plato/_generated/api/v2/sessions/add_job.py +97 -0
- plato/_generated/api/v2/sessions/connect_network.py +2 -17
- plato/_generated/models/__init__.py +208 -109
- plato/chronos/api/agents/get_agent_schema.py +5 -5
- plato/chronos/api/agents/get_agent_versions.py +5 -5
- plato/chronos/api/agents/list_agents.py +5 -5
- plato/chronos/api/registry/get_agent_schema_api_registry_agents__agent_name__schema_get.py +5 -5
- plato/chronos/api/registry/get_agent_versions_api_registry_agents__agent_name__versions_get.py +5 -5
- plato/chronos/api/registry/list_registry_agents_api_registry_agents_get.py +5 -5
- plato/chronos/api/sessions/__init__.py +2 -0
- plato/chronos/api/sessions/complete_session.py +4 -2
- plato/chronos/api/sessions/list_session_creators.py +57 -0
- plato/chronos/api/sessions/list_sessions.py +30 -2
- plato/chronos/models/__init__.py +39 -19
- plato/v1/cli/sandbox.py +0 -6
- plato/v2/async_/session.py +1 -20
- plato/v2/sync/session.py +1 -20
- {plato_sdk_v2-2.7.3.dist-info → plato_sdk_v2-2.7.5.dist-info}/METADATA +1 -1
- {plato_sdk_v2-2.7.3.dist-info → plato_sdk_v2-2.7.5.dist-info}/RECORD +32 -23
- {plato_sdk_v2-2.7.3.dist-info → plato_sdk_v2-2.7.5.dist-info}/WHEEL +0 -0
- {plato_sdk_v2-2.7.3.dist-info → plato_sdk_v2-2.7.5.dist-info}/entry_points.txt +0 -0
|
@@ -11,6 +11,7 @@ from . import (
|
|
|
11
11
|
get_session_logs,
|
|
12
12
|
get_session_logs_download,
|
|
13
13
|
get_session_status,
|
|
14
|
+
list_session_creators,
|
|
14
15
|
list_sessions,
|
|
15
16
|
list_tags,
|
|
16
17
|
update_session_tags,
|
|
@@ -20,6 +21,7 @@ __all__ = [
|
|
|
20
21
|
"list_sessions",
|
|
21
22
|
"create_session",
|
|
22
23
|
"list_tags",
|
|
24
|
+
"list_session_creators",
|
|
23
25
|
"get_session",
|
|
24
26
|
"get_session_status",
|
|
25
27
|
"update_session_tags",
|
|
@@ -39,7 +39,8 @@ def sync(
|
|
|
39
39
|
"""Mark a session as completed or failed.
|
|
40
40
|
|
|
41
41
|
Called by the bootstrap script when the world runner finishes.
|
|
42
|
-
Uses API key auth (no org check) since it's called from the VM.
|
|
42
|
+
Uses API key auth (no org check) since it's called from the VM.
|
|
43
|
+
Also closes the Plato session to release VM resources."""
|
|
43
44
|
|
|
44
45
|
request_args = _build_request_args(
|
|
45
46
|
public_id=public_id,
|
|
@@ -61,7 +62,8 @@ async def asyncio(
|
|
|
61
62
|
"""Mark a session as completed or failed.
|
|
62
63
|
|
|
63
64
|
Called by the bootstrap script when the world runner finishes.
|
|
64
|
-
Uses API key auth (no org check) since it's called from the VM.
|
|
65
|
+
Uses API key auth (no org check) since it's called from the VM.
|
|
66
|
+
Also closes the Plato session to release VM resources."""
|
|
65
67
|
|
|
66
68
|
request_args = _build_request_args(
|
|
67
69
|
public_id=public_id,
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"""List Session Creators"""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Any
|
|
6
|
+
|
|
7
|
+
import httpx
|
|
8
|
+
|
|
9
|
+
from plato.chronos.errors import raise_for_status
|
|
10
|
+
from plato.chronos.models import CreatorsListResponse
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def _build_request_args(
|
|
14
|
+
x_api_key: str | None = None,
|
|
15
|
+
) -> dict[str, Any]:
|
|
16
|
+
"""Build request arguments."""
|
|
17
|
+
url = "/api/sessions/creators"
|
|
18
|
+
|
|
19
|
+
headers: dict[str, str] = {}
|
|
20
|
+
if x_api_key is not None:
|
|
21
|
+
headers["X-API-Key"] = x_api_key
|
|
22
|
+
|
|
23
|
+
return {
|
|
24
|
+
"method": "GET",
|
|
25
|
+
"url": url,
|
|
26
|
+
"headers": headers,
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def sync(
|
|
31
|
+
client: httpx.Client,
|
|
32
|
+
x_api_key: str | None = None,
|
|
33
|
+
) -> CreatorsListResponse:
|
|
34
|
+
"""List distinct users who have created sessions in this org."""
|
|
35
|
+
|
|
36
|
+
request_args = _build_request_args(
|
|
37
|
+
x_api_key=x_api_key,
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
response = client.request(**request_args)
|
|
41
|
+
raise_for_status(response)
|
|
42
|
+
return CreatorsListResponse.model_validate(response.json())
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
async def asyncio(
|
|
46
|
+
client: httpx.AsyncClient,
|
|
47
|
+
x_api_key: str | None = None,
|
|
48
|
+
) -> CreatorsListResponse:
|
|
49
|
+
"""List distinct users who have created sessions in this org."""
|
|
50
|
+
|
|
51
|
+
request_args = _build_request_args(
|
|
52
|
+
x_api_key=x_api_key,
|
|
53
|
+
)
|
|
54
|
+
|
|
55
|
+
response = await client.request(**request_args)
|
|
56
|
+
raise_for_status(response)
|
|
57
|
+
return CreatorsListResponse.model_validate(response.json())
|
|
@@ -12,6 +12,10 @@ from plato.chronos.models import SessionListResponse
|
|
|
12
12
|
|
|
13
13
|
def _build_request_args(
|
|
14
14
|
tag: str | None = None,
|
|
15
|
+
created_by: str | None = None,
|
|
16
|
+
limit: int | None = 50,
|
|
17
|
+
offset: int | None = None,
|
|
18
|
+
status: str | None = None,
|
|
15
19
|
x_api_key: str | None = None,
|
|
16
20
|
) -> dict[str, Any]:
|
|
17
21
|
"""Build request arguments."""
|
|
@@ -20,6 +24,14 @@ def _build_request_args(
|
|
|
20
24
|
params: dict[str, Any] = {}
|
|
21
25
|
if tag is not None:
|
|
22
26
|
params["tag"] = tag
|
|
27
|
+
if created_by is not None:
|
|
28
|
+
params["created_by"] = created_by
|
|
29
|
+
if limit is not None:
|
|
30
|
+
params["limit"] = limit
|
|
31
|
+
if offset is not None:
|
|
32
|
+
params["offset"] = offset
|
|
33
|
+
if status is not None:
|
|
34
|
+
params["status"] = status
|
|
23
35
|
|
|
24
36
|
headers: dict[str, str] = {}
|
|
25
37
|
if x_api_key is not None:
|
|
@@ -36,9 +48,13 @@ def _build_request_args(
|
|
|
36
48
|
def sync(
|
|
37
49
|
client: httpx.Client,
|
|
38
50
|
tag: str | None = None,
|
|
51
|
+
created_by: str | None = None,
|
|
52
|
+
limit: int | None = 50,
|
|
53
|
+
offset: int | None = None,
|
|
54
|
+
status: str | None = None,
|
|
39
55
|
x_api_key: str | None = None,
|
|
40
56
|
) -> SessionListResponse:
|
|
41
|
-
"""List
|
|
57
|
+
"""List sessions for the org with pagination and filtering.
|
|
42
58
|
|
|
43
59
|
Tag filtering uses ltree for hierarchical matching:
|
|
44
60
|
- 'project' matches 'project', 'project.foo', 'project.foo.bar'
|
|
@@ -46,6 +62,10 @@ def sync(
|
|
|
46
62
|
|
|
47
63
|
request_args = _build_request_args(
|
|
48
64
|
tag=tag,
|
|
65
|
+
created_by=created_by,
|
|
66
|
+
limit=limit,
|
|
67
|
+
offset=offset,
|
|
68
|
+
status=status,
|
|
49
69
|
x_api_key=x_api_key,
|
|
50
70
|
)
|
|
51
71
|
|
|
@@ -57,9 +77,13 @@ def sync(
|
|
|
57
77
|
async def asyncio(
|
|
58
78
|
client: httpx.AsyncClient,
|
|
59
79
|
tag: str | None = None,
|
|
80
|
+
created_by: str | None = None,
|
|
81
|
+
limit: int | None = 50,
|
|
82
|
+
offset: int | None = None,
|
|
83
|
+
status: str | None = None,
|
|
60
84
|
x_api_key: str | None = None,
|
|
61
85
|
) -> SessionListResponse:
|
|
62
|
-
"""List
|
|
86
|
+
"""List sessions for the org with pagination and filtering.
|
|
63
87
|
|
|
64
88
|
Tag filtering uses ltree for hierarchical matching:
|
|
65
89
|
- 'project' matches 'project', 'project.foo', 'project.foo.bar'
|
|
@@ -67,6 +91,10 @@ async def asyncio(
|
|
|
67
91
|
|
|
68
92
|
request_args = _build_request_args(
|
|
69
93
|
tag=tag,
|
|
94
|
+
created_by=created_by,
|
|
95
|
+
limit=limit,
|
|
96
|
+
offset=offset,
|
|
97
|
+
status=status,
|
|
70
98
|
x_api_key=x_api_key,
|
|
71
99
|
)
|
|
72
100
|
|
plato/chronos/models/__init__.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
|
-
# filename:
|
|
3
|
-
# timestamp: 2026-01-
|
|
2
|
+
# filename: tmp9iosw1i3.json
|
|
3
|
+
# timestamp: 2026-01-29T20:31:32+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
@@ -30,13 +30,6 @@ class AgentInfo(BaseModel):
|
|
|
30
30
|
image_uri: Annotated[str, Field(title="Image Uri")]
|
|
31
31
|
|
|
32
32
|
|
|
33
|
-
class AgentListResponse(BaseModel):
|
|
34
|
-
model_config = ConfigDict(
|
|
35
|
-
extra="allow",
|
|
36
|
-
)
|
|
37
|
-
agents: Annotated[list[AgentInfo], Field(title="Agents")]
|
|
38
|
-
|
|
39
|
-
|
|
40
33
|
class AgentLookupResponse(BaseModel):
|
|
41
34
|
model_config = ConfigDict(
|
|
42
35
|
extra="allow",
|
|
@@ -68,8 +61,6 @@ class AgentSchemaResponse(BaseModel):
|
|
|
68
61
|
name: Annotated[str, Field(title="Name")]
|
|
69
62
|
version: Annotated[str, Field(title="Version")]
|
|
70
63
|
config_schema: Annotated[dict[str, Any] | None, Field(title="Config Schema")] = None
|
|
71
|
-
secrets_schema: Annotated[dict[str, Any] | None, Field(title="Secrets Schema")] = None
|
|
72
|
-
template_variables: Annotated[dict[str, Any] | None, Field(title="Template Variables")] = None
|
|
73
64
|
|
|
74
65
|
|
|
75
66
|
class AgentVersionInfo(BaseModel):
|
|
@@ -77,7 +68,7 @@ class AgentVersionInfo(BaseModel):
|
|
|
77
68
|
extra="allow",
|
|
78
69
|
)
|
|
79
70
|
version: Annotated[str, Field(title="Version")]
|
|
80
|
-
created_at: Annotated[
|
|
71
|
+
created_at: Annotated[AwareDatetime, Field(title="Created At")]
|
|
81
72
|
|
|
82
73
|
|
|
83
74
|
class AgentVersionsResponse(BaseModel):
|
|
@@ -167,6 +158,10 @@ class CreateSessionRequest(BaseModel):
|
|
|
167
158
|
"""
|
|
168
159
|
Plato session ID if already created
|
|
169
160
|
"""
|
|
161
|
+
tags: Annotated[list[str] | None, Field(title="Tags")] = None
|
|
162
|
+
"""
|
|
163
|
+
Tags for the session
|
|
164
|
+
"""
|
|
170
165
|
|
|
171
166
|
|
|
172
167
|
class CreateSessionResponse(BaseModel):
|
|
@@ -406,6 +401,15 @@ class ServiceStatuses(BaseModel):
|
|
|
406
401
|
plato: Annotated[str, Field(title="Plato")]
|
|
407
402
|
|
|
408
403
|
|
|
404
|
+
class SessionCreator(BaseModel):
|
|
405
|
+
model_config = ConfigDict(
|
|
406
|
+
extra="allow",
|
|
407
|
+
)
|
|
408
|
+
public_id: Annotated[str, Field(title="Public Id")]
|
|
409
|
+
name: Annotated[str | None, Field(title="Name")] = None
|
|
410
|
+
email: Annotated[str | None, Field(title="Email")] = None
|
|
411
|
+
|
|
412
|
+
|
|
409
413
|
class SessionEnvsResponse(BaseModel):
|
|
410
414
|
model_config = ConfigDict(
|
|
411
415
|
extra="allow",
|
|
@@ -562,36 +566,38 @@ class WorldVersionsResponse(BaseModel):
|
|
|
562
566
|
versions: Annotated[list[str], Field(title="Versions")]
|
|
563
567
|
|
|
564
568
|
|
|
565
|
-
class
|
|
569
|
+
class ChronosApiRegistryAgentListResponse(BaseModel):
|
|
566
570
|
model_config = ConfigDict(
|
|
567
571
|
extra="allow",
|
|
568
572
|
)
|
|
569
|
-
agents: Annotated[list[
|
|
573
|
+
agents: Annotated[list[AgentInfo], Field(title="Agents")]
|
|
570
574
|
|
|
571
575
|
|
|
572
|
-
class
|
|
576
|
+
class ChronosApiRegistryAgentSchemaResponse(BaseModel):
|
|
573
577
|
model_config = ConfigDict(
|
|
574
578
|
extra="allow",
|
|
575
579
|
)
|
|
576
580
|
name: Annotated[str, Field(title="Name")]
|
|
577
581
|
version: Annotated[str, Field(title="Version")]
|
|
578
582
|
config_schema: Annotated[dict[str, Any] | None, Field(title="Config Schema")] = None
|
|
583
|
+
secrets_schema: Annotated[dict[str, Any] | None, Field(title="Secrets Schema")] = None
|
|
584
|
+
template_variables: Annotated[dict[str, Any] | None, Field(title="Template Variables")] = None
|
|
579
585
|
|
|
580
586
|
|
|
581
|
-
class
|
|
587
|
+
class ChronosApiRegistryAgentVersionInfo(BaseModel):
|
|
582
588
|
model_config = ConfigDict(
|
|
583
589
|
extra="allow",
|
|
584
590
|
)
|
|
585
591
|
version: Annotated[str, Field(title="Version")]
|
|
586
|
-
created_at: Annotated[
|
|
592
|
+
created_at: Annotated[str | None, Field(title="Created At")] = None
|
|
587
593
|
|
|
588
594
|
|
|
589
|
-
class
|
|
595
|
+
class ChronosApiRegistryAgentVersionsResponse(BaseModel):
|
|
590
596
|
model_config = ConfigDict(
|
|
591
597
|
extra="allow",
|
|
592
598
|
)
|
|
593
599
|
name: Annotated[str, Field(title="Name")]
|
|
594
|
-
versions: Annotated[list[
|
|
600
|
+
versions: Annotated[list[ChronosApiRegistryAgentVersionInfo], Field(title="Versions")]
|
|
595
601
|
|
|
596
602
|
|
|
597
603
|
class ChronosModelsSessionWorldInfo(BaseModel):
|
|
@@ -604,6 +610,20 @@ class ChronosModelsSessionWorldInfo(BaseModel):
|
|
|
604
610
|
config_schema: Annotated[dict[str, Any] | None, Field(title="Config Schema")] = None
|
|
605
611
|
|
|
606
612
|
|
|
613
|
+
class AgentListResponse(BaseModel):
|
|
614
|
+
model_config = ConfigDict(
|
|
615
|
+
extra="allow",
|
|
616
|
+
)
|
|
617
|
+
agents: Annotated[list[AgentResponse], Field(title="Agents")]
|
|
618
|
+
|
|
619
|
+
|
|
620
|
+
class CreatorsListResponse(BaseModel):
|
|
621
|
+
model_config = ConfigDict(
|
|
622
|
+
extra="allow",
|
|
623
|
+
)
|
|
624
|
+
creators: Annotated[list[SessionCreator], Field(title="Creators")]
|
|
625
|
+
|
|
626
|
+
|
|
607
627
|
class EnvSecretListResponse(BaseModel):
|
|
608
628
|
model_config = ConfigDict(
|
|
609
629
|
extra="allow",
|
plato/v1/cli/sandbox.py
CHANGED
|
@@ -59,7 +59,6 @@ from plato._generated.models import (
|
|
|
59
59
|
AppSchemasBuildModelsSimConfigCompute,
|
|
60
60
|
AppSchemasBuildModelsSimConfigDataset,
|
|
61
61
|
AppSchemasBuildModelsSimConfigMetadata,
|
|
62
|
-
ConnectNetworkRequest,
|
|
63
62
|
CreateCheckpointRequest,
|
|
64
63
|
ExecuteCommandRequest,
|
|
65
64
|
Flow,
|
|
@@ -498,10 +497,6 @@ def sandbox_start(
|
|
|
498
497
|
console.print(f" [cyan]Public URL:[/cyan] {display_url}")
|
|
499
498
|
if ssh_private_key_path:
|
|
500
499
|
console.print(" [cyan]SSH:[/cyan] plato sandbox ssh")
|
|
501
|
-
# Warn if using host-only routing (no VM-to-VM mesh)
|
|
502
|
-
if connect_network and hasattr(session, "network_host_only") and session.network_host_only:
|
|
503
|
-
console.print("\n[yellow]Warning: WireGuard not available in VM - using host-only routing[/yellow]")
|
|
504
|
-
console.print("[yellow] SSH from outside works, but VM-to-VM networking is disabled[/yellow]")
|
|
505
500
|
console.print(f"\n[dim]State saved to {SANDBOX_FILE}[/dim]")
|
|
506
501
|
|
|
507
502
|
except Exception as e:
|
|
@@ -732,7 +727,6 @@ def sandbox_connect_network(
|
|
|
732
727
|
result = sessions_connect_network.sync(
|
|
733
728
|
client=client,
|
|
734
729
|
session_id=session_id,
|
|
735
|
-
body=ConnectNetworkRequest(),
|
|
736
730
|
x_api_key=api_key,
|
|
737
731
|
)
|
|
738
732
|
|
plato/v2/async_/session.py
CHANGED
|
@@ -45,7 +45,6 @@ from plato._generated.models import (
|
|
|
45
45
|
AppApiV2SchemasSessionHeartbeatResponse,
|
|
46
46
|
AppApiV2SchemasSessionSetupSandboxRequest,
|
|
47
47
|
AppApiV2SchemasSessionSetupSandboxResponse,
|
|
48
|
-
ConnectNetworkRequest,
|
|
49
48
|
CreateDiskSnapshotRequest,
|
|
50
49
|
CreateDiskSnapshotResponse,
|
|
51
50
|
CreateSessionFromEnvs,
|
|
@@ -148,15 +147,6 @@ class Session:
|
|
|
148
147
|
self._heartbeat_task: asyncio.Task | None = None
|
|
149
148
|
self._heartbeat_interval = 30
|
|
150
149
|
self._envs: list[Environment] | None = None
|
|
151
|
-
self._network_host_only: bool = False # True if WireGuard not available (no VM-to-VM mesh)
|
|
152
|
-
|
|
153
|
-
@property
|
|
154
|
-
def network_host_only(self) -> bool:
|
|
155
|
-
"""True if network is using host-only routing (WireGuard not available in VM).
|
|
156
|
-
|
|
157
|
-
When True, external SSH access works but VM-to-VM mesh networking does not.
|
|
158
|
-
"""
|
|
159
|
-
return self._network_host_only
|
|
160
150
|
|
|
161
151
|
@property
|
|
162
152
|
def session_id(self) -> str:
|
|
@@ -762,18 +752,13 @@ class Session:
|
|
|
762
752
|
|
|
763
753
|
return urls
|
|
764
754
|
|
|
765
|
-
async def connect_network(self
|
|
755
|
+
async def connect_network(self) -> dict:
|
|
766
756
|
"""Connect all VMs in this session to a WireGuard network.
|
|
767
757
|
|
|
768
758
|
Creates a full mesh WireGuard network between all VMs in the session.
|
|
769
759
|
Must be called after all environments are ready. This method is idempotent -
|
|
770
760
|
calling it multiple times will not reconnect already-connected VMs.
|
|
771
761
|
|
|
772
|
-
Args:
|
|
773
|
-
host_only: If True, force WireGuard to run on the worker instead of
|
|
774
|
-
inside the VM. Useful for VMs without WireGuard tools or
|
|
775
|
-
for testing worker-side WireGuard.
|
|
776
|
-
|
|
777
762
|
Returns:
|
|
778
763
|
Dict with:
|
|
779
764
|
- success: bool - True if all VMs connected successfully
|
|
@@ -790,13 +775,9 @@ class Session:
|
|
|
790
775
|
result = await sessions_connect_network.asyncio(
|
|
791
776
|
client=self._http,
|
|
792
777
|
session_id=self.session_id,
|
|
793
|
-
body=ConnectNetworkRequest(host_only=host_only),
|
|
794
778
|
x_api_key=self._api_key,
|
|
795
779
|
)
|
|
796
780
|
|
|
797
|
-
# Track if any VMs are using host-only routing (no VM-to-VM mesh)
|
|
798
|
-
self._network_host_only = result.get("host_only", False)
|
|
799
|
-
|
|
800
781
|
return result
|
|
801
782
|
|
|
802
783
|
async def cleanup_databases(self) -> SessionCleanupResult:
|
plato/v2/sync/session.py
CHANGED
|
@@ -43,7 +43,6 @@ from plato._generated.models import (
|
|
|
43
43
|
AppApiV2SchemasSessionHeartbeatResponse,
|
|
44
44
|
AppApiV2SchemasSessionSetupSandboxRequest,
|
|
45
45
|
AppApiV2SchemasSessionSetupSandboxResponse,
|
|
46
|
-
ConnectNetworkRequest,
|
|
47
46
|
CreateDiskSnapshotRequest,
|
|
48
47
|
CreateDiskSnapshotResponse,
|
|
49
48
|
CreateSessionFromEnvs,
|
|
@@ -127,15 +126,6 @@ class Session:
|
|
|
127
126
|
self._heartbeat_stop = threading.Event()
|
|
128
127
|
self._heartbeat_interval = 30
|
|
129
128
|
self._envs: list[Environment] | None = None
|
|
130
|
-
self._network_host_only: bool = False # True if WireGuard not available (no VM-to-VM mesh)
|
|
131
|
-
|
|
132
|
-
@property
|
|
133
|
-
def network_host_only(self) -> bool:
|
|
134
|
-
"""True if network is using host-only routing (WireGuard not available in VM).
|
|
135
|
-
|
|
136
|
-
When True, external SSH access works but VM-to-VM mesh networking does not.
|
|
137
|
-
"""
|
|
138
|
-
return self._network_host_only
|
|
139
129
|
|
|
140
130
|
@property
|
|
141
131
|
def session_id(self) -> str:
|
|
@@ -672,18 +662,13 @@ class Session:
|
|
|
672
662
|
x_api_key=self._api_key,
|
|
673
663
|
)
|
|
674
664
|
|
|
675
|
-
def connect_network(self
|
|
665
|
+
def connect_network(self) -> dict:
|
|
676
666
|
"""Connect all VMs in this session to a WireGuard network.
|
|
677
667
|
|
|
678
668
|
Creates a full mesh WireGuard network between all VMs in the session.
|
|
679
669
|
Must be called after all environments are ready. This method is idempotent -
|
|
680
670
|
calling it multiple times will not reconnect already-connected VMs.
|
|
681
671
|
|
|
682
|
-
Args:
|
|
683
|
-
host_only: If True, force WireGuard to run on the worker instead of
|
|
684
|
-
inside the VM. Useful for VMs without WireGuard tools or
|
|
685
|
-
for testing worker-side WireGuard.
|
|
686
|
-
|
|
687
672
|
Returns:
|
|
688
673
|
Dict with:
|
|
689
674
|
- success: bool - True if all VMs connected successfully
|
|
@@ -700,13 +685,9 @@ class Session:
|
|
|
700
685
|
result = sessions_connect_network.sync(
|
|
701
686
|
client=self._http,
|
|
702
687
|
session_id=self.session_id,
|
|
703
|
-
body=ConnectNetworkRequest(host_only=host_only),
|
|
704
688
|
x_api_key=self._api_key,
|
|
705
689
|
)
|
|
706
690
|
|
|
707
|
-
# Track if any VMs are using host-only routing (no VM-to-VM mesh)
|
|
708
|
-
self._network_host_only = result.get("host_only", False)
|
|
709
|
-
|
|
710
691
|
return result
|
|
711
692
|
|
|
712
693
|
def login(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
plato/__init__.py,sha256=a9E0KS1602GWHHStnf7wDEuvPCvh2GpPh0Sf8oKZx5Q,1795
|
|
2
2
|
plato/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3
|
-
plato/_generated/__init__.py,sha256=
|
|
3
|
+
plato/_generated/__init__.py,sha256=zXYgJRnbMsHl1DQEYcj-B1c4a6OLQ6wyHeBSDL2vds8,738
|
|
4
4
|
plato/_generated/client.py,sha256=_oMKXyAShQVddCaIKnfB2zPkRsDlCwLp-N3RFoKq_v8,5489
|
|
5
5
|
plato/_generated/errors.py,sha256=goTGrZ4rrujGZ-BoOonoyaGwdGDkGO6GyeubIkQVv9E,4197
|
|
6
6
|
plato/_generated/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -188,14 +188,21 @@ plato/_generated/api/v1/testcases/get_mutation_groups_for_testcase.py,sha256=JHx
|
|
|
188
188
|
plato/_generated/api/v1/testcases/get_next_testcase_for_scoring.py,sha256=4gF9MENkbO6YY8VfV-nq5wMTNtrr6OfdZ5jGGg_CxXk,2896
|
|
189
189
|
plato/_generated/api/v1/testcases/get_organization_test_case_assignments.py,sha256=4sSsnvyPXddGguWs3GaPGmBsewENWrjsTW2lfAttVVU,2685
|
|
190
190
|
plato/_generated/api/v1/testcases/get_testcase.py,sha256=EydIk-2zdS6XT9-btLWCE5i-N2lT7AlAe5amQQJNn-c,866
|
|
191
|
-
plato/_generated/api/v1/testcases/get_testcase_metadata_for_scoring.py,sha256=
|
|
191
|
+
plato/_generated/api/v1/testcases/get_testcase_metadata_for_scoring.py,sha256=i4xUaUisTUKsKnaV8sv2B-H1lgyBd9vKxR1TpOtvbcw,1948
|
|
192
192
|
plato/_generated/api/v1/testcases/get_testcase_sets.py,sha256=NSqnYWvj_G3ivnuuV797g85NGzHXi3z-UlvvRoFMwRM,1375
|
|
193
193
|
plato/_generated/api/v1/testcases/get_testcases.py,sha256=AjsC2aw1VJOtGEe-Km36uVktdxR6IRahhbHCjeAUxcY,5756
|
|
194
194
|
plato/_generated/api/v1/testcases/get_testcases_in_set.py,sha256=TJK2KHmGC5lNmBPoAXbZ6FktUael9v8Ecl4M8XAhceg,1501
|
|
195
195
|
plato/_generated/api/v1/testcases/mark_organization_test_case_completed.py,sha256=bbtE5PWIA9X0EkyrSXE8YN0gp6x6sfno0rc02AK_-l0,1521
|
|
196
196
|
plato/_generated/api/v1/testcases/update_testcase.py,sha256=-kTW31ioDzQvr2AmOv9gHL7jN6K9qhGyjnJfNHETwhA,1699
|
|
197
197
|
plato/_generated/api/v1/testcases/version_bump_testcase.py,sha256=r3qz7DibOQTKmoG0CrPWX_WItgDyOoh5B2H4degsRcU,1719
|
|
198
|
-
plato/_generated/api/v2/__init__.py,sha256=
|
|
198
|
+
plato/_generated/api/v2/__init__.py,sha256=3w2-N8-XYfIGeOq1hs6WWYVvDlGk8hSgbBtr4FsJAeY,501
|
|
199
|
+
plato/_generated/api/v2/admin/__init__.py,sha256=eCNSn0z66IkETwXlLDrUUhNewPAyXoXj5MSQu0DA_z8,40
|
|
200
|
+
plato/_generated/api/v2/admin/cache/__init__.py,sha256=J4n6hcl447_EGGwT4aNNqNt7BnkJgIPwykgBeWrBWSA,224
|
|
201
|
+
plato/_generated/api/v2/admin/cache/clear_all.py,sha256=ylnoqQpxJkiOgcAKn2N3e8bRaPCUx22ghmPDsMFGBo4,1883
|
|
202
|
+
plato/_generated/api/v2/admin/cache/clear_single_cache.py,sha256=uf5cRmvch5KyEKR92k4c5VnBUcXYGbFwGZgjI08wYDc,2059
|
|
203
|
+
plato/_generated/api/v2/admin/cache/delete_key.py,sha256=x8OcKTiwDdH8G3-XZHpJMNelwoMdW4bAXax67_Ufyh4,2181
|
|
204
|
+
plato/_generated/api/v2/admin/cache/get_stats.py,sha256=zFMp7qaS-IigblblwH6VJTHU3o4dGETtPg0GwrMUwtk,1779
|
|
205
|
+
plato/_generated/api/v2/admin/cache/list_cache_names.py,sha256=6_aX1GU9K7GWeIvl5KyYXv8tipr78n-movv1AAIgP3Q,1549
|
|
199
206
|
plato/_generated/api/v2/agents/__init__.py,sha256=rPyICBqm0_7PzGQYry5Kl9UzeFsLrt4Nu6gjIkpu_EA,401
|
|
200
207
|
plato/_generated/api/v2/agents/get_agent_ecr_token.py,sha256=bV36MuyEmgCoFaggPYWxyOuhydSV3Adcq7Z4nUHvrxs,2058
|
|
201
208
|
plato/_generated/api/v2/agents/get_agent_schema.py,sha256=Ax1bKnq5rXvrfGi-lY5GG2GCr0l7nVD1HNUFmMjuh2s,2453
|
|
@@ -259,11 +266,12 @@ plato/_generated/api/v2/releases/handle_import.py,sha256=ByBl6tHDKMXD0Ic_C4jpokx
|
|
|
259
266
|
plato/_generated/api/v2/releases/list_releases.py,sha256=ebNZc45ooGrKT-1lZ6mIjruTO8zwngz5G9edS6DB7lc,2149
|
|
260
267
|
plato/_generated/api/v2/releases/prep_release_assigned_testcases.py,sha256=B171O7xqXZm1AEXGhSfPNobBsqQRINxX4gYBU-TTwEg,2668
|
|
261
268
|
plato/_generated/api/v2/releases/update.py,sha256=aEz9dbnvRg5pAp1jkTZpwUjKxpOOn-xXktPeNVKpruI,1956
|
|
262
|
-
plato/_generated/api/v2/sessions/__init__.py,sha256=
|
|
269
|
+
plato/_generated/api/v2/sessions/__init__.py,sha256=DIDigu6vbUeREZGAmAhctkjjtBoC9G3NBs-ukWpJd5o,1225
|
|
270
|
+
plato/_generated/api/v2/sessions/add_job.py,sha256=PqnYCPuOFkqJjaK5jg7O4v92La4In2pSiCI1A_OoJRQ,2792
|
|
263
271
|
plato/_generated/api/v2/sessions/add_ssh_key.py,sha256=JDaw5B1hHodH43DUoZ7FrO1_ECWacjinia4-DbU0jGo,2198
|
|
264
272
|
plato/_generated/api/v2/sessions/checkpoint.py,sha256=Kd8NSIeuC41cRB4Y3j_L0yNIU_WVRjkBIL72pRqoRTc,2933
|
|
265
273
|
plato/_generated/api/v2/sessions/close.py,sha256=cPA4HhPULg9EEKdBcMjRJ64NUI474BcztHPCGk8W3Z0,1718
|
|
266
|
-
plato/_generated/api/v2/sessions/connect_network.py,sha256=
|
|
274
|
+
plato/_generated/api/v2/sessions/connect_network.py,sha256=Z3D5dh_A_Q-QJw_fvyrC8lHS889OMHYeObLcFsUTyX0,1901
|
|
267
275
|
plato/_generated/api/v2/sessions/disk_snapshot.py,sha256=nHMXEPctQgiCqziXlvhw2FxgPKOC6VVvKEPXzVGWk5Y,2875
|
|
268
276
|
plato/_generated/api/v2/sessions/evaluate.py,sha256=X1JU1m4MLbHXk_2kjQ_QezBol63o80zKIb0OlDaNkmI,2077
|
|
269
277
|
plato/_generated/api/v2/sessions/execute.py,sha256=_jHXYeSsuYnOItZLdCeJ5Fxx5YNEAA7jWRcrXndA880,1979
|
|
@@ -293,7 +301,7 @@ plato/_generated/api/v2/user/__init__.py,sha256=yMh1Gn9VpKHQMQCmJdpeDPA9Ek9PBgP0
|
|
|
293
301
|
plato/_generated/api/v2/user/get_current_user.py,sha256=tvamtbWTEkeeNUBLSPqZIcCGqKVadQM3DVcezsWP22U,1814
|
|
294
302
|
plato/_generated/api/version/__init__.py,sha256=dQXTYrXjD1RZcvWwnlqXWAZ-eAV-V-6JSNuY7uaca7o,70
|
|
295
303
|
plato/_generated/api/version/check.py,sha256=HTVNw0oi9gbvX4pOVoH4y4JywCxdl1pJTCk2PjJFwJ4,778
|
|
296
|
-
plato/_generated/models/__init__.py,sha256=
|
|
304
|
+
plato/_generated/models/__init__.py,sha256=7Wma97R1YCb2Mnmi3lSu1M6nYN9xR8jZ8bRbfUHqUYs,162101
|
|
297
305
|
plato/_sims_generator/__init__.py,sha256=Km4QOl9wxjQ5dgpdhk9QnBFJFFc9eq3rPbMWIQRjIn0,1602
|
|
298
306
|
plato/_sims_generator/cli.py,sha256=mzolN-dxfMkVAdA-vC0esnai-cGg-i4ozOw8dACefV4,2709
|
|
299
307
|
plato/_sims_generator/instruction.py,sha256=Na9M-jIdBPhp_fLuBPTicoFnWriRyi8YiZ-eQBj64HI,6644
|
|
@@ -331,9 +339,9 @@ plato/chronos/api/agents/__init__.py,sha256=IaeIt8ge51rKVkR0wQzW6m0xJE74hFPxeoth
|
|
|
331
339
|
plato/chronos/api/agents/create_agent.py,sha256=G8LR1KlWOCfmZ71Sl0seo7aRYmG7_nokZKoIRV6ysnw,1418
|
|
332
340
|
plato/chronos/api/agents/delete_agent.py,sha256=fuL8Ip8veUXpOhSYxX_74S0zM_kZsTX61KosiFyhRWo,1241
|
|
333
341
|
plato/chronos/api/agents/get_agent.py,sha256=o61fxCyYpTe6-3SC2RAebp3kW8rgEOWSN_NCph_iMUc,1358
|
|
334
|
-
plato/chronos/api/agents/get_agent_schema.py,sha256=
|
|
335
|
-
plato/chronos/api/agents/get_agent_versions.py,sha256=
|
|
336
|
-
plato/chronos/api/agents/list_agents.py,sha256=
|
|
342
|
+
plato/chronos/api/agents/get_agent_schema.py,sha256=O-N1h0vQJIXM2uonYCgXa_FFr54C4_n0Spu-MdRy2U0,1679
|
|
343
|
+
plato/chronos/api/agents/get_agent_versions.py,sha256=h8f_DQyX4OM0oDNA4iZ-Zm6j7iemNgRf7nuze_3bdXc,1406
|
|
344
|
+
plato/chronos/api/agents/list_agents.py,sha256=jtzD0wFmlHPDFqrChCLCG5m6LkLuxNlZk4EboRpcAYA,1253
|
|
337
345
|
plato/chronos/api/agents/lookup_agent.py,sha256=DOGfrOK6Lh6ULMqRmf4zRQHlDXMhYenidx8wcZx4caY,1766
|
|
338
346
|
plato/chronos/api/auth/__init__.py,sha256=6qao3xT8yw9-WTpUlv4tVtpWhL2EycQd3I2WKQ5p9Lk,284
|
|
339
347
|
plato/chronos/api/auth/debug_auth_api_auth_debug_get.py,sha256=L1RWyQ1w7V8dyhOAU2VQlT9x0jkeng3eIvZDOv9Gl2w,881
|
|
@@ -353,11 +361,11 @@ plato/chronos/api/otel/__init__.py,sha256=w_DyYdNLj6xHi260C-HK9TJcZau0PJLOqey3qV
|
|
|
353
361
|
plato/chronos/api/otel/get_session_traces_api_otel_sessions__session_id__traces_get.py,sha256=s7xGuLD-TEYsUx56icdoBNiACaCo4Pcm8QDSuc74vSA,1294
|
|
354
362
|
plato/chronos/api/otel/receive_traces_api_otel_v1_traces_post.py,sha256=XvEe6XBB672qZ_d9IkD9dhxehK-H07yGxqKPaZG-EXA,1074
|
|
355
363
|
plato/chronos/api/registry/__init__.py,sha256=gPN-3oENHUrwaiacYt1_jI7HQ6gGe9i-34-Smb-0KHg,819
|
|
356
|
-
plato/chronos/api/registry/get_agent_schema_api_registry_agents__agent_name__schema_get.py,sha256=
|
|
357
|
-
plato/chronos/api/registry/get_agent_versions_api_registry_agents__agent_name__versions_get.py,sha256=
|
|
364
|
+
plato/chronos/api/registry/get_agent_schema_api_registry_agents__agent_name__schema_get.py,sha256=gkM9RY6yO_I4A2152BkaBzGyjAmWg0mm25s-c8QixwY,1533
|
|
365
|
+
plato/chronos/api/registry/get_agent_versions_api_registry_agents__agent_name__versions_get.py,sha256=f1YtvnT9HMkPxP3hLpIRx1K0KidEV9WmUA_bhBXCtiY,1266
|
|
358
366
|
plato/chronos/api/registry/get_world_schema_api_registry_worlds__package_name__schema_get.py,sha256=RM-1MDYaG8B9iRl93KBG4tVjWJAHA08X6lSwjzk8fkw,1697
|
|
359
367
|
plato/chronos/api/registry/get_world_versions_api_registry_worlds__package_name__versions_get.py,sha256=07MKXi5-d8Qk8cKRdVW2AZoeeksX7OpTgFR9bkJni0Y,1206
|
|
360
|
-
plato/chronos/api/registry/list_registry_agents_api_registry_agents_get.py,sha256=
|
|
368
|
+
plato/chronos/api/registry/list_registry_agents_api_registry_agents_get.py,sha256=gzRRPfHGzhczL1Xi274cg-oLwUzqdS2B7JkzhHNZKEw,1121
|
|
361
369
|
plato/chronos/api/registry/list_registry_worlds_api_registry_worlds_get.py,sha256=g9KHZ2ZLJnhS5uCb55K7ez5plpfGL88o-pcdLMDgrRg,1010
|
|
362
370
|
plato/chronos/api/runtimes/__init__.py,sha256=_887oqgAfMazmoU-tTbOQ4k-k6E0PW004bdFxTM117M,270
|
|
363
371
|
plato/chronos/api/runtimes/create_runtime.py,sha256=D37d2nMqyTxT8r_9faPWI-E18pAVjLlh0hCgBf0L6wQ,1524
|
|
@@ -372,9 +380,9 @@ plato/chronos/api/secrets/delete_secret.py,sha256=LWzJ78lT9C5NNhlaq8JJ4HcKzCVoj5
|
|
|
372
380
|
plato/chronos/api/secrets/get_secret.py,sha256=c4WzODFGHINAmdz8EWejECdlY9ezkWraUGWrwVuTPRA,1356
|
|
373
381
|
plato/chronos/api/secrets/list_secrets.py,sha256=_FT1VNok1STthEbjjGWmyGxjkRDvvDD_awU3xkjC1ak,1301
|
|
374
382
|
plato/chronos/api/secrets/update_secret.py,sha256=049iqznfUWpZVHVsw5y1c06KddX5Ou4keYiADyuLqjg,1550
|
|
375
|
-
plato/chronos/api/sessions/__init__.py,sha256
|
|
383
|
+
plato/chronos/api/sessions/__init__.py,sha256=-5EzHNcBKQD1wniQBwlWSZ8JhxajdSkBsQOc5Nm_y2U,735
|
|
376
384
|
plato/chronos/api/sessions/close_session.py,sha256=lGmWkSfh-9ul1nVzYSn0Ymck3ntm0UG0m4Jm0d1lU1A,1552
|
|
377
|
-
plato/chronos/api/sessions/complete_session.py,sha256=
|
|
385
|
+
plato/chronos/api/sessions/complete_session.py,sha256=Vhiqnz_kd2Qu3DaVHZPSDzkZtKrRJWbIGaK9w0K5pcU,2030
|
|
378
386
|
plato/chronos/api/sessions/create_session.py,sha256=p0PaUQLnWzhsekKUnQM5KiU8b68vldjR90Z8fn17gUo,1812
|
|
379
387
|
plato/chronos/api/sessions/get_session.py,sha256=_7TR8g1oFyKPQc0n94BmFScXQDkmXvP5mWRW94jMvm8,1961
|
|
380
388
|
plato/chronos/api/sessions/get_session_bash_logs_download.py,sha256=0WMxNC5XFVtMuCbIZxtEiUUQW9B4BihwSHkWUTD2YhU,1325
|
|
@@ -383,7 +391,8 @@ plato/chronos/api/sessions/get_session_live_logs.py,sha256=3H5MHwYBr5mzQxBNEx54U
|
|
|
383
391
|
plato/chronos/api/sessions/get_session_logs.py,sha256=mH9EZ2dD22U4KPEMwCp6RRbJ8k-ZhmSOF9bx8XgWVMc,1662
|
|
384
392
|
plato/chronos/api/sessions/get_session_logs_download.py,sha256=u1VKN9_ya5HviQvuj47Bjxb8TdTRrVjGZ-xhh34j5JE,1491
|
|
385
393
|
plato/chronos/api/sessions/get_session_status.py,sha256=pka9CNYW1DwfB5xxo8ffbfJ3sDQBhxOnNL7-J0pCyVY,1476
|
|
386
|
-
plato/chronos/api/sessions/
|
|
394
|
+
plato/chronos/api/sessions/list_session_creators.py,sha256=eHm3XvuKc2ebAENPk04nE66jkRb3TxeSQ3hWGLbhYrU,1349
|
|
395
|
+
plato/chronos/api/sessions/list_sessions.py,sha256=MNT8RTaQU8RoYVSEiNtjzMMeBmuwkK0VwePnHF_rRAk,2748
|
|
387
396
|
plato/chronos/api/sessions/list_tags.py,sha256=zMIHZhCH5o0Mspz9Z9eX_dUEwBRsQs2rhlhQLGZUuCM,2002
|
|
388
397
|
plato/chronos/api/sessions/update_session_tags.py,sha256=mJuhBoqK6bIvtGI2KAgEt_wq1s5Yv4WYu29m1JNjq_w,1596
|
|
389
398
|
plato/chronos/api/status/__init__.py,sha256=LUmI3D_ynVMsnkWJI-6rm5ZuWjZypULrBKQDfh2uq-Y,184
|
|
@@ -403,7 +412,7 @@ plato/chronos/api/worlds/create_world.py,sha256=H6yl5QIazNXgryOR5rvscSIMf8Y9kjc6
|
|
|
403
412
|
plato/chronos/api/worlds/delete_world.py,sha256=UETu3Zk0e2VkDdAyMilv1ev-0g_j-oujH1Dc8DBqQOc,1239
|
|
404
413
|
plato/chronos/api/worlds/get_world.py,sha256=eHTM1U5JiNTaZwYLh7x4QVBoRQeI5kaJ9o6xSi4-nos,1356
|
|
405
414
|
plato/chronos/api/worlds/list_worlds.py,sha256=hBAuGb69tlasyn-kV_LNr9x6Rr7SHhST5hXJn1uqMf8,1253
|
|
406
|
-
plato/chronos/models/__init__.py,sha256=
|
|
415
|
+
plato/chronos/models/__init__.py,sha256=d_L57okr2l6WIqAD-VLFQ9njrbovP2CCdvsEV50jMn4,23198
|
|
407
416
|
plato/sims/README.md,sha256=FIbJhNVNAV-SO6dq_cXX3Rg0C7HdQCfEY9YxGlkCmsM,6902
|
|
408
417
|
plato/sims/__init__.py,sha256=tnoCGKZwNx6h22tEWLujdpLv6K4PpFU2RnDOhL1o-Uc,1494
|
|
409
418
|
plato/sims/agent_helpers.py,sha256=kITvQywoTCS8mGhro3jZWuPJHDlje-UZujhjoahqhd0,10291
|
|
@@ -427,7 +436,7 @@ plato/v1/cli/chronos.py,sha256=lzFY0nomP1AY14i8oc8OvWOdq9ydCiE3dN2XrSupvA4,27827
|
|
|
427
436
|
plato/v1/cli/main.py,sha256=Yqy1vn4sGyAWKNpDVcLl9pbzkMn89tYVBIxFU30ZtPk,6905
|
|
428
437
|
plato/v1/cli/pm.py,sha256=Q6HFTb8ZO_aB0EtAO6-OOsnVv3SoC8hL7UHpawBz46Y,55520
|
|
429
438
|
plato/v1/cli/proxy.py,sha256=WmCt0R9Gos1q0FZTQSsbloNC3-Cnx6Yb60RZF1BzC18,12178
|
|
430
|
-
plato/v1/cli/sandbox.py,sha256=
|
|
439
|
+
plato/v1/cli/sandbox.py,sha256=3TkXBTdYNV45XvnG4F4QzETz908i3vuSswTVCaBY-WU,101035
|
|
431
440
|
plato/v1/cli/ssh.py,sha256=9ypjn5kQuaTcVjsWMDIUDyehXRH9fauk_z-C3mXzYJ8,2381
|
|
432
441
|
plato/v1/cli/utils.py,sha256=ba7Crv4OjDmgCv4SeB8UeZDin-iOdQw_3N6fd-g5XVk,4572
|
|
433
442
|
plato/v1/cli/verify.py,sha256=D-hyiCBPL_G_9uTIEugUsq_B9y6mRVAUWILpfUx4YAo,22814
|
|
@@ -485,14 +494,14 @@ plato/v2/async_/chronos.py,sha256=WeqYF3HIKs7hV9LNZb2GlDS1yP6b422DZKtNuPxdL34,12
|
|
|
485
494
|
plato/v2/async_/client.py,sha256=IhiEiwbLNPBr9JJilw4uz7MLKXY_rUZpYGYC1dX-UfA,5186
|
|
486
495
|
plato/v2/async_/environment.py,sha256=M5IeWYLwREOIyuS2zqgBSqHE_x66_OZXrevA9Rkc8Is,5825
|
|
487
496
|
plato/v2/async_/flow_executor.py,sha256=Tl4nRu1ZPWJFNNxyTGy-PxvebZEUD18ZDaz8T2chtzU,14188
|
|
488
|
-
plato/v2/async_/session.py,sha256=
|
|
497
|
+
plato/v2/async_/session.py,sha256=0zErrTEm9-xxIz6pzp_y2stzn498KXVle7n51HVhyhc,37910
|
|
489
498
|
plato/v2/sync/__init__.py,sha256=6Hzc5k34WnHTUMPWrIefnL4P5YEoJMRLOmYDO7LxGg8,405
|
|
490
499
|
plato/v2/sync/artifact.py,sha256=wTLC-tugG128wLvh-JqNPb0zsw5FXEJlZNahurSWink,1169
|
|
491
500
|
plato/v2/sync/chronos.py,sha256=ChXpasjRzAZjoYTimpPqYydnwEk-IgdxR0SDXDOZbUM,12078
|
|
492
501
|
plato/v2/sync/client.py,sha256=cA2ifI8BMlB-WAOog6G0BxuFEnDqnEXi5CIUJXEHBnE,4829
|
|
493
502
|
plato/v2/sync/environment.py,sha256=WnDzbyEHpwCSEP8XnfNSjIYS7rt7lYR4HGJjzprZmTQ,5066
|
|
494
503
|
plato/v2/sync/flow_executor.py,sha256=N41-WCWIJVcCR2UmPUEiK7roNacYoeONkRXpR7lUgT8,13941
|
|
495
|
-
plato/v2/sync/session.py,sha256=
|
|
504
|
+
plato/v2/sync/session.py,sha256=NL_qEXnXjZfAsuFgpq72pVmHa9ouo8W3HkJ5vYaNSQU,29555
|
|
496
505
|
plato/v2/utils/__init__.py,sha256=XLeFFsjXkm9g2raMmo7Wt4QN4hhCrNZDJKnpffJ4LtM,38
|
|
497
506
|
plato/v2/utils/db_cleanup.py,sha256=JMzAAJz0ZnoUXtd8F4jpQmBpJpos2__RkgN_cuEearg,8692
|
|
498
507
|
plato/v2/utils/gateway_tunnel.py,sha256=eWgwf4VV8-jx6iCuHFgCISsAOVmNOOjCB56EuZLsnOA,7171
|
|
@@ -504,7 +513,7 @@ plato/worlds/base.py,sha256=-RR71bSxEFI5yydtrtq-AAbuw98CIjvmrbztqzB9oIc,31041
|
|
|
504
513
|
plato/worlds/build_hook.py,sha256=KSoW0kqa5b7NyZ7MYOw2qsZ_2FkWuz0M3Ru7AKOP7Qw,3486
|
|
505
514
|
plato/worlds/config.py,sha256=O1lUXzxp-Z_M7izslT8naXgE6XujjzwYFFrDDzUOueI,12736
|
|
506
515
|
plato/worlds/runner.py,sha256=r9B2BxBae8_dM7y5cJf9xhThp_I1Qvf_tlPq2rs8qC8,4013
|
|
507
|
-
plato_sdk_v2-2.7.
|
|
508
|
-
plato_sdk_v2-2.7.
|
|
509
|
-
plato_sdk_v2-2.7.
|
|
510
|
-
plato_sdk_v2-2.7.
|
|
516
|
+
plato_sdk_v2-2.7.5.dist-info/METADATA,sha256=UryuMNFYUMIQb8k_-wWTmCm4EHX0Z__B92H_NpRr8O4,8652
|
|
517
|
+
plato_sdk_v2-2.7.5.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
518
|
+
plato_sdk_v2-2.7.5.dist-info/entry_points.txt,sha256=upGMbJCx6YWUTKrPoYvYUYfFCqYr75nHDwhA-45m6p8,136
|
|
519
|
+
plato_sdk_v2-2.7.5.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|