acp-sdk 0.7.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 +12 -0
- data/README.md +2 -1
- data/lib/acp/agent_connection/client.rb +1 -1
- data/lib/acp/agent_connection.rb +3 -1
- data/lib/acp/client_connection.rb +93 -4
- data/lib/acp/request_error.rb +15 -2
- 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 +39 -1
- data/sig/generated/acp/request_error.rbs +12 -1
- data/sig/generated/acp/types.rbs +143 -0
- metadata +1 -1
|
@@ -31,7 +31,12 @@ class ACP::Types::Implementation
|
|
|
31
31
|
# @rbs hash: Hash[String, untyped]
|
|
32
32
|
# @rbs return: ACP::Types::Implementation
|
|
33
33
|
def self.from_h(hash)
|
|
34
|
-
new(
|
|
34
|
+
new(
|
|
35
|
+
name: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'name'), 'name'),
|
|
36
|
+
title: ACP::Types::Check.string(hash['title'], 'title', allow_nil: true),
|
|
37
|
+
version: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'version'), 'version'),
|
|
38
|
+
meta: hash['_meta']
|
|
39
|
+
)
|
|
35
40
|
end
|
|
36
41
|
|
|
37
42
|
# @rbs return: Hash[String, untyped]
|
|
@@ -32,9 +32,24 @@ class ACP::Types::InitializeRequest
|
|
|
32
32
|
# @rbs return: ACP::Types::InitializeRequest
|
|
33
33
|
def self.from_h(hash)
|
|
34
34
|
new(
|
|
35
|
-
protocol_version:
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
protocol_version: ACP::Types::Check.integer(
|
|
36
|
+
ACP::Types::Check.key(hash, 'protocolVersion'),
|
|
37
|
+
'protocolVersion',
|
|
38
|
+
min: 0,
|
|
39
|
+
max: 65_535
|
|
40
|
+
),
|
|
41
|
+
client_capabilities: ACP::Types::Check.object(
|
|
42
|
+
hash['clientCapabilities'],
|
|
43
|
+
'clientCapabilities',
|
|
44
|
+
ACP::Types::ClientCapabilities,
|
|
45
|
+
allow_nil: true
|
|
46
|
+
),
|
|
47
|
+
client_info: ACP::Types::Check.object(
|
|
48
|
+
hash['clientInfo'],
|
|
49
|
+
'clientInfo',
|
|
50
|
+
ACP::Types::Implementation,
|
|
51
|
+
allow_nil: true
|
|
52
|
+
),
|
|
38
53
|
meta: hash['_meta']
|
|
39
54
|
)
|
|
40
55
|
end
|
|
@@ -36,11 +36,24 @@ class ACP::Types::InitializeResponse
|
|
|
36
36
|
# @rbs hash: Hash[String, untyped]
|
|
37
37
|
# @rbs return: ACP::Types::InitializeResponse
|
|
38
38
|
def self.from_h(hash)
|
|
39
|
+
auth_methods = ACP::Types::Check.array(hash['authMethods'], 'authMethods', allow_nil: true) do |item, path|
|
|
40
|
+
ACP::Types::Check.object(item, path, ACP::Types::AuthMethod)
|
|
41
|
+
end
|
|
39
42
|
new(
|
|
40
|
-
protocol_version:
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
43
|
+
protocol_version: ACP::Types::Check.integer(
|
|
44
|
+
ACP::Types::Check.key(hash, 'protocolVersion'),
|
|
45
|
+
'protocolVersion',
|
|
46
|
+
min: 0,
|
|
47
|
+
max: 65_535
|
|
48
|
+
),
|
|
49
|
+
agent_capabilities: ACP::Types::Check.object(
|
|
50
|
+
hash['agentCapabilities'],
|
|
51
|
+
'agentCapabilities',
|
|
52
|
+
ACP::Types::AgentCapabilities,
|
|
53
|
+
allow_nil: true
|
|
54
|
+
),
|
|
55
|
+
auth_methods:,
|
|
56
|
+
agent_info: ACP::Types::Check.object(hash['agentInfo'], 'agentInfo', ACP::Types::Implementation, allow_nil: true),
|
|
44
57
|
meta: hash['_meta']
|
|
45
58
|
)
|
|
46
59
|
end
|
|
@@ -42,11 +42,11 @@ class ACP::Types::IntegerPropertySchema
|
|
|
42
42
|
# @rbs return: ACP::Types::IntegerPropertySchema
|
|
43
43
|
def self.from_h(hash)
|
|
44
44
|
new(
|
|
45
|
-
title: hash['title'],
|
|
46
|
-
description: hash['description'],
|
|
47
|
-
minimum: hash['minimum'],
|
|
48
|
-
maximum: hash['maximum'],
|
|
49
|
-
default: hash['default'],
|
|
45
|
+
title: ACP::Types::Check.string(hash['title'], 'title', allow_nil: true),
|
|
46
|
+
description: ACP::Types::Check.string(hash['description'], 'description', allow_nil: true),
|
|
47
|
+
minimum: ACP::Types::Check.integer(hash['minimum'], 'minimum', allow_nil: true),
|
|
48
|
+
maximum: ACP::Types::Check.integer(hash['maximum'], 'maximum', allow_nil: true),
|
|
49
|
+
default: ACP::Types::Check.integer(hash['default'], 'default', allow_nil: true),
|
|
50
50
|
meta: hash['_meta']
|
|
51
51
|
)
|
|
52
52
|
end
|
|
@@ -26,7 +26,11 @@ class ACP::Types::KillTerminalRequest
|
|
|
26
26
|
# @rbs hash: Hash[String, untyped]
|
|
27
27
|
# @rbs return: ACP::Types::KillTerminalRequest
|
|
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::ListSessionsRequest
|
|
|
26
26
|
# @rbs hash: Hash[String, untyped]
|
|
27
27
|
# @rbs return: ACP::Types::ListSessionsRequest
|
|
28
28
|
def self.from_h(hash)
|
|
29
|
-
new(
|
|
29
|
+
new(
|
|
30
|
+
cwd: ACP::Types::Check.string(hash['cwd'], 'cwd', allow_nil: true),
|
|
31
|
+
cursor: ACP::Types::Check.string(hash['cursor'], 'cursor', allow_nil: true),
|
|
32
|
+
meta: hash['_meta']
|
|
33
|
+
)
|
|
30
34
|
end
|
|
31
35
|
|
|
32
36
|
# @rbs return: Hash[String, untyped]
|
|
@@ -26,9 +26,12 @@ class ACP::Types::ListSessionsResponse
|
|
|
26
26
|
# @rbs hash: Hash[String, untyped]
|
|
27
27
|
# @rbs return: ACP::Types::ListSessionsResponse
|
|
28
28
|
def self.from_h(hash)
|
|
29
|
+
sessions = ACP::Types::Check.array(ACP::Types::Check.key(hash, 'sessions'), 'sessions') do |item, path|
|
|
30
|
+
ACP::Types::Check.object(item, path, ACP::Types::SessionInfo)
|
|
31
|
+
end
|
|
29
32
|
new(
|
|
30
|
-
sessions
|
|
31
|
-
next_cursor: hash['nextCursor'],
|
|
33
|
+
sessions:,
|
|
34
|
+
next_cursor: ACP::Types::Check.string(hash['nextCursor'], 'nextCursor', allow_nil: true),
|
|
32
35
|
meta: hash['_meta']
|
|
33
36
|
)
|
|
34
37
|
end
|
|
@@ -36,11 +36,21 @@ class ACP::Types::LoadSessionRequest
|
|
|
36
36
|
# @rbs hash: Hash[String, untyped]
|
|
37
37
|
# @rbs return: ACP::Types::LoadSessionRequest
|
|
38
38
|
def self.from_h(hash)
|
|
39
|
+
mcp_servers = ACP::Types::Check.array(ACP::Types::Check.key(hash, 'mcpServers'), 'mcpServers') do |item, path|
|
|
40
|
+
ACP::Types::Check.object(item, path, ACP::Types::McpServer)
|
|
41
|
+
end
|
|
42
|
+
additional_directories = ACP::Types::Check.array(
|
|
43
|
+
hash['additionalDirectories'],
|
|
44
|
+
'additionalDirectories',
|
|
45
|
+
allow_nil: true
|
|
46
|
+
) do |item, path|
|
|
47
|
+
ACP::Types::Check.string(item, path)
|
|
48
|
+
end
|
|
39
49
|
new(
|
|
40
|
-
mcp_servers
|
|
41
|
-
cwd:
|
|
42
|
-
additional_directories
|
|
43
|
-
session_id:
|
|
50
|
+
mcp_servers:,
|
|
51
|
+
cwd: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'cwd'), 'cwd'),
|
|
52
|
+
additional_directories:,
|
|
53
|
+
session_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'sessionId'), 'sessionId'),
|
|
44
54
|
meta: hash['_meta']
|
|
45
55
|
)
|
|
46
56
|
end
|
|
@@ -26,9 +26,12 @@ class ACP::Types::LoadSessionResponse
|
|
|
26
26
|
# @rbs hash: Hash[String, untyped]
|
|
27
27
|
# @rbs return: ACP::Types::LoadSessionResponse
|
|
28
28
|
def self.from_h(hash)
|
|
29
|
+
config_options = ACP::Types::Check.array(hash['configOptions'], 'configOptions', allow_nil: true) do |item, path|
|
|
30
|
+
ACP::Types::Check.object(item, path, ACP::Types::SessionConfigOption)
|
|
31
|
+
end
|
|
29
32
|
new(
|
|
30
|
-
modes: hash['modes']
|
|
31
|
-
config_options
|
|
33
|
+
modes: ACP::Types::Check.object(hash['modes'], 'modes', ACP::Types::SessionModeState, allow_nil: true),
|
|
34
|
+
config_options:,
|
|
32
35
|
meta: hash['_meta']
|
|
33
36
|
)
|
|
34
37
|
end
|
|
@@ -26,7 +26,11 @@ class ACP::Types::McpCapabilities
|
|
|
26
26
|
# @rbs hash: Hash[String, untyped]
|
|
27
27
|
# @rbs return: ACP::Types::McpCapabilities
|
|
28
28
|
def self.from_h(hash)
|
|
29
|
-
new(
|
|
29
|
+
new(
|
|
30
|
+
http: ACP::Types::Check.boolean(hash['http'], 'http', allow_nil: true),
|
|
31
|
+
sse: ACP::Types::Check.boolean(hash['sse'], 'sse', allow_nil: true),
|
|
32
|
+
meta: hash['_meta']
|
|
33
|
+
)
|
|
30
34
|
end
|
|
31
35
|
|
|
32
36
|
# @rbs return: Hash[String, untyped]
|
|
@@ -31,10 +31,13 @@ class ACP::Types::McpServer::Http
|
|
|
31
31
|
# @rbs hash: Hash[String, untyped]
|
|
32
32
|
# @rbs return: ACP::Types::McpServer::Http
|
|
33
33
|
def self.from_h(hash)
|
|
34
|
+
headers = ACP::Types::Check.array(ACP::Types::Check.key(hash, 'headers'), 'headers') do |item, path|
|
|
35
|
+
ACP::Types::Check.object(item, path, ACP::Types::HttpHeader)
|
|
36
|
+
end
|
|
34
37
|
new(
|
|
35
|
-
name:
|
|
36
|
-
url:
|
|
37
|
-
headers
|
|
38
|
+
name: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'name'), 'name'),
|
|
39
|
+
url: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'url'), 'url'),
|
|
40
|
+
headers:,
|
|
38
41
|
meta: hash['_meta']
|
|
39
42
|
)
|
|
40
43
|
end
|
|
@@ -31,10 +31,13 @@ class ACP::Types::McpServer::Sse
|
|
|
31
31
|
# @rbs hash: Hash[String, untyped]
|
|
32
32
|
# @rbs return: ACP::Types::McpServer::Sse
|
|
33
33
|
def self.from_h(hash)
|
|
34
|
+
headers = ACP::Types::Check.array(ACP::Types::Check.key(hash, 'headers'), 'headers') do |item, path|
|
|
35
|
+
ACP::Types::Check.object(item, path, ACP::Types::HttpHeader)
|
|
36
|
+
end
|
|
34
37
|
new(
|
|
35
|
-
name:
|
|
36
|
-
url:
|
|
37
|
-
headers
|
|
38
|
+
name: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'name'), 'name'),
|
|
39
|
+
url: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'url'), 'url'),
|
|
40
|
+
headers:,
|
|
38
41
|
meta: hash['_meta']
|
|
39
42
|
)
|
|
40
43
|
end
|
|
@@ -31,10 +31,13 @@ class ACP::Types::McpServerHttp
|
|
|
31
31
|
# @rbs hash: Hash[String, untyped]
|
|
32
32
|
# @rbs return: ACP::Types::McpServerHttp
|
|
33
33
|
def self.from_h(hash)
|
|
34
|
+
headers = ACP::Types::Check.array(ACP::Types::Check.key(hash, 'headers'), 'headers') do |item, path|
|
|
35
|
+
ACP::Types::Check.object(item, path, ACP::Types::HttpHeader)
|
|
36
|
+
end
|
|
34
37
|
new(
|
|
35
|
-
name:
|
|
36
|
-
url:
|
|
37
|
-
headers
|
|
38
|
+
name: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'name'), 'name'),
|
|
39
|
+
url: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'url'), 'url'),
|
|
40
|
+
headers:,
|
|
38
41
|
meta: hash['_meta']
|
|
39
42
|
)
|
|
40
43
|
end
|
|
@@ -31,10 +31,13 @@ class ACP::Types::McpServerSse
|
|
|
31
31
|
# @rbs hash: Hash[String, untyped]
|
|
32
32
|
# @rbs return: ACP::Types::McpServerSse
|
|
33
33
|
def self.from_h(hash)
|
|
34
|
+
headers = ACP::Types::Check.array(ACP::Types::Check.key(hash, 'headers'), 'headers') do |item, path|
|
|
35
|
+
ACP::Types::Check.object(item, path, ACP::Types::HttpHeader)
|
|
36
|
+
end
|
|
34
37
|
new(
|
|
35
|
-
name:
|
|
36
|
-
url:
|
|
37
|
-
headers
|
|
38
|
+
name: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'name'), 'name'),
|
|
39
|
+
url: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'url'), 'url'),
|
|
40
|
+
headers:,
|
|
38
41
|
meta: hash['_meta']
|
|
39
42
|
)
|
|
40
43
|
end
|
|
@@ -36,11 +36,17 @@ class ACP::Types::McpServerStdio
|
|
|
36
36
|
# @rbs hash: Hash[String, untyped]
|
|
37
37
|
# @rbs return: ACP::Types::McpServerStdio
|
|
38
38
|
def self.from_h(hash)
|
|
39
|
+
args = ACP::Types::Check.array(ACP::Types::Check.key(hash, 'args'), 'args') do |item, path|
|
|
40
|
+
ACP::Types::Check.string(item, path)
|
|
41
|
+
end
|
|
42
|
+
env = ACP::Types::Check.array(ACP::Types::Check.key(hash, 'env'), 'env') do |item, path|
|
|
43
|
+
ACP::Types::Check.object(item, path, ACP::Types::EnvVariable)
|
|
44
|
+
end
|
|
39
45
|
new(
|
|
40
|
-
name:
|
|
41
|
-
command:
|
|
42
|
-
args
|
|
43
|
-
env
|
|
46
|
+
name: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'name'), 'name'),
|
|
47
|
+
command: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'command'), 'command'),
|
|
48
|
+
args:,
|
|
49
|
+
env:,
|
|
44
50
|
meta: hash['_meta']
|
|
45
51
|
)
|
|
46
52
|
end
|
|
@@ -21,7 +21,10 @@ class ACP::Types::MultiSelectItems::StringMultiSelectItems
|
|
|
21
21
|
# @rbs hash: Hash[String, untyped]
|
|
22
22
|
# @rbs return: ACP::Types::MultiSelectItems::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]
|
|
@@ -46,13 +46,16 @@ class ACP::Types::MultiSelectPropertySchema
|
|
|
46
46
|
# @rbs hash: Hash[String, untyped]
|
|
47
47
|
# @rbs return: ACP::Types::MultiSelectPropertySchema
|
|
48
48
|
def self.from_h(hash)
|
|
49
|
+
default = ACP::Types::Check.array(hash['default'], 'default', allow_nil: true) do |item, path|
|
|
50
|
+
ACP::Types::Check.string(item, path)
|
|
51
|
+
end
|
|
49
52
|
new(
|
|
50
|
-
title: hash['title'],
|
|
51
|
-
description: hash['description'],
|
|
52
|
-
min_items: hash['minItems'],
|
|
53
|
-
max_items: hash['maxItems'],
|
|
54
|
-
items: ACP::Types::
|
|
55
|
-
default
|
|
53
|
+
title: ACP::Types::Check.string(hash['title'], 'title', allow_nil: true),
|
|
54
|
+
description: ACP::Types::Check.string(hash['description'], 'description', allow_nil: true),
|
|
55
|
+
min_items: ACP::Types::Check.integer(hash['minItems'], 'minItems', min: 0, allow_nil: true),
|
|
56
|
+
max_items: ACP::Types::Check.integer(hash['maxItems'], 'maxItems', min: 0, allow_nil: true),
|
|
57
|
+
items: ACP::Types::Check.object(ACP::Types::Check.key(hash, 'items'), 'items', ACP::Types::MultiSelectItems),
|
|
58
|
+
default:,
|
|
56
59
|
meta: hash['_meta']
|
|
57
60
|
)
|
|
58
61
|
end
|
|
@@ -31,10 +31,20 @@ class ACP::Types::NewSessionRequest
|
|
|
31
31
|
# @rbs hash: Hash[String, untyped]
|
|
32
32
|
# @rbs return: ACP::Types::NewSessionRequest
|
|
33
33
|
def self.from_h(hash)
|
|
34
|
+
additional_directories = ACP::Types::Check.array(
|
|
35
|
+
hash['additionalDirectories'],
|
|
36
|
+
'additionalDirectories',
|
|
37
|
+
allow_nil: true
|
|
38
|
+
) do |item, path|
|
|
39
|
+
ACP::Types::Check.string(item, path)
|
|
40
|
+
end
|
|
41
|
+
mcp_servers = ACP::Types::Check.array(ACP::Types::Check.key(hash, 'mcpServers'), 'mcpServers') do |item, path|
|
|
42
|
+
ACP::Types::Check.object(item, path, ACP::Types::McpServer)
|
|
43
|
+
end
|
|
34
44
|
new(
|
|
35
|
-
cwd:
|
|
36
|
-
additional_directories
|
|
37
|
-
mcp_servers
|
|
45
|
+
cwd: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'cwd'), 'cwd'),
|
|
46
|
+
additional_directories:,
|
|
47
|
+
mcp_servers:,
|
|
38
48
|
meta: hash['_meta']
|
|
39
49
|
)
|
|
40
50
|
end
|
|
@@ -31,10 +31,13 @@ class ACP::Types::NewSessionResponse
|
|
|
31
31
|
# @rbs hash: Hash[String, untyped]
|
|
32
32
|
# @rbs return: ACP::Types::NewSessionResponse
|
|
33
33
|
def self.from_h(hash)
|
|
34
|
+
config_options = ACP::Types::Check.array(hash['configOptions'], 'configOptions', allow_nil: true) do |item, path|
|
|
35
|
+
ACP::Types::Check.object(item, path, ACP::Types::SessionConfigOption)
|
|
36
|
+
end
|
|
34
37
|
new(
|
|
35
|
-
session_id:
|
|
36
|
-
modes: hash['modes']
|
|
37
|
-
config_options
|
|
38
|
+
session_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'sessionId'), 'sessionId'),
|
|
39
|
+
modes: ACP::Types::Check.object(hash['modes'], 'modes', ACP::Types::SessionModeState, allow_nil: true),
|
|
40
|
+
config_options:,
|
|
38
41
|
meta: hash['_meta']
|
|
39
42
|
)
|
|
40
43
|
end
|
|
@@ -42,11 +42,11 @@ class ACP::Types::NumberPropertySchema
|
|
|
42
42
|
# @rbs return: ACP::Types::NumberPropertySchema
|
|
43
43
|
def self.from_h(hash)
|
|
44
44
|
new(
|
|
45
|
-
title: hash['title'],
|
|
46
|
-
description: hash['description'],
|
|
47
|
-
minimum: hash['minimum'],
|
|
48
|
-
maximum: hash['maximum'],
|
|
49
|
-
default: hash['default'],
|
|
45
|
+
title: ACP::Types::Check.string(hash['title'], 'title', allow_nil: true),
|
|
46
|
+
description: ACP::Types::Check.string(hash['description'], 'description', allow_nil: true),
|
|
47
|
+
minimum: ACP::Types::Check.number(hash['minimum'], 'minimum', allow_nil: true),
|
|
48
|
+
maximum: ACP::Types::Check.number(hash['maximum'], 'maximum', allow_nil: true),
|
|
49
|
+
default: ACP::Types::Check.number(hash['default'], 'default', allow_nil: true),
|
|
50
50
|
meta: hash['_meta']
|
|
51
51
|
)
|
|
52
52
|
end
|
|
@@ -31,7 +31,16 @@ class ACP::Types::PermissionOption
|
|
|
31
31
|
# @rbs hash: Hash[String, untyped]
|
|
32
32
|
# @rbs return: ACP::Types::PermissionOption
|
|
33
33
|
def self.from_h(hash)
|
|
34
|
-
new(
|
|
34
|
+
new(
|
|
35
|
+
option_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'optionId'), 'optionId'),
|
|
36
|
+
name: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'name'), 'name'),
|
|
37
|
+
kind: ACP::Types::Check.enum(
|
|
38
|
+
ACP::Types::Check.key(hash, 'kind'),
|
|
39
|
+
'kind',
|
|
40
|
+
%w[allow_once allow_always reject_once reject_always]
|
|
41
|
+
),
|
|
42
|
+
meta: hash['_meta']
|
|
43
|
+
)
|
|
35
44
|
end
|
|
36
45
|
|
|
37
46
|
# @rbs return: Hash[String, untyped]
|
data/lib/acp/types/plan.rb
CHANGED
|
@@ -21,7 +21,10 @@ class ACP::Types::Plan
|
|
|
21
21
|
# @rbs hash: Hash[String, untyped]
|
|
22
22
|
# @rbs return: ACP::Types::Plan
|
|
23
23
|
def self.from_h(hash)
|
|
24
|
-
|
|
24
|
+
entries = ACP::Types::Check.array(ACP::Types::Check.key(hash, 'entries'), 'entries') do |item, path|
|
|
25
|
+
ACP::Types::Check.object(item, path, ACP::Types::PlanEntry)
|
|
26
|
+
end
|
|
27
|
+
new(entries:, meta: hash['_meta'])
|
|
25
28
|
end
|
|
26
29
|
|
|
27
30
|
# @rbs return: Hash[String, untyped]
|
data/lib/acp/types/plan_entry.rb
CHANGED
|
@@ -32,9 +32,13 @@ class ACP::Types::PlanEntry
|
|
|
32
32
|
# @rbs return: ACP::Types::PlanEntry
|
|
33
33
|
def self.from_h(hash)
|
|
34
34
|
new(
|
|
35
|
-
content:
|
|
36
|
-
priority:
|
|
37
|
-
status:
|
|
35
|
+
content: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'content'), 'content'),
|
|
36
|
+
priority: ACP::Types::Check.enum(ACP::Types::Check.key(hash, 'priority'), 'priority', %w[high medium low]),
|
|
37
|
+
status: ACP::Types::Check.enum(
|
|
38
|
+
ACP::Types::Check.key(hash, 'status'),
|
|
39
|
+
'status',
|
|
40
|
+
%w[pending in_progress completed]
|
|
41
|
+
),
|
|
38
42
|
meta: hash['_meta']
|
|
39
43
|
)
|
|
40
44
|
end
|
|
@@ -31,7 +31,12 @@ class ACP::Types::PromptCapabilities
|
|
|
31
31
|
# @rbs hash: Hash[String, untyped]
|
|
32
32
|
# @rbs return: ACP::Types::PromptCapabilities
|
|
33
33
|
def self.from_h(hash)
|
|
34
|
-
new(
|
|
34
|
+
new(
|
|
35
|
+
image: ACP::Types::Check.boolean(hash['image'], 'image', allow_nil: true),
|
|
36
|
+
audio: ACP::Types::Check.boolean(hash['audio'], 'audio', allow_nil: true),
|
|
37
|
+
embedded_context: ACP::Types::Check.boolean(hash['embeddedContext'], 'embeddedContext', allow_nil: true),
|
|
38
|
+
meta: hash['_meta']
|
|
39
|
+
)
|
|
35
40
|
end
|
|
36
41
|
|
|
37
42
|
# @rbs return: Hash[String, untyped]
|
|
@@ -26,9 +26,12 @@ class ACP::Types::PromptRequest
|
|
|
26
26
|
# @rbs hash: Hash[String, untyped]
|
|
27
27
|
# @rbs return: ACP::Types::PromptRequest
|
|
28
28
|
def self.from_h(hash)
|
|
29
|
+
prompt = ACP::Types::Check.array(ACP::Types::Check.key(hash, 'prompt'), 'prompt') do |item, path|
|
|
30
|
+
ACP::Types::Check.object(item, path, ACP::Types::ContentBlock)
|
|
31
|
+
end
|
|
29
32
|
new(
|
|
30
|
-
session_id:
|
|
31
|
-
prompt
|
|
33
|
+
session_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'sessionId'), 'sessionId'),
|
|
34
|
+
prompt:,
|
|
32
35
|
meta: hash['_meta']
|
|
33
36
|
)
|
|
34
37
|
end
|
|
@@ -21,7 +21,14 @@ class ACP::Types::PromptResponse
|
|
|
21
21
|
# @rbs hash: Hash[String, untyped]
|
|
22
22
|
# @rbs return: ACP::Types::PromptResponse
|
|
23
23
|
def self.from_h(hash)
|
|
24
|
-
new(
|
|
24
|
+
new(
|
|
25
|
+
stop_reason: ACP::Types::Check.enum(
|
|
26
|
+
ACP::Types::Check.key(hash, 'stopReason'),
|
|
27
|
+
'stopReason',
|
|
28
|
+
%w[end_turn max_tokens max_turn_requests refusal cancelled]
|
|
29
|
+
),
|
|
30
|
+
meta: hash['_meta']
|
|
31
|
+
)
|
|
25
32
|
end
|
|
26
33
|
|
|
27
34
|
# @rbs return: Hash[String, untyped]
|
|
@@ -37,10 +37,10 @@ class ACP::Types::ReadTextFileRequest
|
|
|
37
37
|
# @rbs return: ACP::Types::ReadTextFileRequest
|
|
38
38
|
def self.from_h(hash)
|
|
39
39
|
new(
|
|
40
|
-
session_id:
|
|
41
|
-
path:
|
|
42
|
-
line: hash['line'],
|
|
43
|
-
limit: hash['limit'],
|
|
40
|
+
session_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'sessionId'), 'sessionId'),
|
|
41
|
+
path: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'path'), 'path'),
|
|
42
|
+
line: ACP::Types::Check.integer(hash['line'], 'line', min: 0, allow_nil: true),
|
|
43
|
+
limit: ACP::Types::Check.integer(hash['limit'], 'limit', min: 0, allow_nil: true),
|
|
44
44
|
meta: hash['_meta']
|
|
45
45
|
)
|
|
46
46
|
end
|
|
@@ -21,7 +21,7 @@ class ACP::Types::ReadTextFileResponse
|
|
|
21
21
|
# @rbs hash: Hash[String, untyped]
|
|
22
22
|
# @rbs return: ACP::Types::ReadTextFileResponse
|
|
23
23
|
def self.from_h(hash)
|
|
24
|
-
new(content:
|
|
24
|
+
new(content: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'content'), 'content'), meta: hash['_meta'])
|
|
25
25
|
end
|
|
26
26
|
|
|
27
27
|
# @rbs return: Hash[String, untyped]
|
|
@@ -26,7 +26,11 @@ class ACP::Types::ReleaseTerminalRequest
|
|
|
26
26
|
# @rbs hash: Hash[String, untyped]
|
|
27
27
|
# @rbs return: ACP::Types::ReleaseTerminalRequest
|
|
28
28
|
def self.from_h(hash)
|
|
29
|
-
new(
|
|
29
|
+
new(
|
|
30
|
+
session_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'sessionId'), 'sessionId'),
|
|
31
|
+
terminal_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'terminalId'), 'terminalId'),
|
|
32
|
+
meta: hash['_meta']
|
|
33
|
+
)
|
|
30
34
|
end
|
|
31
35
|
|
|
32
36
|
# @rbs return: Hash[String, untyped]
|
|
@@ -21,7 +21,7 @@ class ACP::Types::RequestPermissionOutcome::Selected
|
|
|
21
21
|
# @rbs hash: Hash[String, untyped]
|
|
22
22
|
# @rbs return: ACP::Types::RequestPermissionOutcome::Selected
|
|
23
23
|
def self.from_h(hash)
|
|
24
|
-
new(option_id:
|
|
24
|
+
new(option_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'optionId'), 'optionId'), meta: hash['_meta'])
|
|
25
25
|
end
|
|
26
26
|
|
|
27
27
|
# @rbs return: Hash[String, untyped]
|
|
@@ -31,10 +31,17 @@ class ACP::Types::RequestPermissionRequest
|
|
|
31
31
|
# @rbs hash: Hash[String, untyped]
|
|
32
32
|
# @rbs return: ACP::Types::RequestPermissionRequest
|
|
33
33
|
def self.from_h(hash)
|
|
34
|
+
options = ACP::Types::Check.array(ACP::Types::Check.key(hash, 'options'), 'options') do |item, path|
|
|
35
|
+
ACP::Types::Check.object(item, path, ACP::Types::PermissionOption)
|
|
36
|
+
end
|
|
34
37
|
new(
|
|
35
|
-
session_id:
|
|
36
|
-
tool_call: ACP::Types::
|
|
37
|
-
|
|
38
|
+
session_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'sessionId'), 'sessionId'),
|
|
39
|
+
tool_call: ACP::Types::Check.object(
|
|
40
|
+
ACP::Types::Check.key(hash, 'toolCall'),
|
|
41
|
+
'toolCall',
|
|
42
|
+
ACP::Types::ToolCallUpdate
|
|
43
|
+
),
|
|
44
|
+
options:,
|
|
38
45
|
meta: hash['_meta']
|
|
39
46
|
)
|
|
40
47
|
end
|
|
@@ -21,7 +21,14 @@ class ACP::Types::RequestPermissionResponse
|
|
|
21
21
|
# @rbs hash: Hash[String, untyped]
|
|
22
22
|
# @rbs return: ACP::Types::RequestPermissionResponse
|
|
23
23
|
def self.from_h(hash)
|
|
24
|
-
new(
|
|
24
|
+
new(
|
|
25
|
+
outcome: ACP::Types::Check.object(
|
|
26
|
+
ACP::Types::Check.key(hash, 'outcome'),
|
|
27
|
+
'outcome',
|
|
28
|
+
ACP::Types::RequestPermissionOutcome
|
|
29
|
+
),
|
|
30
|
+
meta: hash['_meta']
|
|
31
|
+
)
|
|
25
32
|
end
|
|
26
33
|
|
|
27
34
|
# @rbs return: Hash[String, untyped]
|
|
@@ -52,13 +52,18 @@ class ACP::Types::ResourceLink
|
|
|
52
52
|
# @rbs return: ACP::Types::ResourceLink
|
|
53
53
|
def self.from_h(hash)
|
|
54
54
|
new(
|
|
55
|
-
annotations:
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
55
|
+
annotations: ACP::Types::Check.object(
|
|
56
|
+
hash['annotations'],
|
|
57
|
+
'annotations',
|
|
58
|
+
ACP::Types::Annotations,
|
|
59
|
+
allow_nil: true
|
|
60
|
+
),
|
|
61
|
+
description: ACP::Types::Check.string(hash['description'], 'description', allow_nil: true),
|
|
62
|
+
mime_type: ACP::Types::Check.string(hash['mimeType'], 'mimeType', allow_nil: true),
|
|
63
|
+
name: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'name'), 'name'),
|
|
64
|
+
size: ACP::Types::Check.integer(hash['size'], 'size', allow_nil: true),
|
|
65
|
+
title: ACP::Types::Check.string(hash['title'], 'title', allow_nil: true),
|
|
66
|
+
uri: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'uri'), 'uri'),
|
|
62
67
|
meta: hash['_meta']
|
|
63
68
|
)
|
|
64
69
|
end
|
|
@@ -36,11 +36,21 @@ class ACP::Types::ResumeSessionRequest
|
|
|
36
36
|
# @rbs hash: Hash[String, untyped]
|
|
37
37
|
# @rbs return: ACP::Types::ResumeSessionRequest
|
|
38
38
|
def self.from_h(hash)
|
|
39
|
+
additional_directories = ACP::Types::Check.array(
|
|
40
|
+
hash['additionalDirectories'],
|
|
41
|
+
'additionalDirectories',
|
|
42
|
+
allow_nil: true
|
|
43
|
+
) do |item, path|
|
|
44
|
+
ACP::Types::Check.string(item, path)
|
|
45
|
+
end
|
|
46
|
+
mcp_servers = ACP::Types::Check.array(hash['mcpServers'], 'mcpServers', allow_nil: true) do |item, path|
|
|
47
|
+
ACP::Types::Check.object(item, path, ACP::Types::McpServer)
|
|
48
|
+
end
|
|
39
49
|
new(
|
|
40
|
-
session_id:
|
|
41
|
-
cwd:
|
|
42
|
-
additional_directories
|
|
43
|
-
mcp_servers
|
|
50
|
+
session_id: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'sessionId'), 'sessionId'),
|
|
51
|
+
cwd: ACP::Types::Check.string(ACP::Types::Check.key(hash, 'cwd'), 'cwd'),
|
|
52
|
+
additional_directories:,
|
|
53
|
+
mcp_servers:,
|
|
44
54
|
meta: hash['_meta']
|
|
45
55
|
)
|
|
46
56
|
end
|