agentpool 2.2.2__tar.gz → 2.2.3__tar.gz
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.
- {agentpool-2.2.2 → agentpool-2.2.3}/PKG-INFO +2 -1
- {agentpool-2.2.2 → agentpool-2.2.3}/pyproject.toml +2 -1
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/utils.py +2 -2
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/agent.py +153 -89
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/models/acp_agents/mcp_capable.py +5 -5
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/models/acp_agents/non_mcp.py +12 -4
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/resource_providers/plan_provider.py +74 -10
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/sessions/__init__.py +2 -1
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/sessions/manager.py +23 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/sessions/models.py +41 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/storage/manager.py +134 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/utils/token_breakdown.py +166 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_cli/serve_acp.py +3 -4
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/storage.py +46 -1
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/toolsets.py +34 -2
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/acp_server/commands/docs_commands/fetch_repo.py +10 -10
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/ENDPOINTS.md +2 -2
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/models/events.py +9 -9
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/routes/app_routes.py +33 -11
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/routes/lsp_routes.py +132 -15
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/routes/session_routes.py +2 -2
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/server.py +48 -1
- agentpool-2.2.3/src/agentpool_storage/__init__.py +25 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_storage/base.py +84 -0
- agentpool-2.2.3/src/agentpool_storage/claude_provider.py +907 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_storage/file_provider.py +112 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_storage/memory_provider.py +51 -0
- agentpool-2.2.3/src/agentpool_storage/opencode_provider.py +730 -0
- agentpool-2.2.3/src/agentpool_storage/project_store.py +325 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_storage/sql_provider/__init__.py +4 -2
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_storage/sql_provider/models.py +36 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_storage/sql_provider/sql_provider.py +111 -1
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/builtin/debug.py +2 -2
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/builtin/execution_environment.py +2 -2
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/fsspec_toolset/__init__.py +2 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/fsspec_toolset/grep.py +74 -2
- agentpool-2.2.3/src/agentpool_toolsets/fsspec_toolset/image_utils.py +161 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/fsspec_toolset/toolset.py +41 -8
- agentpool-2.2.2/src/agentpool_storage/__init__.py +0 -9
- {agentpool-2.2.2 → agentpool-2.2.3}/LICENSE +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/README.md +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/README.md +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/__main__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/acp_requests.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/agent/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/agent/connection.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/agent/implementations/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/agent/implementations/debug_server/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/agent/implementations/debug_server/cli.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/agent/implementations/debug_server/debug.html +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/agent/implementations/debug_server/debug_server.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/agent/implementations/testing.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/agent/protocol.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/bridge/README.md +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/bridge/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/bridge/__main__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/bridge/bridge.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/bridge/py.typed +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/bridge/settings.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/bridge/ws_server.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/bridge/ws_server_cli.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/client/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/client/connection.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/client/implementations/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/client/implementations/default_client.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/client/implementations/headless_client.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/client/implementations/noop_client.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/client/protocol.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/connection.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/exceptions.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/filesystem.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/notifications.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/py.typed +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/schema/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/schema/agent_plan.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/schema/agent_requests.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/schema/agent_responses.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/schema/base.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/schema/capabilities.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/schema/client_requests.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/schema/client_responses.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/schema/common.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/schema/content_blocks.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/schema/mcp.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/schema/messages.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/schema/notifications.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/schema/protocol_stuff.md +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/schema/session_state.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/schema/session_updates.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/schema/slash_commands.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/schema/terminal.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/schema/tool_call.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/stdio.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/task/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/task/debug.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/task/dispatcher.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/task/queue.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/task/sender.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/task/state.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/task/supervisor.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/terminal_handle.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/tool_call_reporter.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/tool_call_state.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/transports.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/__main__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/acp_agent/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/acp_agent/acp_agent.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/acp_agent/acp_converters.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/acp_agent/client_handler.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/acp_agent/session_state.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/agui_agent/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/agui_agent/agui_agent.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/agui_agent/agui_converters.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/agui_agent/chunk_transformer.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/agui_agent/event_types.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/agui_agent/helpers.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/architect.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/base_agent.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/claude_code_agent/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/claude_code_agent/claude_code_agent.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/claude_code_agent/converters.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/claude_code_agent/history.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/context.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/events/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/events/builtin_handlers.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/events/event_emitter.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/events/events.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/events/tts_handlers.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/interactions.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/modes.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/slashed_agent.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/sys_prompts.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/tool_call_accumulator.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/tool_wrapping.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/base_provider.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/common_types.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/config_resources/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/config_resources/acp_assistant.yml +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/config_resources/agents.yml +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/config_resources/agents_template.yml +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/config_resources/agui_test.yml +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/config_resources/claude_code_agent.yml +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/config_resources/claude_style_subagent.md +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/config_resources/external_acp_agents.yml +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/config_resources/opencode_style_subagent.md +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/config_resources/tts_test_agents.yml +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/delegation/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/delegation/base_team.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/delegation/message_flow_tracker.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/delegation/pool.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/delegation/team.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/delegation/teamrun.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/diagnostics/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/diagnostics/lsp_manager.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/diagnostics/lsp_proxy.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/diagnostics/lsp_proxy_script.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/diagnostics/models.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/docs/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/docs/gen_examples.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/docs/utils.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/functional/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/functional/py.typed +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/functional/run.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/functional/structure.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/hooks/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/hooks/agent_hooks.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/hooks/base.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/hooks/callable.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/hooks/command.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/hooks/prompt.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/jinja_filters.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/log.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/mcp_server/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/mcp_server/client.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/mcp_server/constants.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/mcp_server/conversions.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/mcp_server/helpers.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/mcp_server/manager.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/mcp_server/message_handler.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/mcp_server/registries/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/mcp_server/registries/official_registry_client.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/mcp_server/registries/pulsemcp_client.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/mcp_server/tool_bridge.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/messaging/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/messaging/compaction.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/messaging/connection_manager.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/messaging/context.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/messaging/event_manager.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/messaging/events.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/messaging/message_container.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/messaging/message_history.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/messaging/messagenode.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/messaging/messages.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/messaging/processing.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/mime_utils.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/models/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/models/acp_agents/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/models/acp_agents/base.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/models/agents.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/models/agui_agents.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/models/claude_code_agents.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/models/file_agents.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/models/file_parsing.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/models/manifest.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/observability/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/observability/observability_registry.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/prompts/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/prompts/base.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/prompts/builtin_provider.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/prompts/conversion_manager.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/prompts/convert.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/prompts/manager.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/prompts/parts/zed.md +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/prompts/prompts.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/py.typed +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/README.md +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/c-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/clojure-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/d-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/go-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/java-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/matlab-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/python-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/r-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/README.md +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/c-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/cpp-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/dart-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/elisp-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/elixir-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/elm-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/fortran-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/go-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/haskell-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/hcl-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/java-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/javascript-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/julia-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/matlab-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/php-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/python-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/ql-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/ruby-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/rust-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/scala-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/typescript-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/zig-tags.scm +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/repomap.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/resource_providers/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/resource_providers/aggregating.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/resource_providers/base.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/resource_providers/codemode/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/resource_providers/codemode/code_executor.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/resource_providers/codemode/default_prompt.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/resource_providers/codemode/helpers.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/resource_providers/codemode/progress_executor.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/resource_providers/codemode/provider.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/resource_providers/codemode/remote_mcp_execution.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/resource_providers/codemode/remote_provider.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/resource_providers/filtering.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/resource_providers/mcp_provider.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/resource_providers/pool.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/resource_providers/static.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/running/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/running/decorators.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/running/discovery.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/running/executor.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/running/injection.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/running/py.typed +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/running/run_nodes.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/server.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/sessions/session.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/sessions/store.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/skills/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/skills/manager.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/skills/registry.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/skills/skill.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/storage/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/storage/serialization.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/talk/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/talk/registry.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/talk/stats.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/talk/talk.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/tasks/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/tasks/exceptions.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/tasks/registry.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/testing.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/text_templates/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/text_templates/system_prompt.jinja +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/text_templates/tool_call_default.jinja +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/text_templates/tool_call_markdown.jinja +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/text_templates/tool_call_simple.jinja +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/tools/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/tools/base.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/tools/exceptions.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/tools/manager.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/tools/tool_call_info.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/ui/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/ui/base.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/ui/mock_provider.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/ui/stdlib_provider.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/utils/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/utils/baseregistry.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/utils/count_tokens.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/utils/dag.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/utils/file_watcher.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/utils/identifiers.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/utils/importing.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/utils/inspection.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/utils/model_capabilities.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/utils/network.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/utils/now.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/utils/parse_time.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/utils/pydantic_ai_helpers.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/utils/result_utils.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/utils/signatures.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/utils/streams.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/utils/subprocess_utils.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/utils/tasks.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/vfs_registry.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_cli/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_cli/__main__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_cli/agent.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_cli/cli_types.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_cli/common.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_cli/create.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_cli/history.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_cli/log.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_cli/py.typed +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_cli/run.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_cli/serve_agui.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_cli/serve_api.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_cli/serve_mcp.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_cli/serve_opencode.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_cli/serve_vercel.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_cli/store.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_cli/task.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_cli/utils.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_cli/watch.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_commands/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_commands/agents.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_commands/base.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_commands/commands.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_commands/completers.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_commands/connections.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_commands/history.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_commands/markdown_utils.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_commands/mcp.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_commands/models.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_commands/prompts.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_commands/py.typed +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_commands/read.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_commands/resources.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_commands/session.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_commands/tools.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_commands/utils.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_commands/workers.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/builtin_tools.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/commands.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/compaction.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/conditions.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/converters.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/durable.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/event_handlers.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/events.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/forward_targets.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/hook_conditions.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/hooks.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/jinja.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/knowledge.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/loaders.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/mcp_server.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/nodes.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/observability.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/output_types.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/pool_server.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/prompt_hubs.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/prompts.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/py.typed +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/resources.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/session.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/skills.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/system_prompts.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/task.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/teams.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/tools.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/workers.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_prompts/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_prompts/braintrust_hub.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_prompts/fabric.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_prompts/langfuse_hub.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_prompts/promptlayer_provider.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_prompts/py.typed +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/a2a_server/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/a2a_server/a2a_types.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/a2a_server/server.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/a2a_server/storage.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/acp_server/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/acp_server/acp_agent.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/acp_server/acp_tools.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/acp_server/commands/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/acp_server/commands/acp_commands.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/acp_server/commands/debug_commands.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/acp_server/commands/docs_commands/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/acp_server/commands/docs_commands/get_schema.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/acp_server/commands/docs_commands/get_source.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/acp_server/commands/docs_commands/git_diff.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/acp_server/commands/docs_commands/helpers.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/acp_server/commands/docs_commands/url_to_markdown.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/acp_server/commands/spawn.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/acp_server/converters.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/acp_server/input_provider.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/acp_server/server.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/acp_server/session.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/acp_server/session_manager.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/acp_server/syntax_detection.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/acp_server/zed_tools.md +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/aggregating_server.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/agui_server/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/agui_server/server.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/base.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/http_server.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/mcp_server/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/mcp_server/server.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/mcp_server/zed_wrapper.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/openai_api_server/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/openai_api_server/completions/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/openai_api_server/completions/helpers.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/openai_api_server/completions/models.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/openai_api_server/responses/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/openai_api_server/responses/helpers.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/openai_api_server/responses/models.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/openai_api_server/server.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/.rules +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/command_validation.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/converters.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/dependencies.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/input_provider.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/models/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/models/agent.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/models/app.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/models/base.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/models/common.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/models/config.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/models/file.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/models/mcp.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/models/message.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/models/parts.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/models/provider.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/models/pty.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/models/session.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/routes/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/routes/agent_routes.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/routes/config_routes.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/routes/file_routes.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/routes/global_routes.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/routes/message_routes.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/routes/pty_routes.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/routes/tui_routes.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/state.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/time_utils.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/py.typed +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_storage/formatters.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_storage/models.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_storage/py.typed +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_storage/session_store.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_storage/sql_provider/cli.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_storage/sql_provider/queries.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_storage/sql_provider/utils.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_storage/text_log_provider.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/builtin/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/builtin/chain.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/builtin/code.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/builtin/file_edit/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/builtin/file_edit/file_edit.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/builtin/file_edit/fuzzy_matcher/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/builtin/file_edit/fuzzy_matcher/example_usage.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/builtin/file_edit/fuzzy_matcher/streaming_fuzzy_matcher.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/builtin/skills.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/builtin/subagent_tools.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/builtin/user_interaction.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/builtin/workers.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/composio_toolset.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/config_creation.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/entry_points.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/fsspec_toolset/diagnostics.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/fsspec_toolset/helpers.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/fsspec_toolset/streaming_diff_parser.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/mcp_discovery/__init__.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/mcp_discovery/data/mcp_servers.parquet +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/mcp_discovery/toolset.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/mcp_run_toolset.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/notifications.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/openapi.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/py.typed +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/search_toolset.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/semantic_memory_toolset.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/streaming_tools.py +0 -0
- {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/vfs_toolset.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agentpool
|
|
3
|
-
Version: 2.2.
|
|
3
|
+
Version: 2.2.3
|
|
4
4
|
Summary: Pydantic-AI based Multi-Agent Framework with YAML-based Agents, Teams, Workflows & Extended ACP / AGUI integration
|
|
5
5
|
Keywords:
|
|
6
6
|
Author: Philipp Temminghoff
|
|
@@ -37,6 +37,7 @@ Requires-Dist: jinjarope
|
|
|
37
37
|
Requires-Dist: llmling-models>=1.4.1
|
|
38
38
|
Requires-Dist: logfire
|
|
39
39
|
Requires-Dist: mcp>=1.2.0
|
|
40
|
+
Requires-Dist: pillow>=11.3.0
|
|
40
41
|
Requires-Dist: platformdirs
|
|
41
42
|
Requires-Dist: promptantic>=0.4.5
|
|
42
43
|
Requires-Dist: psygnal>=0.11.1
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
[project]
|
|
4
4
|
name = "agentpool"
|
|
5
|
-
version = "2.2.
|
|
5
|
+
version = "2.2.3"
|
|
6
6
|
description = "Pydantic-AI based Multi-Agent Framework with YAML-based Agents, Teams, Workflows & Extended ACP / AGUI integration"
|
|
7
7
|
readme = "README.md"
|
|
8
8
|
requires-python = ">=3.13"
|
|
@@ -45,6 +45,7 @@ dependencies = [
|
|
|
45
45
|
"llmling-models>=1.4.1",
|
|
46
46
|
"logfire",
|
|
47
47
|
"mcp>=1.2.0",
|
|
48
|
+
"pillow>=11.3.0",
|
|
48
49
|
"platformdirs",
|
|
49
50
|
"promptantic>=0.4.5",
|
|
50
51
|
"psygnal>=0.11.1",
|
|
@@ -131,7 +131,7 @@ def generate_tool_title(tool_name: str, tool_input: dict[str, Any]) -> str: # n
|
|
|
131
131
|
return f"Editing: {path}"
|
|
132
132
|
|
|
133
133
|
# Command/script execution - show the command
|
|
134
|
-
if any(k in name_lower for k in ["command", "execute", "run", "shell", "script"]) and (
|
|
134
|
+
if any(k in name_lower for k in ["command", "execute", "run", "shell", "script", "bash"]) and (
|
|
135
135
|
cmd := tool_input.get("command")
|
|
136
136
|
):
|
|
137
137
|
# Truncate long commands
|
|
@@ -244,7 +244,7 @@ def infer_tool_kind(tool_name: str) -> ToolCallKind: # noqa: PLR0911
|
|
|
244
244
|
return "move"
|
|
245
245
|
if any(i in name_lower for i in ["search", "find", "query", "lookup"]):
|
|
246
246
|
return "search"
|
|
247
|
-
if any(i in name_lower for i in ["execute", "run", "exec", "command", "shell"]):
|
|
247
|
+
if any(i in name_lower for i in ["execute", "run", "exec", "command", "shell", "bash"]):
|
|
248
248
|
return "execute"
|
|
249
249
|
if any(i in name_lower for i in ["think", "plan", "reason", "analyze"]):
|
|
250
250
|
return "think"
|
|
@@ -19,20 +19,22 @@ from pydantic import ValidationError
|
|
|
19
19
|
from pydantic._internal import _typing_extra
|
|
20
20
|
from pydantic_ai import (
|
|
21
21
|
Agent as PydanticAgent,
|
|
22
|
-
AgentRunResultEvent,
|
|
23
22
|
BaseToolCallPart,
|
|
23
|
+
CallToolsNode,
|
|
24
24
|
FunctionToolCallEvent,
|
|
25
25
|
FunctionToolResultEvent,
|
|
26
|
-
|
|
26
|
+
ModelRequestNode,
|
|
27
27
|
PartStartEvent,
|
|
28
28
|
RunContext,
|
|
29
|
-
TextPart,
|
|
30
|
-
TextPartDelta,
|
|
31
29
|
ToolReturnPart,
|
|
32
30
|
)
|
|
33
31
|
|
|
34
32
|
from agentpool.agents.base_agent import BaseAgent
|
|
35
|
-
from agentpool.agents.events import
|
|
33
|
+
from agentpool.agents.events import (
|
|
34
|
+
RunStartedEvent,
|
|
35
|
+
StreamCompleteEvent,
|
|
36
|
+
ToolCallCompleteEvent,
|
|
37
|
+
)
|
|
36
38
|
from agentpool.agents.modes import ModeInfo
|
|
37
39
|
from agentpool.log import get_logger
|
|
38
40
|
from agentpool.messaging import ChatMessage, MessageHistory, MessageNode
|
|
@@ -51,6 +53,34 @@ from agentpool.utils.streams import FileTracker, merge_queue_into_iterator
|
|
|
51
53
|
TResult = TypeVar("TResult")
|
|
52
54
|
|
|
53
55
|
|
|
56
|
+
def _extract_text_from_messages(
|
|
57
|
+
messages: list[Any], include_interruption_note: bool = False
|
|
58
|
+
) -> str:
|
|
59
|
+
"""Extract text content from pydantic-ai messages.
|
|
60
|
+
|
|
61
|
+
Args:
|
|
62
|
+
messages: List of ModelRequest/ModelResponse messages
|
|
63
|
+
include_interruption_note: Whether to append interruption notice
|
|
64
|
+
|
|
65
|
+
Returns:
|
|
66
|
+
Concatenated text content from all ModelResponse TextParts
|
|
67
|
+
"""
|
|
68
|
+
from pydantic_ai.messages import ModelResponse, TextPart as PydanticTextPart
|
|
69
|
+
|
|
70
|
+
content = "".join(
|
|
71
|
+
part.content
|
|
72
|
+
for msg in messages
|
|
73
|
+
if isinstance(msg, ModelResponse)
|
|
74
|
+
for part in msg.parts
|
|
75
|
+
if isinstance(part, PydanticTextPart)
|
|
76
|
+
)
|
|
77
|
+
if include_interruption_note:
|
|
78
|
+
if content:
|
|
79
|
+
content += "\n\n"
|
|
80
|
+
content += "[Request interrupted by user]"
|
|
81
|
+
return content
|
|
82
|
+
|
|
83
|
+
|
|
54
84
|
if TYPE_CHECKING:
|
|
55
85
|
from collections.abc import AsyncIterator, Coroutine, Sequence
|
|
56
86
|
from datetime import datetime
|
|
@@ -792,9 +822,6 @@ class Agent[TDeps = None, OutputDataT = str](BaseAgent[TDeps, OutputDataT]):
|
|
|
792
822
|
self._cancelled = False
|
|
793
823
|
self._current_stream_task = asyncio.current_task()
|
|
794
824
|
|
|
795
|
-
# Track accumulated content for partial message on cancellation
|
|
796
|
-
accumulated_text: list[str] = []
|
|
797
|
-
|
|
798
825
|
# Execute pre-run hooks
|
|
799
826
|
if self.hooks:
|
|
800
827
|
pre_run_result = await self.hooks.run_pre_run_hooks(
|
|
@@ -815,6 +842,8 @@ class Agent[TDeps = None, OutputDataT = str](BaseAgent[TDeps, OutputDataT]):
|
|
|
815
842
|
await handler(None, run_started)
|
|
816
843
|
yield run_started
|
|
817
844
|
try:
|
|
845
|
+
from pydantic_graph import End
|
|
846
|
+
|
|
818
847
|
agentlet = await self.get_agentlet(tool_choice, model, output_type, input_provider)
|
|
819
848
|
content = await convert_prompts(prompts)
|
|
820
849
|
response_msg: ChatMessage[Any] | None = None
|
|
@@ -823,104 +852,104 @@ class Agent[TDeps = None, OutputDataT = str](BaseAgent[TDeps, OutputDataT]):
|
|
|
823
852
|
|
|
824
853
|
# Use provided usage_limits or fall back to default
|
|
825
854
|
effective_limits = usage_limits or self._default_usage_limits
|
|
855
|
+
history = [m for run in history_list for m in run.to_pydantic_ai()]
|
|
856
|
+
|
|
857
|
+
# Track tool call starts to combine with results later
|
|
858
|
+
pending_tcs: dict[str, BaseToolCallPart] = {}
|
|
859
|
+
file_tracker = FileTracker()
|
|
826
860
|
|
|
827
|
-
|
|
861
|
+
async with agentlet.iter(
|
|
828
862
|
converted,
|
|
829
863
|
deps=deps, # type: ignore[arg-type]
|
|
830
|
-
message_history=
|
|
864
|
+
message_history=history,
|
|
831
865
|
usage_limits=effective_limits,
|
|
832
866
|
instructions=instructions,
|
|
833
|
-
)
|
|
834
|
-
|
|
835
|
-
# Stream events through merge_queue for progress events
|
|
836
|
-
file_tracker = FileTracker()
|
|
837
|
-
async with merge_queue_into_iterator(stream_events, self._event_queue) as events:
|
|
838
|
-
# Track tool call starts to combine with results later
|
|
839
|
-
pending_tcs: dict[str, BaseToolCallPart] = {}
|
|
867
|
+
) as agent_run:
|
|
840
868
|
try:
|
|
841
|
-
async for
|
|
842
|
-
# Check for cancellation
|
|
869
|
+
async for node in agent_run:
|
|
843
870
|
if self._cancelled:
|
|
844
871
|
self.log.info("Stream cancelled by user")
|
|
845
872
|
break
|
|
873
|
+
if isinstance(node, End):
|
|
874
|
+
break
|
|
846
875
|
|
|
847
|
-
#
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
876
|
+
# Stream events from model request node
|
|
877
|
+
if isinstance(node, ModelRequestNode):
|
|
878
|
+
async with (
|
|
879
|
+
node.stream(agent_run.ctx) as agent_stream,
|
|
880
|
+
merge_queue_into_iterator(
|
|
881
|
+
agent_stream, # type: ignore[arg-type]
|
|
882
|
+
self._event_queue,
|
|
883
|
+
) as merged,
|
|
884
|
+
):
|
|
885
|
+
async for event in file_tracker.track(merged):
|
|
886
|
+
if self._cancelled:
|
|
887
|
+
break
|
|
888
|
+
await handler(None, event)
|
|
889
|
+
yield event
|
|
890
|
+
combined = self._process_tool_event(
|
|
891
|
+
event, pending_tcs, message_id
|
|
892
|
+
)
|
|
893
|
+
if combined:
|
|
894
|
+
await handler(None, combined)
|
|
895
|
+
yield combined
|
|
896
|
+
|
|
897
|
+
# Stream events from tool call node
|
|
898
|
+
elif isinstance(node, CallToolsNode):
|
|
899
|
+
async with (
|
|
900
|
+
node.stream(agent_run.ctx) as tool_stream,
|
|
901
|
+
merge_queue_into_iterator(tool_stream, self._event_queue) as merged,
|
|
862
902
|
):
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
tool_name=call_info.tool_name,
|
|
871
|
-
tool_call_id=call_id,
|
|
872
|
-
tool_input=safe_args_as_dict(call_info),
|
|
873
|
-
tool_result=result_event.result.content
|
|
874
|
-
if isinstance(result_event.result, ToolReturnPart)
|
|
875
|
-
else result_event.result,
|
|
876
|
-
agent_name=self.name,
|
|
877
|
-
message_id=message_id,
|
|
903
|
+
async for event in file_tracker.track(merged):
|
|
904
|
+
if self._cancelled:
|
|
905
|
+
break
|
|
906
|
+
await handler(None, event)
|
|
907
|
+
yield event
|
|
908
|
+
combined = self._process_tool_event(
|
|
909
|
+
event, pending_tcs, message_id
|
|
878
910
|
)
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
# Capture final result data, Build final response message
|
|
883
|
-
response_time = time.perf_counter() - start_time
|
|
884
|
-
response_msg = await ChatMessage.from_run_result(
|
|
885
|
-
event.result,
|
|
886
|
-
agent_name=self.name,
|
|
887
|
-
message_id=message_id,
|
|
888
|
-
conversation_id=conversation_id or user_msg.conversation_id,
|
|
889
|
-
parent_id=user_msg.message_id,
|
|
890
|
-
response_time=response_time,
|
|
891
|
-
metadata=file_tracker.get_metadata(),
|
|
892
|
-
)
|
|
911
|
+
if combined:
|
|
912
|
+
await handler(None, combined)
|
|
913
|
+
yield combined
|
|
893
914
|
except asyncio.CancelledError:
|
|
894
915
|
self.log.info("Stream cancelled via task cancellation")
|
|
895
916
|
self._cancelled = True
|
|
896
917
|
|
|
897
|
-
|
|
898
|
-
if self._cancelled:
|
|
918
|
+
# Build response message
|
|
899
919
|
response_time = time.perf_counter() - start_time
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
920
|
+
if self._cancelled:
|
|
921
|
+
partial_content = _extract_text_from_messages(
|
|
922
|
+
agent_run.all_messages(), include_interruption_note=True
|
|
923
|
+
)
|
|
924
|
+
response_msg = ChatMessage(
|
|
925
|
+
content=partial_content,
|
|
926
|
+
role="assistant",
|
|
927
|
+
name=self.name,
|
|
928
|
+
message_id=message_id,
|
|
929
|
+
conversation_id=conversation_id or user_msg.conversation_id,
|
|
930
|
+
parent_id=user_msg.message_id,
|
|
931
|
+
response_time=response_time,
|
|
932
|
+
finish_reason="stop",
|
|
933
|
+
)
|
|
934
|
+
complete_event = StreamCompleteEvent(message=response_msg)
|
|
935
|
+
await handler(None, complete_event)
|
|
936
|
+
yield complete_event
|
|
937
|
+
self._current_stream_task = None
|
|
938
|
+
return
|
|
939
|
+
|
|
940
|
+
if agent_run.result:
|
|
941
|
+
response_msg = await ChatMessage.from_run_result(
|
|
942
|
+
agent_run.result,
|
|
943
|
+
agent_name=self.name,
|
|
944
|
+
message_id=message_id,
|
|
945
|
+
conversation_id=conversation_id or user_msg.conversation_id,
|
|
946
|
+
parent_id=user_msg.message_id,
|
|
947
|
+
response_time=response_time,
|
|
948
|
+
metadata=file_tracker.get_metadata(),
|
|
949
|
+
)
|
|
950
|
+
else:
|
|
951
|
+
msg = "Stream completed without producing a result"
|
|
952
|
+
raise RuntimeError(msg) # noqa: TRY301
|
|
924
953
|
|
|
925
954
|
# Execute post-run hooks
|
|
926
955
|
if self.hooks:
|
|
@@ -954,6 +983,41 @@ class Agent[TDeps = None, OutputDataT = str](BaseAgent[TDeps, OutputDataT]):
|
|
|
954
983
|
finally:
|
|
955
984
|
self._current_stream_task = None
|
|
956
985
|
|
|
986
|
+
def _process_tool_event(
|
|
987
|
+
self,
|
|
988
|
+
event: RichAgentStreamEvent[Any],
|
|
989
|
+
pending_tool_calls: dict[str, BaseToolCallPart],
|
|
990
|
+
message_id: str,
|
|
991
|
+
) -> ToolCallCompleteEvent | None:
|
|
992
|
+
"""Process tool-related events and return combined event when complete.
|
|
993
|
+
|
|
994
|
+
Args:
|
|
995
|
+
event: The streaming event to process
|
|
996
|
+
pending_tool_calls: Dict tracking in-progress tool calls by ID
|
|
997
|
+
message_id: Message ID for the combined event
|
|
998
|
+
|
|
999
|
+
Returns:
|
|
1000
|
+
ToolCallCompleteEvent if a tool call completed, None otherwise
|
|
1001
|
+
"""
|
|
1002
|
+
match event:
|
|
1003
|
+
case PartStartEvent(part=BaseToolCallPart() as tool_part):
|
|
1004
|
+
pending_tool_calls[tool_part.tool_call_id] = tool_part
|
|
1005
|
+
case FunctionToolCallEvent(part=tool_part):
|
|
1006
|
+
pending_tool_calls[tool_part.tool_call_id] = tool_part
|
|
1007
|
+
case FunctionToolResultEvent(tool_call_id=call_id) as result_event:
|
|
1008
|
+
if call_info := pending_tool_calls.pop(call_id, None):
|
|
1009
|
+
return ToolCallCompleteEvent(
|
|
1010
|
+
tool_name=call_info.tool_name,
|
|
1011
|
+
tool_call_id=call_id,
|
|
1012
|
+
tool_input=safe_args_as_dict(call_info),
|
|
1013
|
+
tool_result=result_event.result.content
|
|
1014
|
+
if isinstance(result_event.result, ToolReturnPart)
|
|
1015
|
+
else result_event.result,
|
|
1016
|
+
agent_name=self.name,
|
|
1017
|
+
message_id=message_id,
|
|
1018
|
+
)
|
|
1019
|
+
return None
|
|
1020
|
+
|
|
957
1021
|
async def run_iter(
|
|
958
1022
|
self,
|
|
959
1023
|
*prompt_groups: Sequence[PromptCompatible],
|
|
@@ -211,9 +211,9 @@ class ClaudeACPAgentConfig(MCPCapableACPAgentConfig):
|
|
|
211
211
|
)
|
|
212
212
|
"""Fallback model when default is overloaded."""
|
|
213
213
|
|
|
214
|
-
|
|
214
|
+
auto_approve: bool = Field(
|
|
215
215
|
default=False,
|
|
216
|
-
title="
|
|
216
|
+
title="Auto Approve",
|
|
217
217
|
)
|
|
218
218
|
"""Bypass all permission checks. Only for sandboxed environments."""
|
|
219
219
|
|
|
@@ -267,7 +267,7 @@ class ClaudeACPAgentConfig(MCPCapableACPAgentConfig):
|
|
|
267
267
|
args.extend(["--tools", ""])
|
|
268
268
|
if self.fallback_model:
|
|
269
269
|
args.extend(["--fallback-model", self.fallback_model])
|
|
270
|
-
if self.
|
|
270
|
+
if self.auto_approve:
|
|
271
271
|
args.append("--dangerously-skip-permissions")
|
|
272
272
|
if self.output_type:
|
|
273
273
|
args.extend(["--output-format", "json"])
|
|
@@ -606,7 +606,7 @@ class KimiACPAgentConfig(MCPCapableACPAgentConfig):
|
|
|
606
606
|
)
|
|
607
607
|
"""Working directory for the agent."""
|
|
608
608
|
|
|
609
|
-
|
|
609
|
+
auto_approve: bool = Field(default=False, title="Auto Approve")
|
|
610
610
|
"""Automatically approve all actions."""
|
|
611
611
|
|
|
612
612
|
thinking: bool | None = Field(default=None, title="Thinking")
|
|
@@ -636,7 +636,7 @@ class KimiACPAgentConfig(MCPCapableACPAgentConfig):
|
|
|
636
636
|
if mcp_json:
|
|
637
637
|
args.extend(["--mcp-config", mcp_json])
|
|
638
638
|
|
|
639
|
-
if self.
|
|
639
|
+
if self.auto_approve:
|
|
640
640
|
args.append("--yolo")
|
|
641
641
|
if self.thinking is not None and self.thinking:
|
|
642
642
|
args.append("--thinking")
|
|
@@ -66,6 +66,12 @@ class CodexACPAgentConfig(BaseACPAgentConfig):
|
|
|
66
66
|
)
|
|
67
67
|
"""Model override."""
|
|
68
68
|
|
|
69
|
+
auto_approve: bool = Field(
|
|
70
|
+
default=False,
|
|
71
|
+
title="Auto Approve",
|
|
72
|
+
)
|
|
73
|
+
"""Automatically accept all actions (YOLO mode)."""
|
|
74
|
+
|
|
69
75
|
sandbox_permissions: list[str] | None = Field(
|
|
70
76
|
default=None,
|
|
71
77
|
title="Sandbox Permissions",
|
|
@@ -99,6 +105,8 @@ class CodexACPAgentConfig(BaseACPAgentConfig):
|
|
|
99
105
|
"-c",
|
|
100
106
|
f"shell_environment_policy.inherit={self.shell_environment_policy_inherit}",
|
|
101
107
|
])
|
|
108
|
+
if self.auto_approve:
|
|
109
|
+
args.extend(["-c", "approval_mode=yolo"])
|
|
102
110
|
|
|
103
111
|
return args
|
|
104
112
|
|
|
@@ -603,7 +611,7 @@ class VTCodeACPAgentConfig(BaseACPAgentConfig):
|
|
|
603
611
|
)
|
|
604
612
|
"""Configuration file path."""
|
|
605
613
|
|
|
606
|
-
|
|
614
|
+
auto_approve: bool = Field(default=False, title="Auto Approve")
|
|
607
615
|
"""Skip safety confirmations."""
|
|
608
616
|
|
|
609
617
|
full_auto: bool = Field(default=False, title="Full Auto")
|
|
@@ -643,7 +651,7 @@ class VTCodeACPAgentConfig(BaseACPAgentConfig):
|
|
|
643
651
|
args.extend(["--max-tool-calls", str(self.max_tool_calls)])
|
|
644
652
|
if self.config:
|
|
645
653
|
args.extend(["--config", self.config])
|
|
646
|
-
if self.
|
|
654
|
+
if self.auto_approve:
|
|
647
655
|
args.append("--skip-confirmations")
|
|
648
656
|
if self.full_auto:
|
|
649
657
|
args.append("--full-auto")
|
|
@@ -807,7 +815,7 @@ class GeminiACPAgentConfig(BaseACPAgentConfig):
|
|
|
807
815
|
sandbox: bool = Field(default=False, title="Sandbox")
|
|
808
816
|
"""Run in sandbox mode."""
|
|
809
817
|
|
|
810
|
-
|
|
818
|
+
auto_approve: bool = Field(default=False, title="Auto Approve")
|
|
811
819
|
"""Automatically accept all actions."""
|
|
812
820
|
|
|
813
821
|
allowed_tools: list[str] | None = Field(
|
|
@@ -859,7 +867,7 @@ class GeminiACPAgentConfig(BaseACPAgentConfig):
|
|
|
859
867
|
args.extend(["--approval-mode", self.approval_mode])
|
|
860
868
|
if self.sandbox:
|
|
861
869
|
args.append("--sandbox")
|
|
862
|
-
if self.
|
|
870
|
+
if self.auto_approve:
|
|
863
871
|
args.append("--yolo")
|
|
864
872
|
if self.allowed_tools:
|
|
865
873
|
args.extend(["--allowed-tools", *self.allowed_tools])
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
5
|
from dataclasses import dataclass
|
|
6
|
-
from typing import TYPE_CHECKING, Literal
|
|
6
|
+
from typing import TYPE_CHECKING, Any, Literal
|
|
7
7
|
|
|
8
8
|
from agentpool.agents.context import AgentContext # noqa: TC001
|
|
9
9
|
from agentpool.resource_providers import ResourceProvider
|
|
@@ -18,6 +18,7 @@ if TYPE_CHECKING:
|
|
|
18
18
|
# Keep PlanEntry for backward compatibility with event emitting
|
|
19
19
|
PlanEntryPriority = Literal["high", "medium", "low"]
|
|
20
20
|
PlanEntryStatus = Literal["pending", "in_progress", "completed"]
|
|
21
|
+
PlanToolMode = Literal["granular", "declarative", "hybrid"]
|
|
21
22
|
|
|
22
23
|
|
|
23
24
|
@dataclass(kw_only=True)
|
|
@@ -58,9 +59,15 @@ class PlanProvider(ResourceProvider):
|
|
|
58
59
|
|
|
59
60
|
kind = "tools"
|
|
60
61
|
|
|
61
|
-
def __init__(self) -> None:
|
|
62
|
-
"""Initialize plan provider.
|
|
62
|
+
def __init__(self, mode: PlanToolMode = "granular") -> None:
|
|
63
|
+
"""Initialize plan provider.
|
|
64
|
+
|
|
65
|
+
Args:
|
|
66
|
+
mode: Tool mode - 'granular' for separate tools, 'declarative' for
|
|
67
|
+
single set_plan tool, 'hybrid' for both approaches.
|
|
68
|
+
"""
|
|
63
69
|
super().__init__(name="plan")
|
|
70
|
+
self.mode = mode
|
|
64
71
|
|
|
65
72
|
def _get_tracker(self, agent_ctx: AgentContext) -> TodoTracker | None:
|
|
66
73
|
"""Get the TodoTracker from the pool."""
|
|
@@ -69,13 +76,29 @@ class PlanProvider(ResourceProvider):
|
|
|
69
76
|
return None
|
|
70
77
|
|
|
71
78
|
async def get_tools(self) -> list[Tool]:
|
|
72
|
-
"""Get plan management tools."""
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
self.create_tool(self.
|
|
78
|
-
|
|
79
|
+
"""Get plan management tools based on mode."""
|
|
80
|
+
tools: list[Tool] = [self.create_tool(self.get_plan, category="read")]
|
|
81
|
+
|
|
82
|
+
if self.mode == "declarative":
|
|
83
|
+
# Single bulk tool for capable models
|
|
84
|
+
tools.append(self.create_tool(self.set_plan, category="other"))
|
|
85
|
+
elif self.mode == "hybrid":
|
|
86
|
+
# Both approaches - model chooses
|
|
87
|
+
tools.extend([
|
|
88
|
+
self.create_tool(self.set_plan, category="other"),
|
|
89
|
+
self.create_tool(self.add_plan_entry, category="other"),
|
|
90
|
+
self.create_tool(self.update_plan_entry, category="edit"),
|
|
91
|
+
self.create_tool(self.remove_plan_entry, category="delete"),
|
|
92
|
+
])
|
|
93
|
+
else:
|
|
94
|
+
# granular mode (default) - separate tools for simpler models
|
|
95
|
+
tools.extend([
|
|
96
|
+
self.create_tool(self.add_plan_entry, category="other"),
|
|
97
|
+
self.create_tool(self.update_plan_entry, category="edit"),
|
|
98
|
+
self.create_tool(self.remove_plan_entry, category="delete"),
|
|
99
|
+
])
|
|
100
|
+
|
|
101
|
+
return tools
|
|
79
102
|
|
|
80
103
|
async def get_plan(self, agent_ctx: AgentContext) -> str:
|
|
81
104
|
"""Get the current plan formatted as markdown.
|
|
@@ -108,6 +131,47 @@ class PlanProvider(ResourceProvider):
|
|
|
108
131
|
|
|
109
132
|
return "\n".join(lines)
|
|
110
133
|
|
|
134
|
+
async def set_plan(
|
|
135
|
+
self,
|
|
136
|
+
agent_ctx: AgentContext,
|
|
137
|
+
entries: list[dict[str, Any]],
|
|
138
|
+
) -> str:
|
|
139
|
+
"""Replace the entire plan with new entries (declarative/bulk update).
|
|
140
|
+
|
|
141
|
+
This is more efficient than multiple add/update calls when setting
|
|
142
|
+
or significantly modifying the plan.
|
|
143
|
+
|
|
144
|
+
Args:
|
|
145
|
+
agent_ctx: Agent execution context
|
|
146
|
+
entries: List of plan entries, each with:
|
|
147
|
+
- content (str, required): Task description
|
|
148
|
+
- priority (str, optional): "high", "medium", or "low" (default: "medium")
|
|
149
|
+
- status (str, optional): "pending", "in_progress", or "completed"
|
|
150
|
+
(default: "pending")
|
|
151
|
+
|
|
152
|
+
Returns:
|
|
153
|
+
Success message indicating plan was updated
|
|
154
|
+
"""
|
|
155
|
+
tracker = self._get_tracker(agent_ctx)
|
|
156
|
+
if tracker is None:
|
|
157
|
+
return "Error: No pool available for plan tracking"
|
|
158
|
+
|
|
159
|
+
# Clear existing entries
|
|
160
|
+
tracker.clear()
|
|
161
|
+
|
|
162
|
+
# Add all new entries
|
|
163
|
+
for entry in entries:
|
|
164
|
+
content = entry.get("content", "")
|
|
165
|
+
if not content:
|
|
166
|
+
continue
|
|
167
|
+
priority = entry.get("priority", "medium")
|
|
168
|
+
status = entry.get("status", "pending")
|
|
169
|
+
tracker.add(content, priority=priority, status=status)
|
|
170
|
+
|
|
171
|
+
await self._emit_plan_update(agent_ctx)
|
|
172
|
+
|
|
173
|
+
return f"Plan updated with {len(tracker.entries)} entries"
|
|
174
|
+
|
|
111
175
|
async def add_plan_entry(
|
|
112
176
|
self,
|
|
113
177
|
agent_ctx: AgentContext,
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"""Session management package."""
|
|
2
2
|
|
|
3
|
-
from agentpool.sessions.models import SessionData
|
|
3
|
+
from agentpool.sessions.models import ProjectData, SessionData
|
|
4
4
|
from agentpool.sessions.store import SessionStore
|
|
5
5
|
from agentpool.sessions.manager import SessionManager
|
|
6
6
|
from agentpool.sessions.session import ClientSession
|
|
7
7
|
|
|
8
8
|
__all__ = [
|
|
9
9
|
"ClientSession",
|
|
10
|
+
"ProjectData",
|
|
10
11
|
"SessionData",
|
|
11
12
|
"SessionManager",
|
|
12
13
|
"SessionStore",
|
|
@@ -17,6 +17,7 @@ if TYPE_CHECKING:
|
|
|
17
17
|
|
|
18
18
|
from agentpool.delegation.pool import AgentPool
|
|
19
19
|
from agentpool.sessions.store import SessionStore
|
|
20
|
+
from agentpool.storage.manager import StorageManager
|
|
20
21
|
|
|
21
22
|
logger = get_logger(__name__)
|
|
22
23
|
|
|
@@ -37,6 +38,7 @@ class SessionManager:
|
|
|
37
38
|
pool: AgentPool[Any],
|
|
38
39
|
store: SessionStore | None = None,
|
|
39
40
|
pool_id: str | None = None,
|
|
41
|
+
storage: StorageManager | None = None,
|
|
40
42
|
) -> None:
|
|
41
43
|
"""Initialize session manager.
|
|
42
44
|
|
|
@@ -44,10 +46,12 @@ class SessionManager:
|
|
|
44
46
|
pool: Agent pool for agent access
|
|
45
47
|
store: Session persistence backend (defaults to MemorySessionStore)
|
|
46
48
|
pool_id: Optional identifier for this pool (for multi-pool setups)
|
|
49
|
+
storage: Optional storage manager for project tracking
|
|
47
50
|
"""
|
|
48
51
|
self._pool = pool
|
|
49
52
|
self._store = store or MemorySessionStore()
|
|
50
53
|
self._pool_id = pool_id
|
|
54
|
+
self._storage = storage
|
|
51
55
|
self._active: dict[str, ClientSession] = {}
|
|
52
56
|
self._lock = asyncio.Lock()
|
|
53
57
|
logger.debug("Initialized session manager", pool_id=pool_id)
|
|
@@ -145,12 +149,31 @@ class SessionManager:
|
|
|
145
149
|
msg = f"Session '{session_id}' already exists"
|
|
146
150
|
raise ValueError(msg)
|
|
147
151
|
|
|
152
|
+
# Get or create project if cwd provided and storage available
|
|
153
|
+
project_id: str | None = None
|
|
154
|
+
if cwd and self._storage:
|
|
155
|
+
try:
|
|
156
|
+
from agentpool_storage.project_store import ProjectStore
|
|
157
|
+
|
|
158
|
+
project_store = ProjectStore(self._storage)
|
|
159
|
+
project = await project_store.get_or_create(cwd)
|
|
160
|
+
project_id = project.project_id
|
|
161
|
+
logger.debug(
|
|
162
|
+
"Associated session with project",
|
|
163
|
+
session_id=session_id,
|
|
164
|
+
project_id=project_id,
|
|
165
|
+
worktree=project.worktree,
|
|
166
|
+
)
|
|
167
|
+
except Exception:
|
|
168
|
+
logger.exception("Failed to create/get project for session")
|
|
169
|
+
|
|
148
170
|
# Create session data
|
|
149
171
|
data = SessionData(
|
|
150
172
|
session_id=session_id,
|
|
151
173
|
agent_name=agent_name,
|
|
152
174
|
conversation_id=conversation_id or f"conv_{uuid4().hex[:12]}",
|
|
153
175
|
pool_id=self._pool_id,
|
|
176
|
+
project_id=project_id,
|
|
154
177
|
cwd=cwd,
|
|
155
178
|
metadata=metadata or {},
|
|
156
179
|
)
|