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,320 @@
|
|
|
1
|
+
"""Event emitter delegate for AgentContext with fluent API."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import TYPE_CHECKING, Any, Literal
|
|
6
|
+
|
|
7
|
+
from agentpool.agents.events import (
|
|
8
|
+
CustomEvent,
|
|
9
|
+
LocationContentItem,
|
|
10
|
+
PlanUpdateEvent,
|
|
11
|
+
ToolCallProgressEvent,
|
|
12
|
+
ToolCallStartEvent,
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
if TYPE_CHECKING:
|
|
17
|
+
from agentpool.agents.context import AgentContext
|
|
18
|
+
from agentpool.agents.events import RichAgentStreamEvent, ToolCallContentItem
|
|
19
|
+
from agentpool.resource_providers.plan_provider import PlanEntry
|
|
20
|
+
from agentpool.tools.base import ToolKind
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class StreamEventEmitter:
|
|
24
|
+
"""Event emitter delegate that automatically injects context.
|
|
25
|
+
|
|
26
|
+
Provides a fluent API for emitting progress events with context
|
|
27
|
+
(tool_call_id, etc.) automatically injected.
|
|
28
|
+
|
|
29
|
+
UI content vs agent return values: Emit `tool_call_progress` with content
|
|
30
|
+
items for UI display, return raw data for the agent. See `events.py` for
|
|
31
|
+
the full pattern (aligned with ACP protocol).
|
|
32
|
+
"""
|
|
33
|
+
|
|
34
|
+
def __init__(self, context: AgentContext) -> None:
|
|
35
|
+
"""Initialize event emitter with agent context.
|
|
36
|
+
|
|
37
|
+
Args:
|
|
38
|
+
context: Agent context to extract metadata from
|
|
39
|
+
"""
|
|
40
|
+
self._context = context
|
|
41
|
+
|
|
42
|
+
# =========================================================================
|
|
43
|
+
# Core methods - the essential API
|
|
44
|
+
# =========================================================================
|
|
45
|
+
|
|
46
|
+
async def tool_call_start(
|
|
47
|
+
self,
|
|
48
|
+
title: str,
|
|
49
|
+
kind: ToolKind = "other",
|
|
50
|
+
content: list[ToolCallContentItem] | None = None,
|
|
51
|
+
locations: list[str | LocationContentItem] | None = None,
|
|
52
|
+
) -> None:
|
|
53
|
+
"""Emit tool call start event with rich ACP metadata.
|
|
54
|
+
|
|
55
|
+
Args:
|
|
56
|
+
title: Human-readable title describing what the tool is doing
|
|
57
|
+
kind: Tool kind (read, edit, delete, move, search, execute, think, fetch, other)
|
|
58
|
+
content: Content produced by the tool call (terminals, diffs, text)
|
|
59
|
+
locations: File paths or LocationContentItem objects affected by this tool call
|
|
60
|
+
"""
|
|
61
|
+
location_items = [
|
|
62
|
+
LocationContentItem(path=loc) if isinstance(loc, str) else loc
|
|
63
|
+
for loc in (locations or [])
|
|
64
|
+
]
|
|
65
|
+
event = ToolCallStartEvent(
|
|
66
|
+
tool_call_id=self._context.tool_call_id or "",
|
|
67
|
+
tool_name=self._context.tool_name or "",
|
|
68
|
+
title=title,
|
|
69
|
+
kind=kind,
|
|
70
|
+
content=content or [],
|
|
71
|
+
locations=location_items,
|
|
72
|
+
raw_input=self._context.tool_input.copy(),
|
|
73
|
+
)
|
|
74
|
+
await self._emit(event)
|
|
75
|
+
|
|
76
|
+
async def tool_call_progress(
|
|
77
|
+
self,
|
|
78
|
+
title: str,
|
|
79
|
+
*,
|
|
80
|
+
status: Literal["pending", "in_progress", "completed", "failed"] = "in_progress",
|
|
81
|
+
items: list[ToolCallContentItem] | None = None,
|
|
82
|
+
replace_content: bool = False,
|
|
83
|
+
) -> None:
|
|
84
|
+
"""Emit a progress event.
|
|
85
|
+
|
|
86
|
+
Args:
|
|
87
|
+
title: Human-readable title describing the operation
|
|
88
|
+
status: Execution status
|
|
89
|
+
items: Rich content items (terminals, diffs, locations, text)
|
|
90
|
+
replace_content: If True, items replace existing content instead of appending
|
|
91
|
+
"""
|
|
92
|
+
event = ToolCallProgressEvent(
|
|
93
|
+
tool_call_id=self._context.tool_call_id or "",
|
|
94
|
+
tool_name=self._context.tool_name,
|
|
95
|
+
status=status,
|
|
96
|
+
title=title,
|
|
97
|
+
items=items or [],
|
|
98
|
+
replace_content=replace_content,
|
|
99
|
+
)
|
|
100
|
+
await self._emit(event)
|
|
101
|
+
|
|
102
|
+
async def progress(self, progress: float, total: float | None, message: str) -> None:
|
|
103
|
+
"""Emit numeric progress event (for MCP progress notifications).
|
|
104
|
+
|
|
105
|
+
Args:
|
|
106
|
+
progress: Current progress value
|
|
107
|
+
total: Total progress value
|
|
108
|
+
message: Progress message
|
|
109
|
+
"""
|
|
110
|
+
await self._context.report_progress(progress, total, message)
|
|
111
|
+
|
|
112
|
+
async def emit_event(self, event: RichAgentStreamEvent[Any]) -> None:
|
|
113
|
+
"""Emit a typed event into the agent's event stream.
|
|
114
|
+
|
|
115
|
+
This is the escape hatch for emitting any event type directly.
|
|
116
|
+
|
|
117
|
+
Args:
|
|
118
|
+
event: The event instance (PlanUpdateEvent, ToolCallProgressEvent, etc.)
|
|
119
|
+
"""
|
|
120
|
+
await self._emit(event)
|
|
121
|
+
|
|
122
|
+
# =========================================================================
|
|
123
|
+
# Convenience methods - thin wrappers for common patterns
|
|
124
|
+
# =========================================================================
|
|
125
|
+
|
|
126
|
+
async def file_operation(
|
|
127
|
+
self,
|
|
128
|
+
operation: Literal["read", "write", "delete", "list", "edit"],
|
|
129
|
+
path: str,
|
|
130
|
+
success: bool,
|
|
131
|
+
error: str | None = None,
|
|
132
|
+
) -> None:
|
|
133
|
+
"""Emit file operation event.
|
|
134
|
+
|
|
135
|
+
Args:
|
|
136
|
+
operation: The filesystem operation performed
|
|
137
|
+
path: The file/directory path that was operated on
|
|
138
|
+
success: Whether the operation completed successfully
|
|
139
|
+
error: Error message if operation failed
|
|
140
|
+
"""
|
|
141
|
+
event = ToolCallProgressEvent.file_operation(
|
|
142
|
+
tool_call_id=self._context.tool_call_id or "",
|
|
143
|
+
tool_name=self._context.tool_name,
|
|
144
|
+
operation=operation,
|
|
145
|
+
path=path,
|
|
146
|
+
success=success,
|
|
147
|
+
error=error,
|
|
148
|
+
)
|
|
149
|
+
await self._emit(event)
|
|
150
|
+
|
|
151
|
+
async def file_edit_progress(
|
|
152
|
+
self,
|
|
153
|
+
path: str,
|
|
154
|
+
old_text: str,
|
|
155
|
+
new_text: str,
|
|
156
|
+
status: Literal["in_progress", "completed", "failed"],
|
|
157
|
+
) -> None:
|
|
158
|
+
"""Emit file edit progress event with diff information.
|
|
159
|
+
|
|
160
|
+
Args:
|
|
161
|
+
path: The file path being edited
|
|
162
|
+
old_text: Original file content
|
|
163
|
+
new_text: New file content
|
|
164
|
+
status: Current status of the edit operation
|
|
165
|
+
"""
|
|
166
|
+
event = ToolCallProgressEvent.file_edit(
|
|
167
|
+
tool_call_id=self._context.tool_call_id or "",
|
|
168
|
+
tool_name=self._context.tool_name,
|
|
169
|
+
path=path,
|
|
170
|
+
old_text=old_text,
|
|
171
|
+
new_text=new_text,
|
|
172
|
+
status=status,
|
|
173
|
+
)
|
|
174
|
+
await self._emit(event)
|
|
175
|
+
|
|
176
|
+
async def process_started(
|
|
177
|
+
self,
|
|
178
|
+
process_id: str,
|
|
179
|
+
command: str,
|
|
180
|
+
success: bool = True,
|
|
181
|
+
error: str | None = None,
|
|
182
|
+
) -> None:
|
|
183
|
+
"""Emit process start event.
|
|
184
|
+
|
|
185
|
+
Args:
|
|
186
|
+
process_id: Unique process identifier (terminal_id for ACP)
|
|
187
|
+
command: Command being executed
|
|
188
|
+
success: Whether the process started successfully
|
|
189
|
+
error: Error message if start failed
|
|
190
|
+
"""
|
|
191
|
+
event = ToolCallProgressEvent.process_started(
|
|
192
|
+
tool_call_id=self._context.tool_call_id or "",
|
|
193
|
+
tool_name=self._context.tool_name,
|
|
194
|
+
process_id=process_id,
|
|
195
|
+
command=command,
|
|
196
|
+
success=success,
|
|
197
|
+
error=error,
|
|
198
|
+
)
|
|
199
|
+
await self._emit(event)
|
|
200
|
+
|
|
201
|
+
async def process_output(self, process_id: str, output: str) -> None:
|
|
202
|
+
"""Emit process output event.
|
|
203
|
+
|
|
204
|
+
Args:
|
|
205
|
+
process_id: Process identifier
|
|
206
|
+
output: Process output
|
|
207
|
+
"""
|
|
208
|
+
event = ToolCallProgressEvent.process_output(
|
|
209
|
+
tool_call_id=self._context.tool_call_id or "",
|
|
210
|
+
tool_name=self._context.tool_name,
|
|
211
|
+
process_id=process_id,
|
|
212
|
+
output=output,
|
|
213
|
+
)
|
|
214
|
+
await self._emit(event)
|
|
215
|
+
|
|
216
|
+
async def process_exit(
|
|
217
|
+
self,
|
|
218
|
+
process_id: str,
|
|
219
|
+
exit_code: int,
|
|
220
|
+
final_output: str | None = None,
|
|
221
|
+
) -> None:
|
|
222
|
+
"""Emit process exit event.
|
|
223
|
+
|
|
224
|
+
Args:
|
|
225
|
+
process_id: Process identifier
|
|
226
|
+
exit_code: Process exit code
|
|
227
|
+
final_output: Final process output
|
|
228
|
+
"""
|
|
229
|
+
event = ToolCallProgressEvent.process_exit(
|
|
230
|
+
tool_call_id=self._context.tool_call_id or "",
|
|
231
|
+
tool_name=self._context.tool_name,
|
|
232
|
+
process_id=process_id,
|
|
233
|
+
exit_code=exit_code,
|
|
234
|
+
final_output=final_output,
|
|
235
|
+
)
|
|
236
|
+
await self._emit(event)
|
|
237
|
+
|
|
238
|
+
async def process_killed(
|
|
239
|
+
self,
|
|
240
|
+
process_id: str,
|
|
241
|
+
success: bool = True,
|
|
242
|
+
error: str | None = None,
|
|
243
|
+
) -> None:
|
|
244
|
+
"""Emit process kill event.
|
|
245
|
+
|
|
246
|
+
Args:
|
|
247
|
+
process_id: Process identifier
|
|
248
|
+
success: Whether the process was successfully killed
|
|
249
|
+
error: Error message if kill failed
|
|
250
|
+
"""
|
|
251
|
+
event = ToolCallProgressEvent.process_killed(
|
|
252
|
+
tool_call_id=self._context.tool_call_id or "",
|
|
253
|
+
tool_name=self._context.tool_name,
|
|
254
|
+
process_id=process_id,
|
|
255
|
+
success=success,
|
|
256
|
+
error=error,
|
|
257
|
+
)
|
|
258
|
+
await self._emit(event)
|
|
259
|
+
|
|
260
|
+
async def process_released(
|
|
261
|
+
self,
|
|
262
|
+
process_id: str,
|
|
263
|
+
success: bool = True,
|
|
264
|
+
error: str | None = None,
|
|
265
|
+
) -> None:
|
|
266
|
+
"""Emit process release event.
|
|
267
|
+
|
|
268
|
+
Args:
|
|
269
|
+
process_id: Process identifier
|
|
270
|
+
success: Whether resources were successfully released
|
|
271
|
+
error: Error message if release failed
|
|
272
|
+
"""
|
|
273
|
+
event = ToolCallProgressEvent.process_released(
|
|
274
|
+
tool_call_id=self._context.tool_call_id or "",
|
|
275
|
+
tool_name=self._context.tool_name,
|
|
276
|
+
process_id=process_id,
|
|
277
|
+
success=success,
|
|
278
|
+
error=error,
|
|
279
|
+
)
|
|
280
|
+
await self._emit(event)
|
|
281
|
+
|
|
282
|
+
async def plan_updated(self, entries: list[PlanEntry]) -> None:
|
|
283
|
+
"""Emit plan update event.
|
|
284
|
+
|
|
285
|
+
Args:
|
|
286
|
+
entries: Current plan entries
|
|
287
|
+
"""
|
|
288
|
+
event = PlanUpdateEvent(
|
|
289
|
+
entries=entries.copy(),
|
|
290
|
+
tool_call_id=self._context.tool_call_id,
|
|
291
|
+
)
|
|
292
|
+
await self._emit(event)
|
|
293
|
+
|
|
294
|
+
async def custom(
|
|
295
|
+
self,
|
|
296
|
+
event_data: Any,
|
|
297
|
+
event_type: str = "custom",
|
|
298
|
+
source: str | None = None,
|
|
299
|
+
) -> None:
|
|
300
|
+
"""Emit custom event.
|
|
301
|
+
|
|
302
|
+
Args:
|
|
303
|
+
event_data: The custom event data of any type
|
|
304
|
+
event_type: Type identifier for the custom event
|
|
305
|
+
source: Optional source identifier
|
|
306
|
+
"""
|
|
307
|
+
event = CustomEvent(
|
|
308
|
+
event_data=event_data,
|
|
309
|
+
event_type=event_type,
|
|
310
|
+
source=source or self._context.tool_name,
|
|
311
|
+
)
|
|
312
|
+
await self._emit(event)
|
|
313
|
+
|
|
314
|
+
# =========================================================================
|
|
315
|
+
# Private helpers
|
|
316
|
+
# =========================================================================
|
|
317
|
+
|
|
318
|
+
async def _emit(self, event: RichAgentStreamEvent[Any]) -> None:
|
|
319
|
+
"""Internal method to emit events to the agent's queue."""
|
|
320
|
+
await self._context.agent._event_queue.put(event)
|