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.
Files changed (281) hide show
  1. aip_agents/__init__.pyi +19 -0
  2. aip_agents/a2a/__init__.pyi +3 -0
  3. aip_agents/a2a/server/__init__.pyi +4 -0
  4. aip_agents/a2a/server/base_executor.pyi +73 -0
  5. aip_agents/a2a/server/google_adk_executor.pyi +51 -0
  6. aip_agents/a2a/server/langflow_executor.pyi +43 -0
  7. aip_agents/a2a/server/langgraph_executor.pyi +47 -0
  8. aip_agents/a2a/types.pyi +132 -0
  9. aip_agents/agent/__init__.pyi +9 -0
  10. aip_agents/agent/base_agent.pyi +221 -0
  11. aip_agents/agent/base_langgraph_agent.pyi +232 -0
  12. aip_agents/agent/google_adk_agent.pyi +141 -0
  13. aip_agents/agent/google_adk_constants.pyi +3 -0
  14. aip_agents/agent/hitl/__init__.pyi +6 -0
  15. aip_agents/agent/hitl/config.pyi +15 -0
  16. aip_agents/agent/hitl/langgraph_hitl_mixin.pyi +42 -0
  17. aip_agents/agent/hitl/manager.pyi +200 -0
  18. aip_agents/agent/hitl/models.pyi +3 -0
  19. aip_agents/agent/hitl/prompt/__init__.pyi +4 -0
  20. aip_agents/agent/hitl/prompt/base.pyi +24 -0
  21. aip_agents/agent/hitl/prompt/deferred.pyi +30 -0
  22. aip_agents/agent/hitl/registry.pyi +101 -0
  23. aip_agents/agent/interface.pyi +81 -0
  24. aip_agents/agent/interfaces.pyi +44 -0
  25. aip_agents/agent/langflow_agent.pyi +133 -0
  26. aip_agents/agent/langgraph_memory_enhancer_agent.pyi +49 -0
  27. aip_agents/agent/langgraph_react_agent.pyi +126 -0
  28. aip_agents/agent/system_instruction_context.pyi +13 -0
  29. aip_agents/clients/__init__.pyi +4 -0
  30. aip_agents/clients/langflow/__init__.pyi +4 -0
  31. aip_agents/clients/langflow/client.pyi +140 -0
  32. aip_agents/clients/langflow/types.pyi +7 -0
  33. aip_agents/constants.pyi +7 -0
  34. aip_agents/examples/__init__.pyi +0 -0
  35. aip_agents/examples/compare_streaming_client.pyi +48 -0
  36. aip_agents/examples/compare_streaming_server.pyi +18 -0
  37. aip_agents/examples/demo_memory_recall.pyi +58 -0
  38. aip_agents/examples/hello_world_a2a_google_adk_client.pyi +9 -0
  39. aip_agents/examples/hello_world_a2a_google_adk_client_agent.pyi +9 -0
  40. aip_agents/examples/hello_world_a2a_google_adk_client_streaming.pyi +9 -0
  41. aip_agents/examples/hello_world_a2a_google_adk_server.pyi +15 -0
  42. aip_agents/examples/hello_world_a2a_langchain_client.pyi +5 -0
  43. aip_agents/examples/hello_world_a2a_langchain_client_agent.pyi +5 -0
  44. aip_agents/examples/hello_world_a2a_langchain_client_lm_invoker.pyi +5 -0
  45. aip_agents/examples/hello_world_a2a_langchain_client_streaming.pyi +5 -0
  46. aip_agents/examples/hello_world_a2a_langchain_reference_client_streaming.pyi +5 -0
  47. aip_agents/examples/hello_world_a2a_langchain_reference_server.pyi +15 -0
  48. aip_agents/examples/hello_world_a2a_langchain_server.pyi +15 -0
  49. aip_agents/examples/hello_world_a2a_langchain_server_lm_invoker.pyi +15 -0
  50. aip_agents/examples/hello_world_a2a_langflow_client.pyi +9 -0
  51. aip_agents/examples/hello_world_a2a_langflow_server.pyi +14 -0
  52. aip_agents/examples/hello_world_a2a_langgraph_artifact_client.pyi +5 -0
  53. aip_agents/examples/hello_world_a2a_langgraph_artifact_client_streaming.pyi +5 -0
  54. aip_agents/examples/hello_world_a2a_langgraph_artifact_server.pyi +16 -0
  55. aip_agents/examples/hello_world_a2a_langgraph_client.pyi +9 -0
  56. aip_agents/examples/hello_world_a2a_langgraph_client_agent.pyi +9 -0
  57. aip_agents/examples/hello_world_a2a_langgraph_client_agent_lm_invoker.pyi +2 -0
  58. aip_agents/examples/hello_world_a2a_langgraph_client_streaming.pyi +9 -0
  59. aip_agents/examples/hello_world_a2a_langgraph_client_streaming_lm_invoker.pyi +5 -0
  60. aip_agents/examples/hello_world_a2a_langgraph_client_streaming_tool_streaming.pyi +5 -0
  61. aip_agents/examples/hello_world_a2a_langgraph_server.pyi +14 -0
  62. aip_agents/examples/hello_world_a2a_langgraph_server_lm_invoker.pyi +15 -0
  63. aip_agents/examples/hello_world_a2a_langgraph_server_tool_streaming.pyi +15 -0
  64. aip_agents/examples/hello_world_a2a_mcp_langgraph.pyi +48 -0
  65. aip_agents/examples/hello_world_a2a_three_level_agent_hierarchy_client.pyi +48 -0
  66. aip_agents/examples/hello_world_a2a_three_level_agent_hierarchy_server.pyi +45 -0
  67. aip_agents/examples/hello_world_a2a_with_metadata_langchain_client.pyi +5 -0
  68. aip_agents/examples/hello_world_a2a_with_metadata_langchain_server_lm_invoker.pyi +15 -0
  69. aip_agents/examples/hello_world_google_adk.pyi +5 -0
  70. aip_agents/examples/hello_world_google_adk_mcp_http.pyi +5 -0
  71. aip_agents/examples/hello_world_google_adk_mcp_http_stream.pyi +5 -0
  72. aip_agents/examples/hello_world_google_adk_mcp_sse.pyi +5 -0
  73. aip_agents/examples/hello_world_google_adk_mcp_sse_stream.pyi +5 -0
  74. aip_agents/examples/hello_world_google_adk_mcp_stdio.pyi +5 -0
  75. aip_agents/examples/hello_world_google_adk_mcp_stdio_stream.pyi +5 -0
  76. aip_agents/examples/hello_world_google_adk_stream.pyi +5 -0
  77. aip_agents/examples/hello_world_langchain.pyi +5 -0
  78. aip_agents/examples/hello_world_langchain_lm_invoker.pyi +2 -0
  79. aip_agents/examples/hello_world_langchain_mcp_http.pyi +5 -0
  80. aip_agents/examples/hello_world_langchain_mcp_http_interactive.pyi +16 -0
  81. aip_agents/examples/hello_world_langchain_mcp_http_stream.pyi +5 -0
  82. aip_agents/examples/hello_world_langchain_mcp_multi_server.pyi +18 -0
  83. aip_agents/examples/hello_world_langchain_mcp_sse.pyi +5 -0
  84. aip_agents/examples/hello_world_langchain_mcp_sse_stream.pyi +5 -0
  85. aip_agents/examples/hello_world_langchain_mcp_stdio.pyi +5 -0
  86. aip_agents/examples/hello_world_langchain_mcp_stdio_stream.pyi +5 -0
  87. aip_agents/examples/hello_world_langchain_stream.pyi +5 -0
  88. aip_agents/examples/hello_world_langchain_stream_lm_invoker.pyi +5 -0
  89. aip_agents/examples/hello_world_langflow_agent.pyi +35 -0
  90. aip_agents/examples/hello_world_langgraph.pyi +5 -0
  91. aip_agents/examples/{hello_world_langgraph_bosa_twitter.py → hello_world_langgraph_gl_connector_twitter.py} +10 -8
  92. aip_agents/examples/hello_world_langgraph_gl_connector_twitter.pyi +5 -0
  93. aip_agents/examples/hello_world_langgraph_mcp_http.pyi +5 -0
  94. aip_agents/examples/hello_world_langgraph_mcp_http_stream.pyi +5 -0
  95. aip_agents/examples/hello_world_langgraph_mcp_sse.pyi +5 -0
  96. aip_agents/examples/hello_world_langgraph_mcp_sse_stream.pyi +5 -0
  97. aip_agents/examples/hello_world_langgraph_mcp_stdio.pyi +5 -0
  98. aip_agents/examples/hello_world_langgraph_mcp_stdio_stream.pyi +5 -0
  99. aip_agents/examples/hello_world_langgraph_stream.pyi +5 -0
  100. aip_agents/examples/hello_world_langgraph_stream_lm_invoker.pyi +5 -0
  101. aip_agents/examples/hello_world_model_switch_cli.pyi +30 -0
  102. aip_agents/examples/hello_world_multi_agent_adk.pyi +6 -0
  103. aip_agents/examples/hello_world_multi_agent_langchain.pyi +5 -0
  104. aip_agents/examples/hello_world_multi_agent_langgraph.pyi +5 -0
  105. aip_agents/examples/hello_world_multi_agent_langgraph_lm_invoker.pyi +5 -0
  106. aip_agents/examples/hello_world_pii_logger.pyi +5 -0
  107. aip_agents/examples/hello_world_sentry.py +8 -7
  108. aip_agents/examples/hello_world_sentry.pyi +21 -0
  109. aip_agents/examples/hello_world_step_limits.pyi +17 -0
  110. aip_agents/examples/hello_world_stock_a2a_server.pyi +17 -0
  111. aip_agents/examples/hello_world_tool_output_client.pyi +5 -0
  112. aip_agents/examples/hello_world_tool_output_server.pyi +19 -0
  113. aip_agents/examples/hitl_demo.pyi +67 -0
  114. aip_agents/examples/pii_demo_langgraph_client.pyi +5 -0
  115. aip_agents/examples/pii_demo_langgraph_server.pyi +20 -0
  116. aip_agents/examples/pii_demo_multi_agent_client.pyi +5 -0
  117. aip_agents/examples/pii_demo_multi_agent_server.pyi +40 -0
  118. aip_agents/examples/todolist_planning_a2a_langchain_client.pyi +5 -0
  119. aip_agents/examples/todolist_planning_a2a_langgraph_server.pyi +19 -0
  120. aip_agents/examples/tools/__init__.pyi +9 -0
  121. aip_agents/examples/tools/adk_arithmetic_tools.pyi +24 -0
  122. aip_agents/examples/tools/adk_weather_tool.pyi +18 -0
  123. aip_agents/examples/tools/data_generator_tool.pyi +15 -0
  124. aip_agents/examples/tools/data_visualization_tool.pyi +19 -0
  125. aip_agents/examples/tools/image_artifact_tool.pyi +26 -0
  126. aip_agents/examples/tools/langchain_arithmetic_tools.pyi +17 -0
  127. aip_agents/examples/tools/langchain_currency_exchange_tool.pyi +20 -0
  128. aip_agents/examples/tools/langchain_graph_artifact_tool.pyi +25 -0
  129. aip_agents/examples/tools/langchain_weather_tool.pyi +19 -0
  130. aip_agents/examples/tools/langgraph_streaming_tool.pyi +43 -0
  131. aip_agents/examples/tools/mock_retrieval_tool.pyi +13 -0
  132. aip_agents/examples/tools/pii_demo_tools.pyi +54 -0
  133. aip_agents/examples/tools/random_chart_tool.pyi +20 -0
  134. aip_agents/examples/tools/serper_tool.pyi +16 -0
  135. aip_agents/examples/tools/stock_tools.pyi +36 -0
  136. aip_agents/examples/tools/table_generator_tool.pyi +22 -0
  137. aip_agents/examples/tools/time_tool.pyi +15 -0
  138. aip_agents/examples/tools/weather_forecast_tool.pyi +14 -0
  139. aip_agents/mcp/__init__.pyi +0 -0
  140. aip_agents/mcp/client/__init__.pyi +5 -0
  141. aip_agents/mcp/client/base_mcp_client.pyi +148 -0
  142. aip_agents/mcp/client/connection_manager.pyi +48 -0
  143. aip_agents/mcp/client/google_adk/__init__.pyi +3 -0
  144. aip_agents/mcp/client/google_adk/client.pyi +75 -0
  145. aip_agents/mcp/client/langchain/__init__.pyi +3 -0
  146. aip_agents/mcp/client/langchain/client.pyi +48 -0
  147. aip_agents/mcp/client/persistent_session.pyi +113 -0
  148. aip_agents/mcp/client/session_pool.pyi +101 -0
  149. aip_agents/mcp/client/transports.pyi +123 -0
  150. aip_agents/mcp/utils/__init__.pyi +0 -0
  151. aip_agents/mcp/utils/config_validator.pyi +82 -0
  152. aip_agents/memory/__init__.pyi +5 -0
  153. aip_agents/memory/adapters/__init__.pyi +4 -0
  154. aip_agents/memory/adapters/base_adapter.pyi +150 -0
  155. aip_agents/memory/adapters/mem0.pyi +22 -0
  156. aip_agents/memory/base.pyi +60 -0
  157. aip_agents/memory/constants.pyi +25 -0
  158. aip_agents/memory/factory.pyi +24 -0
  159. aip_agents/memory/guidance.pyi +3 -0
  160. aip_agents/memory/simple_memory.pyi +23 -0
  161. aip_agents/middleware/__init__.pyi +5 -0
  162. aip_agents/middleware/base.pyi +71 -0
  163. aip_agents/middleware/manager.pyi +80 -0
  164. aip_agents/middleware/todolist.pyi +125 -0
  165. aip_agents/schema/__init__.pyi +9 -0
  166. aip_agents/schema/a2a.pyi +40 -0
  167. aip_agents/schema/agent.pyi +65 -0
  168. aip_agents/schema/hitl.pyi +89 -0
  169. aip_agents/schema/langgraph.pyi +28 -0
  170. aip_agents/schema/model_id.pyi +54 -0
  171. aip_agents/schema/step_limit.pyi +63 -0
  172. aip_agents/schema/storage.pyi +21 -0
  173. aip_agents/sentry/__init__.py +1 -1
  174. aip_agents/sentry/__init__.pyi +3 -0
  175. aip_agents/sentry/sentry.py +17 -10
  176. aip_agents/sentry/sentry.pyi +48 -0
  177. aip_agents/storage/__init__.pyi +8 -0
  178. aip_agents/storage/base.pyi +58 -0
  179. aip_agents/storage/clients/__init__.pyi +3 -0
  180. aip_agents/storage/clients/minio_client.pyi +137 -0
  181. aip_agents/storage/config.pyi +29 -0
  182. aip_agents/storage/providers/__init__.pyi +5 -0
  183. aip_agents/storage/providers/base.pyi +88 -0
  184. aip_agents/storage/providers/memory.pyi +79 -0
  185. aip_agents/storage/providers/object_storage.pyi +98 -0
  186. aip_agents/tools/__init__.py +26 -6
  187. aip_agents/tools/__init__.pyi +9 -0
  188. aip_agents/tools/browser_use/__init__.pyi +14 -0
  189. aip_agents/tools/browser_use/action_parser.pyi +18 -0
  190. aip_agents/tools/browser_use/browser_use_tool.pyi +50 -0
  191. aip_agents/tools/browser_use/llm_config.pyi +52 -0
  192. aip_agents/tools/browser_use/minio_storage.pyi +109 -0
  193. aip_agents/tools/browser_use/schemas.pyi +32 -0
  194. aip_agents/tools/browser_use/session.pyi +4 -0
  195. aip_agents/tools/browser_use/session_errors.pyi +53 -0
  196. aip_agents/tools/browser_use/steel_session_recording.pyi +63 -0
  197. aip_agents/tools/browser_use/streaming.pyi +81 -0
  198. aip_agents/tools/browser_use/structured_data_parser.pyi +86 -0
  199. aip_agents/tools/browser_use/structured_data_recovery.pyi +43 -0
  200. aip_agents/tools/browser_use/types.pyi +45 -0
  201. aip_agents/tools/code_sandbox/__init__.pyi +3 -0
  202. aip_agents/tools/code_sandbox/constant.pyi +4 -0
  203. aip_agents/tools/code_sandbox/e2b_cloud_sandbox_extended.pyi +86 -0
  204. aip_agents/tools/code_sandbox/e2b_sandbox_tool.pyi +29 -0
  205. aip_agents/tools/constants.py +26 -12
  206. aip_agents/tools/constants.pyi +138 -0
  207. aip_agents/tools/document_loader/__init__.pyi +7 -0
  208. aip_agents/tools/document_loader/base_reader.pyi +75 -0
  209. aip_agents/tools/document_loader/docx_reader_tool.pyi +10 -0
  210. aip_agents/tools/document_loader/excel_reader_tool.pyi +26 -0
  211. aip_agents/tools/document_loader/pdf_reader_tool.pyi +11 -0
  212. aip_agents/tools/document_loader/pdf_splitter.pyi +18 -0
  213. aip_agents/tools/gl_connector/__init__.py +1 -1
  214. aip_agents/tools/gl_connector/__init__.pyi +3 -0
  215. aip_agents/tools/gl_connector/tool.py +104 -45
  216. aip_agents/tools/gl_connector/tool.pyi +74 -0
  217. aip_agents/tools/gl_connector_tools.py +122 -0
  218. aip_agents/tools/gl_connector_tools.pyi +39 -0
  219. aip_agents/tools/memory_search/__init__.pyi +5 -0
  220. aip_agents/tools/memory_search/base.pyi +69 -0
  221. aip_agents/tools/memory_search/mem0.pyi +19 -0
  222. aip_agents/tools/memory_search/schema.pyi +15 -0
  223. aip_agents/tools/memory_search_tool.pyi +3 -0
  224. aip_agents/tools/time_tool.pyi +16 -0
  225. aip_agents/tools/tool_config_injector.pyi +26 -0
  226. aip_agents/tools/web_search/__init__.pyi +3 -0
  227. aip_agents/tools/web_search/serper_tool.pyi +19 -0
  228. aip_agents/types/__init__.pyi +36 -0
  229. aip_agents/types/a2a_events.pyi +3 -0
  230. aip_agents/utils/__init__.pyi +11 -0
  231. aip_agents/utils/a2a_connector.pyi +146 -0
  232. aip_agents/utils/artifact_helpers.pyi +203 -0
  233. aip_agents/utils/constants.pyi +10 -0
  234. aip_agents/utils/datetime/__init__.pyi +4 -0
  235. aip_agents/utils/datetime/normalization.pyi +95 -0
  236. aip_agents/utils/datetime/timezone.pyi +48 -0
  237. aip_agents/utils/env_loader.pyi +10 -0
  238. aip_agents/utils/event_handler_registry.pyi +23 -0
  239. aip_agents/utils/file_prompt_utils.pyi +21 -0
  240. aip_agents/utils/final_response_builder.pyi +34 -0
  241. aip_agents/utils/formatter_llm_client.pyi +71 -0
  242. aip_agents/utils/langgraph/__init__.pyi +3 -0
  243. aip_agents/utils/langgraph/converter.pyi +49 -0
  244. aip_agents/utils/langgraph/tool_managers/__init__.pyi +5 -0
  245. aip_agents/utils/langgraph/tool_managers/a2a_tool_manager.pyi +35 -0
  246. aip_agents/utils/langgraph/tool_managers/base_tool_manager.pyi +48 -0
  247. aip_agents/utils/langgraph/tool_managers/delegation_tool_manager.pyi +56 -0
  248. aip_agents/utils/langgraph/tool_output_management.pyi +292 -0
  249. aip_agents/utils/logger.pyi +60 -0
  250. aip_agents/utils/metadata/__init__.pyi +5 -0
  251. aip_agents/utils/metadata/activity_metadata_helper.pyi +25 -0
  252. aip_agents/utils/metadata/activity_narrative/__init__.pyi +7 -0
  253. aip_agents/utils/metadata/activity_narrative/builder.pyi +35 -0
  254. aip_agents/utils/metadata/activity_narrative/constants.pyi +10 -0
  255. aip_agents/utils/metadata/activity_narrative/context.pyi +32 -0
  256. aip_agents/utils/metadata/activity_narrative/formatters.pyi +48 -0
  257. aip_agents/utils/metadata/activity_narrative/utils.pyi +12 -0
  258. aip_agents/utils/metadata/schemas/__init__.pyi +4 -0
  259. aip_agents/utils/metadata/schemas/activity_schema.pyi +18 -0
  260. aip_agents/utils/metadata/schemas/thinking_schema.pyi +20 -0
  261. aip_agents/utils/metadata/thinking_metadata_helper.pyi +4 -0
  262. aip_agents/utils/metadata_helper.pyi +117 -0
  263. aip_agents/utils/name_preprocessor/__init__.pyi +6 -0
  264. aip_agents/utils/name_preprocessor/base_name_preprocessor.pyi +52 -0
  265. aip_agents/utils/name_preprocessor/google_name_preprocessor.pyi +38 -0
  266. aip_agents/utils/name_preprocessor/name_preprocessor.pyi +41 -0
  267. aip_agents/utils/name_preprocessor/openai_name_preprocessor.pyi +34 -0
  268. aip_agents/utils/pii/__init__.pyi +5 -0
  269. aip_agents/utils/pii/pii_handler.pyi +96 -0
  270. aip_agents/utils/pii/pii_helper.pyi +78 -0
  271. aip_agents/utils/pii/uuid_deanonymizer_mapping.pyi +73 -0
  272. aip_agents/utils/reference_helper.pyi +81 -0
  273. aip_agents/utils/sse_chunk_transformer.pyi +166 -0
  274. aip_agents/utils/step_limit_manager.pyi +112 -0
  275. aip_agents/utils/token_usage_helper.pyi +60 -0
  276. {aip_agents_binary-0.5.20.dist-info → aip_agents_binary-0.5.22.dist-info}/METADATA +3 -3
  277. aip_agents_binary-0.5.22.dist-info/RECORD +546 -0
  278. aip_agents/tools/bosa_tools.py +0 -105
  279. aip_agents_binary-0.5.20.dist-info/RECORD +0 -280
  280. {aip_agents_binary-0.5.20.dist-info → aip_agents_binary-0.5.22.dist-info}/WHEEL +0 -0
  281. {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
@@ -1,4 +1,4 @@
1
- """Constants for tools using BOSA Connector.
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
- BOSA_API_BASE_URL = os.getenv("BOSA_API_BASE_URL")
11
- BOSA_API_KEY = os.getenv("BOSA_API_KEY")
12
- BOSA_FETCH_MAX_RETRIES = 3
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 BOSA Connector."""
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 BOSA Connector."""
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 BOSA Connector."""
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 BOSA Connector."""
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 BOSA Connector."""
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 BOSA Connector."""
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 BOSA Connector."""
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 BOSA Connector."""
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
+ """
@@ -1,4 +1,4 @@
1
- """GL Connector tool wrapper exports."""
1
+ """GL Connectors tool wrapper exports."""
2
2
 
3
3
  from aip_agents.tools.gl_connector.tool import GLConnectorTool
4
4
 
@@ -0,0 +1,3 @@
1
+ from aip_agents.tools.gl_connector.tool import GLConnectorTool as GLConnectorTool
2
+
3
+ __all__ = ['GLConnectorTool']