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
acp/schema/base.py
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"""Base class for generated models."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Any
|
|
6
|
+
|
|
7
|
+
from pydantic import BaseModel, ConfigDict
|
|
8
|
+
from pydantic.alias_generators import to_camel
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def convert(text: str) -> str:
|
|
12
|
+
if text == "field_meta":
|
|
13
|
+
return "_meta"
|
|
14
|
+
return to_camel(text)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class Schema(BaseModel):
|
|
18
|
+
"""Base class for generated models."""
|
|
19
|
+
|
|
20
|
+
model_config = ConfigDict(
|
|
21
|
+
populate_by_name=True,
|
|
22
|
+
alias_generator=convert,
|
|
23
|
+
use_attribute_docstrings=True,
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class AnnotatedObject(Schema):
|
|
28
|
+
"""Base class for generated models."""
|
|
29
|
+
|
|
30
|
+
field_meta: dict[str, Any] | None = None
|
|
31
|
+
"""Extension point for implementations."""
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class Request(AnnotatedObject):
|
|
35
|
+
"""Base request model."""
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
class Response(AnnotatedObject):
|
|
39
|
+
"""Base request model."""
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
"""Capability schema."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Self
|
|
6
|
+
|
|
7
|
+
from pydantic import Field
|
|
8
|
+
|
|
9
|
+
from acp.schema.base import AnnotatedObject
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class FileSystemCapability(AnnotatedObject):
|
|
13
|
+
"""File system capabilities that a client may support.
|
|
14
|
+
|
|
15
|
+
See protocol docs: [FileSystem](https://agentclientprotocol.com/protocol/initialization#filesystem)
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
read_text_file: bool | None = False
|
|
19
|
+
"""Whether the Client supports `fs/read_text_file` requests."""
|
|
20
|
+
|
|
21
|
+
write_text_file: bool | None = False
|
|
22
|
+
"""Whether the Client supports `fs/write_text_file` requests."""
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class ClientCapabilities(AnnotatedObject):
|
|
26
|
+
"""Capabilities supported by the client.
|
|
27
|
+
|
|
28
|
+
Advertised during initialization to inform the agent about
|
|
29
|
+
available features and methods.
|
|
30
|
+
|
|
31
|
+
See protocol docs: [Client Capabilities](https://agentclientprotocol.com/protocol/initialization#client-capabilities)
|
|
32
|
+
"""
|
|
33
|
+
|
|
34
|
+
fs: FileSystemCapability | None = Field(default_factory=FileSystemCapability)
|
|
35
|
+
"""File system capabilities supported by the client.
|
|
36
|
+
|
|
37
|
+
Determines which file operations the agent can request.
|
|
38
|
+
"""
|
|
39
|
+
|
|
40
|
+
terminal: bool | None = False
|
|
41
|
+
"""Whether the Client support all `terminal/*` methods."""
|
|
42
|
+
|
|
43
|
+
@classmethod
|
|
44
|
+
def create(
|
|
45
|
+
cls,
|
|
46
|
+
read_text_file: bool | None = False,
|
|
47
|
+
write_text_file: bool | None = False,
|
|
48
|
+
terminal: bool | None = False,
|
|
49
|
+
) -> Self:
|
|
50
|
+
"""Create a new instance of ClientCapabilities.
|
|
51
|
+
|
|
52
|
+
Args:
|
|
53
|
+
read_text_file: Whether the Client supports `fs/read_text_file` requests.
|
|
54
|
+
write_text_file: Whether the Client supports `fs/write_text_file` requests.
|
|
55
|
+
terminal: Whether the Client supports all `terminal/*` methods.
|
|
56
|
+
|
|
57
|
+
Returns:
|
|
58
|
+
A new instance of ClientCapabilities.
|
|
59
|
+
"""
|
|
60
|
+
fs = FileSystemCapability(read_text_file=read_text_file, write_text_file=write_text_file)
|
|
61
|
+
return cls(fs=fs, terminal=terminal)
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
class PromptCapabilities(AnnotatedObject):
|
|
65
|
+
"""Prompt capabilities supported by the agent in `session/prompt` requests.
|
|
66
|
+
|
|
67
|
+
Baseline agent functionality requires support for [`ContentBlock::Text`]
|
|
68
|
+
and [`ContentBlock::ResourceContentBlock`] in prompt requests.
|
|
69
|
+
|
|
70
|
+
Other variants must be explicitly opted in to.
|
|
71
|
+
Capabilities for different types of content in prompt requests.
|
|
72
|
+
|
|
73
|
+
Indicates which content types beyond the baseline (text and resource links)
|
|
74
|
+
the agent can process.
|
|
75
|
+
|
|
76
|
+
See protocol docs: [Prompt Capabilities](https://agentclientprotocol.com/protocol/initialization#prompt-capabilities)
|
|
77
|
+
"""
|
|
78
|
+
|
|
79
|
+
audio: bool | None = False
|
|
80
|
+
"""Agent supports [`ContentBlock::Audio`]."""
|
|
81
|
+
|
|
82
|
+
embedded_context: bool | None = False
|
|
83
|
+
"""Agent supports embedded context in `session/prompt` requests.
|
|
84
|
+
|
|
85
|
+
When enabled, the Client is allowed to include [`ContentBlock::Resource`]
|
|
86
|
+
in prompt requests for pieces of context that are referenced in the message.
|
|
87
|
+
"""
|
|
88
|
+
|
|
89
|
+
image: bool | None = False
|
|
90
|
+
"""Agent supports [`ContentBlock::Image`]."""
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
class McpCapabilities(AnnotatedObject):
|
|
94
|
+
"""MCP capabilities supported by the agent."""
|
|
95
|
+
|
|
96
|
+
http: bool | None = False
|
|
97
|
+
"""Agent supports [`McpServer::Http`]."""
|
|
98
|
+
|
|
99
|
+
sse: bool | None = False
|
|
100
|
+
"""Agent supports [`McpServer::Sse`]."""
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
class SessionListCapabilities(AnnotatedObject):
|
|
104
|
+
"""Capabilities for the `session/list` method.
|
|
105
|
+
|
|
106
|
+
**UNSTABLE**: This capability is not part of the spec yet,
|
|
107
|
+
and may be removed or changed at any point.
|
|
108
|
+
|
|
109
|
+
By supplying `{}` it means that the agent supports listing of sessions.
|
|
110
|
+
Further capabilities can be added in the future for other means of
|
|
111
|
+
filtering or searching the list.
|
|
112
|
+
"""
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
class SessionForkCapabilities(AnnotatedObject):
|
|
116
|
+
"""Capabilities for the `session/fork` method.
|
|
117
|
+
|
|
118
|
+
**UNSTABLE**: This capability is not part of the spec yet,
|
|
119
|
+
and may be removed or changed at any point.
|
|
120
|
+
|
|
121
|
+
By supplying `{}` it means that the agent supports forking of sessions.
|
|
122
|
+
"""
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
class SessionResumeCapabilities(AnnotatedObject):
|
|
126
|
+
"""Capabilities for the `session/resume` method.
|
|
127
|
+
|
|
128
|
+
**UNSTABLE**: This capability is not part of the spec yet,
|
|
129
|
+
and may be removed or changed at any point.
|
|
130
|
+
|
|
131
|
+
By supplying `{}` it means that the agent supports resuming of sessions.
|
|
132
|
+
"""
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
class SessionCapabilities(AnnotatedObject):
|
|
136
|
+
"""Session capabilities supported by the agent.
|
|
137
|
+
|
|
138
|
+
As a baseline, all Agents **MUST** support `session/new`, `session/prompt`,
|
|
139
|
+
`session/cancel`, and `session/update`.
|
|
140
|
+
|
|
141
|
+
Optionally, they **MAY** support other session methods and notifications
|
|
142
|
+
by specifying additional capabilities.
|
|
143
|
+
|
|
144
|
+
Note: `session/load` is still handled by the top-level `load_session` capability.
|
|
145
|
+
This will be unified in future versions of the protocol.
|
|
146
|
+
|
|
147
|
+
See protocol docs: [Session Capabilities](https://agentclientprotocol.com/protocol/initialization#session-capabilities)
|
|
148
|
+
"""
|
|
149
|
+
|
|
150
|
+
fork: SessionForkCapabilities | None = None
|
|
151
|
+
"""**UNSTABLE**
|
|
152
|
+
|
|
153
|
+
This capability is not part of the spec yet, and may be removed or changed at any point.
|
|
154
|
+
|
|
155
|
+
Whether the agent supports `session/fork`.
|
|
156
|
+
"""
|
|
157
|
+
|
|
158
|
+
list: SessionListCapabilities | None = None
|
|
159
|
+
"""**UNSTABLE**
|
|
160
|
+
|
|
161
|
+
This capability is not part of the spec yet, and may be removed or changed at any point.
|
|
162
|
+
|
|
163
|
+
Whether the agent supports `session/list`.
|
|
164
|
+
"""
|
|
165
|
+
|
|
166
|
+
resume: SessionResumeCapabilities | None = None
|
|
167
|
+
"""**UNSTABLE**
|
|
168
|
+
|
|
169
|
+
This capability is not part of the spec yet, and may be removed or changed at any point.
|
|
170
|
+
|
|
171
|
+
Whether the agent supports `session/resume`.
|
|
172
|
+
"""
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
class AgentCapabilities(AnnotatedObject):
|
|
176
|
+
"""Capabilities supported by the agent.
|
|
177
|
+
|
|
178
|
+
Advertised during initialization to inform the client about
|
|
179
|
+
available features and content types.
|
|
180
|
+
|
|
181
|
+
See protocol docs: [Agent Capabilities](https://agentclientprotocol.com/protocol/initialization#agent-capabilities)
|
|
182
|
+
"""
|
|
183
|
+
|
|
184
|
+
load_session: bool | None = False
|
|
185
|
+
"""Whether the agent supports `session/load`."""
|
|
186
|
+
|
|
187
|
+
mcp_capabilities: McpCapabilities | None = Field(default_factory=McpCapabilities)
|
|
188
|
+
"""MCP capabilities supported by the agent."""
|
|
189
|
+
|
|
190
|
+
prompt_capabilities: PromptCapabilities | None = Field(default_factory=PromptCapabilities)
|
|
191
|
+
"""Prompt capabilities supported by the agent."""
|
|
192
|
+
|
|
193
|
+
session_capabilities: SessionCapabilities | None = Field(default_factory=SessionCapabilities)
|
|
194
|
+
"""Session capabilities supported by the agent."""
|
|
195
|
+
|
|
196
|
+
@classmethod
|
|
197
|
+
def create(
|
|
198
|
+
cls,
|
|
199
|
+
load_session: bool | None = False,
|
|
200
|
+
http_mcp_servers: bool = False,
|
|
201
|
+
sse_mcp_servers: bool = False,
|
|
202
|
+
audio_prompts: bool = False,
|
|
203
|
+
embedded_context_prompts: bool = False,
|
|
204
|
+
image_prompts: bool = False,
|
|
205
|
+
list_sessions: bool = False,
|
|
206
|
+
) -> Self:
|
|
207
|
+
"""Create an instance of AgentCapabilities.
|
|
208
|
+
|
|
209
|
+
Args:
|
|
210
|
+
load_session: Whether the agent supports `session/load`.
|
|
211
|
+
http_mcp_servers: Whether the agent supports HTTP MCP servers.
|
|
212
|
+
sse_mcp_servers: Whether the agent supports SSE MCP servers.
|
|
213
|
+
audio_prompts: Whether the agent supports audio prompts.
|
|
214
|
+
embedded_context_prompts: Whether the agent supports embedded context prompts.
|
|
215
|
+
image_prompts: Whether the agent supports image prompts.
|
|
216
|
+
list_sessions: Whether the agent supports `session/list` (unstable).
|
|
217
|
+
"""
|
|
218
|
+
session_caps = SessionCapabilities(
|
|
219
|
+
list=SessionListCapabilities() if list_sessions else None,
|
|
220
|
+
)
|
|
221
|
+
return cls(
|
|
222
|
+
load_session=load_session,
|
|
223
|
+
mcp_capabilities=McpCapabilities(http=http_mcp_servers, sse=sse_mcp_servers),
|
|
224
|
+
prompt_capabilities=PromptCapabilities(
|
|
225
|
+
audio=audio_prompts,
|
|
226
|
+
embedded_context=embedded_context_prompts,
|
|
227
|
+
image=image_prompts,
|
|
228
|
+
),
|
|
229
|
+
session_capabilities=session_caps,
|
|
230
|
+
)
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
"""Client request schema definitions."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from collections.abc import Sequence # noqa: TC003
|
|
6
|
+
from typing import Any, Self
|
|
7
|
+
|
|
8
|
+
from pydantic import Field
|
|
9
|
+
|
|
10
|
+
from acp.schema.base import Request
|
|
11
|
+
from acp.schema.capabilities import ClientCapabilities, FileSystemCapability
|
|
12
|
+
from acp.schema.common import Implementation
|
|
13
|
+
from acp.schema.content_blocks import ContentBlock # noqa: TC001
|
|
14
|
+
from acp.schema.mcp import McpServer # noqa: TC001
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class CustomRequest(Request):
|
|
18
|
+
"""Request for custom/extension methods."""
|
|
19
|
+
|
|
20
|
+
method: str
|
|
21
|
+
"""The custom method name (without underscore prefix)."""
|
|
22
|
+
|
|
23
|
+
data: dict[str, Any]
|
|
24
|
+
"""The method parameters."""
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class NewSessionRequest(Request):
|
|
28
|
+
"""Request parameters for creating a new session.
|
|
29
|
+
|
|
30
|
+
See protocol docs: [Creating a Session](https://agentclientprotocol.com/protocol/session-setup#creating-a-session)
|
|
31
|
+
"""
|
|
32
|
+
|
|
33
|
+
cwd: str
|
|
34
|
+
"""The working directory for this session. Must be an absolute path."""
|
|
35
|
+
|
|
36
|
+
mcp_servers: Sequence[McpServer]
|
|
37
|
+
"""List of MCP (Model Context Protocol) servers the agent should connect to."""
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class LoadSessionRequest(Request):
|
|
41
|
+
"""Request parameters for loading an existing session.
|
|
42
|
+
|
|
43
|
+
Only available if the Agent supports the `loadSession` capability.
|
|
44
|
+
|
|
45
|
+
See protocol docs: [Loading Sessions](https://agentclientprotocol.com/protocol/session-setup#loading-sessions)
|
|
46
|
+
"""
|
|
47
|
+
|
|
48
|
+
cwd: str
|
|
49
|
+
"""The working directory for this session."""
|
|
50
|
+
|
|
51
|
+
mcp_servers: Sequence[McpServer]
|
|
52
|
+
"""List of MCP servers to connect to for this session."""
|
|
53
|
+
|
|
54
|
+
session_id: str
|
|
55
|
+
"""The ID of the session to load."""
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
class ListSessionsRequest(Request):
|
|
59
|
+
"""**UNSTABLE**: This capability is not part of the spec yet.
|
|
60
|
+
|
|
61
|
+
Request parameters for listing existing sessions.
|
|
62
|
+
|
|
63
|
+
Only available if the Agent supports the `listSessions` capability.
|
|
64
|
+
"""
|
|
65
|
+
|
|
66
|
+
cursor: str | None = None
|
|
67
|
+
"""Opaque cursor token from a previous response's nextCursor field for pagination."""
|
|
68
|
+
|
|
69
|
+
cwd: str | None = None
|
|
70
|
+
"""Filter sessions by working directory. Must be an absolute path."""
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
class ForkSessionRequest(Request):
|
|
74
|
+
"""**UNSTABLE**: This capability is not part of the spec yet.
|
|
75
|
+
|
|
76
|
+
Request parameters for forking an existing session.
|
|
77
|
+
|
|
78
|
+
Creates a new session based on the context of an existing one, allowing
|
|
79
|
+
operations like generating summaries without affecting the original session's history.
|
|
80
|
+
|
|
81
|
+
Only available if the Agent supports the `session.fork` capability.
|
|
82
|
+
"""
|
|
83
|
+
|
|
84
|
+
session_id: str
|
|
85
|
+
"""The ID of the session to fork."""
|
|
86
|
+
|
|
87
|
+
cwd: str
|
|
88
|
+
"""The working directory for the new session."""
|
|
89
|
+
|
|
90
|
+
mcp_servers: Sequence[McpServer] = Field(default_factory=list)
|
|
91
|
+
"""List of MCP servers to connect to for this session."""
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
class ResumeSessionRequest(Request):
|
|
95
|
+
"""**UNSTABLE**: This capability is not part of the spec yet.
|
|
96
|
+
|
|
97
|
+
Request parameters for resuming an existing session.
|
|
98
|
+
|
|
99
|
+
Resumes an existing session without returning previous messages (unlike `session/load`).
|
|
100
|
+
This is useful for agents that can resume sessions but don't implement full session loading.
|
|
101
|
+
|
|
102
|
+
Only available if the Agent supports the `session.resume` capability.
|
|
103
|
+
"""
|
|
104
|
+
|
|
105
|
+
cwd: str
|
|
106
|
+
"""The working directory for this session."""
|
|
107
|
+
|
|
108
|
+
mcp_servers: Sequence[McpServer] = Field(default_factory=list)
|
|
109
|
+
"""List of MCP servers to connect to for this session."""
|
|
110
|
+
|
|
111
|
+
session_id: str
|
|
112
|
+
"""The ID of the session to resume."""
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
class SetSessionModeRequest(Request):
|
|
116
|
+
"""Request parameters for setting a session mode."""
|
|
117
|
+
|
|
118
|
+
mode_id: str
|
|
119
|
+
"""The ID of the mode to set."""
|
|
120
|
+
|
|
121
|
+
session_id: str
|
|
122
|
+
"""The ID of the session to set the mode for."""
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
class PromptRequest(Request):
|
|
126
|
+
"""Request parameters for sending a user prompt to the agent.
|
|
127
|
+
|
|
128
|
+
Contains the user's message and any additional context.
|
|
129
|
+
|
|
130
|
+
See protocol docs: [User Message](https://agentclientprotocol.com/protocol/prompt-turn#1-user-message)
|
|
131
|
+
"""
|
|
132
|
+
|
|
133
|
+
prompt: Sequence[ContentBlock]
|
|
134
|
+
"""The blocks of content that compose the user's message.
|
|
135
|
+
|
|
136
|
+
As a baseline, the Agent MUST support [`ContentBlock::Text`] and
|
|
137
|
+
[`ContentBlock::ResourceContentBlock`],
|
|
138
|
+
while other variants are optionally enabled via [`PromptCapabilities`].
|
|
139
|
+
|
|
140
|
+
The Client MUST adapt its interface according to [`PromptCapabilities`].
|
|
141
|
+
|
|
142
|
+
The client MAY include referenced pieces of context as either
|
|
143
|
+
[`ContentBlock::Resource`] or [`ContentBlock::ResourceContentBlock`].
|
|
144
|
+
|
|
145
|
+
When available, [`ContentBlock::Resource`] is preferred
|
|
146
|
+
as it avoids extra round-trips and allows the message to include
|
|
147
|
+
pieces of context from sources the agent may not have access to.
|
|
148
|
+
"""
|
|
149
|
+
|
|
150
|
+
session_id: str
|
|
151
|
+
"""The ID of the session to send this user message to."""
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
class SetSessionModelRequest(Request):
|
|
155
|
+
"""**UNSTABLE**: This capability is not part of the spec yet.
|
|
156
|
+
|
|
157
|
+
Request parameters for setting a session model.
|
|
158
|
+
"""
|
|
159
|
+
|
|
160
|
+
model_id: str
|
|
161
|
+
"""The ID of the model to set."""
|
|
162
|
+
|
|
163
|
+
session_id: str
|
|
164
|
+
"""The ID of the session to set the model for."""
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
class SetSessionConfigOptionRequest(Request):
|
|
168
|
+
"""Request parameters for setting a session configuration option.
|
|
169
|
+
|
|
170
|
+
See protocol docs: [Session Config Options](https://agentclientprotocol.com/protocol/session-config-options)
|
|
171
|
+
"""
|
|
172
|
+
|
|
173
|
+
config_id: str
|
|
174
|
+
"""The ID of the configuration option to set."""
|
|
175
|
+
|
|
176
|
+
session_id: str
|
|
177
|
+
"""The ID of the session to set the config option for."""
|
|
178
|
+
|
|
179
|
+
value_id: str
|
|
180
|
+
"""The ID of the value to set for this configuration option."""
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
class InitializeRequest(Request):
|
|
184
|
+
"""Request parameters for the initialize method.
|
|
185
|
+
|
|
186
|
+
Sent by the client to establish connection and negotiate capabilities.
|
|
187
|
+
|
|
188
|
+
See protocol docs: [Initialization](https://agentclientprotocol.com/protocol/initialization)
|
|
189
|
+
"""
|
|
190
|
+
|
|
191
|
+
client_capabilities: ClientCapabilities | None = Field(default_factory=ClientCapabilities)
|
|
192
|
+
"""Capabilities supported by the client."""
|
|
193
|
+
|
|
194
|
+
client_info: Implementation | None = None
|
|
195
|
+
"""Information about the Client name and version sent to the Agent.
|
|
196
|
+
|
|
197
|
+
Note: in future versions of the protocol, this will be required.
|
|
198
|
+
"""
|
|
199
|
+
|
|
200
|
+
protocol_version: int
|
|
201
|
+
"""The latest protocol version supported by the client."""
|
|
202
|
+
|
|
203
|
+
@classmethod
|
|
204
|
+
def create(
|
|
205
|
+
cls,
|
|
206
|
+
title: str,
|
|
207
|
+
name: str,
|
|
208
|
+
version: str,
|
|
209
|
+
terminal: bool = True,
|
|
210
|
+
read_text_file: bool = True,
|
|
211
|
+
write_text_file: bool = True,
|
|
212
|
+
protocol_version: int = 1,
|
|
213
|
+
) -> Self:
|
|
214
|
+
"""Create a new InitializeRequest instance."""
|
|
215
|
+
fs = FileSystemCapability(read_text_file=read_text_file, write_text_file=write_text_file)
|
|
216
|
+
caps = ClientCapabilities(terminal=terminal, fs=fs)
|
|
217
|
+
impl = Implementation(title=title, name=name, version=version)
|
|
218
|
+
return cls(client_capabilities=caps, client_info=impl, protocol_version=protocol_version)
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
class AuthenticateRequest(Request):
|
|
222
|
+
"""Request parameters for the authenticate method.
|
|
223
|
+
|
|
224
|
+
Specifies which authentication method to use.
|
|
225
|
+
"""
|
|
226
|
+
|
|
227
|
+
method_id: str
|
|
228
|
+
"""The ID of the authentication method to use.
|
|
229
|
+
|
|
230
|
+
Must be one of the methods advertised in the initialize response.
|
|
231
|
+
"""
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
ClientRequest = (
|
|
235
|
+
InitializeRequest
|
|
236
|
+
| AuthenticateRequest
|
|
237
|
+
| NewSessionRequest
|
|
238
|
+
| LoadSessionRequest
|
|
239
|
+
| ListSessionsRequest
|
|
240
|
+
| ForkSessionRequest
|
|
241
|
+
| ResumeSessionRequest
|
|
242
|
+
| SetSessionModeRequest
|
|
243
|
+
| SetSessionConfigOptionRequest
|
|
244
|
+
| PromptRequest
|
|
245
|
+
| SetSessionModelRequest
|
|
246
|
+
| CustomRequest
|
|
247
|
+
)
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"""Client response schema definitions."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Self
|
|
6
|
+
|
|
7
|
+
from acp.schema.base import Response
|
|
8
|
+
from acp.schema.terminal import TerminalExitStatus # noqa: TC001
|
|
9
|
+
from acp.schema.tool_call import AllowedOutcome, DeniedOutcome
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
# terminal
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class CreateTerminalResponse(Response):
|
|
16
|
+
"""Response containing the ID of the created terminal."""
|
|
17
|
+
|
|
18
|
+
terminal_id: str
|
|
19
|
+
"""The unique identifier for the created terminal."""
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class KillTerminalCommandResponse(Response):
|
|
23
|
+
"""Response to terminal/kill command method."""
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class ReleaseTerminalResponse(Response):
|
|
27
|
+
"""Response to terminal/release method."""
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class TerminalOutputResponse(Response):
|
|
31
|
+
"""Response containing the terminal output and exit status."""
|
|
32
|
+
|
|
33
|
+
exit_status: TerminalExitStatus | None = None
|
|
34
|
+
"""Exit status if the command has completed."""
|
|
35
|
+
|
|
36
|
+
output: str
|
|
37
|
+
"""The terminal output captured so far."""
|
|
38
|
+
|
|
39
|
+
truncated: bool
|
|
40
|
+
"""Whether the output was truncated due to byte limits."""
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
class WaitForTerminalExitResponse(Response):
|
|
44
|
+
"""Response containing the exit status of a terminal command."""
|
|
45
|
+
|
|
46
|
+
exit_code: int | None = None
|
|
47
|
+
"""The process exit code (may be null if terminated by signal)."""
|
|
48
|
+
|
|
49
|
+
signal: str | None = None
|
|
50
|
+
"""The signal that terminated the process (may be null if exited normally)."""
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
# Filesystem
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
class WriteTextFileResponse(Response):
|
|
57
|
+
"""Response to `fs/write_text_file`."""
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
class ReadTextFileResponse(Response):
|
|
61
|
+
"""Response containing the contents of a text file."""
|
|
62
|
+
|
|
63
|
+
content: str
|
|
64
|
+
"""The contents of the text file."""
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
# permissions
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
class RequestPermissionResponse(Response):
|
|
71
|
+
"""Response to a permission request."""
|
|
72
|
+
|
|
73
|
+
outcome: DeniedOutcome | AllowedOutcome
|
|
74
|
+
"""The user's decision on the permission request."""
|
|
75
|
+
|
|
76
|
+
@classmethod
|
|
77
|
+
def denied(cls) -> Self:
|
|
78
|
+
"""Create a response indicating that the permission request was denied."""
|
|
79
|
+
return cls(outcome=DeniedOutcome())
|
|
80
|
+
|
|
81
|
+
@classmethod
|
|
82
|
+
def allowed(cls, option_id: str) -> Self:
|
|
83
|
+
"""Create a response indicating that the permission request was allowed."""
|
|
84
|
+
return cls(outcome=AllowedOutcome(option_id=option_id))
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
ClientResponse = (
|
|
88
|
+
WriteTextFileResponse
|
|
89
|
+
| ReadTextFileResponse
|
|
90
|
+
| RequestPermissionResponse
|
|
91
|
+
| CreateTerminalResponse
|
|
92
|
+
| TerminalOutputResponse
|
|
93
|
+
| ReleaseTerminalResponse
|
|
94
|
+
| WaitForTerminalExitResponse
|
|
95
|
+
| KillTerminalCommandResponse
|
|
96
|
+
)
|
acp/schema/common.py
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"""Common schema definitions."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Any
|
|
6
|
+
|
|
7
|
+
from acp.schema.base import AnnotatedObject, Schema
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class EnvVariable(AnnotatedObject):
|
|
11
|
+
"""An environment variable to set when launching an MCP server."""
|
|
12
|
+
|
|
13
|
+
name: str
|
|
14
|
+
"""The name of the environment variable."""
|
|
15
|
+
|
|
16
|
+
value: str
|
|
17
|
+
"""The value to set for the environment variable."""
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class Implementation(Schema):
|
|
21
|
+
"""Describes the name and version of an ACP implementation.
|
|
22
|
+
|
|
23
|
+
Includes an optional title for UI representation.
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
name: str
|
|
27
|
+
"""Intended for programmatic or logical use.
|
|
28
|
+
|
|
29
|
+
Can be used as a display name fallback if title isn't present."""
|
|
30
|
+
|
|
31
|
+
title: str | None = None
|
|
32
|
+
"""Intended for UI and end-user contexts.
|
|
33
|
+
|
|
34
|
+
Optimized to be human-readable and easily understood.
|
|
35
|
+
If not provided, the name should be used for display."""
|
|
36
|
+
|
|
37
|
+
version: str
|
|
38
|
+
"""Version of the implementation.
|
|
39
|
+
|
|
40
|
+
Can be displayed to the user or used for debugging or metrics purposes."""
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
class AuthMethod(AnnotatedObject):
|
|
44
|
+
"""Describes an available authentication method."""
|
|
45
|
+
|
|
46
|
+
description: str | None = None
|
|
47
|
+
"""Optional description providing more details about this authentication method."""
|
|
48
|
+
|
|
49
|
+
id: str
|
|
50
|
+
"""Unique identifier for this authentication method."""
|
|
51
|
+
|
|
52
|
+
name: str
|
|
53
|
+
"""Human-readable name of the authentication method."""
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
class Error(Schema):
|
|
57
|
+
"""JSON-RPC error object.
|
|
58
|
+
|
|
59
|
+
Represents an error that occurred during method execution, following the
|
|
60
|
+
JSON-RPC 2.0 error object specification with optional additional data.
|
|
61
|
+
|
|
62
|
+
See protocol docs: [JSON-RPC Error Object](https://www.jsonrpc.org/specification#error_object)
|
|
63
|
+
"""
|
|
64
|
+
|
|
65
|
+
code: int
|
|
66
|
+
"""A number indicating the error type that occurred.
|
|
67
|
+
|
|
68
|
+
This must be an integer as defined in the JSON-RPC specification.
|
|
69
|
+
"""
|
|
70
|
+
|
|
71
|
+
data: Any | None = None
|
|
72
|
+
"""Optional primitive or structured value that contains additional errorinformation.
|
|
73
|
+
|
|
74
|
+
This may include debugging information or context-specific details.
|
|
75
|
+
"""
|
|
76
|
+
|
|
77
|
+
message: str
|
|
78
|
+
"""A string providing a short description of the error.
|
|
79
|
+
|
|
80
|
+
The message should be limited to a concise single sentence.
|
|
81
|
+
"""
|