acp-sdk 0.9.0 → 0.11.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 (174) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +32 -0
  3. data/README.md +20 -8
  4. data/lib/acp/agent_connection/client.rb +31 -13
  5. data/lib/acp/agent_connection/optional_method/spec.rb +42 -0
  6. data/lib/acp/agent_connection/optional_method.rb +36 -0
  7. data/lib/acp/agent_connection.rb +67 -20
  8. data/lib/acp/agent_process.rb +0 -13
  9. data/lib/acp/client_connection/streams.rb +183 -0
  10. data/lib/acp/client_connection.rb +280 -338
  11. data/lib/acp/protocol.rb +33 -0
  12. data/lib/acp/request_error.rb +13 -13
  13. data/lib/acp/transport/cancellation.rb +13 -3
  14. data/lib/acp/transport/reply.rb +0 -2
  15. data/lib/acp/transport/stderr_logger.rb +1 -2
  16. data/lib/acp/transport/stdio.rb +25 -26
  17. data/lib/acp/types/audio_content.rb +3 -46
  18. data/lib/acp/types/auth_method_terminal.rb +3 -59
  19. data/lib/acp/types/available_commands_update.rb +3 -32
  20. data/lib/acp/types/boolean_property_schema.rb +3 -41
  21. data/lib/acp/types/check.rb +210 -0
  22. data/lib/acp/types/config_option_update.rb +3 -32
  23. data/lib/acp/types/content.rb +3 -29
  24. data/lib/acp/types/{elicitation_url_mode → create_elicitation_request/mode/form}/scope.rb +1 -1
  25. data/lib/acp/types/create_elicitation_request/mode/form.rb +3 -3
  26. data/lib/acp/types/{elicitation_form_mode → create_elicitation_request/mode/url}/scope.rb +1 -1
  27. data/lib/acp/types/create_elicitation_request/mode/url.rb +3 -3
  28. data/lib/acp/types/current_mode_update.rb +3 -29
  29. data/lib/acp/types/diff.rb +3 -41
  30. data/lib/acp/types/elicitation_accept_action.rb +3 -26
  31. data/lib/acp/types/elicitation_form_mode.rb +3 -33
  32. data/lib/acp/types/elicitation_url_mode.rb +3 -35
  33. data/lib/acp/types/embedded_resource.rb +3 -44
  34. data/lib/acp/types/image_content.rb +3 -58
  35. data/lib/acp/types/integer_property_schema.rb +3 -60
  36. data/lib/acp/types/mcp_server_http.rb +3 -44
  37. data/lib/acp/types/mcp_server_sse.rb +3 -44
  38. data/lib/acp/types/multi_select_property_schema.rb +3 -70
  39. data/lib/acp/types/number_property_schema.rb +3 -60
  40. data/lib/acp/types/parse_error.rb +37 -0
  41. data/lib/acp/types/plan.rb +3 -29
  42. data/lib/acp/types/resource_link.rb +3 -79
  43. data/lib/acp/types/selected_permission_outcome.rb +3 -26
  44. data/lib/acp/types/session_config_boolean.rb +3 -21
  45. data/lib/acp/types/session_config_select.rb +3 -33
  46. data/lib/acp/types/session_info_update.rb +3 -42
  47. data/lib/acp/types/string_multi_select_items.rb +3 -29
  48. data/lib/acp/types/string_property_schema.rb +3 -105
  49. data/lib/acp/types/terminal.rb +3 -29
  50. data/lib/acp/types/text_content.rb +3 -40
  51. data/lib/acp/types/tool_call.rb +3 -115
  52. data/lib/acp/types/unstable/compaction_summary_chunk.rb +3 -35
  53. data/lib/acp/types/unstable/compaction_update.rb +3 -56
  54. data/lib/acp/types/unstable/idle_state_update.rb +3 -40
  55. data/lib/acp/types/unstable/mcp_server_acp.rb +3 -35
  56. data/lib/acp/types/unstable/message_mcp_response/result.rb +1 -1
  57. data/lib/acp/types/unstable/nes_edit_suggestion.rb +3 -61
  58. data/lib/acp/types/unstable/nes_jump_suggestion.rb +3 -45
  59. data/lib/acp/types/unstable/nes_rename_suggestion.rb +3 -51
  60. data/lib/acp/types/unstable/nes_search_and_replace_suggestion.rb +3 -60
  61. data/lib/acp/types/unstable/notice.rb +3 -41
  62. data/lib/acp/types/unstable/plan_file.rb +3 -35
  63. data/lib/acp/types/unstable/plan_items.rb +3 -38
  64. data/lib/acp/types/unstable/plan_markdown.rb +3 -35
  65. data/lib/acp/types/unstable/plan_removed.rb +3 -26
  66. data/lib/acp/types/unstable/plan_update.rb +3 -33
  67. data/lib/acp/types/unstable/requires_action_state_update.rb +3 -21
  68. data/lib/acp/types/unstable/running_state_update.rb +3 -21
  69. data/lib/acp/types/unstable/session_message.rb +3 -56
  70. data/lib/acp/types/unstable/session_message_chunk.rb +3 -53
  71. data/lib/acp/types/unstable/subagent_update.rb +3 -65
  72. data/lib/acp/types/unstable/unknown_state_update.rb +3 -21
  73. data/lib/acp/types/unstable.rb +20 -20
  74. data/lib/acp/types/usage_update.rb +3 -41
  75. data/lib/acp/types.rb +7 -246
  76. data/lib/acp/version.rb +1 -1
  77. data/sig/generated/acp/agent_connection/client.rbs +25 -15
  78. data/sig/generated/acp/agent_connection/optional_method/spec.rbs +32 -0
  79. data/sig/generated/acp/agent_connection/optional_method.rbs +3 -0
  80. data/sig/generated/acp/agent_connection.rbs +34 -13
  81. data/sig/generated/acp/agent_process.rbs +0 -13
  82. data/sig/generated/acp/client_connection/streams.rbs +94 -0
  83. data/sig/generated/acp/client_connection.rbs +128 -131
  84. data/sig/generated/acp/protocol.rbs +9 -0
  85. data/sig/generated/acp/request_error.rbs +11 -13
  86. data/sig/generated/acp/transport/cancellation.rbs +9 -3
  87. data/sig/generated/acp/transport/reply.rbs +0 -2
  88. data/sig/generated/acp/transport/stderr_logger.rbs +1 -2
  89. data/sig/generated/acp/transport/stdio.rbs +14 -22
  90. data/sig/generated/acp/types/audio_content.rbs +1 -27
  91. data/sig/generated/acp/types/auth_method_terminal.rbs +1 -35
  92. data/sig/generated/acp/types/available_commands_update.rbs +1 -19
  93. data/sig/generated/acp/types/boolean_property_schema.rbs +1 -27
  94. data/sig/generated/acp/types/check.rbs +115 -0
  95. data/sig/generated/acp/types/config_option_update.rbs +1 -19
  96. data/sig/generated/acp/types/content.rbs +1 -19
  97. data/sig/generated/acp/types/{elicitation_url_mode → create_elicitation_request/mode/form}/scope.rbs +2 -2
  98. data/sig/generated/acp/types/create_elicitation_request/mode/form.rbs +3 -3
  99. data/sig/generated/acp/types/{elicitation_form_mode → create_elicitation_request/mode/url}/scope.rbs +2 -2
  100. data/sig/generated/acp/types/create_elicitation_request/mode/url.rbs +3 -3
  101. data/sig/generated/acp/types/current_mode_update.rbs +1 -19
  102. data/sig/generated/acp/types/diff.rbs +1 -27
  103. data/sig/generated/acp/types/elicitation_accept_action.rbs +1 -15
  104. data/sig/generated/acp/types/elicitation_form_mode.rbs +1 -19
  105. data/sig/generated/acp/types/elicitation_url_mode.rbs +1 -23
  106. data/sig/generated/acp/types/embedded_resource.rbs +1 -23
  107. data/sig/generated/acp/types/image_content.rbs +1 -31
  108. data/sig/generated/acp/types/integer_property_schema.rbs +1 -35
  109. data/sig/generated/acp/types/mcp_server_http.rbs +1 -27
  110. data/sig/generated/acp/types/mcp_server_sse.rbs +1 -27
  111. data/sig/generated/acp/types/multi_select_property_schema.rbs +1 -39
  112. data/sig/generated/acp/types/number_property_schema.rbs +1 -35
  113. data/sig/generated/acp/types/parse_error.rbs +22 -0
  114. data/sig/generated/acp/types/plan.rbs +1 -19
  115. data/sig/generated/acp/types/resource_link.rbs +1 -43
  116. data/sig/generated/acp/types/selected_permission_outcome.rbs +1 -19
  117. data/sig/generated/acp/types/session_config_boolean.rbs +1 -15
  118. data/sig/generated/acp/types/session_config_select.rbs +1 -19
  119. data/sig/generated/acp/types/session_info_update.rbs +1 -23
  120. data/sig/generated/acp/types/string_multi_select_items.rbs +1 -19
  121. data/sig/generated/acp/types/string_property_schema.rbs +1 -51
  122. data/sig/generated/acp/types/terminal.rbs +1 -19
  123. data/sig/generated/acp/types/text_content.rbs +1 -23
  124. data/sig/generated/acp/types/tool_call.rbs +1 -51
  125. data/sig/generated/acp/types/unstable/compaction_summary_chunk.rbs +1 -23
  126. data/sig/generated/acp/types/unstable/compaction_update.rbs +1 -31
  127. data/sig/generated/acp/types/unstable/idle_state_update.rbs +1 -23
  128. data/sig/generated/acp/types/unstable/mcp_server_acp.rbs +1 -23
  129. data/sig/generated/acp/types/unstable/nes_edit_suggestion.rbs +1 -31
  130. data/sig/generated/acp/types/unstable/nes_jump_suggestion.rbs +1 -27
  131. data/sig/generated/acp/types/unstable/nes_rename_suggestion.rbs +1 -31
  132. data/sig/generated/acp/types/unstable/nes_search_and_replace_suggestion.rbs +1 -35
  133. data/sig/generated/acp/types/unstable/notice.rbs +1 -27
  134. data/sig/generated/acp/types/unstable/plan_file.rbs +1 -23
  135. data/sig/generated/acp/types/unstable/plan_items.rbs +1 -23
  136. data/sig/generated/acp/types/unstable/plan_markdown.rbs +1 -23
  137. data/sig/generated/acp/types/unstable/plan_removed.rbs +1 -19
  138. data/sig/generated/acp/types/unstable/plan_update.rbs +1 -19
  139. data/sig/generated/acp/types/unstable/requires_action_state_update.rbs +1 -15
  140. data/sig/generated/acp/types/unstable/running_state_update.rbs +1 -15
  141. data/sig/generated/acp/types/unstable/session_message.rbs +1 -31
  142. data/sig/generated/acp/types/unstable/session_message_chunk.rbs +1 -31
  143. data/sig/generated/acp/types/unstable/subagent_update.rbs +1 -35
  144. data/sig/generated/acp/types/unstable/unknown_state_update.rbs +1 -15
  145. data/sig/generated/acp/types/usage_update.rbs +1 -27
  146. data/sig/generated/acp/types.rbs +6 -143
  147. data/sig/manual/acp/agent_connection.rbs +28 -28
  148. data/sig/manual/acp/client_connection.rbs +7 -2
  149. data/sig/manual/acp/{agent_connection/optional_method/logout.rbs → protocol.rbs} +3 -3
  150. data/sig/manual/acp/transport/stdio.rbs +0 -2
  151. data/sig/manual/acp/transport.rbs +25 -2
  152. metadata +17 -29
  153. data/lib/acp/agent_connection/optional_method/authenticate.rb +0 -21
  154. data/lib/acp/agent_connection/optional_method/close_session.rb +0 -21
  155. data/lib/acp/agent_connection/optional_method/delete_session.rb +0 -21
  156. data/lib/acp/agent_connection/optional_method/list_sessions.rb +0 -21
  157. data/lib/acp/agent_connection/optional_method/load_session.rb +0 -21
  158. data/lib/acp/agent_connection/optional_method/logout.rb +0 -21
  159. data/lib/acp/agent_connection/optional_method/resume_session.rb +0 -21
  160. data/lib/acp/types/content_chunk.rb +0 -40
  161. data/sig/generated/acp/agent_connection/optional_method/authenticate.rbs +0 -13
  162. data/sig/generated/acp/agent_connection/optional_method/close_session.rbs +0 -13
  163. data/sig/generated/acp/agent_connection/optional_method/delete_session.rbs +0 -13
  164. data/sig/generated/acp/agent_connection/optional_method/list_sessions.rbs +0 -13
  165. data/sig/generated/acp/agent_connection/optional_method/load_session.rbs +0 -13
  166. data/sig/generated/acp/agent_connection/optional_method/logout.rbs +0 -13
  167. data/sig/generated/acp/agent_connection/optional_method/resume_session.rbs +0 -13
  168. data/sig/generated/acp/types/content_chunk.rbs +0 -25
  169. data/sig/manual/acp/agent_connection/optional_method/authenticate.rbs +0 -6
  170. data/sig/manual/acp/agent_connection/optional_method/close_session.rbs +0 -6
  171. data/sig/manual/acp/agent_connection/optional_method/delete_session.rbs +0 -6
  172. data/sig/manual/acp/agent_connection/optional_method/list_sessions.rbs +0 -6
  173. data/sig/manual/acp/agent_connection/optional_method/load_session.rbs +0 -6
  174. data/sig/manual/acp/agent_connection/optional_method/resume_session.rbs +0 -6
@@ -1,7 +1,7 @@
1
1
  # Generated from lib/acp/client_connection.rb with RBS::Inline
2
2
 
3
3
  class ACP::ClientConnection
4
- @transport: ACP::AgentConnection::_Transport
4
+ @transport: ACP::Transport::_Transport
5
5
 
6
6
  @permission: ACP::ClientConnection::_PermissionHandler
7
7
 
@@ -21,9 +21,9 @@ class ACP::ClientConnection
21
21
 
22
22
  @elicitation: (^(ACP::Types::CreateElicitationRequest) -> (ACP::Types::CreateElicitationResponse | ACP::RequestError))?
23
23
 
24
- @complete_elicitation: (^(ACP::Types::CompleteElicitationNotification) -> void)?
24
+ @mcp_message: (^(ACP::Types::Unstable::MessageMcpRequest) -> (ACP::Types::Unstable::MessageMcpResponse::t | ACP::RequestError))?
25
25
 
26
- @updates: ACP::ClientConnection::_UpdateHandler
26
+ @mcp_advertised: bool?
27
27
 
28
28
  @fs_capabilities: ACP::Types::FileSystemCapabilities?
29
29
 
@@ -35,23 +35,68 @@ class ACP::ClientConnection
35
35
 
36
36
  @extension_notifications: Hash[String, ^(untyped) -> void]
37
37
 
38
- @lock: Thread::Mutex
38
+ @streams: ACP::ClientConnection::Streams
39
39
 
40
- @streams: Hash[String, Thread::Queue]
40
+ @logger: ACP::Transport::_Logger
41
41
 
42
- @pending_permissions: Hash[String, Array[Thread::Queue]]
42
+ IGNORE: ^(ACP::Types::SessionNotification) -> void
43
43
 
44
- @outstanding_elicitations: Hash[String, bool]
44
+ class Route
45
+ @label: String
45
46
 
46
- @logger: ACP::Transport::_Logger
47
+ @key: String
47
48
 
48
- PROTOCOL_VERSION: Integer
49
+ @refuse: Symbol
49
50
 
50
- IGNORE: ^(ACP::Types::SessionNotification) -> void
51
+ @advertised: ^(untyped) -> (bool | nil)
52
+
53
+ @family: Symbol
54
+
55
+ @handler: Symbol
56
+
57
+ @type: ACP::Transport::_Parser
58
+
59
+ @wire: String
60
+
61
+ # @rbs wire: String
62
+ # @rbs type: ACP::Transport::_Parser
63
+ # @rbs handler: Symbol
64
+ # @rbs family: Symbol
65
+ # @rbs key: String
66
+ # @rbs advertised: ^(untyped) -> (bool | nil)
67
+ # @rbs refuse: Symbol
68
+ # @rbs label: String?
69
+ # @rbs return: void
70
+ def initialize: (wire: String, type: ACP::Transport::_Parser, handler: Symbol, family: Symbol, key: String, ?advertised: ^(untyped) -> (bool | nil), ?refuse: Symbol, ?label: String?) -> void
51
71
 
52
- CANCELLED: ACP::Types::RequestPermissionResponse
72
+ # @dynamic wire, type, handler, family, advertised, refuse, key, label
73
+ attr_reader wire: String
74
+
75
+ attr_reader type: ACP::Transport::_Parser
76
+
77
+ attr_reader handler: Symbol
78
+
79
+ attr_reader family: Symbol
80
+
81
+ attr_reader advertised: ^(untyped) -> (bool | nil)
82
+
83
+ attr_reader refuse: Symbol
84
+
85
+ attr_reader key: String
86
+
87
+ attr_reader label: String
88
+ end
89
+
90
+ # The routes are registered at start, before connect records the
91
+ # advertisement, so each one answers its refusal until then. The terminal
92
+ # capability is a single bool, so its five routes share one gate.
93
+ #
94
+ # The terminal handlers may block for as long as the command runs, so the
95
+ # transport must serve each request on its own thread for this not to hold
96
+ # up others.
97
+ SERVE: Array[ACP::ClientConnection::Route]
53
98
 
54
- # @rbs transport: ACP::AgentConnection::_Transport
99
+ # @rbs transport: ACP::Transport::_Transport
55
100
  # @rbs permission: ACP::ClientConnection::_PermissionHandler
56
101
  # @rbs read_text_file: (^(ACP::Types::ReadTextFileRequest) -> (ACP::Types::ReadTextFileResponse | ACP::RequestError))?
57
102
  # @rbs write_text_file: (^(ACP::Types::WriteTextFileRequest) -> (ACP::Types::WriteTextFileResponse | ACP::RequestError))?
@@ -65,11 +110,14 @@ class ACP::ClientConnection
65
110
  # (ACP::Types::CreateElicitationResponse | ACP::RequestError))?
66
111
  # @rbs complete_elicitation: (^(ACP::Types::CompleteElicitationNotification) -> void)?
67
112
  # @rbs updates: ACP::ClientConnection::_UpdateHandler
113
+ # @rbs mcp_message: (^(ACP::Types::Unstable::MessageMcpRequest) ->
114
+ # (ACP::Types::Unstable::MessageMcpResponse::t | ACP::RequestError))?
68
115
  # @rbs extension_requests: Hash[String, ^(untyped) -> untyped]
69
116
  # @rbs extension_notifications: Hash[String, ^(untyped) -> void]
117
+ # @rbs streams: ACP::ClientConnection::Streams?
70
118
  # @rbs logger: ACP::Transport::_Logger
71
119
  # @rbs return: void
72
- def initialize: (transport: ACP::AgentConnection::_Transport, permission: ACP::ClientConnection::_PermissionHandler, ?read_text_file: (^(ACP::Types::ReadTextFileRequest) -> (ACP::Types::ReadTextFileResponse | ACP::RequestError))?, ?write_text_file: (^(ACP::Types::WriteTextFileRequest) -> (ACP::Types::WriteTextFileResponse | ACP::RequestError))?, ?create_terminal: (^(ACP::Types::CreateTerminalRequest) -> (ACP::Types::CreateTerminalResponse | ACP::RequestError))?, ?terminal_output: (^(ACP::Types::TerminalOutputRequest) -> (ACP::Types::TerminalOutputResponse | ACP::RequestError))?, ?wait_for_terminal_exit: (^(ACP::Types::WaitForTerminalExitRequest) -> (ACP::Types::WaitForTerminalExitResponse | ACP::RequestError))?, ?kill_terminal: (^(ACP::Types::KillTerminalRequest) -> (ACP::Types::KillTerminalResponse | ACP::RequestError))?, ?release_terminal: (^(ACP::Types::ReleaseTerminalRequest) -> (ACP::Types::ReleaseTerminalResponse | ACP::RequestError))?, ?elicitation: (^(ACP::Types::CreateElicitationRequest) -> (ACP::Types::CreateElicitationResponse | ACP::RequestError))?, ?complete_elicitation: (^(ACP::Types::CompleteElicitationNotification) -> void)?, ?updates: ACP::ClientConnection::_UpdateHandler, ?extension_requests: Hash[String, ^(untyped) -> untyped], ?extension_notifications: Hash[String, ^(untyped) -> void], ?logger: ACP::Transport::_Logger) -> void
120
+ def initialize: (transport: ACP::Transport::_Transport, permission: ACP::ClientConnection::_PermissionHandler, ?read_text_file: (^(ACP::Types::ReadTextFileRequest) -> (ACP::Types::ReadTextFileResponse | ACP::RequestError))?, ?write_text_file: (^(ACP::Types::WriteTextFileRequest) -> (ACP::Types::WriteTextFileResponse | ACP::RequestError))?, ?create_terminal: (^(ACP::Types::CreateTerminalRequest) -> (ACP::Types::CreateTerminalResponse | ACP::RequestError))?, ?terminal_output: (^(ACP::Types::TerminalOutputRequest) -> (ACP::Types::TerminalOutputResponse | ACP::RequestError))?, ?wait_for_terminal_exit: (^(ACP::Types::WaitForTerminalExitRequest) -> (ACP::Types::WaitForTerminalExitResponse | ACP::RequestError))?, ?kill_terminal: (^(ACP::Types::KillTerminalRequest) -> (ACP::Types::KillTerminalResponse | ACP::RequestError))?, ?release_terminal: (^(ACP::Types::ReleaseTerminalRequest) -> (ACP::Types::ReleaseTerminalResponse | ACP::RequestError))?, ?elicitation: (^(ACP::Types::CreateElicitationRequest) -> (ACP::Types::CreateElicitationResponse | ACP::RequestError))?, ?complete_elicitation: (^(ACP::Types::CompleteElicitationNotification) -> void)?, ?updates: ACP::ClientConnection::_UpdateHandler, ?mcp_message: (^(ACP::Types::Unstable::MessageMcpRequest) -> (ACP::Types::Unstable::MessageMcpResponse::t | ACP::RequestError))?, ?extension_requests: Hash[String, ^(untyped) -> untyped], ?extension_notifications: Hash[String, ^(untyped) -> void], ?streams: ACP::ClientConnection::Streams?, ?logger: ACP::Transport::_Logger) -> void
73
121
 
74
122
  # @rbs return: Thread
75
123
  def start: () -> Thread
@@ -83,56 +131,74 @@ class ACP::ClientConnection
83
131
 
84
132
  # @rbs request: ACP::Types::NewSessionRequest
85
133
  # @rbs return: ACP::Types::NewSessionResponse | ACP::RequestError
86
- def session_new: (ACP::Types::NewSessionRequest request) -> (ACP::Types::NewSessionResponse | ACP::RequestError)
134
+ def new_session: (ACP::Types::NewSessionRequest request) -> (ACP::Types::NewSessionResponse | ACP::RequestError)
87
135
 
88
136
  # @rbs request: ACP::Types::PromptRequest
89
137
  # @rbs &block: (ACP::Types::SessionUpdate::t) -> void
90
138
  # @rbs return: ACP::Types::PromptResponse | ACP::RequestError
91
- def session_prompt: (ACP::Types::PromptRequest request) { (ACP::Types::SessionUpdate::t) -> void } -> (ACP::Types::PromptResponse | ACP::RequestError)
139
+ def prompt_session: (ACP::Types::PromptRequest request) { (ACP::Types::SessionUpdate::t) -> void } -> (ACP::Types::PromptResponse | ACP::RequestError)
92
140
 
93
141
  # @rbs request: ACP::Types::LoadSessionRequest
94
142
  # @rbs &block: (ACP::Types::SessionUpdate::t) -> void
95
143
  # @rbs return: ACP::Types::LoadSessionResponse | ACP::RequestError
96
- def session_load: (ACP::Types::LoadSessionRequest request) { (ACP::Types::SessionUpdate::t) -> void } -> (ACP::Types::LoadSessionResponse | ACP::RequestError)
144
+ def load_session: (ACP::Types::LoadSessionRequest request) { (ACP::Types::SessionUpdate::t) -> void } -> (ACP::Types::LoadSessionResponse | ACP::RequestError)
97
145
 
98
146
  # @rbs request: ACP::Types::ListSessionsRequest
99
147
  # @rbs return: ACP::Types::ListSessionsResponse | ACP::RequestError
100
- def session_list: (ACP::Types::ListSessionsRequest request) -> (ACP::Types::ListSessionsResponse | ACP::RequestError)
148
+ def list_sessions: (ACP::Types::ListSessionsRequest request) -> (ACP::Types::ListSessionsResponse | ACP::RequestError)
101
149
 
102
- # The agent does not replay history on resume, so unlike session_load there
150
+ # The agent does not replay history on resume, so unlike load_session there
103
151
  # is nothing to stream and no block is taken.
104
152
  #
105
153
  # @rbs request: ACP::Types::ResumeSessionRequest
106
154
  # @rbs return: ACP::Types::ResumeSessionResponse | ACP::RequestError
107
- def session_resume: (ACP::Types::ResumeSessionRequest request) -> (ACP::Types::ResumeSessionResponse | ACP::RequestError)
155
+ def resume_session: (ACP::Types::ResumeSessionRequest request) -> (ACP::Types::ResumeSessionResponse | ACP::RequestError)
108
156
 
109
157
  # @rbs request: ACP::Types::CloseSessionRequest
110
158
  # @rbs return: ACP::Types::CloseSessionResponse | ACP::RequestError
111
- def session_close: (ACP::Types::CloseSessionRequest request) -> (ACP::Types::CloseSessionResponse | ACP::RequestError)
159
+ def close_session: (ACP::Types::CloseSessionRequest request) -> (ACP::Types::CloseSessionResponse | ACP::RequestError)
112
160
 
113
161
  # @rbs request: ACP::Types::DeleteSessionRequest
114
162
  # @rbs return: ACP::Types::DeleteSessionResponse | ACP::RequestError
115
- def session_delete: (ACP::Types::DeleteSessionRequest request) -> (ACP::Types::DeleteSessionResponse | ACP::RequestError)
163
+ def delete_session: (ACP::Types::DeleteSessionRequest request) -> (ACP::Types::DeleteSessionResponse | ACP::RequestError)
164
+
165
+ # @rbs request: ACP::Types::Unstable::ForkSessionRequest
166
+ # @rbs return: (ACP::Types::Unstable::ForkSessionResponse | ACP::RequestError)
167
+ def fork_session: (ACP::Types::Unstable::ForkSessionRequest request) -> (ACP::Types::Unstable::ForkSessionResponse | ACP::RequestError)
168
+
169
+ # @rbs request: ACP::Types::Unstable::ListProvidersRequest
170
+ # @rbs return: (ACP::Types::Unstable::ListProvidersResponse | ACP::RequestError)
171
+ def list_providers: (ACP::Types::Unstable::ListProvidersRequest request) -> (ACP::Types::Unstable::ListProvidersResponse | ACP::RequestError)
172
+
173
+ # @rbs request: ACP::Types::Unstable::SetProviderRequest
174
+ # @rbs return: (ACP::Types::Unstable::SetProviderResponse | ACP::RequestError)
175
+ # The name is the wire-mandated providers/set, not an attribute writer.
176
+ def set_provider: (ACP::Types::Unstable::SetProviderRequest request) -> (ACP::Types::Unstable::SetProviderResponse | ACP::RequestError)
177
+
178
+ # @rbs request: ACP::Types::Unstable::DisableProviderRequest
179
+ # @rbs return: (ACP::Types::Unstable::DisableProviderResponse | ACP::RequestError)
180
+ def disable_provider: (ACP::Types::Unstable::DisableProviderRequest request) -> (ACP::Types::Unstable::DisableProviderResponse | ACP::RequestError)
116
181
 
117
182
  # The spec requires a pending session/request_permission to be answered with
118
- # the cancelled outcome once the turn is cancelled, so every queue registered
119
- # for the session gets one before this returns. The notification goes first
120
- # so the wire order is cancel, then the cancelled replies.
183
+ # the cancelled outcome once the turn is cancelled. The notification goes
184
+ # first so the wire order is cancel, then the cancelled replies.
121
185
  #
122
186
  # @rbs notification: ACP::Types::CancelNotification
123
187
  # @rbs return: void
124
- def session_cancel: (ACP::Types::CancelNotification notification) -> void
188
+ def cancel_session: (ACP::Types::CancelNotification notification) -> void
125
189
 
126
190
  # @rbs request: ACP::Types::SetSessionModeRequest
127
191
  # @rbs return: ACP::Types::SetSessionModeResponse | ACP::RequestError
128
- def session_set_mode: (ACP::Types::SetSessionModeRequest request) -> (ACP::Types::SetSessionModeResponse | ACP::RequestError)
192
+ # The name is the wire-mandated session/set_mode, not an attribute writer.
193
+ def set_session_mode: (ACP::Types::SetSessionModeRequest request) -> (ACP::Types::SetSessionModeResponse | ACP::RequestError)
129
194
 
130
195
  # The reply carries the session's complete option list, so it replaces any
131
196
  # state held from an earlier reply rather than merging into it.
132
197
  #
133
198
  # @rbs request: ACP::Types::SetSessionConfigOptionRequest
134
199
  # @rbs return: ACP::Types::SetSessionConfigOptionResponse | ACP::RequestError
135
- def session_set_config_option: (ACP::Types::SetSessionConfigOptionRequest request) -> (ACP::Types::SetSessionConfigOptionResponse | ACP::RequestError)
200
+ # The name is the wire-mandated session/set_config_option, not an attribute writer.
201
+ def set_session_config_option: (ACP::Types::SetSessionConfigOptionRequest request) -> (ACP::Types::SetSessionConfigOptionResponse | ACP::RequestError)
136
202
 
137
203
  # @rbs request: ACP::Types::AuthenticateRequest
138
204
  # @rbs return: ACP::Types::AuthenticateResponse | ACP::RequestError
@@ -142,137 +208,68 @@ class ACP::ClientConnection
142
208
  # @rbs return: ACP::Types::LogoutResponse | ACP::RequestError
143
209
  def logout: (ACP::Types::LogoutRequest request) -> (ACP::Types::LogoutResponse | ACP::RequestError)
144
210
 
145
- # Sends an extension request, keyed by its raw `_`-prefixed wire name, and
146
- # returns the agent's reply as-is: extension methods have no schema to
147
- # parse the result into.
211
+ # Extension methods have no schema to parse the result into.
148
212
  #
149
213
  # @rbs method: String
150
214
  # @rbs params: untyped
151
215
  # @rbs return: (Hash[String, untyped] | ACP::RequestError)
152
216
  def ext_request: (String method, ?untyped params) -> (Hash[String, untyped] | ACP::RequestError)
153
217
 
154
- # @rbs method: String
155
- # @rbs params: untyped
156
- # @rbs return: void
157
- def ext_notify: (String method, ?untyped params) -> void
158
-
159
- private
160
-
161
- # @rbs type: ACP::AgentConnection::_Parser
162
- # @rbs result: (Hash[String, untyped] | ACP::RequestError)
163
- # @rbs return: untyped
164
- def parse: (ACP::AgentConnection::_Parser type, Hash[String, untyped] | ACP::RequestError result) -> untyped
165
-
166
- # The request waits on its own thread so the caller's thread can yield each
167
- # update as it arrives. The reader thread queues an update before it settles
168
- # a reply sent after it, so the queue closes only after the last one.
218
+ # Always false off a handler thread.
169
219
  #
170
- # @rbs session_id: String
171
- # @rbs method: String
172
- # @rbs params: Hash[String, untyped]
173
- # @rbs &block: (ACP::Types::SessionUpdate::t) -> void
174
- # @rbs return: (Hash[String, untyped] | ACP::RequestError)
175
- def stream: (String session_id, String method, Hash[String, untyped] params) { (ACP::Types::SessionUpdate::t) -> void } -> (Hash[String, untyped] | ACP::RequestError)
220
+ # @rbs return: bool
221
+ def cancelled?: () -> bool
176
222
 
177
- # Pushes under the lock so a stream cannot close its queue between the
178
- # lookup and the push. A malformed notification has no reply to carry the
179
- # failure.
180
- #
223
+ # @rbs method: String
181
224
  # @rbs params: untyped
182
225
  # @rbs return: void
183
- def dispatch: (untyped params) -> void
226
+ def ext_notify: (String method, ?untyped params) -> void
184
227
 
185
- # The handler runs on its own thread so a cancelled request is answered
186
- # without waiting for it, and whatever it returns after that is pushed to a
187
- # queue nobody reads.
228
+ # Unlike the mcp/message serve route, this send is not gated: a notification
229
+ # has no reply to carry a refusal, and the agent drops what it did not
230
+ # advertise.
188
231
  #
189
- # @rbs params: untyped
190
- # @rbs return: (ACP::Types::RequestPermissionResponse | ACP::RequestError)
191
- def request_permission: (untyped params) -> (ACP::Types::RequestPermissionResponse | ACP::RequestError)
192
-
193
- # @rbs session_id: String
194
- # @rbs replies: Thread::Queue
232
+ # @rbs notification: ACP::Types::Unstable::MessageMcpNotification
195
233
  # @rbs return: void
196
- def register_permission: (String session_id, Thread::Queue replies) -> void
234
+ def mcp_message_notification: (ACP::Types::Unstable::MessageMcpNotification notification) -> void
197
235
 
198
- # @rbs session_id: String
199
- # @rbs replies: Thread::Queue
200
- # @rbs return: void
201
- def unregister_permission: (String session_id, Thread::Queue replies) -> void
202
-
203
- # The routes are registered at start, before connect records the advertised
204
- # capabilities, so each one answers -32601 until then.
205
- #
206
- # @rbs params: untyped
207
- # @rbs return: (ACP::Types::ReadTextFileResponse | ACP::RequestError)
208
- def read_text_file: (untyped params) -> (ACP::Types::ReadTextFileResponse | ACP::RequestError)
236
+ private
209
237
 
210
- # @rbs params: untyped
211
- # @rbs return: (ACP::Types::WriteTextFileResponse | ACP::RequestError)
212
- def write_text_file: (untyped params) -> (ACP::Types::WriteTextFileResponse | ACP::RequestError)
238
+ # @rbs route: ACP::ClientConnection::Route
239
+ # @rbs return: ^(untyped) -> (untyped | ACP::RequestError)
240
+ def serve: (ACP::ClientConnection::Route route) -> ^(untyped) -> (untyped | ACP::RequestError)
213
241
 
214
- # The terminal routes are registered at start, before connect records the
215
- # advertised capability, so each one answers -32601 until then.
216
- #
217
- # @rbs params: untyped
218
- # @rbs return: (ACP::Types::CreateTerminalResponse | ACP::RequestError)
219
- def create_terminal: (untyped params) -> (ACP::Types::CreateTerminalResponse | ACP::RequestError)
242
+ # @rbs route: ACP::ClientConnection::Route
243
+ # @rbs return: ACP::RequestError
244
+ def refuse: (ACP::ClientConnection::Route route) -> ACP::RequestError
220
245
 
221
- # @rbs params: untyped
222
- # @rbs return: (ACP::Types::TerminalOutputResponse | ACP::RequestError)
223
- def terminal_output: (untyped params) -> (ACP::Types::TerminalOutputResponse | ACP::RequestError)
246
+ # @rbs name: String
247
+ # @rbs family: Symbol
248
+ # @rbs capabilities: untyped
249
+ # @rbs return: void
250
+ def check_served: (String name, Symbol family, untyped capabilities) -> void
224
251
 
225
- # The handler may block for as long as the command runs, so the transport
226
- # must serve each request on its own thread for this not to hold up others.
252
+ # The unstable types are referenced while the row is built, so the route can
253
+ # only be served when the caller opted in with `require 'acp/types/unstable'`.
254
+ # It is registered only when a handler serves it: unlike the fs and terminal
255
+ # gates, the mcp gate reads the agent's advertisement, so nothing forces an
256
+ # advertised request to have a handler.
227
257
  #
228
- # @rbs params: untyped
229
- # @rbs return: (ACP::Types::WaitForTerminalExitResponse | ACP::RequestError)
230
- def wait_for_terminal_exit: (untyped params) -> (ACP::Types::WaitForTerminalExitResponse | ACP::RequestError)
231
-
232
- # @rbs params: untyped
233
- # @rbs return: (ACP::Types::KillTerminalResponse | ACP::RequestError)
234
- def kill_terminal: (untyped params) -> (ACP::Types::KillTerminalResponse | ACP::RequestError)
258
+ # @rbs return: Hash[String, ^(untyped) -> (untyped | ACP::RequestError)]
259
+ def mcp_requests: () -> Hash[String, ^(untyped) -> (untyped | ACP::RequestError)]
235
260
 
236
- # @rbs params: untyped
237
- # @rbs return: (ACP::Types::ReleaseTerminalResponse | ACP::RequestError)
238
- def release_terminal: (untyped params) -> (ACP::Types::ReleaseTerminalResponse | ACP::RequestError)
261
+ # @rbs type: ACP::Transport::_Parser
262
+ # @rbs result: (Hash[String, untyped] | ACP::RequestError)
263
+ # @rbs return: untyped
264
+ def parse: (ACP::Transport::_Parser type, Hash[String, untyped] | ACP::RequestError result) -> untyped
239
265
 
240
- # The routes are registered at start, before connect records the advertised
266
+ # The route is registered at start, before connect records the advertised
241
267
  # capabilities, so a request for an unadvertised mode answers -32602.
242
268
  #
243
269
  # @rbs params: untyped
244
270
  # @rbs return: (ACP::Types::CreateElicitationResponse | ACP::RequestError)
245
271
  def create_elicitation: (untyped params) -> (ACP::Types::CreateElicitationResponse | ACP::RequestError)
246
272
 
247
- # The spec requires a completion for an unknown or already-completed
248
- # elicitation id to be ignored, so only an id registered by a served
249
- # url-mode request reaches the handler. It runs on the transport's reader
250
- # thread, so it must return quickly.
251
- #
252
- # @rbs params: untyped
253
- # @rbs return: void
254
- def complete_elicitation: (untyped params) -> void
255
-
256
- # @rbs elicitation_id: String
257
- # @rbs return: void
258
- def register_elicitation: (String elicitation_id) -> void
259
-
260
- # The fs capabilities initialize advertises that no injected handler serves.
261
- #
262
- # @rbs capabilities: ACP::Types::FileSystemCapabilities?
263
- # @rbs return: Array[String]
264
- def unserved_fs_methods: (ACP::Types::FileSystemCapabilities? capabilities) -> Array[String]
265
-
266
- # The terminal capabilities initialize advertises that no injected handler
267
- # serves.
268
- #
269
- # @rbs capabilities: bool?
270
- # @rbs return: Array[String]
271
- def unserved_terminal_methods: (bool? capabilities) -> Array[String]
272
-
273
- # The elicitation capabilities initialize advertises that no injected
274
- # handler serves.
275
- #
276
273
  # @rbs capabilities: ACP::Types::ElicitationCapabilities?
277
274
  # @rbs return: Array[String]
278
275
  def unserved_elicitation_modes: (ACP::Types::ElicitationCapabilities? capabilities) -> Array[String]
@@ -0,0 +1,9 @@
1
+ # Generated from lib/acp/protocol.rb with RBS::Inline
2
+
3
+ module ACP::Protocol
4
+ PROTOCOL_VERSION: Integer
5
+
6
+ # @rbs capabilities: (ACP::Types::AgentCapabilities | ACP::Types::Unstable::AgentCapabilities | Hash[String, untyped])
7
+ # @rbs return: bool
8
+ def mcp_acp_advertised?: (ACP::Types::AgentCapabilities | ACP::Types::Unstable::AgentCapabilities | Hash[String, untyped] capabilities) -> bool
9
+ end
@@ -1,8 +1,6 @@
1
1
  # Generated from lib/acp/request_error.rb with RBS::Inline
2
2
 
3
- # The schema's JSON-RPC Error object, named after the official SDKs'
4
- # RequestError: built by handlers and local refusals, and decoded from a
5
- # peer's error replies by the transport.
3
+ # Named after the official SDKs' RequestError rather than the schema's Error.
6
4
  class ACP::RequestError
7
5
  PARSE_ERROR: Integer
8
6
 
@@ -52,24 +50,25 @@ class ACP::RequestError
52
50
  # @rbs return: ACP::RequestError
53
51
  def self.invalid_params: (?Array[String]? errors) -> ACP::RequestError
54
52
 
55
- # The method-not-found code for a method the client's capabilities do not
56
- # advertise, with a message that names the capability so it can be told
57
- # apart from an unknown method.
53
+ # The message names the capability so the refusal can be told apart from an
54
+ # unknown method, though both use the -32601 code.
58
55
  #
59
56
  # @rbs capability: String
60
57
  # @rbs return: ACP::RequestError
61
58
  def self.unadvertised: (String capability) -> ACP::RequestError
62
59
 
63
- # The invalid-params code for a request whose mode the client's
64
- # capabilities do not advertise, with a message that names the mode so it
65
- # can be told apart from malformed params. The spec gives elicitation a
66
- # mode in its params, so an unadvertised one is invalid params rather than
67
- # method not found.
60
+ # The message names the mode so the refusal can be told apart from malformed
61
+ # params. The spec gives elicitation a mode in its params, so an unadvertised
62
+ # one is invalid params rather than method not found.
68
63
  #
69
64
  # @rbs mode: String
70
65
  # @rbs return: ACP::RequestError
71
66
  def self.unadvertised_mode: (String mode) -> ACP::RequestError
72
67
 
68
+ # @rbs capability: String
69
+ # @rbs return: ACP::RequestError
70
+ def self.unadvertised_agent: (String capability) -> ACP::RequestError
71
+
73
72
  # @rbs return: ACP::RequestError
74
73
  def self.internal_error: () -> ACP::RequestError
75
74
 
@@ -80,8 +79,7 @@ class ACP::RequestError
80
79
  # @rbs return: ACP::RequestError
81
80
  def self.invalid_response: (untyped response) -> ACP::RequestError
82
81
 
83
- # A local refusal of an initialize reply that names a version the SDK does
84
- # not speak; the message names both versions so logs can tell it from a
82
+ # The message names both versions so logs can tell this local refusal from a
85
83
  # peer's error.
86
84
  #
87
85
  # @rbs requested: Integer
@@ -1,9 +1,15 @@
1
1
  # Generated from lib/acp/transport/cancellation.rb with RBS::Inline
2
2
 
3
- # Whether the peer cancelled one request. The transport creates one per served
4
- # request, marks it when the peer's $/cancel_request arrives, and hands it to
5
- # the serving thread, whose handler can observe it and end the request early.
6
3
  class ACP::Transport::Cancellation
4
+ KEY: Symbol
5
+
6
+ # @rbs return: ACP::Transport::Cancellation?
7
+ def self.current: () -> ACP::Transport::Cancellation?
8
+
9
+ # @rbs cancellation: ACP::Transport::Cancellation?
10
+ # @rbs return: void
11
+ def self.current=: (ACP::Transport::Cancellation? cancellation) -> void
12
+
7
13
  @lock: Thread::Mutex
8
14
 
9
15
  @cancelled: bool
@@ -1,7 +1,5 @@
1
1
  # Generated from lib/acp/transport/reply.rb with RBS::Inline
2
2
 
3
- # A request handler's outcome plus a callback the transport runs once that
4
- # outcome is on the wire, for messages the peer must only see after the reply.
5
3
  class ACP::Transport::Reply
6
4
  # @dynamic result
7
5
  attr_reader result: ACP::Transport::Stdio::_ToH
@@ -1,7 +1,6 @@
1
1
  # Generated from lib/acp/transport/stderr_logger.rb with RBS::Inline
2
2
 
3
- # The default sink for dropped messages and swallowed errors: the spec
4
- # sanctions agents logging to stderr.
3
+ # The spec sanctions agents logging to stderr.
5
4
  class ACP::Transport::StderrLogger
6
5
  # @rbs message: String
7
6
  # @rbs return: void
@@ -1,10 +1,9 @@
1
1
  # Generated from lib/acp/transport/stdio.rb with RBS::Inline
2
2
 
3
- # JSON-RPC 2.0 over newline-delimited JSON on an IO pair. A reader thread
4
- # dispatches inbound messages while outbound requests are pending, and each
5
- # inbound request is served on its own thread, so a handler can make an
6
- # outbound request mid-turn and still see notifications (e.g. session/cancel)
7
- # that arrive meanwhile.
3
+ # A reader thread dispatches inbound messages while outbound requests are
4
+ # pending, and each inbound request is served on its own thread, so a handler
5
+ # can make an outbound request mid-turn and still see notifications (e.g.
6
+ # session/cancel) that arrive meanwhile.
8
7
  class ACP::Transport::Stdio
9
8
  @logger: ACP::Transport::_Logger
10
9
 
@@ -26,17 +25,12 @@ class ACP::Transport::Stdio
26
25
 
27
26
  CONNECTION_CLOSED: ACP::RequestError
28
27
 
29
- SERVING_CANCEL: Symbol
30
-
31
28
  # @rbs input: _Reader
32
29
  # @rbs output: _Writer
33
30
  # @rbs logger: ACP::Transport::_Logger
34
31
  # @rbs return: void
35
32
  def initialize: (input: _Reader, output: _Writer, ?logger: ACP::Transport::_Logger) -> void
36
33
 
37
- # Returns the reader thread, which ends at EOF on input after releasing any
38
- # pending outbound requests.
39
- #
40
34
  # @rbs requests: Hash[String, _Handler]
41
35
  # @rbs notifications: Hash[String, _NotificationHandler]
42
36
  # @rbs return: Thread
@@ -44,8 +38,8 @@ class ACP::Transport::Stdio
44
38
 
45
39
  # @rbs method: String
46
40
  # @rbs params: untyped
47
- # @rbs return: (Hash[String, untyped] | ACP::RequestError)
48
- def request: (String method, ?untyped params) -> (Hash[String, untyped] | ACP::RequestError)
41
+ # @rbs return: untyped
42
+ def request: (String method, ?untyped params) -> untyped
49
43
 
50
44
  # @rbs method: String
51
45
  # @rbs params: untyped
@@ -59,11 +53,12 @@ class ACP::Transport::Stdio
59
53
  # @rbs return: void
60
54
  def cancel: (untyped id) -> void
61
55
 
62
- # The cancellation of the request the calling thread is serving, or nil off
63
- # a serve thread. A handler observes the peer's $/cancel_request through it
64
- # and can end early with ACP::RequestError.request_cancelled; whatever it
65
- # returns, the transport sends exactly one response.
56
+ # Each id is re-checked against the pending table, so one that settled
57
+ # between the snapshot and its cancel is not cancelled.
66
58
  #
59
+ # @rbs return: void
60
+ def cancel_requests: () -> void
61
+
67
62
  # @rbs return: ACP::Transport::Cancellation?
68
63
  def cancellation: () -> ACP::Transport::Cancellation?
69
64
 
@@ -138,9 +133,6 @@ class ACP::Transport::Stdio
138
133
  # @rbs return: (_ToH | ACP::RequestError | ACP::Transport::Reply)
139
134
  def invoke: (_Handler handler, untyped params) -> (_ToH | ACP::RequestError | ACP::Transport::Reply)
140
135
 
141
- # The success arm is whatever the handler returned, which the transport only
142
- # knows serializes with to_h; RequestError picks the error arm of the reply.
143
- #
144
136
  # @rbs id: untyped
145
137
  # @rbs outcome: (_ToH | ACP::RequestError)
146
138
  # @rbs return: void
@@ -151,9 +143,9 @@ class ACP::Transport::Stdio
151
143
  def register: (Thread::Queue queue) -> Integer?
152
144
 
153
145
  # @rbs id: untyped
154
- # @rbs result: (Hash[String, untyped] | ACP::RequestError)
155
- # @rbs return: void
156
- def settle: (untyped id, Hash[String, untyped] | ACP::RequestError result) -> void
146
+ # @rbs result: untyped
147
+ # @rbs return: Thread::Queue?
148
+ def settle: (untyped id, untyped result) -> Thread::Queue?
157
149
 
158
150
  # @rbs return: void
159
151
  def close: () -> void
@@ -1,29 +1,3 @@
1
1
  # Generated from lib/acp/types/audio_content.rb with RBS::Inline
2
2
 
3
- class ACP::Types::AudioContent
4
- # @dynamic annotations
5
- attr_reader annotations: ACP::Types::Annotations?
6
-
7
- # @dynamic data
8
- attr_reader data: String
9
-
10
- # @dynamic mime_type
11
- attr_reader mime_type: String
12
-
13
- # @dynamic meta
14
- attr_reader meta: Hash[String, untyped]?
15
-
16
- # @rbs annotations: ACP::Types::Annotations?
17
- # @rbs data: String
18
- # @rbs mime_type: String
19
- # @rbs meta: Hash[String, untyped]?
20
- # @rbs return: void
21
- def initialize: (data: String, mime_type: String, ?annotations: ACP::Types::Annotations?, ?meta: Hash[String, untyped]?) -> void
22
-
23
- # @rbs hash: Hash[String, untyped]
24
- # @rbs return: ACP::Types::AudioContent
25
- def self.from_h: (Hash[String, untyped] hash) -> ACP::Types::AudioContent
26
-
27
- # @rbs return: Hash[String, untyped]
28
- def to_h: () -> Hash[String, untyped]
29
- end
3
+ class ACP::Types::AudioContent = ACP::Types::ContentBlock::Audio
@@ -1,37 +1,3 @@
1
1
  # Generated from lib/acp/types/auth_method_terminal.rb with RBS::Inline
2
2
 
3
- class ACP::Types::AuthMethodTerminal
4
- # @dynamic id
5
- attr_reader id: String
6
-
7
- # @dynamic name
8
- attr_reader name: String
9
-
10
- # @dynamic description
11
- attr_reader description: String?
12
-
13
- # @dynamic args
14
- attr_reader args: Array[String]?
15
-
16
- # @dynamic env
17
- attr_reader env: Hash[String, String]?
18
-
19
- # @dynamic meta
20
- attr_reader meta: Hash[String, untyped]?
21
-
22
- # @rbs id: String
23
- # @rbs name: String
24
- # @rbs description: String?
25
- # @rbs args: Array[String]?
26
- # @rbs env: Hash[String, String]?
27
- # @rbs meta: Hash[String, untyped]?
28
- # @rbs return: void
29
- def initialize: (id: String, name: String, ?description: String?, ?args: Array[String]?, ?env: Hash[String, String]?, ?meta: Hash[String, untyped]?) -> void
30
-
31
- # @rbs hash: Hash[String, untyped]
32
- # @rbs return: ACP::Types::AuthMethodTerminal
33
- def self.from_h: (Hash[String, untyped] hash) -> ACP::Types::AuthMethodTerminal
34
-
35
- # @rbs return: Hash[String, untyped]
36
- def to_h: () -> Hash[String, untyped]
37
- end
3
+ class ACP::Types::AuthMethodTerminal = ACP::Types::AuthMethod::Terminal