acp-sdk 0.10.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 (185) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +21 -0
  3. data/README.md +15 -5
  4. data/lib/acp/agent_connection/client.rb +7 -19
  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 +17 -40
  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 +227 -384
  11. data/lib/acp/protocol.rb +33 -0
  12. data/lib/acp/request_error.rb +7 -17
  13. data/lib/acp/transport/cancellation.rb +0 -7
  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 +16 -22
  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/nes_edit_suggestion.rb +3 -61
  57. data/lib/acp/types/unstable/nes_jump_suggestion.rb +3 -45
  58. data/lib/acp/types/unstable/nes_rename_suggestion.rb +3 -51
  59. data/lib/acp/types/unstable/nes_search_and_replace_suggestion.rb +3 -60
  60. data/lib/acp/types/unstable/notice.rb +3 -41
  61. data/lib/acp/types/unstable/plan_file.rb +3 -35
  62. data/lib/acp/types/unstable/plan_items.rb +3 -38
  63. data/lib/acp/types/unstable/plan_markdown.rb +3 -35
  64. data/lib/acp/types/unstable/plan_removed.rb +3 -26
  65. data/lib/acp/types/unstable/plan_update.rb +3 -33
  66. data/lib/acp/types/unstable/requires_action_state_update.rb +3 -21
  67. data/lib/acp/types/unstable/running_state_update.rb +3 -21
  68. data/lib/acp/types/unstable/session_message.rb +3 -56
  69. data/lib/acp/types/unstable/session_message_chunk.rb +3 -53
  70. data/lib/acp/types/unstable/subagent_update.rb +3 -65
  71. data/lib/acp/types/unstable/unknown_state_update.rb +3 -21
  72. data/lib/acp/types/unstable.rb +20 -20
  73. data/lib/acp/types/usage_update.rb +3 -41
  74. data/lib/acp/types.rb +7 -246
  75. data/lib/acp/version.rb +1 -1
  76. data/sig/generated/acp/agent_connection/client.rbs +10 -19
  77. data/sig/generated/acp/agent_connection/optional_method/spec.rbs +32 -0
  78. data/sig/generated/acp/agent_connection/optional_method.rbs +3 -0
  79. data/sig/generated/acp/agent_connection.rbs +16 -24
  80. data/sig/generated/acp/agent_process.rbs +0 -13
  81. data/sig/generated/acp/client_connection/streams.rbs +94 -0
  82. data/sig/generated/acp/client_connection.rbs +100 -159
  83. data/sig/generated/acp/protocol.rbs +9 -0
  84. data/sig/generated/acp/request_error.rbs +7 -17
  85. data/sig/generated/acp/transport/cancellation.rbs +0 -7
  86. data/sig/generated/acp/transport/reply.rbs +0 -2
  87. data/sig/generated/acp/transport/stderr_logger.rbs +1 -2
  88. data/sig/generated/acp/transport/stdio.rbs +9 -21
  89. data/sig/generated/acp/types/audio_content.rbs +1 -27
  90. data/sig/generated/acp/types/auth_method_terminal.rbs +1 -35
  91. data/sig/generated/acp/types/available_commands_update.rbs +1 -19
  92. data/sig/generated/acp/types/boolean_property_schema.rbs +1 -27
  93. data/sig/generated/acp/types/check.rbs +115 -0
  94. data/sig/generated/acp/types/config_option_update.rbs +1 -19
  95. data/sig/generated/acp/types/content.rbs +1 -19
  96. data/sig/generated/acp/types/{elicitation_url_mode → create_elicitation_request/mode/form}/scope.rbs +2 -2
  97. data/sig/generated/acp/types/create_elicitation_request/mode/form.rbs +3 -3
  98. data/sig/generated/acp/types/{elicitation_form_mode → create_elicitation_request/mode/url}/scope.rbs +2 -2
  99. data/sig/generated/acp/types/create_elicitation_request/mode/url.rbs +3 -3
  100. data/sig/generated/acp/types/current_mode_update.rbs +1 -19
  101. data/sig/generated/acp/types/diff.rbs +1 -27
  102. data/sig/generated/acp/types/elicitation_accept_action.rbs +1 -15
  103. data/sig/generated/acp/types/elicitation_form_mode.rbs +1 -19
  104. data/sig/generated/acp/types/elicitation_url_mode.rbs +1 -23
  105. data/sig/generated/acp/types/embedded_resource.rbs +1 -23
  106. data/sig/generated/acp/types/image_content.rbs +1 -31
  107. data/sig/generated/acp/types/integer_property_schema.rbs +1 -35
  108. data/sig/generated/acp/types/mcp_server_http.rbs +1 -27
  109. data/sig/generated/acp/types/mcp_server_sse.rbs +1 -27
  110. data/sig/generated/acp/types/multi_select_property_schema.rbs +1 -39
  111. data/sig/generated/acp/types/number_property_schema.rbs +1 -35
  112. data/sig/generated/acp/types/parse_error.rbs +22 -0
  113. data/sig/generated/acp/types/plan.rbs +1 -19
  114. data/sig/generated/acp/types/resource_link.rbs +1 -43
  115. data/sig/generated/acp/types/selected_permission_outcome.rbs +1 -19
  116. data/sig/generated/acp/types/session_config_boolean.rbs +1 -15
  117. data/sig/generated/acp/types/session_config_select.rbs +1 -19
  118. data/sig/generated/acp/types/session_info_update.rbs +1 -23
  119. data/sig/generated/acp/types/string_multi_select_items.rbs +1 -19
  120. data/sig/generated/acp/types/string_property_schema.rbs +1 -51
  121. data/sig/generated/acp/types/terminal.rbs +1 -19
  122. data/sig/generated/acp/types/text_content.rbs +1 -23
  123. data/sig/generated/acp/types/tool_call.rbs +1 -51
  124. data/sig/generated/acp/types/unstable/compaction_summary_chunk.rbs +1 -23
  125. data/sig/generated/acp/types/unstable/compaction_update.rbs +1 -31
  126. data/sig/generated/acp/types/unstable/idle_state_update.rbs +1 -23
  127. data/sig/generated/acp/types/unstable/mcp_server_acp.rbs +1 -23
  128. data/sig/generated/acp/types/unstable/nes_edit_suggestion.rbs +1 -31
  129. data/sig/generated/acp/types/unstable/nes_jump_suggestion.rbs +1 -27
  130. data/sig/generated/acp/types/unstable/nes_rename_suggestion.rbs +1 -31
  131. data/sig/generated/acp/types/unstable/nes_search_and_replace_suggestion.rbs +1 -35
  132. data/sig/generated/acp/types/unstable/notice.rbs +1 -27
  133. data/sig/generated/acp/types/unstable/plan_file.rbs +1 -23
  134. data/sig/generated/acp/types/unstable/plan_items.rbs +1 -23
  135. data/sig/generated/acp/types/unstable/plan_markdown.rbs +1 -23
  136. data/sig/generated/acp/types/unstable/plan_removed.rbs +1 -19
  137. data/sig/generated/acp/types/unstable/plan_update.rbs +1 -19
  138. data/sig/generated/acp/types/unstable/requires_action_state_update.rbs +1 -15
  139. data/sig/generated/acp/types/unstable/running_state_update.rbs +1 -15
  140. data/sig/generated/acp/types/unstable/session_message.rbs +1 -31
  141. data/sig/generated/acp/types/unstable/session_message_chunk.rbs +1 -31
  142. data/sig/generated/acp/types/unstable/subagent_update.rbs +1 -35
  143. data/sig/generated/acp/types/unstable/unknown_state_update.rbs +1 -15
  144. data/sig/generated/acp/types/usage_update.rbs +1 -27
  145. data/sig/generated/acp/types.rbs +6 -143
  146. data/sig/manual/acp/agent_connection.rbs +0 -30
  147. data/sig/manual/acp/client_connection.rbs +7 -2
  148. data/sig/manual/acp/{agent_connection/optional_method/logout.rbs → protocol.rbs} +3 -3
  149. data/sig/manual/acp/transport/stdio.rbs +0 -2
  150. data/sig/manual/acp/transport.rbs +25 -2
  151. metadata +16 -40
  152. data/lib/acp/agent_connection/optional_method/authenticate.rb +0 -21
  153. data/lib/acp/agent_connection/optional_method/close_session.rb +0 -21
  154. data/lib/acp/agent_connection/optional_method/delete_session.rb +0 -21
  155. data/lib/acp/agent_connection/optional_method/disable_provider.rb +0 -23
  156. data/lib/acp/agent_connection/optional_method/fork_session.rb +0 -23
  157. data/lib/acp/agent_connection/optional_method/list_providers.rb +0 -23
  158. data/lib/acp/agent_connection/optional_method/list_sessions.rb +0 -21
  159. data/lib/acp/agent_connection/optional_method/load_session.rb +0 -21
  160. data/lib/acp/agent_connection/optional_method/logout.rb +0 -21
  161. data/lib/acp/agent_connection/optional_method/resume_session.rb +0 -21
  162. data/lib/acp/agent_connection/optional_method/set_provider.rb +0 -23
  163. data/lib/acp/types/content_chunk.rb +0 -40
  164. data/sig/generated/acp/agent_connection/optional_method/authenticate.rbs +0 -13
  165. data/sig/generated/acp/agent_connection/optional_method/close_session.rbs +0 -13
  166. data/sig/generated/acp/agent_connection/optional_method/delete_session.rbs +0 -13
  167. data/sig/generated/acp/agent_connection/optional_method/disable_provider.rbs +0 -13
  168. data/sig/generated/acp/agent_connection/optional_method/fork_session.rbs +0 -13
  169. data/sig/generated/acp/agent_connection/optional_method/list_providers.rbs +0 -13
  170. data/sig/generated/acp/agent_connection/optional_method/list_sessions.rbs +0 -13
  171. data/sig/generated/acp/agent_connection/optional_method/load_session.rbs +0 -13
  172. data/sig/generated/acp/agent_connection/optional_method/logout.rbs +0 -13
  173. data/sig/generated/acp/agent_connection/optional_method/resume_session.rbs +0 -13
  174. data/sig/generated/acp/agent_connection/optional_method/set_provider.rbs +0 -13
  175. data/sig/generated/acp/types/content_chunk.rbs +0 -25
  176. data/sig/manual/acp/agent_connection/optional_method/authenticate.rbs +0 -6
  177. data/sig/manual/acp/agent_connection/optional_method/close_session.rbs +0 -6
  178. data/sig/manual/acp/agent_connection/optional_method/delete_session.rbs +0 -6
  179. data/sig/manual/acp/agent_connection/optional_method/disable_provider.rbs +0 -6
  180. data/sig/manual/acp/agent_connection/optional_method/fork_session.rbs +0 -6
  181. data/sig/manual/acp/agent_connection/optional_method/list_providers.rbs +0 -6
  182. data/sig/manual/acp/agent_connection/optional_method/list_sessions.rbs +0 -6
  183. data/sig/manual/acp/agent_connection/optional_method/load_session.rbs +0 -6
  184. data/sig/manual/acp/agent_connection/optional_method/resume_session.rbs +0 -6
  185. data/sig/manual/acp/agent_connection/optional_method/set_provider.rbs +0 -6
@@ -2,119 +2,7 @@
2
2
 
3
3
  # Generated by bin/types from schema/schema.json. Do not edit.
4
4
 
5
- class ACP::Types::ToolCall
6
- # @dynamic tool_call_id
7
- attr_reader :tool_call_id #: String
5
+ # @rbs!
6
+ # class ACP::Types::ToolCall = ACP::Types::SessionUpdate::ToolCall
8
7
 
9
- # @dynamic title
10
- attr_reader :title #: String
11
-
12
- # @dynamic name
13
- attr_reader :name #: String?
14
-
15
- # @dynamic kind
16
- attr_reader :kind #: String?
17
-
18
- # @dynamic status
19
- attr_reader :status #: String?
20
-
21
- # @dynamic content
22
- attr_reader :content #: Array[ACP::Types::ToolCallContent::t]?
23
-
24
- # @dynamic locations
25
- attr_reader :locations #: Array[ACP::Types::ToolCallLocation]?
26
-
27
- # @dynamic raw_input
28
- attr_reader :raw_input #: untyped
29
-
30
- # @dynamic raw_output
31
- attr_reader :raw_output #: untyped
32
-
33
- # @dynamic meta
34
- attr_reader :meta #: Hash[String, untyped]?
35
-
36
- # @rbs tool_call_id: String
37
- # @rbs title: String
38
- # @rbs name: String?
39
- # @rbs kind: String?
40
- # @rbs status: String?
41
- # @rbs content: Array[ACP::Types::ToolCallContent::t]?
42
- # @rbs locations: Array[ACP::Types::ToolCallLocation]?
43
- # @rbs raw_input: untyped
44
- # @rbs raw_output: untyped
45
- # @rbs meta: Hash[String, untyped]?
46
- # @rbs return: void
47
- def initialize(
48
- tool_call_id:,
49
- title:,
50
- name: nil,
51
- kind: nil,
52
- status: nil,
53
- content: nil,
54
- locations: nil,
55
- raw_input: nil,
56
- raw_output: nil,
57
- meta: nil
58
- )
59
- @tool_call_id = tool_call_id
60
- @title = title
61
- @name = name
62
- @kind = kind
63
- @status = status
64
- @content = content
65
- @locations = locations
66
- @raw_input = raw_input
67
- @raw_output = raw_output
68
- @meta = meta
69
- freeze
70
- end
71
-
72
- # @rbs hash: Hash[String, untyped]
73
- # @rbs return: ACP::Types::ToolCall
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
81
- new(
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:,
99
- raw_input: hash['rawInput'],
100
- raw_output: hash['rawOutput'],
101
- meta: hash['_meta']
102
- )
103
- end
104
-
105
- # @rbs return: Hash[String, untyped]
106
- def to_h
107
- {
108
- 'toolCallId' => tool_call_id,
109
- 'title' => title,
110
- 'name' => name,
111
- 'kind' => kind,
112
- 'status' => status,
113
- 'content' => content&.map(&:to_h),
114
- 'locations' => locations&.map(&:to_h),
115
- 'rawInput' => raw_input,
116
- 'rawOutput' => raw_output,
117
- '_meta' => meta
118
- }.compact
119
- end
120
- end
8
+ ACP::Types::ToolCall = ACP::Types::SessionUpdate::ToolCall
@@ -3,39 +3,7 @@
3
3
  # Generated by bin/types from schema/schema.unstable.json. Do not edit.
4
4
  # Unstable: not part of the ACP spec, may change or disappear at any point.
5
5
 
6
- class ACP::Types::Unstable::CompactionSummaryChunk
7
- # @dynamic compaction_id
8
- attr_reader :compaction_id #: String
6
+ # @rbs!
7
+ # class ACP::Types::Unstable::CompactionSummaryChunk = ACP::Types::Unstable::SessionUpdate::CompactionSummaryChunk
9
8
 
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
9
+ ACP::Types::Unstable::CompactionSummaryChunk = ACP::Types::Unstable::SessionUpdate::CompactionSummaryChunk
@@ -3,60 +3,7 @@
3
3
  # Generated by bin/types from schema/schema.unstable.json. Do not edit.
4
4
  # Unstable: not part of the ACP spec, may change or disappear at any point.
5
5
 
6
- class ACP::Types::Unstable::CompactionUpdate
7
- # @dynamic compaction_id
8
- attr_reader :compaction_id #: String
6
+ # @rbs!
7
+ # class ACP::Types::Unstable::CompactionUpdate = ACP::Types::Unstable::SessionUpdate::CompactionUpdate
9
8
 
10
- # @dynamic status
11
- attr_reader :status #: String
12
-
13
- # @dynamic summary
14
- attr_reader :summary #: Array[ACP::Types::ContentBlock::t]?
15
-
16
- # @dynamic error
17
- attr_reader :error #: String?
18
-
19
- # @dynamic meta
20
- attr_reader :meta #: Hash[String, untyped]?
21
-
22
- # @rbs compaction_id: String
23
- # @rbs status: String
24
- # @rbs summary: Array[ACP::Types::ContentBlock::t]?
25
- # @rbs error: String?
26
- # @rbs meta: Hash[String, untyped]?
27
- # @rbs return: void
28
- def initialize(compaction_id:, status:, summary: nil, error: nil, meta: nil)
29
- @compaction_id = compaction_id
30
- @status = status
31
- @summary = summary
32
- @error = error
33
- @meta = meta
34
- freeze
35
- end
36
-
37
- # @rbs hash: Hash[String, untyped]
38
- # @rbs return: ACP::Types::Unstable::CompactionUpdate
39
- def self.from_h(hash)
40
- summary = ACP::Types::Check.array(hash['summary'], 'summary', allow_nil: true) do |item, path|
41
- ACP::Types::Check.object(item, path, ACP::Types::ContentBlock)
42
- end
43
- new(
44
- compaction_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'compactionId'), 'compactionId'),
45
- status: ACP::Types::Check.key(hash, 'status'),
46
- summary:,
47
- error: ACP::Types::Check.string(hash['error'], 'error', allow_nil: true),
48
- meta: hash['_meta']
49
- )
50
- end
51
-
52
- # @rbs return: Hash[String, untyped]
53
- def to_h
54
- {
55
- 'compactionId' => compaction_id,
56
- 'status' => status,
57
- 'summary' => summary&.map(&:to_h),
58
- 'error' => error,
59
- '_meta' => meta
60
- }.compact
61
- end
62
- end
9
+ ACP::Types::Unstable::CompactionUpdate = ACP::Types::Unstable::SessionUpdate::CompactionUpdate
@@ -3,44 +3,7 @@
3
3
  # Generated by bin/types from schema/schema.unstable.json. Do not edit.
4
4
  # Unstable: not part of the ACP spec, may change or disappear at any point.
5
5
 
6
- class ACP::Types::Unstable::IdleStateUpdate
7
- # @dynamic stop_reason
8
- attr_reader :stop_reason #: String?
6
+ # @rbs!
7
+ # class ACP::Types::Unstable::IdleStateUpdate = ACP::Types::Unstable::StateUpdate::Idle
9
8
 
10
- # @dynamic usage
11
- attr_reader :usage #: ACP::Types::Unstable::Usage?
12
-
13
- # @dynamic meta
14
- attr_reader :meta #: Hash[String, untyped]?
15
-
16
- # @rbs stop_reason: String?
17
- # @rbs usage: ACP::Types::Unstable::Usage?
18
- # @rbs meta: Hash[String, untyped]?
19
- # @rbs return: void
20
- def initialize(stop_reason: nil, usage: nil, meta: nil)
21
- @stop_reason = stop_reason
22
- @usage = usage
23
- @meta = meta
24
- freeze
25
- end
26
-
27
- # @rbs hash: Hash[String, untyped]
28
- # @rbs return: ACP::Types::Unstable::IdleStateUpdate
29
- def self.from_h(hash)
30
- new(
31
- stop_reason: ACP::Types::Check.enum(
32
- hash['stopReason'],
33
- 'stopReason',
34
- %w[end_turn max_tokens max_turn_requests refusal cancelled],
35
- allow_nil: true
36
- ),
37
- usage: ACP::Types::Check.object(hash['usage'], 'usage', ACP::Types::Unstable::Usage, allow_nil: true),
38
- meta: hash['_meta']
39
- )
40
- end
41
-
42
- # @rbs return: Hash[String, untyped]
43
- def to_h
44
- { 'stopReason' => stop_reason, 'usage' => usage&.to_h, '_meta' => meta }.compact
45
- end
46
- end
9
+ ACP::Types::Unstable::IdleStateUpdate = ACP::Types::Unstable::StateUpdate::Idle
@@ -3,39 +3,7 @@
3
3
  # Generated by bin/types from schema/schema.unstable.json. Do not edit.
4
4
  # Unstable: not part of the ACP spec, may change or disappear at any point.
5
5
 
6
- class ACP::Types::Unstable::McpServerAcp
7
- # @dynamic name
8
- attr_reader :name #: String
6
+ # @rbs!
7
+ # class ACP::Types::Unstable::McpServerAcp = ACP::Types::Unstable::McpServer::Acp
9
8
 
10
- # @dynamic server_id
11
- attr_reader :server_id #: String
12
-
13
- # @dynamic meta
14
- attr_reader :meta #: Hash[String, untyped]?
15
-
16
- # @rbs name: String
17
- # @rbs server_id: String
18
- # @rbs meta: Hash[String, untyped]?
19
- # @rbs return: void
20
- def initialize(name:, server_id:, meta: nil)
21
- @name = name
22
- @server_id = server_id
23
- @meta = meta
24
- freeze
25
- end
26
-
27
- # @rbs hash: Hash[String, untyped]
28
- # @rbs return: ACP::Types::Unstable::McpServerAcp
29
- def self.from_h(hash)
30
- new(
31
- name: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'name'), 'name'),
32
- server_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'serverId'), 'serverId'),
33
- meta: hash['_meta']
34
- )
35
- end
36
-
37
- # @rbs return: Hash[String, untyped]
38
- def to_h
39
- { 'name' => name, 'serverId' => server_id, '_meta' => meta }.compact
40
- end
41
- end
9
+ ACP::Types::Unstable::McpServerAcp = ACP::Types::Unstable::McpServer::Acp
@@ -3,65 +3,7 @@
3
3
  # Generated by bin/types from schema/schema.unstable.json. Do not edit.
4
4
  # Unstable: not part of the ACP spec, may change or disappear at any point.
5
5
 
6
- class ACP::Types::Unstable::NesEditSuggestion
7
- # @dynamic id
8
- attr_reader :id #: String
6
+ # @rbs!
7
+ # class ACP::Types::Unstable::NesEditSuggestion = ACP::Types::Unstable::NesSuggestion::Edit
9
8
 
10
- # @dynamic uri
11
- attr_reader :uri #: String
12
-
13
- # @dynamic edits
14
- attr_reader :edits #: Array[ACP::Types::Unstable::NesTextEdit]
15
-
16
- # @dynamic cursor_position
17
- attr_reader :cursor_position #: ACP::Types::Unstable::Position?
18
-
19
- # @dynamic meta
20
- attr_reader :meta #: Hash[String, untyped]?
21
-
22
- # @rbs id: String
23
- # @rbs uri: String
24
- # @rbs edits: Array[ACP::Types::Unstable::NesTextEdit]
25
- # @rbs cursor_position: ACP::Types::Unstable::Position?
26
- # @rbs meta: Hash[String, untyped]?
27
- # @rbs return: void
28
- def initialize(id:, uri:, edits:, cursor_position: nil, meta: nil)
29
- @id = id
30
- @uri = uri
31
- @edits = edits
32
- @cursor_position = cursor_position
33
- @meta = meta
34
- freeze
35
- end
36
-
37
- # @rbs hash: Hash[String, untyped]
38
- # @rbs return: ACP::Types::Unstable::NesEditSuggestion
39
- def self.from_h(hash)
40
- edits = ACP::Types::Check.array(ACP::Types::Check.key(hash, 'edits'), 'edits') do |item, path|
41
- ACP::Types::Check.object(item, path, ACP::Types::Unstable::NesTextEdit)
42
- end
43
- new(
44
- id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'id'), 'id'),
45
- uri: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'uri'), 'uri'),
46
- edits:,
47
- cursor_position: ACP::Types::Check.object(
48
- hash['cursorPosition'],
49
- 'cursorPosition',
50
- ACP::Types::Unstable::Position,
51
- allow_nil: true
52
- ),
53
- meta: hash['_meta']
54
- )
55
- end
56
-
57
- # @rbs return: Hash[String, untyped]
58
- def to_h
59
- {
60
- 'id' => id,
61
- 'uri' => uri,
62
- 'edits' => edits.map(&:to_h),
63
- 'cursorPosition' => cursor_position&.to_h,
64
- '_meta' => meta
65
- }.compact
66
- end
67
- end
9
+ ACP::Types::Unstable::NesEditSuggestion = ACP::Types::Unstable::NesSuggestion::Edit
@@ -3,49 +3,7 @@
3
3
  # Generated by bin/types from schema/schema.unstable.json. Do not edit.
4
4
  # Unstable: not part of the ACP spec, may change or disappear at any point.
5
5
 
6
- class ACP::Types::Unstable::NesJumpSuggestion
7
- # @dynamic id
8
- attr_reader :id #: String
6
+ # @rbs!
7
+ # class ACP::Types::Unstable::NesJumpSuggestion = ACP::Types::Unstable::NesSuggestion::Jump
9
8
 
10
- # @dynamic uri
11
- attr_reader :uri #: String
12
-
13
- # @dynamic position
14
- attr_reader :position #: ACP::Types::Unstable::Position
15
-
16
- # @dynamic meta
17
- attr_reader :meta #: Hash[String, untyped]?
18
-
19
- # @rbs id: String
20
- # @rbs uri: String
21
- # @rbs position: ACP::Types::Unstable::Position
22
- # @rbs meta: Hash[String, untyped]?
23
- # @rbs return: void
24
- def initialize(id:, uri:, position:, meta: nil)
25
- @id = id
26
- @uri = uri
27
- @position = position
28
- @meta = meta
29
- freeze
30
- end
31
-
32
- # @rbs hash: Hash[String, untyped]
33
- # @rbs return: ACP::Types::Unstable::NesJumpSuggestion
34
- def self.from_h(hash)
35
- new(
36
- id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'id'), 'id'),
37
- uri: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'uri'), 'uri'),
38
- position: ACP::Types::Check.object(
39
- ACP::Types::Check.key(hash, 'position'),
40
- 'position',
41
- ACP::Types::Unstable::Position
42
- ),
43
- meta: hash['_meta']
44
- )
45
- end
46
-
47
- # @rbs return: Hash[String, untyped]
48
- def to_h
49
- { 'id' => id, 'uri' => uri, 'position' => position.to_h, '_meta' => meta }.compact
50
- end
51
- end
9
+ ACP::Types::Unstable::NesJumpSuggestion = ACP::Types::Unstable::NesSuggestion::Jump
@@ -3,55 +3,7 @@
3
3
  # Generated by bin/types from schema/schema.unstable.json. Do not edit.
4
4
  # Unstable: not part of the ACP spec, may change or disappear at any point.
5
5
 
6
- class ACP::Types::Unstable::NesRenameSuggestion
7
- # @dynamic id
8
- attr_reader :id #: String
6
+ # @rbs!
7
+ # class ACP::Types::Unstable::NesRenameSuggestion = ACP::Types::Unstable::NesSuggestion::Rename
9
8
 
10
- # @dynamic uri
11
- attr_reader :uri #: String
12
-
13
- # @dynamic position
14
- attr_reader :position #: ACP::Types::Unstable::Position
15
-
16
- # @dynamic new_name
17
- attr_reader :new_name #: String
18
-
19
- # @dynamic meta
20
- attr_reader :meta #: Hash[String, untyped]?
21
-
22
- # @rbs id: String
23
- # @rbs uri: String
24
- # @rbs position: ACP::Types::Unstable::Position
25
- # @rbs new_name: String
26
- # @rbs meta: Hash[String, untyped]?
27
- # @rbs return: void
28
- def initialize(id:, uri:, position:, new_name:, meta: nil)
29
- @id = id
30
- @uri = uri
31
- @position = position
32
- @new_name = new_name
33
- @meta = meta
34
- freeze
35
- end
36
-
37
- # @rbs hash: Hash[String, untyped]
38
- # @rbs return: ACP::Types::Unstable::NesRenameSuggestion
39
- def self.from_h(hash)
40
- new(
41
- id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'id'), 'id'),
42
- uri: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'uri'), 'uri'),
43
- position: ACP::Types::Check.object(
44
- ACP::Types::Check.key(hash, 'position'),
45
- 'position',
46
- ACP::Types::Unstable::Position
47
- ),
48
- new_name: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'newName'), 'newName'),
49
- meta: hash['_meta']
50
- )
51
- end
52
-
53
- # @rbs return: Hash[String, untyped]
54
- def to_h
55
- { 'id' => id, 'uri' => uri, 'position' => position.to_h, 'newName' => new_name, '_meta' => meta }.compact
56
- end
57
- end
9
+ ACP::Types::Unstable::NesRenameSuggestion = ACP::Types::Unstable::NesSuggestion::Rename
@@ -3,64 +3,7 @@
3
3
  # Generated by bin/types from schema/schema.unstable.json. Do not edit.
4
4
  # Unstable: not part of the ACP spec, may change or disappear at any point.
5
5
 
6
- class ACP::Types::Unstable::NesSearchAndReplaceSuggestion
7
- # @dynamic id
8
- attr_reader :id #: String
6
+ # @rbs!
7
+ # class ACP::Types::Unstable::NesSearchAndReplaceSuggestion = ACP::Types::Unstable::NesSuggestion::Searchandreplace
9
8
 
10
- # @dynamic uri
11
- attr_reader :uri #: String
12
-
13
- # @dynamic search
14
- attr_reader :search #: String
15
-
16
- # @dynamic replace
17
- attr_reader :replace #: String
18
-
19
- # @dynamic is_regex
20
- attr_reader :is_regex #: bool?
21
-
22
- # @dynamic meta
23
- attr_reader :meta #: Hash[String, untyped]?
24
-
25
- # @rbs id: String
26
- # @rbs uri: String
27
- # @rbs search: String
28
- # @rbs replace: String
29
- # @rbs is_regex: bool?
30
- # @rbs meta: Hash[String, untyped]?
31
- # @rbs return: void
32
- def initialize(id:, uri:, search:, replace:, is_regex: nil, meta: nil)
33
- @id = id
34
- @uri = uri
35
- @search = search
36
- @replace = replace
37
- @is_regex = is_regex
38
- @meta = meta
39
- freeze
40
- end
41
-
42
- # @rbs hash: Hash[String, untyped]
43
- # @rbs return: ACP::Types::Unstable::NesSearchAndReplaceSuggestion
44
- def self.from_h(hash)
45
- new(
46
- id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'id'), 'id'),
47
- uri: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'uri'), 'uri'),
48
- search: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'search'), 'search'),
49
- replace: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'replace'), 'replace'),
50
- is_regex: ACP::Types::Check.boolean(hash['isRegex'], 'isRegex', allow_nil: true),
51
- meta: hash['_meta']
52
- )
53
- end
54
-
55
- # @rbs return: Hash[String, untyped]
56
- def to_h
57
- {
58
- 'id' => id,
59
- 'uri' => uri,
60
- 'search' => search,
61
- 'replace' => replace,
62
- 'isRegex' => is_regex,
63
- '_meta' => meta
64
- }.compact
65
- end
66
- end
9
+ ACP::Types::Unstable::NesSearchAndReplaceSuggestion = ACP::Types::Unstable::NesSuggestion::Searchandreplace
@@ -3,45 +3,7 @@
3
3
  # Generated by bin/types from schema/schema.unstable.json. Do not edit.
4
4
  # Unstable: not part of the ACP spec, may change or disappear at any point.
5
5
 
6
- class ACP::Types::Unstable::Notice
7
- # @dynamic severity
8
- attr_reader :severity #: String
6
+ # @rbs!
7
+ # class ACP::Types::Unstable::Notice = ACP::Types::Unstable::SessionUpdate::Notice
9
8
 
10
- # @dynamic title
11
- attr_reader :title #: String
12
-
13
- # @dynamic description
14
- attr_reader :description #: String?
15
-
16
- # @dynamic meta
17
- attr_reader :meta #: Hash[String, untyped]?
18
-
19
- # @rbs severity: String
20
- # @rbs title: String
21
- # @rbs description: String?
22
- # @rbs meta: Hash[String, untyped]?
23
- # @rbs return: void
24
- def initialize(severity:, title:, description: nil, meta: nil)
25
- @severity = severity
26
- @title = title
27
- @description = description
28
- @meta = meta
29
- freeze
30
- end
31
-
32
- # @rbs hash: Hash[String, untyped]
33
- # @rbs return: ACP::Types::Unstable::Notice
34
- def self.from_h(hash)
35
- new(
36
- severity: ACP::Types::Check.key(hash, 'severity'),
37
- title: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'title'), 'title'),
38
- description: ACP::Types::Check.string(hash['description'], 'description', allow_nil: true),
39
- meta: hash['_meta']
40
- )
41
- end
42
-
43
- # @rbs return: Hash[String, untyped]
44
- def to_h
45
- { 'severity' => severity, 'title' => title, 'description' => description, '_meta' => meta }.compact
46
- end
47
- end
9
+ ACP::Types::Unstable::Notice = ACP::Types::Unstable::SessionUpdate::Notice
@@ -3,39 +3,7 @@
3
3
  # Generated by bin/types from schema/schema.unstable.json. Do not edit.
4
4
  # Unstable: not part of the ACP spec, may change or disappear at any point.
5
5
 
6
- class ACP::Types::Unstable::PlanFile
7
- # @dynamic plan_id
8
- attr_reader :plan_id #: String
6
+ # @rbs!
7
+ # class ACP::Types::Unstable::PlanFile = ACP::Types::Unstable::PlanUpdateContent::File
9
8
 
10
- # @dynamic uri
11
- attr_reader :uri #: String
12
-
13
- # @dynamic meta
14
- attr_reader :meta #: Hash[String, untyped]?
15
-
16
- # @rbs plan_id: String
17
- # @rbs uri: String
18
- # @rbs meta: Hash[String, untyped]?
19
- # @rbs return: void
20
- def initialize(plan_id:, uri:, meta: nil)
21
- @plan_id = plan_id
22
- @uri = uri
23
- @meta = meta
24
- freeze
25
- end
26
-
27
- # @rbs hash: Hash[String, untyped]
28
- # @rbs return: ACP::Types::Unstable::PlanFile
29
- def self.from_h(hash)
30
- new(
31
- plan_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'planId'), 'planId'),
32
- uri: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'uri'), 'uri'),
33
- meta: hash['_meta']
34
- )
35
- end
36
-
37
- # @rbs return: Hash[String, untyped]
38
- def to_h
39
- { 'planId' => plan_id, 'uri' => uri, '_meta' => meta }.compact
40
- end
41
- end
9
+ ACP::Types::Unstable::PlanFile = ACP::Types::Unstable::PlanUpdateContent::File