agentpool 2.1.9__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of agentpool might be problematic. Click here for more details.

Files changed (474) hide show
  1. acp/README.md +64 -0
  2. acp/__init__.py +172 -0
  3. acp/__main__.py +10 -0
  4. acp/acp_requests.py +285 -0
  5. acp/agent/__init__.py +6 -0
  6. acp/agent/connection.py +256 -0
  7. acp/agent/implementations/__init__.py +6 -0
  8. acp/agent/implementations/debug_server/__init__.py +1 -0
  9. acp/agent/implementations/debug_server/cli.py +79 -0
  10. acp/agent/implementations/debug_server/debug.html +234 -0
  11. acp/agent/implementations/debug_server/debug_server.py +496 -0
  12. acp/agent/implementations/testing.py +91 -0
  13. acp/agent/protocol.py +65 -0
  14. acp/bridge/README.md +162 -0
  15. acp/bridge/__init__.py +6 -0
  16. acp/bridge/__main__.py +91 -0
  17. acp/bridge/bridge.py +246 -0
  18. acp/bridge/py.typed +0 -0
  19. acp/bridge/settings.py +15 -0
  20. acp/client/__init__.py +7 -0
  21. acp/client/connection.py +251 -0
  22. acp/client/implementations/__init__.py +7 -0
  23. acp/client/implementations/default_client.py +185 -0
  24. acp/client/implementations/headless_client.py +266 -0
  25. acp/client/implementations/noop_client.py +110 -0
  26. acp/client/protocol.py +61 -0
  27. acp/connection.py +280 -0
  28. acp/exceptions.py +46 -0
  29. acp/filesystem.py +524 -0
  30. acp/notifications.py +832 -0
  31. acp/py.typed +0 -0
  32. acp/schema/__init__.py +265 -0
  33. acp/schema/agent_plan.py +30 -0
  34. acp/schema/agent_requests.py +126 -0
  35. acp/schema/agent_responses.py +256 -0
  36. acp/schema/base.py +39 -0
  37. acp/schema/capabilities.py +230 -0
  38. acp/schema/client_requests.py +247 -0
  39. acp/schema/client_responses.py +96 -0
  40. acp/schema/common.py +81 -0
  41. acp/schema/content_blocks.py +188 -0
  42. acp/schema/mcp.py +82 -0
  43. acp/schema/messages.py +171 -0
  44. acp/schema/notifications.py +82 -0
  45. acp/schema/protocol_stuff.md +3 -0
  46. acp/schema/session_state.py +160 -0
  47. acp/schema/session_updates.py +419 -0
  48. acp/schema/slash_commands.py +51 -0
  49. acp/schema/terminal.py +15 -0
  50. acp/schema/tool_call.py +347 -0
  51. acp/stdio.py +250 -0
  52. acp/task/__init__.py +53 -0
  53. acp/task/debug.py +197 -0
  54. acp/task/dispatcher.py +93 -0
  55. acp/task/queue.py +69 -0
  56. acp/task/sender.py +82 -0
  57. acp/task/state.py +87 -0
  58. acp/task/supervisor.py +93 -0
  59. acp/terminal_handle.py +30 -0
  60. acp/tool_call_reporter.py +199 -0
  61. acp/tool_call_state.py +178 -0
  62. acp/transports.py +104 -0
  63. acp/utils.py +240 -0
  64. agentpool/__init__.py +63 -0
  65. agentpool/__main__.py +7 -0
  66. agentpool/agents/__init__.py +30 -0
  67. agentpool/agents/acp_agent/__init__.py +5 -0
  68. agentpool/agents/acp_agent/acp_agent.py +837 -0
  69. agentpool/agents/acp_agent/acp_converters.py +294 -0
  70. agentpool/agents/acp_agent/client_handler.py +317 -0
  71. agentpool/agents/acp_agent/session_state.py +44 -0
  72. agentpool/agents/agent.py +1264 -0
  73. agentpool/agents/agui_agent/__init__.py +19 -0
  74. agentpool/agents/agui_agent/agui_agent.py +677 -0
  75. agentpool/agents/agui_agent/agui_converters.py +423 -0
  76. agentpool/agents/agui_agent/chunk_transformer.py +204 -0
  77. agentpool/agents/agui_agent/event_types.py +83 -0
  78. agentpool/agents/agui_agent/helpers.py +192 -0
  79. agentpool/agents/architect.py +71 -0
  80. agentpool/agents/base_agent.py +177 -0
  81. agentpool/agents/claude_code_agent/__init__.py +11 -0
  82. agentpool/agents/claude_code_agent/claude_code_agent.py +1021 -0
  83. agentpool/agents/claude_code_agent/converters.py +243 -0
  84. agentpool/agents/context.py +105 -0
  85. agentpool/agents/events/__init__.py +61 -0
  86. agentpool/agents/events/builtin_handlers.py +129 -0
  87. agentpool/agents/events/event_emitter.py +320 -0
  88. agentpool/agents/events/events.py +561 -0
  89. agentpool/agents/events/tts_handlers.py +186 -0
  90. agentpool/agents/interactions.py +419 -0
  91. agentpool/agents/slashed_agent.py +244 -0
  92. agentpool/agents/sys_prompts.py +178 -0
  93. agentpool/agents/tool_wrapping.py +184 -0
  94. agentpool/base_provider.py +28 -0
  95. agentpool/common_types.py +226 -0
  96. agentpool/config_resources/__init__.py +16 -0
  97. agentpool/config_resources/acp_assistant.yml +24 -0
  98. agentpool/config_resources/agents.yml +109 -0
  99. agentpool/config_resources/agents_template.yml +18 -0
  100. agentpool/config_resources/agui_test.yml +18 -0
  101. agentpool/config_resources/claude_code_agent.yml +16 -0
  102. agentpool/config_resources/claude_style_subagent.md +30 -0
  103. agentpool/config_resources/external_acp_agents.yml +77 -0
  104. agentpool/config_resources/opencode_style_subagent.md +19 -0
  105. agentpool/config_resources/tts_test_agents.yml +78 -0
  106. agentpool/delegation/__init__.py +8 -0
  107. agentpool/delegation/base_team.py +504 -0
  108. agentpool/delegation/message_flow_tracker.py +39 -0
  109. agentpool/delegation/pool.py +1129 -0
  110. agentpool/delegation/team.py +325 -0
  111. agentpool/delegation/teamrun.py +343 -0
  112. agentpool/docs/__init__.py +5 -0
  113. agentpool/docs/gen_examples.py +42 -0
  114. agentpool/docs/utils.py +370 -0
  115. agentpool/functional/__init__.py +20 -0
  116. agentpool/functional/py.typed +0 -0
  117. agentpool/functional/run.py +80 -0
  118. agentpool/functional/structure.py +136 -0
  119. agentpool/hooks/__init__.py +20 -0
  120. agentpool/hooks/agent_hooks.py +247 -0
  121. agentpool/hooks/base.py +119 -0
  122. agentpool/hooks/callable.py +140 -0
  123. agentpool/hooks/command.py +180 -0
  124. agentpool/hooks/prompt.py +122 -0
  125. agentpool/jinja_filters.py +132 -0
  126. agentpool/log.py +224 -0
  127. agentpool/mcp_server/__init__.py +17 -0
  128. agentpool/mcp_server/client.py +429 -0
  129. agentpool/mcp_server/constants.py +32 -0
  130. agentpool/mcp_server/conversions.py +172 -0
  131. agentpool/mcp_server/helpers.py +47 -0
  132. agentpool/mcp_server/manager.py +232 -0
  133. agentpool/mcp_server/message_handler.py +164 -0
  134. agentpool/mcp_server/registries/__init__.py +1 -0
  135. agentpool/mcp_server/registries/official_registry_client.py +345 -0
  136. agentpool/mcp_server/registries/pulsemcp_client.py +88 -0
  137. agentpool/mcp_server/tool_bridge.py +548 -0
  138. agentpool/messaging/__init__.py +58 -0
  139. agentpool/messaging/compaction.py +928 -0
  140. agentpool/messaging/connection_manager.py +319 -0
  141. agentpool/messaging/context.py +66 -0
  142. agentpool/messaging/event_manager.py +426 -0
  143. agentpool/messaging/events.py +39 -0
  144. agentpool/messaging/message_container.py +209 -0
  145. agentpool/messaging/message_history.py +491 -0
  146. agentpool/messaging/messagenode.py +377 -0
  147. agentpool/messaging/messages.py +655 -0
  148. agentpool/messaging/processing.py +76 -0
  149. agentpool/mime_utils.py +95 -0
  150. agentpool/models/__init__.py +21 -0
  151. agentpool/models/acp_agents/__init__.py +22 -0
  152. agentpool/models/acp_agents/base.py +308 -0
  153. agentpool/models/acp_agents/mcp_capable.py +790 -0
  154. agentpool/models/acp_agents/non_mcp.py +842 -0
  155. agentpool/models/agents.py +450 -0
  156. agentpool/models/agui_agents.py +89 -0
  157. agentpool/models/claude_code_agents.py +238 -0
  158. agentpool/models/file_agents.py +116 -0
  159. agentpool/models/file_parsing.py +367 -0
  160. agentpool/models/manifest.py +658 -0
  161. agentpool/observability/__init__.py +9 -0
  162. agentpool/observability/observability_registry.py +97 -0
  163. agentpool/prompts/__init__.py +1 -0
  164. agentpool/prompts/base.py +27 -0
  165. agentpool/prompts/builtin_provider.py +75 -0
  166. agentpool/prompts/conversion_manager.py +95 -0
  167. agentpool/prompts/convert.py +96 -0
  168. agentpool/prompts/manager.py +204 -0
  169. agentpool/prompts/parts/zed.md +33 -0
  170. agentpool/prompts/prompts.py +581 -0
  171. agentpool/py.typed +0 -0
  172. agentpool/queries/tree-sitter-language-pack/README.md +7 -0
  173. agentpool/queries/tree-sitter-language-pack/arduino-tags.scm +5 -0
  174. agentpool/queries/tree-sitter-language-pack/c-tags.scm +9 -0
  175. agentpool/queries/tree-sitter-language-pack/chatito-tags.scm +16 -0
  176. agentpool/queries/tree-sitter-language-pack/clojure-tags.scm +7 -0
  177. agentpool/queries/tree-sitter-language-pack/commonlisp-tags.scm +122 -0
  178. agentpool/queries/tree-sitter-language-pack/cpp-tags.scm +15 -0
  179. agentpool/queries/tree-sitter-language-pack/csharp-tags.scm +26 -0
  180. agentpool/queries/tree-sitter-language-pack/d-tags.scm +26 -0
  181. agentpool/queries/tree-sitter-language-pack/dart-tags.scm +92 -0
  182. agentpool/queries/tree-sitter-language-pack/elisp-tags.scm +5 -0
  183. agentpool/queries/tree-sitter-language-pack/elixir-tags.scm +54 -0
  184. agentpool/queries/tree-sitter-language-pack/elm-tags.scm +19 -0
  185. agentpool/queries/tree-sitter-language-pack/gleam-tags.scm +41 -0
  186. agentpool/queries/tree-sitter-language-pack/go-tags.scm +42 -0
  187. agentpool/queries/tree-sitter-language-pack/java-tags.scm +20 -0
  188. agentpool/queries/tree-sitter-language-pack/javascript-tags.scm +88 -0
  189. agentpool/queries/tree-sitter-language-pack/lua-tags.scm +34 -0
  190. agentpool/queries/tree-sitter-language-pack/matlab-tags.scm +10 -0
  191. agentpool/queries/tree-sitter-language-pack/ocaml-tags.scm +115 -0
  192. agentpool/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +98 -0
  193. agentpool/queries/tree-sitter-language-pack/pony-tags.scm +39 -0
  194. agentpool/queries/tree-sitter-language-pack/properties-tags.scm +5 -0
  195. agentpool/queries/tree-sitter-language-pack/python-tags.scm +14 -0
  196. agentpool/queries/tree-sitter-language-pack/r-tags.scm +21 -0
  197. agentpool/queries/tree-sitter-language-pack/racket-tags.scm +12 -0
  198. agentpool/queries/tree-sitter-language-pack/ruby-tags.scm +64 -0
  199. agentpool/queries/tree-sitter-language-pack/rust-tags.scm +60 -0
  200. agentpool/queries/tree-sitter-language-pack/solidity-tags.scm +43 -0
  201. agentpool/queries/tree-sitter-language-pack/swift-tags.scm +51 -0
  202. agentpool/queries/tree-sitter-language-pack/udev-tags.scm +20 -0
  203. agentpool/queries/tree-sitter-languages/README.md +24 -0
  204. agentpool/queries/tree-sitter-languages/c-tags.scm +9 -0
  205. agentpool/queries/tree-sitter-languages/c_sharp-tags.scm +46 -0
  206. agentpool/queries/tree-sitter-languages/cpp-tags.scm +15 -0
  207. agentpool/queries/tree-sitter-languages/dart-tags.scm +91 -0
  208. agentpool/queries/tree-sitter-languages/elisp-tags.scm +8 -0
  209. agentpool/queries/tree-sitter-languages/elixir-tags.scm +54 -0
  210. agentpool/queries/tree-sitter-languages/elm-tags.scm +19 -0
  211. agentpool/queries/tree-sitter-languages/fortran-tags.scm +15 -0
  212. agentpool/queries/tree-sitter-languages/go-tags.scm +30 -0
  213. agentpool/queries/tree-sitter-languages/haskell-tags.scm +3 -0
  214. agentpool/queries/tree-sitter-languages/hcl-tags.scm +77 -0
  215. agentpool/queries/tree-sitter-languages/java-tags.scm +20 -0
  216. agentpool/queries/tree-sitter-languages/javascript-tags.scm +88 -0
  217. agentpool/queries/tree-sitter-languages/julia-tags.scm +60 -0
  218. agentpool/queries/tree-sitter-languages/kotlin-tags.scm +27 -0
  219. agentpool/queries/tree-sitter-languages/matlab-tags.scm +10 -0
  220. agentpool/queries/tree-sitter-languages/ocaml-tags.scm +115 -0
  221. agentpool/queries/tree-sitter-languages/ocaml_interface-tags.scm +98 -0
  222. agentpool/queries/tree-sitter-languages/php-tags.scm +26 -0
  223. agentpool/queries/tree-sitter-languages/python-tags.scm +12 -0
  224. agentpool/queries/tree-sitter-languages/ql-tags.scm +26 -0
  225. agentpool/queries/tree-sitter-languages/ruby-tags.scm +64 -0
  226. agentpool/queries/tree-sitter-languages/rust-tags.scm +60 -0
  227. agentpool/queries/tree-sitter-languages/scala-tags.scm +65 -0
  228. agentpool/queries/tree-sitter-languages/typescript-tags.scm +41 -0
  229. agentpool/queries/tree-sitter-languages/zig-tags.scm +3 -0
  230. agentpool/repomap.py +1231 -0
  231. agentpool/resource_providers/__init__.py +17 -0
  232. agentpool/resource_providers/aggregating.py +54 -0
  233. agentpool/resource_providers/base.py +172 -0
  234. agentpool/resource_providers/codemode/__init__.py +9 -0
  235. agentpool/resource_providers/codemode/code_executor.py +215 -0
  236. agentpool/resource_providers/codemode/default_prompt.py +19 -0
  237. agentpool/resource_providers/codemode/helpers.py +83 -0
  238. agentpool/resource_providers/codemode/progress_executor.py +212 -0
  239. agentpool/resource_providers/codemode/provider.py +150 -0
  240. agentpool/resource_providers/codemode/remote_mcp_execution.py +143 -0
  241. agentpool/resource_providers/codemode/remote_provider.py +171 -0
  242. agentpool/resource_providers/filtering.py +42 -0
  243. agentpool/resource_providers/mcp_provider.py +246 -0
  244. agentpool/resource_providers/plan_provider.py +196 -0
  245. agentpool/resource_providers/pool.py +69 -0
  246. agentpool/resource_providers/static.py +289 -0
  247. agentpool/running/__init__.py +20 -0
  248. agentpool/running/decorators.py +56 -0
  249. agentpool/running/discovery.py +101 -0
  250. agentpool/running/executor.py +284 -0
  251. agentpool/running/injection.py +111 -0
  252. agentpool/running/py.typed +0 -0
  253. agentpool/running/run_nodes.py +87 -0
  254. agentpool/server.py +122 -0
  255. agentpool/sessions/__init__.py +13 -0
  256. agentpool/sessions/manager.py +302 -0
  257. agentpool/sessions/models.py +71 -0
  258. agentpool/sessions/session.py +239 -0
  259. agentpool/sessions/store.py +163 -0
  260. agentpool/skills/__init__.py +5 -0
  261. agentpool/skills/manager.py +120 -0
  262. agentpool/skills/registry.py +210 -0
  263. agentpool/skills/skill.py +36 -0
  264. agentpool/storage/__init__.py +17 -0
  265. agentpool/storage/manager.py +419 -0
  266. agentpool/storage/serialization.py +136 -0
  267. agentpool/talk/__init__.py +13 -0
  268. agentpool/talk/registry.py +128 -0
  269. agentpool/talk/stats.py +159 -0
  270. agentpool/talk/talk.py +604 -0
  271. agentpool/tasks/__init__.py +20 -0
  272. agentpool/tasks/exceptions.py +25 -0
  273. agentpool/tasks/registry.py +33 -0
  274. agentpool/testing.py +129 -0
  275. agentpool/text_templates/__init__.py +39 -0
  276. agentpool/text_templates/system_prompt.jinja +30 -0
  277. agentpool/text_templates/tool_call_default.jinja +13 -0
  278. agentpool/text_templates/tool_call_markdown.jinja +25 -0
  279. agentpool/text_templates/tool_call_simple.jinja +5 -0
  280. agentpool/tools/__init__.py +16 -0
  281. agentpool/tools/base.py +269 -0
  282. agentpool/tools/exceptions.py +9 -0
  283. agentpool/tools/manager.py +255 -0
  284. agentpool/tools/tool_call_info.py +87 -0
  285. agentpool/ui/__init__.py +2 -0
  286. agentpool/ui/base.py +89 -0
  287. agentpool/ui/mock_provider.py +81 -0
  288. agentpool/ui/stdlib_provider.py +150 -0
  289. agentpool/utils/__init__.py +44 -0
  290. agentpool/utils/baseregistry.py +185 -0
  291. agentpool/utils/count_tokens.py +62 -0
  292. agentpool/utils/dag.py +184 -0
  293. agentpool/utils/importing.py +206 -0
  294. agentpool/utils/inspection.py +334 -0
  295. agentpool/utils/model_capabilities.py +25 -0
  296. agentpool/utils/network.py +28 -0
  297. agentpool/utils/now.py +22 -0
  298. agentpool/utils/parse_time.py +87 -0
  299. agentpool/utils/result_utils.py +35 -0
  300. agentpool/utils/signatures.py +305 -0
  301. agentpool/utils/streams.py +112 -0
  302. agentpool/utils/tasks.py +186 -0
  303. agentpool/vfs_registry.py +250 -0
  304. agentpool-2.1.9.dist-info/METADATA +336 -0
  305. agentpool-2.1.9.dist-info/RECORD +474 -0
  306. agentpool-2.1.9.dist-info/WHEEL +4 -0
  307. agentpool-2.1.9.dist-info/entry_points.txt +14 -0
  308. agentpool-2.1.9.dist-info/licenses/LICENSE +22 -0
  309. agentpool_cli/__init__.py +34 -0
  310. agentpool_cli/__main__.py +66 -0
  311. agentpool_cli/agent.py +175 -0
  312. agentpool_cli/cli_types.py +23 -0
  313. agentpool_cli/common.py +163 -0
  314. agentpool_cli/create.py +175 -0
  315. agentpool_cli/history.py +217 -0
  316. agentpool_cli/log.py +78 -0
  317. agentpool_cli/py.typed +0 -0
  318. agentpool_cli/run.py +84 -0
  319. agentpool_cli/serve_acp.py +177 -0
  320. agentpool_cli/serve_api.py +69 -0
  321. agentpool_cli/serve_mcp.py +74 -0
  322. agentpool_cli/serve_vercel.py +233 -0
  323. agentpool_cli/store.py +171 -0
  324. agentpool_cli/task.py +84 -0
  325. agentpool_cli/utils.py +104 -0
  326. agentpool_cli/watch.py +54 -0
  327. agentpool_commands/__init__.py +180 -0
  328. agentpool_commands/agents.py +199 -0
  329. agentpool_commands/base.py +45 -0
  330. agentpool_commands/commands.py +58 -0
  331. agentpool_commands/completers.py +110 -0
  332. agentpool_commands/connections.py +175 -0
  333. agentpool_commands/markdown_utils.py +31 -0
  334. agentpool_commands/models.py +62 -0
  335. agentpool_commands/prompts.py +78 -0
  336. agentpool_commands/py.typed +0 -0
  337. agentpool_commands/read.py +77 -0
  338. agentpool_commands/resources.py +210 -0
  339. agentpool_commands/session.py +48 -0
  340. agentpool_commands/tools.py +269 -0
  341. agentpool_commands/utils.py +189 -0
  342. agentpool_commands/workers.py +163 -0
  343. agentpool_config/__init__.py +53 -0
  344. agentpool_config/builtin_tools.py +265 -0
  345. agentpool_config/commands.py +237 -0
  346. agentpool_config/conditions.py +301 -0
  347. agentpool_config/converters.py +30 -0
  348. agentpool_config/durable.py +331 -0
  349. agentpool_config/event_handlers.py +600 -0
  350. agentpool_config/events.py +153 -0
  351. agentpool_config/forward_targets.py +251 -0
  352. agentpool_config/hook_conditions.py +331 -0
  353. agentpool_config/hooks.py +241 -0
  354. agentpool_config/jinja.py +206 -0
  355. agentpool_config/knowledge.py +41 -0
  356. agentpool_config/loaders.py +350 -0
  357. agentpool_config/mcp_server.py +243 -0
  358. agentpool_config/nodes.py +202 -0
  359. agentpool_config/observability.py +191 -0
  360. agentpool_config/output_types.py +55 -0
  361. agentpool_config/pool_server.py +267 -0
  362. agentpool_config/prompt_hubs.py +105 -0
  363. agentpool_config/prompts.py +185 -0
  364. agentpool_config/py.typed +0 -0
  365. agentpool_config/resources.py +33 -0
  366. agentpool_config/session.py +119 -0
  367. agentpool_config/skills.py +17 -0
  368. agentpool_config/storage.py +288 -0
  369. agentpool_config/system_prompts.py +190 -0
  370. agentpool_config/task.py +162 -0
  371. agentpool_config/teams.py +52 -0
  372. agentpool_config/tools.py +112 -0
  373. agentpool_config/toolsets.py +1033 -0
  374. agentpool_config/workers.py +86 -0
  375. agentpool_prompts/__init__.py +1 -0
  376. agentpool_prompts/braintrust_hub.py +235 -0
  377. agentpool_prompts/fabric.py +75 -0
  378. agentpool_prompts/langfuse_hub.py +79 -0
  379. agentpool_prompts/promptlayer_provider.py +59 -0
  380. agentpool_prompts/py.typed +0 -0
  381. agentpool_server/__init__.py +9 -0
  382. agentpool_server/a2a_server/__init__.py +5 -0
  383. agentpool_server/a2a_server/a2a_types.py +41 -0
  384. agentpool_server/a2a_server/server.py +190 -0
  385. agentpool_server/a2a_server/storage.py +81 -0
  386. agentpool_server/acp_server/__init__.py +22 -0
  387. agentpool_server/acp_server/acp_agent.py +786 -0
  388. agentpool_server/acp_server/acp_tools.py +43 -0
  389. agentpool_server/acp_server/commands/__init__.py +18 -0
  390. agentpool_server/acp_server/commands/acp_commands.py +594 -0
  391. agentpool_server/acp_server/commands/debug_commands.py +376 -0
  392. agentpool_server/acp_server/commands/docs_commands/__init__.py +39 -0
  393. agentpool_server/acp_server/commands/docs_commands/fetch_repo.py +169 -0
  394. agentpool_server/acp_server/commands/docs_commands/get_schema.py +176 -0
  395. agentpool_server/acp_server/commands/docs_commands/get_source.py +110 -0
  396. agentpool_server/acp_server/commands/docs_commands/git_diff.py +111 -0
  397. agentpool_server/acp_server/commands/docs_commands/helpers.py +33 -0
  398. agentpool_server/acp_server/commands/docs_commands/url_to_markdown.py +90 -0
  399. agentpool_server/acp_server/commands/spawn.py +210 -0
  400. agentpool_server/acp_server/converters.py +235 -0
  401. agentpool_server/acp_server/input_provider.py +338 -0
  402. agentpool_server/acp_server/server.py +288 -0
  403. agentpool_server/acp_server/session.py +969 -0
  404. agentpool_server/acp_server/session_manager.py +313 -0
  405. agentpool_server/acp_server/syntax_detection.py +250 -0
  406. agentpool_server/acp_server/zed_tools.md +90 -0
  407. agentpool_server/aggregating_server.py +309 -0
  408. agentpool_server/agui_server/__init__.py +11 -0
  409. agentpool_server/agui_server/server.py +128 -0
  410. agentpool_server/base.py +189 -0
  411. agentpool_server/http_server.py +164 -0
  412. agentpool_server/mcp_server/__init__.py +6 -0
  413. agentpool_server/mcp_server/server.py +314 -0
  414. agentpool_server/mcp_server/zed_wrapper.py +110 -0
  415. agentpool_server/openai_api_server/__init__.py +5 -0
  416. agentpool_server/openai_api_server/completions/__init__.py +1 -0
  417. agentpool_server/openai_api_server/completions/helpers.py +81 -0
  418. agentpool_server/openai_api_server/completions/models.py +98 -0
  419. agentpool_server/openai_api_server/responses/__init__.py +1 -0
  420. agentpool_server/openai_api_server/responses/helpers.py +74 -0
  421. agentpool_server/openai_api_server/responses/models.py +96 -0
  422. agentpool_server/openai_api_server/server.py +242 -0
  423. agentpool_server/py.typed +0 -0
  424. agentpool_storage/__init__.py +9 -0
  425. agentpool_storage/base.py +310 -0
  426. agentpool_storage/file_provider.py +378 -0
  427. agentpool_storage/formatters.py +129 -0
  428. agentpool_storage/memory_provider.py +396 -0
  429. agentpool_storage/models.py +108 -0
  430. agentpool_storage/py.typed +0 -0
  431. agentpool_storage/session_store.py +262 -0
  432. agentpool_storage/sql_provider/__init__.py +21 -0
  433. agentpool_storage/sql_provider/cli.py +146 -0
  434. agentpool_storage/sql_provider/models.py +249 -0
  435. agentpool_storage/sql_provider/queries.py +15 -0
  436. agentpool_storage/sql_provider/sql_provider.py +444 -0
  437. agentpool_storage/sql_provider/utils.py +234 -0
  438. agentpool_storage/text_log_provider.py +275 -0
  439. agentpool_toolsets/__init__.py +15 -0
  440. agentpool_toolsets/builtin/__init__.py +33 -0
  441. agentpool_toolsets/builtin/agent_management.py +239 -0
  442. agentpool_toolsets/builtin/chain.py +288 -0
  443. agentpool_toolsets/builtin/code.py +398 -0
  444. agentpool_toolsets/builtin/debug.py +291 -0
  445. agentpool_toolsets/builtin/execution_environment.py +381 -0
  446. agentpool_toolsets/builtin/file_edit/__init__.py +11 -0
  447. agentpool_toolsets/builtin/file_edit/file_edit.py +747 -0
  448. agentpool_toolsets/builtin/file_edit/fuzzy_matcher/__init__.py +5 -0
  449. agentpool_toolsets/builtin/file_edit/fuzzy_matcher/example_usage.py +311 -0
  450. agentpool_toolsets/builtin/file_edit/fuzzy_matcher/streaming_fuzzy_matcher.py +443 -0
  451. agentpool_toolsets/builtin/history.py +36 -0
  452. agentpool_toolsets/builtin/integration.py +85 -0
  453. agentpool_toolsets/builtin/skills.py +77 -0
  454. agentpool_toolsets/builtin/subagent_tools.py +324 -0
  455. agentpool_toolsets/builtin/tool_management.py +90 -0
  456. agentpool_toolsets/builtin/user_interaction.py +52 -0
  457. agentpool_toolsets/builtin/workers.py +128 -0
  458. agentpool_toolsets/composio_toolset.py +96 -0
  459. agentpool_toolsets/config_creation.py +192 -0
  460. agentpool_toolsets/entry_points.py +47 -0
  461. agentpool_toolsets/fsspec_toolset/__init__.py +7 -0
  462. agentpool_toolsets/fsspec_toolset/diagnostics.py +115 -0
  463. agentpool_toolsets/fsspec_toolset/grep.py +450 -0
  464. agentpool_toolsets/fsspec_toolset/helpers.py +631 -0
  465. agentpool_toolsets/fsspec_toolset/streaming_diff_parser.py +249 -0
  466. agentpool_toolsets/fsspec_toolset/toolset.py +1384 -0
  467. agentpool_toolsets/mcp_run_toolset.py +61 -0
  468. agentpool_toolsets/notifications.py +146 -0
  469. agentpool_toolsets/openapi.py +118 -0
  470. agentpool_toolsets/py.typed +0 -0
  471. agentpool_toolsets/search_toolset.py +202 -0
  472. agentpool_toolsets/semantic_memory_toolset.py +536 -0
  473. agentpool_toolsets/streaming_tools.py +265 -0
  474. agentpool_toolsets/vfs_toolset.py +124 -0
@@ -0,0 +1,226 @@
1
+ """Type definitions."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from collections.abc import Awaitable, Callable
6
+ from typing import (
7
+ TYPE_CHECKING,
8
+ Any,
9
+ ClassVar,
10
+ Literal,
11
+ Protocol,
12
+ get_args,
13
+ get_origin,
14
+ runtime_checkable,
15
+ )
16
+
17
+ from pydantic import BaseModel, ConfigDict, field_validator
18
+ from pydantic_ai import AgentStreamEvent, RunContext
19
+ from pydantic_ai.models import Model
20
+ from tokonomics.model_names import ModelId
21
+ from toprompt.to_prompt import AnyPromptType
22
+ from upathtools import JoinablePathLike
23
+
24
+
25
+ if TYPE_CHECKING:
26
+ from collections.abc import AsyncIterator
27
+ from uuid import UUID
28
+
29
+ from agentpool.agents.events import RichAgentStreamEvent
30
+ from agentpool.messaging import ChatMessage
31
+ from agentpool.messaging.messagenode import MessageNode
32
+ from agentpool.tools.base import Tool
33
+
34
+ # Type alias for team streaming return type (node + event tuples)
35
+ type TeamStreamEvent = tuple[MessageNode[Any, Any], RichAgentStreamEvent[Any]]
36
+ type AnyTransformFn[T] = Callable[[T], T | Awaitable[T]]
37
+ type OptionalAwaitable[T] = T | Awaitable[T]
38
+ type ToolType = str | AnyCallable | Tool
39
+ # Define what we consider JSON-serializable
40
+ type JsonPrimitive = None | bool | int | float | str
41
+ type SessionIdType = str | UUID | None
42
+ type ProcessorCallback[TResult] = Callable[..., TResult | Awaitable[TResult]]
43
+
44
+ # In reflex for example, the complex ones create issues..
45
+ SimpleJsonType = dict[
46
+ str, bool | int | float | str | list[str] | dict[str, bool | int | float | str]
47
+ ]
48
+ type JsonValue = JsonPrimitive | JsonArray | JsonObject
49
+ type JsonObject = dict[str, JsonValue]
50
+ type JsonArray = list[JsonValue]
51
+
52
+
53
+ NodeName = str
54
+ TeamName = str
55
+ AgentName = str
56
+ MessageRole = Literal["user", "assistant"]
57
+ PartType = Literal["text", "image", "audio", "video"]
58
+ ModelType = Model | ModelId | str | None
59
+ EnvironmentType = Literal["file", "inline"]
60
+ ToolSource = Literal["agent", "builtin", "dynamic", "task", "mcp", "toolset"]
61
+ AnyCallable = Callable[..., Any]
62
+ AsyncFilterFn = Callable[..., Awaitable[bool]]
63
+ SyncFilterFn = Callable[..., bool]
64
+ AnyFilterFn = Callable[..., bool | Awaitable[bool]]
65
+ # Event handler types for composable event processing
66
+ # Individual event handler for composability - takes single events
67
+ IndividualEventHandler = Callable[[RunContext, AgentStreamEvent], Awaitable[None]]
68
+ BuiltinEventHandlerType = Literal["simple", "detailed"]
69
+ PromptCompatible = AnyPromptType | JoinablePathLike
70
+ # P = ParamSpec("P")
71
+ # SyncAsync = Callable[P, OptionalAwaitable[T]]
72
+ EndStrategy = Literal["early", "exhaustive"]
73
+ QueueStrategy = Literal["concat", "latest", "buffer"]
74
+ """The strategy for handling multiple tool calls when a final result is found.
75
+
76
+ - `'early'`: Stop processing other tool calls once a final result is found
77
+ - `'exhaustive'`: Process all tool calls even after finding a final result
78
+ """
79
+
80
+
81
+ class SupportsStructuredOutput(Protocol):
82
+ """Protocol for nodes that support structured output via run().
83
+
84
+ This protocol is used for components that need to call run() with
85
+ an output_type parameter (e.g., picker agents, Interactions).
86
+ """
87
+
88
+ async def run(self, *prompts: Any, output_type: Any = ...) -> ChatMessage[Any]: ...
89
+
90
+
91
+ @runtime_checkable
92
+ class SupportsRunStream[TResult](Protocol):
93
+ """Protocol for nodes that support streaming via run_stream().
94
+
95
+ Used by Team and TeamRun to check if a node can be streamed.
96
+
97
+ Return type is a union because:
98
+ - Agent returns `AsyncIterator[RichAgentStreamEvent[TResult]]`
99
+ - Team/TeamRun return `AsyncIterator[tuple[MessageNode, RichAgentStreamEvent]]`
100
+ """
101
+
102
+ def run_stream(
103
+ self, *prompts: Any, **kwargs: Any
104
+ ) -> AsyncIterator[RichAgentStreamEvent[TResult] | TeamStreamEvent]: ...
105
+
106
+
107
+ class BaseCode(BaseModel):
108
+ """Base class for syntax-validated code."""
109
+
110
+ code: str
111
+ """The source code."""
112
+
113
+ @field_validator("code")
114
+ @classmethod
115
+ def validate_syntax(cls, code: str) -> str:
116
+ """Override in subclasses."""
117
+ return code
118
+
119
+ model_config = ConfigDict(use_attribute_docstrings=True)
120
+
121
+
122
+ def _validate_type_args(data: Any, args: tuple[Any, ...]) -> None:
123
+ """Validate data against type arguments."""
124
+ match data:
125
+ case dict() if len(args) == 2: # noqa: PLR2004
126
+ key_type, value_type = args
127
+ for k, v in data.items():
128
+ if not isinstance(k, key_type):
129
+ msg = f"Invalid key type: {type(k)}, expected {key_type}"
130
+ raise ValueError(msg) # noqa: TRY004
131
+ if not isinstance(v, value_type):
132
+ msg = f"Invalid value type: {type(v)}, expected {value_type}"
133
+ raise ValueError(msg) # noqa: TRY004
134
+ case list() if len(args) == 1:
135
+ item_type = args[0]
136
+ for item in data:
137
+ if not isinstance(item, item_type):
138
+ msg = f"Invalid item type: {type(item)}, expected {item_type}"
139
+ raise ValueError(msg) # noqa: TRY004
140
+
141
+
142
+ class ConfigCode[T](BaseCode):
143
+ """Base class for configuration code that validates against a specific type.
144
+
145
+ Generic type T specifies the type to validate against.
146
+ """
147
+
148
+ validator_type: ClassVar[type]
149
+
150
+ @field_validator("code")
151
+ @classmethod
152
+ def validate_syntax(cls, code: str) -> str:
153
+ """Validate both YAML syntax and type constraints."""
154
+ import yamling
155
+
156
+ try:
157
+ # First validate YAML syntax
158
+ data = yamling.load(code, mode="yaml")
159
+
160
+ # Then validate against target type
161
+ match cls.validator_type:
162
+ case type() as model_cls if issubclass(model_cls, BaseModel):
163
+ model_cls.model_validate(data)
164
+ case _ if origin := get_origin(cls.validator_type):
165
+ # Handle generics like dict[str, int]
166
+ if not isinstance(data, origin):
167
+ msg = f"Expected {origin.__name__}, got {type(data).__name__}"
168
+ raise ValueError(msg) # noqa: TRY004, TRY301
169
+ # Validate type arguments if present
170
+ if args := get_args(cls.validator_type):
171
+ _validate_type_args(data, args)
172
+ case _:
173
+ msg = f"Unsupported validation type: {cls.validator_type}"
174
+ raise TypeError(msg) # noqa: TRY301
175
+
176
+ except Exception as e:
177
+ msg = f"Invalid YAML for {cls.validator_type.__name__}: {e}"
178
+ raise ValueError(msg) from e
179
+
180
+ return code
181
+
182
+ @classmethod
183
+ def for_config[TConfig](
184
+ cls,
185
+ base_type: type[TConfig],
186
+ *,
187
+ name: str | None = None,
188
+ error_msg: str | None = None,
189
+ ) -> type[ConfigCode[TConfig]]:
190
+ """Create a new ConfigCode class for a specific type.
191
+
192
+ Args:
193
+ base_type: The type to validate against
194
+ name: Optional name for the new class
195
+ error_msg: Optional custom error message
196
+
197
+ Returns:
198
+ New ConfigCode subclass with type-specific validation
199
+ """
200
+
201
+ class TypedConfigCode(ConfigCode[TConfig]):
202
+ validator_type = base_type
203
+
204
+ @field_validator("code")
205
+ @classmethod
206
+ def validate_syntax(cls, code: str) -> str:
207
+ try:
208
+ return super().validate_syntax(code)
209
+ except ValueError as e:
210
+ msg = error_msg or str(e)
211
+ raise ValueError(msg) from e
212
+
213
+ if name:
214
+ TypedConfigCode.__name__ = name
215
+
216
+ return TypedConfigCode
217
+
218
+
219
+ if __name__ == "__main__":
220
+ from agentpool.models.manifest import AgentsManifest
221
+
222
+ AgentsManifestCode = ConfigCode.for_config(
223
+ AgentsManifest,
224
+ name="AgentsManifestCode",
225
+ error_msg="Invalid agents manifest YAML",
226
+ )
@@ -0,0 +1,16 @@
1
+ """Package resources for AgentPool configuration."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import importlib.resources
6
+ from typing import Final
7
+
8
+ _RESOURCES = importlib.resources.files("agentpool.config_resources")
9
+
10
+ AGENTS_TEMPLATE: Final[str] = str(_RESOURCES / "agents_template.yml")
11
+ """Path to the agents template configuration."""
12
+
13
+ ACP_ASSISTANT: Final[str] = str(_RESOURCES / "acp_assistant.yml")
14
+ """Path to default ACP assistant configuration."""
15
+
16
+ __all__ = ["ACP_ASSISTANT", "AGENTS_TEMPLATE"]
@@ -0,0 +1,24 @@
1
+ # yaml-language-server: $schema=https://raw.githubusercontent.com/phil65/agentpool/refs/heads/main/schema/config-schema.json
2
+ # Default ACP assistant configuration
3
+ # Used when starting ACP server without explicit config file
4
+
5
+ agents:
6
+ assistant:
7
+ display_name: "AI Assistant"
8
+ description: "General-purpose assistant with file system and code execution access"
9
+ model:
10
+ type: anthropic
11
+ identifier: claude-haiku-4-5
12
+ cache_instructions: true
13
+ cache_tool_definitions: true
14
+ cache_messages: true
15
+ system_prompt:
16
+ - |
17
+ You are a helpful AI assistant with access to the file system and can execute code.
18
+ You can help with coding, writing, analysis, file operations, and more.
19
+ Be concise but thorough in your responses.
20
+ toolsets:
21
+ - type: execution
22
+ - type: file_access
23
+ - type: code
24
+ - type: search
@@ -0,0 +1,109 @@
1
+ # yaml-language-server: $schema=https://raw.githubusercontent.com/phil65/agentpool/refs/heads/main/schema/config-schema.json
2
+ responses:
3
+ BasicResult:
4
+ response_schema:
5
+ type: inline
6
+ description: "Simple operation result"
7
+ fields:
8
+ success:
9
+ type: bool
10
+ description: "Whether operation succeeded"
11
+ message:
12
+ type: str
13
+ description: "Operation result message"
14
+
15
+ SystemInfoResult:
16
+ response_schema:
17
+ type: inline
18
+ description: "System information result"
19
+ fields:
20
+ platform:
21
+ type: str
22
+ description: "Platform information"
23
+ cpu_count:
24
+ type: int
25
+ description: "Number of CPUs"
26
+ memory_used:
27
+ type: float
28
+ description: "Memory usage in GB"
29
+ summary:
30
+ type: str
31
+ description: "Formatted system summary"
32
+
33
+ FileInfoResult:
34
+ response_schema:
35
+ description: "File system information result"
36
+ type: inline
37
+ fields:
38
+ current_dir:
39
+ type: str
40
+ description: "Current working directory"
41
+ files:
42
+ type: list[str]
43
+ description: "List of files found"
44
+ details:
45
+ type: str
46
+ description: "Formatted file information"
47
+
48
+ agents:
49
+ url_opener:
50
+ tools:
51
+ - type: import
52
+ import_path: "webbrowser.open"
53
+ description: "Open URL in default browser"
54
+ - type: import
55
+ import_path: "getpass.getuser"
56
+ description: "Get current system username"
57
+ model: openai:gpt-5-mini
58
+ output_type: BasicResult
59
+ system_prompt:
60
+ - |
61
+ You help users open websites. Use the open_url tool to open URLs.
62
+ When given a website name, find its URL in the bookmarks resource.
63
+ Always confirm what you're about to open.
64
+
65
+ system_inspector:
66
+ tools:
67
+ - type: import
68
+ import_path: "platform.platform"
69
+ description: "Get platform information"
70
+ - type: import
71
+ import_path: "os.cpu_count"
72
+ description: "Get number of CPUs"
73
+ - type: import
74
+ import_path: "psutil.virtual_memory"
75
+ description: "Get memory information"
76
+ model: openai:gpt-5-mini
77
+ output_type: SystemInfoResult
78
+ system_prompt:
79
+ - |
80
+ You provide system information in a clear, formatted way.
81
+ Use the platform_info, cpu_count, and memory_info tools
82
+ to gather system information.
83
+ - |
84
+ Format it using the template from the system_template resource.
85
+
86
+ file_explorer:
87
+ tools:
88
+ - type: import
89
+ import_path: "os.listdir"
90
+ description: "List directory contents"
91
+ - type: import
92
+ name: file_info
93
+ import_path: "os.stat"
94
+ description: "Get file information"
95
+ - type: import
96
+ import_path: "os.getcwd"
97
+ name: current_dir
98
+ description: "Get current working directory"
99
+ model: openai:gpt-5-mini
100
+ output_type: FileInfoResult
101
+ system_prompt:
102
+ - |
103
+ You help users explore their file system.
104
+ Available tools:
105
+ - list_dir: List contents of current directory
106
+ - file_info: Get file information
107
+ - current_dir: Get current working directory
108
+
109
+ Use these tools to help users explore files.
@@ -0,0 +1,18 @@
1
+ # yaml-language-server: $schema=https://raw.githubusercontent.com/phil65/agentpool/refs/heads/main/schema/config-schema.json
2
+ agents:
3
+ simple_agent:
4
+ description: "Basic agent with one tool to open webbrowsers."
5
+ model: openai:gpt-5-mini
6
+ tools:
7
+ - type: import
8
+ import_path: webbrowser.open
9
+ description: "Open URL in browser"
10
+ system_prompt: "You are a helpful assistant."
11
+ simple_agent_2:
12
+ type: native
13
+ model: openai:gpt-5-mini
14
+ system_prompt: "You are a helpful assistant."
15
+ simple_agent_3:
16
+ type: native
17
+ model: openai:gpt-5-mini
18
+ system_prompt: "You are a helpful assistant."
@@ -0,0 +1,18 @@
1
+ # yaml-language-server: $schema=https://raw.githubusercontent.com/phil65/agentpool/refs/heads/main/schema/config-schema.json
2
+ #
3
+ # Test configuration for AG-UI agent.
4
+ #
5
+ # Usage:
6
+ # from agentpool import AgentPool
7
+ # async with AgentPool("src/agentpool/config_resources/agui_test.yml") as pool:
8
+ # agent = pool.get_agent("test_agui")
9
+ # result = await agent.run("Hello!")
10
+
11
+ agents:
12
+ test_agui:
13
+ type: agui
14
+ endpoint: http://127.0.0.1:8765/agent/run
15
+ description: "AG-UI test client with auto-started server"
16
+ startup_command: "uv run python tests/test_server_agui.py --port 8765 --with-tools"
17
+ startup_delay: 3.0
18
+ timeout: 60.0
@@ -0,0 +1,16 @@
1
+ # yaml-language-server: $schema=https://raw.githubusercontent.com/phil65/agentpool/refs/heads/main/schema/config-schema.json
2
+ # Default ACP assistant configuration
3
+ # Used when starting ACP server without explicit config file
4
+
5
+ agents:
6
+ claude:
7
+ type: claude_code
8
+ display_name: "AI Assistant"
9
+ builtin_tools: []
10
+ description: "Claude code agent with enhanced tools"
11
+ toolsets:
12
+ - type: execution
13
+ - type: file_access
14
+ - type: code
15
+ - type: search
16
+ - type: plan
@@ -0,0 +1,30 @@
1
+ ---
2
+ name: data-scientist
3
+ description: Data analysis expert for SQL queries, BigQuery operations, and data insights. Use proactively for data analysis tasks and queries.
4
+ tools: Bash, Read, Write
5
+ model: sonnet
6
+ ---
7
+
8
+ You are a data scientist specializing in SQL and BigQuery analysis.
9
+
10
+ When invoked:
11
+ 1. Understand the data analysis requirement
12
+ 2. Write efficient SQL queries
13
+ 3. Use BigQuery command line tools (bq) when appropriate
14
+ 4. Analyze and summarize results
15
+ 5. Present findings clearly
16
+
17
+ Key practices:
18
+ - Write optimized SQL queries with proper filters
19
+ - Use appropriate aggregations and joins
20
+ - Include comments explaining complex logic
21
+ - Format results for readability
22
+ - Provide data-driven recommendations
23
+
24
+ For each analysis:
25
+ - Explain the query approach
26
+ - Document any assumptions
27
+ - Highlight key findings
28
+ - Suggest next steps based on data
29
+
30
+ Always ensure queries are efficient and cost-effective.
@@ -0,0 +1,77 @@
1
+ # yaml-language-server: $schema=https://raw.githubusercontent.com/phil65/agentpool/refs/heads/main/schema/config-schema.json
2
+ agents:
3
+ # ACP-enabled agent with terminal and file access
4
+ claude:
5
+ type: acp
6
+ provider: claude
7
+ display_name: "Claude Code"
8
+ description: "Claude Code through ACP"
9
+ env: # override to make sure subscription is used
10
+ ANTHROPIC_API_KEY: ""
11
+
12
+ toolsets:
13
+ - type: code
14
+ - type: subagent
15
+ codex:
16
+ type: acp
17
+ provider: codex
18
+ display_name: "Codex"
19
+ description: "Codex Code through ACP"
20
+ # opencode:
21
+ # type: acp
22
+ # provider: opencode
23
+ # display_name: "OpenCode"
24
+ # description: "OpenCode through ACP"
25
+ # goose:
26
+ # type: acp
27
+ # provider: goose
28
+ # display_name: "Goose"
29
+ # description: "Block's Goose agent through ACP"
30
+ # fast-agent:
31
+ # type: acp
32
+ # provider: fast-agent
33
+ # display_name: "Fast Agent"
34
+ # description: "fast-agent through ACP"
35
+ # model: openai.gpt-4o
36
+ # amp:
37
+ # type: acp
38
+ # provider: amp
39
+ # display_name: "Amp (AmpCode)"
40
+ # description: "Open-source ACP adapter for Amp CLI through ACP"
41
+ # auggie:
42
+ # type: acp
43
+ # provider: auggie
44
+ # display_name: "Auggie (Augment Code)"
45
+ # description: "Augment Code's AI agent through ACP"
46
+ # kimi:
47
+ # type: acp
48
+ # provider: kimi
49
+ # display_name: "Kimi CLI"
50
+ # description: "Moonshot AI's Kimi agent through ACP"
51
+ # stakpak:
52
+ # type: acp
53
+ # provider: stakpak
54
+ # display_name: "Stakpak Agent"
55
+ # description: "Terminal-native DevOps Agent through ACP"
56
+
57
+ # cagent:
58
+ # type: acp
59
+ # provider: cagent
60
+ # display_name: "Docker cagent"
61
+ # description: "Docker's Agent Builder and Runtime through ACP"
62
+ # vtcode:
63
+ # type: acp
64
+ # provider: vtcode
65
+ # display_name: "VT Code"
66
+ # description: "Rust-based semantic coding agent through ACP"
67
+ # openhands:
68
+ # type: acp
69
+ # provider: openhands
70
+ # display_name: "OpenHands"
71
+ # description: "OpenHands (formerly OpenDevin) through ACP"
72
+ # gemini:
73
+ # type: acp
74
+ # provider: gemini
75
+ # display_name: "Gemini"
76
+ # description: "Gemini Code through ACP"
77
+ # # Note: --experimental-acp flag appears non-functional as of v0.19.3
@@ -0,0 +1,19 @@
1
+ ---
2
+ description: Reviews code for quality and best practices
3
+ mode: subagent
4
+ model: anthropic/claude-sonnet-4-20250514
5
+ temperature: 0.1
6
+ tools:
7
+ write: false
8
+ edit: false
9
+ bash: false
10
+ ---
11
+
12
+ You are in code review mode. Focus on:
13
+
14
+ - Code quality and best practices
15
+ - Potential bugs and edge cases
16
+ - Performance implications
17
+ - Security considerations
18
+
19
+ Provide constructive feedback without making direct changes.
@@ -0,0 +1,78 @@
1
+ # yaml-language-server: $schema=https://raw.githubusercontent.com/phil65/agentpool/refs/heads/main/schema/config-schema.json
2
+ #
3
+ # Test configuration for TTS synchronization modes.
4
+ # Each agent demonstrates a different TTS mode.
5
+ #
6
+ # Usage:
7
+ # uv run agentpool chat --config src/agentpool/config_resources/tts_test_agents.yml --agent tts_sync_sentence
8
+ #
9
+ # Modes:
10
+ # - sync_sentence: Block per sentence (audio syncs with text output)
11
+ # - sync_run: Block at run end (fast streaming, wait for audio before next run)
12
+ # - async_queue: Fully async, multiple runs queue up
13
+ # - async_cancel: Fully async, new run cancels previous audio
14
+
15
+ agents:
16
+ tts_sync_sentence:
17
+ type: native
18
+ description: "TTS with sync_sentence mode - blocks per sentence, most synchronized"
19
+ model: openai:gpt-4.1-nano
20
+ system_prompt:
21
+ - |
22
+ You are a storyteller. Tell engaging short stories in 3-4 sentences.
23
+ Speak naturally with clear sentence breaks.
24
+ event_handlers:
25
+ - type: builtin
26
+ handler: simple
27
+ - type: tts-openai
28
+ voice: alloy
29
+ mode: sync_sentence
30
+ min_text_length: 15
31
+
32
+ tts_sync_run:
33
+ type: native
34
+ description: "TTS with sync_run mode - fast streaming, waits at run end"
35
+ model: openai:gpt-4.1-nano
36
+ system_prompt:
37
+ - |
38
+ You are a storyteller. Tell engaging short stories in 3-4 sentences.
39
+ Speak naturally with clear sentence breaks.
40
+ event_handlers:
41
+ - type: builtin
42
+ handler: simple
43
+ - type: tts-openai
44
+ voice: echo
45
+ mode: sync_run
46
+ min_text_length: 15
47
+
48
+ tts_async_queue:
49
+ type: native
50
+ description: "TTS with async_queue mode - fully async, runs queue up"
51
+ model: openai:gpt-4.1-nano
52
+ system_prompt:
53
+ - |
54
+ You are a storyteller. Tell engaging short stories in 3-4 sentences.
55
+ Speak naturally with clear sentence breaks.
56
+ event_handlers:
57
+ - type: builtin
58
+ handler: simple
59
+ - type: tts-openai
60
+ voice: fable
61
+ mode: async_queue
62
+ min_text_length: 15
63
+
64
+ tts_async_cancel:
65
+ type: native
66
+ description: "TTS with async_cancel mode - fully async, new run cancels previous"
67
+ model: openai:gpt-4.1-nano
68
+ system_prompt:
69
+ - |
70
+ You are a storyteller. Tell engaging short stories in 3-4 sentences.
71
+ Speak naturally with clear sentence breaks.
72
+ event_handlers:
73
+ - type: builtin
74
+ handler: simple
75
+ - type: tts-openai
76
+ voice: nova
77
+ mode: async_cancel
78
+ min_text_length: 15
@@ -0,0 +1,8 @@
1
+ """Agent delegation and collaboration functionality."""
2
+
3
+ from agentpool.delegation.pool import AgentPool
4
+ from agentpool.delegation.base_team import BaseTeam
5
+ from agentpool.delegation.teamrun import TeamRun
6
+ from agentpool.delegation.team import Team
7
+
8
+ __all__ = ["AgentPool", "BaseTeam", "Team", "TeamRun"]