agentex-sdk 0.2.3__py3-none-any.whl → 0.2.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 (34) hide show
  1. agentex/_version.py +1 -1
  2. agentex/lib/adk/_modules/acp.py +2 -1
  3. agentex/lib/adk/_modules/agent_task_tracker.py +2 -1
  4. agentex/lib/adk/_modules/agents.py +2 -1
  5. agentex/lib/adk/_modules/events.py +2 -1
  6. agentex/lib/adk/_modules/messages.py +2 -1
  7. agentex/lib/adk/_modules/state.py +2 -1
  8. agentex/lib/adk/_modules/streaming.py +2 -1
  9. agentex/lib/adk/_modules/tasks.py +2 -1
  10. agentex/lib/adk/_modules/tracing.py +2 -1
  11. agentex/lib/adk/utils/_modules/client.py +43 -0
  12. agentex/lib/cli/commands/agents.py +3 -3
  13. agentex/lib/cli/handlers/agent_handlers.py +1 -1
  14. agentex/lib/cli/handlers/cleanup_handlers.py +9 -15
  15. agentex/lib/cli/handlers/deploy_handlers.py +28 -4
  16. agentex/lib/cli/handlers/run_handlers.py +19 -93
  17. agentex/lib/cli/templates/sync/project/acp.py.j2 +15 -64
  18. agentex/lib/cli/utils/path_utils.py +143 -0
  19. agentex/lib/sdk/fastacp/base/base_acp_server.py +11 -1
  20. agentex/lib/types/converters.py +60 -0
  21. agentex/resources/agents.py +9 -8
  22. agentex/resources/messages/messages.py +4 -0
  23. agentex/resources/tasks.py +9 -10
  24. agentex/types/__init__.py +1 -2
  25. agentex/types/message_list_params.py +1 -0
  26. agentex/types/shared/__init__.py +3 -0
  27. agentex/types/shared/delete_response.py +11 -0
  28. {agentex_sdk-0.2.3.dist-info → agentex_sdk-0.2.5.dist-info}/METADATA +2 -2
  29. {agentex_sdk-0.2.3.dist-info → agentex_sdk-0.2.5.dist-info}/RECORD +32 -29
  30. agentex/types/task_delete_by_name_response.py +0 -8
  31. agentex/types/task_delete_response.py +0 -8
  32. {agentex_sdk-0.2.3.dist-info → agentex_sdk-0.2.5.dist-info}/WHEEL +0 -0
  33. {agentex_sdk-0.2.3.dist-info → agentex_sdk-0.2.5.dist-info}/entry_points.txt +0 -0
  34. {agentex_sdk-0.2.3.dist-info → agentex_sdk-0.2.5.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,143 @@
1
+ from pathlib import Path
2
+ from typing import Dict
3
+
4
+ from agentex.lib.sdk.config.agent_manifest import AgentManifest
5
+ from agentex.lib.utils.logging import make_logger
6
+
7
+ logger = make_logger(__name__)
8
+
9
+
10
+ class PathResolutionError(Exception):
11
+ """An error occurred during path resolution"""
12
+
13
+
14
+ def resolve_and_validate_path(base_path: Path, configured_path: str, file_type: str) -> Path:
15
+ """Resolve and validate a configured path"""
16
+ path_obj = Path(configured_path)
17
+
18
+ if path_obj.is_absolute():
19
+ # Absolute path - resolve to canonical form
20
+ resolved_path = path_obj.resolve()
21
+ else:
22
+ # Relative path - resolve relative to manifest directory
23
+ resolved_path = (base_path / configured_path).resolve()
24
+
25
+ # Validate the file exists
26
+ if not resolved_path.exists():
27
+ raise PathResolutionError(
28
+ f"{file_type} file not found: {resolved_path}\n"
29
+ f" Configured path: {configured_path}\n"
30
+ f" Resolved from manifest: {base_path}"
31
+ )
32
+
33
+ # Validate it's actually a file
34
+ if not resolved_path.is_file():
35
+ raise PathResolutionError(f"{file_type} path is not a file: {resolved_path}")
36
+
37
+ return resolved_path
38
+
39
+
40
+ def validate_path_security(resolved_path: Path, manifest_dir: Path) -> None:
41
+ """Basic security validation for resolved paths"""
42
+ try:
43
+ # Ensure the resolved path is accessible
44
+ resolved_path.resolve()
45
+
46
+ # Optional: Add warnings for paths that go too far up
47
+ try:
48
+ # Check if path goes more than 3 levels up from manifest
49
+ relative_to_manifest = resolved_path.relative_to(manifest_dir.parent.parent.parent)
50
+ if str(relative_to_manifest).startswith(".."):
51
+ logger.warning(
52
+ f"Path goes significantly outside project structure: {resolved_path}"
53
+ )
54
+ except ValueError:
55
+ # Path is outside the tree - that's okay, just log it
56
+ logger.info(f"Using path outside manifest directory tree: {resolved_path}")
57
+
58
+ except Exception as e:
59
+ raise PathResolutionError(f"Path resolution failed: {resolved_path} - {str(e)}") from e
60
+
61
+
62
+ def get_file_paths(manifest: AgentManifest, manifest_path: str) -> Dict[str, Path | None]:
63
+ """Get resolved file paths from manifest configuration"""
64
+ manifest_dir = Path(manifest_path).parent.resolve()
65
+
66
+ # Use configured paths or fall back to defaults for backward compatibility
67
+ if manifest.local_development and manifest.local_development.paths:
68
+ paths_config = manifest.local_development.paths
69
+
70
+ # Resolve ACP path
71
+ acp_path = resolve_and_validate_path(manifest_dir, paths_config.acp, "ACP server")
72
+ validate_path_security(acp_path, manifest_dir)
73
+
74
+ # Resolve worker path if specified
75
+ worker_path = None
76
+ if paths_config.worker:
77
+ worker_path = resolve_and_validate_path(
78
+ manifest_dir, paths_config.worker, "Temporal worker"
79
+ )
80
+ validate_path_security(worker_path, manifest_dir)
81
+ else:
82
+ # Backward compatibility: use old hardcoded structure
83
+ project_dir = manifest_dir / "project"
84
+ acp_path = (project_dir / "acp.py").resolve()
85
+ worker_path = (project_dir / "run_worker.py").resolve() if manifest.agent.is_temporal_agent() else None
86
+
87
+ # Validate backward compatibility paths
88
+ if not acp_path.exists():
89
+ raise PathResolutionError(f"ACP file not found: {acp_path}")
90
+
91
+ if worker_path and not worker_path.exists():
92
+ raise PathResolutionError(f"Worker file not found: {worker_path}")
93
+
94
+ return {
95
+ "acp": acp_path,
96
+ "worker": worker_path,
97
+ "acp_dir": acp_path.parent,
98
+ "worker_dir": worker_path.parent if worker_path else None,
99
+ }
100
+
101
+
102
+ def calculate_uvicorn_target_for_local(acp_path: Path, manifest_dir: Path) -> str:
103
+ """Calculate the uvicorn target path for local development"""
104
+ # Ensure both paths are resolved to canonical form for accurate comparison
105
+ acp_resolved = acp_path.resolve()
106
+ manifest_resolved = manifest_dir.resolve()
107
+
108
+ try:
109
+ # Try to use path relative to manifest directory
110
+ acp_relative = acp_resolved.relative_to(manifest_resolved)
111
+ # Convert to module notation: project/acp.py -> project.acp
112
+ module_path = str(acp_relative.with_suffix('')) # Remove .py extension
113
+ module_path = module_path.replace('/', '.') # Convert slashes to dots
114
+ module_path = module_path.replace('\\', '.') # Handle Windows paths
115
+ return module_path
116
+ except ValueError:
117
+ # Path cannot be made relative - use absolute file path
118
+ logger.warning(f"ACP file {acp_resolved} cannot be made relative to manifest directory {manifest_resolved}, using absolute file path")
119
+ return str(acp_resolved)
120
+
121
+
122
+ def calculate_docker_acp_module(manifest: AgentManifest, manifest_path: str) -> str:
123
+ """Calculate the Python module path for the ACP file in the Docker container
124
+
125
+ This should return the same module notation as local development for consistency.
126
+ """
127
+ # Use the same logic as local development
128
+ manifest_dir = Path(manifest_path).parent
129
+
130
+ # Get the configured ACP path (could be relative or absolute)
131
+ if manifest.local_development and manifest.local_development.paths:
132
+ acp_config_path = manifest.local_development.paths.acp
133
+ else:
134
+ acp_config_path = "project/acp.py" # Default
135
+
136
+ # Resolve to actual file path
137
+ acp_path = resolve_and_validate_path(manifest_dir, acp_config_path, "ACP")
138
+
139
+ # Use the same module calculation as local development
140
+ return calculate_uvicorn_target_for_local(acp_path, manifest_dir)
141
+
142
+
143
+
@@ -2,18 +2,20 @@ import asyncio
2
2
  import base64
3
3
  import inspect
4
4
  import json
5
+ import os
5
6
  from collections.abc import AsyncGenerator, Awaitable, Callable
6
7
  from contextlib import asynccontextmanager
7
8
  from typing import Any
8
9
 
9
10
  import httpx
10
11
  import uvicorn
12
+ from agentex.lib.adk.utils._modules.client import get_async_agentex_client
11
13
  from fastapi import FastAPI, Request
12
14
  from fastapi.responses import StreamingResponse
13
15
  from pydantic import TypeAdapter, ValidationError
14
16
 
15
17
  # from agentex.lib.sdk.fastacp.types import BaseACPConfig
16
- from agentex.lib.environment_variables import EnvironmentVariables
18
+ from agentex.lib.environment_variables import EnvironmentVariables, refreshed_environment_variables
17
19
  from agentex.lib.types.acp import (
18
20
  PARAMS_MODEL_BY_METHOD,
19
21
  RPC_SYNC_METHODS,
@@ -390,6 +392,14 @@ class BaseACPServer(FastAPI):
390
392
  registration_url, json=registration_data, timeout=30.0
391
393
  )
392
394
  if response.status_code == 200:
395
+ agent = response.json()
396
+ agent_id, agent_name = agent["id"], agent["name"]
397
+
398
+ os.environ["AGENT_ID"] = agent_id
399
+ os.environ["AGENT_NAME"] = agent_name
400
+ refreshed_environment_variables.AGENT_ID = agent_id
401
+ refreshed_environment_variables.AGENT_NAME = agent_name
402
+ get_async_agentex_client() # refresh cache
393
403
  logger.info(
394
404
  f"Successfully registered agent '{env_vars.AGENT_NAME}' with Agentex server with acp_url: {full_acp_url}. Registration data: {registration_data}"
395
405
  )
@@ -0,0 +1,60 @@
1
+ from agentex.types.task_message import TaskMessage
2
+ from agentex.types.text_content import TextContent
3
+ from agentex.types.tool_request_content import ToolRequestContent
4
+ from agentex.types.tool_response_content import ToolResponseContent
5
+ import json
6
+ from agents import TResponseInputItem
7
+
8
+
9
+ def convert_task_messages_to_oai_agents_inputs(
10
+ task_messages: list[TaskMessage],
11
+ ) -> list[TResponseInputItem]:
12
+ """
13
+ Convert a list of TaskMessages to a list of OpenAI Agents SDK inputs (TResponseInputItem).
14
+
15
+ Args:
16
+ task_messages: The list of TaskMessages to convert.
17
+
18
+ Returns:
19
+ A list of OpenAI Agents SDK inputs (TResponseInputItem).
20
+ """
21
+ converted_messages = []
22
+ for task_message in task_messages:
23
+ task_message_content = task_message.content
24
+ if isinstance(task_message_content, TextContent):
25
+ converted_messages.append(
26
+ {
27
+ "role": (
28
+ "user" if task_message_content.author == "user" else "assistant"
29
+ ),
30
+ "content": task_message_content.content,
31
+ }
32
+ )
33
+ elif isinstance(task_message_content, ToolRequestContent):
34
+ converted_messages.append(
35
+ {
36
+ "type": "function_call",
37
+ "call_id": task_message_content.tool_call_id,
38
+ "name": task_message_content.name,
39
+ "arguments": json.dumps(task_message_content.arguments),
40
+ }
41
+ )
42
+ elif isinstance(task_message_content, ToolResponseContent):
43
+ content_str = (
44
+ task_message_content.content
45
+ if isinstance(task_message_content.content, str)
46
+ else json.dumps(task_message_content.content)
47
+ )
48
+ converted_messages.append(
49
+ {
50
+ "type": "function_call_output",
51
+ "call_id": task_message_content.tool_call_id,
52
+ "output": content_str,
53
+ }
54
+ )
55
+ else:
56
+ raise ValueError(
57
+ f"Unsupported content type for converting TaskMessage to OpenAI Agents SDK input: {type(task_message.content)}"
58
+ )
59
+
60
+ return converted_messages
@@ -23,6 +23,7 @@ from ..types.agent import Agent
23
23
  from .._base_client import make_request_options
24
24
  from ..types.agent_rpc_response import AgentRpcResponse, CancelTaskResponse, CreateTaskResponse, SendEventResponse, SendMessageResponse, SendMessageStreamResponse
25
25
  from ..types.agent_list_response import AgentListResponse
26
+ from ..types.shared.delete_response import DeleteResponse
26
27
 
27
28
  __all__ = ["AgentsResource", "AsyncAgentsResource"]
28
29
 
@@ -127,7 +128,7 @@ class AgentsResource(SyncAPIResource):
127
128
  extra_query: Query | None = None,
128
129
  extra_body: Body | None = None,
129
130
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
130
- ) -> Agent:
131
+ ) -> DeleteResponse:
131
132
  """
132
133
  Delete an agent by its unique ID.
133
134
 
@@ -147,7 +148,7 @@ class AgentsResource(SyncAPIResource):
147
148
  options=make_request_options(
148
149
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
149
150
  ),
150
- cast_to=Agent,
151
+ cast_to=DeleteResponse,
151
152
  )
152
153
 
153
154
  def delete_by_name(
@@ -160,7 +161,7 @@ class AgentsResource(SyncAPIResource):
160
161
  extra_query: Query | None = None,
161
162
  extra_body: Body | None = None,
162
163
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
163
- ) -> Agent:
164
+ ) -> DeleteResponse:
164
165
  """
165
166
  Delete an agent by its unique name.
166
167
 
@@ -180,7 +181,7 @@ class AgentsResource(SyncAPIResource):
180
181
  options=make_request_options(
181
182
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
182
183
  ),
183
- cast_to=Agent,
184
+ cast_to=DeleteResponse,
184
185
  )
185
186
 
186
187
  def retrieve_by_name(
@@ -667,7 +668,7 @@ class AsyncAgentsResource(AsyncAPIResource):
667
668
  extra_query: Query | None = None,
668
669
  extra_body: Body | None = None,
669
670
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
670
- ) -> Agent:
671
+ ) -> DeleteResponse:
671
672
  """
672
673
  Delete an agent by its unique ID.
673
674
 
@@ -687,7 +688,7 @@ class AsyncAgentsResource(AsyncAPIResource):
687
688
  options=make_request_options(
688
689
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
689
690
  ),
690
- cast_to=Agent,
691
+ cast_to=DeleteResponse,
691
692
  )
692
693
 
693
694
  async def delete_by_name(
@@ -700,7 +701,7 @@ class AsyncAgentsResource(AsyncAPIResource):
700
701
  extra_query: Query | None = None,
701
702
  extra_body: Body | None = None,
702
703
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
703
- ) -> Agent:
704
+ ) -> DeleteResponse:
704
705
  """
705
706
  Delete an agent by its unique name.
706
707
 
@@ -720,7 +721,7 @@ class AsyncAgentsResource(AsyncAPIResource):
720
721
  options=make_request_options(
721
722
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
722
723
  ),
723
- cast_to=Agent,
724
+ cast_to=DeleteResponse,
724
725
  )
725
726
 
726
727
  async def retrieve_by_name(
@@ -192,6 +192,8 @@ class MessagesResource(SyncAPIResource):
192
192
  List Messages
193
193
 
194
194
  Args:
195
+ task_id: The task ID
196
+
195
197
  extra_headers: Send extra headers
196
198
 
197
199
  extra_query: Add additional query parameters to the request
@@ -377,6 +379,8 @@ class AsyncMessagesResource(AsyncAPIResource):
377
379
  List Messages
378
380
 
379
381
  Args:
382
+ task_id: The task ID
383
+
380
384
  extra_headers: Send extra headers
381
385
 
382
386
  extra_query: Add additional query parameters to the request
@@ -17,8 +17,7 @@ from .._streaming import Stream, AsyncStream
17
17
  from ..types.task import Task
18
18
  from .._base_client import make_request_options
19
19
  from ..types.task_list_response import TaskListResponse
20
- from ..types.task_delete_response import TaskDeleteResponse
21
- from ..types.task_delete_by_name_response import TaskDeleteByNameResponse
20
+ from ..types.shared.delete_response import DeleteResponse
22
21
 
23
22
  __all__ = ["TasksResource", "AsyncTasksResource"]
24
23
 
@@ -105,7 +104,7 @@ class TasksResource(SyncAPIResource):
105
104
  extra_query: Query | None = None,
106
105
  extra_body: Body | None = None,
107
106
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
108
- ) -> TaskDeleteResponse:
107
+ ) -> DeleteResponse:
109
108
  """
110
109
  Delete a task by its unique ID.
111
110
 
@@ -125,7 +124,7 @@ class TasksResource(SyncAPIResource):
125
124
  options=make_request_options(
126
125
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
127
126
  ),
128
- cast_to=TaskDeleteResponse,
127
+ cast_to=DeleteResponse,
129
128
  )
130
129
 
131
130
  def delete_by_name(
@@ -138,7 +137,7 @@ class TasksResource(SyncAPIResource):
138
137
  extra_query: Query | None = None,
139
138
  extra_body: Body | None = None,
140
139
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
141
- ) -> TaskDeleteByNameResponse:
140
+ ) -> DeleteResponse:
142
141
  """
143
142
  Delete a task by its unique name.
144
143
 
@@ -158,7 +157,7 @@ class TasksResource(SyncAPIResource):
158
157
  options=make_request_options(
159
158
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
160
159
  ),
161
- cast_to=TaskDeleteByNameResponse,
160
+ cast_to=DeleteResponse,
162
161
  )
163
162
 
164
163
  def retrieve_by_name(
@@ -347,7 +346,7 @@ class AsyncTasksResource(AsyncAPIResource):
347
346
  extra_query: Query | None = None,
348
347
  extra_body: Body | None = None,
349
348
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
350
- ) -> TaskDeleteResponse:
349
+ ) -> DeleteResponse:
351
350
  """
352
351
  Delete a task by its unique ID.
353
352
 
@@ -367,7 +366,7 @@ class AsyncTasksResource(AsyncAPIResource):
367
366
  options=make_request_options(
368
367
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
369
368
  ),
370
- cast_to=TaskDeleteResponse,
369
+ cast_to=DeleteResponse,
371
370
  )
372
371
 
373
372
  async def delete_by_name(
@@ -380,7 +379,7 @@ class AsyncTasksResource(AsyncAPIResource):
380
379
  extra_query: Query | None = None,
381
380
  extra_body: Body | None = None,
382
381
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
383
- ) -> TaskDeleteByNameResponse:
382
+ ) -> DeleteResponse:
384
383
  """
385
384
  Delete a task by its unique name.
386
385
 
@@ -400,7 +399,7 @@ class AsyncTasksResource(AsyncAPIResource):
400
399
  options=make_request_options(
401
400
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
402
401
  ),
403
- cast_to=TaskDeleteByNameResponse,
402
+ cast_to=DeleteResponse,
404
403
  )
405
404
 
406
405
  async def retrieve_by_name(
agentex/types/__init__.py CHANGED
@@ -7,6 +7,7 @@ from .task import Task as Task
7
7
  from .agent import Agent as Agent
8
8
  from .event import Event as Event
9
9
  from .state import State as State
10
+ from .shared import DeleteResponse as DeleteResponse
10
11
  from .acp_type import AcpType as AcpType
11
12
  from .data_delta import DataDelta as DataDelta
12
13
  from .text_delta import TextDelta as TextDelta
@@ -40,7 +41,6 @@ from .state_update_params import StateUpdateParams as StateUpdateParams
40
41
  from .task_message_update import TaskMessageUpdate as TaskMessageUpdate
41
42
  from .tool_response_delta import ToolResponseDelta as ToolResponseDelta
42
43
  from .tracker_list_params import TrackerListParams as TrackerListParams
43
- from .task_delete_response import TaskDeleteResponse as TaskDeleteResponse
44
44
  from .task_message_content import TaskMessageContent as TaskMessageContent
45
45
  from .tool_request_content import ToolRequestContent as ToolRequestContent
46
46
  from .message_create_params import MessageCreateParams as MessageCreateParams
@@ -53,4 +53,3 @@ from .agent_rpc_by_name_params import AgentRpcByNameParams as AgentRpcByNamePara
53
53
  from .task_message_content_param import TaskMessageContentParam as TaskMessageContentParam
54
54
  from .tool_request_content_param import ToolRequestContentParam as ToolRequestContentParam
55
55
  from .tool_response_content_param import ToolResponseContentParam as ToolResponseContentParam
56
- from .task_delete_by_name_response import TaskDeleteByNameResponse as TaskDeleteByNameResponse
@@ -10,5 +10,6 @@ __all__ = ["MessageListParams"]
10
10
 
11
11
  class MessageListParams(TypedDict, total=False):
12
12
  task_id: Required[str]
13
+ """The task ID"""
13
14
 
14
15
  limit: Optional[int]
@@ -0,0 +1,3 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from .delete_response import DeleteResponse as DeleteResponse
@@ -0,0 +1,11 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from ..._models import BaseModel
4
+
5
+ __all__ = ["DeleteResponse"]
6
+
7
+
8
+ class DeleteResponse(BaseModel):
9
+ id: str
10
+
11
+ message: str
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: agentex-sdk
3
- Version: 0.2.3
3
+ Version: 0.2.5
4
4
  Summary: The official Python library for the agentex API
5
5
  Project-URL: Homepage, https://github.com/scaleapi/agentex-python
6
6
  Project-URL: Repository, https://github.com/scaleapi/agentex-python
@@ -31,7 +31,7 @@ Requires-Dist: jsonschema<5,>=4.23.0
31
31
  Requires-Dist: kubernetes<29.0.0,>=25.0.0
32
32
  Requires-Dist: litellm<2,>=1.66.0
33
33
  Requires-Dist: mcp[cli]>=1.4.1
34
- Requires-Dist: openai-agents>=0.0.7
34
+ Requires-Dist: openai-agents!=0.2.3,>=0.0.7
35
35
  Requires-Dist: pydantic<3,>=2.0.0
36
36
  Requires-Dist: pytest-asyncio>=1.0.0
37
37
  Requires-Dist: pytest>=8.4.0
@@ -11,7 +11,7 @@ agentex/_resource.py,sha256=S1t7wmR5WUvoDIhZjo_x-E7uoTJBynJ3d8tPJMQYdjw,1106
11
11
  agentex/_response.py,sha256=Tb9zazsnemO2rTxWtBjAD5WBqlhli5ZaXGbiKgdu5DE,28794
12
12
  agentex/_streaming.py,sha256=FNGJExRCF-vTRUZHFKUfoAWFhDGOB3XbioVCF37Jr7E,10104
13
13
  agentex/_types.py,sha256=KyKYySGIfHPod2hho1fPxssk5NuVn8C4MeMTtA-lg80,6198
14
- agentex/_version.py,sha256=gaveMH33nXDCGMmyPCNNYeNapFs-32mlnSES-b86nfA,159
14
+ agentex/_version.py,sha256=fPT5ffTH4tk3Hr-8_tC-QuVMI2_qSnjmzLboSSdVt3k,159
15
15
  agentex/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
16
  agentex/_utils/__init__.py,sha256=PNZ_QJuzZEgyYXqkO1HVhGkj5IU9bglVUcw7H-Knjzw,2062
17
17
  agentex/_utils/_logs.py,sha256=LUjFPc3fweSChBUmjhQD8uYmwQAmFMNDuVFKfjYBQfM,777
@@ -29,15 +29,15 @@ agentex/lib/environment_variables.py,sha256=FbJ-tm_thJs5Fv1q4-oY4CED4DNlwCeu3v4x
29
29
  agentex/lib/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
30
  agentex/lib/adk/__init__.py,sha256=-PpVfEvYr_HD7TnxUWU8RCW2OnxfwpPxTW97dKTnqvI,1082
31
31
  agentex/lib/adk/_modules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
- agentex/lib/adk/_modules/acp.py,sha256=0cNsHYCMvMA6GfWpPg4SSbBTFLP8PPx_SXZIoizswUU,8934
33
- agentex/lib/adk/_modules/agent_task_tracker.py,sha256=B6Rwh-_rHzCJrTVWcteVT9l1acSj9WJtQ6NhLgJ9now,6929
34
- agentex/lib/adk/_modules/agents.py,sha256=Rhv2hf2eADfsmSj3Y2CBgoGLfsavgyv14_6cMK_qUJY,2695
35
- agentex/lib/adk/_modules/events.py,sha256=FxJHmENDBzYIcXtWuuDp86tLxbffLGju3qbVih2an_s,5169
36
- agentex/lib/adk/_modules/messages.py,sha256=vYJ4i-69aOYXf-9phN_fMEtqwvp5HL9cW1Kf2vpRxEs,10543
37
- agentex/lib/adk/_modules/state.py,sha256=F4svy-QPVKs0xfb6lz9eMKpb6ibbdUK2thwv94wuL4Y,10637
38
- agentex/lib/adk/_modules/streaming.py,sha256=XpLvIz-MA_SDOw-sIuPS8hFhN-jaGcOxN-LEd1F9pDg,3002
39
- agentex/lib/adk/_modules/tasks.py,sha256=ch-EFsVdc9bkU2tQMm30JVZUlP48ai7pKIOhUkPPABw,4127
40
- agentex/lib/adk/_modules/tracing.py,sha256=sNpG7WNMdWpscjUMGFFthJ1gqxm0_gOkf2yrMulcliM,7251
32
+ agentex/lib/adk/_modules/acp.py,sha256=Km0YgWHqshIufMuoNMtuL_63SDquumU-7DdikJBpBjU,9021
33
+ agentex/lib/adk/_modules/agent_task_tracker.py,sha256=wiLcDh5zDfZvhaSnUJQMbC4IEeAqY9wjfIltkRZ6q18,7016
34
+ agentex/lib/adk/_modules/agents.py,sha256=Eh1X6zcBhmFIS7VRd7cdSYQhkqQPMlKztplPuxSC5_4,2782
35
+ agentex/lib/adk/_modules/events.py,sha256=WFahyafBFvFvGQ21zMXQtqT1q8my7aM8beYCMbcmo7o,5256
36
+ agentex/lib/adk/_modules/messages.py,sha256=6-OxYSuCiY-X9Vcq97naw4Lcf85W3H8zHNNsv0WnNJk,10630
37
+ agentex/lib/adk/_modules/state.py,sha256=8n52ensAq_ebH9gGMWtXFLZ1qqzBn7cbvT12DVBtmsg,10724
38
+ agentex/lib/adk/_modules/streaming.py,sha256=3xtuS5MqWuuDDpUmc4Y5aGET31pBCrZCWem-psvANAk,3089
39
+ agentex/lib/adk/_modules/tasks.py,sha256=iFrsIf2Qv52hCaIw4Xnz8CrXs9vwG1Cu8cTJI-SwSYk,4214
40
+ agentex/lib/adk/_modules/tracing.py,sha256=-D2yGPhvcA7V1JTA95DlrFwzBd-ihu_6R7zenv-URKU,7338
41
41
  agentex/lib/adk/providers/__init__.py,sha256=KPWC8AYsl8lPgpFoRXlGwzozb-peKLAzV_DcTWXBsz4,306
42
42
  agentex/lib/adk/providers/_modules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
43
43
  agentex/lib/adk/providers/_modules/litellm.py,sha256=YUHZ_m0kL9wEG5pX9x4BeyioiDjOa2anCWk6uo6-vqQ,9393
@@ -45,20 +45,21 @@ agentex/lib/adk/providers/_modules/openai.py,sha256=h7G3y4Gd2wF3XuYEi_aQXORxZhtH
45
45
  agentex/lib/adk/providers/_modules/sgp.py,sha256=Me5TeU7OPjPBVeEw7a-DQnYcJ3fbGi3liYbuW5CGiLE,3131
46
46
  agentex/lib/adk/utils/__init__.py,sha256=7f6ayV0_fqyw5cwzVANNcZWGJZ-vrrYtZ0qi7KKBRFs,130
47
47
  agentex/lib/adk/utils/_modules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
48
+ agentex/lib/adk/utils/_modules/client.py,sha256=2XrFTwB2y9fTTpSzmaXz8hzHR7VWf4F6cL_rCAwQLZo,1487
48
49
  agentex/lib/adk/utils/_modules/templating.py,sha256=YPm2bY_iBv9jWf0lncRGUpBZyq_QHBCRlM-XbHjauRc,3502
49
50
  agentex/lib/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
50
51
  agentex/lib/cli/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
51
- agentex/lib/cli/commands/agents.py,sha256=yh9ZsY2lic820NZWALNNzn-8BOELOoIHNYyCjeDHk2I,11474
52
+ agentex/lib/cli/commands/agents.py,sha256=PJVkopMLQEg4lOQf-Dvjb_b0TL6qaWTH2dN6_cxRneo,11417
52
53
  agentex/lib/cli/commands/init.py,sha256=JsfusiLTgPu5IAI0MVDR15qA6wx5R2ZowjUJ728GJyQ,8146
53
54
  agentex/lib/cli/commands/main.py,sha256=aDn9xJIIQQD33v3caET_NX-8eBxoWC3QfZGMUgjeGN8,1093
54
55
  agentex/lib/cli/commands/secrets.py,sha256=cVtsqyGGieBVM4dKkbJROmzR_NJRODFngcEbi1Nc92A,5604
55
56
  agentex/lib/cli/commands/tasks.py,sha256=9ARR0VgM2ZZXSFDlMiA_E9RDL2V7Piipp8Fna_OBrKQ,3652
56
57
  agentex/lib/cli/commands/uv.py,sha256=n6nk2F2gPUXrvWOljSN06Y5bOEnhaZH4rulproAJktA,3553
57
58
  agentex/lib/cli/handlers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
58
- agentex/lib/cli/handlers/agent_handlers.py,sha256=tO-SezObLOHyXnuLVZcdOhs7klsShwG4YKUIw6Q-KW0,5463
59
- agentex/lib/cli/handlers/cleanup_handlers.py,sha256=xFQvaPzrP0sftd1NRMA2Qi3FcNwfiJe1zAH6ZqtQ5qw,7434
60
- agentex/lib/cli/handlers/deploy_handlers.py,sha256=a1QDRsd5uDGzPTxWx8dufGRZbmzx_OfrC9eJgYcI_RE,13566
61
- agentex/lib/cli/handlers/run_handlers.py,sha256=0KgWjaHTkmE1IX9Aj7vT4-aKBPFRsVuOhMTgcp7xJ7o,16863
59
+ agentex/lib/cli/handlers/agent_handlers.py,sha256=ovhnQOa-lAi5g2J3BVutA0vbprsOFe0lt2qw-qIZah4,5470
60
+ agentex/lib/cli/handlers/cleanup_handlers.py,sha256=V1V0zeErOUGTgCQqjyUl6CWtzGjFW878uzFaLOQJEyQ,7073
61
+ agentex/lib/cli/handlers/deploy_handlers.py,sha256=Bj2a0zav7YVaaMM55o39k2-x2cl-DgPdISZXjzd7yPQ,14896
62
+ agentex/lib/cli/handlers/run_handlers.py,sha256=2DkaGN27nHcL5pZeoOVdlhttnft_jtVdmv_POgnRASE,13923
62
63
  agentex/lib/cli/handlers/secret_handlers.py,sha256=VfAdAQovW9tG36Xgk_gGIGwTyFMxR3P6xc7fmAviNA8,24719
63
64
  agentex/lib/cli/templates/default/.dockerignore.j2,sha256=hweGFxw5eDZYsb5EnRHpv27o9M1HF2PEWOxqsfBBcAE,320
64
65
  agentex/lib/cli/templates/default/Dockerfile-uv.j2,sha256=tGJo_C4vwHYikV4QhGFtSiG6K7Nt4UDdJ71Gob_uTho,1109
@@ -81,7 +82,7 @@ agentex/lib/cli/templates/sync/manifest.yaml.j2,sha256=V497KXzvA76sHrgIJ5zRJptpI
81
82
  agentex/lib/cli/templates/sync/pyproject.toml.j2,sha256=9cpTISM7rOoICWejV5GYMEwPn8RUmB6-E7csM1pmSFo,528
82
83
  agentex/lib/cli/templates/sync/requirements.txt.j2,sha256=iTmO-z8qFkUa1jTctFCs0WYuq7Sqi6VNQAwATakh2fQ,94
83
84
  agentex/lib/cli/templates/sync/deploy/example.yaml.j2,sha256=sHIEuhtruyCfGPgeLQ1ilCCnRH0HpsqhDdQT44UWUaU,1554
84
- agentex/lib/cli/templates/sync/project/acp.py.j2,sha256=XSiJ3HNU6h_g0HFKo48n7wh1IXMCUUQT0IUEsC5pFgg,3489
85
+ agentex/lib/cli/templates/sync/project/acp.py.j2,sha256=X5RaE9iR4Dp-kPJL0r1QAe6ohfiOTcYizwtwGW2GzHg,1003
85
86
  agentex/lib/cli/templates/temporal/.dockerignore.j2,sha256=hweGFxw5eDZYsb5EnRHpv27o9M1HF2PEWOxqsfBBcAE,320
86
87
  agentex/lib/cli/templates/temporal/Dockerfile-uv.j2,sha256=bnvx-zba5DFjl7UC-TYt-Zi_UDJucjlNRCdkSqHgBiQ,1450
87
88
  agentex/lib/cli/templates/temporal/Dockerfile.j2,sha256=pcszlprNTqKMpYEtA4XYlc3vWjq1b0IMQDrN1GxF7yI,1461
@@ -101,6 +102,7 @@ agentex/lib/cli/utils/credential_utils.py,sha256=EzI_Wdvr2lt9uf9sNML1RTkzqIv6Ljp
101
102
  agentex/lib/cli/utils/exceptions.py,sha256=ZhQZzciroj4zeYlL0TWmoQ6oeLBcAowGhCGMP7Ac_lA,161
102
103
  agentex/lib/cli/utils/kubectl_utils.py,sha256=ucI0z-Zn-sFwk84MKfCgfX9CLZxlLSx242W_0MsyYxU,4907
103
104
  agentex/lib/cli/utils/kubernetes_secrets_utils.py,sha256=uKsUvKvHfRGvNxgRgOFW0MJ2RyA9QJJjPQ1QA-qcaZk,6978
105
+ agentex/lib/cli/utils/path_utils.py,sha256=WN5rZCdb9SIrtN-P6QqIQuaH54HgqQ3fUMUnaIYxT0I,5747
104
106
  agentex/lib/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
105
107
  agentex/lib/core/adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
106
108
  agentex/lib/core/adapters/llm/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
@@ -176,7 +178,7 @@ agentex/lib/sdk/config/local_development_config.py,sha256=b1AZsOVo1RoHKbk8Nm5nC8
176
178
  agentex/lib/sdk/config/project_config.py,sha256=CGH_r9KbnSFMj2CnBkZnfg41L2o0TeVNz6MwBDKPT_U,3642
177
179
  agentex/lib/sdk/fastacp/__init__.py,sha256=UvAdexdnfb4z0F4a2sfXROFyh9EjH89kf3AxHPybzCM,75
178
180
  agentex/lib/sdk/fastacp/fastacp.py,sha256=K4D7a9EiJfCgWp2hrE_TbpZBaF4Uc46MfndZK3F9mA0,3061
179
- agentex/lib/sdk/fastacp/base/base_acp_server.py,sha256=gsbBb8-zNu991vTh6_f5KjR_NC8Knoyy1YTsPAPN2KQ,17066
181
+ agentex/lib/sdk/fastacp/base/base_acp_server.py,sha256=mvNbY6-KAg1qaIYDfF9bm_fHTsDbvmmf69Z_b8NPa0k,17651
180
182
  agentex/lib/sdk/fastacp/impl/agentic_base_acp.py,sha256=fWLX9_mxmX502EBXoymUz1Tu1vEppshS48-aOSpuvlM,2600
181
183
  agentex/lib/sdk/fastacp/impl/sync_acp.py,sha256=8FEDfBxI31NoVLX9nyckQ8QwA0UV4svC3fhGKgXBIwk,3862
182
184
  agentex/lib/sdk/fastacp/impl/temporal_acp.py,sha256=ZLqjzBBVrXJCXD2bFlrcDkFvpsXZp3thC2rTwZ6xNaY,3737
@@ -198,6 +200,7 @@ agentex/lib/types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU
198
200
  agentex/lib/types/acp.py,sha256=lFuWZwlXy1TNUHGvCXmyPLPbt8ME_2lejdWwx8VcodY,2970
199
201
  agentex/lib/types/agent_configs.py,sha256=3wRa2okimSzi2v8sJyMyrqRlcu_4sxes-_4smEK6fq8,2798
200
202
  agentex/lib/types/agent_results.py,sha256=ev6WnPLfZRbhy2HnBmdIrZq1ExVeaweXoLRxYGspyWM,653
203
+ agentex/lib/types/converters.py,sha256=u6fLb0rBUDA6nF5hdbC8ms6H-Z21IQfLlIvYpau_P5g,2283
201
204
  agentex/lib/types/credentials.py,sha256=xUyh0MiNgy1c-BSBGXqbAMgbFEqnglESK99SRbsCsZA,1442
202
205
  agentex/lib/types/fastacp.py,sha256=nU4rT823Ckix7bFwvVXtPsk6el3U1E4TH-OEvMqIBr4,1304
203
206
  agentex/lib/types/files.py,sha256=sNxiuR_oEo7Z0YMqjQShErvS3txWyobrZzc4QMMM61U,320
@@ -220,16 +223,16 @@ agentex/lib/utils/temporal.py,sha256=sXo8OPMMXiyrF7OSBCJBuN_ufyQOD2bLOXgDbVZoyds
220
223
  agentex/lib/utils/dev_tools/__init__.py,sha256=oaHxw6ymfhNql-kzXHv3NWVHuqD4fHumasNXJG7kHTU,261
221
224
  agentex/lib/utils/dev_tools/async_messages.py,sha256=-alUK1KFltcRb6xtRtIJIRJW9Sf1FwDRgaNPhOn-luw,18105
222
225
  agentex/resources/__init__.py,sha256=74rMqWBzQ2dSrKQqsrd7-jskPws0O_ogkFltvZO3HoU,3265
223
- agentex/resources/agents.py,sha256=ibt5SXgcpwIsRJ9BFptfQyqapHZCKQsKGpcKnWcX0vI,46605
226
+ agentex/resources/agents.py,sha256=Iwt2jnBUgSynMdfxYjW7KV9o0nZjT7cgiSqS_Zd4jmU,46735
224
227
  agentex/resources/events.py,sha256=Zc9JhUm3bq2VFnBAolC0M7KZernzj1AjZ_vj0ibP4GY,10412
225
228
  agentex/resources/spans.py,sha256=wmcUs4XbXIF5rPeyU_f39c2RTbTLnkuh2LYogZEBD6s,20936
226
229
  agentex/resources/states.py,sha256=O31A8--n7n0rHsng2e1oCUAzLNjQIxDUk7rq0IXfgGM,19262
227
- agentex/resources/tasks.py,sha256=NSVPPS2sZGzMTHxuKAvFeV_5EqsM54t1uLOMzqpZayo,23328
230
+ agentex/resources/tasks.py,sha256=92jnjwHeGJ6sA7l0SuuKJKptTaIpk7N1pCxdlGr9OVg,23196
228
231
  agentex/resources/tracker.py,sha256=YxSeiloMwIqrS9nY7SlHclauRA7142qrKw34xgwqYbA,14103
229
232
  agentex/resources/messages/__init__.py,sha256=_J1eusFtr_k6zrAntJSuqx6LWEUBSTrV1OZZh7MaDPE,1015
230
233
  agentex/resources/messages/batch.py,sha256=pegCmnjK_J0jek5ChX1pKpq5RmCucTYLbK69H6qGVS4,9629
231
- agentex/resources/messages/messages.py,sha256=XJpBhVe_yCm52GhALpz-rFjGbZ96bA8fQ_wsfk9EH6U,17866
232
- agentex/types/__init__.py,sha256=55T7MC3XtmCNrOo0X8c1GGi68ApsBjl3Hg0OKbOxf2A,3568
234
+ agentex/resources/messages/messages.py,sha256=fuFmmGNOjRJVzmYHcfP2trg0yii0n9MPPCpt7F8fDs4,17930
235
+ agentex/types/__init__.py,sha256=4urMNGYc6igsHctipe7CasICo7HGxq-SGAzqOSP_fdw,3451
233
236
  agentex/types/acp_type.py,sha256=Fj-4SzmM6m95ck_ZXtNbcWggHiD9F49bxBLPbl1fxe4,208
234
237
  agentex/types/agent.py,sha256=WZRc8VZtc-JIeNHw5FsVTSMrxlaJ5A0ABvHv3t_zA4s,792
235
238
  agentex/types/agent_list_params.py,sha256=81IWnRZ2rLfHH7GB6VkXShYjb44DO0guG1znJcV3tuI,316
@@ -247,7 +250,7 @@ agentex/types/event_list_params.py,sha256=Rrz0yo2w3gMTNYe3HQS9YCX1VktE_aaktuHezx
247
250
  agentex/types/event_list_response.py,sha256=rjUCkwS0pXnfqHEVPEKZdLIGJ14uXOrjatuOfR36s5s,254
248
251
  agentex/types/message_author.py,sha256=_IIVLAcZsLTG_vQWFpjWuxLIaHrc6wkv3q7qu5gam0o,218
249
252
  agentex/types/message_create_params.py,sha256=Vt7Hig0lI8qxWDpJ4JhjfjglSzptI2PjzbrOD1Qkmxk,502
250
- agentex/types/message_list_params.py,sha256=5E3PltXIcAIqG_Pv83s8O6soopj1cq7Bv-iF6e3m5UE,338
253
+ agentex/types/message_list_params.py,sha256=MGXLwUUBaaiG-rsGjui5dlJ0sxv1twkSugFoOLXcX0E,360
251
254
  agentex/types/message_list_response.py,sha256=YYDf-57zLS-E1eX3EZxz7c6XCuBcRBws01_q2G7uk4Y,277
252
255
  agentex/types/message_style.py,sha256=nuoXzoDyP3KAQsQeKHaiby1EMxeY-8TJjWr8eMMpQEE,219
253
256
  agentex/types/message_update_params.py,sha256=_KpnJ56FNeoIcwodQmAgsweqH1YAeIgYVT2jo9ahUhY,502
@@ -262,8 +265,6 @@ agentex/types/state_list_params.py,sha256=jsBeE98mVvS-pk9iytNTVVSW6pz7OM4Zt-OxC2
262
265
  agentex/types/state_list_response.py,sha256=3UyMRzP3zdEKo9hTkJdvBHjmv6II4KnwoZ8GvlzPCSI,254
263
266
  agentex/types/state_update_params.py,sha256=TpCXMrYaT2MWeOPng9-RGvGX9vE61Te9r3CFRQzzIDg,377
264
267
  agentex/types/task.py,sha256=Pgj5HSrThPJgFRKWXPgW3LRT9Jwgn9eR_CCnlbNznzU,543
265
- agentex/types/task_delete_by_name_response.py,sha256=3kjX24vq7NkKSZ0uKsU-i2cPUu_05jb0InIaxS0ZmLg,245
266
- agentex/types/task_delete_response.py,sha256=Pxq9Bak_NPudBQusbuQnAG6HihNCyA5ltKoqR5w3rPs,233
267
268
  agentex/types/task_list_response.py,sha256=8Q-RIanLmUC9vOuDXoW5gjpZeE-HR6IrBugG7-cUAZQ,249
268
269
  agentex/types/task_message.py,sha256=hoLAkiQJd1Fl7EjLof-vZq6zVnDw9SKmnV6V74Po58A,918
269
270
  agentex/types/task_message_content.py,sha256=57ebp-65y52KOZ7usVJShArIdXqBhFo5eOn8uy4HM_c,575
@@ -287,8 +288,10 @@ agentex/types/messages/batch_create_params.py,sha256=trUV75ntEVnxYhd1FIWub6dHBaN
287
288
  agentex/types/messages/batch_create_response.py,sha256=yaSLTw2MWWpHF23BGO1Xy9js38_7EIqHAuiLha8VSfc,278
288
289
  agentex/types/messages/batch_update_params.py,sha256=Ug5CThbD49a8j4qucg04OdmVrp_gApgpw0hg6NLsR3g,433
289
290
  agentex/types/messages/batch_update_response.py,sha256=TbSBe6SuPzjXXWSj-nRjT1JHGBooTshHQQDa1AixQA8,278
290
- agentex_sdk-0.2.3.dist-info/METADATA,sha256=hoWAam811pyQl421I9RIHGvrZc3O8lVUWaTZbd-y4UQ,14110
291
- agentex_sdk-0.2.3.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
292
- agentex_sdk-0.2.3.dist-info/entry_points.txt,sha256=V7vJuMZdF0UlvgX6KiBN7XUvq_cxF5kplcYvc1QlFaQ,62
293
- agentex_sdk-0.2.3.dist-info/licenses/LICENSE,sha256=Q1AOx2FtRcMlyMgQJ9eVN2WKPq2mQ33lnB4tvWxabLA,11337
294
- agentex_sdk-0.2.3.dist-info/RECORD,,
291
+ agentex/types/shared/__init__.py,sha256=IKs-Qn5Yja0kFh1G1kDqYZo43qrOu1hSoxlPdN-85dI,149
292
+ agentex/types/shared/delete_response.py,sha256=8qH3zvQXaOHYQSHyXi7UQxdR4miTzR7V9K4zXVsiUyk,215
293
+ agentex_sdk-0.2.5.dist-info/METADATA,sha256=intnD9hPOyqlKmf-KxVVbIwUr2ew2l2WkC4X3sGcPew,14118
294
+ agentex_sdk-0.2.5.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
295
+ agentex_sdk-0.2.5.dist-info/entry_points.txt,sha256=V7vJuMZdF0UlvgX6KiBN7XUvq_cxF5kplcYvc1QlFaQ,62
296
+ agentex_sdk-0.2.5.dist-info/licenses/LICENSE,sha256=Q1AOx2FtRcMlyMgQJ9eVN2WKPq2mQ33lnB4tvWxabLA,11337
297
+ agentex_sdk-0.2.5.dist-info/RECORD,,
@@ -1,8 +0,0 @@
1
- # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
-
3
- from typing import Dict
4
- from typing_extensions import TypeAlias
5
-
6
- __all__ = ["TaskDeleteByNameResponse"]
7
-
8
- TaskDeleteByNameResponse: TypeAlias = Dict[str, str]
@@ -1,8 +0,0 @@
1
- # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
-
3
- from typing import Dict
4
- from typing_extensions import TypeAlias
5
-
6
- __all__ = ["TaskDeleteResponse"]
7
-
8
- TaskDeleteResponse: TypeAlias = Dict[str, str]