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
@@ -21,7 +21,14 @@ class ACP::Types::PromptResponse
21
21
  # @rbs hash: Hash[String, untyped]
22
22
  # @rbs return: ACP::Types::PromptResponse
23
23
  def self.from_h(hash)
24
- new(stop_reason: hash.fetch('stopReason'), meta: hash['_meta'])
24
+ new(
25
+ stop_reason: ACP::Types::Check.enum(
26
+ ACP::Types::Check.key(hash, 'stopReason'),
27
+ 'stopReason',
28
+ %w[end_turn max_tokens max_turn_requests refusal cancelled]
29
+ ),
30
+ meta: hash['_meta']
31
+ )
25
32
  end
26
33
 
27
34
  # @rbs return: Hash[String, untyped]
@@ -37,10 +37,10 @@ class ACP::Types::ReadTextFileRequest
37
37
  # @rbs return: ACP::Types::ReadTextFileRequest
38
38
  def self.from_h(hash)
39
39
  new(
40
- session_id: hash.fetch('sessionId'),
41
- path: hash.fetch('path'),
42
- line: hash['line'],
43
- limit: hash['limit'],
40
+ session_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'sessionId'), 'sessionId'),
41
+ path: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'path'), 'path'),
42
+ line: ACP::Types::Check.integer(hash['line'], 'line', min: 0, allow_nil: true),
43
+ limit: ACP::Types::Check.integer(hash['limit'], 'limit', min: 0, allow_nil: true),
44
44
  meta: hash['_meta']
45
45
  )
46
46
  end
@@ -21,7 +21,7 @@ class ACP::Types::ReadTextFileResponse
21
21
  # @rbs hash: Hash[String, untyped]
22
22
  # @rbs return: ACP::Types::ReadTextFileResponse
23
23
  def self.from_h(hash)
24
- new(content: hash.fetch('content'), meta: hash['_meta'])
24
+ new(content: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'content'), 'content'), meta: hash['_meta'])
25
25
  end
26
26
 
27
27
  # @rbs return: Hash[String, untyped]
@@ -26,7 +26,11 @@ class ACP::Types::ReleaseTerminalRequest
26
26
  # @rbs hash: Hash[String, untyped]
27
27
  # @rbs return: ACP::Types::ReleaseTerminalRequest
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]
@@ -21,7 +21,7 @@ class ACP::Types::RequestPermissionOutcome::Selected
21
21
  # @rbs hash: Hash[String, untyped]
22
22
  # @rbs return: ACP::Types::RequestPermissionOutcome::Selected
23
23
  def self.from_h(hash)
24
- new(option_id: hash.fetch('optionId'), meta: hash['_meta'])
24
+ new(option_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'optionId'), 'optionId'), meta: hash['_meta'])
25
25
  end
26
26
 
27
27
  # @rbs return: Hash[String, untyped]
@@ -31,10 +31,17 @@ class ACP::Types::RequestPermissionRequest
31
31
  # @rbs hash: Hash[String, untyped]
32
32
  # @rbs return: ACP::Types::RequestPermissionRequest
33
33
  def self.from_h(hash)
34
+ options = ACP::Types::Check.array(ACP::Types::Check.key(hash, 'options'), 'options') do |item, path|
35
+ ACP::Types::Check.object(item, path, ACP::Types::PermissionOption)
36
+ end
34
37
  new(
35
- session_id: hash.fetch('sessionId'),
36
- tool_call: ACP::Types::ToolCallUpdate.from_h(hash.fetch('toolCall')),
37
- options: hash.fetch('options').map { |item| ACP::Types::PermissionOption.from_h(item) },
38
+ session_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'sessionId'), 'sessionId'),
39
+ tool_call: ACP::Types::Check.object(
40
+ ACP::Types::Check.key(hash, 'toolCall'),
41
+ 'toolCall',
42
+ ACP::Types::ToolCallUpdate
43
+ ),
44
+ options:,
38
45
  meta: hash['_meta']
39
46
  )
40
47
  end
@@ -21,7 +21,14 @@ class ACP::Types::RequestPermissionResponse
21
21
  # @rbs hash: Hash[String, untyped]
22
22
  # @rbs return: ACP::Types::RequestPermissionResponse
23
23
  def self.from_h(hash)
24
- new(outcome: ACP::Types::RequestPermissionOutcome.from_h(hash.fetch('outcome')), meta: hash['_meta'])
24
+ new(
25
+ outcome: ACP::Types::Check.object(
26
+ ACP::Types::Check.key(hash, 'outcome'),
27
+ 'outcome',
28
+ ACP::Types::RequestPermissionOutcome
29
+ ),
30
+ meta: hash['_meta']
31
+ )
25
32
  end
26
33
 
27
34
  # @rbs return: Hash[String, untyped]
@@ -52,13 +52,18 @@ class ACP::Types::ResourceLink
52
52
  # @rbs return: ACP::Types::ResourceLink
53
53
  def self.from_h(hash)
54
54
  new(
55
- annotations: hash['annotations']&.then { |value| ACP::Types::Annotations.from_h(value) },
56
- description: hash['description'],
57
- mime_type: hash['mimeType'],
58
- name: hash.fetch('name'),
59
- size: hash['size'],
60
- title: hash['title'],
61
- uri: hash.fetch('uri'),
55
+ annotations: ACP::Types::Check.object(
56
+ hash['annotations'],
57
+ 'annotations',
58
+ ACP::Types::Annotations,
59
+ allow_nil: true
60
+ ),
61
+ description: ACP::Types::Check.string(hash['description'], 'description', allow_nil: true),
62
+ mime_type: ACP::Types::Check.string(hash['mimeType'], 'mimeType', allow_nil: true),
63
+ name: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'name'), 'name'),
64
+ size: ACP::Types::Check.integer(hash['size'], 'size', allow_nil: true),
65
+ title: ACP::Types::Check.string(hash['title'], 'title', allow_nil: true),
66
+ uri: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'uri'), 'uri'),
62
67
  meta: hash['_meta']
63
68
  )
64
69
  end
@@ -36,11 +36,21 @@ class ACP::Types::ResumeSessionRequest
36
36
  # @rbs hash: Hash[String, untyped]
37
37
  # @rbs return: ACP::Types::ResumeSessionRequest
38
38
  def self.from_h(hash)
39
+ additional_directories = ACP::Types::Check.array(
40
+ hash['additionalDirectories'],
41
+ 'additionalDirectories',
42
+ allow_nil: true
43
+ ) do |item, path|
44
+ ACP::Types::Check.string(item, path)
45
+ end
46
+ mcp_servers = ACP::Types::Check.array(hash['mcpServers'], 'mcpServers', allow_nil: true) do |item, path|
47
+ ACP::Types::Check.object(item, path, ACP::Types::McpServer)
48
+ end
39
49
  new(
40
- session_id: hash.fetch('sessionId'),
41
- cwd: hash.fetch('cwd'),
42
- additional_directories: hash['additionalDirectories'],
43
- mcp_servers: hash['mcpServers']&.map { |item| ACP::Types::McpServer.from_h(item) },
50
+ session_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'sessionId'), 'sessionId'),
51
+ cwd: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'cwd'), 'cwd'),
52
+ additional_directories:,
53
+ mcp_servers:,
44
54
  meta: hash['_meta']
45
55
  )
46
56
  end
@@ -26,9 +26,12 @@ class ACP::Types::ResumeSessionResponse
26
26
  # @rbs hash: Hash[String, untyped]
27
27
  # @rbs return: ACP::Types::ResumeSessionResponse
28
28
  def self.from_h(hash)
29
+ config_options = ACP::Types::Check.array(hash['configOptions'], 'configOptions', allow_nil: true) do |item, path|
30
+ ACP::Types::Check.object(item, path, ACP::Types::SessionConfigOption)
31
+ end
29
32
  new(
30
- modes: hash['modes']&.then { |value| ACP::Types::SessionModeState.from_h(value) },
31
- config_options: hash['configOptions']&.map { |item| ACP::Types::SessionConfigOption.from_h(item) },
33
+ modes: ACP::Types::Check.object(hash['modes'], 'modes', ACP::Types::SessionModeState, allow_nil: true),
34
+ config_options:,
32
35
  meta: hash['_meta']
33
36
  )
34
37
  end
@@ -21,7 +21,7 @@ class ACP::Types::SelectedPermissionOutcome
21
21
  # @rbs hash: Hash[String, untyped]
22
22
  # @rbs return: ACP::Types::SelectedPermissionOutcome
23
23
  def self.from_h(hash)
24
- new(option_id: hash.fetch('optionId'), meta: hash['_meta'])
24
+ new(option_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'optionId'), 'optionId'), meta: hash['_meta'])
25
25
  end
26
26
 
27
27
  # @rbs return: Hash[String, untyped]
@@ -42,13 +42,26 @@ class ACP::Types::SessionCapabilities
42
42
  # @rbs return: ACP::Types::SessionCapabilities
43
43
  def self.from_h(hash)
44
44
  new(
45
- list: hash['list']&.then { |value| ACP::Types::SessionListCapabilities.from_h(value) },
46
- delete: hash['delete']&.then { |value| ACP::Types::SessionDeleteCapabilities.from_h(value) },
47
- additional_directories: hash['additionalDirectories']&.then do |value|
48
- ACP::Types::SessionAdditionalDirectoriesCapabilities.from_h(value)
49
- end,
50
- resume: hash['resume']&.then { |value| ACP::Types::SessionResumeCapabilities.from_h(value) },
51
- close: hash['close']&.then { |value| ACP::Types::SessionCloseCapabilities.from_h(value) },
45
+ list: ACP::Types::Check.object(hash['list'], 'list', ACP::Types::SessionListCapabilities, allow_nil: true),
46
+ delete: ACP::Types::Check.object(
47
+ hash['delete'],
48
+ 'delete',
49
+ ACP::Types::SessionDeleteCapabilities,
50
+ allow_nil: true
51
+ ),
52
+ additional_directories: ACP::Types::Check.object(
53
+ hash['additionalDirectories'],
54
+ 'additionalDirectories',
55
+ ACP::Types::SessionAdditionalDirectoriesCapabilities,
56
+ allow_nil: true
57
+ ),
58
+ resume: ACP::Types::Check.object(
59
+ hash['resume'],
60
+ 'resume',
61
+ ACP::Types::SessionResumeCapabilities,
62
+ allow_nil: true
63
+ ),
64
+ close: ACP::Types::Check.object(hash['close'], 'close', ACP::Types::SessionCloseCapabilities, allow_nil: true),
52
65
  meta: hash['_meta']
53
66
  )
54
67
  end
@@ -16,7 +16,7 @@ class ACP::Types::SessionConfigBoolean
16
16
  # @rbs hash: Hash[String, untyped]
17
17
  # @rbs return: ACP::Types::SessionConfigBoolean
18
18
  def self.from_h(hash)
19
- new(current_value: hash.fetch('currentValue'))
19
+ new(current_value: ACP::Types::Check.boolean(ACP::Types::Check.key(hash, 'currentValue'), 'currentValue'))
20
20
  end
21
21
 
22
22
  # @rbs return: Hash[String, untyped]
@@ -16,7 +16,7 @@ class ACP::Types::SessionConfigOption::Kind::Boolean
16
16
  # @rbs hash: Hash[String, untyped]
17
17
  # @rbs return: ACP::Types::SessionConfigOption::Kind::Boolean
18
18
  def self.from_h(hash)
19
- new(current_value: hash.fetch('currentValue'))
19
+ new(current_value: ACP::Types::Check.boolean(ACP::Types::Check.key(hash, 'currentValue'), 'currentValue'))
20
20
  end
21
21
 
22
22
  # @rbs return: Hash[String, untyped]
@@ -22,8 +22,12 @@ class ACP::Types::SessionConfigOption::Kind::Select
22
22
  # @rbs return: ACP::Types::SessionConfigOption::Kind::Select
23
23
  def self.from_h(hash)
24
24
  new(
25
- current_value: hash.fetch('currentValue'),
26
- options: ACP::Types::SessionConfigSelectOptions.from_a(hash.fetch('options'))
25
+ current_value: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'currentValue'), 'currentValue'),
26
+ options: ACP::Types::Check.objects(
27
+ ACP::Types::Check.key(hash, 'options'),
28
+ 'options',
29
+ ACP::Types::SessionConfigSelectOptions
30
+ )
27
31
  )
28
32
  end
29
33
 
@@ -42,9 +42,9 @@ class ACP::Types::SessionConfigOption
42
42
  # @rbs return: ACP::Types::SessionConfigOption
43
43
  def self.from_h(hash)
44
44
  new(
45
- id: hash.fetch('id'),
46
- name: hash.fetch('name'),
47
- description: hash['description'],
45
+ id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'id'), 'id'),
46
+ name: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'name'), 'name'),
47
+ description: ACP::Types::Check.string(hash['description'], 'description', allow_nil: true),
48
48
  category: hash['category'],
49
49
  meta: hash['_meta'],
50
50
  kind: ACP::Types::SessionConfigOption::Kind.from_h(hash)
@@ -22,7 +22,12 @@ class ACP::Types::SessionConfigOptionsCapabilities
22
22
  # @rbs return: ACP::Types::SessionConfigOptionsCapabilities
23
23
  def self.from_h(hash)
24
24
  new(
25
- boolean: hash['boolean']&.then { |value| ACP::Types::BooleanConfigOptionCapabilities.from_h(value) },
25
+ boolean: ACP::Types::Check.object(
26
+ hash['boolean'],
27
+ 'boolean',
28
+ ACP::Types::BooleanConfigOptionCapabilities,
29
+ allow_nil: true
30
+ ),
26
31
  meta: hash['_meta']
27
32
  )
28
33
  end
@@ -22,8 +22,12 @@ class ACP::Types::SessionConfigSelect
22
22
  # @rbs return: ACP::Types::SessionConfigSelect
23
23
  def self.from_h(hash)
24
24
  new(
25
- current_value: hash.fetch('currentValue'),
26
- options: ACP::Types::SessionConfigSelectOptions.from_a(hash.fetch('options'))
25
+ current_value: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'currentValue'), 'currentValue'),
26
+ options: ACP::Types::Check.objects(
27
+ ACP::Types::Check.key(hash, 'options'),
28
+ 'options',
29
+ ACP::Types::SessionConfigSelectOptions
30
+ )
27
31
  )
28
32
  end
29
33
 
@@ -31,10 +31,13 @@ class ACP::Types::SessionConfigSelectGroup
31
31
  # @rbs hash: Hash[String, untyped]
32
32
  # @rbs return: ACP::Types::SessionConfigSelectGroup
33
33
  def self.from_h(hash)
34
+ options = ACP::Types::Check.array(ACP::Types::Check.key(hash, 'options'), 'options') do |item, path|
35
+ ACP::Types::Check.object(item, path, ACP::Types::SessionConfigSelectOption)
36
+ end
34
37
  new(
35
- group: hash.fetch('group'),
36
- name: hash.fetch('name'),
37
- options: hash.fetch('options').map { |item| ACP::Types::SessionConfigSelectOption.from_h(item) },
38
+ group: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'group'), 'group'),
39
+ name: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'name'), 'name'),
40
+ options:,
38
41
  meta: hash['_meta']
39
42
  )
40
43
  end
@@ -31,7 +31,12 @@ class ACP::Types::SessionConfigSelectOption
31
31
  # @rbs hash: Hash[String, untyped]
32
32
  # @rbs return: ACP::Types::SessionConfigSelectOption
33
33
  def self.from_h(hash)
34
- new(value: hash.fetch('value'), name: hash.fetch('name'), description: hash['description'], meta: hash['_meta'])
34
+ new(
35
+ value: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'value'), 'value'),
36
+ name: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'name'), 'name'),
37
+ description: ACP::Types::Check.string(hash['description'], 'description', allow_nil: true),
38
+ meta: hash['_meta']
39
+ )
35
40
  end
36
41
 
37
42
  # @rbs return: Hash[String, untyped]
@@ -12,9 +12,13 @@ module ACP::Types::SessionConfigSelectOptions
12
12
  # @rbs return: t
13
13
  def self.from_a(items)
14
14
  if items.all? { |item| item.key?('value') }
15
- items.map { |item| ACP::Types::SessionConfigSelectOption.from_h(item) } #: Array[ACP::Types::SessionConfigSelectOption]
15
+ items.each_with_index.map do |item, index|
16
+ ACP::Types::Check.object(item, [index], ACP::Types::SessionConfigSelectOption)
17
+ end #: Array[ACP::Types::SessionConfigSelectOption]
16
18
  elsif items.all? { |item| item.key?('group') }
17
- items.map { |item| ACP::Types::SessionConfigSelectGroup.from_h(item) } #: Array[ACP::Types::SessionConfigSelectGroup]
19
+ items.each_with_index.map do |item, index|
20
+ ACP::Types::Check.object(item, [index], ACP::Types::SessionConfigSelectGroup)
21
+ end #: Array[ACP::Types::SessionConfigSelectGroup]
18
22
  else
19
23
  items
20
24
  end
@@ -41,12 +41,19 @@ class ACP::Types::SessionInfo
41
41
  # @rbs hash: Hash[String, untyped]
42
42
  # @rbs return: ACP::Types::SessionInfo
43
43
  def self.from_h(hash)
44
+ additional_directories = ACP::Types::Check.array(
45
+ hash['additionalDirectories'],
46
+ 'additionalDirectories',
47
+ allow_nil: true
48
+ ) do |item, path|
49
+ ACP::Types::Check.string(item, path)
50
+ end
44
51
  new(
45
- session_id: hash.fetch('sessionId'),
46
- cwd: hash.fetch('cwd'),
47
- additional_directories: hash['additionalDirectories'],
48
- title: hash['title'],
49
- updated_at: hash['updatedAt'],
52
+ session_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'sessionId'), 'sessionId'),
53
+ cwd: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'cwd'), 'cwd'),
54
+ additional_directories:,
55
+ title: ACP::Types::Check.string(hash['title'], 'title', allow_nil: true),
56
+ updated_at: ACP::Types::Check.string(hash['updatedAt'], 'updatedAt', allow_nil: true),
50
57
  meta: hash['_meta']
51
58
  )
52
59
  end
@@ -26,7 +26,16 @@ class ACP::Types::SessionInfoUpdate
26
26
  # @rbs hash: Hash[String, untyped]
27
27
  # @rbs return: ACP::Types::SessionInfoUpdate
28
28
  def self.from_h(hash)
29
- new(title: hash.fetch('title', :unset), updated_at: hash.fetch('updatedAt', :unset), meta: hash['_meta'])
29
+ new(
30
+ title: ACP::Types::Check.string(hash.fetch('title', :unset), 'title', allow_nil: true, allow_unset: true),
31
+ updated_at: ACP::Types::Check.string(
32
+ hash.fetch('updatedAt', :unset),
33
+ 'updatedAt',
34
+ allow_nil: true,
35
+ allow_unset: true
36
+ ),
37
+ meta: hash['_meta']
38
+ )
30
39
  end
31
40
 
32
41
  # @rbs return: Hash[String, untyped]
@@ -31,7 +31,12 @@ class ACP::Types::SessionMode
31
31
  # @rbs hash: Hash[String, untyped]
32
32
  # @rbs return: ACP::Types::SessionMode
33
33
  def self.from_h(hash)
34
- new(id: hash.fetch('id'), name: hash.fetch('name'), description: hash['description'], meta: hash['_meta'])
34
+ new(
35
+ id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'id'), 'id'),
36
+ name: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'name'), 'name'),
37
+ description: ACP::Types::Check.string(hash['description'], 'description', allow_nil: true),
38
+ meta: hash['_meta']
39
+ )
35
40
  end
36
41
 
37
42
  # @rbs return: Hash[String, untyped]
@@ -26,9 +26,15 @@ class ACP::Types::SessionModeState
26
26
  # @rbs hash: Hash[String, untyped]
27
27
  # @rbs return: ACP::Types::SessionModeState
28
28
  def self.from_h(hash)
29
+ available_modes = ACP::Types::Check.array(
30
+ ACP::Types::Check.key(hash, 'availableModes'),
31
+ 'availableModes'
32
+ ) do |item, path|
33
+ ACP::Types::Check.object(item, path, ACP::Types::SessionMode)
34
+ end
29
35
  new(
30
- current_mode_id: hash.fetch('currentModeId'),
31
- available_modes: hash.fetch('availableModes').map { |item| ACP::Types::SessionMode.from_h(item) },
36
+ current_mode_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'currentModeId'), 'currentModeId'),
37
+ available_modes:,
32
38
  meta: hash['_meta']
33
39
  )
34
40
  end
@@ -27,8 +27,8 @@ class ACP::Types::SessionNotification
27
27
  # @rbs return: ACP::Types::SessionNotification
28
28
  def self.from_h(hash)
29
29
  new(
30
- session_id: hash.fetch('sessionId'),
31
- update: ACP::Types::SessionUpdate.from_h(hash.fetch('update')),
30
+ session_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'sessionId'), 'sessionId'),
31
+ update: ACP::Types::Check.object(ACP::Types::Check.key(hash, 'update'), 'update', ACP::Types::SessionUpdate),
32
32
  meta: hash['_meta']
33
33
  )
34
34
  end
@@ -27,8 +27,8 @@ class ACP::Types::SessionUpdate::AgentMessageChunk
27
27
  # @rbs return: ACP::Types::SessionUpdate::AgentMessageChunk
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
@@ -27,8 +27,8 @@ class ACP::Types::SessionUpdate::AgentThoughtChunk
27
27
  # @rbs return: ACP::Types::SessionUpdate::AgentThoughtChunk
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
@@ -21,10 +21,13 @@ class ACP::Types::SessionUpdate::AvailableCommandsUpdate
21
21
  # @rbs hash: Hash[String, untyped]
22
22
  # @rbs return: ACP::Types::SessionUpdate::AvailableCommandsUpdate
23
23
  def self.from_h(hash)
24
- new(
25
- available_commands: hash.fetch('availableCommands').map { |item| ACP::Types::AvailableCommand.from_h(item) },
26
- meta: hash['_meta']
27
- )
24
+ available_commands = ACP::Types::Check.array(
25
+ ACP::Types::Check.key(hash, 'availableCommands'),
26
+ 'availableCommands'
27
+ ) do |item, path|
28
+ ACP::Types::Check.object(item, path, ACP::Types::AvailableCommand)
29
+ end
30
+ new(available_commands:, meta: hash['_meta'])
28
31
  end
29
32
 
30
33
  # @rbs return: Hash[String, untyped]
@@ -21,10 +21,13 @@ class ACP::Types::SessionUpdate::ConfigOptionUpdate
21
21
  # @rbs hash: Hash[String, untyped]
22
22
  # @rbs return: ACP::Types::SessionUpdate::ConfigOptionUpdate
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]
@@ -21,7 +21,10 @@ class ACP::Types::SessionUpdate::CurrentModeUpdate
21
21
  # @rbs hash: Hash[String, untyped]
22
22
  # @rbs return: ACP::Types::SessionUpdate::CurrentModeUpdate
23
23
  def self.from_h(hash)
24
- new(current_mode_id: hash.fetch('currentModeId'), meta: hash['_meta'])
24
+ new(
25
+ current_mode_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'currentModeId'), 'currentModeId'),
26
+ meta: hash['_meta']
27
+ )
25
28
  end
26
29
 
27
30
  # @rbs return: Hash[String, untyped]
@@ -21,7 +21,10 @@ class ACP::Types::SessionUpdate::Plan
21
21
  # @rbs hash: Hash[String, untyped]
22
22
  # @rbs return: ACP::Types::SessionUpdate::Plan
23
23
  def self.from_h(hash)
24
- new(entries: hash.fetch('entries').map { |item| ACP::Types::PlanEntry.from_h(item) }, meta: hash['_meta'])
24
+ entries = ACP::Types::Check.array(ACP::Types::Check.key(hash, 'entries'), 'entries') do |item, path|
25
+ ACP::Types::Check.object(item, path, ACP::Types::PlanEntry)
26
+ end
27
+ new(entries:, meta: hash['_meta'])
25
28
  end
26
29
 
27
30
  # @rbs return: Hash[String, untyped]
@@ -26,7 +26,16 @@ class ACP::Types::SessionUpdate::SessionInfoUpdate
26
26
  # @rbs hash: Hash[String, untyped]
27
27
  # @rbs return: ACP::Types::SessionUpdate::SessionInfoUpdate
28
28
  def self.from_h(hash)
29
- new(title: hash.fetch('title', :unset), updated_at: hash.fetch('updatedAt', :unset), meta: hash['_meta'])
29
+ new(
30
+ title: ACP::Types::Check.string(hash.fetch('title', :unset), 'title', allow_nil: true, allow_unset: true),
31
+ updated_at: ACP::Types::Check.string(
32
+ hash.fetch('updatedAt', :unset),
33
+ 'updatedAt',
34
+ allow_nil: true,
35
+ allow_unset: true
36
+ ),
37
+ meta: hash['_meta']
38
+ )
30
39
  end
31
40
 
32
41
  # @rbs return: Hash[String, untyped]
@@ -72,14 +72,30 @@ class ACP::Types::SessionUpdate::ToolCall
72
72
  # @rbs hash: Hash[String, untyped]
73
73
  # @rbs return: ACP::Types::SessionUpdate::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']
@@ -72,14 +72,30 @@ class ACP::Types::SessionUpdate::ToolCallUpdate
72
72
  # @rbs hash: Hash[String, untyped]
73
73
  # @rbs return: ACP::Types::SessionUpdate::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']