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.
Files changed (50) hide show
  1. plato/_generated/__init__.py +1 -1
  2. plato/_generated/api/v1/evals/get_scores_by_user.py +7 -0
  3. plato/_generated/api/v1/testcases/get_testcases.py +14 -0
  4. plato/_generated/api/v2/sessions/setup_sandbox.py +2 -2
  5. plato/_generated/models/__init__.py +42 -2
  6. plato/chronos/api/admin/__init__.py +17 -0
  7. plato/chronos/api/admin/clear_database_api_admin_clear_db_post.py +57 -0
  8. plato/chronos/api/admin/sync_agents_api_admin_sync_agents_post.py +67 -0
  9. plato/chronos/api/admin/sync_all_api_admin_sync_all_post.py +67 -0
  10. plato/chronos/api/admin/sync_runtimes_api_admin_sync_runtimes_post.py +67 -0
  11. plato/chronos/api/admin/sync_worlds_api_admin_sync_worlds_post.py +67 -0
  12. plato/chronos/api/agents/list_agents.py +5 -5
  13. plato/chronos/api/checkpoints/__init__.py +8 -0
  14. plato/chronos/api/checkpoints/list_checkpoints.py +52 -0
  15. plato/chronos/api/checkpoints/preview_checkpoint.py +74 -0
  16. plato/chronos/api/events/__init__.py +8 -0
  17. plato/chronos/api/events/get_session_event.py +68 -0
  18. plato/chronos/api/events/list_session_events.py +62 -0
  19. plato/chronos/api/jobs/launch_job.py +8 -2
  20. plato/chronos/api/otel/__init__.py +8 -0
  21. plato/chronos/api/otel/get_session_traces_api_otel_sessions__session_id__traces_get.py +56 -0
  22. plato/chronos/api/otel/receive_traces_api_otel_v1_traces_post.py +49 -0
  23. plato/chronos/api/registry/list_registry_agents_api_registry_agents_get.py +5 -5
  24. plato/chronos/api/runtimes/__init__.py +2 -1
  25. plato/chronos/api/runtimes/get_runtime_logs.py +61 -0
  26. plato/chronos/api/sessions/__init__.py +24 -1
  27. plato/chronos/api/sessions/close_session.py +66 -0
  28. plato/chronos/api/sessions/complete_session.py +74 -0
  29. plato/chronos/api/sessions/create_session.py +69 -0
  30. plato/chronos/api/sessions/get_session.py +20 -2
  31. plato/chronos/api/sessions/get_session_bash_logs_download.py +61 -0
  32. plato/chronos/api/sessions/get_session_envs.py +62 -0
  33. plato/chronos/api/sessions/get_session_live_logs.py +62 -0
  34. plato/chronos/api/sessions/get_session_logs.py +3 -3
  35. plato/chronos/api/sessions/get_session_status.py +62 -0
  36. plato/chronos/api/sessions/list_sessions.py +20 -2
  37. plato/chronos/api/sessions/list_tags.py +80 -0
  38. plato/chronos/api/sessions/update_session_tags.py +68 -0
  39. plato/chronos/models/__init__.py +241 -196
  40. plato/v1/cli/chronos.py +62 -0
  41. plato/v2/__init__.py +8 -0
  42. plato/v2/async_/__init__.py +4 -0
  43. plato/v2/async_/chronos.py +419 -0
  44. plato/v2/sync/__init__.py +3 -0
  45. plato/v2/sync/chronos.py +419 -0
  46. plato/worlds/base.py +12 -2
  47. {plato_sdk_v2-2.5.0.dist-info → plato_sdk_v2-2.6.0.dist-info}/METADATA +1 -1
  48. {plato_sdk_v2-2.5.0.dist-info → plato_sdk_v2-2.6.0.dist-info}/RECORD +50 -23
  49. {plato_sdk_v2-2.5.0.dist-info → plato_sdk_v2-2.6.0.dist-info}/WHEEL +0 -0
  50. {plato_sdk_v2-2.5.0.dist-info → plato_sdk_v2-2.6.0.dist-info}/entry_points.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
- # filename: tmp7svjeeij.json
3
- # timestamp: 2026-01-17T02:28:53+00:00
2
+ # filename: tmpxmdo22xa.json
3
+ # timestamp: 2026-01-23T22:08:21+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -9,22 +9,6 @@ from typing import Annotated, Any
9
9
  from pydantic import AwareDatetime, BaseModel, ConfigDict, Field
10
10
 
11
11
 
12
- class AgentConfig(BaseModel):
13
- """Agent config - supports multiple formats.
14
-
15
- New format: agent + version (version optional, defaults to latest)
16
- Legacy format: agent_id (public_id)
17
- """
18
-
19
- model_config = ConfigDict(
20
- extra="allow",
21
- )
22
- agent: Annotated[str | None, Field(title="Agent")] = None
23
- version: Annotated[str | None, Field(title="Version")] = None
24
- agent_id: Annotated[str | None, Field(title="Agent Id")] = None # backwards compat
25
- config: Annotated[dict[str, Any] | None, Field(title="Config")] = {}
26
-
27
-
28
12
  class AgentCreate(BaseModel):
29
13
  model_config = ConfigDict(
30
14
  extra="allow",
@@ -33,8 +17,6 @@ class AgentCreate(BaseModel):
33
17
  version: Annotated[str, Field(title="Version")]
34
18
  image_uri: Annotated[str, Field(title="Image Uri")]
35
19
  config_schema: Annotated[dict[str, Any] | None, Field(title="Config Schema")] = None
36
- secrets_schema: Annotated[dict[str, Any] | None, Field(title="Secrets Schema")] = None
37
- template_variables: Annotated[dict[str, str] | None, Field(title="Template Variables")] = None
38
20
  description: Annotated[str | None, Field(title="Description")] = None
39
21
 
40
22
 
@@ -42,57 +24,17 @@ class AgentInfo(BaseModel):
42
24
  model_config = ConfigDict(
43
25
  extra="allow",
44
26
  )
45
- slot_name: Annotated[str, Field(title="Slot Name")]
46
27
  name: Annotated[str, Field(title="Name")]
47
- public_id: Annotated[str, Field(title="Public Id")]
48
- config: Annotated[dict[str, Any] | None, Field(title="Config")] = {}
49
-
50
-
51
- class AgentLogEntry(BaseModel):
52
- model_config = ConfigDict(
53
- extra="allow",
54
- )
55
- level: Annotated[str | None, Field(title="Level")] = "info"
56
- """
57
- Log level: debug, info, warning, error
58
- """
59
- message: Annotated[str, Field(title="Message")]
60
- """
61
- Log message
62
- """
63
- timestamp: Annotated[str | None, Field(title="Timestamp")] = None
64
- """
65
- ISO timestamp, defaults to now
66
- """
67
- extra: Annotated[dict[str, Any] | None, Field(title="Extra")] = None
68
- """
69
- Additional structured data
70
- """
71
-
72
-
73
- class AgentLogsRequest(BaseModel):
74
- model_config = ConfigDict(
75
- extra="allow",
76
- )
77
- session_id: Annotated[str, Field(title="Session Id")]
78
- """
79
- Chronos session ID
80
- """
81
- logs: Annotated[list[AgentLogEntry], Field(title="Logs")]
82
- """
83
- Log entries to add
84
- """
28
+ version: Annotated[str, Field(title="Version")]
29
+ description: Annotated[str | None, Field(title="Description")] = None
30
+ image_uri: Annotated[str, Field(title="Image Uri")]
85
31
 
86
32
 
87
- class AgentLogsResponse(BaseModel):
33
+ class AgentListResponse(BaseModel):
88
34
  model_config = ConfigDict(
89
35
  extra="allow",
90
36
  )
91
- success: Annotated[bool, Field(title="Success")]
92
- count: Annotated[int, Field(title="Count")]
93
- """
94
- Number of logs added
95
- """
37
+ agents: Annotated[list[AgentInfo], Field(title="Agents")]
96
38
 
97
39
 
98
40
  class AgentLookupResponse(BaseModel):
@@ -114,8 +56,6 @@ class AgentResponse(BaseModel):
114
56
  version: Annotated[str, Field(title="Version")]
115
57
  image_uri: Annotated[str, Field(title="Image Uri")]
116
58
  config_schema: Annotated[dict[str, Any] | None, Field(title="Config Schema")] = None
117
- secrets_schema: Annotated[dict[str, Any] | None, Field(title="Secrets Schema")] = None
118
- template_variables: Annotated[dict[str, str] | None, Field(title="Template Variables")] = None
119
59
  description: Annotated[str | None, Field(title="Description")] = None
120
60
  created_at: Annotated[AwareDatetime, Field(title="Created At")]
121
61
  archived_at: Annotated[AwareDatetime | None, Field(title="Archived At")] = None
@@ -132,28 +72,6 @@ class AgentSchemaResponse(BaseModel):
132
72
  template_variables: Annotated[dict[str, Any] | None, Field(title="Template Variables")] = None
133
73
 
134
74
 
135
- class AgentStatusRequest(BaseModel):
136
- model_config = ConfigDict(
137
- extra="allow",
138
- )
139
- session_id: Annotated[str, Field(title="Session Id")]
140
- """
141
- Chronos session ID
142
- """
143
- status: Annotated[str, Field(title="Status")]
144
- """
145
- New status: running, completed, failed
146
- """
147
- message: Annotated[str | None, Field(title="Message")] = None
148
- """
149
- Status message
150
- """
151
- extra: Annotated[dict[str, Any] | None, Field(title="Extra")] = None
152
- """
153
- Additional data
154
- """
155
-
156
-
157
75
  class AgentVersionInfo(BaseModel):
158
76
  model_config = ConfigDict(
159
77
  extra="allow",
@@ -170,42 +88,113 @@ class AgentVersionsResponse(BaseModel):
170
88
  versions: Annotated[list[AgentVersionInfo], Field(title="Versions")]
171
89
 
172
90
 
173
- class ArtifactsUploadRequest(BaseModel):
91
+ class AuthStatusResponse(BaseModel):
174
92
  model_config = ConfigDict(
175
93
  extra="allow",
176
94
  )
177
- session_id: Annotated[str, Field(title="Session Id")]
95
+ authenticated: Annotated[bool, Field(title="Authenticated")]
96
+ user: Annotated[dict[str, Any] | None, Field(title="User")] = None
97
+ env: Annotated[str, Field(title="Env")]
98
+
99
+
100
+ class CheckpointListItem(BaseModel):
101
+ model_config = ConfigDict(
102
+ extra="allow",
103
+ )
104
+ public_id: Annotated[str, Field(title="Public Id")]
105
+ step_number: Annotated[int, Field(title="Step Number")]
106
+ env_count: Annotated[int, Field(title="Env Count")]
107
+ has_state: Annotated[bool, Field(title="Has State")]
108
+ created_at: Annotated[str, Field(title="Created At")]
109
+
110
+
111
+ class CheckpointListResponse(BaseModel):
112
+ model_config = ConfigDict(
113
+ extra="allow",
114
+ )
115
+ checkpoints: Annotated[list[CheckpointListItem], Field(title="Checkpoints")]
116
+
117
+
118
+ class ClearDbResult(BaseModel):
119
+ model_config = ConfigDict(
120
+ extra="allow",
121
+ )
122
+ sessions_deleted: Annotated[int, Field(title="Sessions Deleted")]
123
+ runtimes_deleted: Annotated[int, Field(title="Runtimes Deleted")]
124
+ agents_deleted: Annotated[int, Field(title="Agents Deleted")]
125
+ worlds_deleted: Annotated[int, Field(title="Worlds Deleted")]
126
+
127
+
128
+ class CloseSessionResponse(BaseModel):
129
+ model_config = ConfigDict(
130
+ extra="allow",
131
+ )
132
+ success: Annotated[bool, Field(title="Success")]
133
+ message: Annotated[str, Field(title="Message")]
134
+
135
+
136
+ class CompleteSessionRequest(BaseModel):
137
+ model_config = ConfigDict(
138
+ extra="allow",
139
+ )
140
+ status: Annotated[str, Field(title="Status")]
178
141
  """
179
- Chronos session ID
142
+ Final status: 'completed' or 'failed'
180
143
  """
181
- trajectory: Annotated[dict[str, Any] | None, Field(title="Trajectory")] = None
144
+ exit_code: Annotated[int | None, Field(title="Exit Code")] = None
182
145
  """
183
- AITF trajectory JSON
146
+ Exit code from world runner
184
147
  """
185
- logs_base64: Annotated[str | None, Field(title="Logs Base64")] = None
148
+ error_message: Annotated[str | None, Field(title="Error Message")] = None
186
149
  """
187
- Base64 encoded zip file
150
+ Error message if failed
188
151
  """
189
152
 
190
153
 
191
- class ArtifactsUploadResponse(BaseModel):
154
+ class CreateSessionRequest(BaseModel):
192
155
  model_config = ConfigDict(
193
156
  extra="allow",
194
157
  )
195
- success: Annotated[bool, Field(title="Success")]
196
- logs_url: Annotated[str | None, Field(title="Logs Url")] = None
158
+ world_name: Annotated[str, Field(title="World Name")]
159
+ """
160
+ Name of the world to run
161
+ """
162
+ world_config: Annotated[dict[str, Any] | None, Field(title="World Config")] = None
163
+ """
164
+ World configuration
197
165
  """
198
- S3 URL of uploaded logs
166
+ plato_session_id: Annotated[str | None, Field(title="Plato Session Id")] = None
167
+ """
168
+ Plato session ID if already created
199
169
  """
200
170
 
201
171
 
202
- class AuthStatusResponse(BaseModel):
172
+ class CreateSessionResponse(BaseModel):
203
173
  model_config = ConfigDict(
204
174
  extra="allow",
205
175
  )
206
- authenticated: Annotated[bool, Field(title="Authenticated")]
207
- user: Annotated[dict[str, Any] | None, Field(title="User")] = None
208
- env: Annotated[str, Field(title="Env")]
176
+ public_id: Annotated[str, Field(title="Public Id")]
177
+ otel_url: Annotated[str, Field(title="Otel Url")]
178
+ upload_url: Annotated[str, Field(title="Upload Url")]
179
+
180
+
181
+ class EnvInfo(BaseModel):
182
+ model_config = ConfigDict(
183
+ extra="allow",
184
+ )
185
+ alias: Annotated[str, Field(title="Alias")]
186
+ job_id: Annotated[str, Field(title="Job Id")]
187
+ artifact_id: Annotated[str, Field(title="Artifact Id")]
188
+
189
+
190
+ class EnvInfoResponse(BaseModel):
191
+ model_config = ConfigDict(
192
+ extra="allow",
193
+ )
194
+ alias: Annotated[str, Field(title="Alias")]
195
+ job_id: Annotated[str, Field(title="Job Id")]
196
+ artifact_id: Annotated[str | None, Field(title="Artifact Id")] = None
197
+ simulator: Annotated[str | None, Field(title="Simulator")] = None
209
198
 
210
199
 
211
200
  class EnvSecretCreate(BaseModel):
@@ -276,36 +265,6 @@ class JobTemplateUpdate(BaseModel):
276
265
  secrets: Annotated[dict[str, str] | None, Field(title="Secrets")] = None
277
266
 
278
267
 
279
- class LaunchJobRequest(BaseModel):
280
- model_config = ConfigDict(
281
- extra="allow",
282
- )
283
- world_package: Annotated[str, Field(title="World Package")]
284
- """
285
- World package name
286
- """
287
- world_version: Annotated[str | None, Field(title="World Version")] = None
288
- """
289
- World version (latest if not specified)
290
- """
291
- world_config: Annotated[dict[str, Any] | None, Field(title="World Config")] = None
292
- """
293
- World configuration
294
- """
295
- agent_configs: Annotated[dict[str, AgentConfig], Field(title="Agent Configs")]
296
- """
297
- Agent configs keyed by slot name
298
- """
299
- secret_ids: Annotated[list[int] | None, Field(title="Secret Ids")] = None
300
- """
301
- IDs of secrets from env_secrets table
302
- """
303
- runtime_artifact_id: Annotated[str | None, Field(title="Runtime Artifact Id")] = None
304
- """
305
- Runtime artifact ID for cached environment
306
- """
307
-
308
-
309
268
  class LaunchJobResponse(BaseModel):
310
269
  model_config = ConfigDict(
311
270
  extra="allow",
@@ -324,6 +283,15 @@ class LaunchJobResponse(BaseModel):
324
283
  """
325
284
 
326
285
 
286
+ class LiveLogsResponse(BaseModel):
287
+ model_config = ConfigDict(
288
+ extra="allow",
289
+ )
290
+ public_id: Annotated[str, Field(title="Public Id")]
291
+ status: Annotated[str, Field(title="Status")]
292
+ logs: Annotated[str, Field(title="Logs")]
293
+
294
+
327
295
  class LogsDownloadResponse(BaseModel):
328
296
  model_config = ConfigDict(
329
297
  extra="allow",
@@ -332,21 +300,62 @@ class LogsDownloadResponse(BaseModel):
332
300
  expires_in: Annotated[int | None, Field(title="Expires In")] = 3600
333
301
 
334
302
 
335
- class LogsUploadRequest(BaseModel):
303
+ class OTelSpan(BaseModel):
304
+ model_config = ConfigDict(
305
+ extra="allow",
306
+ )
307
+ trace_id: Annotated[str, Field(title="Trace Id")]
308
+ span_id: Annotated[str, Field(title="Span Id")]
309
+ parent_span_id: Annotated[str | None, Field(title="Parent Span Id")] = None
310
+ name: Annotated[str, Field(title="Name")]
311
+ start_time_unix_nano: Annotated[int, Field(title="Start Time Unix Nano")]
312
+ end_time_unix_nano: Annotated[int | None, Field(title="End Time Unix Nano")] = None
313
+ attributes: Annotated[dict[str, Any] | None, Field(title="Attributes")] = {}
314
+ status: Annotated[dict[str, Any] | None, Field(title="Status")] = None
315
+
316
+
317
+ class OTelSpanListResponse(BaseModel):
318
+ model_config = ConfigDict(
319
+ extra="allow",
320
+ )
321
+ events: Annotated[list[OTelSpan], Field(title="Events")]
322
+
323
+
324
+ class OTelTraceResponse(BaseModel):
336
325
  model_config = ConfigDict(
337
326
  extra="allow",
338
327
  )
339
328
  session_id: Annotated[str, Field(title="Session Id")]
329
+ spans: Annotated[list[OTelSpan], Field(title="Spans")]
330
+
331
+
332
+ class PreviewResponse(BaseModel):
333
+ model_config = ConfigDict(
334
+ extra="allow",
335
+ )
336
+ success: Annotated[bool, Field(title="Success")]
337
+ plato_session_id: Annotated[str | None, Field(title="Plato Session Id")] = None
338
+ """
339
+ Plato session ID
340
340
  """
341
- Chronos session ID
341
+ serialized_session: Annotated[dict[str, Any] | None, Field(title="Serialized Session")] = None
342
342
  """
343
- logs_base64: Annotated[str, Field(title="Logs Base64")]
343
+ Serialized session for Session.load()
344
344
  """
345
- Base64 encoded zip file
345
+ envs: Annotated[list[EnvInfo] | None, Field(title="Envs")] = None
346
+ """
347
+ Environment info
346
348
  """
347
349
 
348
350
 
349
- LogsUploadResponse = ArtifactsUploadResponse
351
+ class RuntimeConfig(BaseModel):
352
+ model_config = ConfigDict(
353
+ extra="allow",
354
+ )
355
+ artifact_id: Annotated[str | None, Field(title="Artifact Id")] = None
356
+ """
357
+ Runtime artifact ID for cached environment
358
+ """
350
359
 
351
360
 
352
361
  class RuntimeCreate(BaseModel):
@@ -384,6 +393,7 @@ class RuntimeResponse(BaseModel):
384
393
  agent_images: Annotated[list[str], Field(title="Agent Images")]
385
394
  status: Annotated[str, Field(title="Status")]
386
395
  description: Annotated[str | None, Field(title="Description")] = None
396
+ plato_session_id: Annotated[str | None, Field(title="Plato Session Id")] = None
387
397
  created_at: Annotated[AwareDatetime, Field(title="Created At")]
388
398
 
389
399
 
@@ -396,6 +406,31 @@ class ServiceStatuses(BaseModel):
396
406
  plato: Annotated[str, Field(title="Plato")]
397
407
 
398
408
 
409
+ class SessionEnvsResponse(BaseModel):
410
+ model_config = ConfigDict(
411
+ extra="allow",
412
+ )
413
+ public_id: Annotated[str, Field(title="Public Id")]
414
+ plato_session_id: Annotated[str | None, Field(title="Plato Session Id")] = None
415
+ envs: Annotated[list[EnvInfoResponse], Field(title="Envs")]
416
+
417
+
418
+ class SessionLogsResponse(BaseModel):
419
+ model_config = ConfigDict(
420
+ extra="allow",
421
+ )
422
+ logs: Annotated[list[OTelSpan], Field(title="Logs")]
423
+
424
+
425
+ class SessionStatusResponse(BaseModel):
426
+ model_config = ConfigDict(
427
+ extra="allow",
428
+ )
429
+ public_id: Annotated[str, Field(title="Public Id")]
430
+ status: Annotated[str, Field(title="Status")]
431
+ status_reason: Annotated[str | None, Field(title="Status Reason")] = None
432
+
433
+
399
434
  class StatusResponse(BaseModel):
400
435
  model_config = ConfigDict(
401
436
  extra="allow",
@@ -404,38 +439,39 @@ class StatusResponse(BaseModel):
404
439
  services: ServiceStatuses
405
440
 
406
441
 
407
- class TrajectoryResponse(BaseModel):
442
+ class SyncResult(BaseModel):
408
443
  model_config = ConfigDict(
409
444
  extra="allow",
410
445
  )
411
- public_id: Annotated[str, Field(title="Public Id")]
412
- session_id: Annotated[int, Field(title="Session Id")]
413
- agent_id: Annotated[int | None, Field(title="Agent Id")] = None
414
- log_type: Annotated[str, Field(title="Log Type")]
415
- content: Annotated[str, Field(title="Content")]
416
- extra: Annotated[dict[str, Any] | None, Field(title="Extra")] = None
417
- created_at: Annotated[AwareDatetime, Field(title="Created At")]
446
+ synced: Annotated[int, Field(title="Synced")]
447
+ skipped: Annotated[int, Field(title="Skipped")]
448
+ errors: Annotated[list[str], Field(title="Errors")]
418
449
 
419
450
 
420
- class TrajectoryUploadRequest(BaseModel):
451
+ class TagsListResponse(BaseModel):
421
452
  model_config = ConfigDict(
422
453
  extra="allow",
423
454
  )
424
- session_id: Annotated[str, Field(title="Session Id")]
425
- """
426
- Chronos session ID
427
- """
428
- trajectory: Annotated[dict[str, Any], Field(title="Trajectory")]
455
+ tags: Annotated[list[str], Field(title="Tags")]
456
+
457
+
458
+ class UpdateTagsRequest(BaseModel):
459
+ model_config = ConfigDict(
460
+ extra="allow",
461
+ )
462
+ tags: Annotated[list[str], Field(title="Tags")]
429
463
  """
430
- AITF trajectory JSON
464
+ List of tags for the session (use '.' for hierarchy)
431
465
  """
432
466
 
433
467
 
434
- class TrajectoryUploadResponse(BaseModel):
468
+ class UserInfo(BaseModel):
435
469
  model_config = ConfigDict(
436
470
  extra="allow",
437
471
  )
438
- success: Annotated[bool, Field(title="Success")]
472
+ id: Annotated[str, Field(title="Id")]
473
+ email: Annotated[str | None, Field(title="Email")] = None
474
+ name: Annotated[str | None, Field(title="Name")] = None
439
475
 
440
476
 
441
477
  class ValidationError(BaseModel):
@@ -456,6 +492,20 @@ class VersionResponse(BaseModel):
456
492
  deployment: Annotated[str | None, Field(title="Deployment")] = None
457
493
 
458
494
 
495
+ class WorldConfig(BaseModel):
496
+ model_config = ConfigDict(
497
+ extra="allow",
498
+ )
499
+ package: Annotated[str, Field(title="Package")]
500
+ """
501
+ World package name with optional version (e.g., plato-world-structured-execution:0.1.17)
502
+ """
503
+ config: Annotated[dict[str, Any] | None, Field(title="Config")] = None
504
+ """
505
+ World configuration - passed directly to world runner
506
+ """
507
+
508
+
459
509
  class WorldCreate(BaseModel):
460
510
  model_config = ConfigDict(
461
511
  extra="allow",
@@ -472,8 +522,10 @@ class WorldInfo(BaseModel):
472
522
  extra="allow",
473
523
  )
474
524
  name: Annotated[str, Field(title="Name")]
475
- package_name: Annotated[str, Field(title="Package Name")]
476
- version: Annotated[str | None, Field(title="Version")] = None
525
+ package: Annotated[str, Field(title="Package")]
526
+ description: Annotated[str | None, Field(title="Description")] = None
527
+ versions: Annotated[list[str] | None, Field(title="Versions")] = []
528
+ latest_version: Annotated[str | None, Field(title="Latest Version")] = None
477
529
 
478
530
 
479
531
  class WorldResponse(BaseModel):
@@ -510,32 +562,11 @@ class WorldVersionsResponse(BaseModel):
510
562
  versions: Annotated[list[str], Field(title="Versions")]
511
563
 
512
564
 
513
- class ChronosApiRegistryAgentInfo(BaseModel):
514
- model_config = ConfigDict(
515
- extra="allow",
516
- )
517
- name: Annotated[str, Field(title="Name")]
518
- version: Annotated[str, Field(title="Version")]
519
- description: Annotated[str | None, Field(title="Description")] = None
520
- image_uri: Annotated[str, Field(title="Image Uri")]
521
-
522
-
523
- class ChronosApiRegistryAgentListResponse(BaseModel):
565
+ class ChronosModelsAgentAgentListResponse(BaseModel):
524
566
  model_config = ConfigDict(
525
567
  extra="allow",
526
568
  )
527
- agents: Annotated[list[ChronosApiRegistryAgentInfo], Field(title="Agents")]
528
-
529
-
530
- class ChronosApiRegistryWorldInfo(BaseModel):
531
- model_config = ConfigDict(
532
- extra="allow",
533
- )
534
- name: Annotated[str, Field(title="Name")]
535
- package: Annotated[str, Field(title="Package")]
536
- description: Annotated[str | None, Field(title="Description")] = None
537
- versions: Annotated[list[str] | None, Field(title="Versions")] = []
538
- latest_version: Annotated[str | None, Field(title="Latest Version")] = None
569
+ agents: Annotated[list[AgentResponse], Field(title="Agents")]
539
570
 
540
571
 
541
572
  class ChronosModelsAgentAgentSchemaResponse(BaseModel):
@@ -545,8 +576,6 @@ class ChronosModelsAgentAgentSchemaResponse(BaseModel):
545
576
  name: Annotated[str, Field(title="Name")]
546
577
  version: Annotated[str, Field(title="Version")]
547
578
  config_schema: Annotated[dict[str, Any] | None, Field(title="Config Schema")] = None
548
- secrets_schema: Annotated[dict[str, Any] | None, Field(title="Secrets Schema")] = None
549
- template_variables: Annotated[dict[str, str] | None, Field(title="Template Variables")] = None
550
579
 
551
580
 
552
581
  class ChronosModelsAgentAgentVersionInfo(BaseModel):
@@ -565,11 +594,14 @@ class ChronosModelsAgentAgentVersionsResponse(BaseModel):
565
594
  versions: Annotated[list[ChronosModelsAgentAgentVersionInfo], Field(title="Versions")]
566
595
 
567
596
 
568
- class AgentListResponse(BaseModel):
597
+ class ChronosModelsSessionWorldInfo(BaseModel):
569
598
  model_config = ConfigDict(
570
599
  extra="allow",
571
600
  )
572
- agents: Annotated[list[AgentResponse], Field(title="Agents")]
601
+ name: Annotated[str, Field(title="Name")]
602
+ package_name: Annotated[str, Field(title="Package Name")]
603
+ version: Annotated[str | None, Field(title="Version")] = None
604
+ config_schema: Annotated[dict[str, Any] | None, Field(title="Config Schema")] = None
573
605
 
574
606
 
575
607
  class EnvSecretListResponse(BaseModel):
@@ -593,18 +625,29 @@ class JobTemplateListResponse(BaseModel):
593
625
  templates: Annotated[list[JobTemplateResponse], Field(title="Templates")]
594
626
 
595
627
 
596
- class RuntimeListResponse(BaseModel):
628
+ class LaunchJobRequest(BaseModel):
597
629
  model_config = ConfigDict(
598
630
  extra="allow",
599
631
  )
600
- runtimes: Annotated[list[RuntimeResponse], Field(title="Runtimes")]
632
+ world: WorldConfig
633
+ """
634
+ World package and configuration
635
+ """
636
+ runtime: RuntimeConfig | None = None
637
+ """
638
+ Runtime configuration
639
+ """
640
+ tags: Annotated[list[str] | None, Field(title="Tags")] = None
641
+ """
642
+ Tags for organizing/filtering sessions (use '.' for hierarchy, '_' instead of '-')
643
+ """
601
644
 
602
645
 
603
- class SessionLogsResponse(BaseModel):
646
+ class RuntimeListResponse(BaseModel):
604
647
  model_config = ConfigDict(
605
648
  extra="allow",
606
649
  )
607
- logs: Annotated[list[TrajectoryResponse], Field(title="Logs")]
650
+ runtimes: Annotated[list[RuntimeResponse], Field(title="Runtimes")]
608
651
 
609
652
 
610
653
  class SessionResponse(BaseModel):
@@ -614,31 +657,33 @@ class SessionResponse(BaseModel):
614
657
  public_id: Annotated[str, Field(title="Public Id")]
615
658
  plato_session_id: Annotated[str | None, Field(title="Plato Session Id")] = None
616
659
  status: Annotated[str, Field(title="Status")]
660
+ status_reason: Annotated[str | None, Field(title="Status Reason")] = None
617
661
  started_at: Annotated[AwareDatetime | None, Field(title="Started At")] = None
618
662
  ended_at: Annotated[AwareDatetime | None, Field(title="Ended At")] = None
619
663
  created_at: Annotated[AwareDatetime, Field(title="Created At")]
620
- world: WorldInfo | None = None
664
+ world: ChronosModelsSessionWorldInfo | None = None
621
665
  world_config: Annotated[dict[str, Any] | None, Field(title="World Config")] = {}
622
- agents: Annotated[list[AgentInfo] | None, Field(title="Agents")] = []
623
- agent_configs: Annotated[dict[str, Any] | None, Field(title="Agent Configs")] = {}
624
- secret_ids: Annotated[list[int] | None, Field(title="Secret Ids")] = []
625
666
  trajectory: Annotated[dict[str, Any] | None, Field(title="Trajectory")] = None
626
667
  logs_url: Annotated[str | None, Field(title="Logs Url")] = None
627
668
  runtime_artifact_id: Annotated[str | None, Field(title="Runtime Artifact Id")] = None
669
+ tags: Annotated[list[str] | None, Field(title="Tags")] = []
670
+ created_by: UserInfo | None = None
628
671
 
629
672
 
630
- class TrajectoryListResponse(BaseModel):
673
+ class SyncAllResult(BaseModel):
631
674
  model_config = ConfigDict(
632
675
  extra="allow",
633
676
  )
634
- trajectories: Annotated[list[TrajectoryResponse], Field(title="Trajectories")]
677
+ agents: SyncResult
678
+ worlds: SyncResult
679
+ runtimes: SyncResult
635
680
 
636
681
 
637
682
  class WorldCatalogResponse(BaseModel):
638
683
  model_config = ConfigDict(
639
684
  extra="allow",
640
685
  )
641
- worlds: Annotated[list[ChronosApiRegistryWorldInfo], Field(title="Worlds")]
686
+ worlds: Annotated[list[WorldInfo], Field(title="Worlds")]
642
687
 
643
688
 
644
689
  class WorldListResponse(BaseModel):