acp-sdk 0.1.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 +7 -0
- data/CHANGELOG.md +11 -0
- data/LICENSE.txt +9 -0
- data/README.md +81 -0
- data/lib/acp/agent_connection/client.rb +39 -0
- data/lib/acp/agent_connection/optional_method.rb +28 -0
- data/lib/acp/agent_connection.rb +122 -0
- data/lib/acp/client_connection.rb +129 -0
- data/lib/acp/sdk.rb +13 -0
- data/lib/acp/transport/reply.rb +20 -0
- data/lib/acp/transport/response_error.rb +28 -0
- data/lib/acp/transport/result.rb +35 -0
- data/lib/acp/transport/stdio.rb +207 -0
- data/lib/acp/transport.rb +4 -0
- data/lib/acp/types/agent_auth_capabilities.rb +31 -0
- data/lib/acp/types/agent_capabilities.rb +72 -0
- data/lib/acp/types/annotations.rb +46 -0
- data/lib/acp/types/audio_content.rb +46 -0
- data/lib/acp/types/auth_capabilities.rb +31 -0
- data/lib/acp/types/auth_method/terminal.rb +66 -0
- data/lib/acp/types/auth_method.rb +20 -0
- data/lib/acp/types/auth_method_agent.rb +41 -0
- data/lib/acp/types/auth_method_terminal.rb +58 -0
- data/lib/acp/types/authenticate_request.rb +31 -0
- data/lib/acp/types/authenticate_response.rb +26 -0
- data/lib/acp/types/available_command.rb +46 -0
- data/lib/acp/types/available_command_input.rb +19 -0
- data/lib/acp/types/available_commands_update.rb +34 -0
- data/lib/acp/types/blob_resource_contents.rb +41 -0
- data/lib/acp/types/boolean_config_option_capabilities.rb +26 -0
- data/lib/acp/types/boolean_property_schema.rb +41 -0
- data/lib/acp/types/cancel_notification.rb +31 -0
- data/lib/acp/types/cancel_request_notification.rb +31 -0
- data/lib/acp/types/client_capabilities.rb +65 -0
- data/lib/acp/types/client_session_capabilities.rb +36 -0
- data/lib/acp/types/close_session_request.rb +31 -0
- data/lib/acp/types/close_session_response.rb +26 -0
- data/lib/acp/types/complete_elicitation_notification.rb +31 -0
- data/lib/acp/types/config_option_update.rb +34 -0
- data/lib/acp/types/content.rb +31 -0
- data/lib/acp/types/content_block/audio.rb +52 -0
- data/lib/acp/types/content_block/image.rb +59 -0
- data/lib/acp/types/content_block/resource.rb +40 -0
- data/lib/acp/types/content_block/resource_link.rb +80 -0
- data/lib/acp/types/content_block/text.rb +40 -0
- data/lib/acp/types/content_block.rb +26 -0
- data/lib/acp/types/content_chunk.rb +40 -0
- data/lib/acp/types/cost.rb +36 -0
- data/lib/acp/types/create_elicitation_request/mode/form.rb +34 -0
- data/lib/acp/types/create_elicitation_request/mode/url.rb +40 -0
- data/lib/acp/types/create_elicitation_request/mode.rb +20 -0
- data/lib/acp/types/create_elicitation_request.rb +40 -0
- data/lib/acp/types/create_elicitation_response/action/accept.rb +26 -0
- data/lib/acp/types/create_elicitation_response/action/cancel.rb +21 -0
- data/lib/acp/types/create_elicitation_response/action/decline.rb +21 -0
- data/lib/acp/types/create_elicitation_response/action.rb +22 -0
- data/lib/acp/types/create_elicitation_response.rb +31 -0
- data/lib/acp/types/create_terminal_request.rb +72 -0
- data/lib/acp/types/create_terminal_response.rb +31 -0
- data/lib/acp/types/current_mode_update.rb +31 -0
- data/lib/acp/types/delete_session_request.rb +31 -0
- data/lib/acp/types/delete_session_response.rb +26 -0
- data/lib/acp/types/diff.rb +41 -0
- data/lib/acp/types/elicitation_accept_action.rb +26 -0
- data/lib/acp/types/elicitation_capabilities.rb +40 -0
- data/lib/acp/types/elicitation_form_capabilities.rb +26 -0
- data/lib/acp/types/elicitation_form_mode/scope.rb +22 -0
- data/lib/acp/types/elicitation_form_mode.rb +34 -0
- data/lib/acp/types/elicitation_property_schema/boolean_property_schema.rb +47 -0
- data/lib/acp/types/elicitation_property_schema/integer_property_schema.rb +66 -0
- data/lib/acp/types/elicitation_property_schema/multi_select_property_schema.rb +73 -0
- data/lib/acp/types/elicitation_property_schema/number_property_schema.rb +66 -0
- data/lib/acp/types/elicitation_property_schema/string_property_schema.rb +105 -0
- data/lib/acp/types/elicitation_property_schema.rb +26 -0
- data/lib/acp/types/elicitation_request_scope.rb +26 -0
- data/lib/acp/types/elicitation_schema.rb +65 -0
- data/lib/acp/types/elicitation_schema_type.rb +7 -0
- data/lib/acp/types/elicitation_session_scope.rb +31 -0
- data/lib/acp/types/elicitation_url_capabilities.rb +26 -0
- data/lib/acp/types/elicitation_url_mode/scope.rb +22 -0
- data/lib/acp/types/elicitation_url_mode.rb +40 -0
- data/lib/acp/types/embedded_resource.rb +40 -0
- data/lib/acp/types/embedded_resource_resource.rb +22 -0
- data/lib/acp/types/enum_option.rb +41 -0
- data/lib/acp/types/env_variable.rb +36 -0
- data/lib/acp/types/file_system_capabilities.rb +36 -0
- data/lib/acp/types/http_header.rb +36 -0
- data/lib/acp/types/image_content.rb +58 -0
- data/lib/acp/types/implementation.rb +41 -0
- data/lib/acp/types/initialize_request.rb +51 -0
- data/lib/acp/types/initialize_response.rb +58 -0
- data/lib/acp/types/integer_property_schema.rb +65 -0
- data/lib/acp/types/kill_terminal_request.rb +36 -0
- data/lib/acp/types/kill_terminal_response.rb +26 -0
- data/lib/acp/types/list_sessions_request.rb +36 -0
- data/lib/acp/types/list_sessions_response.rb +40 -0
- data/lib/acp/types/load_session_request.rb +58 -0
- data/lib/acp/types/load_session_response.rb +40 -0
- data/lib/acp/types/logout_capabilities.rb +26 -0
- data/lib/acp/types/logout_request.rb +26 -0
- data/lib/acp/types/logout_response.rb +26 -0
- data/lib/acp/types/mcp_capabilities.rb +36 -0
- data/lib/acp/types/mcp_server/http.rb +46 -0
- data/lib/acp/types/mcp_server/sse.rb +46 -0
- data/lib/acp/types/mcp_server.rb +22 -0
- data/lib/acp/types/mcp_server_http.rb +46 -0
- data/lib/acp/types/mcp_server_sse.rb +46 -0
- data/lib/acp/types/mcp_server_stdio.rb +52 -0
- data/lib/acp/types/multi_select_items/string_multi_select_items.rb +31 -0
- data/lib/acp/types/multi_select_items.rb +20 -0
- data/lib/acp/types/multi_select_property_schema.rb +72 -0
- data/lib/acp/types/new_session_request.rb +51 -0
- data/lib/acp/types/new_session_response.rb +51 -0
- data/lib/acp/types/number_property_schema.rb +65 -0
- data/lib/acp/types/permission_option.rb +41 -0
- data/lib/acp/types/permission_option_kind.rb +10 -0
- data/lib/acp/types/plan.rb +31 -0
- data/lib/acp/types/plan_entry.rb +46 -0
- data/lib/acp/types/plan_entry_priority.rb +9 -0
- data/lib/acp/types/plan_entry_status.rb +9 -0
- data/lib/acp/types/prompt_capabilities.rb +41 -0
- data/lib/acp/types/prompt_request.rb +40 -0
- data/lib/acp/types/prompt_response.rb +31 -0
- data/lib/acp/types/read_text_file_request.rb +52 -0
- data/lib/acp/types/read_text_file_response.rb +31 -0
- data/lib/acp/types/release_terminal_request.rb +36 -0
- data/lib/acp/types/release_terminal_response.rb +26 -0
- data/lib/acp/types/request_permission_outcome/cancelled.rb +21 -0
- data/lib/acp/types/request_permission_outcome/selected.rb +31 -0
- data/lib/acp/types/request_permission_outcome.rb +20 -0
- data/lib/acp/types/request_permission_request.rb +51 -0
- data/lib/acp/types/request_permission_response.rb +31 -0
- data/lib/acp/types/resource_link.rb +79 -0
- data/lib/acp/types/resume_session_request.rb +58 -0
- data/lib/acp/types/resume_session_response.rb +40 -0
- data/lib/acp/types/role.rb +8 -0
- data/lib/acp/types/selected_permission_outcome.rb +31 -0
- data/lib/acp/types/session_additional_directories_capabilities.rb +26 -0
- data/lib/acp/types/session_capabilities.rb +67 -0
- data/lib/acp/types/session_close_capabilities.rb +26 -0
- data/lib/acp/types/session_config_boolean.rb +26 -0
- data/lib/acp/types/session_config_option/kind/boolean.rb +26 -0
- data/lib/acp/types/session_config_option/kind/select.rb +34 -0
- data/lib/acp/types/session_config_option/kind.rb +20 -0
- data/lib/acp/types/session_config_option.rb +64 -0
- data/lib/acp/types/session_config_option_category.rb +10 -0
- data/lib/acp/types/session_config_options_capabilities.rb +34 -0
- data/lib/acp/types/session_config_select.rb +34 -0
- data/lib/acp/types/session_config_select_group.rb +46 -0
- data/lib/acp/types/session_config_select_option.rb +41 -0
- data/lib/acp/types/session_config_select_options.rb +22 -0
- data/lib/acp/types/session_delete_capabilities.rb +26 -0
- data/lib/acp/types/session_info.rb +65 -0
- data/lib/acp/types/session_info_update.rb +38 -0
- data/lib/acp/types/session_list_capabilities.rb +26 -0
- data/lib/acp/types/session_list_request.rb +8 -0
- data/lib/acp/types/session_list_response.rb +8 -0
- data/lib/acp/types/session_load_request.rb +8 -0
- data/lib/acp/types/session_mode.rb +41 -0
- data/lib/acp/types/session_mode_state.rb +40 -0
- data/lib/acp/types/session_new_request.rb +8 -0
- data/lib/acp/types/session_notification.rb +40 -0
- data/lib/acp/types/session_prompt_request.rb +8 -0
- data/lib/acp/types/session_resume_capabilities.rb +26 -0
- data/lib/acp/types/session_update/agent_message_chunk.rb +45 -0
- data/lib/acp/types/session_update/agent_thought_chunk.rb +45 -0
- data/lib/acp/types/session_update/available_commands_update.rb +38 -0
- data/lib/acp/types/session_update/config_option_update.rb +38 -0
- data/lib/acp/types/session_update/current_mode_update.rb +31 -0
- data/lib/acp/types/session_update/plan.rb +31 -0
- data/lib/acp/types/session_update/session_info_update.rb +39 -0
- data/lib/acp/types/session_update/tool_call.rb +97 -0
- data/lib/acp/types/session_update/tool_call_update.rb +97 -0
- data/lib/acp/types/session_update/usage_update.rb +46 -0
- data/lib/acp/types/session_update/user_message_chunk.rb +45 -0
- data/lib/acp/types/session_update.rb +38 -0
- data/lib/acp/types/set_session_config_option_request/value/boolean.rb +26 -0
- data/lib/acp/types/set_session_config_option_request/value/value_id.rb +26 -0
- data/lib/acp/types/set_session_config_option_request/value.rb +20 -0
- data/lib/acp/types/set_session_config_option_request.rb +46 -0
- data/lib/acp/types/set_session_config_option_response.rb +34 -0
- data/lib/acp/types/set_session_mode_request.rb +36 -0
- data/lib/acp/types/set_session_mode_response.rb +26 -0
- data/lib/acp/types/stop_reason.rb +11 -0
- data/lib/acp/types/string_format.rb +10 -0
- data/lib/acp/types/string_multi_select_items.rb +31 -0
- data/lib/acp/types/string_property_schema.rb +104 -0
- data/lib/acp/types/terminal.rb +31 -0
- data/lib/acp/types/terminal_exit_status.rb +36 -0
- data/lib/acp/types/terminal_output_request.rb +36 -0
- data/lib/acp/types/terminal_output_response.rb +46 -0
- data/lib/acp/types/text_content.rb +40 -0
- data/lib/acp/types/text_resource_contents.rb +41 -0
- data/lib/acp/types/titled_multi_select_items.rb +31 -0
- data/lib/acp/types/tool_call.rb +96 -0
- data/lib/acp/types/tool_call_content/content.rb +31 -0
- data/lib/acp/types/tool_call_content/diff.rb +41 -0
- data/lib/acp/types/tool_call_content/terminal.rb +31 -0
- data/lib/acp/types/tool_call_content.rb +22 -0
- data/lib/acp/types/tool_call_location.rb +36 -0
- data/lib/acp/types/tool_call_status.rb +10 -0
- data/lib/acp/types/tool_call_update.rb +96 -0
- data/lib/acp/types/tool_kind.rb +16 -0
- data/lib/acp/types/unstructured_command_input.rb +31 -0
- data/lib/acp/types/usage_update.rb +46 -0
- data/lib/acp/types/wait_for_terminal_exit_request.rb +36 -0
- data/lib/acp/types/wait_for_terminal_exit_response.rb +36 -0
- data/lib/acp/types/write_text_file_request.rb +46 -0
- data/lib/acp/types/write_text_file_response.rb +26 -0
- data/lib/acp/version.rb +5 -0
- data/sig/generated/acp/agent_connection/client.rbs +29 -0
- data/sig/generated/acp/agent_connection/optional_method.rbs +21 -0
- data/sig/generated/acp/agent_connection.rbs +65 -0
- data/sig/generated/acp/client_connection.rbs +82 -0
- data/sig/generated/acp/sdk.rbs +2 -0
- data/sig/generated/acp/transport/reply.rbs +16 -0
- data/sig/generated/acp/transport/response_error.rbs +21 -0
- data/sig/generated/acp/transport/result.rbs +25 -0
- data/sig/generated/acp/transport/stdio.rbs +116 -0
- data/sig/generated/acp/transport.rbs +4 -0
- data/sig/generated/acp/types/agent_auth_capabilities.rbs +21 -0
- data/sig/generated/acp/types/agent_capabilities.rbs +37 -0
- data/sig/generated/acp/types/annotations.rbs +29 -0
- data/sig/generated/acp/types/audio_content.rbs +29 -0
- data/sig/generated/acp/types/auth_capabilities.rbs +21 -0
- data/sig/generated/acp/types/auth_method/terminal.rbs +37 -0
- data/sig/generated/acp/types/auth_method.rbs +9 -0
- data/sig/generated/acp/types/auth_method_agent.rbs +29 -0
- data/sig/generated/acp/types/auth_method_terminal.rbs +37 -0
- data/sig/generated/acp/types/authenticate_request.rbs +21 -0
- data/sig/generated/acp/types/authenticate_response.rbs +17 -0
- data/sig/generated/acp/types/available_command.rbs +29 -0
- data/sig/generated/acp/types/available_command_input.rbs +9 -0
- data/sig/generated/acp/types/available_commands_update.rbs +21 -0
- data/sig/generated/acp/types/blob_resource_contents.rbs +29 -0
- data/sig/generated/acp/types/boolean_config_option_capabilities.rbs +17 -0
- data/sig/generated/acp/types/boolean_property_schema.rbs +29 -0
- data/sig/generated/acp/types/cancel_notification.rbs +21 -0
- data/sig/generated/acp/types/cancel_request_notification.rbs +21 -0
- data/sig/generated/acp/types/client_capabilities.rbs +37 -0
- data/sig/generated/acp/types/client_session_capabilities.rbs +21 -0
- data/sig/generated/acp/types/close_session_request.rbs +21 -0
- data/sig/generated/acp/types/close_session_response.rbs +17 -0
- data/sig/generated/acp/types/complete_elicitation_notification.rbs +21 -0
- data/sig/generated/acp/types/config_option_update.rbs +21 -0
- data/sig/generated/acp/types/content.rbs +21 -0
- data/sig/generated/acp/types/content_block/audio.rbs +29 -0
- data/sig/generated/acp/types/content_block/image.rbs +33 -0
- data/sig/generated/acp/types/content_block/resource.rbs +25 -0
- data/sig/generated/acp/types/content_block/resource_link.rbs +45 -0
- data/sig/generated/acp/types/content_block/text.rbs +25 -0
- data/sig/generated/acp/types/content_block.rbs +9 -0
- data/sig/generated/acp/types/content_chunk.rbs +25 -0
- data/sig/generated/acp/types/cost.rbs +25 -0
- data/sig/generated/acp/types/create_elicitation_request/mode/form.rbs +21 -0
- data/sig/generated/acp/types/create_elicitation_request/mode/url.rbs +25 -0
- data/sig/generated/acp/types/create_elicitation_request/mode.rbs +9 -0
- data/sig/generated/acp/types/create_elicitation_request.rbs +25 -0
- data/sig/generated/acp/types/create_elicitation_response/action/accept.rbs +17 -0
- data/sig/generated/acp/types/create_elicitation_response/action/cancel.rbs +13 -0
- data/sig/generated/acp/types/create_elicitation_response/action/decline.rbs +13 -0
- data/sig/generated/acp/types/create_elicitation_response/action.rbs +9 -0
- data/sig/generated/acp/types/create_elicitation_response.rbs +21 -0
- data/sig/generated/acp/types/create_terminal_request.rbs +41 -0
- data/sig/generated/acp/types/create_terminal_response.rbs +21 -0
- data/sig/generated/acp/types/current_mode_update.rbs +21 -0
- data/sig/generated/acp/types/delete_session_request.rbs +21 -0
- data/sig/generated/acp/types/delete_session_response.rbs +17 -0
- data/sig/generated/acp/types/diff.rbs +29 -0
- data/sig/generated/acp/types/elicitation_accept_action.rbs +17 -0
- data/sig/generated/acp/types/elicitation_capabilities.rbs +25 -0
- data/sig/generated/acp/types/elicitation_form_capabilities.rbs +17 -0
- data/sig/generated/acp/types/elicitation_form_mode/scope.rbs +9 -0
- data/sig/generated/acp/types/elicitation_form_mode.rbs +21 -0
- data/sig/generated/acp/types/elicitation_property_schema/boolean_property_schema.rbs +29 -0
- data/sig/generated/acp/types/elicitation_property_schema/integer_property_schema.rbs +37 -0
- data/sig/generated/acp/types/elicitation_property_schema/multi_select_property_schema.rbs +41 -0
- data/sig/generated/acp/types/elicitation_property_schema/number_property_schema.rbs +37 -0
- data/sig/generated/acp/types/elicitation_property_schema/string_property_schema.rbs +53 -0
- data/sig/generated/acp/types/elicitation_property_schema.rbs +9 -0
- data/sig/generated/acp/types/elicitation_request_scope.rbs +17 -0
- data/sig/generated/acp/types/elicitation_schema.rbs +37 -0
- data/sig/generated/acp/types/elicitation_schema_type.rbs +5 -0
- data/sig/generated/acp/types/elicitation_session_scope.rbs +21 -0
- data/sig/generated/acp/types/elicitation_url_capabilities.rbs +17 -0
- data/sig/generated/acp/types/elicitation_url_mode/scope.rbs +9 -0
- data/sig/generated/acp/types/elicitation_url_mode.rbs +25 -0
- data/sig/generated/acp/types/embedded_resource.rbs +25 -0
- data/sig/generated/acp/types/embedded_resource_resource.rbs +9 -0
- data/sig/generated/acp/types/enum_option.rbs +29 -0
- data/sig/generated/acp/types/env_variable.rbs +25 -0
- data/sig/generated/acp/types/file_system_capabilities.rbs +25 -0
- data/sig/generated/acp/types/http_header.rbs +25 -0
- data/sig/generated/acp/types/image_content.rbs +33 -0
- data/sig/generated/acp/types/implementation.rbs +29 -0
- data/sig/generated/acp/types/initialize_request.rbs +29 -0
- data/sig/generated/acp/types/initialize_response.rbs +33 -0
- data/sig/generated/acp/types/integer_property_schema.rbs +37 -0
- data/sig/generated/acp/types/kill_terminal_request.rbs +25 -0
- data/sig/generated/acp/types/kill_terminal_response.rbs +17 -0
- data/sig/generated/acp/types/list_sessions_request.rbs +25 -0
- data/sig/generated/acp/types/list_sessions_response.rbs +25 -0
- data/sig/generated/acp/types/load_session_request.rbs +33 -0
- data/sig/generated/acp/types/load_session_response.rbs +25 -0
- data/sig/generated/acp/types/logout_capabilities.rbs +17 -0
- data/sig/generated/acp/types/logout_request.rbs +17 -0
- data/sig/generated/acp/types/logout_response.rbs +17 -0
- data/sig/generated/acp/types/mcp_capabilities.rbs +25 -0
- data/sig/generated/acp/types/mcp_server/http.rbs +29 -0
- data/sig/generated/acp/types/mcp_server/sse.rbs +29 -0
- data/sig/generated/acp/types/mcp_server.rbs +9 -0
- data/sig/generated/acp/types/mcp_server_http.rbs +29 -0
- data/sig/generated/acp/types/mcp_server_sse.rbs +29 -0
- data/sig/generated/acp/types/mcp_server_stdio.rbs +33 -0
- data/sig/generated/acp/types/multi_select_items/string_multi_select_items.rbs +21 -0
- data/sig/generated/acp/types/multi_select_items.rbs +9 -0
- data/sig/generated/acp/types/multi_select_property_schema.rbs +41 -0
- data/sig/generated/acp/types/new_session_request.rbs +29 -0
- data/sig/generated/acp/types/new_session_response.rbs +29 -0
- data/sig/generated/acp/types/number_property_schema.rbs +37 -0
- data/sig/generated/acp/types/permission_option.rbs +29 -0
- data/sig/generated/acp/types/permission_option_kind.rbs +11 -0
- data/sig/generated/acp/types/plan.rbs +21 -0
- data/sig/generated/acp/types/plan_entry.rbs +29 -0
- data/sig/generated/acp/types/plan_entry_priority.rbs +9 -0
- data/sig/generated/acp/types/plan_entry_status.rbs +9 -0
- data/sig/generated/acp/types/prompt_capabilities.rbs +29 -0
- data/sig/generated/acp/types/prompt_request.rbs +25 -0
- data/sig/generated/acp/types/prompt_response.rbs +21 -0
- data/sig/generated/acp/types/read_text_file_request.rbs +33 -0
- data/sig/generated/acp/types/read_text_file_response.rbs +21 -0
- data/sig/generated/acp/types/release_terminal_request.rbs +25 -0
- data/sig/generated/acp/types/release_terminal_response.rbs +17 -0
- data/sig/generated/acp/types/request_permission_outcome/cancelled.rbs +13 -0
- data/sig/generated/acp/types/request_permission_outcome/selected.rbs +21 -0
- data/sig/generated/acp/types/request_permission_outcome.rbs +9 -0
- data/sig/generated/acp/types/request_permission_request.rbs +29 -0
- data/sig/generated/acp/types/request_permission_response.rbs +21 -0
- data/sig/generated/acp/types/resource_link.rbs +45 -0
- data/sig/generated/acp/types/resume_session_request.rbs +33 -0
- data/sig/generated/acp/types/resume_session_response.rbs +25 -0
- data/sig/generated/acp/types/role.rbs +7 -0
- data/sig/generated/acp/types/selected_permission_outcome.rbs +21 -0
- data/sig/generated/acp/types/session_additional_directories_capabilities.rbs +17 -0
- data/sig/generated/acp/types/session_capabilities.rbs +37 -0
- data/sig/generated/acp/types/session_close_capabilities.rbs +17 -0
- data/sig/generated/acp/types/session_config_boolean.rbs +17 -0
- data/sig/generated/acp/types/session_config_option/kind/boolean.rbs +17 -0
- data/sig/generated/acp/types/session_config_option/kind/select.rbs +21 -0
- data/sig/generated/acp/types/session_config_option/kind.rbs +9 -0
- data/sig/generated/acp/types/session_config_option.rbs +37 -0
- data/sig/generated/acp/types/session_config_option_category.rbs +11 -0
- data/sig/generated/acp/types/session_config_options_capabilities.rbs +21 -0
- data/sig/generated/acp/types/session_config_select.rbs +21 -0
- data/sig/generated/acp/types/session_config_select_group.rbs +29 -0
- data/sig/generated/acp/types/session_config_select_option.rbs +29 -0
- data/sig/generated/acp/types/session_config_select_options.rbs +9 -0
- data/sig/generated/acp/types/session_delete_capabilities.rbs +17 -0
- data/sig/generated/acp/types/session_info.rbs +37 -0
- data/sig/generated/acp/types/session_info_update.rbs +25 -0
- data/sig/generated/acp/types/session_list_capabilities.rbs +17 -0
- data/sig/generated/acp/types/session_list_request.rbs +3 -0
- data/sig/generated/acp/types/session_list_response.rbs +3 -0
- data/sig/generated/acp/types/session_load_request.rbs +3 -0
- data/sig/generated/acp/types/session_mode.rbs +29 -0
- data/sig/generated/acp/types/session_mode_state.rbs +25 -0
- data/sig/generated/acp/types/session_new_request.rbs +3 -0
- data/sig/generated/acp/types/session_notification.rbs +25 -0
- data/sig/generated/acp/types/session_prompt_request.rbs +3 -0
- data/sig/generated/acp/types/session_resume_capabilities.rbs +17 -0
- data/sig/generated/acp/types/session_update/agent_message_chunk.rbs +25 -0
- data/sig/generated/acp/types/session_update/agent_thought_chunk.rbs +25 -0
- data/sig/generated/acp/types/session_update/available_commands_update.rbs +21 -0
- data/sig/generated/acp/types/session_update/config_option_update.rbs +21 -0
- data/sig/generated/acp/types/session_update/current_mode_update.rbs +21 -0
- data/sig/generated/acp/types/session_update/plan.rbs +21 -0
- data/sig/generated/acp/types/session_update/session_info_update.rbs +25 -0
- data/sig/generated/acp/types/session_update/tool_call.rbs +49 -0
- data/sig/generated/acp/types/session_update/tool_call_update.rbs +49 -0
- data/sig/generated/acp/types/session_update/usage_update.rbs +29 -0
- data/sig/generated/acp/types/session_update/user_message_chunk.rbs +25 -0
- data/sig/generated/acp/types/session_update.rbs +9 -0
- data/sig/generated/acp/types/set_session_config_option_request/value/boolean.rbs +17 -0
- data/sig/generated/acp/types/set_session_config_option_request/value/value_id.rbs +17 -0
- data/sig/generated/acp/types/set_session_config_option_request/value.rbs +9 -0
- data/sig/generated/acp/types/set_session_config_option_request.rbs +29 -0
- data/sig/generated/acp/types/set_session_config_option_response.rbs +21 -0
- data/sig/generated/acp/types/set_session_mode_request.rbs +25 -0
- data/sig/generated/acp/types/set_session_mode_response.rbs +17 -0
- data/sig/generated/acp/types/stop_reason.rbs +13 -0
- data/sig/generated/acp/types/string_format.rbs +11 -0
- data/sig/generated/acp/types/string_multi_select_items.rbs +21 -0
- data/sig/generated/acp/types/string_property_schema.rbs +53 -0
- data/sig/generated/acp/types/terminal.rbs +21 -0
- data/sig/generated/acp/types/terminal_exit_status.rbs +25 -0
- data/sig/generated/acp/types/terminal_output_request.rbs +25 -0
- data/sig/generated/acp/types/terminal_output_response.rbs +29 -0
- data/sig/generated/acp/types/text_content.rbs +25 -0
- data/sig/generated/acp/types/text_resource_contents.rbs +29 -0
- data/sig/generated/acp/types/titled_multi_select_items.rbs +21 -0
- data/sig/generated/acp/types/tool_call.rbs +49 -0
- data/sig/generated/acp/types/tool_call_content/content.rbs +21 -0
- data/sig/generated/acp/types/tool_call_content/diff.rbs +29 -0
- data/sig/generated/acp/types/tool_call_content/terminal.rbs +21 -0
- data/sig/generated/acp/types/tool_call_content.rbs +9 -0
- data/sig/generated/acp/types/tool_call_location.rbs +25 -0
- data/sig/generated/acp/types/tool_call_status.rbs +11 -0
- data/sig/generated/acp/types/tool_call_update.rbs +49 -0
- data/sig/generated/acp/types/tool_kind.rbs +23 -0
- data/sig/generated/acp/types/unstructured_command_input.rbs +21 -0
- data/sig/generated/acp/types/usage_update.rbs +29 -0
- data/sig/generated/acp/types/wait_for_terminal_exit_request.rbs +25 -0
- data/sig/generated/acp/types/wait_for_terminal_exit_response.rbs +25 -0
- data/sig/generated/acp/types/write_text_file_request.rbs +29 -0
- data/sig/generated/acp/types/write_text_file_response.rbs +17 -0
- data/sig/generated/acp/version.rbs +5 -0
- data/sig/manual/acp/agent_connection.rbs +52 -0
- data/sig/manual/acp/client_connection.rbs +13 -0
- data/sig/manual/acp/transport/stdio.rbs +18 -0
- data/sig/manual/acp/types.rbs +2 -0
- metadata +477 -0
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'json'
|
|
4
|
+
|
|
5
|
+
# JSON-RPC 2.0 over newline-delimited JSON on an IO pair. A reader thread
|
|
6
|
+
# dispatches inbound messages while outbound requests are pending, and each
|
|
7
|
+
# inbound request is served on its own thread, so a handler can make an
|
|
8
|
+
# outbound request mid-turn and still see notifications (e.g. session/cancel)
|
|
9
|
+
# that arrive meanwhile.
|
|
10
|
+
class ACP::Transport::Stdio
|
|
11
|
+
# @rbs @input: _Reader
|
|
12
|
+
# @rbs @output: _Writer
|
|
13
|
+
# @rbs @write_lock: Thread::Mutex
|
|
14
|
+
# @rbs @lock: Thread::Mutex
|
|
15
|
+
# @rbs @pending: Hash[untyped, Thread::Queue]
|
|
16
|
+
# @rbs @next_id: Integer
|
|
17
|
+
# @rbs @closed: bool
|
|
18
|
+
|
|
19
|
+
INTERNAL_ERROR = -32_603 #: Integer
|
|
20
|
+
PARSE_ERROR = ACP::Transport::ResponseError.new(code: -32_700, message: 'Parse error') #: ACP::Transport::ResponseError
|
|
21
|
+
INVALID_REQUEST = ACP::Transport::ResponseError.new(code: -32_600, message: 'Invalid request') #: ACP::Transport::ResponseError
|
|
22
|
+
METHOD_NOT_FOUND = ACP::Transport::ResponseError.new(code: -32_601, message: 'Method not found') #: ACP::Transport::ResponseError
|
|
23
|
+
CONNECTION_CLOSED = ACP::Transport::ResponseError.new(code: INTERNAL_ERROR, message: 'Connection closed') #: ACP::Transport::ResponseError
|
|
24
|
+
|
|
25
|
+
# @rbs input: _Reader
|
|
26
|
+
# @rbs output: _Writer
|
|
27
|
+
# @rbs return: void
|
|
28
|
+
def initialize(input:, output:)
|
|
29
|
+
@input = input
|
|
30
|
+
@output = output
|
|
31
|
+
@write_lock = Mutex.new
|
|
32
|
+
@lock = Mutex.new
|
|
33
|
+
@pending = {}
|
|
34
|
+
@next_id = 0
|
|
35
|
+
@closed = false
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# Returns the reader thread, which ends at EOF on input after releasing any
|
|
39
|
+
# pending outbound requests.
|
|
40
|
+
#
|
|
41
|
+
# @rbs requests: Hash[String, _Handler]
|
|
42
|
+
# @rbs notifications: Hash[String, _NotificationHandler]
|
|
43
|
+
# @rbs return: Thread
|
|
44
|
+
def start(requests: {}, notifications: {})
|
|
45
|
+
Thread.new do
|
|
46
|
+
# Binary copy: String#strip raises on invalid UTF-8, which parse reports.
|
|
47
|
+
@input.each_line { |line| receive(line, requests, notifications) unless line.b.strip.empty? }
|
|
48
|
+
ensure
|
|
49
|
+
close
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
# @rbs method: String
|
|
54
|
+
# @rbs params: untyped
|
|
55
|
+
# @rbs return: ACP::Transport::Result
|
|
56
|
+
def request(method, params = nil)
|
|
57
|
+
queue = Thread::Queue.new
|
|
58
|
+
id = register(queue)
|
|
59
|
+
return ACP::Transport::Result.error(CONNECTION_CLOSED) unless id
|
|
60
|
+
|
|
61
|
+
write({ 'jsonrpc' => '2.0', 'id' => id, 'method' => method, 'params' => params }.compact)
|
|
62
|
+
queue.pop || ACP::Transport::Result.error(CONNECTION_CLOSED)
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# @rbs method: String
|
|
66
|
+
# @rbs params: untyped
|
|
67
|
+
# @rbs return: void
|
|
68
|
+
def notify(method, params = nil)
|
|
69
|
+
write({ 'jsonrpc' => '2.0', 'method' => method, 'params' => params }.compact)
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
private
|
|
73
|
+
|
|
74
|
+
# @rbs line: String
|
|
75
|
+
# @rbs requests: Hash[String, _Handler]
|
|
76
|
+
# @rbs notifications: Hash[String, _NotificationHandler]
|
|
77
|
+
# @rbs return: void
|
|
78
|
+
def receive(line, requests, notifications)
|
|
79
|
+
message = parse(line)
|
|
80
|
+
case message
|
|
81
|
+
when ACP::Transport::ResponseError then reply(nil, ACP::Transport::Result.error(message))
|
|
82
|
+
else route(message, requests, notifications)
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
# @rbs message: Hash[String, untyped]
|
|
87
|
+
# @rbs requests: Hash[String, _Handler]
|
|
88
|
+
# @rbs notifications: Hash[String, _NotificationHandler]
|
|
89
|
+
# @rbs return: void
|
|
90
|
+
def route(message, requests, notifications)
|
|
91
|
+
method = message['method']
|
|
92
|
+
error = message['error']
|
|
93
|
+
if method.is_a?(String) && message.key?('id')
|
|
94
|
+
serve(requests[method], message['id'], message['params'])
|
|
95
|
+
elsif method.is_a?(String)
|
|
96
|
+
# Run on the reader thread so notifications (session/update) keep their
|
|
97
|
+
# order; a JSON-RPC notification has no reply to carry a handler error.
|
|
98
|
+
handler = notifications[method]
|
|
99
|
+
quietly { handler.call(message['params']) } if handler
|
|
100
|
+
elsif message.key?('result')
|
|
101
|
+
settle(message['id'], ACP::Transport::Result.ok(message['result']))
|
|
102
|
+
elsif error.is_a?(Hash) && error['code'].is_a?(Integer) && error['message'].is_a?(String)
|
|
103
|
+
code, text, data = error.values_at('code', 'message', 'data')
|
|
104
|
+
response_error = ACP::Transport::ResponseError.new(code:, message: text, data:)
|
|
105
|
+
settle(message['id'], ACP::Transport::Result.error(response_error))
|
|
106
|
+
else
|
|
107
|
+
reply(nil, ACP::Transport::Result.error(INVALID_REQUEST))
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
# @rbs line: String
|
|
112
|
+
# @rbs return: Hash[String, untyped] | ACP::Transport::ResponseError
|
|
113
|
+
def parse(line)
|
|
114
|
+
return PARSE_ERROR unless line.valid_encoding?
|
|
115
|
+
|
|
116
|
+
message = JSON.parse(line)
|
|
117
|
+
message.is_a?(Hash) ? message : INVALID_REQUEST
|
|
118
|
+
rescue JSON::ParserError
|
|
119
|
+
PARSE_ERROR
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
# @rbs handler: _Handler?
|
|
123
|
+
# @rbs id: untyped
|
|
124
|
+
# @rbs params: untyped
|
|
125
|
+
# @rbs return: void
|
|
126
|
+
def serve(handler, id, params)
|
|
127
|
+
Thread.new do
|
|
128
|
+
outcome = handler ? invoke(handler, params) : ACP::Transport::Result.error(METHOD_NOT_FOUND)
|
|
129
|
+
case outcome
|
|
130
|
+
when ACP::Transport::Reply
|
|
131
|
+
reply(id, outcome.result)
|
|
132
|
+
quietly(&outcome.after)
|
|
133
|
+
else reply(id, outcome)
|
|
134
|
+
end
|
|
135
|
+
end
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
# For code with no reply to carry an error: a notification handler, or a
|
|
139
|
+
# Reply's after once the reply is on the wire. An exception must not kill
|
|
140
|
+
# the reader thread or print a thread report.
|
|
141
|
+
#
|
|
142
|
+
# @rbs &block: () -> void
|
|
143
|
+
# @rbs return: void
|
|
144
|
+
def quietly
|
|
145
|
+
yield
|
|
146
|
+
rescue StandardError
|
|
147
|
+
nil
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
# Handlers are application code at the protocol boundary: an exception
|
|
151
|
+
# becomes an error response instead of killing the thread serving it.
|
|
152
|
+
#
|
|
153
|
+
# @rbs handler: _Handler
|
|
154
|
+
# @rbs params: untyped
|
|
155
|
+
# @rbs return: ACP::Transport::Result | ACP::Transport::Reply
|
|
156
|
+
def invoke(handler, params)
|
|
157
|
+
handler.call(params)
|
|
158
|
+
rescue StandardError => e
|
|
159
|
+
ACP::Transport::Result.error(ACP::Transport::ResponseError.new(code: INTERNAL_ERROR, message: e.message))
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
# @rbs id: untyped
|
|
163
|
+
# @rbs result: ACP::Transport::Result
|
|
164
|
+
# @rbs return: void
|
|
165
|
+
def reply(id, result)
|
|
166
|
+
error = result.error
|
|
167
|
+
write({ 'jsonrpc' => '2.0', 'id' => id }.merge(error ? { 'error' => error.to_h } : { 'result' => result.value }))
|
|
168
|
+
end
|
|
169
|
+
|
|
170
|
+
# @rbs queue: Thread::Queue
|
|
171
|
+
# @rbs return: Integer?
|
|
172
|
+
def register(queue)
|
|
173
|
+
@lock.synchronize do
|
|
174
|
+
next if @closed
|
|
175
|
+
|
|
176
|
+
id = @next_id += 1
|
|
177
|
+
@pending[id] = queue
|
|
178
|
+
id
|
|
179
|
+
end
|
|
180
|
+
end
|
|
181
|
+
|
|
182
|
+
# @rbs id: untyped
|
|
183
|
+
# @rbs result: ACP::Transport::Result
|
|
184
|
+
# @rbs return: void
|
|
185
|
+
def settle(id, result)
|
|
186
|
+
@lock.synchronize { @pending.delete(id) }&.push(result)
|
|
187
|
+
end
|
|
188
|
+
|
|
189
|
+
# @rbs return: void
|
|
190
|
+
def close
|
|
191
|
+
@lock.synchronize do
|
|
192
|
+
@closed = true
|
|
193
|
+
@pending.each_value(&:close)
|
|
194
|
+
@pending.clear
|
|
195
|
+
end
|
|
196
|
+
end
|
|
197
|
+
|
|
198
|
+
# @rbs message: Hash[String, untyped]
|
|
199
|
+
# @rbs return: void
|
|
200
|
+
def write(message)
|
|
201
|
+
line = "#{JSON.generate(message)}\n"
|
|
202
|
+
@write_lock.synchronize do
|
|
203
|
+
@output.write(line)
|
|
204
|
+
@output.flush
|
|
205
|
+
end
|
|
206
|
+
end
|
|
207
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Generated by bin/types from schema/schema.json. Do not edit.
|
|
4
|
+
|
|
5
|
+
class ACP::Types::AgentAuthCapabilities
|
|
6
|
+
# @dynamic logout
|
|
7
|
+
attr_reader :logout #: ACP::Types::LogoutCapabilities?
|
|
8
|
+
|
|
9
|
+
# @dynamic meta
|
|
10
|
+
attr_reader :meta #: Hash[String, untyped]?
|
|
11
|
+
|
|
12
|
+
# @rbs logout: ACP::Types::LogoutCapabilities?
|
|
13
|
+
# @rbs meta: Hash[String, untyped]?
|
|
14
|
+
# @rbs return: void
|
|
15
|
+
def initialize(logout: nil, meta: nil)
|
|
16
|
+
@logout = logout
|
|
17
|
+
@meta = meta
|
|
18
|
+
freeze
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# @rbs hash: Hash[String, untyped]
|
|
22
|
+
# @rbs return: ACP::Types::AgentAuthCapabilities
|
|
23
|
+
def self.from_h(hash)
|
|
24
|
+
new(logout: hash['logout']&.then { |value| ACP::Types::LogoutCapabilities.from_h(value) }, meta: hash['_meta'])
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# @rbs return: Hash[String, untyped]
|
|
28
|
+
def to_h
|
|
29
|
+
{ 'logout' => logout&.to_h, '_meta' => meta }.compact
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Generated by bin/types from schema/schema.json. Do not edit.
|
|
4
|
+
|
|
5
|
+
class ACP::Types::AgentCapabilities
|
|
6
|
+
# @dynamic load_session
|
|
7
|
+
attr_reader :load_session #: bool?
|
|
8
|
+
|
|
9
|
+
# @dynamic prompt_capabilities
|
|
10
|
+
attr_reader :prompt_capabilities #: ACP::Types::PromptCapabilities?
|
|
11
|
+
|
|
12
|
+
# @dynamic mcp_capabilities
|
|
13
|
+
attr_reader :mcp_capabilities #: ACP::Types::McpCapabilities?
|
|
14
|
+
|
|
15
|
+
# @dynamic session_capabilities
|
|
16
|
+
attr_reader :session_capabilities #: ACP::Types::SessionCapabilities?
|
|
17
|
+
|
|
18
|
+
# @dynamic auth
|
|
19
|
+
attr_reader :auth #: ACP::Types::AgentAuthCapabilities?
|
|
20
|
+
|
|
21
|
+
# @dynamic meta
|
|
22
|
+
attr_reader :meta #: Hash[String, untyped]?
|
|
23
|
+
|
|
24
|
+
# @rbs load_session: bool?
|
|
25
|
+
# @rbs prompt_capabilities: ACP::Types::PromptCapabilities?
|
|
26
|
+
# @rbs mcp_capabilities: ACP::Types::McpCapabilities?
|
|
27
|
+
# @rbs session_capabilities: ACP::Types::SessionCapabilities?
|
|
28
|
+
# @rbs auth: ACP::Types::AgentAuthCapabilities?
|
|
29
|
+
# @rbs meta: Hash[String, untyped]?
|
|
30
|
+
# @rbs return: void
|
|
31
|
+
def initialize(
|
|
32
|
+
load_session: nil,
|
|
33
|
+
prompt_capabilities: nil,
|
|
34
|
+
mcp_capabilities: nil,
|
|
35
|
+
session_capabilities: nil,
|
|
36
|
+
auth: nil,
|
|
37
|
+
meta: nil
|
|
38
|
+
)
|
|
39
|
+
@load_session = load_session
|
|
40
|
+
@prompt_capabilities = prompt_capabilities
|
|
41
|
+
@mcp_capabilities = mcp_capabilities
|
|
42
|
+
@session_capabilities = session_capabilities
|
|
43
|
+
@auth = auth
|
|
44
|
+
@meta = meta
|
|
45
|
+
freeze
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# @rbs hash: Hash[String, untyped]
|
|
49
|
+
# @rbs return: ACP::Types::AgentCapabilities
|
|
50
|
+
def self.from_h(hash)
|
|
51
|
+
new(
|
|
52
|
+
load_session: hash['loadSession'],
|
|
53
|
+
prompt_capabilities: hash['promptCapabilities']&.then { |value| ACP::Types::PromptCapabilities.from_h(value) },
|
|
54
|
+
mcp_capabilities: hash['mcpCapabilities']&.then { |value| ACP::Types::McpCapabilities.from_h(value) },
|
|
55
|
+
session_capabilities: hash['sessionCapabilities']&.then { |value| ACP::Types::SessionCapabilities.from_h(value) },
|
|
56
|
+
auth: hash['auth']&.then { |value| ACP::Types::AgentAuthCapabilities.from_h(value) },
|
|
57
|
+
meta: hash['_meta']
|
|
58
|
+
)
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
# @rbs return: Hash[String, untyped]
|
|
62
|
+
def to_h
|
|
63
|
+
{
|
|
64
|
+
'loadSession' => load_session,
|
|
65
|
+
'promptCapabilities' => prompt_capabilities&.to_h,
|
|
66
|
+
'mcpCapabilities' => mcp_capabilities&.to_h,
|
|
67
|
+
'sessionCapabilities' => session_capabilities&.to_h,
|
|
68
|
+
'auth' => auth&.to_h,
|
|
69
|
+
'_meta' => meta
|
|
70
|
+
}.compact
|
|
71
|
+
end
|
|
72
|
+
end
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Generated by bin/types from schema/schema.json. Do not edit.
|
|
4
|
+
|
|
5
|
+
class ACP::Types::Annotations
|
|
6
|
+
# @dynamic audience
|
|
7
|
+
attr_reader :audience #: Array[String]?
|
|
8
|
+
|
|
9
|
+
# @dynamic last_modified
|
|
10
|
+
attr_reader :last_modified #: String?
|
|
11
|
+
|
|
12
|
+
# @dynamic priority
|
|
13
|
+
attr_reader :priority #: Numeric?
|
|
14
|
+
|
|
15
|
+
# @dynamic meta
|
|
16
|
+
attr_reader :meta #: Hash[String, untyped]?
|
|
17
|
+
|
|
18
|
+
# @rbs audience: Array[String]?
|
|
19
|
+
# @rbs last_modified: String?
|
|
20
|
+
# @rbs priority: Numeric?
|
|
21
|
+
# @rbs meta: Hash[String, untyped]?
|
|
22
|
+
# @rbs return: void
|
|
23
|
+
def initialize(audience: nil, last_modified: nil, priority: nil, meta: nil)
|
|
24
|
+
@audience = audience
|
|
25
|
+
@last_modified = last_modified
|
|
26
|
+
@priority = priority
|
|
27
|
+
@meta = meta
|
|
28
|
+
freeze
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# @rbs hash: Hash[String, untyped]
|
|
32
|
+
# @rbs return: ACP::Types::Annotations
|
|
33
|
+
def self.from_h(hash)
|
|
34
|
+
new(
|
|
35
|
+
audience: hash['audience'],
|
|
36
|
+
last_modified: hash['lastModified'],
|
|
37
|
+
priority: hash['priority'],
|
|
38
|
+
meta: hash['_meta']
|
|
39
|
+
)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# @rbs return: Hash[String, untyped]
|
|
43
|
+
def to_h
|
|
44
|
+
{ 'audience' => audience, 'lastModified' => last_modified, 'priority' => priority, '_meta' => meta }.compact
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Generated by bin/types from schema/schema.json. Do not edit.
|
|
4
|
+
|
|
5
|
+
class ACP::Types::AudioContent
|
|
6
|
+
# @dynamic annotations
|
|
7
|
+
attr_reader :annotations #: ACP::Types::Annotations?
|
|
8
|
+
|
|
9
|
+
# @dynamic data
|
|
10
|
+
attr_reader :data #: String
|
|
11
|
+
|
|
12
|
+
# @dynamic mime_type
|
|
13
|
+
attr_reader :mime_type #: String
|
|
14
|
+
|
|
15
|
+
# @dynamic meta
|
|
16
|
+
attr_reader :meta #: Hash[String, untyped]?
|
|
17
|
+
|
|
18
|
+
# @rbs annotations: ACP::Types::Annotations?
|
|
19
|
+
# @rbs data: String
|
|
20
|
+
# @rbs mime_type: String
|
|
21
|
+
# @rbs meta: Hash[String, untyped]?
|
|
22
|
+
# @rbs return: void
|
|
23
|
+
def initialize(data:, mime_type:, annotations: nil, meta: nil)
|
|
24
|
+
@annotations = annotations
|
|
25
|
+
@data = data
|
|
26
|
+
@mime_type = mime_type
|
|
27
|
+
@meta = meta
|
|
28
|
+
freeze
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# @rbs hash: Hash[String, untyped]
|
|
32
|
+
# @rbs return: ACP::Types::AudioContent
|
|
33
|
+
def self.from_h(hash)
|
|
34
|
+
new(
|
|
35
|
+
annotations: hash['annotations']&.then { |value| ACP::Types::Annotations.from_h(value) },
|
|
36
|
+
data: hash.fetch('data'),
|
|
37
|
+
mime_type: hash.fetch('mimeType'),
|
|
38
|
+
meta: hash['_meta']
|
|
39
|
+
)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# @rbs return: Hash[String, untyped]
|
|
43
|
+
def to_h
|
|
44
|
+
{ 'data' => data, 'mimeType' => mime_type, 'annotations' => annotations&.to_h, '_meta' => meta }.compact
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Generated by bin/types from schema/schema.json. Do not edit.
|
|
4
|
+
|
|
5
|
+
class ACP::Types::AuthCapabilities
|
|
6
|
+
# @dynamic terminal
|
|
7
|
+
attr_reader :terminal #: bool?
|
|
8
|
+
|
|
9
|
+
# @dynamic meta
|
|
10
|
+
attr_reader :meta #: Hash[String, untyped]?
|
|
11
|
+
|
|
12
|
+
# @rbs terminal: bool?
|
|
13
|
+
# @rbs meta: Hash[String, untyped]?
|
|
14
|
+
# @rbs return: void
|
|
15
|
+
def initialize(terminal: nil, meta: nil)
|
|
16
|
+
@terminal = terminal
|
|
17
|
+
@meta = meta
|
|
18
|
+
freeze
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# @rbs hash: Hash[String, untyped]
|
|
22
|
+
# @rbs return: ACP::Types::AuthCapabilities
|
|
23
|
+
def self.from_h(hash)
|
|
24
|
+
new(terminal: hash['terminal'], meta: hash['_meta'])
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# @rbs return: Hash[String, untyped]
|
|
28
|
+
def to_h
|
|
29
|
+
{ 'terminal' => terminal, '_meta' => meta }.compact
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Generated by bin/types from schema/schema.json. Do not edit.
|
|
4
|
+
|
|
5
|
+
class ACP::Types::AuthMethod::Terminal
|
|
6
|
+
# @dynamic id
|
|
7
|
+
attr_reader :id #: String
|
|
8
|
+
|
|
9
|
+
# @dynamic name
|
|
10
|
+
attr_reader :name #: String
|
|
11
|
+
|
|
12
|
+
# @dynamic description
|
|
13
|
+
attr_reader :description #: String?
|
|
14
|
+
|
|
15
|
+
# @dynamic args
|
|
16
|
+
attr_reader :args #: Array[String]?
|
|
17
|
+
|
|
18
|
+
# @dynamic env
|
|
19
|
+
attr_reader :env #: Hash[String, String]?
|
|
20
|
+
|
|
21
|
+
# @dynamic meta
|
|
22
|
+
attr_reader :meta #: Hash[String, untyped]?
|
|
23
|
+
|
|
24
|
+
# @rbs id: String
|
|
25
|
+
# @rbs name: String
|
|
26
|
+
# @rbs description: String?
|
|
27
|
+
# @rbs args: Array[String]?
|
|
28
|
+
# @rbs env: Hash[String, String]?
|
|
29
|
+
# @rbs meta: Hash[String, untyped]?
|
|
30
|
+
# @rbs return: void
|
|
31
|
+
def initialize(id:, name:, description: nil, args: nil, env: nil, meta: nil)
|
|
32
|
+
@id = id
|
|
33
|
+
@name = name
|
|
34
|
+
@description = description
|
|
35
|
+
@args = args
|
|
36
|
+
@env = env
|
|
37
|
+
@meta = meta
|
|
38
|
+
freeze
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# @rbs hash: Hash[String, untyped]
|
|
42
|
+
# @rbs return: ACP::Types::AuthMethod::Terminal
|
|
43
|
+
def self.from_h(hash)
|
|
44
|
+
new(
|
|
45
|
+
id: hash.fetch('id'),
|
|
46
|
+
name: hash.fetch('name'),
|
|
47
|
+
description: hash['description'],
|
|
48
|
+
args: hash['args'],
|
|
49
|
+
env: hash['env'],
|
|
50
|
+
meta: hash['_meta']
|
|
51
|
+
)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# @rbs return: Hash[String, untyped]
|
|
55
|
+
def to_h
|
|
56
|
+
{
|
|
57
|
+
'type' => 'terminal',
|
|
58
|
+
'id' => id,
|
|
59
|
+
'name' => name,
|
|
60
|
+
'description' => description,
|
|
61
|
+
'args' => args,
|
|
62
|
+
'env' => env,
|
|
63
|
+
'_meta' => meta
|
|
64
|
+
}.compact
|
|
65
|
+
end
|
|
66
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Generated by bin/types from schema/schema.json. Do not edit.
|
|
4
|
+
|
|
5
|
+
module ACP::Types::AuthMethod
|
|
6
|
+
# @rbs!
|
|
7
|
+
# type t = ACP::Types::AuthMethod::Terminal
|
|
8
|
+
# | ACP::Types::AuthMethodAgent
|
|
9
|
+
# | Hash[String, untyped]
|
|
10
|
+
|
|
11
|
+
# @rbs hash: Hash[String, untyped]
|
|
12
|
+
# @rbs return: t
|
|
13
|
+
def self.from_h(hash)
|
|
14
|
+
case hash['type']
|
|
15
|
+
when 'terminal' then ACP::Types::AuthMethod::Terminal.from_h(hash)
|
|
16
|
+
when nil then ACP::Types::AuthMethodAgent.from_h(hash)
|
|
17
|
+
else hash
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Generated by bin/types from schema/schema.json. Do not edit.
|
|
4
|
+
|
|
5
|
+
class ACP::Types::AuthMethodAgent
|
|
6
|
+
# @dynamic id
|
|
7
|
+
attr_reader :id #: String
|
|
8
|
+
|
|
9
|
+
# @dynamic name
|
|
10
|
+
attr_reader :name #: String
|
|
11
|
+
|
|
12
|
+
# @dynamic description
|
|
13
|
+
attr_reader :description #: String?
|
|
14
|
+
|
|
15
|
+
# @dynamic meta
|
|
16
|
+
attr_reader :meta #: Hash[String, untyped]?
|
|
17
|
+
|
|
18
|
+
# @rbs id: String
|
|
19
|
+
# @rbs name: String
|
|
20
|
+
# @rbs description: String?
|
|
21
|
+
# @rbs meta: Hash[String, untyped]?
|
|
22
|
+
# @rbs return: void
|
|
23
|
+
def initialize(id:, name:, description: nil, meta: nil)
|
|
24
|
+
@id = id
|
|
25
|
+
@name = name
|
|
26
|
+
@description = description
|
|
27
|
+
@meta = meta
|
|
28
|
+
freeze
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# @rbs hash: Hash[String, untyped]
|
|
32
|
+
# @rbs return: ACP::Types::AuthMethodAgent
|
|
33
|
+
def self.from_h(hash)
|
|
34
|
+
new(id: hash.fetch('id'), name: hash.fetch('name'), description: hash['description'], meta: hash['_meta'])
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# @rbs return: Hash[String, untyped]
|
|
38
|
+
def to_h
|
|
39
|
+
{ 'id' => id, 'name' => name, 'description' => description, '_meta' => meta }.compact
|
|
40
|
+
end
|
|
41
|
+
end
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Generated by bin/types from schema/schema.json. Do not edit.
|
|
4
|
+
|
|
5
|
+
class ACP::Types::AuthMethodTerminal
|
|
6
|
+
# @dynamic id
|
|
7
|
+
attr_reader :id #: String
|
|
8
|
+
|
|
9
|
+
# @dynamic name
|
|
10
|
+
attr_reader :name #: String
|
|
11
|
+
|
|
12
|
+
# @dynamic description
|
|
13
|
+
attr_reader :description #: String?
|
|
14
|
+
|
|
15
|
+
# @dynamic args
|
|
16
|
+
attr_reader :args #: Array[String]?
|
|
17
|
+
|
|
18
|
+
# @dynamic env
|
|
19
|
+
attr_reader :env #: Hash[String, String]?
|
|
20
|
+
|
|
21
|
+
# @dynamic meta
|
|
22
|
+
attr_reader :meta #: Hash[String, untyped]?
|
|
23
|
+
|
|
24
|
+
# @rbs id: String
|
|
25
|
+
# @rbs name: String
|
|
26
|
+
# @rbs description: String?
|
|
27
|
+
# @rbs args: Array[String]?
|
|
28
|
+
# @rbs env: Hash[String, String]?
|
|
29
|
+
# @rbs meta: Hash[String, untyped]?
|
|
30
|
+
# @rbs return: void
|
|
31
|
+
def initialize(id:, name:, description: nil, args: nil, env: nil, meta: nil)
|
|
32
|
+
@id = id
|
|
33
|
+
@name = name
|
|
34
|
+
@description = description
|
|
35
|
+
@args = args
|
|
36
|
+
@env = env
|
|
37
|
+
@meta = meta
|
|
38
|
+
freeze
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# @rbs hash: Hash[String, untyped]
|
|
42
|
+
# @rbs return: ACP::Types::AuthMethodTerminal
|
|
43
|
+
def self.from_h(hash)
|
|
44
|
+
new(
|
|
45
|
+
id: hash.fetch('id'),
|
|
46
|
+
name: hash.fetch('name'),
|
|
47
|
+
description: hash['description'],
|
|
48
|
+
args: hash['args'],
|
|
49
|
+
env: hash['env'],
|
|
50
|
+
meta: hash['_meta']
|
|
51
|
+
)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# @rbs return: Hash[String, untyped]
|
|
55
|
+
def to_h
|
|
56
|
+
{ 'id' => id, 'name' => name, 'description' => description, 'args' => args, 'env' => env, '_meta' => meta }.compact
|
|
57
|
+
end
|
|
58
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Generated by bin/types from schema/schema.json. Do not edit.
|
|
4
|
+
|
|
5
|
+
class ACP::Types::AuthenticateRequest
|
|
6
|
+
# @dynamic method_id
|
|
7
|
+
attr_reader :method_id #: String
|
|
8
|
+
|
|
9
|
+
# @dynamic meta
|
|
10
|
+
attr_reader :meta #: Hash[String, untyped]?
|
|
11
|
+
|
|
12
|
+
# @rbs method_id: String
|
|
13
|
+
# @rbs meta: Hash[String, untyped]?
|
|
14
|
+
# @rbs return: void
|
|
15
|
+
def initialize(method_id:, meta: nil)
|
|
16
|
+
@method_id = method_id
|
|
17
|
+
@meta = meta
|
|
18
|
+
freeze
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# @rbs hash: Hash[String, untyped]
|
|
22
|
+
# @rbs return: ACP::Types::AuthenticateRequest
|
|
23
|
+
def self.from_h(hash)
|
|
24
|
+
new(method_id: hash.fetch('methodId'), meta: hash['_meta'])
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# @rbs return: Hash[String, untyped]
|
|
28
|
+
def to_h
|
|
29
|
+
{ 'methodId' => method_id, '_meta' => meta }.compact
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Generated by bin/types from schema/schema.json. Do not edit.
|
|
4
|
+
|
|
5
|
+
class ACP::Types::AuthenticateResponse
|
|
6
|
+
# @dynamic meta
|
|
7
|
+
attr_reader :meta #: Hash[String, untyped]?
|
|
8
|
+
|
|
9
|
+
# @rbs meta: Hash[String, untyped]?
|
|
10
|
+
# @rbs return: void
|
|
11
|
+
def initialize(meta: nil)
|
|
12
|
+
@meta = meta
|
|
13
|
+
freeze
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# @rbs hash: Hash[String, untyped]
|
|
17
|
+
# @rbs return: ACP::Types::AuthenticateResponse
|
|
18
|
+
def self.from_h(hash)
|
|
19
|
+
new(meta: hash['_meta'])
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# @rbs return: Hash[String, untyped]
|
|
23
|
+
def to_h
|
|
24
|
+
{ '_meta' => meta }.compact
|
|
25
|
+
end
|
|
26
|
+
end
|