agentex-sdk 0.4.4__py3-none-any.whl → 0.4.6__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 CHANGED
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "agentex"
4
- __version__ = "0.4.4" # x-release-please-version
4
+ __version__ = "0.4.6" # x-release-please-version
@@ -23,7 +23,7 @@ from agentex.types.task_message_content import TaskMessageContent
23
23
 
24
24
  logger = make_logger(__name__)
25
25
 
26
- DEFAULT_RETRY_POLICY = RetryPolicy(maximum_attempts=1)
26
+ DEFAULT_RETRY_POLICY = RetryPolicy(maximum_attempts=0)
27
27
 
28
28
 
29
29
  class ACPModule:
@@ -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 agents import RunResult, RunResultStreaming
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
- on_invoke_tool: Callable[[dict[str, Any]], Any]
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
- return OAIFunctionTool(**self.model_dump(exclude=["trace_id", "parent_span_id"]))
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(**self.model_dump(exclude=["trace_id", "parent_span_id"]))
155
+ return OAIModelSettings(
156
+ **self.model_dump(exclude=["trace_id", "parent_span_id"])
157
+ )
72
158
 
73
159
 
74
160
  class RunAgentParams(BaseModelWithTraceParams):
@@ -1,3 +1,4 @@
1
+
1
2
  from __future__ import annotations
2
3
 
3
4
  import os
@@ -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
- # Serialize BaseModel to dict
38
- return obj.model_dump(mode="json")
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/task.py CHANGED
@@ -1,6 +1,6 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
- from typing import Optional
3
+ from typing import Dict, Optional
4
4
  from datetime import datetime
5
5
  from typing_extensions import Literal
6
6
 
@@ -16,6 +16,8 @@ class Task(BaseModel):
16
16
 
17
17
  name: Optional[str] = None
18
18
 
19
+ params: Optional[Dict[str, object]] = None
20
+
19
21
  status: Optional[Literal["CANCELED", "COMPLETED", "FAILED", "RUNNING", "TERMINATED", "TIMED_OUT"]] = None
20
22
 
21
23
  status_reason: Optional[str] = None
@@ -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: Literal["markdown", "plain", "code"] = "plain"
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: Literal["markdown", "plain", "code"]
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.
@@ -0,0 +1,7 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing_extensions import Literal, TypeAlias
4
+
5
+ __all__ = ["TextFormat"]
6
+
7
+ TextFormat: TypeAlias = Literal["markdown", "plain", "code"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: agentex-sdk
3
- Version: 0.4.4
3
+ Version: 0.4.6
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>=1.99.9
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
@@ -58,6 +59,7 @@ Provides-Extra: dev
58
59
  Requires-Dist: ruff>=0.3.4; extra == 'dev'
59
60
  Description-Content-Type: text/markdown
60
61
 
62
+
61
63
  # Agentex Python API library
62
64
 
63
65
  <!-- prettier-ignore -->
@@ -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=5yXU0s9SIFUQBbJSqTSYIrCR8f9aMgnkR1KwqcIpRgU,159
14
+ agentex/_version.py,sha256=0jOnjx7KMHpb97faXF4SWf9u49iBskkyVhnWoa4wzZc,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
@@ -25,11 +25,11 @@ agentex/_utils/_typing.py,sha256=D0DbbNu8GnYQTSICnTSHDGsYXj8TcAKyhejb0XcnjtY,460
25
25
  agentex/_utils/_utils.py,sha256=ts4CiiuNpFiGB6YMdkQRh2SZvYvsl7mAF-JWHCcLDf4,12312
26
26
  agentex/lib/.keep,sha256=wuNrz-5SXo3jJaJOJgz4vFHM41YH_g20F5cRQo0vLes,224
27
27
  agentex/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
- agentex/lib/environment_variables.py,sha256=PFGIDIa0RdkkJVr3pxqh2QHrNRPBwGsf-ulNgAwrbtM,3241
28
+ agentex/lib/environment_variables.py,sha256=6iWpCEURbahnLxZIjvJGES-zs7euUI8bxVXFN29tyYg,3242
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=0D9HLwBO3SX4eEsx1BY9G90jyvTABmaxdOzANg1rmzQ,9027
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=QCiEFwNSMtpJuZKiAV_UolTtlf84NZk_lG3EEQmQT0s,1208
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=ck_G9sSFZ74zmH_yi9-M07JvjjQFzMAkBZxhunUCP2c,8001
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=DC1CHm_X7ZZ2skBdbY7sEepEmgQlOoohswRD8I92I20,1709
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=_tsP_hk7b8V3b2wCIw1jjdIsedgmtlI5Jd0ijFtk6NA,3834
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
@@ -273,7 +273,7 @@ agentex/types/state_create_params.py,sha256=dIQLVdFJyhIUKlFcm-7I6M4qD1BxZwH8KCt1
273
273
  agentex/types/state_list_params.py,sha256=jsBeE98mVvS-pk9iytNTVVSW6pz7OM4Zt-OxC2mEt3E,364
274
274
  agentex/types/state_list_response.py,sha256=3UyMRzP3zdEKo9hTkJdvBHjmv6II4KnwoZ8GvlzPCSI,254
275
275
  agentex/types/state_update_params.py,sha256=TpCXMrYaT2MWeOPng9-RGvGX9vE61Te9r3CFRQzzIDg,377
276
- agentex/types/task.py,sha256=Pgj5HSrThPJgFRKWXPgW3LRT9Jwgn9eR_CCnlbNznzU,543
276
+ agentex/types/task.py,sha256=GDPXgF2OwRCA-XFsMJpsVbUDwI99sZDN7aoWeIr00iA,597
277
277
  agentex/types/task_list_params.py,sha256=euvsWpK2kjJOfvrkUnSFiofZlU2sZHd2mar3qYtAA8I,328
278
278
  agentex/types/task_list_response.py,sha256=8Q-RIanLmUC9vOuDXoW5gjpZeE-HR6IrBugG7-cUAZQ,249
279
279
  agentex/types/task_message.py,sha256=hoLAkiQJd1Fl7EjLof-vZq6zVnDw9SKmnV6V74Po58A,918
@@ -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=i6ksdQXIyWosXAm-O_26m_eZA-4x26dgoNdzWnhue9k,1347
285
- agentex/types/text_content_param.py,sha256=5xtCBUJj6xKGlmpNuWVnBG3BBFQS3HyrKjq6KfpfVz0,1439
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.4.dist-info/METADATA,sha256=bP_6Dg7xzW4Xy82BSq1t5bGKSnYZOjwagJ1L2PBtAkg,15059
304
- agentex_sdk-0.4.4.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
305
- agentex_sdk-0.4.4.dist-info/entry_points.txt,sha256=V7vJuMZdF0UlvgX6KiBN7XUvq_cxF5kplcYvc1QlFaQ,62
306
- agentex_sdk-0.4.4.dist-info/licenses/LICENSE,sha256=Q1AOx2FtRcMlyMgQJ9eVN2WKPq2mQ33lnB4tvWxabLA,11337
307
- agentex_sdk-0.4.4.dist-info/RECORD,,
304
+ agentex_sdk-0.4.6.dist-info/METADATA,sha256=u1EUOOWGKnqAOgh82EvTTThHbIh8ZcpRrRCIlqLjTPk,15094
305
+ agentex_sdk-0.4.6.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
306
+ agentex_sdk-0.4.6.dist-info/entry_points.txt,sha256=V7vJuMZdF0UlvgX6KiBN7XUvq_cxF5kplcYvc1QlFaQ,62
307
+ agentex_sdk-0.4.6.dist-info/licenses/LICENSE,sha256=Q1AOx2FtRcMlyMgQJ9eVN2WKPq2mQ33lnB4tvWxabLA,11337
308
+ agentex_sdk-0.4.6.dist-info/RECORD,,