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
agentpool_config/toolsets.py
CHANGED
|
@@ -5,11 +5,11 @@ from __future__ import annotations
|
|
|
5
5
|
import os
|
|
6
6
|
from typing import TYPE_CHECKING, Annotated, Literal, cast
|
|
7
7
|
|
|
8
|
-
from
|
|
9
|
-
from
|
|
8
|
+
from exxec_config import ExecutionEnvironmentConfig
|
|
9
|
+
from llmling_models_config import AnyModelConfig
|
|
10
10
|
from pydantic import ConfigDict, EmailStr, Field, HttpUrl, SecretStr
|
|
11
11
|
from schemez import Schema
|
|
12
|
-
from
|
|
12
|
+
from searchly_config import (
|
|
13
13
|
NewsSearchProviderConfig,
|
|
14
14
|
NewsSearchProviderName,
|
|
15
15
|
WebSearchProviderConfig,
|
|
@@ -18,8 +18,8 @@ from searchly.config import (
|
|
|
18
18
|
)
|
|
19
19
|
from tokonomics.model_names import ModelId
|
|
20
20
|
from upathtools import UPath
|
|
21
|
-
from
|
|
22
|
-
from
|
|
21
|
+
from upathtools_config import FilesystemConfigType
|
|
22
|
+
from upathtools_config.base import FileSystemConfig
|
|
23
23
|
|
|
24
24
|
from agentpool_config.converters import ConversionConfig
|
|
25
25
|
from agentpool_config.tools import ImportToolConfig
|
|
@@ -33,12 +33,6 @@ if TYPE_CHECKING:
|
|
|
33
33
|
|
|
34
34
|
MarkupType = Literal["yaml", "json", "toml"]
|
|
35
35
|
# Tool name literals for statically-defined toolsets
|
|
36
|
-
AgentManagementToolName = Literal[
|
|
37
|
-
"create_worker_agent",
|
|
38
|
-
"add_agent",
|
|
39
|
-
"add_team",
|
|
40
|
-
"connect_nodes",
|
|
41
|
-
]
|
|
42
36
|
SubagentToolName = Literal[
|
|
43
37
|
"list_available_nodes",
|
|
44
38
|
"delegate_to",
|
|
@@ -46,7 +40,7 @@ SubagentToolName = Literal[
|
|
|
46
40
|
]
|
|
47
41
|
ExecutionEnvironmentToolName = Literal[
|
|
48
42
|
"execute_code",
|
|
49
|
-
"
|
|
43
|
+
"bash",
|
|
50
44
|
"start_process",
|
|
51
45
|
"get_process_output",
|
|
52
46
|
"wait_for_process",
|
|
@@ -55,13 +49,10 @@ ExecutionEnvironmentToolName = Literal[
|
|
|
55
49
|
"list_processes",
|
|
56
50
|
]
|
|
57
51
|
|
|
58
|
-
ToolManagementToolName = Literal["register_tool", "register_code_tool"]
|
|
59
|
-
UserInteractionToolName = Literal["ask_user",]
|
|
60
|
-
HistoryToolName = Literal["search_history", "show_statistics"]
|
|
61
52
|
SkillsToolName = Literal["load_skill", "list_skills"]
|
|
62
|
-
IntegrationToolName = Literal["add_local_mcp_server", "add_remote_mcp_server"]
|
|
63
53
|
CodeToolName = Literal["format_code", "ast_grep"]
|
|
64
54
|
PlanToolName = Literal["get_plan", "add_plan_entry", "update_plan_entry", "remove_plan_entry"]
|
|
55
|
+
PlanToolMode = Literal["granular", "declarative"]
|
|
65
56
|
|
|
66
57
|
|
|
67
58
|
class BaseToolsetConfig(Schema):
|
|
@@ -176,37 +167,6 @@ class ComposioToolSetConfig(BaseToolsetConfig):
|
|
|
176
167
|
return ComposioTools(user_id=self.user_id, toolsets=self.toolsets, api_key=key)
|
|
177
168
|
|
|
178
169
|
|
|
179
|
-
class AgentManagementToolsetConfig(BaseToolsetConfig):
|
|
180
|
-
"""Configuration for agent pool building tools."""
|
|
181
|
-
|
|
182
|
-
model_config = ConfigDict(
|
|
183
|
-
json_schema_extra={
|
|
184
|
-
"x-icon": "octicon:people-16",
|
|
185
|
-
"x-doc-title": "Agent Management Toolset",
|
|
186
|
-
}
|
|
187
|
-
)
|
|
188
|
-
|
|
189
|
-
type: Literal["agent_management"] = Field("agent_management", init=False)
|
|
190
|
-
"""Agent pool building toolset (create_worker_agent, add_agent, add_team, connect_nodes)."""
|
|
191
|
-
|
|
192
|
-
tools: dict[AgentManagementToolName, bool] | None = Field(
|
|
193
|
-
default=None,
|
|
194
|
-
title="Tool filter",
|
|
195
|
-
)
|
|
196
|
-
"""Optional tool filter to enable/disable specific tools."""
|
|
197
|
-
|
|
198
|
-
def get_provider(self) -> ResourceProvider:
|
|
199
|
-
"""Create agent management tools provider."""
|
|
200
|
-
from agentpool_toolsets.builtin import AgentManagementTools
|
|
201
|
-
|
|
202
|
-
provider = AgentManagementTools(name="agent_management")
|
|
203
|
-
if self.tools is not None:
|
|
204
|
-
from agentpool.resource_providers import FilteringResourceProvider
|
|
205
|
-
|
|
206
|
-
return FilteringResourceProvider(provider, cast(dict[str, bool], self.tools))
|
|
207
|
-
return provider
|
|
208
|
-
|
|
209
|
-
|
|
210
170
|
class SubagentToolsetConfig(BaseToolsetConfig):
|
|
211
171
|
"""Configuration for subagent interaction tools."""
|
|
212
172
|
|
|
@@ -274,24 +234,24 @@ class WorkersToolsetConfig(BaseToolsetConfig):
|
|
|
274
234
|
return WorkersTools(workers=self.workers, name="workers")
|
|
275
235
|
|
|
276
236
|
|
|
277
|
-
class
|
|
278
|
-
"""Configuration for
|
|
237
|
+
class ProcessManagementToolsetConfig(BaseToolsetConfig):
|
|
238
|
+
"""Configuration for process management toolset (code + process management)."""
|
|
279
239
|
|
|
280
240
|
model_config = ConfigDict(
|
|
281
241
|
json_schema_extra={
|
|
282
242
|
"x-icon": "octicon:terminal-16",
|
|
283
|
-
"x-doc-title": "
|
|
243
|
+
"x-doc-title": "Process management Toolset",
|
|
284
244
|
}
|
|
285
245
|
)
|
|
286
246
|
|
|
287
|
-
type: Literal["
|
|
288
|
-
"""
|
|
247
|
+
type: Literal["process_management"] = Field("process_management", init=False)
|
|
248
|
+
"""Process management toolset."""
|
|
289
249
|
|
|
290
250
|
environment: ExecutionEnvironmentConfig | None = Field(
|
|
291
251
|
default=None,
|
|
292
|
-
title="
|
|
252
|
+
title="Process management",
|
|
293
253
|
)
|
|
294
|
-
"""Optional
|
|
254
|
+
"""Optional Process management configuration (defaults to local)."""
|
|
295
255
|
|
|
296
256
|
tools: dict[ExecutionEnvironmentToolName, bool] | None = Field(
|
|
297
257
|
default=None,
|
|
@@ -300,104 +260,11 @@ class ExecutionEnvironmentToolsetConfig(BaseToolsetConfig):
|
|
|
300
260
|
"""Optional tool filter to enable/disable specific tools."""
|
|
301
261
|
|
|
302
262
|
def get_provider(self) -> ResourceProvider:
|
|
303
|
-
"""Create
|
|
304
|
-
from agentpool_toolsets.builtin import
|
|
263
|
+
"""Create Process management tools provider."""
|
|
264
|
+
from agentpool_toolsets.builtin import ProcessManagementTools
|
|
305
265
|
|
|
306
266
|
env = self.environment.get_provider() if self.environment else None
|
|
307
|
-
provider =
|
|
308
|
-
if self.tools is not None:
|
|
309
|
-
from agentpool.resource_providers import FilteringResourceProvider
|
|
310
|
-
|
|
311
|
-
return FilteringResourceProvider(provider, cast(dict[str, bool], self.tools))
|
|
312
|
-
return provider
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
class ToolManagementToolsetConfig(BaseToolsetConfig):
|
|
316
|
-
"""Configuration for tool management toolset."""
|
|
317
|
-
|
|
318
|
-
model_config = ConfigDict(
|
|
319
|
-
json_schema_extra={
|
|
320
|
-
"x-icon": "octicon:tools-16",
|
|
321
|
-
"x-doc-title": "Tool Management Toolset",
|
|
322
|
-
}
|
|
323
|
-
)
|
|
324
|
-
|
|
325
|
-
type: Literal["tool_management"] = Field("tool_management", init=False)
|
|
326
|
-
"""Tool management toolset."""
|
|
327
|
-
|
|
328
|
-
tools: dict[ToolManagementToolName, bool] | None = Field(
|
|
329
|
-
default=None,
|
|
330
|
-
title="Tool filter",
|
|
331
|
-
)
|
|
332
|
-
"""Optional tool filter to enable/disable specific tools."""
|
|
333
|
-
|
|
334
|
-
def get_provider(self) -> ResourceProvider:
|
|
335
|
-
"""Create tool management tools provider."""
|
|
336
|
-
from agentpool_toolsets.builtin import ToolManagementTools
|
|
337
|
-
|
|
338
|
-
provider = ToolManagementTools(name="tool_management")
|
|
339
|
-
if self.tools is not None:
|
|
340
|
-
from agentpool.resource_providers import FilteringResourceProvider
|
|
341
|
-
|
|
342
|
-
return FilteringResourceProvider(provider, cast(dict[str, bool], self.tools))
|
|
343
|
-
return provider
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
class UserInteractionToolsetConfig(BaseToolsetConfig):
|
|
347
|
-
"""Configuration for user interaction toolset."""
|
|
348
|
-
|
|
349
|
-
model_config = ConfigDict(
|
|
350
|
-
json_schema_extra={
|
|
351
|
-
"x-icon": "octicon:comment-discussion-16",
|
|
352
|
-
"x-doc-title": "User Interaction Toolset",
|
|
353
|
-
}
|
|
354
|
-
)
|
|
355
|
-
|
|
356
|
-
type: Literal["user_interaction"] = Field("user_interaction", init=False)
|
|
357
|
-
"""User interaction toolset."""
|
|
358
|
-
|
|
359
|
-
tools: dict[UserInteractionToolName, bool] | None = Field(
|
|
360
|
-
default=None,
|
|
361
|
-
title="Tool filter",
|
|
362
|
-
)
|
|
363
|
-
"""Optional tool filter to enable/disable specific tools."""
|
|
364
|
-
|
|
365
|
-
def get_provider(self) -> ResourceProvider:
|
|
366
|
-
"""Create user interaction tools provider."""
|
|
367
|
-
from agentpool_toolsets.builtin import UserInteractionTools
|
|
368
|
-
|
|
369
|
-
provider = UserInteractionTools(name="user_interaction")
|
|
370
|
-
if self.tools is not None:
|
|
371
|
-
from agentpool.resource_providers import FilteringResourceProvider
|
|
372
|
-
|
|
373
|
-
return FilteringResourceProvider(provider, cast(dict[str, bool], self.tools))
|
|
374
|
-
return provider
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
class HistoryToolsetConfig(BaseToolsetConfig):
|
|
378
|
-
"""Configuration for history toolset."""
|
|
379
|
-
|
|
380
|
-
model_config = ConfigDict(
|
|
381
|
-
json_schema_extra={
|
|
382
|
-
"x-icon": "octicon:history-16",
|
|
383
|
-
"x-doc-title": "History Toolset",
|
|
384
|
-
}
|
|
385
|
-
)
|
|
386
|
-
|
|
387
|
-
type: Literal["history"] = Field("history", init=False)
|
|
388
|
-
"""History toolset."""
|
|
389
|
-
|
|
390
|
-
tools: dict[HistoryToolName, bool] | None = Field(
|
|
391
|
-
default=None,
|
|
392
|
-
title="Tool filter",
|
|
393
|
-
)
|
|
394
|
-
"""Optional tool filter to enable/disable specific tools."""
|
|
395
|
-
|
|
396
|
-
def get_provider(self) -> ResourceProvider:
|
|
397
|
-
"""Create history tools provider."""
|
|
398
|
-
from agentpool_toolsets.builtin import HistoryTools
|
|
399
|
-
|
|
400
|
-
provider = HistoryTools(name="history")
|
|
267
|
+
provider = ProcessManagementTools(env=env, name="process_management")
|
|
401
268
|
if self.tools is not None:
|
|
402
269
|
from agentpool.resource_providers import FilteringResourceProvider
|
|
403
270
|
|
|
@@ -441,37 +308,6 @@ class SkillsToolsetConfig(BaseToolsetConfig):
|
|
|
441
308
|
return provider
|
|
442
309
|
|
|
443
310
|
|
|
444
|
-
class IntegrationToolsetConfig(BaseToolsetConfig):
|
|
445
|
-
"""Configuration for integration toolset."""
|
|
446
|
-
|
|
447
|
-
model_config = ConfigDict(
|
|
448
|
-
json_schema_extra={
|
|
449
|
-
"x-icon": "octicon:link-16",
|
|
450
|
-
"x-doc-title": "Integration Toolset",
|
|
451
|
-
}
|
|
452
|
-
)
|
|
453
|
-
|
|
454
|
-
type: Literal["integrations"] = Field("integrations", init=False)
|
|
455
|
-
"""Integration toolset."""
|
|
456
|
-
|
|
457
|
-
tools: dict[IntegrationToolName, bool] | None = Field(
|
|
458
|
-
default=None,
|
|
459
|
-
title="Tool filter",
|
|
460
|
-
)
|
|
461
|
-
"""Optional tool filter to enable/disable specific tools."""
|
|
462
|
-
|
|
463
|
-
def get_provider(self) -> ResourceProvider:
|
|
464
|
-
"""Create integration tools provider."""
|
|
465
|
-
from agentpool_toolsets.builtin import IntegrationTools
|
|
466
|
-
|
|
467
|
-
provider = IntegrationTools(name="integrations")
|
|
468
|
-
if self.tools is not None:
|
|
469
|
-
from agentpool.resource_providers import FilteringResourceProvider
|
|
470
|
-
|
|
471
|
-
return FilteringResourceProvider(provider, cast(dict[str, bool], self.tools))
|
|
472
|
-
return provider
|
|
473
|
-
|
|
474
|
-
|
|
475
311
|
class CodeToolsetConfig(BaseToolsetConfig):
|
|
476
312
|
"""Configuration for code toolset."""
|
|
477
313
|
|
|
@@ -607,6 +443,32 @@ class FSSpecToolsetConfig(BaseToolsetConfig):
|
|
|
607
443
|
)
|
|
608
444
|
"""Maximum tokens for structure map output when reading large files."""
|
|
609
445
|
|
|
446
|
+
edit_tool: Literal["simple", "batch", "agentic"] = Field(
|
|
447
|
+
default="simple",
|
|
448
|
+
title="Edit tool variant",
|
|
449
|
+
)
|
|
450
|
+
"""Which edit tool to expose: "simple" (single replacement),
|
|
451
|
+
"batch" (multiple replacements), or "agentic" (LLM-driven editing)."""
|
|
452
|
+
|
|
453
|
+
max_image_size: int | None = Field(
|
|
454
|
+
default=2000,
|
|
455
|
+
ge=100,
|
|
456
|
+
le=8192,
|
|
457
|
+
title="Maximum image dimension",
|
|
458
|
+
)
|
|
459
|
+
"""Max width/height for images in pixels. Larger images are auto-resized
|
|
460
|
+
for better model compatibility. Set to None to disable resizing."""
|
|
461
|
+
|
|
462
|
+
max_image_bytes: int | None = Field(
|
|
463
|
+
default=None,
|
|
464
|
+
ge=102400,
|
|
465
|
+
le=20971520,
|
|
466
|
+
title="Maximum image file size",
|
|
467
|
+
)
|
|
468
|
+
"""Max file size for images in bytes. Images exceeding this are compressed
|
|
469
|
+
using progressive quality/dimension reduction. Default: 4.5MB (Anthropic limit).
|
|
470
|
+
Set to None to use the default 4.5MB limit."""
|
|
471
|
+
|
|
610
472
|
def get_provider(self) -> ResourceProvider:
|
|
611
473
|
"""Create FSSpec filesystem tools provider."""
|
|
612
474
|
import fsspec
|
|
@@ -641,6 +503,9 @@ class FSSpecToolsetConfig(BaseToolsetConfig):
|
|
|
641
503
|
enable_diagnostics=self.enable_diagnostics,
|
|
642
504
|
large_file_tokens=self.large_file_tokens,
|
|
643
505
|
map_max_tokens=self.map_max_tokens,
|
|
506
|
+
edit_tool=self.edit_tool,
|
|
507
|
+
max_image_size=self.max_image_size,
|
|
508
|
+
max_image_bytes=self.max_image_bytes,
|
|
644
509
|
)
|
|
645
510
|
|
|
646
511
|
|
|
@@ -747,41 +612,6 @@ class NotificationsToolsetConfig(BaseToolsetConfig):
|
|
|
747
612
|
return NotificationsTools(channels=self.channels)
|
|
748
613
|
|
|
749
614
|
|
|
750
|
-
class SemanticMemoryToolsetConfig(BaseToolsetConfig):
|
|
751
|
-
"""Configuration for semantic memory / knowledge processing toolset."""
|
|
752
|
-
|
|
753
|
-
model_config = ConfigDict(
|
|
754
|
-
json_schema_extra={
|
|
755
|
-
"x-icon": "octicon:database-16",
|
|
756
|
-
"x-doc-title": "Semantic Memory Toolset",
|
|
757
|
-
}
|
|
758
|
-
)
|
|
759
|
-
|
|
760
|
-
type: Literal["semantic_memory"] = Field("semantic_memory", init=False)
|
|
761
|
-
"""Semantic memory toolset using TypeAgent's KnowPro."""
|
|
762
|
-
|
|
763
|
-
model: str | ModelId | AnyModelConfig | None = Field(
|
|
764
|
-
default=None,
|
|
765
|
-
examples=["openai:gpt-4o", "anthropic:claude-sonnet-4-20250514"],
|
|
766
|
-
title="Model for LLM sampling",
|
|
767
|
-
)
|
|
768
|
-
"""Model to use for query translation and answer generation."""
|
|
769
|
-
|
|
770
|
-
dbname: str | None = Field(
|
|
771
|
-
default=None,
|
|
772
|
-
examples=["knowledge.db", "/path/to/memory.db"],
|
|
773
|
-
title="Database path",
|
|
774
|
-
)
|
|
775
|
-
"""SQLite database path for persistent storage, or None for in-memory."""
|
|
776
|
-
|
|
777
|
-
def get_provider(self) -> ResourceProvider:
|
|
778
|
-
"""Create semantic memory tools provider."""
|
|
779
|
-
from agentpool_toolsets.semantic_memory_toolset import SemanticMemoryTools
|
|
780
|
-
|
|
781
|
-
model = m if isinstance(m := self.model, str) or m is None else m.get_model()
|
|
782
|
-
return SemanticMemoryTools(model=model, dbname=self.dbname)
|
|
783
|
-
|
|
784
|
-
|
|
785
615
|
class CustomToolsetConfig(BaseToolsetConfig):
|
|
786
616
|
"""Configuration for custom toolsets."""
|
|
787
617
|
|
|
@@ -949,6 +779,17 @@ class PlanToolsetConfig(BaseToolsetConfig):
|
|
|
949
779
|
type: Literal["plan"] = Field("plan", init=False)
|
|
950
780
|
"""Plan toolset."""
|
|
951
781
|
|
|
782
|
+
mode: PlanToolMode = Field(
|
|
783
|
+
default="declarative",
|
|
784
|
+
title="Plan tool mode",
|
|
785
|
+
)
|
|
786
|
+
"""Tool mode:
|
|
787
|
+
- 'declarative': Single set_plan tool with full list (default, recommended)
|
|
788
|
+
- Fewer calls, better UX with parallel updates
|
|
789
|
+
- 'granular': Separate tools (get/add/update/remove)
|
|
790
|
+
- For simpler models or fine-grained control
|
|
791
|
+
"""
|
|
792
|
+
|
|
952
793
|
tools: dict[PlanToolName, bool] | None = Field(
|
|
953
794
|
default=None,
|
|
954
795
|
title="Tool filter",
|
|
@@ -959,7 +800,7 @@ class PlanToolsetConfig(BaseToolsetConfig):
|
|
|
959
800
|
"""Create plan tools provider."""
|
|
960
801
|
from agentpool.resource_providers import PlanProvider
|
|
961
802
|
|
|
962
|
-
provider = PlanProvider()
|
|
803
|
+
provider = PlanProvider(mode=self.mode)
|
|
963
804
|
if self.tools is not None:
|
|
964
805
|
from agentpool.resource_providers import FilteringResourceProvider
|
|
965
806
|
|
|
@@ -987,19 +828,59 @@ class DebugToolsetConfig(BaseToolsetConfig):
|
|
|
987
828
|
type: Literal["debug"] = Field("debug", init=False)
|
|
988
829
|
"""Debug toolset."""
|
|
989
830
|
|
|
990
|
-
install_log_handler: bool = Field(
|
|
991
|
-
default=True,
|
|
992
|
-
title="Install log handler",
|
|
993
|
-
)
|
|
994
|
-
"""Whether to install the memory log handler for log inspection."""
|
|
995
|
-
|
|
996
831
|
def get_provider(self) -> ResourceProvider:
|
|
997
832
|
"""Create debug tools provider."""
|
|
998
833
|
from agentpool_toolsets.builtin.debug import DebugTools
|
|
999
834
|
|
|
1000
|
-
return DebugTools(
|
|
1001
|
-
|
|
1002
|
-
|
|
835
|
+
return DebugTools(name=self.namespace or "debug")
|
|
836
|
+
|
|
837
|
+
|
|
838
|
+
class MCPDiscoveryToolsetConfig(BaseToolsetConfig):
|
|
839
|
+
"""Configuration for MCP discovery toolset.
|
|
840
|
+
|
|
841
|
+
Enables dynamic discovery and use of MCP servers without preloading tools.
|
|
842
|
+
Uses semantic search over 1000+ indexed servers for intelligent matching.
|
|
843
|
+
|
|
844
|
+
Requires the `mcp-discovery` extra: `pip install agentpool[mcp-discovery]`
|
|
845
|
+
"""
|
|
846
|
+
|
|
847
|
+
model_config = ConfigDict(
|
|
848
|
+
json_schema_extra={
|
|
849
|
+
"x-icon": "octicon:search-16",
|
|
850
|
+
"x-doc-title": "MCP Discovery Toolset",
|
|
851
|
+
}
|
|
852
|
+
)
|
|
853
|
+
|
|
854
|
+
type: Literal["mcp_discovery"] = Field("mcp_discovery", init=False)
|
|
855
|
+
"""MCP discovery toolset."""
|
|
856
|
+
|
|
857
|
+
registry_url: str = Field(
|
|
858
|
+
default="https://registry.modelcontextprotocol.io",
|
|
859
|
+
title="Registry URL",
|
|
860
|
+
)
|
|
861
|
+
"""Base URL for the MCP registry API."""
|
|
862
|
+
|
|
863
|
+
allowed_servers: list[str] | None = Field(
|
|
864
|
+
default=None,
|
|
865
|
+
title="Allowed servers",
|
|
866
|
+
)
|
|
867
|
+
"""If set, only these server names can be used."""
|
|
868
|
+
|
|
869
|
+
blocked_servers: list[str] | None = Field(
|
|
870
|
+
default=None,
|
|
871
|
+
title="Blocked servers",
|
|
872
|
+
)
|
|
873
|
+
"""Server names that cannot be used."""
|
|
874
|
+
|
|
875
|
+
def get_provider(self) -> ResourceProvider:
|
|
876
|
+
"""Create MCP discovery tools provider."""
|
|
877
|
+
from agentpool_toolsets.mcp_discovery.toolset import MCPDiscoveryToolset
|
|
878
|
+
|
|
879
|
+
return MCPDiscoveryToolset(
|
|
880
|
+
name=self.namespace or "mcp_discovery",
|
|
881
|
+
registry_url=self.registry_url,
|
|
882
|
+
allowed_servers=self.allowed_servers,
|
|
883
|
+
blocked_servers=self.blocked_servers,
|
|
1003
884
|
)
|
|
1004
885
|
|
|
1005
886
|
|
|
@@ -1007,13 +888,8 @@ ToolsetConfig = Annotated[
|
|
|
1007
888
|
OpenAPIToolsetConfig
|
|
1008
889
|
| EntryPointToolsetConfig
|
|
1009
890
|
| ComposioToolSetConfig
|
|
1010
|
-
|
|
|
1011
|
-
| ExecutionEnvironmentToolsetConfig
|
|
1012
|
-
| ToolManagementToolsetConfig
|
|
1013
|
-
| UserInteractionToolsetConfig
|
|
1014
|
-
| HistoryToolsetConfig
|
|
891
|
+
| ProcessManagementToolsetConfig
|
|
1015
892
|
| SkillsToolsetConfig
|
|
1016
|
-
| IntegrationToolsetConfig
|
|
1017
893
|
| CodeToolsetConfig
|
|
1018
894
|
| FSSpecToolsetConfig
|
|
1019
895
|
| VFSToolsetConfig
|
|
@@ -1023,11 +899,11 @@ ToolsetConfig = Annotated[
|
|
|
1023
899
|
| RemoteCodeModeToolsetConfig
|
|
1024
900
|
| SearchToolsetConfig
|
|
1025
901
|
| NotificationsToolsetConfig
|
|
1026
|
-
| SemanticMemoryToolsetConfig
|
|
1027
902
|
| ConfigCreationToolsetConfig
|
|
1028
903
|
| ImportToolsToolsetConfig
|
|
1029
904
|
| PlanToolsetConfig
|
|
1030
905
|
| DebugToolsetConfig
|
|
906
|
+
| MCPDiscoveryToolsetConfig
|
|
1031
907
|
| CustomToolsetConfig,
|
|
1032
908
|
Field(discriminator="type"),
|
|
1033
909
|
]
|