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.
Files changed (532) hide show
  1. {agentpool-2.2.2 → agentpool-2.2.3}/PKG-INFO +2 -1
  2. {agentpool-2.2.2 → agentpool-2.2.3}/pyproject.toml +2 -1
  3. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/utils.py +2 -2
  4. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/agent.py +153 -89
  5. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/models/acp_agents/mcp_capable.py +5 -5
  6. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/models/acp_agents/non_mcp.py +12 -4
  7. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/resource_providers/plan_provider.py +74 -10
  8. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/sessions/__init__.py +2 -1
  9. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/sessions/manager.py +23 -0
  10. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/sessions/models.py +41 -0
  11. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/storage/manager.py +134 -0
  12. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/utils/token_breakdown.py +166 -0
  13. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_cli/serve_acp.py +3 -4
  14. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/storage.py +46 -1
  15. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/toolsets.py +34 -2
  16. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/acp_server/commands/docs_commands/fetch_repo.py +10 -10
  17. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/ENDPOINTS.md +2 -2
  18. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/models/events.py +9 -9
  19. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/routes/app_routes.py +33 -11
  20. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/routes/lsp_routes.py +132 -15
  21. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/routes/session_routes.py +2 -2
  22. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/server.py +48 -1
  23. agentpool-2.2.3/src/agentpool_storage/__init__.py +25 -0
  24. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_storage/base.py +84 -0
  25. agentpool-2.2.3/src/agentpool_storage/claude_provider.py +907 -0
  26. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_storage/file_provider.py +112 -0
  27. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_storage/memory_provider.py +51 -0
  28. agentpool-2.2.3/src/agentpool_storage/opencode_provider.py +730 -0
  29. agentpool-2.2.3/src/agentpool_storage/project_store.py +325 -0
  30. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_storage/sql_provider/__init__.py +4 -2
  31. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_storage/sql_provider/models.py +36 -0
  32. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_storage/sql_provider/sql_provider.py +111 -1
  33. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/builtin/debug.py +2 -2
  34. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/builtin/execution_environment.py +2 -2
  35. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/fsspec_toolset/__init__.py +2 -0
  36. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/fsspec_toolset/grep.py +74 -2
  37. agentpool-2.2.3/src/agentpool_toolsets/fsspec_toolset/image_utils.py +161 -0
  38. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/fsspec_toolset/toolset.py +41 -8
  39. agentpool-2.2.2/src/agentpool_storage/__init__.py +0 -9
  40. {agentpool-2.2.2 → agentpool-2.2.3}/LICENSE +0 -0
  41. {agentpool-2.2.2 → agentpool-2.2.3}/README.md +0 -0
  42. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/README.md +0 -0
  43. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/__init__.py +0 -0
  44. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/__main__.py +0 -0
  45. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/acp_requests.py +0 -0
  46. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/agent/__init__.py +0 -0
  47. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/agent/connection.py +0 -0
  48. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/agent/implementations/__init__.py +0 -0
  49. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/agent/implementations/debug_server/__init__.py +0 -0
  50. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/agent/implementations/debug_server/cli.py +0 -0
  51. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/agent/implementations/debug_server/debug.html +0 -0
  52. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/agent/implementations/debug_server/debug_server.py +0 -0
  53. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/agent/implementations/testing.py +0 -0
  54. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/agent/protocol.py +0 -0
  55. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/bridge/README.md +0 -0
  56. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/bridge/__init__.py +0 -0
  57. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/bridge/__main__.py +0 -0
  58. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/bridge/bridge.py +0 -0
  59. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/bridge/py.typed +0 -0
  60. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/bridge/settings.py +0 -0
  61. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/bridge/ws_server.py +0 -0
  62. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/bridge/ws_server_cli.py +0 -0
  63. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/client/__init__.py +0 -0
  64. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/client/connection.py +0 -0
  65. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/client/implementations/__init__.py +0 -0
  66. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/client/implementations/default_client.py +0 -0
  67. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/client/implementations/headless_client.py +0 -0
  68. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/client/implementations/noop_client.py +0 -0
  69. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/client/protocol.py +0 -0
  70. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/connection.py +0 -0
  71. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/exceptions.py +0 -0
  72. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/filesystem.py +0 -0
  73. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/notifications.py +0 -0
  74. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/py.typed +0 -0
  75. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/schema/__init__.py +0 -0
  76. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/schema/agent_plan.py +0 -0
  77. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/schema/agent_requests.py +0 -0
  78. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/schema/agent_responses.py +0 -0
  79. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/schema/base.py +0 -0
  80. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/schema/capabilities.py +0 -0
  81. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/schema/client_requests.py +0 -0
  82. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/schema/client_responses.py +0 -0
  83. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/schema/common.py +0 -0
  84. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/schema/content_blocks.py +0 -0
  85. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/schema/mcp.py +0 -0
  86. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/schema/messages.py +0 -0
  87. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/schema/notifications.py +0 -0
  88. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/schema/protocol_stuff.md +0 -0
  89. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/schema/session_state.py +0 -0
  90. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/schema/session_updates.py +0 -0
  91. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/schema/slash_commands.py +0 -0
  92. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/schema/terminal.py +0 -0
  93. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/schema/tool_call.py +0 -0
  94. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/stdio.py +0 -0
  95. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/task/__init__.py +0 -0
  96. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/task/debug.py +0 -0
  97. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/task/dispatcher.py +0 -0
  98. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/task/queue.py +0 -0
  99. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/task/sender.py +0 -0
  100. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/task/state.py +0 -0
  101. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/task/supervisor.py +0 -0
  102. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/terminal_handle.py +0 -0
  103. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/tool_call_reporter.py +0 -0
  104. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/tool_call_state.py +0 -0
  105. {agentpool-2.2.2 → agentpool-2.2.3}/src/acp/transports.py +0 -0
  106. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/__init__.py +0 -0
  107. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/__main__.py +0 -0
  108. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/__init__.py +0 -0
  109. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/acp_agent/__init__.py +0 -0
  110. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/acp_agent/acp_agent.py +0 -0
  111. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/acp_agent/acp_converters.py +0 -0
  112. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/acp_agent/client_handler.py +0 -0
  113. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/acp_agent/session_state.py +0 -0
  114. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/agui_agent/__init__.py +0 -0
  115. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/agui_agent/agui_agent.py +0 -0
  116. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/agui_agent/agui_converters.py +0 -0
  117. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/agui_agent/chunk_transformer.py +0 -0
  118. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/agui_agent/event_types.py +0 -0
  119. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/agui_agent/helpers.py +0 -0
  120. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/architect.py +0 -0
  121. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/base_agent.py +0 -0
  122. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/claude_code_agent/__init__.py +0 -0
  123. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/claude_code_agent/claude_code_agent.py +0 -0
  124. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/claude_code_agent/converters.py +0 -0
  125. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/claude_code_agent/history.py +0 -0
  126. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/context.py +0 -0
  127. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/events/__init__.py +0 -0
  128. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/events/builtin_handlers.py +0 -0
  129. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/events/event_emitter.py +0 -0
  130. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/events/events.py +0 -0
  131. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/events/tts_handlers.py +0 -0
  132. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/interactions.py +0 -0
  133. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/modes.py +0 -0
  134. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/slashed_agent.py +0 -0
  135. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/sys_prompts.py +0 -0
  136. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/tool_call_accumulator.py +0 -0
  137. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/agents/tool_wrapping.py +0 -0
  138. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/base_provider.py +0 -0
  139. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/common_types.py +0 -0
  140. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/config_resources/__init__.py +0 -0
  141. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/config_resources/acp_assistant.yml +0 -0
  142. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/config_resources/agents.yml +0 -0
  143. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/config_resources/agents_template.yml +0 -0
  144. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/config_resources/agui_test.yml +0 -0
  145. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/config_resources/claude_code_agent.yml +0 -0
  146. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/config_resources/claude_style_subagent.md +0 -0
  147. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/config_resources/external_acp_agents.yml +0 -0
  148. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/config_resources/opencode_style_subagent.md +0 -0
  149. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/config_resources/tts_test_agents.yml +0 -0
  150. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/delegation/__init__.py +0 -0
  151. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/delegation/base_team.py +0 -0
  152. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/delegation/message_flow_tracker.py +0 -0
  153. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/delegation/pool.py +0 -0
  154. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/delegation/team.py +0 -0
  155. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/delegation/teamrun.py +0 -0
  156. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/diagnostics/__init__.py +0 -0
  157. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/diagnostics/lsp_manager.py +0 -0
  158. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/diagnostics/lsp_proxy.py +0 -0
  159. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/diagnostics/lsp_proxy_script.py +0 -0
  160. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/diagnostics/models.py +0 -0
  161. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/docs/__init__.py +0 -0
  162. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/docs/gen_examples.py +0 -0
  163. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/docs/utils.py +0 -0
  164. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/functional/__init__.py +0 -0
  165. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/functional/py.typed +0 -0
  166. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/functional/run.py +0 -0
  167. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/functional/structure.py +0 -0
  168. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/hooks/__init__.py +0 -0
  169. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/hooks/agent_hooks.py +0 -0
  170. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/hooks/base.py +0 -0
  171. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/hooks/callable.py +0 -0
  172. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/hooks/command.py +0 -0
  173. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/hooks/prompt.py +0 -0
  174. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/jinja_filters.py +0 -0
  175. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/log.py +0 -0
  176. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/mcp_server/__init__.py +0 -0
  177. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/mcp_server/client.py +0 -0
  178. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/mcp_server/constants.py +0 -0
  179. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/mcp_server/conversions.py +0 -0
  180. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/mcp_server/helpers.py +0 -0
  181. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/mcp_server/manager.py +0 -0
  182. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/mcp_server/message_handler.py +0 -0
  183. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/mcp_server/registries/__init__.py +0 -0
  184. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/mcp_server/registries/official_registry_client.py +0 -0
  185. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/mcp_server/registries/pulsemcp_client.py +0 -0
  186. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/mcp_server/tool_bridge.py +0 -0
  187. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/messaging/__init__.py +0 -0
  188. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/messaging/compaction.py +0 -0
  189. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/messaging/connection_manager.py +0 -0
  190. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/messaging/context.py +0 -0
  191. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/messaging/event_manager.py +0 -0
  192. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/messaging/events.py +0 -0
  193. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/messaging/message_container.py +0 -0
  194. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/messaging/message_history.py +0 -0
  195. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/messaging/messagenode.py +0 -0
  196. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/messaging/messages.py +0 -0
  197. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/messaging/processing.py +0 -0
  198. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/mime_utils.py +0 -0
  199. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/models/__init__.py +0 -0
  200. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/models/acp_agents/__init__.py +0 -0
  201. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/models/acp_agents/base.py +0 -0
  202. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/models/agents.py +0 -0
  203. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/models/agui_agents.py +0 -0
  204. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/models/claude_code_agents.py +0 -0
  205. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/models/file_agents.py +0 -0
  206. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/models/file_parsing.py +0 -0
  207. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/models/manifest.py +0 -0
  208. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/observability/__init__.py +0 -0
  209. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/observability/observability_registry.py +0 -0
  210. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/prompts/__init__.py +0 -0
  211. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/prompts/base.py +0 -0
  212. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/prompts/builtin_provider.py +0 -0
  213. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/prompts/conversion_manager.py +0 -0
  214. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/prompts/convert.py +0 -0
  215. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/prompts/manager.py +0 -0
  216. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/prompts/parts/zed.md +0 -0
  217. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/prompts/prompts.py +0 -0
  218. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/py.typed +0 -0
  219. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/README.md +0 -0
  220. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
  221. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/c-tags.scm +0 -0
  222. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
  223. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/clojure-tags.scm +0 -0
  224. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
  225. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
  226. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
  227. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/d-tags.scm +0 -0
  228. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
  229. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
  230. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
  231. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
  232. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
  233. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/go-tags.scm +0 -0
  234. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/java-tags.scm +0 -0
  235. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
  236. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
  237. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/matlab-tags.scm +0 -0
  238. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
  239. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
  240. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
  241. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
  242. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/python-tags.scm +0 -0
  243. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/r-tags.scm +0 -0
  244. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
  245. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
  246. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
  247. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
  248. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
  249. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
  250. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/README.md +0 -0
  251. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/c-tags.scm +0 -0
  252. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
  253. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/cpp-tags.scm +0 -0
  254. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/dart-tags.scm +0 -0
  255. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/elisp-tags.scm +0 -0
  256. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/elixir-tags.scm +0 -0
  257. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/elm-tags.scm +0 -0
  258. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/fortran-tags.scm +0 -0
  259. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/go-tags.scm +0 -0
  260. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/haskell-tags.scm +0 -0
  261. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/hcl-tags.scm +0 -0
  262. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/java-tags.scm +0 -0
  263. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/javascript-tags.scm +0 -0
  264. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/julia-tags.scm +0 -0
  265. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
  266. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/matlab-tags.scm +0 -0
  267. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
  268. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
  269. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/php-tags.scm +0 -0
  270. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/python-tags.scm +0 -0
  271. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/ql-tags.scm +0 -0
  272. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/ruby-tags.scm +0 -0
  273. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/rust-tags.scm +0 -0
  274. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/scala-tags.scm +0 -0
  275. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/typescript-tags.scm +0 -0
  276. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/queries/tree-sitter-languages/zig-tags.scm +0 -0
  277. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/repomap.py +0 -0
  278. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/resource_providers/__init__.py +0 -0
  279. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/resource_providers/aggregating.py +0 -0
  280. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/resource_providers/base.py +0 -0
  281. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/resource_providers/codemode/__init__.py +0 -0
  282. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/resource_providers/codemode/code_executor.py +0 -0
  283. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/resource_providers/codemode/default_prompt.py +0 -0
  284. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/resource_providers/codemode/helpers.py +0 -0
  285. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/resource_providers/codemode/progress_executor.py +0 -0
  286. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/resource_providers/codemode/provider.py +0 -0
  287. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/resource_providers/codemode/remote_mcp_execution.py +0 -0
  288. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/resource_providers/codemode/remote_provider.py +0 -0
  289. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/resource_providers/filtering.py +0 -0
  290. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/resource_providers/mcp_provider.py +0 -0
  291. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/resource_providers/pool.py +0 -0
  292. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/resource_providers/static.py +0 -0
  293. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/running/__init__.py +0 -0
  294. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/running/decorators.py +0 -0
  295. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/running/discovery.py +0 -0
  296. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/running/executor.py +0 -0
  297. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/running/injection.py +0 -0
  298. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/running/py.typed +0 -0
  299. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/running/run_nodes.py +0 -0
  300. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/server.py +0 -0
  301. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/sessions/session.py +0 -0
  302. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/sessions/store.py +0 -0
  303. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/skills/__init__.py +0 -0
  304. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/skills/manager.py +0 -0
  305. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/skills/registry.py +0 -0
  306. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/skills/skill.py +0 -0
  307. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/storage/__init__.py +0 -0
  308. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/storage/serialization.py +0 -0
  309. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/talk/__init__.py +0 -0
  310. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/talk/registry.py +0 -0
  311. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/talk/stats.py +0 -0
  312. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/talk/talk.py +0 -0
  313. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/tasks/__init__.py +0 -0
  314. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/tasks/exceptions.py +0 -0
  315. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/tasks/registry.py +0 -0
  316. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/testing.py +0 -0
  317. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/text_templates/__init__.py +0 -0
  318. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/text_templates/system_prompt.jinja +0 -0
  319. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/text_templates/tool_call_default.jinja +0 -0
  320. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/text_templates/tool_call_markdown.jinja +0 -0
  321. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/text_templates/tool_call_simple.jinja +0 -0
  322. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/tools/__init__.py +0 -0
  323. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/tools/base.py +0 -0
  324. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/tools/exceptions.py +0 -0
  325. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/tools/manager.py +0 -0
  326. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/tools/tool_call_info.py +0 -0
  327. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/ui/__init__.py +0 -0
  328. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/ui/base.py +0 -0
  329. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/ui/mock_provider.py +0 -0
  330. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/ui/stdlib_provider.py +0 -0
  331. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/utils/__init__.py +0 -0
  332. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/utils/baseregistry.py +0 -0
  333. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/utils/count_tokens.py +0 -0
  334. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/utils/dag.py +0 -0
  335. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/utils/file_watcher.py +0 -0
  336. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/utils/identifiers.py +0 -0
  337. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/utils/importing.py +0 -0
  338. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/utils/inspection.py +0 -0
  339. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/utils/model_capabilities.py +0 -0
  340. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/utils/network.py +0 -0
  341. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/utils/now.py +0 -0
  342. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/utils/parse_time.py +0 -0
  343. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/utils/pydantic_ai_helpers.py +0 -0
  344. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/utils/result_utils.py +0 -0
  345. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/utils/signatures.py +0 -0
  346. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/utils/streams.py +0 -0
  347. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/utils/subprocess_utils.py +0 -0
  348. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/utils/tasks.py +0 -0
  349. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool/vfs_registry.py +0 -0
  350. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_cli/__init__.py +0 -0
  351. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_cli/__main__.py +0 -0
  352. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_cli/agent.py +0 -0
  353. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_cli/cli_types.py +0 -0
  354. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_cli/common.py +0 -0
  355. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_cli/create.py +0 -0
  356. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_cli/history.py +0 -0
  357. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_cli/log.py +0 -0
  358. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_cli/py.typed +0 -0
  359. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_cli/run.py +0 -0
  360. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_cli/serve_agui.py +0 -0
  361. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_cli/serve_api.py +0 -0
  362. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_cli/serve_mcp.py +0 -0
  363. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_cli/serve_opencode.py +0 -0
  364. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_cli/serve_vercel.py +0 -0
  365. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_cli/store.py +0 -0
  366. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_cli/task.py +0 -0
  367. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_cli/utils.py +0 -0
  368. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_cli/watch.py +0 -0
  369. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_commands/__init__.py +0 -0
  370. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_commands/agents.py +0 -0
  371. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_commands/base.py +0 -0
  372. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_commands/commands.py +0 -0
  373. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_commands/completers.py +0 -0
  374. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_commands/connections.py +0 -0
  375. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_commands/history.py +0 -0
  376. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_commands/markdown_utils.py +0 -0
  377. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_commands/mcp.py +0 -0
  378. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_commands/models.py +0 -0
  379. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_commands/prompts.py +0 -0
  380. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_commands/py.typed +0 -0
  381. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_commands/read.py +0 -0
  382. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_commands/resources.py +0 -0
  383. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_commands/session.py +0 -0
  384. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_commands/tools.py +0 -0
  385. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_commands/utils.py +0 -0
  386. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_commands/workers.py +0 -0
  387. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/__init__.py +0 -0
  388. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/builtin_tools.py +0 -0
  389. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/commands.py +0 -0
  390. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/compaction.py +0 -0
  391. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/conditions.py +0 -0
  392. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/converters.py +0 -0
  393. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/durable.py +0 -0
  394. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/event_handlers.py +0 -0
  395. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/events.py +0 -0
  396. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/forward_targets.py +0 -0
  397. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/hook_conditions.py +0 -0
  398. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/hooks.py +0 -0
  399. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/jinja.py +0 -0
  400. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/knowledge.py +0 -0
  401. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/loaders.py +0 -0
  402. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/mcp_server.py +0 -0
  403. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/nodes.py +0 -0
  404. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/observability.py +0 -0
  405. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/output_types.py +0 -0
  406. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/pool_server.py +0 -0
  407. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/prompt_hubs.py +0 -0
  408. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/prompts.py +0 -0
  409. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/py.typed +0 -0
  410. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/resources.py +0 -0
  411. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/session.py +0 -0
  412. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/skills.py +0 -0
  413. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/system_prompts.py +0 -0
  414. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/task.py +0 -0
  415. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/teams.py +0 -0
  416. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/tools.py +0 -0
  417. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_config/workers.py +0 -0
  418. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_prompts/__init__.py +0 -0
  419. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_prompts/braintrust_hub.py +0 -0
  420. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_prompts/fabric.py +0 -0
  421. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_prompts/langfuse_hub.py +0 -0
  422. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_prompts/promptlayer_provider.py +0 -0
  423. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_prompts/py.typed +0 -0
  424. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/__init__.py +0 -0
  425. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/a2a_server/__init__.py +0 -0
  426. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/a2a_server/a2a_types.py +0 -0
  427. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/a2a_server/server.py +0 -0
  428. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/a2a_server/storage.py +0 -0
  429. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/acp_server/__init__.py +0 -0
  430. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/acp_server/acp_agent.py +0 -0
  431. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/acp_server/acp_tools.py +0 -0
  432. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/acp_server/commands/__init__.py +0 -0
  433. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/acp_server/commands/acp_commands.py +0 -0
  434. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/acp_server/commands/debug_commands.py +0 -0
  435. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/acp_server/commands/docs_commands/__init__.py +0 -0
  436. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/acp_server/commands/docs_commands/get_schema.py +0 -0
  437. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/acp_server/commands/docs_commands/get_source.py +0 -0
  438. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/acp_server/commands/docs_commands/git_diff.py +0 -0
  439. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/acp_server/commands/docs_commands/helpers.py +0 -0
  440. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/acp_server/commands/docs_commands/url_to_markdown.py +0 -0
  441. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/acp_server/commands/spawn.py +0 -0
  442. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/acp_server/converters.py +0 -0
  443. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/acp_server/input_provider.py +0 -0
  444. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/acp_server/server.py +0 -0
  445. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/acp_server/session.py +0 -0
  446. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/acp_server/session_manager.py +0 -0
  447. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/acp_server/syntax_detection.py +0 -0
  448. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/acp_server/zed_tools.md +0 -0
  449. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/aggregating_server.py +0 -0
  450. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/agui_server/__init__.py +0 -0
  451. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/agui_server/server.py +0 -0
  452. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/base.py +0 -0
  453. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/http_server.py +0 -0
  454. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/mcp_server/__init__.py +0 -0
  455. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/mcp_server/server.py +0 -0
  456. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/mcp_server/zed_wrapper.py +0 -0
  457. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/openai_api_server/__init__.py +0 -0
  458. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/openai_api_server/completions/__init__.py +0 -0
  459. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/openai_api_server/completions/helpers.py +0 -0
  460. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/openai_api_server/completions/models.py +0 -0
  461. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/openai_api_server/responses/__init__.py +0 -0
  462. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/openai_api_server/responses/helpers.py +0 -0
  463. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/openai_api_server/responses/models.py +0 -0
  464. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/openai_api_server/server.py +0 -0
  465. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/.rules +0 -0
  466. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/__init__.py +0 -0
  467. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/command_validation.py +0 -0
  468. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/converters.py +0 -0
  469. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/dependencies.py +0 -0
  470. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/input_provider.py +0 -0
  471. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/models/__init__.py +0 -0
  472. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/models/agent.py +0 -0
  473. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/models/app.py +0 -0
  474. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/models/base.py +0 -0
  475. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/models/common.py +0 -0
  476. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/models/config.py +0 -0
  477. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/models/file.py +0 -0
  478. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/models/mcp.py +0 -0
  479. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/models/message.py +0 -0
  480. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/models/parts.py +0 -0
  481. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/models/provider.py +0 -0
  482. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/models/pty.py +0 -0
  483. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/models/session.py +0 -0
  484. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/routes/__init__.py +0 -0
  485. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/routes/agent_routes.py +0 -0
  486. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/routes/config_routes.py +0 -0
  487. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/routes/file_routes.py +0 -0
  488. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/routes/global_routes.py +0 -0
  489. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/routes/message_routes.py +0 -0
  490. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/routes/pty_routes.py +0 -0
  491. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/routes/tui_routes.py +0 -0
  492. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/state.py +0 -0
  493. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/opencode_server/time_utils.py +0 -0
  494. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_server/py.typed +0 -0
  495. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_storage/formatters.py +0 -0
  496. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_storage/models.py +0 -0
  497. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_storage/py.typed +0 -0
  498. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_storage/session_store.py +0 -0
  499. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_storage/sql_provider/cli.py +0 -0
  500. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_storage/sql_provider/queries.py +0 -0
  501. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_storage/sql_provider/utils.py +0 -0
  502. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_storage/text_log_provider.py +0 -0
  503. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/__init__.py +0 -0
  504. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/builtin/__init__.py +0 -0
  505. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/builtin/chain.py +0 -0
  506. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/builtin/code.py +0 -0
  507. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/builtin/file_edit/__init__.py +0 -0
  508. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/builtin/file_edit/file_edit.py +0 -0
  509. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/builtin/file_edit/fuzzy_matcher/__init__.py +0 -0
  510. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/builtin/file_edit/fuzzy_matcher/example_usage.py +0 -0
  511. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/builtin/file_edit/fuzzy_matcher/streaming_fuzzy_matcher.py +0 -0
  512. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/builtin/skills.py +0 -0
  513. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/builtin/subagent_tools.py +0 -0
  514. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/builtin/user_interaction.py +0 -0
  515. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/builtin/workers.py +0 -0
  516. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/composio_toolset.py +0 -0
  517. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/config_creation.py +0 -0
  518. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/entry_points.py +0 -0
  519. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/fsspec_toolset/diagnostics.py +0 -0
  520. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/fsspec_toolset/helpers.py +0 -0
  521. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/fsspec_toolset/streaming_diff_parser.py +0 -0
  522. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/mcp_discovery/__init__.py +0 -0
  523. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/mcp_discovery/data/mcp_servers.parquet +0 -0
  524. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/mcp_discovery/toolset.py +0 -0
  525. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/mcp_run_toolset.py +0 -0
  526. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/notifications.py +0 -0
  527. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/openapi.py +0 -0
  528. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/py.typed +0 -0
  529. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/search_toolset.py +0 -0
  530. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/semantic_memory_toolset.py +0 -0
  531. {agentpool-2.2.2 → agentpool-2.2.3}/src/agentpool_toolsets/streaming_tools.py +0 -0
  532. {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.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.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
- PartDeltaEvent,
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 RunStartedEvent, StreamCompleteEvent, ToolCallCompleteEvent
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
- stream_events = agentlet.run_stream_events(
861
+ async with agentlet.iter(
828
862
  converted,
829
863
  deps=deps, # type: ignore[arg-type]
830
- message_history=[m for run in history_list for m in run.to_pydantic_ai()],
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 event in file_tracker.track(events):
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
- # Call event handlers for all events
848
- await handler(None, event)
849
- yield event # type: ignore[misc]
850
-
851
- # Accumulate text content for partial message
852
- match event:
853
- case PartDeltaEvent(delta=TextPartDelta(content_delta=delta)):
854
- accumulated_text.append(delta)
855
- case PartStartEvent(part=TextPart(content=text)) if text:
856
- accumulated_text.append(text)
857
-
858
- match event:
859
- case (
860
- PartStartEvent(part=BaseToolCallPart() as tool_part)
861
- | FunctionToolCallEvent(part=tool_part)
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
- # Store tool call start info for later combination with result
864
- pending_tcs[tool_part.tool_call_id] = tool_part
865
- case FunctionToolResultEvent(tool_call_id=call_id) as result_event:
866
- # Check if we have a pending tool call to combine with
867
- if call_info := pending_tcs.pop(call_id, None):
868
- # Create and yield combined event
869
- combined_event = ToolCallCompleteEvent(
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
- await handler(None, combined_event)
880
- yield combined_event
881
- case AgentRunResultEvent():
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
- # Handle cancellation - emit partial message
898
- if self._cancelled:
918
+ # Build response message
899
919
  response_time = time.perf_counter() - start_time
900
- partial_content = "".join(accumulated_text)
901
- if partial_content:
902
- partial_content += "\n\n"
903
- partial_content += "[Request interrupted by user]"
904
- response_msg = ChatMessage(
905
- content=partial_content,
906
- role="assistant",
907
- name=self.name,
908
- message_id=message_id,
909
- conversation_id=conversation_id or user_msg.conversation_id,
910
- parent_id=user_msg.message_id,
911
- response_time=response_time,
912
- finish_reason="stop",
913
- )
914
- complete_event = StreamCompleteEvent(message=response_msg)
915
- await handler(None, complete_event)
916
- yield complete_event
917
- self._current_stream_task = None
918
- return
919
-
920
- # Only finalize if we got a result (stream may exit early on error)
921
- if response_msg is None:
922
- msg = "Stream completed without producing a result"
923
- raise RuntimeError(msg) # noqa: TRY301
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
- dangerously_skip_permissions: bool = Field(
214
+ auto_approve: bool = Field(
215
215
  default=False,
216
- title="Dangerously Skip Permissions",
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.dangerously_skip_permissions:
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
- yolo: bool = Field(default=False, title="YOLO")
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.yolo:
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
- skip_confirmations: bool = Field(default=False, title="Skip Confirmations")
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.skip_confirmations:
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
- yolo: bool = Field(default=False, title="YOLO")
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.yolo:
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
- return [
74
- self.create_tool(self.get_plan, category="read"),
75
- self.create_tool(self.add_plan_entry, category="other"),
76
- self.create_tool(self.update_plan_entry, category="edit"),
77
- self.create_tool(self.remove_plan_entry, category="delete"),
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
  )