aip-agents-binary 0.5.20__py3-none-any.whl → 0.5.22__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__.pyi +19 -0
- aip_agents/a2a/__init__.pyi +3 -0
- aip_agents/a2a/server/__init__.pyi +4 -0
- aip_agents/a2a/server/base_executor.pyi +73 -0
- aip_agents/a2a/server/google_adk_executor.pyi +51 -0
- aip_agents/a2a/server/langflow_executor.pyi +43 -0
- aip_agents/a2a/server/langgraph_executor.pyi +47 -0
- aip_agents/a2a/types.pyi +132 -0
- aip_agents/agent/__init__.pyi +9 -0
- aip_agents/agent/base_agent.pyi +221 -0
- aip_agents/agent/base_langgraph_agent.pyi +232 -0
- aip_agents/agent/google_adk_agent.pyi +141 -0
- aip_agents/agent/google_adk_constants.pyi +3 -0
- aip_agents/agent/hitl/__init__.pyi +6 -0
- aip_agents/agent/hitl/config.pyi +15 -0
- aip_agents/agent/hitl/langgraph_hitl_mixin.pyi +42 -0
- aip_agents/agent/hitl/manager.pyi +200 -0
- aip_agents/agent/hitl/models.pyi +3 -0
- aip_agents/agent/hitl/prompt/__init__.pyi +4 -0
- aip_agents/agent/hitl/prompt/base.pyi +24 -0
- aip_agents/agent/hitl/prompt/deferred.pyi +30 -0
- aip_agents/agent/hitl/registry.pyi +101 -0
- aip_agents/agent/interface.pyi +81 -0
- aip_agents/agent/interfaces.pyi +44 -0
- aip_agents/agent/langflow_agent.pyi +133 -0
- aip_agents/agent/langgraph_memory_enhancer_agent.pyi +49 -0
- aip_agents/agent/langgraph_react_agent.pyi +126 -0
- aip_agents/agent/system_instruction_context.pyi +13 -0
- aip_agents/clients/__init__.pyi +4 -0
- aip_agents/clients/langflow/__init__.pyi +4 -0
- aip_agents/clients/langflow/client.pyi +140 -0
- aip_agents/clients/langflow/types.pyi +7 -0
- aip_agents/constants.pyi +7 -0
- aip_agents/examples/__init__.pyi +0 -0
- aip_agents/examples/compare_streaming_client.pyi +48 -0
- aip_agents/examples/compare_streaming_server.pyi +18 -0
- aip_agents/examples/demo_memory_recall.pyi +58 -0
- aip_agents/examples/hello_world_a2a_google_adk_client.pyi +9 -0
- aip_agents/examples/hello_world_a2a_google_adk_client_agent.pyi +9 -0
- aip_agents/examples/hello_world_a2a_google_adk_client_streaming.pyi +9 -0
- aip_agents/examples/hello_world_a2a_google_adk_server.pyi +15 -0
- aip_agents/examples/hello_world_a2a_langchain_client.pyi +5 -0
- aip_agents/examples/hello_world_a2a_langchain_client_agent.pyi +5 -0
- aip_agents/examples/hello_world_a2a_langchain_client_lm_invoker.pyi +5 -0
- aip_agents/examples/hello_world_a2a_langchain_client_streaming.pyi +5 -0
- aip_agents/examples/hello_world_a2a_langchain_reference_client_streaming.pyi +5 -0
- aip_agents/examples/hello_world_a2a_langchain_reference_server.pyi +15 -0
- aip_agents/examples/hello_world_a2a_langchain_server.pyi +15 -0
- aip_agents/examples/hello_world_a2a_langchain_server_lm_invoker.pyi +15 -0
- aip_agents/examples/hello_world_a2a_langflow_client.pyi +9 -0
- aip_agents/examples/hello_world_a2a_langflow_server.pyi +14 -0
- aip_agents/examples/hello_world_a2a_langgraph_artifact_client.pyi +5 -0
- aip_agents/examples/hello_world_a2a_langgraph_artifact_client_streaming.pyi +5 -0
- aip_agents/examples/hello_world_a2a_langgraph_artifact_server.pyi +16 -0
- aip_agents/examples/hello_world_a2a_langgraph_client.pyi +9 -0
- aip_agents/examples/hello_world_a2a_langgraph_client_agent.pyi +9 -0
- aip_agents/examples/hello_world_a2a_langgraph_client_agent_lm_invoker.pyi +2 -0
- aip_agents/examples/hello_world_a2a_langgraph_client_streaming.pyi +9 -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.pyi +5 -0
- aip_agents/examples/hello_world_a2a_langgraph_server.pyi +14 -0
- aip_agents/examples/hello_world_a2a_langgraph_server_lm_invoker.pyi +15 -0
- aip_agents/examples/hello_world_a2a_langgraph_server_tool_streaming.pyi +15 -0
- aip_agents/examples/hello_world_a2a_mcp_langgraph.pyi +48 -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.pyi +45 -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.pyi +15 -0
- aip_agents/examples/hello_world_google_adk.pyi +5 -0
- aip_agents/examples/hello_world_google_adk_mcp_http.pyi +5 -0
- aip_agents/examples/hello_world_google_adk_mcp_http_stream.pyi +5 -0
- aip_agents/examples/hello_world_google_adk_mcp_sse.pyi +5 -0
- aip_agents/examples/hello_world_google_adk_mcp_sse_stream.pyi +5 -0
- aip_agents/examples/hello_world_google_adk_mcp_stdio.pyi +5 -0
- aip_agents/examples/hello_world_google_adk_mcp_stdio_stream.pyi +5 -0
- aip_agents/examples/hello_world_google_adk_stream.pyi +5 -0
- aip_agents/examples/hello_world_langchain.pyi +5 -0
- aip_agents/examples/hello_world_langchain_lm_invoker.pyi +2 -0
- aip_agents/examples/hello_world_langchain_mcp_http.pyi +5 -0
- aip_agents/examples/hello_world_langchain_mcp_http_interactive.pyi +16 -0
- aip_agents/examples/hello_world_langchain_mcp_http_stream.pyi +5 -0
- aip_agents/examples/hello_world_langchain_mcp_multi_server.pyi +18 -0
- aip_agents/examples/hello_world_langchain_mcp_sse.pyi +5 -0
- aip_agents/examples/hello_world_langchain_mcp_sse_stream.pyi +5 -0
- aip_agents/examples/hello_world_langchain_mcp_stdio.pyi +5 -0
- aip_agents/examples/hello_world_langchain_mcp_stdio_stream.pyi +5 -0
- aip_agents/examples/hello_world_langchain_stream.pyi +5 -0
- aip_agents/examples/hello_world_langchain_stream_lm_invoker.pyi +5 -0
- aip_agents/examples/hello_world_langflow_agent.pyi +35 -0
- aip_agents/examples/hello_world_langgraph.pyi +5 -0
- aip_agents/examples/{hello_world_langgraph_bosa_twitter.py → hello_world_langgraph_gl_connector_twitter.py} +10 -8
- aip_agents/examples/hello_world_langgraph_gl_connector_twitter.pyi +5 -0
- aip_agents/examples/hello_world_langgraph_mcp_http.pyi +5 -0
- aip_agents/examples/hello_world_langgraph_mcp_http_stream.pyi +5 -0
- aip_agents/examples/hello_world_langgraph_mcp_sse.pyi +5 -0
- aip_agents/examples/hello_world_langgraph_mcp_sse_stream.pyi +5 -0
- aip_agents/examples/hello_world_langgraph_mcp_stdio.pyi +5 -0
- aip_agents/examples/hello_world_langgraph_mcp_stdio_stream.pyi +5 -0
- aip_agents/examples/hello_world_langgraph_stream.pyi +5 -0
- aip_agents/examples/hello_world_langgraph_stream_lm_invoker.pyi +5 -0
- aip_agents/examples/hello_world_model_switch_cli.pyi +30 -0
- aip_agents/examples/hello_world_multi_agent_adk.pyi +6 -0
- aip_agents/examples/hello_world_multi_agent_langchain.pyi +5 -0
- aip_agents/examples/hello_world_multi_agent_langgraph.pyi +5 -0
- aip_agents/examples/hello_world_multi_agent_langgraph_lm_invoker.pyi +5 -0
- aip_agents/examples/hello_world_pii_logger.pyi +5 -0
- aip_agents/examples/hello_world_sentry.py +8 -7
- aip_agents/examples/hello_world_sentry.pyi +21 -0
- aip_agents/examples/hello_world_step_limits.pyi +17 -0
- aip_agents/examples/hello_world_stock_a2a_server.pyi +17 -0
- aip_agents/examples/hello_world_tool_output_client.pyi +5 -0
- aip_agents/examples/hello_world_tool_output_server.pyi +19 -0
- aip_agents/examples/hitl_demo.pyi +67 -0
- aip_agents/examples/pii_demo_langgraph_client.pyi +5 -0
- aip_agents/examples/pii_demo_langgraph_server.pyi +20 -0
- aip_agents/examples/pii_demo_multi_agent_client.pyi +5 -0
- aip_agents/examples/pii_demo_multi_agent_server.pyi +40 -0
- aip_agents/examples/todolist_planning_a2a_langchain_client.pyi +5 -0
- aip_agents/examples/todolist_planning_a2a_langgraph_server.pyi +19 -0
- aip_agents/examples/tools/__init__.pyi +9 -0
- aip_agents/examples/tools/adk_arithmetic_tools.pyi +24 -0
- aip_agents/examples/tools/adk_weather_tool.pyi +18 -0
- aip_agents/examples/tools/data_generator_tool.pyi +15 -0
- aip_agents/examples/tools/data_visualization_tool.pyi +19 -0
- aip_agents/examples/tools/image_artifact_tool.pyi +26 -0
- aip_agents/examples/tools/langchain_arithmetic_tools.pyi +17 -0
- aip_agents/examples/tools/langchain_currency_exchange_tool.pyi +20 -0
- aip_agents/examples/tools/langchain_graph_artifact_tool.pyi +25 -0
- aip_agents/examples/tools/langchain_weather_tool.pyi +19 -0
- aip_agents/examples/tools/langgraph_streaming_tool.pyi +43 -0
- aip_agents/examples/tools/mock_retrieval_tool.pyi +13 -0
- aip_agents/examples/tools/pii_demo_tools.pyi +54 -0
- aip_agents/examples/tools/random_chart_tool.pyi +20 -0
- aip_agents/examples/tools/serper_tool.pyi +16 -0
- aip_agents/examples/tools/stock_tools.pyi +36 -0
- aip_agents/examples/tools/table_generator_tool.pyi +22 -0
- aip_agents/examples/tools/time_tool.pyi +15 -0
- aip_agents/examples/tools/weather_forecast_tool.pyi +14 -0
- aip_agents/mcp/__init__.pyi +0 -0
- aip_agents/mcp/client/__init__.pyi +5 -0
- aip_agents/mcp/client/base_mcp_client.pyi +148 -0
- aip_agents/mcp/client/connection_manager.pyi +48 -0
- aip_agents/mcp/client/google_adk/__init__.pyi +3 -0
- aip_agents/mcp/client/google_adk/client.pyi +75 -0
- aip_agents/mcp/client/langchain/__init__.pyi +3 -0
- aip_agents/mcp/client/langchain/client.pyi +48 -0
- aip_agents/mcp/client/persistent_session.pyi +113 -0
- aip_agents/mcp/client/session_pool.pyi +101 -0
- aip_agents/mcp/client/transports.pyi +123 -0
- aip_agents/mcp/utils/__init__.pyi +0 -0
- aip_agents/mcp/utils/config_validator.pyi +82 -0
- aip_agents/memory/__init__.pyi +5 -0
- aip_agents/memory/adapters/__init__.pyi +4 -0
- aip_agents/memory/adapters/base_adapter.pyi +150 -0
- aip_agents/memory/adapters/mem0.pyi +22 -0
- aip_agents/memory/base.pyi +60 -0
- aip_agents/memory/constants.pyi +25 -0
- aip_agents/memory/factory.pyi +24 -0
- aip_agents/memory/guidance.pyi +3 -0
- aip_agents/memory/simple_memory.pyi +23 -0
- aip_agents/middleware/__init__.pyi +5 -0
- aip_agents/middleware/base.pyi +71 -0
- aip_agents/middleware/manager.pyi +80 -0
- aip_agents/middleware/todolist.pyi +125 -0
- aip_agents/schema/__init__.pyi +9 -0
- aip_agents/schema/a2a.pyi +40 -0
- aip_agents/schema/agent.pyi +65 -0
- aip_agents/schema/hitl.pyi +89 -0
- aip_agents/schema/langgraph.pyi +28 -0
- aip_agents/schema/model_id.pyi +54 -0
- aip_agents/schema/step_limit.pyi +63 -0
- aip_agents/schema/storage.pyi +21 -0
- aip_agents/sentry/__init__.py +1 -1
- aip_agents/sentry/__init__.pyi +3 -0
- aip_agents/sentry/sentry.py +17 -10
- aip_agents/sentry/sentry.pyi +48 -0
- aip_agents/storage/__init__.pyi +8 -0
- aip_agents/storage/base.pyi +58 -0
- aip_agents/storage/clients/__init__.pyi +3 -0
- aip_agents/storage/clients/minio_client.pyi +137 -0
- aip_agents/storage/config.pyi +29 -0
- aip_agents/storage/providers/__init__.pyi +5 -0
- aip_agents/storage/providers/base.pyi +88 -0
- aip_agents/storage/providers/memory.pyi +79 -0
- aip_agents/storage/providers/object_storage.pyi +98 -0
- aip_agents/tools/__init__.py +26 -6
- aip_agents/tools/__init__.pyi +9 -0
- aip_agents/tools/browser_use/__init__.pyi +14 -0
- aip_agents/tools/browser_use/action_parser.pyi +18 -0
- aip_agents/tools/browser_use/browser_use_tool.pyi +50 -0
- aip_agents/tools/browser_use/llm_config.pyi +52 -0
- aip_agents/tools/browser_use/minio_storage.pyi +109 -0
- aip_agents/tools/browser_use/schemas.pyi +32 -0
- aip_agents/tools/browser_use/session.pyi +4 -0
- aip_agents/tools/browser_use/session_errors.pyi +53 -0
- aip_agents/tools/browser_use/steel_session_recording.pyi +63 -0
- aip_agents/tools/browser_use/streaming.pyi +81 -0
- aip_agents/tools/browser_use/structured_data_parser.pyi +86 -0
- aip_agents/tools/browser_use/structured_data_recovery.pyi +43 -0
- aip_agents/tools/browser_use/types.pyi +45 -0
- aip_agents/tools/code_sandbox/__init__.pyi +3 -0
- aip_agents/tools/code_sandbox/constant.pyi +4 -0
- aip_agents/tools/code_sandbox/e2b_cloud_sandbox_extended.pyi +86 -0
- aip_agents/tools/code_sandbox/e2b_sandbox_tool.pyi +29 -0
- aip_agents/tools/constants.py +26 -12
- aip_agents/tools/constants.pyi +138 -0
- aip_agents/tools/document_loader/__init__.pyi +7 -0
- aip_agents/tools/document_loader/base_reader.pyi +75 -0
- aip_agents/tools/document_loader/docx_reader_tool.pyi +10 -0
- aip_agents/tools/document_loader/excel_reader_tool.pyi +26 -0
- aip_agents/tools/document_loader/pdf_reader_tool.pyi +11 -0
- aip_agents/tools/document_loader/pdf_splitter.pyi +18 -0
- aip_agents/tools/gl_connector/__init__.py +1 -1
- aip_agents/tools/gl_connector/__init__.pyi +3 -0
- aip_agents/tools/gl_connector/tool.py +104 -45
- aip_agents/tools/gl_connector/tool.pyi +74 -0
- aip_agents/tools/gl_connector_tools.py +122 -0
- aip_agents/tools/gl_connector_tools.pyi +39 -0
- aip_agents/tools/memory_search/__init__.pyi +5 -0
- aip_agents/tools/memory_search/base.pyi +69 -0
- aip_agents/tools/memory_search/mem0.pyi +19 -0
- aip_agents/tools/memory_search/schema.pyi +15 -0
- aip_agents/tools/memory_search_tool.pyi +3 -0
- aip_agents/tools/time_tool.pyi +16 -0
- aip_agents/tools/tool_config_injector.pyi +26 -0
- aip_agents/tools/web_search/__init__.pyi +3 -0
- aip_agents/tools/web_search/serper_tool.pyi +19 -0
- aip_agents/types/__init__.pyi +36 -0
- aip_agents/types/a2a_events.pyi +3 -0
- aip_agents/utils/__init__.pyi +11 -0
- aip_agents/utils/a2a_connector.pyi +146 -0
- aip_agents/utils/artifact_helpers.pyi +203 -0
- aip_agents/utils/constants.pyi +10 -0
- aip_agents/utils/datetime/__init__.pyi +4 -0
- aip_agents/utils/datetime/normalization.pyi +95 -0
- aip_agents/utils/datetime/timezone.pyi +48 -0
- aip_agents/utils/env_loader.pyi +10 -0
- aip_agents/utils/event_handler_registry.pyi +23 -0
- aip_agents/utils/file_prompt_utils.pyi +21 -0
- aip_agents/utils/final_response_builder.pyi +34 -0
- aip_agents/utils/formatter_llm_client.pyi +71 -0
- aip_agents/utils/langgraph/__init__.pyi +3 -0
- aip_agents/utils/langgraph/converter.pyi +49 -0
- aip_agents/utils/langgraph/tool_managers/__init__.pyi +5 -0
- aip_agents/utils/langgraph/tool_managers/a2a_tool_manager.pyi +35 -0
- aip_agents/utils/langgraph/tool_managers/base_tool_manager.pyi +48 -0
- aip_agents/utils/langgraph/tool_managers/delegation_tool_manager.pyi +56 -0
- aip_agents/utils/langgraph/tool_output_management.pyi +292 -0
- aip_agents/utils/logger.pyi +60 -0
- aip_agents/utils/metadata/__init__.pyi +5 -0
- aip_agents/utils/metadata/activity_metadata_helper.pyi +25 -0
- aip_agents/utils/metadata/activity_narrative/__init__.pyi +7 -0
- aip_agents/utils/metadata/activity_narrative/builder.pyi +35 -0
- aip_agents/utils/metadata/activity_narrative/constants.pyi +10 -0
- aip_agents/utils/metadata/activity_narrative/context.pyi +32 -0
- aip_agents/utils/metadata/activity_narrative/formatters.pyi +48 -0
- aip_agents/utils/metadata/activity_narrative/utils.pyi +12 -0
- aip_agents/utils/metadata/schemas/__init__.pyi +4 -0
- aip_agents/utils/metadata/schemas/activity_schema.pyi +18 -0
- aip_agents/utils/metadata/schemas/thinking_schema.pyi +20 -0
- aip_agents/utils/metadata/thinking_metadata_helper.pyi +4 -0
- aip_agents/utils/metadata_helper.pyi +117 -0
- aip_agents/utils/name_preprocessor/__init__.pyi +6 -0
- aip_agents/utils/name_preprocessor/base_name_preprocessor.pyi +52 -0
- aip_agents/utils/name_preprocessor/google_name_preprocessor.pyi +38 -0
- aip_agents/utils/name_preprocessor/name_preprocessor.pyi +41 -0
- aip_agents/utils/name_preprocessor/openai_name_preprocessor.pyi +34 -0
- aip_agents/utils/pii/__init__.pyi +5 -0
- aip_agents/utils/pii/pii_handler.pyi +96 -0
- aip_agents/utils/pii/pii_helper.pyi +78 -0
- aip_agents/utils/pii/uuid_deanonymizer_mapping.pyi +73 -0
- aip_agents/utils/reference_helper.pyi +81 -0
- aip_agents/utils/sse_chunk_transformer.pyi +166 -0
- aip_agents/utils/step_limit_manager.pyi +112 -0
- aip_agents/utils/token_usage_helper.pyi +60 -0
- {aip_agents_binary-0.5.20.dist-info → aip_agents_binary-0.5.22.dist-info}/METADATA +3 -3
- aip_agents_binary-0.5.22.dist-info/RECORD +546 -0
- aip_agents/tools/bosa_tools.py +0 -105
- aip_agents_binary-0.5.20.dist-info/RECORD +0 -280
- {aip_agents_binary-0.5.20.dist-info → aip_agents_binary-0.5.22.dist-info}/WHEEL +0 -0
- {aip_agents_binary-0.5.20.dist-info → aip_agents_binary-0.5.22.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,29 @@
|
|
|
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.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"""Constants for tools using
|
|
1
|
+
"""Constants for tools using GL Connectors.
|
|
2
2
|
|
|
3
3
|
Authors:
|
|
4
4
|
Saul Sayers (saul.sayers@gdplabs.id)
|
|
@@ -7,20 +7,34 @@ Authors:
|
|
|
7
7
|
import os
|
|
8
8
|
from enum import Enum, StrEnum
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
GL_CONNECTORS_BASE_URL = (
|
|
11
|
+
os.getenv("GL_CONNECTORS_BASE_URL")
|
|
12
|
+
or os.getenv("GL_CONNECTORS_API_BASE_URL")
|
|
13
|
+
or os.getenv("BOSA_API_BASE_URL")
|
|
14
|
+
or os.getenv("BOSA_BASE_URL")
|
|
15
|
+
)
|
|
16
|
+
GL_CONNECTORS_API_KEY = os.getenv("GL_CONNECTORS_API_KEY") or os.getenv("BOSA_API_KEY")
|
|
17
|
+
GL_CONNECTORS_FETCH_MAX_RETRIES = int(
|
|
18
|
+
os.getenv("GL_CONNECTORS_FETCH_MAX_RETRIES")
|
|
19
|
+
or os.getenv("BOSA_FETCH_MAX_RETRIES")
|
|
20
|
+
or 3
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
# For backward compatibility
|
|
24
|
+
BOSA_API_BASE_URL = GL_CONNECTORS_BASE_URL
|
|
25
|
+
BOSA_API_KEY = GL_CONNECTORS_API_KEY
|
|
26
|
+
BOSA_FETCH_MAX_RETRIES = GL_CONNECTORS_FETCH_MAX_RETRIES
|
|
13
27
|
|
|
14
28
|
|
|
15
29
|
class ToolType(StrEnum):
|
|
16
|
-
"""Tool types for
|
|
30
|
+
"""Tool types for GL Connectors."""
|
|
17
31
|
|
|
18
32
|
GLLM = "gllm"
|
|
19
33
|
LANGCHAIN = "langchain"
|
|
20
34
|
|
|
21
35
|
|
|
22
36
|
class Action(Enum):
|
|
23
|
-
"""Actions for
|
|
37
|
+
"""Actions for GL Connectors."""
|
|
24
38
|
|
|
25
39
|
GITHUB = "github"
|
|
26
40
|
GOOGLE = "google"
|
|
@@ -30,7 +44,7 @@ class Action(Enum):
|
|
|
30
44
|
|
|
31
45
|
|
|
32
46
|
class GitHubEndpoint(Enum):
|
|
33
|
-
"""GitHub endpoints for
|
|
47
|
+
"""GitHub endpoints for GL Connectors."""
|
|
34
48
|
|
|
35
49
|
INTEGRATIONS = "integrations"
|
|
36
50
|
USER_HAS_INTEGRATION = "integration-exists"
|
|
@@ -59,7 +73,7 @@ class GitHubEndpoint(Enum):
|
|
|
59
73
|
|
|
60
74
|
|
|
61
75
|
class GoogleDriveEndpoint(Enum):
|
|
62
|
-
"""Google Drive endpoints for
|
|
76
|
+
"""Google Drive endpoints for GL Connectors."""
|
|
63
77
|
|
|
64
78
|
INTEGRATIONS = "integrations"
|
|
65
79
|
USER_HAS_INTEGRATION = "integration-exists"
|
|
@@ -84,7 +98,7 @@ class GoogleDriveEndpoint(Enum):
|
|
|
84
98
|
|
|
85
99
|
|
|
86
100
|
class GoogleDocsEndpoint(Enum):
|
|
87
|
-
"""Google Docs endpoints for
|
|
101
|
+
"""Google Docs endpoints for GL Connectors."""
|
|
88
102
|
|
|
89
103
|
INTEGRATIONS = "integrations"
|
|
90
104
|
USER_HAS_INTEGRATION = "integration-exists"
|
|
@@ -100,7 +114,7 @@ class GoogleDocsEndpoint(Enum):
|
|
|
100
114
|
|
|
101
115
|
|
|
102
116
|
class GoogleEndpoint(Enum):
|
|
103
|
-
"""Google endpoints for
|
|
117
|
+
"""Google endpoints for GL Connectors."""
|
|
104
118
|
|
|
105
119
|
INTEGRATIONS = "integrations"
|
|
106
120
|
USER_HAS_INTEGRATION = "integration-exists"
|
|
@@ -109,7 +123,7 @@ class GoogleEndpoint(Enum):
|
|
|
109
123
|
|
|
110
124
|
|
|
111
125
|
class TwitterEndpoint(Enum):
|
|
112
|
-
"""Twitter endpoints for
|
|
126
|
+
"""Twitter endpoints for GL Connectors."""
|
|
113
127
|
|
|
114
128
|
INTEGRATIONS = "integrations"
|
|
115
129
|
USER_HAS_INTEGRATION = "integration-exists"
|
|
@@ -121,7 +135,7 @@ class TwitterEndpoint(Enum):
|
|
|
121
135
|
|
|
122
136
|
|
|
123
137
|
class GoogleMailEndpoint(Enum):
|
|
124
|
-
"""Google Mail endpoints for
|
|
138
|
+
"""Google Mail endpoints for GL Connectors."""
|
|
125
139
|
|
|
126
140
|
INTEGRATIONS = "integrations"
|
|
127
141
|
USER_HAS_INTEGRATION = "integration-exists"
|
|
@@ -0,0 +1,138 @@
|
|
|
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]]
|
|
@@ -0,0 +1,7 @@
|
|
|
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']
|
|
@@ -0,0 +1,75 @@
|
|
|
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
|
+
"""
|
|
@@ -0,0 +1,10 @@
|
|
|
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
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
from _typeshed import Incomplete
|
|
2
|
+
from aip_agents.tools.document_loader.base_reader import BaseDocumentReaderTool as BaseDocumentReaderTool, DOCPROC_MISSING_MESSAGE as DOCPROC_MISSING_MESSAGE
|
|
3
|
+
from aip_agents.utils.logger import get_logger as get_logger
|
|
4
|
+
|
|
5
|
+
logger: Incomplete
|
|
6
|
+
|
|
7
|
+
class ExcelReaderTool(BaseDocumentReaderTool):
|
|
8
|
+
'''Tool to read and extract content from Excel files.
|
|
9
|
+
|
|
10
|
+
This tool reads Excel files (.xlsx, .xlsm) and extracts their content using
|
|
11
|
+
the gllm_docproc loader pipeline. The content is formatted as Markdown tables
|
|
12
|
+
for easy readability.
|
|
13
|
+
|
|
14
|
+
Features:
|
|
15
|
+
- Supports .xlsx and .xlsm formats
|
|
16
|
+
- Extracts all sheets or specific sheets
|
|
17
|
+
- Formats output as Markdown tables
|
|
18
|
+
- Configurable row limits and file size limits
|
|
19
|
+
|
|
20
|
+
Examples:
|
|
21
|
+
>>> tool = ExcelReaderTool()
|
|
22
|
+
>>> result = tool._run("/tmp/data.xlsx")
|
|
23
|
+
>>> print(result)
|
|
24
|
+
'''
|
|
25
|
+
name: str
|
|
26
|
+
description: str
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from _typeshed import Incomplete
|
|
2
|
+
from aip_agents.tools.document_loader.base_reader import BaseDocumentReaderTool as BaseDocumentReaderTool, DOCPROC_MISSING_MESSAGE as DOCPROC_MISSING_MESSAGE
|
|
3
|
+
from aip_agents.tools.document_loader.pdf_splitter import PDFSplitter as PDFSplitter
|
|
4
|
+
from aip_agents.utils.logger import get_logger as get_logger
|
|
5
|
+
|
|
6
|
+
logger: Incomplete
|
|
7
|
+
|
|
8
|
+
class PDFReaderTool(BaseDocumentReaderTool):
|
|
9
|
+
"""Tool to read and extract text from PDF files."""
|
|
10
|
+
name: str
|
|
11
|
+
description: str
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
class PDFSplitter:
|
|
2
|
+
"""Utility class for splitting PDF files into page-based temporary files."""
|
|
3
|
+
@staticmethod
|
|
4
|
+
def split_by_pages(file_path: str, batch_size: int) -> list[str]:
|
|
5
|
+
"""Split PDF into temporary files containing batch_size pages each.
|
|
6
|
+
|
|
7
|
+
Args:
|
|
8
|
+
file_path: Path to the PDF file to split
|
|
9
|
+
batch_size: Number of pages to include in each batch (1-10)
|
|
10
|
+
|
|
11
|
+
Returns:
|
|
12
|
+
List of temporary file paths containing the split PDF batches
|
|
13
|
+
|
|
14
|
+
Raises:
|
|
15
|
+
FileNotFoundError: If the input PDF file doesn't exist
|
|
16
|
+
ValueError: If batch_size is invalid or PDF is corrupted
|
|
17
|
+
Exception: For other PDF processing errors
|
|
18
|
+
"""
|