agentex-sdk 0.2.10__py3-none-any.whl → 0.4.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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.2.10" # x-release-please-version
4
+ __version__ = "0.4.0" # x-release-please-version
@@ -86,7 +86,7 @@ class ProcessManager:
86
86
 
87
87
 
88
88
  async def start_temporal_worker_with_reload(
89
- worker_path: Path, env: dict[str, str], process_manager: ProcessManager
89
+ worker_path: Path, env: dict[str, str], process_manager: ProcessManager, manifest_dir: Path
90
90
  ) -> asyncio.Task[None]:
91
91
  """Start temporal worker with auto-reload using watchfiles"""
92
92
 
@@ -143,7 +143,7 @@ async def start_temporal_worker_with_reload(
143
143
  except asyncio.CancelledError:
144
144
  pass
145
145
 
146
- current_process = await start_temporal_worker(worker_path, env)
146
+ current_process = await start_temporal_worker(worker_path, env, manifest_dir)
147
147
  process_manager.add_process(current_process)
148
148
  console.print("[green]Temporal worker started[/green]")
149
149
  return current_process
@@ -222,7 +222,7 @@ async def start_acp_server(
222
222
 
223
223
 
224
224
  async def start_temporal_worker(
225
- worker_path: Path, env: dict[str, str]
225
+ worker_path: Path, env: dict[str, str], manifest_dir: Path
226
226
  ) -> asyncio.subprocess.Process:
227
227
  """Start the temporal worker process"""
228
228
  cmd = [sys.executable, "-m", "run_worker"]
@@ -231,7 +231,7 @@ async def start_temporal_worker(
231
231
 
232
232
  return await asyncio.create_subprocess_exec(
233
233
  *cmd,
234
- cwd=worker_path.parent, # Use worker directory as CWD for imports to work
234
+ cwd=manifest_dir, # Use worker directory as CWD for imports to work
235
235
  env=env,
236
236
  stdout=asyncio.subprocess.PIPE,
237
237
  stderr=asyncio.subprocess.STDOUT,
@@ -320,7 +320,7 @@ async def run_agent(manifest_path: str, debug_config: "DebugConfig | None" = Non
320
320
  worker_task = asyncio.create_task(stream_process_output(worker_process, "WORKER"))
321
321
  else:
322
322
  # Normal mode with auto-reload
323
- worker_task = await start_temporal_worker_with_reload(file_paths["worker"], agent_env, process_manager)
323
+ worker_task = await start_temporal_worker_with_reload(file_paths["worker"], agent_env, process_manager, manifest_dir)
324
324
  tasks.append(worker_task)
325
325
 
326
326
  console.print(
@@ -29,6 +29,7 @@ from agentex.lib.types.task_message_updates import (
29
29
  )
30
30
  from agentex.types.task_message_content import (
31
31
  TextContent,
32
+ ReasoningContent,
32
33
  ToolRequestContent,
33
34
  ToolResponseContent,
34
35
  )
@@ -647,6 +648,31 @@ class OpenAIService:
647
648
  content=tool_response_content,
648
649
  ),
649
650
  )
651
+
652
+ elif event.item.type == "reasoning_item":
653
+ # Handle reasoning items
654
+ reasoning_item = event.item.raw_item
655
+
656
+ reasoning_content = ReasoningContent(
657
+ author="agent",
658
+ summary=[summary.text for summary in reasoning_item.summary],
659
+ content=[content.text for content in reasoning_item.content] if reasoning_item.content else None,
660
+ )
661
+
662
+ # Create reasoning content using streaming context (immediate completion)
663
+ async with (
664
+ self.streaming_service.streaming_task_message_context(
665
+ task_id=task_id,
666
+ initial_content=reasoning_content,
667
+ ) as streaming_context
668
+ ):
669
+ # The message has already been persisted, but we still need to send an update
670
+ await streaming_context.stream_update(
671
+ update=StreamTaskMessageFull(
672
+ parent_task_message=streaming_context.task_message,
673
+ content=reasoning_content,
674
+ ),
675
+ )
650
676
 
651
677
  elif event.type == "raw_response_event":
652
678
  if isinstance(event.data, ResponseTextDeltaEvent):
@@ -64,7 +64,7 @@ class EnvironmentVariables(BaseModel):
64
64
  AUTH_PRINCIPAL_B64: str | None = None
65
65
 
66
66
  @classmethod
67
- def refresh(cls) -> EnvironmentVariables | None:
67
+ def refresh(cls) -> EnvironmentVariables:
68
68
  global refreshed_environment_variables
69
69
  if refreshed_environment_variables is not None:
70
70
  return refreshed_environment_variables
agentex/types/__init__.py CHANGED
@@ -22,6 +22,7 @@ from .span_list_params import SpanListParams as SpanListParams
22
22
  from .task_list_params import TaskListParams as TaskListParams
23
23
  from .agent_list_params import AgentListParams as AgentListParams
24
24
  from .event_list_params import EventListParams as EventListParams
25
+ from .reasoning_content import ReasoningContent as ReasoningContent
25
26
  from .state_list_params import StateListParams as StateListParams
26
27
  from .agent_rpc_response import AgentRpcResponse as AgentRpcResponse
27
28
  from .agent_task_tracker import AgentTaskTracker as AgentTaskTracker
@@ -50,6 +51,9 @@ from .message_update_params import MessageUpdateParams as MessageUpdateParams
50
51
  from .tool_response_content import ToolResponseContent as ToolResponseContent
51
52
  from .tracker_list_response import TrackerListResponse as TrackerListResponse
52
53
  from .tracker_update_params import TrackerUpdateParams as TrackerUpdateParams
54
+ from .reasoning_content_delta import ReasoningContentDelta as ReasoningContentDelta
55
+ from .reasoning_content_param import ReasoningContentParam as ReasoningContentParam
56
+ from .reasoning_summary_delta import ReasoningSummaryDelta as ReasoningSummaryDelta
53
57
  from .agent_rpc_by_name_params import AgentRpcByNameParams as AgentRpcByNameParams
54
58
  from .task_message_content_param import TaskMessageContentParam as TaskMessageContentParam
55
59
  from .tool_request_content_param import ToolRequestContentParam as ToolRequestContentParam
@@ -0,0 +1,33 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+ from typing_extensions import Literal
5
+
6
+ from .._models import BaseModel
7
+ from .message_style import MessageStyle
8
+ from .message_author import MessageAuthor
9
+
10
+ __all__ = ["ReasoningContent"]
11
+
12
+
13
+ class ReasoningContent(BaseModel):
14
+ author: MessageAuthor
15
+ """
16
+ The role of the messages author, in this case `system`, `user`, `assistant`, or
17
+ `tool`.
18
+ """
19
+
20
+ summary: List[str]
21
+ """A list of short reasoning summaries"""
22
+
23
+ content: Optional[List[str]] = None
24
+ """The reasoning content or chain-of-thought text"""
25
+
26
+ style: Optional[MessageStyle] = None
27
+ """The style of the message.
28
+
29
+ This is used by the client to determine how to display the message.
30
+ """
31
+
32
+ type: Optional[Literal["reasoning"]] = None
33
+ """The type of the message, in this case `reasoning`."""
@@ -0,0 +1,16 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+ from typing_extensions import Literal
5
+
6
+ from .._models import BaseModel
7
+
8
+ __all__ = ["ReasoningContentDelta"]
9
+
10
+
11
+ class ReasoningContentDelta(BaseModel):
12
+ content_index: int
13
+
14
+ content_delta: Optional[str] = None
15
+
16
+ type: Optional[Literal["reasoning_content"]] = None
@@ -0,0 +1,34 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import List, Optional
6
+ from typing_extensions import Literal, Required, TypedDict
7
+
8
+ from .message_style import MessageStyle
9
+ from .message_author import MessageAuthor
10
+
11
+ __all__ = ["ReasoningContentParam"]
12
+
13
+
14
+ class ReasoningContentParam(TypedDict, total=False):
15
+ author: Required[MessageAuthor]
16
+ """
17
+ The role of the messages author, in this case `system`, `user`, `assistant`, or
18
+ `tool`.
19
+ """
20
+
21
+ summary: Required[List[str]]
22
+ """A list of short reasoning summaries"""
23
+
24
+ content: Optional[List[str]]
25
+ """The reasoning content or chain-of-thought text"""
26
+
27
+ style: MessageStyle
28
+ """The style of the message.
29
+
30
+ This is used by the client to determine how to display the message.
31
+ """
32
+
33
+ type: Literal["reasoning"]
34
+ """The type of the message, in this case `reasoning`."""
@@ -0,0 +1,16 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+ from typing_extensions import Literal
5
+
6
+ from .._models import BaseModel
7
+
8
+ __all__ = ["ReasoningSummaryDelta"]
9
+
10
+
11
+ class ReasoningSummaryDelta(BaseModel):
12
+ summary_index: int
13
+
14
+ summary_delta: Optional[str] = None
15
+
16
+ type: Optional[Literal["reasoning_summary"]] = None
@@ -6,11 +6,13 @@ from typing_extensions import Annotated, TypeAlias
6
6
  from .._utils import PropertyInfo
7
7
  from .data_content import DataContent
8
8
  from .text_content import TextContent
9
+ from .reasoning_content import ReasoningContent
9
10
  from .tool_request_content import ToolRequestContent
10
11
  from .tool_response_content import ToolResponseContent
11
12
 
12
13
  __all__ = ["TaskMessageContent"]
13
14
 
14
15
  TaskMessageContent: TypeAlias = Annotated[
15
- Union[TextContent, DataContent, ToolRequestContent, ToolResponseContent], PropertyInfo(discriminator="type")
16
+ Union[TextContent, ReasoningContent, DataContent, ToolRequestContent, ToolResponseContent],
17
+ PropertyInfo(discriminator="type"),
16
18
  ]
@@ -7,11 +7,12 @@ from typing_extensions import TypeAlias
7
7
 
8
8
  from .data_content_param import DataContentParam
9
9
  from .text_content_param import TextContentParam
10
+ from .reasoning_content_param import ReasoningContentParam
10
11
  from .tool_request_content_param import ToolRequestContentParam
11
12
  from .tool_response_content_param import ToolResponseContentParam
12
13
 
13
14
  __all__ = ["TaskMessageContentParam"]
14
15
 
15
16
  TaskMessageContentParam: TypeAlias = Union[
16
- TextContentParam, DataContentParam, ToolRequestContentParam, ToolResponseContentParam
17
+ TextContentParam, ReasoningContentParam, DataContentParam, ToolRequestContentParam, ToolResponseContentParam
17
18
  ]
@@ -8,9 +8,12 @@ from .data_delta import DataDelta
8
8
  from .text_delta import TextDelta
9
9
  from .tool_request_delta import ToolRequestDelta
10
10
  from .tool_response_delta import ToolResponseDelta
11
+ from .reasoning_content_delta import ReasoningContentDelta
12
+ from .reasoning_summary_delta import ReasoningSummaryDelta
11
13
 
12
14
  __all__ = ["TaskMessageDelta"]
13
15
 
14
16
  TaskMessageDelta: TypeAlias = Annotated[
15
- Union[TextDelta, DataDelta, ToolRequestDelta, ToolResponseDelta], PropertyInfo(discriminator="type")
17
+ Union[TextDelta, DataDelta, ToolRequestDelta, ToolResponseDelta, ReasoningSummaryDelta, ReasoningContentDelta],
18
+ PropertyInfo(discriminator="type"),
16
19
  ]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: agentex-sdk
3
- Version: 0.2.10
3
+ Version: 0.4.0
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
@@ -32,6 +32,7 @@ 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
34
  Requires-Dist: openai-agents!=0.2.3,>=0.0.7
35
+ Requires-Dist: openai>=1.99.9
35
36
  Requires-Dist: pydantic<3,>=2.0.0
36
37
  Requires-Dist: pytest-asyncio>=1.0.0
37
38
  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=_mJ9of_Lm7nKai8Hhv6-2h2UqVzI0If7oT16sQ_8DMs,160
14
+ agentex/_version.py,sha256=CXKkCgnAp9MvMYadHVymbnJuQa97_ituLGeUp9fx-FI,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,7 +25,7 @@ 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=cCL7_cKDNuPyUTmuNLZVTDdFnJPmCsDZ5uN23MtZP-k,3248
28
+ agentex/lib/environment_variables.py,sha256=PFGIDIa0RdkkJVr3pxqh2QHrNRPBwGsf-ulNgAwrbtM,3241
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
@@ -62,7 +62,7 @@ agentex/lib/cli/handlers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZ
62
62
  agentex/lib/cli/handlers/agent_handlers.py,sha256=iVZ-4TSQJuq7XpPBYjYIN76M33XwxDjQTuNwTzzynec,5573
63
63
  agentex/lib/cli/handlers/cleanup_handlers.py,sha256=V1V0zeErOUGTgCQqjyUl6CWtzGjFW878uzFaLOQJEyQ,7073
64
64
  agentex/lib/cli/handlers/deploy_handlers.py,sha256=SrHHY8p0TGS0KzaCY3FPgf3awXqoMo2G-qpIOcnO1pw,16942
65
- agentex/lib/cli/handlers/run_handlers.py,sha256=b02-ng64fMHdd7u2hB_tmwHrm2_0DL-pcA565JDpyPc,14949
65
+ agentex/lib/cli/handlers/run_handlers.py,sha256=y7-89pWVsG7SCBk4YfxoD93Vk-nfwCs6kIVJ8pMkEI0,15011
66
66
  agentex/lib/cli/handlers/secret_handlers.py,sha256=VfAdAQovW9tG36Xgk_gGIGwTyFMxR3P6xc7fmAviNA8,24719
67
67
  agentex/lib/cli/templates/default/.dockerignore.j2,sha256=hweGFxw5eDZYsb5EnRHpv27o9M1HF2PEWOxqsfBBcAE,320
68
68
  agentex/lib/cli/templates/default/Dockerfile-uv.j2,sha256=I527RB_2Byn6tkBNVxxCq7ivVFJDgDNRSC7Vz2w9u4k,1060
@@ -133,7 +133,7 @@ agentex/lib/core/services/adk/acp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeR
133
133
  agentex/lib/core/services/adk/acp/acp.py,sha256=Ei6r5CcM1RA7DqfTRpAWCmP7Buw97b3ajQuE4DsdSaQ,7559
134
134
  agentex/lib/core/services/adk/providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
135
135
  agentex/lib/core/services/adk/providers/litellm.py,sha256=7RIVqQ5XaCP2cEL1pr4nl5jfG_0FDMvDTZVKu1iaN3M,9864
136
- agentex/lib/core/services/adk/providers/openai.py,sha256=Qply4Q7BJqRyukAuNPnFcLXf0eQWACaa5LamGc6xpTY,31559
136
+ agentex/lib/core/services/adk/providers/openai.py,sha256=NLTE4MLSvKeiQ--puuBWaz97C7BbkFtn9n1uxYlkiyg,33203
137
137
  agentex/lib/core/services/adk/providers/sgp.py,sha256=9gm-sPNQ_OSTaBzL0onerKhokPk_ZHndaKNO-z16wyQ,3676
138
138
  agentex/lib/core/services/adk/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
139
139
  agentex/lib/core/services/adk/utils/templating.py,sha256=eaXSFq31Y9p5pRD6J6SL4QdTFtxy81dilbF2XXc2JYQ,1889
@@ -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=v-2hxFsIvOZ_2mZy-5RqILX0VJWG4sN9MRvXAbThqYI,3514
240
+ agentex/types/__init__.py,sha256=_tsP_hk7b8V3b2wCIw1jjdIsedgmtlI5Jd0ijFtk6NA,3834
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
@@ -259,6 +259,10 @@ agentex/types/message_list_params.py,sha256=MGXLwUUBaaiG-rsGjui5dlJ0sxv1twkSugFo
259
259
  agentex/types/message_list_response.py,sha256=YYDf-57zLS-E1eX3EZxz7c6XCuBcRBws01_q2G7uk4Y,277
260
260
  agentex/types/message_style.py,sha256=nuoXzoDyP3KAQsQeKHaiby1EMxeY-8TJjWr8eMMpQEE,219
261
261
  agentex/types/message_update_params.py,sha256=_KpnJ56FNeoIcwodQmAgsweqH1YAeIgYVT2jo9ahUhY,502
262
+ agentex/types/reasoning_content.py,sha256=ieA_EmFlHHo5suNnY6_7Qq3u34h8ehZ0E-vhp32Am1o,915
263
+ agentex/types/reasoning_content_delta.py,sha256=tU-ndHhj9x8Mmn3BWwSouqViYHWzVOlZGYL_QF17wC4,386
264
+ agentex/types/reasoning_content_param.py,sha256=qpuwnaQK-ofl8OtvwxpSSiHCwL7nIY0knX10EgGl0W4,942
265
+ agentex/types/reasoning_summary_delta.py,sha256=J2VY9VF1tLCNTIoN0qQmvZgGX35P9Ndmv1fRbcMl6R4,386
262
266
  agentex/types/span.py,sha256=OfNLddf5qjwv52ZrxLmgbXDDkBBovMeG7ovc4sRJReg,1045
263
267
  agentex/types/span_create_params.py,sha256=o-M8rzB_6yoLrn3gQJ9Ecc6ZrsKp7uVyILam_wsGrgc,1392
264
268
  agentex/types/span_list_params.py,sha256=b7gnqK17rE-UK7bUBSR9xsskI_jgmvGw9SuTsIIna9s,297
@@ -273,9 +277,9 @@ agentex/types/task.py,sha256=Pgj5HSrThPJgFRKWXPgW3LRT9Jwgn9eR_CCnlbNznzU,543
273
277
  agentex/types/task_list_params.py,sha256=euvsWpK2kjJOfvrkUnSFiofZlU2sZHd2mar3qYtAA8I,328
274
278
  agentex/types/task_list_response.py,sha256=8Q-RIanLmUC9vOuDXoW5gjpZeE-HR6IrBugG7-cUAZQ,249
275
279
  agentex/types/task_message.py,sha256=hoLAkiQJd1Fl7EjLof-vZq6zVnDw9SKmnV6V74Po58A,918
276
- agentex/types/task_message_content.py,sha256=57ebp-65y52KOZ7usVJShArIdXqBhFo5eOn8uy4HM_c,575
277
- agentex/types/task_message_content_param.py,sha256=j-6AmAkS4xGVcV3jhb2jScm8-u3jUN0PTeU8AksIoRE,593
278
- agentex/types/task_message_delta.py,sha256=nXNA0s38eBzue7PT_kU2Zp64CoVfxxMKAtLFxPPhEsg,547
280
+ agentex/types/task_message_content.py,sha256=3itFPfk9V3AHggZFpHKHkkzostFpyZ8O4vMnwZjXLis,646
281
+ agentex/types/task_message_content_param.py,sha256=IZxdUJWkUynteRQa-y743fCyum54IR6nqr0uybfUTO4,675
282
+ agentex/types/task_message_delta.py,sha256=3i1Qw2CcZYxXhofbCJnQDO0QrIIQsLX6P-UAynvc4fs,716
279
283
  agentex/types/task_message_update.py,sha256=gevnU4UW67qTzN_OGT-S3E5zbS9KQNehJZF3XhiirtU,2247
280
284
  agentex/types/text_content.py,sha256=i6ksdQXIyWosXAm-O_26m_eZA-4x26dgoNdzWnhue9k,1347
281
285
  agentex/types/text_content_param.py,sha256=5xtCBUJj6xKGlmpNuWVnBG3BBFQS3HyrKjq6KfpfVz0,1439
@@ -296,8 +300,8 @@ agentex/types/messages/batch_update_params.py,sha256=Ug5CThbD49a8j4qucg04OdmVrp_
296
300
  agentex/types/messages/batch_update_response.py,sha256=TbSBe6SuPzjXXWSj-nRjT1JHGBooTshHQQDa1AixQA8,278
297
301
  agentex/types/shared/__init__.py,sha256=IKs-Qn5Yja0kFh1G1kDqYZo43qrOu1hSoxlPdN-85dI,149
298
302
  agentex/types/shared/delete_response.py,sha256=8qH3zvQXaOHYQSHyXi7UQxdR4miTzR7V9K4zXVsiUyk,215
299
- agentex_sdk-0.2.10.dist-info/METADATA,sha256=nXcuEA6wWpPB-EIqn44tqDVicB1MxEzfVOvwC6DURts,15038
300
- agentex_sdk-0.2.10.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
301
- agentex_sdk-0.2.10.dist-info/entry_points.txt,sha256=V7vJuMZdF0UlvgX6KiBN7XUvq_cxF5kplcYvc1QlFaQ,62
302
- agentex_sdk-0.2.10.dist-info/licenses/LICENSE,sha256=Q1AOx2FtRcMlyMgQJ9eVN2WKPq2mQ33lnB4tvWxabLA,11337
303
- agentex_sdk-0.2.10.dist-info/RECORD,,
303
+ agentex_sdk-0.4.0.dist-info/METADATA,sha256=5on23JG2ehjAa2mOlvhXNoJgQXoh0MmikrAeaLusAhg,15067
304
+ agentex_sdk-0.4.0.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
305
+ agentex_sdk-0.4.0.dist-info/entry_points.txt,sha256=V7vJuMZdF0UlvgX6KiBN7XUvq_cxF5kplcYvc1QlFaQ,62
306
+ agentex_sdk-0.4.0.dist-info/licenses/LICENSE,sha256=Q1AOx2FtRcMlyMgQJ9eVN2WKPq2mQ33lnB4tvWxabLA,11337
307
+ agentex_sdk-0.4.0.dist-info/RECORD,,