acp-sdk 0.7.0 → 0.9.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 (446) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +20 -0
  3. data/README.md +14 -1
  4. data/lib/acp/agent_connection/client.rb +1 -1
  5. data/lib/acp/agent_connection.rb +3 -1
  6. data/lib/acp/client_connection.rb +93 -4
  7. data/lib/acp/request_error.rb +15 -2
  8. data/lib/acp/sdk.rb +3 -1
  9. data/lib/acp/transport/cancellation.rb +25 -0
  10. data/lib/acp/transport/stdio.rb +67 -1
  11. data/lib/acp/types/agent_auth_capabilities.rb +4 -1
  12. data/lib/acp/types/agent_capabilities.rb +20 -5
  13. data/lib/acp/types/annotations.rb +6 -3
  14. data/lib/acp/types/audio_content.rb +8 -3
  15. data/lib/acp/types/auth_capabilities.rb +1 -1
  16. data/lib/acp/types/auth_method/terminal.rb +11 -5
  17. data/lib/acp/types/auth_method_agent.rb +6 -1
  18. data/lib/acp/types/auth_method_terminal.rb +11 -5
  19. data/lib/acp/types/authenticate_request.rb +1 -1
  20. data/lib/acp/types/available_command.rb +3 -3
  21. data/lib/acp/types/available_commands_update.rb +7 -4
  22. data/lib/acp/types/blob_resource_contents.rb +6 -1
  23. data/lib/acp/types/boolean_property_schema.rb +6 -1
  24. data/lib/acp/types/cancel_notification.rb +4 -1
  25. data/lib/acp/types/cancel_request_notification.rb +9 -1
  26. data/lib/acp/types/client_capabilities.rb +15 -5
  27. data/lib/acp/types/client_session_capabilities.rb +6 -3
  28. data/lib/acp/types/close_session_request.rb +4 -1
  29. data/lib/acp/types/complete_elicitation_notification.rb +4 -1
  30. data/lib/acp/types/config_option_update.rb +7 -4
  31. data/lib/acp/types/content.rb +4 -1
  32. data/lib/acp/types/content_block/audio.rb +8 -3
  33. data/lib/acp/types/content_block/image.rb +9 -4
  34. data/lib/acp/types/content_block/resource.rb +11 -2
  35. data/lib/acp/types/content_block/resource_link.rb +12 -7
  36. data/lib/acp/types/content_block/text.rb +7 -2
  37. data/lib/acp/types/content_chunk.rb +2 -2
  38. data/lib/acp/types/cost.rb +5 -1
  39. data/lib/acp/types/create_elicitation_request/mode/form.rb +5 -1
  40. data/lib/acp/types/create_elicitation_request/mode/url.rb +2 -2
  41. data/lib/acp/types/create_elicitation_request.rb +1 -1
  42. data/lib/acp/types/create_elicitation_response/action/accept.rb +6 -1
  43. data/lib/acp/types/create_terminal_request.rb +12 -6
  44. data/lib/acp/types/create_terminal_response.rb +4 -1
  45. data/lib/acp/types/current_mode_update.rb +4 -1
  46. data/lib/acp/types/delete_session_request.rb +4 -1
  47. data/lib/acp/types/diff.rb +6 -1
  48. data/lib/acp/types/elicitation_accept_action.rb +6 -1
  49. data/lib/acp/types/elicitation_capabilities.rb +2 -2
  50. data/lib/acp/types/elicitation_form_mode.rb +5 -1
  51. data/lib/acp/types/elicitation_property_schema/boolean_property_schema.rb +6 -1
  52. data/lib/acp/types/elicitation_property_schema/integer_property_schema.rb +5 -5
  53. data/lib/acp/types/elicitation_property_schema/multi_select_property_schema.rb +9 -6
  54. data/lib/acp/types/elicitation_property_schema/number_property_schema.rb +5 -5
  55. data/lib/acp/types/elicitation_property_schema/string_property_schema.rb +15 -9
  56. data/lib/acp/types/elicitation_request_scope.rb +8 -1
  57. data/lib/acp/types/elicitation_schema.rb +11 -5
  58. data/lib/acp/types/elicitation_session_scope.rb +4 -1
  59. data/lib/acp/types/elicitation_url_mode.rb +2 -2
  60. data/lib/acp/types/embedded_resource.rb +11 -2
  61. data/lib/acp/types/enum_option.rb +6 -1
  62. data/lib/acp/types/env_variable.rb +5 -1
  63. data/lib/acp/types/file_system_capabilities.rb +5 -1
  64. data/lib/acp/types/http_header.rb +5 -1
  65. data/lib/acp/types/image_content.rb +9 -4
  66. data/lib/acp/types/implementation.rb +6 -1
  67. data/lib/acp/types/initialize_request.rb +18 -3
  68. data/lib/acp/types/initialize_response.rb +17 -4
  69. data/lib/acp/types/integer_property_schema.rb +5 -5
  70. data/lib/acp/types/kill_terminal_request.rb +5 -1
  71. data/lib/acp/types/list_sessions_request.rb +5 -1
  72. data/lib/acp/types/list_sessions_response.rb +5 -2
  73. data/lib/acp/types/load_session_request.rb +14 -4
  74. data/lib/acp/types/load_session_response.rb +5 -2
  75. data/lib/acp/types/mcp_capabilities.rb +5 -1
  76. data/lib/acp/types/mcp_server/http.rb +6 -3
  77. data/lib/acp/types/mcp_server/sse.rb +6 -3
  78. data/lib/acp/types/mcp_server_http.rb +6 -3
  79. data/lib/acp/types/mcp_server_sse.rb +6 -3
  80. data/lib/acp/types/mcp_server_stdio.rb +10 -4
  81. data/lib/acp/types/multi_select_items/string_multi_select_items.rb +4 -1
  82. data/lib/acp/types/multi_select_property_schema.rb +9 -6
  83. data/lib/acp/types/new_session_request.rb +13 -3
  84. data/lib/acp/types/new_session_response.rb +6 -3
  85. data/lib/acp/types/number_property_schema.rb +5 -5
  86. data/lib/acp/types/permission_option.rb +10 -1
  87. data/lib/acp/types/plan.rb +4 -1
  88. data/lib/acp/types/plan_entry.rb +7 -3
  89. data/lib/acp/types/prompt_capabilities.rb +6 -1
  90. data/lib/acp/types/prompt_request.rb +5 -2
  91. data/lib/acp/types/prompt_response.rb +8 -1
  92. data/lib/acp/types/read_text_file_request.rb +4 -4
  93. data/lib/acp/types/read_text_file_response.rb +1 -1
  94. data/lib/acp/types/release_terminal_request.rb +5 -1
  95. data/lib/acp/types/request_permission_outcome/selected.rb +1 -1
  96. data/lib/acp/types/request_permission_request.rb +10 -3
  97. data/lib/acp/types/request_permission_response.rb +8 -1
  98. data/lib/acp/types/resource_link.rb +12 -7
  99. data/lib/acp/types/resume_session_request.rb +14 -4
  100. data/lib/acp/types/resume_session_response.rb +5 -2
  101. data/lib/acp/types/selected_permission_outcome.rb +1 -1
  102. data/lib/acp/types/session_capabilities.rb +20 -7
  103. data/lib/acp/types/session_config_boolean.rb +1 -1
  104. data/lib/acp/types/session_config_option/kind/boolean.rb +1 -1
  105. data/lib/acp/types/session_config_option/kind/select.rb +6 -2
  106. data/lib/acp/types/session_config_option.rb +3 -3
  107. data/lib/acp/types/session_config_options_capabilities.rb +6 -1
  108. data/lib/acp/types/session_config_select.rb +6 -2
  109. data/lib/acp/types/session_config_select_group.rb +6 -3
  110. data/lib/acp/types/session_config_select_option.rb +6 -1
  111. data/lib/acp/types/session_config_select_options.rb +6 -2
  112. data/lib/acp/types/session_info.rb +12 -5
  113. data/lib/acp/types/session_info_update.rb +10 -1
  114. data/lib/acp/types/session_mode.rb +6 -1
  115. data/lib/acp/types/session_mode_state.rb +8 -2
  116. data/lib/acp/types/session_notification.rb +2 -2
  117. data/lib/acp/types/session_update/agent_message_chunk.rb +2 -2
  118. data/lib/acp/types/session_update/agent_thought_chunk.rb +2 -2
  119. data/lib/acp/types/session_update/available_commands_update.rb +7 -4
  120. data/lib/acp/types/session_update/config_option_update.rb +7 -4
  121. data/lib/acp/types/session_update/current_mode_update.rb +4 -1
  122. data/lib/acp/types/session_update/plan.rb +4 -1
  123. data/lib/acp/types/session_update/session_info_update.rb +10 -1
  124. data/lib/acp/types/session_update/tool_call.rb +23 -7
  125. data/lib/acp/types/session_update/tool_call_update.rb +23 -7
  126. data/lib/acp/types/session_update/usage_update.rb +3 -3
  127. data/lib/acp/types/session_update/user_message_chunk.rb +2 -2
  128. data/lib/acp/types/set_session_config_option_request/value/boolean.rb +1 -1
  129. data/lib/acp/types/set_session_config_option_request/value/value_id.rb +1 -1
  130. data/lib/acp/types/set_session_config_option_request.rb +2 -2
  131. data/lib/acp/types/set_session_config_option_response.rb +7 -4
  132. data/lib/acp/types/set_session_mode_request.rb +5 -1
  133. data/lib/acp/types/string_multi_select_items.rb +4 -1
  134. data/lib/acp/types/string_property_schema.rb +15 -9
  135. data/lib/acp/types/terminal.rb +4 -1
  136. data/lib/acp/types/terminal_exit_status.rb +5 -1
  137. data/lib/acp/types/terminal_output_request.rb +5 -1
  138. data/lib/acp/types/terminal_output_response.rb +8 -3
  139. data/lib/acp/types/text_content.rb +7 -2
  140. data/lib/acp/types/text_resource_contents.rb +6 -1
  141. data/lib/acp/types/titled_multi_select_items.rb +4 -1
  142. data/lib/acp/types/tool_call.rb +23 -7
  143. data/lib/acp/types/tool_call_content/content.rb +4 -1
  144. data/lib/acp/types/tool_call_content/diff.rb +6 -1
  145. data/lib/acp/types/tool_call_content/terminal.rb +4 -1
  146. data/lib/acp/types/tool_call_location.rb +5 -1
  147. data/lib/acp/types/tool_call_update.rb +23 -7
  148. data/lib/acp/types/unstable/accept_nes_notification.rb +41 -0
  149. data/lib/acp/types/unstable/agent_capabilities.rb +122 -0
  150. data/lib/acp/types/unstable/client_capabilities.rb +127 -0
  151. data/lib/acp/types/unstable/client_nes_capabilities.rb +62 -0
  152. data/lib/acp/types/unstable/client_session_capabilities.rb +57 -0
  153. data/lib/acp/types/unstable/close_nes_request.rb +35 -0
  154. data/lib/acp/types/unstable/close_nes_response.rb +27 -0
  155. data/lib/acp/types/unstable/compaction_status.rb +11 -0
  156. data/lib/acp/types/unstable/compaction_summary_chunk.rb +41 -0
  157. data/lib/acp/types/unstable/compaction_update.rb +62 -0
  158. data/lib/acp/types/unstable/did_change_document_notification.rb +65 -0
  159. data/lib/acp/types/unstable/did_close_document_notification.rb +41 -0
  160. data/lib/acp/types/unstable/did_focus_document_notification.rb +74 -0
  161. data/lib/acp/types/unstable/did_open_document_notification.rb +66 -0
  162. data/lib/acp/types/unstable/did_save_document_notification.rb +41 -0
  163. data/lib/acp/types/unstable/disable_provider_request.rb +35 -0
  164. data/lib/acp/types/unstable/disable_provider_response.rb +27 -0
  165. data/lib/acp/types/unstable/fork_session_request.rb +69 -0
  166. data/lib/acp/types/unstable/fork_session_response.rb +55 -0
  167. data/lib/acp/types/unstable/idle_state_update.rb +46 -0
  168. data/lib/acp/types/unstable/initialize_response.rb +72 -0
  169. data/lib/acp/types/unstable/list_providers_request.rb +27 -0
  170. data/lib/acp/types/unstable/list_providers_response.rb +35 -0
  171. data/lib/acp/types/unstable/llm_protocol.rb +12 -0
  172. data/lib/acp/types/unstable/mcp_capabilities.rb +47 -0
  173. data/lib/acp/types/unstable/mcp_error.rb +41 -0
  174. data/lib/acp/types/unstable/mcp_server/acp.rb +41 -0
  175. data/lib/acp/types/unstable/mcp_server/http.rb +50 -0
  176. data/lib/acp/types/unstable/mcp_server/sse.rb +50 -0
  177. data/lib/acp/types/unstable/mcp_server.rb +25 -0
  178. data/lib/acp/types/unstable/mcp_server_acp.rb +41 -0
  179. data/lib/acp/types/unstable/message_mcp_notification.rb +59 -0
  180. data/lib/acp/types/unstable/message_mcp_request.rb +59 -0
  181. data/lib/acp/types/unstable/message_mcp_response/error.rb +35 -0
  182. data/lib/acp/types/unstable/message_mcp_response/result.rb +32 -0
  183. data/lib/acp/types/unstable/message_mcp_response.rb +23 -0
  184. data/lib/acp/types/unstable/nes_capabilities.rb +51 -0
  185. data/lib/acp/types/unstable/nes_context_capabilities.rb +111 -0
  186. data/lib/acp/types/unstable/nes_diagnostic.rb +57 -0
  187. data/lib/acp/types/unstable/nes_diagnostic_severity.rb +11 -0
  188. data/lib/acp/types/unstable/nes_diagnostics_capabilities.rb +27 -0
  189. data/lib/acp/types/unstable/nes_document_did_change_capabilities.rb +35 -0
  190. data/lib/acp/types/unstable/nes_document_did_close_capabilities.rb +27 -0
  191. data/lib/acp/types/unstable/nes_document_did_focus_capabilities.rb +27 -0
  192. data/lib/acp/types/unstable/nes_document_did_open_capabilities.rb +27 -0
  193. data/lib/acp/types/unstable/nes_document_did_save_capabilities.rb +27 -0
  194. data/lib/acp/types/unstable/nes_document_event_capabilities.rb +91 -0
  195. data/lib/acp/types/unstable/nes_edit_history_capabilities.rb +35 -0
  196. data/lib/acp/types/unstable/nes_edit_history_entry.rb +41 -0
  197. data/lib/acp/types/unstable/nes_edit_suggestion.rb +67 -0
  198. data/lib/acp/types/unstable/nes_event_capabilities.rb +40 -0
  199. data/lib/acp/types/unstable/nes_excerpt.rb +47 -0
  200. data/lib/acp/types/unstable/nes_jump_capabilities.rb +27 -0
  201. data/lib/acp/types/unstable/nes_jump_suggestion.rb +51 -0
  202. data/lib/acp/types/unstable/nes_open_file.rb +64 -0
  203. data/lib/acp/types/unstable/nes_open_files_capabilities.rb +27 -0
  204. data/lib/acp/types/unstable/nes_recent_file.rb +47 -0
  205. data/lib/acp/types/unstable/nes_recent_files_capabilities.rb +35 -0
  206. data/lib/acp/types/unstable/nes_reject_reason.rb +11 -0
  207. data/lib/acp/types/unstable/nes_related_snippet.rb +40 -0
  208. data/lib/acp/types/unstable/nes_related_snippets_capabilities.rb +27 -0
  209. data/lib/acp/types/unstable/nes_rename_capabilities.rb +27 -0
  210. data/lib/acp/types/unstable/nes_rename_suggestion.rb +57 -0
  211. data/lib/acp/types/unstable/nes_repository.rb +47 -0
  212. data/lib/acp/types/unstable/nes_search_and_replace_capabilities.rb +27 -0
  213. data/lib/acp/types/unstable/nes_search_and_replace_suggestion.rb +66 -0
  214. data/lib/acp/types/unstable/nes_suggest_context.rb +95 -0
  215. data/lib/acp/types/unstable/nes_suggestion/edit.rb +68 -0
  216. data/lib/acp/types/unstable/nes_suggestion/jump.rb +51 -0
  217. data/lib/acp/types/unstable/nes_suggestion/rename.rb +64 -0
  218. data/lib/acp/types/unstable/nes_suggestion/searchandreplace.rb +67 -0
  219. data/lib/acp/types/unstable/nes_suggestion.rb +25 -0
  220. data/lib/acp/types/unstable/nes_text_edit.rb +41 -0
  221. data/lib/acp/types/unstable/nes_trigger_kind.rb +10 -0
  222. data/lib/acp/types/unstable/nes_user_action.rb +63 -0
  223. data/lib/acp/types/unstable/nes_user_actions_capabilities.rb +35 -0
  224. data/lib/acp/types/unstable/notice.rb +47 -0
  225. data/lib/acp/types/unstable/notice_severity.rb +10 -0
  226. data/lib/acp/types/unstable/plan_capabilities.rb +27 -0
  227. data/lib/acp/types/unstable/plan_file.rb +41 -0
  228. data/lib/acp/types/unstable/plan_items.rb +44 -0
  229. data/lib/acp/types/unstable/plan_markdown.rb +41 -0
  230. data/lib/acp/types/unstable/plan_removed.rb +32 -0
  231. data/lib/acp/types/unstable/plan_update.rb +39 -0
  232. data/lib/acp/types/unstable/plan_update_content/file.rb +41 -0
  233. data/lib/acp/types/unstable/plan_update_content/items.rb +44 -0
  234. data/lib/acp/types/unstable/plan_update_content/markdown.rb +41 -0
  235. data/lib/acp/types/unstable/plan_update_content.rb +23 -0
  236. data/lib/acp/types/unstable/position.rb +41 -0
  237. data/lib/acp/types/unstable/position_encoding_kind.rb +10 -0
  238. data/lib/acp/types/unstable/prompt_response.rb +45 -0
  239. data/lib/acp/types/unstable/provider_current_config.rb +41 -0
  240. data/lib/acp/types/unstable/provider_info.rb +64 -0
  241. data/lib/acp/types/unstable/providers_capabilities.rb +27 -0
  242. data/lib/acp/types/unstable/range.rb +41 -0
  243. data/lib/acp/types/unstable/reject_nes_notification.rb +52 -0
  244. data/lib/acp/types/unstable/requires_action_state_update.rb +27 -0
  245. data/lib/acp/types/unstable/running_state_update.rb +27 -0
  246. data/lib/acp/types/unstable/session_cancel_capabilities.rb +27 -0
  247. data/lib/acp/types/unstable/session_capabilities.rb +93 -0
  248. data/lib/acp/types/unstable/session_fork_capabilities.rb +27 -0
  249. data/lib/acp/types/unstable/session_message.rb +62 -0
  250. data/lib/acp/types/unstable/session_message_chunk.rb +59 -0
  251. data/lib/acp/types/unstable/session_update/agent_message_chunk.rb +46 -0
  252. data/lib/acp/types/unstable/session_update/agent_thought_chunk.rb +46 -0
  253. data/lib/acp/types/unstable/session_update/available_commands_update.rb +42 -0
  254. data/lib/acp/types/unstable/session_update/compaction_summary_chunk.rb +46 -0
  255. data/lib/acp/types/unstable/session_update/compaction_update.rb +63 -0
  256. data/lib/acp/types/unstable/session_update/config_option_update.rb +42 -0
  257. data/lib/acp/types/unstable/session_update/current_mode_update.rb +35 -0
  258. data/lib/acp/types/unstable/session_update/notice.rb +53 -0
  259. data/lib/acp/types/unstable/session_update/plan.rb +35 -0
  260. data/lib/acp/types/unstable/session_update/plan_removed.rb +32 -0
  261. data/lib/acp/types/unstable/session_update/plan_update.rb +39 -0
  262. data/lib/acp/types/unstable/session_update/session_info_update.rb +49 -0
  263. data/lib/acp/types/unstable/session_update/session_message.rb +63 -0
  264. data/lib/acp/types/unstable/session_update/session_message_chunk.rb +60 -0
  265. data/lib/acp/types/unstable/session_update/subagent_update.rb +72 -0
  266. data/lib/acp/types/unstable/session_update/tool_call.rb +122 -0
  267. data/lib/acp/types/unstable/session_update/tool_call_update.rb +122 -0
  268. data/lib/acp/types/unstable/session_update/usage_update.rb +47 -0
  269. data/lib/acp/types/unstable/session_update/user_message_chunk.rb +46 -0
  270. data/lib/acp/types/unstable/session_update.rb +55 -0
  271. data/lib/acp/types/unstable/set_provider_request.rb +62 -0
  272. data/lib/acp/types/unstable/set_provider_response.rb +27 -0
  273. data/lib/acp/types/unstable/start_nes_request.rb +64 -0
  274. data/lib/acp/types/unstable/start_nes_response.rb +35 -0
  275. data/lib/acp/types/unstable/state_update/idle.rb +46 -0
  276. data/lib/acp/types/unstable/state_update/requires_action.rb +27 -0
  277. data/lib/acp/types/unstable/state_update/running.rb +27 -0
  278. data/lib/acp/types/unstable/state_update/unknown.rb +27 -0
  279. data/lib/acp/types/unstable/state_update.rb +25 -0
  280. data/lib/acp/types/unstable/subagent_capabilities.rb +27 -0
  281. data/lib/acp/types/unstable/subagent_session_capabilities.rb +40 -0
  282. data/lib/acp/types/unstable/subagent_update.rb +71 -0
  283. data/lib/acp/types/unstable/suggest_nes_request.rb +93 -0
  284. data/lib/acp/types/unstable/suggest_nes_response.rb +35 -0
  285. data/lib/acp/types/unstable/text_document_content_change_event.rb +41 -0
  286. data/lib/acp/types/unstable/text_document_sync_kind.rb +9 -0
  287. data/lib/acp/types/unstable/unknown_state_update.rb +27 -0
  288. data/lib/acp/types/unstable/usage.rb +91 -0
  289. data/lib/acp/types/unstable/workspace_folder.rb +41 -0
  290. data/lib/acp/types/unstable.rb +155 -0
  291. data/lib/acp/types/unstructured_command_input.rb +1 -1
  292. data/lib/acp/types/usage_update.rb +3 -3
  293. data/lib/acp/types/wait_for_terminal_exit_request.rb +5 -1
  294. data/lib/acp/types/wait_for_terminal_exit_response.rb +5 -1
  295. data/lib/acp/types/write_text_file_request.rb +3 -3
  296. data/lib/acp/types.rb +247 -0
  297. data/lib/acp/version.rb +1 -1
  298. data/sig/generated/acp/client_connection.rbs +39 -1
  299. data/sig/generated/acp/request_error.rbs +12 -1
  300. data/sig/generated/acp/transport/cancellation.rbs +19 -0
  301. data/sig/generated/acp/transport/stdio.rbs +38 -0
  302. data/sig/generated/acp/types/unstable/accept_nes_notification.rbs +25 -0
  303. data/sig/generated/acp/types/unstable/agent_capabilities.rbs +49 -0
  304. data/sig/generated/acp/types/unstable/client_capabilities.rbs +53 -0
  305. data/sig/generated/acp/types/unstable/client_nes_capabilities.rbs +29 -0
  306. data/sig/generated/acp/types/unstable/client_session_capabilities.rbs +29 -0
  307. data/sig/generated/acp/types/unstable/close_nes_request.rbs +21 -0
  308. data/sig/generated/acp/types/unstable/close_nes_response.rbs +17 -0
  309. data/sig/generated/acp/types/unstable/compaction_status.rbs +11 -0
  310. data/sig/generated/acp/types/unstable/compaction_summary_chunk.rbs +25 -0
  311. data/sig/generated/acp/types/unstable/compaction_update.rbs +33 -0
  312. data/sig/generated/acp/types/unstable/did_change_document_notification.rbs +33 -0
  313. data/sig/generated/acp/types/unstable/did_close_document_notification.rbs +25 -0
  314. data/sig/generated/acp/types/unstable/did_focus_document_notification.rbs +37 -0
  315. data/sig/generated/acp/types/unstable/did_open_document_notification.rbs +37 -0
  316. data/sig/generated/acp/types/unstable/did_save_document_notification.rbs +25 -0
  317. data/sig/generated/acp/types/unstable/disable_provider_request.rbs +21 -0
  318. data/sig/generated/acp/types/unstable/disable_provider_response.rbs +17 -0
  319. data/sig/generated/acp/types/unstable/fork_session_request.rbs +33 -0
  320. data/sig/generated/acp/types/unstable/fork_session_response.rbs +29 -0
  321. data/sig/generated/acp/types/unstable/idle_state_update.rbs +25 -0
  322. data/sig/generated/acp/types/unstable/initialize_response.rbs +33 -0
  323. data/sig/generated/acp/types/unstable/list_providers_request.rbs +17 -0
  324. data/sig/generated/acp/types/unstable/list_providers_response.rbs +21 -0
  325. data/sig/generated/acp/types/unstable/llm_protocol.rbs +13 -0
  326. data/sig/generated/acp/types/unstable/mcp_capabilities.rbs +29 -0
  327. data/sig/generated/acp/types/unstable/mcp_error.rbs +25 -0
  328. data/sig/generated/acp/types/unstable/mcp_server/acp.rbs +25 -0
  329. data/sig/generated/acp/types/unstable/mcp_server/http.rbs +29 -0
  330. data/sig/generated/acp/types/unstable/mcp_server/sse.rbs +29 -0
  331. data/sig/generated/acp/types/unstable/mcp_server.rbs +9 -0
  332. data/sig/generated/acp/types/unstable/mcp_server_acp.rbs +25 -0
  333. data/sig/generated/acp/types/unstable/message_mcp_notification.rbs +33 -0
  334. data/sig/generated/acp/types/unstable/message_mcp_request.rbs +33 -0
  335. data/sig/generated/acp/types/unstable/message_mcp_response/error.rbs +21 -0
  336. data/sig/generated/acp/types/unstable/message_mcp_response/result.rbs +21 -0
  337. data/sig/generated/acp/types/unstable/message_mcp_response.rbs +9 -0
  338. data/sig/generated/acp/types/unstable/nes_capabilities.rbs +25 -0
  339. data/sig/generated/acp/types/unstable/nes_context_capabilities.rbs +41 -0
  340. data/sig/generated/acp/types/unstable/nes_diagnostic.rbs +33 -0
  341. data/sig/generated/acp/types/unstable/nes_diagnostic_severity.rbs +11 -0
  342. data/sig/generated/acp/types/unstable/nes_diagnostics_capabilities.rbs +17 -0
  343. data/sig/generated/acp/types/unstable/nes_document_did_change_capabilities.rbs +21 -0
  344. data/sig/generated/acp/types/unstable/nes_document_did_close_capabilities.rbs +17 -0
  345. data/sig/generated/acp/types/unstable/nes_document_did_focus_capabilities.rbs +17 -0
  346. data/sig/generated/acp/types/unstable/nes_document_did_open_capabilities.rbs +17 -0
  347. data/sig/generated/acp/types/unstable/nes_document_did_save_capabilities.rbs +17 -0
  348. data/sig/generated/acp/types/unstable/nes_document_event_capabilities.rbs +37 -0
  349. data/sig/generated/acp/types/unstable/nes_edit_history_capabilities.rbs +21 -0
  350. data/sig/generated/acp/types/unstable/nes_edit_history_entry.rbs +25 -0
  351. data/sig/generated/acp/types/unstable/nes_edit_suggestion.rbs +33 -0
  352. data/sig/generated/acp/types/unstable/nes_event_capabilities.rbs +21 -0
  353. data/sig/generated/acp/types/unstable/nes_excerpt.rbs +29 -0
  354. data/sig/generated/acp/types/unstable/nes_jump_capabilities.rbs +17 -0
  355. data/sig/generated/acp/types/unstable/nes_jump_suggestion.rbs +29 -0
  356. data/sig/generated/acp/types/unstable/nes_open_file.rbs +33 -0
  357. data/sig/generated/acp/types/unstable/nes_open_files_capabilities.rbs +17 -0
  358. data/sig/generated/acp/types/unstable/nes_recent_file.rbs +29 -0
  359. data/sig/generated/acp/types/unstable/nes_recent_files_capabilities.rbs +21 -0
  360. data/sig/generated/acp/types/unstable/nes_reject_reason.rbs +11 -0
  361. data/sig/generated/acp/types/unstable/nes_related_snippet.rbs +25 -0
  362. data/sig/generated/acp/types/unstable/nes_related_snippets_capabilities.rbs +17 -0
  363. data/sig/generated/acp/types/unstable/nes_rename_capabilities.rbs +17 -0
  364. data/sig/generated/acp/types/unstable/nes_rename_suggestion.rbs +33 -0
  365. data/sig/generated/acp/types/unstable/nes_repository.rbs +29 -0
  366. data/sig/generated/acp/types/unstable/nes_search_and_replace_capabilities.rbs +17 -0
  367. data/sig/generated/acp/types/unstable/nes_search_and_replace_suggestion.rbs +37 -0
  368. data/sig/generated/acp/types/unstable/nes_suggest_context.rbs +41 -0
  369. data/sig/generated/acp/types/unstable/nes_suggestion/edit.rbs +33 -0
  370. data/sig/generated/acp/types/unstable/nes_suggestion/jump.rbs +29 -0
  371. data/sig/generated/acp/types/unstable/nes_suggestion/rename.rbs +33 -0
  372. data/sig/generated/acp/types/unstable/nes_suggestion/searchandreplace.rbs +37 -0
  373. data/sig/generated/acp/types/unstable/nes_suggestion.rbs +9 -0
  374. data/sig/generated/acp/types/unstable/nes_text_edit.rbs +25 -0
  375. data/sig/generated/acp/types/unstable/nes_trigger_kind.rbs +9 -0
  376. data/sig/generated/acp/types/unstable/nes_user_action.rbs +33 -0
  377. data/sig/generated/acp/types/unstable/nes_user_actions_capabilities.rbs +21 -0
  378. data/sig/generated/acp/types/unstable/notice.rbs +29 -0
  379. data/sig/generated/acp/types/unstable/notice_severity.rbs +9 -0
  380. data/sig/generated/acp/types/unstable/plan_capabilities.rbs +17 -0
  381. data/sig/generated/acp/types/unstable/plan_file.rbs +25 -0
  382. data/sig/generated/acp/types/unstable/plan_items.rbs +25 -0
  383. data/sig/generated/acp/types/unstable/plan_markdown.rbs +25 -0
  384. data/sig/generated/acp/types/unstable/plan_removed.rbs +21 -0
  385. data/sig/generated/acp/types/unstable/plan_update.rbs +21 -0
  386. data/sig/generated/acp/types/unstable/plan_update_content/file.rbs +25 -0
  387. data/sig/generated/acp/types/unstable/plan_update_content/items.rbs +25 -0
  388. data/sig/generated/acp/types/unstable/plan_update_content/markdown.rbs +25 -0
  389. data/sig/generated/acp/types/unstable/plan_update_content.rbs +9 -0
  390. data/sig/generated/acp/types/unstable/position.rbs +25 -0
  391. data/sig/generated/acp/types/unstable/position_encoding_kind.rbs +9 -0
  392. data/sig/generated/acp/types/unstable/prompt_response.rbs +25 -0
  393. data/sig/generated/acp/types/unstable/provider_current_config.rbs +25 -0
  394. data/sig/generated/acp/types/unstable/provider_info.rbs +33 -0
  395. data/sig/generated/acp/types/unstable/providers_capabilities.rbs +17 -0
  396. data/sig/generated/acp/types/unstable/range.rbs +25 -0
  397. data/sig/generated/acp/types/unstable/reject_nes_notification.rbs +29 -0
  398. data/sig/generated/acp/types/unstable/requires_action_state_update.rbs +17 -0
  399. data/sig/generated/acp/types/unstable/running_state_update.rbs +17 -0
  400. data/sig/generated/acp/types/unstable/session_cancel_capabilities.rbs +17 -0
  401. data/sig/generated/acp/types/unstable/session_capabilities.rbs +41 -0
  402. data/sig/generated/acp/types/unstable/session_fork_capabilities.rbs +17 -0
  403. data/sig/generated/acp/types/unstable/session_message.rbs +33 -0
  404. data/sig/generated/acp/types/unstable/session_message_chunk.rbs +33 -0
  405. data/sig/generated/acp/types/unstable/session_update/agent_message_chunk.rbs +25 -0
  406. data/sig/generated/acp/types/unstable/session_update/agent_thought_chunk.rbs +25 -0
  407. data/sig/generated/acp/types/unstable/session_update/available_commands_update.rbs +21 -0
  408. data/sig/generated/acp/types/unstable/session_update/compaction_summary_chunk.rbs +25 -0
  409. data/sig/generated/acp/types/unstable/session_update/compaction_update.rbs +33 -0
  410. data/sig/generated/acp/types/unstable/session_update/config_option_update.rbs +21 -0
  411. data/sig/generated/acp/types/unstable/session_update/current_mode_update.rbs +21 -0
  412. data/sig/generated/acp/types/unstable/session_update/notice.rbs +29 -0
  413. data/sig/generated/acp/types/unstable/session_update/plan.rbs +21 -0
  414. data/sig/generated/acp/types/unstable/session_update/plan_removed.rbs +21 -0
  415. data/sig/generated/acp/types/unstable/session_update/plan_update.rbs +21 -0
  416. data/sig/generated/acp/types/unstable/session_update/session_info_update.rbs +25 -0
  417. data/sig/generated/acp/types/unstable/session_update/session_message.rbs +33 -0
  418. data/sig/generated/acp/types/unstable/session_update/session_message_chunk.rbs +33 -0
  419. data/sig/generated/acp/types/unstable/session_update/subagent_update.rbs +37 -0
  420. data/sig/generated/acp/types/unstable/session_update/tool_call.rbs +53 -0
  421. data/sig/generated/acp/types/unstable/session_update/tool_call_update.rbs +53 -0
  422. data/sig/generated/acp/types/unstable/session_update/usage_update.rbs +29 -0
  423. data/sig/generated/acp/types/unstable/session_update/user_message_chunk.rbs +25 -0
  424. data/sig/generated/acp/types/unstable/session_update.rbs +9 -0
  425. data/sig/generated/acp/types/unstable/set_provider_request.rbs +33 -0
  426. data/sig/generated/acp/types/unstable/set_provider_response.rbs +17 -0
  427. data/sig/generated/acp/types/unstable/start_nes_request.rbs +29 -0
  428. data/sig/generated/acp/types/unstable/start_nes_response.rbs +21 -0
  429. data/sig/generated/acp/types/unstable/state_update/idle.rbs +25 -0
  430. data/sig/generated/acp/types/unstable/state_update/requires_action.rbs +17 -0
  431. data/sig/generated/acp/types/unstable/state_update/running.rbs +17 -0
  432. data/sig/generated/acp/types/unstable/state_update/unknown.rbs +17 -0
  433. data/sig/generated/acp/types/unstable/state_update.rbs +9 -0
  434. data/sig/generated/acp/types/unstable/subagent_capabilities.rbs +17 -0
  435. data/sig/generated/acp/types/unstable/subagent_session_capabilities.rbs +21 -0
  436. data/sig/generated/acp/types/unstable/subagent_update.rbs +37 -0
  437. data/sig/generated/acp/types/unstable/suggest_nes_request.rbs +45 -0
  438. data/sig/generated/acp/types/unstable/suggest_nes_response.rbs +21 -0
  439. data/sig/generated/acp/types/unstable/text_document_content_change_event.rbs +25 -0
  440. data/sig/generated/acp/types/unstable/text_document_sync_kind.rbs +7 -0
  441. data/sig/generated/acp/types/unstable/unknown_state_update.rbs +17 -0
  442. data/sig/generated/acp/types/unstable/usage.rbs +41 -0
  443. data/sig/generated/acp/types/unstable/workspace_folder.rbs +25 -0
  444. data/sig/generated/acp/types/unstable.rbs +4 -0
  445. data/sig/generated/acp/types.rbs +143 -0
  446. metadata +289 -1
@@ -32,9 +32,9 @@ class ACP::Types::SessionUpdate::UsageUpdate
32
32
  # @rbs return: ACP::Types::SessionUpdate::UsageUpdate
33
33
  def self.from_h(hash)
34
34
  new(
35
- used: hash.fetch('used'),
36
- size: hash.fetch('size'),
37
- cost: hash['cost']&.then { |value| ACP::Types::Cost.from_h(value) },
35
+ used: ACP::Types::Check.integer(ACP::Types::Check.key(hash, 'used'), 'used', min: 0),
36
+ size: ACP::Types::Check.integer(ACP::Types::Check.key(hash, 'size'), 'size', min: 0),
37
+ cost: ACP::Types::Check.object(hash['cost'], 'cost', ACP::Types::Cost, allow_nil: true),
38
38
  meta: hash['_meta']
39
39
  )
40
40
  end
@@ -27,8 +27,8 @@ class ACP::Types::SessionUpdate::UserMessageChunk
27
27
  # @rbs return: ACP::Types::SessionUpdate::UserMessageChunk
28
28
  def self.from_h(hash)
29
29
  new(
30
- content: ACP::Types::ContentBlock.from_h(hash.fetch('content')),
31
- message_id: hash['messageId'],
30
+ content: ACP::Types::Check.object(ACP::Types::Check.key(hash, 'content'), 'content', ACP::Types::ContentBlock),
31
+ message_id: ACP::Types::Check.string(hash['messageId'], 'messageId', allow_nil: true),
32
32
  meta: hash['_meta']
33
33
  )
34
34
  end
@@ -16,7 +16,7 @@ class ACP::Types::SetSessionConfigOptionRequest::Value::Boolean
16
16
  # @rbs hash: Hash[String, untyped]
17
17
  # @rbs return: ACP::Types::SetSessionConfigOptionRequest::Value::Boolean
18
18
  def self.from_h(hash)
19
- new(value: hash.fetch('value'))
19
+ new(value: ACP::Types::Check.boolean(ACP::Types::Check.key(hash, 'value'), 'value'))
20
20
  end
21
21
 
22
22
  # @rbs return: Hash[String, untyped]
@@ -16,7 +16,7 @@ class ACP::Types::SetSessionConfigOptionRequest::Value::ValueId
16
16
  # @rbs hash: Hash[String, untyped]
17
17
  # @rbs return: ACP::Types::SetSessionConfigOptionRequest::Value::ValueId
18
18
  def self.from_h(hash)
19
- new(value: hash.fetch('value'))
19
+ new(value: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'value'), 'value'))
20
20
  end
21
21
 
22
22
  # @rbs return: Hash[String, untyped]
@@ -32,8 +32,8 @@ class ACP::Types::SetSessionConfigOptionRequest
32
32
  # @rbs return: ACP::Types::SetSessionConfigOptionRequest
33
33
  def self.from_h(hash)
34
34
  new(
35
- session_id: hash.fetch('sessionId'),
36
- config_id: hash.fetch('configId'),
35
+ session_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'sessionId'), 'sessionId'),
36
+ config_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'configId'), 'configId'),
37
37
  meta: hash['_meta'],
38
38
  value: ACP::Types::SetSessionConfigOptionRequest::Value.from_h(hash)
39
39
  )
@@ -21,10 +21,13 @@ class ACP::Types::SetSessionConfigOptionResponse
21
21
  # @rbs hash: Hash[String, untyped]
22
22
  # @rbs return: ACP::Types::SetSessionConfigOptionResponse
23
23
  def self.from_h(hash)
24
- new(
25
- config_options: hash.fetch('configOptions').map { |item| ACP::Types::SessionConfigOption.from_h(item) },
26
- meta: hash['_meta']
27
- )
24
+ config_options = ACP::Types::Check.array(
25
+ ACP::Types::Check.key(hash, 'configOptions'),
26
+ 'configOptions'
27
+ ) do |item, path|
28
+ ACP::Types::Check.object(item, path, ACP::Types::SessionConfigOption)
29
+ end
30
+ new(config_options:, meta: hash['_meta'])
28
31
  end
29
32
 
30
33
  # @rbs return: Hash[String, untyped]
@@ -26,7 +26,11 @@ class ACP::Types::SetSessionModeRequest
26
26
  # @rbs hash: Hash[String, untyped]
27
27
  # @rbs return: ACP::Types::SetSessionModeRequest
28
28
  def self.from_h(hash)
29
- new(session_id: hash.fetch('sessionId'), mode_id: hash.fetch('modeId'), meta: hash['_meta'])
29
+ new(
30
+ session_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'sessionId'), 'sessionId'),
31
+ mode_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'modeId'), 'modeId'),
32
+ meta: hash['_meta']
33
+ )
30
34
  end
31
35
 
32
36
  # @rbs return: Hash[String, untyped]
@@ -21,7 +21,10 @@ class ACP::Types::StringMultiSelectItems
21
21
  # @rbs hash: Hash[String, untyped]
22
22
  # @rbs return: ACP::Types::StringMultiSelectItems
23
23
  def self.from_h(hash)
24
- new(enum: hash.fetch('enum'), meta: hash['_meta'])
24
+ enum = ACP::Types::Check.array(ACP::Types::Check.key(hash, 'enum'), 'enum') do |item, path|
25
+ ACP::Types::Check.string(item, path)
26
+ end
27
+ new(enum:, meta: hash['_meta'])
25
28
  end
26
29
 
27
30
  # @rbs return: Hash[String, untyped]
@@ -72,16 +72,22 @@ class ACP::Types::StringPropertySchema
72
72
  # @rbs hash: Hash[String, untyped]
73
73
  # @rbs return: ACP::Types::StringPropertySchema
74
74
  def self.from_h(hash)
75
+ enum = ACP::Types::Check.array(hash['enum'], 'enum', allow_nil: true) do |item, path|
76
+ ACP::Types::Check.string(item, path)
77
+ end
78
+ one_of = ACP::Types::Check.array(hash['oneOf'], 'oneOf', allow_nil: true) do |item, path|
79
+ ACP::Types::Check.object(item, path, ACP::Types::EnumOption)
80
+ end
75
81
  new(
76
- title: hash['title'],
77
- description: hash['description'],
78
- min_length: hash['minLength'],
79
- max_length: hash['maxLength'],
80
- pattern: hash['pattern'],
81
- format: hash['format'],
82
- default: hash['default'],
83
- enum: hash['enum'],
84
- one_of: hash['oneOf']&.map { |item| ACP::Types::EnumOption.from_h(item) },
82
+ title: ACP::Types::Check.string(hash['title'], 'title', allow_nil: true),
83
+ description: ACP::Types::Check.string(hash['description'], 'description', allow_nil: true),
84
+ min_length: ACP::Types::Check.integer(hash['minLength'], 'minLength', min: 0, allow_nil: true),
85
+ max_length: ACP::Types::Check.integer(hash['maxLength'], 'maxLength', min: 0, allow_nil: true),
86
+ pattern: ACP::Types::Check.string(hash['pattern'], 'pattern', allow_nil: true),
87
+ format: ACP::Types::Check.enum(hash['format'], 'format', %w[email uri date date-time], allow_nil: true),
88
+ default: ACP::Types::Check.string(hash['default'], 'default', allow_nil: true),
89
+ enum:,
90
+ one_of:,
85
91
  meta: hash['_meta']
86
92
  )
87
93
  end
@@ -21,7 +21,10 @@ class ACP::Types::Terminal
21
21
  # @rbs hash: Hash[String, untyped]
22
22
  # @rbs return: ACP::Types::Terminal
23
23
  def self.from_h(hash)
24
- new(terminal_id: hash.fetch('terminalId'), meta: hash['_meta'])
24
+ new(
25
+ terminal_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'terminalId'), 'terminalId'),
26
+ meta: hash['_meta']
27
+ )
25
28
  end
26
29
 
27
30
  # @rbs return: Hash[String, untyped]
@@ -26,7 +26,11 @@ class ACP::Types::TerminalExitStatus
26
26
  # @rbs hash: Hash[String, untyped]
27
27
  # @rbs return: ACP::Types::TerminalExitStatus
28
28
  def self.from_h(hash)
29
- new(exit_code: hash['exitCode'], signal: hash['signal'], meta: hash['_meta'])
29
+ new(
30
+ exit_code: ACP::Types::Check.integer(hash['exitCode'], 'exitCode', min: 0, allow_nil: true),
31
+ signal: ACP::Types::Check.string(hash['signal'], 'signal', allow_nil: true),
32
+ meta: hash['_meta']
33
+ )
30
34
  end
31
35
 
32
36
  # @rbs return: Hash[String, untyped]
@@ -26,7 +26,11 @@ class ACP::Types::TerminalOutputRequest
26
26
  # @rbs hash: Hash[String, untyped]
27
27
  # @rbs return: ACP::Types::TerminalOutputRequest
28
28
  def self.from_h(hash)
29
- new(session_id: hash.fetch('sessionId'), terminal_id: hash.fetch('terminalId'), meta: hash['_meta'])
29
+ new(
30
+ session_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'sessionId'), 'sessionId'),
31
+ terminal_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'terminalId'), 'terminalId'),
32
+ meta: hash['_meta']
33
+ )
30
34
  end
31
35
 
32
36
  # @rbs return: Hash[String, untyped]
@@ -32,9 +32,14 @@ class ACP::Types::TerminalOutputResponse
32
32
  # @rbs return: ACP::Types::TerminalOutputResponse
33
33
  def self.from_h(hash)
34
34
  new(
35
- output: hash.fetch('output'),
36
- truncated: hash.fetch('truncated'),
37
- exit_status: hash['exitStatus']&.then { |value| ACP::Types::TerminalExitStatus.from_h(value) },
35
+ output: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'output'), 'output'),
36
+ truncated: ACP::Types::Check.boolean(ACP::Types::Check.key(hash, 'truncated'), 'truncated'),
37
+ exit_status: ACP::Types::Check.object(
38
+ hash['exitStatus'],
39
+ 'exitStatus',
40
+ ACP::Types::TerminalExitStatus,
41
+ allow_nil: true
42
+ ),
38
43
  meta: hash['_meta']
39
44
  )
40
45
  end
@@ -27,8 +27,13 @@ class ACP::Types::TextContent
27
27
  # @rbs return: ACP::Types::TextContent
28
28
  def self.from_h(hash)
29
29
  new(
30
- annotations: hash['annotations']&.then { |value| ACP::Types::Annotations.from_h(value) },
31
- text: hash.fetch('text'),
30
+ annotations: ACP::Types::Check.object(
31
+ hash['annotations'],
32
+ 'annotations',
33
+ ACP::Types::Annotations,
34
+ allow_nil: true
35
+ ),
36
+ text: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'text'), 'text'),
32
37
  meta: hash['_meta']
33
38
  )
34
39
  end
@@ -31,7 +31,12 @@ class ACP::Types::TextResourceContents
31
31
  # @rbs hash: Hash[String, untyped]
32
32
  # @rbs return: ACP::Types::TextResourceContents
33
33
  def self.from_h(hash)
34
- new(mime_type: hash['mimeType'], text: hash.fetch('text'), uri: hash.fetch('uri'), meta: hash['_meta'])
34
+ new(
35
+ mime_type: ACP::Types::Check.string(hash['mimeType'], 'mimeType', allow_nil: true),
36
+ text: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'text'), 'text'),
37
+ uri: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'uri'), 'uri'),
38
+ meta: hash['_meta']
39
+ )
35
40
  end
36
41
 
37
42
  # @rbs return: Hash[String, untyped]
@@ -21,7 +21,10 @@ class ACP::Types::TitledMultiSelectItems
21
21
  # @rbs hash: Hash[String, untyped]
22
22
  # @rbs return: ACP::Types::TitledMultiSelectItems
23
23
  def self.from_h(hash)
24
- new(any_of: hash.fetch('anyOf').map { |item| ACP::Types::EnumOption.from_h(item) }, meta: hash['_meta'])
24
+ any_of = ACP::Types::Check.array(ACP::Types::Check.key(hash, 'anyOf'), 'anyOf') do |item, path|
25
+ ACP::Types::Check.object(item, path, ACP::Types::EnumOption)
26
+ end
27
+ new(any_of:, meta: hash['_meta'])
25
28
  end
26
29
 
27
30
  # @rbs return: Hash[String, untyped]
@@ -72,14 +72,30 @@ class ACP::Types::ToolCall
72
72
  # @rbs hash: Hash[String, untyped]
73
73
  # @rbs return: ACP::Types::ToolCall
74
74
  def self.from_h(hash)
75
+ content = ACP::Types::Check.array(hash['content'], 'content', allow_nil: true) do |item, path|
76
+ ACP::Types::Check.object(item, path, ACP::Types::ToolCallContent)
77
+ end
78
+ locations = ACP::Types::Check.array(hash['locations'], 'locations', allow_nil: true) do |item, path|
79
+ ACP::Types::Check.object(item, path, ACP::Types::ToolCallLocation)
80
+ end
75
81
  new(
76
- tool_call_id: hash.fetch('toolCallId'),
77
- title: hash.fetch('title'),
78
- name: hash['name'],
79
- kind: hash['kind'],
80
- status: hash['status'],
81
- content: hash['content']&.map { |item| ACP::Types::ToolCallContent.from_h(item) },
82
- locations: hash['locations']&.map { |item| ACP::Types::ToolCallLocation.from_h(item) },
82
+ tool_call_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'toolCallId'), 'toolCallId'),
83
+ title: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'title'), 'title'),
84
+ name: ACP::Types::Check.string(hash['name'], 'name', allow_nil: true),
85
+ kind: ACP::Types::Check.enum(
86
+ hash['kind'],
87
+ 'kind',
88
+ %w[read edit delete move search execute think fetch switch_mode other],
89
+ allow_nil: true
90
+ ),
91
+ status: ACP::Types::Check.enum(
92
+ hash['status'],
93
+ 'status',
94
+ %w[pending in_progress completed failed],
95
+ allow_nil: true
96
+ ),
97
+ content:,
98
+ locations:,
83
99
  raw_input: hash['rawInput'],
84
100
  raw_output: hash['rawOutput'],
85
101
  meta: hash['_meta']
@@ -21,7 +21,10 @@ class ACP::Types::ToolCallContent::Content
21
21
  # @rbs hash: Hash[String, untyped]
22
22
  # @rbs return: ACP::Types::ToolCallContent::Content
23
23
  def self.from_h(hash)
24
- new(content: ACP::Types::ContentBlock.from_h(hash.fetch('content')), meta: hash['_meta'])
24
+ new(
25
+ content: ACP::Types::Check.object(ACP::Types::Check.key(hash, 'content'), 'content', ACP::Types::ContentBlock),
26
+ meta: hash['_meta']
27
+ )
25
28
  end
26
29
 
27
30
  # @rbs return: Hash[String, untyped]
@@ -31,7 +31,12 @@ class ACP::Types::ToolCallContent::Diff
31
31
  # @rbs hash: Hash[String, untyped]
32
32
  # @rbs return: ACP::Types::ToolCallContent::Diff
33
33
  def self.from_h(hash)
34
- new(path: hash.fetch('path'), old_text: hash['oldText'], new_text: hash.fetch('newText'), meta: hash['_meta'])
34
+ new(
35
+ path: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'path'), 'path'),
36
+ old_text: ACP::Types::Check.string(hash['oldText'], 'oldText', allow_nil: true),
37
+ new_text: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'newText'), 'newText'),
38
+ meta: hash['_meta']
39
+ )
35
40
  end
36
41
 
37
42
  # @rbs return: Hash[String, untyped]
@@ -21,7 +21,10 @@ class ACP::Types::ToolCallContent::Terminal
21
21
  # @rbs hash: Hash[String, untyped]
22
22
  # @rbs return: ACP::Types::ToolCallContent::Terminal
23
23
  def self.from_h(hash)
24
- new(terminal_id: hash.fetch('terminalId'), meta: hash['_meta'])
24
+ new(
25
+ terminal_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'terminalId'), 'terminalId'),
26
+ meta: hash['_meta']
27
+ )
25
28
  end
26
29
 
27
30
  # @rbs return: Hash[String, untyped]
@@ -26,7 +26,11 @@ class ACP::Types::ToolCallLocation
26
26
  # @rbs hash: Hash[String, untyped]
27
27
  # @rbs return: ACP::Types::ToolCallLocation
28
28
  def self.from_h(hash)
29
- new(path: hash.fetch('path'), line: hash['line'], meta: hash['_meta'])
29
+ new(
30
+ path: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'path'), 'path'),
31
+ line: ACP::Types::Check.integer(hash['line'], 'line', min: 0, allow_nil: true),
32
+ meta: hash['_meta']
33
+ )
30
34
  end
31
35
 
32
36
  # @rbs return: Hash[String, untyped]
@@ -72,14 +72,30 @@ class ACP::Types::ToolCallUpdate
72
72
  # @rbs hash: Hash[String, untyped]
73
73
  # @rbs return: ACP::Types::ToolCallUpdate
74
74
  def self.from_h(hash)
75
+ content = ACP::Types::Check.array(hash['content'], 'content', allow_nil: true) do |item, path|
76
+ ACP::Types::Check.object(item, path, ACP::Types::ToolCallContent)
77
+ end
78
+ locations = ACP::Types::Check.array(hash['locations'], 'locations', allow_nil: true) do |item, path|
79
+ ACP::Types::Check.object(item, path, ACP::Types::ToolCallLocation)
80
+ end
75
81
  new(
76
- tool_call_id: hash.fetch('toolCallId'),
77
- kind: hash['kind'],
78
- status: hash['status'],
79
- title: hash['title'],
80
- name: hash['name'],
81
- content: hash['content']&.map { |item| ACP::Types::ToolCallContent.from_h(item) },
82
- locations: hash['locations']&.map { |item| ACP::Types::ToolCallLocation.from_h(item) },
82
+ tool_call_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'toolCallId'), 'toolCallId'),
83
+ kind: ACP::Types::Check.enum(
84
+ hash['kind'],
85
+ 'kind',
86
+ %w[read edit delete move search execute think fetch switch_mode other],
87
+ allow_nil: true
88
+ ),
89
+ status: ACP::Types::Check.enum(
90
+ hash['status'],
91
+ 'status',
92
+ %w[pending in_progress completed failed],
93
+ allow_nil: true
94
+ ),
95
+ title: ACP::Types::Check.string(hash['title'], 'title', allow_nil: true),
96
+ name: ACP::Types::Check.string(hash['name'], 'name', allow_nil: true),
97
+ content:,
98
+ locations:,
83
99
  raw_input: hash['rawInput'],
84
100
  raw_output: hash['rawOutput'],
85
101
  meta: hash['_meta']
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Generated by bin/types from schema/schema.unstable.json. Do not edit.
4
+ # Unstable: not part of the ACP spec, may change or disappear at any point.
5
+
6
+ class ACP::Types::Unstable::AcceptNesNotification
7
+ # @dynamic session_id
8
+ attr_reader :session_id #: String
9
+
10
+ # @dynamic id
11
+ attr_reader :id #: String
12
+
13
+ # @dynamic meta
14
+ attr_reader :meta #: Hash[String, untyped]?
15
+
16
+ # @rbs session_id: String
17
+ # @rbs id: String
18
+ # @rbs meta: Hash[String, untyped]?
19
+ # @rbs return: void
20
+ def initialize(session_id:, id:, meta: nil)
21
+ @session_id = session_id
22
+ @id = id
23
+ @meta = meta
24
+ freeze
25
+ end
26
+
27
+ # @rbs hash: Hash[String, untyped]
28
+ # @rbs return: ACP::Types::Unstable::AcceptNesNotification
29
+ def self.from_h(hash)
30
+ new(
31
+ session_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'sessionId'), 'sessionId'),
32
+ id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'id'), 'id'),
33
+ meta: hash['_meta']
34
+ )
35
+ end
36
+
37
+ # @rbs return: Hash[String, untyped]
38
+ def to_h
39
+ { 'sessionId' => session_id, 'id' => id, '_meta' => meta }.compact
40
+ end
41
+ end
@@ -0,0 +1,122 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Generated by bin/types from schema/schema.unstable.json. Do not edit.
4
+ # Unstable: not part of the ACP spec, may change or disappear at any point.
5
+
6
+ class ACP::Types::Unstable::AgentCapabilities
7
+ # @dynamic load_session
8
+ attr_reader :load_session #: bool?
9
+
10
+ # @dynamic prompt_capabilities
11
+ attr_reader :prompt_capabilities #: ACP::Types::PromptCapabilities?
12
+
13
+ # @dynamic mcp_capabilities
14
+ attr_reader :mcp_capabilities #: ACP::Types::Unstable::McpCapabilities?
15
+
16
+ # @dynamic session_capabilities
17
+ attr_reader :session_capabilities #: ACP::Types::Unstable::SessionCapabilities?
18
+
19
+ # @dynamic auth
20
+ attr_reader :auth #: ACP::Types::AgentAuthCapabilities?
21
+
22
+ # @dynamic providers
23
+ attr_reader :providers #: ACP::Types::Unstable::ProvidersCapabilities?
24
+
25
+ # @dynamic nes
26
+ attr_reader :nes #: ACP::Types::Unstable::NesCapabilities?
27
+
28
+ # @dynamic position_encoding
29
+ attr_reader :position_encoding #: String?
30
+
31
+ # @dynamic meta
32
+ attr_reader :meta #: Hash[String, untyped]?
33
+
34
+ # @rbs load_session: bool?
35
+ # @rbs prompt_capabilities: ACP::Types::PromptCapabilities?
36
+ # @rbs mcp_capabilities: ACP::Types::Unstable::McpCapabilities?
37
+ # @rbs session_capabilities: ACP::Types::Unstable::SessionCapabilities?
38
+ # @rbs auth: ACP::Types::AgentAuthCapabilities?
39
+ # @rbs providers: ACP::Types::Unstable::ProvidersCapabilities?
40
+ # @rbs nes: ACP::Types::Unstable::NesCapabilities?
41
+ # @rbs position_encoding: String?
42
+ # @rbs meta: Hash[String, untyped]?
43
+ # @rbs return: void
44
+ def initialize(
45
+ load_session: nil,
46
+ prompt_capabilities: nil,
47
+ mcp_capabilities: nil,
48
+ session_capabilities: nil,
49
+ auth: nil,
50
+ providers: nil,
51
+ nes: nil,
52
+ position_encoding: nil,
53
+ meta: nil
54
+ )
55
+ @load_session = load_session
56
+ @prompt_capabilities = prompt_capabilities
57
+ @mcp_capabilities = mcp_capabilities
58
+ @session_capabilities = session_capabilities
59
+ @auth = auth
60
+ @providers = providers
61
+ @nes = nes
62
+ @position_encoding = position_encoding
63
+ @meta = meta
64
+ freeze
65
+ end
66
+
67
+ # @rbs hash: Hash[String, untyped]
68
+ # @rbs return: ACP::Types::Unstable::AgentCapabilities
69
+ def self.from_h(hash)
70
+ new(
71
+ load_session: ACP::Types::Check.boolean(hash['loadSession'], 'loadSession', allow_nil: true),
72
+ prompt_capabilities: ACP::Types::Check.object(
73
+ hash['promptCapabilities'],
74
+ 'promptCapabilities',
75
+ ACP::Types::PromptCapabilities,
76
+ allow_nil: true
77
+ ),
78
+ mcp_capabilities: ACP::Types::Check.object(
79
+ hash['mcpCapabilities'],
80
+ 'mcpCapabilities',
81
+ ACP::Types::Unstable::McpCapabilities,
82
+ allow_nil: true
83
+ ),
84
+ session_capabilities: ACP::Types::Check.object(
85
+ hash['sessionCapabilities'],
86
+ 'sessionCapabilities',
87
+ ACP::Types::Unstable::SessionCapabilities,
88
+ allow_nil: true
89
+ ),
90
+ auth: ACP::Types::Check.object(hash['auth'], 'auth', ACP::Types::AgentAuthCapabilities, allow_nil: true),
91
+ providers: ACP::Types::Check.object(
92
+ hash['providers'],
93
+ 'providers',
94
+ ACP::Types::Unstable::ProvidersCapabilities,
95
+ allow_nil: true
96
+ ),
97
+ nes: ACP::Types::Check.object(hash['nes'], 'nes', ACP::Types::Unstable::NesCapabilities, allow_nil: true),
98
+ position_encoding: ACP::Types::Check.enum(
99
+ hash['positionEncoding'],
100
+ 'positionEncoding',
101
+ %w[utf-16 utf-32 utf-8],
102
+ allow_nil: true
103
+ ),
104
+ meta: hash['_meta']
105
+ )
106
+ end
107
+
108
+ # @rbs return: Hash[String, untyped]
109
+ def to_h
110
+ {
111
+ 'loadSession' => load_session,
112
+ 'promptCapabilities' => prompt_capabilities&.to_h,
113
+ 'mcpCapabilities' => mcp_capabilities&.to_h,
114
+ 'sessionCapabilities' => session_capabilities&.to_h,
115
+ 'auth' => auth&.to_h,
116
+ 'providers' => providers&.to_h,
117
+ 'nes' => nes&.to_h,
118
+ 'positionEncoding' => position_encoding,
119
+ '_meta' => meta
120
+ }.compact
121
+ end
122
+ end