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.
- 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,82 @@
|
|
|
1
|
+
"""Defines tools for stock market data.
|
|
2
|
+
|
|
3
|
+
Authors:
|
|
4
|
+
Christian Trisno Sen Long Chen (christian.t.s.l.chen@gdplabs.id)
|
|
5
|
+
Raymond Christopher (raymond.christopher@gdplabs.id)
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
import random
|
|
9
|
+
from typing import Any
|
|
10
|
+
|
|
11
|
+
from langchain_core.tools import tool
|
|
12
|
+
from pydantic import BaseModel, Field
|
|
13
|
+
|
|
14
|
+
from aip_agents.utils.logger import get_logger
|
|
15
|
+
|
|
16
|
+
logger = get_logger(__name__)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class StockPriceInput(BaseModel):
|
|
20
|
+
"""Input for the stock price tool."""
|
|
21
|
+
|
|
22
|
+
symbol: str = Field(description="The stock symbol (e.g., AAPL, MSFT) to get the price for.")
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
@tool(args_schema=StockPriceInput)
|
|
26
|
+
def get_stock_price(symbol: str) -> dict[str, Any]:
|
|
27
|
+
"""Get current stock price and performance data for a given symbol.
|
|
28
|
+
|
|
29
|
+
Args:
|
|
30
|
+
symbol (str): The stock symbol (e.g., AAPL, MSFT) to get the price for.
|
|
31
|
+
|
|
32
|
+
Returns:
|
|
33
|
+
dict[str, Any]: Dictionary containing stock price and performance data.
|
|
34
|
+
"""
|
|
35
|
+
logger.info(f"Getting stock price for {symbol}")
|
|
36
|
+
# Simulate stock price data
|
|
37
|
+
price = round(random.uniform(100, 1000), 2)
|
|
38
|
+
change = round(random.uniform(-10, 10), 2)
|
|
39
|
+
change_percent = round((change / price) * 100, 2)
|
|
40
|
+
return {
|
|
41
|
+
"symbol": symbol.upper(),
|
|
42
|
+
"price": price,
|
|
43
|
+
"change": change,
|
|
44
|
+
"change_percent": change_percent,
|
|
45
|
+
"currency": "USD",
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
class StockNewsInput(BaseModel):
|
|
50
|
+
"""Input for the stock news tool."""
|
|
51
|
+
|
|
52
|
+
symbol: str = Field(description="The stock symbol (e.g., AAPL, MSFT) to get news for.")
|
|
53
|
+
days: int = Field(default=7, description="Number of days of news to retrieve.")
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
@tool(args_schema=StockNewsInput)
|
|
57
|
+
def get_stock_news(symbol: str, days: int = 7) -> dict[str, Any]:
|
|
58
|
+
"""Get recent news for a stock for a specified number of days.
|
|
59
|
+
|
|
60
|
+
Args:
|
|
61
|
+
symbol (str): The stock symbol (e.g., AAPL, MSFT) to get news for.
|
|
62
|
+
days (int, optional): Number of days of news to retrieve. Defaults to 7.
|
|
63
|
+
|
|
64
|
+
Returns:
|
|
65
|
+
dict[str, Any]: Dictionary containing stock news data.
|
|
66
|
+
"""
|
|
67
|
+
logger.info(f"Getting stock news for {symbol} for the last {days} days")
|
|
68
|
+
# Simulate news data
|
|
69
|
+
news_items = [
|
|
70
|
+
f"{symbol.upper()} announces breakthrough in AI technology",
|
|
71
|
+
f"Analysts raise price target for {symbol.upper()}",
|
|
72
|
+
f"{symbol.upper()} reports better than expected earnings",
|
|
73
|
+
f"New product launch boosts {symbol.upper()} shares",
|
|
74
|
+
f"{symbol.upper()} partners with a major tech firm",
|
|
75
|
+
f"Regulatory changes impact {symbol.upper()}'s sector",
|
|
76
|
+
f"{symbol.upper()} to release new sustainability report",
|
|
77
|
+
]
|
|
78
|
+
return {
|
|
79
|
+
"symbol": symbol.upper(),
|
|
80
|
+
"news": random.sample(news_items, min(days, len(news_items))),
|
|
81
|
+
"days": days,
|
|
82
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
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
|
+
"""
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
"""Table generator tool for demonstrating artifact generation.
|
|
2
|
+
|
|
3
|
+
This tool generates sample data tables and returns both a markdown representation
|
|
4
|
+
for the agent and a CSV file artifact for the user.
|
|
5
|
+
|
|
6
|
+
Authors:
|
|
7
|
+
Christian Trisno Sen Long Chen (christian.t.s.l.chen@gdplabs.id)
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
import csv
|
|
11
|
+
import io
|
|
12
|
+
import random
|
|
13
|
+
from typing import Any
|
|
14
|
+
|
|
15
|
+
from langchain_core.tools import BaseTool
|
|
16
|
+
from pydantic import BaseModel, Field
|
|
17
|
+
|
|
18
|
+
from aip_agents.a2a.types import MimeType
|
|
19
|
+
from aip_agents.utils.artifact_helpers import create_artifact_response
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class TableGeneratorInput(BaseModel):
|
|
23
|
+
"""Input schema for table generator tool."""
|
|
24
|
+
|
|
25
|
+
rows: int = Field(default=5, description="Number of rows to generate", ge=1, le=100)
|
|
26
|
+
columns: list[str] = Field(default=["Name", "Age", "City"], description="Column names for the table")
|
|
27
|
+
table_name: str = Field(default="sample_data", description="Name for the generated table")
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class TableGeneratorTool(BaseTool):
|
|
31
|
+
"""Tool that generates sample data tables with artifact support.
|
|
32
|
+
|
|
33
|
+
This tool demonstrates the standardized artifact format by:
|
|
34
|
+
1. Generating sample data
|
|
35
|
+
2. Creating a markdown table for the agent's context
|
|
36
|
+
3. Creating a CSV file artifact for the user
|
|
37
|
+
"""
|
|
38
|
+
|
|
39
|
+
name: str = "table_generator"
|
|
40
|
+
description: str = "Generate sample data tables with specified columns and rows"
|
|
41
|
+
args_schema: type[BaseModel] = TableGeneratorInput
|
|
42
|
+
|
|
43
|
+
def _run(self, rows: int = 5, columns: list[str] = None, table_name: str = "sample_data") -> dict[str, Any]:
|
|
44
|
+
"""Generate a table synchronously.
|
|
45
|
+
|
|
46
|
+
Args:
|
|
47
|
+
rows (int, optional): Number of rows to generate. Defaults to 5.
|
|
48
|
+
columns (list[str], optional): Column names for the table. Defaults to None.
|
|
49
|
+
table_name (str, optional): Name for the generated table. Defaults to "sample_data".
|
|
50
|
+
|
|
51
|
+
Returns:
|
|
52
|
+
dict[str, Any]: Response containing artifact data and metadata.
|
|
53
|
+
"""
|
|
54
|
+
if columns is None:
|
|
55
|
+
columns = ["Name", "Age", "City"]
|
|
56
|
+
|
|
57
|
+
# Generate sample data
|
|
58
|
+
sample_data = self._generate_sample_data(rows, columns)
|
|
59
|
+
|
|
60
|
+
# Create markdown table for agent
|
|
61
|
+
markdown_table = self._create_markdown_table(sample_data, columns)
|
|
62
|
+
|
|
63
|
+
# Create CSV data for artifact
|
|
64
|
+
csv_data = self._create_csv_data(sample_data, columns)
|
|
65
|
+
csv_bytes = csv_data.encode("utf-8")
|
|
66
|
+
|
|
67
|
+
# Return standardized format using utility function
|
|
68
|
+
return create_artifact_response(
|
|
69
|
+
result=f"I have generated a {rows}-row table with columns: {', '.join(columns)}.\n\n{markdown_table}",
|
|
70
|
+
artifact_data=csv_bytes,
|
|
71
|
+
artifact_name=f"{table_name}.csv",
|
|
72
|
+
artifact_description=f"Generated table with {rows} rows and {len(columns)} columns",
|
|
73
|
+
mime_type=MimeType.TEXT_CSV,
|
|
74
|
+
)
|
|
75
|
+
|
|
76
|
+
async def _arun(self, rows: int = 5, columns: list[str] = None, table_name: str = "sample_data") -> dict[str, Any]:
|
|
77
|
+
"""Generate a table asynchronously.
|
|
78
|
+
|
|
79
|
+
Args:
|
|
80
|
+
rows (int, optional): Number of rows to generate. Defaults to 5.
|
|
81
|
+
columns (list[str], optional): Column names for the table. Defaults to None.
|
|
82
|
+
table_name (str, optional): Name for the generated table. Defaults to "sample_data".
|
|
83
|
+
|
|
84
|
+
Returns:
|
|
85
|
+
dict[str, Any]: Response containing artifact data and metadata.
|
|
86
|
+
"""
|
|
87
|
+
return self._run(rows, columns, table_name)
|
|
88
|
+
|
|
89
|
+
def _generate_sample_data(self, rows: int, columns: list[str]) -> list[list[str]]:
|
|
90
|
+
"""Generate sample data based on column names.
|
|
91
|
+
|
|
92
|
+
Args:
|
|
93
|
+
rows (int): Number of rows to generate.
|
|
94
|
+
columns (list[str]): Column names for the table.
|
|
95
|
+
|
|
96
|
+
Returns:
|
|
97
|
+
list[list[str]]: Generated sample data as list of rows.
|
|
98
|
+
"""
|
|
99
|
+
data = []
|
|
100
|
+
for i in range(rows):
|
|
101
|
+
row = []
|
|
102
|
+
for col in columns:
|
|
103
|
+
col_lower = col.lower()
|
|
104
|
+
if "name" in col_lower:
|
|
105
|
+
names = ["Alice", "Bob", "Charlie", "Diana", "Eve", "Frank", "Grace", "Henry"]
|
|
106
|
+
row.append(random.choice(names))
|
|
107
|
+
elif "age" in col_lower:
|
|
108
|
+
row.append(str(random.randint(20, 65)))
|
|
109
|
+
elif "city" in col_lower:
|
|
110
|
+
cities = ["New York", "London", "Tokyo", "Paris", "Sydney", "Berlin", "Toronto", "Mumbai"]
|
|
111
|
+
row.append(random.choice(cities))
|
|
112
|
+
elif "email" in col_lower:
|
|
113
|
+
domains = ["gmail.com", "yahoo.com", "outlook.com", "company.com"]
|
|
114
|
+
username = f"user{i + 1}"
|
|
115
|
+
row.append(f"{username}@{random.choice(domains)}")
|
|
116
|
+
elif "score" in col_lower or "rating" in col_lower:
|
|
117
|
+
row.append(str(random.randint(1, 100)))
|
|
118
|
+
else:
|
|
119
|
+
row.append(f"Value{i + 1}")
|
|
120
|
+
data.append(row)
|
|
121
|
+
return data
|
|
122
|
+
|
|
123
|
+
def _create_markdown_table(self, data: list[list[str]], columns: list[str]) -> str:
|
|
124
|
+
"""Create a markdown table representation.
|
|
125
|
+
|
|
126
|
+
Args:
|
|
127
|
+
data (list[list[str]]): Table data as list of rows.
|
|
128
|
+
columns (list[str]): Column names for the table.
|
|
129
|
+
|
|
130
|
+
Returns:
|
|
131
|
+
str: Markdown formatted table string.
|
|
132
|
+
"""
|
|
133
|
+
if not data:
|
|
134
|
+
return "| No data |\n|---------|"
|
|
135
|
+
|
|
136
|
+
# Header
|
|
137
|
+
header = "| " + " | ".join(columns) + " |"
|
|
138
|
+
separator = "| " + " | ".join(["---"] * len(columns)) + " |"
|
|
139
|
+
|
|
140
|
+
# Rows
|
|
141
|
+
rows = []
|
|
142
|
+
for row in data:
|
|
143
|
+
rows.append("| " + " | ".join(row) + " |")
|
|
144
|
+
|
|
145
|
+
return "\n".join([header, separator] + rows)
|
|
146
|
+
|
|
147
|
+
def _create_csv_data(self, data: list[list[str]], columns: list[str]) -> str:
|
|
148
|
+
"""Create CSV data string.
|
|
149
|
+
|
|
150
|
+
Args:
|
|
151
|
+
data (list[list[str]]): Table data as list of rows.
|
|
152
|
+
columns (list[str]): Column names for the table.
|
|
153
|
+
|
|
154
|
+
Returns:
|
|
155
|
+
str: CSV formatted data string.
|
|
156
|
+
"""
|
|
157
|
+
output = io.StringIO()
|
|
158
|
+
writer = csv.writer(output)
|
|
159
|
+
|
|
160
|
+
# Write header
|
|
161
|
+
writer.writerow(columns)
|
|
162
|
+
|
|
163
|
+
# Write data
|
|
164
|
+
for row in data:
|
|
165
|
+
writer.writerow(row)
|
|
166
|
+
|
|
167
|
+
return output.getvalue()
|
|
@@ -0,0 +1,22 @@
|
|
|
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]
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"""Tool to get the current time.
|
|
2
|
+
|
|
3
|
+
Authors:
|
|
4
|
+
Saul Sayers (saul.sayers@gdplabs.id)
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from datetime import datetime
|
|
8
|
+
|
|
9
|
+
from gllm_core.schema import Chunk
|
|
10
|
+
from langchain_core.tools import BaseTool
|
|
11
|
+
from pydantic import BaseModel, Field
|
|
12
|
+
|
|
13
|
+
FORMAT_STRING = "%m/%d/%y %H:%M:%S"
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class TimeToolInput(BaseModel):
|
|
17
|
+
"""Input schema for the TimeTool."""
|
|
18
|
+
|
|
19
|
+
datetime_format: str = Field(
|
|
20
|
+
default=FORMAT_STRING,
|
|
21
|
+
description="""
|
|
22
|
+
Optional datetime format string. Default: '%m/%d/%y %H:%M:%S'
|
|
23
|
+
|
|
24
|
+
Common format codes:
|
|
25
|
+
%Y: Year with century (2024)
|
|
26
|
+
%m: Month as number (01-12)
|
|
27
|
+
%d: Day of month (01-31)
|
|
28
|
+
%A: Full weekday name (Wednesday)
|
|
29
|
+
%a: Short weekday name (Wed)
|
|
30
|
+
%H: Hour (00-23)
|
|
31
|
+
%M: Minute (00-59)
|
|
32
|
+
%S: Second (00-59)
|
|
33
|
+
%Z: Timezone name
|
|
34
|
+
%j: Day of year (001-366)
|
|
35
|
+
%W: Week number (00-53, Monday first)
|
|
36
|
+
%U: Week number (00-53, Sunday first)
|
|
37
|
+
%c: Locale's date and time
|
|
38
|
+
%x: Locale's date
|
|
39
|
+
%X: Locale's time
|
|
40
|
+
""",
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
class TimeTool(BaseTool):
|
|
45
|
+
"""Tool to get the current time."""
|
|
46
|
+
|
|
47
|
+
name: str = "time_tool"
|
|
48
|
+
description: str = """
|
|
49
|
+
Useful for getting the current time in a specified format or the default format.
|
|
50
|
+
Default format: '%m/%d/%y %H:%M:%S' (e.g., '05/15/24 17:30:00')
|
|
51
|
+
"""
|
|
52
|
+
save_output_history: bool = True
|
|
53
|
+
args_schema: type[BaseModel] = TimeToolInput
|
|
54
|
+
|
|
55
|
+
def _run(self, datetime_format: str = FORMAT_STRING) -> str:
|
|
56
|
+
"""Get the current time formatted as a string.
|
|
57
|
+
|
|
58
|
+
Args:
|
|
59
|
+
datetime_format (str): The format string to use for the datetime output. Defaults to FORMAT_STRING.
|
|
60
|
+
|
|
61
|
+
Returns:
|
|
62
|
+
str: The current time formatted according to the provided format string.
|
|
63
|
+
"""
|
|
64
|
+
return datetime.now().strftime(datetime_format)
|
|
65
|
+
|
|
66
|
+
def _format_agent_reference(self, tool_output: str) -> list[Chunk]:
|
|
67
|
+
"""Format the tool output as a reference chunk for agent use.
|
|
68
|
+
|
|
69
|
+
Args:
|
|
70
|
+
tool_output (str): The output string from the tool execution.
|
|
71
|
+
|
|
72
|
+
Returns:
|
|
73
|
+
list[Chunk]: A list containing a single reference chunk with the tool output and metadata.
|
|
74
|
+
"""
|
|
75
|
+
return [
|
|
76
|
+
Chunk(
|
|
77
|
+
content=tool_output,
|
|
78
|
+
metadata={
|
|
79
|
+
"tool_name": self.name,
|
|
80
|
+
},
|
|
81
|
+
)
|
|
82
|
+
]
|
|
@@ -0,0 +1,15 @@
|
|
|
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]
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"""Weather Forecast Tool."""
|
|
2
|
+
|
|
3
|
+
from typing import Literal
|
|
4
|
+
|
|
5
|
+
# Predefined weather data for each day
|
|
6
|
+
DAILY_WEATHER = {
|
|
7
|
+
"monday": {"condition": "sunny", "temp_low": 28, "temp_high": 32},
|
|
8
|
+
"tuesday": {"condition": "partly cloudy", "temp_low": 25, "temp_high": 28},
|
|
9
|
+
"wednesday": {"condition": "cloudy", "temp_low": 22, "temp_high": 25},
|
|
10
|
+
"thursday": {"condition": "light rain", "temp_low": 20, "temp_high": 23},
|
|
11
|
+
"friday": {"condition": "windy", "temp_low": 19, "temp_high": 24},
|
|
12
|
+
"saturday": {"condition": "sunny", "temp_low": 27, "temp_high": 31},
|
|
13
|
+
"sunday": {"condition": "partly cloudy", "temp_low": 24, "temp_high": 27},
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
DayOfWeek = Literal["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"]
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def get_weather_forecast(day: DayOfWeek) -> str:
|
|
20
|
+
"""Get the weather forecast for a specific day of the week.
|
|
21
|
+
|
|
22
|
+
Args:
|
|
23
|
+
day: The day of the week (monday, tuesday, wednesday, etc.)
|
|
24
|
+
|
|
25
|
+
Returns:
|
|
26
|
+
str: A weather forecast message including conditions and temperature.
|
|
27
|
+
"""
|
|
28
|
+
# Get the predefined weather data for the day
|
|
29
|
+
weather_data = DAILY_WEATHER[day]
|
|
30
|
+
|
|
31
|
+
# Format the forecast message
|
|
32
|
+
forecast = (
|
|
33
|
+
f"Weather forecast for {day.capitalize()}: "
|
|
34
|
+
f"{weather_data['condition'].capitalize()} with temperatures between "
|
|
35
|
+
f"{weather_data['temp_low']}°C and {weather_data['temp_high']}°C"
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
return forecast
|
|
@@ -0,0 +1,14 @@
|
|
|
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
|
+
"""
|