aip-agents-binary 0.6.2__py3-none-any.whl → 0.6.3__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.

Potentially problematic release.


This version of aip-agents-binary might be problematic. Click here for more details.

Files changed (305) hide show
  1. aip_agents/__init__.pyi +19 -0
  2. aip_agents/a2a/__init__.pyi +3 -0
  3. aip_agents/a2a/server/__init__.pyi +4 -0
  4. aip_agents/a2a/server/base_executor.pyi +73 -0
  5. aip_agents/a2a/server/google_adk_executor.pyi +51 -0
  6. aip_agents/a2a/server/langflow_executor.pyi +43 -0
  7. aip_agents/a2a/server/langgraph_executor.pyi +47 -0
  8. aip_agents/a2a/types.pyi +132 -0
  9. aip_agents/agent/__init__.pyi +9 -0
  10. aip_agents/agent/base_agent.pyi +221 -0
  11. aip_agents/agent/base_langgraph_agent.pyi +233 -0
  12. aip_agents/agent/google_adk_agent.pyi +141 -0
  13. aip_agents/agent/google_adk_constants.pyi +3 -0
  14. aip_agents/agent/hitl/__init__.pyi +6 -0
  15. aip_agents/agent/hitl/config.pyi +15 -0
  16. aip_agents/agent/hitl/langgraph_hitl_mixin.pyi +42 -0
  17. aip_agents/agent/hitl/manager.pyi +200 -0
  18. aip_agents/agent/hitl/models.pyi +3 -0
  19. aip_agents/agent/hitl/prompt/__init__.pyi +4 -0
  20. aip_agents/agent/hitl/prompt/base.pyi +24 -0
  21. aip_agents/agent/hitl/prompt/deferred.pyi +30 -0
  22. aip_agents/agent/hitl/registry.pyi +101 -0
  23. aip_agents/agent/interface.pyi +81 -0
  24. aip_agents/agent/interfaces.pyi +44 -0
  25. aip_agents/agent/langflow_agent.pyi +133 -0
  26. aip_agents/agent/langgraph_memory_enhancer_agent.pyi +49 -0
  27. aip_agents/agent/langgraph_react_agent.pyi +170 -0
  28. aip_agents/agent/system_instruction_context.pyi +13 -0
  29. aip_agents/clients/__init__.pyi +4 -0
  30. aip_agents/clients/langflow/__init__.pyi +4 -0
  31. aip_agents/clients/langflow/client.pyi +140 -0
  32. aip_agents/clients/langflow/types.pyi +7 -0
  33. aip_agents/constants.pyi +7 -0
  34. aip_agents/examples/__init__.pyi +0 -0
  35. aip_agents/examples/compare_streaming_client.pyi +48 -0
  36. aip_agents/examples/compare_streaming_server.pyi +18 -0
  37. aip_agents/examples/demo_memory_recall.pyi +58 -0
  38. aip_agents/examples/hello_world_a2a_google_adk_client.pyi +9 -0
  39. aip_agents/examples/hello_world_a2a_google_adk_client_agent.pyi +9 -0
  40. aip_agents/examples/hello_world_a2a_google_adk_client_streaming.pyi +9 -0
  41. aip_agents/examples/hello_world_a2a_google_adk_server.pyi +15 -0
  42. aip_agents/examples/hello_world_a2a_langchain_client.pyi +5 -0
  43. aip_agents/examples/hello_world_a2a_langchain_client_agent.pyi +5 -0
  44. aip_agents/examples/hello_world_a2a_langchain_client_lm_invoker.pyi +5 -0
  45. aip_agents/examples/hello_world_a2a_langchain_client_streaming.pyi +5 -0
  46. aip_agents/examples/hello_world_a2a_langchain_reference_client_streaming.pyi +5 -0
  47. aip_agents/examples/hello_world_a2a_langchain_reference_server.pyi +15 -0
  48. aip_agents/examples/hello_world_a2a_langchain_server.pyi +15 -0
  49. aip_agents/examples/hello_world_a2a_langchain_server_lm_invoker.pyi +15 -0
  50. aip_agents/examples/hello_world_a2a_langflow_client.pyi +9 -0
  51. aip_agents/examples/hello_world_a2a_langflow_server.pyi +14 -0
  52. aip_agents/examples/hello_world_a2a_langgraph_artifact_client.pyi +5 -0
  53. aip_agents/examples/hello_world_a2a_langgraph_artifact_client_streaming.pyi +5 -0
  54. aip_agents/examples/hello_world_a2a_langgraph_artifact_server.pyi +16 -0
  55. aip_agents/examples/hello_world_a2a_langgraph_client.pyi +9 -0
  56. aip_agents/examples/hello_world_a2a_langgraph_client_agent.pyi +9 -0
  57. aip_agents/examples/hello_world_a2a_langgraph_client_agent_lm_invoker.pyi +2 -0
  58. aip_agents/examples/hello_world_a2a_langgraph_client_streaming.pyi +9 -0
  59. aip_agents/examples/hello_world_a2a_langgraph_client_streaming_lm_invoker.pyi +5 -0
  60. aip_agents/examples/hello_world_a2a_langgraph_client_streaming_tool_streaming.pyi +5 -0
  61. aip_agents/examples/hello_world_a2a_langgraph_server.pyi +14 -0
  62. aip_agents/examples/hello_world_a2a_langgraph_server_lm_invoker.pyi +15 -0
  63. aip_agents/examples/hello_world_a2a_langgraph_server_tool_streaming.pyi +15 -0
  64. aip_agents/examples/hello_world_a2a_mcp_langgraph.pyi +48 -0
  65. aip_agents/examples/hello_world_a2a_three_level_agent_hierarchy_client.pyi +48 -0
  66. aip_agents/examples/hello_world_a2a_three_level_agent_hierarchy_server.pyi +45 -0
  67. aip_agents/examples/hello_world_a2a_with_metadata_langchain_client.pyi +5 -0
  68. aip_agents/examples/hello_world_a2a_with_metadata_langchain_server_lm_invoker.pyi +15 -0
  69. aip_agents/examples/hello_world_google_adk.pyi +5 -0
  70. aip_agents/examples/hello_world_google_adk_mcp_http.pyi +5 -0
  71. aip_agents/examples/hello_world_google_adk_mcp_http_stream.pyi +5 -0
  72. aip_agents/examples/hello_world_google_adk_mcp_sse.pyi +5 -0
  73. aip_agents/examples/hello_world_google_adk_mcp_sse_stream.pyi +5 -0
  74. aip_agents/examples/hello_world_google_adk_mcp_stdio.pyi +5 -0
  75. aip_agents/examples/hello_world_google_adk_mcp_stdio_stream.pyi +5 -0
  76. aip_agents/examples/hello_world_google_adk_stream.pyi +5 -0
  77. aip_agents/examples/hello_world_langchain.pyi +5 -0
  78. aip_agents/examples/hello_world_langchain_lm_invoker.pyi +2 -0
  79. aip_agents/examples/hello_world_langchain_mcp_http.pyi +5 -0
  80. aip_agents/examples/hello_world_langchain_mcp_http_interactive.pyi +16 -0
  81. aip_agents/examples/hello_world_langchain_mcp_http_stream.pyi +5 -0
  82. aip_agents/examples/hello_world_langchain_mcp_multi_server.pyi +18 -0
  83. aip_agents/examples/hello_world_langchain_mcp_sse.pyi +5 -0
  84. aip_agents/examples/hello_world_langchain_mcp_sse_stream.pyi +5 -0
  85. aip_agents/examples/hello_world_langchain_mcp_stdio.pyi +5 -0
  86. aip_agents/examples/hello_world_langchain_mcp_stdio_stream.pyi +5 -0
  87. aip_agents/examples/hello_world_langchain_stream.pyi +5 -0
  88. aip_agents/examples/hello_world_langchain_stream_lm_invoker.pyi +5 -0
  89. aip_agents/examples/hello_world_langflow_agent.pyi +35 -0
  90. aip_agents/examples/hello_world_langgraph.pyi +5 -0
  91. aip_agents/examples/hello_world_langgraph_gl_connector_twitter.pyi +5 -0
  92. aip_agents/examples/hello_world_langgraph_mcp_http.pyi +5 -0
  93. aip_agents/examples/hello_world_langgraph_mcp_http_stream.pyi +5 -0
  94. aip_agents/examples/hello_world_langgraph_mcp_sse.pyi +5 -0
  95. aip_agents/examples/hello_world_langgraph_mcp_sse_stream.pyi +5 -0
  96. aip_agents/examples/hello_world_langgraph_mcp_stdio.pyi +5 -0
  97. aip_agents/examples/hello_world_langgraph_mcp_stdio_stream.pyi +5 -0
  98. aip_agents/examples/hello_world_langgraph_stream.pyi +5 -0
  99. aip_agents/examples/hello_world_langgraph_stream_lm_invoker.pyi +5 -0
  100. aip_agents/examples/hello_world_model_switch_cli.pyi +30 -0
  101. aip_agents/examples/hello_world_multi_agent_adk.pyi +6 -0
  102. aip_agents/examples/hello_world_multi_agent_langchain.pyi +5 -0
  103. aip_agents/examples/hello_world_multi_agent_langgraph.pyi +5 -0
  104. aip_agents/examples/hello_world_multi_agent_langgraph_lm_invoker.pyi +5 -0
  105. aip_agents/examples/hello_world_pii_logger.pyi +5 -0
  106. aip_agents/examples/hello_world_ptc.pyi +5 -0
  107. aip_agents/examples/hello_world_sentry.pyi +21 -0
  108. aip_agents/examples/hello_world_step_limits.pyi +17 -0
  109. aip_agents/examples/hello_world_stock_a2a_server.pyi +17 -0
  110. aip_agents/examples/hello_world_tool_output_client.pyi +5 -0
  111. aip_agents/examples/hello_world_tool_output_server.pyi +19 -0
  112. aip_agents/examples/hitl_demo.pyi +67 -0
  113. aip_agents/examples/pii_demo_langgraph_client.pyi +5 -0
  114. aip_agents/examples/pii_demo_langgraph_server.pyi +20 -0
  115. aip_agents/examples/pii_demo_multi_agent_client.pyi +5 -0
  116. aip_agents/examples/pii_demo_multi_agent_server.pyi +40 -0
  117. aip_agents/examples/todolist_planning_a2a_langchain_client.pyi +5 -0
  118. aip_agents/examples/todolist_planning_a2a_langgraph_server.pyi +19 -0
  119. aip_agents/examples/tools/__init__.pyi +9 -0
  120. aip_agents/examples/tools/adk_arithmetic_tools.pyi +24 -0
  121. aip_agents/examples/tools/adk_weather_tool.pyi +18 -0
  122. aip_agents/examples/tools/data_generator_tool.pyi +15 -0
  123. aip_agents/examples/tools/data_visualization_tool.pyi +19 -0
  124. aip_agents/examples/tools/image_artifact_tool.pyi +26 -0
  125. aip_agents/examples/tools/langchain_arithmetic_tools.pyi +17 -0
  126. aip_agents/examples/tools/langchain_currency_exchange_tool.pyi +20 -0
  127. aip_agents/examples/tools/langchain_graph_artifact_tool.pyi +25 -0
  128. aip_agents/examples/tools/langchain_weather_tool.pyi +19 -0
  129. aip_agents/examples/tools/langgraph_streaming_tool.pyi +43 -0
  130. aip_agents/examples/tools/mock_retrieval_tool.pyi +13 -0
  131. aip_agents/examples/tools/pii_demo_tools.pyi +54 -0
  132. aip_agents/examples/tools/random_chart_tool.pyi +20 -0
  133. aip_agents/examples/tools/serper_tool.pyi +16 -0
  134. aip_agents/examples/tools/stock_tools.pyi +36 -0
  135. aip_agents/examples/tools/table_generator_tool.pyi +22 -0
  136. aip_agents/examples/tools/time_tool.pyi +15 -0
  137. aip_agents/examples/tools/weather_forecast_tool.pyi +14 -0
  138. aip_agents/guardrails/__init__.pyi +6 -0
  139. aip_agents/guardrails/engines/__init__.pyi +4 -0
  140. aip_agents/guardrails/engines/base.pyi +61 -0
  141. aip_agents/guardrails/engines/nemo.pyi +46 -0
  142. aip_agents/guardrails/engines/phrase_matcher.pyi +48 -0
  143. aip_agents/guardrails/exceptions.pyi +23 -0
  144. aip_agents/guardrails/manager.pyi +42 -0
  145. aip_agents/guardrails/middleware.pyi +87 -0
  146. aip_agents/guardrails/schemas.pyi +43 -0
  147. aip_agents/guardrails/utils.pyi +19 -0
  148. aip_agents/mcp/__init__.pyi +0 -0
  149. aip_agents/mcp/client/__init__.pyi +5 -0
  150. aip_agents/mcp/client/base_mcp_client.pyi +148 -0
  151. aip_agents/mcp/client/connection_manager.pyi +51 -0
  152. aip_agents/mcp/client/google_adk/__init__.pyi +3 -0
  153. aip_agents/mcp/client/google_adk/client.pyi +75 -0
  154. aip_agents/mcp/client/langchain/__init__.pyi +3 -0
  155. aip_agents/mcp/client/langchain/client.pyi +48 -0
  156. aip_agents/mcp/client/persistent_session.pyi +122 -0
  157. aip_agents/mcp/client/session_pool.pyi +101 -0
  158. aip_agents/mcp/client/transports.pyi +132 -0
  159. aip_agents/mcp/utils/__init__.pyi +0 -0
  160. aip_agents/mcp/utils/config_validator.pyi +82 -0
  161. aip_agents/memory/__init__.pyi +5 -0
  162. aip_agents/memory/adapters/__init__.pyi +4 -0
  163. aip_agents/memory/adapters/base_adapter.pyi +150 -0
  164. aip_agents/memory/adapters/mem0.pyi +22 -0
  165. aip_agents/memory/base.pyi +60 -0
  166. aip_agents/memory/constants.pyi +25 -0
  167. aip_agents/memory/factory.pyi +24 -0
  168. aip_agents/memory/guidance.pyi +3 -0
  169. aip_agents/memory/simple_memory.pyi +23 -0
  170. aip_agents/middleware/__init__.pyi +5 -0
  171. aip_agents/middleware/base.pyi +75 -0
  172. aip_agents/middleware/manager.pyi +84 -0
  173. aip_agents/middleware/todolist.pyi +125 -0
  174. aip_agents/ptc/__init__.pyi +10 -0
  175. aip_agents/ptc/doc_gen.pyi +40 -0
  176. aip_agents/ptc/exceptions.pyi +22 -0
  177. aip_agents/ptc/executor.pyi +73 -0
  178. aip_agents/ptc/mcp/__init__.pyi +7 -0
  179. aip_agents/ptc/mcp/sandbox_bridge.pyi +47 -0
  180. aip_agents/ptc/mcp/templates/__init__.pyi +0 -0
  181. aip_agents/ptc/naming.pyi +76 -0
  182. aip_agents/ptc/payload.pyi +15 -0
  183. aip_agents/ptc/prompt_builder.pyi +55 -0
  184. aip_agents/ptc/ptc_helper.pyi +1 -0
  185. aip_agents/ptc/sandbox_bridge.pyi +25 -0
  186. aip_agents/ptc/template_utils.pyi +13 -0
  187. aip_agents/ptc/templates/__init__.pyi +0 -0
  188. aip_agents/sandbox/__init__.pyi +5 -0
  189. aip_agents/sandbox/defaults.pyi +2 -0
  190. aip_agents/sandbox/e2b_runtime.pyi +51 -0
  191. aip_agents/sandbox/template_builder.pyi +36 -0
  192. aip_agents/sandbox/types.pyi +14 -0
  193. aip_agents/sandbox/validation.pyi +20 -0
  194. aip_agents/schema/__init__.pyi +9 -0
  195. aip_agents/schema/a2a.pyi +40 -0
  196. aip_agents/schema/agent.pyi +65 -0
  197. aip_agents/schema/hitl.pyi +89 -0
  198. aip_agents/schema/langgraph.pyi +28 -0
  199. aip_agents/schema/model_id.pyi +54 -0
  200. aip_agents/schema/step_limit.pyi +63 -0
  201. aip_agents/schema/storage.pyi +21 -0
  202. aip_agents/sentry/__init__.pyi +3 -0
  203. aip_agents/sentry/sentry.pyi +48 -0
  204. aip_agents/storage/__init__.pyi +8 -0
  205. aip_agents/storage/base.pyi +58 -0
  206. aip_agents/storage/clients/__init__.pyi +3 -0
  207. aip_agents/storage/clients/minio_client.pyi +137 -0
  208. aip_agents/storage/config.pyi +29 -0
  209. aip_agents/storage/providers/__init__.pyi +5 -0
  210. aip_agents/storage/providers/base.pyi +88 -0
  211. aip_agents/storage/providers/memory.pyi +79 -0
  212. aip_agents/storage/providers/object_storage.pyi +98 -0
  213. aip_agents/tools/__init__.py +11 -2
  214. aip_agents/tools/__init__.pyi +11 -0
  215. aip_agents/tools/browser_use/__init__.pyi +14 -0
  216. aip_agents/tools/browser_use/action_parser.pyi +18 -0
  217. aip_agents/tools/browser_use/browser_use_tool.pyi +50 -0
  218. aip_agents/tools/browser_use/llm_config.pyi +52 -0
  219. aip_agents/tools/browser_use/minio_storage.pyi +109 -0
  220. aip_agents/tools/browser_use/schemas.pyi +32 -0
  221. aip_agents/tools/browser_use/session.pyi +4 -0
  222. aip_agents/tools/browser_use/session_errors.pyi +53 -0
  223. aip_agents/tools/browser_use/steel_session_recording.pyi +63 -0
  224. aip_agents/tools/browser_use/streaming.pyi +81 -0
  225. aip_agents/tools/browser_use/structured_data_parser.pyi +86 -0
  226. aip_agents/tools/browser_use/structured_data_recovery.pyi +43 -0
  227. aip_agents/tools/browser_use/types.pyi +45 -0
  228. aip_agents/tools/code_sandbox/__init__.pyi +3 -0
  229. aip_agents/tools/code_sandbox/constant.pyi +4 -0
  230. aip_agents/tools/code_sandbox/e2b_cloud_sandbox_extended.pyi +102 -0
  231. aip_agents/tools/code_sandbox/e2b_sandbox_tool.pyi +29 -0
  232. aip_agents/tools/constants.pyi +138 -0
  233. aip_agents/tools/date_range_tool.py +554 -0
  234. aip_agents/tools/date_range_tool.pyi +21 -0
  235. aip_agents/tools/document_loader/__init__.pyi +7 -0
  236. aip_agents/tools/document_loader/base_reader.pyi +75 -0
  237. aip_agents/tools/document_loader/docx_reader_tool.pyi +10 -0
  238. aip_agents/tools/document_loader/excel_reader_tool.pyi +26 -0
  239. aip_agents/tools/document_loader/pdf_reader_tool.pyi +11 -0
  240. aip_agents/tools/document_loader/pdf_splitter.pyi +18 -0
  241. aip_agents/tools/execute_ptc_code.pyi +90 -0
  242. aip_agents/tools/gl_connector/__init__.pyi +3 -0
  243. aip_agents/tools/gl_connector/tool.pyi +74 -0
  244. aip_agents/tools/gl_connector_tools.pyi +39 -0
  245. aip_agents/tools/memory_search/__init__.pyi +5 -0
  246. aip_agents/tools/memory_search/base.pyi +69 -0
  247. aip_agents/tools/memory_search/mem0.pyi +19 -0
  248. aip_agents/tools/memory_search/schema.pyi +15 -0
  249. aip_agents/tools/memory_search_tool.pyi +3 -0
  250. aip_agents/tools/time_tool.pyi +16 -0
  251. aip_agents/tools/tool_config_injector.pyi +26 -0
  252. aip_agents/tools/web_search/__init__.pyi +3 -0
  253. aip_agents/tools/web_search/serper_tool.pyi +19 -0
  254. aip_agents/types/__init__.pyi +36 -0
  255. aip_agents/types/a2a_events.pyi +3 -0
  256. aip_agents/utils/__init__.pyi +11 -0
  257. aip_agents/utils/a2a_connector.pyi +146 -0
  258. aip_agents/utils/artifact_helpers.pyi +203 -0
  259. aip_agents/utils/constants.pyi +10 -0
  260. aip_agents/utils/datetime/__init__.pyi +4 -0
  261. aip_agents/utils/datetime/normalization.pyi +95 -0
  262. aip_agents/utils/datetime/timezone.pyi +48 -0
  263. aip_agents/utils/env_loader.pyi +10 -0
  264. aip_agents/utils/event_handler_registry.pyi +23 -0
  265. aip_agents/utils/file_prompt_utils.pyi +21 -0
  266. aip_agents/utils/final_response_builder.pyi +34 -0
  267. aip_agents/utils/formatter_llm_client.pyi +71 -0
  268. aip_agents/utils/langgraph/__init__.pyi +3 -0
  269. aip_agents/utils/langgraph/converter.pyi +49 -0
  270. aip_agents/utils/langgraph/tool_managers/__init__.pyi +5 -0
  271. aip_agents/utils/langgraph/tool_managers/a2a_tool_manager.pyi +35 -0
  272. aip_agents/utils/langgraph/tool_managers/base_tool_manager.pyi +48 -0
  273. aip_agents/utils/langgraph/tool_managers/delegation_tool_manager.pyi +56 -0
  274. aip_agents/utils/langgraph/tool_output_management.pyi +329 -0
  275. aip_agents/utils/logger.pyi +60 -0
  276. aip_agents/utils/metadata/__init__.pyi +5 -0
  277. aip_agents/utils/metadata/activity_metadata_helper.pyi +25 -0
  278. aip_agents/utils/metadata/activity_narrative/__init__.pyi +7 -0
  279. aip_agents/utils/metadata/activity_narrative/builder.pyi +35 -0
  280. aip_agents/utils/metadata/activity_narrative/constants.pyi +10 -0
  281. aip_agents/utils/metadata/activity_narrative/context.pyi +32 -0
  282. aip_agents/utils/metadata/activity_narrative/formatters.pyi +48 -0
  283. aip_agents/utils/metadata/activity_narrative/utils.pyi +12 -0
  284. aip_agents/utils/metadata/schemas/__init__.pyi +4 -0
  285. aip_agents/utils/metadata/schemas/activity_schema.pyi +18 -0
  286. aip_agents/utils/metadata/schemas/thinking_schema.pyi +20 -0
  287. aip_agents/utils/metadata/thinking_metadata_helper.pyi +4 -0
  288. aip_agents/utils/metadata_helper.pyi +117 -0
  289. aip_agents/utils/name_preprocessor/__init__.pyi +6 -0
  290. aip_agents/utils/name_preprocessor/base_name_preprocessor.pyi +52 -0
  291. aip_agents/utils/name_preprocessor/google_name_preprocessor.pyi +38 -0
  292. aip_agents/utils/name_preprocessor/name_preprocessor.pyi +41 -0
  293. aip_agents/utils/name_preprocessor/openai_name_preprocessor.pyi +34 -0
  294. aip_agents/utils/pii/__init__.pyi +5 -0
  295. aip_agents/utils/pii/pii_handler.pyi +96 -0
  296. aip_agents/utils/pii/pii_helper.pyi +78 -0
  297. aip_agents/utils/pii/uuid_deanonymizer_mapping.pyi +73 -0
  298. aip_agents/utils/reference_helper.pyi +81 -0
  299. aip_agents/utils/sse_chunk_transformer.pyi +166 -0
  300. aip_agents/utils/step_limit_manager.pyi +112 -0
  301. aip_agents/utils/token_usage_helper.pyi +60 -0
  302. {aip_agents_binary-0.6.2.dist-info → aip_agents_binary-0.6.3.dist-info}/METADATA +2 -1
  303. {aip_agents_binary-0.6.2.dist-info → aip_agents_binary-0.6.3.dist-info}/RECORD +305 -5
  304. {aip_agents_binary-0.6.2.dist-info → aip_agents_binary-0.6.3.dist-info}/WHEEL +0 -0
  305. {aip_agents_binary-0.6.2.dist-info → aip_agents_binary-0.6.3.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,26 @@
1
+ from _typeshed import Incomplete
2
+ from aip_agents.tools.document_loader.base_reader import BaseDocumentReaderTool as BaseDocumentReaderTool, DOCPROC_MISSING_MESSAGE as DOCPROC_MISSING_MESSAGE
3
+ from aip_agents.utils.logger import get_logger as get_logger
4
+
5
+ logger: Incomplete
6
+
7
+ class ExcelReaderTool(BaseDocumentReaderTool):
8
+ '''Tool to read and extract content from Excel files.
9
+
10
+ This tool reads Excel files (.xlsx, .xlsm) and extracts their content using
11
+ the gllm_docproc loader pipeline. The content is formatted as Markdown tables
12
+ for easy readability.
13
+
14
+ Features:
15
+ - Supports .xlsx and .xlsm formats
16
+ - Extracts all sheets or specific sheets
17
+ - Formats output as Markdown tables
18
+ - Configurable row limits and file size limits
19
+
20
+ Examples:
21
+ >>> tool = ExcelReaderTool()
22
+ >>> result = tool._run("/tmp/data.xlsx")
23
+ >>> print(result)
24
+ '''
25
+ name: str
26
+ description: str
@@ -0,0 +1,11 @@
1
+ from _typeshed import Incomplete
2
+ from aip_agents.tools.document_loader.base_reader import BaseDocumentReaderTool as BaseDocumentReaderTool, DOCPROC_MISSING_MESSAGE as DOCPROC_MISSING_MESSAGE
3
+ from aip_agents.tools.document_loader.pdf_splitter import PDFSplitter as PDFSplitter
4
+ from aip_agents.utils.logger import get_logger as get_logger
5
+
6
+ logger: Incomplete
7
+
8
+ class PDFReaderTool(BaseDocumentReaderTool):
9
+ """Tool to read and extract text from PDF files."""
10
+ name: str
11
+ description: str
@@ -0,0 +1,18 @@
1
+ class PDFSplitter:
2
+ """Utility class for splitting PDF files into page-based temporary files."""
3
+ @staticmethod
4
+ def split_by_pages(file_path: str, batch_size: int) -> list[str]:
5
+ """Split PDF into temporary files containing batch_size pages each.
6
+
7
+ Args:
8
+ file_path: Path to the PDF file to split
9
+ batch_size: Number of pages to include in each batch (1-10)
10
+
11
+ Returns:
12
+ List of temporary file paths containing the split PDF batches
13
+
14
+ Raises:
15
+ FileNotFoundError: If the input PDF file doesn't exist
16
+ ValueError: If batch_size is invalid or PDF is corrupted
17
+ Exception: For other PDF processing errors
18
+ """
@@ -0,0 +1,90 @@
1
+ from _typeshed import Incomplete
2
+ from aip_agents.mcp.client.base_mcp_client import BaseMCPClient as BaseMCPClient
3
+ from aip_agents.ptc.executor import PTCSandboxConfig as PTCSandboxConfig, PTCSandboxExecutor as PTCSandboxExecutor
4
+ from aip_agents.ptc.naming import sanitize_function_name as sanitize_function_name
5
+ from aip_agents.sandbox.e2b_runtime import E2BSandboxRuntime as E2BSandboxRuntime
6
+ from aip_agents.tools.tool_config_injector import TOOL_CONFIGS_KEY as TOOL_CONFIGS_KEY
7
+ from aip_agents.utils.logger import get_logger as get_logger
8
+ from langchain_core.tools import BaseTool
9
+ from pydantic import BaseModel
10
+ from typing import Any
11
+
12
+ logger: Incomplete
13
+
14
+ class PTCCodeInput(BaseModel):
15
+ """Input schema for PTCCodeTool."""
16
+ code: str
17
+
18
+ def merge_tool_configs(agent_configs: dict[str, Any] | None, runtime_configs: dict[str, Any] | None) -> dict[str, dict[str, Any]]:
19
+ '''Merge agent-level and runtime tool configs with sanitized keys.
20
+
21
+ Merges tool configurations from two sources:
22
+ 1. Agent-level defaults (from agent.tool_configs)
23
+ 2. Runtime overrides (from RunnableConfig.metadata["tool_configs"])
24
+
25
+ Both sources support two formats (matching LangGraphReactAgent behavior):
26
+ - Direct per-tool keys: {"time_tool": {"timezone": "UTC"}}
27
+ - Nested structure: {"tool_configs": {"time_tool": {"timezone": "UTC"}}}
28
+
29
+ The nested "tool_configs" key has higher precedence than direct keys.
30
+ Tool names are sanitized to match sandbox expectations (e.g., "Time Tool" -> "time_tool").
31
+
32
+ Args:
33
+ agent_configs: Agent-level tool configs (may be None or contain nested dicts)
34
+ runtime_configs: Runtime overrides from metadata (may be None)
35
+
36
+ Returns:
37
+ Merged dict with sanitized tool names as keys and config dicts as values.
38
+ Only includes entries that are dicts (non-dict values are agent-wide defaults).
39
+ '''
40
+
41
+ class PTCCodeTool(BaseTool):
42
+ """Tool for executing Python code with MCP tool access in a sandbox.
43
+
44
+ This tool uses BaseTool to properly access runtime config via run_manager.metadata.
45
+ The config parameter is NOT exposed to the LLM schema - it's extracted from
46
+ the callback manager during execution.
47
+ """
48
+ name: str
49
+ description: str
50
+ args_schema: type[BaseModel]
51
+ def __init__(self, executor: PTCSandboxExecutor, runtime: E2BSandboxRuntime, agent_tool_configs: dict[str, Any] | None = None, **kwargs: Any) -> None:
52
+ """Initialize the PTC code tool.
53
+
54
+ Args:
55
+ executor: The PTC sandbox executor.
56
+ runtime: The E2B sandbox runtime.
57
+ agent_tool_configs: Optional agent-level tool configs.
58
+ **kwargs: Additional keyword arguments passed to BaseTool.
59
+ """
60
+ async def cleanup(self) -> None:
61
+ """Clean up the sandbox runtime."""
62
+
63
+ def create_execute_ptc_code_tool(mcp_client: BaseMCPClient | None, config: PTCSandboxConfig | None = None, agent_tool_configs: dict[str, Any] | None = None) -> PTCCodeTool:
64
+ '''Create a tool that executes Python code with MCP tool access.
65
+
66
+ The code runs inside an E2B sandbox with access to generated MCP tool modules.
67
+ This tool is designed for LLM-generated code that needs to call multiple tools
68
+ programmatically in a single execution.
69
+
70
+ Args:
71
+ mcp_client: The MCP client with configured servers.
72
+ config: Optional sandbox executor configuration.
73
+ agent_tool_configs: Optional agent-level tool configs (from agent.tool_configs).
74
+ These are merged with runtime overrides from RunnableConfig.metadata.
75
+
76
+ Returns:
77
+ PTCCodeTool configured for PTC code execution.
78
+
79
+ Example:
80
+ ```python
81
+ from aip_agents.mcp.client import LangchainMCPClient
82
+ from aip_agents.tools.execute_ptc_code import create_execute_ptc_code_tool
83
+
84
+ mcp_client = LangchainMCPClient()
85
+ await mcp_client.add_server("yfinance", {...})
86
+
87
+ tool = create_execute_ptc_code_tool(mcp_client)
88
+ result = await tool.ainvoke({"code": "from tools.yfinance import get_stock\\\\nprint(get_stock(\'AAPL\'))"})
89
+ ```
90
+ '''
@@ -0,0 +1,3 @@
1
+ from aip_agents.tools.gl_connector.tool import GLConnectorTool as GLConnectorTool
2
+
3
+ __all__ = ['GLConnectorTool']
@@ -0,0 +1,74 @@
1
+ from _typeshed import Incomplete
2
+ from aip_agents.tools.constants import ToolType as ToolType
3
+ from langchain_core.runnables import RunnableConfig
4
+ from langchain_core.tools import BaseTool
5
+ from typing import Any
6
+
7
+ class _InjectedTool(BaseTool):
8
+ """Wrap a BaseTool to inject token and optional identifier into inputs."""
9
+ model_config: Incomplete
10
+ def __init__(self, base_tool: BaseTool, token: str, identifier: str | None) -> None:
11
+ """Initialize the injected tool wrapper.
12
+
13
+ Args:
14
+ base_tool: The base tool to wrap.
15
+ token: Authentication token to inject into tool inputs.
16
+ identifier: Optional identifier to inject into tool inputs.
17
+
18
+ Returns:
19
+ None
20
+ """
21
+ def invoke(self, input: Any, config: RunnableConfig | None = None, **kwargs: Any) -> Any:
22
+ """Invoke the tool with token and optional identifier injected.
23
+
24
+ Args:
25
+ input: Tool input to process.
26
+ config: Optional runnable configuration.
27
+ **kwargs: Additional keyword arguments.
28
+
29
+ Returns:
30
+ The result of invoking the tool with injected parameters.
31
+ """
32
+ async def ainvoke(self, input: Any, config: RunnableConfig | None = None, **kwargs: Any) -> Any:
33
+ """Invoke the tool asynchronously with token and optional identifier injected.
34
+
35
+ Args:
36
+ input: Tool input to process.
37
+ config: Optional runnable configuration.
38
+ **kwargs: Additional keyword arguments.
39
+
40
+ Returns:
41
+ The result of invoking the tool with injected parameters.
42
+ """
43
+ def run(self, tool_input: Any, **kwargs: Any) -> Any:
44
+ """Run the tool with token and optional identifier injected.
45
+
46
+ Args:
47
+ tool_input: Tool input to process.
48
+ **kwargs: Additional keyword arguments.
49
+
50
+ Returns:
51
+ The result of running the tool with injected parameters.
52
+ """
53
+ async def arun(self, tool_input: Any, **kwargs: Any) -> Any:
54
+ """Run the tool asynchronously with token and optional identifier injected.
55
+
56
+ Args:
57
+ tool_input: Tool input to process.
58
+ **kwargs: Additional keyword arguments.
59
+
60
+ Returns:
61
+ The result of running the tool with injected parameters.
62
+ """
63
+
64
+ def GLConnectorTool(tool_name: str, *, api_key: str | None = None, identifier: str | None = None) -> BaseTool:
65
+ """Create a single tool from GL Connectors by exact tool name.
66
+
67
+ Args:
68
+ tool_name: Exact tool name (not module name).
69
+ api_key: Optional override for GL Connectors API key.
70
+ identifier: Optional override for GL Connectors identifier.
71
+
72
+ Returns:
73
+ A single LangChain BaseTool with token injection.
74
+ """
@@ -0,0 +1,39 @@
1
+ from _typeshed import Incomplete
2
+ from aip_agents.tools.constants import GL_CONNECTORS_API_KEY as GL_CONNECTORS_API_KEY, GL_CONNECTORS_BASE_URL as GL_CONNECTORS_BASE_URL, GL_CONNECTORS_FETCH_MAX_RETRIES as GL_CONNECTORS_FETCH_MAX_RETRIES, ToolType as ToolType
3
+ from aip_agents.utils.logger import get_logger as get_logger
4
+ from langchain_core.tools import BaseTool as BaseTool
5
+
6
+ logger: Incomplete
7
+
8
+ def get_gl_connector_modules_with_retry() -> list[str]:
9
+ """Try to get available modules with retries.
10
+
11
+ Returns:
12
+ List of available modules.
13
+ """
14
+
15
+ class LazyGLConnectorToolsDict(dict):
16
+ """Lazy dictionary for GL Connectors."""
17
+ def __missing__(self, app):
18
+ """When a key is missing, create the tools and store them in the dictionary.
19
+
20
+ Args:
21
+ app: Name of the GL Connectors.
22
+
23
+ Returns:
24
+ List of tools generated by the GL Connectors tool generator.
25
+ """
26
+
27
+ def get_gl_connector_modules() -> list[str]:
28
+ """Lazily fetch and cache GL Connectors modules.
29
+
30
+ Returns:
31
+ List of GL Connectors modules.
32
+ """
33
+ def get_bosa_modules() -> list[str]:
34
+ """Backward-compatible alias for get_gl_connector_modules."""
35
+
36
+ GL_CONNECTORS_MODULES: Incomplete
37
+ BOSA_MODULES = GL_CONNECTORS_MODULES
38
+ GL_CONNECTORS_AUTOMATED_TOOLS: dict[str, list[BaseTool]]
39
+ BOSA_AUTOMATED_TOOLS = GL_CONNECTORS_AUTOMATED_TOOLS
@@ -0,0 +1,5 @@
1
+ from aip_agents.tools.memory_search.base import LongTermMemorySearchTool as LongTermMemorySearchTool
2
+ from aip_agents.tools.memory_search.mem0 import MEMORY_SEARCH_TOOL_NAME as MEMORY_SEARCH_TOOL_NAME, Mem0SearchInput as Mem0SearchInput, Mem0SearchTool as Mem0SearchTool
3
+ from aip_agents.tools.memory_search.schema import LongTermMemorySearchInput as LongTermMemorySearchInput, MemoryConfig as MemoryConfig
4
+
5
+ __all__ = ['MemoryConfig', 'LongTermMemorySearchInput', 'LongTermMemorySearchTool', 'Mem0SearchInput', 'Mem0SearchTool', 'MEMORY_SEARCH_TOOL_NAME']
@@ -0,0 +1,69 @@
1
+ from _typeshed import Incomplete
2
+ from abc import ABC
3
+ from aip_agents.memory.constants import MemoryDefaults as MemoryDefaults
4
+ from aip_agents.tools.memory_search.schema import LongTermMemorySearchInput as LongTermMemorySearchInput, MemoryConfig as MemoryConfig
5
+ from aip_agents.utils.logger import get_logger as get_logger
6
+ from collections.abc import Callable
7
+ from langchain_core.tools import BaseTool
8
+ from pydantic import BaseModel as BaseModel
9
+ from typing import Any, ClassVar, Protocol
10
+
11
+ logger: Incomplete
12
+
13
+ class LongTermMemoryBackend(Protocol):
14
+ """Protocol for memory adapters that support retrieval and formatting."""
15
+ def retrieve(self, *, query: str | None, user_id: str, limit: int | None = None, filters: dict[str, Any] | None = None, page: int | None = None) -> list[dict[str, Any]]:
16
+ """Retrieve memories matching the given query and filters.
17
+
18
+ Args:
19
+ query: Optional search query string.
20
+ user_id: User identifier for scoped retrieval.
21
+ limit: Maximum number of results to return.
22
+ filters: Optional filters to apply to the retrieval.
23
+ page: Page number for pagination.
24
+
25
+ Returns:
26
+ List of memory hit dictionaries.
27
+ """
28
+ def format_hits(self, hits: list[dict[str, Any]], max_items: int = ..., with_tag: bool = True) -> str:
29
+ """Format memory hits into a readable string.
30
+
31
+ Args:
32
+ hits: List of memory hit dictionaries to format.
33
+ max_items: Maximum number of hits to include in output.
34
+ with_tag: Whether to wrap output with memory tags.
35
+
36
+ Returns:
37
+ Formatted string representation of memory hits.
38
+ """
39
+
40
+ class LongTermMemorySearchTool(BaseTool, ABC):
41
+ """Abstract base class for provider-specific long-term memory search tools."""
42
+ name: str
43
+ description: str
44
+ args_schema: type[LongTermMemorySearchInput]
45
+ tool_config_schema: type[BaseModel]
46
+ memory: LongTermMemoryBackend
47
+ default_user_id: str | None
48
+ user_id_provider: Callable[[], str | None] | None
49
+ MINIMUM_MEMORY_RETRIEVAL: ClassVar[int]
50
+ LOG_PREFIX: ClassVar[str]
51
+ def __init__(self, memory: LongTermMemoryBackend, *, default_user_id: str | None = None, user_id_provider: Callable[[], str | None] | None = None, **kwargs: Any) -> None:
52
+ """Initialize the long-term memory search tool.
53
+
54
+ Args:
55
+ memory: Memory adapter instance with retrieve() and format_hits() methods.
56
+ default_user_id: Default user ID to use if not provided in metadata.
57
+ user_id_provider: Callable that returns a user ID.
58
+ **kwargs: Additional keyword arguments passed to the parent class.
59
+ """
60
+ def format_hits(self, hits: list[dict[str, Any]], with_tag: bool = False) -> str:
61
+ """Format hits into a string with optional tags.
62
+
63
+ Args:
64
+ hits: List of memory hit dictionaries to format.
65
+ with_tag: Whether to wrap the output with memory tags.
66
+
67
+ Returns:
68
+ Formatted string representation of the memory hits.
69
+ """
@@ -0,0 +1,19 @@
1
+ from _typeshed import Incomplete
2
+ from aip_agents.memory.constants import MemoryDefaults as MemoryDefaults
3
+ from aip_agents.tools.memory_search.base import LongTermMemorySearchTool as LongTermMemorySearchTool
4
+ from aip_agents.tools.memory_search.schema import LongTermMemorySearchInput as LongTermMemorySearchInput
5
+ from aip_agents.utils.datetime import is_valid_date_string as is_valid_date_string, next_day_iso as next_day_iso
6
+ from aip_agents.utils.logger import get_logger as get_logger
7
+ from typing import ClassVar
8
+
9
+ logger: Incomplete
10
+ MEMORY_SEARCH_TOOL_NAME: str
11
+
12
+ class Mem0SearchTool(LongTermMemorySearchTool):
13
+ """Mem0-specific implementation of the long-term memory search tool."""
14
+ name: str
15
+ description: str
16
+ args_schema: type[LongTermMemorySearchInput]
17
+ LOG_PREFIX: ClassVar[str]
18
+ METADATA_FILTER_BLOCKLIST: ClassVar[set[str]]
19
+ Mem0SearchInput = LongTermMemorySearchInput
@@ -0,0 +1,15 @@
1
+ from pydantic import BaseModel
2
+ from typing import Any
3
+
4
+ class MemoryConfig(BaseModel):
5
+ """Tool configuration schema for memory operations."""
6
+ user_id: str
7
+
8
+ class LongTermMemorySearchInput(BaseModel):
9
+ """Input schema for unified long-term memory retrieval."""
10
+ query: str | None
11
+ start_date: str | None
12
+ end_date: str | None
13
+ limit: int | None
14
+ categories: list[str] | None
15
+ metadata: dict[str, Any] | None
@@ -0,0 +1,3 @@
1
+ from aip_agents.tools.memory_search import LongTermMemorySearchInput as LongTermMemorySearchInput, LongTermMemorySearchTool as LongTermMemorySearchTool, MEMORY_SEARCH_TOOL_NAME as MEMORY_SEARCH_TOOL_NAME, Mem0SearchInput as Mem0SearchInput, Mem0SearchTool as Mem0SearchTool, MemoryConfig as MemoryConfig
2
+
3
+ __all__ = ['MemoryConfig', 'LongTermMemorySearchInput', 'LongTermMemorySearchTool', 'Mem0SearchInput', 'Mem0SearchTool', 'MEMORY_SEARCH_TOOL_NAME']
@@ -0,0 +1,16 @@
1
+ from langchain_core.tools import BaseTool
2
+ from pydantic import BaseModel
3
+
4
+ FORMAT_STRING: str
5
+ DEFAULT_TIMEZONE: str
6
+
7
+ class TimeToolInput(BaseModel):
8
+ """Input schema for the TimeTool."""
9
+ datetime_format: str
10
+ timezone: str | None
11
+
12
+ class TimeTool(BaseTool):
13
+ """Tool to get the current time."""
14
+ name: str
15
+ description: str
16
+ args_schema: type[BaseModel]
@@ -0,0 +1,26 @@
1
+ from langchain_core.tools import BaseTool
2
+ from pydantic import BaseModel
3
+ from typing import TypeVar
4
+
5
+ __all__ = ['inject_config_methods_into_tool', 'CONFIG_SCHEMA_ATTR', 'CONFIG_ATTR', 'TOOL_CONFIG_SCHEMA_ATTR', 'TOOL_CONFIGS_KEY']
6
+
7
+ ConfigSchema = TypeVar('ConfigSchema', bound=BaseModel)
8
+ CONFIG_SCHEMA_ATTR: str
9
+ CONFIG_ATTR: str
10
+ TOOL_CONFIG_SCHEMA_ATTR: str
11
+ TOOL_CONFIGS_KEY: str
12
+
13
+ def inject_config_methods_into_tool(tool: BaseTool, config_schema: type[ConfigSchema]) -> None:
14
+ """Inject configuration methods into a tool.
15
+
16
+ This function is used by the SDK to automatically inject configuration capabilities
17
+ into tools that have a tool_config_schema attribute. It can also be used directly
18
+ by developers who want to add configuration support to their tools.
19
+
20
+ Args:
21
+ tool: The tool to inject configuration capabilities into.
22
+ config_schema: Pydantic model class for configuration validation.
23
+
24
+ Raises:
25
+ ValueError: If tool is not a BaseTool instance or config_schema is not a Pydantic BaseModel subclass.
26
+ """
@@ -0,0 +1,3 @@
1
+ from aip_agents.tools.web_search.serper_tool import GoogleSerperTool as GoogleSerperTool
2
+
3
+ __all__ = ['GoogleSerperTool']
@@ -0,0 +1,19 @@
1
+ from _typeshed import Incomplete
2
+ from aip_agents.utils.logger import get_logger as get_logger
3
+ from langchain_community.utilities.google_serper import GoogleSerperAPIWrapper
4
+ from langchain_core.tools import BaseTool
5
+ from pydantic import BaseModel
6
+
7
+ logger: Incomplete
8
+
9
+ class GoogleSerperInput(BaseModel):
10
+ """Input schema for the GoogleSerperTool."""
11
+ query: str
12
+
13
+ class GoogleSerperTool(BaseTool):
14
+ """Tool to search Google Serper API."""
15
+ name: str
16
+ description: str
17
+ save_output_history: bool
18
+ args_schema: type[BaseModel]
19
+ api_wrapper: GoogleSerperAPIWrapper
@@ -0,0 +1,36 @@
1
+ from aip_agents.schema.a2a import A2AEvent as A2AEvent, A2AStreamEventType as A2AStreamEventType, ToolCallInfo as ToolCallInfo, ToolResultInfo as ToolResultInfo
2
+ from pydantic import BaseModel
3
+ from typing import Any, Protocol
4
+
5
+ __all__ = ['A2AEvent', 'A2AStreamEventType', 'ToolCallInfo', 'ToolResultInfo', 'AgentProtocol', 'ChatMessage']
6
+
7
+ class ChatMessage(BaseModel):
8
+ """Represents a single message in a chat conversation."""
9
+ role: str
10
+ content: str
11
+
12
+ class AgentProtocol(Protocol):
13
+ """Defines the expected interface for an agent."""
14
+ id: str
15
+ name: str
16
+ description: str
17
+ def run(self, query: str, **kwargs: Any) -> dict[str, Any]:
18
+ """Synchronous execution method.
19
+
20
+ Args:
21
+ query (str): The query to execute.
22
+ **kwargs (Any): Additional keyword arguments.
23
+
24
+ Returns:
25
+ dict[str, Any]: The execution result.
26
+ """
27
+ async def arun(self, query: str, **kwargs: Any) -> dict[str, Any]:
28
+ """Asynchronous execution method.
29
+
30
+ Args:
31
+ query (str): The query to execute.
32
+ **kwargs (Any): Additional keyword arguments.
33
+
34
+ Returns:
35
+ dict[str, Any]: The execution result.
36
+ """
@@ -0,0 +1,3 @@
1
+ from aip_agents.schema.a2a import A2AEvent as A2AEvent, A2AStreamEventType as A2AStreamEventType, ToolCallInfo as ToolCallInfo, ToolResultInfo as ToolResultInfo
2
+
3
+ __all__ = ['A2AStreamEventType', 'A2AEvent', 'ToolCallInfo', 'ToolResultInfo']
@@ -0,0 +1,11 @@
1
+ from aip_agents.utils.artifact_helpers import create_artifact_command as create_artifact_command, create_artifact_response as create_artifact_response, create_error_response as create_error_response, create_multiple_artifacts_command as create_multiple_artifacts_command, create_text_artifact_response as create_text_artifact_response
2
+ from aip_agents.utils.file_prompt_utils import augment_query_with_file_paths as augment_query_with_file_paths
3
+ from aip_agents.utils.final_response_builder import assemble_final_response as assemble_final_response
4
+ from aip_agents.utils.logger import LoggerManager as LoggerManager, get_logger as get_logger
5
+ from aip_agents.utils.pii.pii_handler import ToolPIIHandler as ToolPIIHandler
6
+ from aip_agents.utils.pii.pii_helper import add_pii_mappings as add_pii_mappings, extract_pii_mapping_from_agent_response as extract_pii_mapping_from_agent_response
7
+ from aip_agents.utils.reference_helper import add_references_chunks as add_references_chunks, serialize_references_for_metadata as serialize_references_for_metadata, validate_references as validate_references
8
+ from aip_agents.utils.sse_chunk_transformer import SSEChunkTransformer as SSEChunkTransformer
9
+ from aip_agents.utils.step_limit_manager import StepExecutionContext as StepExecutionContext, StepLimitManager as StepLimitManager, _DELEGATION_CHAIN_CVAR as _DELEGATION_CHAIN_CVAR, _DELEGATION_DEPTH_CVAR as _DELEGATION_DEPTH_CVAR, _REMAINING_STEP_BUDGET_CVAR as _REMAINING_STEP_BUDGET_CVAR, _STEP_LIMIT_CONFIG_CVAR as _STEP_LIMIT_CONFIG_CVAR
10
+
11
+ __all__ = ['get_logger', 'LoggerManager', 'create_artifact_response', 'create_error_response', 'create_artifact_command', 'create_multiple_artifacts_command', 'create_text_artifact_response', 'validate_references', 'serialize_references_for_metadata', 'add_references_chunks', 'assemble_final_response', 'augment_query_with_file_paths', 'SSEChunkTransformer', 'StepExecutionContext', 'StepLimitManager', '_DELEGATION_CHAIN_CVAR', '_DELEGATION_DEPTH_CVAR', '_REMAINING_STEP_BUDGET_CVAR', '_STEP_LIMIT_CONFIG_CVAR', 'ToolPIIHandler', 'add_pii_mappings', 'extract_pii_mapping_from_agent_response']
@@ -0,0 +1,146 @@
1
+ from _typeshed import Incomplete
2
+ from a2a.types import AgentCard
3
+ from aip_agents.schema.a2a import A2AStreamEventType as A2AStreamEventType
4
+ from aip_agents.utils.event_handler_registry import DEFAULT_EVENT_HANDLER_REGISTRY as DEFAULT_EVENT_HANDLER_REGISTRY, EventHandlerRegistry as EventHandlerRegistry
5
+ from aip_agents.utils.final_response_builder import FinalResponseMetadataOptions as FinalResponseMetadataOptions, assemble_final_response as assemble_final_response
6
+ from aip_agents.utils.logger import get_logger as get_logger
7
+ from aip_agents.utils.metadata_helper import Kind as Kind, MetadataFieldKeys as MetadataFieldKeys, MetadataTimeTracker as MetadataTimeTracker, Status as Status, create_metadata as create_metadata, create_status_update_metadata as create_status_update_metadata, create_tool_processing_metadata as create_tool_processing_metadata
8
+ from aip_agents.utils.sse_chunk_transformer import SSEChunkTransformer as SSEChunkTransformer
9
+ from collections.abc import AsyncGenerator
10
+ from pydantic import BaseModel
11
+ from typing import Any
12
+
13
+ logger: Incomplete
14
+
15
+ class ArtifactInfo(BaseModel):
16
+ """Structured artifact information for A2A communication.
17
+
18
+ This Pydantic model provides type safety and validation for artifact data
19
+ exchanged between agents through the A2A protocol.
20
+ """
21
+ artifact_id: str | None
22
+ name: str | None
23
+ content_type: str | None
24
+ mime_type: str | None
25
+ file_name: str | None
26
+ has_file_data: bool
27
+ has_file_uri: bool
28
+ file_data: str | None
29
+ file_uri: str | None
30
+ description: str | None
31
+ parts: int | None
32
+
33
+ class StreamingConfig(BaseModel):
34
+ """Configuration for A2A streaming operations."""
35
+ http_kwargs: dict[str, Any] | None
36
+
37
+ class A2AConnector:
38
+ """Handles A2A protocol communication between agents.
39
+
40
+ This class provides methods for sending messages to other agents using the A2A protocol,
41
+ supporting both synchronous and asynchronous communication patterns, as well as streaming
42
+ responses with immediate artifact event handling.
43
+ """
44
+ FLOAT_EPSILON: float
45
+ event_registry: EventHandlerRegistry
46
+ @staticmethod
47
+ def send_to_agent(agent_card: AgentCard, message: str | dict[str, Any], **kwargs: Any) -> dict[str, Any]:
48
+ """Synchronously sends a message to another agent using the A2A protocol.
49
+
50
+ This method is a synchronous wrapper around asend_to_agent. It handles the creation
51
+ of an event loop if one doesn't exist, and manages the asynchronous call internally.
52
+
53
+ Args:
54
+ agent_card: The AgentCard instance containing the target agent's details including
55
+ URL, authentication requirements, and capabilities.
56
+ message: The message to send to the agent. Can be either a string for simple text
57
+ messages or a dictionary for structured data.
58
+ **kwargs: Additional keyword arguments passed to asend_to_agent.
59
+
60
+ Returns:
61
+ A dictionary containing the response details:
62
+ - status (str): 'success' or 'error'
63
+ - content (str): Extracted text content from the response
64
+ - task_id (str, optional): ID of the created/updated task
65
+ - task_state (str, optional): Current state of the task
66
+ - raw_response (str): Complete JSON response from the A2A client
67
+ - error_type (str, optional): Type of error if status is 'error'
68
+ - message (str, optional): Error message if status is 'error'
69
+
70
+ Raises:
71
+ RuntimeError: If asend_to_agent encounters an unhandled exception.
72
+ """
73
+ @staticmethod
74
+ async def asend_to_agent(agent_card: AgentCard, message: str | dict[str, Any], **kwargs: Any) -> dict[str, Any]:
75
+ '''Asynchronously sends a message to another agent using the A2A protocol.
76
+
77
+ This method uses the streaming approach internally but only returns the final response,
78
+ avoiding direct httpx usage that can cause issues with Nuitka compilation.
79
+
80
+ Args:
81
+ agent_card: The AgentCard instance containing the target agent\'s details including
82
+ URL, authentication requirements, and capabilities.
83
+ message: The message to send to the agent. Can be either a string for simple text
84
+ messages or a dictionary for structured data.
85
+ **kwargs: Additional keyword arguments.
86
+
87
+ Returns:
88
+ A dictionary containing the final response with the simplified structure:
89
+ - status (str): "success" or "error"
90
+ - task_state (str): Final A2A TaskState value
91
+ - content (str): Final text content from the agent
92
+ - task_id (str): ID of the associated task
93
+ - context_id (str): Context ID of the task
94
+ - final (bool): Always True for final responses
95
+ - artifacts (list): List of all artifacts created during execution
96
+
97
+ Raises:
98
+ Exception: If there\'s an error during message sending or processing.
99
+ '''
100
+ @staticmethod
101
+ async def astream_to_agent(agent_card: AgentCard, message: str | dict[str, Any], **kwargs: Any) -> AsyncGenerator[dict[str, Any], None]:
102
+ '''Asynchronously sends a streaming message to another agent using the A2A protocol.
103
+
104
+ This method supports streaming responses from the target agent, yielding chunks of
105
+ the response as they become available. It handles the official A2A streaming event
106
+ types as defined in the specification.
107
+
108
+ Args:
109
+ agent_card: The AgentCard instance containing the target agent\'s details including
110
+ URL, authentication requirements, and capabilities.
111
+ message: The message to send to the agent. Can be either a string for simple text
112
+ messages or a dictionary for structured data.
113
+ **kwargs: Additional keyword arguments.
114
+
115
+ Yields:
116
+ Dictionaries containing streaming response chunks with a simplified structure:
117
+
118
+ For successful responses:
119
+ - status (str): "success" or "error"
120
+ - task_state (str): A2A TaskState value
121
+ - content (str): Text content from the agent
122
+ - task_id (str): ID of the associated task
123
+ - context_id (str): Context ID of the task
124
+ - final (bool): Whether this is the final update
125
+ - artifacts (list, optional): List of artifacts created in this step
126
+
127
+ Each artifact in the artifacts list contains:
128
+ - artifact_id (str): ID of the artifact
129
+ - name (str): Name of the artifact
130
+ - content_type (str): "text" or "file"
131
+ - mime_type (str): MIME type of the artifact
132
+ - file_name (str, optional): Name of the file for file artifacts
133
+ - has_file_data (bool): Whether file data is included
134
+ - has_file_uri (bool): Whether file URI is included
135
+ - file_data (str, optional): Base64 encoded file content
136
+ - file_uri (str, optional): URI reference to the file
137
+
138
+ For errors:
139
+ - status (str): "error"
140
+ - error_type (str): Type of error encountered
141
+ - message (str): Error description
142
+
143
+ Raises:
144
+ httpx.HTTPError: If there\'s an HTTP-related error during the streaming request.
145
+ Exception: For any other unexpected errors during message streaming or processing.
146
+ '''