openai 0.89.0 → 0.90.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 +7 -0
- data/README.md +1 -1
- data/lib/openai/helpers/agents/message.rb +20 -0
- data/lib/openai/helpers/agents/session_stream.rb +168 -0
- data/lib/openai/helpers/agents/tools.rb +65 -0
- data/lib/openai/internal/token_page.rb +91 -0
- data/lib/openai/models/beta/agent.rb +148 -0
- data/lib/openai/models/beta/agent_close_subagent_call_item.rb +66 -0
- data/lib/openai/models/beta/agent_command_execution_item.rb +93 -0
- data/lib/openai/models/beta/agent_content.rb +46 -0
- data/lib/openai/models/beta/agent_create_params.rb +128 -0
- data/lib/openai/models/beta/agent_create_subagent_call_item.rb +84 -0
- data/lib/openai/models/beta/agent_delete_params.rb +22 -0
- data/lib/openai/models/beta/agent_deleted.rb +40 -0
- data/lib/openai/models/beta/agent_function_call_item.rb +75 -0
- data/lib/openai/models/beta/agent_function_call_output.rb +22 -0
- data/lib/openai/models/beta/agent_function_call_output_param.rb +22 -0
- data/lib/openai/models/beta/agent_function_call_status.rb +27 -0
- data/lib/openai/models/beta/agent_interrupt_subagent_call_item.rb +67 -0
- data/lib/openai/models/beta/agent_list_params.rb +57 -0
- data/lib/openai/models/beta/agent_mcp_call_item.rb +93 -0
- data/lib/openai/models/beta/agent_output_command_execution_output_delta_event.rb +75 -0
- data/lib/openai/models/beta/agent_output_item.rb +53 -0
- data/lib/openai/models/beta/agent_output_item_status.rb +24 -0
- data/lib/openai/models/beta/agent_reasoning.rb +67 -0
- data/lib/openai/models/beta/agent_reasoning_item.rb +57 -0
- data/lib/openai/models/beta/agent_reasoning_param.rb +67 -0
- data/lib/openai/models/beta/agent_resume_subagent_call_item.rb +66 -0
- data/lib/openai/models/beta/agent_retrieve_params.rb +22 -0
- data/lib/openai/models/beta/agent_send_subagent_input_call_item.rb +75 -0
- data/lib/openai/models/beta/agent_session.rb +339 -0
- data/lib/openai/models/beta/agent_session_assistant_message.rb +91 -0
- data/lib/openai/models/beta/agent_session_created_event.rb +39 -0
- data/lib/openai/models/beta/agent_session_deleted.rb +42 -0
- data/lib/openai/models/beta/agent_session_environment_connected_event.rb +57 -0
- data/lib/openai/models/beta/agent_session_environment_disconnected_event.rb +57 -0
- data/lib/openai/models/beta/agent_session_environment_failed_event.rb +57 -0
- data/lib/openai/models/beta/agent_session_environment_pending_event.rb +57 -0
- data/lib/openai/models/beta/agent_session_environment_ready_event.rb +57 -0
- data/lib/openai/models/beta/agent_session_environment_state.rb +106 -0
- data/lib/openai/models/beta/agent_session_error_event.rb +48 -0
- data/lib/openai/models/beta/agent_session_event.rb +128 -0
- data/lib/openai/models/beta/agent_session_failed_event.rb +39 -0
- data/lib/openai/models/beta/agent_session_idle_event.rb +39 -0
- data/lib/openai/models/beta/agent_session_in_progress_event.rb +39 -0
- data/lib/openai/models/beta/agent_session_input_message_param.rb +51 -0
- data/lib/openai/models/beta/agent_session_input_param.rb +131 -0
- data/lib/openai/models/beta/agent_session_item.rb +186 -0
- data/lib/openai/models/beta/agent_session_message.rb +106 -0
- data/lib/openai/models/beta/agent_session_message_content.rb +97 -0
- data/lib/openai/models/beta/agent_session_requires_action_event.rb +39 -0
- data/lib/openai/models/beta/agent_session_subagent_active_event.rb +39 -0
- data/lib/openai/models/beta/agent_session_subagent_closed_event.rb +39 -0
- data/lib/openai/models/beta/agent_session_subagent_created_event.rb +39 -0
- data/lib/openai/models/beta/agent_session_turn_cancelled_event.rb +66 -0
- data/lib/openai/models/beta/agent_session_turn_completed_event.rb +66 -0
- data/lib/openai/models/beta/agent_session_turn_content_part_added_event.rb +84 -0
- data/lib/openai/models/beta/agent_session_turn_content_part_done_event.rb +84 -0
- data/lib/openai/models/beta/agent_session_turn_created_event.rb +57 -0
- data/lib/openai/models/beta/agent_session_turn_failed_event.rb +66 -0
- data/lib/openai/models/beta/agent_session_turn_in_progress_event.rb +57 -0
- data/lib/openai/models/beta/agent_session_turn_item_added_event.rb +66 -0
- data/lib/openai/models/beta/agent_session_turn_item_done_event.rb +66 -0
- data/lib/openai/models/beta/agent_session_turn_output_text_delta_event.rb +84 -0
- data/lib/openai/models/beta/agent_session_turn_output_text_done_event.rb +84 -0
- data/lib/openai/models/beta/agent_session_turn_reasoning_summary_part_added_event.rb +86 -0
- data/lib/openai/models/beta/agent_session_turn_reasoning_summary_part_done_event.rb +93 -0
- data/lib/openai/models/beta/agent_session_turn_reasoning_summary_text_delta_event.rb +86 -0
- data/lib/openai/models/beta/agent_session_turn_reasoning_summary_text_done_event.rb +84 -0
- data/lib/openai/models/beta/agent_text.rb +44 -0
- data/lib/openai/models/beta/agent_text_param.rb +49 -0
- data/lib/openai/models/beta/agent_tool.rb +314 -0
- data/lib/openai/models/beta/agent_tool_param.rb +359 -0
- data/lib/openai/models/beta/agent_update_params.rb +137 -0
- data/lib/openai/models/beta/agent_wait_for_subagents_call_item.rb +66 -0
- data/lib/openai/models/beta/agent_web_search_call_item.rb +57 -0
- data/lib/openai/models/beta/agents/environment_info.rb +107 -0
- data/lib/openai/models/beta/agents/environment_retrieve_params.rb +24 -0
- data/lib/openai/models/beta/agents/environments/environment_file.rb +55 -0
- data/lib/openai/models/beta/agents/environments/environment_template.rb +368 -0
- data/lib/openai/models/beta/agents/environments/environment_template_deleted.rb +46 -0
- data/lib/openai/models/beta/agents/environments/file_create_params.rb +26 -0
- data/lib/openai/models/beta/agents/environments/file_list_params.rb +77 -0
- data/lib/openai/models/beta/agents/environments/template_create_params.rb +209 -0
- data/lib/openai/models/beta/agents/environments/template_delete_params.rb +26 -0
- data/lib/openai/models/beta/agents/environments/template_list_params.rb +61 -0
- data/lib/openai/models/beta/agents/environments/template_retrieve_params.rb +26 -0
- data/lib/openai/models/beta/agents/environments/template_update_params.rb +212 -0
- data/lib/openai/models/beta/agents/session_create_params.rb +203 -0
- data/lib/openai/models/beta/agents/session_delete_params.rb +24 -0
- data/lib/openai/models/beta/agents/session_list_params.rb +73 -0
- data/lib/openai/models/beta/agents/session_retrieve_params.rb +24 -0
- data/lib/openai/models/beta/agents/session_update_params.rb +38 -0
- data/lib/openai/models/beta/agents/sessions/artifact_content_params.rb +32 -0
- data/lib/openai/models/beta/agents/sessions/artifact_delete_params.rb +32 -0
- data/lib/openai/models/beta/agents/sessions/artifact_list_params.rb +77 -0
- data/lib/openai/models/beta/agents/sessions/artifact_retrieve_params.rb +32 -0
- data/lib/openai/models/beta/agents/sessions/event_create_params.rb +43 -0
- data/lib/openai/models/beta/agents/sessions/event_stream_params.rb +26 -0
- data/lib/openai/models/beta/agents/sessions/item_list_params.rb +68 -0
- data/lib/openai/models/beta/agents/sessions/session_artifact.rb +91 -0
- data/lib/openai/models/beta/agents/sessions/session_artifact_deleted.rb +46 -0
- data/lib/openai/models/beta/agents/sessions/subagent_list_params.rb +68 -0
- data/lib/openai/models/beta/agents/sessions/subagent_retrieve_params.rb +32 -0
- data/lib/openai/models/beta/agents/sessions/subagents/item_list_params.rb +77 -0
- data/lib/openai/models/beta/agents/sessions/subagents/turn_list_params.rb +77 -0
- data/lib/openai/models/beta/agents/sessions/subagents/turn_retrieve_params.rb +40 -0
- data/lib/openai/models/beta/agents/sessions/subagents/turns/item_list_params.rb +86 -0
- data/lib/openai/models/beta/agents/sessions/turn.rb +148 -0
- data/lib/openai/models/beta/agents/sessions/turn_list_params.rb +68 -0
- data/lib/openai/models/beta/agents/sessions/turn_retrieve_params.rb +32 -0
- data/lib/openai/models/beta/agents/vault.rb +63 -0
- data/lib/openai/models/beta/agents/vault_create_params.rb +40 -0
- data/lib/openai/models/beta/agents/vault_delete_params.rb +24 -0
- data/lib/openai/models/beta/agents/vault_deleted.rb +42 -0
- data/lib/openai/models/beta/agents/vault_list_params.rb +75 -0
- data/lib/openai/models/beta/agents/vault_retrieve_params.rb +24 -0
- data/lib/openai/models/beta/agents/vault_status.rb +20 -0
- data/lib/openai/models/beta/agents/vault_status_filter.rb +27 -0
- data/lib/openai/models/beta/agents/vaults/credential.rb +80 -0
- data/lib/openai/models/beta/agents/vaults/credential_auth.rb +155 -0
- data/lib/openai/models/beta/agents/vaults/credential_auth_create_param.rb +184 -0
- data/lib/openai/models/beta/agents/vaults/credential_auth_rotate_param.rb +147 -0
- data/lib/openai/models/beta/agents/vaults/credential_create_params.rb +47 -0
- data/lib/openai/models/beta/agents/vaults/credential_delete_params.rb +32 -0
- data/lib/openai/models/beta/agents/vaults/credential_deleted.rb +44 -0
- data/lib/openai/models/beta/agents/vaults/credential_list_params.rb +84 -0
- data/lib/openai/models/beta/agents/vaults/credential_retrieve_params.rb +32 -0
- data/lib/openai/models/beta/agents/vaults/credential_update_params.rb +43 -0
- data/lib/openai/models/beta/agents/vaults/mcp_oauth_token_endpoint_auth.rb +78 -0
- data/lib/openai/models/beta/agents/vaults/mcp_oauth_token_endpoint_auth_create_param.rb +96 -0
- data/lib/openai/models/beta/agents/vaults/mcp_oauth_token_endpoint_auth_rotate_param.rb +84 -0
- data/lib/openai/models/beta/environment.rb +246 -0
- data/lib/openai/models/beta/environment_param.rb +269 -0
- data/lib/openai/models/beta/hosted_environment_file.rb +64 -0
- data/lib/openai/models/beta/hosted_environment_file_id.rb +57 -0
- data/lib/openai/models/beta/hosted_environment_file_param.rb +87 -0
- data/lib/openai/models/beta/hosted_plugin.rb +39 -0
- data/lib/openai/models/beta/hosted_plugin_param.rb +48 -0
- data/lib/openai/models/beta/hosted_skill.rb +55 -0
- data/lib/openai/models/beta/hosted_skill_param.rb +96 -0
- data/lib/openai/models/beta/hosted_skill_reference.rb +57 -0
- data/lib/openai/models/beta/inline_capability_source_param.rb +39 -0
- data/lib/openai/models/beta/input_content.rb +71 -0
- data/lib/openai/models/beta/input_content_param.rb +69 -0
- data/lib/openai/models/beta/mcp_transport.rb +96 -0
- data/lib/openai/models/beta/mcp_transport_param.rb +123 -0
- data/lib/openai/models/beta/multi_agent_config.rb +32 -0
- data/lib/openai/models/beta/multi_agent_config_param.rb +30 -0
- data/lib/openai/models/beta/output_text.rb +30 -0
- data/lib/openai/models/beta/persisted_agent_tool.rb +329 -0
- data/lib/openai/models/beta/persisted_agent_tool_param.rb +355 -0
- data/lib/openai/models/beta/persisted_mcp_transport.rb +105 -0
- data/lib/openai/models/beta/persisted_mcp_transport_param.rb +105 -0
- data/lib/openai/models/beta/session_error.rb +48 -0
- data/lib/openai/models/beta/session_turn_error.rb +88 -0
- data/lib/openai/models/beta/setup_command_param.rb +30 -0
- data/lib/openai/models/beta/subagent.rb +121 -0
- data/lib/openai/models/beta/summary_text.rb +30 -0
- data/lib/openai/models/beta/text_format.rb +60 -0
- data/lib/openai/models/beta/text_format_param.rb +60 -0
- data/lib/openai/models/beta/token_usage.rb +87 -0
- data/lib/openai/models/beta/web_search_action.rb +130 -0
- data/lib/openai/models/chat/completion_create_params.rb +1 -1
- data/lib/openai/resources/beta/agents/environments/files.rb +89 -0
- data/lib/openai/resources/beta/agents/environments/templates.rb +206 -0
- data/lib/openai/resources/beta/agents/environments.rb +50 -0
- data/lib/openai/resources/beta/agents/sessions/artifacts.rb +155 -0
- data/lib/openai/resources/beta/agents/sessions/events.rb +80 -0
- data/lib/openai/resources/beta/agents/sessions/items.rb +57 -0
- data/lib/openai/resources/beta/agents/sessions/subagents/items.rb +66 -0
- data/lib/openai/resources/beta/agents/sessions/subagents/turns/items.rb +82 -0
- data/lib/openai/resources/beta/agents/sessions/subagents/turns.rb +108 -0
- data/lib/openai/resources/beta/agents/sessions/subagents.rb +95 -0
- data/lib/openai/resources/beta/agents/sessions/turns.rb +89 -0
- data/lib/openai/resources/beta/agents/sessions.rb +294 -0
- data/lib/openai/resources/beta/agents/vaults/credentials.rb +195 -0
- data/lib/openai/resources/beta/agents/vaults.rb +137 -0
- data/lib/openai/resources/beta/agents.rb +213 -0
- data/lib/openai/resources/beta.rb +4 -0
- data/lib/openai/resources/live/sessions.rb +10 -4
- data/lib/openai/version.rb +1 -1
- data/lib/openai.rb +176 -0
- data/rbi/openai/helpers/agents.rbi +71 -0
- data/rbi/openai/internal/token_page.rbi +25 -0
- data/rbi/openai/models/beta/agent.rbi +209 -0
- data/rbi/openai/models/beta/agent_close_subagent_call_item.rbi +102 -0
- data/rbi/openai/models/beta/agent_command_execution_item.rbi +132 -0
- data/rbi/openai/models/beta/agent_content.rbi +75 -0
- data/rbi/openai/models/beta/agent_create_params.rbi +212 -0
- data/rbi/openai/models/beta/agent_create_subagent_call_item.rbi +124 -0
- data/rbi/openai/models/beta/agent_delete_params.rbi +53 -0
- data/rbi/openai/models/beta/agent_deleted.rbi +68 -0
- data/rbi/openai/models/beta/agent_function_call_item.rbi +112 -0
- data/rbi/openai/models/beta/agent_function_call_output.rbi +33 -0
- data/rbi/openai/models/beta/agent_function_call_output_param.rbi +33 -0
- data/rbi/openai/models/beta/agent_function_call_status.rbi +35 -0
- data/rbi/openai/models/beta/agent_interrupt_subagent_call_item.rbi +103 -0
- data/rbi/openai/models/beta/agent_list_params.rbi +102 -0
- data/rbi/openai/models/beta/agent_mcp_call_item.rbi +132 -0
- data/rbi/openai/models/beta/agent_output_command_execution_output_delta_event.rbi +112 -0
- data/rbi/openai/models/beta/agent_output_item.rbi +38 -0
- data/rbi/openai/models/beta/agent_output_item_status.rbi +32 -0
- data/rbi/openai/models/beta/agent_reasoning.rbi +103 -0
- data/rbi/openai/models/beta/agent_reasoning_item.rbi +92 -0
- data/rbi/openai/models/beta/agent_reasoning_param.rbi +103 -0
- data/rbi/openai/models/beta/agent_resume_subagent_call_item.rbi +102 -0
- data/rbi/openai/models/beta/agent_retrieve_params.rbi +53 -0
- data/rbi/openai/models/beta/agent_send_subagent_input_call_item.rbi +114 -0
- data/rbi/openai/models/beta/agent_session.rbi +494 -0
- data/rbi/openai/models/beta/agent_session_assistant_message.rbi +130 -0
- data/rbi/openai/models/beta/agent_session_created_event.rbi +71 -0
- data/rbi/openai/models/beta/agent_session_deleted.rbi +71 -0
- data/rbi/openai/models/beta/agent_session_environment_connected_event.rbi +95 -0
- data/rbi/openai/models/beta/agent_session_environment_disconnected_event.rbi +95 -0
- data/rbi/openai/models/beta/agent_session_environment_failed_event.rbi +95 -0
- data/rbi/openai/models/beta/agent_session_environment_pending_event.rbi +95 -0
- data/rbi/openai/models/beta/agent_session_environment_ready_event.rbi +95 -0
- data/rbi/openai/models/beta/agent_session_environment_state.rbi +168 -0
- data/rbi/openai/models/beta/agent_session_error_event.rbi +80 -0
- data/rbi/openai/models/beta/agent_session_event.rbi +56 -0
- data/rbi/openai/models/beta/agent_session_failed_event.rbi +71 -0
- data/rbi/openai/models/beta/agent_session_idle_event.rbi +71 -0
- data/rbi/openai/models/beta/agent_session_in_progress_event.rbi +71 -0
- data/rbi/openai/models/beta/agent_session_input_message_param.rbi +100 -0
- data/rbi/openai/models/beta/agent_session_input_param.rbi +232 -0
- data/rbi/openai/models/beta/agent_session_item.rbi +239 -0
- data/rbi/openai/models/beta/agent_session_message.rbi +153 -0
- data/rbi/openai/models/beta/agent_session_message_content.rbi +172 -0
- data/rbi/openai/models/beta/agent_session_requires_action_event.rbi +71 -0
- data/rbi/openai/models/beta/agent_session_subagent_active_event.rbi +71 -0
- data/rbi/openai/models/beta/agent_session_subagent_closed_event.rbi +71 -0
- data/rbi/openai/models/beta/agent_session_subagent_created_event.rbi +71 -0
- data/rbi/openai/models/beta/agent_session_turn_cancelled_event.rbi +108 -0
- data/rbi/openai/models/beta/agent_session_turn_completed_event.rbi +108 -0
- data/rbi/openai/models/beta/agent_session_turn_content_part_added_event.rbi +125 -0
- data/rbi/openai/models/beta/agent_session_turn_content_part_done_event.rbi +125 -0
- data/rbi/openai/models/beta/agent_session_turn_created_event.rbi +95 -0
- data/rbi/openai/models/beta/agent_session_turn_failed_event.rbi +108 -0
- data/rbi/openai/models/beta/agent_session_turn_in_progress_event.rbi +95 -0
- data/rbi/openai/models/beta/agent_session_turn_item_added_event.rbi +117 -0
- data/rbi/openai/models/beta/agent_session_turn_item_done_event.rbi +115 -0
- data/rbi/openai/models/beta/agent_session_turn_output_text_delta_event.rbi +122 -0
- data/rbi/openai/models/beta/agent_session_turn_output_text_done_event.rbi +122 -0
- data/rbi/openai/models/beta/agent_session_turn_reasoning_summary_part_added_event.rbi +127 -0
- data/rbi/openai/models/beta/agent_session_turn_reasoning_summary_part_done_event.rbi +135 -0
- data/rbi/openai/models/beta/agent_session_turn_reasoning_summary_text_delta_event.rbi +124 -0
- data/rbi/openai/models/beta/agent_session_turn_reasoning_summary_text_done_event.rbi +122 -0
- data/rbi/openai/models/beta/agent_text.rbi +75 -0
- data/rbi/openai/models/beta/agent_text_param.rbi +87 -0
- data/rbi/openai/models/beta/agent_tool.rbi +467 -0
- data/rbi/openai/models/beta/agent_tool_param.rbi +530 -0
- data/rbi/openai/models/beta/agent_update_params.rbi +225 -0
- data/rbi/openai/models/beta/agent_wait_for_subagents_call_item.rbi +102 -0
- data/rbi/openai/models/beta/agent_web_search_call_item.rbi +99 -0
- data/rbi/openai/models/beta/agents/environment_info.rbi +156 -0
- data/rbi/openai/models/beta/agents/environment_retrieve_params.rbi +57 -0
- data/rbi/openai/models/beta/agents/environments/environment_file.rbi +87 -0
- data/rbi/openai/models/beta/agents/environments/environment_template.rbi +582 -0
- data/rbi/openai/models/beta/agents/environments/environment_template_deleted.rbi +78 -0
- data/rbi/openai/models/beta/agents/environments/file_create_params.rbi +61 -0
- data/rbi/openai/models/beta/agents/environments/file_list_params.rbi +130 -0
- data/rbi/openai/models/beta/agents/environments/template_create_params.rbi +350 -0
- data/rbi/openai/models/beta/agents/environments/template_delete_params.rbi +61 -0
- data/rbi/openai/models/beta/agents/environments/template_list_params.rbi +117 -0
- data/rbi/openai/models/beta/agents/environments/template_retrieve_params.rbi +61 -0
- data/rbi/openai/models/beta/agents/environments/template_update_params.rbi +354 -0
- data/rbi/openai/models/beta/agents/session_create_params.rbi +336 -0
- data/rbi/openai/models/beta/agents/session_delete_params.rbi +57 -0
- data/rbi/openai/models/beta/agents/session_list_params.rbi +124 -0
- data/rbi/openai/models/beta/agents/session_retrieve_params.rbi +57 -0
- data/rbi/openai/models/beta/agents/session_update_params.rbi +74 -0
- data/rbi/openai/models/beta/agents/sessions/artifact_content_params.rbi +68 -0
- data/rbi/openai/models/beta/agents/sessions/artifact_delete_params.rbi +68 -0
- data/rbi/openai/models/beta/agents/sessions/artifact_list_params.rbi +127 -0
- data/rbi/openai/models/beta/agents/sessions/artifact_retrieve_params.rbi +68 -0
- data/rbi/openai/models/beta/agents/sessions/event_create_params.rbi +107 -0
- data/rbi/openai/models/beta/agents/sessions/event_stream_params.rbi +61 -0
- data/rbi/openai/models/beta/agents/sessions/item_list_params.rbi +121 -0
- data/rbi/openai/models/beta/agents/sessions/session_artifact.rbi +132 -0
- data/rbi/openai/models/beta/agents/sessions/session_artifact_deleted.rbi +78 -0
- data/rbi/openai/models/beta/agents/sessions/subagent_list_params.rbi +123 -0
- data/rbi/openai/models/beta/agents/sessions/subagent_retrieve_params.rbi +68 -0
- data/rbi/openai/models/beta/agents/sessions/subagents/item_list_params.rbi +139 -0
- data/rbi/openai/models/beta/agents/sessions/subagents/turn_list_params.rbi +139 -0
- data/rbi/openai/models/beta/agents/sessions/subagents/turn_retrieve_params.rbi +79 -0
- data/rbi/openai/models/beta/agents/sessions/subagents/turns/item_list_params.rbi +161 -0
- data/rbi/openai/models/beta/agents/sessions/turn.rbi +200 -0
- data/rbi/openai/models/beta/agents/sessions/turn_list_params.rbi +121 -0
- data/rbi/openai/models/beta/agents/sessions/turn_retrieve_params.rbi +68 -0
- data/rbi/openai/models/beta/agents/vault.rbi +99 -0
- data/rbi/openai/models/beta/agents/vault_create_params.rbi +75 -0
- data/rbi/openai/models/beta/agents/vault_delete_params.rbi +57 -0
- data/rbi/openai/models/beta/agents/vault_deleted.rbi +72 -0
- data/rbi/openai/models/beta/agents/vault_list_params.rbi +149 -0
- data/rbi/openai/models/beta/agents/vault_retrieve_params.rbi +57 -0
- data/rbi/openai/models/beta/agents/vault_status.rbi +30 -0
- data/rbi/openai/models/beta/agents/vault_status_filter.rbi +39 -0
- data/rbi/openai/models/beta/agents/vaults/credential.rbi +123 -0
- data/rbi/openai/models/beta/agents/vaults/credential_auth.rbi +248 -0
- data/rbi/openai/models/beta/agents/vaults/credential_auth_create_param.rbi +293 -0
- data/rbi/openai/models/beta/agents/vaults/credential_auth_rotate_param.rbi +252 -0
- data/rbi/openai/models/beta/agents/vaults/credential_create_params.rbi +99 -0
- data/rbi/openai/models/beta/agents/vaults/credential_delete_params.rbi +68 -0
- data/rbi/openai/models/beta/agents/vaults/credential_deleted.rbi +76 -0
- data/rbi/openai/models/beta/agents/vaults/credential_list_params.rbi +163 -0
- data/rbi/openai/models/beta/agents/vaults/credential_retrieve_params.rbi +68 -0
- data/rbi/openai/models/beta/agents/vaults/credential_update_params.rbi +95 -0
- data/rbi/openai/models/beta/agents/vaults/mcp_oauth_token_endpoint_auth.rbi +151 -0
- data/rbi/openai/models/beta/agents/vaults/mcp_oauth_token_endpoint_auth_create_param.rbi +171 -0
- data/rbi/openai/models/beta/agents/vaults/mcp_oauth_token_endpoint_auth_rotate_param.rbi +137 -0
- data/rbi/openai/models/beta/environment.rbi +400 -0
- data/rbi/openai/models/beta/environment_param.rbi +448 -0
- data/rbi/openai/models/beta/hosted_environment_file.rbi +93 -0
- data/rbi/openai/models/beta/hosted_environment_file_id.rbi +86 -0
- data/rbi/openai/models/beta/hosted_environment_file_param.rbi +140 -0
- data/rbi/openai/models/beta/hosted_plugin.rbi +68 -0
- data/rbi/openai/models/beta/hosted_plugin_param.rbi +80 -0
- data/rbi/openai/models/beta/hosted_skill.rbi +84 -0
- data/rbi/openai/models/beta/hosted_skill_param.rbi +152 -0
- data/rbi/openai/models/beta/hosted_skill_reference.rbi +86 -0
- data/rbi/openai/models/beta/inline_capability_source_param.rbi +68 -0
- data/rbi/openai/models/beta/input_content.rbi +124 -0
- data/rbi/openai/models/beta/input_content_param.rbi +122 -0
- data/rbi/openai/models/beta/mcp_transport.rbi +149 -0
- data/rbi/openai/models/beta/mcp_transport_param.rbi +188 -0
- data/rbi/openai/models/beta/multi_agent_config.rbi +61 -0
- data/rbi/openai/models/beta/multi_agent_config_param.rbi +62 -0
- data/rbi/openai/models/beta/output_text.rbi +59 -0
- data/rbi/openai/models/beta/persisted_agent_tool.rbi +507 -0
- data/rbi/openai/models/beta/persisted_agent_tool_param.rbi +546 -0
- data/rbi/openai/models/beta/persisted_mcp_transport.rbi +158 -0
- data/rbi/openai/models/beta/persisted_mcp_transport_param.rbi +164 -0
- data/rbi/openai/models/beta/session_error.rbi +77 -0
- data/rbi/openai/models/beta/session_turn_error.rbi +125 -0
- data/rbi/openai/models/beta/setup_command_param.rbi +59 -0
- data/rbi/openai/models/beta/subagent.rbi +158 -0
- data/rbi/openai/models/beta/summary_text.rbi +59 -0
- data/rbi/openai/models/beta/text_format.rbi +113 -0
- data/rbi/openai/models/beta/text_format_param.rbi +113 -0
- data/rbi/openai/models/beta/token_usage.rbi +174 -0
- data/rbi/openai/models/beta/web_search_action.rbi +227 -0
- data/rbi/openai/resources/beta/agents/environments/files.rbi +79 -0
- data/rbi/openai/resources/beta/agents/environments/templates.rbi +194 -0
- data/rbi/openai/resources/beta/agents/environments.rbi +44 -0
- data/rbi/openai/resources/beta/agents/sessions/artifacts.rbi +105 -0
- data/rbi/openai/resources/beta/agents/sessions/events.rbi +71 -0
- data/rbi/openai/resources/beta/agents/sessions/items.rbi +53 -0
- data/rbi/openai/resources/beta/agents/sessions/subagents/items.rbi +60 -0
- data/rbi/openai/resources/beta/agents/sessions/subagents/turns/items.rbi +67 -0
- data/rbi/openai/resources/beta/agents/sessions/subagents/turns.rbi +85 -0
- data/rbi/openai/resources/beta/agents/sessions/subagents.rbi +74 -0
- data/rbi/openai/resources/beta/agents/sessions/turns.rbi +70 -0
- data/rbi/openai/resources/beta/agents/sessions.rbi +208 -0
- data/rbi/openai/resources/beta/agents/vaults/credentials.rbi +148 -0
- data/rbi/openai/resources/beta/agents/vaults.rbi +106 -0
- data/rbi/openai/resources/beta/agents.rbi +180 -0
- data/rbi/openai/resources/beta.rbi +3 -0
- data/rbi/openai/resources/live/sessions.rbi +10 -4
- data/rbi/openai/resources/responses.rbi +8 -8
- data/sig/openai/helpers/agents.rbs +50 -0
- data/sig/openai/internal/token_page.rbs +15 -0
- data/sig/openai/models/beta/agent.rbs +96 -0
- data/sig/openai/models/beta/agent_close_subagent_call_item.rbs +47 -0
- data/sig/openai/models/beta/agent_command_execution_item.rbs +62 -0
- data/sig/openai/models/beta/agent_content.rbs +33 -0
- data/sig/openai/models/beta/agent_create_params.rbs +91 -0
- data/sig/openai/models/beta/agent_create_subagent_call_item.rbs +57 -0
- data/sig/openai/models/beta/agent_delete_params.rbs +25 -0
- data/sig/openai/models/beta/agent_deleted.rbs +24 -0
- data/sig/openai/models/beta/agent_function_call_item.rbs +52 -0
- data/sig/openai/models/beta/agent_function_call_output.rbs +16 -0
- data/sig/openai/models/beta/agent_function_call_output_param.rbs +16 -0
- data/sig/openai/models/beta/agent_function_call_status.rbs +26 -0
- data/sig/openai/models/beta/agent_interrupt_subagent_call_item.rbs +47 -0
- data/sig/openai/models/beta/agent_list_params.rbs +58 -0
- data/sig/openai/models/beta/agent_mcp_call_item.rbs +62 -0
- data/sig/openai/models/beta/agent_output_command_execution_output_delta_event.rbs +52 -0
- data/sig/openai/models/beta/agent_output_item.rbs +25 -0
- data/sig/openai/models/beta/agent_output_item_status.rbs +22 -0
- data/sig/openai/models/beta/agent_reasoning.rbs +60 -0
- data/sig/openai/models/beta/agent_reasoning_item.rbs +42 -0
- data/sig/openai/models/beta/agent_reasoning_param.rbs +60 -0
- data/sig/openai/models/beta/agent_resume_subagent_call_item.rbs +47 -0
- data/sig/openai/models/beta/agent_retrieve_params.rbs +25 -0
- data/sig/openai/models/beta/agent_send_subagent_input_call_item.rbs +52 -0
- data/sig/openai/models/beta/agent_session.rbs +234 -0
- data/sig/openai/models/beta/agent_session_assistant_message.rbs +66 -0
- data/sig/openai/models/beta/agent_session_created_event.rbs +32 -0
- data/sig/openai/models/beta/agent_session_deleted.rbs +28 -0
- data/sig/openai/models/beta/agent_session_environment_connected_event.rbs +42 -0
- data/sig/openai/models/beta/agent_session_environment_disconnected_event.rbs +42 -0
- data/sig/openai/models/beta/agent_session_environment_failed_event.rbs +42 -0
- data/sig/openai/models/beta/agent_session_environment_pending_event.rbs +42 -0
- data/sig/openai/models/beta/agent_session_environment_ready_event.rbs +42 -0
- data/sig/openai/models/beta/agent_session_environment_state.rbs +74 -0
- data/sig/openai/models/beta/agent_session_error_event.rbs +37 -0
- data/sig/openai/models/beta/agent_session_event.rbs +43 -0
- data/sig/openai/models/beta/agent_session_failed_event.rbs +32 -0
- data/sig/openai/models/beta/agent_session_idle_event.rbs +32 -0
- data/sig/openai/models/beta/agent_session_in_progress_event.rbs +32 -0
- data/sig/openai/models/beta/agent_session_input_message_param.rbs +46 -0
- data/sig/openai/models/beta/agent_session_input_param.rbs +91 -0
- data/sig/openai/models/beta/agent_session_item.rbs +116 -0
- data/sig/openai/models/beta/agent_session_message.rbs +77 -0
- data/sig/openai/models/beta/agent_session_message_content.rbs +52 -0
- data/sig/openai/models/beta/agent_session_requires_action_event.rbs +32 -0
- data/sig/openai/models/beta/agent_session_subagent_active_event.rbs +32 -0
- data/sig/openai/models/beta/agent_session_subagent_closed_event.rbs +32 -0
- data/sig/openai/models/beta/agent_session_subagent_created_event.rbs +32 -0
- data/sig/openai/models/beta/agent_session_turn_cancelled_event.rbs +47 -0
- data/sig/openai/models/beta/agent_session_turn_completed_event.rbs +47 -0
- data/sig/openai/models/beta/agent_session_turn_content_part_added_event.rbs +57 -0
- data/sig/openai/models/beta/agent_session_turn_content_part_done_event.rbs +57 -0
- data/sig/openai/models/beta/agent_session_turn_created_event.rbs +42 -0
- data/sig/openai/models/beta/agent_session_turn_failed_event.rbs +47 -0
- data/sig/openai/models/beta/agent_session_turn_in_progress_event.rbs +42 -0
- data/sig/openai/models/beta/agent_session_turn_item_added_event.rbs +47 -0
- data/sig/openai/models/beta/agent_session_turn_item_done_event.rbs +47 -0
- data/sig/openai/models/beta/agent_session_turn_output_text_delta_event.rbs +57 -0
- data/sig/openai/models/beta/agent_session_turn_output_text_done_event.rbs +57 -0
- data/sig/openai/models/beta/agent_session_turn_reasoning_summary_part_added_event.rbs +57 -0
- data/sig/openai/models/beta/agent_session_turn_reasoning_summary_part_done_event.rbs +64 -0
- data/sig/openai/models/beta/agent_session_turn_reasoning_summary_text_delta_event.rbs +57 -0
- data/sig/openai/models/beta/agent_session_turn_reasoning_summary_text_done_event.rbs +57 -0
- data/sig/openai/models/beta/agent_text.rbs +39 -0
- data/sig/openai/models/beta/agent_text_param.rbs +44 -0
- data/sig/openai/models/beta/agent_tool.rbs +226 -0
- data/sig/openai/models/beta/agent_tool_param.rbs +251 -0
- data/sig/openai/models/beta/agent_update_params.rbs +98 -0
- data/sig/openai/models/beta/agent_wait_for_subagents_call_item.rbs +47 -0
- data/sig/openai/models/beta/agent_web_search_call_item.rbs +42 -0
- data/sig/openai/models/beta/agents/environment_info.rbs +80 -0
- data/sig/openai/models/beta/agents/environment_retrieve_params.rbs +27 -0
- data/sig/openai/models/beta/agents/environments/environment_file.rbs +43 -0
- data/sig/openai/models/beta/agents/environments/environment_template.rbs +255 -0
- data/sig/openai/models/beta/agents/environments/environment_template_deleted.rbs +38 -0
- data/sig/openai/models/beta/agents/environments/file_create_params.rbs +29 -0
- data/sig/openai/models/beta/agents/environments/file_list_params.rbs +72 -0
- data/sig/openai/models/beta/agents/environments/template_create_params.rbs +138 -0
- data/sig/openai/models/beta/agents/environments/template_delete_params.rbs +32 -0
- data/sig/openai/models/beta/agents/environments/template_list_params.rbs +64 -0
- data/sig/openai/models/beta/agents/environments/template_retrieve_params.rbs +32 -0
- data/sig/openai/models/beta/agents/environments/template_update_params.rbs +143 -0
- data/sig/openai/models/beta/agents/session_create_params.rbs +144 -0
- data/sig/openai/models/beta/agents/session_delete_params.rbs +27 -0
- data/sig/openai/models/beta/agents/session_list_params.rbs +67 -0
- data/sig/openai/models/beta/agents/session_retrieve_params.rbs +27 -0
- data/sig/openai/models/beta/agents/session_update_params.rbs +35 -0
- data/sig/openai/models/beta/agents/sessions/artifact_content_params.rbs +37 -0
- data/sig/openai/models/beta/agents/sessions/artifact_delete_params.rbs +37 -0
- data/sig/openai/models/beta/agents/sessions/artifact_list_params.rbs +70 -0
- data/sig/openai/models/beta/agents/sessions/artifact_retrieve_params.rbs +37 -0
- data/sig/openai/models/beta/agents/sessions/event_create_params.rbs +44 -0
- data/sig/openai/models/beta/agents/sessions/event_stream_params.rbs +29 -0
- data/sig/openai/models/beta/agents/sessions/item_list_params.rbs +69 -0
- data/sig/openai/models/beta/agents/sessions/session_artifact.rbs +63 -0
- data/sig/openai/models/beta/agents/sessions/session_artifact_deleted.rbs +38 -0
- data/sig/openai/models/beta/agents/sessions/subagent_list_params.rbs +69 -0
- data/sig/openai/models/beta/agents/sessions/subagent_retrieve_params.rbs +37 -0
- data/sig/openai/models/beta/agents/sessions/subagents/item_list_params.rbs +76 -0
- data/sig/openai/models/beta/agents/sessions/subagents/turn_list_params.rbs +76 -0
- data/sig/openai/models/beta/agents/sessions/subagents/turn_retrieve_params.rbs +44 -0
- data/sig/openai/models/beta/agents/sessions/subagents/turns/item_list_params.rbs +83 -0
- data/sig/openai/models/beta/agents/sessions/turn.rbs +108 -0
- data/sig/openai/models/beta/agents/sessions/turn_list_params.rbs +69 -0
- data/sig/openai/models/beta/agents/sessions/turn_retrieve_params.rbs +37 -0
- data/sig/openai/models/beta/agents/vault.rbs +44 -0
- data/sig/openai/models/beta/agents/vault_create_params.rbs +37 -0
- data/sig/openai/models/beta/agents/vault_delete_params.rbs +27 -0
- data/sig/openai/models/beta/agents/vault_deleted.rbs +30 -0
- data/sig/openai/models/beta/agents/vault_list_params.rbs +69 -0
- data/sig/openai/models/beta/agents/vault_retrieve_params.rbs +27 -0
- data/sig/openai/models/beta/agents/vault_status.rbs +18 -0
- data/sig/openai/models/beta/agents/vault_status_filter.rbs +19 -0
- data/sig/openai/models/beta/agents/vaults/credential.rbs +56 -0
- data/sig/openai/models/beta/agents/vaults/credential_auth.rbs +104 -0
- data/sig/openai/models/beta/agents/vaults/credential_auth_create_param.rbs +121 -0
- data/sig/openai/models/beta/agents/vaults/credential_auth_rotate_param.rbs +90 -0
- data/sig/openai/models/beta/agents/vaults/credential_create_params.rbs +42 -0
- data/sig/openai/models/beta/agents/vaults/credential_delete_params.rbs +37 -0
- data/sig/openai/models/beta/agents/vaults/credential_deleted.rbs +32 -0
- data/sig/openai/models/beta/agents/vaults/credential_list_params.rbs +76 -0
- data/sig/openai/models/beta/agents/vaults/credential_retrieve_params.rbs +37 -0
- data/sig/openai/models/beta/agents/vaults/credential_update_params.rbs +42 -0
- data/sig/openai/models/beta/agents/vaults/mcp_oauth_token_endpoint_auth.rbs +50 -0
- data/sig/openai/models/beta/agents/vaults/mcp_oauth_token_endpoint_auth_create_param.rbs +68 -0
- data/sig/openai/models/beta/agents/vaults/mcp_oauth_token_endpoint_auth_rotate_param.rbs +57 -0
- data/sig/openai/models/beta/environment.rbs +181 -0
- data/sig/openai/models/beta/environment_param.rbs +183 -0
- data/sig/openai/models/beta/hosted_environment_file.rbs +42 -0
- data/sig/openai/models/beta/hosted_environment_file_id.rbs +42 -0
- data/sig/openai/models/beta/hosted_environment_file_param.rbs +47 -0
- data/sig/openai/models/beta/hosted_plugin.rbs +23 -0
- data/sig/openai/models/beta/hosted_plugin_param.rbs +37 -0
- data/sig/openai/models/beta/hosted_skill.rbs +32 -0
- data/sig/openai/models/beta/hosted_skill_param.rbs +70 -0
- data/sig/openai/models/beta/hosted_skill_reference.rbs +42 -0
- data/sig/openai/models/beta/inline_capability_source_param.rbs +28 -0
- data/sig/openai/models/beta/input_content.rbs +39 -0
- data/sig/openai/models/beta/input_content_param.rbs +39 -0
- data/sig/openai/models/beta/mcp_transport.rbs +63 -0
- data/sig/openai/models/beta/mcp_transport_param.rbs +89 -0
- data/sig/openai/models/beta/multi_agent_config.rbs +21 -0
- data/sig/openai/models/beta/multi_agent_config_param.rbs +23 -0
- data/sig/openai/models/beta/output_text.rbs +17 -0
- data/sig/openai/models/beta/persisted_agent_tool.rbs +237 -0
- data/sig/openai/models/beta/persisted_agent_tool_param.rbs +251 -0
- data/sig/openai/models/beta/persisted_mcp_transport.rbs +75 -0
- data/sig/openai/models/beta/persisted_mcp_transport_param.rbs +79 -0
- data/sig/openai/models/beta/session_error.rbs +32 -0
- data/sig/openai/models/beta/session_turn_error.rbs +96 -0
- data/sig/openai/models/beta/setup_command_param.rbs +17 -0
- data/sig/openai/models/beta/subagent.rbs +76 -0
- data/sig/openai/models/beta/summary_text.rbs +17 -0
- data/sig/openai/models/beta/text_format.rbs +39 -0
- data/sig/openai/models/beta/text_format_param.rbs +40 -0
- data/sig/openai/models/beta/token_usage.rbs +62 -0
- data/sig/openai/models/beta/web_search_action.rbs +85 -0
- data/sig/openai/resources/beta/agents/environments/files.rbs +28 -0
- data/sig/openai/resources/beta/agents/environments/templates.rbs +57 -0
- data/sig/openai/resources/beta/agents/environments.rbs +20 -0
- data/sig/openai/resources/beta/agents/sessions/artifacts.rbs +40 -0
- data/sig/openai/resources/beta/agents/sessions/events.rbs +25 -0
- data/sig/openai/resources/beta/agents/sessions/items.rbs +21 -0
- data/sig/openai/resources/beta/agents/sessions/subagents/items.rbs +24 -0
- data/sig/openai/resources/beta/agents/sessions/subagents/turns/items.rbs +27 -0
- data/sig/openai/resources/beta/agents/sessions/subagents/turns.rbs +33 -0
- data/sig/openai/resources/beta/agents/sessions/subagents.rbs +31 -0
- data/sig/openai/resources/beta/agents/sessions/turns.rbs +27 -0
- data/sig/openai/resources/beta/agents/sessions.rbs +65 -0
- data/sig/openai/resources/beta/agents/vaults/credentials.rbs +48 -0
- data/sig/openai/resources/beta/agents/vaults.rbs +37 -0
- data/sig/openai/resources/beta/agents.rbs +59 -0
- data/sig/openai/resources/beta.rbs +2 -0
- metadata +525 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ed1195dfde86772df82a57968852233c3a37680a78766331eda4daca5961a74c
|
|
4
|
+
data.tar.gz: be58d94437e2b61b07576d3dac3769897ac72dffdfffbe6895e2fe0b13fcd345
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3b363e344db928b8523e320c1f623a6d6f479c62806031eb362eff88ac3322760e794ad0993e19a5bc65fdc95d7f5bc97d9ff4592e8a8b1b19edac07f1a1e03f
|
|
7
|
+
data.tar.gz: 9544d48b551ba4e9928025e0bec07c57fa35b5ce3c8f2afb7f1fad7d1700cb40576ff896bc65c05b90cd55ac2fd2edb491cd42d24d119bf07326bb85d2913b1f
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.90.0](https://github.com/openai/openai-ruby/compare/v0.89.0...v0.90.0) (2026-09-10)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* **api:** add Agents API ([#695](https://github.com/openai/openai-ruby/issues/695)) ([24324ed](https://github.com/openai/openai-ruby/commit/24324ed510a198d2f955668a231a63c46cf491c1))
|
|
9
|
+
|
|
3
10
|
## [0.89.0](https://github.com/openai/openai-ruby/compare/v0.88.0...v0.89.0) (2026-09-10)
|
|
4
11
|
|
|
5
12
|
|
data/README.md
CHANGED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Models
|
|
5
|
+
module Beta
|
|
6
|
+
class AgentSessionMessage
|
|
7
|
+
# Concatenate output-text blocks in message order, without fetching or
|
|
8
|
+
# filtering by phase. Reading this method does not change serialization.
|
|
9
|
+
# @return [String]
|
|
10
|
+
def output_text
|
|
11
|
+
content
|
|
12
|
+
.filter_map do |part|
|
|
13
|
+
(part[:text] || part["text"]) if (part[:type] || part["type"]).to_s == "output_text"
|
|
14
|
+
end
|
|
15
|
+
.join
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "tools"
|
|
4
|
+
|
|
5
|
+
module OpenAI
|
|
6
|
+
module Helpers
|
|
7
|
+
module Agents
|
|
8
|
+
# Stream one turn on an idle session. The caller must be its only input writer
|
|
9
|
+
# until iteration ends, because input submission does not return a turn ID.
|
|
10
|
+
# Use a block or ensure #close when abandoning external iteration.
|
|
11
|
+
# Closing the connection does not cancel the backend turn.
|
|
12
|
+
class SessionStream
|
|
13
|
+
include Enumerable
|
|
14
|
+
|
|
15
|
+
# @api private
|
|
16
|
+
def initialize(sessions:, session_id:, input:, tool_handlers: {}, idempotency_key: nil, request_options: {})
|
|
17
|
+
messages = input.is_a?(String) ? [{role: :user, content: [{type: :input_text, text: input}]}] : input.to_a
|
|
18
|
+
raise ArgumentError, "input must not be empty" if input == "" || messages.empty?
|
|
19
|
+
|
|
20
|
+
@sessions = sessions
|
|
21
|
+
@session_id = session_id
|
|
22
|
+
@handlers = tool_handlers.to_h.dup
|
|
23
|
+
@options = request_options.to_h.dup
|
|
24
|
+
headers = {"OpenAI-Beta" => "agents=v1"}.merge(@options[:extra_headers].to_h)
|
|
25
|
+
options_key = @options.delete(:idempotency_key)
|
|
26
|
+
input_key = idempotency_key || options_key || SecureRandom.uuid
|
|
27
|
+
headers.delete_if do |key, value|
|
|
28
|
+
match = key.to_s.casecmp?("idempotency-key")
|
|
29
|
+
input_key = value if match
|
|
30
|
+
match
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
@options[:extra_headers] = headers
|
|
34
|
+
@recent_events = {}
|
|
35
|
+
@handled_calls = {}
|
|
36
|
+
@closed = false
|
|
37
|
+
session = @sessions.retrieve(@session_id, request_options: @options)
|
|
38
|
+
unless session.status == :idle
|
|
39
|
+
raise(
|
|
40
|
+
ArgumentError,
|
|
41
|
+
"sessions.stream requires an idle session; use sessions.events.stream_streaming to follow an active session"
|
|
42
|
+
)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
@raw_stream = @sessions.events.stream_streaming(@session_id, request_options: @options)
|
|
46
|
+
begin
|
|
47
|
+
@sessions.events.create(
|
|
48
|
+
@session_id,
|
|
49
|
+
events: [{type: :"agent.session.input.message", input: messages}],
|
|
50
|
+
idempotency_key: input_key,
|
|
51
|
+
request_options: @options
|
|
52
|
+
)
|
|
53
|
+
@iterator = iterator
|
|
54
|
+
submitted = true
|
|
55
|
+
ensure
|
|
56
|
+
close unless submitted
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
# Yields the original typed events. Registered handlers run sequentially after
|
|
61
|
+
# their function-call event is yielded; unknown tools remain caller-managed.
|
|
62
|
+
# @yieldparam event [OpenAI::Models::Beta::AgentSessionEvent]
|
|
63
|
+
# @return [Enumerator, self]
|
|
64
|
+
def each
|
|
65
|
+
return enum_for(:each) unless block_given?
|
|
66
|
+
return self if @closed
|
|
67
|
+
begin
|
|
68
|
+
loop do
|
|
69
|
+
break if @closed
|
|
70
|
+
yield @iterator.next
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
ensure
|
|
74
|
+
close
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
self
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
# Consume remaining events and registered tool calls.
|
|
81
|
+
# @return [self]
|
|
82
|
+
def until_done
|
|
83
|
+
each { |_event| nil }
|
|
84
|
+
self
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
# Close the event connection without cancelling the backend turn.
|
|
88
|
+
# @return [void]
|
|
89
|
+
def close
|
|
90
|
+
return if @closed
|
|
91
|
+
|
|
92
|
+
@closed = true
|
|
93
|
+
@raw_stream&.close
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
private
|
|
97
|
+
|
|
98
|
+
def iterator
|
|
99
|
+
Enumerator.new do |yielder|
|
|
100
|
+
begin
|
|
101
|
+
@raw_stream.each do |event|
|
|
102
|
+
next unless accept?(event)
|
|
103
|
+
|
|
104
|
+
terminal = event.type == :"agent.session.failed" ||
|
|
105
|
+
(event.type == :"agent.session.idle" && @turn_ended)
|
|
106
|
+
invocation = prepare_call(event) unless terminal
|
|
107
|
+
close if terminal
|
|
108
|
+
yielder << event
|
|
109
|
+
break if terminal || @closed
|
|
110
|
+
|
|
111
|
+
dispatch(invocation.call) if invocation
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
raise RuntimeError, "Session event stream ended before the turn reached idle or failed" unless @closed
|
|
115
|
+
ensure
|
|
116
|
+
close
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
def accept?(event)
|
|
122
|
+
return false if @recent_events.key?(event.event_id)
|
|
123
|
+
|
|
124
|
+
@recent_events.shift if @recent_events.size == 1024
|
|
125
|
+
@recent_events[event.event_id] = true
|
|
126
|
+
case event.type
|
|
127
|
+
when :"agent.session.turn.created"
|
|
128
|
+
@turn_id ||= event.turn_id.dup if event.turn.subagent_id.nil?
|
|
129
|
+
when :"agent.session.turn.completed", :"agent.session.turn.failed", :"agent.session.turn.cancelled"
|
|
130
|
+
@turn_ended = true if @turn_id && event.turn_id == @turn_id
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
true
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
def prepare_call(event)
|
|
137
|
+
return unless event.type == :"agent.session.turn.item.added" && event.item.type == :function_call
|
|
138
|
+
|
|
139
|
+
call = event.item
|
|
140
|
+
key = [call.turn_id.dup, call.call_id.dup]
|
|
141
|
+
return if @handled_calls.key?(key)
|
|
142
|
+
|
|
143
|
+
@handled_calls[key] = true
|
|
144
|
+
handler = @handlers[call.name]
|
|
145
|
+
return unless handler
|
|
146
|
+
|
|
147
|
+
Tools.prepare(call, handler)
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
def dispatch(result)
|
|
151
|
+
idempotency_key = SecureRandom.uuid
|
|
152
|
+
delays = [0.1, 0.3, 0.6]
|
|
153
|
+
begin
|
|
154
|
+
@sessions
|
|
155
|
+
.events
|
|
156
|
+
.create(@session_id, events: [result], idempotency_key: idempotency_key, request_options: @options)
|
|
157
|
+
rescue OpenAI::Errors::BadRequestError => error
|
|
158
|
+
delay = delays.shift
|
|
159
|
+
raise unless delay && Tools.pending_call_race?(error, result[:call_id])
|
|
160
|
+
|
|
161
|
+
sleep(delay)
|
|
162
|
+
retry
|
|
163
|
+
end
|
|
164
|
+
end
|
|
165
|
+
end
|
|
166
|
+
end
|
|
167
|
+
end
|
|
168
|
+
end
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Helpers
|
|
5
|
+
module Agents
|
|
6
|
+
# @api private
|
|
7
|
+
module Tools
|
|
8
|
+
# Capture routing and detached arguments before caller code sees the event,
|
|
9
|
+
# but defer the application callback until iteration resumes after yielding it.
|
|
10
|
+
def self.prepare(call, handler)
|
|
11
|
+
base = {type: :"agent.session.input.tool_result", turn_id: call.turn_id.dup, call_id: call.call_id.dup}
|
|
12
|
+
arguments = begin
|
|
13
|
+
JSON.parse(call.arguments.is_a?(String) ? call.arguments : JSON.generate(call.arguments))
|
|
14
|
+
rescue StandardError
|
|
15
|
+
nil
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
lambda do
|
|
19
|
+
begin
|
|
20
|
+
raise ArgumentError, "Function arguments must be a JSON object" unless arguments.is_a?(Hash)
|
|
21
|
+
|
|
22
|
+
output = handler.call(arguments)
|
|
23
|
+
output = JSON.generate(output) if output.is_a?(Hash)
|
|
24
|
+
unless output.nil? || output.is_a?(String) || output.is_a?(Array)
|
|
25
|
+
raise ArgumentError, "Tool output must be a string, object, content array, or nil"
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
serialized = JSON.generate(output)
|
|
29
|
+
if output.is_a?(Array) && !content_output?(JSON.parse(serialized))
|
|
30
|
+
raise ArgumentError, "Tool output array must contain input text or image content"
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
base.merge(success: true, output: output)
|
|
34
|
+
rescue StandardError
|
|
35
|
+
base.merge(success: false, error: "Tool handler failed.")
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def self.content_output?(parts)
|
|
41
|
+
parts.all? do |part|
|
|
42
|
+
next false unless part.is_a?(Hash)
|
|
43
|
+
|
|
44
|
+
case part["type"]
|
|
45
|
+
when "input_text"
|
|
46
|
+
part["text"].is_a?(String)
|
|
47
|
+
when "input_image"
|
|
48
|
+
part["image_url"].is_a?(String)
|
|
49
|
+
else
|
|
50
|
+
false
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def self.pending_call_race?(error, call_id)
|
|
56
|
+
body = error.body
|
|
57
|
+
body = body[:error] if body.is_a?(Hash) && body[:error].is_a?(Hash)
|
|
58
|
+
body.is_a?(Hash) &&
|
|
59
|
+
body[:code] == "invalid_request_error" &&
|
|
60
|
+
body[:message] == "Unknown pending tool call: #{call_id}"
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Internal
|
|
5
|
+
# @generic Elem
|
|
6
|
+
#
|
|
7
|
+
# @example
|
|
8
|
+
# if token_page.next_page?
|
|
9
|
+
# token_page = token_page.next_page
|
|
10
|
+
# end
|
|
11
|
+
#
|
|
12
|
+
# @example
|
|
13
|
+
# token_page.auto_paging_each do |role|
|
|
14
|
+
# puts(role)
|
|
15
|
+
# end
|
|
16
|
+
class TokenPage
|
|
17
|
+
include OpenAI::Internal::Type::BasePage
|
|
18
|
+
|
|
19
|
+
# @return [Array<generic<Elem>>, nil]
|
|
20
|
+
attr_accessor :data
|
|
21
|
+
|
|
22
|
+
# @return [Boolean]
|
|
23
|
+
attr_accessor :has_more
|
|
24
|
+
|
|
25
|
+
# @return [String, nil]
|
|
26
|
+
attr_accessor :next_
|
|
27
|
+
|
|
28
|
+
# @return [Boolean]
|
|
29
|
+
def next_page?
|
|
30
|
+
has_more
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# @raise [OpenAI::HTTP::Error]
|
|
34
|
+
# @return [self]
|
|
35
|
+
def next_page
|
|
36
|
+
unless next_page?
|
|
37
|
+
message = "No more pages available. Please check #next_page? before calling ##{__method__}"
|
|
38
|
+
raise message
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
req = OpenAI::Internal::Util.deep_merge(@req, {query: {page: next_}})
|
|
42
|
+
@client.request(req)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# @param blk [Proc]
|
|
46
|
+
#
|
|
47
|
+
# @yieldparam [generic<Elem>]
|
|
48
|
+
def auto_paging_each(&blk)
|
|
49
|
+
unless block_given?
|
|
50
|
+
raise ArgumentError.new("A block must be given to ##{__method__}")
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
page = self
|
|
54
|
+
loop do
|
|
55
|
+
page.data&.each(&blk)
|
|
56
|
+
|
|
57
|
+
break unless page.next_page?
|
|
58
|
+
page = page.next_page
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
# @api private
|
|
63
|
+
#
|
|
64
|
+
# @param client [OpenAI::Internal::Transport::BaseClient]
|
|
65
|
+
# @param req [Hash{Symbol=>Object}]
|
|
66
|
+
# @param response_metadata [OpenAI::ResponseMetadata]
|
|
67
|
+
# @param page_data [Hash{Symbol=>Object}]
|
|
68
|
+
def initialize(client:, req:, response_metadata:, page_data:)
|
|
69
|
+
super
|
|
70
|
+
|
|
71
|
+
case page_data
|
|
72
|
+
in {data: Array => data}
|
|
73
|
+
@data = data.map { OpenAI::Internal::Type::Converter.coerce(@model, _1) }
|
|
74
|
+
else
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
@has_more = page_data[:has_more]
|
|
78
|
+
@next_ = page_data[:next]
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
# @api private
|
|
82
|
+
#
|
|
83
|
+
# @return [String]
|
|
84
|
+
def inspect
|
|
85
|
+
model = OpenAI::Internal::Type::Converter.inspect(@model, depth: 1)
|
|
86
|
+
|
|
87
|
+
"#<#{self.class}[#{model}]:0x#{object_id.to_s(16)} has_more=#{has_more.inspect} next_=#{next_.inspect}>"
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
end
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Models
|
|
5
|
+
module Beta
|
|
6
|
+
# @see OpenAI::Resources::Beta::Agents#create
|
|
7
|
+
class Agent < OpenAI::Internal::Type::BaseModel
|
|
8
|
+
# @!attribute id
|
|
9
|
+
# The ID of the reusable agent.
|
|
10
|
+
#
|
|
11
|
+
# @return [String]
|
|
12
|
+
required :id, String
|
|
13
|
+
|
|
14
|
+
# @!attribute created_at
|
|
15
|
+
# The Unix timestamp, in seconds, when the agent was created.
|
|
16
|
+
#
|
|
17
|
+
# @return [Integer]
|
|
18
|
+
required :created_at, Integer
|
|
19
|
+
|
|
20
|
+
# @!attribute instructions
|
|
21
|
+
# Custom instructions appended to the agent's default base instructions.
|
|
22
|
+
#
|
|
23
|
+
# @return [String, nil]
|
|
24
|
+
required :instructions, String, nil?: true
|
|
25
|
+
|
|
26
|
+
# @!attribute metadata
|
|
27
|
+
# Custom string key-value pairs attached to the agent.
|
|
28
|
+
#
|
|
29
|
+
# @return [Hash{Symbol=>String}]
|
|
30
|
+
required :metadata, OpenAI::Internal::Type::HashOf[String]
|
|
31
|
+
|
|
32
|
+
# @!attribute model
|
|
33
|
+
# The requested model name used for inference.
|
|
34
|
+
#
|
|
35
|
+
# @return [String]
|
|
36
|
+
required :model, String
|
|
37
|
+
|
|
38
|
+
# @!attribute multi_agent
|
|
39
|
+
# The resolved configuration for creating and coordinating subagents.
|
|
40
|
+
#
|
|
41
|
+
# @return [OpenAI::Models::Beta::MultiAgentConfig]
|
|
42
|
+
required :multi_agent, -> { OpenAI::Beta::MultiAgentConfig }
|
|
43
|
+
|
|
44
|
+
# @!attribute name
|
|
45
|
+
# A human-readable name for the agent, or null if it is unnamed.
|
|
46
|
+
#
|
|
47
|
+
# @return [String, nil]
|
|
48
|
+
required :name, String, nil?: true
|
|
49
|
+
|
|
50
|
+
# @!attribute object
|
|
51
|
+
# The object type. Always `agent`.
|
|
52
|
+
#
|
|
53
|
+
# @return [Symbol, :agent]
|
|
54
|
+
required :object, const: :agent
|
|
55
|
+
|
|
56
|
+
# @!attribute reasoning
|
|
57
|
+
# The resolved reasoning configuration, including the model default for an omitted
|
|
58
|
+
# effort.
|
|
59
|
+
#
|
|
60
|
+
# @return [OpenAI::Models::Beta::AgentReasoning]
|
|
61
|
+
required :reasoning, -> { OpenAI::Beta::AgentReasoning }
|
|
62
|
+
|
|
63
|
+
# @!attribute service_tier
|
|
64
|
+
# The resolved service-tier policy used for model requests.
|
|
65
|
+
#
|
|
66
|
+
# @return [Symbol, OpenAI::Models::Beta::Agent::ServiceTier]
|
|
67
|
+
required :service_tier, enum: -> { OpenAI::Beta::Agent::ServiceTier }
|
|
68
|
+
|
|
69
|
+
# @!attribute text
|
|
70
|
+
# The resolved configuration for text generated by the agent.
|
|
71
|
+
#
|
|
72
|
+
# @return [OpenAI::Models::Beta::AgentText]
|
|
73
|
+
required :text, -> { OpenAI::Beta::AgentText }
|
|
74
|
+
|
|
75
|
+
# @!attribute tools
|
|
76
|
+
# Tools available to the agent.
|
|
77
|
+
#
|
|
78
|
+
# @return [Array<OpenAI::Models::Beta::PersistedAgentTool::Function, OpenAI::Models::Beta::PersistedAgentTool::ToolSearch, OpenAI::Models::Beta::PersistedAgentTool::ProgrammaticToolCalling, OpenAI::Models::Beta::PersistedAgentTool::Mcp, OpenAI::Models::Beta::PersistedAgentTool::WebSearch>]
|
|
79
|
+
required :tools, -> { OpenAI::Internal::Type::ArrayOf[union: OpenAI::Beta::PersistedAgentTool] }
|
|
80
|
+
|
|
81
|
+
# @!attribute updated_at
|
|
82
|
+
# The Unix timestamp, in seconds, when the agent was last updated.
|
|
83
|
+
#
|
|
84
|
+
# @return [Integer]
|
|
85
|
+
required :updated_at, Integer
|
|
86
|
+
|
|
87
|
+
# @!method initialize(id:, created_at:, instructions:, metadata:, model:, multi_agent:, name:, reasoning:, service_tier:, text:, tools:, updated_at:, object: :agent)
|
|
88
|
+
# A reusable agent scoped to the caller's project.
|
|
89
|
+
#
|
|
90
|
+
# @param id [String]
|
|
91
|
+
# The ID of the reusable agent.
|
|
92
|
+
#
|
|
93
|
+
# @param created_at [Integer]
|
|
94
|
+
# The Unix timestamp, in seconds, when the agent was created.
|
|
95
|
+
#
|
|
96
|
+
# @param instructions [String, nil]
|
|
97
|
+
# Custom instructions appended to the agent's default base instructions.
|
|
98
|
+
#
|
|
99
|
+
# @param metadata [Hash{Symbol=>String}]
|
|
100
|
+
# Custom string key-value pairs attached to the agent.
|
|
101
|
+
#
|
|
102
|
+
# @param model [String]
|
|
103
|
+
# The requested model name used for inference.
|
|
104
|
+
#
|
|
105
|
+
# @param multi_agent [OpenAI::Models::Beta::MultiAgentConfig]
|
|
106
|
+
# The resolved configuration for creating and coordinating subagents.
|
|
107
|
+
#
|
|
108
|
+
# @param name [String, nil]
|
|
109
|
+
# A human-readable name for the agent, or null if it is unnamed.
|
|
110
|
+
#
|
|
111
|
+
# @param reasoning [OpenAI::Models::Beta::AgentReasoning]
|
|
112
|
+
# The resolved reasoning configuration, including the model default for an omitted
|
|
113
|
+
# effort.
|
|
114
|
+
#
|
|
115
|
+
# @param service_tier [Symbol, OpenAI::Models::Beta::Agent::ServiceTier]
|
|
116
|
+
# The resolved service-tier policy used for model requests.
|
|
117
|
+
#
|
|
118
|
+
# @param text [OpenAI::Models::Beta::AgentText]
|
|
119
|
+
# The resolved configuration for text generated by the agent.
|
|
120
|
+
#
|
|
121
|
+
# @param tools [Array<OpenAI::Models::Beta::PersistedAgentTool::Function, OpenAI::Models::Beta::PersistedAgentTool::ToolSearch, OpenAI::Models::Beta::PersistedAgentTool::ProgrammaticToolCalling, OpenAI::Models::Beta::PersistedAgentTool::Mcp, OpenAI::Models::Beta::PersistedAgentTool::WebSearch>]
|
|
122
|
+
# Tools available to the agent.
|
|
123
|
+
#
|
|
124
|
+
# @param updated_at [Integer]
|
|
125
|
+
# The Unix timestamp, in seconds, when the agent was last updated.
|
|
126
|
+
#
|
|
127
|
+
# @param object [Symbol, :agent]
|
|
128
|
+
# The object type. Always `agent`.
|
|
129
|
+
|
|
130
|
+
# The resolved service-tier policy used for model requests.
|
|
131
|
+
#
|
|
132
|
+
# @see OpenAI::Models::Beta::Agent#service_tier
|
|
133
|
+
module ServiceTier
|
|
134
|
+
extend OpenAI::Internal::Type::Enum
|
|
135
|
+
|
|
136
|
+
AUTO = :auto
|
|
137
|
+
DEFAULT = :default
|
|
138
|
+
FLEX = :flex
|
|
139
|
+
PRIORITY = :priority
|
|
140
|
+
FAST = :fast
|
|
141
|
+
|
|
142
|
+
# @!method self.values
|
|
143
|
+
# @return [Array<Symbol>]
|
|
144
|
+
end
|
|
145
|
+
end
|
|
146
|
+
end
|
|
147
|
+
end
|
|
148
|
+
end
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Models
|
|
5
|
+
module Beta
|
|
6
|
+
class AgentCloseSubagentCallItem < OpenAI::Internal::Type::BaseModel
|
|
7
|
+
# @!attribute id
|
|
8
|
+
# The ID of the tool call item.
|
|
9
|
+
#
|
|
10
|
+
# @return [String]
|
|
11
|
+
required :id, String
|
|
12
|
+
|
|
13
|
+
# @!attribute recipient_agent_id
|
|
14
|
+
# The ID of the agent to close.
|
|
15
|
+
#
|
|
16
|
+
# @return [String]
|
|
17
|
+
required :recipient_agent_id, String
|
|
18
|
+
|
|
19
|
+
# @!attribute sender_agent_id
|
|
20
|
+
# The ID of the agent requesting the close.
|
|
21
|
+
#
|
|
22
|
+
# @return [String]
|
|
23
|
+
required :sender_agent_id, String
|
|
24
|
+
|
|
25
|
+
# @!attribute status
|
|
26
|
+
# The status of the tool call.
|
|
27
|
+
#
|
|
28
|
+
# @return [Symbol, OpenAI::Models::Beta::AgentFunctionCallStatus]
|
|
29
|
+
required :status, enum: -> { OpenAI::Beta::AgentFunctionCallStatus }
|
|
30
|
+
|
|
31
|
+
# @!attribute turn_id
|
|
32
|
+
# The ID of the turn that contains this item.
|
|
33
|
+
#
|
|
34
|
+
# @return [String]
|
|
35
|
+
required :turn_id, String
|
|
36
|
+
|
|
37
|
+
# @!attribute type
|
|
38
|
+
# The item type. Always `close_subagent_call`.
|
|
39
|
+
#
|
|
40
|
+
# @return [Symbol, :close_subagent_call]
|
|
41
|
+
required :type, const: :close_subagent_call
|
|
42
|
+
|
|
43
|
+
# @!method initialize(id:, recipient_agent_id:, sender_agent_id:, status:, turn_id:, type: :close_subagent_call)
|
|
44
|
+
# A request to close a subagent.
|
|
45
|
+
#
|
|
46
|
+
# @param id [String]
|
|
47
|
+
# The ID of the tool call item.
|
|
48
|
+
#
|
|
49
|
+
# @param recipient_agent_id [String]
|
|
50
|
+
# The ID of the agent to close.
|
|
51
|
+
#
|
|
52
|
+
# @param sender_agent_id [String]
|
|
53
|
+
# The ID of the agent requesting the close.
|
|
54
|
+
#
|
|
55
|
+
# @param status [Symbol, OpenAI::Models::Beta::AgentFunctionCallStatus]
|
|
56
|
+
# The status of the tool call.
|
|
57
|
+
#
|
|
58
|
+
# @param turn_id [String]
|
|
59
|
+
# The ID of the turn that contains this item.
|
|
60
|
+
#
|
|
61
|
+
# @param type [Symbol, :close_subagent_call]
|
|
62
|
+
# The item type. Always `close_subagent_call`.
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
end
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Models
|
|
5
|
+
module Beta
|
|
6
|
+
class AgentCommandExecutionItem < OpenAI::Internal::Type::BaseModel
|
|
7
|
+
# @!attribute id
|
|
8
|
+
# The ID of the command execution item.
|
|
9
|
+
#
|
|
10
|
+
# @return [String]
|
|
11
|
+
required :id, String
|
|
12
|
+
|
|
13
|
+
# @!attribute command
|
|
14
|
+
# The command that was executed.
|
|
15
|
+
#
|
|
16
|
+
# @return [String]
|
|
17
|
+
required :command, String
|
|
18
|
+
|
|
19
|
+
# @!attribute cwd
|
|
20
|
+
# The working directory used to execute the command.
|
|
21
|
+
#
|
|
22
|
+
# @return [String, nil]
|
|
23
|
+
required :cwd, String, nil?: true
|
|
24
|
+
|
|
25
|
+
# @!attribute duration_ms
|
|
26
|
+
# The command duration in milliseconds.
|
|
27
|
+
#
|
|
28
|
+
# @return [Integer, nil]
|
|
29
|
+
required :duration_ms, Integer, nil?: true
|
|
30
|
+
|
|
31
|
+
# @!attribute exit_code
|
|
32
|
+
# The process exit code, if the command completed.
|
|
33
|
+
#
|
|
34
|
+
# @return [Integer, nil]
|
|
35
|
+
required :exit_code, Integer, nil?: true
|
|
36
|
+
|
|
37
|
+
# @!attribute output
|
|
38
|
+
# The command output, if available.
|
|
39
|
+
#
|
|
40
|
+
# @return [String, nil]
|
|
41
|
+
required :output, String, nil?: true
|
|
42
|
+
|
|
43
|
+
# @!attribute status
|
|
44
|
+
# The status of the command execution.
|
|
45
|
+
#
|
|
46
|
+
# @return [Symbol, OpenAI::Models::Beta::AgentFunctionCallStatus]
|
|
47
|
+
required :status, enum: -> { OpenAI::Beta::AgentFunctionCallStatus }
|
|
48
|
+
|
|
49
|
+
# @!attribute turn_id
|
|
50
|
+
# The ID of the turn that contains this item.
|
|
51
|
+
#
|
|
52
|
+
# @return [String]
|
|
53
|
+
required :turn_id, String
|
|
54
|
+
|
|
55
|
+
# @!attribute type
|
|
56
|
+
# The item type. Always `command_execution`.
|
|
57
|
+
#
|
|
58
|
+
# @return [Symbol, :command_execution]
|
|
59
|
+
required :type, const: :command_execution
|
|
60
|
+
|
|
61
|
+
# @!method initialize(id:, command:, cwd:, duration_ms:, exit_code:, output:, status:, turn_id:, type: :command_execution)
|
|
62
|
+
# A command execution produced by the agent.
|
|
63
|
+
#
|
|
64
|
+
# @param id [String]
|
|
65
|
+
# The ID of the command execution item.
|
|
66
|
+
#
|
|
67
|
+
# @param command [String]
|
|
68
|
+
# The command that was executed.
|
|
69
|
+
#
|
|
70
|
+
# @param cwd [String, nil]
|
|
71
|
+
# The working directory used to execute the command.
|
|
72
|
+
#
|
|
73
|
+
# @param duration_ms [Integer, nil]
|
|
74
|
+
# The command duration in milliseconds.
|
|
75
|
+
#
|
|
76
|
+
# @param exit_code [Integer, nil]
|
|
77
|
+
# The process exit code, if the command completed.
|
|
78
|
+
#
|
|
79
|
+
# @param output [String, nil]
|
|
80
|
+
# The command output, if available.
|
|
81
|
+
#
|
|
82
|
+
# @param status [Symbol, OpenAI::Models::Beta::AgentFunctionCallStatus]
|
|
83
|
+
# The status of the command execution.
|
|
84
|
+
#
|
|
85
|
+
# @param turn_id [String]
|
|
86
|
+
# The ID of the turn that contains this item.
|
|
87
|
+
#
|
|
88
|
+
# @param type [Symbol, :command_execution]
|
|
89
|
+
# The item type. Always `command_execution`.
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
end
|