acp-sdk 0.8.0 → 0.10.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 (317) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +19 -0
  3. data/README.md +18 -4
  4. data/lib/acp/agent_connection/client.rb +31 -1
  5. data/lib/acp/agent_connection/optional_method/disable_provider.rb +23 -0
  6. data/lib/acp/agent_connection/optional_method/fork_session.rb +23 -0
  7. data/lib/acp/agent_connection/optional_method/list_providers.rb +23 -0
  8. data/lib/acp/agent_connection/optional_method/set_provider.rb +23 -0
  9. data/lib/acp/agent_connection.rb +73 -3
  10. data/lib/acp/client_connection.rb +108 -9
  11. data/lib/acp/request_error.rb +10 -0
  12. data/lib/acp/sdk.rb +3 -1
  13. data/lib/acp/transport/cancellation.rb +42 -0
  14. data/lib/acp/transport/stdio.rb +72 -1
  15. data/lib/acp/types/unstable/accept_nes_notification.rb +41 -0
  16. data/lib/acp/types/unstable/agent_capabilities.rb +122 -0
  17. data/lib/acp/types/unstable/client_capabilities.rb +127 -0
  18. data/lib/acp/types/unstable/client_nes_capabilities.rb +62 -0
  19. data/lib/acp/types/unstable/client_session_capabilities.rb +57 -0
  20. data/lib/acp/types/unstable/close_nes_request.rb +35 -0
  21. data/lib/acp/types/unstable/close_nes_response.rb +27 -0
  22. data/lib/acp/types/unstable/compaction_status.rb +11 -0
  23. data/lib/acp/types/unstable/compaction_summary_chunk.rb +41 -0
  24. data/lib/acp/types/unstable/compaction_update.rb +62 -0
  25. data/lib/acp/types/unstable/did_change_document_notification.rb +65 -0
  26. data/lib/acp/types/unstable/did_close_document_notification.rb +41 -0
  27. data/lib/acp/types/unstable/did_focus_document_notification.rb +74 -0
  28. data/lib/acp/types/unstable/did_open_document_notification.rb +66 -0
  29. data/lib/acp/types/unstable/did_save_document_notification.rb +41 -0
  30. data/lib/acp/types/unstable/disable_provider_request.rb +35 -0
  31. data/lib/acp/types/unstable/disable_provider_response.rb +27 -0
  32. data/lib/acp/types/unstable/fork_session_request.rb +69 -0
  33. data/lib/acp/types/unstable/fork_session_response.rb +55 -0
  34. data/lib/acp/types/unstable/idle_state_update.rb +46 -0
  35. data/lib/acp/types/unstable/initialize_response.rb +72 -0
  36. data/lib/acp/types/unstable/list_providers_request.rb +27 -0
  37. data/lib/acp/types/unstable/list_providers_response.rb +35 -0
  38. data/lib/acp/types/unstable/llm_protocol.rb +12 -0
  39. data/lib/acp/types/unstable/mcp_capabilities.rb +47 -0
  40. data/lib/acp/types/unstable/mcp_error.rb +41 -0
  41. data/lib/acp/types/unstable/mcp_server/acp.rb +41 -0
  42. data/lib/acp/types/unstable/mcp_server/http.rb +50 -0
  43. data/lib/acp/types/unstable/mcp_server/sse.rb +50 -0
  44. data/lib/acp/types/unstable/mcp_server.rb +25 -0
  45. data/lib/acp/types/unstable/mcp_server_acp.rb +41 -0
  46. data/lib/acp/types/unstable/message_mcp_notification.rb +59 -0
  47. data/lib/acp/types/unstable/message_mcp_request.rb +59 -0
  48. data/lib/acp/types/unstable/message_mcp_response/error.rb +35 -0
  49. data/lib/acp/types/unstable/message_mcp_response/result.rb +32 -0
  50. data/lib/acp/types/unstable/message_mcp_response.rb +23 -0
  51. data/lib/acp/types/unstable/nes_capabilities.rb +51 -0
  52. data/lib/acp/types/unstable/nes_context_capabilities.rb +111 -0
  53. data/lib/acp/types/unstable/nes_diagnostic.rb +57 -0
  54. data/lib/acp/types/unstable/nes_diagnostic_severity.rb +11 -0
  55. data/lib/acp/types/unstable/nes_diagnostics_capabilities.rb +27 -0
  56. data/lib/acp/types/unstable/nes_document_did_change_capabilities.rb +35 -0
  57. data/lib/acp/types/unstable/nes_document_did_close_capabilities.rb +27 -0
  58. data/lib/acp/types/unstable/nes_document_did_focus_capabilities.rb +27 -0
  59. data/lib/acp/types/unstable/nes_document_did_open_capabilities.rb +27 -0
  60. data/lib/acp/types/unstable/nes_document_did_save_capabilities.rb +27 -0
  61. data/lib/acp/types/unstable/nes_document_event_capabilities.rb +91 -0
  62. data/lib/acp/types/unstable/nes_edit_history_capabilities.rb +35 -0
  63. data/lib/acp/types/unstable/nes_edit_history_entry.rb +41 -0
  64. data/lib/acp/types/unstable/nes_edit_suggestion.rb +67 -0
  65. data/lib/acp/types/unstable/nes_event_capabilities.rb +40 -0
  66. data/lib/acp/types/unstable/nes_excerpt.rb +47 -0
  67. data/lib/acp/types/unstable/nes_jump_capabilities.rb +27 -0
  68. data/lib/acp/types/unstable/nes_jump_suggestion.rb +51 -0
  69. data/lib/acp/types/unstable/nes_open_file.rb +64 -0
  70. data/lib/acp/types/unstable/nes_open_files_capabilities.rb +27 -0
  71. data/lib/acp/types/unstable/nes_recent_file.rb +47 -0
  72. data/lib/acp/types/unstable/nes_recent_files_capabilities.rb +35 -0
  73. data/lib/acp/types/unstable/nes_reject_reason.rb +11 -0
  74. data/lib/acp/types/unstable/nes_related_snippet.rb +40 -0
  75. data/lib/acp/types/unstable/nes_related_snippets_capabilities.rb +27 -0
  76. data/lib/acp/types/unstable/nes_rename_capabilities.rb +27 -0
  77. data/lib/acp/types/unstable/nes_rename_suggestion.rb +57 -0
  78. data/lib/acp/types/unstable/nes_repository.rb +47 -0
  79. data/lib/acp/types/unstable/nes_search_and_replace_capabilities.rb +27 -0
  80. data/lib/acp/types/unstable/nes_search_and_replace_suggestion.rb +66 -0
  81. data/lib/acp/types/unstable/nes_suggest_context.rb +95 -0
  82. data/lib/acp/types/unstable/nes_suggestion/edit.rb +68 -0
  83. data/lib/acp/types/unstable/nes_suggestion/jump.rb +51 -0
  84. data/lib/acp/types/unstable/nes_suggestion/rename.rb +64 -0
  85. data/lib/acp/types/unstable/nes_suggestion/searchandreplace.rb +67 -0
  86. data/lib/acp/types/unstable/nes_suggestion.rb +25 -0
  87. data/lib/acp/types/unstable/nes_text_edit.rb +41 -0
  88. data/lib/acp/types/unstable/nes_trigger_kind.rb +10 -0
  89. data/lib/acp/types/unstable/nes_user_action.rb +63 -0
  90. data/lib/acp/types/unstable/nes_user_actions_capabilities.rb +35 -0
  91. data/lib/acp/types/unstable/notice.rb +47 -0
  92. data/lib/acp/types/unstable/notice_severity.rb +10 -0
  93. data/lib/acp/types/unstable/plan_capabilities.rb +27 -0
  94. data/lib/acp/types/unstable/plan_file.rb +41 -0
  95. data/lib/acp/types/unstable/plan_items.rb +44 -0
  96. data/lib/acp/types/unstable/plan_markdown.rb +41 -0
  97. data/lib/acp/types/unstable/plan_removed.rb +32 -0
  98. data/lib/acp/types/unstable/plan_update.rb +39 -0
  99. data/lib/acp/types/unstable/plan_update_content/file.rb +41 -0
  100. data/lib/acp/types/unstable/plan_update_content/items.rb +44 -0
  101. data/lib/acp/types/unstable/plan_update_content/markdown.rb +41 -0
  102. data/lib/acp/types/unstable/plan_update_content.rb +23 -0
  103. data/lib/acp/types/unstable/position.rb +41 -0
  104. data/lib/acp/types/unstable/position_encoding_kind.rb +10 -0
  105. data/lib/acp/types/unstable/prompt_response.rb +45 -0
  106. data/lib/acp/types/unstable/provider_current_config.rb +41 -0
  107. data/lib/acp/types/unstable/provider_info.rb +64 -0
  108. data/lib/acp/types/unstable/providers_capabilities.rb +27 -0
  109. data/lib/acp/types/unstable/range.rb +41 -0
  110. data/lib/acp/types/unstable/reject_nes_notification.rb +52 -0
  111. data/lib/acp/types/unstable/requires_action_state_update.rb +27 -0
  112. data/lib/acp/types/unstable/running_state_update.rb +27 -0
  113. data/lib/acp/types/unstable/session_cancel_capabilities.rb +27 -0
  114. data/lib/acp/types/unstable/session_capabilities.rb +93 -0
  115. data/lib/acp/types/unstable/session_fork_capabilities.rb +27 -0
  116. data/lib/acp/types/unstable/session_message.rb +62 -0
  117. data/lib/acp/types/unstable/session_message_chunk.rb +59 -0
  118. data/lib/acp/types/unstable/session_update/agent_message_chunk.rb +46 -0
  119. data/lib/acp/types/unstable/session_update/agent_thought_chunk.rb +46 -0
  120. data/lib/acp/types/unstable/session_update/available_commands_update.rb +42 -0
  121. data/lib/acp/types/unstable/session_update/compaction_summary_chunk.rb +46 -0
  122. data/lib/acp/types/unstable/session_update/compaction_update.rb +63 -0
  123. data/lib/acp/types/unstable/session_update/config_option_update.rb +42 -0
  124. data/lib/acp/types/unstable/session_update/current_mode_update.rb +35 -0
  125. data/lib/acp/types/unstable/session_update/notice.rb +53 -0
  126. data/lib/acp/types/unstable/session_update/plan.rb +35 -0
  127. data/lib/acp/types/unstable/session_update/plan_removed.rb +32 -0
  128. data/lib/acp/types/unstable/session_update/plan_update.rb +39 -0
  129. data/lib/acp/types/unstable/session_update/session_info_update.rb +49 -0
  130. data/lib/acp/types/unstable/session_update/session_message.rb +63 -0
  131. data/lib/acp/types/unstable/session_update/session_message_chunk.rb +60 -0
  132. data/lib/acp/types/unstable/session_update/subagent_update.rb +72 -0
  133. data/lib/acp/types/unstable/session_update/tool_call.rb +122 -0
  134. data/lib/acp/types/unstable/session_update/tool_call_update.rb +122 -0
  135. data/lib/acp/types/unstable/session_update/usage_update.rb +47 -0
  136. data/lib/acp/types/unstable/session_update/user_message_chunk.rb +46 -0
  137. data/lib/acp/types/unstable/session_update.rb +55 -0
  138. data/lib/acp/types/unstable/set_provider_request.rb +62 -0
  139. data/lib/acp/types/unstable/set_provider_response.rb +27 -0
  140. data/lib/acp/types/unstable/start_nes_request.rb +64 -0
  141. data/lib/acp/types/unstable/start_nes_response.rb +35 -0
  142. data/lib/acp/types/unstable/state_update/idle.rb +46 -0
  143. data/lib/acp/types/unstable/state_update/requires_action.rb +27 -0
  144. data/lib/acp/types/unstable/state_update/running.rb +27 -0
  145. data/lib/acp/types/unstable/state_update/unknown.rb +27 -0
  146. data/lib/acp/types/unstable/state_update.rb +25 -0
  147. data/lib/acp/types/unstable/subagent_capabilities.rb +27 -0
  148. data/lib/acp/types/unstable/subagent_session_capabilities.rb +40 -0
  149. data/lib/acp/types/unstable/subagent_update.rb +71 -0
  150. data/lib/acp/types/unstable/suggest_nes_request.rb +93 -0
  151. data/lib/acp/types/unstable/suggest_nes_response.rb +35 -0
  152. data/lib/acp/types/unstable/text_document_content_change_event.rb +41 -0
  153. data/lib/acp/types/unstable/text_document_sync_kind.rb +9 -0
  154. data/lib/acp/types/unstable/unknown_state_update.rb +27 -0
  155. data/lib/acp/types/unstable/usage.rb +91 -0
  156. data/lib/acp/types/unstable/workspace_folder.rb +41 -0
  157. data/lib/acp/types/unstable.rb +155 -0
  158. data/lib/acp/version.rb +1 -1
  159. data/sig/generated/acp/agent_connection/client.rbs +20 -1
  160. data/sig/generated/acp/agent_connection/optional_method/disable_provider.rbs +13 -0
  161. data/sig/generated/acp/agent_connection/optional_method/fork_session.rbs +13 -0
  162. data/sig/generated/acp/agent_connection/optional_method/list_providers.rbs +13 -0
  163. data/sig/generated/acp/agent_connection/optional_method/set_provider.rbs +13 -0
  164. data/sig/generated/acp/agent_connection.rbs +29 -0
  165. data/sig/generated/acp/client_connection.rbs +57 -1
  166. data/sig/generated/acp/request_error.rbs +8 -0
  167. data/sig/generated/acp/transport/cancellation.rbs +32 -0
  168. data/sig/generated/acp/transport/stdio.rbs +42 -0
  169. data/sig/generated/acp/types/unstable/accept_nes_notification.rbs +25 -0
  170. data/sig/generated/acp/types/unstable/agent_capabilities.rbs +49 -0
  171. data/sig/generated/acp/types/unstable/client_capabilities.rbs +53 -0
  172. data/sig/generated/acp/types/unstable/client_nes_capabilities.rbs +29 -0
  173. data/sig/generated/acp/types/unstable/client_session_capabilities.rbs +29 -0
  174. data/sig/generated/acp/types/unstable/close_nes_request.rbs +21 -0
  175. data/sig/generated/acp/types/unstable/close_nes_response.rbs +17 -0
  176. data/sig/generated/acp/types/unstable/compaction_status.rbs +11 -0
  177. data/sig/generated/acp/types/unstable/compaction_summary_chunk.rbs +25 -0
  178. data/sig/generated/acp/types/unstable/compaction_update.rbs +33 -0
  179. data/sig/generated/acp/types/unstable/did_change_document_notification.rbs +33 -0
  180. data/sig/generated/acp/types/unstable/did_close_document_notification.rbs +25 -0
  181. data/sig/generated/acp/types/unstable/did_focus_document_notification.rbs +37 -0
  182. data/sig/generated/acp/types/unstable/did_open_document_notification.rbs +37 -0
  183. data/sig/generated/acp/types/unstable/did_save_document_notification.rbs +25 -0
  184. data/sig/generated/acp/types/unstable/disable_provider_request.rbs +21 -0
  185. data/sig/generated/acp/types/unstable/disable_provider_response.rbs +17 -0
  186. data/sig/generated/acp/types/unstable/fork_session_request.rbs +33 -0
  187. data/sig/generated/acp/types/unstable/fork_session_response.rbs +29 -0
  188. data/sig/generated/acp/types/unstable/idle_state_update.rbs +25 -0
  189. data/sig/generated/acp/types/unstable/initialize_response.rbs +33 -0
  190. data/sig/generated/acp/types/unstable/list_providers_request.rbs +17 -0
  191. data/sig/generated/acp/types/unstable/list_providers_response.rbs +21 -0
  192. data/sig/generated/acp/types/unstable/llm_protocol.rbs +13 -0
  193. data/sig/generated/acp/types/unstable/mcp_capabilities.rbs +29 -0
  194. data/sig/generated/acp/types/unstable/mcp_error.rbs +25 -0
  195. data/sig/generated/acp/types/unstable/mcp_server/acp.rbs +25 -0
  196. data/sig/generated/acp/types/unstable/mcp_server/http.rbs +29 -0
  197. data/sig/generated/acp/types/unstable/mcp_server/sse.rbs +29 -0
  198. data/sig/generated/acp/types/unstable/mcp_server.rbs +9 -0
  199. data/sig/generated/acp/types/unstable/mcp_server_acp.rbs +25 -0
  200. data/sig/generated/acp/types/unstable/message_mcp_notification.rbs +33 -0
  201. data/sig/generated/acp/types/unstable/message_mcp_request.rbs +33 -0
  202. data/sig/generated/acp/types/unstable/message_mcp_response/error.rbs +21 -0
  203. data/sig/generated/acp/types/unstable/message_mcp_response/result.rbs +21 -0
  204. data/sig/generated/acp/types/unstable/message_mcp_response.rbs +9 -0
  205. data/sig/generated/acp/types/unstable/nes_capabilities.rbs +25 -0
  206. data/sig/generated/acp/types/unstable/nes_context_capabilities.rbs +41 -0
  207. data/sig/generated/acp/types/unstable/nes_diagnostic.rbs +33 -0
  208. data/sig/generated/acp/types/unstable/nes_diagnostic_severity.rbs +11 -0
  209. data/sig/generated/acp/types/unstable/nes_diagnostics_capabilities.rbs +17 -0
  210. data/sig/generated/acp/types/unstable/nes_document_did_change_capabilities.rbs +21 -0
  211. data/sig/generated/acp/types/unstable/nes_document_did_close_capabilities.rbs +17 -0
  212. data/sig/generated/acp/types/unstable/nes_document_did_focus_capabilities.rbs +17 -0
  213. data/sig/generated/acp/types/unstable/nes_document_did_open_capabilities.rbs +17 -0
  214. data/sig/generated/acp/types/unstable/nes_document_did_save_capabilities.rbs +17 -0
  215. data/sig/generated/acp/types/unstable/nes_document_event_capabilities.rbs +37 -0
  216. data/sig/generated/acp/types/unstable/nes_edit_history_capabilities.rbs +21 -0
  217. data/sig/generated/acp/types/unstable/nes_edit_history_entry.rbs +25 -0
  218. data/sig/generated/acp/types/unstable/nes_edit_suggestion.rbs +33 -0
  219. data/sig/generated/acp/types/unstable/nes_event_capabilities.rbs +21 -0
  220. data/sig/generated/acp/types/unstable/nes_excerpt.rbs +29 -0
  221. data/sig/generated/acp/types/unstable/nes_jump_capabilities.rbs +17 -0
  222. data/sig/generated/acp/types/unstable/nes_jump_suggestion.rbs +29 -0
  223. data/sig/generated/acp/types/unstable/nes_open_file.rbs +33 -0
  224. data/sig/generated/acp/types/unstable/nes_open_files_capabilities.rbs +17 -0
  225. data/sig/generated/acp/types/unstable/nes_recent_file.rbs +29 -0
  226. data/sig/generated/acp/types/unstable/nes_recent_files_capabilities.rbs +21 -0
  227. data/sig/generated/acp/types/unstable/nes_reject_reason.rbs +11 -0
  228. data/sig/generated/acp/types/unstable/nes_related_snippet.rbs +25 -0
  229. data/sig/generated/acp/types/unstable/nes_related_snippets_capabilities.rbs +17 -0
  230. data/sig/generated/acp/types/unstable/nes_rename_capabilities.rbs +17 -0
  231. data/sig/generated/acp/types/unstable/nes_rename_suggestion.rbs +33 -0
  232. data/sig/generated/acp/types/unstable/nes_repository.rbs +29 -0
  233. data/sig/generated/acp/types/unstable/nes_search_and_replace_capabilities.rbs +17 -0
  234. data/sig/generated/acp/types/unstable/nes_search_and_replace_suggestion.rbs +37 -0
  235. data/sig/generated/acp/types/unstable/nes_suggest_context.rbs +41 -0
  236. data/sig/generated/acp/types/unstable/nes_suggestion/edit.rbs +33 -0
  237. data/sig/generated/acp/types/unstable/nes_suggestion/jump.rbs +29 -0
  238. data/sig/generated/acp/types/unstable/nes_suggestion/rename.rbs +33 -0
  239. data/sig/generated/acp/types/unstable/nes_suggestion/searchandreplace.rbs +37 -0
  240. data/sig/generated/acp/types/unstable/nes_suggestion.rbs +9 -0
  241. data/sig/generated/acp/types/unstable/nes_text_edit.rbs +25 -0
  242. data/sig/generated/acp/types/unstable/nes_trigger_kind.rbs +9 -0
  243. data/sig/generated/acp/types/unstable/nes_user_action.rbs +33 -0
  244. data/sig/generated/acp/types/unstable/nes_user_actions_capabilities.rbs +21 -0
  245. data/sig/generated/acp/types/unstable/notice.rbs +29 -0
  246. data/sig/generated/acp/types/unstable/notice_severity.rbs +9 -0
  247. data/sig/generated/acp/types/unstable/plan_capabilities.rbs +17 -0
  248. data/sig/generated/acp/types/unstable/plan_file.rbs +25 -0
  249. data/sig/generated/acp/types/unstable/plan_items.rbs +25 -0
  250. data/sig/generated/acp/types/unstable/plan_markdown.rbs +25 -0
  251. data/sig/generated/acp/types/unstable/plan_removed.rbs +21 -0
  252. data/sig/generated/acp/types/unstable/plan_update.rbs +21 -0
  253. data/sig/generated/acp/types/unstable/plan_update_content/file.rbs +25 -0
  254. data/sig/generated/acp/types/unstable/plan_update_content/items.rbs +25 -0
  255. data/sig/generated/acp/types/unstable/plan_update_content/markdown.rbs +25 -0
  256. data/sig/generated/acp/types/unstable/plan_update_content.rbs +9 -0
  257. data/sig/generated/acp/types/unstable/position.rbs +25 -0
  258. data/sig/generated/acp/types/unstable/position_encoding_kind.rbs +9 -0
  259. data/sig/generated/acp/types/unstable/prompt_response.rbs +25 -0
  260. data/sig/generated/acp/types/unstable/provider_current_config.rbs +25 -0
  261. data/sig/generated/acp/types/unstable/provider_info.rbs +33 -0
  262. data/sig/generated/acp/types/unstable/providers_capabilities.rbs +17 -0
  263. data/sig/generated/acp/types/unstable/range.rbs +25 -0
  264. data/sig/generated/acp/types/unstable/reject_nes_notification.rbs +29 -0
  265. data/sig/generated/acp/types/unstable/requires_action_state_update.rbs +17 -0
  266. data/sig/generated/acp/types/unstable/running_state_update.rbs +17 -0
  267. data/sig/generated/acp/types/unstable/session_cancel_capabilities.rbs +17 -0
  268. data/sig/generated/acp/types/unstable/session_capabilities.rbs +41 -0
  269. data/sig/generated/acp/types/unstable/session_fork_capabilities.rbs +17 -0
  270. data/sig/generated/acp/types/unstable/session_message.rbs +33 -0
  271. data/sig/generated/acp/types/unstable/session_message_chunk.rbs +33 -0
  272. data/sig/generated/acp/types/unstable/session_update/agent_message_chunk.rbs +25 -0
  273. data/sig/generated/acp/types/unstable/session_update/agent_thought_chunk.rbs +25 -0
  274. data/sig/generated/acp/types/unstable/session_update/available_commands_update.rbs +21 -0
  275. data/sig/generated/acp/types/unstable/session_update/compaction_summary_chunk.rbs +25 -0
  276. data/sig/generated/acp/types/unstable/session_update/compaction_update.rbs +33 -0
  277. data/sig/generated/acp/types/unstable/session_update/config_option_update.rbs +21 -0
  278. data/sig/generated/acp/types/unstable/session_update/current_mode_update.rbs +21 -0
  279. data/sig/generated/acp/types/unstable/session_update/notice.rbs +29 -0
  280. data/sig/generated/acp/types/unstable/session_update/plan.rbs +21 -0
  281. data/sig/generated/acp/types/unstable/session_update/plan_removed.rbs +21 -0
  282. data/sig/generated/acp/types/unstable/session_update/plan_update.rbs +21 -0
  283. data/sig/generated/acp/types/unstable/session_update/session_info_update.rbs +25 -0
  284. data/sig/generated/acp/types/unstable/session_update/session_message.rbs +33 -0
  285. data/sig/generated/acp/types/unstable/session_update/session_message_chunk.rbs +33 -0
  286. data/sig/generated/acp/types/unstable/session_update/subagent_update.rbs +37 -0
  287. data/sig/generated/acp/types/unstable/session_update/tool_call.rbs +53 -0
  288. data/sig/generated/acp/types/unstable/session_update/tool_call_update.rbs +53 -0
  289. data/sig/generated/acp/types/unstable/session_update/usage_update.rbs +29 -0
  290. data/sig/generated/acp/types/unstable/session_update/user_message_chunk.rbs +25 -0
  291. data/sig/generated/acp/types/unstable/session_update.rbs +9 -0
  292. data/sig/generated/acp/types/unstable/set_provider_request.rbs +33 -0
  293. data/sig/generated/acp/types/unstable/set_provider_response.rbs +17 -0
  294. data/sig/generated/acp/types/unstable/start_nes_request.rbs +29 -0
  295. data/sig/generated/acp/types/unstable/start_nes_response.rbs +21 -0
  296. data/sig/generated/acp/types/unstable/state_update/idle.rbs +25 -0
  297. data/sig/generated/acp/types/unstable/state_update/requires_action.rbs +17 -0
  298. data/sig/generated/acp/types/unstable/state_update/running.rbs +17 -0
  299. data/sig/generated/acp/types/unstable/state_update/unknown.rbs +17 -0
  300. data/sig/generated/acp/types/unstable/state_update.rbs +9 -0
  301. data/sig/generated/acp/types/unstable/subagent_capabilities.rbs +17 -0
  302. data/sig/generated/acp/types/unstable/subagent_session_capabilities.rbs +21 -0
  303. data/sig/generated/acp/types/unstable/subagent_update.rbs +37 -0
  304. data/sig/generated/acp/types/unstable/suggest_nes_request.rbs +45 -0
  305. data/sig/generated/acp/types/unstable/suggest_nes_response.rbs +21 -0
  306. data/sig/generated/acp/types/unstable/text_document_content_change_event.rbs +25 -0
  307. data/sig/generated/acp/types/unstable/text_document_sync_kind.rbs +7 -0
  308. data/sig/generated/acp/types/unstable/unknown_state_update.rbs +17 -0
  309. data/sig/generated/acp/types/unstable/usage.rbs +41 -0
  310. data/sig/generated/acp/types/unstable/workspace_folder.rbs +25 -0
  311. data/sig/generated/acp/types/unstable.rbs +4 -0
  312. data/sig/manual/acp/agent_connection/optional_method/disable_provider.rbs +6 -0
  313. data/sig/manual/acp/agent_connection/optional_method/fork_session.rbs +6 -0
  314. data/sig/manual/acp/agent_connection/optional_method/list_providers.rbs +6 -0
  315. data/sig/manual/acp/agent_connection/optional_method/set_provider.rbs +6 -0
  316. data/sig/manual/acp/agent_connection.rbs +30 -0
  317. metadata +302 -2
@@ -13,6 +13,7 @@ class ACP::Transport::Stdio
13
13
  # @rbs @write_lock: Thread::Mutex
14
14
  # @rbs @lock: Thread::Mutex
15
15
  # @rbs @pending: Hash[untyped, Thread::Queue]
16
+ # @rbs @serving: Hash[untyped, ACP::Transport::Cancellation]
16
17
  # @rbs @next_id: Integer
17
18
  # @rbs @closed: bool
18
19
  # @rbs @logger: ACP::Transport::_Logger
@@ -31,6 +32,7 @@ class ACP::Transport::Stdio
31
32
  @write_lock = Mutex.new
32
33
  @lock = Mutex.new
33
34
  @pending = {}
35
+ @serving = {}
34
36
  @next_id = 0
35
37
  @closed = false
36
38
  @logger = logger
@@ -70,6 +72,34 @@ class ACP::Transport::Stdio
70
72
  write({ 'jsonrpc' => '2.0', 'method' => method, 'params' => params }.compact)
71
73
  end
72
74
 
75
+ # The waiting caller is released only by the peer's answer, which the spec
76
+ # requires to be either a result or the -32800 error.
77
+ #
78
+ # @rbs id: untyped
79
+ # @rbs return: void
80
+ def cancel(id)
81
+ pending = @lock.synchronize { @pending.key?(id) }
82
+ notify('$/cancel_request', { 'requestId' => id }) if pending
83
+ end
84
+
85
+ # Each id is re-checked against the pending table, so one that settled
86
+ # between the snapshot and its cancel is not cancelled.
87
+ #
88
+ # @rbs return: void
89
+ def cancel_requests
90
+ @lock.synchronize { @pending.keys }.each { |id| cancel(id) }
91
+ end
92
+
93
+ # The cancellation of the request the calling thread is serving, or nil off
94
+ # a serve thread. A handler observes the peer's $/cancel_request through it
95
+ # and can end early with ACP::RequestError.request_cancelled; whatever it
96
+ # returns, the transport sends exactly one response.
97
+ #
98
+ # @rbs return: ACP::Transport::Cancellation?
99
+ def cancellation
100
+ ACP::Transport::Cancellation.current
101
+ end
102
+
73
103
  private
74
104
 
75
105
  # @rbs line: String
@@ -91,7 +121,11 @@ class ACP::Transport::Stdio
91
121
  def route(message, requests, notifications)
92
122
  method = message['method']
93
123
  error = message['error']
94
- if method.is_a?(String) && message.key?('id')
124
+ if method == '$/cancel_request' && !message.key?('id')
125
+ # Cancellation is transport-owned: the notification targets a request
126
+ # the transport is serving, not application state.
127
+ cancel_request(message['params'])
128
+ elsif method.is_a?(String) && message.key?('id')
95
129
  serve(requests[method], message['id'], message['params'], method)
96
130
  elsif method.is_a?(String)
97
131
  # Run on the reader thread so notifications (session/update) keep their
@@ -136,7 +170,9 @@ class ACP::Transport::Stdio
136
170
  # @rbs method: String
137
171
  # @rbs return: void
138
172
  def serve(handler, id, params, method)
173
+ cancellation = register_serving(id)
139
174
  Thread.new do
175
+ ACP::Transport::Cancellation.current = cancellation
140
176
  outcome = handler ? invoke(handler, params) : ACP::RequestError.method_not_found(method)
141
177
  case outcome
142
178
  when ACP::Transport::Reply
@@ -144,7 +180,42 @@ class ACP::Transport::Stdio
144
180
  quietly('reply after callback', &outcome.after)
145
181
  else reply(id, outcome)
146
182
  end
183
+ ensure
184
+ unregister_serving(id)
185
+ end
186
+ end
187
+
188
+ # Registered before the serve thread starts so a cancel racing the request
189
+ # cannot be missed, and dropped once the response is on the wire so later
190
+ # cancels for the id are ignored.
191
+ #
192
+ # @rbs id: untyped
193
+ # @rbs return: ACP::Transport::Cancellation
194
+ def register_serving(id)
195
+ cancellation = ACP::Transport::Cancellation.new
196
+ @lock.synchronize { @serving[id] = cancellation }
197
+ cancellation
198
+ end
199
+
200
+ # @rbs id: untyped
201
+ # @rbs return: void
202
+ def unregister_serving(id)
203
+ @lock.synchronize { @serving.delete(id) }
204
+ end
205
+
206
+ # A notification has no reply to carry a malformed params failure, so one
207
+ # is warned and dropped rather than answered.
208
+ #
209
+ # @rbs params: untyped
210
+ # @rbs return: void
211
+ def cancel_request(params)
212
+ id = params.is_a?(Hash) ? params['requestId'] : nil
213
+ unless id.is_a?(String) || id.is_a?(Integer)
214
+ return @logger.warn('dropped malformed $/cancel_request: missing requestId')
147
215
  end
216
+
217
+ cancellation = @lock.synchronize { @serving[id] }
218
+ cancellation&.cancel
148
219
  end
149
220
 
150
221
  # For code with no reply to carry an error: a notification handler, or a
@@ -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
@@ -0,0 +1,127 @@
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::ClientCapabilities
7
+ # @dynamic fs
8
+ attr_reader :fs #: ACP::Types::FileSystemCapabilities?
9
+
10
+ # @dynamic terminal
11
+ attr_reader :terminal #: bool?
12
+
13
+ # @dynamic session
14
+ attr_reader :session #: ACP::Types::Unstable::ClientSessionCapabilities?
15
+
16
+ # @dynamic subagents
17
+ attr_reader :subagents #: ACP::Types::Unstable::SubagentCapabilities?
18
+
19
+ # @dynamic plan
20
+ attr_reader :plan #: ACP::Types::Unstable::PlanCapabilities?
21
+
22
+ # @dynamic auth
23
+ attr_reader :auth #: ACP::Types::AuthCapabilities?
24
+
25
+ # @dynamic elicitation
26
+ attr_reader :elicitation #: ACP::Types::ElicitationCapabilities?
27
+
28
+ # @dynamic nes
29
+ attr_reader :nes #: ACP::Types::Unstable::ClientNesCapabilities?
30
+
31
+ # @dynamic position_encodings
32
+ attr_reader :position_encodings #: Array[String]?
33
+
34
+ # @dynamic meta
35
+ attr_reader :meta #: Hash[String, untyped]?
36
+
37
+ # @rbs fs: ACP::Types::FileSystemCapabilities?
38
+ # @rbs terminal: bool?
39
+ # @rbs session: ACP::Types::Unstable::ClientSessionCapabilities?
40
+ # @rbs subagents: ACP::Types::Unstable::SubagentCapabilities?
41
+ # @rbs plan: ACP::Types::Unstable::PlanCapabilities?
42
+ # @rbs auth: ACP::Types::AuthCapabilities?
43
+ # @rbs elicitation: ACP::Types::ElicitationCapabilities?
44
+ # @rbs nes: ACP::Types::Unstable::ClientNesCapabilities?
45
+ # @rbs position_encodings: Array[String]?
46
+ # @rbs meta: Hash[String, untyped]?
47
+ # @rbs return: void
48
+ def initialize(
49
+ fs: nil,
50
+ terminal: nil,
51
+ session: nil,
52
+ subagents: nil,
53
+ plan: nil,
54
+ auth: nil,
55
+ elicitation: nil,
56
+ nes: nil,
57
+ position_encodings: nil,
58
+ meta: nil
59
+ )
60
+ @fs = fs
61
+ @terminal = terminal
62
+ @session = session
63
+ @subagents = subagents
64
+ @plan = plan
65
+ @auth = auth
66
+ @elicitation = elicitation
67
+ @nes = nes
68
+ @position_encodings = position_encodings
69
+ @meta = meta
70
+ freeze
71
+ end
72
+
73
+ # @rbs hash: Hash[String, untyped]
74
+ # @rbs return: ACP::Types::Unstable::ClientCapabilities
75
+ def self.from_h(hash)
76
+ position_encodings = ACP::Types::Check.array(
77
+ hash['positionEncodings'],
78
+ 'positionEncodings',
79
+ allow_nil: true
80
+ ) do |item, path|
81
+ ACP::Types::Check.enum(item, path, %w[utf-16 utf-32 utf-8])
82
+ end
83
+ new(
84
+ fs: ACP::Types::Check.object(hash['fs'], 'fs', ACP::Types::FileSystemCapabilities, allow_nil: true),
85
+ terminal: ACP::Types::Check.boolean(hash['terminal'], 'terminal', allow_nil: true),
86
+ session: ACP::Types::Check.object(
87
+ hash['session'],
88
+ 'session',
89
+ ACP::Types::Unstable::ClientSessionCapabilities,
90
+ allow_nil: true
91
+ ),
92
+ subagents: ACP::Types::Check.object(
93
+ hash['subagents'],
94
+ 'subagents',
95
+ ACP::Types::Unstable::SubagentCapabilities,
96
+ allow_nil: true
97
+ ),
98
+ plan: ACP::Types::Check.object(hash['plan'], 'plan', ACP::Types::Unstable::PlanCapabilities, allow_nil: true),
99
+ auth: ACP::Types::Check.object(hash['auth'], 'auth', ACP::Types::AuthCapabilities, allow_nil: true),
100
+ elicitation: ACP::Types::Check.object(
101
+ hash['elicitation'],
102
+ 'elicitation',
103
+ ACP::Types::ElicitationCapabilities,
104
+ allow_nil: true
105
+ ),
106
+ nes: ACP::Types::Check.object(hash['nes'], 'nes', ACP::Types::Unstable::ClientNesCapabilities, allow_nil: true),
107
+ position_encodings:,
108
+ meta: hash['_meta']
109
+ )
110
+ end
111
+
112
+ # @rbs return: Hash[String, untyped]
113
+ def to_h
114
+ {
115
+ 'fs' => fs&.to_h,
116
+ 'terminal' => terminal,
117
+ 'session' => session&.to_h,
118
+ 'subagents' => subagents&.to_h,
119
+ 'plan' => plan&.to_h,
120
+ 'auth' => auth&.to_h,
121
+ 'elicitation' => elicitation&.to_h,
122
+ 'nes' => nes&.to_h,
123
+ 'positionEncodings' => position_encodings,
124
+ '_meta' => meta
125
+ }.compact
126
+ end
127
+ end
@@ -0,0 +1,62 @@
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::ClientNesCapabilities
7
+ # @dynamic jump
8
+ attr_reader :jump #: ACP::Types::Unstable::NesJumpCapabilities?
9
+
10
+ # @dynamic rename
11
+ attr_reader :rename #: ACP::Types::Unstable::NesRenameCapabilities?
12
+
13
+ # @dynamic search_and_replace
14
+ attr_reader :search_and_replace #: ACP::Types::Unstable::NesSearchAndReplaceCapabilities?
15
+
16
+ # @dynamic meta
17
+ attr_reader :meta #: Hash[String, untyped]?
18
+
19
+ # @rbs jump: ACP::Types::Unstable::NesJumpCapabilities?
20
+ # @rbs rename: ACP::Types::Unstable::NesRenameCapabilities?
21
+ # @rbs search_and_replace: ACP::Types::Unstable::NesSearchAndReplaceCapabilities?
22
+ # @rbs meta: Hash[String, untyped]?
23
+ # @rbs return: void
24
+ def initialize(jump: nil, rename: nil, search_and_replace: nil, meta: nil)
25
+ @jump = jump
26
+ @rename = rename
27
+ @search_and_replace = search_and_replace
28
+ @meta = meta
29
+ freeze
30
+ end
31
+
32
+ # @rbs hash: Hash[String, untyped]
33
+ # @rbs return: ACP::Types::Unstable::ClientNesCapabilities
34
+ def self.from_h(hash)
35
+ new(
36
+ jump: ACP::Types::Check.object(hash['jump'], 'jump', ACP::Types::Unstable::NesJumpCapabilities, allow_nil: true),
37
+ rename: ACP::Types::Check.object(
38
+ hash['rename'],
39
+ 'rename',
40
+ ACP::Types::Unstable::NesRenameCapabilities,
41
+ allow_nil: true
42
+ ),
43
+ search_and_replace: ACP::Types::Check.object(
44
+ hash['searchAndReplace'],
45
+ 'searchAndReplace',
46
+ ACP::Types::Unstable::NesSearchAndReplaceCapabilities,
47
+ allow_nil: true
48
+ ),
49
+ meta: hash['_meta']
50
+ )
51
+ end
52
+
53
+ # @rbs return: Hash[String, untyped]
54
+ def to_h
55
+ {
56
+ 'jump' => jump&.to_h,
57
+ 'rename' => rename&.to_h,
58
+ 'searchAndReplace' => search_and_replace&.to_h,
59
+ '_meta' => meta
60
+ }.compact
61
+ end
62
+ end
@@ -0,0 +1,57 @@
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::ClientSessionCapabilities
7
+ # @dynamic compaction
8
+ attr_reader :compaction #: Hash[String, untyped]?
9
+
10
+ # @dynamic config_options
11
+ attr_reader :config_options #: ACP::Types::SessionConfigOptionsCapabilities?
12
+
13
+ # @dynamic notices
14
+ attr_reader :notices #: Hash[String, untyped]?
15
+
16
+ # @dynamic meta
17
+ attr_reader :meta #: Hash[String, untyped]?
18
+
19
+ # @rbs compaction: Hash[String, untyped]?
20
+ # @rbs config_options: ACP::Types::SessionConfigOptionsCapabilities?
21
+ # @rbs notices: Hash[String, untyped]?
22
+ # @rbs meta: Hash[String, untyped]?
23
+ # @rbs return: void
24
+ def initialize(compaction: nil, config_options: nil, notices: nil, meta: nil)
25
+ @compaction = compaction
26
+ @config_options = config_options
27
+ @notices = notices
28
+ @meta = meta
29
+ freeze
30
+ end
31
+
32
+ # @rbs hash: Hash[String, untyped]
33
+ # @rbs return: ACP::Types::Unstable::ClientSessionCapabilities
34
+ def self.from_h(hash)
35
+ new(
36
+ compaction: hash['compaction'],
37
+ config_options: ACP::Types::Check.object(
38
+ hash['configOptions'],
39
+ 'configOptions',
40
+ ACP::Types::SessionConfigOptionsCapabilities,
41
+ allow_nil: true
42
+ ),
43
+ notices: hash['notices'],
44
+ meta: hash['_meta']
45
+ )
46
+ end
47
+
48
+ # @rbs return: Hash[String, untyped]
49
+ def to_h
50
+ {
51
+ 'compaction' => compaction,
52
+ 'configOptions' => config_options&.to_h,
53
+ 'notices' => notices,
54
+ '_meta' => meta
55
+ }.compact
56
+ end
57
+ end
@@ -0,0 +1,35 @@
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::CloseNesRequest
7
+ # @dynamic session_id
8
+ attr_reader :session_id #: String
9
+
10
+ # @dynamic meta
11
+ attr_reader :meta #: Hash[String, untyped]?
12
+
13
+ # @rbs session_id: String
14
+ # @rbs meta: Hash[String, untyped]?
15
+ # @rbs return: void
16
+ def initialize(session_id:, meta: nil)
17
+ @session_id = session_id
18
+ @meta = meta
19
+ freeze
20
+ end
21
+
22
+ # @rbs hash: Hash[String, untyped]
23
+ # @rbs return: ACP::Types::Unstable::CloseNesRequest
24
+ def self.from_h(hash)
25
+ new(
26
+ session_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'sessionId'), 'sessionId'),
27
+ meta: hash['_meta']
28
+ )
29
+ end
30
+
31
+ # @rbs return: Hash[String, untyped]
32
+ def to_h
33
+ { 'sessionId' => session_id, '_meta' => meta }.compact
34
+ end
35
+ end
@@ -0,0 +1,27 @@
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::CloseNesResponse
7
+ # @dynamic meta
8
+ attr_reader :meta #: Hash[String, untyped]?
9
+
10
+ # @rbs meta: Hash[String, untyped]?
11
+ # @rbs return: void
12
+ def initialize(meta: nil)
13
+ @meta = meta
14
+ freeze
15
+ end
16
+
17
+ # @rbs hash: Hash[String, untyped]
18
+ # @rbs return: ACP::Types::Unstable::CloseNesResponse
19
+ def self.from_h(hash)
20
+ new(meta: hash['_meta'])
21
+ end
22
+
23
+ # @rbs return: Hash[String, untyped]
24
+ def to_h
25
+ { '_meta' => meta }.compact
26
+ end
27
+ end
@@ -0,0 +1,11 @@
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
+ module ACP::Types::Unstable::CompactionStatus
7
+ IN_PROGRESS = 'in_progress'
8
+ COMPLETED = 'completed'
9
+ FAILED = 'failed'
10
+ CANCELLED = 'cancelled'
11
+ end
@@ -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::CompactionSummaryChunk
7
+ # @dynamic compaction_id
8
+ attr_reader :compaction_id #: String
9
+
10
+ # @dynamic content
11
+ attr_reader :content #: ACP::Types::ContentBlock::t
12
+
13
+ # @dynamic meta
14
+ attr_reader :meta #: Hash[String, untyped]?
15
+
16
+ # @rbs compaction_id: String
17
+ # @rbs content: ACP::Types::ContentBlock::t
18
+ # @rbs meta: Hash[String, untyped]?
19
+ # @rbs return: void
20
+ def initialize(compaction_id:, content:, meta: nil)
21
+ @compaction_id = compaction_id
22
+ @content = content
23
+ @meta = meta
24
+ freeze
25
+ end
26
+
27
+ # @rbs hash: Hash[String, untyped]
28
+ # @rbs return: ACP::Types::Unstable::CompactionSummaryChunk
29
+ def self.from_h(hash)
30
+ new(
31
+ compaction_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'compactionId'), 'compactionId'),
32
+ content: ACP::Types::Check.object(ACP::Types::Check.key(hash, 'content'), 'content', ACP::Types::ContentBlock),
33
+ meta: hash['_meta']
34
+ )
35
+ end
36
+
37
+ # @rbs return: Hash[String, untyped]
38
+ def to_h
39
+ { 'compactionId' => compaction_id, 'content' => content.to_h, '_meta' => meta }.compact
40
+ end
41
+ end