aip-agents-binary 0.6.4__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.
- aip_agents/__init__.py +65 -0
- aip_agents/__init__.pyi +19 -0
- aip_agents/a2a/__init__.py +19 -0
- aip_agents/a2a/__init__.pyi +3 -0
- aip_agents/a2a/server/__init__.py +10 -0
- aip_agents/a2a/server/__init__.pyi +4 -0
- aip_agents/a2a/server/base_executor.py +1086 -0
- aip_agents/a2a/server/base_executor.pyi +73 -0
- aip_agents/a2a/server/google_adk_executor.py +198 -0
- aip_agents/a2a/server/google_adk_executor.pyi +51 -0
- aip_agents/a2a/server/langflow_executor.py +180 -0
- aip_agents/a2a/server/langflow_executor.pyi +43 -0
- aip_agents/a2a/server/langgraph_executor.py +270 -0
- aip_agents/a2a/server/langgraph_executor.pyi +47 -0
- aip_agents/a2a/types.py +232 -0
- aip_agents/a2a/types.pyi +132 -0
- aip_agents/agent/__init__.py +27 -0
- aip_agents/agent/__init__.pyi +9 -0
- aip_agents/agent/base_agent.py +970 -0
- aip_agents/agent/base_agent.pyi +221 -0
- aip_agents/agent/base_langgraph_agent.py +3037 -0
- aip_agents/agent/base_langgraph_agent.pyi +233 -0
- aip_agents/agent/google_adk_agent.py +926 -0
- aip_agents/agent/google_adk_agent.pyi +141 -0
- aip_agents/agent/google_adk_constants.py +6 -0
- aip_agents/agent/google_adk_constants.pyi +3 -0
- aip_agents/agent/hitl/__init__.py +24 -0
- aip_agents/agent/hitl/__init__.pyi +6 -0
- aip_agents/agent/hitl/config.py +28 -0
- aip_agents/agent/hitl/config.pyi +15 -0
- aip_agents/agent/hitl/langgraph_hitl_mixin.py +515 -0
- aip_agents/agent/hitl/langgraph_hitl_mixin.pyi +42 -0
- aip_agents/agent/hitl/manager.py +532 -0
- aip_agents/agent/hitl/manager.pyi +200 -0
- aip_agents/agent/hitl/models.py +18 -0
- aip_agents/agent/hitl/models.pyi +3 -0
- aip_agents/agent/hitl/prompt/__init__.py +9 -0
- aip_agents/agent/hitl/prompt/__init__.pyi +4 -0
- aip_agents/agent/hitl/prompt/base.py +42 -0
- aip_agents/agent/hitl/prompt/base.pyi +24 -0
- aip_agents/agent/hitl/prompt/deferred.py +73 -0
- aip_agents/agent/hitl/prompt/deferred.pyi +30 -0
- aip_agents/agent/hitl/registry.py +149 -0
- aip_agents/agent/hitl/registry.pyi +101 -0
- aip_agents/agent/interface.py +138 -0
- aip_agents/agent/interface.pyi +81 -0
- aip_agents/agent/interfaces.py +65 -0
- aip_agents/agent/interfaces.pyi +44 -0
- aip_agents/agent/langflow_agent.py +464 -0
- aip_agents/agent/langflow_agent.pyi +133 -0
- aip_agents/agent/langgraph_memory_enhancer_agent.py +767 -0
- aip_agents/agent/langgraph_memory_enhancer_agent.pyi +50 -0
- aip_agents/agent/langgraph_react_agent.py +2856 -0
- aip_agents/agent/langgraph_react_agent.pyi +170 -0
- aip_agents/agent/system_instruction_context.py +34 -0
- aip_agents/agent/system_instruction_context.pyi +13 -0
- aip_agents/clients/__init__.py +10 -0
- aip_agents/clients/__init__.pyi +4 -0
- aip_agents/clients/langflow/__init__.py +10 -0
- aip_agents/clients/langflow/__init__.pyi +4 -0
- aip_agents/clients/langflow/client.py +477 -0
- aip_agents/clients/langflow/client.pyi +140 -0
- aip_agents/clients/langflow/types.py +18 -0
- aip_agents/clients/langflow/types.pyi +7 -0
- aip_agents/constants.py +23 -0
- aip_agents/constants.pyi +7 -0
- aip_agents/credentials/manager.py +132 -0
- aip_agents/examples/__init__.py +5 -0
- aip_agents/examples/__init__.pyi +0 -0
- aip_agents/examples/compare_streaming_client.py +783 -0
- aip_agents/examples/compare_streaming_client.pyi +48 -0
- aip_agents/examples/compare_streaming_server.py +142 -0
- aip_agents/examples/compare_streaming_server.pyi +18 -0
- aip_agents/examples/hello_world_a2a_google_adk_client.py +49 -0
- aip_agents/examples/hello_world_a2a_google_adk_client.pyi +9 -0
- aip_agents/examples/hello_world_a2a_google_adk_client_agent.py +48 -0
- aip_agents/examples/hello_world_a2a_google_adk_client_agent.pyi +9 -0
- aip_agents/examples/hello_world_a2a_google_adk_client_streaming.py +60 -0
- aip_agents/examples/hello_world_a2a_google_adk_client_streaming.pyi +9 -0
- aip_agents/examples/hello_world_a2a_google_adk_server.py +79 -0
- aip_agents/examples/hello_world_a2a_google_adk_server.pyi +15 -0
- aip_agents/examples/hello_world_a2a_langchain_client.py +39 -0
- aip_agents/examples/hello_world_a2a_langchain_client.pyi +5 -0
- aip_agents/examples/hello_world_a2a_langchain_client_agent.py +39 -0
- aip_agents/examples/hello_world_a2a_langchain_client_agent.pyi +5 -0
- aip_agents/examples/hello_world_a2a_langchain_client_lm_invoker.py +37 -0
- aip_agents/examples/hello_world_a2a_langchain_client_lm_invoker.pyi +5 -0
- aip_agents/examples/hello_world_a2a_langchain_client_streaming.py +41 -0
- aip_agents/examples/hello_world_a2a_langchain_client_streaming.pyi +5 -0
- aip_agents/examples/hello_world_a2a_langchain_reference_client_streaming.py +60 -0
- aip_agents/examples/hello_world_a2a_langchain_reference_client_streaming.pyi +5 -0
- aip_agents/examples/hello_world_a2a_langchain_reference_server.py +105 -0
- aip_agents/examples/hello_world_a2a_langchain_reference_server.pyi +15 -0
- aip_agents/examples/hello_world_a2a_langchain_server.py +79 -0
- aip_agents/examples/hello_world_a2a_langchain_server.pyi +15 -0
- aip_agents/examples/hello_world_a2a_langchain_server_lm_invoker.py +78 -0
- aip_agents/examples/hello_world_a2a_langchain_server_lm_invoker.pyi +15 -0
- aip_agents/examples/hello_world_a2a_langflow_client.py +83 -0
- aip_agents/examples/hello_world_a2a_langflow_client.pyi +9 -0
- aip_agents/examples/hello_world_a2a_langflow_server.py +82 -0
- aip_agents/examples/hello_world_a2a_langflow_server.pyi +14 -0
- aip_agents/examples/hello_world_a2a_langgraph_artifact_client.py +73 -0
- aip_agents/examples/hello_world_a2a_langgraph_artifact_client.pyi +5 -0
- aip_agents/examples/hello_world_a2a_langgraph_artifact_client_streaming.py +76 -0
- aip_agents/examples/hello_world_a2a_langgraph_artifact_client_streaming.pyi +5 -0
- aip_agents/examples/hello_world_a2a_langgraph_artifact_server.py +92 -0
- aip_agents/examples/hello_world_a2a_langgraph_artifact_server.pyi +16 -0
- aip_agents/examples/hello_world_a2a_langgraph_client.py +54 -0
- aip_agents/examples/hello_world_a2a_langgraph_client.pyi +9 -0
- aip_agents/examples/hello_world_a2a_langgraph_client_agent.py +54 -0
- aip_agents/examples/hello_world_a2a_langgraph_client_agent.pyi +9 -0
- aip_agents/examples/hello_world_a2a_langgraph_client_agent_lm_invoker.py +32 -0
- aip_agents/examples/hello_world_a2a_langgraph_client_agent_lm_invoker.pyi +2 -0
- aip_agents/examples/hello_world_a2a_langgraph_client_streaming.py +50 -0
- aip_agents/examples/hello_world_a2a_langgraph_client_streaming.pyi +9 -0
- aip_agents/examples/hello_world_a2a_langgraph_client_streaming_lm_invoker.py +44 -0
- aip_agents/examples/hello_world_a2a_langgraph_client_streaming_lm_invoker.pyi +5 -0
- aip_agents/examples/hello_world_a2a_langgraph_client_streaming_tool_streaming.py +92 -0
- aip_agents/examples/hello_world_a2a_langgraph_client_streaming_tool_streaming.pyi +5 -0
- aip_agents/examples/hello_world_a2a_langgraph_server.py +84 -0
- aip_agents/examples/hello_world_a2a_langgraph_server.pyi +14 -0
- aip_agents/examples/hello_world_a2a_langgraph_server_lm_invoker.py +79 -0
- aip_agents/examples/hello_world_a2a_langgraph_server_lm_invoker.pyi +15 -0
- aip_agents/examples/hello_world_a2a_langgraph_server_tool_streaming.py +132 -0
- aip_agents/examples/hello_world_a2a_langgraph_server_tool_streaming.pyi +15 -0
- aip_agents/examples/hello_world_a2a_mcp_langgraph.py +196 -0
- aip_agents/examples/hello_world_a2a_mcp_langgraph.pyi +48 -0
- aip_agents/examples/hello_world_a2a_three_level_agent_hierarchy_client.py +244 -0
- aip_agents/examples/hello_world_a2a_three_level_agent_hierarchy_client.pyi +48 -0
- aip_agents/examples/hello_world_a2a_three_level_agent_hierarchy_server.py +251 -0
- aip_agents/examples/hello_world_a2a_three_level_agent_hierarchy_server.pyi +45 -0
- aip_agents/examples/hello_world_a2a_with_metadata_langchain_client.py +57 -0
- aip_agents/examples/hello_world_a2a_with_metadata_langchain_client.pyi +5 -0
- aip_agents/examples/hello_world_a2a_with_metadata_langchain_server_lm_invoker.py +80 -0
- aip_agents/examples/hello_world_a2a_with_metadata_langchain_server_lm_invoker.pyi +15 -0
- aip_agents/examples/hello_world_google_adk.py +41 -0
- aip_agents/examples/hello_world_google_adk.pyi +5 -0
- aip_agents/examples/hello_world_google_adk_mcp_http.py +34 -0
- aip_agents/examples/hello_world_google_adk_mcp_http.pyi +5 -0
- aip_agents/examples/hello_world_google_adk_mcp_http_stream.py +40 -0
- aip_agents/examples/hello_world_google_adk_mcp_http_stream.pyi +5 -0
- aip_agents/examples/hello_world_google_adk_mcp_sse.py +44 -0
- aip_agents/examples/hello_world_google_adk_mcp_sse.pyi +5 -0
- aip_agents/examples/hello_world_google_adk_mcp_sse_stream.py +48 -0
- aip_agents/examples/hello_world_google_adk_mcp_sse_stream.pyi +5 -0
- aip_agents/examples/hello_world_google_adk_mcp_stdio.py +44 -0
- aip_agents/examples/hello_world_google_adk_mcp_stdio.pyi +5 -0
- aip_agents/examples/hello_world_google_adk_mcp_stdio_stream.py +48 -0
- aip_agents/examples/hello_world_google_adk_mcp_stdio_stream.pyi +5 -0
- aip_agents/examples/hello_world_google_adk_stream.py +44 -0
- aip_agents/examples/hello_world_google_adk_stream.pyi +5 -0
- aip_agents/examples/hello_world_langchain.py +28 -0
- aip_agents/examples/hello_world_langchain.pyi +5 -0
- aip_agents/examples/hello_world_langchain_lm_invoker.py +15 -0
- aip_agents/examples/hello_world_langchain_lm_invoker.pyi +2 -0
- aip_agents/examples/hello_world_langchain_mcp_http.py +34 -0
- aip_agents/examples/hello_world_langchain_mcp_http.pyi +5 -0
- aip_agents/examples/hello_world_langchain_mcp_http_interactive.py +130 -0
- aip_agents/examples/hello_world_langchain_mcp_http_interactive.pyi +16 -0
- aip_agents/examples/hello_world_langchain_mcp_http_stream.py +42 -0
- aip_agents/examples/hello_world_langchain_mcp_http_stream.pyi +5 -0
- aip_agents/examples/hello_world_langchain_mcp_multi_server.py +155 -0
- aip_agents/examples/hello_world_langchain_mcp_multi_server.pyi +18 -0
- aip_agents/examples/hello_world_langchain_mcp_sse.py +34 -0
- aip_agents/examples/hello_world_langchain_mcp_sse.pyi +5 -0
- aip_agents/examples/hello_world_langchain_mcp_sse_stream.py +40 -0
- aip_agents/examples/hello_world_langchain_mcp_sse_stream.pyi +5 -0
- aip_agents/examples/hello_world_langchain_mcp_stdio.py +30 -0
- aip_agents/examples/hello_world_langchain_mcp_stdio.pyi +5 -0
- aip_agents/examples/hello_world_langchain_mcp_stdio_stream.py +41 -0
- aip_agents/examples/hello_world_langchain_mcp_stdio_stream.pyi +5 -0
- aip_agents/examples/hello_world_langchain_stream.py +36 -0
- aip_agents/examples/hello_world_langchain_stream.pyi +5 -0
- aip_agents/examples/hello_world_langchain_stream_lm_invoker.py +39 -0
- aip_agents/examples/hello_world_langchain_stream_lm_invoker.pyi +5 -0
- aip_agents/examples/hello_world_langflow_agent.py +163 -0
- aip_agents/examples/hello_world_langflow_agent.pyi +35 -0
- aip_agents/examples/hello_world_langgraph.py +39 -0
- aip_agents/examples/hello_world_langgraph.pyi +5 -0
- aip_agents/examples/hello_world_langgraph_gl_connector_twitter.py +44 -0
- aip_agents/examples/hello_world_langgraph_gl_connector_twitter.pyi +5 -0
- aip_agents/examples/hello_world_langgraph_mcp_http.py +31 -0
- aip_agents/examples/hello_world_langgraph_mcp_http.pyi +5 -0
- aip_agents/examples/hello_world_langgraph_mcp_http_stream.py +34 -0
- aip_agents/examples/hello_world_langgraph_mcp_http_stream.pyi +5 -0
- aip_agents/examples/hello_world_langgraph_mcp_sse.py +35 -0
- aip_agents/examples/hello_world_langgraph_mcp_sse.pyi +5 -0
- aip_agents/examples/hello_world_langgraph_mcp_sse_stream.py +50 -0
- aip_agents/examples/hello_world_langgraph_mcp_sse_stream.pyi +5 -0
- aip_agents/examples/hello_world_langgraph_mcp_stdio.py +35 -0
- aip_agents/examples/hello_world_langgraph_mcp_stdio.pyi +5 -0
- aip_agents/examples/hello_world_langgraph_mcp_stdio_stream.py +50 -0
- aip_agents/examples/hello_world_langgraph_mcp_stdio_stream.pyi +5 -0
- aip_agents/examples/hello_world_langgraph_stream.py +43 -0
- aip_agents/examples/hello_world_langgraph_stream.pyi +5 -0
- aip_agents/examples/hello_world_langgraph_stream_lm_invoker.py +37 -0
- aip_agents/examples/hello_world_langgraph_stream_lm_invoker.pyi +5 -0
- aip_agents/examples/hello_world_model_switch_cli.py +210 -0
- aip_agents/examples/hello_world_model_switch_cli.pyi +30 -0
- aip_agents/examples/hello_world_multi_agent_adk.py +75 -0
- aip_agents/examples/hello_world_multi_agent_adk.pyi +6 -0
- aip_agents/examples/hello_world_multi_agent_langchain.py +54 -0
- aip_agents/examples/hello_world_multi_agent_langchain.pyi +5 -0
- aip_agents/examples/hello_world_multi_agent_langgraph.py +66 -0
- aip_agents/examples/hello_world_multi_agent_langgraph.pyi +5 -0
- aip_agents/examples/hello_world_multi_agent_langgraph_lm_invoker.py +69 -0
- aip_agents/examples/hello_world_multi_agent_langgraph_lm_invoker.pyi +5 -0
- aip_agents/examples/hello_world_pii_logger.py +21 -0
- aip_agents/examples/hello_world_pii_logger.pyi +5 -0
- aip_agents/examples/hello_world_ptc.py +49 -0
- aip_agents/examples/hello_world_ptc.pyi +5 -0
- aip_agents/examples/hello_world_sentry.py +133 -0
- aip_agents/examples/hello_world_sentry.pyi +21 -0
- aip_agents/examples/hello_world_step_limits.py +273 -0
- aip_agents/examples/hello_world_step_limits.pyi +17 -0
- aip_agents/examples/hello_world_stock_a2a_server.py +103 -0
- aip_agents/examples/hello_world_stock_a2a_server.pyi +17 -0
- aip_agents/examples/hello_world_tool_output_client.py +55 -0
- aip_agents/examples/hello_world_tool_output_client.pyi +5 -0
- aip_agents/examples/hello_world_tool_output_server.py +114 -0
- aip_agents/examples/hello_world_tool_output_server.pyi +19 -0
- aip_agents/examples/hitl_demo.py +724 -0
- aip_agents/examples/hitl_demo.pyi +67 -0
- aip_agents/examples/mcp_configs/configs.py +63 -0
- aip_agents/examples/mcp_servers/common.py +76 -0
- aip_agents/examples/mcp_servers/mcp_name.py +29 -0
- aip_agents/examples/mcp_servers/mcp_server_http.py +19 -0
- aip_agents/examples/mcp_servers/mcp_server_sse.py +19 -0
- aip_agents/examples/mcp_servers/mcp_server_stdio.py +19 -0
- aip_agents/examples/mcp_servers/mcp_time.py +10 -0
- aip_agents/examples/pii_demo_langgraph_client.py +69 -0
- aip_agents/examples/pii_demo_langgraph_client.pyi +5 -0
- aip_agents/examples/pii_demo_langgraph_server.py +126 -0
- aip_agents/examples/pii_demo_langgraph_server.pyi +20 -0
- aip_agents/examples/pii_demo_multi_agent_client.py +80 -0
- aip_agents/examples/pii_demo_multi_agent_client.pyi +5 -0
- aip_agents/examples/pii_demo_multi_agent_server.py +247 -0
- aip_agents/examples/pii_demo_multi_agent_server.pyi +40 -0
- aip_agents/examples/todolist_planning_a2a_langchain_client.py +70 -0
- aip_agents/examples/todolist_planning_a2a_langchain_client.pyi +5 -0
- aip_agents/examples/todolist_planning_a2a_langgraph_server.py +88 -0
- aip_agents/examples/todolist_planning_a2a_langgraph_server.pyi +19 -0
- aip_agents/examples/tools/__init__.py +27 -0
- aip_agents/examples/tools/__init__.pyi +9 -0
- aip_agents/examples/tools/adk_arithmetic_tools.py +36 -0
- aip_agents/examples/tools/adk_arithmetic_tools.pyi +24 -0
- aip_agents/examples/tools/adk_weather_tool.py +60 -0
- aip_agents/examples/tools/adk_weather_tool.pyi +18 -0
- aip_agents/examples/tools/data_generator_tool.py +103 -0
- aip_agents/examples/tools/data_generator_tool.pyi +15 -0
- aip_agents/examples/tools/data_visualization_tool.py +312 -0
- aip_agents/examples/tools/data_visualization_tool.pyi +19 -0
- aip_agents/examples/tools/image_artifact_tool.py +136 -0
- aip_agents/examples/tools/image_artifact_tool.pyi +26 -0
- aip_agents/examples/tools/langchain_arithmetic_tools.py +26 -0
- aip_agents/examples/tools/langchain_arithmetic_tools.pyi +17 -0
- aip_agents/examples/tools/langchain_currency_exchange_tool.py +88 -0
- aip_agents/examples/tools/langchain_currency_exchange_tool.pyi +20 -0
- aip_agents/examples/tools/langchain_graph_artifact_tool.py +172 -0
- aip_agents/examples/tools/langchain_graph_artifact_tool.pyi +25 -0
- aip_agents/examples/tools/langchain_weather_tool.py +48 -0
- aip_agents/examples/tools/langchain_weather_tool.pyi +19 -0
- aip_agents/examples/tools/langgraph_streaming_tool.py +130 -0
- aip_agents/examples/tools/langgraph_streaming_tool.pyi +43 -0
- aip_agents/examples/tools/mock_retrieval_tool.py +56 -0
- aip_agents/examples/tools/mock_retrieval_tool.pyi +13 -0
- aip_agents/examples/tools/pii_demo_tools.py +189 -0
- aip_agents/examples/tools/pii_demo_tools.pyi +54 -0
- aip_agents/examples/tools/random_chart_tool.py +142 -0
- aip_agents/examples/tools/random_chart_tool.pyi +20 -0
- aip_agents/examples/tools/serper_tool.py +202 -0
- aip_agents/examples/tools/serper_tool.pyi +16 -0
- aip_agents/examples/tools/stock_tools.py +82 -0
- aip_agents/examples/tools/stock_tools.pyi +36 -0
- aip_agents/examples/tools/table_generator_tool.py +167 -0
- aip_agents/examples/tools/table_generator_tool.pyi +22 -0
- aip_agents/examples/tools/time_tool.py +82 -0
- aip_agents/examples/tools/time_tool.pyi +15 -0
- aip_agents/examples/tools/weather_forecast_tool.py +38 -0
- aip_agents/examples/tools/weather_forecast_tool.pyi +14 -0
- aip_agents/executor/agent_executor.py +473 -0
- aip_agents/executor/base.py +48 -0
- aip_agents/guardrails/__init__.py +83 -0
- aip_agents/guardrails/__init__.pyi +6 -0
- aip_agents/guardrails/engines/__init__.py +69 -0
- aip_agents/guardrails/engines/__init__.pyi +4 -0
- aip_agents/guardrails/engines/base.py +90 -0
- aip_agents/guardrails/engines/base.pyi +61 -0
- aip_agents/guardrails/engines/nemo.py +101 -0
- aip_agents/guardrails/engines/nemo.pyi +46 -0
- aip_agents/guardrails/engines/phrase_matcher.py +113 -0
- aip_agents/guardrails/engines/phrase_matcher.pyi +48 -0
- aip_agents/guardrails/exceptions.py +39 -0
- aip_agents/guardrails/exceptions.pyi +23 -0
- aip_agents/guardrails/manager.py +163 -0
- aip_agents/guardrails/manager.pyi +42 -0
- aip_agents/guardrails/middleware.py +199 -0
- aip_agents/guardrails/middleware.pyi +87 -0
- aip_agents/guardrails/schemas.py +63 -0
- aip_agents/guardrails/schemas.pyi +43 -0
- aip_agents/guardrails/utils.py +45 -0
- aip_agents/guardrails/utils.pyi +19 -0
- aip_agents/mcp/__init__.py +1 -0
- aip_agents/mcp/__init__.pyi +0 -0
- aip_agents/mcp/client/__init__.py +14 -0
- aip_agents/mcp/client/__init__.pyi +5 -0
- aip_agents/mcp/client/base_mcp_client.py +369 -0
- aip_agents/mcp/client/base_mcp_client.pyi +148 -0
- aip_agents/mcp/client/connection_manager.py +228 -0
- aip_agents/mcp/client/connection_manager.pyi +51 -0
- aip_agents/mcp/client/google_adk/__init__.py +11 -0
- aip_agents/mcp/client/google_adk/__init__.pyi +3 -0
- aip_agents/mcp/client/google_adk/client.py +381 -0
- aip_agents/mcp/client/google_adk/client.pyi +75 -0
- aip_agents/mcp/client/langchain/__init__.py +11 -0
- aip_agents/mcp/client/langchain/__init__.pyi +3 -0
- aip_agents/mcp/client/langchain/client.py +265 -0
- aip_agents/mcp/client/langchain/client.pyi +48 -0
- aip_agents/mcp/client/persistent_session.py +612 -0
- aip_agents/mcp/client/persistent_session.pyi +122 -0
- aip_agents/mcp/client/session_pool.py +351 -0
- aip_agents/mcp/client/session_pool.pyi +101 -0
- aip_agents/mcp/client/transports.py +263 -0
- aip_agents/mcp/client/transports.pyi +132 -0
- aip_agents/mcp/utils/__init__.py +7 -0
- aip_agents/mcp/utils/__init__.pyi +0 -0
- aip_agents/mcp/utils/config_validator.py +139 -0
- aip_agents/mcp/utils/config_validator.pyi +82 -0
- aip_agents/memory/__init__.py +14 -0
- aip_agents/memory/__init__.pyi +5 -0
- aip_agents/memory/adapters/__init__.py +10 -0
- aip_agents/memory/adapters/__init__.pyi +4 -0
- aip_agents/memory/adapters/base_adapter.py +811 -0
- aip_agents/memory/adapters/base_adapter.pyi +176 -0
- aip_agents/memory/adapters/mem0.py +84 -0
- aip_agents/memory/adapters/mem0.pyi +22 -0
- aip_agents/memory/base.py +84 -0
- aip_agents/memory/base.pyi +60 -0
- aip_agents/memory/constants.py +49 -0
- aip_agents/memory/constants.pyi +25 -0
- aip_agents/memory/factory.py +86 -0
- aip_agents/memory/factory.pyi +24 -0
- aip_agents/memory/guidance.py +20 -0
- aip_agents/memory/guidance.pyi +3 -0
- aip_agents/memory/simple_memory.py +47 -0
- aip_agents/memory/simple_memory.pyi +23 -0
- aip_agents/middleware/__init__.py +17 -0
- aip_agents/middleware/__init__.pyi +5 -0
- aip_agents/middleware/base.py +96 -0
- aip_agents/middleware/base.pyi +75 -0
- aip_agents/middleware/manager.py +150 -0
- aip_agents/middleware/manager.pyi +84 -0
- aip_agents/middleware/todolist.py +274 -0
- aip_agents/middleware/todolist.pyi +125 -0
- aip_agents/ptc/__init__.py +48 -0
- aip_agents/ptc/__init__.pyi +10 -0
- aip_agents/ptc/doc_gen.py +122 -0
- aip_agents/ptc/doc_gen.pyi +40 -0
- aip_agents/ptc/exceptions.py +39 -0
- aip_agents/ptc/exceptions.pyi +22 -0
- aip_agents/ptc/executor.py +143 -0
- aip_agents/ptc/executor.pyi +73 -0
- aip_agents/ptc/mcp/__init__.py +45 -0
- aip_agents/ptc/mcp/__init__.pyi +7 -0
- aip_agents/ptc/mcp/sandbox_bridge.py +668 -0
- aip_agents/ptc/mcp/sandbox_bridge.pyi +47 -0
- aip_agents/ptc/mcp/templates/__init__.py +1 -0
- aip_agents/ptc/mcp/templates/__init__.pyi +0 -0
- aip_agents/ptc/mcp/templates/mcp_client.py.template +239 -0
- aip_agents/ptc/naming.py +184 -0
- aip_agents/ptc/naming.pyi +76 -0
- aip_agents/ptc/payload.py +26 -0
- aip_agents/ptc/payload.pyi +15 -0
- aip_agents/ptc/prompt_builder.py +571 -0
- aip_agents/ptc/prompt_builder.pyi +55 -0
- aip_agents/ptc/ptc_helper.py +16 -0
- aip_agents/ptc/ptc_helper.pyi +1 -0
- aip_agents/ptc/sandbox_bridge.py +58 -0
- aip_agents/ptc/sandbox_bridge.pyi +25 -0
- aip_agents/ptc/template_utils.py +33 -0
- aip_agents/ptc/template_utils.pyi +13 -0
- aip_agents/ptc/templates/__init__.py +1 -0
- aip_agents/ptc/templates/__init__.pyi +0 -0
- aip_agents/ptc/templates/ptc_helper.py.template +134 -0
- aip_agents/sandbox/__init__.py +43 -0
- aip_agents/sandbox/__init__.pyi +5 -0
- aip_agents/sandbox/defaults.py +9 -0
- aip_agents/sandbox/defaults.pyi +2 -0
- aip_agents/sandbox/e2b_runtime.py +267 -0
- aip_agents/sandbox/e2b_runtime.pyi +51 -0
- aip_agents/sandbox/template_builder.py +131 -0
- aip_agents/sandbox/template_builder.pyi +36 -0
- aip_agents/sandbox/types.py +24 -0
- aip_agents/sandbox/types.pyi +14 -0
- aip_agents/sandbox/validation.py +50 -0
- aip_agents/sandbox/validation.pyi +20 -0
- aip_agents/schema/__init__.py +69 -0
- aip_agents/schema/__init__.pyi +9 -0
- aip_agents/schema/a2a.py +56 -0
- aip_agents/schema/a2a.pyi +40 -0
- aip_agents/schema/agent.py +111 -0
- aip_agents/schema/agent.pyi +65 -0
- aip_agents/schema/hitl.py +157 -0
- aip_agents/schema/hitl.pyi +89 -0
- aip_agents/schema/langgraph.py +37 -0
- aip_agents/schema/langgraph.pyi +28 -0
- aip_agents/schema/model_id.py +97 -0
- aip_agents/schema/model_id.pyi +54 -0
- aip_agents/schema/step_limit.py +108 -0
- aip_agents/schema/step_limit.pyi +63 -0
- aip_agents/schema/storage.py +40 -0
- aip_agents/schema/storage.pyi +21 -0
- aip_agents/sentry/__init__.py +11 -0
- aip_agents/sentry/__init__.pyi +3 -0
- aip_agents/sentry/sentry.py +151 -0
- aip_agents/sentry/sentry.pyi +48 -0
- aip_agents/storage/__init__.py +41 -0
- aip_agents/storage/__init__.pyi +8 -0
- aip_agents/storage/base.py +85 -0
- aip_agents/storage/base.pyi +58 -0
- aip_agents/storage/clients/__init__.py +12 -0
- aip_agents/storage/clients/__init__.pyi +3 -0
- aip_agents/storage/clients/minio_client.py +318 -0
- aip_agents/storage/clients/minio_client.pyi +137 -0
- aip_agents/storage/config.py +62 -0
- aip_agents/storage/config.pyi +29 -0
- aip_agents/storage/providers/__init__.py +15 -0
- aip_agents/storage/providers/__init__.pyi +5 -0
- aip_agents/storage/providers/base.py +106 -0
- aip_agents/storage/providers/base.pyi +88 -0
- aip_agents/storage/providers/memory.py +114 -0
- aip_agents/storage/providers/memory.pyi +79 -0
- aip_agents/storage/providers/object_storage.py +214 -0
- aip_agents/storage/providers/object_storage.pyi +98 -0
- aip_agents/tools/__init__.py +64 -0
- aip_agents/tools/__init__.pyi +11 -0
- aip_agents/tools/browser_use/__init__.py +82 -0
- aip_agents/tools/browser_use/__init__.pyi +14 -0
- aip_agents/tools/browser_use/action_parser.py +103 -0
- aip_agents/tools/browser_use/action_parser.pyi +18 -0
- aip_agents/tools/browser_use/browser_use_tool.py +1120 -0
- aip_agents/tools/browser_use/browser_use_tool.pyi +50 -0
- aip_agents/tools/browser_use/llm_config.py +120 -0
- aip_agents/tools/browser_use/llm_config.pyi +52 -0
- aip_agents/tools/browser_use/minio_storage.py +198 -0
- aip_agents/tools/browser_use/minio_storage.pyi +109 -0
- aip_agents/tools/browser_use/schemas.py +119 -0
- aip_agents/tools/browser_use/schemas.pyi +32 -0
- aip_agents/tools/browser_use/session.py +76 -0
- aip_agents/tools/browser_use/session.pyi +4 -0
- aip_agents/tools/browser_use/session_errors.py +132 -0
- aip_agents/tools/browser_use/session_errors.pyi +53 -0
- aip_agents/tools/browser_use/steel_session_recording.py +317 -0
- aip_agents/tools/browser_use/steel_session_recording.pyi +63 -0
- aip_agents/tools/browser_use/streaming.py +815 -0
- aip_agents/tools/browser_use/streaming.pyi +81 -0
- aip_agents/tools/browser_use/structured_data_parser.py +257 -0
- aip_agents/tools/browser_use/structured_data_parser.pyi +86 -0
- aip_agents/tools/browser_use/structured_data_recovery.py +204 -0
- aip_agents/tools/browser_use/structured_data_recovery.pyi +43 -0
- aip_agents/tools/browser_use/types.py +78 -0
- aip_agents/tools/browser_use/types.pyi +45 -0
- aip_agents/tools/code_sandbox/__init__.py +26 -0
- aip_agents/tools/code_sandbox/__init__.pyi +3 -0
- aip_agents/tools/code_sandbox/constant.py +13 -0
- aip_agents/tools/code_sandbox/constant.pyi +4 -0
- aip_agents/tools/code_sandbox/e2b_cloud_sandbox_extended.py +306 -0
- aip_agents/tools/code_sandbox/e2b_cloud_sandbox_extended.pyi +102 -0
- aip_agents/tools/code_sandbox/e2b_sandbox_tool.py +411 -0
- aip_agents/tools/code_sandbox/e2b_sandbox_tool.pyi +29 -0
- aip_agents/tools/constants.py +177 -0
- aip_agents/tools/constants.pyi +138 -0
- aip_agents/tools/date_range_tool.py +554 -0
- aip_agents/tools/date_range_tool.pyi +21 -0
- aip_agents/tools/document_loader/__init__.py +44 -0
- aip_agents/tools/document_loader/__init__.pyi +7 -0
- aip_agents/tools/document_loader/base_reader.py +302 -0
- aip_agents/tools/document_loader/base_reader.pyi +75 -0
- aip_agents/tools/document_loader/docx_reader_tool.py +68 -0
- aip_agents/tools/document_loader/docx_reader_tool.pyi +10 -0
- aip_agents/tools/document_loader/excel_reader_tool.py +171 -0
- aip_agents/tools/document_loader/excel_reader_tool.pyi +26 -0
- aip_agents/tools/document_loader/pdf_reader_tool.py +79 -0
- aip_agents/tools/document_loader/pdf_reader_tool.pyi +11 -0
- aip_agents/tools/document_loader/pdf_splitter.py +169 -0
- aip_agents/tools/document_loader/pdf_splitter.pyi +18 -0
- aip_agents/tools/execute_ptc_code.py +308 -0
- aip_agents/tools/execute_ptc_code.pyi +90 -0
- aip_agents/tools/gl_connector/__init__.py +5 -0
- aip_agents/tools/gl_connector/__init__.pyi +3 -0
- aip_agents/tools/gl_connector/tool.py +383 -0
- aip_agents/tools/gl_connector/tool.pyi +74 -0
- aip_agents/tools/gl_connector_tools.py +119 -0
- aip_agents/tools/gl_connector_tools.pyi +39 -0
- aip_agents/tools/memory_search/__init__.py +29 -0
- aip_agents/tools/memory_search/__init__.pyi +5 -0
- aip_agents/tools/memory_search/base.py +200 -0
- aip_agents/tools/memory_search/base.pyi +69 -0
- aip_agents/tools/memory_search/mem0.py +365 -0
- aip_agents/tools/memory_search/mem0.pyi +29 -0
- aip_agents/tools/memory_search/schema.py +81 -0
- aip_agents/tools/memory_search/schema.pyi +25 -0
- aip_agents/tools/memory_search_tool.py +34 -0
- aip_agents/tools/memory_search_tool.pyi +3 -0
- aip_agents/tools/time_tool.py +117 -0
- aip_agents/tools/time_tool.pyi +16 -0
- aip_agents/tools/tool_config_injector.py +300 -0
- aip_agents/tools/tool_config_injector.pyi +26 -0
- aip_agents/tools/web_search/__init__.py +15 -0
- aip_agents/tools/web_search/__init__.pyi +3 -0
- aip_agents/tools/web_search/serper_tool.py +187 -0
- aip_agents/tools/web_search/serper_tool.pyi +19 -0
- aip_agents/types/__init__.py +70 -0
- aip_agents/types/__init__.pyi +36 -0
- aip_agents/types/a2a_events.py +13 -0
- aip_agents/types/a2a_events.pyi +3 -0
- aip_agents/utils/__init__.py +79 -0
- aip_agents/utils/__init__.pyi +11 -0
- aip_agents/utils/a2a_connector.py +1757 -0
- aip_agents/utils/a2a_connector.pyi +146 -0
- aip_agents/utils/artifact_helpers.py +502 -0
- aip_agents/utils/artifact_helpers.pyi +203 -0
- aip_agents/utils/constants.py +22 -0
- aip_agents/utils/constants.pyi +10 -0
- aip_agents/utils/datetime/__init__.py +34 -0
- aip_agents/utils/datetime/__init__.pyi +4 -0
- aip_agents/utils/datetime/normalization.py +231 -0
- aip_agents/utils/datetime/normalization.pyi +95 -0
- aip_agents/utils/datetime/timezone.py +206 -0
- aip_agents/utils/datetime/timezone.pyi +48 -0
- aip_agents/utils/env_loader.py +27 -0
- aip_agents/utils/env_loader.pyi +10 -0
- aip_agents/utils/event_handler_registry.py +58 -0
- aip_agents/utils/event_handler_registry.pyi +23 -0
- aip_agents/utils/file_prompt_utils.py +176 -0
- aip_agents/utils/file_prompt_utils.pyi +21 -0
- aip_agents/utils/final_response_builder.py +211 -0
- aip_agents/utils/final_response_builder.pyi +34 -0
- aip_agents/utils/formatter_llm_client.py +231 -0
- aip_agents/utils/formatter_llm_client.pyi +71 -0
- aip_agents/utils/langgraph/__init__.py +19 -0
- aip_agents/utils/langgraph/__init__.pyi +3 -0
- aip_agents/utils/langgraph/converter.py +128 -0
- aip_agents/utils/langgraph/converter.pyi +49 -0
- aip_agents/utils/langgraph/tool_managers/__init__.py +15 -0
- aip_agents/utils/langgraph/tool_managers/__init__.pyi +5 -0
- aip_agents/utils/langgraph/tool_managers/a2a_tool_manager.py +99 -0
- aip_agents/utils/langgraph/tool_managers/a2a_tool_manager.pyi +35 -0
- aip_agents/utils/langgraph/tool_managers/base_tool_manager.py +66 -0
- aip_agents/utils/langgraph/tool_managers/base_tool_manager.pyi +48 -0
- aip_agents/utils/langgraph/tool_managers/delegation_tool_manager.py +1096 -0
- aip_agents/utils/langgraph/tool_managers/delegation_tool_manager.pyi +56 -0
- aip_agents/utils/langgraph/tool_output_management.py +1047 -0
- aip_agents/utils/langgraph/tool_output_management.pyi +329 -0
- aip_agents/utils/logger.py +195 -0
- aip_agents/utils/logger.pyi +60 -0
- aip_agents/utils/metadata/__init__.py +27 -0
- aip_agents/utils/metadata/__init__.pyi +5 -0
- aip_agents/utils/metadata/activity_metadata_helper.py +407 -0
- aip_agents/utils/metadata/activity_metadata_helper.pyi +25 -0
- aip_agents/utils/metadata/activity_narrative/__init__.py +35 -0
- aip_agents/utils/metadata/activity_narrative/__init__.pyi +7 -0
- aip_agents/utils/metadata/activity_narrative/builder.py +817 -0
- aip_agents/utils/metadata/activity_narrative/builder.pyi +35 -0
- aip_agents/utils/metadata/activity_narrative/constants.py +51 -0
- aip_agents/utils/metadata/activity_narrative/constants.pyi +10 -0
- aip_agents/utils/metadata/activity_narrative/context.py +49 -0
- aip_agents/utils/metadata/activity_narrative/context.pyi +32 -0
- aip_agents/utils/metadata/activity_narrative/formatters.py +230 -0
- aip_agents/utils/metadata/activity_narrative/formatters.pyi +48 -0
- aip_agents/utils/metadata/activity_narrative/utils.py +35 -0
- aip_agents/utils/metadata/activity_narrative/utils.pyi +12 -0
- aip_agents/utils/metadata/schemas/__init__.py +16 -0
- aip_agents/utils/metadata/schemas/__init__.pyi +4 -0
- aip_agents/utils/metadata/schemas/activity_schema.py +29 -0
- aip_agents/utils/metadata/schemas/activity_schema.pyi +18 -0
- aip_agents/utils/metadata/schemas/thinking_schema.py +31 -0
- aip_agents/utils/metadata/schemas/thinking_schema.pyi +20 -0
- aip_agents/utils/metadata/thinking_metadata_helper.py +38 -0
- aip_agents/utils/metadata/thinking_metadata_helper.pyi +4 -0
- aip_agents/utils/metadata_helper.py +358 -0
- aip_agents/utils/metadata_helper.pyi +117 -0
- aip_agents/utils/name_preprocessor/__init__.py +17 -0
- aip_agents/utils/name_preprocessor/__init__.pyi +6 -0
- aip_agents/utils/name_preprocessor/base_name_preprocessor.py +73 -0
- aip_agents/utils/name_preprocessor/base_name_preprocessor.pyi +52 -0
- aip_agents/utils/name_preprocessor/google_name_preprocessor.py +100 -0
- aip_agents/utils/name_preprocessor/google_name_preprocessor.pyi +38 -0
- aip_agents/utils/name_preprocessor/name_preprocessor.py +87 -0
- aip_agents/utils/name_preprocessor/name_preprocessor.pyi +41 -0
- aip_agents/utils/name_preprocessor/openai_name_preprocessor.py +48 -0
- aip_agents/utils/name_preprocessor/openai_name_preprocessor.pyi +34 -0
- aip_agents/utils/pii/__init__.py +25 -0
- aip_agents/utils/pii/__init__.pyi +5 -0
- aip_agents/utils/pii/pii_handler.py +397 -0
- aip_agents/utils/pii/pii_handler.pyi +96 -0
- aip_agents/utils/pii/pii_helper.py +207 -0
- aip_agents/utils/pii/pii_helper.pyi +78 -0
- aip_agents/utils/pii/uuid_deanonymizer_mapping.py +195 -0
- aip_agents/utils/pii/uuid_deanonymizer_mapping.pyi +73 -0
- aip_agents/utils/reference_helper.py +273 -0
- aip_agents/utils/reference_helper.pyi +81 -0
- aip_agents/utils/sse_chunk_transformer.py +831 -0
- aip_agents/utils/sse_chunk_transformer.pyi +166 -0
- aip_agents/utils/step_limit_manager.py +265 -0
- aip_agents/utils/step_limit_manager.pyi +112 -0
- aip_agents/utils/token_usage_helper.py +156 -0
- aip_agents/utils/token_usage_helper.pyi +60 -0
- aip_agents_binary-0.6.4.dist-info/METADATA +673 -0
- aip_agents_binary-0.6.4.dist-info/RECORD +612 -0
- aip_agents_binary-0.6.4.dist-info/WHEEL +5 -0
- aip_agents_binary-0.6.4.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
from _typeshed import Incomplete
|
|
2
|
+
from abc import ABC, abstractmethod
|
|
3
|
+
from aip_agents.utils.logger import get_logger as get_logger
|
|
4
|
+
from typing import Any
|
|
5
|
+
|
|
6
|
+
logger: Incomplete
|
|
7
|
+
|
|
8
|
+
class StorageError(Exception):
|
|
9
|
+
"""Base exception for storage operations."""
|
|
10
|
+
|
|
11
|
+
class BaseStorageProvider(ABC):
|
|
12
|
+
"""Base interface for storage providers.
|
|
13
|
+
|
|
14
|
+
This abstract class defines the contract that all storage providers
|
|
15
|
+
must implement to store and retrieve tool outputs.
|
|
16
|
+
"""
|
|
17
|
+
@abstractmethod
|
|
18
|
+
def store(self, key: str, data: Any) -> None:
|
|
19
|
+
"""Store data with the given key.
|
|
20
|
+
|
|
21
|
+
Args:
|
|
22
|
+
key: Unique identifier for the data
|
|
23
|
+
data: Data to store (must be serializable)
|
|
24
|
+
|
|
25
|
+
Raises:
|
|
26
|
+
StorageError: If storage operation fails
|
|
27
|
+
"""
|
|
28
|
+
@abstractmethod
|
|
29
|
+
def retrieve(self, key: str) -> Any:
|
|
30
|
+
"""Retrieve data by key.
|
|
31
|
+
|
|
32
|
+
Args:
|
|
33
|
+
key: Unique identifier for the data
|
|
34
|
+
|
|
35
|
+
Returns:
|
|
36
|
+
The stored data
|
|
37
|
+
|
|
38
|
+
Raises:
|
|
39
|
+
KeyError: If key not found
|
|
40
|
+
StorageError: If retrieval operation fails
|
|
41
|
+
"""
|
|
42
|
+
@abstractmethod
|
|
43
|
+
def exists(self, key: str) -> bool:
|
|
44
|
+
"""Check if key exists.
|
|
45
|
+
|
|
46
|
+
Args:
|
|
47
|
+
key: Unique identifier to check
|
|
48
|
+
|
|
49
|
+
Returns:
|
|
50
|
+
True if key exists, False otherwise
|
|
51
|
+
"""
|
|
52
|
+
@abstractmethod
|
|
53
|
+
def delete(self, key: str) -> None:
|
|
54
|
+
"""Delete data by key.
|
|
55
|
+
|
|
56
|
+
Args:
|
|
57
|
+
key: Unique identifier for the data
|
|
58
|
+
|
|
59
|
+
Note:
|
|
60
|
+
Should not raise error if key doesn't exist
|
|
61
|
+
"""
|
|
62
|
+
@abstractmethod
|
|
63
|
+
def list_keys(self, prefix: str = '') -> list[str]:
|
|
64
|
+
"""List all keys with optional prefix filter.
|
|
65
|
+
|
|
66
|
+
Args:
|
|
67
|
+
prefix: Optional prefix to filter keys
|
|
68
|
+
|
|
69
|
+
Returns:
|
|
70
|
+
List of matching keys
|
|
71
|
+
"""
|
|
72
|
+
@abstractmethod
|
|
73
|
+
def clear(self) -> None:
|
|
74
|
+
"""Clear all stored data.
|
|
75
|
+
|
|
76
|
+
Warning:
|
|
77
|
+
This operation is irreversible
|
|
78
|
+
"""
|
|
79
|
+
def get_presigned_url(self, key: str, expires_hours: int = 24) -> str | None:
|
|
80
|
+
"""Generate presigned URL for direct access (optional).
|
|
81
|
+
|
|
82
|
+
Args:
|
|
83
|
+
key: Storage key
|
|
84
|
+
expires_hours: URL expiration in hours
|
|
85
|
+
|
|
86
|
+
Returns:
|
|
87
|
+
Presigned URL if supported, None otherwise
|
|
88
|
+
"""
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"""In-memory storage provider implementation.
|
|
2
|
+
|
|
3
|
+
Authors:
|
|
4
|
+
Christian Trisno Sen Long Chen (christian.t.s.l.chen@gdplabs.id)
|
|
5
|
+
Fachriza Adhiatma (fachriza.d.adhiatma@gdplabs.id)
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
import sys
|
|
9
|
+
from typing import Any
|
|
10
|
+
|
|
11
|
+
from aip_agents.storage.providers.base import BaseStorageProvider, StorageError
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class InMemoryStorageProvider(BaseStorageProvider):
|
|
15
|
+
"""In-memory storage provider for fast access to small data.
|
|
16
|
+
|
|
17
|
+
This provider stores all data in memory, providing the fastest
|
|
18
|
+
access times but limited by available RAM.
|
|
19
|
+
|
|
20
|
+
Best for:
|
|
21
|
+
- Small to medium datasets
|
|
22
|
+
- Temporary storage
|
|
23
|
+
- Development and testing
|
|
24
|
+
- High-frequency access patterns
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
def __init__(self):
|
|
28
|
+
"""Initialize in-memory storage."""
|
|
29
|
+
self._storage: dict[str, Any] = {}
|
|
30
|
+
|
|
31
|
+
def store(self, key: str, data: Any) -> None:
|
|
32
|
+
"""Store data in memory.
|
|
33
|
+
|
|
34
|
+
Args:
|
|
35
|
+
key: Unique identifier for the data
|
|
36
|
+
data: Data to store
|
|
37
|
+
|
|
38
|
+
Raises:
|
|
39
|
+
StorageError: If storage operation fails
|
|
40
|
+
"""
|
|
41
|
+
try:
|
|
42
|
+
self._storage[key] = data
|
|
43
|
+
except Exception as e:
|
|
44
|
+
raise StorageError(f"Failed to store data in memory: {e}") from e
|
|
45
|
+
|
|
46
|
+
def retrieve(self, key: str) -> Any:
|
|
47
|
+
"""Retrieve data from memory.
|
|
48
|
+
|
|
49
|
+
Args:
|
|
50
|
+
key: Unique identifier for the data
|
|
51
|
+
|
|
52
|
+
Returns:
|
|
53
|
+
The stored data
|
|
54
|
+
|
|
55
|
+
Raises:
|
|
56
|
+
KeyError: If key not found
|
|
57
|
+
"""
|
|
58
|
+
if key not in self._storage:
|
|
59
|
+
raise KeyError(f"Key '{key}' not found in memory storage")
|
|
60
|
+
return self._storage[key]
|
|
61
|
+
|
|
62
|
+
def exists(self, key: str) -> bool:
|
|
63
|
+
"""Check if key exists in memory.
|
|
64
|
+
|
|
65
|
+
Args:
|
|
66
|
+
key: Unique identifier to check
|
|
67
|
+
|
|
68
|
+
Returns:
|
|
69
|
+
True if key exists, False otherwise
|
|
70
|
+
"""
|
|
71
|
+
return key in self._storage
|
|
72
|
+
|
|
73
|
+
def delete(self, key: str) -> None:
|
|
74
|
+
"""Delete data from memory.
|
|
75
|
+
|
|
76
|
+
Args:
|
|
77
|
+
key: Unique identifier for the data
|
|
78
|
+
"""
|
|
79
|
+
self._storage.pop(key, None)
|
|
80
|
+
|
|
81
|
+
def list_keys(self, prefix: str = "") -> list[str]:
|
|
82
|
+
"""List all keys with optional prefix.
|
|
83
|
+
|
|
84
|
+
Args:
|
|
85
|
+
prefix: Optional prefix to filter keys
|
|
86
|
+
|
|
87
|
+
Returns:
|
|
88
|
+
List of matching keys
|
|
89
|
+
"""
|
|
90
|
+
if prefix:
|
|
91
|
+
return [k for k in self._storage.keys() if k.startswith(prefix)]
|
|
92
|
+
return list(self._storage.keys())
|
|
93
|
+
|
|
94
|
+
def clear(self) -> None:
|
|
95
|
+
"""Clear all data from memory."""
|
|
96
|
+
self._storage.clear()
|
|
97
|
+
|
|
98
|
+
@property
|
|
99
|
+
def size_bytes(self) -> int:
|
|
100
|
+
"""Get approximate memory usage in bytes.
|
|
101
|
+
|
|
102
|
+
Returns:
|
|
103
|
+
Approximate memory usage in bytes
|
|
104
|
+
"""
|
|
105
|
+
return sum(sys.getsizeof(v) for v in self._storage.values())
|
|
106
|
+
|
|
107
|
+
@property
|
|
108
|
+
def count(self) -> int:
|
|
109
|
+
"""Get number of stored items.
|
|
110
|
+
|
|
111
|
+
Returns:
|
|
112
|
+
Number of items in storage
|
|
113
|
+
"""
|
|
114
|
+
return len(self._storage)
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
from aip_agents.storage.providers.base import BaseStorageProvider as BaseStorageProvider, StorageError as StorageError
|
|
2
|
+
from typing import Any
|
|
3
|
+
|
|
4
|
+
class InMemoryStorageProvider(BaseStorageProvider):
|
|
5
|
+
"""In-memory storage provider for fast access to small data.
|
|
6
|
+
|
|
7
|
+
This provider stores all data in memory, providing the fastest
|
|
8
|
+
access times but limited by available RAM.
|
|
9
|
+
|
|
10
|
+
Best for:
|
|
11
|
+
- Small to medium datasets
|
|
12
|
+
- Temporary storage
|
|
13
|
+
- Development and testing
|
|
14
|
+
- High-frequency access patterns
|
|
15
|
+
"""
|
|
16
|
+
def __init__(self) -> None:
|
|
17
|
+
"""Initialize in-memory storage."""
|
|
18
|
+
def store(self, key: str, data: Any) -> None:
|
|
19
|
+
"""Store data in memory.
|
|
20
|
+
|
|
21
|
+
Args:
|
|
22
|
+
key: Unique identifier for the data
|
|
23
|
+
data: Data to store
|
|
24
|
+
|
|
25
|
+
Raises:
|
|
26
|
+
StorageError: If storage operation fails
|
|
27
|
+
"""
|
|
28
|
+
def retrieve(self, key: str) -> Any:
|
|
29
|
+
"""Retrieve data from memory.
|
|
30
|
+
|
|
31
|
+
Args:
|
|
32
|
+
key: Unique identifier for the data
|
|
33
|
+
|
|
34
|
+
Returns:
|
|
35
|
+
The stored data
|
|
36
|
+
|
|
37
|
+
Raises:
|
|
38
|
+
KeyError: If key not found
|
|
39
|
+
"""
|
|
40
|
+
def exists(self, key: str) -> bool:
|
|
41
|
+
"""Check if key exists in memory.
|
|
42
|
+
|
|
43
|
+
Args:
|
|
44
|
+
key: Unique identifier to check
|
|
45
|
+
|
|
46
|
+
Returns:
|
|
47
|
+
True if key exists, False otherwise
|
|
48
|
+
"""
|
|
49
|
+
def delete(self, key: str) -> None:
|
|
50
|
+
"""Delete data from memory.
|
|
51
|
+
|
|
52
|
+
Args:
|
|
53
|
+
key: Unique identifier for the data
|
|
54
|
+
"""
|
|
55
|
+
def list_keys(self, prefix: str = '') -> list[str]:
|
|
56
|
+
"""List all keys with optional prefix.
|
|
57
|
+
|
|
58
|
+
Args:
|
|
59
|
+
prefix: Optional prefix to filter keys
|
|
60
|
+
|
|
61
|
+
Returns:
|
|
62
|
+
List of matching keys
|
|
63
|
+
"""
|
|
64
|
+
def clear(self) -> None:
|
|
65
|
+
"""Clear all data from memory."""
|
|
66
|
+
@property
|
|
67
|
+
def size_bytes(self) -> int:
|
|
68
|
+
"""Get approximate memory usage in bytes.
|
|
69
|
+
|
|
70
|
+
Returns:
|
|
71
|
+
Approximate memory usage in bytes
|
|
72
|
+
"""
|
|
73
|
+
@property
|
|
74
|
+
def count(self) -> int:
|
|
75
|
+
"""Get number of stored items.
|
|
76
|
+
|
|
77
|
+
Returns:
|
|
78
|
+
Number of items in storage
|
|
79
|
+
"""
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
"""Object storage provider implementation.
|
|
2
|
+
|
|
3
|
+
Authors:
|
|
4
|
+
Christian Trisno Sen Long Chen (christian.t.s.l.chen@gdplabs.id)
|
|
5
|
+
Fachriza Adhiatma (fachriza.d.adhiatma@gdplabs.id)
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
import json
|
|
9
|
+
import pickle
|
|
10
|
+
from typing import Any
|
|
11
|
+
|
|
12
|
+
from aip_agents.storage.base import BaseObjectStorageClient
|
|
13
|
+
from aip_agents.storage.providers.base import BaseStorageProvider, StorageError
|
|
14
|
+
from aip_agents.utils.logger import get_logger
|
|
15
|
+
|
|
16
|
+
logger = get_logger(__name__)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class ObjectStorageProvider(BaseStorageProvider):
|
|
20
|
+
"""Object storage provider for S3-compatible storage.
|
|
21
|
+
|
|
22
|
+
Works with any S3-compatible storage including AWS S3, MinIO,
|
|
23
|
+
Google Cloud Storage (with S3 compatibility), etc.
|
|
24
|
+
|
|
25
|
+
Best for:
|
|
26
|
+
- Very large datasets
|
|
27
|
+
- Distributed systems
|
|
28
|
+
- Cloud deployments
|
|
29
|
+
- Long-term storage
|
|
30
|
+
- Multi-region access
|
|
31
|
+
"""
|
|
32
|
+
|
|
33
|
+
def __init__(self, client: BaseObjectStorageClient, prefix: str = "", use_json: bool = False):
|
|
34
|
+
"""Initialize object storage provider.
|
|
35
|
+
|
|
36
|
+
Args:
|
|
37
|
+
client: Object storage client instance
|
|
38
|
+
prefix: Prefix for all keys (like a directory)
|
|
39
|
+
use_json: Use JSON format (True) or pickle (False)
|
|
40
|
+
"""
|
|
41
|
+
self.client = client
|
|
42
|
+
self.prefix = prefix.rstrip("/") + "/" if prefix else ""
|
|
43
|
+
self.use_json = use_json
|
|
44
|
+
|
|
45
|
+
def _get_object_key(self, key: str) -> str:
|
|
46
|
+
"""Get full object key with prefix.
|
|
47
|
+
|
|
48
|
+
Args:
|
|
49
|
+
key: Storage key
|
|
50
|
+
|
|
51
|
+
Returns:
|
|
52
|
+
Full object key with prefix
|
|
53
|
+
"""
|
|
54
|
+
return f"{self.prefix}{key}"
|
|
55
|
+
|
|
56
|
+
def _serialize_data(self, data: Any) -> bytes:
|
|
57
|
+
"""Serialize data to bytes.
|
|
58
|
+
|
|
59
|
+
Args:
|
|
60
|
+
data: Data to serialize
|
|
61
|
+
|
|
62
|
+
Returns:
|
|
63
|
+
Serialized data as bytes
|
|
64
|
+
|
|
65
|
+
Raises:
|
|
66
|
+
StorageError: If serialization fails
|
|
67
|
+
"""
|
|
68
|
+
try:
|
|
69
|
+
if self.use_json:
|
|
70
|
+
return json.dumps(data, default=str).encode("utf-8")
|
|
71
|
+
return pickle.dumps(data)
|
|
72
|
+
except Exception as e:
|
|
73
|
+
raise StorageError(f"Failed to serialize data: {e}") from e
|
|
74
|
+
|
|
75
|
+
def _deserialize_data(self, data_bytes: bytes) -> Any:
|
|
76
|
+
"""Deserialize data from bytes.
|
|
77
|
+
|
|
78
|
+
Args:
|
|
79
|
+
data_bytes: Serialized data
|
|
80
|
+
|
|
81
|
+
Returns:
|
|
82
|
+
Deserialized data
|
|
83
|
+
|
|
84
|
+
Raises:
|
|
85
|
+
StorageError: If deserialization fails
|
|
86
|
+
"""
|
|
87
|
+
try:
|
|
88
|
+
if self.use_json:
|
|
89
|
+
return json.loads(data_bytes.decode("utf-8"))
|
|
90
|
+
return pickle.loads(data_bytes)
|
|
91
|
+
except Exception as e:
|
|
92
|
+
raise StorageError(f"Failed to deserialize data: {e}") from e
|
|
93
|
+
|
|
94
|
+
def store(self, key: str, data: Any) -> None:
|
|
95
|
+
"""Store data in object storage.
|
|
96
|
+
|
|
97
|
+
Args:
|
|
98
|
+
key: Unique identifier for the data
|
|
99
|
+
data: Data to store
|
|
100
|
+
|
|
101
|
+
Raises:
|
|
102
|
+
StorageError: If storage operation fails
|
|
103
|
+
"""
|
|
104
|
+
object_key = self._get_object_key(key)
|
|
105
|
+
|
|
106
|
+
try:
|
|
107
|
+
data_bytes = self._serialize_data(data)
|
|
108
|
+
|
|
109
|
+
self.client.upload(
|
|
110
|
+
object_key=object_key,
|
|
111
|
+
file_stream=data_bytes,
|
|
112
|
+
content_type="application/json" if self.use_json else "application/octet-stream",
|
|
113
|
+
metadata={"storage_key": key, "format": "json" if self.use_json else "pickle"},
|
|
114
|
+
)
|
|
115
|
+
|
|
116
|
+
logger.debug(f"Stored data to object storage: {object_key}")
|
|
117
|
+
|
|
118
|
+
except Exception as e:
|
|
119
|
+
raise StorageError(f"Failed to store data in object storage: {e}") from e
|
|
120
|
+
|
|
121
|
+
def retrieve(self, key: str) -> Any:
|
|
122
|
+
"""Retrieve data from object storage.
|
|
123
|
+
|
|
124
|
+
Args:
|
|
125
|
+
key: Unique identifier for the data
|
|
126
|
+
|
|
127
|
+
Returns:
|
|
128
|
+
The stored data
|
|
129
|
+
|
|
130
|
+
Raises:
|
|
131
|
+
KeyError: If key not found
|
|
132
|
+
StorageError: If retrieval operation fails
|
|
133
|
+
"""
|
|
134
|
+
object_key = self._get_object_key(key)
|
|
135
|
+
|
|
136
|
+
try:
|
|
137
|
+
data_bytes = self.client.get(object_key)
|
|
138
|
+
return self._deserialize_data(data_bytes)
|
|
139
|
+
|
|
140
|
+
except KeyError as e:
|
|
141
|
+
raise KeyError(f"Key '{key}' not found in object storage: {e}") from e
|
|
142
|
+
except Exception as e:
|
|
143
|
+
raise StorageError(f"Failed to retrieve data from object storage: {e}") from e
|
|
144
|
+
|
|
145
|
+
def exists(self, key: str) -> bool:
|
|
146
|
+
"""Check if object exists.
|
|
147
|
+
|
|
148
|
+
Args:
|
|
149
|
+
key: Unique identifier to check
|
|
150
|
+
|
|
151
|
+
Returns:
|
|
152
|
+
True if key exists, False otherwise
|
|
153
|
+
"""
|
|
154
|
+
object_key = self._get_object_key(key)
|
|
155
|
+
|
|
156
|
+
try:
|
|
157
|
+
return self.client.object_exists(object_key)
|
|
158
|
+
except Exception as e:
|
|
159
|
+
logger.warning(f"Failed to check object existence: {e}")
|
|
160
|
+
return False
|
|
161
|
+
|
|
162
|
+
def delete(self, key: str) -> None:
|
|
163
|
+
"""Delete object.
|
|
164
|
+
|
|
165
|
+
Args:
|
|
166
|
+
key: Unique identifier for the data
|
|
167
|
+
"""
|
|
168
|
+
object_key = self._get_object_key(key)
|
|
169
|
+
|
|
170
|
+
try:
|
|
171
|
+
self.client.delete(object_key)
|
|
172
|
+
logger.debug(f"Deleted object: {object_key}")
|
|
173
|
+
except Exception as e:
|
|
174
|
+
logger.warning(f"Failed to delete object {object_key}: {e}")
|
|
175
|
+
|
|
176
|
+
def list_keys(self, prefix: str = "") -> list[str]:
|
|
177
|
+
"""List all keys with optional prefix.
|
|
178
|
+
|
|
179
|
+
Args:
|
|
180
|
+
prefix: Optional prefix to filter keys
|
|
181
|
+
|
|
182
|
+
Raises:
|
|
183
|
+
NotImplementedError: list_keys is not implemented
|
|
184
|
+
"""
|
|
185
|
+
raise NotImplementedError("list_keys not yet implemented for object storage")
|
|
186
|
+
|
|
187
|
+
def clear(self) -> None:
|
|
188
|
+
"""Clear all objects with the configured prefix.
|
|
189
|
+
|
|
190
|
+
Warning:
|
|
191
|
+
This is a dangerous operation!
|
|
192
|
+
"""
|
|
193
|
+
logger.warning("clear() not implemented for object storage - too dangerous")
|
|
194
|
+
raise NotImplementedError("Batch clear not implemented for safety reasons")
|
|
195
|
+
|
|
196
|
+
def get_presigned_url(self, key: str, expires_hours: int = 24) -> str | None:
|
|
197
|
+
"""Generate presigned URL for direct access.
|
|
198
|
+
|
|
199
|
+
Args:
|
|
200
|
+
key: Storage key
|
|
201
|
+
expires_hours: URL expiration in hours
|
|
202
|
+
|
|
203
|
+
Returns:
|
|
204
|
+
Presigned URL for direct access
|
|
205
|
+
|
|
206
|
+
Raises:
|
|
207
|
+
StorageError: If URL generation fails
|
|
208
|
+
"""
|
|
209
|
+
object_key = self._get_object_key(key)
|
|
210
|
+
|
|
211
|
+
try:
|
|
212
|
+
return self.client.generate_presigned_url(object_key=object_key, expires=expires_hours)
|
|
213
|
+
except Exception as e:
|
|
214
|
+
raise StorageError(f"Failed to generate presigned URL: {e}") from e
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
from _typeshed import Incomplete
|
|
2
|
+
from aip_agents.storage.base import BaseObjectStorageClient as BaseObjectStorageClient
|
|
3
|
+
from aip_agents.storage.providers.base import BaseStorageProvider as BaseStorageProvider, StorageError as StorageError
|
|
4
|
+
from aip_agents.utils.logger import get_logger as get_logger
|
|
5
|
+
from typing import Any
|
|
6
|
+
|
|
7
|
+
logger: Incomplete
|
|
8
|
+
|
|
9
|
+
class ObjectStorageProvider(BaseStorageProvider):
|
|
10
|
+
"""Object storage provider for S3-compatible storage.
|
|
11
|
+
|
|
12
|
+
Works with any S3-compatible storage including AWS S3, MinIO,
|
|
13
|
+
Google Cloud Storage (with S3 compatibility), etc.
|
|
14
|
+
|
|
15
|
+
Best for:
|
|
16
|
+
- Very large datasets
|
|
17
|
+
- Distributed systems
|
|
18
|
+
- Cloud deployments
|
|
19
|
+
- Long-term storage
|
|
20
|
+
- Multi-region access
|
|
21
|
+
"""
|
|
22
|
+
client: Incomplete
|
|
23
|
+
prefix: Incomplete
|
|
24
|
+
use_json: Incomplete
|
|
25
|
+
def __init__(self, client: BaseObjectStorageClient, prefix: str = '', use_json: bool = False) -> None:
|
|
26
|
+
"""Initialize object storage provider.
|
|
27
|
+
|
|
28
|
+
Args:
|
|
29
|
+
client: Object storage client instance
|
|
30
|
+
prefix: Prefix for all keys (like a directory)
|
|
31
|
+
use_json: Use JSON format (True) or pickle (False)
|
|
32
|
+
"""
|
|
33
|
+
def store(self, key: str, data: Any) -> None:
|
|
34
|
+
"""Store data in object storage.
|
|
35
|
+
|
|
36
|
+
Args:
|
|
37
|
+
key: Unique identifier for the data
|
|
38
|
+
data: Data to store
|
|
39
|
+
|
|
40
|
+
Raises:
|
|
41
|
+
StorageError: If storage operation fails
|
|
42
|
+
"""
|
|
43
|
+
def retrieve(self, key: str) -> Any:
|
|
44
|
+
"""Retrieve data from object storage.
|
|
45
|
+
|
|
46
|
+
Args:
|
|
47
|
+
key: Unique identifier for the data
|
|
48
|
+
|
|
49
|
+
Returns:
|
|
50
|
+
The stored data
|
|
51
|
+
|
|
52
|
+
Raises:
|
|
53
|
+
KeyError: If key not found
|
|
54
|
+
StorageError: If retrieval operation fails
|
|
55
|
+
"""
|
|
56
|
+
def exists(self, key: str) -> bool:
|
|
57
|
+
"""Check if object exists.
|
|
58
|
+
|
|
59
|
+
Args:
|
|
60
|
+
key: Unique identifier to check
|
|
61
|
+
|
|
62
|
+
Returns:
|
|
63
|
+
True if key exists, False otherwise
|
|
64
|
+
"""
|
|
65
|
+
def delete(self, key: str) -> None:
|
|
66
|
+
"""Delete object.
|
|
67
|
+
|
|
68
|
+
Args:
|
|
69
|
+
key: Unique identifier for the data
|
|
70
|
+
"""
|
|
71
|
+
def list_keys(self, prefix: str = '') -> list[str]:
|
|
72
|
+
"""List all keys with optional prefix.
|
|
73
|
+
|
|
74
|
+
Args:
|
|
75
|
+
prefix: Optional prefix to filter keys
|
|
76
|
+
|
|
77
|
+
Raises:
|
|
78
|
+
NotImplementedError: list_keys is not implemented
|
|
79
|
+
"""
|
|
80
|
+
def clear(self) -> None:
|
|
81
|
+
"""Clear all objects with the configured prefix.
|
|
82
|
+
|
|
83
|
+
Warning:
|
|
84
|
+
This is a dangerous operation!
|
|
85
|
+
"""
|
|
86
|
+
def get_presigned_url(self, key: str, expires_hours: int = 24) -> str | None:
|
|
87
|
+
"""Generate presigned URL for direct access.
|
|
88
|
+
|
|
89
|
+
Args:
|
|
90
|
+
key: Storage key
|
|
91
|
+
expires_hours: URL expiration in hours
|
|
92
|
+
|
|
93
|
+
Returns:
|
|
94
|
+
Presigned URL for direct access
|
|
95
|
+
|
|
96
|
+
Raises:
|
|
97
|
+
StorageError: If URL generation fails
|
|
98
|
+
"""
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"""Initialize Tools Module for AIP Agents."""
|
|
2
|
+
|
|
3
|
+
from importlib import import_module
|
|
4
|
+
from typing import TYPE_CHECKING
|
|
5
|
+
|
|
6
|
+
from aip_agents.tools.date_range_tool import DateRangeTool
|
|
7
|
+
from aip_agents.tools.gl_connector import GLConnectorTool
|
|
8
|
+
from aip_agents.tools.gl_connector_tools import (
|
|
9
|
+
BOSA_AUTOMATED_TOOLS,
|
|
10
|
+
GL_CONNECTORS_AUTOMATED_TOOLS,
|
|
11
|
+
)
|
|
12
|
+
from aip_agents.tools.time_tool import TimeTool
|
|
13
|
+
from aip_agents.tools.web_search import GoogleSerperTool
|
|
14
|
+
from aip_agents.utils.logger import get_logger
|
|
15
|
+
|
|
16
|
+
logger = get_logger(__name__)
|
|
17
|
+
|
|
18
|
+
__all__ = [
|
|
19
|
+
"BOSA_AUTOMATED_TOOLS",
|
|
20
|
+
"GL_CONNECTORS_AUTOMATED_TOOLS",
|
|
21
|
+
"GLConnectorTool",
|
|
22
|
+
"GoogleSerperTool",
|
|
23
|
+
"TimeTool",
|
|
24
|
+
"DateRangeTool",
|
|
25
|
+
]
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def _register_optional(module_path: str, export_name: str) -> None:
|
|
29
|
+
"""Try to import optional tool module and expose it in __all__.
|
|
30
|
+
|
|
31
|
+
Args:
|
|
32
|
+
module_path: The module path to import.
|
|
33
|
+
export_name: The name to export in __all__.
|
|
34
|
+
"""
|
|
35
|
+
try:
|
|
36
|
+
module = import_module(module_path)
|
|
37
|
+
tool = getattr(module, export_name)
|
|
38
|
+
__all__.append(export_name)
|
|
39
|
+
globals()[export_name] = tool
|
|
40
|
+
|
|
41
|
+
except ImportError as e:
|
|
42
|
+
logger.debug(f"Module {module_path} not found: {e}")
|
|
43
|
+
except AttributeError as e:
|
|
44
|
+
logger.debug(f"Tool {export_name} not found in module {module_path}: {e}")
|
|
45
|
+
except Exception as e:
|
|
46
|
+
logger.debug(f"Unexpected error loading {export_name}: {e}")
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
_register_optional("aip_agents.tools.browser_use", "BrowserUseTool")
|
|
50
|
+
_register_optional("aip_agents.tools.code_sandbox", "E2BCodeSandboxTool")
|
|
51
|
+
_register_optional("aip_agents.tools.document_loader", "DocxReaderTool")
|
|
52
|
+
_register_optional("aip_agents.tools.document_loader", "ExcelReaderTool")
|
|
53
|
+
_register_optional("aip_agents.tools.document_loader", "PDFReaderTool")
|
|
54
|
+
_register_optional("aip_agents.tools.execute_ptc_code", "create_execute_ptc_code_tool")
|
|
55
|
+
|
|
56
|
+
if TYPE_CHECKING:
|
|
57
|
+
from aip_agents.tools.browser_use import BrowserUseTool
|
|
58
|
+
from aip_agents.tools.code_sandbox import E2BCodeSandboxTool
|
|
59
|
+
from aip_agents.tools.document_loader import (
|
|
60
|
+
DocxReaderTool,
|
|
61
|
+
ExcelReaderTool,
|
|
62
|
+
PDFReaderTool,
|
|
63
|
+
)
|
|
64
|
+
from aip_agents.tools.execute_ptc_code import create_execute_ptc_code_tool
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from aip_agents.tools.browser_use import BrowserUseTool as BrowserUseTool
|
|
2
|
+
from aip_agents.tools.code_sandbox import E2BCodeSandboxTool as E2BCodeSandboxTool
|
|
3
|
+
from aip_agents.tools.date_range_tool import DateRangeTool as DateRangeTool
|
|
4
|
+
from aip_agents.tools.document_loader import DocxReaderTool as DocxReaderTool, ExcelReaderTool as ExcelReaderTool, PDFReaderTool as PDFReaderTool
|
|
5
|
+
from aip_agents.tools.execute_ptc_code import create_execute_ptc_code_tool as create_execute_ptc_code_tool
|
|
6
|
+
from aip_agents.tools.gl_connector import GLConnectorTool as GLConnectorTool
|
|
7
|
+
from aip_agents.tools.gl_connector_tools import BOSA_AUTOMATED_TOOLS as BOSA_AUTOMATED_TOOLS, GL_CONNECTORS_AUTOMATED_TOOLS as GL_CONNECTORS_AUTOMATED_TOOLS
|
|
8
|
+
from aip_agents.tools.time_tool import TimeTool as TimeTool
|
|
9
|
+
from aip_agents.tools.web_search import GoogleSerperTool as GoogleSerperTool
|
|
10
|
+
|
|
11
|
+
__all__ = ['BOSA_AUTOMATED_TOOLS', 'GL_CONNECTORS_AUTOMATED_TOOLS', 'GLConnectorTool', 'GoogleSerperTool', 'TimeTool', 'DateRangeTool', 'BrowserUseTool', 'E2BCodeSandboxTool', 'DocxReaderTool', 'ExcelReaderTool', 'PDFReaderTool', 'create_execute_ptc_code_tool']
|