plato-sdk-v2 2.5.0__py3-none-any.whl → 2.6.0__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/evals/get_scores_by_user.py +7 -0
- plato/_generated/api/v1/testcases/get_testcases.py +14 -0
- plato/_generated/api/v2/sessions/setup_sandbox.py +2 -2
- plato/_generated/models/__init__.py +42 -2
- plato/chronos/api/admin/__init__.py +17 -0
- plato/chronos/api/admin/clear_database_api_admin_clear_db_post.py +57 -0
- plato/chronos/api/admin/sync_agents_api_admin_sync_agents_post.py +67 -0
- plato/chronos/api/admin/sync_all_api_admin_sync_all_post.py +67 -0
- plato/chronos/api/admin/sync_runtimes_api_admin_sync_runtimes_post.py +67 -0
- plato/chronos/api/admin/sync_worlds_api_admin_sync_worlds_post.py +67 -0
- plato/chronos/api/agents/list_agents.py +5 -5
- plato/chronos/api/checkpoints/__init__.py +8 -0
- plato/chronos/api/checkpoints/list_checkpoints.py +52 -0
- plato/chronos/api/checkpoints/preview_checkpoint.py +74 -0
- plato/chronos/api/events/__init__.py +8 -0
- plato/chronos/api/events/get_session_event.py +68 -0
- plato/chronos/api/events/list_session_events.py +62 -0
- plato/chronos/api/jobs/launch_job.py +8 -2
- plato/chronos/api/otel/__init__.py +8 -0
- plato/chronos/api/otel/get_session_traces_api_otel_sessions__session_id__traces_get.py +56 -0
- plato/chronos/api/otel/receive_traces_api_otel_v1_traces_post.py +49 -0
- plato/chronos/api/registry/list_registry_agents_api_registry_agents_get.py +5 -5
- plato/chronos/api/runtimes/__init__.py +2 -1
- plato/chronos/api/runtimes/get_runtime_logs.py +61 -0
- plato/chronos/api/sessions/__init__.py +24 -1
- plato/chronos/api/sessions/close_session.py +66 -0
- plato/chronos/api/sessions/complete_session.py +74 -0
- plato/chronos/api/sessions/create_session.py +69 -0
- plato/chronos/api/sessions/get_session.py +20 -2
- plato/chronos/api/sessions/get_session_bash_logs_download.py +61 -0
- plato/chronos/api/sessions/get_session_envs.py +62 -0
- plato/chronos/api/sessions/get_session_live_logs.py +62 -0
- plato/chronos/api/sessions/get_session_logs.py +3 -3
- plato/chronos/api/sessions/get_session_status.py +62 -0
- plato/chronos/api/sessions/list_sessions.py +20 -2
- plato/chronos/api/sessions/list_tags.py +80 -0
- plato/chronos/api/sessions/update_session_tags.py +68 -0
- plato/chronos/models/__init__.py +241 -196
- plato/v1/cli/chronos.py +62 -0
- plato/v2/__init__.py +8 -0
- plato/v2/async_/__init__.py +4 -0
- plato/v2/async_/chronos.py +419 -0
- plato/v2/sync/__init__.py +3 -0
- plato/v2/sync/chronos.py +419 -0
- plato/worlds/base.py +12 -2
- {plato_sdk_v2-2.5.0.dist-info → plato_sdk_v2-2.6.0.dist-info}/METADATA +1 -1
- {plato_sdk_v2-2.5.0.dist-info → plato_sdk_v2-2.6.0.dist-info}/RECORD +50 -23
- {plato_sdk_v2-2.5.0.dist-info → plato_sdk_v2-2.6.0.dist-info}/WHEEL +0 -0
- {plato_sdk_v2-2.5.0.dist-info → plato_sdk_v2-2.6.0.dist-info}/entry_points.txt +0 -0
plato/v2/sync/chronos.py
ADDED
|
@@ -0,0 +1,419 @@
|
|
|
1
|
+
"""Plato SDK v2 - Synchronous Chronos Client.
|
|
2
|
+
|
|
3
|
+
Provides high-level APIs for managing Chronos sessions and jobs programmatically.
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
|
|
8
|
+
import logging
|
|
9
|
+
import os
|
|
10
|
+
import time
|
|
11
|
+
from typing import Any
|
|
12
|
+
|
|
13
|
+
import httpx
|
|
14
|
+
from dotenv import load_dotenv
|
|
15
|
+
|
|
16
|
+
from plato.chronos.api.jobs import launch_job
|
|
17
|
+
from plato.chronos.api.sessions import (
|
|
18
|
+
close_session,
|
|
19
|
+
complete_session,
|
|
20
|
+
get_session,
|
|
21
|
+
get_session_envs,
|
|
22
|
+
get_session_logs,
|
|
23
|
+
get_session_status,
|
|
24
|
+
list_sessions,
|
|
25
|
+
list_tags,
|
|
26
|
+
update_session_tags,
|
|
27
|
+
)
|
|
28
|
+
from plato.chronos.models import (
|
|
29
|
+
CompleteSessionRequest,
|
|
30
|
+
LaunchJobRequest,
|
|
31
|
+
LaunchJobResponse,
|
|
32
|
+
RuntimeConfig,
|
|
33
|
+
SessionEnvsResponse,
|
|
34
|
+
SessionListResponse,
|
|
35
|
+
SessionLogsResponse,
|
|
36
|
+
SessionResponse,
|
|
37
|
+
SessionStatusResponse,
|
|
38
|
+
TagsListResponse,
|
|
39
|
+
UpdateTagsRequest,
|
|
40
|
+
WorldConfig,
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
load_dotenv()
|
|
44
|
+
|
|
45
|
+
logger = logging.getLogger(__name__)
|
|
46
|
+
|
|
47
|
+
DEFAULT_CHRONOS_URL = "https://chronos.plato.so"
|
|
48
|
+
DEFAULT_TIMEOUT = 120.0
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
class ChronosSession:
|
|
52
|
+
"""Wrapper for a Chronos session with convenient methods.
|
|
53
|
+
|
|
54
|
+
Provides methods to check status, get logs, update tags, and stop the session.
|
|
55
|
+
"""
|
|
56
|
+
|
|
57
|
+
def __init__(
|
|
58
|
+
self,
|
|
59
|
+
http_client: httpx.Client,
|
|
60
|
+
api_key: str,
|
|
61
|
+
session_id: str,
|
|
62
|
+
plato_session_id: str | None = None,
|
|
63
|
+
):
|
|
64
|
+
self._http = http_client
|
|
65
|
+
self._api_key = api_key
|
|
66
|
+
self._session_id = session_id
|
|
67
|
+
self._plato_session_id = plato_session_id
|
|
68
|
+
|
|
69
|
+
@property
|
|
70
|
+
def session_id(self) -> str:
|
|
71
|
+
"""Get the Chronos session public ID."""
|
|
72
|
+
return self._session_id
|
|
73
|
+
|
|
74
|
+
@property
|
|
75
|
+
def plato_session_id(self) -> str | None:
|
|
76
|
+
"""Get the underlying Plato session ID."""
|
|
77
|
+
return self._plato_session_id
|
|
78
|
+
|
|
79
|
+
def get_status(self) -> SessionStatusResponse:
|
|
80
|
+
"""Get the current status of the session (lightweight).
|
|
81
|
+
|
|
82
|
+
Returns:
|
|
83
|
+
SessionStatusResponse with status and status_reason.
|
|
84
|
+
"""
|
|
85
|
+
return get_session_status.sync(
|
|
86
|
+
client=self._http,
|
|
87
|
+
public_id=self._session_id,
|
|
88
|
+
x_api_key=self._api_key,
|
|
89
|
+
)
|
|
90
|
+
|
|
91
|
+
def get_details(self) -> SessionResponse:
|
|
92
|
+
"""Get full session details including trajectory and world config.
|
|
93
|
+
|
|
94
|
+
Returns:
|
|
95
|
+
SessionResponse with full session details.
|
|
96
|
+
"""
|
|
97
|
+
return get_session.sync(
|
|
98
|
+
client=self._http,
|
|
99
|
+
public_id=self._session_id,
|
|
100
|
+
x_api_key=self._api_key,
|
|
101
|
+
)
|
|
102
|
+
|
|
103
|
+
def get_envs(self) -> SessionEnvsResponse:
|
|
104
|
+
"""Get environment information for this session.
|
|
105
|
+
|
|
106
|
+
Returns:
|
|
107
|
+
SessionEnvsResponse with list of environments.
|
|
108
|
+
"""
|
|
109
|
+
return get_session_envs.sync(
|
|
110
|
+
client=self._http,
|
|
111
|
+
public_id=self._session_id,
|
|
112
|
+
x_api_key=self._api_key,
|
|
113
|
+
)
|
|
114
|
+
|
|
115
|
+
def get_logs(
|
|
116
|
+
self,
|
|
117
|
+
limit: int = 10000,
|
|
118
|
+
) -> SessionLogsResponse:
|
|
119
|
+
"""Get logs for this session.
|
|
120
|
+
|
|
121
|
+
Args:
|
|
122
|
+
limit: Maximum number of log entries to return.
|
|
123
|
+
|
|
124
|
+
Returns:
|
|
125
|
+
SessionLogsResponse with log entries.
|
|
126
|
+
"""
|
|
127
|
+
return get_session_logs.sync(
|
|
128
|
+
client=self._http,
|
|
129
|
+
public_id=self._session_id,
|
|
130
|
+
limit=limit,
|
|
131
|
+
x_api_key=self._api_key,
|
|
132
|
+
)
|
|
133
|
+
|
|
134
|
+
def update_tags(self, tags: list[str]) -> SessionResponse:
|
|
135
|
+
"""Update tags for this session.
|
|
136
|
+
|
|
137
|
+
Args:
|
|
138
|
+
tags: List of tags (use '.' for hierarchy, '_' instead of '-').
|
|
139
|
+
|
|
140
|
+
Returns:
|
|
141
|
+
Updated SessionResponse.
|
|
142
|
+
"""
|
|
143
|
+
# Normalize tags
|
|
144
|
+
normalized = [tag.replace("-", "_").replace(":", ".").replace(" ", "_") for tag in tags]
|
|
145
|
+
request = UpdateTagsRequest(tags=normalized)
|
|
146
|
+
return update_session_tags.sync(
|
|
147
|
+
client=self._http,
|
|
148
|
+
public_id=self._session_id,
|
|
149
|
+
body=request,
|
|
150
|
+
x_api_key=self._api_key,
|
|
151
|
+
)
|
|
152
|
+
|
|
153
|
+
def stop(self, error_message: str = "Cancelled by user") -> SessionResponse:
|
|
154
|
+
"""Stop/cancel this session.
|
|
155
|
+
|
|
156
|
+
Args:
|
|
157
|
+
error_message: Reason for stopping.
|
|
158
|
+
|
|
159
|
+
Returns:
|
|
160
|
+
Updated SessionResponse.
|
|
161
|
+
"""
|
|
162
|
+
request = CompleteSessionRequest(
|
|
163
|
+
status="cancelled",
|
|
164
|
+
error_message=error_message,
|
|
165
|
+
)
|
|
166
|
+
return complete_session.sync(
|
|
167
|
+
client=self._http,
|
|
168
|
+
public_id=self._session_id,
|
|
169
|
+
body=request,
|
|
170
|
+
x_api_key=self._api_key,
|
|
171
|
+
)
|
|
172
|
+
|
|
173
|
+
def complete(
|
|
174
|
+
self,
|
|
175
|
+
status: str = "completed",
|
|
176
|
+
exit_code: int | None = None,
|
|
177
|
+
error_message: str | None = None,
|
|
178
|
+
) -> SessionResponse:
|
|
179
|
+
"""Mark session as completed or failed.
|
|
180
|
+
|
|
181
|
+
Args:
|
|
182
|
+
status: Final status ('completed', 'failed', or 'cancelled').
|
|
183
|
+
exit_code: Optional exit code from world runner.
|
|
184
|
+
error_message: Error message if failed.
|
|
185
|
+
|
|
186
|
+
Returns:
|
|
187
|
+
Updated SessionResponse.
|
|
188
|
+
"""
|
|
189
|
+
request = CompleteSessionRequest(
|
|
190
|
+
status=status,
|
|
191
|
+
exit_code=exit_code,
|
|
192
|
+
error_message=error_message,
|
|
193
|
+
)
|
|
194
|
+
return complete_session.sync(
|
|
195
|
+
client=self._http,
|
|
196
|
+
public_id=self._session_id,
|
|
197
|
+
body=request,
|
|
198
|
+
x_api_key=self._api_key,
|
|
199
|
+
)
|
|
200
|
+
|
|
201
|
+
def close(self) -> None:
|
|
202
|
+
"""Close the Plato session (release VM resources).
|
|
203
|
+
|
|
204
|
+
Note: This closes the underlying Plato session, not just the Chronos record.
|
|
205
|
+
"""
|
|
206
|
+
close_session.sync(
|
|
207
|
+
client=self._http,
|
|
208
|
+
public_id=self._session_id,
|
|
209
|
+
x_api_key=self._api_key,
|
|
210
|
+
)
|
|
211
|
+
|
|
212
|
+
def wait_until_complete(
|
|
213
|
+
self,
|
|
214
|
+
timeout: float = 3600.0,
|
|
215
|
+
poll_interval: float = 5.0,
|
|
216
|
+
) -> SessionResponse:
|
|
217
|
+
"""Wait until the session reaches a terminal state.
|
|
218
|
+
|
|
219
|
+
Args:
|
|
220
|
+
timeout: Maximum time to wait in seconds.
|
|
221
|
+
poll_interval: Time between status checks.
|
|
222
|
+
|
|
223
|
+
Returns:
|
|
224
|
+
Final SessionResponse.
|
|
225
|
+
|
|
226
|
+
Raises:
|
|
227
|
+
TimeoutError: If session doesn't complete within timeout.
|
|
228
|
+
"""
|
|
229
|
+
terminal_statuses = {"completed", "failed", "cancelled", "error"}
|
|
230
|
+
elapsed = 0.0
|
|
231
|
+
|
|
232
|
+
while elapsed < timeout:
|
|
233
|
+
status_response = self.get_status()
|
|
234
|
+
if status_response.status in terminal_statuses:
|
|
235
|
+
return self.get_details()
|
|
236
|
+
|
|
237
|
+
time.sleep(poll_interval)
|
|
238
|
+
elapsed += poll_interval
|
|
239
|
+
|
|
240
|
+
raise TimeoutError(f"Session {self._session_id} did not complete within {timeout} seconds")
|
|
241
|
+
|
|
242
|
+
def __repr__(self) -> str:
|
|
243
|
+
return f"ChronosSession(session_id={self._session_id!r})"
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
class Chronos:
|
|
247
|
+
"""Synchronous client for Chronos job management API.
|
|
248
|
+
|
|
249
|
+
Provides high-level methods for launching jobs, managing sessions,
|
|
250
|
+
and monitoring job status.
|
|
251
|
+
|
|
252
|
+
Usage:
|
|
253
|
+
from plato.v2.sync import Chronos
|
|
254
|
+
|
|
255
|
+
with Chronos() as chronos:
|
|
256
|
+
# Launch a job
|
|
257
|
+
session = chronos.launch(
|
|
258
|
+
world_package="plato-world-computer-use",
|
|
259
|
+
world_config={"task": "Navigate to google.com"},
|
|
260
|
+
tags=["test", "project.my_project"],
|
|
261
|
+
)
|
|
262
|
+
|
|
263
|
+
# Wait for completion
|
|
264
|
+
result = session.wait_until_complete()
|
|
265
|
+
print(f"Status: {result.status}")
|
|
266
|
+
|
|
267
|
+
# Or poll manually
|
|
268
|
+
while True:
|
|
269
|
+
status = session.get_status()
|
|
270
|
+
if status.status in ("completed", "failed"):
|
|
271
|
+
break
|
|
272
|
+
time.sleep(5)
|
|
273
|
+
"""
|
|
274
|
+
|
|
275
|
+
def __init__(
|
|
276
|
+
self,
|
|
277
|
+
api_key: str | None = None,
|
|
278
|
+
base_url: str | None = None,
|
|
279
|
+
timeout: float = DEFAULT_TIMEOUT,
|
|
280
|
+
):
|
|
281
|
+
"""Initialize the Chronos client.
|
|
282
|
+
|
|
283
|
+
Args:
|
|
284
|
+
api_key: Plato API key. Falls back to PLATO_API_KEY env var.
|
|
285
|
+
base_url: Chronos API base URL. Falls back to CHRONOS_URL env var.
|
|
286
|
+
timeout: Request timeout in seconds.
|
|
287
|
+
"""
|
|
288
|
+
resolved_api_key = api_key or os.environ.get("PLATO_API_KEY")
|
|
289
|
+
if not resolved_api_key:
|
|
290
|
+
raise ValueError("API key required. Set PLATO_API_KEY or pass api_key=")
|
|
291
|
+
self._api_key: str = resolved_api_key
|
|
292
|
+
|
|
293
|
+
url = base_url or os.environ.get("CHRONOS_URL", DEFAULT_CHRONOS_URL)
|
|
294
|
+
self.base_url = url.rstrip("/")
|
|
295
|
+
self.timeout = timeout
|
|
296
|
+
|
|
297
|
+
self._http = httpx.Client(
|
|
298
|
+
base_url=self.base_url,
|
|
299
|
+
timeout=httpx.Timeout(timeout),
|
|
300
|
+
)
|
|
301
|
+
|
|
302
|
+
def launch(
|
|
303
|
+
self,
|
|
304
|
+
world_package: str,
|
|
305
|
+
world_config: dict[str, Any] | None = None,
|
|
306
|
+
runtime_artifact_id: str | None = None,
|
|
307
|
+
tags: list[str] | None = None,
|
|
308
|
+
) -> ChronosSession:
|
|
309
|
+
"""Launch a new Chronos job.
|
|
310
|
+
|
|
311
|
+
Args:
|
|
312
|
+
world_package: World package name with optional version
|
|
313
|
+
(e.g., "plato-world-computer-use:0.1.0").
|
|
314
|
+
world_config: Configuration passed to the world runner.
|
|
315
|
+
runtime_artifact_id: Optional runtime artifact ID for cached environment.
|
|
316
|
+
tags: Optional tags for organizing sessions (use '.' for hierarchy).
|
|
317
|
+
|
|
318
|
+
Returns:
|
|
319
|
+
ChronosSession for monitoring and managing the job.
|
|
320
|
+
|
|
321
|
+
Example:
|
|
322
|
+
session = chronos.launch(
|
|
323
|
+
world_package="plato-world-computer-use",
|
|
324
|
+
world_config={
|
|
325
|
+
"task": "Navigate to google.com",
|
|
326
|
+
"agents": [{"name": "computer-use", "version": "latest"}],
|
|
327
|
+
},
|
|
328
|
+
tags=["project.my_project", "env.dev"],
|
|
329
|
+
)
|
|
330
|
+
"""
|
|
331
|
+
# Normalize tags
|
|
332
|
+
normalized_tags = None
|
|
333
|
+
if tags:
|
|
334
|
+
normalized_tags = [tag.replace("-", "_").replace(":", ".").replace(" ", "_") for tag in tags]
|
|
335
|
+
|
|
336
|
+
request = LaunchJobRequest(
|
|
337
|
+
world=WorldConfig(
|
|
338
|
+
package=world_package,
|
|
339
|
+
config=world_config,
|
|
340
|
+
),
|
|
341
|
+
runtime=RuntimeConfig(artifact_id=runtime_artifact_id) if runtime_artifact_id else None,
|
|
342
|
+
tags=normalized_tags,
|
|
343
|
+
)
|
|
344
|
+
|
|
345
|
+
response: LaunchJobResponse = launch_job.sync(
|
|
346
|
+
client=self._http,
|
|
347
|
+
body=request,
|
|
348
|
+
x_api_key=self._api_key,
|
|
349
|
+
)
|
|
350
|
+
|
|
351
|
+
logger.info(f"Launched Chronos job: {response.session_id}")
|
|
352
|
+
|
|
353
|
+
return ChronosSession(
|
|
354
|
+
http_client=self._http,
|
|
355
|
+
api_key=self.api_key,
|
|
356
|
+
session_id=response.session_id,
|
|
357
|
+
plato_session_id=response.plato_session_id,
|
|
358
|
+
)
|
|
359
|
+
|
|
360
|
+
def get_session(self, session_id: str) -> ChronosSession:
|
|
361
|
+
"""Get a ChronosSession wrapper for an existing session.
|
|
362
|
+
|
|
363
|
+
Args:
|
|
364
|
+
session_id: The Chronos session public ID.
|
|
365
|
+
|
|
366
|
+
Returns:
|
|
367
|
+
ChronosSession for the specified session.
|
|
368
|
+
"""
|
|
369
|
+
# Verify the session exists by fetching status
|
|
370
|
+
get_session_status.sync(
|
|
371
|
+
client=self._http,
|
|
372
|
+
public_id=session_id,
|
|
373
|
+
x_api_key=self._api_key,
|
|
374
|
+
)
|
|
375
|
+
|
|
376
|
+
return ChronosSession(
|
|
377
|
+
http_client=self._http,
|
|
378
|
+
api_key=self.api_key,
|
|
379
|
+
session_id=session_id,
|
|
380
|
+
)
|
|
381
|
+
|
|
382
|
+
def list_sessions(
|
|
383
|
+
self,
|
|
384
|
+
tag: str | None = None,
|
|
385
|
+
) -> SessionListResponse:
|
|
386
|
+
"""List Chronos sessions.
|
|
387
|
+
|
|
388
|
+
Args:
|
|
389
|
+
tag: Filter by tag (fuzzy substring match).
|
|
390
|
+
|
|
391
|
+
Returns:
|
|
392
|
+
SessionListResponse with list of sessions.
|
|
393
|
+
"""
|
|
394
|
+
return list_sessions.sync(
|
|
395
|
+
client=self._http,
|
|
396
|
+
tag=tag,
|
|
397
|
+
x_api_key=self._api_key,
|
|
398
|
+
)
|
|
399
|
+
|
|
400
|
+
def list_tags(self) -> TagsListResponse:
|
|
401
|
+
"""List all unique tags across sessions.
|
|
402
|
+
|
|
403
|
+
Returns:
|
|
404
|
+
TagsListResponse with list of tags.
|
|
405
|
+
"""
|
|
406
|
+
return list_tags.sync(
|
|
407
|
+
client=self._http,
|
|
408
|
+
x_api_key=self._api_key,
|
|
409
|
+
)
|
|
410
|
+
|
|
411
|
+
def close(self) -> None:
|
|
412
|
+
"""Close the underlying HTTP client."""
|
|
413
|
+
self._http.close()
|
|
414
|
+
|
|
415
|
+
def __enter__(self) -> Chronos:
|
|
416
|
+
return self
|
|
417
|
+
|
|
418
|
+
def __exit__(self, *args: Any) -> None:
|
|
419
|
+
self.close()
|
plato/worlds/base.py
CHANGED
|
@@ -155,11 +155,11 @@ class BaseWorld(ABC, Generic[ConfigT]):
|
|
|
155
155
|
|
|
156
156
|
@classmethod
|
|
157
157
|
def get_schema(cls) -> dict:
|
|
158
|
-
"""Get full schema including world config, agents, and
|
|
158
|
+
"""Get full schema including world config, agents, secrets, and envs."""
|
|
159
159
|
config_class = cls.get_config_class()
|
|
160
160
|
schema = config_class.get_json_schema()
|
|
161
161
|
|
|
162
|
-
|
|
162
|
+
result = {
|
|
163
163
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
164
164
|
"type": "object",
|
|
165
165
|
"properties": schema.get("properties", {}),
|
|
@@ -169,6 +169,16 @@ class BaseWorld(ABC, Generic[ConfigT]):
|
|
|
169
169
|
"envs": schema.get("envs", []),
|
|
170
170
|
}
|
|
171
171
|
|
|
172
|
+
# Include env_list if present (for worlds with arbitrary environment lists)
|
|
173
|
+
if "env_list" in schema:
|
|
174
|
+
result["env_list"] = schema["env_list"]
|
|
175
|
+
|
|
176
|
+
# Include $defs if present (for nested type references)
|
|
177
|
+
if "$defs" in schema:
|
|
178
|
+
result["$defs"] = schema["$defs"]
|
|
179
|
+
|
|
180
|
+
return result
|
|
181
|
+
|
|
172
182
|
@abstractmethod
|
|
173
183
|
async def reset(self) -> Observation:
|
|
174
184
|
"""Setup the world and return initial observation.
|
|
@@ -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=-vi0WFWBl1r0SP4-d---XUK4RxKbzlq5cyc2SWzsUFg,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
|
|
@@ -54,7 +54,7 @@ plato/_generated/api/v1/evals/__init__.py,sha256=TNqMltP6UwzIoFB087RwkXprggoaLWt
|
|
|
54
54
|
plato/_generated/api/v1/evals/create_test_case_review.py,sha256=QE9eFypoTSAqUC8C0Rmt8OXwS8Ak9cz63Ocm6v_In84,1854
|
|
55
55
|
plato/_generated/api/v1/evals/evaluate_python.py,sha256=RRW6rd2-WRAsWD3mJ1Vt4TGiinJ445x_rVqahUJUZyE,1657
|
|
56
56
|
plato/_generated/api/v1/evals/get_all_test_case_reviews.py,sha256=w1qGc3BnpcPS6pFSUvMSF_aN7EYl7HF5YwKzVDkibg4,1703
|
|
57
|
-
plato/_generated/api/v1/evals/get_scores_by_user.py,sha256=
|
|
57
|
+
plato/_generated/api/v1/evals/get_scores_by_user.py,sha256=_NZkKBQT_BBrIIYXsUGV47DNcNLHv6aqJNfzDqHZyf4,2725
|
|
58
58
|
plato/_generated/api/v1/evals/get_scoring.py,sha256=766R2m7a-mb38bHbpO1RPQviKxPbb6oq0-s2_QX0Eic,985
|
|
59
59
|
plato/_generated/api/v1/evals/get_test_case_review.py,sha256=-HHRPTfLVVUT7X4bYrg9FyvXR3Ve4N9dCSJYPG80w0w,1683
|
|
60
60
|
plato/_generated/api/v1/evals/human_in_the_loop_scoring.py,sha256=wmCt80j96Ca75IlblHV8SjUvulkDS_DJ6O43mspBYWM,1939
|
|
@@ -190,7 +190,7 @@ plato/_generated/api/v1/testcases/get_organization_test_case_assignments.py,sha2
|
|
|
190
190
|
plato/_generated/api/v1/testcases/get_testcase.py,sha256=EydIk-2zdS6XT9-btLWCE5i-N2lT7AlAe5amQQJNn-c,866
|
|
191
191
|
plato/_generated/api/v1/testcases/get_testcase_metadata_for_scoring.py,sha256=pkrFamV66L_pDj6e7UDf0dDgqA1_Zf8Dz8Jki-ajLtI,1974
|
|
192
192
|
plato/_generated/api/v1/testcases/get_testcase_sets.py,sha256=NSqnYWvj_G3ivnuuV797g85NGzHXi3z-UlvvRoFMwRM,1375
|
|
193
|
-
plato/_generated/api/v1/testcases/get_testcases.py,sha256=
|
|
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
|
|
@@ -272,7 +272,7 @@ plato/_generated/api/v2/sessions/log_job_mutation.py,sha256=6x8rSFCbd3u3p3jms62X
|
|
|
272
272
|
plato/_generated/api/v2/sessions/make.py,sha256=1FP7rCbjT62T8Of9otByl6L0p-VwwsruoaK--vYUUx0,2081
|
|
273
273
|
plato/_generated/api/v2/sessions/reset.py,sha256=L8s2E_8wMq0hkNGNKrCx8gHTm-1KXltlzfHVI5sY14U,1941
|
|
274
274
|
plato/_generated/api/v2/sessions/set_date.py,sha256=jbw3KVBI5TngHGBMavFawjNudRutAC0eb8jEbsSJdkw,2278
|
|
275
|
-
plato/_generated/api/v2/sessions/setup_sandbox.py,sha256=
|
|
275
|
+
plato/_generated/api/v2/sessions/setup_sandbox.py,sha256=FtxC3NXFPpITupyBYlRtsMfP64vXYuKq23pwACT9v0U,3162
|
|
276
276
|
plato/_generated/api/v2/sessions/snapshot.py,sha256=JDtrpRJGVjo4naTCJzWNNc4lCgZuCirfNcULH8Xk97Q,2650
|
|
277
277
|
plato/_generated/api/v2/sessions/snapshot_store.py,sha256=4p08pCr2EWHQu2LqjIkRtlicTaFyfa7f39f8w0NRfeg,2978
|
|
278
278
|
plato/_generated/api/v2/sessions/state.py,sha256=XecKyoItKQGwCOx_IO_VcnXh5rdpC6hCUSGJdxlEi7E,2328
|
|
@@ -282,7 +282,7 @@ plato/_generated/api/v2/user/__init__.py,sha256=yMh1Gn9VpKHQMQCmJdpeDPA9Ek9PBgP0
|
|
|
282
282
|
plato/_generated/api/v2/user/get_current_user.py,sha256=tvamtbWTEkeeNUBLSPqZIcCGqKVadQM3DVcezsWP22U,1814
|
|
283
283
|
plato/_generated/api/version/__init__.py,sha256=dQXTYrXjD1RZcvWwnlqXWAZ-eAV-V-6JSNuY7uaca7o,70
|
|
284
284
|
plato/_generated/api/version/check.py,sha256=HTVNw0oi9gbvX4pOVoH4y4JywCxdl1pJTCk2PjJFwJ4,778
|
|
285
|
-
plato/_generated/models/__init__.py,sha256=
|
|
285
|
+
plato/_generated/models/__init__.py,sha256=6hl9VvbtRkF5MBLcnuWdI2N26mBKPKV0opn7rqtWJy4,155575
|
|
286
286
|
plato/_sims_generator/__init__.py,sha256=Km4QOl9wxjQ5dgpdhk9QnBFJFFc9eq3rPbMWIQRjIn0,1602
|
|
287
287
|
plato/_sims_generator/cli.py,sha256=mzolN-dxfMkVAdA-vC0esnai-cGg-i4ozOw8dACefV4,2709
|
|
288
288
|
plato/_sims_generator/instruction.py,sha256=Na9M-jIdBPhp_fLuBPTicoFnWriRyi8YiZ-eQBj64HI,6644
|
|
@@ -310,33 +310,49 @@ plato/chronos/client.py,sha256=YcOGtHWERyOD9z8LKt8bRMVL0cEwL2hiAP4qQgdZlUI,5495
|
|
|
310
310
|
plato/chronos/errors.py,sha256=xqQIQB43nAL5urF8qc_1KUJql7KCnspULOFHLNnf83M,4199
|
|
311
311
|
plato/chronos/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
312
312
|
plato/chronos/api/__init__.py,sha256=e1IO2-7hMVNtiwyZKQIwIW9LpgcPb5os48Wjxk6G3EY,43
|
|
313
|
+
plato/chronos/api/admin/__init__.py,sha256=pvUWoZqnT2cQTNfZn4EH1OKTpYg3dc4iXUvUeSUmRqI,501
|
|
314
|
+
plato/chronos/api/admin/clear_database_api_admin_clear_db_post.py,sha256=LhPrN7xw9K3Dcs2p7wiRG7WwOpc0k0uB5ndF79_nIRg,1329
|
|
315
|
+
plato/chronos/api/admin/sync_agents_api_admin_sync_agents_post.py,sha256=K1PoATmHHw6u_6BLe8qnIQH7QHyRgbncNB6CdDoRWm4,1531
|
|
316
|
+
plato/chronos/api/admin/sync_all_api_admin_sync_all_post.py,sha256=uUVj5XD6v2xWDj6xUvK2cO17qM4HkxTqjxW8QZFqE6Q,1546
|
|
317
|
+
plato/chronos/api/admin/sync_runtimes_api_admin_sync_runtimes_post.py,sha256=SCWLEQ40q7jKL_7H9EAtTSYC24IeFHMQy1DSm1Wg9VQ,1539
|
|
318
|
+
plato/chronos/api/admin/sync_worlds_api_admin_sync_worlds_post.py,sha256=p9RZUCpUS-ZGt9qIZ1ujVBM5N1A8UhY38T9v_wBIN2U,1531
|
|
313
319
|
plato/chronos/api/agents/__init__.py,sha256=IaeIt8ge51rKVkR0wQzW6m0xJE74hFPxeothe2CuQhs,300
|
|
314
320
|
plato/chronos/api/agents/create_agent.py,sha256=G8LR1KlWOCfmZ71Sl0seo7aRYmG7_nokZKoIRV6ysnw,1418
|
|
315
321
|
plato/chronos/api/agents/delete_agent.py,sha256=fuL8Ip8veUXpOhSYxX_74S0zM_kZsTX61KosiFyhRWo,1241
|
|
316
322
|
plato/chronos/api/agents/get_agent.py,sha256=o61fxCyYpTe6-3SC2RAebp3kW8rgEOWSN_NCph_iMUc,1358
|
|
317
323
|
plato/chronos/api/agents/get_agent_schema.py,sha256=t66UCalfuHExr3MmUcZdE_inGvfFerE8MC7iR14edsY,1769
|
|
318
324
|
plato/chronos/api/agents/get_agent_versions.py,sha256=mVLFvOrAwoyR9Jnu4F26EhNv08zGbXywiohr6hojxMY,1496
|
|
319
|
-
plato/chronos/api/agents/list_agents.py,sha256=
|
|
325
|
+
plato/chronos/api/agents/list_agents.py,sha256=OcycIUUc8yTGAhmpr2qhU2-2qIbvAtKko6l7cgmcKes,1343
|
|
320
326
|
plato/chronos/api/agents/lookup_agent.py,sha256=DOGfrOK6Lh6ULMqRmf4zRQHlDXMhYenidx8wcZx4caY,1766
|
|
321
327
|
plato/chronos/api/auth/__init__.py,sha256=6qao3xT8yw9-WTpUlv4tVtpWhL2EycQd3I2WKQ5p9Lk,284
|
|
322
328
|
plato/chronos/api/auth/debug_auth_api_auth_debug_get.py,sha256=L1RWyQ1w7V8dyhOAU2VQlT9x0jkeng3eIvZDOv9Gl2w,881
|
|
323
329
|
plato/chronos/api/auth/get_auth_status_api_auth_status_get.py,sha256=i9JzH9vPeswvbWtBAkMikepbNAyNK8jpTcALU6ScG5s,1379
|
|
324
330
|
plato/chronos/api/auth/get_current_user_route_api_auth_me_get.py,sha256=w9zz7ivQpYKvV6FPIEuNHfI5BOl9bu3FYbJ5ADEuTPc,1210
|
|
331
|
+
plato/chronos/api/checkpoints/__init__.py,sha256=i-soJMj3EFoUvjWog_AyJXwoGf9K51CjArd0uDeXJ98,138
|
|
332
|
+
plato/chronos/api/checkpoints/list_checkpoints.py,sha256=ONcbX5vSOl_PX6_uNP5Rm2iWxCkat39OgJOxX-i16Lk,1172
|
|
333
|
+
plato/chronos/api/checkpoints/preview_checkpoint.py,sha256=UDcWupD0dC5KCGdcCUX4mtEI4yL6fivOr8_yyrCfiFo,2210
|
|
325
334
|
plato/chronos/api/default/__init__.py,sha256=TCF1Fl95ZyiR9-xHzf_R2A6TNb7k59N1VfSI5PAj4Pg,72
|
|
326
335
|
plato/chronos/api/default/health.py,sha256=PvBLZXdYptL9d5_BEmzUsbUjQJTNGw5E4AFryPYiruw,781
|
|
336
|
+
plato/chronos/api/events/__init__.py,sha256=jG6BaEeIDQFAlLjzCrAXaoG-2GV_Q9GDm1cu86mx9C4,142
|
|
337
|
+
plato/chronos/api/events/get_session_event.py,sha256=hxgelY_gZ3ZIBJDBN7xF0aQYmpi5QnxvZ-NyFV8dZfU,1573
|
|
338
|
+
plato/chronos/api/events/list_session_events.py,sha256=-u4qi7_eNmC8Mxg0paDIrZ4IzwasAjBX8Nj43haWGcA,1495
|
|
327
339
|
plato/chronos/api/jobs/__init__.py,sha256=JP76_irfuFV31HOgazh7Y81GSkcunJP_eYWX8Pqq1U0,80
|
|
328
|
-
plato/chronos/api/jobs/launch_job.py,sha256=
|
|
340
|
+
plato/chronos/api/jobs/launch_job.py,sha256=mdCxUpyUVI5NS9mctllRUbNOe7yVSunupnoh4RJYuNQ,1711
|
|
341
|
+
plato/chronos/api/otel/__init__.py,sha256=w_DyYdNLj6xHi260C-HK9TJcZau0PJLOqey3qVwO9Wg,266
|
|
342
|
+
plato/chronos/api/otel/get_session_traces_api_otel_sessions__session_id__traces_get.py,sha256=s7xGuLD-TEYsUx56icdoBNiACaCo4Pcm8QDSuc74vSA,1294
|
|
343
|
+
plato/chronos/api/otel/receive_traces_api_otel_v1_traces_post.py,sha256=XvEe6XBB672qZ_d9IkD9dhxehK-H07yGxqKPaZG-EXA,1074
|
|
329
344
|
plato/chronos/api/registry/__init__.py,sha256=gPN-3oENHUrwaiacYt1_jI7HQ6gGe9i-34-Smb-0KHg,819
|
|
330
345
|
plato/chronos/api/registry/get_agent_schema_api_registry_agents__agent_name__schema_get.py,sha256=FOtVolBNmRuhgaCmL_d3cGvx81lVoz0WXQRP_-qArHM,1443
|
|
331
346
|
plato/chronos/api/registry/get_agent_versions_api_registry_agents__agent_name__versions_get.py,sha256=TjYCZcIc6Bc0iS1E2MMPAK-yDUX_zijT8g7We7dNcQI,1176
|
|
332
347
|
plato/chronos/api/registry/get_world_schema_api_registry_worlds__package_name__schema_get.py,sha256=RM-1MDYaG8B9iRl93KBG4tVjWJAHA08X6lSwjzk8fkw,1697
|
|
333
348
|
plato/chronos/api/registry/get_world_versions_api_registry_worlds__package_name__versions_get.py,sha256=07MKXi5-d8Qk8cKRdVW2AZoeeksX7OpTgFR9bkJni0Y,1206
|
|
334
|
-
plato/chronos/api/registry/list_registry_agents_api_registry_agents_get.py,sha256=
|
|
349
|
+
plato/chronos/api/registry/list_registry_agents_api_registry_agents_get.py,sha256=3rACHpvv2P7gooHcNH4sU82pCSPIWH0f17lmQyGdEyU,1031
|
|
335
350
|
plato/chronos/api/registry/list_registry_worlds_api_registry_worlds_get.py,sha256=g9KHZ2ZLJnhS5uCb55K7ez5plpfGL88o-pcdLMDgrRg,1010
|
|
336
|
-
plato/chronos/api/runtimes/__init__.py,sha256=
|
|
351
|
+
plato/chronos/api/runtimes/__init__.py,sha256=_887oqgAfMazmoU-tTbOQ4k-k6E0PW004bdFxTM117M,270
|
|
337
352
|
plato/chronos/api/runtimes/create_runtime.py,sha256=D37d2nMqyTxT8r_9faPWI-E18pAVjLlh0hCgBf0L6wQ,1524
|
|
338
353
|
plato/chronos/api/runtimes/delete_runtime.py,sha256=x_z2naim1cLW1ko99jWRkGoyawiIfv66Jt6d8pgEGt4,1261
|
|
339
354
|
plato/chronos/api/runtimes/get_runtime.py,sha256=8mL2tgFwAml30RHcURjr9Tz4H4Yo-r0cSGHuL741ZZM,1394
|
|
355
|
+
plato/chronos/api/runtimes/get_runtime_logs.py,sha256=ruyMDqSFDUAB84EjudwEt--0qItU7njyYUL-UrSYKTo,1347
|
|
340
356
|
plato/chronos/api/runtimes/list_runtimes.py,sha256=8o1NMWHEH8dINK9qZhMlxyBU0ygqSmyN7HigYkIwqa8,1271
|
|
341
357
|
plato/chronos/api/runtimes/test_runtime.py,sha256=AfN_gVPQ991m1op3W6Lm64qG_CqarHgJK0bttJm09SU,1626
|
|
342
358
|
plato/chronos/api/secrets/__init__.py,sha256=BfB4AiGt54zgcrmm-C57lbKY3DI8p1YnG2yuys3ie1A,222
|
|
@@ -345,11 +361,20 @@ plato/chronos/api/secrets/delete_secret.py,sha256=LWzJ78lT9C5NNhlaq8JJ4HcKzCVoj5
|
|
|
345
361
|
plato/chronos/api/secrets/get_secret.py,sha256=c4WzODFGHINAmdz8EWejECdlY9ezkWraUGWrwVuTPRA,1356
|
|
346
362
|
plato/chronos/api/secrets/list_secrets.py,sha256=_FT1VNok1STthEbjjGWmyGxjkRDvvDD_awU3xkjC1ak,1301
|
|
347
363
|
plato/chronos/api/secrets/update_secret.py,sha256=049iqznfUWpZVHVsw5y1c06KddX5Ou4keYiADyuLqjg,1550
|
|
348
|
-
plato/chronos/api/sessions/__init__.py,sha256=
|
|
349
|
-
plato/chronos/api/sessions/
|
|
350
|
-
plato/chronos/api/sessions/
|
|
364
|
+
plato/chronos/api/sessions/__init__.py,sha256=hKnXWZFpuB6yTkgkBlN_BMp0cdDqsFWTPLeXIZxd1eY,679
|
|
365
|
+
plato/chronos/api/sessions/close_session.py,sha256=lGmWkSfh-9ul1nVzYSn0Ymck3ntm0UG0m4Jm0d1lU1A,1552
|
|
366
|
+
plato/chronos/api/sessions/complete_session.py,sha256=F_iYyBAj_iin-492vHAVA0CCSz-lwtpmU0hPVBNc9Gw,1912
|
|
367
|
+
plato/chronos/api/sessions/create_session.py,sha256=p0PaUQLnWzhsekKUnQM5KiU8b68vldjR90Z8fn17gUo,1812
|
|
368
|
+
plato/chronos/api/sessions/get_session.py,sha256=_7TR8g1oFyKPQc0n94BmFScXQDkmXvP5mWRW94jMvm8,1961
|
|
369
|
+
plato/chronos/api/sessions/get_session_bash_logs_download.py,sha256=0WMxNC5XFVtMuCbIZxtEiUUQW9B4BihwSHkWUTD2YhU,1325
|
|
370
|
+
plato/chronos/api/sessions/get_session_envs.py,sha256=N73sE-oYRbBVk4JsXkrbVtNda1B8gRCMSyxX5N_EAxA,1464
|
|
371
|
+
plato/chronos/api/sessions/get_session_live_logs.py,sha256=3H5MHwYBr5mzQxBNEx54UOOOyc2tFLXC3iyOob_drIU,1433
|
|
372
|
+
plato/chronos/api/sessions/get_session_logs.py,sha256=mH9EZ2dD22U4KPEMwCp6RRbJ8k-ZhmSOF9bx8XgWVMc,1662
|
|
351
373
|
plato/chronos/api/sessions/get_session_logs_download.py,sha256=u1VKN9_ya5HviQvuj47Bjxb8TdTRrVjGZ-xhh34j5JE,1491
|
|
352
|
-
plato/chronos/api/sessions/
|
|
374
|
+
plato/chronos/api/sessions/get_session_status.py,sha256=pka9CNYW1DwfB5xxo8ffbfJ3sDQBhxOnNL7-J0pCyVY,1476
|
|
375
|
+
plato/chronos/api/sessions/list_sessions.py,sha256=xYZq1Iz0gi81vZbTyuLvxK0yoW0FAhRG9OG6g43AY60,1928
|
|
376
|
+
plato/chronos/api/sessions/list_tags.py,sha256=zMIHZhCH5o0Mspz9Z9eX_dUEwBRsQs2rhlhQLGZUuCM,2002
|
|
377
|
+
plato/chronos/api/sessions/update_session_tags.py,sha256=mJuhBoqK6bIvtGI2KAgEt_wq1s5Yv4WYu29m1JNjq_w,1596
|
|
353
378
|
plato/chronos/api/status/__init__.py,sha256=LUmI3D_ynVMsnkWJI-6rm5ZuWjZypULrBKQDfh2uq-Y,184
|
|
354
379
|
plato/chronos/api/status/get_status_api_status_get.py,sha256=3l7KaWkxZI7GUIJaxJjNsAA1WSP6z4TxL6uRooqNFDs,951
|
|
355
380
|
plato/chronos/api/status/get_version_info_api_version_get.py,sha256=CzFsUMDH2BIxVg0plECsXRrwtSE73ORAutNsmD6u1Zc,937
|
|
@@ -367,7 +392,7 @@ plato/chronos/api/worlds/create_world.py,sha256=H6yl5QIazNXgryOR5rvscSIMf8Y9kjc6
|
|
|
367
392
|
plato/chronos/api/worlds/delete_world.py,sha256=UETu3Zk0e2VkDdAyMilv1ev-0g_j-oujH1Dc8DBqQOc,1239
|
|
368
393
|
plato/chronos/api/worlds/get_world.py,sha256=eHTM1U5JiNTaZwYLh7x4QVBoRQeI5kaJ9o6xSi4-nos,1356
|
|
369
394
|
plato/chronos/api/worlds/list_worlds.py,sha256=hBAuGb69tlasyn-kV_LNr9x6Rr7SHhST5hXJn1uqMf8,1253
|
|
370
|
-
plato/chronos/models/__init__.py,sha256=
|
|
395
|
+
plato/chronos/models/__init__.py,sha256=9eWjOOgT7WULPFpO_b_qCP-k_vMdest-Y2-JsBF7KS4,22646
|
|
371
396
|
plato/sims/README.md,sha256=FIbJhNVNAV-SO6dq_cXX3Rg0C7HdQCfEY9YxGlkCmsM,6902
|
|
372
397
|
plato/sims/__init__.py,sha256=tnoCGKZwNx6h22tEWLujdpLv6K4PpFU2RnDOhL1o-Uc,1494
|
|
373
398
|
plato/sims/agent_helpers.py,sha256=kITvQywoTCS8mGhro3jZWuPJHDlje-UZujhjoahqhd0,10291
|
|
@@ -387,7 +412,7 @@ plato/v1/sync_flow_executor.py,sha256=kgvNYOtA9FHeNfP7qb8ZPUIlTsfIss_Z98W8uX5vec
|
|
|
387
412
|
plato/v1/sync_sdk.py,sha256=2sedg1QJiSxr1I3kCyfaLAnlAgHlbblc3QQP_47O30k,25697
|
|
388
413
|
plato/v1/cli/__init__.py,sha256=om4b7PxgsoI7rEwuQelmQkqPdhMVn53_5qEN8kvksYw,105
|
|
389
414
|
plato/v1/cli/agent.py,sha256=EbmEKWCMC5DJjmVDrYuwGenhIDgPjie8hdwrDOTSXaY,43766
|
|
390
|
-
plato/v1/cli/chronos.py,sha256=
|
|
415
|
+
plato/v1/cli/chronos.py,sha256=S6_PKDsZt55XDVFKPxJY5FQBfoYePLpZq3JTnNN75rY,27430
|
|
391
416
|
plato/v1/cli/main.py,sha256=iKUz6Mu-4-dgr29qOUmDqBaumOCzNQKZsHAalVtaH0Q,6932
|
|
392
417
|
plato/v1/cli/pm.py,sha256=TIvXBIWFDjr4s1girMMCuvHWQJkjpmsS-igAamddIWE,49746
|
|
393
418
|
plato/v1/cli/sandbox.py,sha256=jhTney-Pr8bGmWIXOjVIMtZJ7v7uIoRnuh3wfG7weRg,98718
|
|
@@ -439,17 +464,19 @@ plato/v1/models/flow.py,sha256=bkleb7-OR6V5tzPtggf0ZJhHZQwnktCYr1C-ONpRzwE,6920
|
|
|
439
464
|
plato/v1/models/sandbox.py,sha256=yRN036G91tFAXGxU1ni7zCU1o7U1N8nI0mjLlBRDoSk,3478
|
|
440
465
|
plato/v1/models/task.py,sha256=QXwdFpDM_NLjRpQSK6duibXJXFAPZ8-PpyuLWZC5o4I,4897
|
|
441
466
|
plato/v1/utils/proxytunnel.py,sha256=N1MshFY3Pu3d19cTU619-e-gP2_j-89CEcld7lCoiGk,5706
|
|
442
|
-
plato/v2/__init__.py,sha256=
|
|
467
|
+
plato/v2/__init__.py,sha256=Adlul2CFMdyAPMP7ziGO3R_PO66sH7PsmGe4id0rTCs,2000
|
|
443
468
|
plato/v2/models.py,sha256=41EJPdbAsW-gARVND0cg4jqpzQuYlrbAW9hF8WI8kX4,2369
|
|
444
469
|
plato/v2/types.py,sha256=MrHiE8AobOegeTfoKKHZ5JTccaFfS3-EW0arV7q8S5c,3533
|
|
445
|
-
plato/v2/async_/__init__.py,sha256=
|
|
470
|
+
plato/v2/async_/__init__.py,sha256=rq9olvr4PuI6sY535IsLT4kg9YX_sGYrrY6SA991xk8,654
|
|
446
471
|
plato/v2/async_/artifact.py,sha256=JBWVQeVaZhkU2qn_knyzyA7wd5iQ8qxfLQ_l9GPhgYs,1217
|
|
472
|
+
plato/v2/async_/chronos.py,sha256=WeqYF3HIKs7hV9LNZb2GlDS1yP6b422DZKtNuPxdL34,12394
|
|
447
473
|
plato/v2/async_/client.py,sha256=GVgAgNN5gsDME8iV0zxqnwbsVS93J6cknOcq_VXwYN8,4209
|
|
448
474
|
plato/v2/async_/environment.py,sha256=M5IeWYLwREOIyuS2zqgBSqHE_x66_OZXrevA9Rkc8Is,5825
|
|
449
475
|
plato/v2/async_/flow_executor.py,sha256=Tl4nRu1ZPWJFNNxyTGy-PxvebZEUD18ZDaz8T2chtzU,14188
|
|
450
476
|
plato/v2/async_/session.py,sha256=ssTEFgfpDQElQEmeKulLWKLoW-wA3m_nI3UvEWb9lB0,36749
|
|
451
|
-
plato/v2/sync/__init__.py,sha256=
|
|
477
|
+
plato/v2/sync/__init__.py,sha256=6Hzc5k34WnHTUMPWrIefnL4P5YEoJMRLOmYDO7LxGg8,405
|
|
452
478
|
plato/v2/sync/artifact.py,sha256=wTLC-tugG128wLvh-JqNPb0zsw5FXEJlZNahurSWink,1169
|
|
479
|
+
plato/v2/sync/chronos.py,sha256=ChXpasjRzAZjoYTimpPqYydnwEk-IgdxR0SDXDOZbUM,12078
|
|
453
480
|
plato/v2/sync/client.py,sha256=Q9fS1BF4KxTMMnceMwCMlb5dNFZ6LA4gsXWNLgsL2eE,3870
|
|
454
481
|
plato/v2/sync/environment.py,sha256=WnDzbyEHpwCSEP8XnfNSjIYS7rt7lYR4HGJjzprZmTQ,5066
|
|
455
482
|
plato/v2/sync/flow_executor.py,sha256=N41-WCWIJVcCR2UmPUEiK7roNacYoeONkRXpR7lUgT8,13941
|
|
@@ -460,11 +487,11 @@ plato/v2/utils/models.py,sha256=PwehSSnIRG-tM3tWL1PzZEH77ZHhIAZ9R0UPs6YknbM,1441
|
|
|
460
487
|
plato/v2/utils/proxy_tunnel.py,sha256=8ZTd0jCGSfIHMvSv1fgEyacuISWnGPHLPbDglWroTzY,10463
|
|
461
488
|
plato/worlds/README.md,sha256=XFOkEA3cNNcrWkk-Cxnsl-zn-y0kvUENKQRSqFKpdqw,5479
|
|
462
489
|
plato/worlds/__init__.py,sha256=nwuEerEkP2TSfadPiOMcUE3p6u1vhaS7ZxfTh2zNcF8,2217
|
|
463
|
-
plato/worlds/base.py,sha256=
|
|
490
|
+
plato/worlds/base.py,sha256=8skzeNlufimvXdWBKVAjmgkZ3xGGt0ijRnu6darPxsk,31017
|
|
464
491
|
plato/worlds/build_hook.py,sha256=KSoW0kqa5b7NyZ7MYOw2qsZ_2FkWuz0M3Ru7AKOP7Qw,3486
|
|
465
492
|
plato/worlds/config.py,sha256=OJtBygnVACQl_kGF8iLofTIk8zMu8tTCNYav6lHdwNI,12874
|
|
466
493
|
plato/worlds/runner.py,sha256=r9B2BxBae8_dM7y5cJf9xhThp_I1Qvf_tlPq2rs8qC8,4013
|
|
467
|
-
plato_sdk_v2-2.
|
|
468
|
-
plato_sdk_v2-2.
|
|
469
|
-
plato_sdk_v2-2.
|
|
470
|
-
plato_sdk_v2-2.
|
|
494
|
+
plato_sdk_v2-2.6.0.dist-info/METADATA,sha256=_c1ttshrdw9fnmaXOO3-tEVSHGWz24tWl6s33A9viGw,8652
|
|
495
|
+
plato_sdk_v2-2.6.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
496
|
+
plato_sdk_v2-2.6.0.dist-info/entry_points.txt,sha256=upGMbJCx6YWUTKrPoYvYUYfFCqYr75nHDwhA-45m6p8,136
|
|
497
|
+
plato_sdk_v2-2.6.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|