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
acp/py.typed ADDED
File without changes
acp/schema/__init__.py ADDED
@@ -0,0 +1,265 @@
1
+ """Schema definitions for the ACP protocol."""
2
+
3
+ from acp.schema.agent_plan import PlanEntry, PlanEntryPriority, PlanEntryStatus
4
+ from acp.schema.agent_requests import (
5
+ AgentRequest,
6
+ CreateTerminalRequest,
7
+ KillTerminalCommandRequest,
8
+ ReadTextFileRequest,
9
+ ReleaseTerminalRequest,
10
+ RequestPermissionRequest,
11
+ TerminalOutputRequest,
12
+ WaitForTerminalExitRequest,
13
+ WriteTextFileRequest,
14
+ )
15
+ from acp.schema.agent_responses import (
16
+ AgentResponse,
17
+ AuthenticateResponse,
18
+ CustomResponse,
19
+ ForkSessionResponse,
20
+ InitializeResponse,
21
+ LoadSessionResponse,
22
+ NewSessionResponse,
23
+ ListSessionsResponse,
24
+ PromptResponse,
25
+ ResumeSessionResponse,
26
+ SetSessionConfigOptionResponse,
27
+ SetSessionModeResponse,
28
+ SetSessionModelResponse,
29
+ StopReason,
30
+ )
31
+ from acp.schema.capabilities import (
32
+ AgentCapabilities,
33
+ ClientCapabilities,
34
+ FileSystemCapability,
35
+ McpCapabilities,
36
+ PromptCapabilities,
37
+ SessionCapabilities,
38
+ SessionForkCapabilities,
39
+ SessionListCapabilities,
40
+ SessionResumeCapabilities,
41
+ )
42
+ from acp.schema.client_requests import (
43
+ AuthenticateRequest,
44
+ ClientRequest,
45
+ CustomRequest,
46
+ ForkSessionRequest,
47
+ InitializeRequest,
48
+ ListSessionsRequest,
49
+ LoadSessionRequest,
50
+ NewSessionRequest,
51
+ PromptRequest,
52
+ ResumeSessionRequest,
53
+ SetSessionConfigOptionRequest,
54
+ SetSessionModeRequest,
55
+ SetSessionModelRequest,
56
+ )
57
+ from acp.schema.client_responses import (
58
+ ClientResponse,
59
+ CreateTerminalResponse,
60
+ KillTerminalCommandResponse,
61
+ ReadTextFileResponse,
62
+ ReleaseTerminalResponse,
63
+ RequestPermissionResponse,
64
+ TerminalOutputResponse,
65
+ WaitForTerminalExitResponse,
66
+ WriteTextFileResponse,
67
+ )
68
+ from acp.schema.common import AuthMethod, EnvVariable, Implementation
69
+ from acp.schema.content_blocks import (
70
+ Annotations,
71
+ AudioContentBlock,
72
+ Audience,
73
+ BlobResourceContents,
74
+ ContentBlock,
75
+ EmbeddedResourceContentBlock,
76
+ ImageContentBlock,
77
+ ResourceContentBlock,
78
+ TextContentBlock,
79
+ TextResourceContents,
80
+ )
81
+ from acp.schema.mcp import (
82
+ HttpHeader,
83
+ HttpMcpServer,
84
+ McpServer,
85
+ SseMcpServer,
86
+ StdioMcpServer,
87
+ )
88
+ from acp.schema.messages import AgentMethod, ClientMethod
89
+ from acp.schema.notifications import (
90
+ AgentNotification,
91
+ CancelNotification,
92
+ ClientNotification,
93
+ ExtNotification,
94
+ SessionNotification,
95
+ )
96
+ from acp.schema.session_state import (
97
+ ModelInfo,
98
+ SessionConfigOption,
99
+ SessionConfigSelect,
100
+ SessionConfigSelectGroup,
101
+ SessionConfigSelectOption,
102
+ SessionConfigSelectOptions,
103
+ SessionInfo,
104
+ SessionMode,
105
+ SessionModeState,
106
+ SessionModelState,
107
+ )
108
+ from acp.schema.slash_commands import (
109
+ AvailableCommand,
110
+ AvailableCommandInput,
111
+ CommandInputHint,
112
+ )
113
+ from acp.schema.terminal import TerminalExitStatus
114
+ from acp.schema.tool_call import (
115
+ AllowedOutcome,
116
+ ContentToolCallContent,
117
+ DeniedOutcome,
118
+ FileEditToolCallContent,
119
+ PermissionKind,
120
+ PermissionOption,
121
+ TerminalToolCallContent,
122
+ ToolCall,
123
+ ToolCallContent,
124
+ ToolCallKind,
125
+ ToolCallLocation,
126
+ ToolCallStatus,
127
+ )
128
+ from acp.schema.session_updates import (
129
+ AgentMessageChunk,
130
+ AgentPlanUpdate,
131
+ AgentThoughtChunk,
132
+ AvailableCommandsUpdate,
133
+ ConfigOptionUpdate,
134
+ CurrentModeUpdate,
135
+ CurrentModelUpdate,
136
+ SessionUpdate,
137
+ ToolCallProgress,
138
+ ToolCallStart,
139
+ UserMessageChunk,
140
+ )
141
+
142
+ PROTOCOL_VERSION = 1
143
+
144
+ __all__ = [
145
+ "PROTOCOL_VERSION",
146
+ "AgentCapabilities",
147
+ "AgentMessageChunk",
148
+ "AgentMethod",
149
+ "AgentNotification",
150
+ "AgentPlanUpdate",
151
+ "AgentRequest",
152
+ "AgentResponse",
153
+ "AgentThoughtChunk",
154
+ "AllowedOutcome",
155
+ "Annotations",
156
+ "Audience",
157
+ "AudioContentBlock",
158
+ "AuthMethod",
159
+ "AuthenticateRequest",
160
+ "AuthenticateResponse",
161
+ "AvailableCommand",
162
+ "AvailableCommandInput",
163
+ "AvailableCommandsUpdate",
164
+ "BlobResourceContents",
165
+ "CancelNotification",
166
+ "ClientCapabilities",
167
+ "ClientMethod",
168
+ "ClientNotification",
169
+ "ClientRequest",
170
+ "ClientResponse",
171
+ "CommandInputHint",
172
+ "ConfigOptionUpdate",
173
+ "ContentBlock",
174
+ "ContentToolCallContent",
175
+ "CreateTerminalRequest",
176
+ "CreateTerminalResponse",
177
+ "CurrentModeUpdate",
178
+ "CurrentModelUpdate",
179
+ "CustomRequest",
180
+ "CustomResponse",
181
+ "DeniedOutcome",
182
+ "EmbeddedResourceContentBlock",
183
+ "EnvVariable",
184
+ "ExtNotification",
185
+ "FileEditToolCallContent",
186
+ "FileSystemCapability",
187
+ "ForkSessionRequest",
188
+ "ForkSessionResponse",
189
+ "HttpHeader",
190
+ "HttpMcpServer",
191
+ "ImageContentBlock",
192
+ "Implementation",
193
+ "InitializeRequest",
194
+ "InitializeResponse",
195
+ "KillTerminalCommandRequest",
196
+ "KillTerminalCommandResponse",
197
+ "ListSessionsRequest",
198
+ "ListSessionsResponse",
199
+ "LoadSessionRequest",
200
+ "LoadSessionResponse",
201
+ "McpCapabilities",
202
+ "McpServer",
203
+ "ModelInfo",
204
+ "NewSessionRequest",
205
+ "NewSessionResponse",
206
+ "PermissionKind",
207
+ "PermissionOption",
208
+ "PlanEntry",
209
+ "PlanEntryPriority",
210
+ "PlanEntryStatus",
211
+ "PromptCapabilities",
212
+ "PromptRequest",
213
+ "PromptResponse",
214
+ "ReadTextFileRequest",
215
+ "ReadTextFileResponse",
216
+ "ReleaseTerminalRequest",
217
+ "ReleaseTerminalResponse",
218
+ "RequestPermissionRequest",
219
+ "RequestPermissionResponse",
220
+ "ResourceContentBlock",
221
+ "ResumeSessionRequest",
222
+ "ResumeSessionResponse",
223
+ "SessionCapabilities",
224
+ "SessionConfigOption",
225
+ "SessionConfigSelect",
226
+ "SessionConfigSelectGroup",
227
+ "SessionConfigSelectOption",
228
+ "SessionConfigSelectOptions",
229
+ "SessionForkCapabilities",
230
+ "SessionInfo",
231
+ "SessionListCapabilities",
232
+ "SessionMode",
233
+ "SessionModeState",
234
+ "SessionModelState",
235
+ "SessionNotification",
236
+ "SessionResumeCapabilities",
237
+ "SessionUpdate",
238
+ "SetSessionConfigOptionRequest",
239
+ "SetSessionConfigOptionResponse",
240
+ "SetSessionModeRequest",
241
+ "SetSessionModeResponse",
242
+ "SetSessionModelRequest",
243
+ "SetSessionModelResponse",
244
+ "SseMcpServer",
245
+ "StdioMcpServer",
246
+ "StopReason",
247
+ "TerminalExitStatus",
248
+ "TerminalOutputRequest",
249
+ "TerminalOutputResponse",
250
+ "TerminalToolCallContent",
251
+ "TextContentBlock",
252
+ "TextResourceContents",
253
+ "ToolCall",
254
+ "ToolCallContent",
255
+ "ToolCallKind",
256
+ "ToolCallLocation",
257
+ "ToolCallProgress",
258
+ "ToolCallStart",
259
+ "ToolCallStatus",
260
+ "UserMessageChunk",
261
+ "WaitForTerminalExitRequest",
262
+ "WaitForTerminalExitResponse",
263
+ "WriteTextFileRequest",
264
+ "WriteTextFileResponse",
265
+ ]
@@ -0,0 +1,30 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import Literal
4
+
5
+ from acp.schema.base import AnnotatedObject
6
+
7
+
8
+ PlanEntryPriority = Literal["high", "medium", "low"]
9
+ PlanEntryStatus = Literal["pending", "in_progress", "completed"]
10
+
11
+
12
+ class PlanEntry(AnnotatedObject):
13
+ """A single entry in the execution plan.
14
+
15
+ Represents a task or goal that the assistant intends to accomplish
16
+ as part of fulfilling the user's request.
17
+ See protocol docs: [Plan Entries](https://agentclientprotocol.com/protocol/agent-plan#plan-entries)
18
+ """
19
+
20
+ content: str
21
+ """Human-readable description of what this task aims to accomplish."""
22
+
23
+ priority: PlanEntryPriority
24
+ """The relative importance of this task.
25
+
26
+ Used to indicate which tasks are most critical to the overall goal.
27
+ """
28
+
29
+ status: PlanEntryStatus
30
+ """Current execution status of this task."""
@@ -0,0 +1,126 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Sequence # noqa: TC003
4
+
5
+ from pydantic import Field
6
+
7
+ from acp.schema.base import Request
8
+ from acp.schema.common import EnvVariable # noqa: TC001
9
+ from acp.schema.tool_call import PermissionOption, ToolCall # noqa: TC001
10
+
11
+
12
+ class BaseAgentRequest(Request):
13
+ """Base class for all agent requests."""
14
+
15
+ session_id: str
16
+ """The session ID for this request."""
17
+
18
+
19
+ class WriteTextFileRequest(BaseAgentRequest):
20
+ """Request to write content to a text file.
21
+
22
+ Only available if the client supports the `fs.writeTextFile` capability.
23
+ """
24
+
25
+ content: str
26
+ """The text content to write to the file."""
27
+
28
+ path: str
29
+ """Absolute path to the file to write."""
30
+
31
+
32
+ class ReadTextFileRequest(BaseAgentRequest):
33
+ """Request to read content from a text file.
34
+
35
+ Only available if the client supports the `fs.readTextFile` capability.
36
+ """
37
+
38
+ limit: int | None = Field(default=None, ge=0)
39
+ """Maximum number of lines to read."""
40
+
41
+ line: int | None = Field(default=None, ge=0)
42
+ """Line number to start reading from (1-based)."""
43
+
44
+ path: str
45
+ """Absolute path to the file to read."""
46
+
47
+
48
+ class TerminalOutputRequest(BaseAgentRequest):
49
+ """Request to get the current output and status of a terminal."""
50
+
51
+ terminal_id: str
52
+ """The ID of the terminal to get output from."""
53
+
54
+
55
+ class WaitForTerminalExitRequest(BaseAgentRequest):
56
+ """Request to wait for a terminal command to exit."""
57
+
58
+ terminal_id: str
59
+ """The ID of the terminal to wait for."""
60
+
61
+
62
+ class CreateTerminalRequest(BaseAgentRequest):
63
+ """Request to create a new terminal and execute a command."""
64
+
65
+ args: Sequence[str] | None = None
66
+ """Array of command arguments."""
67
+
68
+ command: str
69
+ """The command to execute."""
70
+
71
+ cwd: str | None = None
72
+ """Working directory for the command (absolute path)."""
73
+
74
+ env: Sequence[EnvVariable] | None = None
75
+ """Environment variables for the command."""
76
+
77
+ output_byte_limit: int | None = Field(default=None, ge=0)
78
+ """Maximum number of output bytes to retain.
79
+
80
+ When the limit is exceeded, the Client truncates from the beginning of the output
81
+ to stay within the limit.
82
+
83
+ The Client MUST ensure truncation happens at a character boundary to maintain valid
84
+ string output, even if this means the retained output is slightly less than the
85
+ specified limit."""
86
+
87
+
88
+ class KillTerminalCommandRequest(BaseAgentRequest):
89
+ """Request to kill a terminal command without releasing the terminal."""
90
+
91
+ terminal_id: str
92
+ """The ID of the terminal to kill."""
93
+
94
+
95
+ class ReleaseTerminalRequest(BaseAgentRequest):
96
+ """Request to release a terminal and free its resources."""
97
+
98
+ terminal_id: str
99
+ """The ID of the terminal to release."""
100
+
101
+
102
+ class RequestPermissionRequest(BaseAgentRequest):
103
+ """Request for user permission to execute a tool call.
104
+
105
+ Sent when the agent needs authorization before performing a sensitive operation.
106
+
107
+ See protocol docs: [Requesting Permission](https://agentclientprotocol.com/protocol/tool-calls#requesting-permission)
108
+ """
109
+
110
+ options: Sequence[PermissionOption]
111
+ """Available permission options for the user to choose from."""
112
+
113
+ tool_call: ToolCall
114
+ """Details about the tool call requiring permission."""
115
+
116
+
117
+ AgentRequest = (
118
+ WriteTextFileRequest
119
+ | ReadTextFileRequest
120
+ | RequestPermissionRequest
121
+ | CreateTerminalRequest
122
+ | TerminalOutputRequest
123
+ | ReleaseTerminalRequest
124
+ | WaitForTerminalExitRequest
125
+ | KillTerminalCommandRequest
126
+ )
@@ -0,0 +1,256 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Sequence # noqa: TC003
4
+ from typing import Any, Literal, Self
5
+
6
+ from pydantic import Field
7
+
8
+ from acp.schema.base import Response
9
+ from acp.schema.capabilities import AgentCapabilities
10
+ from acp.schema.common import AuthMethod, Implementation # noqa: TC001
11
+ from acp.schema.session_state import ( # noqa: TC001
12
+ SessionInfo,
13
+ SessionModelState,
14
+ SessionModeState,
15
+ )
16
+
17
+
18
+ class CustomResponse(Response):
19
+ """Response for custom/extension methods."""
20
+
21
+ data: dict[str, Any] | None = None
22
+ """The method result data."""
23
+
24
+
25
+ StopReason = Literal[
26
+ "end_turn",
27
+ "max_tokens",
28
+ "max_turn_requests",
29
+ "refusal",
30
+ "cancelled",
31
+ ]
32
+
33
+
34
+ class SetSessionModelResponse(Response):
35
+ """**UNSTABLE**: This capability is not part of the spec yet.
36
+
37
+ Response to `session/set_model` method.
38
+ """
39
+
40
+
41
+ class NewSessionResponse(Response):
42
+ """Response from creating a new session.
43
+
44
+ See protocol docs: [Creating a Session](https://agentclientprotocol.com/protocol/session-setup#creating-a-session)
45
+ """
46
+
47
+ models: SessionModelState | None = None
48
+ """**UNSTABLE**
49
+
50
+ This capability is not part of the spec yet.
51
+
52
+ Initial model state if supported by the Agent
53
+ """
54
+
55
+ modes: SessionModeState | None = None
56
+ """Initial mode state if supported by the Agent
57
+
58
+ See protocol docs: [Session Modes](https://agentclientprotocol.com/protocol/session-modes)
59
+ """
60
+
61
+ session_id: str
62
+ """Unique identifier for the created session.
63
+
64
+ Used in all subsequent requests for this conversation.
65
+ """
66
+
67
+
68
+ class LoadSessionResponse(Response):
69
+ """Response from loading an existing session."""
70
+
71
+ models: SessionModelState | None = None
72
+ """**UNSTABLE**
73
+
74
+ This capability is not part of the spec yet.
75
+
76
+ Initial model state if supported by the Agent
77
+ """
78
+
79
+ modes: SessionModeState | None = None
80
+ """Initial mode state if supported by the Agent
81
+
82
+ See protocol docs: [Session Modes](https://agentclientprotocol.com/protocol/session-modes)
83
+ """
84
+
85
+
86
+ class ForkSessionResponse(Response):
87
+ """**UNSTABLE**: This capability is not part of the spec yet.
88
+
89
+ Response from forking an existing session.
90
+ """
91
+
92
+ models: SessionModelState | None = None
93
+ """**UNSTABLE**
94
+
95
+ This capability is not part of the spec yet.
96
+
97
+ Initial model state if supported by the Agent
98
+ """
99
+
100
+ modes: SessionModeState | None = None
101
+ """Initial mode state if supported by the Agent
102
+
103
+ See protocol docs: [Session Modes](https://agentclientprotocol.com/protocol/session-modes)
104
+ """
105
+
106
+ session_id: str
107
+ """Unique identifier for the newly created forked session."""
108
+
109
+
110
+ class ResumeSessionResponse(Response):
111
+ """**UNSTABLE**: This capability is not part of the spec yet.
112
+
113
+ Response from resuming an existing session.
114
+ """
115
+
116
+ models: SessionModelState | None = None
117
+ """**UNSTABLE**
118
+
119
+ This capability is not part of the spec yet.
120
+
121
+ Initial model state if supported by the Agent
122
+ """
123
+
124
+ modes: SessionModeState | None = None
125
+ """Initial mode state if supported by the Agent
126
+
127
+ See protocol docs: [Session Modes](https://agentclientprotocol.com/protocol/session-modes)
128
+ """
129
+
130
+
131
+ class SetSessionModeResponse(Response):
132
+ """Response to `session/set_mode` method."""
133
+
134
+
135
+ class SetSessionConfigOptionResponse(Response):
136
+ """Response to `session/set_config_option` method."""
137
+
138
+
139
+ class PromptResponse(Response):
140
+ """Response from processing a user prompt.
141
+
142
+ See protocol docs: [Check for Completion](https://agentclientprotocol.com/protocol/prompt-turn#4-check-for-completion)
143
+ """
144
+
145
+ stop_reason: StopReason
146
+ """Indicates why the agent stopped processing the turn."""
147
+
148
+
149
+ class AuthenticateResponse(Response):
150
+ """Response to authenticate method."""
151
+
152
+
153
+ class InitializeResponse(Response):
154
+ """Response from the initialize method.
155
+
156
+ Contains the negotiated protocol version and agent capabilities.
157
+
158
+ See protocol docs: [Initialization](https://agentclientprotocol.com/protocol/initialization)
159
+ """
160
+
161
+ agent_capabilities: AgentCapabilities | None = Field(default_factory=AgentCapabilities)
162
+ """Capabilities supported by the agent."""
163
+
164
+ agent_info: Implementation | None = None
165
+ """Information about the Agent name and version sent to the Client.
166
+
167
+
168
+ Note: in future versions of the protocol, this will be required."""
169
+
170
+ auth_methods: Sequence[AuthMethod] | None = Field(default_factory=list)
171
+ """Authentication methods supported by the agent."""
172
+
173
+ protocol_version: int = Field(ge=0, le=65535)
174
+ """The protocol version the client specified if supported by the agent.
175
+
176
+ Or the latest protocol version supported by the agent.
177
+ The client should disconnect, if it doesn't support this version.
178
+ """
179
+
180
+ @classmethod
181
+ def create(
182
+ cls,
183
+ name: str,
184
+ title: str,
185
+ version: str,
186
+ protocol_version: int,
187
+ load_session: bool | None = False,
188
+ http_mcp_servers: bool = False,
189
+ sse_mcp_servers: bool = False,
190
+ audio_prompts: bool = False,
191
+ embedded_context_prompts: bool = False,
192
+ image_prompts: bool = False,
193
+ list_sessions: bool = False,
194
+ auth_methods: Sequence[AuthMethod] | None = None,
195
+ ) -> Self:
196
+ """Create an instance of AgentCapabilities.
197
+
198
+ Args:
199
+ name: The name of the agent.
200
+ title: The title of the agent.
201
+ version: The version of the agent.
202
+ protocol_version: The protocol version of the agent.
203
+ load_session: Whether the agent supports `session/load`.
204
+ http_mcp_servers: Whether the agent supports HTTP MCP servers.
205
+ sse_mcp_servers: Whether the agent supports SSE MCP servers.
206
+ audio_prompts: Whether the agent supports audio prompts.
207
+ embedded_context_prompts: Whether the agent supports embedded context prompts.
208
+ image_prompts: Whether the agent supports image prompts.
209
+ list_sessions: Whether the agent supports `session/list` (unstable).
210
+ auth_methods: The authentication methods supported by the agent.
211
+ """
212
+ caps = AgentCapabilities.create(
213
+ load_session=load_session,
214
+ http_mcp_servers=http_mcp_servers,
215
+ sse_mcp_servers=sse_mcp_servers,
216
+ audio_prompts=audio_prompts,
217
+ embedded_context_prompts=embedded_context_prompts,
218
+ image_prompts=image_prompts,
219
+ list_sessions=list_sessions,
220
+ )
221
+ return cls(
222
+ agent_info=Implementation(name=name, title=title, version=version),
223
+ protocol_version=protocol_version,
224
+ agent_capabilities=caps,
225
+ auth_methods=auth_methods,
226
+ )
227
+
228
+
229
+ class ListSessionsResponse(Response):
230
+ """**UNSTABLE**: This capability is not part of the spec yet.
231
+
232
+ Response from listing sessions.
233
+ """
234
+
235
+ next_cursor: str | None = None
236
+ """Opaque cursor token. If present, pass this in the next request's cursor parameter
237
+ to fetch the next page. If absent, there are no more results."""
238
+
239
+ sessions: Sequence[SessionInfo] = Field(default_factory=list)
240
+ """Array of session information objects."""
241
+
242
+
243
+ AgentResponse = (
244
+ InitializeResponse
245
+ | AuthenticateResponse
246
+ | NewSessionResponse
247
+ | LoadSessionResponse
248
+ | ForkSessionResponse
249
+ | ResumeSessionResponse
250
+ | ListSessionsResponse
251
+ | SetSessionModeResponse
252
+ | SetSessionConfigOptionResponse
253
+ | PromptResponse
254
+ | SetSessionModelResponse
255
+ | CustomResponse
256
+ )