aip-agents-binary 0.6.4__py3-none-any.whl → 0.6.5__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/agent/__init__.py +44 -4
- aip_agents/mcp/client/__init__.py +38 -2
- aip_agents/sentry/sentry.py +29 -8
- {aip_agents_binary-0.6.4.dist-info → aip_agents_binary-0.6.5.dist-info}/METADATA +1 -1
- {aip_agents_binary-0.6.4.dist-info → aip_agents_binary-0.6.5.dist-info}/RECORD +7 -305
- aip_agents/__init__.pyi +0 -19
- aip_agents/a2a/__init__.pyi +0 -3
- aip_agents/a2a/server/__init__.pyi +0 -4
- aip_agents/a2a/server/base_executor.pyi +0 -73
- aip_agents/a2a/server/google_adk_executor.pyi +0 -51
- aip_agents/a2a/server/langflow_executor.pyi +0 -43
- aip_agents/a2a/server/langgraph_executor.pyi +0 -47
- aip_agents/a2a/types.pyi +0 -132
- aip_agents/agent/__init__.pyi +0 -9
- aip_agents/agent/base_agent.pyi +0 -221
- aip_agents/agent/base_langgraph_agent.pyi +0 -233
- aip_agents/agent/google_adk_agent.pyi +0 -141
- aip_agents/agent/google_adk_constants.pyi +0 -3
- aip_agents/agent/hitl/__init__.pyi +0 -6
- aip_agents/agent/hitl/config.pyi +0 -15
- aip_agents/agent/hitl/langgraph_hitl_mixin.pyi +0 -42
- aip_agents/agent/hitl/manager.pyi +0 -200
- aip_agents/agent/hitl/models.pyi +0 -3
- aip_agents/agent/hitl/prompt/__init__.pyi +0 -4
- aip_agents/agent/hitl/prompt/base.pyi +0 -24
- aip_agents/agent/hitl/prompt/deferred.pyi +0 -30
- aip_agents/agent/hitl/registry.pyi +0 -101
- aip_agents/agent/interface.pyi +0 -81
- aip_agents/agent/interfaces.pyi +0 -44
- aip_agents/agent/langflow_agent.pyi +0 -133
- aip_agents/agent/langgraph_memory_enhancer_agent.pyi +0 -50
- aip_agents/agent/langgraph_react_agent.pyi +0 -170
- aip_agents/agent/system_instruction_context.pyi +0 -13
- aip_agents/clients/__init__.pyi +0 -4
- aip_agents/clients/langflow/__init__.pyi +0 -4
- aip_agents/clients/langflow/client.pyi +0 -140
- aip_agents/clients/langflow/types.pyi +0 -7
- aip_agents/constants.pyi +0 -7
- aip_agents/examples/__init__.pyi +0 -0
- aip_agents/examples/compare_streaming_client.pyi +0 -48
- aip_agents/examples/compare_streaming_server.pyi +0 -18
- aip_agents/examples/hello_world_a2a_google_adk_client.pyi +0 -9
- aip_agents/examples/hello_world_a2a_google_adk_client_agent.pyi +0 -9
- aip_agents/examples/hello_world_a2a_google_adk_client_streaming.pyi +0 -9
- aip_agents/examples/hello_world_a2a_google_adk_server.pyi +0 -15
- aip_agents/examples/hello_world_a2a_langchain_client.pyi +0 -5
- aip_agents/examples/hello_world_a2a_langchain_client_agent.pyi +0 -5
- aip_agents/examples/hello_world_a2a_langchain_client_lm_invoker.pyi +0 -5
- aip_agents/examples/hello_world_a2a_langchain_client_streaming.pyi +0 -5
- aip_agents/examples/hello_world_a2a_langchain_reference_client_streaming.pyi +0 -5
- aip_agents/examples/hello_world_a2a_langchain_reference_server.pyi +0 -15
- aip_agents/examples/hello_world_a2a_langchain_server.pyi +0 -15
- aip_agents/examples/hello_world_a2a_langchain_server_lm_invoker.pyi +0 -15
- aip_agents/examples/hello_world_a2a_langflow_client.pyi +0 -9
- aip_agents/examples/hello_world_a2a_langflow_server.pyi +0 -14
- aip_agents/examples/hello_world_a2a_langgraph_artifact_client.pyi +0 -5
- aip_agents/examples/hello_world_a2a_langgraph_artifact_client_streaming.pyi +0 -5
- aip_agents/examples/hello_world_a2a_langgraph_artifact_server.pyi +0 -16
- aip_agents/examples/hello_world_a2a_langgraph_client.pyi +0 -9
- aip_agents/examples/hello_world_a2a_langgraph_client_agent.pyi +0 -9
- aip_agents/examples/hello_world_a2a_langgraph_client_agent_lm_invoker.pyi +0 -2
- aip_agents/examples/hello_world_a2a_langgraph_client_streaming.pyi +0 -9
- aip_agents/examples/hello_world_a2a_langgraph_client_streaming_lm_invoker.pyi +0 -5
- aip_agents/examples/hello_world_a2a_langgraph_client_streaming_tool_streaming.pyi +0 -5
- aip_agents/examples/hello_world_a2a_langgraph_server.pyi +0 -14
- aip_agents/examples/hello_world_a2a_langgraph_server_lm_invoker.pyi +0 -15
- aip_agents/examples/hello_world_a2a_langgraph_server_tool_streaming.pyi +0 -15
- aip_agents/examples/hello_world_a2a_mcp_langgraph.pyi +0 -48
- aip_agents/examples/hello_world_a2a_three_level_agent_hierarchy_client.pyi +0 -48
- aip_agents/examples/hello_world_a2a_three_level_agent_hierarchy_server.pyi +0 -45
- aip_agents/examples/hello_world_a2a_with_metadata_langchain_client.pyi +0 -5
- aip_agents/examples/hello_world_a2a_with_metadata_langchain_server_lm_invoker.pyi +0 -15
- aip_agents/examples/hello_world_google_adk.pyi +0 -5
- aip_agents/examples/hello_world_google_adk_mcp_http.pyi +0 -5
- aip_agents/examples/hello_world_google_adk_mcp_http_stream.pyi +0 -5
- aip_agents/examples/hello_world_google_adk_mcp_sse.pyi +0 -5
- aip_agents/examples/hello_world_google_adk_mcp_sse_stream.pyi +0 -5
- aip_agents/examples/hello_world_google_adk_mcp_stdio.pyi +0 -5
- aip_agents/examples/hello_world_google_adk_mcp_stdio_stream.pyi +0 -5
- aip_agents/examples/hello_world_google_adk_stream.pyi +0 -5
- aip_agents/examples/hello_world_langchain.pyi +0 -5
- aip_agents/examples/hello_world_langchain_lm_invoker.pyi +0 -2
- aip_agents/examples/hello_world_langchain_mcp_http.pyi +0 -5
- aip_agents/examples/hello_world_langchain_mcp_http_interactive.pyi +0 -16
- aip_agents/examples/hello_world_langchain_mcp_http_stream.pyi +0 -5
- aip_agents/examples/hello_world_langchain_mcp_multi_server.pyi +0 -18
- aip_agents/examples/hello_world_langchain_mcp_sse.pyi +0 -5
- aip_agents/examples/hello_world_langchain_mcp_sse_stream.pyi +0 -5
- aip_agents/examples/hello_world_langchain_mcp_stdio.pyi +0 -5
- aip_agents/examples/hello_world_langchain_mcp_stdio_stream.pyi +0 -5
- aip_agents/examples/hello_world_langchain_stream.pyi +0 -5
- aip_agents/examples/hello_world_langchain_stream_lm_invoker.pyi +0 -5
- aip_agents/examples/hello_world_langflow_agent.pyi +0 -35
- aip_agents/examples/hello_world_langgraph.pyi +0 -5
- aip_agents/examples/hello_world_langgraph_gl_connector_twitter.pyi +0 -5
- aip_agents/examples/hello_world_langgraph_mcp_http.pyi +0 -5
- aip_agents/examples/hello_world_langgraph_mcp_http_stream.pyi +0 -5
- aip_agents/examples/hello_world_langgraph_mcp_sse.pyi +0 -5
- aip_agents/examples/hello_world_langgraph_mcp_sse_stream.pyi +0 -5
- aip_agents/examples/hello_world_langgraph_mcp_stdio.pyi +0 -5
- aip_agents/examples/hello_world_langgraph_mcp_stdio_stream.pyi +0 -5
- aip_agents/examples/hello_world_langgraph_stream.pyi +0 -5
- aip_agents/examples/hello_world_langgraph_stream_lm_invoker.pyi +0 -5
- aip_agents/examples/hello_world_model_switch_cli.pyi +0 -30
- aip_agents/examples/hello_world_multi_agent_adk.pyi +0 -6
- aip_agents/examples/hello_world_multi_agent_langchain.pyi +0 -5
- aip_agents/examples/hello_world_multi_agent_langgraph.pyi +0 -5
- aip_agents/examples/hello_world_multi_agent_langgraph_lm_invoker.pyi +0 -5
- aip_agents/examples/hello_world_pii_logger.pyi +0 -5
- aip_agents/examples/hello_world_ptc.pyi +0 -5
- aip_agents/examples/hello_world_sentry.pyi +0 -21
- aip_agents/examples/hello_world_step_limits.pyi +0 -17
- aip_agents/examples/hello_world_stock_a2a_server.pyi +0 -17
- aip_agents/examples/hello_world_tool_output_client.pyi +0 -5
- aip_agents/examples/hello_world_tool_output_server.pyi +0 -19
- aip_agents/examples/hitl_demo.pyi +0 -67
- aip_agents/examples/pii_demo_langgraph_client.pyi +0 -5
- aip_agents/examples/pii_demo_langgraph_server.pyi +0 -20
- aip_agents/examples/pii_demo_multi_agent_client.pyi +0 -5
- aip_agents/examples/pii_demo_multi_agent_server.pyi +0 -40
- aip_agents/examples/todolist_planning_a2a_langchain_client.pyi +0 -5
- aip_agents/examples/todolist_planning_a2a_langgraph_server.pyi +0 -19
- aip_agents/examples/tools/__init__.pyi +0 -9
- aip_agents/examples/tools/adk_arithmetic_tools.pyi +0 -24
- aip_agents/examples/tools/adk_weather_tool.pyi +0 -18
- aip_agents/examples/tools/data_generator_tool.pyi +0 -15
- aip_agents/examples/tools/data_visualization_tool.pyi +0 -19
- aip_agents/examples/tools/image_artifact_tool.pyi +0 -26
- aip_agents/examples/tools/langchain_arithmetic_tools.pyi +0 -17
- aip_agents/examples/tools/langchain_currency_exchange_tool.pyi +0 -20
- aip_agents/examples/tools/langchain_graph_artifact_tool.pyi +0 -25
- aip_agents/examples/tools/langchain_weather_tool.pyi +0 -19
- aip_agents/examples/tools/langgraph_streaming_tool.pyi +0 -43
- aip_agents/examples/tools/mock_retrieval_tool.pyi +0 -13
- aip_agents/examples/tools/pii_demo_tools.pyi +0 -54
- aip_agents/examples/tools/random_chart_tool.pyi +0 -20
- aip_agents/examples/tools/serper_tool.pyi +0 -16
- aip_agents/examples/tools/stock_tools.pyi +0 -36
- aip_agents/examples/tools/table_generator_tool.pyi +0 -22
- aip_agents/examples/tools/time_tool.pyi +0 -15
- aip_agents/examples/tools/weather_forecast_tool.pyi +0 -14
- aip_agents/guardrails/__init__.pyi +0 -6
- aip_agents/guardrails/engines/__init__.pyi +0 -4
- aip_agents/guardrails/engines/base.pyi +0 -61
- aip_agents/guardrails/engines/nemo.pyi +0 -46
- aip_agents/guardrails/engines/phrase_matcher.pyi +0 -48
- aip_agents/guardrails/exceptions.pyi +0 -23
- aip_agents/guardrails/manager.pyi +0 -42
- aip_agents/guardrails/middleware.pyi +0 -87
- aip_agents/guardrails/schemas.pyi +0 -43
- aip_agents/guardrails/utils.pyi +0 -19
- aip_agents/mcp/__init__.pyi +0 -0
- aip_agents/mcp/client/__init__.pyi +0 -5
- aip_agents/mcp/client/base_mcp_client.pyi +0 -148
- aip_agents/mcp/client/connection_manager.pyi +0 -51
- aip_agents/mcp/client/google_adk/__init__.pyi +0 -3
- aip_agents/mcp/client/google_adk/client.pyi +0 -75
- aip_agents/mcp/client/langchain/__init__.pyi +0 -3
- aip_agents/mcp/client/langchain/client.pyi +0 -48
- aip_agents/mcp/client/persistent_session.pyi +0 -122
- aip_agents/mcp/client/session_pool.pyi +0 -101
- aip_agents/mcp/client/transports.pyi +0 -132
- aip_agents/mcp/utils/__init__.pyi +0 -0
- aip_agents/mcp/utils/config_validator.pyi +0 -82
- aip_agents/memory/__init__.pyi +0 -5
- aip_agents/memory/adapters/__init__.pyi +0 -4
- aip_agents/memory/adapters/base_adapter.pyi +0 -176
- aip_agents/memory/adapters/mem0.pyi +0 -22
- aip_agents/memory/base.pyi +0 -60
- aip_agents/memory/constants.pyi +0 -25
- aip_agents/memory/factory.pyi +0 -24
- aip_agents/memory/guidance.pyi +0 -3
- aip_agents/memory/simple_memory.pyi +0 -23
- aip_agents/middleware/__init__.pyi +0 -5
- aip_agents/middleware/base.pyi +0 -75
- aip_agents/middleware/manager.pyi +0 -84
- aip_agents/middleware/todolist.pyi +0 -125
- aip_agents/ptc/__init__.pyi +0 -10
- aip_agents/ptc/doc_gen.pyi +0 -40
- aip_agents/ptc/exceptions.pyi +0 -22
- aip_agents/ptc/executor.pyi +0 -73
- aip_agents/ptc/mcp/__init__.pyi +0 -7
- aip_agents/ptc/mcp/sandbox_bridge.pyi +0 -47
- aip_agents/ptc/mcp/templates/__init__.pyi +0 -0
- aip_agents/ptc/naming.pyi +0 -76
- aip_agents/ptc/payload.pyi +0 -15
- aip_agents/ptc/prompt_builder.pyi +0 -55
- aip_agents/ptc/ptc_helper.pyi +0 -1
- aip_agents/ptc/sandbox_bridge.pyi +0 -25
- aip_agents/ptc/template_utils.pyi +0 -13
- aip_agents/ptc/templates/__init__.pyi +0 -0
- aip_agents/sandbox/__init__.pyi +0 -5
- aip_agents/sandbox/defaults.pyi +0 -2
- aip_agents/sandbox/e2b_runtime.pyi +0 -51
- aip_agents/sandbox/template_builder.pyi +0 -36
- aip_agents/sandbox/types.pyi +0 -14
- aip_agents/sandbox/validation.pyi +0 -20
- aip_agents/schema/__init__.pyi +0 -9
- aip_agents/schema/a2a.pyi +0 -40
- aip_agents/schema/agent.pyi +0 -65
- aip_agents/schema/hitl.pyi +0 -89
- aip_agents/schema/langgraph.pyi +0 -28
- aip_agents/schema/model_id.pyi +0 -54
- aip_agents/schema/step_limit.pyi +0 -63
- aip_agents/schema/storage.pyi +0 -21
- aip_agents/sentry/__init__.pyi +0 -3
- aip_agents/sentry/sentry.pyi +0 -48
- aip_agents/storage/__init__.pyi +0 -8
- aip_agents/storage/base.pyi +0 -58
- aip_agents/storage/clients/__init__.pyi +0 -3
- aip_agents/storage/clients/minio_client.pyi +0 -137
- aip_agents/storage/config.pyi +0 -29
- aip_agents/storage/providers/__init__.pyi +0 -5
- aip_agents/storage/providers/base.pyi +0 -88
- aip_agents/storage/providers/memory.pyi +0 -79
- aip_agents/storage/providers/object_storage.pyi +0 -98
- aip_agents/tools/__init__.pyi +0 -11
- aip_agents/tools/browser_use/__init__.pyi +0 -14
- aip_agents/tools/browser_use/action_parser.pyi +0 -18
- aip_agents/tools/browser_use/browser_use_tool.pyi +0 -50
- aip_agents/tools/browser_use/llm_config.pyi +0 -52
- aip_agents/tools/browser_use/minio_storage.pyi +0 -109
- aip_agents/tools/browser_use/schemas.pyi +0 -32
- aip_agents/tools/browser_use/session.pyi +0 -4
- aip_agents/tools/browser_use/session_errors.pyi +0 -53
- aip_agents/tools/browser_use/steel_session_recording.pyi +0 -63
- aip_agents/tools/browser_use/streaming.pyi +0 -81
- aip_agents/tools/browser_use/structured_data_parser.pyi +0 -86
- aip_agents/tools/browser_use/structured_data_recovery.pyi +0 -43
- aip_agents/tools/browser_use/types.pyi +0 -45
- aip_agents/tools/code_sandbox/__init__.pyi +0 -3
- aip_agents/tools/code_sandbox/constant.pyi +0 -4
- aip_agents/tools/code_sandbox/e2b_cloud_sandbox_extended.pyi +0 -102
- aip_agents/tools/code_sandbox/e2b_sandbox_tool.pyi +0 -29
- aip_agents/tools/constants.pyi +0 -138
- aip_agents/tools/date_range_tool.pyi +0 -21
- aip_agents/tools/document_loader/__init__.pyi +0 -7
- aip_agents/tools/document_loader/base_reader.pyi +0 -75
- aip_agents/tools/document_loader/docx_reader_tool.pyi +0 -10
- aip_agents/tools/document_loader/excel_reader_tool.pyi +0 -26
- aip_agents/tools/document_loader/pdf_reader_tool.pyi +0 -11
- aip_agents/tools/document_loader/pdf_splitter.pyi +0 -18
- aip_agents/tools/execute_ptc_code.pyi +0 -90
- aip_agents/tools/gl_connector/__init__.pyi +0 -3
- aip_agents/tools/gl_connector/tool.pyi +0 -74
- aip_agents/tools/gl_connector_tools.pyi +0 -39
- aip_agents/tools/memory_search/__init__.pyi +0 -5
- aip_agents/tools/memory_search/base.pyi +0 -69
- aip_agents/tools/memory_search/mem0.pyi +0 -29
- aip_agents/tools/memory_search/schema.pyi +0 -25
- aip_agents/tools/memory_search_tool.pyi +0 -3
- aip_agents/tools/time_tool.pyi +0 -16
- aip_agents/tools/tool_config_injector.pyi +0 -26
- aip_agents/tools/web_search/__init__.pyi +0 -3
- aip_agents/tools/web_search/serper_tool.pyi +0 -19
- aip_agents/types/__init__.pyi +0 -36
- aip_agents/types/a2a_events.pyi +0 -3
- aip_agents/utils/__init__.pyi +0 -11
- aip_agents/utils/a2a_connector.pyi +0 -146
- aip_agents/utils/artifact_helpers.pyi +0 -203
- aip_agents/utils/constants.pyi +0 -10
- aip_agents/utils/datetime/__init__.pyi +0 -4
- aip_agents/utils/datetime/normalization.pyi +0 -95
- aip_agents/utils/datetime/timezone.pyi +0 -48
- aip_agents/utils/env_loader.pyi +0 -10
- aip_agents/utils/event_handler_registry.pyi +0 -23
- aip_agents/utils/file_prompt_utils.pyi +0 -21
- aip_agents/utils/final_response_builder.pyi +0 -34
- aip_agents/utils/formatter_llm_client.pyi +0 -71
- aip_agents/utils/langgraph/__init__.pyi +0 -3
- aip_agents/utils/langgraph/converter.pyi +0 -49
- aip_agents/utils/langgraph/tool_managers/__init__.pyi +0 -5
- aip_agents/utils/langgraph/tool_managers/a2a_tool_manager.pyi +0 -35
- aip_agents/utils/langgraph/tool_managers/base_tool_manager.pyi +0 -48
- aip_agents/utils/langgraph/tool_managers/delegation_tool_manager.pyi +0 -56
- aip_agents/utils/langgraph/tool_output_management.pyi +0 -329
- aip_agents/utils/logger.pyi +0 -60
- aip_agents/utils/metadata/__init__.pyi +0 -5
- aip_agents/utils/metadata/activity_metadata_helper.pyi +0 -25
- aip_agents/utils/metadata/activity_narrative/__init__.pyi +0 -7
- aip_agents/utils/metadata/activity_narrative/builder.pyi +0 -35
- aip_agents/utils/metadata/activity_narrative/constants.pyi +0 -10
- aip_agents/utils/metadata/activity_narrative/context.pyi +0 -32
- aip_agents/utils/metadata/activity_narrative/formatters.pyi +0 -48
- aip_agents/utils/metadata/activity_narrative/utils.pyi +0 -12
- aip_agents/utils/metadata/schemas/__init__.pyi +0 -4
- aip_agents/utils/metadata/schemas/activity_schema.pyi +0 -18
- aip_agents/utils/metadata/schemas/thinking_schema.pyi +0 -20
- aip_agents/utils/metadata/thinking_metadata_helper.pyi +0 -4
- aip_agents/utils/metadata_helper.pyi +0 -117
- aip_agents/utils/name_preprocessor/__init__.pyi +0 -6
- aip_agents/utils/name_preprocessor/base_name_preprocessor.pyi +0 -52
- aip_agents/utils/name_preprocessor/google_name_preprocessor.pyi +0 -38
- aip_agents/utils/name_preprocessor/name_preprocessor.pyi +0 -41
- aip_agents/utils/name_preprocessor/openai_name_preprocessor.pyi +0 -34
- aip_agents/utils/pii/__init__.pyi +0 -5
- aip_agents/utils/pii/pii_handler.pyi +0 -96
- aip_agents/utils/pii/pii_helper.pyi +0 -78
- aip_agents/utils/pii/uuid_deanonymizer_mapping.pyi +0 -73
- aip_agents/utils/reference_helper.pyi +0 -81
- aip_agents/utils/sse_chunk_transformer.pyi +0 -166
- aip_agents/utils/step_limit_manager.pyi +0 -112
- aip_agents/utils/token_usage_helper.pyi +0 -60
- {aip_agents_binary-0.6.4.dist-info → aip_agents_binary-0.6.5.dist-info}/WHEEL +0 -0
- {aip_agents_binary-0.6.4.dist-info → aip_agents_binary-0.6.5.dist-info}/top_level.txt +0 -0
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
from _typeshed import Incomplete
|
|
2
|
-
from aip_agents.tools.code_sandbox.constant import DATA_FILE_PATH as DATA_FILE_PATH
|
|
3
|
-
from aip_agents.utils.logger import get_logger as get_logger
|
|
4
|
-
from gllm_inference.schema import Attachment as Attachment
|
|
5
|
-
from gllm_tools.code_interpreter.code_sandbox.e2b_sandbox import E2BSandbox
|
|
6
|
-
from gllm_tools.code_interpreter.code_sandbox.models import ExecutionResult
|
|
7
|
-
from typing import Any
|
|
8
|
-
|
|
9
|
-
logger: Incomplete
|
|
10
|
-
|
|
11
|
-
class SandboxFileWatcher:
|
|
12
|
-
"""File watcher for monitoring file creation in sandbox environments."""
|
|
13
|
-
sandbox: Incomplete
|
|
14
|
-
def __init__(self, sandbox: Any) -> None:
|
|
15
|
-
"""Initialize the file watcher with a sandbox instance.
|
|
16
|
-
|
|
17
|
-
Args:
|
|
18
|
-
sandbox (Any): The sandbox instance to monitor.
|
|
19
|
-
"""
|
|
20
|
-
def setup_monitoring(self) -> None:
|
|
21
|
-
"""Set up filesystem watchers for monitoring file creation.
|
|
22
|
-
|
|
23
|
-
Note: /tmp/output is a sandbox-isolated directory, not a shared system /tmp.
|
|
24
|
-
This directory is scoped to the E2B sandbox instance and is safe for use.
|
|
25
|
-
"""
|
|
26
|
-
async def process_events(self) -> None:
|
|
27
|
-
"""Process filesystem events from watchers and update created files list."""
|
|
28
|
-
def reset_created_files(self) -> None:
|
|
29
|
-
"""Reset the list of created files."""
|
|
30
|
-
def get_created_files(self) -> list[str]:
|
|
31
|
-
"""Get the list of files created during monitoring.
|
|
32
|
-
|
|
33
|
-
Returns:
|
|
34
|
-
list[str]: List of file paths that were created.
|
|
35
|
-
"""
|
|
36
|
-
|
|
37
|
-
class MyE2BCloudSandbox(E2BSandbox):
|
|
38
|
-
"""Extended E2B sandbox with filesystem monitoring capabilities.
|
|
39
|
-
|
|
40
|
-
Use `create()` in production to build a fully initialized sandbox wrapper.
|
|
41
|
-
Direct construction is intentionally blocked to prevent partially initialized
|
|
42
|
-
instances that lack the underlying E2B sandbox clients.
|
|
43
|
-
"""
|
|
44
|
-
file_watcher: SandboxFileWatcher | None
|
|
45
|
-
def __init__(self, language: str = 'python', *, _unsafe_allow_init: bool = False) -> None:
|
|
46
|
-
"""Initialize the sandbox wrapper.
|
|
47
|
-
|
|
48
|
-
Args:
|
|
49
|
-
language (str): Language to execute inside the sandbox.
|
|
50
|
-
_unsafe_allow_init (bool): Escape hatch for tests/mocks only.
|
|
51
|
-
|
|
52
|
-
Raises:
|
|
53
|
-
RuntimeError: When instantiated directly without `create()`.
|
|
54
|
-
"""
|
|
55
|
-
@classmethod
|
|
56
|
-
async def create(cls, api_key: str, domain: str | None = None, template: str | None = None, language: str = 'python', additional_packages: list[str] | None = None, **kwargs: Any) -> MyE2BCloudSandbox:
|
|
57
|
-
"""Create a fully initialized sandbox wrapper.
|
|
58
|
-
|
|
59
|
-
This is the supported construction path for production usage. It wires
|
|
60
|
-
the E2B sandbox instance and its filesystem/command clients, then
|
|
61
|
-
installs language dependencies.
|
|
62
|
-
"""
|
|
63
|
-
async def execute_code(self, code: str, timeout: int = 30, files: list[Attachment] | None = None, **kwargs: Any) -> ExecutionResult:
|
|
64
|
-
"""Execute code in the E2B Cloud sandbox with filesystem monitoring.
|
|
65
|
-
|
|
66
|
-
This override fixes the Pydantic validation error by ensuring execution.error
|
|
67
|
-
is converted to string. Always enables filesystem monitoring to track
|
|
68
|
-
created files.
|
|
69
|
-
|
|
70
|
-
Args:
|
|
71
|
-
code (str): The code to execute.
|
|
72
|
-
timeout (int, optional): Maximum execution time in seconds. Defaults to 30.
|
|
73
|
-
files (list[Attachment] | None, optional): List of Attachment objects with file details. Defaults to None.
|
|
74
|
-
**kwargs (Any): Additional execution parameters.
|
|
75
|
-
|
|
76
|
-
Returns:
|
|
77
|
-
ExecutionResult: Structured result of the execution.
|
|
78
|
-
|
|
79
|
-
Raises:
|
|
80
|
-
RuntimeError: If sandbox is not initialized.
|
|
81
|
-
"""
|
|
82
|
-
def get_created_files(self) -> list[str]:
|
|
83
|
-
"""Get the list of files created during the last monitored execution.
|
|
84
|
-
|
|
85
|
-
Returns:
|
|
86
|
-
list[str]: List of file paths that were created.
|
|
87
|
-
"""
|
|
88
|
-
def download_file(self, file_path: str) -> bytes | None:
|
|
89
|
-
"""Download file content from the sandbox.
|
|
90
|
-
|
|
91
|
-
Uses download_url when available to avoid binary corruption issues.
|
|
92
|
-
Falls back to the filesystem API when download_url fails or is unavailable.
|
|
93
|
-
|
|
94
|
-
Args:
|
|
95
|
-
file_path (str): Path to the file in the sandbox.
|
|
96
|
-
|
|
97
|
-
Returns:
|
|
98
|
-
bytes | None: File content as bytes, or None if download fails.
|
|
99
|
-
|
|
100
|
-
Raises:
|
|
101
|
-
RuntimeError: If sandbox is not initialized.
|
|
102
|
-
"""
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
from _typeshed import Incomplete
|
|
2
|
-
from aip_agents.a2a.types import get_mime_type_from_filename as get_mime_type_from_filename
|
|
3
|
-
from aip_agents.tools.code_sandbox.constant import DATA_FILE_NAME as DATA_FILE_NAME
|
|
4
|
-
from aip_agents.tools.code_sandbox.e2b_cloud_sandbox_extended import MyE2BCloudSandbox as MyE2BCloudSandbox
|
|
5
|
-
from aip_agents.utils.artifact_helpers import ArtifactHandler as ArtifactHandler, create_multiple_artifacts_response as create_multiple_artifacts_response
|
|
6
|
-
from aip_agents.utils.logger import get_logger as get_logger
|
|
7
|
-
from langchain_core.tools import BaseTool
|
|
8
|
-
from pydantic import BaseModel
|
|
9
|
-
from typing import Any
|
|
10
|
-
|
|
11
|
-
logger: Incomplete
|
|
12
|
-
|
|
13
|
-
class E2BCodeSandboxInput(BaseModel):
|
|
14
|
-
"""Input schema for the E2BCodeSandboxTool."""
|
|
15
|
-
code: str
|
|
16
|
-
data_source: str | list[dict[str, Any]] | None
|
|
17
|
-
timeout: int
|
|
18
|
-
language: str
|
|
19
|
-
additional_packages: list[str] | None
|
|
20
|
-
|
|
21
|
-
class E2BCodeSandboxTool(BaseTool):
|
|
22
|
-
"""Tool to execute Python code in E2B Cloud Sandbox."""
|
|
23
|
-
name: str
|
|
24
|
-
description: str
|
|
25
|
-
save_output_history: bool
|
|
26
|
-
args_schema: type[BaseModel]
|
|
27
|
-
api_key: str
|
|
28
|
-
default_additional_packages: list[str]
|
|
29
|
-
store_final_output: bool
|
aip_agents/tools/constants.pyi
DELETED
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
from _typeshed import Incomplete
|
|
2
|
-
from enum import Enum, StrEnum
|
|
3
|
-
|
|
4
|
-
GL_CONNECTORS_BASE_URL: Incomplete
|
|
5
|
-
GL_CONNECTORS_API_KEY: Incomplete
|
|
6
|
-
GL_CONNECTORS_FETCH_MAX_RETRIES: Incomplete
|
|
7
|
-
BOSA_API_BASE_URL = GL_CONNECTORS_BASE_URL
|
|
8
|
-
BOSA_API_KEY = GL_CONNECTORS_API_KEY
|
|
9
|
-
BOSA_FETCH_MAX_RETRIES = GL_CONNECTORS_FETCH_MAX_RETRIES
|
|
10
|
-
|
|
11
|
-
class ToolType(StrEnum):
|
|
12
|
-
"""Tool types for GL Connectors."""
|
|
13
|
-
GLLM: str
|
|
14
|
-
LANGCHAIN: str
|
|
15
|
-
|
|
16
|
-
class Action(Enum):
|
|
17
|
-
"""Actions for GL Connectors."""
|
|
18
|
-
GITHUB: str
|
|
19
|
-
GOOGLE: str
|
|
20
|
-
GOOGLE_DRIVE: str
|
|
21
|
-
GOOGLE_MAIL: str
|
|
22
|
-
TWITTER: str
|
|
23
|
-
|
|
24
|
-
class GitHubEndpoint(Enum):
|
|
25
|
-
"""GitHub endpoints for GL Connectors."""
|
|
26
|
-
INTEGRATIONS: str
|
|
27
|
-
USER_HAS_INTEGRATION: str
|
|
28
|
-
SUCCESS_AUTHORIZE_CALLBACK: str
|
|
29
|
-
CREATE_ISSUE_HANDLER: str
|
|
30
|
-
GET_ISSUE_HANDLER: str
|
|
31
|
-
LIST_ISSUES: str
|
|
32
|
-
LIST_ISSUES_COMMENTS: str
|
|
33
|
-
SEARCH_ALL_ISSUES: str
|
|
34
|
-
GET_COMMITS: str
|
|
35
|
-
SEARCH_COMMITS: str
|
|
36
|
-
GET_COLLABORATORS: str
|
|
37
|
-
GET_RELEASES: str
|
|
38
|
-
GET_CONTRIBUTORS: str
|
|
39
|
-
GET_LANGUAGES: str
|
|
40
|
-
SEARCH_CONTRIBUTIONS: str
|
|
41
|
-
LIST_PULL_REQUESTS: str
|
|
42
|
-
SEARCH_PR: str
|
|
43
|
-
GET_PULL: str
|
|
44
|
-
GET_ALL_CONTRIBUTOR_COMMIT_ACTIVITIES: str
|
|
45
|
-
GET_COMMIT_ACTIVITY: str
|
|
46
|
-
GET_WEEKLY_COMMIT_COUNTS: str
|
|
47
|
-
GET_USER_CONTRIBUTION_STATISTICS: str
|
|
48
|
-
LIST_PROJECT_ITEMS: str
|
|
49
|
-
LIST_PROJECTS: str
|
|
50
|
-
|
|
51
|
-
class GoogleDriveEndpoint(Enum):
|
|
52
|
-
"""Google Drive endpoints for GL Connectors."""
|
|
53
|
-
INTEGRATIONS: str
|
|
54
|
-
USER_HAS_INTEGRATION: str
|
|
55
|
-
SUCCESS_AUTHORIZE_CALLBACK: str
|
|
56
|
-
SEARCH_FILES: str
|
|
57
|
-
GET_FILE: str
|
|
58
|
-
CREATE_FILE: str
|
|
59
|
-
CREATE_FOLDER: str
|
|
60
|
-
UPDATE_FILE: str
|
|
61
|
-
UPDATE_FOLDER: str
|
|
62
|
-
COPY_FILE: str
|
|
63
|
-
DELETE_FILE: str
|
|
64
|
-
SUMMARIZE_FOLDER_FILES_BY_TYPE: str
|
|
65
|
-
SUMMARIZE_TOTAL_FILES_BY_TYPE: str
|
|
66
|
-
RECENT_FILES: str
|
|
67
|
-
CREATE_PERMISSION: str
|
|
68
|
-
LIST_PERMISSIONS: str
|
|
69
|
-
GET_PERMISSION: str
|
|
70
|
-
UPDATE_PERMISSION: str
|
|
71
|
-
DELETE_PERMISSION: str
|
|
72
|
-
DOWNLOAD_FILE: str
|
|
73
|
-
|
|
74
|
-
class GoogleDocsEndpoint(Enum):
|
|
75
|
-
"""Google Docs endpoints for GL Connectors."""
|
|
76
|
-
INTEGRATIONS: str
|
|
77
|
-
USER_HAS_INTEGRATION: str
|
|
78
|
-
SUCCESS_AUTHORIZE_CALLBACK: str
|
|
79
|
-
GET_DOCUMENT: str
|
|
80
|
-
LIST_DOCUMENTS: str
|
|
81
|
-
CREATE_DOCUMENT: str
|
|
82
|
-
UPDATE_DOCUMENT: str
|
|
83
|
-
COPY_CONTENT: str
|
|
84
|
-
UPDATE_DOCUMENT_MARKDOWN: str
|
|
85
|
-
LIST_COMMENTS: str
|
|
86
|
-
SUMMARIZE_COMMENTS: str
|
|
87
|
-
|
|
88
|
-
class GoogleEndpoint(Enum):
|
|
89
|
-
"""Google endpoints for GL Connectors."""
|
|
90
|
-
INTEGRATIONS: str
|
|
91
|
-
USER_HAS_INTEGRATION: str
|
|
92
|
-
SUCCESS_AUTHORIZE_CALLBACK: str
|
|
93
|
-
USERINFO: str
|
|
94
|
-
|
|
95
|
-
class TwitterEndpoint(Enum):
|
|
96
|
-
"""Twitter endpoints for GL Connectors."""
|
|
97
|
-
INTEGRATIONS: str
|
|
98
|
-
USER_HAS_INTEGRATION: str
|
|
99
|
-
SUCCESS_AUTHORIZE_CALLBACK: str
|
|
100
|
-
SEARCH: str
|
|
101
|
-
GET_TWEETS: str
|
|
102
|
-
GET_THREAD: str
|
|
103
|
-
GET_USERS: str
|
|
104
|
-
|
|
105
|
-
class GoogleMailEndpoint(Enum):
|
|
106
|
-
"""Google Mail endpoints for GL Connectors."""
|
|
107
|
-
INTEGRATIONS: str
|
|
108
|
-
USER_HAS_INTEGRATION: str
|
|
109
|
-
SUCCESS_AUTHORIZE_CALLBACK: str
|
|
110
|
-
CREATE_DRAFT: str
|
|
111
|
-
LIST_DRAFTS: str
|
|
112
|
-
SEND_DRAFT: str
|
|
113
|
-
GET_DRAFT: str
|
|
114
|
-
MODIFY_DRAFT: str
|
|
115
|
-
LIST_LABELS: str
|
|
116
|
-
LABEL_STATS: str
|
|
117
|
-
GET_LABEL_DETAILS: str
|
|
118
|
-
CREATE_LABELS: str
|
|
119
|
-
MODIFY_LABELS: str
|
|
120
|
-
DELETE_LABELS: str
|
|
121
|
-
SEND_EMAIL: str
|
|
122
|
-
LIST_EMAILS: str
|
|
123
|
-
GET_EMAIL_DETAILS: str
|
|
124
|
-
MODIFY_EMAIL: str
|
|
125
|
-
DELETE_EMAIL: str
|
|
126
|
-
TRASH_EMAIL: str
|
|
127
|
-
UNTRASH_EMAIL: str
|
|
128
|
-
LIST_THREADS: str
|
|
129
|
-
THREAD_DETAILS: str
|
|
130
|
-
MODIFY_THREAD: str
|
|
131
|
-
GET_AUTO_REPLY: str
|
|
132
|
-
SET_AUTO_REPLY: str
|
|
133
|
-
GET_ATTACHMENT: str
|
|
134
|
-
USERINFO: str
|
|
135
|
-
|
|
136
|
-
class ActionEndpointMap:
|
|
137
|
-
"""Maps Action enums to their corresponding Endpoint enums."""
|
|
138
|
-
MAP: dict[Action, type[Enum]]
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
from _typeshed import Incomplete
|
|
2
|
-
from collections.abc import Callable as Callable
|
|
3
|
-
from langchain_core.tools import BaseTool
|
|
4
|
-
from pydantic import BaseModel
|
|
5
|
-
|
|
6
|
-
FORMAT_STRING: str
|
|
7
|
-
MIN_DAYS_FOR_WEEK_SPLIT: int
|
|
8
|
-
MONTH_NAME_ABBR_THRESHOLD: int
|
|
9
|
-
SUPPORTED_DATE_RANGES: Incomplete
|
|
10
|
-
|
|
11
|
-
class DateRangeToolInput(BaseModel):
|
|
12
|
-
"""Input schema for the DateRangeTool."""
|
|
13
|
-
date_range: str
|
|
14
|
-
format: str
|
|
15
|
-
split_weeks: bool
|
|
16
|
-
|
|
17
|
-
class DateRangeTool(BaseTool):
|
|
18
|
-
"""Tool to get date ranges for common time periods."""
|
|
19
|
-
name: str
|
|
20
|
-
description: str
|
|
21
|
-
args_schema: type[BaseModel]
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
from aip_agents.tools.document_loader.base_reader import BaseDocumentReaderTool as BaseDocumentReaderTool, DocumentReaderInput as DocumentReaderInput
|
|
2
|
-
from aip_agents.tools.document_loader.docx_reader_tool import DocxReaderTool as DocxReaderTool
|
|
3
|
-
from aip_agents.tools.document_loader.excel_reader_tool import ExcelReaderTool as ExcelReaderTool
|
|
4
|
-
from aip_agents.tools.document_loader.pdf_reader_tool import PDFReaderTool as PDFReaderTool
|
|
5
|
-
from aip_agents.tools.document_loader.pdf_splitter import PDFSplitter as PDFSplitter
|
|
6
|
-
|
|
7
|
-
__all__ = ['BaseDocumentReaderTool', 'DocumentReaderInput', 'PDFReaderTool', 'DocxReaderTool', 'ExcelReaderTool', 'PDFSplitter']
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
from _typeshed import Incomplete
|
|
2
|
-
from abc import ABC
|
|
3
|
-
from aip_agents.utils.logger import get_logger as get_logger
|
|
4
|
-
from gllm_docproc.loader.pipeline_loader import PipelineLoader as PipelineLoaderType
|
|
5
|
-
from langchain_core.tools import BaseTool
|
|
6
|
-
from pydantic import BaseModel
|
|
7
|
-
from typing import Any
|
|
8
|
-
|
|
9
|
-
logger: Incomplete
|
|
10
|
-
DOCPROC_MISSING_MESSAGE: str
|
|
11
|
-
PipelineLoaderType = Any
|
|
12
|
-
|
|
13
|
-
class _MissingDocprocLoader:
|
|
14
|
-
"""Fallback loader that errors when document processing is attempted."""
|
|
15
|
-
loaders: list[object]
|
|
16
|
-
def __init__(self) -> None: ...
|
|
17
|
-
def add_loader(self, loader: object) -> None: ...
|
|
18
|
-
def load(self, *_args: object, **_kwargs: object) -> list[dict[str, str]]: ...
|
|
19
|
-
def clear_cache(self) -> None: ...
|
|
20
|
-
|
|
21
|
-
DOCPROC_AVAILABLE: Incomplete
|
|
22
|
-
|
|
23
|
-
class BaseDocumentConfig(BaseModel):
|
|
24
|
-
"""Base tool configuration schema for document processing with batching functionality.
|
|
25
|
-
|
|
26
|
-
This configuration enables page-by-page batching to optimize memory usage when
|
|
27
|
-
processing large document files. When batching is enabled, documents are processed
|
|
28
|
-
sequentially by pages rather than loading the entire document into memory at once.
|
|
29
|
-
|
|
30
|
-
Attributes:
|
|
31
|
-
batching (bool): Enable page-by-page batching to reduce memory usage.
|
|
32
|
-
When True, documents are processed page by page sequentially.
|
|
33
|
-
When False, maintains current behavior of loading entire document.
|
|
34
|
-
Defaults to False for backward compatibility.
|
|
35
|
-
batch_size (int): Number of pages to process in each batch.
|
|
36
|
-
Must be between 1 and 100 pages inclusive.
|
|
37
|
-
Larger batch sizes may use more memory but could be more efficient.
|
|
38
|
-
Smaller batch sizes use less memory but may have more overhead.
|
|
39
|
-
Defaults to 10 for balanced memory usage and efficiency.
|
|
40
|
-
|
|
41
|
-
Examples:
|
|
42
|
-
>>> # Default configuration (no batching)
|
|
43
|
-
>>> config = BaseDocumentConfig()
|
|
44
|
-
>>> print(config.batching) # False
|
|
45
|
-
>>> print(config.batch_size) # 10
|
|
46
|
-
|
|
47
|
-
>>> # Enable batching with single page processing
|
|
48
|
-
>>> config = BaseDocumentConfig(batching=True, batch_size=1)
|
|
49
|
-
|
|
50
|
-
>>> # Enable batching with multi-page batches
|
|
51
|
-
>>> config = BaseDocumentConfig(batching=True, batch_size=3)
|
|
52
|
-
"""
|
|
53
|
-
batching: bool
|
|
54
|
-
batch_size: int
|
|
55
|
-
|
|
56
|
-
class DocumentReaderInput(BaseModel):
|
|
57
|
-
"""Input schema for the DocumentReader tool."""
|
|
58
|
-
file_path: str
|
|
59
|
-
|
|
60
|
-
class BaseDocumentReaderTool(BaseTool, ABC):
|
|
61
|
-
"""Base tool to read and extract text from document files."""
|
|
62
|
-
name: str
|
|
63
|
-
description: str
|
|
64
|
-
args_schema: type[BaseModel]
|
|
65
|
-
tool_config_schema: type[BaseModel]
|
|
66
|
-
loader: PipelineLoaderType
|
|
67
|
-
def __init__(self) -> None:
|
|
68
|
-
"""Initialize the base document reader tool."""
|
|
69
|
-
def cleanup_memory(self) -> None:
|
|
70
|
-
"""Explicitly clean up memory and force garbage collection.
|
|
71
|
-
|
|
72
|
-
This method can be called after processing to minimize memory usage.
|
|
73
|
-
While it won't reset memory to exactly 0, it will free up as much
|
|
74
|
-
memory as possible by clearing internal caches and forcing garbage collection.
|
|
75
|
-
"""
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
from _typeshed import Incomplete
|
|
2
|
-
from aip_agents.tools.document_loader.base_reader import BaseDocumentReaderTool as BaseDocumentReaderTool, DOCPROC_MISSING_MESSAGE as DOCPROC_MISSING_MESSAGE
|
|
3
|
-
from aip_agents.utils.logger import get_logger as get_logger
|
|
4
|
-
|
|
5
|
-
logger: Incomplete
|
|
6
|
-
|
|
7
|
-
class DocxReaderTool(BaseDocumentReaderTool):
|
|
8
|
-
"""Tool to read and extract text from Word documents."""
|
|
9
|
-
name: str
|
|
10
|
-
description: str
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
from _typeshed import Incomplete
|
|
2
|
-
from aip_agents.tools.document_loader.base_reader import BaseDocumentReaderTool as BaseDocumentReaderTool, DOCPROC_MISSING_MESSAGE as DOCPROC_MISSING_MESSAGE
|
|
3
|
-
from aip_agents.utils.logger import get_logger as get_logger
|
|
4
|
-
|
|
5
|
-
logger: Incomplete
|
|
6
|
-
|
|
7
|
-
class ExcelReaderTool(BaseDocumentReaderTool):
|
|
8
|
-
'''Tool to read and extract content from Excel files.
|
|
9
|
-
|
|
10
|
-
This tool reads Excel files (.xlsx, .xlsm) and extracts their content using
|
|
11
|
-
the gllm_docproc loader pipeline. The content is formatted as Markdown tables
|
|
12
|
-
for easy readability.
|
|
13
|
-
|
|
14
|
-
Features:
|
|
15
|
-
- Supports .xlsx and .xlsm formats
|
|
16
|
-
- Extracts all sheets or specific sheets
|
|
17
|
-
- Formats output as Markdown tables
|
|
18
|
-
- Configurable row limits and file size limits
|
|
19
|
-
|
|
20
|
-
Examples:
|
|
21
|
-
>>> tool = ExcelReaderTool()
|
|
22
|
-
>>> result = tool._run("/tmp/data.xlsx")
|
|
23
|
-
>>> print(result)
|
|
24
|
-
'''
|
|
25
|
-
name: str
|
|
26
|
-
description: str
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
from _typeshed import Incomplete
|
|
2
|
-
from aip_agents.tools.document_loader.base_reader import BaseDocumentReaderTool as BaseDocumentReaderTool, DOCPROC_MISSING_MESSAGE as DOCPROC_MISSING_MESSAGE
|
|
3
|
-
from aip_agents.tools.document_loader.pdf_splitter import PDFSplitter as PDFSplitter
|
|
4
|
-
from aip_agents.utils.logger import get_logger as get_logger
|
|
5
|
-
|
|
6
|
-
logger: Incomplete
|
|
7
|
-
|
|
8
|
-
class PDFReaderTool(BaseDocumentReaderTool):
|
|
9
|
-
"""Tool to read and extract text from PDF files."""
|
|
10
|
-
name: str
|
|
11
|
-
description: str
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
class PDFSplitter:
|
|
2
|
-
"""Utility class for splitting PDF files into page-based temporary files."""
|
|
3
|
-
@staticmethod
|
|
4
|
-
def split_by_pages(file_path: str, batch_size: int) -> list[str]:
|
|
5
|
-
"""Split PDF into temporary files containing batch_size pages each.
|
|
6
|
-
|
|
7
|
-
Args:
|
|
8
|
-
file_path: Path to the PDF file to split
|
|
9
|
-
batch_size: Number of pages to include in each batch (1-10)
|
|
10
|
-
|
|
11
|
-
Returns:
|
|
12
|
-
List of temporary file paths containing the split PDF batches
|
|
13
|
-
|
|
14
|
-
Raises:
|
|
15
|
-
FileNotFoundError: If the input PDF file doesn't exist
|
|
16
|
-
ValueError: If batch_size is invalid or PDF is corrupted
|
|
17
|
-
Exception: For other PDF processing errors
|
|
18
|
-
"""
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
from _typeshed import Incomplete
|
|
2
|
-
from aip_agents.mcp.client.base_mcp_client import BaseMCPClient as BaseMCPClient
|
|
3
|
-
from aip_agents.ptc.executor import PTCSandboxConfig as PTCSandboxConfig, PTCSandboxExecutor as PTCSandboxExecutor
|
|
4
|
-
from aip_agents.ptc.naming import sanitize_function_name as sanitize_function_name
|
|
5
|
-
from aip_agents.sandbox.e2b_runtime import E2BSandboxRuntime as E2BSandboxRuntime
|
|
6
|
-
from aip_agents.tools.tool_config_injector import TOOL_CONFIGS_KEY as TOOL_CONFIGS_KEY
|
|
7
|
-
from aip_agents.utils.logger import get_logger as get_logger
|
|
8
|
-
from langchain_core.tools import BaseTool
|
|
9
|
-
from pydantic import BaseModel
|
|
10
|
-
from typing import Any
|
|
11
|
-
|
|
12
|
-
logger: Incomplete
|
|
13
|
-
|
|
14
|
-
class PTCCodeInput(BaseModel):
|
|
15
|
-
"""Input schema for PTCCodeTool."""
|
|
16
|
-
code: str
|
|
17
|
-
|
|
18
|
-
def merge_tool_configs(agent_configs: dict[str, Any] | None, runtime_configs: dict[str, Any] | None) -> dict[str, dict[str, Any]]:
|
|
19
|
-
'''Merge agent-level and runtime tool configs with sanitized keys.
|
|
20
|
-
|
|
21
|
-
Merges tool configurations from two sources:
|
|
22
|
-
1. Agent-level defaults (from agent.tool_configs)
|
|
23
|
-
2. Runtime overrides (from RunnableConfig.metadata["tool_configs"])
|
|
24
|
-
|
|
25
|
-
Both sources support two formats (matching LangGraphReactAgent behavior):
|
|
26
|
-
- Direct per-tool keys: {"time_tool": {"timezone": "UTC"}}
|
|
27
|
-
- Nested structure: {"tool_configs": {"time_tool": {"timezone": "UTC"}}}
|
|
28
|
-
|
|
29
|
-
The nested "tool_configs" key has higher precedence than direct keys.
|
|
30
|
-
Tool names are sanitized to match sandbox expectations (e.g., "Time Tool" -> "time_tool").
|
|
31
|
-
|
|
32
|
-
Args:
|
|
33
|
-
agent_configs: Agent-level tool configs (may be None or contain nested dicts)
|
|
34
|
-
runtime_configs: Runtime overrides from metadata (may be None)
|
|
35
|
-
|
|
36
|
-
Returns:
|
|
37
|
-
Merged dict with sanitized tool names as keys and config dicts as values.
|
|
38
|
-
Only includes entries that are dicts (non-dict values are agent-wide defaults).
|
|
39
|
-
'''
|
|
40
|
-
|
|
41
|
-
class PTCCodeTool(BaseTool):
|
|
42
|
-
"""Tool for executing Python code with MCP tool access in a sandbox.
|
|
43
|
-
|
|
44
|
-
This tool uses BaseTool to properly access runtime config via run_manager.metadata.
|
|
45
|
-
The config parameter is NOT exposed to the LLM schema - it's extracted from
|
|
46
|
-
the callback manager during execution.
|
|
47
|
-
"""
|
|
48
|
-
name: str
|
|
49
|
-
description: str
|
|
50
|
-
args_schema: type[BaseModel]
|
|
51
|
-
def __init__(self, executor: PTCSandboxExecutor, runtime: E2BSandboxRuntime, agent_tool_configs: dict[str, Any] | None = None, **kwargs: Any) -> None:
|
|
52
|
-
"""Initialize the PTC code tool.
|
|
53
|
-
|
|
54
|
-
Args:
|
|
55
|
-
executor: The PTC sandbox executor.
|
|
56
|
-
runtime: The E2B sandbox runtime.
|
|
57
|
-
agent_tool_configs: Optional agent-level tool configs.
|
|
58
|
-
**kwargs: Additional keyword arguments passed to BaseTool.
|
|
59
|
-
"""
|
|
60
|
-
async def cleanup(self) -> None:
|
|
61
|
-
"""Clean up the sandbox runtime."""
|
|
62
|
-
|
|
63
|
-
def create_execute_ptc_code_tool(mcp_client: BaseMCPClient | None, config: PTCSandboxConfig | None = None, agent_tool_configs: dict[str, Any] | None = None) -> PTCCodeTool:
|
|
64
|
-
'''Create a tool that executes Python code with MCP tool access.
|
|
65
|
-
|
|
66
|
-
The code runs inside an E2B sandbox with access to generated MCP tool modules.
|
|
67
|
-
This tool is designed for LLM-generated code that needs to call multiple tools
|
|
68
|
-
programmatically in a single execution.
|
|
69
|
-
|
|
70
|
-
Args:
|
|
71
|
-
mcp_client: The MCP client with configured servers.
|
|
72
|
-
config: Optional sandbox executor configuration.
|
|
73
|
-
agent_tool_configs: Optional agent-level tool configs (from agent.tool_configs).
|
|
74
|
-
These are merged with runtime overrides from RunnableConfig.metadata.
|
|
75
|
-
|
|
76
|
-
Returns:
|
|
77
|
-
PTCCodeTool configured for PTC code execution.
|
|
78
|
-
|
|
79
|
-
Example:
|
|
80
|
-
```python
|
|
81
|
-
from aip_agents.mcp.client import LangchainMCPClient
|
|
82
|
-
from aip_agents.tools.execute_ptc_code import create_execute_ptc_code_tool
|
|
83
|
-
|
|
84
|
-
mcp_client = LangchainMCPClient()
|
|
85
|
-
await mcp_client.add_server("yfinance", {...})
|
|
86
|
-
|
|
87
|
-
tool = create_execute_ptc_code_tool(mcp_client)
|
|
88
|
-
result = await tool.ainvoke({"code": "from tools.yfinance import get_stock\\\\nprint(get_stock(\'AAPL\'))"})
|
|
89
|
-
```
|
|
90
|
-
'''
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
from _typeshed import Incomplete
|
|
2
|
-
from aip_agents.tools.constants import ToolType as ToolType
|
|
3
|
-
from langchain_core.runnables import RunnableConfig
|
|
4
|
-
from langchain_core.tools import BaseTool
|
|
5
|
-
from typing import Any
|
|
6
|
-
|
|
7
|
-
class _InjectedTool(BaseTool):
|
|
8
|
-
"""Wrap a BaseTool to inject token and optional identifier into inputs."""
|
|
9
|
-
model_config: Incomplete
|
|
10
|
-
def __init__(self, base_tool: BaseTool, token: str, identifier: str | None) -> None:
|
|
11
|
-
"""Initialize the injected tool wrapper.
|
|
12
|
-
|
|
13
|
-
Args:
|
|
14
|
-
base_tool: The base tool to wrap.
|
|
15
|
-
token: Authentication token to inject into tool inputs.
|
|
16
|
-
identifier: Optional identifier to inject into tool inputs.
|
|
17
|
-
|
|
18
|
-
Returns:
|
|
19
|
-
None
|
|
20
|
-
"""
|
|
21
|
-
def invoke(self, input: Any, config: RunnableConfig | None = None, **kwargs: Any) -> Any:
|
|
22
|
-
"""Invoke the tool with token and optional identifier injected.
|
|
23
|
-
|
|
24
|
-
Args:
|
|
25
|
-
input: Tool input to process.
|
|
26
|
-
config: Optional runnable configuration.
|
|
27
|
-
**kwargs: Additional keyword arguments.
|
|
28
|
-
|
|
29
|
-
Returns:
|
|
30
|
-
The result of invoking the tool with injected parameters.
|
|
31
|
-
"""
|
|
32
|
-
async def ainvoke(self, input: Any, config: RunnableConfig | None = None, **kwargs: Any) -> Any:
|
|
33
|
-
"""Invoke the tool asynchronously with token and optional identifier injected.
|
|
34
|
-
|
|
35
|
-
Args:
|
|
36
|
-
input: Tool input to process.
|
|
37
|
-
config: Optional runnable configuration.
|
|
38
|
-
**kwargs: Additional keyword arguments.
|
|
39
|
-
|
|
40
|
-
Returns:
|
|
41
|
-
The result of invoking the tool with injected parameters.
|
|
42
|
-
"""
|
|
43
|
-
def run(self, tool_input: Any, **kwargs: Any) -> Any:
|
|
44
|
-
"""Run the tool with token and optional identifier injected.
|
|
45
|
-
|
|
46
|
-
Args:
|
|
47
|
-
tool_input: Tool input to process.
|
|
48
|
-
**kwargs: Additional keyword arguments.
|
|
49
|
-
|
|
50
|
-
Returns:
|
|
51
|
-
The result of running the tool with injected parameters.
|
|
52
|
-
"""
|
|
53
|
-
async def arun(self, tool_input: Any, **kwargs: Any) -> Any:
|
|
54
|
-
"""Run the tool asynchronously with token and optional identifier injected.
|
|
55
|
-
|
|
56
|
-
Args:
|
|
57
|
-
tool_input: Tool input to process.
|
|
58
|
-
**kwargs: Additional keyword arguments.
|
|
59
|
-
|
|
60
|
-
Returns:
|
|
61
|
-
The result of running the tool with injected parameters.
|
|
62
|
-
"""
|
|
63
|
-
|
|
64
|
-
def GLConnectorTool(tool_name: str, *, api_key: str | None = None, identifier: str | None = None) -> BaseTool:
|
|
65
|
-
"""Create a single tool from GL Connectors by exact tool name.
|
|
66
|
-
|
|
67
|
-
Args:
|
|
68
|
-
tool_name: Exact tool name (not module name).
|
|
69
|
-
api_key: Optional override for GL Connectors API key.
|
|
70
|
-
identifier: Optional override for GL Connectors identifier.
|
|
71
|
-
|
|
72
|
-
Returns:
|
|
73
|
-
A single LangChain BaseTool with token injection.
|
|
74
|
-
"""
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
from _typeshed import Incomplete
|
|
2
|
-
from aip_agents.tools.constants import GL_CONNECTORS_API_KEY as GL_CONNECTORS_API_KEY, GL_CONNECTORS_BASE_URL as GL_CONNECTORS_BASE_URL, GL_CONNECTORS_FETCH_MAX_RETRIES as GL_CONNECTORS_FETCH_MAX_RETRIES, ToolType as ToolType
|
|
3
|
-
from aip_agents.utils.logger import get_logger as get_logger
|
|
4
|
-
from langchain_core.tools import BaseTool as BaseTool
|
|
5
|
-
|
|
6
|
-
logger: Incomplete
|
|
7
|
-
|
|
8
|
-
def get_gl_connector_modules_with_retry() -> list[str]:
|
|
9
|
-
"""Try to get available modules with retries.
|
|
10
|
-
|
|
11
|
-
Returns:
|
|
12
|
-
List of available modules.
|
|
13
|
-
"""
|
|
14
|
-
|
|
15
|
-
class LazyGLConnectorToolsDict(dict):
|
|
16
|
-
"""Lazy dictionary for GL Connectors."""
|
|
17
|
-
def __missing__(self, app):
|
|
18
|
-
"""When a key is missing, create the tools and store them in the dictionary.
|
|
19
|
-
|
|
20
|
-
Args:
|
|
21
|
-
app: Name of the GL Connectors.
|
|
22
|
-
|
|
23
|
-
Returns:
|
|
24
|
-
List of tools generated by the GL Connectors tool generator.
|
|
25
|
-
"""
|
|
26
|
-
|
|
27
|
-
def get_gl_connector_modules() -> list[str]:
|
|
28
|
-
"""Lazily fetch and cache GL Connectors modules.
|
|
29
|
-
|
|
30
|
-
Returns:
|
|
31
|
-
List of GL Connectors modules.
|
|
32
|
-
"""
|
|
33
|
-
def get_bosa_modules() -> list[str]:
|
|
34
|
-
"""Backward-compatible alias for get_gl_connector_modules."""
|
|
35
|
-
|
|
36
|
-
GL_CONNECTORS_MODULES: Incomplete
|
|
37
|
-
BOSA_MODULES = GL_CONNECTORS_MODULES
|
|
38
|
-
GL_CONNECTORS_AUTOMATED_TOOLS: dict[str, list[BaseTool]]
|
|
39
|
-
BOSA_AUTOMATED_TOOLS = GL_CONNECTORS_AUTOMATED_TOOLS
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
from aip_agents.tools.memory_search.base import LongTermMemorySearchTool as LongTermMemorySearchTool
|
|
2
|
-
from aip_agents.tools.memory_search.mem0 import MEMORY_DELETE_TOOL_NAME as MEMORY_DELETE_TOOL_NAME, MEMORY_SEARCH_TOOL_NAME as MEMORY_SEARCH_TOOL_NAME, Mem0DeleteInput as Mem0DeleteInput, Mem0DeleteTool as Mem0DeleteTool, Mem0SearchInput as Mem0SearchInput, Mem0SearchTool as Mem0SearchTool
|
|
3
|
-
from aip_agents.tools.memory_search.schema import LongTermMemoryDeleteInput as LongTermMemoryDeleteInput, LongTermMemorySearchInput as LongTermMemorySearchInput, MemoryConfig as MemoryConfig
|
|
4
|
-
|
|
5
|
-
__all__ = ['MemoryConfig', 'LongTermMemoryDeleteInput', 'LongTermMemorySearchInput', 'LongTermMemorySearchTool', 'Mem0DeleteInput', 'Mem0DeleteTool', 'Mem0SearchInput', 'Mem0SearchTool', 'MEMORY_DELETE_TOOL_NAME', 'MEMORY_SEARCH_TOOL_NAME']
|