acp-sdk 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (421) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +11 -0
  3. data/LICENSE.txt +9 -0
  4. data/README.md +81 -0
  5. data/lib/acp/agent_connection/client.rb +39 -0
  6. data/lib/acp/agent_connection/optional_method.rb +28 -0
  7. data/lib/acp/agent_connection.rb +122 -0
  8. data/lib/acp/client_connection.rb +129 -0
  9. data/lib/acp/sdk.rb +13 -0
  10. data/lib/acp/transport/reply.rb +20 -0
  11. data/lib/acp/transport/response_error.rb +28 -0
  12. data/lib/acp/transport/result.rb +35 -0
  13. data/lib/acp/transport/stdio.rb +207 -0
  14. data/lib/acp/transport.rb +4 -0
  15. data/lib/acp/types/agent_auth_capabilities.rb +31 -0
  16. data/lib/acp/types/agent_capabilities.rb +72 -0
  17. data/lib/acp/types/annotations.rb +46 -0
  18. data/lib/acp/types/audio_content.rb +46 -0
  19. data/lib/acp/types/auth_capabilities.rb +31 -0
  20. data/lib/acp/types/auth_method/terminal.rb +66 -0
  21. data/lib/acp/types/auth_method.rb +20 -0
  22. data/lib/acp/types/auth_method_agent.rb +41 -0
  23. data/lib/acp/types/auth_method_terminal.rb +58 -0
  24. data/lib/acp/types/authenticate_request.rb +31 -0
  25. data/lib/acp/types/authenticate_response.rb +26 -0
  26. data/lib/acp/types/available_command.rb +46 -0
  27. data/lib/acp/types/available_command_input.rb +19 -0
  28. data/lib/acp/types/available_commands_update.rb +34 -0
  29. data/lib/acp/types/blob_resource_contents.rb +41 -0
  30. data/lib/acp/types/boolean_config_option_capabilities.rb +26 -0
  31. data/lib/acp/types/boolean_property_schema.rb +41 -0
  32. data/lib/acp/types/cancel_notification.rb +31 -0
  33. data/lib/acp/types/cancel_request_notification.rb +31 -0
  34. data/lib/acp/types/client_capabilities.rb +65 -0
  35. data/lib/acp/types/client_session_capabilities.rb +36 -0
  36. data/lib/acp/types/close_session_request.rb +31 -0
  37. data/lib/acp/types/close_session_response.rb +26 -0
  38. data/lib/acp/types/complete_elicitation_notification.rb +31 -0
  39. data/lib/acp/types/config_option_update.rb +34 -0
  40. data/lib/acp/types/content.rb +31 -0
  41. data/lib/acp/types/content_block/audio.rb +52 -0
  42. data/lib/acp/types/content_block/image.rb +59 -0
  43. data/lib/acp/types/content_block/resource.rb +40 -0
  44. data/lib/acp/types/content_block/resource_link.rb +80 -0
  45. data/lib/acp/types/content_block/text.rb +40 -0
  46. data/lib/acp/types/content_block.rb +26 -0
  47. data/lib/acp/types/content_chunk.rb +40 -0
  48. data/lib/acp/types/cost.rb +36 -0
  49. data/lib/acp/types/create_elicitation_request/mode/form.rb +34 -0
  50. data/lib/acp/types/create_elicitation_request/mode/url.rb +40 -0
  51. data/lib/acp/types/create_elicitation_request/mode.rb +20 -0
  52. data/lib/acp/types/create_elicitation_request.rb +40 -0
  53. data/lib/acp/types/create_elicitation_response/action/accept.rb +26 -0
  54. data/lib/acp/types/create_elicitation_response/action/cancel.rb +21 -0
  55. data/lib/acp/types/create_elicitation_response/action/decline.rb +21 -0
  56. data/lib/acp/types/create_elicitation_response/action.rb +22 -0
  57. data/lib/acp/types/create_elicitation_response.rb +31 -0
  58. data/lib/acp/types/create_terminal_request.rb +72 -0
  59. data/lib/acp/types/create_terminal_response.rb +31 -0
  60. data/lib/acp/types/current_mode_update.rb +31 -0
  61. data/lib/acp/types/delete_session_request.rb +31 -0
  62. data/lib/acp/types/delete_session_response.rb +26 -0
  63. data/lib/acp/types/diff.rb +41 -0
  64. data/lib/acp/types/elicitation_accept_action.rb +26 -0
  65. data/lib/acp/types/elicitation_capabilities.rb +40 -0
  66. data/lib/acp/types/elicitation_form_capabilities.rb +26 -0
  67. data/lib/acp/types/elicitation_form_mode/scope.rb +22 -0
  68. data/lib/acp/types/elicitation_form_mode.rb +34 -0
  69. data/lib/acp/types/elicitation_property_schema/boolean_property_schema.rb +47 -0
  70. data/lib/acp/types/elicitation_property_schema/integer_property_schema.rb +66 -0
  71. data/lib/acp/types/elicitation_property_schema/multi_select_property_schema.rb +73 -0
  72. data/lib/acp/types/elicitation_property_schema/number_property_schema.rb +66 -0
  73. data/lib/acp/types/elicitation_property_schema/string_property_schema.rb +105 -0
  74. data/lib/acp/types/elicitation_property_schema.rb +26 -0
  75. data/lib/acp/types/elicitation_request_scope.rb +26 -0
  76. data/lib/acp/types/elicitation_schema.rb +65 -0
  77. data/lib/acp/types/elicitation_schema_type.rb +7 -0
  78. data/lib/acp/types/elicitation_session_scope.rb +31 -0
  79. data/lib/acp/types/elicitation_url_capabilities.rb +26 -0
  80. data/lib/acp/types/elicitation_url_mode/scope.rb +22 -0
  81. data/lib/acp/types/elicitation_url_mode.rb +40 -0
  82. data/lib/acp/types/embedded_resource.rb +40 -0
  83. data/lib/acp/types/embedded_resource_resource.rb +22 -0
  84. data/lib/acp/types/enum_option.rb +41 -0
  85. data/lib/acp/types/env_variable.rb +36 -0
  86. data/lib/acp/types/file_system_capabilities.rb +36 -0
  87. data/lib/acp/types/http_header.rb +36 -0
  88. data/lib/acp/types/image_content.rb +58 -0
  89. data/lib/acp/types/implementation.rb +41 -0
  90. data/lib/acp/types/initialize_request.rb +51 -0
  91. data/lib/acp/types/initialize_response.rb +58 -0
  92. data/lib/acp/types/integer_property_schema.rb +65 -0
  93. data/lib/acp/types/kill_terminal_request.rb +36 -0
  94. data/lib/acp/types/kill_terminal_response.rb +26 -0
  95. data/lib/acp/types/list_sessions_request.rb +36 -0
  96. data/lib/acp/types/list_sessions_response.rb +40 -0
  97. data/lib/acp/types/load_session_request.rb +58 -0
  98. data/lib/acp/types/load_session_response.rb +40 -0
  99. data/lib/acp/types/logout_capabilities.rb +26 -0
  100. data/lib/acp/types/logout_request.rb +26 -0
  101. data/lib/acp/types/logout_response.rb +26 -0
  102. data/lib/acp/types/mcp_capabilities.rb +36 -0
  103. data/lib/acp/types/mcp_server/http.rb +46 -0
  104. data/lib/acp/types/mcp_server/sse.rb +46 -0
  105. data/lib/acp/types/mcp_server.rb +22 -0
  106. data/lib/acp/types/mcp_server_http.rb +46 -0
  107. data/lib/acp/types/mcp_server_sse.rb +46 -0
  108. data/lib/acp/types/mcp_server_stdio.rb +52 -0
  109. data/lib/acp/types/multi_select_items/string_multi_select_items.rb +31 -0
  110. data/lib/acp/types/multi_select_items.rb +20 -0
  111. data/lib/acp/types/multi_select_property_schema.rb +72 -0
  112. data/lib/acp/types/new_session_request.rb +51 -0
  113. data/lib/acp/types/new_session_response.rb +51 -0
  114. data/lib/acp/types/number_property_schema.rb +65 -0
  115. data/lib/acp/types/permission_option.rb +41 -0
  116. data/lib/acp/types/permission_option_kind.rb +10 -0
  117. data/lib/acp/types/plan.rb +31 -0
  118. data/lib/acp/types/plan_entry.rb +46 -0
  119. data/lib/acp/types/plan_entry_priority.rb +9 -0
  120. data/lib/acp/types/plan_entry_status.rb +9 -0
  121. data/lib/acp/types/prompt_capabilities.rb +41 -0
  122. data/lib/acp/types/prompt_request.rb +40 -0
  123. data/lib/acp/types/prompt_response.rb +31 -0
  124. data/lib/acp/types/read_text_file_request.rb +52 -0
  125. data/lib/acp/types/read_text_file_response.rb +31 -0
  126. data/lib/acp/types/release_terminal_request.rb +36 -0
  127. data/lib/acp/types/release_terminal_response.rb +26 -0
  128. data/lib/acp/types/request_permission_outcome/cancelled.rb +21 -0
  129. data/lib/acp/types/request_permission_outcome/selected.rb +31 -0
  130. data/lib/acp/types/request_permission_outcome.rb +20 -0
  131. data/lib/acp/types/request_permission_request.rb +51 -0
  132. data/lib/acp/types/request_permission_response.rb +31 -0
  133. data/lib/acp/types/resource_link.rb +79 -0
  134. data/lib/acp/types/resume_session_request.rb +58 -0
  135. data/lib/acp/types/resume_session_response.rb +40 -0
  136. data/lib/acp/types/role.rb +8 -0
  137. data/lib/acp/types/selected_permission_outcome.rb +31 -0
  138. data/lib/acp/types/session_additional_directories_capabilities.rb +26 -0
  139. data/lib/acp/types/session_capabilities.rb +67 -0
  140. data/lib/acp/types/session_close_capabilities.rb +26 -0
  141. data/lib/acp/types/session_config_boolean.rb +26 -0
  142. data/lib/acp/types/session_config_option/kind/boolean.rb +26 -0
  143. data/lib/acp/types/session_config_option/kind/select.rb +34 -0
  144. data/lib/acp/types/session_config_option/kind.rb +20 -0
  145. data/lib/acp/types/session_config_option.rb +64 -0
  146. data/lib/acp/types/session_config_option_category.rb +10 -0
  147. data/lib/acp/types/session_config_options_capabilities.rb +34 -0
  148. data/lib/acp/types/session_config_select.rb +34 -0
  149. data/lib/acp/types/session_config_select_group.rb +46 -0
  150. data/lib/acp/types/session_config_select_option.rb +41 -0
  151. data/lib/acp/types/session_config_select_options.rb +22 -0
  152. data/lib/acp/types/session_delete_capabilities.rb +26 -0
  153. data/lib/acp/types/session_info.rb +65 -0
  154. data/lib/acp/types/session_info_update.rb +38 -0
  155. data/lib/acp/types/session_list_capabilities.rb +26 -0
  156. data/lib/acp/types/session_list_request.rb +8 -0
  157. data/lib/acp/types/session_list_response.rb +8 -0
  158. data/lib/acp/types/session_load_request.rb +8 -0
  159. data/lib/acp/types/session_mode.rb +41 -0
  160. data/lib/acp/types/session_mode_state.rb +40 -0
  161. data/lib/acp/types/session_new_request.rb +8 -0
  162. data/lib/acp/types/session_notification.rb +40 -0
  163. data/lib/acp/types/session_prompt_request.rb +8 -0
  164. data/lib/acp/types/session_resume_capabilities.rb +26 -0
  165. data/lib/acp/types/session_update/agent_message_chunk.rb +45 -0
  166. data/lib/acp/types/session_update/agent_thought_chunk.rb +45 -0
  167. data/lib/acp/types/session_update/available_commands_update.rb +38 -0
  168. data/lib/acp/types/session_update/config_option_update.rb +38 -0
  169. data/lib/acp/types/session_update/current_mode_update.rb +31 -0
  170. data/lib/acp/types/session_update/plan.rb +31 -0
  171. data/lib/acp/types/session_update/session_info_update.rb +39 -0
  172. data/lib/acp/types/session_update/tool_call.rb +97 -0
  173. data/lib/acp/types/session_update/tool_call_update.rb +97 -0
  174. data/lib/acp/types/session_update/usage_update.rb +46 -0
  175. data/lib/acp/types/session_update/user_message_chunk.rb +45 -0
  176. data/lib/acp/types/session_update.rb +38 -0
  177. data/lib/acp/types/set_session_config_option_request/value/boolean.rb +26 -0
  178. data/lib/acp/types/set_session_config_option_request/value/value_id.rb +26 -0
  179. data/lib/acp/types/set_session_config_option_request/value.rb +20 -0
  180. data/lib/acp/types/set_session_config_option_request.rb +46 -0
  181. data/lib/acp/types/set_session_config_option_response.rb +34 -0
  182. data/lib/acp/types/set_session_mode_request.rb +36 -0
  183. data/lib/acp/types/set_session_mode_response.rb +26 -0
  184. data/lib/acp/types/stop_reason.rb +11 -0
  185. data/lib/acp/types/string_format.rb +10 -0
  186. data/lib/acp/types/string_multi_select_items.rb +31 -0
  187. data/lib/acp/types/string_property_schema.rb +104 -0
  188. data/lib/acp/types/terminal.rb +31 -0
  189. data/lib/acp/types/terminal_exit_status.rb +36 -0
  190. data/lib/acp/types/terminal_output_request.rb +36 -0
  191. data/lib/acp/types/terminal_output_response.rb +46 -0
  192. data/lib/acp/types/text_content.rb +40 -0
  193. data/lib/acp/types/text_resource_contents.rb +41 -0
  194. data/lib/acp/types/titled_multi_select_items.rb +31 -0
  195. data/lib/acp/types/tool_call.rb +96 -0
  196. data/lib/acp/types/tool_call_content/content.rb +31 -0
  197. data/lib/acp/types/tool_call_content/diff.rb +41 -0
  198. data/lib/acp/types/tool_call_content/terminal.rb +31 -0
  199. data/lib/acp/types/tool_call_content.rb +22 -0
  200. data/lib/acp/types/tool_call_location.rb +36 -0
  201. data/lib/acp/types/tool_call_status.rb +10 -0
  202. data/lib/acp/types/tool_call_update.rb +96 -0
  203. data/lib/acp/types/tool_kind.rb +16 -0
  204. data/lib/acp/types/unstructured_command_input.rb +31 -0
  205. data/lib/acp/types/usage_update.rb +46 -0
  206. data/lib/acp/types/wait_for_terminal_exit_request.rb +36 -0
  207. data/lib/acp/types/wait_for_terminal_exit_response.rb +36 -0
  208. data/lib/acp/types/write_text_file_request.rb +46 -0
  209. data/lib/acp/types/write_text_file_response.rb +26 -0
  210. data/lib/acp/version.rb +5 -0
  211. data/sig/generated/acp/agent_connection/client.rbs +29 -0
  212. data/sig/generated/acp/agent_connection/optional_method.rbs +21 -0
  213. data/sig/generated/acp/agent_connection.rbs +65 -0
  214. data/sig/generated/acp/client_connection.rbs +82 -0
  215. data/sig/generated/acp/sdk.rbs +2 -0
  216. data/sig/generated/acp/transport/reply.rbs +16 -0
  217. data/sig/generated/acp/transport/response_error.rbs +21 -0
  218. data/sig/generated/acp/transport/result.rbs +25 -0
  219. data/sig/generated/acp/transport/stdio.rbs +116 -0
  220. data/sig/generated/acp/transport.rbs +4 -0
  221. data/sig/generated/acp/types/agent_auth_capabilities.rbs +21 -0
  222. data/sig/generated/acp/types/agent_capabilities.rbs +37 -0
  223. data/sig/generated/acp/types/annotations.rbs +29 -0
  224. data/sig/generated/acp/types/audio_content.rbs +29 -0
  225. data/sig/generated/acp/types/auth_capabilities.rbs +21 -0
  226. data/sig/generated/acp/types/auth_method/terminal.rbs +37 -0
  227. data/sig/generated/acp/types/auth_method.rbs +9 -0
  228. data/sig/generated/acp/types/auth_method_agent.rbs +29 -0
  229. data/sig/generated/acp/types/auth_method_terminal.rbs +37 -0
  230. data/sig/generated/acp/types/authenticate_request.rbs +21 -0
  231. data/sig/generated/acp/types/authenticate_response.rbs +17 -0
  232. data/sig/generated/acp/types/available_command.rbs +29 -0
  233. data/sig/generated/acp/types/available_command_input.rbs +9 -0
  234. data/sig/generated/acp/types/available_commands_update.rbs +21 -0
  235. data/sig/generated/acp/types/blob_resource_contents.rbs +29 -0
  236. data/sig/generated/acp/types/boolean_config_option_capabilities.rbs +17 -0
  237. data/sig/generated/acp/types/boolean_property_schema.rbs +29 -0
  238. data/sig/generated/acp/types/cancel_notification.rbs +21 -0
  239. data/sig/generated/acp/types/cancel_request_notification.rbs +21 -0
  240. data/sig/generated/acp/types/client_capabilities.rbs +37 -0
  241. data/sig/generated/acp/types/client_session_capabilities.rbs +21 -0
  242. data/sig/generated/acp/types/close_session_request.rbs +21 -0
  243. data/sig/generated/acp/types/close_session_response.rbs +17 -0
  244. data/sig/generated/acp/types/complete_elicitation_notification.rbs +21 -0
  245. data/sig/generated/acp/types/config_option_update.rbs +21 -0
  246. data/sig/generated/acp/types/content.rbs +21 -0
  247. data/sig/generated/acp/types/content_block/audio.rbs +29 -0
  248. data/sig/generated/acp/types/content_block/image.rbs +33 -0
  249. data/sig/generated/acp/types/content_block/resource.rbs +25 -0
  250. data/sig/generated/acp/types/content_block/resource_link.rbs +45 -0
  251. data/sig/generated/acp/types/content_block/text.rbs +25 -0
  252. data/sig/generated/acp/types/content_block.rbs +9 -0
  253. data/sig/generated/acp/types/content_chunk.rbs +25 -0
  254. data/sig/generated/acp/types/cost.rbs +25 -0
  255. data/sig/generated/acp/types/create_elicitation_request/mode/form.rbs +21 -0
  256. data/sig/generated/acp/types/create_elicitation_request/mode/url.rbs +25 -0
  257. data/sig/generated/acp/types/create_elicitation_request/mode.rbs +9 -0
  258. data/sig/generated/acp/types/create_elicitation_request.rbs +25 -0
  259. data/sig/generated/acp/types/create_elicitation_response/action/accept.rbs +17 -0
  260. data/sig/generated/acp/types/create_elicitation_response/action/cancel.rbs +13 -0
  261. data/sig/generated/acp/types/create_elicitation_response/action/decline.rbs +13 -0
  262. data/sig/generated/acp/types/create_elicitation_response/action.rbs +9 -0
  263. data/sig/generated/acp/types/create_elicitation_response.rbs +21 -0
  264. data/sig/generated/acp/types/create_terminal_request.rbs +41 -0
  265. data/sig/generated/acp/types/create_terminal_response.rbs +21 -0
  266. data/sig/generated/acp/types/current_mode_update.rbs +21 -0
  267. data/sig/generated/acp/types/delete_session_request.rbs +21 -0
  268. data/sig/generated/acp/types/delete_session_response.rbs +17 -0
  269. data/sig/generated/acp/types/diff.rbs +29 -0
  270. data/sig/generated/acp/types/elicitation_accept_action.rbs +17 -0
  271. data/sig/generated/acp/types/elicitation_capabilities.rbs +25 -0
  272. data/sig/generated/acp/types/elicitation_form_capabilities.rbs +17 -0
  273. data/sig/generated/acp/types/elicitation_form_mode/scope.rbs +9 -0
  274. data/sig/generated/acp/types/elicitation_form_mode.rbs +21 -0
  275. data/sig/generated/acp/types/elicitation_property_schema/boolean_property_schema.rbs +29 -0
  276. data/sig/generated/acp/types/elicitation_property_schema/integer_property_schema.rbs +37 -0
  277. data/sig/generated/acp/types/elicitation_property_schema/multi_select_property_schema.rbs +41 -0
  278. data/sig/generated/acp/types/elicitation_property_schema/number_property_schema.rbs +37 -0
  279. data/sig/generated/acp/types/elicitation_property_schema/string_property_schema.rbs +53 -0
  280. data/sig/generated/acp/types/elicitation_property_schema.rbs +9 -0
  281. data/sig/generated/acp/types/elicitation_request_scope.rbs +17 -0
  282. data/sig/generated/acp/types/elicitation_schema.rbs +37 -0
  283. data/sig/generated/acp/types/elicitation_schema_type.rbs +5 -0
  284. data/sig/generated/acp/types/elicitation_session_scope.rbs +21 -0
  285. data/sig/generated/acp/types/elicitation_url_capabilities.rbs +17 -0
  286. data/sig/generated/acp/types/elicitation_url_mode/scope.rbs +9 -0
  287. data/sig/generated/acp/types/elicitation_url_mode.rbs +25 -0
  288. data/sig/generated/acp/types/embedded_resource.rbs +25 -0
  289. data/sig/generated/acp/types/embedded_resource_resource.rbs +9 -0
  290. data/sig/generated/acp/types/enum_option.rbs +29 -0
  291. data/sig/generated/acp/types/env_variable.rbs +25 -0
  292. data/sig/generated/acp/types/file_system_capabilities.rbs +25 -0
  293. data/sig/generated/acp/types/http_header.rbs +25 -0
  294. data/sig/generated/acp/types/image_content.rbs +33 -0
  295. data/sig/generated/acp/types/implementation.rbs +29 -0
  296. data/sig/generated/acp/types/initialize_request.rbs +29 -0
  297. data/sig/generated/acp/types/initialize_response.rbs +33 -0
  298. data/sig/generated/acp/types/integer_property_schema.rbs +37 -0
  299. data/sig/generated/acp/types/kill_terminal_request.rbs +25 -0
  300. data/sig/generated/acp/types/kill_terminal_response.rbs +17 -0
  301. data/sig/generated/acp/types/list_sessions_request.rbs +25 -0
  302. data/sig/generated/acp/types/list_sessions_response.rbs +25 -0
  303. data/sig/generated/acp/types/load_session_request.rbs +33 -0
  304. data/sig/generated/acp/types/load_session_response.rbs +25 -0
  305. data/sig/generated/acp/types/logout_capabilities.rbs +17 -0
  306. data/sig/generated/acp/types/logout_request.rbs +17 -0
  307. data/sig/generated/acp/types/logout_response.rbs +17 -0
  308. data/sig/generated/acp/types/mcp_capabilities.rbs +25 -0
  309. data/sig/generated/acp/types/mcp_server/http.rbs +29 -0
  310. data/sig/generated/acp/types/mcp_server/sse.rbs +29 -0
  311. data/sig/generated/acp/types/mcp_server.rbs +9 -0
  312. data/sig/generated/acp/types/mcp_server_http.rbs +29 -0
  313. data/sig/generated/acp/types/mcp_server_sse.rbs +29 -0
  314. data/sig/generated/acp/types/mcp_server_stdio.rbs +33 -0
  315. data/sig/generated/acp/types/multi_select_items/string_multi_select_items.rbs +21 -0
  316. data/sig/generated/acp/types/multi_select_items.rbs +9 -0
  317. data/sig/generated/acp/types/multi_select_property_schema.rbs +41 -0
  318. data/sig/generated/acp/types/new_session_request.rbs +29 -0
  319. data/sig/generated/acp/types/new_session_response.rbs +29 -0
  320. data/sig/generated/acp/types/number_property_schema.rbs +37 -0
  321. data/sig/generated/acp/types/permission_option.rbs +29 -0
  322. data/sig/generated/acp/types/permission_option_kind.rbs +11 -0
  323. data/sig/generated/acp/types/plan.rbs +21 -0
  324. data/sig/generated/acp/types/plan_entry.rbs +29 -0
  325. data/sig/generated/acp/types/plan_entry_priority.rbs +9 -0
  326. data/sig/generated/acp/types/plan_entry_status.rbs +9 -0
  327. data/sig/generated/acp/types/prompt_capabilities.rbs +29 -0
  328. data/sig/generated/acp/types/prompt_request.rbs +25 -0
  329. data/sig/generated/acp/types/prompt_response.rbs +21 -0
  330. data/sig/generated/acp/types/read_text_file_request.rbs +33 -0
  331. data/sig/generated/acp/types/read_text_file_response.rbs +21 -0
  332. data/sig/generated/acp/types/release_terminal_request.rbs +25 -0
  333. data/sig/generated/acp/types/release_terminal_response.rbs +17 -0
  334. data/sig/generated/acp/types/request_permission_outcome/cancelled.rbs +13 -0
  335. data/sig/generated/acp/types/request_permission_outcome/selected.rbs +21 -0
  336. data/sig/generated/acp/types/request_permission_outcome.rbs +9 -0
  337. data/sig/generated/acp/types/request_permission_request.rbs +29 -0
  338. data/sig/generated/acp/types/request_permission_response.rbs +21 -0
  339. data/sig/generated/acp/types/resource_link.rbs +45 -0
  340. data/sig/generated/acp/types/resume_session_request.rbs +33 -0
  341. data/sig/generated/acp/types/resume_session_response.rbs +25 -0
  342. data/sig/generated/acp/types/role.rbs +7 -0
  343. data/sig/generated/acp/types/selected_permission_outcome.rbs +21 -0
  344. data/sig/generated/acp/types/session_additional_directories_capabilities.rbs +17 -0
  345. data/sig/generated/acp/types/session_capabilities.rbs +37 -0
  346. data/sig/generated/acp/types/session_close_capabilities.rbs +17 -0
  347. data/sig/generated/acp/types/session_config_boolean.rbs +17 -0
  348. data/sig/generated/acp/types/session_config_option/kind/boolean.rbs +17 -0
  349. data/sig/generated/acp/types/session_config_option/kind/select.rbs +21 -0
  350. data/sig/generated/acp/types/session_config_option/kind.rbs +9 -0
  351. data/sig/generated/acp/types/session_config_option.rbs +37 -0
  352. data/sig/generated/acp/types/session_config_option_category.rbs +11 -0
  353. data/sig/generated/acp/types/session_config_options_capabilities.rbs +21 -0
  354. data/sig/generated/acp/types/session_config_select.rbs +21 -0
  355. data/sig/generated/acp/types/session_config_select_group.rbs +29 -0
  356. data/sig/generated/acp/types/session_config_select_option.rbs +29 -0
  357. data/sig/generated/acp/types/session_config_select_options.rbs +9 -0
  358. data/sig/generated/acp/types/session_delete_capabilities.rbs +17 -0
  359. data/sig/generated/acp/types/session_info.rbs +37 -0
  360. data/sig/generated/acp/types/session_info_update.rbs +25 -0
  361. data/sig/generated/acp/types/session_list_capabilities.rbs +17 -0
  362. data/sig/generated/acp/types/session_list_request.rbs +3 -0
  363. data/sig/generated/acp/types/session_list_response.rbs +3 -0
  364. data/sig/generated/acp/types/session_load_request.rbs +3 -0
  365. data/sig/generated/acp/types/session_mode.rbs +29 -0
  366. data/sig/generated/acp/types/session_mode_state.rbs +25 -0
  367. data/sig/generated/acp/types/session_new_request.rbs +3 -0
  368. data/sig/generated/acp/types/session_notification.rbs +25 -0
  369. data/sig/generated/acp/types/session_prompt_request.rbs +3 -0
  370. data/sig/generated/acp/types/session_resume_capabilities.rbs +17 -0
  371. data/sig/generated/acp/types/session_update/agent_message_chunk.rbs +25 -0
  372. data/sig/generated/acp/types/session_update/agent_thought_chunk.rbs +25 -0
  373. data/sig/generated/acp/types/session_update/available_commands_update.rbs +21 -0
  374. data/sig/generated/acp/types/session_update/config_option_update.rbs +21 -0
  375. data/sig/generated/acp/types/session_update/current_mode_update.rbs +21 -0
  376. data/sig/generated/acp/types/session_update/plan.rbs +21 -0
  377. data/sig/generated/acp/types/session_update/session_info_update.rbs +25 -0
  378. data/sig/generated/acp/types/session_update/tool_call.rbs +49 -0
  379. data/sig/generated/acp/types/session_update/tool_call_update.rbs +49 -0
  380. data/sig/generated/acp/types/session_update/usage_update.rbs +29 -0
  381. data/sig/generated/acp/types/session_update/user_message_chunk.rbs +25 -0
  382. data/sig/generated/acp/types/session_update.rbs +9 -0
  383. data/sig/generated/acp/types/set_session_config_option_request/value/boolean.rbs +17 -0
  384. data/sig/generated/acp/types/set_session_config_option_request/value/value_id.rbs +17 -0
  385. data/sig/generated/acp/types/set_session_config_option_request/value.rbs +9 -0
  386. data/sig/generated/acp/types/set_session_config_option_request.rbs +29 -0
  387. data/sig/generated/acp/types/set_session_config_option_response.rbs +21 -0
  388. data/sig/generated/acp/types/set_session_mode_request.rbs +25 -0
  389. data/sig/generated/acp/types/set_session_mode_response.rbs +17 -0
  390. data/sig/generated/acp/types/stop_reason.rbs +13 -0
  391. data/sig/generated/acp/types/string_format.rbs +11 -0
  392. data/sig/generated/acp/types/string_multi_select_items.rbs +21 -0
  393. data/sig/generated/acp/types/string_property_schema.rbs +53 -0
  394. data/sig/generated/acp/types/terminal.rbs +21 -0
  395. data/sig/generated/acp/types/terminal_exit_status.rbs +25 -0
  396. data/sig/generated/acp/types/terminal_output_request.rbs +25 -0
  397. data/sig/generated/acp/types/terminal_output_response.rbs +29 -0
  398. data/sig/generated/acp/types/text_content.rbs +25 -0
  399. data/sig/generated/acp/types/text_resource_contents.rbs +29 -0
  400. data/sig/generated/acp/types/titled_multi_select_items.rbs +21 -0
  401. data/sig/generated/acp/types/tool_call.rbs +49 -0
  402. data/sig/generated/acp/types/tool_call_content/content.rbs +21 -0
  403. data/sig/generated/acp/types/tool_call_content/diff.rbs +29 -0
  404. data/sig/generated/acp/types/tool_call_content/terminal.rbs +21 -0
  405. data/sig/generated/acp/types/tool_call_content.rbs +9 -0
  406. data/sig/generated/acp/types/tool_call_location.rbs +25 -0
  407. data/sig/generated/acp/types/tool_call_status.rbs +11 -0
  408. data/sig/generated/acp/types/tool_call_update.rbs +49 -0
  409. data/sig/generated/acp/types/tool_kind.rbs +23 -0
  410. data/sig/generated/acp/types/unstructured_command_input.rbs +21 -0
  411. data/sig/generated/acp/types/usage_update.rbs +29 -0
  412. data/sig/generated/acp/types/wait_for_terminal_exit_request.rbs +25 -0
  413. data/sig/generated/acp/types/wait_for_terminal_exit_response.rbs +25 -0
  414. data/sig/generated/acp/types/write_text_file_request.rbs +29 -0
  415. data/sig/generated/acp/types/write_text_file_response.rbs +17 -0
  416. data/sig/generated/acp/version.rbs +5 -0
  417. data/sig/manual/acp/agent_connection.rbs +52 -0
  418. data/sig/manual/acp/client_connection.rbs +13 -0
  419. data/sig/manual/acp/transport/stdio.rbs +18 -0
  420. data/sig/manual/acp/types.rbs +2 -0
  421. metadata +477 -0
@@ -0,0 +1,96 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Generated by bin/types from schema/schema.json. Do not edit.
4
+
5
+ class ACP::Types::ToolCallUpdate
6
+ # @dynamic tool_call_id
7
+ attr_reader :tool_call_id #: String
8
+
9
+ # @dynamic kind
10
+ attr_reader :kind #: String?
11
+
12
+ # @dynamic status
13
+ attr_reader :status #: String?
14
+
15
+ # @dynamic title
16
+ attr_reader :title #: String?
17
+
18
+ # @dynamic content
19
+ attr_reader :content #: Array[ACP::Types::ToolCallContent::t]?
20
+
21
+ # @dynamic locations
22
+ attr_reader :locations #: Array[ACP::Types::ToolCallLocation]?
23
+
24
+ # @dynamic raw_input
25
+ attr_reader :raw_input #: untyped
26
+
27
+ # @dynamic raw_output
28
+ attr_reader :raw_output #: untyped
29
+
30
+ # @dynamic meta
31
+ attr_reader :meta #: Hash[String, untyped]?
32
+
33
+ # @rbs tool_call_id: String
34
+ # @rbs kind: String?
35
+ # @rbs status: String?
36
+ # @rbs title: String?
37
+ # @rbs content: Array[ACP::Types::ToolCallContent::t]?
38
+ # @rbs locations: Array[ACP::Types::ToolCallLocation]?
39
+ # @rbs raw_input: untyped
40
+ # @rbs raw_output: untyped
41
+ # @rbs meta: Hash[String, untyped]?
42
+ # @rbs return: void
43
+ def initialize(
44
+ tool_call_id:,
45
+ kind: nil,
46
+ status: nil,
47
+ title: nil,
48
+ content: nil,
49
+ locations: nil,
50
+ raw_input: nil,
51
+ raw_output: nil,
52
+ meta: nil
53
+ )
54
+ @tool_call_id = tool_call_id
55
+ @kind = kind
56
+ @status = status
57
+ @title = title
58
+ @content = content
59
+ @locations = locations
60
+ @raw_input = raw_input
61
+ @raw_output = raw_output
62
+ @meta = meta
63
+ freeze
64
+ end
65
+
66
+ # @rbs hash: Hash[String, untyped]
67
+ # @rbs return: ACP::Types::ToolCallUpdate
68
+ def self.from_h(hash)
69
+ new(
70
+ tool_call_id: hash.fetch('toolCallId'),
71
+ kind: hash['kind'],
72
+ status: hash['status'],
73
+ title: hash['title'],
74
+ content: hash['content']&.map { |item| ACP::Types::ToolCallContent.from_h(item) },
75
+ locations: hash['locations']&.map { |item| ACP::Types::ToolCallLocation.from_h(item) },
76
+ raw_input: hash['rawInput'],
77
+ raw_output: hash['rawOutput'],
78
+ meta: hash['_meta']
79
+ )
80
+ end
81
+
82
+ # @rbs return: Hash[String, untyped]
83
+ def to_h
84
+ {
85
+ 'toolCallId' => tool_call_id,
86
+ 'kind' => kind,
87
+ 'status' => status,
88
+ 'title' => title,
89
+ 'content' => content&.map(&:to_h),
90
+ 'locations' => locations&.map(&:to_h),
91
+ 'rawInput' => raw_input,
92
+ 'rawOutput' => raw_output,
93
+ '_meta' => meta
94
+ }.compact
95
+ end
96
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Generated by bin/types from schema/schema.json. Do not edit.
4
+
5
+ module ACP::Types::ToolKind
6
+ READ = 'read'
7
+ EDIT = 'edit'
8
+ DELETE = 'delete'
9
+ MOVE = 'move'
10
+ SEARCH = 'search'
11
+ EXECUTE = 'execute'
12
+ THINK = 'think'
13
+ FETCH = 'fetch'
14
+ SWITCH_MODE = 'switch_mode'
15
+ OTHER = 'other'
16
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Generated by bin/types from schema/schema.json. Do not edit.
4
+
5
+ class ACP::Types::UnstructuredCommandInput
6
+ # @dynamic hint
7
+ attr_reader :hint #: String
8
+
9
+ # @dynamic meta
10
+ attr_reader :meta #: Hash[String, untyped]?
11
+
12
+ # @rbs hint: String
13
+ # @rbs meta: Hash[String, untyped]?
14
+ # @rbs return: void
15
+ def initialize(hint:, meta: nil)
16
+ @hint = hint
17
+ @meta = meta
18
+ freeze
19
+ end
20
+
21
+ # @rbs hash: Hash[String, untyped]
22
+ # @rbs return: ACP::Types::UnstructuredCommandInput
23
+ def self.from_h(hash)
24
+ new(hint: hash.fetch('hint'), meta: hash['_meta'])
25
+ end
26
+
27
+ # @rbs return: Hash[String, untyped]
28
+ def to_h
29
+ { 'hint' => hint, '_meta' => meta }.compact
30
+ end
31
+ end
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Generated by bin/types from schema/schema.json. Do not edit.
4
+
5
+ class ACP::Types::UsageUpdate
6
+ # @dynamic used
7
+ attr_reader :used #: Integer
8
+
9
+ # @dynamic size
10
+ attr_reader :size #: Integer
11
+
12
+ # @dynamic cost
13
+ attr_reader :cost #: ACP::Types::Cost?
14
+
15
+ # @dynamic meta
16
+ attr_reader :meta #: Hash[String, untyped]?
17
+
18
+ # @rbs used: Integer
19
+ # @rbs size: Integer
20
+ # @rbs cost: ACP::Types::Cost?
21
+ # @rbs meta: Hash[String, untyped]?
22
+ # @rbs return: void
23
+ def initialize(used:, size:, cost: nil, meta: nil)
24
+ @used = used
25
+ @size = size
26
+ @cost = cost
27
+ @meta = meta
28
+ freeze
29
+ end
30
+
31
+ # @rbs hash: Hash[String, untyped]
32
+ # @rbs return: ACP::Types::UsageUpdate
33
+ def self.from_h(hash)
34
+ new(
35
+ used: hash.fetch('used'),
36
+ size: hash.fetch('size'),
37
+ cost: hash['cost']&.then { |value| ACP::Types::Cost.from_h(value) },
38
+ meta: hash['_meta']
39
+ )
40
+ end
41
+
42
+ # @rbs return: Hash[String, untyped]
43
+ def to_h
44
+ { 'used' => used, 'size' => size, 'cost' => cost&.to_h, '_meta' => meta }.compact
45
+ end
46
+ end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Generated by bin/types from schema/schema.json. Do not edit.
4
+
5
+ class ACP::Types::WaitForTerminalExitRequest
6
+ # @dynamic session_id
7
+ attr_reader :session_id #: String
8
+
9
+ # @dynamic terminal_id
10
+ attr_reader :terminal_id #: String
11
+
12
+ # @dynamic meta
13
+ attr_reader :meta #: Hash[String, untyped]?
14
+
15
+ # @rbs session_id: String
16
+ # @rbs terminal_id: String
17
+ # @rbs meta: Hash[String, untyped]?
18
+ # @rbs return: void
19
+ def initialize(session_id:, terminal_id:, meta: nil)
20
+ @session_id = session_id
21
+ @terminal_id = terminal_id
22
+ @meta = meta
23
+ freeze
24
+ end
25
+
26
+ # @rbs hash: Hash[String, untyped]
27
+ # @rbs return: ACP::Types::WaitForTerminalExitRequest
28
+ def self.from_h(hash)
29
+ new(session_id: hash.fetch('sessionId'), terminal_id: hash.fetch('terminalId'), meta: hash['_meta'])
30
+ end
31
+
32
+ # @rbs return: Hash[String, untyped]
33
+ def to_h
34
+ { 'sessionId' => session_id, 'terminalId' => terminal_id, '_meta' => meta }.compact
35
+ end
36
+ end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Generated by bin/types from schema/schema.json. Do not edit.
4
+
5
+ class ACP::Types::WaitForTerminalExitResponse
6
+ # @dynamic exit_code
7
+ attr_reader :exit_code #: Integer?
8
+
9
+ # @dynamic signal
10
+ attr_reader :signal #: String?
11
+
12
+ # @dynamic meta
13
+ attr_reader :meta #: Hash[String, untyped]?
14
+
15
+ # @rbs exit_code: Integer?
16
+ # @rbs signal: String?
17
+ # @rbs meta: Hash[String, untyped]?
18
+ # @rbs return: void
19
+ def initialize(exit_code: nil, signal: nil, meta: nil)
20
+ @exit_code = exit_code
21
+ @signal = signal
22
+ @meta = meta
23
+ freeze
24
+ end
25
+
26
+ # @rbs hash: Hash[String, untyped]
27
+ # @rbs return: ACP::Types::WaitForTerminalExitResponse
28
+ def self.from_h(hash)
29
+ new(exit_code: hash['exitCode'], signal: hash['signal'], meta: hash['_meta'])
30
+ end
31
+
32
+ # @rbs return: Hash[String, untyped]
33
+ def to_h
34
+ { 'exitCode' => exit_code, 'signal' => signal, '_meta' => meta }.compact
35
+ end
36
+ end
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Generated by bin/types from schema/schema.json. Do not edit.
4
+
5
+ class ACP::Types::WriteTextFileRequest
6
+ # @dynamic session_id
7
+ attr_reader :session_id #: String
8
+
9
+ # @dynamic path
10
+ attr_reader :path #: String
11
+
12
+ # @dynamic content
13
+ attr_reader :content #: String
14
+
15
+ # @dynamic meta
16
+ attr_reader :meta #: Hash[String, untyped]?
17
+
18
+ # @rbs session_id: String
19
+ # @rbs path: String
20
+ # @rbs content: String
21
+ # @rbs meta: Hash[String, untyped]?
22
+ # @rbs return: void
23
+ def initialize(session_id:, path:, content:, meta: nil)
24
+ @session_id = session_id
25
+ @path = path
26
+ @content = content
27
+ @meta = meta
28
+ freeze
29
+ end
30
+
31
+ # @rbs hash: Hash[String, untyped]
32
+ # @rbs return: ACP::Types::WriteTextFileRequest
33
+ def self.from_h(hash)
34
+ new(
35
+ session_id: hash.fetch('sessionId'),
36
+ path: hash.fetch('path'),
37
+ content: hash.fetch('content'),
38
+ meta: hash['_meta']
39
+ )
40
+ end
41
+
42
+ # @rbs return: Hash[String, untyped]
43
+ def to_h
44
+ { 'sessionId' => session_id, 'path' => path, 'content' => content, '_meta' => meta }.compact
45
+ end
46
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Generated by bin/types from schema/schema.json. Do not edit.
4
+
5
+ class ACP::Types::WriteTextFileResponse
6
+ # @dynamic meta
7
+ attr_reader :meta #: Hash[String, untyped]?
8
+
9
+ # @rbs meta: Hash[String, untyped]?
10
+ # @rbs return: void
11
+ def initialize(meta: nil)
12
+ @meta = meta
13
+ freeze
14
+ end
15
+
16
+ # @rbs hash: Hash[String, untyped]
17
+ # @rbs return: ACP::Types::WriteTextFileResponse
18
+ def self.from_h(hash)
19
+ new(meta: hash['_meta'])
20
+ end
21
+
22
+ # @rbs return: Hash[String, untyped]
23
+ def to_h
24
+ { '_meta' => meta }.compact
25
+ end
26
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ACP
4
+ VERSION = '0.1.0'
5
+ end
@@ -0,0 +1,29 @@
1
+ # Generated from lib/acp/agent_connection/client.rb with RBS::Inline
2
+
3
+ class ACP::AgentConnection::Client
4
+ @peer: ACP::AgentConnection::_Peer
5
+
6
+ # @dynamic capabilities, capabilities=
7
+ attr_accessor capabilities: ACP::Types::ClientCapabilities?
8
+
9
+ # @rbs peer: ACP::AgentConnection::_Peer
10
+ # @rbs return: void
11
+ def initialize: (peer: ACP::AgentConnection::_Peer) -> void
12
+
13
+ # @rbs session_id: String
14
+ # @rbs update: ACP::Types::SessionUpdate::t
15
+ # @rbs return: void
16
+ def update: (String session_id, ACP::Types::SessionUpdate::t update) -> void
17
+
18
+ # @rbs session_id: String
19
+ # @rbs commands: Array[ACP::Types::AvailableCommand]
20
+ # @rbs return: void
21
+ def available_commands: (String session_id, Array[ACP::Types::AvailableCommand] commands) -> void
22
+
23
+ # Blocks the calling thread until the client answers or the connection
24
+ # closes.
25
+ #
26
+ # @rbs request: ACP::Types::RequestPermissionRequest
27
+ # @rbs return: ACP::Types::RequestPermissionResponse | ACP::Transport::ResponseError
28
+ def request_permission: (ACP::Types::RequestPermissionRequest request) -> (ACP::Types::RequestPermissionResponse | ACP::Transport::ResponseError)
29
+ end
@@ -0,0 +1,21 @@
1
+ # Generated from lib/acp/agent_connection/optional_method.rb with RBS::Inline
2
+
3
+ class ACP::AgentConnection::OptionalMethod
4
+ @capability: ^(ACP::Types::AgentCapabilities) -> boolish
5
+
6
+ # @dynamic rpc_method
7
+ attr_reader rpc_method: String
8
+
9
+ # @dynamic agent_method
10
+ attr_reader agent_method: Symbol
11
+
12
+ # @rbs rpc_method: String
13
+ # @rbs agent_method: Symbol
14
+ # @rbs &capability: (ACP::Types::AgentCapabilities) -> boolish
15
+ # @rbs return: void
16
+ def initialize: (rpc_method: String, agent_method: Symbol) { (ACP::Types::AgentCapabilities) -> boolish } -> void
17
+
18
+ # @rbs capabilities: ACP::Types::AgentCapabilities
19
+ # @rbs return: bool
20
+ def advertised?: (ACP::Types::AgentCapabilities capabilities) -> bool
21
+ end
@@ -0,0 +1,65 @@
1
+ # Generated from lib/acp/agent_connection.rb with RBS::Inline
2
+
3
+ class ACP::AgentConnection
4
+ @factory: ^(ACP::AgentConnection::Client) -> ACP::AgentConnection::_Agent
5
+
6
+ @auth_methods: Array[ACP::Types::AuthMethod::t]
7
+
8
+ @agent_info: ACP::Types::Implementation?
9
+
10
+ @capabilities: ACP::Types::AgentCapabilities
11
+
12
+ @transport: ACP::AgentConnection::_Transport
13
+
14
+ PROTOCOL_VERSION: Integer
15
+
16
+ INVALID_PARAMS: ACP::Transport::ResponseError
17
+
18
+ OPTIONAL: Array[ACP::AgentConnection::OptionalMethod]
19
+
20
+ # @rbs transport: ACP::AgentConnection::_Transport
21
+ # @rbs capabilities: ACP::Types::AgentCapabilities
22
+ # @rbs agent_info: ACP::Types::Implementation?
23
+ # @rbs auth_methods: Array[ACP::Types::AuthMethod::t]
24
+ # @rbs &factory: (ACP::AgentConnection::Client) -> ACP::AgentConnection::_Agent
25
+ # @rbs return: void
26
+ def initialize: (transport: ACP::AgentConnection::_Transport, capabilities: ACP::Types::AgentCapabilities, ?agent_info: ACP::Types::Implementation?, ?auth_methods: Array[ACP::Types::AuthMethod::t]) { (ACP::AgentConnection::Client) -> ACP::AgentConnection::_Agent } -> void
27
+
28
+ # @rbs return: Thread
29
+ def start: () -> Thread
30
+
31
+ private
32
+
33
+ # @rbs agent: ACP::AgentConnection::_Agent
34
+ # @rbs client: ACP::AgentConnection::Client
35
+ # @rbs return: Hash[String, ^(untyped) -> (ACP::Transport::Result | ACP::Transport::Reply)]
36
+ def requests: (ACP::AgentConnection::_Agent agent, ACP::AgentConnection::Client client) -> Hash[String, ^(untyped) -> (ACP::Transport::Result | ACP::Transport::Reply)]
37
+
38
+ # @rbs agent: ACP::AgentConnection::_Agent
39
+ # @rbs return: Hash[String, ^(untyped) -> void]
40
+ def notifications: (ACP::AgentConnection::_Agent agent) -> Hash[String, ^(untyped) -> void]
41
+
42
+ # Generated from_h raises on a missing key or a value of the wrong shape.
43
+ #
44
+ # @rbs type: ACP::AgentConnection::_Parser
45
+ # @rbs &handle: (untyped) -> (ACP::Transport::Result | ACP::Transport::Reply)
46
+ # @rbs return: ^(untyped) -> (ACP::Transport::Result | ACP::Transport::Reply)
47
+ def route: (ACP::AgentConnection::_Parser type) { (untyped) -> (ACP::Transport::Result | ACP::Transport::Reply) } -> ^(untyped) -> (ACP::Transport::Result | ACP::Transport::Reply)
48
+
49
+ # @rbs response: ACP::AgentConnection::_Response | ACP::Transport::ResponseError
50
+ # @rbs return: ACP::Transport::Result
51
+ def respond: (ACP::AgentConnection::_Response | ACP::Transport::ResponseError response) -> ACP::Transport::Result
52
+
53
+ # @rbs client: ACP::AgentConnection::Client
54
+ # @rbs request: ACP::Types::InitializeRequest
55
+ # @rbs return: ACP::Transport::Result
56
+ def connect: (ACP::AgentConnection::Client client, ACP::Types::InitializeRequest request) -> ACP::Transport::Result
57
+
58
+ # session_created runs after the reply because the client must know the
59
+ # session id before updates for it (e.g. available commands) arrive.
60
+ #
61
+ # @rbs agent: ACP::AgentConnection::_Agent
62
+ # @rbs request: ACP::Types::NewSessionRequest
63
+ # @rbs return: ACP::Transport::Result | ACP::Transport::Reply
64
+ def new_session: (ACP::AgentConnection::_Agent agent, ACP::Types::NewSessionRequest request) -> (ACP::Transport::Result | ACP::Transport::Reply)
65
+ end
@@ -0,0 +1,82 @@
1
+ # Generated from lib/acp/client_connection.rb with RBS::Inline
2
+
3
+ class ACP::ClientConnection
4
+ @streams: Hash[String, Thread::Queue]
5
+
6
+ @lock: Thread::Mutex
7
+
8
+ @updates: ACP::ClientConnection::_UpdateHandler
9
+
10
+ @permission: ACP::ClientConnection::_PermissionHandler
11
+
12
+ @transport: ACP::AgentConnection::_Transport
13
+
14
+ IGNORE: ^(ACP::Types::SessionNotification) -> void
15
+
16
+ # @rbs transport: ACP::AgentConnection::_Transport
17
+ # @rbs permission: ACP::ClientConnection::_PermissionHandler
18
+ # @rbs updates: ACP::ClientConnection::_UpdateHandler
19
+ # @rbs return: void
20
+ def initialize: (transport: ACP::AgentConnection::_Transport, permission: ACP::ClientConnection::_PermissionHandler, ?updates: ACP::ClientConnection::_UpdateHandler) -> void
21
+
22
+ # @rbs return: Thread
23
+ def start: () -> Thread
24
+
25
+ # Ruby reserves initialize for the constructor, so the initialize request is
26
+ # sent by connect.
27
+ #
28
+ # @rbs request: ACP::Types::InitializeRequest
29
+ # @rbs return: ACP::Types::InitializeResponse | ACP::Transport::ResponseError
30
+ def connect: (ACP::Types::InitializeRequest request) -> (ACP::Types::InitializeResponse | ACP::Transport::ResponseError)
31
+
32
+ # @rbs request: ACP::Types::NewSessionRequest
33
+ # @rbs return: ACP::Types::NewSessionResponse | ACP::Transport::ResponseError
34
+ def session_new: (ACP::Types::NewSessionRequest request) -> (ACP::Types::NewSessionResponse | ACP::Transport::ResponseError)
35
+
36
+ # @rbs request: ACP::Types::PromptRequest
37
+ # @rbs &block: (ACP::Types::SessionUpdate::t) -> void
38
+ # @rbs return: ACP::Types::PromptResponse | ACP::Transport::ResponseError
39
+ def session_prompt: (ACP::Types::PromptRequest request) { (ACP::Types::SessionUpdate::t) -> void } -> (ACP::Types::PromptResponse | ACP::Transport::ResponseError)
40
+
41
+ # @rbs request: ACP::Types::LoadSessionRequest
42
+ # @rbs &block: (ACP::Types::SessionUpdate::t) -> void
43
+ # @rbs return: ACP::Types::LoadSessionResponse | ACP::Transport::ResponseError
44
+ def session_load: (ACP::Types::LoadSessionRequest request) { (ACP::Types::SessionUpdate::t) -> void } -> (ACP::Types::LoadSessionResponse | ACP::Transport::ResponseError)
45
+
46
+ # @rbs request: ACP::Types::ListSessionsRequest
47
+ # @rbs return: ACP::Types::ListSessionsResponse | ACP::Transport::ResponseError
48
+ def session_list: (ACP::Types::ListSessionsRequest request) -> (ACP::Types::ListSessionsResponse | ACP::Transport::ResponseError)
49
+
50
+ # @rbs notification: ACP::Types::CancelNotification
51
+ # @rbs return: void
52
+ def session_cancel: (ACP::Types::CancelNotification notification) -> void
53
+
54
+ private
55
+
56
+ # @rbs type: ACP::AgentConnection::_Parser
57
+ # @rbs result: ACP::Transport::Result
58
+ # @rbs return: untyped
59
+ def parse: (ACP::AgentConnection::_Parser type, ACP::Transport::Result result) -> untyped
60
+
61
+ # The request waits on its own thread so the caller's thread can yield each
62
+ # update as it arrives. The reader thread queues an update before it settles
63
+ # a reply sent after it, so the queue closes only after the last one.
64
+ #
65
+ # @rbs session_id: String
66
+ # @rbs method: String
67
+ # @rbs params: Hash[String, untyped]
68
+ # @rbs &block: (ACP::Types::SessionUpdate::t) -> void
69
+ # @rbs return: ACP::Transport::Result
70
+ def stream: (String session_id, String method, Hash[String, untyped] params) { (ACP::Types::SessionUpdate::t) -> void } -> ACP::Transport::Result
71
+
72
+ # Pushes under the lock so a stream cannot close its queue between the
73
+ # lookup and the push.
74
+ #
75
+ # @rbs params: untyped
76
+ # @rbs return: void
77
+ def dispatch: (untyped params) -> void
78
+
79
+ # @rbs params: untyped
80
+ # @rbs return: ACP::Transport::Result
81
+ def request_permission: (untyped params) -> ACP::Transport::Result
82
+ end
@@ -0,0 +1,2 @@
1
+ # Generated from lib/acp/sdk.rb with RBS::Inline
2
+
@@ -0,0 +1,16 @@
1
+ # Generated from lib/acp/transport/reply.rb with RBS::Inline
2
+
3
+ # A request handler's result plus a callback the transport runs once that
4
+ # result is on the wire, for messages the peer must only see after the reply.
5
+ class ACP::Transport::Reply
6
+ # @dynamic result
7
+ attr_reader result: ACP::Transport::Result
8
+
9
+ # @dynamic after
10
+ attr_reader after: ^() -> void
11
+
12
+ # @rbs result: ACP::Transport::Result
13
+ # @rbs after: ^() -> void
14
+ # @rbs return: void
15
+ def initialize: (ACP::Transport::Result result, after: ^() -> void) -> void
16
+ end
@@ -0,0 +1,21 @@
1
+ # Generated from lib/acp/transport/response_error.rb with RBS::Inline
2
+
3
+ class ACP::Transport::ResponseError
4
+ # @dynamic code
5
+ attr_reader code: Integer
6
+
7
+ # @dynamic message
8
+ attr_reader message: String
9
+
10
+ # @dynamic data
11
+ attr_reader data: untyped
12
+
13
+ # @rbs code: Integer
14
+ # @rbs message: String
15
+ # @rbs data: untyped
16
+ # @rbs return: void
17
+ def initialize: (code: Integer, message: String, ?data: untyped) -> void
18
+
19
+ # @rbs return: Hash[String, untyped]
20
+ def to_h: () -> Hash[String, untyped]
21
+ end
@@ -0,0 +1,25 @@
1
+ # Generated from lib/acp/transport/result.rb with RBS::Inline
2
+
3
+ class ACP::Transport::Result
4
+ # @dynamic value
5
+ attr_reader value: untyped
6
+
7
+ # @dynamic error
8
+ attr_reader error: ACP::Transport::ResponseError?
9
+
10
+ # @rbs value: untyped
11
+ # @rbs return: ACP::Transport::Result
12
+ def self.ok: (untyped value) -> ACP::Transport::Result
13
+
14
+ # @rbs error: ACP::Transport::ResponseError
15
+ # @rbs return: ACP::Transport::Result
16
+ def self.error: (ACP::Transport::ResponseError error) -> ACP::Transport::Result
17
+
18
+ # @rbs value: untyped
19
+ # @rbs error: ACP::Transport::ResponseError?
20
+ # @rbs return: void
21
+ def initialize: (value: untyped, error: ACP::Transport::ResponseError?) -> void
22
+
23
+ # @rbs return: bool
24
+ def ok?: () -> bool
25
+ end