plato-sdk-v2 2.7.4__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.
Files changed (28) hide show
  1. plato/_generated/__init__.py +1 -1
  2. plato/_generated/api/v1/testcases/get_testcase_metadata_for_scoring.py +6 -6
  3. plato/_generated/api/v2/__init__.py +14 -2
  4. plato/_generated/api/v2/admin/__init__.py +3 -0
  5. plato/_generated/api/v2/admin/cache/__init__.py +11 -0
  6. plato/_generated/api/v2/admin/cache/clear_all.py +74 -0
  7. plato/_generated/api/v2/admin/cache/clear_single_cache.py +79 -0
  8. plato/_generated/api/v2/admin/cache/delete_key.py +84 -0
  9. plato/_generated/api/v2/admin/cache/get_stats.py +70 -0
  10. plato/_generated/api/v2/admin/cache/list_cache_names.py +67 -0
  11. plato/_generated/api/v2/sessions/__init__.py +3 -1
  12. plato/_generated/api/v2/sessions/add_job.py +97 -0
  13. plato/_generated/models/__init__.py +88 -2
  14. plato/chronos/api/agents/get_agent_schema.py +5 -5
  15. plato/chronos/api/agents/get_agent_versions.py +5 -5
  16. plato/chronos/api/agents/list_agents.py +5 -5
  17. plato/chronos/api/registry/get_agent_schema_api_registry_agents__agent_name__schema_get.py +5 -5
  18. plato/chronos/api/registry/get_agent_versions_api_registry_agents__agent_name__versions_get.py +5 -5
  19. plato/chronos/api/registry/list_registry_agents_api_registry_agents_get.py +5 -5
  20. plato/chronos/api/sessions/__init__.py +2 -0
  21. plato/chronos/api/sessions/complete_session.py +4 -2
  22. plato/chronos/api/sessions/list_session_creators.py +57 -0
  23. plato/chronos/api/sessions/list_sessions.py +30 -2
  24. plato/chronos/models/__init__.py +39 -19
  25. {plato_sdk_v2-2.7.4.dist-info → plato_sdk_v2-2.7.5.dist-info}/METADATA +1 -1
  26. {plato_sdk_v2-2.7.4.dist-info → plato_sdk_v2-2.7.5.dist-info}/RECORD +28 -19
  27. {plato_sdk_v2-2.7.4.dist-info → plato_sdk_v2-2.7.5.dist-info}/WHEEL +0 -0
  28. {plato_sdk_v2-2.7.4.dist-info → plato_sdk_v2-2.7.5.dist-info}/entry_points.txt +0 -0
@@ -7,7 +7,7 @@ from typing import Any
7
7
  import httpx
8
8
 
9
9
  from plato.chronos.errors import raise_for_status
10
- from plato.chronos.models import ChronosModelsAgentAgentSchemaResponse
10
+ from plato.chronos.models import AgentSchemaResponse
11
11
 
12
12
 
13
13
  def _build_request_args(
@@ -39,7 +39,7 @@ def sync(
39
39
  name: str,
40
40
  version: str | None = None,
41
41
  x_api_key: str | None = None,
42
- ) -> ChronosModelsAgentAgentSchemaResponse:
42
+ ) -> AgentSchemaResponse:
43
43
  """Get agent schema by name and optional version."""
44
44
 
45
45
  request_args = _build_request_args(
@@ -50,7 +50,7 @@ def sync(
50
50
 
51
51
  response = client.request(**request_args)
52
52
  raise_for_status(response)
53
- return ChronosModelsAgentAgentSchemaResponse.model_validate(response.json())
53
+ return AgentSchemaResponse.model_validate(response.json())
54
54
 
55
55
 
56
56
  async def asyncio(
@@ -58,7 +58,7 @@ async def asyncio(
58
58
  name: str,
59
59
  version: str | None = None,
60
60
  x_api_key: str | None = None,
61
- ) -> ChronosModelsAgentAgentSchemaResponse:
61
+ ) -> AgentSchemaResponse:
62
62
  """Get agent schema by name and optional version."""
63
63
 
64
64
  request_args = _build_request_args(
@@ -69,4 +69,4 @@ async def asyncio(
69
69
 
70
70
  response = await client.request(**request_args)
71
71
  raise_for_status(response)
72
- return ChronosModelsAgentAgentSchemaResponse.model_validate(response.json())
72
+ return AgentSchemaResponse.model_validate(response.json())
@@ -7,7 +7,7 @@ from typing import Any
7
7
  import httpx
8
8
 
9
9
  from plato.chronos.errors import raise_for_status
10
- from plato.chronos.models import ChronosModelsAgentAgentVersionsResponse
10
+ from plato.chronos.models import AgentVersionsResponse
11
11
 
12
12
 
13
13
  def _build_request_args(
@@ -32,7 +32,7 @@ def sync(
32
32
  client: httpx.Client,
33
33
  name: str,
34
34
  x_api_key: str | None = None,
35
- ) -> ChronosModelsAgentAgentVersionsResponse:
35
+ ) -> AgentVersionsResponse:
36
36
  """Get all versions of an agent by name."""
37
37
 
38
38
  request_args = _build_request_args(
@@ -42,14 +42,14 @@ def sync(
42
42
 
43
43
  response = client.request(**request_args)
44
44
  raise_for_status(response)
45
- return ChronosModelsAgentAgentVersionsResponse.model_validate(response.json())
45
+ return AgentVersionsResponse.model_validate(response.json())
46
46
 
47
47
 
48
48
  async def asyncio(
49
49
  client: httpx.AsyncClient,
50
50
  name: str,
51
51
  x_api_key: str | None = None,
52
- ) -> ChronosModelsAgentAgentVersionsResponse:
52
+ ) -> AgentVersionsResponse:
53
53
  """Get all versions of an agent by name."""
54
54
 
55
55
  request_args = _build_request_args(
@@ -59,4 +59,4 @@ async def asyncio(
59
59
 
60
60
  response = await client.request(**request_args)
61
61
  raise_for_status(response)
62
- return ChronosModelsAgentAgentVersionsResponse.model_validate(response.json())
62
+ return AgentVersionsResponse.model_validate(response.json())
@@ -7,7 +7,7 @@ from typing import Any
7
7
  import httpx
8
8
 
9
9
  from plato.chronos.errors import raise_for_status
10
- from plato.chronos.models import ChronosModelsAgentAgentListResponse
10
+ from plato.chronos.models import AgentListResponse
11
11
 
12
12
 
13
13
  def _build_request_args(
@@ -30,7 +30,7 @@ def _build_request_args(
30
30
  def sync(
31
31
  client: httpx.Client,
32
32
  x_api_key: str | None = None,
33
- ) -> ChronosModelsAgentAgentListResponse:
33
+ ) -> AgentListResponse:
34
34
  """List all agents for the org."""
35
35
 
36
36
  request_args = _build_request_args(
@@ -39,13 +39,13 @@ def sync(
39
39
 
40
40
  response = client.request(**request_args)
41
41
  raise_for_status(response)
42
- return ChronosModelsAgentAgentListResponse.model_validate(response.json())
42
+ return AgentListResponse.model_validate(response.json())
43
43
 
44
44
 
45
45
  async def asyncio(
46
46
  client: httpx.AsyncClient,
47
47
  x_api_key: str | None = None,
48
- ) -> ChronosModelsAgentAgentListResponse:
48
+ ) -> AgentListResponse:
49
49
  """List all agents for the org."""
50
50
 
51
51
  request_args = _build_request_args(
@@ -54,4 +54,4 @@ async def asyncio(
54
54
 
55
55
  response = await client.request(**request_args)
56
56
  raise_for_status(response)
57
- return ChronosModelsAgentAgentListResponse.model_validate(response.json())
57
+ return AgentListResponse.model_validate(response.json())
@@ -7,7 +7,7 @@ from typing import Any
7
7
  import httpx
8
8
 
9
9
  from plato.chronos.errors import raise_for_status
10
- from plato.chronos.models import AgentSchemaResponse
10
+ from plato.chronos.models import ChronosApiRegistryAgentSchemaResponse
11
11
 
12
12
 
13
13
  def _build_request_args(
@@ -32,7 +32,7 @@ def sync(
32
32
  client: httpx.Client,
33
33
  agent_name: str,
34
34
  version: str | None = None,
35
- ) -> AgentSchemaResponse:
35
+ ) -> ChronosApiRegistryAgentSchemaResponse:
36
36
  """Get schema for an agent version from the registry."""
37
37
 
38
38
  request_args = _build_request_args(
@@ -42,14 +42,14 @@ def sync(
42
42
 
43
43
  response = client.request(**request_args)
44
44
  raise_for_status(response)
45
- return AgentSchemaResponse.model_validate(response.json())
45
+ return ChronosApiRegistryAgentSchemaResponse.model_validate(response.json())
46
46
 
47
47
 
48
48
  async def asyncio(
49
49
  client: httpx.AsyncClient,
50
50
  agent_name: str,
51
51
  version: str | None = None,
52
- ) -> AgentSchemaResponse:
52
+ ) -> ChronosApiRegistryAgentSchemaResponse:
53
53
  """Get schema for an agent version from the registry."""
54
54
 
55
55
  request_args = _build_request_args(
@@ -59,4 +59,4 @@ async def asyncio(
59
59
 
60
60
  response = await client.request(**request_args)
61
61
  raise_for_status(response)
62
- return AgentSchemaResponse.model_validate(response.json())
62
+ return ChronosApiRegistryAgentSchemaResponse.model_validate(response.json())
@@ -7,7 +7,7 @@ from typing import Any
7
7
  import httpx
8
8
 
9
9
  from plato.chronos.errors import raise_for_status
10
- from plato.chronos.models import AgentVersionsResponse
10
+ from plato.chronos.models import ChronosApiRegistryAgentVersionsResponse
11
11
 
12
12
 
13
13
  def _build_request_args(
@@ -25,7 +25,7 @@ def _build_request_args(
25
25
  def sync(
26
26
  client: httpx.Client,
27
27
  agent_name: str,
28
- ) -> AgentVersionsResponse:
28
+ ) -> ChronosApiRegistryAgentVersionsResponse:
29
29
  """Get versions for an agent from the registry."""
30
30
 
31
31
  request_args = _build_request_args(
@@ -34,13 +34,13 @@ def sync(
34
34
 
35
35
  response = client.request(**request_args)
36
36
  raise_for_status(response)
37
- return AgentVersionsResponse.model_validate(response.json())
37
+ return ChronosApiRegistryAgentVersionsResponse.model_validate(response.json())
38
38
 
39
39
 
40
40
  async def asyncio(
41
41
  client: httpx.AsyncClient,
42
42
  agent_name: str,
43
- ) -> AgentVersionsResponse:
43
+ ) -> ChronosApiRegistryAgentVersionsResponse:
44
44
  """Get versions for an agent from the registry."""
45
45
 
46
46
  request_args = _build_request_args(
@@ -49,4 +49,4 @@ async def asyncio(
49
49
 
50
50
  response = await client.request(**request_args)
51
51
  raise_for_status(response)
52
- return AgentVersionsResponse.model_validate(response.json())
52
+ return ChronosApiRegistryAgentVersionsResponse.model_validate(response.json())
@@ -7,7 +7,7 @@ from typing import Any
7
7
  import httpx
8
8
 
9
9
  from plato.chronos.errors import raise_for_status
10
- from plato.chronos.models import AgentListResponse
10
+ from plato.chronos.models import ChronosApiRegistryAgentListResponse
11
11
 
12
12
 
13
13
  def _build_request_args() -> dict[str, Any]:
@@ -22,23 +22,23 @@ def _build_request_args() -> dict[str, Any]:
22
22
 
23
23
  def sync(
24
24
  client: httpx.Client,
25
- ) -> AgentListResponse:
25
+ ) -> ChronosApiRegistryAgentListResponse:
26
26
  """List all agents from the registry with their ECR image URIs."""
27
27
 
28
28
  request_args = _build_request_args()
29
29
 
30
30
  response = client.request(**request_args)
31
31
  raise_for_status(response)
32
- return AgentListResponse.model_validate(response.json())
32
+ return ChronosApiRegistryAgentListResponse.model_validate(response.json())
33
33
 
34
34
 
35
35
  async def asyncio(
36
36
  client: httpx.AsyncClient,
37
- ) -> AgentListResponse:
37
+ ) -> ChronosApiRegistryAgentListResponse:
38
38
  """List all agents from the registry with their ECR image URIs."""
39
39
 
40
40
  request_args = _build_request_args()
41
41
 
42
42
  response = await client.request(**request_args)
43
43
  raise_for_status(response)
44
- return AgentListResponse.model_validate(response.json())
44
+ return ChronosApiRegistryAgentListResponse.model_validate(response.json())
@@ -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 all sessions for the org, optionally filtered by tag.
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 all sessions for the org, optionally filtered by tag.
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
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
- # filename: tmpxmdo22xa.json
3
- # timestamp: 2026-01-23T22:08:21+00:00
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[str | None, Field(title="Created At")] = None
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 ChronosModelsAgentAgentListResponse(BaseModel):
569
+ class ChronosApiRegistryAgentListResponse(BaseModel):
566
570
  model_config = ConfigDict(
567
571
  extra="allow",
568
572
  )
569
- agents: Annotated[list[AgentResponse], Field(title="Agents")]
573
+ agents: Annotated[list[AgentInfo], Field(title="Agents")]
570
574
 
571
575
 
572
- class ChronosModelsAgentAgentSchemaResponse(BaseModel):
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 ChronosModelsAgentAgentVersionInfo(BaseModel):
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[AwareDatetime, Field(title="Created At")]
592
+ created_at: Annotated[str | None, Field(title="Created At")] = None
587
593
 
588
594
 
589
- class ChronosModelsAgentAgentVersionsResponse(BaseModel):
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[ChronosModelsAgentAgentVersionInfo], Field(title="Versions")]
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",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: plato-sdk-v2
3
- Version: 2.7.4
3
+ Version: 2.7.5
4
4
  Summary: Python SDK for the Plato API
5
5
  Author-email: Plato <support@plato.so>
6
6
  License-Expression: MIT