openai 0.95.0 → 0.96.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.
Files changed (147) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +44 -0
  3. data/README.md +5 -2
  4. data/docs/architecture/security-model.md +2 -2
  5. data/examples/audio/record_and_play.rb +1 -1
  6. data/lib/openai/helpers/live/transcript_grouper.rb +264 -0
  7. data/lib/openai/helpers/live/transcript_grouping.rb +309 -0
  8. data/lib/openai/helpers/live/websocket.rb +454 -0
  9. data/lib/openai/helpers/realtime/translation.rb +440 -0
  10. data/lib/openai/helpers/realtime.rb +1 -0
  11. data/lib/openai/helpers/responses_websocket/incremental.rb +246 -0
  12. data/lib/openai/helpers/responses_websocket/transports/async_websocket.rb +183 -0
  13. data/lib/openai/helpers/responses_websocket.rb +1 -0
  14. data/lib/openai/helpers/streaming/response_stream.rb +19 -11
  15. data/lib/openai/helpers/structured_output/chat_completion_parser.rb +0 -2
  16. data/lib/openai/helpers/structured_output/response_parser.rb +1 -2
  17. data/lib/openai/helpers/structured_output/union_of.rb +0 -2
  18. data/lib/openai/helpers/websocket/async_websocket_transport.rb +11 -6
  19. data/lib/openai/helpers/websocket/connection_manager.rb +9 -0
  20. data/lib/openai/internal/read_io_adapter.rb +0 -2
  21. data/lib/openai/internal/stream.rb +0 -2
  22. data/lib/openai/internal/type/base_model.rb +4 -6
  23. data/lib/openai/internal/type/converter.rb +5 -3
  24. data/lib/openai/internal/type/enum.rb +0 -2
  25. data/lib/openai/internal/type/union.rb +0 -6
  26. data/lib/openai/internal/type/unknown.rb +34 -6
  27. data/lib/openai/internal/util.rb +0 -4
  28. data/lib/openai/models/audio/speech_create_params.rb +9 -0
  29. data/lib/openai/models/audio/transcription_create_response.rb +4 -1
  30. data/lib/openai/models/audio/translation_create_response.rb +4 -1
  31. data/lib/openai/models/beta/agent.rb +1 -0
  32. data/lib/openai/models/beta/agent_create_params.rb +3 -0
  33. data/lib/openai/models/beta/agent_session.rb +1 -0
  34. data/lib/openai/models/beta/agent_update_params.rb +3 -0
  35. data/lib/openai/models/beta/agents/environments/template_create_params.rb +3 -3
  36. data/lib/openai/models/beta/agents/environments/template_update_params.rb +6 -6
  37. data/lib/openai/models/beta/agents/session_create_params.rb +3 -0
  38. data/lib/openai/models/beta/agents/session_update_params.rb +3 -0
  39. data/lib/openai/models/beta/agents/vaults/credential.rb +10 -1
  40. data/lib/openai/models/beta/agents/vaults/credential_create_params.rb +12 -1
  41. data/lib/openai/models/beta/agents/vaults/credential_update_params.rb +14 -3
  42. data/lib/openai/models/beta/beta_response.rb +38 -1
  43. data/lib/openai/models/beta/beta_responses_client_event.rb +73 -1
  44. data/lib/openai/models/beta/beta_web_search_preview_tool.rb +9 -3
  45. data/lib/openai/models/beta/beta_web_search_tool.rb +9 -3
  46. data/lib/openai/models/beta/environment_param.rb +3 -3
  47. data/lib/openai/models/beta/response_compact_params.rb +3 -0
  48. data/lib/openai/models/beta/response_create_params.rb +68 -1
  49. data/lib/openai/models/beta/session_turn_error.rb +3 -0
  50. data/lib/openai/models/chat_model.rb +1 -0
  51. data/lib/openai/models/responses/response.rb +35 -1
  52. data/lib/openai/models/responses/response_compact_params.rb +3 -0
  53. data/lib/openai/models/responses/response_create_params.rb +65 -1
  54. data/lib/openai/models/responses/responses_client_event.rb +70 -1
  55. data/lib/openai/models/responses/web_search_preview_tool.rb +9 -3
  56. data/lib/openai/models/responses/web_search_tool.rb +9 -3
  57. data/lib/openai/net_http_client.rb +0 -2
  58. data/lib/openai/resources/audio/transcriptions.rb +5 -3
  59. data/lib/openai/resources/audio/translations.rb +1 -1
  60. data/lib/openai/resources/beta/agents/environments/templates.rb +3 -3
  61. data/lib/openai/resources/beta/agents/vaults/credentials.rb +12 -4
  62. data/lib/openai/resources/beta/responses.rb +8 -2
  63. data/lib/openai/resources/responses.rb +8 -1
  64. data/lib/openai/version.rb +1 -1
  65. data/lib/openai.rb +1 -0
  66. data/rbi/openai/helpers/live/transcript_grouper.rbi +67 -0
  67. data/rbi/openai/helpers/live/websocket.rbi +299 -0
  68. data/rbi/openai/helpers/realtime/translation.rbi +137 -0
  69. data/rbi/openai/helpers/responses_websocket/incremental.rbi +32 -0
  70. data/rbi/openai/helpers/responses_websocket/transports/async_websocket.rbi +24 -0
  71. data/rbi/openai/helpers/streaming/response_stream.rbi +5 -0
  72. data/rbi/openai/internal/type/converter.rbi +3 -2
  73. data/rbi/openai/models/audio/speech_create_params.rbi +3 -0
  74. data/rbi/openai/models/audio/transcription_create_response.rbi +2 -1
  75. data/rbi/openai/models/audio/translation_create_response.rbi +2 -1
  76. data/rbi/openai/models/beta/agent.rbi +1 -0
  77. data/rbi/openai/models/beta/agent_create_params.rbi +3 -0
  78. data/rbi/openai/models/beta/agent_session.rbi +1 -0
  79. data/rbi/openai/models/beta/agent_update_params.rbi +3 -0
  80. data/rbi/openai/models/beta/agents/environments/template_create_params.rbi +3 -3
  81. data/rbi/openai/models/beta/agents/environments/template_update_params.rbi +6 -6
  82. data/rbi/openai/models/beta/agents/session_create_params.rbi +3 -0
  83. data/rbi/openai/models/beta/agents/session_update_params.rbi +3 -0
  84. data/rbi/openai/models/beta/agents/vaults/credential.rbi +10 -0
  85. data/rbi/openai/models/beta/agents/vaults/credential_create_params.rbi +15 -0
  86. data/rbi/openai/models/beta/agents/vaults/credential_update_params.rbi +35 -6
  87. data/rbi/openai/models/beta/beta_response.rbi +64 -0
  88. data/rbi/openai/models/beta/beta_responses_client_event.rbi +128 -0
  89. data/rbi/openai/models/beta/beta_web_search_preview_tool.rbi +9 -3
  90. data/rbi/openai/models/beta/beta_web_search_tool.rbi +9 -3
  91. data/rbi/openai/models/beta/environment_param.rbi +3 -3
  92. data/rbi/openai/models/beta/response_compact_params.rbi +1 -0
  93. data/rbi/openai/models/beta/response_create_params.rbi +100 -0
  94. data/rbi/openai/models/beta/session_turn_error.rbi +6 -0
  95. data/rbi/openai/models/chat_model.rbi +1 -0
  96. data/rbi/openai/models/responses/response.rbi +63 -0
  97. data/rbi/openai/models/responses/response_compact_params.rbi +1 -0
  98. data/rbi/openai/models/responses/response_create_params.rbi +106 -0
  99. data/rbi/openai/models/responses/responses_client_event.rbi +125 -0
  100. data/rbi/openai/models/responses/web_search_preview_tool.rbi +9 -3
  101. data/rbi/openai/models/responses/web_search_tool.rbi +9 -3
  102. data/rbi/openai/resources/audio/transcriptions.rbi +4 -2
  103. data/rbi/openai/resources/beta/agents/environments/templates.rbi +3 -3
  104. data/rbi/openai/resources/beta/agents/vaults/credentials.rbi +11 -3
  105. data/rbi/openai/resources/beta/responses.rbi +6 -0
  106. data/rbi/openai/resources/responses.rbi +11 -0
  107. data/responses-websocket.md +55 -0
  108. data/sig/openai/helpers/live/transcript_grouper.rbs +42 -0
  109. data/sig/openai/helpers/live/websocket.rbs +152 -0
  110. data/sig/openai/helpers/realtime/translation.rbs +81 -0
  111. data/sig/openai/helpers/responses_websocket/incremental.rbs +14 -0
  112. data/sig/openai/helpers/responses_websocket/transports/async_websocket.rbs +21 -0
  113. data/sig/openai/helpers/streaming/response_stream.rbs +9 -0
  114. data/sig/openai/internal/type/converter.rbs +3 -1
  115. data/sig/openai/models/audio/speech_create_params.rbs +6 -0
  116. data/sig/openai/models/audio/transcription_create_response.rbs +1 -0
  117. data/sig/openai/models/audio/translation_create_response.rbs +3 -1
  118. data/sig/openai/models/beta/agent.rbs +3 -1
  119. data/sig/openai/models/beta/agent_create_params.rbs +5 -1
  120. data/sig/openai/models/beta/agent_session.rbs +3 -1
  121. data/sig/openai/models/beta/agent_update_params.rbs +5 -1
  122. data/sig/openai/models/beta/agents/environments/template_create_params.rbs +2 -2
  123. data/sig/openai/models/beta/agents/environments/template_update_params.rbs +4 -4
  124. data/sig/openai/models/beta/agents/session_create_params.rbs +5 -1
  125. data/sig/openai/models/beta/agents/session_update_params.rbs +5 -1
  126. data/sig/openai/models/beta/agents/vaults/credential.rbs +8 -0
  127. data/sig/openai/models/beta/agents/vaults/credential_create_params.rbs +14 -0
  128. data/sig/openai/models/beta/agents/vaults/credential_update_params.rbs +23 -4
  129. data/sig/openai/models/beta/beta_response.rbs +37 -0
  130. data/sig/openai/models/beta/beta_responses_client_event.rbs +79 -0
  131. data/sig/openai/models/beta/beta_web_search_preview_tool.rbs +6 -2
  132. data/sig/openai/models/beta/beta_web_search_tool.rbs +6 -2
  133. data/sig/openai/models/beta/environment_param.rbs +2 -2
  134. data/sig/openai/models/beta/response_compact_params.rbs +2 -0
  135. data/sig/openai/models/beta/response_create_params.rbs +79 -0
  136. data/sig/openai/models/beta/session_turn_error.rbs +4 -0
  137. data/sig/openai/models/chat_model.rbs +2 -0
  138. data/sig/openai/models/responses/response.rbs +35 -0
  139. data/sig/openai/models/responses/response_compact_params.rbs +2 -0
  140. data/sig/openai/models/responses/response_create_params.rbs +77 -0
  141. data/sig/openai/models/responses/responses_client_event.rbs +77 -0
  142. data/sig/openai/models/responses/web_search_preview_tool.rbs +6 -2
  143. data/sig/openai/models/responses/web_search_tool.rbs +6 -2
  144. data/sig/openai/resources/beta/agents/vaults/credentials.rbs +3 -1
  145. data/sig/openai/resources/beta/responses.rbs +2 -0
  146. data/sig/openai/resources/responses.rbs +4 -0
  147. metadata +14 -1
@@ -8,6 +8,7 @@ module OpenAI
8
8
  vault_id: String,
9
9
  auth: OpenAI::Models::Beta::Agents::Vaults::credential_auth_create_param,
10
10
  name: String,
11
+ ?metadata: ::Hash[Symbol, String],
11
12
  ?request_options: OpenAI::request_opts
12
13
  }
13
14
 
@@ -24,15 +25,27 @@ module OpenAI
24
25
  # trimming.
25
26
  attr_accessor name: String
26
27
 
28
+ # Up to 16 string key-value pairs, with keys up to 64 and values up to 512
29
+ # characters. Defaults to an empty map.
30
+ attr_reader metadata: ::Hash[Symbol, String]?
31
+
32
+ # Up to 16 string key-value pairs, with keys up to 64 and values up to 512
33
+ # characters. Defaults to an empty map.
34
+ def metadata=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String]
35
+
27
36
  # @param auth
28
37
  # The authentication method and write-only secret values to store.
29
38
  # @param name
30
39
  # The name is trimmed before storage. It must contain 1 to 256 UTF-8 bytes after
31
40
  # trimming.
41
+ # @param metadata
42
+ # Up to 16 string key-value pairs, with keys up to 64 and values up to 512
43
+ # characters. Defaults to an empty map.
32
44
  def initialize: (
33
45
  vault_id: String,
34
46
  auth: OpenAI::Models::Beta::Agents::Vaults::credential_auth_create_param,
35
47
  name: String,
48
+ ?metadata: ::Hash[Symbol, String],
36
49
  ?request_options: OpenAI::request_opts
37
50
  ) -> void
38
51
 
@@ -40,6 +53,7 @@ module OpenAI
40
53
  vault_id: String,
41
54
  auth: OpenAI::Models::Beta::Agents::Vaults::credential_auth_create_param,
42
55
  name: String,
56
+ ?metadata: ::Hash[Symbol, String],
43
57
  ?request_options: OpenAI::RequestOptions
44
58
  }
45
59
  end
@@ -7,7 +7,8 @@ module OpenAI
7
7
  {
8
8
  vault_id: String,
9
9
  credential_id: String,
10
- auth: OpenAI::Models::Beta::Agents::Vaults::credential_auth_rotate_param,
10
+ ?auth: OpenAI::Models::Beta::Agents::Vaults::credential_auth_rotate_param,
11
+ ?metadata: ::Hash[Symbol, String],
11
12
  ?request_options: OpenAI::request_opts
12
13
  }
13
14
 
@@ -20,21 +21,39 @@ module OpenAI
20
21
  attr_accessor credential_id: String
21
22
 
22
23
  # Replacement values for the credential's existing authentication method.
23
- attr_accessor auth: OpenAI::Models::Beta::Agents::Vaults::credential_auth_rotate_param
24
+ attr_reader auth: OpenAI::Models::Beta::Agents::Vaults::credential_auth_rotate_param?
25
+
26
+ # Replacement values for the credential's existing authentication method.
27
+ def auth=: (
28
+ OpenAI::Models::Beta::Agents::Vaults::credential_auth_rotate_param
29
+ ) -> OpenAI::Models::Beta::Agents::Vaults::credential_auth_rotate_param
30
+
31
+ # Replaces all metadata. Omit to preserve it, or pass {} to clear it. Up to 16
32
+ # string key-value pairs, with keys up to 64 and values up to 512 characters.
33
+ attr_reader metadata: ::Hash[Symbol, String]?
34
+
35
+ # Replaces all metadata. Omit to preserve it, or pass {} to clear it. Up to 16
36
+ # string key-value pairs, with keys up to 64 and values up to 512 characters.
37
+ def metadata=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String]
24
38
 
25
39
  # @param auth
26
40
  # Replacement values for the credential's existing authentication method.
41
+ # @param metadata
42
+ # Replaces all metadata. Omit to preserve it, or pass {} to clear it. Up to 16
43
+ # string key-value pairs, with keys up to 64 and values up to 512 characters.
27
44
  def initialize: (
28
45
  vault_id: String,
29
46
  credential_id: String,
30
- auth: OpenAI::Models::Beta::Agents::Vaults::credential_auth_rotate_param,
47
+ ?auth: OpenAI::Models::Beta::Agents::Vaults::credential_auth_rotate_param,
48
+ ?metadata: ::Hash[Symbol, String],
31
49
  ?request_options: OpenAI::request_opts
32
50
  ) -> void
33
51
 
34
52
  def to_hash: -> {
35
53
  vault_id: String,
36
54
  credential_id: String,
37
- auth: OpenAI::Models::Beta::Agents::Vaults::credential_auth_rotate_param,
55
+ ?auth: OpenAI::Models::Beta::Agents::Vaults::credential_auth_rotate_param,
56
+ ?metadata: ::Hash[Symbol, String],
38
57
  ?request_options: OpenAI::RequestOptions
39
58
  }
40
59
  end
@@ -6,6 +6,7 @@ module OpenAI
6
6
  type beta_response =
7
7
  {
8
8
  id: String,
9
+ access_programs: OpenAI::Beta::BetaResponse::AccessPrograms?,
9
10
  created_at: Float,
10
11
  error: OpenAI::Beta::BetaResponseError?,
11
12
  incomplete_details: OpenAI::Beta::BetaResponse::IncompleteDetails?,
@@ -46,6 +47,8 @@ module OpenAI
46
47
  # Unique identifier for this Response.
47
48
  attr_accessor id: String
48
49
 
50
+ attr_accessor access_programs: OpenAI::Beta::BetaResponse::AccessPrograms?
51
+
49
52
  # Unix timestamp (in seconds) of when this Response was created.
50
53
  attr_accessor created_at: Float
51
54
 
@@ -515,6 +518,7 @@ module OpenAI
515
518
  # The object type of this resource - always set to `response`.
516
519
  def initialize: (
517
520
  id: String,
521
+ access_programs: OpenAI::Beta::BetaResponse::AccessPrograms?,
518
522
  created_at: Float,
519
523
  error: OpenAI::Beta::BetaResponseError?,
520
524
  incomplete_details: OpenAI::Beta::BetaResponse::IncompleteDetails?,
@@ -553,6 +557,7 @@ module OpenAI
553
557
 
554
558
  def to_hash: -> {
555
559
  id: String,
560
+ access_programs: OpenAI::Beta::BetaResponse::AccessPrograms?,
556
561
  created_at: Float,
557
562
  error: OpenAI::Beta::BetaResponseError?,
558
563
  incomplete_details: OpenAI::Beta::BetaResponse::IncompleteDetails?,
@@ -589,6 +594,36 @@ module OpenAI
589
594
  ?user: String
590
595
  }
591
596
 
597
+ type access_programs =
598
+ { cyber: OpenAI::Models::Beta::BetaResponse::AccessPrograms::cyber }
599
+
600
+ class AccessPrograms < OpenAI::Internal::Type::BaseModel
601
+ # The effective Cyber access program used for this response.
602
+ attr_accessor cyber: OpenAI::Models::Beta::BetaResponse::AccessPrograms::cyber
603
+
604
+ # @param cyber
605
+ # The effective Cyber access program used for this response.
606
+ def initialize: (
607
+ cyber: OpenAI::Models::Beta::BetaResponse::AccessPrograms::cyber
608
+ ) -> void
609
+
610
+ def to_hash: -> {
611
+ cyber: OpenAI::Models::Beta::BetaResponse::AccessPrograms::cyber
612
+ }
613
+
614
+ type cyber = :standard | :daybreak_blue | :daybreak_red
615
+
616
+ module Cyber
617
+ extend OpenAI::Internal::Type::Enum
618
+
619
+ STANDARD: :standard
620
+ DAYBREAK_BLUE: :daybreak_blue
621
+ DAYBREAK_RED: :daybreak_red
622
+
623
+ def self?.values: -> ::Array[OpenAI::Models::Beta::BetaResponse::AccessPrograms::cyber]
624
+ end
625
+ end
626
+
592
627
  type incomplete_details =
593
628
  {
594
629
  ?reason: OpenAI::Models::Beta::BetaResponse::IncompleteDetails::reason
@@ -647,6 +682,7 @@ module OpenAI
647
682
 
648
683
  type model =
649
684
  :"gpt-6-astra"
685
+ | :"gpt-6.1-sol"
650
686
  | :"gpt-6-sol"
651
687
  | :"gpt-6-luna"
652
688
  | :"gpt-5.6-sol"
@@ -762,6 +798,7 @@ module OpenAI
762
798
  def self?.variants: -> ::Array[OpenAI::Models::Beta::BetaResponse::model]
763
799
 
764
800
  GPT_6_ASTRA: :"gpt-6-astra"
801
+ GPT_6_1_SOL: :"gpt-6.1-sol"
765
802
  GPT_6_SOL: :"gpt-6-sol"
766
803
  GPT_6_LUNA: :"gpt-6-luna"
767
804
  GPT_5_6_SOL: :"gpt-5.6-sol"
@@ -14,6 +14,7 @@ module OpenAI
14
14
  type response_create =
15
15
  {
16
16
  ?type: :"response.create",
17
+ ?access_programs: OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::AccessPrograms,
17
18
  ?background: bool?,
18
19
  ?context_management: ::Array[OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::ContextManagement]?,
19
20
  ?conversation: OpenAI::Models::Beta::BetaResponsesClientEvent::ResponseCreate::conversation?,
@@ -53,6 +54,14 @@ module OpenAI
53
54
  # The type of the client event. Always `response.create`.
54
55
  attr_accessor type: :"response.create"
55
56
 
57
+ # Domain-specific access programs to use for this request.
58
+ attr_reader access_programs: OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::AccessPrograms?
59
+
60
+ # Domain-specific access programs to use for this request.
61
+ def access_programs=: (
62
+ OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::AccessPrograms
63
+ ) -> OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::AccessPrograms
64
+
56
65
  # Whether to run the model response in the background.
57
66
  # [Learn more](https://developers.openai.com/api/docs/guides/background).
58
67
  attr_accessor background: bool?
@@ -405,6 +414,8 @@ module OpenAI
405
414
  # [Learn more](https://developers.openai.com/api/docs/guides/safety-best-practices#implement-safety-identifiers).
406
415
  def user=: (String) -> String
407
416
 
417
+ # @param access_programs
418
+ # Domain-specific access programs to use for this request.
408
419
  # @param background
409
420
  # Whether to run the model response in the background.
410
421
  # [Learn more](https://developers.openai.com/api/docs/guides/background).
@@ -638,6 +649,7 @@ module OpenAI
638
649
  # @param type
639
650
  # The type of the client event. Always `response.create`.
640
651
  def initialize: (
652
+ ?access_programs: OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::AccessPrograms,
641
653
  ?background: bool?,
642
654
  ?context_management: ::Array[OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::ContextManagement]?,
643
655
  ?conversation: OpenAI::Models::Beta::BetaResponsesClientEvent::ResponseCreate::conversation?,
@@ -676,6 +688,7 @@ module OpenAI
676
688
 
677
689
  def to_hash: -> {
678
690
  ?type: :"response.create",
691
+ ?access_programs: OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::AccessPrograms,
679
692
  ?background: bool?,
680
693
  ?context_management: ::Array[OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::ContextManagement]?,
681
694
  ?conversation: OpenAI::Models::Beta::BetaResponsesClientEvent::ResponseCreate::conversation?,
@@ -711,6 +724,70 @@ module OpenAI
711
724
  ?user: String
712
725
  }
713
726
 
727
+ type access_programs =
728
+ {
729
+ ?cyber: OpenAI::Models::Beta::BetaResponsesClientEvent::ResponseCreate::AccessPrograms::cyber
730
+ }
731
+
732
+ class AccessPrograms < OpenAI::Internal::Type::BaseModel
733
+ # The Cyber access program to use for this request. Supported values are
734
+ # `standard`, `daybreak_blue`, and `daybreak_red`. If omitted, the API resolves
735
+ # the program from the model's Cyber tier and your organization and project
736
+ # access, subject to model-specific eligibility restrictions. By default, models
737
+ # without a Cyber tier use Standard. Blue-tier models use Daybreak Blue when
738
+ # authorized; otherwise they fall back to Standard unless the model requires
739
+ # Daybreak access. Red-tier models use Daybreak Red and require authorization.
740
+ # Requests that require unavailable Daybreak access return 403. An implicit
741
+ # Standard fallback is represented by null in the response's access_programs
742
+ # field, rather than an explicit Standard selection.
743
+ attr_reader cyber: OpenAI::Models::Beta::BetaResponsesClientEvent::ResponseCreate::AccessPrograms::cyber?
744
+
745
+ # The Cyber access program to use for this request. Supported values are
746
+ # `standard`, `daybreak_blue`, and `daybreak_red`. If omitted, the API resolves
747
+ # the program from the model's Cyber tier and your organization and project
748
+ # access, subject to model-specific eligibility restrictions. By default, models
749
+ # without a Cyber tier use Standard. Blue-tier models use Daybreak Blue when
750
+ # authorized; otherwise they fall back to Standard unless the model requires
751
+ # Daybreak access. Red-tier models use Daybreak Red and require authorization.
752
+ # Requests that require unavailable Daybreak access return 403. An implicit
753
+ # Standard fallback is represented by null in the response's access_programs
754
+ # field, rather than an explicit Standard selection.
755
+ def cyber=: (
756
+ OpenAI::Models::Beta::BetaResponsesClientEvent::ResponseCreate::AccessPrograms::cyber
757
+ ) -> OpenAI::Models::Beta::BetaResponsesClientEvent::ResponseCreate::AccessPrograms::cyber
758
+
759
+ # @param cyber
760
+ # The Cyber access program to use for this request. Supported values are
761
+ # `standard`, `daybreak_blue`, and `daybreak_red`. If omitted, the API resolves
762
+ # the program from the model's Cyber tier and your organization and project
763
+ # access, subject to model-specific eligibility restrictions. By default, models
764
+ # without a Cyber tier use Standard. Blue-tier models use Daybreak Blue when
765
+ # authorized; otherwise they fall back to Standard unless the model requires
766
+ # Daybreak access. Red-tier models use Daybreak Red and require authorization.
767
+ # Requests that require unavailable Daybreak access return 403. An implicit
768
+ # Standard fallback is represented by null in the response's access_programs
769
+ # field, rather than an explicit Standard selection.
770
+ def initialize: (
771
+ ?cyber: OpenAI::Models::Beta::BetaResponsesClientEvent::ResponseCreate::AccessPrograms::cyber
772
+ ) -> void
773
+
774
+ def to_hash: -> {
775
+ ?cyber: OpenAI::Models::Beta::BetaResponsesClientEvent::ResponseCreate::AccessPrograms::cyber
776
+ }
777
+
778
+ type cyber = :standard | :daybreak_blue | :daybreak_red
779
+
780
+ module Cyber
781
+ extend OpenAI::Internal::Type::Enum
782
+
783
+ STANDARD: :standard
784
+ DAYBREAK_BLUE: :daybreak_blue
785
+ DAYBREAK_RED: :daybreak_red
786
+
787
+ def self?.values: -> ::Array[OpenAI::Models::Beta::BetaResponsesClientEvent::ResponseCreate::AccessPrograms::cyber]
788
+ end
789
+ end
790
+
714
791
  type context_management =
715
792
  { type: String, ?compact_threshold: Integer? }
716
793
 
@@ -749,6 +826,7 @@ module OpenAI
749
826
 
750
827
  type model =
751
828
  :"gpt-6-astra"
829
+ | :"gpt-6.1-sol"
752
830
  | :"gpt-6-sol"
753
831
  | :"gpt-6-luna"
754
832
  | :"gpt-5.6-sol"
@@ -864,6 +942,7 @@ module OpenAI
864
942
  def self?.variants: -> ::Array[OpenAI::Models::Beta::BetaResponsesClientEvent::ResponseCreate::model]
865
943
 
866
944
  GPT_6_ASTRA: :"gpt-6-astra"
945
+ GPT_6_1_SOL: :"gpt-6.1-sol"
867
946
  GPT_6_SOL: :"gpt-6-sol"
868
947
  GPT_6_LUNA: :"gpt-6-luna"
869
948
  GPT_5_6_SOL: :"gpt-5.6-sol"
@@ -32,7 +32,9 @@ module OpenAI
32
32
  OpenAI::Models::Beta::BetaWebSearchPreviewTool::search_context_size
33
33
  ) -> OpenAI::Models::Beta::BetaWebSearchPreviewTool::search_context_size
34
34
 
35
- # The user's location.
35
+ # The approximate location of the user. If omitted or null, defaults to the United
36
+ # States. To avoid this fallback, pass `{"type": "approximate"}` without location
37
+ # fields. To localize results, provide the relevant location fields.
36
38
  attr_accessor user_location: OpenAI::Beta::BetaWebSearchPreviewTool::UserLocation?
37
39
 
38
40
  # @param type
@@ -42,7 +44,9 @@ module OpenAI
42
44
  # High level guidance for the amount of context window space to use for the
43
45
  # search. One of `low`, `medium`, or `high`. `medium` is the default.
44
46
  # @param user_location
45
- # The user's location.
47
+ # The approximate location of the user. If omitted or null, defaults to the United
48
+ # States. To avoid this fallback, pass `{"type": "approximate"}` without location
49
+ # fields. To localize results, provide the relevant location fields.
46
50
  def initialize: (
47
51
  type: OpenAI::Models::Beta::BetaWebSearchPreviewTool::type_,
48
52
  ?search_content_types: ::Array[OpenAI::Models::Beta::BetaWebSearchPreviewTool::search_content_type],
@@ -39,7 +39,9 @@ module OpenAI
39
39
  OpenAI::Models::Beta::BetaWebSearchTool::search_context_size
40
40
  ) -> OpenAI::Models::Beta::BetaWebSearchTool::search_context_size
41
41
 
42
- # The approximate location of the user.
42
+ # The approximate location of the user. If omitted or null, defaults to the United
43
+ # States. To avoid this fallback, pass `{"type": "approximate"}` without location
44
+ # fields. To localize results, provide the relevant location fields.
43
45
  attr_accessor user_location: OpenAI::Beta::BetaWebSearchTool::UserLocation?
44
46
 
45
47
  # @param type
@@ -54,7 +56,9 @@ module OpenAI
54
56
  # High level guidance for the amount of context window space to use for the
55
57
  # search. One of `low`, `medium`, or `high`. `medium` is the default.
56
58
  # @param user_location
57
- # The approximate location of the user.
59
+ # The approximate location of the user. If omitted or null, defaults to the United
60
+ # States. To avoid this fallback, pass `{"type": "approximate"}` without location
61
+ # fields. To localize results, provide the relevant location fields.
58
62
  def initialize: (
59
63
  type: OpenAI::Models::Beta::BetaWebSearchTool::type_,
60
64
  ?external_web_access: bool,
@@ -59,7 +59,7 @@ module OpenAI
59
59
  attr_accessor files: ::Array[OpenAI::Models::Beta::hosted_environment_file_param]?
60
60
 
61
61
  # Network access policy for the environment. Defaults to disabled for GA requests
62
- # and enabled for alpha/beta requests.
62
+ # and enabled for beta requests.
63
63
  attr_accessor network: OpenAI::Beta::EnvironmentParam::OpenAIHosted::Network?
64
64
 
65
65
  # Packages to install in the environment. Defaults to empty package lists.
@@ -87,7 +87,7 @@ module OpenAI
87
87
  # Files available before the agent starts. Defaults to an empty list.
88
88
  # @param network
89
89
  # Network access policy for the environment. Defaults to disabled for GA requests
90
- # and enabled for alpha/beta requests.
90
+ # and enabled for beta requests.
91
91
  # @param packages
92
92
  # Packages to install in the environment. Defaults to empty package lists.
93
93
  # @param plugins
@@ -159,6 +159,7 @@ module OpenAI
159
159
 
160
160
  type model =
161
161
  :"gpt-6-astra"
162
+ | :"gpt-6.1-sol"
162
163
  | :"gpt-6-sol"
163
164
  | :"gpt-6-luna"
164
165
  | :"gpt-5.6-sol"
@@ -274,6 +275,7 @@ module OpenAI
274
275
  def self?.variants: -> ::Array[OpenAI::Models::Beta::ResponseCompactParams::model]
275
276
 
276
277
  GPT_6_ASTRA: :"gpt-6-astra"
278
+ GPT_6_1_SOL: :"gpt-6.1-sol"
277
279
  GPT_6_SOL: :"gpt-6-sol"
278
280
  GPT_6_LUNA: :"gpt-6-luna"
279
281
  GPT_5_6_SOL: :"gpt-5.6-sol"
@@ -3,6 +3,7 @@ module OpenAI
3
3
  module Beta
4
4
  type response_create_params =
5
5
  {
6
+ ?access_programs: OpenAI::Beta::ResponseCreateParams::AccessPrograms,
6
7
  ?background: bool?,
7
8
  ?context_management: ::Array[OpenAI::Beta::ResponseCreateParams::ContextManagement]?,
8
9
  ?conversation: OpenAI::Models::Beta::ResponseCreateParams::conversation?,
@@ -42,6 +43,14 @@ module OpenAI
42
43
  extend OpenAI::Internal::Type::RequestParameters::Converter
43
44
  include OpenAI::Internal::Type::RequestParameters
44
45
 
46
+ # Domain-specific access programs to use for this request.
47
+ attr_reader access_programs: OpenAI::Beta::ResponseCreateParams::AccessPrograms?
48
+
49
+ # Domain-specific access programs to use for this request.
50
+ def access_programs=: (
51
+ OpenAI::Beta::ResponseCreateParams::AccessPrograms
52
+ ) -> OpenAI::Beta::ResponseCreateParams::AccessPrograms
53
+
45
54
  # Whether to run the model response in the background.
46
55
  # [Learn more](https://developers.openai.com/api/docs/guides/background).
47
56
  attr_accessor background: bool?
@@ -378,6 +387,8 @@ module OpenAI
378
387
  ::Array[OpenAI::Models::Beta::ResponseCreateParams::beta]
379
388
  ) -> ::Array[OpenAI::Models::Beta::ResponseCreateParams::beta]
380
389
 
390
+ # @param access_programs
391
+ # Domain-specific access programs to use for this request.
381
392
  # @param background
382
393
  # Whether to run the model response in the background.
383
394
  # [Learn more](https://developers.openai.com/api/docs/guides/background).
@@ -596,6 +607,7 @@ module OpenAI
596
607
  # similar requests and to help OpenAI detect and prevent abuse.
597
608
  # [Learn more](https://developers.openai.com/api/docs/guides/safety-best-practices#implement-safety-identifiers).
598
609
  def initialize: (
610
+ ?access_programs: OpenAI::Beta::ResponseCreateParams::AccessPrograms,
599
611
  ?background: bool?,
600
612
  ?context_management: ::Array[OpenAI::Beta::ResponseCreateParams::ContextManagement]?,
601
613
  ?conversation: OpenAI::Models::Beta::ResponseCreateParams::conversation?,
@@ -632,6 +644,7 @@ module OpenAI
632
644
  ) -> void
633
645
 
634
646
  def to_hash: -> {
647
+ ?access_programs: OpenAI::Beta::ResponseCreateParams::AccessPrograms,
635
648
  ?background: bool?,
636
649
  ?context_management: ::Array[OpenAI::Beta::ResponseCreateParams::ContextManagement]?,
637
650
  ?conversation: OpenAI::Models::Beta::ResponseCreateParams::conversation?,
@@ -667,6 +680,70 @@ module OpenAI
667
680
  ?request_options: OpenAI::RequestOptions
668
681
  }
669
682
 
683
+ type access_programs =
684
+ {
685
+ ?cyber: OpenAI::Models::Beta::ResponseCreateParams::AccessPrograms::cyber
686
+ }
687
+
688
+ class AccessPrograms < OpenAI::Internal::Type::BaseModel
689
+ # The Cyber access program to use for this request. Supported values are
690
+ # `standard`, `daybreak_blue`, and `daybreak_red`. If omitted, the API resolves
691
+ # the program from the model's Cyber tier and your organization and project
692
+ # access, subject to model-specific eligibility restrictions. By default, models
693
+ # without a Cyber tier use Standard. Blue-tier models use Daybreak Blue when
694
+ # authorized; otherwise they fall back to Standard unless the model requires
695
+ # Daybreak access. Red-tier models use Daybreak Red and require authorization.
696
+ # Requests that require unavailable Daybreak access return 403. An implicit
697
+ # Standard fallback is represented by null in the response's access_programs
698
+ # field, rather than an explicit Standard selection.
699
+ attr_reader cyber: OpenAI::Models::Beta::ResponseCreateParams::AccessPrograms::cyber?
700
+
701
+ # The Cyber access program to use for this request. Supported values are
702
+ # `standard`, `daybreak_blue`, and `daybreak_red`. If omitted, the API resolves
703
+ # the program from the model's Cyber tier and your organization and project
704
+ # access, subject to model-specific eligibility restrictions. By default, models
705
+ # without a Cyber tier use Standard. Blue-tier models use Daybreak Blue when
706
+ # authorized; otherwise they fall back to Standard unless the model requires
707
+ # Daybreak access. Red-tier models use Daybreak Red and require authorization.
708
+ # Requests that require unavailable Daybreak access return 403. An implicit
709
+ # Standard fallback is represented by null in the response's access_programs
710
+ # field, rather than an explicit Standard selection.
711
+ def cyber=: (
712
+ OpenAI::Models::Beta::ResponseCreateParams::AccessPrograms::cyber
713
+ ) -> OpenAI::Models::Beta::ResponseCreateParams::AccessPrograms::cyber
714
+
715
+ # @param cyber
716
+ # The Cyber access program to use for this request. Supported values are
717
+ # `standard`, `daybreak_blue`, and `daybreak_red`. If omitted, the API resolves
718
+ # the program from the model's Cyber tier and your organization and project
719
+ # access, subject to model-specific eligibility restrictions. By default, models
720
+ # without a Cyber tier use Standard. Blue-tier models use Daybreak Blue when
721
+ # authorized; otherwise they fall back to Standard unless the model requires
722
+ # Daybreak access. Red-tier models use Daybreak Red and require authorization.
723
+ # Requests that require unavailable Daybreak access return 403. An implicit
724
+ # Standard fallback is represented by null in the response's access_programs
725
+ # field, rather than an explicit Standard selection.
726
+ def initialize: (
727
+ ?cyber: OpenAI::Models::Beta::ResponseCreateParams::AccessPrograms::cyber
728
+ ) -> void
729
+
730
+ def to_hash: -> {
731
+ ?cyber: OpenAI::Models::Beta::ResponseCreateParams::AccessPrograms::cyber
732
+ }
733
+
734
+ type cyber = :standard | :daybreak_blue | :daybreak_red
735
+
736
+ module Cyber
737
+ extend OpenAI::Internal::Type::Enum
738
+
739
+ STANDARD: :standard
740
+ DAYBREAK_BLUE: :daybreak_blue
741
+ DAYBREAK_RED: :daybreak_red
742
+
743
+ def self?.values: -> ::Array[OpenAI::Models::Beta::ResponseCreateParams::AccessPrograms::cyber]
744
+ end
745
+ end
746
+
670
747
  type context_management = { type: String, ?compact_threshold: Integer? }
671
748
 
672
749
  class ContextManagement < OpenAI::Internal::Type::BaseModel
@@ -703,6 +780,7 @@ module OpenAI
703
780
 
704
781
  type model =
705
782
  :"gpt-6-astra"
783
+ | :"gpt-6.1-sol"
706
784
  | :"gpt-6-sol"
707
785
  | :"gpt-6-luna"
708
786
  | :"gpt-5.6-sol"
@@ -818,6 +896,7 @@ module OpenAI
818
896
  def self?.variants: -> ::Array[OpenAI::Models::Beta::ResponseCreateParams::model]
819
897
 
820
898
  GPT_6_ASTRA: :"gpt-6-astra"
899
+ GPT_6_1_SOL: :"gpt-6.1-sol"
821
900
  GPT_6_SOL: :"gpt-6-sol"
822
901
  GPT_6_LUNA: :"gpt-6-luna"
823
902
  GPT_5_6_SOL: :"gpt-5.6-sol"
@@ -33,6 +33,7 @@ module OpenAI
33
33
  | :rate_limit_exceeded
34
34
  | :server_overloaded
35
35
  | :cyber_policy
36
+ | :misalignment_policy_violation
36
37
  | :connection_failed
37
38
  | :server_error
38
39
  | :authentication_error
@@ -68,6 +69,9 @@ module OpenAI
68
69
  # The request was rejected by a safety policy.
69
70
  CYBER_POLICY: :cyber_policy
70
71
 
72
+ # The request was blocked by the safety systems.
73
+ MISALIGNMENT_POLICY_VIOLATION: :misalignment_policy_violation
74
+
71
75
  # The request could not connect to the model service.
72
76
  CONNECTION_FAILED: :connection_failed
73
77
 
@@ -2,6 +2,7 @@ module OpenAI
2
2
  module Models
3
3
  type chat_model =
4
4
  :"gpt-6-astra"
5
+ | :"gpt-6.1-sol"
5
6
  | :"gpt-6-sol"
6
7
  | :"gpt-6-luna"
7
8
  | :"gpt-5.6-sol"
@@ -94,6 +95,7 @@ module OpenAI
94
95
  extend OpenAI::Internal::Type::Enum
95
96
 
96
97
  GPT_6_ASTRA: :"gpt-6-astra"
98
+ GPT_6_1_SOL: :"gpt-6.1-sol"
97
99
  GPT_6_SOL: :"gpt-6-sol"
98
100
  GPT_6_LUNA: :"gpt-6-luna"
99
101
  GPT_5_6_SOL: :"gpt-5.6-sol"
@@ -4,6 +4,7 @@ module OpenAI
4
4
  type response =
5
5
  {
6
6
  id: String,
7
+ access_programs: OpenAI::Responses::Response::AccessPrograms?,
7
8
  created_at: Float,
8
9
  error: OpenAI::Responses::ResponseError?,
9
10
  incomplete_details: OpenAI::Responses::Response::IncompleteDetails?,
@@ -44,6 +45,8 @@ module OpenAI
44
45
  # Unique identifier for this Response.
45
46
  attr_accessor id: String
46
47
 
48
+ attr_accessor access_programs: OpenAI::Responses::Response::AccessPrograms?
49
+
47
50
  # Unix timestamp (in seconds) of when this Response was created.
48
51
  attr_accessor created_at: Float
49
52
 
@@ -515,6 +518,7 @@ module OpenAI
515
518
  # The object type of this resource - always set to `response`.
516
519
  def initialize: (
517
520
  id: String,
521
+ access_programs: OpenAI::Responses::Response::AccessPrograms?,
518
522
  created_at: Float,
519
523
  error: OpenAI::Responses::ResponseError?,
520
524
  incomplete_details: OpenAI::Responses::Response::IncompleteDetails?,
@@ -553,6 +557,7 @@ module OpenAI
553
557
 
554
558
  def to_hash: -> {
555
559
  id: String,
560
+ access_programs: OpenAI::Responses::Response::AccessPrograms?,
556
561
  created_at: Float,
557
562
  error: OpenAI::Responses::ResponseError?,
558
563
  incomplete_details: OpenAI::Responses::Response::IncompleteDetails?,
@@ -589,6 +594,36 @@ module OpenAI
589
594
  ?user: String
590
595
  }
591
596
 
597
+ type access_programs =
598
+ { cyber: OpenAI::Models::Responses::Response::AccessPrograms::cyber }
599
+
600
+ class AccessPrograms < OpenAI::Internal::Type::BaseModel
601
+ # The effective Cyber access program used for this response.
602
+ attr_accessor cyber: OpenAI::Models::Responses::Response::AccessPrograms::cyber
603
+
604
+ # @param cyber
605
+ # The effective Cyber access program used for this response.
606
+ def initialize: (
607
+ cyber: OpenAI::Models::Responses::Response::AccessPrograms::cyber
608
+ ) -> void
609
+
610
+ def to_hash: -> {
611
+ cyber: OpenAI::Models::Responses::Response::AccessPrograms::cyber
612
+ }
613
+
614
+ type cyber = :standard | :daybreak_blue | :daybreak_red
615
+
616
+ module Cyber
617
+ extend OpenAI::Internal::Type::Enum
618
+
619
+ STANDARD: :standard
620
+ DAYBREAK_BLUE: :daybreak_blue
621
+ DAYBREAK_RED: :daybreak_red
622
+
623
+ def self?.values: -> ::Array[OpenAI::Models::Responses::Response::AccessPrograms::cyber]
624
+ end
625
+ end
626
+
592
627
  type incomplete_details =
593
628
  {
594
629
  ?reason: OpenAI::Models::Responses::Response::IncompleteDetails::reason
@@ -150,6 +150,7 @@ module OpenAI
150
150
 
151
151
  type model =
152
152
  :"gpt-6-astra"
153
+ | :"gpt-6.1-sol"
153
154
  | :"gpt-6-sol"
154
155
  | :"gpt-6-luna"
155
156
  | :"gpt-5.6-sol"
@@ -265,6 +266,7 @@ module OpenAI
265
266
  def self?.variants: -> ::Array[OpenAI::Models::Responses::ResponseCompactParams::model]
266
267
 
267
268
  GPT_6_ASTRA: :"gpt-6-astra"
269
+ GPT_6_1_SOL: :"gpt-6.1-sol"
268
270
  GPT_6_SOL: :"gpt-6-sol"
269
271
  GPT_6_LUNA: :"gpt-6-luna"
270
272
  GPT_5_6_SOL: :"gpt-5.6-sol"