agentpool 2.1.9__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of agentpool might be problematic. Click here for more details.
- acp/README.md +64 -0
- acp/__init__.py +172 -0
- acp/__main__.py +10 -0
- acp/acp_requests.py +285 -0
- acp/agent/__init__.py +6 -0
- acp/agent/connection.py +256 -0
- acp/agent/implementations/__init__.py +6 -0
- acp/agent/implementations/debug_server/__init__.py +1 -0
- acp/agent/implementations/debug_server/cli.py +79 -0
- acp/agent/implementations/debug_server/debug.html +234 -0
- acp/agent/implementations/debug_server/debug_server.py +496 -0
- acp/agent/implementations/testing.py +91 -0
- acp/agent/protocol.py +65 -0
- acp/bridge/README.md +162 -0
- acp/bridge/__init__.py +6 -0
- acp/bridge/__main__.py +91 -0
- acp/bridge/bridge.py +246 -0
- acp/bridge/py.typed +0 -0
- acp/bridge/settings.py +15 -0
- acp/client/__init__.py +7 -0
- acp/client/connection.py +251 -0
- acp/client/implementations/__init__.py +7 -0
- acp/client/implementations/default_client.py +185 -0
- acp/client/implementations/headless_client.py +266 -0
- acp/client/implementations/noop_client.py +110 -0
- acp/client/protocol.py +61 -0
- acp/connection.py +280 -0
- acp/exceptions.py +46 -0
- acp/filesystem.py +524 -0
- acp/notifications.py +832 -0
- acp/py.typed +0 -0
- acp/schema/__init__.py +265 -0
- acp/schema/agent_plan.py +30 -0
- acp/schema/agent_requests.py +126 -0
- acp/schema/agent_responses.py +256 -0
- acp/schema/base.py +39 -0
- acp/schema/capabilities.py +230 -0
- acp/schema/client_requests.py +247 -0
- acp/schema/client_responses.py +96 -0
- acp/schema/common.py +81 -0
- acp/schema/content_blocks.py +188 -0
- acp/schema/mcp.py +82 -0
- acp/schema/messages.py +171 -0
- acp/schema/notifications.py +82 -0
- acp/schema/protocol_stuff.md +3 -0
- acp/schema/session_state.py +160 -0
- acp/schema/session_updates.py +419 -0
- acp/schema/slash_commands.py +51 -0
- acp/schema/terminal.py +15 -0
- acp/schema/tool_call.py +347 -0
- acp/stdio.py +250 -0
- acp/task/__init__.py +53 -0
- acp/task/debug.py +197 -0
- acp/task/dispatcher.py +93 -0
- acp/task/queue.py +69 -0
- acp/task/sender.py +82 -0
- acp/task/state.py +87 -0
- acp/task/supervisor.py +93 -0
- acp/terminal_handle.py +30 -0
- acp/tool_call_reporter.py +199 -0
- acp/tool_call_state.py +178 -0
- acp/transports.py +104 -0
- acp/utils.py +240 -0
- agentpool/__init__.py +63 -0
- agentpool/__main__.py +7 -0
- agentpool/agents/__init__.py +30 -0
- agentpool/agents/acp_agent/__init__.py +5 -0
- agentpool/agents/acp_agent/acp_agent.py +837 -0
- agentpool/agents/acp_agent/acp_converters.py +294 -0
- agentpool/agents/acp_agent/client_handler.py +317 -0
- agentpool/agents/acp_agent/session_state.py +44 -0
- agentpool/agents/agent.py +1264 -0
- agentpool/agents/agui_agent/__init__.py +19 -0
- agentpool/agents/agui_agent/agui_agent.py +677 -0
- agentpool/agents/agui_agent/agui_converters.py +423 -0
- agentpool/agents/agui_agent/chunk_transformer.py +204 -0
- agentpool/agents/agui_agent/event_types.py +83 -0
- agentpool/agents/agui_agent/helpers.py +192 -0
- agentpool/agents/architect.py +71 -0
- agentpool/agents/base_agent.py +177 -0
- agentpool/agents/claude_code_agent/__init__.py +11 -0
- agentpool/agents/claude_code_agent/claude_code_agent.py +1021 -0
- agentpool/agents/claude_code_agent/converters.py +243 -0
- agentpool/agents/context.py +105 -0
- agentpool/agents/events/__init__.py +61 -0
- agentpool/agents/events/builtin_handlers.py +129 -0
- agentpool/agents/events/event_emitter.py +320 -0
- agentpool/agents/events/events.py +561 -0
- agentpool/agents/events/tts_handlers.py +186 -0
- agentpool/agents/interactions.py +419 -0
- agentpool/agents/slashed_agent.py +244 -0
- agentpool/agents/sys_prompts.py +178 -0
- agentpool/agents/tool_wrapping.py +184 -0
- agentpool/base_provider.py +28 -0
- agentpool/common_types.py +226 -0
- agentpool/config_resources/__init__.py +16 -0
- agentpool/config_resources/acp_assistant.yml +24 -0
- agentpool/config_resources/agents.yml +109 -0
- agentpool/config_resources/agents_template.yml +18 -0
- agentpool/config_resources/agui_test.yml +18 -0
- agentpool/config_resources/claude_code_agent.yml +16 -0
- agentpool/config_resources/claude_style_subagent.md +30 -0
- agentpool/config_resources/external_acp_agents.yml +77 -0
- agentpool/config_resources/opencode_style_subagent.md +19 -0
- agentpool/config_resources/tts_test_agents.yml +78 -0
- agentpool/delegation/__init__.py +8 -0
- agentpool/delegation/base_team.py +504 -0
- agentpool/delegation/message_flow_tracker.py +39 -0
- agentpool/delegation/pool.py +1129 -0
- agentpool/delegation/team.py +325 -0
- agentpool/delegation/teamrun.py +343 -0
- agentpool/docs/__init__.py +5 -0
- agentpool/docs/gen_examples.py +42 -0
- agentpool/docs/utils.py +370 -0
- agentpool/functional/__init__.py +20 -0
- agentpool/functional/py.typed +0 -0
- agentpool/functional/run.py +80 -0
- agentpool/functional/structure.py +136 -0
- agentpool/hooks/__init__.py +20 -0
- agentpool/hooks/agent_hooks.py +247 -0
- agentpool/hooks/base.py +119 -0
- agentpool/hooks/callable.py +140 -0
- agentpool/hooks/command.py +180 -0
- agentpool/hooks/prompt.py +122 -0
- agentpool/jinja_filters.py +132 -0
- agentpool/log.py +224 -0
- agentpool/mcp_server/__init__.py +17 -0
- agentpool/mcp_server/client.py +429 -0
- agentpool/mcp_server/constants.py +32 -0
- agentpool/mcp_server/conversions.py +172 -0
- agentpool/mcp_server/helpers.py +47 -0
- agentpool/mcp_server/manager.py +232 -0
- agentpool/mcp_server/message_handler.py +164 -0
- agentpool/mcp_server/registries/__init__.py +1 -0
- agentpool/mcp_server/registries/official_registry_client.py +345 -0
- agentpool/mcp_server/registries/pulsemcp_client.py +88 -0
- agentpool/mcp_server/tool_bridge.py +548 -0
- agentpool/messaging/__init__.py +58 -0
- agentpool/messaging/compaction.py +928 -0
- agentpool/messaging/connection_manager.py +319 -0
- agentpool/messaging/context.py +66 -0
- agentpool/messaging/event_manager.py +426 -0
- agentpool/messaging/events.py +39 -0
- agentpool/messaging/message_container.py +209 -0
- agentpool/messaging/message_history.py +491 -0
- agentpool/messaging/messagenode.py +377 -0
- agentpool/messaging/messages.py +655 -0
- agentpool/messaging/processing.py +76 -0
- agentpool/mime_utils.py +95 -0
- agentpool/models/__init__.py +21 -0
- agentpool/models/acp_agents/__init__.py +22 -0
- agentpool/models/acp_agents/base.py +308 -0
- agentpool/models/acp_agents/mcp_capable.py +790 -0
- agentpool/models/acp_agents/non_mcp.py +842 -0
- agentpool/models/agents.py +450 -0
- agentpool/models/agui_agents.py +89 -0
- agentpool/models/claude_code_agents.py +238 -0
- agentpool/models/file_agents.py +116 -0
- agentpool/models/file_parsing.py +367 -0
- agentpool/models/manifest.py +658 -0
- agentpool/observability/__init__.py +9 -0
- agentpool/observability/observability_registry.py +97 -0
- agentpool/prompts/__init__.py +1 -0
- agentpool/prompts/base.py +27 -0
- agentpool/prompts/builtin_provider.py +75 -0
- agentpool/prompts/conversion_manager.py +95 -0
- agentpool/prompts/convert.py +96 -0
- agentpool/prompts/manager.py +204 -0
- agentpool/prompts/parts/zed.md +33 -0
- agentpool/prompts/prompts.py +581 -0
- agentpool/py.typed +0 -0
- agentpool/queries/tree-sitter-language-pack/README.md +7 -0
- agentpool/queries/tree-sitter-language-pack/arduino-tags.scm +5 -0
- agentpool/queries/tree-sitter-language-pack/c-tags.scm +9 -0
- agentpool/queries/tree-sitter-language-pack/chatito-tags.scm +16 -0
- agentpool/queries/tree-sitter-language-pack/clojure-tags.scm +7 -0
- agentpool/queries/tree-sitter-language-pack/commonlisp-tags.scm +122 -0
- agentpool/queries/tree-sitter-language-pack/cpp-tags.scm +15 -0
- agentpool/queries/tree-sitter-language-pack/csharp-tags.scm +26 -0
- agentpool/queries/tree-sitter-language-pack/d-tags.scm +26 -0
- agentpool/queries/tree-sitter-language-pack/dart-tags.scm +92 -0
- agentpool/queries/tree-sitter-language-pack/elisp-tags.scm +5 -0
- agentpool/queries/tree-sitter-language-pack/elixir-tags.scm +54 -0
- agentpool/queries/tree-sitter-language-pack/elm-tags.scm +19 -0
- agentpool/queries/tree-sitter-language-pack/gleam-tags.scm +41 -0
- agentpool/queries/tree-sitter-language-pack/go-tags.scm +42 -0
- agentpool/queries/tree-sitter-language-pack/java-tags.scm +20 -0
- agentpool/queries/tree-sitter-language-pack/javascript-tags.scm +88 -0
- agentpool/queries/tree-sitter-language-pack/lua-tags.scm +34 -0
- agentpool/queries/tree-sitter-language-pack/matlab-tags.scm +10 -0
- agentpool/queries/tree-sitter-language-pack/ocaml-tags.scm +115 -0
- agentpool/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +98 -0
- agentpool/queries/tree-sitter-language-pack/pony-tags.scm +39 -0
- agentpool/queries/tree-sitter-language-pack/properties-tags.scm +5 -0
- agentpool/queries/tree-sitter-language-pack/python-tags.scm +14 -0
- agentpool/queries/tree-sitter-language-pack/r-tags.scm +21 -0
- agentpool/queries/tree-sitter-language-pack/racket-tags.scm +12 -0
- agentpool/queries/tree-sitter-language-pack/ruby-tags.scm +64 -0
- agentpool/queries/tree-sitter-language-pack/rust-tags.scm +60 -0
- agentpool/queries/tree-sitter-language-pack/solidity-tags.scm +43 -0
- agentpool/queries/tree-sitter-language-pack/swift-tags.scm +51 -0
- agentpool/queries/tree-sitter-language-pack/udev-tags.scm +20 -0
- agentpool/queries/tree-sitter-languages/README.md +24 -0
- agentpool/queries/tree-sitter-languages/c-tags.scm +9 -0
- agentpool/queries/tree-sitter-languages/c_sharp-tags.scm +46 -0
- agentpool/queries/tree-sitter-languages/cpp-tags.scm +15 -0
- agentpool/queries/tree-sitter-languages/dart-tags.scm +91 -0
- agentpool/queries/tree-sitter-languages/elisp-tags.scm +8 -0
- agentpool/queries/tree-sitter-languages/elixir-tags.scm +54 -0
- agentpool/queries/tree-sitter-languages/elm-tags.scm +19 -0
- agentpool/queries/tree-sitter-languages/fortran-tags.scm +15 -0
- agentpool/queries/tree-sitter-languages/go-tags.scm +30 -0
- agentpool/queries/tree-sitter-languages/haskell-tags.scm +3 -0
- agentpool/queries/tree-sitter-languages/hcl-tags.scm +77 -0
- agentpool/queries/tree-sitter-languages/java-tags.scm +20 -0
- agentpool/queries/tree-sitter-languages/javascript-tags.scm +88 -0
- agentpool/queries/tree-sitter-languages/julia-tags.scm +60 -0
- agentpool/queries/tree-sitter-languages/kotlin-tags.scm +27 -0
- agentpool/queries/tree-sitter-languages/matlab-tags.scm +10 -0
- agentpool/queries/tree-sitter-languages/ocaml-tags.scm +115 -0
- agentpool/queries/tree-sitter-languages/ocaml_interface-tags.scm +98 -0
- agentpool/queries/tree-sitter-languages/php-tags.scm +26 -0
- agentpool/queries/tree-sitter-languages/python-tags.scm +12 -0
- agentpool/queries/tree-sitter-languages/ql-tags.scm +26 -0
- agentpool/queries/tree-sitter-languages/ruby-tags.scm +64 -0
- agentpool/queries/tree-sitter-languages/rust-tags.scm +60 -0
- agentpool/queries/tree-sitter-languages/scala-tags.scm +65 -0
- agentpool/queries/tree-sitter-languages/typescript-tags.scm +41 -0
- agentpool/queries/tree-sitter-languages/zig-tags.scm +3 -0
- agentpool/repomap.py +1231 -0
- agentpool/resource_providers/__init__.py +17 -0
- agentpool/resource_providers/aggregating.py +54 -0
- agentpool/resource_providers/base.py +172 -0
- agentpool/resource_providers/codemode/__init__.py +9 -0
- agentpool/resource_providers/codemode/code_executor.py +215 -0
- agentpool/resource_providers/codemode/default_prompt.py +19 -0
- agentpool/resource_providers/codemode/helpers.py +83 -0
- agentpool/resource_providers/codemode/progress_executor.py +212 -0
- agentpool/resource_providers/codemode/provider.py +150 -0
- agentpool/resource_providers/codemode/remote_mcp_execution.py +143 -0
- agentpool/resource_providers/codemode/remote_provider.py +171 -0
- agentpool/resource_providers/filtering.py +42 -0
- agentpool/resource_providers/mcp_provider.py +246 -0
- agentpool/resource_providers/plan_provider.py +196 -0
- agentpool/resource_providers/pool.py +69 -0
- agentpool/resource_providers/static.py +289 -0
- agentpool/running/__init__.py +20 -0
- agentpool/running/decorators.py +56 -0
- agentpool/running/discovery.py +101 -0
- agentpool/running/executor.py +284 -0
- agentpool/running/injection.py +111 -0
- agentpool/running/py.typed +0 -0
- agentpool/running/run_nodes.py +87 -0
- agentpool/server.py +122 -0
- agentpool/sessions/__init__.py +13 -0
- agentpool/sessions/manager.py +302 -0
- agentpool/sessions/models.py +71 -0
- agentpool/sessions/session.py +239 -0
- agentpool/sessions/store.py +163 -0
- agentpool/skills/__init__.py +5 -0
- agentpool/skills/manager.py +120 -0
- agentpool/skills/registry.py +210 -0
- agentpool/skills/skill.py +36 -0
- agentpool/storage/__init__.py +17 -0
- agentpool/storage/manager.py +419 -0
- agentpool/storage/serialization.py +136 -0
- agentpool/talk/__init__.py +13 -0
- agentpool/talk/registry.py +128 -0
- agentpool/talk/stats.py +159 -0
- agentpool/talk/talk.py +604 -0
- agentpool/tasks/__init__.py +20 -0
- agentpool/tasks/exceptions.py +25 -0
- agentpool/tasks/registry.py +33 -0
- agentpool/testing.py +129 -0
- agentpool/text_templates/__init__.py +39 -0
- agentpool/text_templates/system_prompt.jinja +30 -0
- agentpool/text_templates/tool_call_default.jinja +13 -0
- agentpool/text_templates/tool_call_markdown.jinja +25 -0
- agentpool/text_templates/tool_call_simple.jinja +5 -0
- agentpool/tools/__init__.py +16 -0
- agentpool/tools/base.py +269 -0
- agentpool/tools/exceptions.py +9 -0
- agentpool/tools/manager.py +255 -0
- agentpool/tools/tool_call_info.py +87 -0
- agentpool/ui/__init__.py +2 -0
- agentpool/ui/base.py +89 -0
- agentpool/ui/mock_provider.py +81 -0
- agentpool/ui/stdlib_provider.py +150 -0
- agentpool/utils/__init__.py +44 -0
- agentpool/utils/baseregistry.py +185 -0
- agentpool/utils/count_tokens.py +62 -0
- agentpool/utils/dag.py +184 -0
- agentpool/utils/importing.py +206 -0
- agentpool/utils/inspection.py +334 -0
- agentpool/utils/model_capabilities.py +25 -0
- agentpool/utils/network.py +28 -0
- agentpool/utils/now.py +22 -0
- agentpool/utils/parse_time.py +87 -0
- agentpool/utils/result_utils.py +35 -0
- agentpool/utils/signatures.py +305 -0
- agentpool/utils/streams.py +112 -0
- agentpool/utils/tasks.py +186 -0
- agentpool/vfs_registry.py +250 -0
- agentpool-2.1.9.dist-info/METADATA +336 -0
- agentpool-2.1.9.dist-info/RECORD +474 -0
- agentpool-2.1.9.dist-info/WHEEL +4 -0
- agentpool-2.1.9.dist-info/entry_points.txt +14 -0
- agentpool-2.1.9.dist-info/licenses/LICENSE +22 -0
- agentpool_cli/__init__.py +34 -0
- agentpool_cli/__main__.py +66 -0
- agentpool_cli/agent.py +175 -0
- agentpool_cli/cli_types.py +23 -0
- agentpool_cli/common.py +163 -0
- agentpool_cli/create.py +175 -0
- agentpool_cli/history.py +217 -0
- agentpool_cli/log.py +78 -0
- agentpool_cli/py.typed +0 -0
- agentpool_cli/run.py +84 -0
- agentpool_cli/serve_acp.py +177 -0
- agentpool_cli/serve_api.py +69 -0
- agentpool_cli/serve_mcp.py +74 -0
- agentpool_cli/serve_vercel.py +233 -0
- agentpool_cli/store.py +171 -0
- agentpool_cli/task.py +84 -0
- agentpool_cli/utils.py +104 -0
- agentpool_cli/watch.py +54 -0
- agentpool_commands/__init__.py +180 -0
- agentpool_commands/agents.py +199 -0
- agentpool_commands/base.py +45 -0
- agentpool_commands/commands.py +58 -0
- agentpool_commands/completers.py +110 -0
- agentpool_commands/connections.py +175 -0
- agentpool_commands/markdown_utils.py +31 -0
- agentpool_commands/models.py +62 -0
- agentpool_commands/prompts.py +78 -0
- agentpool_commands/py.typed +0 -0
- agentpool_commands/read.py +77 -0
- agentpool_commands/resources.py +210 -0
- agentpool_commands/session.py +48 -0
- agentpool_commands/tools.py +269 -0
- agentpool_commands/utils.py +189 -0
- agentpool_commands/workers.py +163 -0
- agentpool_config/__init__.py +53 -0
- agentpool_config/builtin_tools.py +265 -0
- agentpool_config/commands.py +237 -0
- agentpool_config/conditions.py +301 -0
- agentpool_config/converters.py +30 -0
- agentpool_config/durable.py +331 -0
- agentpool_config/event_handlers.py +600 -0
- agentpool_config/events.py +153 -0
- agentpool_config/forward_targets.py +251 -0
- agentpool_config/hook_conditions.py +331 -0
- agentpool_config/hooks.py +241 -0
- agentpool_config/jinja.py +206 -0
- agentpool_config/knowledge.py +41 -0
- agentpool_config/loaders.py +350 -0
- agentpool_config/mcp_server.py +243 -0
- agentpool_config/nodes.py +202 -0
- agentpool_config/observability.py +191 -0
- agentpool_config/output_types.py +55 -0
- agentpool_config/pool_server.py +267 -0
- agentpool_config/prompt_hubs.py +105 -0
- agentpool_config/prompts.py +185 -0
- agentpool_config/py.typed +0 -0
- agentpool_config/resources.py +33 -0
- agentpool_config/session.py +119 -0
- agentpool_config/skills.py +17 -0
- agentpool_config/storage.py +288 -0
- agentpool_config/system_prompts.py +190 -0
- agentpool_config/task.py +162 -0
- agentpool_config/teams.py +52 -0
- agentpool_config/tools.py +112 -0
- agentpool_config/toolsets.py +1033 -0
- agentpool_config/workers.py +86 -0
- agentpool_prompts/__init__.py +1 -0
- agentpool_prompts/braintrust_hub.py +235 -0
- agentpool_prompts/fabric.py +75 -0
- agentpool_prompts/langfuse_hub.py +79 -0
- agentpool_prompts/promptlayer_provider.py +59 -0
- agentpool_prompts/py.typed +0 -0
- agentpool_server/__init__.py +9 -0
- agentpool_server/a2a_server/__init__.py +5 -0
- agentpool_server/a2a_server/a2a_types.py +41 -0
- agentpool_server/a2a_server/server.py +190 -0
- agentpool_server/a2a_server/storage.py +81 -0
- agentpool_server/acp_server/__init__.py +22 -0
- agentpool_server/acp_server/acp_agent.py +786 -0
- agentpool_server/acp_server/acp_tools.py +43 -0
- agentpool_server/acp_server/commands/__init__.py +18 -0
- agentpool_server/acp_server/commands/acp_commands.py +594 -0
- agentpool_server/acp_server/commands/debug_commands.py +376 -0
- agentpool_server/acp_server/commands/docs_commands/__init__.py +39 -0
- agentpool_server/acp_server/commands/docs_commands/fetch_repo.py +169 -0
- agentpool_server/acp_server/commands/docs_commands/get_schema.py +176 -0
- agentpool_server/acp_server/commands/docs_commands/get_source.py +110 -0
- agentpool_server/acp_server/commands/docs_commands/git_diff.py +111 -0
- agentpool_server/acp_server/commands/docs_commands/helpers.py +33 -0
- agentpool_server/acp_server/commands/docs_commands/url_to_markdown.py +90 -0
- agentpool_server/acp_server/commands/spawn.py +210 -0
- agentpool_server/acp_server/converters.py +235 -0
- agentpool_server/acp_server/input_provider.py +338 -0
- agentpool_server/acp_server/server.py +288 -0
- agentpool_server/acp_server/session.py +969 -0
- agentpool_server/acp_server/session_manager.py +313 -0
- agentpool_server/acp_server/syntax_detection.py +250 -0
- agentpool_server/acp_server/zed_tools.md +90 -0
- agentpool_server/aggregating_server.py +309 -0
- agentpool_server/agui_server/__init__.py +11 -0
- agentpool_server/agui_server/server.py +128 -0
- agentpool_server/base.py +189 -0
- agentpool_server/http_server.py +164 -0
- agentpool_server/mcp_server/__init__.py +6 -0
- agentpool_server/mcp_server/server.py +314 -0
- agentpool_server/mcp_server/zed_wrapper.py +110 -0
- agentpool_server/openai_api_server/__init__.py +5 -0
- agentpool_server/openai_api_server/completions/__init__.py +1 -0
- agentpool_server/openai_api_server/completions/helpers.py +81 -0
- agentpool_server/openai_api_server/completions/models.py +98 -0
- agentpool_server/openai_api_server/responses/__init__.py +1 -0
- agentpool_server/openai_api_server/responses/helpers.py +74 -0
- agentpool_server/openai_api_server/responses/models.py +96 -0
- agentpool_server/openai_api_server/server.py +242 -0
- agentpool_server/py.typed +0 -0
- agentpool_storage/__init__.py +9 -0
- agentpool_storage/base.py +310 -0
- agentpool_storage/file_provider.py +378 -0
- agentpool_storage/formatters.py +129 -0
- agentpool_storage/memory_provider.py +396 -0
- agentpool_storage/models.py +108 -0
- agentpool_storage/py.typed +0 -0
- agentpool_storage/session_store.py +262 -0
- agentpool_storage/sql_provider/__init__.py +21 -0
- agentpool_storage/sql_provider/cli.py +146 -0
- agentpool_storage/sql_provider/models.py +249 -0
- agentpool_storage/sql_provider/queries.py +15 -0
- agentpool_storage/sql_provider/sql_provider.py +444 -0
- agentpool_storage/sql_provider/utils.py +234 -0
- agentpool_storage/text_log_provider.py +275 -0
- agentpool_toolsets/__init__.py +15 -0
- agentpool_toolsets/builtin/__init__.py +33 -0
- agentpool_toolsets/builtin/agent_management.py +239 -0
- agentpool_toolsets/builtin/chain.py +288 -0
- agentpool_toolsets/builtin/code.py +398 -0
- agentpool_toolsets/builtin/debug.py +291 -0
- agentpool_toolsets/builtin/execution_environment.py +381 -0
- agentpool_toolsets/builtin/file_edit/__init__.py +11 -0
- agentpool_toolsets/builtin/file_edit/file_edit.py +747 -0
- agentpool_toolsets/builtin/file_edit/fuzzy_matcher/__init__.py +5 -0
- agentpool_toolsets/builtin/file_edit/fuzzy_matcher/example_usage.py +311 -0
- agentpool_toolsets/builtin/file_edit/fuzzy_matcher/streaming_fuzzy_matcher.py +443 -0
- agentpool_toolsets/builtin/history.py +36 -0
- agentpool_toolsets/builtin/integration.py +85 -0
- agentpool_toolsets/builtin/skills.py +77 -0
- agentpool_toolsets/builtin/subagent_tools.py +324 -0
- agentpool_toolsets/builtin/tool_management.py +90 -0
- agentpool_toolsets/builtin/user_interaction.py +52 -0
- agentpool_toolsets/builtin/workers.py +128 -0
- agentpool_toolsets/composio_toolset.py +96 -0
- agentpool_toolsets/config_creation.py +192 -0
- agentpool_toolsets/entry_points.py +47 -0
- agentpool_toolsets/fsspec_toolset/__init__.py +7 -0
- agentpool_toolsets/fsspec_toolset/diagnostics.py +115 -0
- agentpool_toolsets/fsspec_toolset/grep.py +450 -0
- agentpool_toolsets/fsspec_toolset/helpers.py +631 -0
- agentpool_toolsets/fsspec_toolset/streaming_diff_parser.py +249 -0
- agentpool_toolsets/fsspec_toolset/toolset.py +1384 -0
- agentpool_toolsets/mcp_run_toolset.py +61 -0
- agentpool_toolsets/notifications.py +146 -0
- agentpool_toolsets/openapi.py +118 -0
- agentpool_toolsets/py.typed +0 -0
- agentpool_toolsets/search_toolset.py +202 -0
- agentpool_toolsets/semantic_memory_toolset.py +536 -0
- agentpool_toolsets/streaming_tools.py +265 -0
- agentpool_toolsets/vfs_toolset.py +124 -0
agentpool_config/task.py
ADDED
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
"""Task configuration."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from collections.abc import Callable
|
|
6
|
+
from typing import TYPE_CHECKING, Any
|
|
7
|
+
|
|
8
|
+
from pydantic import ConfigDict, Field, ImportString
|
|
9
|
+
from schemez import Schema
|
|
10
|
+
|
|
11
|
+
from agentpool.prompts.prompts import BasePrompt
|
|
12
|
+
from agentpool.tools.base import Tool
|
|
13
|
+
from agentpool_config.knowledge import Knowledge
|
|
14
|
+
from agentpool_config.tools import ImportToolConfig
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
if TYPE_CHECKING:
|
|
18
|
+
from agentpool.agents import Agent
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class Job[TDeps, TResult = str](Schema):
|
|
22
|
+
"""A task is a piece of work that can be executed by an agent.
|
|
23
|
+
|
|
24
|
+
Requirements:
|
|
25
|
+
- The agent must have compatible dependencies (required_dependency)
|
|
26
|
+
- The agent must produce the specified result type (required_return_type)
|
|
27
|
+
|
|
28
|
+
Equipment:
|
|
29
|
+
- The task provides necessary tools for execution (tools)
|
|
30
|
+
- Tools are temporarily available during task execution
|
|
31
|
+
"""
|
|
32
|
+
|
|
33
|
+
name: str | None = Field(
|
|
34
|
+
default=None,
|
|
35
|
+
examples=["analyze_code", "generate_summary", "translate_text"],
|
|
36
|
+
title="Task name",
|
|
37
|
+
)
|
|
38
|
+
"""Technical identifier (automatically set from config key during registration)"""
|
|
39
|
+
|
|
40
|
+
description: str | None = Field(
|
|
41
|
+
default=None,
|
|
42
|
+
examples=[
|
|
43
|
+
"Analyze code for issues",
|
|
44
|
+
"Generate a summary",
|
|
45
|
+
"Translate text to target language",
|
|
46
|
+
],
|
|
47
|
+
title="Task description",
|
|
48
|
+
)
|
|
49
|
+
"""Human-readable description of what this task does"""
|
|
50
|
+
|
|
51
|
+
prompt: str | ImportString[str] | BasePrompt = Field(
|
|
52
|
+
examples=["Analyze the following code", "agentpool.prompts.prompts:BasePrompt"],
|
|
53
|
+
title="Task prompt",
|
|
54
|
+
)
|
|
55
|
+
"""The task instruction/prompt."""
|
|
56
|
+
|
|
57
|
+
required_return_type: ImportString[type[TResult]] = Field(
|
|
58
|
+
default="str",
|
|
59
|
+
validate_default=True,
|
|
60
|
+
examples=["str", "dict", "builtins:str"],
|
|
61
|
+
title="Required return type",
|
|
62
|
+
)
|
|
63
|
+
"""Expected type of the task result."""
|
|
64
|
+
|
|
65
|
+
required_dependency: ImportString[type[TDeps]] | None = Field(
|
|
66
|
+
default=None,
|
|
67
|
+
validate_default=True,
|
|
68
|
+
examples=["agentpool.agents.context:AgentContext"],
|
|
69
|
+
title="Required dependencies",
|
|
70
|
+
)
|
|
71
|
+
"""Dependencies or context data needed for task execution"""
|
|
72
|
+
|
|
73
|
+
requires_vision: bool = Field(default=False, title="Requires vision capabilities")
|
|
74
|
+
"""Whether the agent requires vision"""
|
|
75
|
+
|
|
76
|
+
knowledge: Knowledge | None = Field(default=None, title="Task knowledge sources")
|
|
77
|
+
"""Optional knowledge sources for this task:
|
|
78
|
+
- Simple file/URL paths
|
|
79
|
+
- Rich resource definitions
|
|
80
|
+
- Prompt templates
|
|
81
|
+
"""
|
|
82
|
+
|
|
83
|
+
tools: list[ImportString[Callable[..., Any]] | ImportToolConfig] = Field(
|
|
84
|
+
default_factory=list,
|
|
85
|
+
examples=[
|
|
86
|
+
[
|
|
87
|
+
{
|
|
88
|
+
"type": "import",
|
|
89
|
+
"import_path": "webbrowser:open",
|
|
90
|
+
"name": "web_browser",
|
|
91
|
+
}
|
|
92
|
+
],
|
|
93
|
+
["builtins:print"],
|
|
94
|
+
[
|
|
95
|
+
{
|
|
96
|
+
"type": "import",
|
|
97
|
+
"import_path": "builtins:print",
|
|
98
|
+
"requires_confirmation": True,
|
|
99
|
+
}
|
|
100
|
+
],
|
|
101
|
+
],
|
|
102
|
+
title="Task tools",
|
|
103
|
+
)
|
|
104
|
+
"""Tools needed for this task."""
|
|
105
|
+
|
|
106
|
+
min_context_tokens: int | None = Field(
|
|
107
|
+
default=None,
|
|
108
|
+
examples=[1000, 4000, 8000],
|
|
109
|
+
title="Minimum context tokens",
|
|
110
|
+
)
|
|
111
|
+
"""Minimum amount of required context size."""
|
|
112
|
+
|
|
113
|
+
model_config = ConfigDict(frozen=True)
|
|
114
|
+
|
|
115
|
+
async def can_be_executed_by(self, agent: Agent[Any, Any]) -> bool:
|
|
116
|
+
"""Check if agent meets all requirements for this task."""
|
|
117
|
+
# Check dependencies
|
|
118
|
+
if self.required_dependency and not issubclass(
|
|
119
|
+
agent.deps_type or type(None), self.required_dependency
|
|
120
|
+
):
|
|
121
|
+
return False
|
|
122
|
+
|
|
123
|
+
if agent._output_type != self.required_return_type:
|
|
124
|
+
return False
|
|
125
|
+
|
|
126
|
+
# Check vision capabilities
|
|
127
|
+
if self.requires_vision:
|
|
128
|
+
from agentpool.utils.model_capabilities import supports_vision
|
|
129
|
+
|
|
130
|
+
if not await supports_vision(agent.model_name):
|
|
131
|
+
return False
|
|
132
|
+
|
|
133
|
+
return True
|
|
134
|
+
|
|
135
|
+
@property
|
|
136
|
+
def tool_configs(self) -> list[ImportToolConfig]:
|
|
137
|
+
"""Get all tools as ToolConfig instances."""
|
|
138
|
+
return [
|
|
139
|
+
tool if isinstance(tool, ImportToolConfig) else ImportToolConfig(import_path=tool)
|
|
140
|
+
for tool in self.tools
|
|
141
|
+
]
|
|
142
|
+
|
|
143
|
+
async def get_prompt(self) -> str:
|
|
144
|
+
if isinstance(self.prompt, BasePrompt):
|
|
145
|
+
messages = await self.prompt.format()
|
|
146
|
+
return "\n\n".join(m.get_text_content() for m in messages)
|
|
147
|
+
return self.prompt
|
|
148
|
+
|
|
149
|
+
def get_tools(self) -> list[Tool]:
|
|
150
|
+
"""Get all tools as Tool instances."""
|
|
151
|
+
tools: list[Tool] = []
|
|
152
|
+
for tool in self.tools:
|
|
153
|
+
match tool:
|
|
154
|
+
case str():
|
|
155
|
+
tools.append(Tool.from_callable(tool))
|
|
156
|
+
case ImportToolConfig() as config:
|
|
157
|
+
tools.append(config.get_tool())
|
|
158
|
+
case Tool():
|
|
159
|
+
tools.append(tool)
|
|
160
|
+
case _:
|
|
161
|
+
raise ValueError(f"Invalid tool type: {type(tool)}")
|
|
162
|
+
return tools
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"""Team configuration models."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Literal
|
|
6
|
+
|
|
7
|
+
from pydantic import ConfigDict, Field
|
|
8
|
+
|
|
9
|
+
from agentpool_config.nodes import NodeConfig
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
ExecutionMode = Literal["parallel", "sequential"]
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class TeamConfig(NodeConfig):
|
|
16
|
+
"""Configuration for a team or chain of message nodes.
|
|
17
|
+
|
|
18
|
+
Teams can be either parallel execution groups or sequential chains.
|
|
19
|
+
They can contain both agents and other teams as members.
|
|
20
|
+
|
|
21
|
+
Docs: https://phil65.github.io/agentpool/YAML%20Configuration/team_configuration/
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
model_config = ConfigDict(
|
|
25
|
+
json_schema_extra={
|
|
26
|
+
"x-icon": "fluent:people-team-24-regular",
|
|
27
|
+
"x-doc-title": "Team Configuration",
|
|
28
|
+
}
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
mode: ExecutionMode = Field(examples=["parallel", "sequential"], title="Execution mode")
|
|
32
|
+
"""Execution mode for team members."""
|
|
33
|
+
|
|
34
|
+
members: list[str] = Field(
|
|
35
|
+
examples=[["agent1", "agent2"], ["web_searcher", "data_analyzer", "reporter"]],
|
|
36
|
+
title="Team members",
|
|
37
|
+
)
|
|
38
|
+
"""Names of agents or other teams that are part of this team."""
|
|
39
|
+
|
|
40
|
+
shared_prompt: str | None = Field(
|
|
41
|
+
default=None,
|
|
42
|
+
examples=["Work together to solve this problem", "Follow the team guidelines"],
|
|
43
|
+
title="Shared prompt",
|
|
44
|
+
)
|
|
45
|
+
"""Optional shared prompt for this team."""
|
|
46
|
+
|
|
47
|
+
# Future extensions:
|
|
48
|
+
# tools: list[str] | None = None
|
|
49
|
+
# """Tools available to all team members."""
|
|
50
|
+
|
|
51
|
+
# knowledge: Knowledge | None = None
|
|
52
|
+
# """Knowledge sources shared by all team members."""
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"""Models for tools."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from collections.abc import Callable
|
|
6
|
+
from typing import TYPE_CHECKING, Annotated, Any, Literal
|
|
7
|
+
|
|
8
|
+
from pydantic import ConfigDict, Field, ImportString
|
|
9
|
+
from schemez import Schema
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
if TYPE_CHECKING:
|
|
13
|
+
from agentpool.tools.base import Tool
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class ToolHints(Schema):
|
|
17
|
+
"""Configuration for tool execution hints."""
|
|
18
|
+
|
|
19
|
+
read_only: bool | None = Field(default=None, title="Read-only operation")
|
|
20
|
+
"""Hints that this tool only reads data without modifying anything"""
|
|
21
|
+
|
|
22
|
+
destructive: bool | None = Field(default=None, title="Destructive operation")
|
|
23
|
+
"""Hints that this tool performs destructive operations that cannot be undone"""
|
|
24
|
+
|
|
25
|
+
idempotent: bool | None = Field(default=None, title="Idempotent operation")
|
|
26
|
+
"""Hints that this tool has idempotent behaviour"""
|
|
27
|
+
|
|
28
|
+
open_world: bool | None = Field(default=None, title="External resource access")
|
|
29
|
+
"""Hints that this tool can access / interact with external resources beyond the
|
|
30
|
+
current system"""
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class BaseToolConfig(Schema):
|
|
34
|
+
"""Base configuration for agent tools."""
|
|
35
|
+
|
|
36
|
+
type: str = Field(init=False)
|
|
37
|
+
"""Type discriminator for tool configs."""
|
|
38
|
+
|
|
39
|
+
name: str | None = Field(
|
|
40
|
+
default=None,
|
|
41
|
+
examples=["search_web", "file_reader", "calculator"],
|
|
42
|
+
title="Tool name override",
|
|
43
|
+
)
|
|
44
|
+
"""Optional override for the tool name."""
|
|
45
|
+
|
|
46
|
+
description: str | None = Field(
|
|
47
|
+
default=None,
|
|
48
|
+
examples=["Search the web for information", "Read file contents"],
|
|
49
|
+
title="Tool description override",
|
|
50
|
+
)
|
|
51
|
+
"""Optional override for the tool description."""
|
|
52
|
+
|
|
53
|
+
enabled: bool = Field(default=True, title="Tool enabled")
|
|
54
|
+
"""Whether this tool is initially enabled."""
|
|
55
|
+
|
|
56
|
+
requires_confirmation: bool = Field(default=False, title="Requires confirmation")
|
|
57
|
+
"""Whether tool execution needs confirmation."""
|
|
58
|
+
|
|
59
|
+
metadata: dict[str, str] = Field(
|
|
60
|
+
default_factory=dict,
|
|
61
|
+
examples=[
|
|
62
|
+
{"category": "web", "version": "1.0"},
|
|
63
|
+
{"author": "system", "tags": "search,utility"},
|
|
64
|
+
{"priority": "high", "environment": "production"},
|
|
65
|
+
],
|
|
66
|
+
title="Tool metadata",
|
|
67
|
+
)
|
|
68
|
+
"""Additional tool metadata."""
|
|
69
|
+
|
|
70
|
+
hints: ToolHints | None = Field(
|
|
71
|
+
default=None,
|
|
72
|
+
title="Execution hints",
|
|
73
|
+
examples=[
|
|
74
|
+
{"read_only": True, "destructive": False, "open_world": True, "idempotent": False},
|
|
75
|
+
],
|
|
76
|
+
)
|
|
77
|
+
"""Hints for tool execution."""
|
|
78
|
+
|
|
79
|
+
model_config = ConfigDict(frozen=True)
|
|
80
|
+
|
|
81
|
+
def get_tool(self) -> Tool:
|
|
82
|
+
"""Convert config to Tool instance."""
|
|
83
|
+
raise NotImplementedError
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
class ImportToolConfig(BaseToolConfig):
|
|
87
|
+
"""Configuration for importing tools from Python modules."""
|
|
88
|
+
|
|
89
|
+
type: Literal["import"] = Field("import", init=False)
|
|
90
|
+
"""Import path based tool."""
|
|
91
|
+
|
|
92
|
+
import_path: ImportString[Callable[..., Any]] = Field(
|
|
93
|
+
examples=["webbrowser:open", "builtins:print"],
|
|
94
|
+
title="Import path",
|
|
95
|
+
)
|
|
96
|
+
"""Import path to the tool function."""
|
|
97
|
+
|
|
98
|
+
def get_tool(self) -> Tool:
|
|
99
|
+
"""Import and create tool from configuration."""
|
|
100
|
+
from agentpool.tools.base import Tool
|
|
101
|
+
|
|
102
|
+
return Tool.from_callable(
|
|
103
|
+
self.import_path,
|
|
104
|
+
name_override=self.name,
|
|
105
|
+
description_override=self.description,
|
|
106
|
+
enabled=self.enabled,
|
|
107
|
+
requires_confirmation=self.requires_confirmation,
|
|
108
|
+
metadata=self.metadata,
|
|
109
|
+
)
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
ToolConfig = Annotated[ImportToolConfig, Field(discriminator="type")]
|