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,289 @@
1
+ """Static resource provider implementation."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import TYPE_CHECKING, Any, overload
6
+
7
+ from agentpool.resource_providers import ResourceProvider
8
+
9
+
10
+ if TYPE_CHECKING:
11
+ from collections.abc import Callable, Sequence
12
+ from typing import Any
13
+
14
+ from agentpool import Agent, MessageNode
15
+ from agentpool.common_types import ToolSource, ToolType
16
+ from agentpool.prompts.prompts import BasePrompt
17
+ from agentpool.tools.base import Tool
18
+ from agentpool_config.resources import ResourceInfo
19
+
20
+
21
+ class StaticResourceProvider(ResourceProvider):
22
+ """Provider for pre-configured tools, prompts and resources.
23
+
24
+ Allows creating a provider that serves a fixed set of resources
25
+ passed during initialization. Useful for converting static configurations
26
+ to the common ResourceProvider interface.
27
+ """
28
+
29
+ def __init__(
30
+ self,
31
+ name: str = "static",
32
+ tools: Sequence[Tool] | None = None,
33
+ prompts: Sequence[BasePrompt] | None = None,
34
+ resources: Sequence[ResourceInfo] | None = None,
35
+ ) -> None:
36
+ """Initialize provider with static resources.
37
+
38
+ Args:
39
+ name: Name of the provider
40
+ tools: Optional list of tools to serve
41
+ prompts: Optional list of prompts to serve
42
+ resources: Optional list of resources to serve
43
+ """
44
+ super().__init__(name=name)
45
+ self._tools = list(tools) if tools else []
46
+ self._prompts = list(prompts) if prompts else []
47
+ self._resources = list(resources) if resources else []
48
+
49
+ async def get_tools(self) -> list[Tool]:
50
+ """Get pre-configured tools."""
51
+ return self._tools
52
+
53
+ async def get_prompts(self) -> list[BasePrompt]:
54
+ """Get pre-configured prompts."""
55
+ return self._prompts
56
+
57
+ async def get_resources(self) -> list[ResourceInfo]:
58
+ """Get pre-configured resources."""
59
+ return self._resources
60
+
61
+ def add_tool(self, tool: Tool) -> None:
62
+ """Add a tool to this provider.
63
+
64
+ Args:
65
+ tool: Tool to add
66
+ """
67
+ self._tools.append(tool)
68
+
69
+ def remove_tool(self, name: str) -> bool:
70
+ """Remove a tool by name.
71
+
72
+ Args:
73
+ name: Name of tool to remove
74
+
75
+ Returns:
76
+ True if tool was found and removed, False otherwise
77
+ """
78
+ for i, tool in enumerate(self._tools):
79
+ if tool.name == name:
80
+ self._tools.pop(i)
81
+ return True
82
+ return False
83
+
84
+ def add_prompt(self, prompt: BasePrompt) -> None:
85
+ """Add a prompt to this provider.
86
+
87
+ Args:
88
+ prompt: Prompt to add
89
+ """
90
+ self._prompts.append(prompt)
91
+
92
+ def remove_prompt(self, name: str) -> bool:
93
+ """Remove a prompt by name.
94
+
95
+ Args:
96
+ name: Name of prompt to remove
97
+
98
+ Returns:
99
+ True if prompt was found and removed, False otherwise
100
+ """
101
+ for i, prompt in enumerate(self._prompts):
102
+ if prompt.name == name:
103
+ self._prompts.pop(i)
104
+ return True
105
+ return False
106
+
107
+ def add_resource(self, resource: ResourceInfo) -> None:
108
+ """Add a resource to this provider.
109
+
110
+ Args:
111
+ resource: Resource to add
112
+ """
113
+ self._resources.append(resource)
114
+
115
+ def remove_resource(self, name: str) -> bool:
116
+ """Remove a resource by name.
117
+
118
+ Args:
119
+ name: Name of resource to remove
120
+
121
+ Returns:
122
+ True if resource was found and removed, False otherwise
123
+ """
124
+ for i, resource in enumerate(self._resources):
125
+ if resource.name == name:
126
+ self._resources.pop(i)
127
+ return True
128
+ return False
129
+
130
+ def register_tool(
131
+ self,
132
+ tool: ToolType,
133
+ *,
134
+ name_override: str | None = None,
135
+ description_override: str | None = None,
136
+ enabled: bool = True,
137
+ source: ToolSource = "dynamic",
138
+ requires_confirmation: bool = False,
139
+ metadata: dict[str, str] | None = None,
140
+ ) -> Tool:
141
+ """Register a new tool with custom settings.
142
+
143
+ Args:
144
+ tool: Tool to register (callable, Tool instance, or import path)
145
+ name_override: Optional name override for the tool
146
+ description_override: Optional description override for the tool
147
+ enabled: Whether tool is initially enabled
148
+ source: Tool source (runtime/agent/builtin/dynamic)
149
+ requires_confirmation: Whether tool needs confirmation
150
+ metadata: Additional tool metadata
151
+
152
+ Returns:
153
+ Created Tool instance
154
+ """
155
+ from agentpool.tools.base import Tool as ToolClass
156
+
157
+ match tool:
158
+ case ToolClass():
159
+ tool.description = description_override or tool.description
160
+ tool.name = name_override or tool.name
161
+ tool.source = source
162
+ tool.metadata = tool.metadata | (metadata or {})
163
+ tool.enabled = enabled
164
+
165
+ case _:
166
+ tool = ToolClass.from_callable(
167
+ tool,
168
+ enabled=enabled,
169
+ source=source,
170
+ name_override=name_override,
171
+ description_override=description_override,
172
+ requires_confirmation=requires_confirmation,
173
+ metadata=metadata or {},
174
+ )
175
+
176
+ self.add_tool(tool)
177
+ return tool
178
+
179
+ def register_worker(
180
+ self,
181
+ worker: MessageNode[Any, Any],
182
+ *,
183
+ name: str | None = None,
184
+ reset_history_on_run: bool = True,
185
+ pass_message_history: bool = False,
186
+ parent: Agent[Any, Any] | None = None,
187
+ ) -> Tool:
188
+ """Register an agent as a worker tool.
189
+
190
+ Args:
191
+ worker: Agent to register as worker
192
+ name: Optional name override for the worker tool
193
+ reset_history_on_run: Whether to clear history before each run
194
+ pass_message_history: Whether to pass parent's message history
195
+ parent: Optional parent agent for history/context sharing
196
+ """
197
+ from agentpool import Agent, BaseTeam
198
+ from agentpool.agents.acp_agent import ACPAgent
199
+
200
+ match worker:
201
+ case BaseTeam():
202
+ tool = worker.to_tool(name=name)
203
+ case ACPAgent():
204
+ tool = worker.to_tool(name=name, description=worker.description)
205
+ case Agent():
206
+ tool = worker.to_tool(
207
+ parent=parent,
208
+ name=name,
209
+ reset_history_on_run=reset_history_on_run,
210
+ pass_message_history=pass_message_history,
211
+ )
212
+ case _:
213
+ msg = f"Unsupported worker type: {type(worker)}"
214
+ raise ValueError(msg)
215
+
216
+ self.add_tool(tool)
217
+ return tool
218
+
219
+ @overload
220
+ def tool(self, func: Callable[..., Any]) -> Callable[..., Any]: ...
221
+
222
+ @overload
223
+ def tool(
224
+ self,
225
+ *,
226
+ name: str | None = None,
227
+ description: str | None = None,
228
+ enabled: bool = True,
229
+ requires_confirmation: bool = False,
230
+ metadata: dict[str, str] | None = None,
231
+ **kwargs: Any,
232
+ ) -> Callable[[Callable[..., Any]], Callable[..., Any]]: ...
233
+
234
+ def tool(
235
+ self,
236
+ func: Callable[..., Any] | None = None,
237
+ *,
238
+ name: str | None = None,
239
+ description: str | None = None,
240
+ enabled: bool = True,
241
+ requires_confirmation: bool = False,
242
+ metadata: dict[str, str] | None = None,
243
+ **kwargs: Any,
244
+ ) -> Callable[..., Any] | Callable[[Callable[..., Any]], Callable[..., Any]]:
245
+ """Decorator to register a function as a tool.
246
+
247
+ Can be used with or without parameters:
248
+
249
+ ```python
250
+ # Without parameters
251
+ @provider.tool
252
+ def my_function(x: int) -> str:
253
+ return str(x)
254
+
255
+ # With parameters
256
+ @provider.tool(name="custom_name", description="Custom description")
257
+ def another_function(y: str) -> str:
258
+ return y.upper()
259
+ ```
260
+
261
+ Args:
262
+ func: Function to register (when used without parentheses)
263
+ name: Override for tool name
264
+ description: Override for tool description
265
+ enabled: Whether tool is initially enabled
266
+ requires_confirmation: Whether execution needs confirmation
267
+ metadata: Additional tool metadata
268
+ **kwargs: Additional arguments passed to Tool.from_callable
269
+ """
270
+ from agentpool.tools.base import Tool
271
+
272
+ def decorator(f: Callable[..., Any]) -> Callable[..., Any]:
273
+ tool = Tool.from_callable(
274
+ f,
275
+ name_override=name,
276
+ description_override=description,
277
+ enabled=enabled,
278
+ requires_confirmation=requires_confirmation,
279
+ metadata=metadata or {},
280
+ **kwargs,
281
+ )
282
+ self.add_tool(tool)
283
+ return f
284
+
285
+ if func is None:
286
+ # Called with arguments: @provider.tool(...)
287
+ return decorator
288
+ # Called without arguments: @provider.tool
289
+ return decorator(func)
@@ -0,0 +1,20 @@
1
+ """Decorator auto-injection / run package."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from agentpool.running.decorators import with_nodes
6
+ from agentpool.running.discovery import NodeFunction, node_function
7
+ from agentpool.running.executor import execute_single, execute_functions
8
+ from agentpool.running.run_nodes import run_nodes_async, run_nodes
9
+ from agentpool.running.injection import NodeInjectionError
10
+
11
+ __all__ = [
12
+ "NodeFunction",
13
+ "NodeInjectionError",
14
+ "execute_functions",
15
+ "execute_single",
16
+ "node_function",
17
+ "run_nodes",
18
+ "run_nodes_async",
19
+ "with_nodes",
20
+ ]
@@ -0,0 +1,56 @@
1
+ """Decorators for agent injection and execution."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from functools import wraps
6
+ import inspect
7
+ from typing import TYPE_CHECKING, overload
8
+
9
+ from agentpool.running.injection import inject_nodes
10
+
11
+
12
+ if TYPE_CHECKING:
13
+ from collections.abc import Awaitable, Callable
14
+
15
+ from agentpool import AgentPool
16
+
17
+
18
+ @overload
19
+ def with_nodes[T, **P](
20
+ pool: AgentPool,
21
+ ) -> Callable[[Callable[P, Awaitable[T]]], Callable[P, Awaitable[T]]]: ...
22
+
23
+
24
+ @overload
25
+ def with_nodes[T, **P](
26
+ pool: AgentPool,
27
+ func: Callable[P, Awaitable[T]],
28
+ ) -> Callable[P, Awaitable[T]]: ...
29
+
30
+
31
+ def with_nodes[T, **P](
32
+ pool: AgentPool,
33
+ func: Callable[P, Awaitable[T]] | None = None,
34
+ ) -> Callable[P, Awaitable[T]] | Callable[[Callable[P, Awaitable[T]]], Callable[P, Awaitable[T]]]:
35
+ """Inject nodes into function parameters."""
36
+
37
+ def decorator(func: Callable[P, Awaitable[T]]) -> Callable[P, Awaitable[T]]:
38
+ @wraps(func)
39
+ async def wrapper(*args: P.args, **kwargs: P.kwargs) -> T:
40
+ # Convert args to kwargs for injection check
41
+ sig = inspect.signature(func)
42
+ bound_args = sig.bind_partial(*args)
43
+ all_kwargs = {**bound_args.arguments, **kwargs}
44
+ # Get needed nodes
45
+ nodes = inject_nodes(func, pool, all_kwargs)
46
+ # Create kwargs with nodes first, then other args
47
+ final_kwargs = {**nodes, **kwargs}
48
+ # Convert back to args/kwargs using signature
49
+ bound = sig.bind(**final_kwargs)
50
+ bound.apply_defaults()
51
+ # Call with proper args/kwargs
52
+ return await func(*bound.args, **bound.kwargs)
53
+
54
+ return wrapper
55
+
56
+ return decorator(func) if func else decorator
@@ -0,0 +1,101 @@
1
+ """Function discovery and metadata handling."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from collections.abc import Callable
6
+ from dataclasses import dataclass, field
7
+ import inspect
8
+ from typing import TYPE_CHECKING, Any
9
+
10
+ from agentpool.log import get_logger
11
+ from agentpool.utils.inspection import get_fn_name
12
+
13
+
14
+ if TYPE_CHECKING:
15
+ from collections.abc import Sequence
16
+
17
+ from agentpool.common_types import AnyCallable
18
+
19
+ logger = get_logger(__name__)
20
+
21
+
22
+ @dataclass
23
+ class NodeFunction:
24
+ """Metadata for a function that uses nodes."""
25
+
26
+ func: AnyCallable
27
+ """The actual function to execute."""
28
+
29
+ depends_on: list[str] = field(default_factory=list)
30
+ """Names of functions this one depends on."""
31
+
32
+ deps: Any = None
33
+ """Node dependencies."""
34
+
35
+ default_inputs: dict[str, Any] = field(default_factory=dict)
36
+ """Default parameter values."""
37
+
38
+ name: str = field(init=False)
39
+ """Function name (from function.__name__)."""
40
+
41
+ def __post_init__(self) -> None:
42
+ """Set name and validate dependencies."""
43
+ self.name = get_fn_name(self.func)
44
+ # Extract default inputs from function signature
45
+
46
+ sig = inspect.signature(self.func)
47
+ self.default_inputs = {
48
+ name: param.default
49
+ for name, param in sig.parameters.items()
50
+ if param.default is not param.empty
51
+ }
52
+ logger.debug("Registered node function", name=self.name, deps=self.depends_on)
53
+
54
+
55
+ def node_function(
56
+ func: Callable[..., Any] | None = None,
57
+ *,
58
+ deps: Any | None = None,
59
+ depends_on: str | Sequence[str | Callable[..., Any]] | Callable[..., Any] | None = None,
60
+ ) -> Callable[..., Any]:
61
+ """Mark a function for automatic node execution.
62
+
63
+ Can be used as simple decorator or with arguments:
64
+
65
+ @node_function
66
+ async def func(): ...
67
+
68
+ @node_function(order=1, depends_on="other_func")
69
+ async def func(): ...
70
+
71
+ Args:
72
+ func: Function to mark
73
+ deps: Dependencies to inject into all Agent parameters
74
+ depends_on: Names of functions this one depends on
75
+
76
+ Returns:
77
+ Decorated function
78
+ """
79
+
80
+ def decorator(func: Callable[..., Any]) -> Callable[..., Any]:
81
+ match depends_on:
82
+ case None:
83
+ depends_on_ = []
84
+ case str():
85
+ depends_on_ = [depends_on]
86
+ case Callable():
87
+ depends_on_ = [get_fn_name(depends_on)]
88
+ case [*items]:
89
+ depends_on_ = [
90
+ i.__name__ if isinstance(i, Callable) else str(i) # type: ignore[union-attr, arg-type]
91
+ for i in items
92
+ ]
93
+ case _:
94
+ msg = f"Invalid depends_on: {depends_on}"
95
+ raise ValueError(msg)
96
+ # TODO: we still need to inject the deps in execution part.
97
+ metadata = NodeFunction(func=func, depends_on=depends_on_ or [], deps=deps)
98
+ func._node_function = metadata # type: ignore
99
+ return func
100
+
101
+ return decorator(func) if func is not None else decorator