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
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
"""Type definitions."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from collections.abc import Awaitable, Callable
|
|
6
|
+
from typing import (
|
|
7
|
+
TYPE_CHECKING,
|
|
8
|
+
Any,
|
|
9
|
+
ClassVar,
|
|
10
|
+
Literal,
|
|
11
|
+
Protocol,
|
|
12
|
+
get_args,
|
|
13
|
+
get_origin,
|
|
14
|
+
runtime_checkable,
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
from pydantic import BaseModel, ConfigDict, field_validator
|
|
18
|
+
from pydantic_ai import AgentStreamEvent, RunContext
|
|
19
|
+
from pydantic_ai.models import Model
|
|
20
|
+
from tokonomics.model_names import ModelId
|
|
21
|
+
from toprompt.to_prompt import AnyPromptType
|
|
22
|
+
from upathtools import JoinablePathLike
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
if TYPE_CHECKING:
|
|
26
|
+
from collections.abc import AsyncIterator
|
|
27
|
+
from uuid import UUID
|
|
28
|
+
|
|
29
|
+
from agentpool.agents.events import RichAgentStreamEvent
|
|
30
|
+
from agentpool.messaging import ChatMessage
|
|
31
|
+
from agentpool.messaging.messagenode import MessageNode
|
|
32
|
+
from agentpool.tools.base import Tool
|
|
33
|
+
|
|
34
|
+
# Type alias for team streaming return type (node + event tuples)
|
|
35
|
+
type TeamStreamEvent = tuple[MessageNode[Any, Any], RichAgentStreamEvent[Any]]
|
|
36
|
+
type AnyTransformFn[T] = Callable[[T], T | Awaitable[T]]
|
|
37
|
+
type OptionalAwaitable[T] = T | Awaitable[T]
|
|
38
|
+
type ToolType = str | AnyCallable | Tool
|
|
39
|
+
# Define what we consider JSON-serializable
|
|
40
|
+
type JsonPrimitive = None | bool | int | float | str
|
|
41
|
+
type SessionIdType = str | UUID | None
|
|
42
|
+
type ProcessorCallback[TResult] = Callable[..., TResult | Awaitable[TResult]]
|
|
43
|
+
|
|
44
|
+
# In reflex for example, the complex ones create issues..
|
|
45
|
+
SimpleJsonType = dict[
|
|
46
|
+
str, bool | int | float | str | list[str] | dict[str, bool | int | float | str]
|
|
47
|
+
]
|
|
48
|
+
type JsonValue = JsonPrimitive | JsonArray | JsonObject
|
|
49
|
+
type JsonObject = dict[str, JsonValue]
|
|
50
|
+
type JsonArray = list[JsonValue]
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
NodeName = str
|
|
54
|
+
TeamName = str
|
|
55
|
+
AgentName = str
|
|
56
|
+
MessageRole = Literal["user", "assistant"]
|
|
57
|
+
PartType = Literal["text", "image", "audio", "video"]
|
|
58
|
+
ModelType = Model | ModelId | str | None
|
|
59
|
+
EnvironmentType = Literal["file", "inline"]
|
|
60
|
+
ToolSource = Literal["agent", "builtin", "dynamic", "task", "mcp", "toolset"]
|
|
61
|
+
AnyCallable = Callable[..., Any]
|
|
62
|
+
AsyncFilterFn = Callable[..., Awaitable[bool]]
|
|
63
|
+
SyncFilterFn = Callable[..., bool]
|
|
64
|
+
AnyFilterFn = Callable[..., bool | Awaitable[bool]]
|
|
65
|
+
# Event handler types for composable event processing
|
|
66
|
+
# Individual event handler for composability - takes single events
|
|
67
|
+
IndividualEventHandler = Callable[[RunContext, AgentStreamEvent], Awaitable[None]]
|
|
68
|
+
BuiltinEventHandlerType = Literal["simple", "detailed"]
|
|
69
|
+
PromptCompatible = AnyPromptType | JoinablePathLike
|
|
70
|
+
# P = ParamSpec("P")
|
|
71
|
+
# SyncAsync = Callable[P, OptionalAwaitable[T]]
|
|
72
|
+
EndStrategy = Literal["early", "exhaustive"]
|
|
73
|
+
QueueStrategy = Literal["concat", "latest", "buffer"]
|
|
74
|
+
"""The strategy for handling multiple tool calls when a final result is found.
|
|
75
|
+
|
|
76
|
+
- `'early'`: Stop processing other tool calls once a final result is found
|
|
77
|
+
- `'exhaustive'`: Process all tool calls even after finding a final result
|
|
78
|
+
"""
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
class SupportsStructuredOutput(Protocol):
|
|
82
|
+
"""Protocol for nodes that support structured output via run().
|
|
83
|
+
|
|
84
|
+
This protocol is used for components that need to call run() with
|
|
85
|
+
an output_type parameter (e.g., picker agents, Interactions).
|
|
86
|
+
"""
|
|
87
|
+
|
|
88
|
+
async def run(self, *prompts: Any, output_type: Any = ...) -> ChatMessage[Any]: ...
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
@runtime_checkable
|
|
92
|
+
class SupportsRunStream[TResult](Protocol):
|
|
93
|
+
"""Protocol for nodes that support streaming via run_stream().
|
|
94
|
+
|
|
95
|
+
Used by Team and TeamRun to check if a node can be streamed.
|
|
96
|
+
|
|
97
|
+
Return type is a union because:
|
|
98
|
+
- Agent returns `AsyncIterator[RichAgentStreamEvent[TResult]]`
|
|
99
|
+
- Team/TeamRun return `AsyncIterator[tuple[MessageNode, RichAgentStreamEvent]]`
|
|
100
|
+
"""
|
|
101
|
+
|
|
102
|
+
def run_stream(
|
|
103
|
+
self, *prompts: Any, **kwargs: Any
|
|
104
|
+
) -> AsyncIterator[RichAgentStreamEvent[TResult] | TeamStreamEvent]: ...
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
class BaseCode(BaseModel):
|
|
108
|
+
"""Base class for syntax-validated code."""
|
|
109
|
+
|
|
110
|
+
code: str
|
|
111
|
+
"""The source code."""
|
|
112
|
+
|
|
113
|
+
@field_validator("code")
|
|
114
|
+
@classmethod
|
|
115
|
+
def validate_syntax(cls, code: str) -> str:
|
|
116
|
+
"""Override in subclasses."""
|
|
117
|
+
return code
|
|
118
|
+
|
|
119
|
+
model_config = ConfigDict(use_attribute_docstrings=True)
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
def _validate_type_args(data: Any, args: tuple[Any, ...]) -> None:
|
|
123
|
+
"""Validate data against type arguments."""
|
|
124
|
+
match data:
|
|
125
|
+
case dict() if len(args) == 2: # noqa: PLR2004
|
|
126
|
+
key_type, value_type = args
|
|
127
|
+
for k, v in data.items():
|
|
128
|
+
if not isinstance(k, key_type):
|
|
129
|
+
msg = f"Invalid key type: {type(k)}, expected {key_type}"
|
|
130
|
+
raise ValueError(msg) # noqa: TRY004
|
|
131
|
+
if not isinstance(v, value_type):
|
|
132
|
+
msg = f"Invalid value type: {type(v)}, expected {value_type}"
|
|
133
|
+
raise ValueError(msg) # noqa: TRY004
|
|
134
|
+
case list() if len(args) == 1:
|
|
135
|
+
item_type = args[0]
|
|
136
|
+
for item in data:
|
|
137
|
+
if not isinstance(item, item_type):
|
|
138
|
+
msg = f"Invalid item type: {type(item)}, expected {item_type}"
|
|
139
|
+
raise ValueError(msg) # noqa: TRY004
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
class ConfigCode[T](BaseCode):
|
|
143
|
+
"""Base class for configuration code that validates against a specific type.
|
|
144
|
+
|
|
145
|
+
Generic type T specifies the type to validate against.
|
|
146
|
+
"""
|
|
147
|
+
|
|
148
|
+
validator_type: ClassVar[type]
|
|
149
|
+
|
|
150
|
+
@field_validator("code")
|
|
151
|
+
@classmethod
|
|
152
|
+
def validate_syntax(cls, code: str) -> str:
|
|
153
|
+
"""Validate both YAML syntax and type constraints."""
|
|
154
|
+
import yamling
|
|
155
|
+
|
|
156
|
+
try:
|
|
157
|
+
# First validate YAML syntax
|
|
158
|
+
data = yamling.load(code, mode="yaml")
|
|
159
|
+
|
|
160
|
+
# Then validate against target type
|
|
161
|
+
match cls.validator_type:
|
|
162
|
+
case type() as model_cls if issubclass(model_cls, BaseModel):
|
|
163
|
+
model_cls.model_validate(data)
|
|
164
|
+
case _ if origin := get_origin(cls.validator_type):
|
|
165
|
+
# Handle generics like dict[str, int]
|
|
166
|
+
if not isinstance(data, origin):
|
|
167
|
+
msg = f"Expected {origin.__name__}, got {type(data).__name__}"
|
|
168
|
+
raise ValueError(msg) # noqa: TRY004, TRY301
|
|
169
|
+
# Validate type arguments if present
|
|
170
|
+
if args := get_args(cls.validator_type):
|
|
171
|
+
_validate_type_args(data, args)
|
|
172
|
+
case _:
|
|
173
|
+
msg = f"Unsupported validation type: {cls.validator_type}"
|
|
174
|
+
raise TypeError(msg) # noqa: TRY301
|
|
175
|
+
|
|
176
|
+
except Exception as e:
|
|
177
|
+
msg = f"Invalid YAML for {cls.validator_type.__name__}: {e}"
|
|
178
|
+
raise ValueError(msg) from e
|
|
179
|
+
|
|
180
|
+
return code
|
|
181
|
+
|
|
182
|
+
@classmethod
|
|
183
|
+
def for_config[TConfig](
|
|
184
|
+
cls,
|
|
185
|
+
base_type: type[TConfig],
|
|
186
|
+
*,
|
|
187
|
+
name: str | None = None,
|
|
188
|
+
error_msg: str | None = None,
|
|
189
|
+
) -> type[ConfigCode[TConfig]]:
|
|
190
|
+
"""Create a new ConfigCode class for a specific type.
|
|
191
|
+
|
|
192
|
+
Args:
|
|
193
|
+
base_type: The type to validate against
|
|
194
|
+
name: Optional name for the new class
|
|
195
|
+
error_msg: Optional custom error message
|
|
196
|
+
|
|
197
|
+
Returns:
|
|
198
|
+
New ConfigCode subclass with type-specific validation
|
|
199
|
+
"""
|
|
200
|
+
|
|
201
|
+
class TypedConfigCode(ConfigCode[TConfig]):
|
|
202
|
+
validator_type = base_type
|
|
203
|
+
|
|
204
|
+
@field_validator("code")
|
|
205
|
+
@classmethod
|
|
206
|
+
def validate_syntax(cls, code: str) -> str:
|
|
207
|
+
try:
|
|
208
|
+
return super().validate_syntax(code)
|
|
209
|
+
except ValueError as e:
|
|
210
|
+
msg = error_msg or str(e)
|
|
211
|
+
raise ValueError(msg) from e
|
|
212
|
+
|
|
213
|
+
if name:
|
|
214
|
+
TypedConfigCode.__name__ = name
|
|
215
|
+
|
|
216
|
+
return TypedConfigCode
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
if __name__ == "__main__":
|
|
220
|
+
from agentpool.models.manifest import AgentsManifest
|
|
221
|
+
|
|
222
|
+
AgentsManifestCode = ConfigCode.for_config(
|
|
223
|
+
AgentsManifest,
|
|
224
|
+
name="AgentsManifestCode",
|
|
225
|
+
error_msg="Invalid agents manifest YAML",
|
|
226
|
+
)
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"""Package resources for AgentPool configuration."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import importlib.resources
|
|
6
|
+
from typing import Final
|
|
7
|
+
|
|
8
|
+
_RESOURCES = importlib.resources.files("agentpool.config_resources")
|
|
9
|
+
|
|
10
|
+
AGENTS_TEMPLATE: Final[str] = str(_RESOURCES / "agents_template.yml")
|
|
11
|
+
"""Path to the agents template configuration."""
|
|
12
|
+
|
|
13
|
+
ACP_ASSISTANT: Final[str] = str(_RESOURCES / "acp_assistant.yml")
|
|
14
|
+
"""Path to default ACP assistant configuration."""
|
|
15
|
+
|
|
16
|
+
__all__ = ["ACP_ASSISTANT", "AGENTS_TEMPLATE"]
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# yaml-language-server: $schema=https://raw.githubusercontent.com/phil65/agentpool/refs/heads/main/schema/config-schema.json
|
|
2
|
+
# Default ACP assistant configuration
|
|
3
|
+
# Used when starting ACP server without explicit config file
|
|
4
|
+
|
|
5
|
+
agents:
|
|
6
|
+
assistant:
|
|
7
|
+
display_name: "AI Assistant"
|
|
8
|
+
description: "General-purpose assistant with file system and code execution access"
|
|
9
|
+
model:
|
|
10
|
+
type: anthropic
|
|
11
|
+
identifier: claude-haiku-4-5
|
|
12
|
+
cache_instructions: true
|
|
13
|
+
cache_tool_definitions: true
|
|
14
|
+
cache_messages: true
|
|
15
|
+
system_prompt:
|
|
16
|
+
- |
|
|
17
|
+
You are a helpful AI assistant with access to the file system and can execute code.
|
|
18
|
+
You can help with coding, writing, analysis, file operations, and more.
|
|
19
|
+
Be concise but thorough in your responses.
|
|
20
|
+
toolsets:
|
|
21
|
+
- type: execution
|
|
22
|
+
- type: file_access
|
|
23
|
+
- type: code
|
|
24
|
+
- type: search
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# yaml-language-server: $schema=https://raw.githubusercontent.com/phil65/agentpool/refs/heads/main/schema/config-schema.json
|
|
2
|
+
responses:
|
|
3
|
+
BasicResult:
|
|
4
|
+
response_schema:
|
|
5
|
+
type: inline
|
|
6
|
+
description: "Simple operation result"
|
|
7
|
+
fields:
|
|
8
|
+
success:
|
|
9
|
+
type: bool
|
|
10
|
+
description: "Whether operation succeeded"
|
|
11
|
+
message:
|
|
12
|
+
type: str
|
|
13
|
+
description: "Operation result message"
|
|
14
|
+
|
|
15
|
+
SystemInfoResult:
|
|
16
|
+
response_schema:
|
|
17
|
+
type: inline
|
|
18
|
+
description: "System information result"
|
|
19
|
+
fields:
|
|
20
|
+
platform:
|
|
21
|
+
type: str
|
|
22
|
+
description: "Platform information"
|
|
23
|
+
cpu_count:
|
|
24
|
+
type: int
|
|
25
|
+
description: "Number of CPUs"
|
|
26
|
+
memory_used:
|
|
27
|
+
type: float
|
|
28
|
+
description: "Memory usage in GB"
|
|
29
|
+
summary:
|
|
30
|
+
type: str
|
|
31
|
+
description: "Formatted system summary"
|
|
32
|
+
|
|
33
|
+
FileInfoResult:
|
|
34
|
+
response_schema:
|
|
35
|
+
description: "File system information result"
|
|
36
|
+
type: inline
|
|
37
|
+
fields:
|
|
38
|
+
current_dir:
|
|
39
|
+
type: str
|
|
40
|
+
description: "Current working directory"
|
|
41
|
+
files:
|
|
42
|
+
type: list[str]
|
|
43
|
+
description: "List of files found"
|
|
44
|
+
details:
|
|
45
|
+
type: str
|
|
46
|
+
description: "Formatted file information"
|
|
47
|
+
|
|
48
|
+
agents:
|
|
49
|
+
url_opener:
|
|
50
|
+
tools:
|
|
51
|
+
- type: import
|
|
52
|
+
import_path: "webbrowser.open"
|
|
53
|
+
description: "Open URL in default browser"
|
|
54
|
+
- type: import
|
|
55
|
+
import_path: "getpass.getuser"
|
|
56
|
+
description: "Get current system username"
|
|
57
|
+
model: openai:gpt-5-mini
|
|
58
|
+
output_type: BasicResult
|
|
59
|
+
system_prompt:
|
|
60
|
+
- |
|
|
61
|
+
You help users open websites. Use the open_url tool to open URLs.
|
|
62
|
+
When given a website name, find its URL in the bookmarks resource.
|
|
63
|
+
Always confirm what you're about to open.
|
|
64
|
+
|
|
65
|
+
system_inspector:
|
|
66
|
+
tools:
|
|
67
|
+
- type: import
|
|
68
|
+
import_path: "platform.platform"
|
|
69
|
+
description: "Get platform information"
|
|
70
|
+
- type: import
|
|
71
|
+
import_path: "os.cpu_count"
|
|
72
|
+
description: "Get number of CPUs"
|
|
73
|
+
- type: import
|
|
74
|
+
import_path: "psutil.virtual_memory"
|
|
75
|
+
description: "Get memory information"
|
|
76
|
+
model: openai:gpt-5-mini
|
|
77
|
+
output_type: SystemInfoResult
|
|
78
|
+
system_prompt:
|
|
79
|
+
- |
|
|
80
|
+
You provide system information in a clear, formatted way.
|
|
81
|
+
Use the platform_info, cpu_count, and memory_info tools
|
|
82
|
+
to gather system information.
|
|
83
|
+
- |
|
|
84
|
+
Format it using the template from the system_template resource.
|
|
85
|
+
|
|
86
|
+
file_explorer:
|
|
87
|
+
tools:
|
|
88
|
+
- type: import
|
|
89
|
+
import_path: "os.listdir"
|
|
90
|
+
description: "List directory contents"
|
|
91
|
+
- type: import
|
|
92
|
+
name: file_info
|
|
93
|
+
import_path: "os.stat"
|
|
94
|
+
description: "Get file information"
|
|
95
|
+
- type: import
|
|
96
|
+
import_path: "os.getcwd"
|
|
97
|
+
name: current_dir
|
|
98
|
+
description: "Get current working directory"
|
|
99
|
+
model: openai:gpt-5-mini
|
|
100
|
+
output_type: FileInfoResult
|
|
101
|
+
system_prompt:
|
|
102
|
+
- |
|
|
103
|
+
You help users explore their file system.
|
|
104
|
+
Available tools:
|
|
105
|
+
- list_dir: List contents of current directory
|
|
106
|
+
- file_info: Get file information
|
|
107
|
+
- current_dir: Get current working directory
|
|
108
|
+
|
|
109
|
+
Use these tools to help users explore files.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# yaml-language-server: $schema=https://raw.githubusercontent.com/phil65/agentpool/refs/heads/main/schema/config-schema.json
|
|
2
|
+
agents:
|
|
3
|
+
simple_agent:
|
|
4
|
+
description: "Basic agent with one tool to open webbrowsers."
|
|
5
|
+
model: openai:gpt-5-mini
|
|
6
|
+
tools:
|
|
7
|
+
- type: import
|
|
8
|
+
import_path: webbrowser.open
|
|
9
|
+
description: "Open URL in browser"
|
|
10
|
+
system_prompt: "You are a helpful assistant."
|
|
11
|
+
simple_agent_2:
|
|
12
|
+
type: native
|
|
13
|
+
model: openai:gpt-5-mini
|
|
14
|
+
system_prompt: "You are a helpful assistant."
|
|
15
|
+
simple_agent_3:
|
|
16
|
+
type: native
|
|
17
|
+
model: openai:gpt-5-mini
|
|
18
|
+
system_prompt: "You are a helpful assistant."
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# yaml-language-server: $schema=https://raw.githubusercontent.com/phil65/agentpool/refs/heads/main/schema/config-schema.json
|
|
2
|
+
#
|
|
3
|
+
# Test configuration for AG-UI agent.
|
|
4
|
+
#
|
|
5
|
+
# Usage:
|
|
6
|
+
# from agentpool import AgentPool
|
|
7
|
+
# async with AgentPool("src/agentpool/config_resources/agui_test.yml") as pool:
|
|
8
|
+
# agent = pool.get_agent("test_agui")
|
|
9
|
+
# result = await agent.run("Hello!")
|
|
10
|
+
|
|
11
|
+
agents:
|
|
12
|
+
test_agui:
|
|
13
|
+
type: agui
|
|
14
|
+
endpoint: http://127.0.0.1:8765/agent/run
|
|
15
|
+
description: "AG-UI test client with auto-started server"
|
|
16
|
+
startup_command: "uv run python tests/test_server_agui.py --port 8765 --with-tools"
|
|
17
|
+
startup_delay: 3.0
|
|
18
|
+
timeout: 60.0
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# yaml-language-server: $schema=https://raw.githubusercontent.com/phil65/agentpool/refs/heads/main/schema/config-schema.json
|
|
2
|
+
# Default ACP assistant configuration
|
|
3
|
+
# Used when starting ACP server without explicit config file
|
|
4
|
+
|
|
5
|
+
agents:
|
|
6
|
+
claude:
|
|
7
|
+
type: claude_code
|
|
8
|
+
display_name: "AI Assistant"
|
|
9
|
+
builtin_tools: []
|
|
10
|
+
description: "Claude code agent with enhanced tools"
|
|
11
|
+
toolsets:
|
|
12
|
+
- type: execution
|
|
13
|
+
- type: file_access
|
|
14
|
+
- type: code
|
|
15
|
+
- type: search
|
|
16
|
+
- type: plan
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: data-scientist
|
|
3
|
+
description: Data analysis expert for SQL queries, BigQuery operations, and data insights. Use proactively for data analysis tasks and queries.
|
|
4
|
+
tools: Bash, Read, Write
|
|
5
|
+
model: sonnet
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
You are a data scientist specializing in SQL and BigQuery analysis.
|
|
9
|
+
|
|
10
|
+
When invoked:
|
|
11
|
+
1. Understand the data analysis requirement
|
|
12
|
+
2. Write efficient SQL queries
|
|
13
|
+
3. Use BigQuery command line tools (bq) when appropriate
|
|
14
|
+
4. Analyze and summarize results
|
|
15
|
+
5. Present findings clearly
|
|
16
|
+
|
|
17
|
+
Key practices:
|
|
18
|
+
- Write optimized SQL queries with proper filters
|
|
19
|
+
- Use appropriate aggregations and joins
|
|
20
|
+
- Include comments explaining complex logic
|
|
21
|
+
- Format results for readability
|
|
22
|
+
- Provide data-driven recommendations
|
|
23
|
+
|
|
24
|
+
For each analysis:
|
|
25
|
+
- Explain the query approach
|
|
26
|
+
- Document any assumptions
|
|
27
|
+
- Highlight key findings
|
|
28
|
+
- Suggest next steps based on data
|
|
29
|
+
|
|
30
|
+
Always ensure queries are efficient and cost-effective.
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# yaml-language-server: $schema=https://raw.githubusercontent.com/phil65/agentpool/refs/heads/main/schema/config-schema.json
|
|
2
|
+
agents:
|
|
3
|
+
# ACP-enabled agent with terminal and file access
|
|
4
|
+
claude:
|
|
5
|
+
type: acp
|
|
6
|
+
provider: claude
|
|
7
|
+
display_name: "Claude Code"
|
|
8
|
+
description: "Claude Code through ACP"
|
|
9
|
+
env: # override to make sure subscription is used
|
|
10
|
+
ANTHROPIC_API_KEY: ""
|
|
11
|
+
|
|
12
|
+
toolsets:
|
|
13
|
+
- type: code
|
|
14
|
+
- type: subagent
|
|
15
|
+
codex:
|
|
16
|
+
type: acp
|
|
17
|
+
provider: codex
|
|
18
|
+
display_name: "Codex"
|
|
19
|
+
description: "Codex Code through ACP"
|
|
20
|
+
# opencode:
|
|
21
|
+
# type: acp
|
|
22
|
+
# provider: opencode
|
|
23
|
+
# display_name: "OpenCode"
|
|
24
|
+
# description: "OpenCode through ACP"
|
|
25
|
+
# goose:
|
|
26
|
+
# type: acp
|
|
27
|
+
# provider: goose
|
|
28
|
+
# display_name: "Goose"
|
|
29
|
+
# description: "Block's Goose agent through ACP"
|
|
30
|
+
# fast-agent:
|
|
31
|
+
# type: acp
|
|
32
|
+
# provider: fast-agent
|
|
33
|
+
# display_name: "Fast Agent"
|
|
34
|
+
# description: "fast-agent through ACP"
|
|
35
|
+
# model: openai.gpt-4o
|
|
36
|
+
# amp:
|
|
37
|
+
# type: acp
|
|
38
|
+
# provider: amp
|
|
39
|
+
# display_name: "Amp (AmpCode)"
|
|
40
|
+
# description: "Open-source ACP adapter for Amp CLI through ACP"
|
|
41
|
+
# auggie:
|
|
42
|
+
# type: acp
|
|
43
|
+
# provider: auggie
|
|
44
|
+
# display_name: "Auggie (Augment Code)"
|
|
45
|
+
# description: "Augment Code's AI agent through ACP"
|
|
46
|
+
# kimi:
|
|
47
|
+
# type: acp
|
|
48
|
+
# provider: kimi
|
|
49
|
+
# display_name: "Kimi CLI"
|
|
50
|
+
# description: "Moonshot AI's Kimi agent through ACP"
|
|
51
|
+
# stakpak:
|
|
52
|
+
# type: acp
|
|
53
|
+
# provider: stakpak
|
|
54
|
+
# display_name: "Stakpak Agent"
|
|
55
|
+
# description: "Terminal-native DevOps Agent through ACP"
|
|
56
|
+
|
|
57
|
+
# cagent:
|
|
58
|
+
# type: acp
|
|
59
|
+
# provider: cagent
|
|
60
|
+
# display_name: "Docker cagent"
|
|
61
|
+
# description: "Docker's Agent Builder and Runtime through ACP"
|
|
62
|
+
# vtcode:
|
|
63
|
+
# type: acp
|
|
64
|
+
# provider: vtcode
|
|
65
|
+
# display_name: "VT Code"
|
|
66
|
+
# description: "Rust-based semantic coding agent through ACP"
|
|
67
|
+
# openhands:
|
|
68
|
+
# type: acp
|
|
69
|
+
# provider: openhands
|
|
70
|
+
# display_name: "OpenHands"
|
|
71
|
+
# description: "OpenHands (formerly OpenDevin) through ACP"
|
|
72
|
+
# gemini:
|
|
73
|
+
# type: acp
|
|
74
|
+
# provider: gemini
|
|
75
|
+
# display_name: "Gemini"
|
|
76
|
+
# description: "Gemini Code through ACP"
|
|
77
|
+
# # Note: --experimental-acp flag appears non-functional as of v0.19.3
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Reviews code for quality and best practices
|
|
3
|
+
mode: subagent
|
|
4
|
+
model: anthropic/claude-sonnet-4-20250514
|
|
5
|
+
temperature: 0.1
|
|
6
|
+
tools:
|
|
7
|
+
write: false
|
|
8
|
+
edit: false
|
|
9
|
+
bash: false
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
You are in code review mode. Focus on:
|
|
13
|
+
|
|
14
|
+
- Code quality and best practices
|
|
15
|
+
- Potential bugs and edge cases
|
|
16
|
+
- Performance implications
|
|
17
|
+
- Security considerations
|
|
18
|
+
|
|
19
|
+
Provide constructive feedback without making direct changes.
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# yaml-language-server: $schema=https://raw.githubusercontent.com/phil65/agentpool/refs/heads/main/schema/config-schema.json
|
|
2
|
+
#
|
|
3
|
+
# Test configuration for TTS synchronization modes.
|
|
4
|
+
# Each agent demonstrates a different TTS mode.
|
|
5
|
+
#
|
|
6
|
+
# Usage:
|
|
7
|
+
# uv run agentpool chat --config src/agentpool/config_resources/tts_test_agents.yml --agent tts_sync_sentence
|
|
8
|
+
#
|
|
9
|
+
# Modes:
|
|
10
|
+
# - sync_sentence: Block per sentence (audio syncs with text output)
|
|
11
|
+
# - sync_run: Block at run end (fast streaming, wait for audio before next run)
|
|
12
|
+
# - async_queue: Fully async, multiple runs queue up
|
|
13
|
+
# - async_cancel: Fully async, new run cancels previous audio
|
|
14
|
+
|
|
15
|
+
agents:
|
|
16
|
+
tts_sync_sentence:
|
|
17
|
+
type: native
|
|
18
|
+
description: "TTS with sync_sentence mode - blocks per sentence, most synchronized"
|
|
19
|
+
model: openai:gpt-4.1-nano
|
|
20
|
+
system_prompt:
|
|
21
|
+
- |
|
|
22
|
+
You are a storyteller. Tell engaging short stories in 3-4 sentences.
|
|
23
|
+
Speak naturally with clear sentence breaks.
|
|
24
|
+
event_handlers:
|
|
25
|
+
- type: builtin
|
|
26
|
+
handler: simple
|
|
27
|
+
- type: tts-openai
|
|
28
|
+
voice: alloy
|
|
29
|
+
mode: sync_sentence
|
|
30
|
+
min_text_length: 15
|
|
31
|
+
|
|
32
|
+
tts_sync_run:
|
|
33
|
+
type: native
|
|
34
|
+
description: "TTS with sync_run mode - fast streaming, waits at run end"
|
|
35
|
+
model: openai:gpt-4.1-nano
|
|
36
|
+
system_prompt:
|
|
37
|
+
- |
|
|
38
|
+
You are a storyteller. Tell engaging short stories in 3-4 sentences.
|
|
39
|
+
Speak naturally with clear sentence breaks.
|
|
40
|
+
event_handlers:
|
|
41
|
+
- type: builtin
|
|
42
|
+
handler: simple
|
|
43
|
+
- type: tts-openai
|
|
44
|
+
voice: echo
|
|
45
|
+
mode: sync_run
|
|
46
|
+
min_text_length: 15
|
|
47
|
+
|
|
48
|
+
tts_async_queue:
|
|
49
|
+
type: native
|
|
50
|
+
description: "TTS with async_queue mode - fully async, runs queue up"
|
|
51
|
+
model: openai:gpt-4.1-nano
|
|
52
|
+
system_prompt:
|
|
53
|
+
- |
|
|
54
|
+
You are a storyteller. Tell engaging short stories in 3-4 sentences.
|
|
55
|
+
Speak naturally with clear sentence breaks.
|
|
56
|
+
event_handlers:
|
|
57
|
+
- type: builtin
|
|
58
|
+
handler: simple
|
|
59
|
+
- type: tts-openai
|
|
60
|
+
voice: fable
|
|
61
|
+
mode: async_queue
|
|
62
|
+
min_text_length: 15
|
|
63
|
+
|
|
64
|
+
tts_async_cancel:
|
|
65
|
+
type: native
|
|
66
|
+
description: "TTS with async_cancel mode - fully async, new run cancels previous"
|
|
67
|
+
model: openai:gpt-4.1-nano
|
|
68
|
+
system_prompt:
|
|
69
|
+
- |
|
|
70
|
+
You are a storyteller. Tell engaging short stories in 3-4 sentences.
|
|
71
|
+
Speak naturally with clear sentence breaks.
|
|
72
|
+
event_handlers:
|
|
73
|
+
- type: builtin
|
|
74
|
+
handler: simple
|
|
75
|
+
- type: tts-openai
|
|
76
|
+
voice: nova
|
|
77
|
+
mode: async_cancel
|
|
78
|
+
min_text_length: 15
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"""Agent delegation and collaboration functionality."""
|
|
2
|
+
|
|
3
|
+
from agentpool.delegation.pool import AgentPool
|
|
4
|
+
from agentpool.delegation.base_team import BaseTeam
|
|
5
|
+
from agentpool.delegation.teamrun import TeamRun
|
|
6
|
+
from agentpool.delegation.team import Team
|
|
7
|
+
|
|
8
|
+
__all__ = ["AgentPool", "BaseTeam", "Team", "TeamRun"]
|