aip-agents-binary 0.5.22__py3-none-any.whl → 0.5.24__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (282) hide show
  1. aip_agents/examples/hello_world_langgraph_gl_connector_twitter.py +3 -2
  2. aip_agents/examples/hello_world_sentry.py +5 -6
  3. aip_agents/mcp/client/persistent_session.py +6 -3
  4. aip_agents/mcp/client/transports.py +15 -2
  5. aip_agents/sentry/sentry.py +6 -13
  6. aip_agents/tools/__init__.py +1 -1
  7. aip_agents/tools/code_sandbox/e2b_cloud_sandbox_extended.py +80 -31
  8. aip_agents/tools/code_sandbox/e2b_sandbox_tool.py +6 -6
  9. aip_agents/tools/constants.py +1 -3
  10. aip_agents/tools/gl_connector/tool.py +15 -42
  11. aip_agents/tools/gl_connector_tools.py +5 -8
  12. {aip_agents_binary-0.5.22.dist-info → aip_agents_binary-0.5.24.dist-info}/METADATA +3 -3
  13. aip_agents_binary-0.5.24.dist-info/RECORD +280 -0
  14. aip_agents/__init__.pyi +0 -19
  15. aip_agents/a2a/__init__.pyi +0 -3
  16. aip_agents/a2a/server/__init__.pyi +0 -4
  17. aip_agents/a2a/server/base_executor.pyi +0 -73
  18. aip_agents/a2a/server/google_adk_executor.pyi +0 -51
  19. aip_agents/a2a/server/langflow_executor.pyi +0 -43
  20. aip_agents/a2a/server/langgraph_executor.pyi +0 -47
  21. aip_agents/a2a/types.pyi +0 -132
  22. aip_agents/agent/__init__.pyi +0 -9
  23. aip_agents/agent/base_agent.pyi +0 -221
  24. aip_agents/agent/base_langgraph_agent.pyi +0 -232
  25. aip_agents/agent/google_adk_agent.pyi +0 -141
  26. aip_agents/agent/google_adk_constants.pyi +0 -3
  27. aip_agents/agent/hitl/__init__.pyi +0 -6
  28. aip_agents/agent/hitl/config.pyi +0 -15
  29. aip_agents/agent/hitl/langgraph_hitl_mixin.pyi +0 -42
  30. aip_agents/agent/hitl/manager.pyi +0 -200
  31. aip_agents/agent/hitl/models.pyi +0 -3
  32. aip_agents/agent/hitl/prompt/__init__.pyi +0 -4
  33. aip_agents/agent/hitl/prompt/base.pyi +0 -24
  34. aip_agents/agent/hitl/prompt/deferred.pyi +0 -30
  35. aip_agents/agent/hitl/registry.pyi +0 -101
  36. aip_agents/agent/interface.pyi +0 -81
  37. aip_agents/agent/interfaces.pyi +0 -44
  38. aip_agents/agent/langflow_agent.pyi +0 -133
  39. aip_agents/agent/langgraph_memory_enhancer_agent.pyi +0 -49
  40. aip_agents/agent/langgraph_react_agent.pyi +0 -126
  41. aip_agents/agent/system_instruction_context.pyi +0 -13
  42. aip_agents/clients/__init__.pyi +0 -4
  43. aip_agents/clients/langflow/__init__.pyi +0 -4
  44. aip_agents/clients/langflow/client.pyi +0 -140
  45. aip_agents/clients/langflow/types.pyi +0 -7
  46. aip_agents/constants.pyi +0 -7
  47. aip_agents/examples/__init__.pyi +0 -0
  48. aip_agents/examples/compare_streaming_client.pyi +0 -48
  49. aip_agents/examples/compare_streaming_server.pyi +0 -18
  50. aip_agents/examples/demo_memory_recall.pyi +0 -58
  51. aip_agents/examples/hello_world_a2a_google_adk_client.pyi +0 -9
  52. aip_agents/examples/hello_world_a2a_google_adk_client_agent.pyi +0 -9
  53. aip_agents/examples/hello_world_a2a_google_adk_client_streaming.pyi +0 -9
  54. aip_agents/examples/hello_world_a2a_google_adk_server.pyi +0 -15
  55. aip_agents/examples/hello_world_a2a_langchain_client.pyi +0 -5
  56. aip_agents/examples/hello_world_a2a_langchain_client_agent.pyi +0 -5
  57. aip_agents/examples/hello_world_a2a_langchain_client_lm_invoker.pyi +0 -5
  58. aip_agents/examples/hello_world_a2a_langchain_client_streaming.pyi +0 -5
  59. aip_agents/examples/hello_world_a2a_langchain_reference_client_streaming.pyi +0 -5
  60. aip_agents/examples/hello_world_a2a_langchain_reference_server.pyi +0 -15
  61. aip_agents/examples/hello_world_a2a_langchain_server.pyi +0 -15
  62. aip_agents/examples/hello_world_a2a_langchain_server_lm_invoker.pyi +0 -15
  63. aip_agents/examples/hello_world_a2a_langflow_client.pyi +0 -9
  64. aip_agents/examples/hello_world_a2a_langflow_server.pyi +0 -14
  65. aip_agents/examples/hello_world_a2a_langgraph_artifact_client.pyi +0 -5
  66. aip_agents/examples/hello_world_a2a_langgraph_artifact_client_streaming.pyi +0 -5
  67. aip_agents/examples/hello_world_a2a_langgraph_artifact_server.pyi +0 -16
  68. aip_agents/examples/hello_world_a2a_langgraph_client.pyi +0 -9
  69. aip_agents/examples/hello_world_a2a_langgraph_client_agent.pyi +0 -9
  70. aip_agents/examples/hello_world_a2a_langgraph_client_agent_lm_invoker.pyi +0 -2
  71. aip_agents/examples/hello_world_a2a_langgraph_client_streaming.pyi +0 -9
  72. aip_agents/examples/hello_world_a2a_langgraph_client_streaming_lm_invoker.pyi +0 -5
  73. aip_agents/examples/hello_world_a2a_langgraph_client_streaming_tool_streaming.pyi +0 -5
  74. aip_agents/examples/hello_world_a2a_langgraph_server.pyi +0 -14
  75. aip_agents/examples/hello_world_a2a_langgraph_server_lm_invoker.pyi +0 -15
  76. aip_agents/examples/hello_world_a2a_langgraph_server_tool_streaming.pyi +0 -15
  77. aip_agents/examples/hello_world_a2a_mcp_langgraph.pyi +0 -48
  78. aip_agents/examples/hello_world_a2a_three_level_agent_hierarchy_client.pyi +0 -48
  79. aip_agents/examples/hello_world_a2a_three_level_agent_hierarchy_server.pyi +0 -45
  80. aip_agents/examples/hello_world_a2a_with_metadata_langchain_client.pyi +0 -5
  81. aip_agents/examples/hello_world_a2a_with_metadata_langchain_server_lm_invoker.pyi +0 -15
  82. aip_agents/examples/hello_world_google_adk.pyi +0 -5
  83. aip_agents/examples/hello_world_google_adk_mcp_http.pyi +0 -5
  84. aip_agents/examples/hello_world_google_adk_mcp_http_stream.pyi +0 -5
  85. aip_agents/examples/hello_world_google_adk_mcp_sse.pyi +0 -5
  86. aip_agents/examples/hello_world_google_adk_mcp_sse_stream.pyi +0 -5
  87. aip_agents/examples/hello_world_google_adk_mcp_stdio.pyi +0 -5
  88. aip_agents/examples/hello_world_google_adk_mcp_stdio_stream.pyi +0 -5
  89. aip_agents/examples/hello_world_google_adk_stream.pyi +0 -5
  90. aip_agents/examples/hello_world_langchain.pyi +0 -5
  91. aip_agents/examples/hello_world_langchain_lm_invoker.pyi +0 -2
  92. aip_agents/examples/hello_world_langchain_mcp_http.pyi +0 -5
  93. aip_agents/examples/hello_world_langchain_mcp_http_interactive.pyi +0 -16
  94. aip_agents/examples/hello_world_langchain_mcp_http_stream.pyi +0 -5
  95. aip_agents/examples/hello_world_langchain_mcp_multi_server.pyi +0 -18
  96. aip_agents/examples/hello_world_langchain_mcp_sse.pyi +0 -5
  97. aip_agents/examples/hello_world_langchain_mcp_sse_stream.pyi +0 -5
  98. aip_agents/examples/hello_world_langchain_mcp_stdio.pyi +0 -5
  99. aip_agents/examples/hello_world_langchain_mcp_stdio_stream.pyi +0 -5
  100. aip_agents/examples/hello_world_langchain_stream.pyi +0 -5
  101. aip_agents/examples/hello_world_langchain_stream_lm_invoker.pyi +0 -5
  102. aip_agents/examples/hello_world_langflow_agent.pyi +0 -35
  103. aip_agents/examples/hello_world_langgraph.pyi +0 -5
  104. aip_agents/examples/hello_world_langgraph_gl_connector_twitter.pyi +0 -5
  105. aip_agents/examples/hello_world_langgraph_mcp_http.pyi +0 -5
  106. aip_agents/examples/hello_world_langgraph_mcp_http_stream.pyi +0 -5
  107. aip_agents/examples/hello_world_langgraph_mcp_sse.pyi +0 -5
  108. aip_agents/examples/hello_world_langgraph_mcp_sse_stream.pyi +0 -5
  109. aip_agents/examples/hello_world_langgraph_mcp_stdio.pyi +0 -5
  110. aip_agents/examples/hello_world_langgraph_mcp_stdio_stream.pyi +0 -5
  111. aip_agents/examples/hello_world_langgraph_stream.pyi +0 -5
  112. aip_agents/examples/hello_world_langgraph_stream_lm_invoker.pyi +0 -5
  113. aip_agents/examples/hello_world_model_switch_cli.pyi +0 -30
  114. aip_agents/examples/hello_world_multi_agent_adk.pyi +0 -6
  115. aip_agents/examples/hello_world_multi_agent_langchain.pyi +0 -5
  116. aip_agents/examples/hello_world_multi_agent_langgraph.pyi +0 -5
  117. aip_agents/examples/hello_world_multi_agent_langgraph_lm_invoker.pyi +0 -5
  118. aip_agents/examples/hello_world_pii_logger.pyi +0 -5
  119. aip_agents/examples/hello_world_sentry.pyi +0 -21
  120. aip_agents/examples/hello_world_step_limits.pyi +0 -17
  121. aip_agents/examples/hello_world_stock_a2a_server.pyi +0 -17
  122. aip_agents/examples/hello_world_tool_output_client.pyi +0 -5
  123. aip_agents/examples/hello_world_tool_output_server.pyi +0 -19
  124. aip_agents/examples/hitl_demo.pyi +0 -67
  125. aip_agents/examples/pii_demo_langgraph_client.pyi +0 -5
  126. aip_agents/examples/pii_demo_langgraph_server.pyi +0 -20
  127. aip_agents/examples/pii_demo_multi_agent_client.pyi +0 -5
  128. aip_agents/examples/pii_demo_multi_agent_server.pyi +0 -40
  129. aip_agents/examples/todolist_planning_a2a_langchain_client.pyi +0 -5
  130. aip_agents/examples/todolist_planning_a2a_langgraph_server.pyi +0 -19
  131. aip_agents/examples/tools/__init__.pyi +0 -9
  132. aip_agents/examples/tools/adk_arithmetic_tools.pyi +0 -24
  133. aip_agents/examples/tools/adk_weather_tool.pyi +0 -18
  134. aip_agents/examples/tools/data_generator_tool.pyi +0 -15
  135. aip_agents/examples/tools/data_visualization_tool.pyi +0 -19
  136. aip_agents/examples/tools/image_artifact_tool.pyi +0 -26
  137. aip_agents/examples/tools/langchain_arithmetic_tools.pyi +0 -17
  138. aip_agents/examples/tools/langchain_currency_exchange_tool.pyi +0 -20
  139. aip_agents/examples/tools/langchain_graph_artifact_tool.pyi +0 -25
  140. aip_agents/examples/tools/langchain_weather_tool.pyi +0 -19
  141. aip_agents/examples/tools/langgraph_streaming_tool.pyi +0 -43
  142. aip_agents/examples/tools/mock_retrieval_tool.pyi +0 -13
  143. aip_agents/examples/tools/pii_demo_tools.pyi +0 -54
  144. aip_agents/examples/tools/random_chart_tool.pyi +0 -20
  145. aip_agents/examples/tools/serper_tool.pyi +0 -16
  146. aip_agents/examples/tools/stock_tools.pyi +0 -36
  147. aip_agents/examples/tools/table_generator_tool.pyi +0 -22
  148. aip_agents/examples/tools/time_tool.pyi +0 -15
  149. aip_agents/examples/tools/weather_forecast_tool.pyi +0 -14
  150. aip_agents/mcp/__init__.pyi +0 -0
  151. aip_agents/mcp/client/__init__.pyi +0 -5
  152. aip_agents/mcp/client/base_mcp_client.pyi +0 -148
  153. aip_agents/mcp/client/connection_manager.pyi +0 -48
  154. aip_agents/mcp/client/google_adk/__init__.pyi +0 -3
  155. aip_agents/mcp/client/google_adk/client.pyi +0 -75
  156. aip_agents/mcp/client/langchain/__init__.pyi +0 -3
  157. aip_agents/mcp/client/langchain/client.pyi +0 -48
  158. aip_agents/mcp/client/persistent_session.pyi +0 -113
  159. aip_agents/mcp/client/session_pool.pyi +0 -101
  160. aip_agents/mcp/client/transports.pyi +0 -123
  161. aip_agents/mcp/utils/__init__.pyi +0 -0
  162. aip_agents/mcp/utils/config_validator.pyi +0 -82
  163. aip_agents/memory/__init__.pyi +0 -5
  164. aip_agents/memory/adapters/__init__.pyi +0 -4
  165. aip_agents/memory/adapters/base_adapter.pyi +0 -150
  166. aip_agents/memory/adapters/mem0.pyi +0 -22
  167. aip_agents/memory/base.pyi +0 -60
  168. aip_agents/memory/constants.pyi +0 -25
  169. aip_agents/memory/factory.pyi +0 -24
  170. aip_agents/memory/guidance.pyi +0 -3
  171. aip_agents/memory/simple_memory.pyi +0 -23
  172. aip_agents/middleware/__init__.pyi +0 -5
  173. aip_agents/middleware/base.pyi +0 -71
  174. aip_agents/middleware/manager.pyi +0 -80
  175. aip_agents/middleware/todolist.pyi +0 -125
  176. aip_agents/schema/__init__.pyi +0 -9
  177. aip_agents/schema/a2a.pyi +0 -40
  178. aip_agents/schema/agent.pyi +0 -65
  179. aip_agents/schema/hitl.pyi +0 -89
  180. aip_agents/schema/langgraph.pyi +0 -28
  181. aip_agents/schema/model_id.pyi +0 -54
  182. aip_agents/schema/step_limit.pyi +0 -63
  183. aip_agents/schema/storage.pyi +0 -21
  184. aip_agents/sentry/__init__.pyi +0 -3
  185. aip_agents/sentry/sentry.pyi +0 -48
  186. aip_agents/storage/__init__.pyi +0 -8
  187. aip_agents/storage/base.pyi +0 -58
  188. aip_agents/storage/clients/__init__.pyi +0 -3
  189. aip_agents/storage/clients/minio_client.pyi +0 -137
  190. aip_agents/storage/config.pyi +0 -29
  191. aip_agents/storage/providers/__init__.pyi +0 -5
  192. aip_agents/storage/providers/base.pyi +0 -88
  193. aip_agents/storage/providers/memory.pyi +0 -79
  194. aip_agents/storage/providers/object_storage.pyi +0 -98
  195. aip_agents/tools/__init__.pyi +0 -9
  196. aip_agents/tools/browser_use/__init__.pyi +0 -14
  197. aip_agents/tools/browser_use/action_parser.pyi +0 -18
  198. aip_agents/tools/browser_use/browser_use_tool.pyi +0 -50
  199. aip_agents/tools/browser_use/llm_config.pyi +0 -52
  200. aip_agents/tools/browser_use/minio_storage.pyi +0 -109
  201. aip_agents/tools/browser_use/schemas.pyi +0 -32
  202. aip_agents/tools/browser_use/session.pyi +0 -4
  203. aip_agents/tools/browser_use/session_errors.pyi +0 -53
  204. aip_agents/tools/browser_use/steel_session_recording.pyi +0 -63
  205. aip_agents/tools/browser_use/streaming.pyi +0 -81
  206. aip_agents/tools/browser_use/structured_data_parser.pyi +0 -86
  207. aip_agents/tools/browser_use/structured_data_recovery.pyi +0 -43
  208. aip_agents/tools/browser_use/types.pyi +0 -45
  209. aip_agents/tools/code_sandbox/__init__.pyi +0 -3
  210. aip_agents/tools/code_sandbox/constant.pyi +0 -4
  211. aip_agents/tools/code_sandbox/e2b_cloud_sandbox_extended.pyi +0 -86
  212. aip_agents/tools/code_sandbox/e2b_sandbox_tool.pyi +0 -29
  213. aip_agents/tools/constants.pyi +0 -138
  214. aip_agents/tools/document_loader/__init__.pyi +0 -7
  215. aip_agents/tools/document_loader/base_reader.pyi +0 -75
  216. aip_agents/tools/document_loader/docx_reader_tool.pyi +0 -10
  217. aip_agents/tools/document_loader/excel_reader_tool.pyi +0 -26
  218. aip_agents/tools/document_loader/pdf_reader_tool.pyi +0 -11
  219. aip_agents/tools/document_loader/pdf_splitter.pyi +0 -18
  220. aip_agents/tools/gl_connector/__init__.pyi +0 -3
  221. aip_agents/tools/gl_connector/tool.pyi +0 -74
  222. aip_agents/tools/gl_connector_tools.pyi +0 -39
  223. aip_agents/tools/memory_search/__init__.pyi +0 -5
  224. aip_agents/tools/memory_search/base.pyi +0 -69
  225. aip_agents/tools/memory_search/mem0.pyi +0 -19
  226. aip_agents/tools/memory_search/schema.pyi +0 -15
  227. aip_agents/tools/memory_search_tool.pyi +0 -3
  228. aip_agents/tools/time_tool.pyi +0 -16
  229. aip_agents/tools/tool_config_injector.pyi +0 -26
  230. aip_agents/tools/web_search/__init__.pyi +0 -3
  231. aip_agents/tools/web_search/serper_tool.pyi +0 -19
  232. aip_agents/types/__init__.pyi +0 -36
  233. aip_agents/types/a2a_events.pyi +0 -3
  234. aip_agents/utils/__init__.pyi +0 -11
  235. aip_agents/utils/a2a_connector.pyi +0 -146
  236. aip_agents/utils/artifact_helpers.pyi +0 -203
  237. aip_agents/utils/constants.pyi +0 -10
  238. aip_agents/utils/datetime/__init__.pyi +0 -4
  239. aip_agents/utils/datetime/normalization.pyi +0 -95
  240. aip_agents/utils/datetime/timezone.pyi +0 -48
  241. aip_agents/utils/env_loader.pyi +0 -10
  242. aip_agents/utils/event_handler_registry.pyi +0 -23
  243. aip_agents/utils/file_prompt_utils.pyi +0 -21
  244. aip_agents/utils/final_response_builder.pyi +0 -34
  245. aip_agents/utils/formatter_llm_client.pyi +0 -71
  246. aip_agents/utils/langgraph/__init__.pyi +0 -3
  247. aip_agents/utils/langgraph/converter.pyi +0 -49
  248. aip_agents/utils/langgraph/tool_managers/__init__.pyi +0 -5
  249. aip_agents/utils/langgraph/tool_managers/a2a_tool_manager.pyi +0 -35
  250. aip_agents/utils/langgraph/tool_managers/base_tool_manager.pyi +0 -48
  251. aip_agents/utils/langgraph/tool_managers/delegation_tool_manager.pyi +0 -56
  252. aip_agents/utils/langgraph/tool_output_management.pyi +0 -292
  253. aip_agents/utils/logger.pyi +0 -60
  254. aip_agents/utils/metadata/__init__.pyi +0 -5
  255. aip_agents/utils/metadata/activity_metadata_helper.pyi +0 -25
  256. aip_agents/utils/metadata/activity_narrative/__init__.pyi +0 -7
  257. aip_agents/utils/metadata/activity_narrative/builder.pyi +0 -35
  258. aip_agents/utils/metadata/activity_narrative/constants.pyi +0 -10
  259. aip_agents/utils/metadata/activity_narrative/context.pyi +0 -32
  260. aip_agents/utils/metadata/activity_narrative/formatters.pyi +0 -48
  261. aip_agents/utils/metadata/activity_narrative/utils.pyi +0 -12
  262. aip_agents/utils/metadata/schemas/__init__.pyi +0 -4
  263. aip_agents/utils/metadata/schemas/activity_schema.pyi +0 -18
  264. aip_agents/utils/metadata/schemas/thinking_schema.pyi +0 -20
  265. aip_agents/utils/metadata/thinking_metadata_helper.pyi +0 -4
  266. aip_agents/utils/metadata_helper.pyi +0 -117
  267. aip_agents/utils/name_preprocessor/__init__.pyi +0 -6
  268. aip_agents/utils/name_preprocessor/base_name_preprocessor.pyi +0 -52
  269. aip_agents/utils/name_preprocessor/google_name_preprocessor.pyi +0 -38
  270. aip_agents/utils/name_preprocessor/name_preprocessor.pyi +0 -41
  271. aip_agents/utils/name_preprocessor/openai_name_preprocessor.pyi +0 -34
  272. aip_agents/utils/pii/__init__.pyi +0 -5
  273. aip_agents/utils/pii/pii_handler.pyi +0 -96
  274. aip_agents/utils/pii/pii_helper.pyi +0 -78
  275. aip_agents/utils/pii/uuid_deanonymizer_mapping.pyi +0 -73
  276. aip_agents/utils/reference_helper.pyi +0 -81
  277. aip_agents/utils/sse_chunk_transformer.pyi +0 -166
  278. aip_agents/utils/step_limit_manager.pyi +0 -112
  279. aip_agents/utils/token_usage_helper.pyi +0 -60
  280. aip_agents_binary-0.5.22.dist-info/RECORD +0 -546
  281. {aip_agents_binary-0.5.22.dist-info → aip_agents_binary-0.5.24.dist-info}/WHEEL +0 -0
  282. {aip_agents_binary-0.5.22.dist-info → aip_agents_binary-0.5.24.dist-info}/top_level.txt +0 -0
@@ -1,25 +0,0 @@
1
- from aip_agents.a2a.types import MimeType as MimeType
2
- from aip_agents.utils.artifact_helpers import create_artifact_command as create_artifact_command
3
- from langchain_core.tools import BaseTool
4
- from pydantic import BaseModel
5
-
6
- PIL_AVAILABLE: bool
7
-
8
- class GraphCommandInput(BaseModel):
9
- """Input schema for a tiny bar/line chart artifact tool.
10
-
11
- Note: width/height are clamped to a small size to keep artifacts lightweight.
12
- """
13
- chart_type: str
14
- labels: list[str]
15
- values: list[float]
16
- title: str
17
- width: int
18
- height: int
19
- image_name: str
20
-
21
- class GraphArtifactCommandTool(BaseTool):
22
- """Generate a very small PNG chart and return it as a Command artifact."""
23
- name: str
24
- description: str
25
- args_schema: type[BaseModel]
@@ -1,19 +0,0 @@
1
- from _typeshed import Incomplete
2
- from aip_agents.utils.logger import get_logger as get_logger
3
- from pydantic import BaseModel
4
-
5
- logger: Incomplete
6
-
7
- class WeatherToolInputSchema(BaseModel):
8
- """Schema for weather tool input."""
9
- city: str
10
-
11
- def weather_tool(city: str) -> str:
12
- """Gets the weather for a specified city.
13
-
14
- Args:
15
- city: The name of the city to get weather for.
16
-
17
- Returns:
18
- A string describing the weather conditions.
19
- """
@@ -1,43 +0,0 @@
1
- from aip_agents.agent.langgraph_react_agent import LangGraphReactAgent as LangGraphReactAgent
2
- from aip_agents.examples.tools.langchain_weather_tool import weather_tool as weather_tool
3
- from aip_agents.examples.tools.time_tool import TimeTool as TimeTool
4
- from langchain_core.runnables import RunnableConfig
5
- from langchain_core.tools import BaseTool
6
- from pydantic import BaseModel
7
- from typing import Any
8
-
9
- class StreamingToolConfig(BaseModel):
10
- """Tool configuration schema for the LangGraph streaming tool."""
11
- time_format: str
12
-
13
- class LangGraphStreamingToolInput(BaseModel):
14
- """Input schema for the LangGraphStreamingTool."""
15
- query: str
16
-
17
- class LangGraphStreamingTool(BaseTool):
18
- """Tool that wraps a LangGraph agent with time and weather forecast capabilities."""
19
- name: str
20
- description: str
21
- args_schema: type[BaseModel]
22
- tool_config_schema: type[BaseModel]
23
- def __init__(self, model: Any = None, **kwargs) -> None:
24
- """Initialize the LangGraphStreamingTool.
25
-
26
- Args:
27
- model: The model to use for the agent.
28
- **kwargs: Additional keyword arguments.
29
- """
30
- @property
31
- def agent(self):
32
- """Access the internal agent."""
33
- async def arun_streaming(self, query: str = None, config: RunnableConfig = None, **kwargs):
34
- """Execute the LangGraph agent asynchronously with A2A streaming output.
35
-
36
- Args:
37
- query: The query to execute.
38
- config: Tool configuration containing user context and preferences.
39
- **kwargs: Additional keyword arguments.
40
-
41
- Returns:
42
- An async generator that yields streaming events.
43
- """
@@ -1,13 +0,0 @@
1
- from langchain_core.tools import BaseTool
2
- from pydantic import BaseModel
3
-
4
- class MockRetrievalInput(BaseModel):
5
- """Input schema for the MockRetrievalTool."""
6
- query: str
7
-
8
- class MockRetrievalTool(BaseTool):
9
- """Mock tool that returns hardcoded references for testing."""
10
- name: str
11
- description: str
12
- args_schema: type[BaseModel]
13
- save_output_history: bool
@@ -1,54 +0,0 @@
1
- from _typeshed import Incomplete
2
- from aip_agents.utils.logger import LoggerManager as LoggerManager
3
- from pydantic import BaseModel
4
-
5
- logger: Incomplete
6
-
7
- class CustomerIdSchema(BaseModel):
8
- """Schema for customer ID input."""
9
- customer_id: str
10
-
11
- class EmployeeIdSchema(BaseModel):
12
- """Schema for employee ID input."""
13
- employee_id: str
14
-
15
- class UserIdSchema(BaseModel):
16
- """Schema for user ID input."""
17
- user_id: str
18
-
19
- def get_customer_info(customer_id: str) -> str:
20
- """Gets customer information including email and phone number.
21
-
22
- This tool demonstrates PII handling by returning sensitive customer data
23
- that will be automatically anonymized by the PII handler.
24
-
25
- Args:
26
- customer_id: The ID of the customer to retrieve information for.
27
-
28
- Returns:
29
- A string containing customer information with PII.
30
- """
31
- def get_employee_data(employee_id: str) -> str:
32
- """Gets employee data including name, email, and salary information.
33
-
34
- This tool demonstrates PII handling with employee-specific data that includes
35
- sensitive information like salary and personal email addresses.
36
-
37
- Args:
38
- employee_id: The ID of the employee to retrieve data for.
39
-
40
- Returns:
41
- A string containing employee information with PII.
42
- """
43
- def get_user_profile(user_id: str) -> str:
44
- """Gets user profile information with personal details.
45
-
46
- This tool demonstrates PII handling with user profile data that includes
47
- personal information like email, phone, and date of birth.
48
-
49
- Args:
50
- user_id: The ID of the user to retrieve profile for.
51
-
52
- Returns:
53
- A string containing user profile information with PII.
54
- """
@@ -1,20 +0,0 @@
1
- from aip_agents.a2a.types import MimeType as MimeType
2
- from aip_agents.utils.artifact_helpers import create_artifact_command as create_artifact_command
3
- from langchain_core.tools import BaseTool
4
- from pydantic import BaseModel
5
-
6
- DEFAULT_RANDOM_CHART_TITLE: str
7
- PIL_AVAILABLE: bool
8
-
9
- class RandomChartInput(BaseModel):
10
- """Input schema for random chart generation."""
11
- title: str
12
- num_bars: int
13
- min_value: int
14
- max_value: int
15
-
16
- class RandomChartTool(BaseTool):
17
- """Generate random bar chart images without relying on upstream data."""
18
- name: str
19
- description: str
20
- args_schema: type[BaseModel]
@@ -1,16 +0,0 @@
1
- from _typeshed import Incomplete
2
- from langchain_core.tools import BaseTool
3
- from pydantic import BaseModel
4
-
5
- logger: Incomplete
6
-
7
- class GoogleSerperInput(BaseModel):
8
- """Input schema for the GoogleSerperTool."""
9
- query: str
10
-
11
- class MockGoogleSerperTool(BaseTool):
12
- """Mock Tool to simulate Google Serper API results for testing."""
13
- name: str
14
- description: str
15
- save_output_history: bool
16
- args_schema: type[BaseModel]
@@ -1,36 +0,0 @@
1
- from _typeshed import Incomplete
2
- from aip_agents.utils.logger import get_logger as get_logger
3
- from pydantic import BaseModel
4
- from typing import Any
5
-
6
- logger: Incomplete
7
-
8
- class StockPriceInput(BaseModel):
9
- """Input for the stock price tool."""
10
- symbol: str
11
-
12
- def get_stock_price(symbol: str) -> dict[str, Any]:
13
- """Get current stock price and performance data for a given symbol.
14
-
15
- Args:
16
- symbol (str): The stock symbol (e.g., AAPL, MSFT) to get the price for.
17
-
18
- Returns:
19
- dict[str, Any]: Dictionary containing stock price and performance data.
20
- """
21
-
22
- class StockNewsInput(BaseModel):
23
- """Input for the stock news tool."""
24
- symbol: str
25
- days: int
26
-
27
- def get_stock_news(symbol: str, days: int = 7) -> dict[str, Any]:
28
- """Get recent news for a stock for a specified number of days.
29
-
30
- Args:
31
- symbol (str): The stock symbol (e.g., AAPL, MSFT) to get news for.
32
- days (int, optional): Number of days of news to retrieve. Defaults to 7.
33
-
34
- Returns:
35
- dict[str, Any]: Dictionary containing stock news data.
36
- """
@@ -1,22 +0,0 @@
1
- from aip_agents.a2a.types import MimeType as MimeType
2
- from aip_agents.utils.artifact_helpers import create_artifact_response as create_artifact_response
3
- from langchain_core.tools import BaseTool
4
- from pydantic import BaseModel
5
-
6
- class TableGeneratorInput(BaseModel):
7
- """Input schema for table generator tool."""
8
- rows: int
9
- columns: list[str]
10
- table_name: str
11
-
12
- class TableGeneratorTool(BaseTool):
13
- """Tool that generates sample data tables with artifact support.
14
-
15
- This tool demonstrates the standardized artifact format by:
16
- 1. Generating sample data
17
- 2. Creating a markdown table for the agent's context
18
- 3. Creating a CSV file artifact for the user
19
- """
20
- name: str
21
- description: str
22
- args_schema: type[BaseModel]
@@ -1,15 +0,0 @@
1
- from langchain_core.tools import BaseTool
2
- from pydantic import BaseModel
3
-
4
- FORMAT_STRING: str
5
-
6
- class TimeToolInput(BaseModel):
7
- """Input schema for the TimeTool."""
8
- datetime_format: str
9
-
10
- class TimeTool(BaseTool):
11
- """Tool to get the current time."""
12
- name: str
13
- description: str
14
- save_output_history: bool
15
- args_schema: type[BaseModel]
@@ -1,14 +0,0 @@
1
- from _typeshed import Incomplete
2
-
3
- DAILY_WEATHER: Incomplete
4
- DayOfWeek: Incomplete
5
-
6
- def get_weather_forecast(day: DayOfWeek) -> str:
7
- """Get the weather forecast for a specific day of the week.
8
-
9
- Args:
10
- day: The day of the week (monday, tuesday, wednesday, etc.)
11
-
12
- Returns:
13
- str: A weather forecast message including conditions and temperature.
14
- """
File without changes
@@ -1,5 +0,0 @@
1
- from aip_agents.mcp.client.base_mcp_client import BaseMCPClient as BaseMCPClient
2
- from aip_agents.mcp.client.google_adk.client import GoogleADKMCPClient as GoogleADKMCPClient
3
- from aip_agents.mcp.client.langchain.client import LangchainMCPClient as LangchainMCPClient
4
-
5
- __all__ = ['GoogleADKMCPClient', 'LangchainMCPClient', 'BaseMCPClient']
@@ -1,148 +0,0 @@
1
- from _typeshed import Incomplete
2
- from abc import ABC, abstractmethod
3
- from aip_agents.mcp.client.persistent_session import PersistentMCPSession as PersistentMCPSession
4
- from aip_agents.mcp.client.session_pool import MCPSessionPool as MCPSessionPool
5
- from aip_agents.utils.logger import get_logger as get_logger
6
- from gllm_tools.mcp.client.client import MCPClient
7
- from gllm_tools.mcp.client.config import MCPConfiguration as MCPConfiguration
8
- from mcp.types import CallToolResult, Tool as Tool
9
- from typing import Any
10
-
11
- logger: Incomplete
12
-
13
- class BaseMCPClient(MCPClient, ABC):
14
- """Base MCP Client with persistent session management for aip-agents.
15
-
16
- This class provides:
17
- - Persistent session management across tool calls
18
- - One-time tool registration and caching
19
- - Automatic connection health monitoring and reconnection
20
- - Centralized cleanup of all MCP resources
21
- - Generic tool discovery from all configured MCP servers
22
-
23
- Subclasses should implement SDK-specific tool conversion in _process_tool() method.
24
- """
25
- session_pool: Incomplete
26
- def __init__(self, servers: dict[str, MCPConfiguration]) -> None:
27
- """Initialize the base MCP client with session pool.
28
-
29
- Args:
30
- servers (dict[str, MCPConfiguration]): Dictionary of MCP server configurations by server name
31
- """
32
- async def initialize(self) -> None:
33
- """Initialize all MCP sessions and cache tools once.
34
-
35
- This method is idempotent and only performs initialization if not already done.
36
- It establishes persistent connections to all configured MCP servers and caches
37
- available tools for efficient access.
38
-
39
- Raises:
40
- Exception: If any session initialization fails
41
- """
42
- @abstractmethod
43
- async def get_tools(self, server: str | None = None) -> list[Any]:
44
- """Get framework-specific tools from MCP servers.
45
-
46
- This method must be implemented by subclasses to provide framework-specific
47
- tool conversion (e.g., StructuredTool for LangChain, FunctionTool for Google ADK).
48
-
49
- Args:
50
- server (str | None): Optional server name to filter tools from a specific server.
51
- If None, returns tools from all configured servers.
52
-
53
- Returns:
54
- list[Any]: List of framework-specific tool objects.
55
- """
56
- async def get_raw_mcp_tools(self, server: str | None = None) -> list[Tool]:
57
- """Get raw MCP tools - for subclasses to perform framework-specific conversions.
58
-
59
- This method provides access to the cached raw MCP Tool objects.
60
- Subclasses use this to convert to framework-specific tools.
61
-
62
- Args:
63
- server (str | None): Optional server name to filter tools from a specific server.
64
- If None, returns tools from all configured servers.
65
-
66
- Returns:
67
- list[Tool]: List of raw MCP Tool objects. Empty list if not initialized or no tools available.
68
- """
69
- def get_tools_count(self, server: str | None = None) -> int:
70
- """Get count of raw MCP tools without expensive copying.
71
-
72
- This is an efficient way to get tool counts for logging/metrics
73
- without the overhead of copying tool lists.
74
-
75
- Args:
76
- server (str | None): Optional server name to filter tools from a specific server.
77
- If None, returns count from all configured servers.
78
-
79
- Returns:
80
- int: Count of raw MCP tools available.
81
- """
82
- async def get_session(self, server_name: str) -> PersistentMCPSession:
83
- """Get a persistent session for a specific server.
84
-
85
- Args:
86
- server_name (str): The name of the MCP server
87
-
88
- Returns:
89
- PersistentMCPSession: Persistent MCP session for the specified server
90
-
91
- Raises:
92
- KeyError: If the server is not configured or no active session exists
93
- """
94
- async def call_tool(self, server_name: str, tool_name: str, arguments: dict[str, Any]) -> CallToolResult:
95
- """Execute a tool on a specific MCP server using persistent session.
96
-
97
- Args:
98
- server_name (str): The MCP server to execute the tool on
99
- tool_name (str): The name of the tool to execute
100
- arguments (dict[str, Any]): Arguments for the tool execution
101
-
102
- Returns:
103
- CallToolResult: The result of the tool execution
104
-
105
- Raises:
106
- KeyError: If the server doesn't exist
107
- Exception: If tool execution fails
108
- """
109
- async def read_resource(self, server_name: str, resource_uri: str):
110
- """Read an MCP resource from a specific server using persistent session.
111
-
112
- Args:
113
- server_name (str): The MCP server to read the resource from
114
- resource_uri (str): The URI of the resource to read
115
-
116
- Returns:
117
- Any: The resource content
118
-
119
- Raises:
120
- KeyError: If the server doesn't exist
121
- Exception: If resource reading fails
122
- """
123
- async def cleanup(self) -> None:
124
- """Clean up all MCP resources and close sessions.
125
-
126
- This method properly closes all persistent sessions and cleans up resources.
127
- It can be called multiple times safely.
128
- """
129
- @property
130
- def is_initialized(self) -> bool:
131
- """Check if the client is fully initialized.
132
-
133
- Returns:
134
- bool: True if sessions are initialized and tools are cached, False otherwise
135
- """
136
- @property
137
- def active_sessions(self) -> dict[str, PersistentMCPSession]:
138
- """Get all active persistent sessions.
139
-
140
- Returns:
141
- dict[str, PersistentMCPSession]: Dictionary of active sessions by server name
142
- """
143
- def get_session_count(self) -> int:
144
- """Get the number of active MCP sessions.
145
-
146
- Returns:
147
- Number of active persistent sessions
148
- """
@@ -1,48 +0,0 @@
1
- from _typeshed import Incomplete
2
- from aip_agents.mcp.client.transports import TransportType as TransportType, create_transport as create_transport
3
- from aip_agents.utils.logger import get_logger as get_logger
4
- from gllm_tools.mcp.client.config import MCPConfiguration
5
- from typing import Any
6
-
7
- logger: Incomplete
8
-
9
- class MCPConnectionManager:
10
- """Manages MCP connection lifecycle following mcp-use patterns.
11
-
12
- This connection manager handles the transport connection lifecycle in a background
13
- task to avoid cancel scope issues during cleanup. It supports automatic transport
14
- negotiation (HTTP -> SSE fallback) and graceful shutdown. Invalid explicit transports
15
- are normalized via aliases (e.g., 'streamable_http' -> 'http') or fall back to
16
- auto-detection with a warning.
17
- """
18
- TRANSPORT_ALIASES: Incomplete
19
- server_name: Incomplete
20
- config: Incomplete
21
- transport_type: Incomplete
22
- max_retries: Incomplete
23
- initial_retry_delay: Incomplete
24
- def __init__(self, server_name: str, config: MCPConfiguration) -> None:
25
- """Initialize connection manager.
26
-
27
- Args:
28
- server_name (str): Name of the MCP server
29
- config (MCPConfiguration): MCP server configuration
30
- """
31
- async def start(self) -> tuple[Any, Any]:
32
- """Start connection in background task.
33
-
34
- Returns:
35
- tuple[Any, Any]: Tuple of (read_stream, write_stream) for ClientSession
36
-
37
- Raises:
38
- Exception: If connection establishment fails
39
- """
40
- async def stop(self) -> None:
41
- """Stop connection gracefully."""
42
- @property
43
- def is_connected(self) -> bool:
44
- """Check if connection is active.
45
-
46
- Returns:
47
- bool: True if connected, False otherwise
48
- """
@@ -1,3 +0,0 @@
1
- from aip_agents.mcp.client.google_adk.client import GoogleADKMCPClient as GoogleADKMCPClient
2
-
3
- __all__ = ['GoogleADKMCPClient']
@@ -1,75 +0,0 @@
1
- from _typeshed import Incomplete
2
- from aip_agents.mcp.client.base_mcp_client import BaseMCPClient as BaseMCPClient
3
- from aip_agents.utils.logger import get_logger as get_logger
4
- from gllm_tools.mcp.client.config import MCPConfiguration as MCPConfiguration
5
- from google.adk.tools import FunctionTool
6
- from mcp.types import EmbeddedResource, ImageContent
7
-
8
- NonTextContent = ImageContent | EmbeddedResource
9
- logger: Incomplete
10
-
11
- class GoogleADKMCPClient(BaseMCPClient):
12
- '''Google ADK MCP Client with Persistent Sessions.
13
-
14
- This client extends BaseMCPClient to provide Google ADK-specific tool conversion
15
- while maintaining persistent MCP sessions and connection reuse across tool calls.
16
- It converts MCP tools into ADK FunctionTool instances for seamless integration.
17
-
18
- The client handles:
19
- - Converting MCP tools to ADK FunctionTool instances using persistent sessions
20
- - Managing MCP server connections with automatic reconnection
21
- - Converting MCP resources to ADK-compatible formats
22
- - Handling tool execution with proper error formatting for ADK agents
23
-
24
- Example:
25
- ```python
26
- from aip_agents.mcp.client.google_adk.client import GoogleADKMCPClient
27
- from gllm_tools.mcp.client.config import MCPConfiguration
28
-
29
- servers = {
30
- "filesystem": MCPConfiguration(
31
- command="npx",
32
- args=["-y", "@modelcontextprotocol/server-filesystem", "/path/to/folder"]
33
- )
34
- }
35
-
36
- client = GoogleADKMCPClient(servers)
37
- await client.initialize() # Initialize persistent sessions
38
- tools = await client.get_tools() # Returns list of ADK FunctionTool instances
39
- ```
40
- '''
41
- RESOURCE_FETCH_TIMEOUT: int
42
- def __init__(self, servers: dict[str, MCPConfiguration]) -> None:
43
- """Initialize Google ADK MCP client.
44
-
45
- Args:
46
- servers (dict[str, MCPConfiguration]): Dictionary of MCP server configurations
47
- """
48
- async def initialize(self) -> None:
49
- """Initialize persistent MCP sessions for Google ADK integration.
50
-
51
- This method ensures all MCP servers are connected with persistent sessions
52
- and prepares the client for ADK tool conversion.
53
-
54
- Raises:
55
- Exception: If session initialization fails
56
- """
57
- async def get_tools(self, server: str | None = None) -> list[FunctionTool]:
58
- """Get ADK-compatible FunctionTool instances with smart caching.
59
-
60
- Converts MCP tools to ADK format and caches them for better performance
61
- on repeated access. Cache is keyed by server parameter.
62
-
63
- Args:
64
- server (str | None): Optional server name to filter tools from a specific server.
65
- If None, returns tools from all configured servers.
66
-
67
- Returns:
68
- list[FunctionTool]: List of cached ADK FunctionTool instances.
69
- """
70
- async def cleanup(self) -> None:
71
- """Clean up Google ADK MCP client resources.
72
-
73
- This method ensures all persistent sessions are properly closed and
74
- ADK-specific resources are cleaned up.
75
- """
@@ -1,3 +0,0 @@
1
- from aip_agents.mcp.client.langchain.client import LangchainMCPClient as LangchainMCPClient
2
-
3
- __all__ = ['LangchainMCPClient']
@@ -1,48 +0,0 @@
1
- from _typeshed import Incomplete
2
- from aip_agents.mcp.client.base_mcp_client import BaseMCPClient as BaseMCPClient
3
- from aip_agents.utils.logger import get_logger as get_logger
4
- from gllm_tools.mcp.client.config import MCPConfiguration as MCPConfiguration
5
- from langchain_core.tools import StructuredTool
6
- from mcp.types import EmbeddedResource, ImageContent
7
-
8
- NonTextContent = ImageContent | EmbeddedResource
9
- logger: Incomplete
10
-
11
- class LangchainMCPClient(BaseMCPClient):
12
- """Langchain MCP Client with Session Persistence.
13
-
14
- This client extends BaseMCPClient to provide LangChain-specific tool conversion
15
- while maintaining persistent MCP sessions and connection reuse across tool calls.
16
- """
17
- RESOURCE_FETCH_TIMEOUT: int
18
- def __init__(self, servers: dict[str, MCPConfiguration]) -> None:
19
- """Initialize LangChain MCP client.
20
-
21
- Args:
22
- servers (dict[str, MCPConfiguration]): Dictionary of MCP server configurations
23
- """
24
- async def initialize(self) -> None:
25
- """Initialize all sessions for LangChain client.
26
-
27
- This method initializes the base MCP sessions and prepares for tool caching.
28
-
29
- Raises:
30
- Exception: If base initialization fails
31
- """
32
- async def get_tools(self, server: str | None = None) -> list[StructuredTool]:
33
- """Get LangChain StructuredTools with smart caching.
34
-
35
- Converts MCP tools to LangChain format and caches them for better performance
36
- on repeated access. Cache is keyed by server parameter.
37
-
38
- Args:
39
- server (str | None): Optional server name to filter tools. If None, returns all tools.
40
-
41
- Returns:
42
- list[StructuredTool]: List of cached LangChain StructuredTool instances
43
- """
44
- async def cleanup(self) -> None:
45
- """Cleanup LangChain MCP resources.
46
-
47
- This method extends base class cleanup and clears the LangChain tool cache.
48
- """