agentpool 2.1.9__py3-none-any.whl → 2.5.0__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.
- acp/__init__.py +13 -4
- acp/acp_requests.py +20 -77
- acp/agent/connection.py +8 -0
- acp/agent/implementations/debug_server/debug_server.py +6 -2
- acp/agent/protocol.py +6 -0
- acp/bridge/README.md +15 -2
- acp/bridge/__init__.py +3 -2
- acp/bridge/__main__.py +60 -19
- acp/bridge/ws_server.py +173 -0
- acp/bridge/ws_server_cli.py +89 -0
- acp/client/connection.py +38 -29
- acp/client/implementations/default_client.py +3 -2
- acp/client/implementations/headless_client.py +2 -2
- acp/connection.py +2 -2
- acp/notifications.py +20 -50
- acp/schema/__init__.py +2 -0
- acp/schema/agent_responses.py +21 -0
- acp/schema/client_requests.py +3 -3
- acp/schema/session_state.py +63 -29
- acp/stdio.py +39 -9
- acp/task/supervisor.py +2 -2
- acp/transports.py +362 -2
- acp/utils.py +17 -4
- agentpool/__init__.py +6 -1
- agentpool/agents/__init__.py +2 -0
- agentpool/agents/acp_agent/acp_agent.py +407 -277
- agentpool/agents/acp_agent/acp_converters.py +196 -38
- agentpool/agents/acp_agent/client_handler.py +191 -26
- agentpool/agents/acp_agent/session_state.py +17 -6
- agentpool/agents/agent.py +607 -572
- agentpool/agents/agui_agent/__init__.py +0 -2
- agentpool/agents/agui_agent/agui_agent.py +176 -110
- agentpool/agents/agui_agent/agui_converters.py +0 -131
- agentpool/agents/agui_agent/helpers.py +3 -4
- agentpool/agents/base_agent.py +632 -17
- agentpool/agents/claude_code_agent/FORKING.md +191 -0
- agentpool/agents/claude_code_agent/__init__.py +13 -1
- agentpool/agents/claude_code_agent/claude_code_agent.py +1058 -291
- agentpool/agents/claude_code_agent/converters.py +74 -143
- agentpool/agents/claude_code_agent/history.py +474 -0
- agentpool/agents/claude_code_agent/models.py +77 -0
- agentpool/agents/claude_code_agent/static_info.py +100 -0
- agentpool/agents/claude_code_agent/usage.py +242 -0
- agentpool/agents/context.py +40 -0
- agentpool/agents/events/__init__.py +24 -0
- agentpool/agents/events/builtin_handlers.py +67 -1
- agentpool/agents/events/event_emitter.py +32 -2
- agentpool/agents/events/events.py +104 -3
- agentpool/agents/events/infer_info.py +145 -0
- agentpool/agents/events/processors.py +254 -0
- agentpool/agents/interactions.py +41 -6
- agentpool/agents/modes.py +67 -0
- agentpool/agents/slashed_agent.py +5 -4
- agentpool/agents/tool_call_accumulator.py +213 -0
- agentpool/agents/tool_wrapping.py +18 -6
- agentpool/common_types.py +56 -21
- agentpool/config_resources/__init__.py +38 -1
- agentpool/config_resources/acp_assistant.yml +2 -2
- agentpool/config_resources/agents.yml +3 -0
- agentpool/config_resources/agents_template.yml +1 -0
- agentpool/config_resources/claude_code_agent.yml +10 -6
- agentpool/config_resources/external_acp_agents.yml +2 -1
- agentpool/delegation/base_team.py +4 -30
- agentpool/delegation/pool.py +136 -289
- agentpool/delegation/team.py +58 -57
- agentpool/delegation/teamrun.py +51 -55
- agentpool/diagnostics/__init__.py +53 -0
- agentpool/diagnostics/lsp_manager.py +1593 -0
- agentpool/diagnostics/lsp_proxy.py +41 -0
- agentpool/diagnostics/lsp_proxy_script.py +229 -0
- agentpool/diagnostics/models.py +398 -0
- agentpool/functional/run.py +10 -4
- agentpool/mcp_server/__init__.py +0 -2
- agentpool/mcp_server/client.py +76 -32
- agentpool/mcp_server/conversions.py +54 -13
- agentpool/mcp_server/manager.py +34 -54
- agentpool/mcp_server/registries/official_registry_client.py +35 -1
- agentpool/mcp_server/tool_bridge.py +186 -139
- agentpool/messaging/__init__.py +0 -2
- agentpool/messaging/compaction.py +72 -197
- agentpool/messaging/connection_manager.py +11 -10
- agentpool/messaging/event_manager.py +5 -5
- agentpool/messaging/message_container.py +6 -30
- agentpool/messaging/message_history.py +99 -8
- agentpool/messaging/messagenode.py +52 -14
- agentpool/messaging/messages.py +54 -35
- agentpool/messaging/processing.py +12 -22
- agentpool/models/__init__.py +1 -1
- agentpool/models/acp_agents/base.py +6 -24
- agentpool/models/acp_agents/mcp_capable.py +126 -157
- agentpool/models/acp_agents/non_mcp.py +129 -95
- agentpool/models/agents.py +98 -76
- agentpool/models/agui_agents.py +1 -1
- agentpool/models/claude_code_agents.py +144 -19
- agentpool/models/file_parsing.py +0 -1
- agentpool/models/manifest.py +113 -50
- agentpool/prompts/conversion_manager.py +1 -1
- agentpool/prompts/prompts.py +5 -2
- agentpool/repomap.py +1 -1
- agentpool/resource_providers/__init__.py +11 -1
- agentpool/resource_providers/aggregating.py +56 -5
- agentpool/resource_providers/base.py +70 -4
- agentpool/resource_providers/codemode/code_executor.py +72 -5
- agentpool/resource_providers/codemode/helpers.py +2 -2
- agentpool/resource_providers/codemode/provider.py +64 -12
- agentpool/resource_providers/codemode/remote_mcp_execution.py +2 -2
- agentpool/resource_providers/codemode/remote_provider.py +9 -12
- agentpool/resource_providers/filtering.py +3 -1
- agentpool/resource_providers/mcp_provider.py +89 -12
- agentpool/resource_providers/plan_provider.py +228 -46
- agentpool/resource_providers/pool.py +7 -3
- agentpool/resource_providers/resource_info.py +111 -0
- agentpool/resource_providers/static.py +4 -2
- agentpool/sessions/__init__.py +4 -1
- agentpool/sessions/manager.py +33 -5
- agentpool/sessions/models.py +59 -6
- agentpool/sessions/protocol.py +28 -0
- agentpool/sessions/session.py +11 -55
- agentpool/skills/registry.py +13 -8
- agentpool/storage/manager.py +572 -49
- agentpool/talk/registry.py +4 -4
- agentpool/talk/talk.py +9 -10
- agentpool/testing.py +538 -20
- agentpool/tool_impls/__init__.py +6 -0
- agentpool/tool_impls/agent_cli/__init__.py +42 -0
- agentpool/tool_impls/agent_cli/tool.py +95 -0
- agentpool/tool_impls/bash/__init__.py +64 -0
- agentpool/tool_impls/bash/helpers.py +35 -0
- agentpool/tool_impls/bash/tool.py +171 -0
- agentpool/tool_impls/delete_path/__init__.py +70 -0
- agentpool/tool_impls/delete_path/tool.py +142 -0
- agentpool/tool_impls/download_file/__init__.py +80 -0
- agentpool/tool_impls/download_file/tool.py +183 -0
- agentpool/tool_impls/execute_code/__init__.py +55 -0
- agentpool/tool_impls/execute_code/tool.py +163 -0
- agentpool/tool_impls/grep/__init__.py +80 -0
- agentpool/tool_impls/grep/tool.py +200 -0
- agentpool/tool_impls/list_directory/__init__.py +73 -0
- agentpool/tool_impls/list_directory/tool.py +197 -0
- agentpool/tool_impls/question/__init__.py +42 -0
- agentpool/tool_impls/question/tool.py +127 -0
- agentpool/tool_impls/read/__init__.py +104 -0
- agentpool/tool_impls/read/tool.py +305 -0
- agentpool/tools/__init__.py +2 -1
- agentpool/tools/base.py +114 -34
- agentpool/tools/manager.py +57 -1
- agentpool/ui/base.py +2 -2
- agentpool/ui/mock_provider.py +2 -2
- agentpool/ui/stdlib_provider.py +2 -2
- agentpool/utils/file_watcher.py +269 -0
- agentpool/utils/identifiers.py +121 -0
- agentpool/utils/pydantic_ai_helpers.py +46 -0
- agentpool/utils/streams.py +616 -2
- agentpool/utils/subprocess_utils.py +155 -0
- agentpool/utils/token_breakdown.py +461 -0
- agentpool/vfs_registry.py +7 -2
- {agentpool-2.1.9.dist-info → agentpool-2.5.0.dist-info}/METADATA +41 -27
- agentpool-2.5.0.dist-info/RECORD +579 -0
- {agentpool-2.1.9.dist-info → agentpool-2.5.0.dist-info}/WHEEL +1 -1
- agentpool_cli/__main__.py +24 -0
- agentpool_cli/create.py +1 -1
- agentpool_cli/serve_acp.py +100 -21
- agentpool_cli/serve_agui.py +87 -0
- agentpool_cli/serve_opencode.py +119 -0
- agentpool_cli/ui.py +557 -0
- agentpool_commands/__init__.py +42 -5
- agentpool_commands/agents.py +75 -2
- agentpool_commands/history.py +62 -0
- agentpool_commands/mcp.py +176 -0
- agentpool_commands/models.py +56 -3
- agentpool_commands/pool.py +260 -0
- agentpool_commands/session.py +1 -1
- agentpool_commands/text_sharing/__init__.py +119 -0
- agentpool_commands/text_sharing/base.py +123 -0
- agentpool_commands/text_sharing/github_gist.py +80 -0
- agentpool_commands/text_sharing/opencode.py +462 -0
- agentpool_commands/text_sharing/paste_rs.py +59 -0
- agentpool_commands/text_sharing/pastebin.py +116 -0
- agentpool_commands/text_sharing/shittycodingagent.py +112 -0
- agentpool_commands/tools.py +57 -0
- agentpool_commands/utils.py +80 -30
- agentpool_config/__init__.py +30 -2
- agentpool_config/agentpool_tools.py +498 -0
- agentpool_config/builtin_tools.py +77 -22
- agentpool_config/commands.py +24 -1
- agentpool_config/compaction.py +258 -0
- agentpool_config/converters.py +1 -1
- agentpool_config/event_handlers.py +42 -0
- agentpool_config/events.py +1 -1
- agentpool_config/forward_targets.py +1 -4
- agentpool_config/jinja.py +3 -3
- agentpool_config/mcp_server.py +132 -6
- agentpool_config/nodes.py +1 -1
- agentpool_config/observability.py +44 -0
- agentpool_config/session.py +0 -3
- agentpool_config/storage.py +82 -38
- agentpool_config/task.py +3 -3
- agentpool_config/tools.py +11 -22
- agentpool_config/toolsets.py +109 -233
- agentpool_server/a2a_server/agent_worker.py +307 -0
- agentpool_server/a2a_server/server.py +23 -18
- agentpool_server/acp_server/acp_agent.py +234 -181
- agentpool_server/acp_server/commands/acp_commands.py +151 -156
- agentpool_server/acp_server/commands/docs_commands/fetch_repo.py +18 -17
- agentpool_server/acp_server/event_converter.py +651 -0
- agentpool_server/acp_server/input_provider.py +53 -10
- agentpool_server/acp_server/server.py +24 -90
- agentpool_server/acp_server/session.py +173 -331
- agentpool_server/acp_server/session_manager.py +8 -34
- agentpool_server/agui_server/server.py +3 -1
- agentpool_server/mcp_server/server.py +5 -2
- agentpool_server/opencode_server/.rules +95 -0
- agentpool_server/opencode_server/ENDPOINTS.md +401 -0
- agentpool_server/opencode_server/OPENCODE_UI_TOOLS_COMPLETE.md +202 -0
- agentpool_server/opencode_server/__init__.py +19 -0
- agentpool_server/opencode_server/command_validation.py +172 -0
- agentpool_server/opencode_server/converters.py +975 -0
- agentpool_server/opencode_server/dependencies.py +24 -0
- agentpool_server/opencode_server/input_provider.py +421 -0
- agentpool_server/opencode_server/models/__init__.py +250 -0
- agentpool_server/opencode_server/models/agent.py +53 -0
- agentpool_server/opencode_server/models/app.py +72 -0
- agentpool_server/opencode_server/models/base.py +26 -0
- agentpool_server/opencode_server/models/common.py +23 -0
- agentpool_server/opencode_server/models/config.py +37 -0
- agentpool_server/opencode_server/models/events.py +821 -0
- agentpool_server/opencode_server/models/file.py +88 -0
- agentpool_server/opencode_server/models/mcp.py +44 -0
- agentpool_server/opencode_server/models/message.py +179 -0
- agentpool_server/opencode_server/models/parts.py +323 -0
- agentpool_server/opencode_server/models/provider.py +81 -0
- agentpool_server/opencode_server/models/pty.py +43 -0
- agentpool_server/opencode_server/models/question.py +56 -0
- agentpool_server/opencode_server/models/session.py +111 -0
- agentpool_server/opencode_server/routes/__init__.py +29 -0
- agentpool_server/opencode_server/routes/agent_routes.py +473 -0
- agentpool_server/opencode_server/routes/app_routes.py +202 -0
- agentpool_server/opencode_server/routes/config_routes.py +302 -0
- agentpool_server/opencode_server/routes/file_routes.py +571 -0
- agentpool_server/opencode_server/routes/global_routes.py +94 -0
- agentpool_server/opencode_server/routes/lsp_routes.py +319 -0
- agentpool_server/opencode_server/routes/message_routes.py +761 -0
- agentpool_server/opencode_server/routes/permission_routes.py +63 -0
- agentpool_server/opencode_server/routes/pty_routes.py +300 -0
- agentpool_server/opencode_server/routes/question_routes.py +128 -0
- agentpool_server/opencode_server/routes/session_routes.py +1276 -0
- agentpool_server/opencode_server/routes/tui_routes.py +139 -0
- agentpool_server/opencode_server/server.py +475 -0
- agentpool_server/opencode_server/state.py +151 -0
- agentpool_server/opencode_server/time_utils.py +8 -0
- agentpool_storage/__init__.py +12 -0
- agentpool_storage/base.py +184 -2
- agentpool_storage/claude_provider/ARCHITECTURE.md +433 -0
- agentpool_storage/claude_provider/__init__.py +42 -0
- agentpool_storage/claude_provider/provider.py +1089 -0
- agentpool_storage/file_provider.py +278 -15
- agentpool_storage/memory_provider.py +193 -12
- agentpool_storage/models.py +3 -0
- agentpool_storage/opencode_provider/ARCHITECTURE.md +386 -0
- agentpool_storage/opencode_provider/__init__.py +16 -0
- agentpool_storage/opencode_provider/helpers.py +414 -0
- agentpool_storage/opencode_provider/provider.py +895 -0
- agentpool_storage/project_store.py +325 -0
- agentpool_storage/session_store.py +26 -6
- agentpool_storage/sql_provider/__init__.py +4 -2
- agentpool_storage/sql_provider/models.py +48 -0
- agentpool_storage/sql_provider/sql_provider.py +269 -3
- agentpool_storage/sql_provider/utils.py +12 -13
- agentpool_storage/zed_provider/__init__.py +16 -0
- agentpool_storage/zed_provider/helpers.py +281 -0
- agentpool_storage/zed_provider/models.py +130 -0
- agentpool_storage/zed_provider/provider.py +442 -0
- agentpool_storage/zed_provider.py +803 -0
- agentpool_toolsets/__init__.py +0 -2
- agentpool_toolsets/builtin/__init__.py +2 -12
- agentpool_toolsets/builtin/code.py +96 -57
- agentpool_toolsets/builtin/debug.py +118 -48
- agentpool_toolsets/builtin/execution_environment.py +115 -230
- agentpool_toolsets/builtin/file_edit/file_edit.py +115 -7
- agentpool_toolsets/builtin/skills.py +9 -4
- agentpool_toolsets/builtin/subagent_tools.py +64 -51
- agentpool_toolsets/builtin/workers.py +4 -2
- agentpool_toolsets/composio_toolset.py +2 -2
- agentpool_toolsets/entry_points.py +3 -1
- agentpool_toolsets/fsspec_toolset/__init__.py +13 -1
- agentpool_toolsets/fsspec_toolset/diagnostics.py +860 -73
- agentpool_toolsets/fsspec_toolset/grep.py +99 -7
- agentpool_toolsets/fsspec_toolset/helpers.py +3 -2
- agentpool_toolsets/fsspec_toolset/image_utils.py +161 -0
- agentpool_toolsets/fsspec_toolset/toolset.py +500 -95
- agentpool_toolsets/mcp_discovery/__init__.py +5 -0
- agentpool_toolsets/mcp_discovery/data/mcp_servers.parquet +0 -0
- agentpool_toolsets/mcp_discovery/toolset.py +511 -0
- agentpool_toolsets/mcp_run_toolset.py +87 -12
- agentpool_toolsets/notifications.py +33 -33
- agentpool_toolsets/openapi.py +3 -1
- agentpool_toolsets/search_toolset.py +3 -1
- agentpool-2.1.9.dist-info/RECORD +0 -474
- agentpool_config/resources.py +0 -33
- agentpool_server/acp_server/acp_tools.py +0 -43
- agentpool_server/acp_server/commands/spawn.py +0 -210
- agentpool_storage/text_log_provider.py +0 -275
- agentpool_toolsets/builtin/agent_management.py +0 -239
- agentpool_toolsets/builtin/chain.py +0 -288
- agentpool_toolsets/builtin/history.py +0 -36
- agentpool_toolsets/builtin/integration.py +0 -85
- agentpool_toolsets/builtin/tool_management.py +0 -90
- agentpool_toolsets/builtin/user_interaction.py +0 -52
- agentpool_toolsets/semantic_memory_toolset.py +0 -536
- {agentpool-2.1.9.dist-info → agentpool-2.5.0.dist-info}/entry_points.txt +0 -0
- {agentpool-2.1.9.dist-info → agentpool-2.5.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -5,18 +5,11 @@ from __future__ import annotations
|
|
|
5
5
|
from typing import TYPE_CHECKING, Any, Literal
|
|
6
6
|
|
|
7
7
|
from pydantic_ai import (
|
|
8
|
-
FunctionToolCallEvent,
|
|
9
|
-
FunctionToolResultEvent,
|
|
10
8
|
ModelRetry,
|
|
11
9
|
PartDeltaEvent,
|
|
12
|
-
PartStartEvent,
|
|
13
|
-
RetryPromptPart,
|
|
14
|
-
TextPart,
|
|
15
10
|
TextPartDelta,
|
|
16
|
-
ThinkingPart,
|
|
17
11
|
ThinkingPartDelta,
|
|
18
12
|
ToolCallPartDelta,
|
|
19
|
-
ToolReturnPart,
|
|
20
13
|
)
|
|
21
14
|
|
|
22
15
|
from agentpool.agents.context import AgentContext # noqa: TC001
|
|
@@ -129,58 +122,60 @@ async def batch_stream_deltas( # noqa: PLR0915
|
|
|
129
122
|
yield _make_batched_event()
|
|
130
123
|
|
|
131
124
|
|
|
132
|
-
async def
|
|
125
|
+
async def _stream_subagent(
|
|
133
126
|
ctx: AgentContext,
|
|
127
|
+
source_name: str,
|
|
128
|
+
source_type: Literal["agent", "team_parallel", "team_sequential"],
|
|
134
129
|
stream: AsyncIterator[RichAgentStreamEvent[Any]],
|
|
135
130
|
*,
|
|
136
131
|
batch_deltas: bool = False,
|
|
132
|
+
depth: int = 1,
|
|
137
133
|
) -> str:
|
|
138
|
-
"""Stream
|
|
134
|
+
"""Stream a subagent's execution, emitting SubAgentEvents into parent stream.
|
|
139
135
|
|
|
140
136
|
Args:
|
|
141
137
|
ctx: Agent context for emitting events
|
|
138
|
+
source_name: Name of the subagent/team
|
|
139
|
+
source_type: Whether source is "agent" or "team"
|
|
142
140
|
stream: Async iterator of stream events from agent.run_stream()
|
|
143
141
|
batch_deltas: If True, batch consecutive text/thinking deltas for fewer UI updates
|
|
142
|
+
depth: Nesting depth for nested delegation
|
|
144
143
|
|
|
145
144
|
Returns:
|
|
146
|
-
|
|
145
|
+
Final text content from the stream
|
|
147
146
|
"""
|
|
147
|
+
from agentpool.agents.events import StreamCompleteEvent, SubAgentEvent
|
|
148
|
+
|
|
148
149
|
if batch_deltas:
|
|
149
150
|
stream = batch_stream_deltas(stream)
|
|
150
151
|
|
|
151
|
-
|
|
152
|
+
final_content: str = ""
|
|
152
153
|
async for event in stream:
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
result=ToolReturnPart(content=content, tool_name=tool_name),
|
|
172
|
-
):
|
|
173
|
-
aggregated.append(f"✅ {tool_name}: {content}\n")
|
|
174
|
-
await ctx.events.tool_call_progress("".join(aggregated))
|
|
154
|
+
# Handle nested SubAgentEvents - increment depth
|
|
155
|
+
if isinstance(event, SubAgentEvent):
|
|
156
|
+
nested_event = SubAgentEvent(
|
|
157
|
+
source_name=event.source_name,
|
|
158
|
+
source_type=event.source_type,
|
|
159
|
+
event=event.event,
|
|
160
|
+
depth=event.depth + depth,
|
|
161
|
+
)
|
|
162
|
+
await ctx.events.emit_event(nested_event)
|
|
163
|
+
else:
|
|
164
|
+
# Wrap the event in SubAgentEvent
|
|
165
|
+
subagent_event = SubAgentEvent(
|
|
166
|
+
source_name=source_name,
|
|
167
|
+
source_type=source_type,
|
|
168
|
+
event=event,
|
|
169
|
+
depth=depth,
|
|
170
|
+
)
|
|
171
|
+
await ctx.events.emit_event(subagent_event)
|
|
175
172
|
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
case _:
|
|
181
|
-
pass
|
|
173
|
+
# Extract final content from StreamCompleteEvent
|
|
174
|
+
if isinstance(event, StreamCompleteEvent):
|
|
175
|
+
content = event.message.content
|
|
176
|
+
final_content = str(content) if content else ""
|
|
182
177
|
|
|
183
|
-
return
|
|
178
|
+
return final_content
|
|
184
179
|
|
|
185
180
|
|
|
186
181
|
class SubagentTools(StaticResourceProvider):
|
|
@@ -269,6 +264,10 @@ class SubagentTools(StaticResourceProvider):
|
|
|
269
264
|
Returns:
|
|
270
265
|
The result of the delegated task
|
|
271
266
|
"""
|
|
267
|
+
from agentpool import Team, TeamRun
|
|
268
|
+
from agentpool.agents.base_agent import BaseAgent
|
|
269
|
+
from agentpool.common_types import SupportsRunStream
|
|
270
|
+
|
|
272
271
|
if not ctx.pool:
|
|
273
272
|
msg = "Agent needs to be in a pool to delegate tasks"
|
|
274
273
|
raise ToolError(msg)
|
|
@@ -278,15 +277,26 @@ class SubagentTools(StaticResourceProvider):
|
|
|
278
277
|
f"Available nodes: {', '.join(ctx.pool.nodes.keys())}"
|
|
279
278
|
)
|
|
280
279
|
raise ModelRetry(msg)
|
|
280
|
+
# Determine source type and get node
|
|
281
|
+
node = ctx.pool.nodes[agent_or_team_name]
|
|
282
|
+
match node:
|
|
283
|
+
case Team():
|
|
284
|
+
source_type: Literal["team_parallel", "team_sequential", "agent"] = "team_parallel"
|
|
285
|
+
case TeamRun():
|
|
286
|
+
source_type = "team_sequential"
|
|
287
|
+
case BaseAgent():
|
|
288
|
+
source_type = "agent"
|
|
289
|
+
if not isinstance(node, SupportsRunStream):
|
|
290
|
+
msg = f"Node {agent_or_team_name} does not support streaming"
|
|
291
|
+
raise ToolError(msg)
|
|
281
292
|
|
|
282
|
-
#
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
ctx, agent.run_stream(prompt), batch_deltas=self._batch_stream_deltas
|
|
293
|
+
# Stream with SubAgentEvent wrapping
|
|
294
|
+
return await _stream_subagent(
|
|
295
|
+
ctx,
|
|
296
|
+
source_name=agent_or_team_name,
|
|
297
|
+
source_type=source_type,
|
|
298
|
+
stream=node.run_stream(prompt),
|
|
299
|
+
batch_deltas=self._batch_stream_deltas,
|
|
290
300
|
)
|
|
291
301
|
|
|
292
302
|
async def ask_agent( # noqa: D417
|
|
@@ -315,9 +325,12 @@ class SubagentTools(StaticResourceProvider):
|
|
|
315
325
|
|
|
316
326
|
agent = ctx.pool.all_agents[agent_name]
|
|
317
327
|
try:
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
328
|
+
return await _stream_subagent(
|
|
329
|
+
ctx,
|
|
330
|
+
source_name=agent_name,
|
|
331
|
+
source_type="agent",
|
|
332
|
+
stream=agent.run_stream(message),
|
|
333
|
+
batch_deltas=self._batch_stream_deltas,
|
|
321
334
|
)
|
|
322
335
|
except Exception as e:
|
|
323
336
|
msg = f"Failed to ask agent {agent_name}: {e}"
|
|
@@ -11,6 +11,8 @@ from agentpool.tools.exceptions import ToolError
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
if TYPE_CHECKING:
|
|
14
|
+
from collections.abc import Sequence
|
|
15
|
+
|
|
14
16
|
from agentpool.tools.base import Tool
|
|
15
17
|
from agentpool_config.workers import WorkerConfig
|
|
16
18
|
|
|
@@ -35,7 +37,7 @@ class WorkersTools(ResourceProvider):
|
|
|
35
37
|
super().__init__(name=name)
|
|
36
38
|
self.workers = workers
|
|
37
39
|
|
|
38
|
-
async def get_tools(self) ->
|
|
40
|
+
async def get_tools(self) -> Sequence[Tool]:
|
|
39
41
|
"""Get tools for all configured workers."""
|
|
40
42
|
return [self._create_worker_tool(i) for i in self.workers]
|
|
41
43
|
|
|
@@ -78,7 +80,7 @@ class WorkersTools(ResourceProvider):
|
|
|
78
80
|
old_history = worker.conversation.get_history()
|
|
79
81
|
worker.conversation.set_history(ctx.agent.conversation.get_history())
|
|
80
82
|
elif reset_history_on_run:
|
|
81
|
-
worker.conversation.clear()
|
|
83
|
+
await worker.conversation.clear()
|
|
82
84
|
|
|
83
85
|
try:
|
|
84
86
|
result = await worker.run(prompt)
|
|
@@ -10,7 +10,7 @@ from agentpool.resource_providers import ResourceProvider
|
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
if TYPE_CHECKING:
|
|
13
|
-
from collections.abc import Callable
|
|
13
|
+
from collections.abc import Callable, Sequence
|
|
14
14
|
|
|
15
15
|
from agentpool.tools.base import Tool
|
|
16
16
|
|
|
@@ -52,7 +52,7 @@ class ComposioTools(ResourceProvider):
|
|
|
52
52
|
handle_tool_call.__name__ = tool_slug
|
|
53
53
|
return handle_tool_call
|
|
54
54
|
|
|
55
|
-
async def get_tools(self) ->
|
|
55
|
+
async def get_tools(self) -> Sequence[Tool]:
|
|
56
56
|
"""Get tools from composio."""
|
|
57
57
|
# Return cached tools if available
|
|
58
58
|
if self._tools is not None:
|
|
@@ -12,6 +12,8 @@ from agentpool.resource_providers import ResourceProvider
|
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
if TYPE_CHECKING:
|
|
15
|
+
from collections.abc import Sequence
|
|
16
|
+
|
|
15
17
|
from agentpool.tools.base import Tool
|
|
16
18
|
|
|
17
19
|
|
|
@@ -27,7 +29,7 @@ class EntryPointTools(ResourceProvider):
|
|
|
27
29
|
self._tools: list[Tool] | None = None
|
|
28
30
|
self.registry = EntryPointRegistry[Callable[..., Any]]("agentpool")
|
|
29
31
|
|
|
30
|
-
async def get_tools(self) ->
|
|
32
|
+
async def get_tools(self) -> Sequence[Tool]:
|
|
31
33
|
"""Get tools from entry points."""
|
|
32
34
|
# Return cached tools if available
|
|
33
35
|
if self._tools is not None:
|
|
@@ -2,6 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
+
from agentpool_toolsets.fsspec_toolset.diagnostics import (
|
|
6
|
+
DiagnosticsConfig,
|
|
7
|
+
DiagnosticsManager,
|
|
8
|
+
DiagnosticsResult,
|
|
9
|
+
)
|
|
10
|
+
from agentpool_toolsets.fsspec_toolset.image_utils import resize_image_if_needed
|
|
5
11
|
from agentpool_toolsets.fsspec_toolset.toolset import FSSpecTools
|
|
6
12
|
|
|
7
|
-
__all__ = [
|
|
13
|
+
__all__ = [
|
|
14
|
+
"DiagnosticsConfig",
|
|
15
|
+
"DiagnosticsManager",
|
|
16
|
+
"DiagnosticsResult",
|
|
17
|
+
"FSSpecTools",
|
|
18
|
+
"resize_image_if_needed",
|
|
19
|
+
]
|