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,188 @@
|
|
|
1
|
+
"""Content block schema definitions."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from collections.abc import Sequence
|
|
6
|
+
from datetime import datetime
|
|
7
|
+
from typing import Annotated, Literal, Self
|
|
8
|
+
|
|
9
|
+
from pydantic import Field
|
|
10
|
+
|
|
11
|
+
from acp.schema.base import AnnotatedObject
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
Audience = Sequence[Literal["assistant", "user"]]
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class BaseResourceContents(AnnotatedObject):
|
|
18
|
+
"""Text-based resource contents."""
|
|
19
|
+
|
|
20
|
+
mime_type: str | None = None
|
|
21
|
+
"""MIME type of the resource."""
|
|
22
|
+
|
|
23
|
+
uri: str
|
|
24
|
+
"""URI of the resource."""
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class TextResourceContents(BaseResourceContents):
|
|
28
|
+
"""Text-based resource contents."""
|
|
29
|
+
|
|
30
|
+
text: str
|
|
31
|
+
"""Text content of the resource."""
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class BlobResourceContents(BaseResourceContents):
|
|
35
|
+
"""Binary resource contents."""
|
|
36
|
+
|
|
37
|
+
blob: str
|
|
38
|
+
"""Base64-encoded binary content of the resource."""
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
class Annotations(AnnotatedObject):
|
|
42
|
+
"""Optional annotations for the client.
|
|
43
|
+
|
|
44
|
+
The client can use annotations to inform how objects are used or displayed.
|
|
45
|
+
"""
|
|
46
|
+
|
|
47
|
+
audience: Audience | None = None
|
|
48
|
+
"""Audience for the annotated resource."""
|
|
49
|
+
|
|
50
|
+
last_modified: str | None = None
|
|
51
|
+
"""Last modified timestamp of the annotated resource."""
|
|
52
|
+
|
|
53
|
+
priority: float | None = None
|
|
54
|
+
"""Priority of the annotated resource."""
|
|
55
|
+
|
|
56
|
+
@classmethod
|
|
57
|
+
def optionally_create(
|
|
58
|
+
cls,
|
|
59
|
+
audience: Audience | None = None,
|
|
60
|
+
last_modified: datetime | str | None = None,
|
|
61
|
+
priority: float | None = None,
|
|
62
|
+
) -> Self | None:
|
|
63
|
+
"""Create an annotations object if any value is given, otherwise return None."""
|
|
64
|
+
if audience is None and last_modified is None and priority is None:
|
|
65
|
+
return None
|
|
66
|
+
if isinstance(last_modified, datetime):
|
|
67
|
+
last_modified = last_modified.strftime("%Y-%m-%dT%H:%M:%SZ")
|
|
68
|
+
return cls(audience=audience, last_modified=last_modified, priority=priority)
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
class BaseContentBlock(AnnotatedObject):
|
|
72
|
+
"""Base content block."""
|
|
73
|
+
|
|
74
|
+
annotations: Annotations | None = None
|
|
75
|
+
"""Annotations for the content block."""
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
ResourceContents = TextResourceContents | BlobResourceContents
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
class EmbeddedResourceContentBlock[TResourceContents: ResourceContents = ResourceContents](
|
|
82
|
+
BaseContentBlock
|
|
83
|
+
):
|
|
84
|
+
"""Complete resource contents embedded directly in the message.
|
|
85
|
+
|
|
86
|
+
Preferred for including context as it avoids extra round-trips.
|
|
87
|
+
|
|
88
|
+
Requires the `embeddedContext` prompt capability when included in prompts.
|
|
89
|
+
"""
|
|
90
|
+
|
|
91
|
+
type: Literal["resource"] = Field(default="resource", init=False)
|
|
92
|
+
|
|
93
|
+
resource: TResourceContents
|
|
94
|
+
"""Resource content that can be embedded in a message."""
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
class TextContentBlock(BaseContentBlock):
|
|
98
|
+
"""Text content.
|
|
99
|
+
|
|
100
|
+
May be plain text or formatted with Markdown.
|
|
101
|
+
|
|
102
|
+
All agents MUST support text content blocks in prompts.
|
|
103
|
+
Clients SHOULD render this text as Markdown.
|
|
104
|
+
"""
|
|
105
|
+
|
|
106
|
+
type: Literal["text"] = Field(default="text", init=False)
|
|
107
|
+
|
|
108
|
+
text: str
|
|
109
|
+
"""Text content of the block."""
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
class ImageContentBlock(BaseContentBlock):
|
|
113
|
+
"""Images for visual context or analysis.
|
|
114
|
+
|
|
115
|
+
Requires the `image` prompt capability when included in prompts.
|
|
116
|
+
"""
|
|
117
|
+
|
|
118
|
+
type: Literal["image"] = Field(default="image", init=False)
|
|
119
|
+
|
|
120
|
+
data: str
|
|
121
|
+
"""Base64-encoded image data."""
|
|
122
|
+
|
|
123
|
+
mime_type: str
|
|
124
|
+
"""MIME type of the image."""
|
|
125
|
+
|
|
126
|
+
uri: str | None = None
|
|
127
|
+
"""URI of the image."""
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
class AudioContentBlock(BaseContentBlock):
|
|
131
|
+
"""Audio data for transcription or analysis.
|
|
132
|
+
|
|
133
|
+
Requires the `audio` prompt capability when included in prompts.
|
|
134
|
+
"""
|
|
135
|
+
|
|
136
|
+
type: Literal["audio"] = Field(default="audio", init=False)
|
|
137
|
+
|
|
138
|
+
data: str
|
|
139
|
+
"""Base64-encoded audio data."""
|
|
140
|
+
|
|
141
|
+
mime_type: str
|
|
142
|
+
"""MIME type of the audio."""
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
# Resource links:
|
|
146
|
+
# [@index.js](file:///Users/.../projects/reqwest/examples/wasm_github_fetch/index.js)
|
|
147
|
+
# [@wasm](file:///Users/.../projects/reqwest/src/wasm)
|
|
148
|
+
# [@error](file:///Users/.../projects/reqwest/src/async_impl/client.rs?symbol=Error#L2661:2661)
|
|
149
|
+
# [@error.rs (23:27)](file:///Users/.../projects/reqwest/src/error.rs#L23:27)
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
class ResourceContentBlock(BaseContentBlock):
|
|
153
|
+
"""References to resources that the agent can access.
|
|
154
|
+
|
|
155
|
+
All agents MUST support resource links in prompts.
|
|
156
|
+
"""
|
|
157
|
+
|
|
158
|
+
type: Literal["resource_link"] = Field(default="resource_link", init=False)
|
|
159
|
+
|
|
160
|
+
description: str | None = None
|
|
161
|
+
"""Description of the resource."""
|
|
162
|
+
|
|
163
|
+
mime_type: str | None = None
|
|
164
|
+
"""MIME type of the resource."""
|
|
165
|
+
|
|
166
|
+
name: str
|
|
167
|
+
"""Name of the resource."""
|
|
168
|
+
|
|
169
|
+
size: int | None = Field(default=None, ge=0)
|
|
170
|
+
"""Size of the resource in bytes."""
|
|
171
|
+
|
|
172
|
+
title: str | None = None
|
|
173
|
+
"""Title of the resource."""
|
|
174
|
+
|
|
175
|
+
uri: str
|
|
176
|
+
"""URI of the resource."""
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
ContentBlock = Annotated[
|
|
180
|
+
(
|
|
181
|
+
TextContentBlock
|
|
182
|
+
| ImageContentBlock
|
|
183
|
+
| AudioContentBlock
|
|
184
|
+
| ResourceContentBlock
|
|
185
|
+
| EmbeddedResourceContentBlock
|
|
186
|
+
),
|
|
187
|
+
Field(discriminator="type"),
|
|
188
|
+
]
|
acp/schema/mcp.py
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"""MCP schema definitions."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from collections.abc import Sequence # noqa: TC003
|
|
6
|
+
from typing import Literal
|
|
7
|
+
|
|
8
|
+
from pydantic import Field, HttpUrl # noqa: TC002
|
|
9
|
+
|
|
10
|
+
from acp.schema.base import AnnotatedObject, Schema
|
|
11
|
+
from acp.schema.common import EnvVariable # noqa: TC001
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class HttpHeader(AnnotatedObject):
|
|
15
|
+
"""An HTTP header to set when making requests to the MCP server."""
|
|
16
|
+
|
|
17
|
+
name: str
|
|
18
|
+
"""The name of the HTTP header."""
|
|
19
|
+
|
|
20
|
+
value: str
|
|
21
|
+
"""The value to set for the HTTP header."""
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class BaseMcpServer(Schema):
|
|
25
|
+
"""MCP server base class."""
|
|
26
|
+
|
|
27
|
+
name: str
|
|
28
|
+
"""Human-readable name identifying this MCP server."""
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class HttpMcpServer(BaseMcpServer):
|
|
32
|
+
"""HTTP transport configuration.
|
|
33
|
+
|
|
34
|
+
Only available when the Agent capabilities indicate `mcp_capabilities.http` is `true`.
|
|
35
|
+
"""
|
|
36
|
+
|
|
37
|
+
headers: Sequence[HttpHeader]
|
|
38
|
+
"""HTTP headers to set when making requests to the MCP server."""
|
|
39
|
+
|
|
40
|
+
type: Literal["http"] = Field(default="http", init=False)
|
|
41
|
+
"""HTTP transport type."""
|
|
42
|
+
|
|
43
|
+
url: HttpUrl
|
|
44
|
+
"""URL to the MCP server."""
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
class SseMcpServer(BaseMcpServer):
|
|
48
|
+
"""SSE transport configuration.
|
|
49
|
+
|
|
50
|
+
Only available when the Agent capabilities indicate `mcp_capabilities.sse` is `true`.
|
|
51
|
+
"""
|
|
52
|
+
|
|
53
|
+
headers: Sequence[HttpHeader]
|
|
54
|
+
"""HTTP headers to set when making requests to the MCP server."""
|
|
55
|
+
|
|
56
|
+
type: Literal["sse"] = Field(default="sse", init=False)
|
|
57
|
+
"""SSE transport type."""
|
|
58
|
+
|
|
59
|
+
url: HttpUrl
|
|
60
|
+
"""URL to the MCP server."""
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
class StdioMcpServer(BaseMcpServer):
|
|
64
|
+
"""Stdio transport configuration.
|
|
65
|
+
|
|
66
|
+
All Agents MUST support this transport.
|
|
67
|
+
"""
|
|
68
|
+
|
|
69
|
+
args: Sequence[str]
|
|
70
|
+
"""Command-line arguments to pass to the MCP server."""
|
|
71
|
+
|
|
72
|
+
# typ: Literal["stdio"] = Field(default="stdio", init=False)
|
|
73
|
+
# """Stdio transport type."""
|
|
74
|
+
|
|
75
|
+
command: str
|
|
76
|
+
"""Path to the MCP server executable."""
|
|
77
|
+
|
|
78
|
+
env: Sequence[EnvVariable]
|
|
79
|
+
"""Environment variables to set when launching the MCP server."""
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
McpServer = HttpMcpServer | SseMcpServer | StdioMcpServer
|
acp/schema/messages.py
ADDED
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
"""Message schema definitions."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Any, Literal
|
|
6
|
+
|
|
7
|
+
from pydantic import Field
|
|
8
|
+
|
|
9
|
+
from acp.schema.agent_requests import AgentRequest # noqa: TC001
|
|
10
|
+
from acp.schema.agent_responses import AgentResponse # noqa: TC001
|
|
11
|
+
from acp.schema.base import Schema
|
|
12
|
+
from acp.schema.client_requests import ClientRequest # noqa: TC001
|
|
13
|
+
from acp.schema.client_responses import ClientResponse # noqa: TC001
|
|
14
|
+
from acp.schema.common import Error # noqa: TC001
|
|
15
|
+
from acp.schema.notifications import ( # noqa: TC001
|
|
16
|
+
CancelNotification,
|
|
17
|
+
SessionNotification,
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
AgentMethod = Literal[
|
|
22
|
+
"authenticate",
|
|
23
|
+
"initialize",
|
|
24
|
+
"session/cancel",
|
|
25
|
+
"session/load",
|
|
26
|
+
"session/new",
|
|
27
|
+
"session/prompt",
|
|
28
|
+
"session/set_mode",
|
|
29
|
+
"session/set_model",
|
|
30
|
+
"session/list",
|
|
31
|
+
"session/fork",
|
|
32
|
+
"session/resume",
|
|
33
|
+
]
|
|
34
|
+
|
|
35
|
+
ClientMethod = Literal[
|
|
36
|
+
"fs/read_text_file",
|
|
37
|
+
"fs/write_text_file",
|
|
38
|
+
"session/request_permission",
|
|
39
|
+
"session/update",
|
|
40
|
+
"terminal/create",
|
|
41
|
+
"terminal/kill",
|
|
42
|
+
"terminal/output",
|
|
43
|
+
"terminal/release",
|
|
44
|
+
"terminal/wait_for_exit",
|
|
45
|
+
]
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
class JsonRPCMessage(Schema):
|
|
49
|
+
"""JSON-RPC 2.0 message."""
|
|
50
|
+
|
|
51
|
+
jsonrpc: Literal["2.0"] = Field(default="2.0", init=False)
|
|
52
|
+
"""JSON RPC Messsage."""
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
class ClientNotificationMessage(JsonRPCMessage):
|
|
56
|
+
"""A message (request, response, or notification) with `"jsonrpc": "2.0"`.
|
|
57
|
+
|
|
58
|
+
Specified as [required by JSON-RPC 2.0 Specification][1].
|
|
59
|
+
|
|
60
|
+
[1]: https://www.jsonrpc.org/specification#compatibility
|
|
61
|
+
"""
|
|
62
|
+
|
|
63
|
+
method: ClientMethod | str
|
|
64
|
+
"""Method name."""
|
|
65
|
+
|
|
66
|
+
params: CancelNotification | Any | None = None
|
|
67
|
+
"""Agent notification parameters."""
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
class ClientResponseMessage(JsonRPCMessage):
|
|
71
|
+
"""A message (request, response, or notification) with `"jsonrpc": "2.0"`.
|
|
72
|
+
|
|
73
|
+
Specified as [required by JSON-RPC 2.0 Specification][1].
|
|
74
|
+
|
|
75
|
+
[1]: https://www.jsonrpc.org/specification#compatibility
|
|
76
|
+
"""
|
|
77
|
+
|
|
78
|
+
id: int | str | None = None
|
|
79
|
+
"""JSON RPC Request Id."""
|
|
80
|
+
|
|
81
|
+
result: ClientResponse | Any
|
|
82
|
+
"""All possible responses that a client can send to an agent.
|
|
83
|
+
|
|
84
|
+
This enum is used internally for routing RPC responses. You typically won't need
|
|
85
|
+
to use this directly - the responses are handled automatically by the connection.
|
|
86
|
+
These are responses to the corresponding `AgentRequest` variants."""
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
class AgentResponseMessage(JsonRPCMessage):
|
|
90
|
+
"""A message (request, response, or notification) with `"jsonrpc": "2.0"`.
|
|
91
|
+
|
|
92
|
+
Specified as [required by JSON-RPC 2.0 Specification][1].
|
|
93
|
+
|
|
94
|
+
[1]: https://www.jsonrpc.org/specification#compatibility
|
|
95
|
+
"""
|
|
96
|
+
|
|
97
|
+
id: int | str | None = None
|
|
98
|
+
"""JSON RPC Request Id."""
|
|
99
|
+
|
|
100
|
+
result: AgentResponse | Any
|
|
101
|
+
"""All possible responses that an agent can send to a client.
|
|
102
|
+
|
|
103
|
+
This enum is used internally for routing RPC responses. You typically won't need
|
|
104
|
+
to use this directly - the responses are handled automatically by the connection.
|
|
105
|
+
These are responses to the corresponding `ClientRequest` variants."""
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
class ClientRequestMessage(JsonRPCMessage):
|
|
109
|
+
"""A message (request, response, or notification) with `"jsonrpc": "2.0"`.
|
|
110
|
+
|
|
111
|
+
Specified as [required by JSON-RPC 2.0 Specification][1].
|
|
112
|
+
|
|
113
|
+
[1]: https://www.jsonrpc.org/specification#compatibility
|
|
114
|
+
"""
|
|
115
|
+
|
|
116
|
+
id: int | str | None = None
|
|
117
|
+
"""JSON RPC Request Id."""
|
|
118
|
+
|
|
119
|
+
method: ClientMethod | str
|
|
120
|
+
"""Method name."""
|
|
121
|
+
|
|
122
|
+
params: ClientRequest | Any | None = None
|
|
123
|
+
"""Client request parameters."""
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
class AgentRequestMessage(JsonRPCMessage):
|
|
127
|
+
"""A message (request, response, or notification) with `"jsonrpc": "2.0"`.
|
|
128
|
+
|
|
129
|
+
Specified as [required by JSON-RPC 2.0 Specification][1].
|
|
130
|
+
|
|
131
|
+
[1]: https://www.jsonrpc.org/specification#compatibility
|
|
132
|
+
"""
|
|
133
|
+
|
|
134
|
+
id: int | str | None = None
|
|
135
|
+
"""JSON RPC Request Id."""
|
|
136
|
+
|
|
137
|
+
method: AgentMethod | str
|
|
138
|
+
"""Method name."""
|
|
139
|
+
|
|
140
|
+
params: AgentRequest | Any | None = None
|
|
141
|
+
"""Agent request parameters."""
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
class AgentNotificationMessage(JsonRPCMessage):
|
|
145
|
+
"""A message (request, response, or notification) with `"jsonrpc": "2.0"`.
|
|
146
|
+
|
|
147
|
+
Specified as [required by JSON-RPC 2.0 Specification][1].
|
|
148
|
+
|
|
149
|
+
[1]: https://www.jsonrpc.org/specification#compatibility
|
|
150
|
+
"""
|
|
151
|
+
|
|
152
|
+
method: AgentMethod | str
|
|
153
|
+
"""Method name."""
|
|
154
|
+
|
|
155
|
+
params: SessionNotification | Any | None = None
|
|
156
|
+
"""Agent notification parameters."""
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
class ErrorMessage(JsonRPCMessage):
|
|
160
|
+
"""A message (request, response, or notification) with `"jsonrpc": "2.0"`.
|
|
161
|
+
|
|
162
|
+
Specified as
|
|
163
|
+
[required by JSON-RPC 2.0 Specification][1].
|
|
164
|
+
|
|
165
|
+
[1]: https://www.jsonrpc.org/specification#compatibility
|
|
166
|
+
"""
|
|
167
|
+
|
|
168
|
+
id: int | str | None = None
|
|
169
|
+
"""JSON RPC Request Id."""
|
|
170
|
+
|
|
171
|
+
error: Error
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"""Notification schema definitions."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Any, TypeVar
|
|
6
|
+
|
|
7
|
+
from acp.schema.base import AnnotatedObject
|
|
8
|
+
from acp.schema.session_updates import SessionUpdate
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
TSessionUpdate_co = TypeVar(
|
|
12
|
+
"TSessionUpdate_co",
|
|
13
|
+
covariant=True,
|
|
14
|
+
bound=SessionUpdate,
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class SessionNotification[TSessionUpdate_co: SessionUpdate = SessionUpdate](AnnotatedObject):
|
|
19
|
+
"""Notification containing a session update from the agent.
|
|
20
|
+
|
|
21
|
+
Used to stream real-time progress and results during prompt processing.
|
|
22
|
+
|
|
23
|
+
See protocol docs: [Agent Reports Output](https://agentclientprotocol.com/protocol/prompt-turn#3-agent-reports-output)
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
session_id: str
|
|
27
|
+
"""The ID of the session this update pertains to."""
|
|
28
|
+
|
|
29
|
+
update: TSessionUpdate_co
|
|
30
|
+
"""The session update data."""
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class CancelNotification(AnnotatedObject):
|
|
34
|
+
"""Notification to cancel ongoing operations for a session.
|
|
35
|
+
|
|
36
|
+
This is a notification sent by the client to cancel an ongoing prompt turn.
|
|
37
|
+
|
|
38
|
+
Upon receiving this notification, the Agent SHOULD:
|
|
39
|
+
- Stop all language model requests as soon as possible
|
|
40
|
+
- Abort all tool call invocations in progress
|
|
41
|
+
- Send any pending `session/update` notifications
|
|
42
|
+
- Respond to the original `session/prompt` request with `StopReason::Cancelled`
|
|
43
|
+
|
|
44
|
+
See protocol docs: [Cancellation](https://agentclientprotocol.com/protocol/prompt-turn#cancellation)
|
|
45
|
+
"""
|
|
46
|
+
|
|
47
|
+
session_id: str
|
|
48
|
+
"""The ID of the session to cancel operations for."""
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
class ExtNotification(AnnotatedObject):
|
|
52
|
+
"""Extension notification from client or agent.
|
|
53
|
+
|
|
54
|
+
Allows sending arbitrary notifications that are not part of the ACP spec.
|
|
55
|
+
Extension notifications provide a way to send one-way messages for custom
|
|
56
|
+
functionality while maintaining protocol compatibility.
|
|
57
|
+
|
|
58
|
+
The method name should be prefixed with an underscore (e.g., `_myExtension/notify`).
|
|
59
|
+
|
|
60
|
+
See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
|
|
61
|
+
"""
|
|
62
|
+
|
|
63
|
+
method: str
|
|
64
|
+
"""The extension method name (should be prefixed with underscore)."""
|
|
65
|
+
|
|
66
|
+
params: dict[str, Any] | None = None
|
|
67
|
+
"""Optional parameters for the notification."""
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
AgentNotification = SessionNotification | ExtNotification
|
|
71
|
+
"""All possible notifications that an agent can send to a client.
|
|
72
|
+
|
|
73
|
+
This is used internally for routing RPC notifications.
|
|
74
|
+
Notifications do not expect a response.
|
|
75
|
+
"""
|
|
76
|
+
|
|
77
|
+
ClientNotification = CancelNotification | ExtNotification
|
|
78
|
+
"""All possible notifications that a client can send to an agent.
|
|
79
|
+
|
|
80
|
+
This is used internally for routing RPC notifications.
|
|
81
|
+
Notifications do not expect a response.
|
|
82
|
+
"""
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
"""Session state schema definitions."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from collections.abc import Sequence
|
|
6
|
+
from typing import Annotated, Literal
|
|
7
|
+
|
|
8
|
+
from pydantic import Field
|
|
9
|
+
|
|
10
|
+
from acp.schema.base import AnnotatedObject
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
# Type aliases for config option identifiers
|
|
14
|
+
SessionConfigId = str
|
|
15
|
+
"""Unique identifier for a configuration option."""
|
|
16
|
+
|
|
17
|
+
SessionConfigValueId = str
|
|
18
|
+
"""Unique identifier for a possible value within a configuration option."""
|
|
19
|
+
|
|
20
|
+
SessionConfigGroupId = str
|
|
21
|
+
"""Unique identifier for a group of values within a configuration option."""
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class ModelInfo(AnnotatedObject):
|
|
25
|
+
"""**UNSTABLE**: This capability is not part of the spec yet.
|
|
26
|
+
|
|
27
|
+
Information about a selectable model.
|
|
28
|
+
"""
|
|
29
|
+
|
|
30
|
+
description: str | None = None
|
|
31
|
+
"""Optional description of the model."""
|
|
32
|
+
|
|
33
|
+
model_id: str
|
|
34
|
+
"""Unique identifier for the model."""
|
|
35
|
+
|
|
36
|
+
name: str
|
|
37
|
+
"""Human-readable name of the model."""
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class SessionModelState(AnnotatedObject):
|
|
41
|
+
"""**UNSTABLE**: This capability is not part of the spec yet.
|
|
42
|
+
|
|
43
|
+
The set of models and the one currently active.
|
|
44
|
+
"""
|
|
45
|
+
|
|
46
|
+
available_models: Sequence[ModelInfo]
|
|
47
|
+
"""The set of models that the Agent can use."""
|
|
48
|
+
|
|
49
|
+
current_model_id: str
|
|
50
|
+
"""The current model the Agent is using."""
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
class SessionMode(AnnotatedObject):
|
|
54
|
+
"""A mode the agent can operate in.
|
|
55
|
+
|
|
56
|
+
See protocol docs: [Session Modes](https://agentclientprotocol.com/protocol/session-modes)
|
|
57
|
+
"""
|
|
58
|
+
|
|
59
|
+
description: str | None = None
|
|
60
|
+
"""Optional description of the mode."""
|
|
61
|
+
|
|
62
|
+
id: str
|
|
63
|
+
"""Unique identifier for the mode."""
|
|
64
|
+
|
|
65
|
+
name: str
|
|
66
|
+
"""Human-readable name of the mode."""
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
class SessionModeState(AnnotatedObject):
|
|
70
|
+
"""The set of modes and the one currently active."""
|
|
71
|
+
|
|
72
|
+
available_modes: Sequence[SessionMode]
|
|
73
|
+
"""The set of modes that the Agent can operate in."""
|
|
74
|
+
|
|
75
|
+
current_mode_id: str
|
|
76
|
+
"""The current mode the Agent is in."""
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
class SessionInfo(AnnotatedObject):
|
|
80
|
+
"""**UNSTABLE**: This capability is not part of the spec yet.
|
|
81
|
+
|
|
82
|
+
Information about a session returned by session/list.
|
|
83
|
+
"""
|
|
84
|
+
|
|
85
|
+
cwd: str
|
|
86
|
+
"""The working directory for this session. Must be an absolute path."""
|
|
87
|
+
|
|
88
|
+
session_id: str
|
|
89
|
+
"""Unique identifier for the session."""
|
|
90
|
+
|
|
91
|
+
title: str | None = None
|
|
92
|
+
"""Human-readable title for the session."""
|
|
93
|
+
|
|
94
|
+
updated_at: str | None = None
|
|
95
|
+
"""ISO 8601 timestamp of last activity."""
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
class SessionConfigSelectOption(AnnotatedObject):
|
|
99
|
+
"""A possible value for a configuration selector."""
|
|
100
|
+
|
|
101
|
+
id: SessionConfigValueId
|
|
102
|
+
"""Unique identifier for this value."""
|
|
103
|
+
|
|
104
|
+
label: str
|
|
105
|
+
"""Human-readable label for this value."""
|
|
106
|
+
|
|
107
|
+
description: str | None = None
|
|
108
|
+
"""Optional description explaining this value."""
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
class SessionConfigSelectGroup(AnnotatedObject):
|
|
112
|
+
"""A group of possible values for a configuration selector."""
|
|
113
|
+
|
|
114
|
+
id: SessionConfigGroupId
|
|
115
|
+
"""Unique identifier for this group."""
|
|
116
|
+
|
|
117
|
+
label: str
|
|
118
|
+
"""Human-readable label for this group."""
|
|
119
|
+
|
|
120
|
+
options: Sequence[SessionConfigSelectOption]
|
|
121
|
+
"""The options within this group."""
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
SessionConfigSelectOptions = Sequence[SessionConfigSelectOption | SessionConfigSelectGroup]
|
|
125
|
+
"""The possible values for a configuration selector, optionally organized into groups."""
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
class SessionConfigSelect(AnnotatedObject):
|
|
129
|
+
"""A configuration option that allows selecting a single value from a list.
|
|
130
|
+
|
|
131
|
+
Similar to a dropdown/select UI element.
|
|
132
|
+
"""
|
|
133
|
+
|
|
134
|
+
type: Literal["select"] = Field(default="select", init=False)
|
|
135
|
+
"""Discriminator for the config option type."""
|
|
136
|
+
|
|
137
|
+
id: SessionConfigId
|
|
138
|
+
"""Unique identifier for this configuration option."""
|
|
139
|
+
|
|
140
|
+
label: str
|
|
141
|
+
"""Human-readable label for this option."""
|
|
142
|
+
|
|
143
|
+
description: str | None = None
|
|
144
|
+
"""Optional description explaining this option."""
|
|
145
|
+
|
|
146
|
+
options: SessionConfigSelectOptions
|
|
147
|
+
"""The possible values for this option."""
|
|
148
|
+
|
|
149
|
+
value: SessionConfigValueId
|
|
150
|
+
"""The currently selected value ID."""
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
SessionConfigOption = Annotated[
|
|
154
|
+
SessionConfigSelect,
|
|
155
|
+
Field(discriminator="type"),
|
|
156
|
+
]
|
|
157
|
+
"""A session configuration option.
|
|
158
|
+
|
|
159
|
+
Currently only supports select-type options, but designed for extensibility.
|
|
160
|
+
"""
|