agentex-sdk 0.4.4__py3-none-any.whl → 0.4.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.
- agentex/_version.py +1 -1
- agentex/lib/adk/_modules/acp.py +1 -1
- agentex/lib/core/temporal/activities/activity_helpers.py +0 -4
- agentex/lib/core/temporal/activities/adk/providers/openai_activities.py +91 -5
- agentex/lib/utils/model_utils.py +22 -2
- agentex/types/__init__.py +1 -0
- agentex/types/text_content.py +2 -1
- agentex/types/text_content_param.py +2 -1
- agentex/types/text_format.py +7 -0
- {agentex_sdk-0.4.4.dist-info → agentex_sdk-0.4.5.dist-info}/METADATA +3 -2
- {agentex_sdk-0.4.4.dist-info → agentex_sdk-0.4.5.dist-info}/RECORD +14 -13
- {agentex_sdk-0.4.4.dist-info → agentex_sdk-0.4.5.dist-info}/WHEEL +0 -0
- {agentex_sdk-0.4.4.dist-info → agentex_sdk-0.4.5.dist-info}/entry_points.txt +0 -0
- {agentex_sdk-0.4.4.dist-info → agentex_sdk-0.4.5.dist-info}/licenses/LICENSE +0 -0
agentex/_version.py
CHANGED
agentex/lib/adk/_modules/acp.py
CHANGED
@@ -20,10 +20,6 @@ class ActivityHelpers:
|
|
20
20
|
heartbeat_timeout: timedelta | None = None,
|
21
21
|
retry_policy: RetryPolicy | None = None,
|
22
22
|
) -> Any:
|
23
|
-
if start_to_close_timeout is None:
|
24
|
-
start_to_close_timeout = timedelta(seconds=10)
|
25
|
-
if retry_policy is None:
|
26
|
-
retry_policy = RetryPolicy(maximum_attempts=0)
|
27
23
|
|
28
24
|
response = await workflow.execute_activity(
|
29
25
|
activity=activity_name,
|
@@ -1,10 +1,14 @@
|
|
1
1
|
# Standard library imports
|
2
|
+
import base64
|
2
3
|
from collections.abc import Callable
|
3
4
|
from contextlib import AsyncExitStack, asynccontextmanager
|
4
5
|
from enum import Enum
|
5
|
-
from typing import Any, Literal
|
6
|
+
from typing import Any, Literal, Optional, override
|
6
7
|
|
7
|
-
from
|
8
|
+
from pydantic import Field, PrivateAttr
|
9
|
+
|
10
|
+
import cloudpickle
|
11
|
+
from agents import RunContextWrapper, RunResult, RunResultStreaming
|
8
12
|
from agents.mcp import MCPServerStdio, MCPServerStdioParams
|
9
13
|
from agents.model_settings import ModelSettings as OAIModelSettings
|
10
14
|
from agents.tool import FunctionTool as OAIFunctionTool
|
@@ -41,12 +45,92 @@ class FunctionTool(BaseModelWithTraceParams):
|
|
41
45
|
name: str
|
42
46
|
description: str
|
43
47
|
params_json_schema: dict[str, Any]
|
44
|
-
|
48
|
+
|
45
49
|
strict_json_schema: bool = True
|
46
50
|
is_enabled: bool = True
|
47
51
|
|
52
|
+
_on_invoke_tool: Callable[[RunContextWrapper, str], Any] = PrivateAttr()
|
53
|
+
on_invoke_tool_serialized: str = Field(
|
54
|
+
default="",
|
55
|
+
description=(
|
56
|
+
"Normally will be set automatically during initialization and"
|
57
|
+
" doesn't need to be passed. "
|
58
|
+
"Instead, pass `on_invoke_tool` to the constructor. "
|
59
|
+
"See the __init__ method for details."
|
60
|
+
),
|
61
|
+
)
|
62
|
+
|
63
|
+
def __init__(
|
64
|
+
self,
|
65
|
+
*,
|
66
|
+
on_invoke_tool: Optional[Callable[[RunContextWrapper, str], Any]] = None,
|
67
|
+
**data,
|
68
|
+
):
|
69
|
+
"""
|
70
|
+
Initialize a FunctionTool with hacks to support serialization of the
|
71
|
+
on_invoke_tool callable arg. This is required to facilitate over-the-wire
|
72
|
+
communication of this object to/from temporal services/workers.
|
73
|
+
|
74
|
+
Args:
|
75
|
+
on_invoke_tool: The callable to invoke when the tool is called.
|
76
|
+
**data: Additional data to initialize the FunctionTool.
|
77
|
+
"""
|
78
|
+
super().__init__(**data)
|
79
|
+
if not on_invoke_tool:
|
80
|
+
if not self.on_invoke_tool_serialized:
|
81
|
+
raise ValueError(
|
82
|
+
"One of `on_invoke_tool` or `on_invoke_tool_serialized` should be set"
|
83
|
+
)
|
84
|
+
else:
|
85
|
+
on_invoke_tool = self._deserialize_callable(
|
86
|
+
self.on_invoke_tool_serialized
|
87
|
+
)
|
88
|
+
else:
|
89
|
+
self.on_invoke_tool_serialized = self._serialize_callable(on_invoke_tool)
|
90
|
+
|
91
|
+
self._on_invoke_tool = on_invoke_tool
|
92
|
+
|
93
|
+
@classmethod
|
94
|
+
def _deserialize_callable(
|
95
|
+
cls, serialized: str
|
96
|
+
) -> Callable[[RunContextWrapper, str], Any]:
|
97
|
+
encoded = serialized.encode()
|
98
|
+
serialized_bytes = base64.b64decode(encoded)
|
99
|
+
return cloudpickle.loads(serialized_bytes)
|
100
|
+
|
101
|
+
@classmethod
|
102
|
+
def _serialize_callable(cls, func: Callable) -> str:
|
103
|
+
serialized_bytes = cloudpickle.dumps(func)
|
104
|
+
encoded = base64.b64encode(serialized_bytes)
|
105
|
+
return encoded.decode()
|
106
|
+
|
107
|
+
@property
|
108
|
+
def on_invoke_tool(self) -> Callable[[RunContextWrapper, str], Any]:
|
109
|
+
if self._on_invoke_tool is None and self.on_invoke_tool_serialized:
|
110
|
+
self._on_invoke_tool = self._deserialize_callable(
|
111
|
+
self.on_invoke_tool_serialized
|
112
|
+
)
|
113
|
+
return self._on_invoke_tool
|
114
|
+
|
115
|
+
@on_invoke_tool.setter
|
116
|
+
def on_invoke_tool(self, value: Callable[[RunContextWrapper, str], Any]):
|
117
|
+
self.on_invoke_tool_serialized = self._serialize_callable(value)
|
118
|
+
self._on_invoke_tool = value
|
119
|
+
|
48
120
|
def to_oai_function_tool(self) -> OAIFunctionTool:
|
49
|
-
|
121
|
+
"""Convert to OpenAI function tool, excluding serialization fields."""
|
122
|
+
# Create a dictionary with only the fields OAIFunctionTool expects
|
123
|
+
data = self.model_dump(
|
124
|
+
exclude={
|
125
|
+
"trace_id",
|
126
|
+
"parent_span_id",
|
127
|
+
"_on_invoke_tool",
|
128
|
+
"on_invoke_tool_serialized",
|
129
|
+
}
|
130
|
+
)
|
131
|
+
# Add the callable for OAI tool since properties are not serialized
|
132
|
+
data["on_invoke_tool"] = self.on_invoke_tool
|
133
|
+
return OAIFunctionTool(**data)
|
50
134
|
|
51
135
|
|
52
136
|
class ModelSettings(BaseModelWithTraceParams):
|
@@ -68,7 +152,9 @@ class ModelSettings(BaseModelWithTraceParams):
|
|
68
152
|
extra_args: dict[str, Any] | None = None
|
69
153
|
|
70
154
|
def to_oai_model_settings(self) -> OAIModelSettings:
|
71
|
-
return OAIModelSettings(
|
155
|
+
return OAIModelSettings(
|
156
|
+
**self.model_dump(exclude=["trace_id", "parent_span_id"])
|
157
|
+
)
|
72
158
|
|
73
159
|
|
74
160
|
class RunAgentParams(BaseModelWithTraceParams):
|
agentex/lib/utils/model_utils.py
CHANGED
@@ -34,11 +34,31 @@ class BaseModel(PydanticBaseModel):
|
|
34
34
|
|
35
35
|
def recursive_model_dump(obj: Any) -> Any:
|
36
36
|
if isinstance(obj, PydanticBaseModel):
|
37
|
-
#
|
38
|
-
|
37
|
+
# Get the model data as dict and recursively process each field
|
38
|
+
# This allows us to handle non-serializable objects like functions
|
39
|
+
try:
|
40
|
+
return obj.model_dump(mode="json")
|
41
|
+
except Exception:
|
42
|
+
# If model_dump fails (e.g., due to functions), manually process
|
43
|
+
model_dict = {}
|
44
|
+
for field_name in obj.__class__.model_fields:
|
45
|
+
field_value = getattr(obj, field_name)
|
46
|
+
model_dict[field_name] = recursive_model_dump(field_value)
|
47
|
+
return model_dict
|
39
48
|
elif isinstance(obj, datetime):
|
40
49
|
# Serialize datetime to ISO format string
|
41
50
|
return obj.isoformat()
|
51
|
+
elif callable(obj):
|
52
|
+
# Serialize functions and other callable objects
|
53
|
+
if hasattr(obj, "__name__"):
|
54
|
+
func_name = obj.__name__
|
55
|
+
else:
|
56
|
+
func_name = str(obj)
|
57
|
+
|
58
|
+
if hasattr(obj, "__module__"):
|
59
|
+
return f"<function {obj.__module__}.{func_name}>"
|
60
|
+
else:
|
61
|
+
return f"<function {func_name}>"
|
42
62
|
elif isinstance(obj, Mapping):
|
43
63
|
# Recursively serialize dictionary values
|
44
64
|
return {k: recursive_model_dump(v) for k, v in obj.items()}
|
agentex/types/__init__.py
CHANGED
@@ -11,6 +11,7 @@ from .shared import DeleteResponse as DeleteResponse
|
|
11
11
|
from .acp_type import AcpType as AcpType
|
12
12
|
from .data_delta import DataDelta as DataDelta
|
13
13
|
from .text_delta import TextDelta as TextDelta
|
14
|
+
from .text_format import TextFormat as TextFormat
|
14
15
|
from .data_content import DataContent as DataContent
|
15
16
|
from .task_message import TaskMessage as TaskMessage
|
16
17
|
from .text_content import TextContent as TextContent
|
agentex/types/text_content.py
CHANGED
@@ -4,6 +4,7 @@ from typing import List, Optional
|
|
4
4
|
from typing_extensions import Literal
|
5
5
|
|
6
6
|
from .._models import BaseModel
|
7
|
+
from .text_format import TextFormat
|
7
8
|
from .message_style import MessageStyle
|
8
9
|
from .message_author import MessageAuthor
|
9
10
|
|
@@ -37,7 +38,7 @@ class TextContent(BaseModel):
|
|
37
38
|
attachments: Optional[List[Attachment]] = None
|
38
39
|
"""Optional list of file attachments with structured metadata."""
|
39
40
|
|
40
|
-
format:
|
41
|
+
format: TextFormat = "plain"
|
41
42
|
"""The format of the message.
|
42
43
|
|
43
44
|
This is used by the client to determine how to display the message.
|
@@ -5,6 +5,7 @@ from __future__ import annotations
|
|
5
5
|
from typing import Iterable, Optional
|
6
6
|
from typing_extensions import Literal, Required, TypedDict
|
7
7
|
|
8
|
+
from .text_format import TextFormat
|
8
9
|
from .message_style import MessageStyle
|
9
10
|
from .message_author import MessageAuthor
|
10
11
|
|
@@ -38,7 +39,7 @@ class TextContentParam(TypedDict, total=False):
|
|
38
39
|
attachments: Optional[Iterable[Attachment]]
|
39
40
|
"""Optional list of file attachments with structured metadata."""
|
40
41
|
|
41
|
-
format:
|
42
|
+
format: TextFormat
|
42
43
|
"""The format of the message.
|
43
44
|
|
44
45
|
This is used by the client to determine how to display the message.
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: agentex-sdk
|
3
|
-
Version: 0.4.
|
3
|
+
Version: 0.4.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
|
@@ -21,6 +21,7 @@ Classifier: Typing :: Typed
|
|
21
21
|
Requires-Python: <4,>=3.12
|
22
22
|
Requires-Dist: aiohttp<4,>=3.10.10
|
23
23
|
Requires-Dist: anyio<5,>=3.5.0
|
24
|
+
Requires-Dist: cloudpickle>=3.1.1
|
24
25
|
Requires-Dist: distro<2,>=1.7.0
|
25
26
|
Requires-Dist: fastapi<0.116,>=0.115.0
|
26
27
|
Requires-Dist: httpx<0.28,>=0.27.2
|
@@ -32,7 +33,7 @@ Requires-Dist: kubernetes<29.0.0,>=25.0.0
|
|
32
33
|
Requires-Dist: litellm<2,>=1.66.0
|
33
34
|
Requires-Dist: mcp[cli]>=1.4.1
|
34
35
|
Requires-Dist: openai-agents==0.2.7
|
35
|
-
Requires-Dist: openai
|
36
|
+
Requires-Dist: openai==1.99.9
|
36
37
|
Requires-Dist: pydantic<3,>=2.0.0
|
37
38
|
Requires-Dist: pytest-asyncio>=1.0.0
|
38
39
|
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=
|
14
|
+
agentex/_version.py,sha256=Z94_mPwwCwrKDFOOptIOf2dWIIEp31IIhpHBidxw9vU,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,7 +29,7 @@ agentex/lib/environment_variables.py,sha256=PFGIDIa0RdkkJVr3pxqh2QHrNRPBwGsf-ulN
|
|
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=
|
32
|
+
agentex/lib/adk/_modules/acp.py,sha256=zGR4NmmAZM777TFbj2hWX5pES3xFKzblSiJx8hVlRJI,9027
|
33
33
|
agentex/lib/adk/_modules/agent_task_tracker.py,sha256=fXMDs1zgAC6n8EmWTU5_trs79EGVBCEPxd5eBOZmdE0,7022
|
34
34
|
agentex/lib/adk/_modules/agents.py,sha256=VlT_PXnyb3Knh-nx1rfflD9N6gjp5O0_6Z_QL5SCThU,2788
|
35
35
|
agentex/lib/adk/_modules/events.py,sha256=RHQZ4ircC60zdm1chRzo3cdt7LNqDoJfPLNJXEz4BH0,5262
|
@@ -137,7 +137,7 @@ agentex/lib/core/services/adk/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQ
|
|
137
137
|
agentex/lib/core/services/adk/utils/templating.py,sha256=eaXSFq31Y9p5pRD6J6SL4QdTFtxy81dilbF2XXc2JYQ,1889
|
138
138
|
agentex/lib/core/temporal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
139
139
|
agentex/lib/core/temporal/activities/__init__.py,sha256=-XmQcWIMdk7xdpOKdg4rtuIlE0K2UABcIHlzUi8e_os,7634
|
140
|
-
agentex/lib/core/temporal/activities/activity_helpers.py,sha256=
|
140
|
+
agentex/lib/core/temporal/activities/activity_helpers.py,sha256=vvQv0rCyrIbnm2gFSQRgCIwIUlKf0jwmI15XEDTNz8A,1014
|
141
141
|
agentex/lib/core/temporal/activities/adk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
142
142
|
agentex/lib/core/temporal/activities/adk/agent_task_tracker_activities.py,sha256=cqND3YrRybE9Li4fw-oLfTyKzcI9M0lGBhoCq37vThc,2668
|
143
143
|
agentex/lib/core/temporal/activities/adk/agents_activities.py,sha256=q3PGgOLXvcEOs1bJaTT9TuEZIVhdmzGNNnDiOr7Wh5M,1004
|
@@ -151,7 +151,7 @@ agentex/lib/core/temporal/activities/adk/acp/__init__.py,sha256=47DEQpj8HBSa-_TI
|
|
151
151
|
agentex/lib/core/temporal/activities/adk/acp/acp_activities.py,sha256=JJgb-UODz3y2gOM5Yf9zQp1MlsptpFUCmz8etLKYijs,2681
|
152
152
|
agentex/lib/core/temporal/activities/adk/providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
153
153
|
agentex/lib/core/temporal/activities/adk/providers/litellm_activities.py,sha256=Ix92XZIQIbhf-_fOWkUZDxZ1UUCOF0kOwxbcRYBzBQA,2583
|
154
|
-
agentex/lib/core/temporal/activities/adk/providers/openai_activities.py,sha256=
|
154
|
+
agentex/lib/core/temporal/activities/adk/providers/openai_activities.py,sha256=SLypk8i8hB98hPPcj8rWQwb_Sr4NXoMcfFUV7-dsauU,11096
|
155
155
|
agentex/lib/core/temporal/activities/adk/providers/sgp_activities.py,sha256=C8n97mEhc3yFDgdejERDob9g5STfWgGoY-BmkQBH6Lg,1266
|
156
156
|
agentex/lib/core/temporal/activities/adk/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
157
157
|
agentex/lib/core/temporal/activities/adk/utils/templating_activities.py,sha256=dX6wpcTKY_qWsm3uJV-XU5fQLqwWAhnjO83k8EK0N7o,1189
|
@@ -220,7 +220,7 @@ agentex/lib/utils/iterables.py,sha256=cD49hj98mtY0QPaS0ZA2kguNeGzRU4UfbZfwyASWdz
|
|
220
220
|
agentex/lib/utils/json_schema.py,sha256=nSHbi6LC-oWXHP6sMLCBychA7B0R2DItRIJNCCEzRsY,741
|
221
221
|
agentex/lib/utils/logging.py,sha256=RychRZ4I5JlhBRtkP6KGMZBEcRVNN8mpBjv03aV2S0E,798
|
222
222
|
agentex/lib/utils/mcp.py,sha256=lYQPwKAOH6Gf2I_TeovhEG9YUijUPcN0rENNdT0Vk6c,505
|
223
|
-
agentex/lib/utils/model_utils.py,sha256=
|
223
|
+
agentex/lib/utils/model_utils.py,sha256=bkcB1I0DMRAtFQpznsXgFGKZGrT7NGJ4tIwFM4dtUXQ,2547
|
224
224
|
agentex/lib/utils/parsing.py,sha256=2T-B4nJSupo2RLf9AkpV6VQHqDnF97ZBgO6zvGCauCo,369
|
225
225
|
agentex/lib/utils/regex.py,sha256=Y3VcehCznAqa59D4WTwK_ki722oudHBlFqBk0I930zo,212
|
226
226
|
agentex/lib/utils/registration.py,sha256=FAL40KSMRCltHZcDtioGeRNgfB19Twqu6Srp4x7UMSU,3781
|
@@ -237,7 +237,7 @@ agentex/resources/tracker.py,sha256=YxSeiloMwIqrS9nY7SlHclauRA7142qrKw34xgwqYbA,
|
|
237
237
|
agentex/resources/messages/__init__.py,sha256=_J1eusFtr_k6zrAntJSuqx6LWEUBSTrV1OZZh7MaDPE,1015
|
238
238
|
agentex/resources/messages/batch.py,sha256=pegCmnjK_J0jek5ChX1pKpq5RmCucTYLbK69H6qGVS4,9629
|
239
239
|
agentex/resources/messages/messages.py,sha256=fuFmmGNOjRJVzmYHcfP2trg0yii0n9MPPCpt7F8fDs4,17930
|
240
|
-
agentex/types/__init__.py,sha256=
|
240
|
+
agentex/types/__init__.py,sha256=lEuWxr1ggBzZAUGYrSmIhcSSZ7z5UQSIfNtmUrELC2s,3884
|
241
241
|
agentex/types/acp_type.py,sha256=Fj-4SzmM6m95ck_ZXtNbcWggHiD9F49bxBLPbl1fxe4,208
|
242
242
|
agentex/types/agent.py,sha256=t6CUsKSaK6Gs_X9g0YxSi5G3Hh21FrGVGnAD6MytVBk,981
|
243
243
|
agentex/types/agent_list_params.py,sha256=81IWnRZ2rLfHH7GB6VkXShYjb44DO0guG1znJcV3tuI,316
|
@@ -281,9 +281,10 @@ agentex/types/task_message_content.py,sha256=3itFPfk9V3AHggZFpHKHkkzostFpyZ8O4vM
|
|
281
281
|
agentex/types/task_message_content_param.py,sha256=IZxdUJWkUynteRQa-y743fCyum54IR6nqr0uybfUTO4,675
|
282
282
|
agentex/types/task_message_delta.py,sha256=3i1Qw2CcZYxXhofbCJnQDO0QrIIQsLX6P-UAynvc4fs,716
|
283
283
|
agentex/types/task_message_update.py,sha256=gevnU4UW67qTzN_OGT-S3E5zbS9KQNehJZF3XhiirtU,2247
|
284
|
-
agentex/types/text_content.py,sha256
|
285
|
-
agentex/types/text_content_param.py,sha256=
|
284
|
+
agentex/types/text_content.py,sha256=-rNhHh0L_b3dxnG49Baf47JRNnDGW0xhglq8xkaGDdE,1357
|
285
|
+
agentex/types/text_content_param.py,sha256=A2Xuxclh44Ih-C9etF5gl_VBNF-Ld36ZzI61SNCPdUE,1449
|
286
286
|
agentex/types/text_delta.py,sha256=lUTceOXVsh-O4QOzZnkpB3I9d6V1Z0co0JwPZsXnXjQ,322
|
287
|
+
agentex/types/text_format.py,sha256=b73CgswRSlvdLzHi_0QQCiZaGRyifkgXN8Yihrhshgs,224
|
287
288
|
agentex/types/tool_request_content.py,sha256=8swTXUME4x2_CaQuAwA1hNYjjsmFHEEWT4qodIAQXqc,975
|
288
289
|
agentex/types/tool_request_content_param.py,sha256=st06ZsV9qigwPBprhoKyzGOUeV40q27dwOWbWxKxmHk,1025
|
289
290
|
agentex/types/tool_request_delta.py,sha256=AUi9LoPwxyOx_JGOTOvSND-9oulsJk2y3Q7RlCgiqGI,387
|
@@ -300,8 +301,8 @@ agentex/types/messages/batch_update_params.py,sha256=Ug5CThbD49a8j4qucg04OdmVrp_
|
|
300
301
|
agentex/types/messages/batch_update_response.py,sha256=TbSBe6SuPzjXXWSj-nRjT1JHGBooTshHQQDa1AixQA8,278
|
301
302
|
agentex/types/shared/__init__.py,sha256=IKs-Qn5Yja0kFh1G1kDqYZo43qrOu1hSoxlPdN-85dI,149
|
302
303
|
agentex/types/shared/delete_response.py,sha256=8qH3zvQXaOHYQSHyXi7UQxdR4miTzR7V9K4zXVsiUyk,215
|
303
|
-
agentex_sdk-0.4.
|
304
|
-
agentex_sdk-0.4.
|
305
|
-
agentex_sdk-0.4.
|
306
|
-
agentex_sdk-0.4.
|
307
|
-
agentex_sdk-0.4.
|
304
|
+
agentex_sdk-0.4.5.dist-info/METADATA,sha256=vjmBM8ry7PTbX8W5WC9T8xrVuFisBxqOhksx7NEolCg,15093
|
305
|
+
agentex_sdk-0.4.5.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
|
306
|
+
agentex_sdk-0.4.5.dist-info/entry_points.txt,sha256=V7vJuMZdF0UlvgX6KiBN7XUvq_cxF5kplcYvc1QlFaQ,62
|
307
|
+
agentex_sdk-0.4.5.dist-info/licenses/LICENSE,sha256=Q1AOx2FtRcMlyMgQJ9eVN2WKPq2mQ33lnB4tvWxabLA,11337
|
308
|
+
agentex_sdk-0.4.5.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|