runtype 0.3.0 → 0.11.1
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 +919 -0
- data/README.md +118 -12
- data/generated/lib/runtype/agent_aliases/client.rb +153 -0
- data/generated/lib/runtype/agent_aliases/types/delete_v1agents_id_aliases_alias_bindings_request.rb +17 -0
- data/generated/lib/runtype/agent_aliases/types/delete_v1agents_id_aliases_alias_bindings_response.rb +19 -0
- data/generated/lib/runtype/agent_aliases/types/get_v1agents_id_aliases_alias_bindings_request.rb +13 -0
- data/generated/lib/runtype/agent_aliases/types/get_v1agents_id_aliases_alias_bindings_response.rb +19 -0
- data/generated/lib/runtype/agent_aliases/types/get_v1agents_id_aliases_alias_response.rb +2 -0
- data/generated/lib/runtype/agent_aliases/types/get_v1agents_id_aliases_response.rb +2 -0
- data/generated/lib/runtype/agent_aliases/types/get_v1agents_id_aliases_response_data_item.rb +2 -0
- data/generated/lib/runtype/agent_aliases/types/get_v1agents_id_deployments_response_data_item.rb +2 -0
- data/generated/lib/runtype/agent_aliases/types/post_v1agents_id_aliases_alias_rollback_response.rb +2 -0
- data/generated/lib/runtype/agent_aliases/types/put_v1agents_id_aliases_alias_bindings_request.rb +21 -0
- data/generated/lib/runtype/agent_aliases/types/put_v1agents_id_aliases_alias_bindings_response.rb +19 -0
- data/generated/lib/runtype/agent_aliases/types/put_v1agents_id_aliases_alias_response.rb +2 -0
- data/generated/lib/runtype/agent_feedback/client.rb +58 -0
- data/generated/lib/runtype/agent_feedback/types/post_v1agent_feedback_request.rb +19 -0
- data/generated/lib/runtype/agent_feedback/types/post_v1agent_feedback_request_category.rb +19 -0
- data/generated/lib/runtype/agent_feedback/types/post_v1agent_feedback_response.rb +13 -0
- data/generated/lib/runtype/agent_feedback/types/post_v1agent_feedback_response_status.rb +13 -0
- data/generated/lib/runtype/agent_versions/client.rb +13 -1
- data/generated/lib/runtype/agent_versions/types/post_v1agent_versions_agent_id_publish_request.rb +6 -0
- data/generated/lib/runtype/agent_versions/types/post_v1agent_versions_agent_id_publish_request_deployment.rb +11 -0
- data/generated/lib/runtype/agent_versions/types/post_v1agent_versions_agent_id_publish_request_deployment_action.rb +14 -0
- data/generated/lib/runtype/agent_versions/types/post_v1agent_versions_agent_id_publish_response.rb +1 -1
- data/generated/lib/runtype/agents/client.rb +127 -14
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request.rb +17 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config.rb +59 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_advisor.rb +13 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_artifacts.rb +13 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_artifacts_types_item.rb +14 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_context_management.rb +13 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_context_management_compaction.rb +23 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_context_management_compaction_strategy.rb +15 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_context_management_tool_results.rb +15 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_context_management_tool_results_prune_mode.rb +14 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_durability.rb +15 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_durability_forced.rb +14 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_error_handling.rb +15 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_error_handling_fallbacks_item.rb +19 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_error_handling_fallbacks_item_message.rb +13 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_error_handling_fallbacks_item_model.rb +17 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_error_handling_fallbacks_item_retry.rb +11 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_error_handling_on_error.rb +15 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_error_handling_triggers_item.rb +11 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_error_handling_triggers_item_type.rb +14 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_logging_policy.rb +15 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_loop_config.rb +19 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_memory.rb +17 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_memory_pointer_scope.rb +15 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_pii_redaction.rb +15 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_reasoning.rb +15 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_reasoning_budget_tokens.rb +25 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_reasoning_budget_tokens_reasoning_effort.rb +17 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_reasoning_budget_tokens_reasoning_summary.rb +14 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_sandbox.rb +29 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_sandbox_coding_agents_item.rb +13 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_sandbox_instance_type.rb +16 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_sandbox_network_access.rb +15 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_sandbox_network_access_allow.rb +13 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_sandbox_network_access_allow_profile.rb +15 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_sandbox_network_access_zero.rb +15 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_sandbox_persistence.rb +15 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_sandbox_provider.rb +14 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_sandbox_sleep_after.rb +16 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_sandbox_ttl.rb +16 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_state.rb +17 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_state_merge_strategy.rb +14 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_state_predict_state_item.rb +15 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_temporal.rb +17 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_tenancy_strategy.rb +13 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_tenancy_strategy_assurance_floor.rb +13 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_tenancy_strategy_assurance_floor_end_user.rb +14 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_tenancy_strategy_assurance_floor_tenant.rb +14 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_tenancy_strategy_preset.rb +15 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_tools.rb +31 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_tools_approval.rb +17 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_tools_approval_choices.rb +13 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_tools_approval_require.rb +15 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_tools_code_mode_config.rb +15 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_tools_mcp_servers_item.rb +25 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_tools_mcp_servers_item_auth.rb +21 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_tools_mcp_servers_item_auth_type.rb +18 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_tools_mcp_servers_item_transport.rb +14 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_tools_per_tool_limits_value.rb +13 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_tools_runtime_tools_item.rb +23 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_tools_runtime_tools_item_tool_type.rb +19 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_tools_subagent_config.rb +33 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_tools_subagent_config_default_execution_mode.rb +14 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_tools_subagent_config_default_notify.rb +15 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_tools_subagent_config_execution_modes_item.rb +14 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_tools_tool_call_strategy.rb +15 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_tools_tool_search.rb +15 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_voice.rb +25 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_voice_eleven_labs.rb +17 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_voice_endpointing.rb +13 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_voice_endpointing_strategy.rb +16 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_voice_interruption_mode.rb +15 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_voice_speech.rb +15 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_voice_speech_mode.rb +15 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_voice_speech_synthesizer.rb +17 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_voice_speech_synthesizer_settings.rb +13 -0
- data/generated/lib/runtype/agents/types/create_voice_agent_draft_request_config_voice_speech_transcriber.rb +13 -0
- data/generated/lib/runtype/agents/types/get_v1agents_id_executions_execution_id_response.rb +6 -0
- data/generated/lib/runtype/agents/types/get_v1agents_id_executions_execution_id_response_execution_lane.rb +14 -0
- data/generated/lib/runtype/agents/types/get_v1agents_id_executions_execution_id_response_external_telemetry.rb +17 -0
- data/generated/lib/runtype/agents/types/get_v1agents_id_executions_execution_id_response_external_telemetry_completeness.rb +16 -0
- data/generated/lib/runtype/agents/types/get_v1agents_id_executions_execution_id_response_external_telemetry_source.rb +13 -0
- data/generated/lib/runtype/agents/types/get_v1agents_id_executions_execution_id_tool_calls_response_tool_calls_item.rb +14 -0
- data/generated/lib/runtype/agents/types/get_v1agents_id_executions_request.rb +2 -0
- data/generated/lib/runtype/agents/types/{get_v1agents_id_export_runtime_response_agent_type.rb → get_v1agents_id_executions_request_agent_source.rb} +4 -2
- data/generated/lib/runtype/agents/types/get_v1agents_id_executions_response_data_item.rb +2 -0
- data/generated/lib/runtype/agents/types/get_v1agents_id_executions_response_data_item_otel_producer.rb +20 -0
- data/generated/lib/runtype/agents/types/get_v1agents_id_export_runtime_request.rb +6 -0
- data/generated/lib/runtype/agents/types/get_v1agents_id_export_runtime_request_format.rb +14 -0
- data/generated/lib/runtype/agents/types/get_v1agents_id_run_insights_request.rb +13 -0
- data/generated/lib/runtype/agents/types/get_v1agents_id_run_insights_response.rb +13 -0
- data/generated/lib/runtype/agents/types/get_v1agents_id_run_insights_response_data.rb +27 -0
- data/generated/lib/runtype/agents/types/get_v1agents_id_run_insights_response_data_cost.rb +11 -0
- data/generated/lib/runtype/agents/types/get_v1agents_id_run_insights_response_data_tokens.rb +13 -0
- data/generated/lib/runtype/agents/types/get_v1agents_id_run_insights_response_data_tools_item.rb +17 -0
- data/generated/lib/runtype/agents/types/get_v1agents_id_run_insights_response_data_versions_item.rb +19 -0
- data/generated/lib/runtype/agents/types/get_v1agents_id_run_insights_response_data_window.rb +15 -0
- data/generated/lib/runtype/agents/types/post_v1agents_ensure_request.rb +4 -0
- data/generated/lib/runtype/agents/types/post_v1agents_ensure_request_definition_config_sandbox.rb +2 -0
- data/generated/lib/runtype/agents/types/post_v1agents_ensure_request_definition_config_sandbox_coding_agents_item.rb +13 -0
- data/generated/lib/runtype/agents/types/post_v1agents_ensure_request_definition_config_tools.rb +2 -0
- data/generated/lib/runtype/agents/types/post_v1agents_ensure_request_definition_config_tools_runtime_tools_item.rb +4 -0
- data/generated/lib/runtype/agents/types/post_v1agents_ensure_request_definition_config_tools_tool_search.rb +15 -0
- data/generated/lib/runtype/agents/types/post_v1agents_id_execute_request_x_runtype_concurrency.rb +1 -1
- data/generated/lib/runtype/agents/types/post_v1agents_request_claude_managed_config.rb +2 -0
- data/generated/lib/runtype/agents/types/post_v1agents_request_config_sandbox.rb +2 -0
- data/generated/lib/runtype/agents/types/post_v1agents_request_config_sandbox_coding_agents_item.rb +13 -0
- data/generated/lib/runtype/agents/types/post_v1agents_request_config_tools.rb +2 -0
- data/generated/lib/runtype/agents/types/post_v1agents_request_config_tools_runtime_tools_item.rb +4 -0
- data/generated/lib/runtype/agents/types/post_v1agents_request_config_tools_tool_search.rb +15 -0
- data/generated/lib/runtype/agents/types/put_v1agents_id_request_claude_managed_config.rb +2 -0
- data/generated/lib/runtype/agents/types/put_v1agents_id_request_config_sandbox.rb +2 -0
- data/generated/lib/runtype/agents/types/put_v1agents_id_request_config_sandbox_coding_agents_item.rb +13 -0
- data/generated/lib/runtype/agents/types/put_v1agents_id_request_config_tools.rb +2 -0
- data/generated/lib/runtype/agents/types/put_v1agents_id_request_config_tools_runtime_tools_item.rb +4 -0
- data/generated/lib/runtype/agents/types/put_v1agents_id_request_config_tools_tool_search.rb +15 -0
- data/generated/lib/runtype/agents/types/put_v1agents_id_response.rb +2 -0
- data/generated/lib/runtype/client.rb +25 -5
- data/generated/lib/runtype/client_runtime/client.rb +57 -6
- data/generated/lib/runtype/client_runtime/types/post_v1client_agents_agent_id_voice_prewarm_request.rb +15 -0
- data/generated/lib/runtype/client_runtime/types/post_v1client_chat_request_submit_mode.rb +1 -1
- data/generated/lib/runtype/client_runtime/types/post_v1client_init_request_session_id.rb +1 -1
- data/generated/lib/runtype/client_runtime/types/post_v1client_init_request_session_id_identity_proof.rb +19 -0
- data/generated/lib/runtype/client_runtime/types/post_v1client_init_request_session_id_identity_proof_provider.rb +17 -0
- data/generated/lib/runtype/client_runtime/types/post_v1client_init_request_three.rb +1 -1
- data/generated/lib/runtype/client_runtime/types/post_v1client_init_request_three_identity_proof.rb +19 -0
- data/generated/lib/runtype/client_runtime/types/post_v1client_init_request_three_identity_proof_provider.rb +17 -0
- data/generated/lib/runtype/client_runtime/types/post_v1client_init_request_two.rb +1 -1
- data/generated/lib/runtype/client_runtime/types/post_v1client_init_request_two_identity_proof.rb +19 -0
- data/generated/lib/runtype/client_runtime/types/post_v1client_init_request_two_identity_proof_provider.rb +17 -0
- data/generated/lib/runtype/client_runtime/types/post_v1client_init_request_zero.rb +1 -1
- data/generated/lib/runtype/client_runtime/types/post_v1client_init_request_zero_identity_proof.rb +19 -0
- data/generated/lib/runtype/client_runtime/types/post_v1client_init_request_zero_identity_proof_provider.rb +17 -0
- data/generated/lib/runtype/client_runtime/types/post_v1client_init_response_durable_recovery.rb +1 -1
- data/generated/lib/runtype/client_tokens/types/post_v1client_tokens_request.rb +2 -0
- data/generated/lib/runtype/conversations/client.rb +28 -10
- data/generated/lib/runtype/conversations/types/get_v1conversations_id_response.rb +3 -1
- data/generated/lib/runtype/conversations/types/post_v1conversations_request.rb +6 -0
- data/generated/lib/runtype/conversations/types/post_v1conversations_response.rb +3 -1
- data/generated/lib/runtype/conversations/types/put_v1conversations_id_request.rb +7 -1
- data/generated/lib/runtype/conversations/types/{put_v1conversations_id_request_messages_item_content_one_item_asset_ref_ref_kind.rb → put_v1conversations_id_request_messages_mode.rb} +3 -3
- data/generated/lib/runtype/conversations/types/put_v1conversations_id_response.rb +3 -1
- data/generated/lib/runtype/dispatch/client.rb +5 -4
- data/generated/lib/runtype/dispatch/types/post_v1dispatch_continue_request_continuation_tool_output_messages_item.rb +4 -0
- data/generated/lib/runtype/dispatch/types/post_v1dispatch_continue_request_continuation_tool_output_messages_item_role.rb +1 -0
- data/generated/lib/runtype/dispatch/types/post_v1dispatch_continue_request_continuation_tool_output_messages_item_tool_calls_item.rb +17 -0
- data/generated/lib/runtype/dispatch/types/post_v1dispatch_continue_request_continuation_tool_output_messages_item_tool_results_item.rb +17 -0
- data/generated/lib/runtype/dispatch/types/post_v1dispatch_continue_stream_request_continuation_tool_output_messages_item.rb +4 -0
- data/generated/lib/runtype/dispatch/types/post_v1dispatch_continue_stream_request_continuation_tool_output_messages_item_role.rb +1 -0
- data/generated/lib/runtype/dispatch/types/post_v1dispatch_continue_stream_request_continuation_tool_output_messages_item_tool_calls_item.rb +17 -0
- data/generated/lib/runtype/dispatch/types/post_v1dispatch_continue_stream_request_continuation_tool_output_messages_item_tool_results_item.rb +17 -0
- data/generated/lib/runtype/dispatch/types/post_v1dispatch_request_one.rb +2 -0
- data/generated/lib/runtype/dispatch/types/post_v1dispatch_request_one_agent_sandbox.rb +2 -0
- data/generated/lib/runtype/dispatch/types/post_v1dispatch_request_one_agent_sandbox_coding_agents_item.rb +13 -0
- data/generated/lib/runtype/dispatch/types/post_v1dispatch_request_one_history.rb +14 -0
- data/generated/lib/runtype/dispatch/types/post_v1dispatch_request_one_messages_item.rb +4 -0
- data/generated/lib/runtype/dispatch/types/post_v1dispatch_request_one_messages_item_role.rb +1 -0
- data/generated/lib/runtype/dispatch/types/post_v1dispatch_request_one_messages_item_tool_calls_item.rb +17 -0
- data/generated/lib/runtype/dispatch/types/post_v1dispatch_request_one_messages_item_tool_results_item.rb +17 -0
- data/generated/lib/runtype/dispatch/types/post_v1dispatch_request_zero.rb +2 -0
- data/generated/lib/runtype/dispatch/types/post_v1dispatch_request_zero_agent_sandbox.rb +2 -0
- data/generated/lib/runtype/dispatch/types/post_v1dispatch_request_zero_agent_sandbox_coding_agents_item.rb +13 -0
- data/generated/lib/runtype/dispatch/types/post_v1dispatch_request_zero_history.rb +14 -0
- data/generated/lib/runtype/dispatch/types/post_v1dispatch_request_zero_messages_item.rb +4 -0
- data/generated/lib/runtype/dispatch/types/post_v1dispatch_request_zero_messages_item_role.rb +1 -0
- data/generated/lib/runtype/dispatch/types/post_v1dispatch_request_zero_messages_item_tool_calls_item.rb +17 -0
- data/generated/lib/runtype/dispatch/types/post_v1dispatch_request_zero_messages_item_tool_results_item.rb +17 -0
- data/generated/lib/runtype/dispatch/types/post_v1dispatch_resume_request_messages_item.rb +4 -0
- data/generated/lib/runtype/dispatch/types/post_v1dispatch_resume_request_messages_item_role.rb +1 -0
- data/generated/lib/runtype/dispatch/types/post_v1dispatch_resume_request_messages_item_tool_calls_item.rb +17 -0
- data/generated/lib/runtype/dispatch/types/post_v1dispatch_resume_request_messages_item_tool_results_item.rb +17 -0
- data/generated/lib/runtype/dispatch/types/post_v1dispatch_resume_stream_request_messages_item.rb +4 -0
- data/generated/lib/runtype/dispatch/types/post_v1dispatch_resume_stream_request_messages_item_role.rb +1 -0
- data/generated/lib/runtype/dispatch/types/post_v1dispatch_resume_stream_request_messages_item_tool_calls_item.rb +17 -0
- data/generated/lib/runtype/dispatch/types/post_v1dispatch_resume_stream_request_messages_item_tool_results_item.rb +17 -0
- data/generated/lib/runtype/documentation/client.rb +2 -3
- data/generated/lib/runtype/documentation/types/post_v1documentation_build_instructions_request.rb +2 -0
- data/generated/lib/runtype/evals/client.rb +4 -1
- data/generated/lib/runtype/executions/client.rb +3 -1
- data/generated/lib/runtype/executions/types/get_v1executions_execution_id_status_response.rb +6 -0
- data/generated/lib/runtype/executions/types/get_v1executions_execution_id_status_response_execution_lane.rb +14 -0
- data/generated/lib/runtype/identity_integrations/client.rb +39 -0
- data/generated/lib/runtype/logs/client.rb +166 -8
- data/generated/lib/runtype/logs/types/get_v1logs_context_execution_id_blocks_request.rb +13 -0
- data/generated/lib/runtype/logs/types/get_v1logs_context_execution_id_blocks_response.rb +13 -0
- data/generated/lib/runtype/logs/types/get_v1logs_context_execution_id_request.rb +11 -0
- data/generated/lib/runtype/logs/types/{get_v1logs_debug_response.rb → get_v1logs_context_execution_id_response.rb} +2 -2
- data/generated/lib/runtype/logs/types/get_v1logs_entry_request.rb +15 -0
- data/generated/lib/runtype/logs/types/get_v1logs_entry_response.rb +13 -0
- data/generated/lib/runtype/logs/types/get_v1logs_entry_response_data.rb +11 -0
- data/generated/lib/runtype/logs/types/get_v1logs_request.rb +8 -0
- data/generated/lib/runtype/logs/types/get_v1logs_response.rb +2 -0
- data/generated/lib/runtype/logs/types/get_v1logs_response_data.rb +2 -0
- data/generated/lib/runtype/logs/types/get_v1logs_response_data_live.rb +17 -0
- data/generated/lib/runtype/logs/types/get_v1logs_response_data_live_reason.rb +14 -0
- data/generated/lib/runtype/logs/types/get_v1logs_response_data_pagination.rb +2 -0
- data/generated/lib/runtype/logs/types/get_v1logs_response_window.rb +14 -0
- data/generated/lib/runtype/logs/types/get_v1logs_stats_request.rb +8 -0
- data/generated/lib/runtype/logs/types/get_v1logs_stats_response.rb +2 -0
- data/generated/lib/runtype/logs/types/get_v1logs_stats_response_data.rb +4 -0
- data/generated/lib/runtype/logs/types/get_v1logs_stats_response_data_stats_source.rb +15 -0
- data/generated/lib/runtype/logs/types/get_v1logs_stats_response_window.rb +14 -0
- data/generated/lib/runtype/logs/types/get_v1logs_trace_conversation_conversation_id_response.rb +1 -1
- data/generated/lib/runtype/logs/types/get_v1logs_trace_execution_execution_id_children_request.rb +11 -0
- data/generated/lib/runtype/logs/types/get_v1logs_trace_execution_execution_id_children_response.rb +15 -0
- data/generated/lib/runtype/logs/types/get_v1logs_trace_execution_execution_id_children_response_data_item.rb +19 -0
- data/generated/lib/runtype/logs/types/get_v1logs_trace_execution_execution_id_response.rb +1 -1
- data/generated/lib/runtype/messaging_conversations/client.rb +2 -0
- data/generated/lib/runtype/messaging_conversations/types/get_v1messaging_conversations_id_messages_request.rb +2 -0
- data/generated/lib/runtype/model_configs/types/post_v1model_configs_request_settings_custom_model.rb +2 -0
- data/generated/lib/runtype/model_configs/types/post_v1model_configs_request_settings_custom_model_mid_conversation_system_messages.rb +14 -0
- data/generated/lib/runtype/model_configs/types/put_v1model_configs_id_request_settings_custom_model.rb +2 -0
- data/generated/lib/runtype/model_configs/types/put_v1model_configs_id_request_settings_custom_model_mid_conversation_system_messages.rb +14 -0
- data/generated/lib/runtype/products/client.rb +345 -4
- data/generated/lib/runtype/products/types/create_product_comment_request.rb +19 -0
- data/generated/lib/runtype/{conversations/types/put_v1conversations_id_request_messages_item_role.rb → products/types/create_product_comment_request_author_kind.rb} +2 -3
- data/generated/lib/runtype/products/types/create_product_comment_thread_request.rb +17 -0
- data/generated/lib/runtype/products/types/declare_product_stack_request.rb +15 -0
- data/generated/lib/runtype/products/types/declare_product_stack_request_source.rb +15 -0
- data/generated/lib/runtype/products/types/get_v1products_id_activity_request.rb +13 -0
- data/generated/lib/runtype/products/types/get_v1products_id_activity_response.rb +13 -0
- data/generated/lib/runtype/products/types/get_v1products_id_activity_response_data.rb +13 -0
- data/generated/lib/runtype/products/types/get_v1products_id_activity_response_data_agents_item.rb +17 -0
- data/generated/lib/runtype/products/types/get_v1products_id_activity_response_data_agents_item_data_item.rb +109 -0
- data/generated/lib/runtype/products/types/get_v1products_id_activity_response_data_agents_item_data_item_completeness.rb +17 -0
- data/generated/lib/runtype/products/types/get_v1products_id_activity_response_data_agents_item_data_item_kind.rb +14 -0
- data/generated/lib/runtype/products/types/get_v1products_id_activity_response_data_agents_item_data_item_origin.rb +15 -0
- data/generated/lib/runtype/products/types/get_v1products_id_activity_response_data_agents_item_data_item_source.rb +14 -0
- data/generated/lib/runtype/products/types/get_v1products_id_activity_response_data_agents_item_data_item_status.rb +18 -0
- data/generated/lib/runtype/products/types/get_v1products_id_activity_response_data_agents_item_error.rb +11 -0
- data/generated/lib/runtype/products/types/get_v1products_id_activity_response_data_surfaces_item.rb +19 -0
- data/generated/lib/runtype/products/types/get_v1products_id_activity_response_data_surfaces_item_data_item.rb +15 -0
- data/generated/lib/runtype/products/types/get_v1products_id_activity_response_data_surfaces_item_data_item_agent_mode.rb +45 -0
- data/generated/lib/runtype/products/types/get_v1products_id_activity_response_data_surfaces_item_data_item_available_fields.rb +39 -0
- data/generated/lib/runtype/products/types/get_v1products_id_activity_response_data_surfaces_item_data_item_available_fields_metadata_schema.rb +11 -0
- data/generated/lib/runtype/products/types/get_v1products_id_activity_response_data_surfaces_item_error.rb +11 -0
- data/generated/lib/runtype/products/types/get_v1products_id_activity_response_data_surfaces_item_source.rb +14 -0
- data/generated/lib/runtype/products/types/get_v1products_id_comments_request.rb +19 -0
- data/generated/lib/runtype/products/types/get_v1products_id_comments_request_status.rb +15 -0
- data/generated/lib/runtype/products/types/get_v1products_id_response.rb +2 -0
- data/generated/lib/runtype/products/types/get_v1products_id_response_editor_context.rb +6 -0
- data/generated/lib/runtype/products/types/get_v1products_id_response_editor_context_flow_steps_map_value_item.rb +2 -0
- data/generated/lib/runtype/products/types/get_v1products_id_surfaces_surface_id_response.rb +2 -0
- data/generated/lib/runtype/products/types/get_v1products_response_data_item_capabilities_item.rb +4 -0
- data/generated/lib/runtype/products/types/post_v1products_ensure_request_definition_spec_internal_docs_resources_item.rb +6 -0
- data/generated/lib/runtype/products/types/post_v1products_request_canvas.rb +2 -0
- data/generated/lib/runtype/products/types/post_v1products_request_spec.rb +2 -0
- data/generated/lib/runtype/products/types/post_v1products_request_spec_internal_docs_resources_item.rb +6 -0
- data/generated/lib/runtype/products/types/put_v1products_id_request_canvas.rb +2 -0
- data/generated/lib/runtype/products/types/put_v1products_id_request_spec.rb +2 -0
- data/generated/lib/runtype/products/types/put_v1products_id_request_spec_internal_docs_resources_item.rb +6 -0
- data/generated/lib/runtype/products/types/put_v1products_id_surfaces_surface_id_entry_point_request.rb +15 -0
- data/generated/lib/runtype/products/types/put_v1products_id_surfaces_surface_id_entry_point_response.rb +13 -0
- data/generated/lib/runtype/products/types/update_product_comment_thread_request.rb +15 -0
- data/generated/lib/runtype/provider_keys/types/post_v1provider_keys_id_sync_models_request_models_item.rb +2 -0
- data/generated/lib/runtype/provider_keys/types/post_v1provider_keys_id_sync_models_request_models_item_mid_conversation_system_messages.rb +14 -0
- data/generated/lib/runtype/question_sets/client.rb +416 -0
- data/generated/lib/runtype/question_sets/types/get_v1question_sets_id_request.rb +11 -0
- data/generated/lib/runtype/question_sets/types/get_v1question_sets_id_resolved_request.rb +13 -0
- data/generated/lib/runtype/question_sets/types/get_v1question_sets_id_response.rb +13 -0
- data/generated/lib/runtype/question_sets/types/get_v1question_sets_id_versions_request.rb +11 -0
- data/generated/lib/runtype/question_sets/types/get_v1question_sets_id_versions_response.rb +11 -0
- data/generated/lib/runtype/question_sets/types/get_v1question_sets_id_versions_version_number_calibrations_request.rb +17 -0
- data/generated/lib/runtype/question_sets/types/get_v1question_sets_id_versions_version_number_calibrations_response.rb +13 -0
- data/generated/lib/runtype/question_sets/types/get_v1question_sets_request.rb +17 -0
- data/generated/lib/runtype/question_sets/types/get_v1question_sets_request_direction.rb +14 -0
- data/generated/lib/runtype/question_sets/types/get_v1question_sets_response.rb +13 -0
- data/generated/lib/runtype/question_sets/types/post_v1question_sets_id_versions_version_number_calibrations_request.rb +17 -0
- data/generated/lib/runtype/question_sets/types/post_v1question_sets_id_versions_version_number_calibrations_request_record.rb +15 -0
- data/generated/lib/runtype/question_sets/types/post_v1question_sets_id_versions_version_number_calibrations_request_record_per_question_value.rb +19 -0
- data/generated/lib/runtype/question_sets/types/post_v1question_sets_id_versions_version_number_calibrations_response.rb +13 -0
- data/generated/lib/runtype/question_sets/types/post_v1question_sets_id_versions_version_number_publish_request.rb +13 -0
- data/generated/lib/runtype/question_sets/types/post_v1question_sets_id_versions_version_number_publish_response.rb +13 -0
- data/generated/lib/runtype/question_sets/types/post_v1question_sets_request.rb +21 -0
- data/generated/lib/runtype/question_sets/types/post_v1question_sets_response.rb +13 -0
- data/generated/lib/runtype/question_sets/types/put_v1question_sets_id_request.rb +21 -0
- data/generated/lib/runtype/question_sets/types/put_v1question_sets_id_response.rb +13 -0
- data/generated/lib/runtype/question_sets/types/put_v1question_sets_id_response_version.rb +30 -0
- data/generated/lib/runtype/runs/client.rb +150 -0
- data/generated/lib/runtype/runs/types/get_v1runs_execution_id_request.rb +15 -0
- data/generated/lib/runtype/runs/types/get_v1runs_execution_id_request_overlay.rb +14 -0
- data/generated/lib/runtype/runs/types/get_v1runs_execution_id_request_view.rb +14 -0
- data/generated/lib/runtype/runs/types/get_v1runs_execution_id_response.rb +11 -0
- data/generated/lib/runtype/runs/types/get_v1runs_request.rb +47 -0
- data/generated/lib/runtype/runs/types/get_v1runs_request_include_children.rb +14 -0
- data/generated/lib/runtype/runs/types/get_v1runs_request_overlay.rb +14 -0
- data/generated/lib/runtype/runs/types/get_v1runs_request_source.rb +14 -0
- data/generated/lib/runtype/runs/types/get_v1runs_request_status.rb +15 -0
- data/generated/lib/runtype/runs/types/get_v1runs_request_view.rb +14 -0
- data/generated/lib/runtype/runs/types/get_v1runs_response.rb +15 -0
- data/generated/lib/runtype/runs/types/get_v1runs_response_pagination.rb +19 -0
- data/generated/lib/runtype/runs/types/get_v1runs_response_window.rb +14 -0
- data/generated/lib/runtype/schedules/client.rb +97 -0
- data/generated/lib/runtype/schedules/types/get_v1schedules_id_runs_response_data_item.rb +2 -0
- data/generated/lib/runtype/schedules/types/get_v1schedules_pull_request.rb +19 -0
- data/generated/lib/runtype/schedules/types/get_v1schedules_runs_all_response_data_item.rb +2 -0
- data/generated/lib/runtype/schedules/types/post_v1schedules_ensure_request.rb +23 -0
- data/generated/lib/runtype/schedules/types/post_v1schedules_ensure_request_on_conflict.rb +14 -0
- data/generated/lib/runtype/skills/client.rb +39 -0
- data/generated/lib/runtype/skills/types/get_v1skills_id_bindings_request.rb +11 -0
- data/generated/lib/runtype/skills/types/get_v1skills_id_bindings_response.rb +11 -0
- data/generated/lib/runtype/skills/types/get_v1skills_id_bindings_response_data_item.rb +25 -0
- data/generated/lib/runtype/skills/types/get_v1skills_id_bindings_response_data_item_agent.rb +15 -0
- data/generated/lib/runtype/surfaces/client.rb +48 -0
- data/generated/lib/runtype/surfaces/types/get_v1surfaces_response_data_item_inbound.rb +16 -0
- data/generated/lib/runtype/surfaces/types/get_v1surfaces_response_data_item_inbound_channel_overrides_value.rb +13 -0
- data/generated/lib/runtype/surfaces/types/get_v1surfaces_response_data_item_inbound_channel_overrides_value_channel_response_mode.rb +15 -0
- data/generated/lib/runtype/surfaces/types/get_v1surfaces_response_data_item_inbound_channel_overrides_value_eagerness.rb +15 -0
- data/generated/lib/runtype/surfaces/types/get_v1surfaces_response_data_item_inbound_channel_response_mode.rb +15 -0
- data/generated/lib/runtype/surfaces/types/get_v1surfaces_response_data_item_inbound_context_backfill.rb +19 -0
- data/generated/lib/runtype/surfaces/types/get_v1surfaces_response_data_item_inbound_context_backfill_mode.rb +15 -0
- data/generated/lib/runtype/surfaces/types/get_v1surfaces_response_data_item_inbound_eagerness.rb +15 -0
- data/generated/lib/runtype/surfaces/types/get_v1surfaces_response_data_item_inbound_keywords.rb +15 -0
- data/generated/lib/runtype/surfaces/types/get_v1surfaces_response_data_item_inbound_on_uncertain.rb +14 -0
- data/generated/lib/runtype/surfaces/types/get_v1surfaces_surface_id_channel_context_request.rb +13 -0
- data/generated/lib/runtype/surfaces/types/get_v1surfaces_surface_id_channel_context_response.rb +19 -0
- data/generated/lib/runtype/surfaces/types/get_v1surfaces_surface_id_channel_context_response_provider.rb +15 -0
- data/generated/lib/runtype/surfaces/types/get_v1surfaces_surface_id_response.rb +2 -0
- data/generated/lib/runtype/telemetry/client.rb +58 -0
- data/generated/lib/runtype/telemetry/types/get_otlp_ingest_health_request.rb +11 -0
- data/generated/lib/runtype/telemetry/types/get_otlp_ingest_health_response.rb +27 -0
- data/generated/lib/runtype/telemetry/types/get_otlp_ingest_health_response_admission.rb +17 -0
- data/generated/lib/runtype/telemetry/types/get_otlp_ingest_health_response_errors_item.rb +13 -0
- data/generated/lib/runtype/telemetry/types/get_otlp_ingest_health_response_status.rb +16 -0
- data/generated/lib/runtype/telemetry/types/get_otlp_ingest_health_response_tiers.rb +15 -0
- data/generated/lib/runtype/telemetry/types/get_otlp_ingest_health_response_tiers_canonical.rb +21 -0
- data/generated/lib/runtype/telemetry/types/get_otlp_ingest_health_response_tiers_hot.rb +20 -0
- data/generated/lib/runtype/telemetry/types/get_otlp_ingest_health_response_tiers_raw.rb +21 -0
- data/generated/lib/runtype/telemetry/types/get_otlp_ingest_health_response_totals.rb +27 -0
- data/generated/lib/runtype/telemetry/types/get_otlp_ingest_health_response_trace.rb +23 -0
- data/generated/lib/runtype/telemetry/types/get_otlp_ingest_health_response_trace_delivery.rb +23 -0
- data/generated/lib/runtype/tools/types/post_v1tools_flows_flow_id_convert_to_tool_response_validation.rb +2 -0
- data/generated/lib/runtype/tools/types/post_v1tools_id_execute_request.rb +2 -0
- data/generated/lib/runtype/tools/types/post_v1tools_id_execute_response.rb +3 -7
- data/generated/lib/runtype/tools/types/post_v1tools_id_execute_response_error.rb +19 -0
- data/generated/lib/runtype/tools/types/{post_v1tools_id_execute_response_status.rb → post_v1tools_id_execute_response_error_status.rb} +1 -1
- data/generated/lib/runtype/tools/types/post_v1tools_id_test_response.rb +3 -7
- data/generated/lib/runtype/tools/types/post_v1tools_id_test_response_error.rb +19 -0
- data/generated/lib/runtype/tools/types/{post_v1tools_id_test_response_status.rb → post_v1tools_id_test_response_error_status.rb} +1 -1
- data/generated/lib/runtype/tools/types/post_v1tools_response_validation.rb +2 -0
- data/generated/lib/runtype/tools/types/put_v1tools_id_response_validation.rb +2 -0
- data/generated/lib/runtype/types/agent_ensure_capability.rb +21 -0
- data/generated/lib/runtype/types/agent_ensure_capability_change.rb +17 -0
- data/generated/lib/runtype/types/agent_ensure_capability_change_action.rb +14 -0
- data/generated/lib/runtype/types/agent_ensure_capability_change_kind.rb +13 -0
- data/generated/lib/runtype/types/agent_ensure_deploy_target.rb +2 -0
- data/generated/lib/runtype/types/agent_ensure_response_changed_keys.rb +4 -0
- data/generated/lib/runtype/types/agent_ensure_response_version_id.rb +4 -0
- data/generated/lib/runtype/types/agent_ensure_skill_binding.rb +13 -0
- data/generated/lib/runtype/types/agent_ensure_skill_binding_change.rb +17 -0
- data/generated/lib/runtype/types/agent_ensure_skill_binding_change_action.rb +14 -0
- data/generated/lib/runtype/types/agent_pull_response.rb +4 -0
- data/generated/lib/runtype/types/agent_pull_response_definition_config_sandbox.rb +2 -0
- data/generated/lib/runtype/types/agent_pull_response_definition_config_sandbox_coding_agents_item.rb +11 -0
- data/generated/lib/runtype/types/agent_pull_response_definition_config_tools.rb +2 -0
- data/generated/lib/runtype/types/agent_pull_response_definition_config_tools_runtime_tools_item.rb +4 -0
- data/generated/lib/runtype/types/agent_pull_response_definition_config_tools_tool_search.rb +13 -0
- data/generated/lib/runtype/types/builtin_tool_execute_result.rb +15 -0
- data/generated/lib/runtype/types/channel_context_decision.rb +17 -0
- data/generated/lib/runtype/types/channel_context_decision_capability.rb +15 -0
- data/generated/lib/runtype/types/channel_context_decision_capability_outcome.rb +14 -0
- data/generated/lib/runtype/types/channel_context_decision_decision.rb +14 -0
- data/generated/lib/runtype/types/channel_context_decision_failure.rb +17 -0
- data/generated/lib/runtype/types/channel_context_label.rb +17 -0
- data/generated/lib/runtype/types/channel_context_label_label.rb +13 -0
- data/generated/lib/runtype/types/channel_context_label_source.rb +15 -0
- data/generated/lib/runtype/types/channel_context_message.rb +25 -0
- data/generated/lib/runtype/types/channel_context_message_author_kind.rb +13 -0
- data/generated/lib/runtype/types/collection_lookup_failed_error.rb +17 -0
- data/generated/lib/runtype/types/collection_lookup_failed_error_code.rb +11 -0
- data/generated/lib/runtype/types/conflict_error_body_candidate_count.rb +21 -0
- data/generated/lib/runtype/types/conflict_error_body_candidate_count_code.rb +11 -0
- data/generated/lib/runtype/types/context_blocks.rb +11 -0
- data/generated/lib/runtype/types/context_blocks_blocks_item.rb +13 -0
- data/generated/lib/runtype/types/context_manifest_entry.rb +27 -0
- data/generated/lib/runtype/types/context_manifest_entry_category.rb +16 -0
- data/generated/lib/runtype/types/context_manifest_entry_flags_item.rb +13 -0
- data/generated/lib/runtype/types/context_manifest_entry_kind.rb +19 -0
- data/generated/lib/runtype/types/context_manifest_entry_role.rb +14 -0
- data/generated/lib/runtype/types/context_snapshot.rb +33 -0
- data/generated/lib/runtype/types/context_snapshot_removed_since_previous_item.rb +11 -0
- data/generated/lib/runtype/types/context_snapshot_removed_since_previous_item_reason.rb +14 -0
- data/generated/lib/runtype/types/context_snapshot_reported.rb +13 -0
- data/generated/lib/runtype/types/context_snapshots.rb +13 -0
- data/generated/lib/runtype/types/conversation_message_author.rb +16 -0
- data/generated/lib/runtype/types/conversation_message_author_type.rb +14 -0
- data/generated/lib/runtype/types/conversation_modified_error.rb +13 -0
- data/generated/lib/runtype/types/conversation_modified_error_code.rb +11 -0
- data/generated/lib/runtype/types/conversation_source.rb +14 -0
- data/generated/lib/runtype/types/conversation_trace.rb +17 -0
- data/generated/lib/runtype/types/conversation_trace_executions_item.rb +13 -0
- data/generated/lib/runtype/types/conversation_trace_produced_by.rb +38 -0
- data/generated/lib/runtype/types/conversation_trace_produced_by_source.rb +12 -0
- data/generated/lib/runtype/types/conversation_trace_truncation.rb +13 -0
- data/generated/lib/runtype/types/conversation_trace_truncation_reason.rb +11 -0
- data/generated/lib/runtype/types/conversation_transcript_message.rb +23 -0
- data/generated/lib/runtype/types/conversation_transcript_message_content.rb +14 -0
- data/generated/lib/runtype/types/conversation_transcript_message_content_one_item.rb +21 -0
- data/generated/lib/runtype/types/conversation_transcript_message_content_one_item_asset_ref.rb +19 -0
- data/generated/lib/runtype/types/conversation_transcript_message_content_one_item_asset_ref_ref_kind.rb +12 -0
- data/generated/lib/runtype/types/conversation_transcript_message_content_one_item_file.rb +13 -0
- data/generated/lib/runtype/types/conversation_transcript_message_content_one_item_image.rb +11 -0
- data/generated/lib/runtype/types/conversation_transcript_message_content_one_item_reasoning.rb +11 -0
- data/generated/lib/runtype/types/conversation_transcript_message_content_one_item_text.rb +9 -0
- data/generated/lib/runtype/types/conversation_transcript_message_role.rb +14 -0
- data/generated/lib/runtype/types/conversation_transcript_message_tool_calls_item.rb +15 -0
- data/generated/lib/runtype/types/conversation_transcript_message_tool_results_item.rb +15 -0
- data/generated/lib/runtype/types/create_voice_agent_draft_response.rb +11 -0
- data/generated/lib/runtype/types/declare_product_stack_response.rb +15 -0
- data/generated/lib/runtype/types/declare_product_stack_response_source.rb +13 -0
- data/generated/lib/runtype/types/dispatch_agent_json_response.rb +6 -0
- data/generated/lib/runtype/types/dispatch_agent_json_response_agent_target_resolution.rb +13 -0
- data/generated/lib/runtype/types/dispatch_detached_tool_output_json_response.rb +6 -0
- data/generated/lib/runtype/types/dispatch_detached_tool_output_json_response_agent_target_resolution.rb +13 -0
- data/generated/lib/runtype/types/dispatch_tool_output_continuation_json_response.rb +6 -0
- data/generated/lib/runtype/types/dispatch_tool_output_continuation_json_response_agent_target_resolution.rb +13 -0
- data/generated/lib/runtype/types/eval_run_scores_response.rb +2 -0
- data/generated/lib/runtype/types/eval_run_scores_response_cases_item.rb +2 -0
- data/generated/lib/runtype/types/eval_run_scores_response_cases_item_failure_kind.rb +11 -0
- data/generated/lib/runtype/types/eval_suite_detail.rb +2 -0
- data/generated/lib/runtype/types/eval_suite_detail_warnings_item.rb +13 -0
- data/generated/lib/runtype/types/eval_suite_latest_run.rb +2 -0
- data/generated/lib/runtype/types/eval_suite_summary.rb +2 -0
- data/generated/lib/runtype/types/eval_suite_summary_warnings_item.rb +13 -0
- data/generated/lib/runtype/types/execution_stream_event.rb +4 -0
- data/generated/lib/runtype/types/execution_stream_event_model_call_complete.rb +41 -0
- data/generated/lib/runtype/types/execution_stream_event_model_call_complete_attributes_value.rb +15 -0
- data/generated/lib/runtype/types/execution_stream_event_model_call_complete_subagent.rb +13 -0
- data/generated/lib/runtype/types/execution_stream_event_model_call_complete_tokens.rb +17 -0
- data/generated/lib/runtype/types/execution_stream_event_model_call_start.rb +29 -0
- data/generated/lib/runtype/types/execution_stream_event_model_call_start_subagent.rb +13 -0
- data/generated/lib/runtype/types/execution_stream_event_turn_complete.rb +2 -0
- data/generated/lib/runtype/types/execution_stream_event_turn_complete_attributes_value.rb +15 -0
- data/generated/lib/runtype/types/external_observed_approvals.rb +17 -0
- data/generated/lib/runtype/types/external_observed_approvals_availability.rb +11 -0
- data/generated/lib/runtype/types/external_observed_approvals_lifecycles_item.rb +23 -0
- data/generated/lib/runtype/types/external_observed_approvals_lifecycles_item_decision.rb +14 -0
- data/generated/lib/runtype/types/external_observed_approvals_lifecycles_item_observations_item.rb +15 -0
- data/generated/lib/runtype/types/external_observed_approvals_lifecycles_item_observations_item_source.rb +15 -0
- data/generated/lib/runtype/types/external_observed_approvals_lifecycles_item_observations_item_source_attribute.rb +11 -0
- data/generated/lib/runtype/types/external_observed_approvals_lifecycles_item_observations_item_source_kind.rb +11 -0
- data/generated/lib/runtype/types/external_observed_approvals_lifecycles_item_observations_item_state.rb +13 -0
- data/generated/lib/runtype/types/external_observed_approvals_lifecycles_item_raw_states_item.rb +13 -0
- data/generated/lib/runtype/types/identity_assertion_jwks.rb +9 -0
- data/generated/lib/runtype/types/identity_assertion_public_jwk.rb +21 -0
- data/generated/lib/runtype/types/judgment_calibration_record.rb +23 -0
- data/generated/lib/runtype/types/judgment_calibration_record_source.rb +12 -0
- data/generated/lib/runtype/types/list_product_comments_response.rb +13 -0
- data/generated/lib/runtype/types/product_canvas_block.rb +23 -0
- data/generated/lib/runtype/types/product_comment.rb +23 -0
- data/generated/lib/runtype/types/product_comment_author_kind.rb +12 -0
- data/generated/lib/runtype/types/product_comment_thread.rb +27 -0
- data/generated/lib/runtype/types/product_declared_stack.rb +15 -0
- data/generated/lib/runtype/types/product_pull_response_definition_spec_internal_docs_resources_item.rb +6 -0
- data/generated/lib/runtype/types/product_stack.rb +18 -0
- data/generated/lib/runtype/types/product_stack_declared.rb +14 -0
- data/generated/lib/runtype/types/product_stack_detected.rb +12 -0
- data/generated/lib/runtype/types/product_stack_item.rb +21 -0
- data/generated/lib/runtype/types/question_set.rb +25 -0
- data/generated/lib/runtype/types/question_set_error.rb +13 -0
- data/generated/lib/runtype/types/question_set_list_item.rb +29 -0
- data/generated/lib/runtype/types/question_set_version.rb +27 -0
- data/generated/lib/runtype/types/resolved_question_set.rb +21 -0
- data/generated/lib/runtype/types/resolved_question_set_calibration.rb +17 -0
- data/generated/lib/runtype/types/resolved_question_set_calibration_source.rb +12 -0
- data/generated/lib/runtype/types/run_eval_response.rb +2 -0
- data/generated/lib/runtype/types/run_eval_response_cases_item.rb +2 -0
- data/generated/lib/runtype/types/run_eval_response_cases_item_failure_kind.rb +11 -0
- data/generated/lib/runtype/types/run_list_pagination.rb +15 -0
- data/generated/lib/runtype/types/run_list_row.rb +107 -0
- data/generated/lib/runtype/types/run_list_row_completeness.rb +15 -0
- data/generated/lib/runtype/types/run_list_row_kind.rb +12 -0
- data/generated/lib/runtype/types/run_list_row_origin.rb +13 -0
- data/generated/lib/runtype/types/run_list_row_source.rb +12 -0
- data/generated/lib/runtype/types/run_list_row_status.rb +16 -0
- data/generated/lib/runtype/types/runtime_exported_skill.rb +21 -0
- data/generated/lib/runtype/types/schedule_ensure_conflict.rb +17 -0
- data/generated/lib/runtype/types/schedule_ensure_conflict_code.rb +12 -0
- data/generated/lib/runtype/types/schedule_ensure_definition.rb +27 -0
- data/generated/lib/runtype/types/schedule_ensure_definition_execution_options.rb +27 -0
- data/generated/lib/runtype/types/schedule_ensure_definition_execution_options_logging_policy.rb +13 -0
- data/generated/lib/runtype/types/schedule_ensure_definition_trigger.rb +15 -0
- data/generated/lib/runtype/types/schedule_ensure_definition_trigger_type.rb +12 -0
- data/generated/lib/runtype/types/schedule_ensure_hash_mismatch.rb +13 -0
- data/generated/lib/runtype/types/schedule_ensure_hash_mismatch_code.rb +11 -0
- data/generated/lib/runtype/types/schedule_ensure_response.rb +15 -0
- data/generated/lib/runtype/types/schedule_ensure_response_changed_keys.rb +19 -0
- data/generated/lib/runtype/types/schedule_ensure_response_changed_keys_changes.rb +13 -0
- data/generated/lib/runtype/types/schedule_ensure_response_changed_keys_result.rb +11 -0
- data/generated/lib/runtype/types/schedule_ensure_response_one.rb +9 -0
- data/generated/lib/runtype/types/schedule_ensure_response_one_result.rb +11 -0
- data/generated/lib/runtype/types/schedule_ensure_response_zero.rb +13 -0
- data/generated/lib/runtype/types/schedule_ensure_response_zero_result.rb +13 -0
- data/generated/lib/runtype/types/schedule_ensure_target.rb +15 -0
- data/generated/lib/runtype/types/schedule_pull_response.rb +17 -0
- data/generated/lib/runtype/types/schedule_run_link.rb +15 -0
- data/generated/lib/runtype/types/schedule_run_link_kind.rb +13 -0
- data/generated/lib/runtype/types/tool_execute_error.rb +13 -0
- data/generated/lib/runtype/types/trace_log_entry.rb +145 -0
- data/generated/lib/runtype/types/trace_log_entry_estimated_context_breakdown.rb +15 -0
- data/generated/lib/runtype/types/trace_log_entry_estimated_context_breakdown_categories_value.rb +11 -0
- data/generated/lib/runtype/types/trace_log_entry_estimated_cost.rb +14 -0
- data/generated/lib/runtype/types/trace_log_entry_level.rb +14 -0
- data/generated/lib/runtype/types/trace_log_entry_logging_policy.rb +11 -0
- data/generated/lib/runtype/types/trace_log_entry_otlp_incomplete_activity.rb +13 -0
- data/generated/lib/runtype/types/trace_log_entry_otlp_instrumentation_warning.rb +11 -0
- data/generated/lib/runtype/types/trace_log_entry_otlp_record_kind.rb +13 -0
- data/generated/lib/runtype/types/trace_log_entry_status.rb +16 -0
- data/generated/lib/runtype/types/trace_log_entry_type.rb +19 -0
- data/generated/lib/runtype/types/trace_node.rb +35 -0
- data/generated/lib/runtype/types/trace_node_lifecycle.rb +14 -0
- data/generated/lib/runtype/types/trace_node_node_type.rb +16 -0
- data/generated/lib/runtype/types/trace_produced_by.rb +37 -0
- data/generated/lib/runtype/types/trace_produced_by_source.rb +12 -0
- data/generated/lib/runtype/types/trace_tree.rb +41 -0
- data/generated/lib/runtype/types/trace_tree_availability.rb +13 -0
- data/generated/lib/runtype/types/trace_tree_availability_reason.rb +11 -0
- data/generated/lib/runtype/types/trace_tree_child_truncation.rb +15 -0
- data/generated/lib/runtype/types/trace_tree_child_truncation_reason.rb +11 -0
- data/generated/lib/runtype/types/trace_tree_source.rb +13 -0
- data/generated/lib/runtype/types/trace_tree_totals_source.rb +12 -0
- data/generated/lib/runtype/types/trace_tree_truncation.rb +13 -0
- data/generated/lib/runtype/types/trace_tree_truncation_reason.rb +11 -0
- data/generated/lib/runtype/users/types/get_v1users_profile_response_features.rb +2 -0
- data/generated/lib/runtype.rb +3506 -2863
- data/lib/runtype/agent_ensure.rb +97 -10
- data/lib/runtype/agent_release_aliases.rb +146 -2
- data/lib/runtype/client.rb +22 -1
- data/lib/runtype/config_ensure.rb +272 -0
- data/lib/runtype/content_hash.rb +257 -0
- data/lib/runtype/detached_follow.rb +12 -0
- data/lib/runtype/errors.rb +56 -10
- data/lib/runtype/local_tool_runner.rb +3 -1
- data/lib/runtype/raw_client_timeout.rb +56 -0
- data/lib/runtype/sdk_version.rb +2 -1
- data/lib/runtype.rb +3 -0
- metadata +422 -15
- data/generated/lib/runtype/agents/types/get_v1agents_id_export_runtime_response.rb +0 -25
- data/generated/lib/runtype/conversations/types/put_v1conversations_id_request_messages_item.rb +0 -17
- data/generated/lib/runtype/conversations/types/put_v1conversations_id_request_messages_item_content.rb +0 -15
- data/generated/lib/runtype/conversations/types/put_v1conversations_id_request_messages_item_content_one_item.rb +0 -21
- data/generated/lib/runtype/conversations/types/put_v1conversations_id_request_messages_item_content_one_item_asset_ref.rb +0 -21
- data/generated/lib/runtype/conversations/types/put_v1conversations_id_request_messages_item_content_one_item_file.rb +0 -15
- data/generated/lib/runtype/conversations/types/put_v1conversations_id_request_messages_item_content_one_item_image.rb +0 -13
- data/generated/lib/runtype/conversations/types/put_v1conversations_id_request_messages_item_content_one_item_text.rb +0 -11
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "digest"
|
|
4
|
+
|
|
5
|
+
module Runtype
|
|
6
|
+
# Canonical content hashes for the config-as-code ensure surfaces other than
|
|
7
|
+
# agents (see {AgentDefinition.content_hash_for}). Each is a wire contract
|
|
8
|
+
# with the API and the TypeScript SDK, pinned by the corpora under
|
|
9
|
+
# `packages/shared/test-fixtures/*-content-hash/cases.json`. A key absent
|
|
10
|
+
# from a Hash plays JavaScript's `undefined` (dropped); `nil` plays `null`.
|
|
11
|
+
module ContentHash
|
|
12
|
+
MAX_ARRAY_INDEX = 4_294_967_294
|
|
13
|
+
FPO_OPTIONAL_SECTIONS = %w[records schedules secrets evals skills].freeze
|
|
14
|
+
SERVER_SET_STACK_FIELDS = %w[detected declared hiddenAt].freeze
|
|
15
|
+
|
|
16
|
+
module_function
|
|
17
|
+
|
|
18
|
+
# @param steps [Array<Hash>] a flow's steps.
|
|
19
|
+
# @return [String] SHA-256 hex over the canonical step list.
|
|
20
|
+
def flow(steps)
|
|
21
|
+
sha256(normalize_flow_steps(steps))
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# @param steps [Array<Hash>]
|
|
25
|
+
# @return [Array<Hash>] the canonical steps, sorted by `order`.
|
|
26
|
+
def normalize_flow_steps(steps)
|
|
27
|
+
Array(steps).each_with_index
|
|
28
|
+
.map { |step, index| legacy_flow_step_identity(stringify(step), index) }
|
|
29
|
+
.each_with_index
|
|
30
|
+
.sort_by { |step, index| [step_order(step), index] }
|
|
31
|
+
.map { |step, _index| normalize_flow_step(step) }
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# @param definition [Hash] `{ name:, manifest: { frontmatter:, runtype:, body: } }`.
|
|
35
|
+
# @return [String] SHA-256 hex; the frontmatter name is identity, not content.
|
|
36
|
+
def skill(definition)
|
|
37
|
+
manifest = plain(stringify(definition)["manifest"])
|
|
38
|
+
frontmatter = plain(manifest["frontmatter"]).except("name")
|
|
39
|
+
runtype_block = manifest["runtype"]
|
|
40
|
+
body = manifest["body"]
|
|
41
|
+
sha256(
|
|
42
|
+
"frontmatter" => normalize_value(frontmatter),
|
|
43
|
+
"runtype" => runtype_block.is_a?(Hash) ? normalize_value(runtype_block) : {},
|
|
44
|
+
"body" => body.is_a?(String) ? body : ""
|
|
45
|
+
)
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# @param definition [Hash] `{ name:, description:, toolType:, parametersSchema:, config: }`.
|
|
49
|
+
# @return [String] SHA-256 hex; the name is identity, not content.
|
|
50
|
+
def tool(definition)
|
|
51
|
+
wire = stringify(definition)
|
|
52
|
+
normalized = {}
|
|
53
|
+
normalized["toolType"] = wire["toolType"] if wire.key?("toolType")
|
|
54
|
+
normalized["description"] = wire["description"] if truthy?(wire["description"])
|
|
55
|
+
normalized["parametersSchema"] = object_or_empty(wire["parametersSchema"])
|
|
56
|
+
normalized["config"] = object_or_empty(wire["config"])
|
|
57
|
+
sha256(normalized)
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
# @param definition [Hash] `{ name:, type:, behavior:?, inbound:?, outbound:?, status:? }`.
|
|
61
|
+
# @return [String] SHA-256 hex.
|
|
62
|
+
def surface(definition)
|
|
63
|
+
wire = stringify(definition)
|
|
64
|
+
type_entry = wire.key?("type") ? { "type" => wire["type"] } : {}
|
|
65
|
+
behavior = wire["behavior"]
|
|
66
|
+
normalized = type_entry.dup
|
|
67
|
+
normalized["behavior"] = behavior.is_a?(Hash) ? normalize_value(type_entry.merge(behavior)) : type_entry.dup
|
|
68
|
+
normalized["status"] = truthy?(wire["status"]) ? wire["status"] : "draft"
|
|
69
|
+
normalized["environment"] = "development"
|
|
70
|
+
sha256(normalized)
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
# @param definition [Hash] `{ name:, description:?, icon:?, spec:? }`.
|
|
74
|
+
# @return [String] SHA-256 hex; the name is identity, not content.
|
|
75
|
+
def product(definition)
|
|
76
|
+
wire = stringify(definition)
|
|
77
|
+
normalized = {}
|
|
78
|
+
normalized["description"] = wire["description"] if truthy?(wire["description"])
|
|
79
|
+
normalized["icon"] = wire["icon"] if truthy?(wire["icon"])
|
|
80
|
+
normalized["spec"] = object_or_empty(as_saved_stack(wire["spec"]))
|
|
81
|
+
sha256(normalized)
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
# @param fpo [Hash] a Full Product Object.
|
|
85
|
+
# @return [String] SHA-256 hex; `_meta` and `product.name` are excluded.
|
|
86
|
+
def fpo(fpo)
|
|
87
|
+
wire = stringify(fpo)
|
|
88
|
+
normalized = {}
|
|
89
|
+
normalized["version"] = normalize_value(wire["version"]) unless wire["version"].nil?
|
|
90
|
+
normalized["product"] = normalize_value(plain(wire["product"]).except("name"))
|
|
91
|
+
%w[capabilities tools surfaces].each { |section| normalized[section] = normalize_value(wire[section] || []) }
|
|
92
|
+
FPO_OPTIONAL_SECTIONS.each do |section|
|
|
93
|
+
normalized[section] = normalize_value(wire[section]) unless wire[section].nil?
|
|
94
|
+
end
|
|
95
|
+
sha256(normalized)
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
# @param definition [Hash] an eval suite `{ name:, target:, cases:, virtual:, ... }`.
|
|
99
|
+
# @return [String] SHA-256 hex; cases sort by name, grader order is kept.
|
|
100
|
+
def eval_suite(definition)
|
|
101
|
+
wire = stringify(definition)
|
|
102
|
+
mode = truthy?(wire["recordedToolMode"]) ? wire["recordedToolMode"] : "next_step"
|
|
103
|
+
policy = truthy?(wire["recordedToolUnmatchedPolicy"]) ? wire["recordedToolUnmatchedPolicy"] : "fail"
|
|
104
|
+
canonical = {}
|
|
105
|
+
canonical["target"] = sort_keeping_nil(wire["target"]) if wire.key?("target")
|
|
106
|
+
canonical["virtual"] = wire["virtual"] if wire.key?("virtual")
|
|
107
|
+
canonical["recordedToolMode"] = mode unless mode == "next_step"
|
|
108
|
+
canonical["recordedToolUnmatchedPolicy"] = policy unless policy == "fail"
|
|
109
|
+
cases = Array(wire["cases"]).map { |entry| plain(entry) }
|
|
110
|
+
canonical["cases"] = cases.each_with_index
|
|
111
|
+
.sort_by { |entry, index| [utf16(entry["name"].to_s), index] }
|
|
112
|
+
.map { |entry, _index| canonical_case(entry) }
|
|
113
|
+
sha256(canonical)
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
# Drops nil entries and orders object keys the way `JSON.stringify` emits
|
|
117
|
+
# sorted keys, recursively; arrays keep their order.
|
|
118
|
+
#
|
|
119
|
+
# @param value [Object]
|
|
120
|
+
# @return [Object]
|
|
121
|
+
def normalize_value(value)
|
|
122
|
+
case value
|
|
123
|
+
when Array then value.map { |entry| normalize_value(entry) }
|
|
124
|
+
when Hash
|
|
125
|
+
entries = stringify(value)
|
|
126
|
+
entries.keys.sort_by { |key| json_key_order(key) }.each_with_object({}) do |key, out|
|
|
127
|
+
out[key] = normalize_value(entries[key]) unless entries[key].nil?
|
|
128
|
+
end
|
|
129
|
+
else value
|
|
130
|
+
end
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
# @return [String]
|
|
134
|
+
def sha256(value)
|
|
135
|
+
Digest::SHA256.hexdigest(Runtype::CanonicalJSON.generate(value))
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
def canonical_case(entry)
|
|
139
|
+
canonical = {}
|
|
140
|
+
canonical["name"] = entry["name"] if entry.key?("name")
|
|
141
|
+
canonical["input"] = sort_keeping_nil(entry["input"]) if entry.key?("input")
|
|
142
|
+
canonical["expected"] = sort_keeping_nil(entry["expected"]) if entry.key?("expected")
|
|
143
|
+
canonical["expect"] = Array(entry["expect"]).map { |grader| sort_keeping_nil(grader) }
|
|
144
|
+
canonical
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
def normalize_flow_step(step)
|
|
148
|
+
normalized = {
|
|
149
|
+
"type" => step["type"].is_a?(String) ? step["type"] : "",
|
|
150
|
+
"name" => step["name"].is_a?(String) ? step["name"] : "",
|
|
151
|
+
"enabled" => step["enabled"] != false
|
|
152
|
+
}
|
|
153
|
+
normalized["when"] = step["when"] if step["when"].is_a?(String)
|
|
154
|
+
normalized["config"] = normalize_flow_config(step["config"])
|
|
155
|
+
normalized["order"] = step_order(step)
|
|
156
|
+
normalized
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
# Sorts keys and keeps nil; one level of array items is normalized, deeper
|
|
160
|
+
# arrays keep their insertion key order, exactly as the TypeScript SDK does.
|
|
161
|
+
def normalize_flow_config(config)
|
|
162
|
+
return {} unless config.is_a?(Hash)
|
|
163
|
+
|
|
164
|
+
entries = stringify(config)
|
|
165
|
+
entries.keys.sort_by { |key| json_key_order(key) }.each_with_object({}) do |key, out|
|
|
166
|
+
value = entries[key]
|
|
167
|
+
out[key] =
|
|
168
|
+
case value
|
|
169
|
+
when Hash then normalize_flow_config(value)
|
|
170
|
+
when Array then value.map { |item| item.is_a?(Hash) ? normalize_flow_config(item) : js_emission_order(item) }
|
|
171
|
+
else value
|
|
172
|
+
end
|
|
173
|
+
end
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
# The key order `JSON.stringify` gives an object nobody sorted: canonical
|
|
177
|
+
# array indexes first, then insertion order.
|
|
178
|
+
def js_emission_order(value)
|
|
179
|
+
case value
|
|
180
|
+
when Array then value.map { |entry| js_emission_order(entry) }
|
|
181
|
+
when Hash
|
|
182
|
+
entries = stringify(value)
|
|
183
|
+
indexes, others = entries.keys.partition { |key| json_key_order(key).first.zero? }
|
|
184
|
+
(indexes.sort_by { |key| json_key_order(key) } + others).to_h { |key| [key, js_emission_order(entries[key])] }
|
|
185
|
+
else value
|
|
186
|
+
end
|
|
187
|
+
end
|
|
188
|
+
|
|
189
|
+
def sort_keeping_nil(value)
|
|
190
|
+
case value
|
|
191
|
+
when Array then value.map { |entry| sort_keeping_nil(entry) }
|
|
192
|
+
when Hash
|
|
193
|
+
entries = stringify(value)
|
|
194
|
+
entries.keys.sort_by { |key| json_key_order(key) }.to_h { |key| [key, sort_keeping_nil(entries[key])] }
|
|
195
|
+
else value
|
|
196
|
+
end
|
|
197
|
+
end
|
|
198
|
+
|
|
199
|
+
# A legacy step missing `name`/`order` defaults to `Step N`/`N`, as flow pull emits.
|
|
200
|
+
def legacy_flow_step_identity(step, index)
|
|
201
|
+
step.merge(
|
|
202
|
+
"name" => step["name"].is_a?(String) ? step["name"] : "Step #{index + 1}",
|
|
203
|
+
"order" => step["order"].is_a?(Numeric) ? step["order"] : index + 1
|
|
204
|
+
)
|
|
205
|
+
end
|
|
206
|
+
|
|
207
|
+
def step_order(step)
|
|
208
|
+
order = step.is_a?(Hash) ? step["order"] : nil
|
|
209
|
+
order.is_a?(Numeric) ? order : 0
|
|
210
|
+
end
|
|
211
|
+
|
|
212
|
+
def json_key_order(key)
|
|
213
|
+
if key.match?(/\A(?:0|[1-9]\d*)\z/) && key.to_i <= MAX_ARRAY_INDEX
|
|
214
|
+
[0, key.to_i, []]
|
|
215
|
+
else
|
|
216
|
+
[1, 0, utf16(key)]
|
|
217
|
+
end
|
|
218
|
+
end
|
|
219
|
+
|
|
220
|
+
def utf16(value)
|
|
221
|
+
value.encode("UTF-16LE").unpack("v*")
|
|
222
|
+
end
|
|
223
|
+
|
|
224
|
+
def object_or_empty(value)
|
|
225
|
+
value.is_a?(Hash) ? normalize_value(value) : {}
|
|
226
|
+
end
|
|
227
|
+
|
|
228
|
+
# `spec` with its stack as a save stores it: server-set fields dropped, `hidden` deduplicated.
|
|
229
|
+
def as_saved_stack(spec)
|
|
230
|
+
return spec unless spec.is_a?(Hash)
|
|
231
|
+
|
|
232
|
+
wire = stringify(spec)
|
|
233
|
+
return wire unless wire["stack"].is_a?(Hash)
|
|
234
|
+
|
|
235
|
+
stack = stringify(wire["stack"]).except(*SERVER_SET_STACK_FIELDS)
|
|
236
|
+
stack["hidden"] = stack["hidden"].uniq if stack["hidden"].is_a?(Array)
|
|
237
|
+
wire.merge("stack" => stack)
|
|
238
|
+
end
|
|
239
|
+
|
|
240
|
+
def plain(value)
|
|
241
|
+
value.is_a?(Hash) ? stringify(value) : {}
|
|
242
|
+
end
|
|
243
|
+
|
|
244
|
+
def stringify(value)
|
|
245
|
+
value.is_a?(Hash) ? value.to_h { |key, entry| [key.to_s, entry] } : {}
|
|
246
|
+
end
|
|
247
|
+
|
|
248
|
+
# JavaScript truthiness for the values a definition can hold.
|
|
249
|
+
def truthy?(value)
|
|
250
|
+
!(value.nil? || value == false || value == "" || (value.is_a?(Numeric) && value.zero?))
|
|
251
|
+
end
|
|
252
|
+
|
|
253
|
+
private_class_method :canonical_case, :normalize_flow_step, :normalize_flow_config, :js_emission_order,
|
|
254
|
+
:sort_keeping_nil, :step_order, :json_key_order, :utf16, :object_or_empty, :plain,
|
|
255
|
+
:stringify, :truthy?
|
|
256
|
+
end
|
|
257
|
+
end
|
|
@@ -60,6 +60,18 @@ module Runtype
|
|
|
60
60
|
seqs.max&.to_s
|
|
61
61
|
end
|
|
62
62
|
|
|
63
|
+
# The agent-version keys a dispatch or resume body reports. The events
|
|
64
|
+
# alias never repeats them, so a followed envelope carries them forward.
|
|
65
|
+
RELEASE_KEYS = %w[agentVersionId alias agentTargetResolution].freeze
|
|
66
|
+
|
|
67
|
+
# @param response [Object]
|
|
68
|
+
# @return [Hash] the release keys `response` carries, or an empty Hash.
|
|
69
|
+
def release_fields(response)
|
|
70
|
+
return {} unless response.is_a?(Hash)
|
|
71
|
+
|
|
72
|
+
response.slice(*RELEASE_KEYS).compact
|
|
73
|
+
end
|
|
74
|
+
|
|
63
75
|
# @param data [Hash]
|
|
64
76
|
# @return [Boolean]
|
|
65
77
|
def detached_await?(data)
|
data/lib/runtype/errors.rb
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require "timeout"
|
|
4
|
+
|
|
3
5
|
module Runtype
|
|
4
6
|
# Base class for every error the overlay raises. Rescue this to catch all of
|
|
5
7
|
# them regardless of which generated resource produced the failure.
|
|
@@ -28,12 +30,20 @@ module Runtype
|
|
|
28
30
|
# Translates a Fern-generated error into the curated equivalent. Errors that
|
|
29
31
|
# are not generated API errors are returned unchanged.
|
|
30
32
|
#
|
|
33
|
+
# A socket timeout is translated too: the generated methods rescue
|
|
34
|
+
# `Net::HTTPRequestTimeout`, a 408 response class no socket ever raises, so
|
|
35
|
+
# `Net::OpenTimeout`, `Net::ReadTimeout` and `Net::WriteTimeout` reach here
|
|
36
|
+
# untranslated. They all descend from `Timeout::Error`, so one clause covers
|
|
37
|
+
# connect, read and write, matching {Runtype::Streaming::Connection}.
|
|
38
|
+
#
|
|
31
39
|
# @param error [Exception]
|
|
32
40
|
# @return [Exception]
|
|
33
41
|
def self.from_generated(error)
|
|
34
42
|
case error
|
|
35
43
|
when Runtype::Errors::TimeoutError
|
|
36
44
|
APITimeoutError.new("Request timed out")
|
|
45
|
+
when ::Timeout::Error
|
|
46
|
+
APITimeoutError.new("Request timed out: #{error.message}")
|
|
37
47
|
when Runtype::Errors::ResponseError
|
|
38
48
|
from_response(status: error.code, body: error.message)
|
|
39
49
|
when Runtype::Errors::ApiError
|
|
@@ -180,24 +190,58 @@ module Runtype
|
|
|
180
190
|
end
|
|
181
191
|
end
|
|
182
192
|
|
|
183
|
-
# Raised by `ensure_agent(definition, expect_no_changes: true)
|
|
184
|
-
# platform's definition no longer matches
|
|
193
|
+
# Raised by `ensure_agent(definition, expect_no_changes: true)`, and by the
|
|
194
|
+
# other `ensure_*` methods, when the platform's definition no longer matches
|
|
195
|
+
# the repo's.
|
|
185
196
|
class DriftError < Error
|
|
186
197
|
# @return [Hash] the dry-run plan: `"changes"`, `"changedKeys"`,
|
|
187
|
-
# `"contentHash"`, `"remoteHash"`,
|
|
198
|
+
# `"contentHash"`, `"remoteHash"`, and the entity's id.
|
|
188
199
|
attr_reader :plan
|
|
189
200
|
|
|
190
201
|
# @param plan [Hash]
|
|
191
202
|
# @param name [String, nil]
|
|
192
|
-
|
|
203
|
+
# @param entity [String] what drifted, e.g. `"Agent"` or `"Flow"`.
|
|
204
|
+
# @param pull_hint [String] the call that absorbs the remote edit.
|
|
205
|
+
# @param ensure_hint [String] the method that converges it.
|
|
206
|
+
def initialize(plan, name: nil, entity: "Agent", pull_hint: "client.pull_agent(name)",
|
|
207
|
+
ensure_hint: "ensure_agent")
|
|
193
208
|
@plan = plan
|
|
194
|
-
changed = Array(plan["changedKeys"]).
|
|
209
|
+
changed = (Array(plan["changedKeys"]) + self.class.skill_changes(plan) + self.class.deployment_changes(plan) +
|
|
210
|
+
self.class.publish_changes(plan))
|
|
211
|
+
.join(", ")
|
|
195
212
|
super(
|
|
196
|
-
"
|
|
197
|
-
"(changed: #{changed.empty? ? "n/a" : changed}). Run
|
|
198
|
-
"into your repo, or re-run
|
|
213
|
+
"#{entity} #{(name || plan["agentId"] || "definition").inspect} drifted: plan is #{plan["changes"].inspect} " \
|
|
214
|
+
"(changed: #{changed.empty? ? "n/a" : changed}). Run #{pull_hint} to absorb the remote edit " \
|
|
215
|
+
"into your repo, or re-run #{ensure_hint} to converge."
|
|
199
216
|
)
|
|
200
217
|
end
|
|
218
|
+
|
|
219
|
+
# @param plan [Hash]
|
|
220
|
+
# @return [Array<String>] `skill:<name> (<action>)` for each binding the plan would change.
|
|
221
|
+
def self.skill_changes(plan)
|
|
222
|
+
Array(plan["skillBindings"]).reject { |binding| binding["action"] == "unchanged" }
|
|
223
|
+
.map { |binding| "skill:#{binding["name"]} (#{binding["action"]})" }
|
|
224
|
+
end
|
|
225
|
+
|
|
226
|
+
# @param plan [Hash]
|
|
227
|
+
# @return [Array<String>] `publish (pending)` when a `release: "publish"` dry run would re-aim the pointer.
|
|
228
|
+
def self.publish_changes(plan)
|
|
229
|
+
plan["publishPending"] == true ? ["publish (pending)"] : []
|
|
230
|
+
end
|
|
231
|
+
|
|
232
|
+
# @param plan [Hash]
|
|
233
|
+
# @return [Array<String>] `deploy:<alias> (pointer)` and `deploy:<alias> (bindings)`
|
|
234
|
+
# for an alias move or binding-name change the plan reports.
|
|
235
|
+
def self.deployment_changes(plan)
|
|
236
|
+
deployment = plan["deployment"]
|
|
237
|
+
return [] unless deployment.is_a?(Hash)
|
|
238
|
+
|
|
239
|
+
alias_name = deployment["alias"]
|
|
240
|
+
[
|
|
241
|
+
("deploy:#{alias_name} (pointer)" if deployment["changed"] == true),
|
|
242
|
+
("deploy:#{alias_name} (bindings)" if deployment["bindingsChanged"] == true)
|
|
243
|
+
].compact
|
|
244
|
+
end
|
|
201
245
|
end
|
|
202
246
|
|
|
203
247
|
# A local tool could not be run during `run_with_local_tools`: the server
|
|
@@ -235,7 +279,9 @@ module Runtype
|
|
|
235
279
|
class APIConnectionError < Error; end
|
|
236
280
|
|
|
237
281
|
# Runs a block, re-raising Fern-generated errors as their curated equivalents
|
|
238
|
-
# so callers keep one stable rescue surface across regenerations.
|
|
282
|
+
# so callers keep one stable rescue surface across regenerations. A socket
|
|
283
|
+
# timeout raised inside a generated call is curated here too, as
|
|
284
|
+
# {Runtype::APITimeoutError}.
|
|
239
285
|
#
|
|
240
286
|
# @example
|
|
241
287
|
# Runtype.wrap_errors { client.flows.list_flows }
|
|
@@ -243,7 +289,7 @@ module Runtype
|
|
|
243
289
|
# @return [Object] whatever the block returns.
|
|
244
290
|
def self.wrap_errors
|
|
245
291
|
yield
|
|
246
|
-
rescue Runtype::Errors::ApiError => e
|
|
292
|
+
rescue Runtype::Errors::ApiError, ::Timeout::Error => e
|
|
247
293
|
raise Runtype::Error.from_generated(e)
|
|
248
294
|
end
|
|
249
295
|
end
|
|
@@ -60,6 +60,7 @@ module Runtype
|
|
|
60
60
|
# @return [Hash] the final JSON response body.
|
|
61
61
|
def dispatch_with_local_tools(registry, params, max_rounds, request_options)
|
|
62
62
|
response = dispatch(request_options: request_options, **params)
|
|
63
|
+
release = Runtype::DetachedFollow.release_fields(response)
|
|
63
64
|
answered = AnsweredCalls.new
|
|
64
65
|
replayed = false
|
|
65
66
|
cursor = nil
|
|
@@ -80,6 +81,7 @@ module Runtype
|
|
|
80
81
|
tool_outputs: registry.execute(batch),
|
|
81
82
|
request_options: request_options
|
|
82
83
|
)
|
|
84
|
+
release = release.merge(Runtype::DetachedFollow.release_fields(response))
|
|
83
85
|
# A buffered continuation answers the leg in full; only a durable-lane
|
|
84
86
|
# acknowledgement needs the run's events followed instead.
|
|
85
87
|
next unless Runtype::DetachedFollow.detached_ack?(response)
|
|
@@ -90,7 +92,7 @@ module Runtype
|
|
|
90
92
|
followed = Runtype::DetachedFollow.follow_buffered(
|
|
91
93
|
self, collector.batch_execution_id, after: cursor, request_options: request_options
|
|
92
94
|
)
|
|
93
|
-
response = followed.envelope
|
|
95
|
+
response = followed.envelope.merge(release)
|
|
94
96
|
cursor = followed.cursor
|
|
95
97
|
replayed = true
|
|
96
98
|
end
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Runtype
|
|
4
|
+
# Timeout handling for the Fern-generated low-level transport.
|
|
5
|
+
#
|
|
6
|
+
# `Runtype::BaseClient` accepts no timeout and builds its
|
|
7
|
+
# `Runtype::Internal::Http::RawClient` with the generator's 60 second default,
|
|
8
|
+
# so every generated resource call ignored the timeout {Runtype::Client} was
|
|
9
|
+
# given. {Runtype::Client} seeds that transport through {apply}, which also
|
|
10
|
+
# gives it the per-call `request_options[:timeout_in_seconds]` override the
|
|
11
|
+
# generated methods document.
|
|
12
|
+
module RawClientTimeout
|
|
13
|
+
# Sends one request under the caller's `timeout_in_seconds` when it asked
|
|
14
|
+
# for one, and under the client-wide timeout otherwise. The override runs
|
|
15
|
+
# on a copy of the transport, so a client shared across threads is never
|
|
16
|
+
# mutated for the duration of one call.
|
|
17
|
+
#
|
|
18
|
+
# @param request [Runtype::Internal::Http::BaseRequest]
|
|
19
|
+
# @return [Net::HTTPResponse]
|
|
20
|
+
def send(request)
|
|
21
|
+
seconds = RawClientTimeout.timeout_in_seconds(request)
|
|
22
|
+
return super if seconds.nil? || seconds == @timeout
|
|
23
|
+
|
|
24
|
+
scoped = dup
|
|
25
|
+
scoped.instance_variable_set(:@timeout, seconds)
|
|
26
|
+
# INVARIANT: the copy's own timeout equals the override, so its send takes the branch above and cannot recur.
|
|
27
|
+
scoped.send(request)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# Reads the per-request timeout off a request's options under either key
|
|
31
|
+
# spelling, matching {Runtype::Client}'s streaming path.
|
|
32
|
+
#
|
|
33
|
+
# @param request [Runtype::Internal::Http::BaseRequest]
|
|
34
|
+
# @return [Float, nil] nil when no override was asked for, or when the
|
|
35
|
+
# value is not a number.
|
|
36
|
+
def self.timeout_in_seconds(request)
|
|
37
|
+
options = request.respond_to?(:request_options) ? request.request_options : nil
|
|
38
|
+
return nil unless options.respond_to?(:[])
|
|
39
|
+
|
|
40
|
+
value = options[:timeout_in_seconds] || options["timeout_in_seconds"]
|
|
41
|
+
value.nil? ? nil : Float(value, exception: false)
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
# Seeds a generated transport with the client-wide timeout and gives it
|
|
45
|
+
# per-request override handling.
|
|
46
|
+
#
|
|
47
|
+
# @param raw_client [Runtype::Internal::Http::RawClient]
|
|
48
|
+
# @param timeout [Numeric] the client-wide timeout, in seconds.
|
|
49
|
+
# @return [Runtype::Internal::Http::RawClient] the same object.
|
|
50
|
+
def self.apply(raw_client, timeout:)
|
|
51
|
+
raw_client.instance_variable_set(:@timeout, Float(timeout))
|
|
52
|
+
raw_client.extend(self)
|
|
53
|
+
raw_client
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
data/lib/runtype/sdk_version.rb
CHANGED
|
@@ -8,7 +8,8 @@ module Runtype
|
|
|
8
8
|
# generator). The generated barrel does not require that file, so nothing
|
|
9
9
|
# collides today, but re-declaring it here would make the overlay's version
|
|
10
10
|
# depend on generator require order.
|
|
11
|
-
|
|
11
|
+
# Mirrored from ../../package.json by scripts/sync-sdk-versions.mjs; never hand-edit.
|
|
12
|
+
SDK_VERSION = "0.11.1"
|
|
12
13
|
|
|
13
14
|
# Outbound User-Agent identifying the SDK kind, version, and language, e.g.
|
|
14
15
|
# "runtype-sdk/0.1.0 (ruby)". The `runtype-sdk/` prefix is what the API's
|
data/lib/runtype.rb
CHANGED
|
@@ -25,6 +25,7 @@ require_relative "../generated/lib/runtype"
|
|
|
25
25
|
|
|
26
26
|
require_relative "runtype/sdk_version"
|
|
27
27
|
require_relative "runtype/errors"
|
|
28
|
+
require_relative "runtype/raw_client_timeout"
|
|
28
29
|
require_relative "runtype/streaming/event"
|
|
29
30
|
require_relative "runtype/streaming/line_decoder"
|
|
30
31
|
require_relative "runtype/streaming/event_parser"
|
|
@@ -33,6 +34,8 @@ require_relative "runtype/streaming/event_stream"
|
|
|
33
34
|
require_relative "runtype/canonical_json"
|
|
34
35
|
require_relative "runtype/agent_definition"
|
|
35
36
|
require_relative "runtype/agent_ensure"
|
|
37
|
+
require_relative "runtype/content_hash"
|
|
38
|
+
require_relative "runtype/config_ensure"
|
|
36
39
|
require_relative "runtype/agent_release_aliases"
|
|
37
40
|
require_relative "runtype/local_tools"
|
|
38
41
|
require_relative "runtype/detached_follow"
|