acp-sdk 0.6.0 → 0.8.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +25 -0
- data/README.md +5 -2
- data/lib/acp/agent_connection/client.rb +1 -1
- data/lib/acp/agent_connection.rb +3 -1
- data/lib/acp/client_connection.rb +220 -4
- data/lib/acp/request_error.rb +18 -4
- data/lib/acp/transport/stdio.rb +21 -6
- data/lib/acp/types/agent_auth_capabilities.rb +4 -1
- data/lib/acp/types/agent_capabilities.rb +20 -5
- data/lib/acp/types/annotations.rb +6 -3
- data/lib/acp/types/audio_content.rb +8 -3
- data/lib/acp/types/auth_capabilities.rb +1 -1
- data/lib/acp/types/auth_method/terminal.rb +11 -5
- data/lib/acp/types/auth_method_agent.rb +6 -1
- data/lib/acp/types/auth_method_terminal.rb +11 -5
- data/lib/acp/types/authenticate_request.rb +1 -1
- data/lib/acp/types/available_command.rb +3 -3
- data/lib/acp/types/available_commands_update.rb +7 -4
- data/lib/acp/types/blob_resource_contents.rb +6 -1
- data/lib/acp/types/boolean_property_schema.rb +6 -1
- data/lib/acp/types/cancel_notification.rb +4 -1
- data/lib/acp/types/cancel_request_notification.rb +9 -1
- data/lib/acp/types/client_capabilities.rb +15 -5
- data/lib/acp/types/client_session_capabilities.rb +6 -3
- data/lib/acp/types/close_session_request.rb +4 -1
- data/lib/acp/types/complete_elicitation_notification.rb +4 -1
- data/lib/acp/types/config_option_update.rb +7 -4
- data/lib/acp/types/content.rb +4 -1
- data/lib/acp/types/content_block/audio.rb +8 -3
- data/lib/acp/types/content_block/image.rb +9 -4
- data/lib/acp/types/content_block/resource.rb +11 -2
- data/lib/acp/types/content_block/resource_link.rb +12 -7
- data/lib/acp/types/content_block/text.rb +7 -2
- data/lib/acp/types/content_chunk.rb +2 -2
- data/lib/acp/types/cost.rb +5 -1
- data/lib/acp/types/create_elicitation_request/mode/form.rb +5 -1
- data/lib/acp/types/create_elicitation_request/mode/url.rb +2 -2
- data/lib/acp/types/create_elicitation_request.rb +1 -1
- data/lib/acp/types/create_elicitation_response/action/accept.rb +6 -1
- data/lib/acp/types/create_terminal_request.rb +12 -6
- data/lib/acp/types/create_terminal_response.rb +4 -1
- data/lib/acp/types/current_mode_update.rb +4 -1
- data/lib/acp/types/delete_session_request.rb +4 -1
- data/lib/acp/types/diff.rb +6 -1
- data/lib/acp/types/elicitation_accept_action.rb +6 -1
- data/lib/acp/types/elicitation_capabilities.rb +2 -2
- data/lib/acp/types/elicitation_form_mode.rb +5 -1
- data/lib/acp/types/elicitation_property_schema/boolean_property_schema.rb +6 -1
- data/lib/acp/types/elicitation_property_schema/integer_property_schema.rb +5 -5
- data/lib/acp/types/elicitation_property_schema/multi_select_property_schema.rb +9 -6
- data/lib/acp/types/elicitation_property_schema/number_property_schema.rb +5 -5
- data/lib/acp/types/elicitation_property_schema/string_property_schema.rb +15 -9
- data/lib/acp/types/elicitation_request_scope.rb +8 -1
- data/lib/acp/types/elicitation_schema.rb +11 -5
- data/lib/acp/types/elicitation_session_scope.rb +4 -1
- data/lib/acp/types/elicitation_url_mode.rb +2 -2
- data/lib/acp/types/embedded_resource.rb +11 -2
- data/lib/acp/types/enum_option.rb +6 -1
- data/lib/acp/types/env_variable.rb +5 -1
- data/lib/acp/types/file_system_capabilities.rb +5 -1
- data/lib/acp/types/http_header.rb +5 -1
- data/lib/acp/types/image_content.rb +9 -4
- data/lib/acp/types/implementation.rb +6 -1
- data/lib/acp/types/initialize_request.rb +18 -3
- data/lib/acp/types/initialize_response.rb +17 -4
- data/lib/acp/types/integer_property_schema.rb +5 -5
- data/lib/acp/types/kill_terminal_request.rb +5 -1
- data/lib/acp/types/list_sessions_request.rb +5 -1
- data/lib/acp/types/list_sessions_response.rb +5 -2
- data/lib/acp/types/load_session_request.rb +14 -4
- data/lib/acp/types/load_session_response.rb +5 -2
- data/lib/acp/types/mcp_capabilities.rb +5 -1
- data/lib/acp/types/mcp_server/http.rb +6 -3
- data/lib/acp/types/mcp_server/sse.rb +6 -3
- data/lib/acp/types/mcp_server_http.rb +6 -3
- data/lib/acp/types/mcp_server_sse.rb +6 -3
- data/lib/acp/types/mcp_server_stdio.rb +10 -4
- data/lib/acp/types/multi_select_items/string_multi_select_items.rb +4 -1
- data/lib/acp/types/multi_select_property_schema.rb +9 -6
- data/lib/acp/types/new_session_request.rb +13 -3
- data/lib/acp/types/new_session_response.rb +6 -3
- data/lib/acp/types/number_property_schema.rb +5 -5
- data/lib/acp/types/permission_option.rb +10 -1
- data/lib/acp/types/plan.rb +4 -1
- data/lib/acp/types/plan_entry.rb +7 -3
- data/lib/acp/types/prompt_capabilities.rb +6 -1
- data/lib/acp/types/prompt_request.rb +5 -2
- data/lib/acp/types/prompt_response.rb +8 -1
- data/lib/acp/types/read_text_file_request.rb +4 -4
- data/lib/acp/types/read_text_file_response.rb +1 -1
- data/lib/acp/types/release_terminal_request.rb +5 -1
- data/lib/acp/types/request_permission_outcome/selected.rb +1 -1
- data/lib/acp/types/request_permission_request.rb +10 -3
- data/lib/acp/types/request_permission_response.rb +8 -1
- data/lib/acp/types/resource_link.rb +12 -7
- data/lib/acp/types/resume_session_request.rb +14 -4
- data/lib/acp/types/resume_session_response.rb +5 -2
- data/lib/acp/types/selected_permission_outcome.rb +1 -1
- data/lib/acp/types/session_capabilities.rb +20 -7
- data/lib/acp/types/session_config_boolean.rb +1 -1
- data/lib/acp/types/session_config_option/kind/boolean.rb +1 -1
- data/lib/acp/types/session_config_option/kind/select.rb +6 -2
- data/lib/acp/types/session_config_option.rb +3 -3
- data/lib/acp/types/session_config_options_capabilities.rb +6 -1
- data/lib/acp/types/session_config_select.rb +6 -2
- data/lib/acp/types/session_config_select_group.rb +6 -3
- data/lib/acp/types/session_config_select_option.rb +6 -1
- data/lib/acp/types/session_config_select_options.rb +6 -2
- data/lib/acp/types/session_info.rb +12 -5
- data/lib/acp/types/session_info_update.rb +10 -1
- data/lib/acp/types/session_mode.rb +6 -1
- data/lib/acp/types/session_mode_state.rb +8 -2
- data/lib/acp/types/session_notification.rb +2 -2
- data/lib/acp/types/session_update/agent_message_chunk.rb +2 -2
- data/lib/acp/types/session_update/agent_thought_chunk.rb +2 -2
- data/lib/acp/types/session_update/available_commands_update.rb +7 -4
- data/lib/acp/types/session_update/config_option_update.rb +7 -4
- data/lib/acp/types/session_update/current_mode_update.rb +4 -1
- data/lib/acp/types/session_update/plan.rb +4 -1
- data/lib/acp/types/session_update/session_info_update.rb +10 -1
- data/lib/acp/types/session_update/tool_call.rb +23 -7
- data/lib/acp/types/session_update/tool_call_update.rb +23 -7
- data/lib/acp/types/session_update/usage_update.rb +3 -3
- data/lib/acp/types/session_update/user_message_chunk.rb +2 -2
- data/lib/acp/types/set_session_config_option_request/value/boolean.rb +1 -1
- data/lib/acp/types/set_session_config_option_request/value/value_id.rb +1 -1
- data/lib/acp/types/set_session_config_option_request.rb +2 -2
- data/lib/acp/types/set_session_config_option_response.rb +7 -4
- data/lib/acp/types/set_session_mode_request.rb +5 -1
- data/lib/acp/types/string_multi_select_items.rb +4 -1
- data/lib/acp/types/string_property_schema.rb +15 -9
- data/lib/acp/types/terminal.rb +4 -1
- data/lib/acp/types/terminal_exit_status.rb +5 -1
- data/lib/acp/types/terminal_output_request.rb +5 -1
- data/lib/acp/types/terminal_output_response.rb +8 -3
- data/lib/acp/types/text_content.rb +7 -2
- data/lib/acp/types/text_resource_contents.rb +6 -1
- data/lib/acp/types/titled_multi_select_items.rb +4 -1
- data/lib/acp/types/tool_call.rb +23 -7
- data/lib/acp/types/tool_call_content/content.rb +4 -1
- data/lib/acp/types/tool_call_content/diff.rb +6 -1
- data/lib/acp/types/tool_call_content/terminal.rb +4 -1
- data/lib/acp/types/tool_call_location.rb +5 -1
- data/lib/acp/types/tool_call_update.rb +23 -7
- data/lib/acp/types/unstructured_command_input.rb +1 -1
- data/lib/acp/types/usage_update.rb +3 -3
- data/lib/acp/types/wait_for_terminal_exit_request.rb +5 -1
- data/lib/acp/types/wait_for_terminal_exit_response.rb +5 -1
- data/lib/acp/types/write_text_file_request.rb +3 -3
- data/lib/acp/types.rb +247 -0
- data/lib/acp/version.rb +1 -1
- data/sig/generated/acp/client_connection.rbs +101 -12
- data/sig/generated/acp/request_error.rbs +14 -2
- data/sig/generated/acp/transport/stdio.rbs +13 -2
- data/sig/generated/acp/types.rbs +143 -0
- metadata +1 -1
|
@@ -72,14 +72,30 @@ class ACP::Types::SessionUpdate::ToolCall
|
|
|
72
72
|
# @rbs hash: Hash[String, untyped]
|
|
73
73
|
# @rbs return: ACP::Types::SessionUpdate::ToolCall
|
|
74
74
|
def self.from_h(hash)
|
|
75
|
+
content = ACP::Types::Check.array(hash['content'], 'content', allow_nil: true) do |item, path|
|
|
76
|
+
ACP::Types::Check.object(item, path, ACP::Types::ToolCallContent)
|
|
77
|
+
end
|
|
78
|
+
locations = ACP::Types::Check.array(hash['locations'], 'locations', allow_nil: true) do |item, path|
|
|
79
|
+
ACP::Types::Check.object(item, path, ACP::Types::ToolCallLocation)
|
|
80
|
+
end
|
|
75
81
|
new(
|
|
76
|
-
tool_call_id:
|
|
77
|
-
title:
|
|
78
|
-
name: hash['name'],
|
|
79
|
-
kind:
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
82
|
+
tool_call_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'toolCallId'), 'toolCallId'),
|
|
83
|
+
title: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'title'), 'title'),
|
|
84
|
+
name: ACP::Types::Check.string(hash['name'], 'name', allow_nil: true),
|
|
85
|
+
kind: ACP::Types::Check.enum(
|
|
86
|
+
hash['kind'],
|
|
87
|
+
'kind',
|
|
88
|
+
%w[read edit delete move search execute think fetch switch_mode other],
|
|
89
|
+
allow_nil: true
|
|
90
|
+
),
|
|
91
|
+
status: ACP::Types::Check.enum(
|
|
92
|
+
hash['status'],
|
|
93
|
+
'status',
|
|
94
|
+
%w[pending in_progress completed failed],
|
|
95
|
+
allow_nil: true
|
|
96
|
+
),
|
|
97
|
+
content:,
|
|
98
|
+
locations:,
|
|
83
99
|
raw_input: hash['rawInput'],
|
|
84
100
|
raw_output: hash['rawOutput'],
|
|
85
101
|
meta: hash['_meta']
|
|
@@ -72,14 +72,30 @@ class ACP::Types::SessionUpdate::ToolCallUpdate
|
|
|
72
72
|
# @rbs hash: Hash[String, untyped]
|
|
73
73
|
# @rbs return: ACP::Types::SessionUpdate::ToolCallUpdate
|
|
74
74
|
def self.from_h(hash)
|
|
75
|
+
content = ACP::Types::Check.array(hash['content'], 'content', allow_nil: true) do |item, path|
|
|
76
|
+
ACP::Types::Check.object(item, path, ACP::Types::ToolCallContent)
|
|
77
|
+
end
|
|
78
|
+
locations = ACP::Types::Check.array(hash['locations'], 'locations', allow_nil: true) do |item, path|
|
|
79
|
+
ACP::Types::Check.object(item, path, ACP::Types::ToolCallLocation)
|
|
80
|
+
end
|
|
75
81
|
new(
|
|
76
|
-
tool_call_id:
|
|
77
|
-
kind:
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
82
|
+
tool_call_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'toolCallId'), 'toolCallId'),
|
|
83
|
+
kind: ACP::Types::Check.enum(
|
|
84
|
+
hash['kind'],
|
|
85
|
+
'kind',
|
|
86
|
+
%w[read edit delete move search execute think fetch switch_mode other],
|
|
87
|
+
allow_nil: true
|
|
88
|
+
),
|
|
89
|
+
status: ACP::Types::Check.enum(
|
|
90
|
+
hash['status'],
|
|
91
|
+
'status',
|
|
92
|
+
%w[pending in_progress completed failed],
|
|
93
|
+
allow_nil: true
|
|
94
|
+
),
|
|
95
|
+
title: ACP::Types::Check.string(hash['title'], 'title', allow_nil: true),
|
|
96
|
+
name: ACP::Types::Check.string(hash['name'], 'name', allow_nil: true),
|
|
97
|
+
content:,
|
|
98
|
+
locations:,
|
|
83
99
|
raw_input: hash['rawInput'],
|
|
84
100
|
raw_output: hash['rawOutput'],
|
|
85
101
|
meta: hash['_meta']
|
|
@@ -32,9 +32,9 @@ class ACP::Types::SessionUpdate::UsageUpdate
|
|
|
32
32
|
# @rbs return: ACP::Types::SessionUpdate::UsageUpdate
|
|
33
33
|
def self.from_h(hash)
|
|
34
34
|
new(
|
|
35
|
-
used:
|
|
36
|
-
size:
|
|
37
|
-
cost: hash['cost']
|
|
35
|
+
used: ACP::Types::Check.integer(ACP::Types::Check.key(hash, 'used'), 'used', min: 0),
|
|
36
|
+
size: ACP::Types::Check.integer(ACP::Types::Check.key(hash, 'size'), 'size', min: 0),
|
|
37
|
+
cost: ACP::Types::Check.object(hash['cost'], 'cost', ACP::Types::Cost, allow_nil: true),
|
|
38
38
|
meta: hash['_meta']
|
|
39
39
|
)
|
|
40
40
|
end
|
|
@@ -27,8 +27,8 @@ class ACP::Types::SessionUpdate::UserMessageChunk
|
|
|
27
27
|
# @rbs return: ACP::Types::SessionUpdate::UserMessageChunk
|
|
28
28
|
def self.from_h(hash)
|
|
29
29
|
new(
|
|
30
|
-
content: ACP::Types::
|
|
31
|
-
message_id: hash['messageId'],
|
|
30
|
+
content: ACP::Types::Check.object(ACP::Types::Check.key(hash, 'content'), 'content', ACP::Types::ContentBlock),
|
|
31
|
+
message_id: ACP::Types::Check.string(hash['messageId'], 'messageId', allow_nil: true),
|
|
32
32
|
meta: hash['_meta']
|
|
33
33
|
)
|
|
34
34
|
end
|
|
@@ -16,7 +16,7 @@ class ACP::Types::SetSessionConfigOptionRequest::Value::Boolean
|
|
|
16
16
|
# @rbs hash: Hash[String, untyped]
|
|
17
17
|
# @rbs return: ACP::Types::SetSessionConfigOptionRequest::Value::Boolean
|
|
18
18
|
def self.from_h(hash)
|
|
19
|
-
new(value:
|
|
19
|
+
new(value: ACP::Types::Check.boolean(ACP::Types::Check.key(hash, 'value'), 'value'))
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
# @rbs return: Hash[String, untyped]
|
|
@@ -16,7 +16,7 @@ class ACP::Types::SetSessionConfigOptionRequest::Value::ValueId
|
|
|
16
16
|
# @rbs hash: Hash[String, untyped]
|
|
17
17
|
# @rbs return: ACP::Types::SetSessionConfigOptionRequest::Value::ValueId
|
|
18
18
|
def self.from_h(hash)
|
|
19
|
-
new(value:
|
|
19
|
+
new(value: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'value'), 'value'))
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
# @rbs return: Hash[String, untyped]
|
|
@@ -32,8 +32,8 @@ class ACP::Types::SetSessionConfigOptionRequest
|
|
|
32
32
|
# @rbs return: ACP::Types::SetSessionConfigOptionRequest
|
|
33
33
|
def self.from_h(hash)
|
|
34
34
|
new(
|
|
35
|
-
session_id:
|
|
36
|
-
config_id:
|
|
35
|
+
session_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'sessionId'), 'sessionId'),
|
|
36
|
+
config_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'configId'), 'configId'),
|
|
37
37
|
meta: hash['_meta'],
|
|
38
38
|
value: ACP::Types::SetSessionConfigOptionRequest::Value.from_h(hash)
|
|
39
39
|
)
|
|
@@ -21,10 +21,13 @@ class ACP::Types::SetSessionConfigOptionResponse
|
|
|
21
21
|
# @rbs hash: Hash[String, untyped]
|
|
22
22
|
# @rbs return: ACP::Types::SetSessionConfigOptionResponse
|
|
23
23
|
def self.from_h(hash)
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
)
|
|
24
|
+
config_options = ACP::Types::Check.array(
|
|
25
|
+
ACP::Types::Check.key(hash, 'configOptions'),
|
|
26
|
+
'configOptions'
|
|
27
|
+
) do |item, path|
|
|
28
|
+
ACP::Types::Check.object(item, path, ACP::Types::SessionConfigOption)
|
|
29
|
+
end
|
|
30
|
+
new(config_options:, meta: hash['_meta'])
|
|
28
31
|
end
|
|
29
32
|
|
|
30
33
|
# @rbs return: Hash[String, untyped]
|
|
@@ -26,7 +26,11 @@ class ACP::Types::SetSessionModeRequest
|
|
|
26
26
|
# @rbs hash: Hash[String, untyped]
|
|
27
27
|
# @rbs return: ACP::Types::SetSessionModeRequest
|
|
28
28
|
def self.from_h(hash)
|
|
29
|
-
new(
|
|
29
|
+
new(
|
|
30
|
+
session_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'sessionId'), 'sessionId'),
|
|
31
|
+
mode_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'modeId'), 'modeId'),
|
|
32
|
+
meta: hash['_meta']
|
|
33
|
+
)
|
|
30
34
|
end
|
|
31
35
|
|
|
32
36
|
# @rbs return: Hash[String, untyped]
|
|
@@ -21,7 +21,10 @@ class ACP::Types::StringMultiSelectItems
|
|
|
21
21
|
# @rbs hash: Hash[String, untyped]
|
|
22
22
|
# @rbs return: ACP::Types::StringMultiSelectItems
|
|
23
23
|
def self.from_h(hash)
|
|
24
|
-
|
|
24
|
+
enum = ACP::Types::Check.array(ACP::Types::Check.key(hash, 'enum'), 'enum') do |item, path|
|
|
25
|
+
ACP::Types::Check.string(item, path)
|
|
26
|
+
end
|
|
27
|
+
new(enum:, meta: hash['_meta'])
|
|
25
28
|
end
|
|
26
29
|
|
|
27
30
|
# @rbs return: Hash[String, untyped]
|
|
@@ -72,16 +72,22 @@ class ACP::Types::StringPropertySchema
|
|
|
72
72
|
# @rbs hash: Hash[String, untyped]
|
|
73
73
|
# @rbs return: ACP::Types::StringPropertySchema
|
|
74
74
|
def self.from_h(hash)
|
|
75
|
+
enum = ACP::Types::Check.array(hash['enum'], 'enum', allow_nil: true) do |item, path|
|
|
76
|
+
ACP::Types::Check.string(item, path)
|
|
77
|
+
end
|
|
78
|
+
one_of = ACP::Types::Check.array(hash['oneOf'], 'oneOf', allow_nil: true) do |item, path|
|
|
79
|
+
ACP::Types::Check.object(item, path, ACP::Types::EnumOption)
|
|
80
|
+
end
|
|
75
81
|
new(
|
|
76
|
-
title: hash['title'],
|
|
77
|
-
description: hash['description'],
|
|
78
|
-
min_length: hash['minLength'],
|
|
79
|
-
max_length: hash['maxLength'],
|
|
80
|
-
pattern: hash['pattern'],
|
|
81
|
-
format: hash['format'],
|
|
82
|
-
default: hash['default'],
|
|
83
|
-
enum
|
|
84
|
-
one_of
|
|
82
|
+
title: ACP::Types::Check.string(hash['title'], 'title', allow_nil: true),
|
|
83
|
+
description: ACP::Types::Check.string(hash['description'], 'description', allow_nil: true),
|
|
84
|
+
min_length: ACP::Types::Check.integer(hash['minLength'], 'minLength', min: 0, allow_nil: true),
|
|
85
|
+
max_length: ACP::Types::Check.integer(hash['maxLength'], 'maxLength', min: 0, allow_nil: true),
|
|
86
|
+
pattern: ACP::Types::Check.string(hash['pattern'], 'pattern', allow_nil: true),
|
|
87
|
+
format: ACP::Types::Check.enum(hash['format'], 'format', %w[email uri date date-time], allow_nil: true),
|
|
88
|
+
default: ACP::Types::Check.string(hash['default'], 'default', allow_nil: true),
|
|
89
|
+
enum:,
|
|
90
|
+
one_of:,
|
|
85
91
|
meta: hash['_meta']
|
|
86
92
|
)
|
|
87
93
|
end
|
data/lib/acp/types/terminal.rb
CHANGED
|
@@ -21,7 +21,10 @@ class ACP::Types::Terminal
|
|
|
21
21
|
# @rbs hash: Hash[String, untyped]
|
|
22
22
|
# @rbs return: ACP::Types::Terminal
|
|
23
23
|
def self.from_h(hash)
|
|
24
|
-
new(
|
|
24
|
+
new(
|
|
25
|
+
terminal_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'terminalId'), 'terminalId'),
|
|
26
|
+
meta: hash['_meta']
|
|
27
|
+
)
|
|
25
28
|
end
|
|
26
29
|
|
|
27
30
|
# @rbs return: Hash[String, untyped]
|
|
@@ -26,7 +26,11 @@ class ACP::Types::TerminalExitStatus
|
|
|
26
26
|
# @rbs hash: Hash[String, untyped]
|
|
27
27
|
# @rbs return: ACP::Types::TerminalExitStatus
|
|
28
28
|
def self.from_h(hash)
|
|
29
|
-
new(
|
|
29
|
+
new(
|
|
30
|
+
exit_code: ACP::Types::Check.integer(hash['exitCode'], 'exitCode', min: 0, allow_nil: true),
|
|
31
|
+
signal: ACP::Types::Check.string(hash['signal'], 'signal', allow_nil: true),
|
|
32
|
+
meta: hash['_meta']
|
|
33
|
+
)
|
|
30
34
|
end
|
|
31
35
|
|
|
32
36
|
# @rbs return: Hash[String, untyped]
|
|
@@ -26,7 +26,11 @@ class ACP::Types::TerminalOutputRequest
|
|
|
26
26
|
# @rbs hash: Hash[String, untyped]
|
|
27
27
|
# @rbs return: ACP::Types::TerminalOutputRequest
|
|
28
28
|
def self.from_h(hash)
|
|
29
|
-
new(
|
|
29
|
+
new(
|
|
30
|
+
session_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'sessionId'), 'sessionId'),
|
|
31
|
+
terminal_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'terminalId'), 'terminalId'),
|
|
32
|
+
meta: hash['_meta']
|
|
33
|
+
)
|
|
30
34
|
end
|
|
31
35
|
|
|
32
36
|
# @rbs return: Hash[String, untyped]
|
|
@@ -32,9 +32,14 @@ class ACP::Types::TerminalOutputResponse
|
|
|
32
32
|
# @rbs return: ACP::Types::TerminalOutputResponse
|
|
33
33
|
def self.from_h(hash)
|
|
34
34
|
new(
|
|
35
|
-
output:
|
|
36
|
-
truncated:
|
|
37
|
-
exit_status:
|
|
35
|
+
output: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'output'), 'output'),
|
|
36
|
+
truncated: ACP::Types::Check.boolean(ACP::Types::Check.key(hash, 'truncated'), 'truncated'),
|
|
37
|
+
exit_status: ACP::Types::Check.object(
|
|
38
|
+
hash['exitStatus'],
|
|
39
|
+
'exitStatus',
|
|
40
|
+
ACP::Types::TerminalExitStatus,
|
|
41
|
+
allow_nil: true
|
|
42
|
+
),
|
|
38
43
|
meta: hash['_meta']
|
|
39
44
|
)
|
|
40
45
|
end
|
|
@@ -27,8 +27,13 @@ class ACP::Types::TextContent
|
|
|
27
27
|
# @rbs return: ACP::Types::TextContent
|
|
28
28
|
def self.from_h(hash)
|
|
29
29
|
new(
|
|
30
|
-
annotations:
|
|
31
|
-
|
|
30
|
+
annotations: ACP::Types::Check.object(
|
|
31
|
+
hash['annotations'],
|
|
32
|
+
'annotations',
|
|
33
|
+
ACP::Types::Annotations,
|
|
34
|
+
allow_nil: true
|
|
35
|
+
),
|
|
36
|
+
text: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'text'), 'text'),
|
|
32
37
|
meta: hash['_meta']
|
|
33
38
|
)
|
|
34
39
|
end
|
|
@@ -31,7 +31,12 @@ class ACP::Types::TextResourceContents
|
|
|
31
31
|
# @rbs hash: Hash[String, untyped]
|
|
32
32
|
# @rbs return: ACP::Types::TextResourceContents
|
|
33
33
|
def self.from_h(hash)
|
|
34
|
-
new(
|
|
34
|
+
new(
|
|
35
|
+
mime_type: ACP::Types::Check.string(hash['mimeType'], 'mimeType', allow_nil: true),
|
|
36
|
+
text: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'text'), 'text'),
|
|
37
|
+
uri: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'uri'), 'uri'),
|
|
38
|
+
meta: hash['_meta']
|
|
39
|
+
)
|
|
35
40
|
end
|
|
36
41
|
|
|
37
42
|
# @rbs return: Hash[String, untyped]
|
|
@@ -21,7 +21,10 @@ class ACP::Types::TitledMultiSelectItems
|
|
|
21
21
|
# @rbs hash: Hash[String, untyped]
|
|
22
22
|
# @rbs return: ACP::Types::TitledMultiSelectItems
|
|
23
23
|
def self.from_h(hash)
|
|
24
|
-
|
|
24
|
+
any_of = ACP::Types::Check.array(ACP::Types::Check.key(hash, 'anyOf'), 'anyOf') do |item, path|
|
|
25
|
+
ACP::Types::Check.object(item, path, ACP::Types::EnumOption)
|
|
26
|
+
end
|
|
27
|
+
new(any_of:, meta: hash['_meta'])
|
|
25
28
|
end
|
|
26
29
|
|
|
27
30
|
# @rbs return: Hash[String, untyped]
|
data/lib/acp/types/tool_call.rb
CHANGED
|
@@ -72,14 +72,30 @@ class ACP::Types::ToolCall
|
|
|
72
72
|
# @rbs hash: Hash[String, untyped]
|
|
73
73
|
# @rbs return: ACP::Types::ToolCall
|
|
74
74
|
def self.from_h(hash)
|
|
75
|
+
content = ACP::Types::Check.array(hash['content'], 'content', allow_nil: true) do |item, path|
|
|
76
|
+
ACP::Types::Check.object(item, path, ACP::Types::ToolCallContent)
|
|
77
|
+
end
|
|
78
|
+
locations = ACP::Types::Check.array(hash['locations'], 'locations', allow_nil: true) do |item, path|
|
|
79
|
+
ACP::Types::Check.object(item, path, ACP::Types::ToolCallLocation)
|
|
80
|
+
end
|
|
75
81
|
new(
|
|
76
|
-
tool_call_id:
|
|
77
|
-
title:
|
|
78
|
-
name: hash['name'],
|
|
79
|
-
kind:
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
82
|
+
tool_call_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'toolCallId'), 'toolCallId'),
|
|
83
|
+
title: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'title'), 'title'),
|
|
84
|
+
name: ACP::Types::Check.string(hash['name'], 'name', allow_nil: true),
|
|
85
|
+
kind: ACP::Types::Check.enum(
|
|
86
|
+
hash['kind'],
|
|
87
|
+
'kind',
|
|
88
|
+
%w[read edit delete move search execute think fetch switch_mode other],
|
|
89
|
+
allow_nil: true
|
|
90
|
+
),
|
|
91
|
+
status: ACP::Types::Check.enum(
|
|
92
|
+
hash['status'],
|
|
93
|
+
'status',
|
|
94
|
+
%w[pending in_progress completed failed],
|
|
95
|
+
allow_nil: true
|
|
96
|
+
),
|
|
97
|
+
content:,
|
|
98
|
+
locations:,
|
|
83
99
|
raw_input: hash['rawInput'],
|
|
84
100
|
raw_output: hash['rawOutput'],
|
|
85
101
|
meta: hash['_meta']
|
|
@@ -21,7 +21,10 @@ class ACP::Types::ToolCallContent::Content
|
|
|
21
21
|
# @rbs hash: Hash[String, untyped]
|
|
22
22
|
# @rbs return: ACP::Types::ToolCallContent::Content
|
|
23
23
|
def self.from_h(hash)
|
|
24
|
-
new(
|
|
24
|
+
new(
|
|
25
|
+
content: ACP::Types::Check.object(ACP::Types::Check.key(hash, 'content'), 'content', ACP::Types::ContentBlock),
|
|
26
|
+
meta: hash['_meta']
|
|
27
|
+
)
|
|
25
28
|
end
|
|
26
29
|
|
|
27
30
|
# @rbs return: Hash[String, untyped]
|
|
@@ -31,7 +31,12 @@ class ACP::Types::ToolCallContent::Diff
|
|
|
31
31
|
# @rbs hash: Hash[String, untyped]
|
|
32
32
|
# @rbs return: ACP::Types::ToolCallContent::Diff
|
|
33
33
|
def self.from_h(hash)
|
|
34
|
-
new(
|
|
34
|
+
new(
|
|
35
|
+
path: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'path'), 'path'),
|
|
36
|
+
old_text: ACP::Types::Check.string(hash['oldText'], 'oldText', allow_nil: true),
|
|
37
|
+
new_text: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'newText'), 'newText'),
|
|
38
|
+
meta: hash['_meta']
|
|
39
|
+
)
|
|
35
40
|
end
|
|
36
41
|
|
|
37
42
|
# @rbs return: Hash[String, untyped]
|
|
@@ -21,7 +21,10 @@ class ACP::Types::ToolCallContent::Terminal
|
|
|
21
21
|
# @rbs hash: Hash[String, untyped]
|
|
22
22
|
# @rbs return: ACP::Types::ToolCallContent::Terminal
|
|
23
23
|
def self.from_h(hash)
|
|
24
|
-
new(
|
|
24
|
+
new(
|
|
25
|
+
terminal_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'terminalId'), 'terminalId'),
|
|
26
|
+
meta: hash['_meta']
|
|
27
|
+
)
|
|
25
28
|
end
|
|
26
29
|
|
|
27
30
|
# @rbs return: Hash[String, untyped]
|
|
@@ -26,7 +26,11 @@ class ACP::Types::ToolCallLocation
|
|
|
26
26
|
# @rbs hash: Hash[String, untyped]
|
|
27
27
|
# @rbs return: ACP::Types::ToolCallLocation
|
|
28
28
|
def self.from_h(hash)
|
|
29
|
-
new(
|
|
29
|
+
new(
|
|
30
|
+
path: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'path'), 'path'),
|
|
31
|
+
line: ACP::Types::Check.integer(hash['line'], 'line', min: 0, allow_nil: true),
|
|
32
|
+
meta: hash['_meta']
|
|
33
|
+
)
|
|
30
34
|
end
|
|
31
35
|
|
|
32
36
|
# @rbs return: Hash[String, untyped]
|
|
@@ -72,14 +72,30 @@ class ACP::Types::ToolCallUpdate
|
|
|
72
72
|
# @rbs hash: Hash[String, untyped]
|
|
73
73
|
# @rbs return: ACP::Types::ToolCallUpdate
|
|
74
74
|
def self.from_h(hash)
|
|
75
|
+
content = ACP::Types::Check.array(hash['content'], 'content', allow_nil: true) do |item, path|
|
|
76
|
+
ACP::Types::Check.object(item, path, ACP::Types::ToolCallContent)
|
|
77
|
+
end
|
|
78
|
+
locations = ACP::Types::Check.array(hash['locations'], 'locations', allow_nil: true) do |item, path|
|
|
79
|
+
ACP::Types::Check.object(item, path, ACP::Types::ToolCallLocation)
|
|
80
|
+
end
|
|
75
81
|
new(
|
|
76
|
-
tool_call_id:
|
|
77
|
-
kind:
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
82
|
+
tool_call_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'toolCallId'), 'toolCallId'),
|
|
83
|
+
kind: ACP::Types::Check.enum(
|
|
84
|
+
hash['kind'],
|
|
85
|
+
'kind',
|
|
86
|
+
%w[read edit delete move search execute think fetch switch_mode other],
|
|
87
|
+
allow_nil: true
|
|
88
|
+
),
|
|
89
|
+
status: ACP::Types::Check.enum(
|
|
90
|
+
hash['status'],
|
|
91
|
+
'status',
|
|
92
|
+
%w[pending in_progress completed failed],
|
|
93
|
+
allow_nil: true
|
|
94
|
+
),
|
|
95
|
+
title: ACP::Types::Check.string(hash['title'], 'title', allow_nil: true),
|
|
96
|
+
name: ACP::Types::Check.string(hash['name'], 'name', allow_nil: true),
|
|
97
|
+
content:,
|
|
98
|
+
locations:,
|
|
83
99
|
raw_input: hash['rawInput'],
|
|
84
100
|
raw_output: hash['rawOutput'],
|
|
85
101
|
meta: hash['_meta']
|
|
@@ -21,7 +21,7 @@ class ACP::Types::UnstructuredCommandInput
|
|
|
21
21
|
# @rbs hash: Hash[String, untyped]
|
|
22
22
|
# @rbs return: ACP::Types::UnstructuredCommandInput
|
|
23
23
|
def self.from_h(hash)
|
|
24
|
-
new(hint:
|
|
24
|
+
new(hint: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'hint'), 'hint'), meta: hash['_meta'])
|
|
25
25
|
end
|
|
26
26
|
|
|
27
27
|
# @rbs return: Hash[String, untyped]
|
|
@@ -32,9 +32,9 @@ class ACP::Types::UsageUpdate
|
|
|
32
32
|
# @rbs return: ACP::Types::UsageUpdate
|
|
33
33
|
def self.from_h(hash)
|
|
34
34
|
new(
|
|
35
|
-
used:
|
|
36
|
-
size:
|
|
37
|
-
cost: hash['cost']
|
|
35
|
+
used: ACP::Types::Check.integer(ACP::Types::Check.key(hash, 'used'), 'used', min: 0),
|
|
36
|
+
size: ACP::Types::Check.integer(ACP::Types::Check.key(hash, 'size'), 'size', min: 0),
|
|
37
|
+
cost: ACP::Types::Check.object(hash['cost'], 'cost', ACP::Types::Cost, allow_nil: true),
|
|
38
38
|
meta: hash['_meta']
|
|
39
39
|
)
|
|
40
40
|
end
|
|
@@ -26,7 +26,11 @@ class ACP::Types::WaitForTerminalExitRequest
|
|
|
26
26
|
# @rbs hash: Hash[String, untyped]
|
|
27
27
|
# @rbs return: ACP::Types::WaitForTerminalExitRequest
|
|
28
28
|
def self.from_h(hash)
|
|
29
|
-
new(
|
|
29
|
+
new(
|
|
30
|
+
session_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'sessionId'), 'sessionId'),
|
|
31
|
+
terminal_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'terminalId'), 'terminalId'),
|
|
32
|
+
meta: hash['_meta']
|
|
33
|
+
)
|
|
30
34
|
end
|
|
31
35
|
|
|
32
36
|
# @rbs return: Hash[String, untyped]
|
|
@@ -26,7 +26,11 @@ class ACP::Types::WaitForTerminalExitResponse
|
|
|
26
26
|
# @rbs hash: Hash[String, untyped]
|
|
27
27
|
# @rbs return: ACP::Types::WaitForTerminalExitResponse
|
|
28
28
|
def self.from_h(hash)
|
|
29
|
-
new(
|
|
29
|
+
new(
|
|
30
|
+
exit_code: ACP::Types::Check.integer(hash['exitCode'], 'exitCode', min: 0, allow_nil: true),
|
|
31
|
+
signal: ACP::Types::Check.string(hash['signal'], 'signal', allow_nil: true),
|
|
32
|
+
meta: hash['_meta']
|
|
33
|
+
)
|
|
30
34
|
end
|
|
31
35
|
|
|
32
36
|
# @rbs return: Hash[String, untyped]
|
|
@@ -32,9 +32,9 @@ class ACP::Types::WriteTextFileRequest
|
|
|
32
32
|
# @rbs return: ACP::Types::WriteTextFileRequest
|
|
33
33
|
def self.from_h(hash)
|
|
34
34
|
new(
|
|
35
|
-
session_id:
|
|
36
|
-
path:
|
|
37
|
-
content:
|
|
35
|
+
session_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'sessionId'), 'sessionId'),
|
|
36
|
+
path: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'path'), 'path'),
|
|
37
|
+
content: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'content'), 'content'),
|
|
38
38
|
meta: hash['_meta']
|
|
39
39
|
)
|
|
40
40
|
end
|