openai 7.16.0 → 7.18.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 (689) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/_vendor/zod-to-json-schema/Options.d.mts.map +1 -1
  3. package/_vendor/zod-to-json-schema/Options.d.ts.map +1 -1
  4. package/_vendor/zod-to-json-schema/Options.js +2 -0
  5. package/_vendor/zod-to-json-schema/Options.js.map +1 -1
  6. package/_vendor/zod-to-json-schema/Options.mjs +2 -0
  7. package/_vendor/zod-to-json-schema/Options.mjs.map +1 -1
  8. package/_vendor/zod-to-json-schema/parseDef.d.mts.map +1 -1
  9. package/_vendor/zod-to-json-schema/parseDef.d.ts.map +1 -1
  10. package/_vendor/zod-to-json-schema/parseDef.js +1 -0
  11. package/_vendor/zod-to-json-schema/parseDef.js.map +1 -1
  12. package/_vendor/zod-to-json-schema/parseDef.mjs +1 -0
  13. package/_vendor/zod-to-json-schema/parseDef.mjs.map +1 -1
  14. package/_vendor/zod-to-json-schema/parsers/bigint.d.mts.map +1 -1
  15. package/_vendor/zod-to-json-schema/parsers/bigint.d.ts.map +1 -1
  16. package/_vendor/zod-to-json-schema/parsers/bigint.js +2 -0
  17. package/_vendor/zod-to-json-schema/parsers/bigint.js.map +1 -1
  18. package/_vendor/zod-to-json-schema/parsers/bigint.mjs +2 -0
  19. package/_vendor/zod-to-json-schema/parsers/bigint.mjs.map +1 -1
  20. package/_vendor/zod-to-json-schema/parsers/literal.d.mts.map +1 -1
  21. package/_vendor/zod-to-json-schema/parsers/literal.d.ts.map +1 -1
  22. package/_vendor/zod-to-json-schema/parsers/literal.js +1 -0
  23. package/_vendor/zod-to-json-schema/parsers/literal.js.map +1 -1
  24. package/_vendor/zod-to-json-schema/parsers/literal.mjs +1 -0
  25. package/_vendor/zod-to-json-schema/parsers/literal.mjs.map +1 -1
  26. package/_vendor/zod-to-json-schema/parsers/null.d.mts.map +1 -1
  27. package/_vendor/zod-to-json-schema/parsers/null.d.ts.map +1 -1
  28. package/_vendor/zod-to-json-schema/parsers/null.js +1 -0
  29. package/_vendor/zod-to-json-schema/parsers/null.js.map +1 -1
  30. package/_vendor/zod-to-json-schema/parsers/null.mjs +1 -0
  31. package/_vendor/zod-to-json-schema/parsers/null.mjs.map +1 -1
  32. package/_vendor/zod-to-json-schema/parsers/nullable.d.mts.map +1 -1
  33. package/_vendor/zod-to-json-schema/parsers/nullable.d.ts.map +1 -1
  34. package/_vendor/zod-to-json-schema/parsers/nullable.js +4 -0
  35. package/_vendor/zod-to-json-schema/parsers/nullable.js.map +1 -1
  36. package/_vendor/zod-to-json-schema/parsers/nullable.mjs +4 -0
  37. package/_vendor/zod-to-json-schema/parsers/nullable.mjs.map +1 -1
  38. package/_vendor/zod-to-json-schema/parsers/number.d.mts.map +1 -1
  39. package/_vendor/zod-to-json-schema/parsers/number.d.ts.map +1 -1
  40. package/_vendor/zod-to-json-schema/parsers/number.js +2 -0
  41. package/_vendor/zod-to-json-schema/parsers/number.js.map +1 -1
  42. package/_vendor/zod-to-json-schema/parsers/number.mjs +2 -0
  43. package/_vendor/zod-to-json-schema/parsers/number.mjs.map +1 -1
  44. package/_vendor/zod-to-json-schema/parsers/optional.d.mts.map +1 -1
  45. package/_vendor/zod-to-json-schema/parsers/optional.d.ts.map +1 -1
  46. package/_vendor/zod-to-json-schema/parsers/optional.js +6 -7
  47. package/_vendor/zod-to-json-schema/parsers/optional.js.map +1 -1
  48. package/_vendor/zod-to-json-schema/parsers/optional.mjs +6 -7
  49. package/_vendor/zod-to-json-schema/parsers/optional.mjs.map +1 -1
  50. package/_vendor/zod-to-json-schema/parsers/record.d.mts.map +1 -1
  51. package/_vendor/zod-to-json-schema/parsers/record.d.ts.map +1 -1
  52. package/_vendor/zod-to-json-schema/parsers/record.js +2 -0
  53. package/_vendor/zod-to-json-schema/parsers/record.js.map +1 -1
  54. package/_vendor/zod-to-json-schema/parsers/record.mjs +2 -0
  55. package/_vendor/zod-to-json-schema/parsers/record.mjs.map +1 -1
  56. package/_vendor/zod-to-json-schema/parsers/string.d.mts.map +1 -1
  57. package/_vendor/zod-to-json-schema/parsers/string.d.ts.map +1 -1
  58. package/_vendor/zod-to-json-schema/parsers/string.js +1 -0
  59. package/_vendor/zod-to-json-schema/parsers/string.js.map +1 -1
  60. package/_vendor/zod-to-json-schema/parsers/string.mjs +1 -0
  61. package/_vendor/zod-to-json-schema/parsers/string.mjs.map +1 -1
  62. package/_vendor/zod-to-json-schema/parsers/union.d.mts.map +1 -1
  63. package/_vendor/zod-to-json-schema/parsers/union.d.ts.map +1 -1
  64. package/_vendor/zod-to-json-schema/parsers/union.js +3 -0
  65. package/_vendor/zod-to-json-schema/parsers/union.js.map +1 -1
  66. package/_vendor/zod-to-json-schema/parsers/union.mjs +3 -0
  67. package/_vendor/zod-to-json-schema/parsers/union.mjs.map +1 -1
  68. package/_vendor/zod-to-json-schema/util.d.mts.map +1 -1
  69. package/_vendor/zod-to-json-schema/util.d.ts.map +1 -1
  70. package/_vendor/zod-to-json-schema/util.js +1 -0
  71. package/_vendor/zod-to-json-schema/util.js.map +1 -1
  72. package/_vendor/zod-to-json-schema/util.mjs +1 -0
  73. package/_vendor/zod-to-json-schema/util.mjs.map +1 -1
  74. package/_vendor/zod-to-json-schema/zodToJsonSchema.d.mts.map +1 -1
  75. package/_vendor/zod-to-json-schema/zodToJsonSchema.d.ts.map +1 -1
  76. package/_vendor/zod-to-json-schema/zodToJsonSchema.js +2 -0
  77. package/_vendor/zod-to-json-schema/zodToJsonSchema.js.map +1 -1
  78. package/_vendor/zod-to-json-schema/zodToJsonSchema.mjs +2 -0
  79. package/_vendor/zod-to-json-schema/zodToJsonSchema.mjs.map +1 -1
  80. package/auth/subject-token-providers.d.mts.map +1 -1
  81. package/auth/subject-token-providers.d.ts.map +1 -1
  82. package/auth/subject-token-providers.js +6 -1
  83. package/auth/subject-token-providers.js.map +1 -1
  84. package/auth/subject-token-providers.mjs +6 -1
  85. package/auth/subject-token-providers.mjs.map +1 -1
  86. package/auth/workload-identity-auth.d.mts.map +1 -1
  87. package/auth/workload-identity-auth.d.ts.map +1 -1
  88. package/auth/workload-identity-auth.js +9 -0
  89. package/auth/workload-identity-auth.js.map +1 -1
  90. package/auth/workload-identity-auth.mjs +9 -0
  91. package/auth/workload-identity-auth.mjs.map +1 -1
  92. package/auth/x509-transport.d.mts.map +1 -1
  93. package/auth/x509-transport.d.ts.map +1 -1
  94. package/auth/x509-transport.js +11 -0
  95. package/auth/x509-transport.js.map +1 -1
  96. package/auth/x509-transport.mjs +11 -0
  97. package/auth/x509-transport.mjs.map +1 -1
  98. package/azure.d.mts.map +1 -1
  99. package/azure.d.ts.map +1 -1
  100. package/azure.js +3 -0
  101. package/azure.js.map +1 -1
  102. package/azure.mjs +3 -0
  103. package/azure.mjs.map +1 -1
  104. package/bedrock.d.mts.map +1 -1
  105. package/bedrock.d.ts.map +1 -1
  106. package/bedrock.js +5 -0
  107. package/bedrock.js.map +1 -1
  108. package/bedrock.mjs +5 -0
  109. package/bedrock.mjs.map +1 -1
  110. package/beta/realtime/internal-base.d.mts.map +1 -1
  111. package/beta/realtime/internal-base.d.ts.map +1 -1
  112. package/beta/realtime/internal-base.js +1 -0
  113. package/beta/realtime/internal-base.js.map +1 -1
  114. package/beta/realtime/internal-base.mjs +1 -0
  115. package/beta/realtime/internal-base.mjs.map +1 -1
  116. package/beta/realtime/websocket.d.mts.map +1 -1
  117. package/beta/realtime/websocket.d.ts.map +1 -1
  118. package/beta/realtime/websocket.js +9 -1
  119. package/beta/realtime/websocket.js.map +1 -1
  120. package/beta/realtime/websocket.mjs +9 -1
  121. package/beta/realtime/websocket.mjs.map +1 -1
  122. package/beta/realtime/ws.d.mts.map +1 -1
  123. package/beta/realtime/ws.d.ts.map +1 -1
  124. package/beta/realtime/ws.js +3 -0
  125. package/beta/realtime/ws.js.map +1 -1
  126. package/beta/realtime/ws.mjs +3 -0
  127. package/beta/realtime/ws.mjs.map +1 -1
  128. package/client.d.mts +3 -0
  129. package/client.d.mts.map +1 -1
  130. package/client.d.ts +3 -0
  131. package/client.d.ts.map +1 -1
  132. package/client.js +39 -6
  133. package/client.js.map +1 -1
  134. package/client.mjs +39 -6
  135. package/client.mjs.map +1 -1
  136. package/core/EventEmitter.d.mts.map +1 -1
  137. package/core/EventEmitter.d.ts.map +1 -1
  138. package/core/EventEmitter.js +15 -0
  139. package/core/EventEmitter.js.map +1 -1
  140. package/core/EventEmitter.mjs +15 -0
  141. package/core/EventEmitter.mjs.map +1 -1
  142. package/core/streaming.d.mts +1 -0
  143. package/core/streaming.d.mts.map +1 -1
  144. package/core/streaming.d.ts +1 -0
  145. package/core/streaming.d.ts.map +1 -1
  146. package/core/streaming.js +28 -1
  147. package/core/streaming.js.map +1 -1
  148. package/core/streaming.mjs +28 -1
  149. package/core/streaming.mjs.map +1 -1
  150. package/helpers/audio.d.mts.map +1 -1
  151. package/helpers/audio.d.ts.map +1 -1
  152. package/helpers/audio.js +2 -0
  153. package/helpers/audio.js.map +1 -1
  154. package/helpers/audio.mjs +2 -0
  155. package/helpers/audio.mjs.map +1 -1
  156. package/helpers/standard-schema.d.mts.map +1 -1
  157. package/helpers/standard-schema.d.ts.map +1 -1
  158. package/helpers/standard-schema.js +28 -18
  159. package/helpers/standard-schema.js.map +1 -1
  160. package/helpers/standard-schema.mjs +28 -18
  161. package/helpers/standard-schema.mjs.map +1 -1
  162. package/helpers/zod-v3-strict-schema.d.mts.map +1 -1
  163. package/helpers/zod-v3-strict-schema.d.ts.map +1 -1
  164. package/helpers/zod-v3-strict-schema.js +5 -0
  165. package/helpers/zod-v3-strict-schema.js.map +1 -1
  166. package/helpers/zod-v3-strict-schema.mjs +5 -0
  167. package/helpers/zod-v3-strict-schema.mjs.map +1 -1
  168. package/helpers/zod.d.mts.map +1 -1
  169. package/helpers/zod.d.ts.map +1 -1
  170. package/helpers/zod.js +16 -1
  171. package/helpers/zod.js.map +1 -1
  172. package/helpers/zod.mjs +17 -2
  173. package/helpers/zod.mjs.map +1 -1
  174. package/internal/assistant-stream-delta.d.mts.map +1 -1
  175. package/internal/assistant-stream-delta.d.ts.map +1 -1
  176. package/internal/assistant-stream-delta.js +8 -1
  177. package/internal/assistant-stream-delta.js.map +1 -1
  178. package/internal/assistant-stream-delta.mjs +8 -1
  179. package/internal/assistant-stream-delta.mjs.map +1 -1
  180. package/internal/auth/x509-credential-options.d.mts.map +1 -1
  181. package/internal/auth/x509-credential-options.d.ts.map +1 -1
  182. package/internal/auth/x509-credential-options.js +3 -0
  183. package/internal/auth/x509-credential-options.js.map +1 -1
  184. package/internal/auth/x509-credential-options.mjs +3 -0
  185. package/internal/auth/x509-credential-options.mjs.map +1 -1
  186. package/internal/auth/x509-token-exchange.d.mts.map +1 -1
  187. package/internal/auth/x509-token-exchange.d.ts.map +1 -1
  188. package/internal/auth/x509-token-exchange.js +2 -0
  189. package/internal/auth/x509-token-exchange.js.map +1 -1
  190. package/internal/auth/x509-token-exchange.mjs +2 -0
  191. package/internal/auth/x509-token-exchange.mjs.map +1 -1
  192. package/internal/auth/x509-transport-capability.d.mts.map +1 -1
  193. package/internal/auth/x509-transport-capability.d.ts.map +1 -1
  194. package/internal/auth/x509-transport-capability.js +1 -0
  195. package/internal/auth/x509-transport-capability.js.map +1 -1
  196. package/internal/auth/x509-transport-capability.mjs +1 -0
  197. package/internal/auth/x509-transport-capability.mjs.map +1 -1
  198. package/internal/auth/x509-transport-state.mjs +1 -0
  199. package/internal/auth/x509-workload-identity-auth.d.mts.map +1 -1
  200. package/internal/auth/x509-workload-identity-auth.d.ts.map +1 -1
  201. package/internal/auth/x509-workload-identity-auth.js +11 -0
  202. package/internal/auth/x509-workload-identity-auth.js.map +1 -1
  203. package/internal/auth/x509-workload-identity-auth.mjs +11 -0
  204. package/internal/auth/x509-workload-identity-auth.mjs.map +1 -1
  205. package/internal/bedrock.d.mts.map +1 -1
  206. package/internal/bedrock.d.ts.map +1 -1
  207. package/internal/bedrock.js +17 -1
  208. package/internal/bedrock.js.map +1 -1
  209. package/internal/bedrock.mjs +17 -1
  210. package/internal/bedrock.mjs.map +1 -1
  211. package/internal/decoders/line.d.mts.map +1 -1
  212. package/internal/decoders/line.d.ts.map +1 -1
  213. package/internal/decoders/line.js +1 -0
  214. package/internal/decoders/line.js.map +1 -1
  215. package/internal/decoders/line.mjs +1 -0
  216. package/internal/decoders/line.mjs.map +1 -1
  217. package/internal/parse.d.mts +1 -0
  218. package/internal/parse.d.mts.map +1 -1
  219. package/internal/parse.d.ts +1 -0
  220. package/internal/parse.d.ts.map +1 -1
  221. package/internal/parse.js.map +1 -1
  222. package/internal/parse.mjs.map +1 -1
  223. package/internal/provider.d.mts.map +1 -1
  224. package/internal/provider.d.ts.map +1 -1
  225. package/internal/provider.js +3 -0
  226. package/internal/provider.js.map +1 -1
  227. package/internal/provider.mjs +3 -0
  228. package/internal/provider.mjs.map +1 -1
  229. package/internal/qs/stringify.d.mts.map +1 -1
  230. package/internal/qs/stringify.d.ts.map +1 -1
  231. package/internal/qs/stringify.js +3 -0
  232. package/internal/qs/stringify.js.map +1 -1
  233. package/internal/qs/stringify.mjs +3 -0
  234. package/internal/qs/stringify.mjs.map +1 -1
  235. package/internal/qs/utils.d.mts.map +1 -1
  236. package/internal/qs/utils.d.ts.map +1 -1
  237. package/internal/qs/utils.js +15 -3
  238. package/internal/qs/utils.js.map +1 -1
  239. package/internal/qs/utils.mjs +15 -3
  240. package/internal/qs/utils.mjs.map +1 -1
  241. package/internal/responses/response-accumulator.d.mts.map +1 -1
  242. package/internal/responses/response-accumulator.d.ts.map +1 -1
  243. package/internal/responses/response-accumulator.js +20 -4
  244. package/internal/responses/response-accumulator.js.map +1 -1
  245. package/internal/responses/response-accumulator.mjs +20 -4
  246. package/internal/responses/response-accumulator.mjs.map +1 -1
  247. package/internal/to-file.js.map +1 -1
  248. package/internal/to-file.mjs.map +1 -1
  249. package/internal/uploads.d.mts.map +1 -1
  250. package/internal/uploads.d.ts.map +1 -1
  251. package/internal/uploads.js +10 -0
  252. package/internal/uploads.js.map +1 -1
  253. package/internal/uploads.mjs +10 -0
  254. package/internal/uploads.mjs.map +1 -1
  255. package/internal/utils/abort.d.mts.map +1 -1
  256. package/internal/utils/abort.d.ts.map +1 -1
  257. package/internal/utils/abort.js +9 -2
  258. package/internal/utils/abort.js.map +1 -1
  259. package/internal/utils/abort.mjs +9 -2
  260. package/internal/utils/abort.mjs.map +1 -1
  261. package/internal/utils/bytes.d.mts.map +1 -1
  262. package/internal/utils/bytes.d.ts.map +1 -1
  263. package/internal/utils/bytes.js +2 -0
  264. package/internal/utils/bytes.js.map +1 -1
  265. package/internal/utils/bytes.mjs +2 -0
  266. package/internal/utils/bytes.mjs.map +1 -1
  267. package/internal/utils/path.d.mts.map +1 -1
  268. package/internal/utils/path.d.ts.map +1 -1
  269. package/internal/utils/path.js +2 -0
  270. package/internal/utils/path.js.map +1 -1
  271. package/internal/utils/path.mjs +2 -0
  272. package/internal/utils/path.mjs.map +1 -1
  273. package/internal/utils/sleep.d.mts +1 -1
  274. package/internal/utils/sleep.d.mts.map +1 -1
  275. package/internal/utils/sleep.d.ts +1 -1
  276. package/internal/utils/sleep.d.ts.map +1 -1
  277. package/internal/utils/sleep.js +51 -1
  278. package/internal/utils/sleep.js.map +1 -1
  279. package/internal/utils/sleep.mjs +51 -1
  280. package/internal/utils/sleep.mjs.map +1 -1
  281. package/internal/ws-adapter-browser.d.mts.map +1 -1
  282. package/internal/ws-adapter-browser.d.ts.map +1 -1
  283. package/internal/ws-adapter-browser.js +2 -0
  284. package/internal/ws-adapter-browser.js.map +1 -1
  285. package/internal/ws-adapter-browser.mjs +2 -0
  286. package/internal/ws-adapter-browser.mjs.map +1 -1
  287. package/internal/ws.d.mts +16 -0
  288. package/internal/ws.d.mts.map +1 -1
  289. package/internal/ws.d.ts +16 -0
  290. package/internal/ws.d.ts.map +1 -1
  291. package/internal/ws.js +71 -5
  292. package/internal/ws.js.map +1 -1
  293. package/internal/ws.mjs +68 -6
  294. package/internal/ws.mjs.map +1 -1
  295. package/lib/AbstractChatCompletionRunner.d.mts.map +1 -1
  296. package/lib/AbstractChatCompletionRunner.d.ts.map +1 -1
  297. package/lib/AbstractChatCompletionRunner.js +41 -16
  298. package/lib/AbstractChatCompletionRunner.js.map +1 -1
  299. package/lib/AbstractChatCompletionRunner.mjs +42 -17
  300. package/lib/AbstractChatCompletionRunner.mjs.map +1 -1
  301. package/lib/AssistantStream.d.mts.map +1 -1
  302. package/lib/AssistantStream.d.ts.map +1 -1
  303. package/lib/AssistantStream.js +19 -5
  304. package/lib/AssistantStream.js.map +1 -1
  305. package/lib/AssistantStream.mjs +20 -6
  306. package/lib/AssistantStream.mjs.map +1 -1
  307. package/lib/ChatCompletionRunner.d.mts.map +1 -1
  308. package/lib/ChatCompletionRunner.d.ts.map +1 -1
  309. package/lib/ChatCompletionRunner.js +1 -0
  310. package/lib/ChatCompletionRunner.js.map +1 -1
  311. package/lib/ChatCompletionRunner.mjs +1 -0
  312. package/lib/ChatCompletionRunner.mjs.map +1 -1
  313. package/lib/ChatCompletionStream.d.mts +6 -1
  314. package/lib/ChatCompletionStream.d.mts.map +1 -1
  315. package/lib/ChatCompletionStream.d.ts +6 -1
  316. package/lib/ChatCompletionStream.d.ts.map +1 -1
  317. package/lib/ChatCompletionStream.js +63 -7
  318. package/lib/ChatCompletionStream.js.map +1 -1
  319. package/lib/ChatCompletionStream.mjs +64 -8
  320. package/lib/ChatCompletionStream.mjs.map +1 -1
  321. package/lib/EventEmitter.d.mts.map +1 -1
  322. package/lib/EventEmitter.d.ts.map +1 -1
  323. package/lib/EventEmitter.js +15 -0
  324. package/lib/EventEmitter.js.map +1 -1
  325. package/lib/EventEmitter.mjs +15 -0
  326. package/lib/EventEmitter.mjs.map +1 -1
  327. package/lib/EventStream.d.mts +2 -0
  328. package/lib/EventStream.d.mts.map +1 -1
  329. package/lib/EventStream.d.ts +2 -0
  330. package/lib/EventStream.d.ts.map +1 -1
  331. package/lib/EventStream.js +111 -14
  332. package/lib/EventStream.js.map +1 -1
  333. package/lib/EventStream.mjs +111 -14
  334. package/lib/EventStream.mjs.map +1 -1
  335. package/lib/ResponsesParser.d.mts.map +1 -1
  336. package/lib/ResponsesParser.d.ts.map +1 -1
  337. package/lib/ResponsesParser.js +4 -0
  338. package/lib/ResponsesParser.js.map +1 -1
  339. package/lib/ResponsesParser.mjs +4 -0
  340. package/lib/ResponsesParser.mjs.map +1 -1
  341. package/lib/RunnableFunction.d.mts.map +1 -1
  342. package/lib/RunnableFunction.d.ts.map +1 -1
  343. package/lib/RunnableFunction.js.map +1 -1
  344. package/lib/RunnableFunction.mjs.map +1 -1
  345. package/lib/agents/agent-session-stream.d.mts.map +1 -1
  346. package/lib/agents/agent-session-stream.d.ts.map +1 -1
  347. package/lib/agents/agent-session-stream.js +5 -2
  348. package/lib/agents/agent-session-stream.js.map +1 -1
  349. package/lib/agents/agent-session-stream.mjs +5 -2
  350. package/lib/agents/agent-session-stream.mjs.map +1 -1
  351. package/lib/embeddings.d.mts.map +1 -1
  352. package/lib/embeddings.d.ts.map +1 -1
  353. package/lib/embeddings.js +2 -0
  354. package/lib/embeddings.js.map +1 -1
  355. package/lib/embeddings.mjs +2 -0
  356. package/lib/embeddings.mjs.map +1 -1
  357. package/lib/live/transcript-grouper.d.mts.map +1 -1
  358. package/lib/live/transcript-grouper.d.ts.map +1 -1
  359. package/lib/live/transcript-grouper.js +8 -2
  360. package/lib/live/transcript-grouper.js.map +1 -1
  361. package/lib/live/transcript-grouper.mjs +8 -2
  362. package/lib/live/transcript-grouper.mjs.map +1 -1
  363. package/lib/parser.d.mts.map +1 -1
  364. package/lib/parser.d.ts.map +1 -1
  365. package/lib/parser.js +13 -0
  366. package/lib/parser.js.map +1 -1
  367. package/lib/parser.mjs +13 -0
  368. package/lib/parser.mjs.map +1 -1
  369. package/lib/responses/ResponseInputItems.d.mts.map +1 -1
  370. package/lib/responses/ResponseInputItems.d.ts.map +1 -1
  371. package/lib/responses/ResponseInputItems.js +11 -0
  372. package/lib/responses/ResponseInputItems.js.map +1 -1
  373. package/lib/responses/ResponseInputItems.mjs +11 -0
  374. package/lib/responses/ResponseInputItems.mjs.map +1 -1
  375. package/lib/responses/ResponseStream.d.mts.map +1 -1
  376. package/lib/responses/ResponseStream.d.ts.map +1 -1
  377. package/lib/responses/ResponseStream.js +7 -3
  378. package/lib/responses/ResponseStream.js.map +1 -1
  379. package/lib/responses/ResponseStream.mjs +8 -4
  380. package/lib/responses/ResponseStream.mjs.map +1 -1
  381. package/lib/responses/responses-websocket-lane.d.mts +63 -0
  382. package/lib/responses/responses-websocket-lane.d.mts.map +1 -0
  383. package/lib/responses/responses-websocket-lane.d.ts +63 -0
  384. package/lib/responses/responses-websocket-lane.d.ts.map +1 -0
  385. package/lib/responses/responses-websocket-lane.js +314 -0
  386. package/lib/responses/responses-websocket-lane.js.map +1 -0
  387. package/lib/responses/responses-websocket-lane.mjs +309 -0
  388. package/lib/responses/responses-websocket-lane.mjs.map +1 -0
  389. package/lib/responses/responses-websocket-session.d.mts +38 -0
  390. package/lib/responses/responses-websocket-session.d.mts.map +1 -0
  391. package/lib/responses/responses-websocket-session.d.ts +38 -0
  392. package/lib/responses/responses-websocket-session.d.ts.map +1 -0
  393. package/lib/responses/responses-websocket-session.js +268 -0
  394. package/lib/responses/responses-websocket-session.js.map +1 -0
  395. package/lib/responses/responses-websocket-session.mjs +263 -0
  396. package/lib/responses/responses-websocket-session.mjs.map +1 -0
  397. package/lib/transform.d.mts.map +1 -1
  398. package/lib/transform.d.ts.map +1 -1
  399. package/lib/transform.js +69 -33
  400. package/lib/transform.js.map +1 -1
  401. package/lib/transform.mjs +69 -33
  402. package/lib/transform.mjs.map +1 -1
  403. package/lib/webrtc/connection.d.mts.map +1 -1
  404. package/lib/webrtc/connection.d.ts.map +1 -1
  405. package/lib/webrtc/connection.js +6 -1
  406. package/lib/webrtc/connection.js.map +1 -1
  407. package/lib/webrtc/connection.mjs +6 -1
  408. package/lib/webrtc/connection.mjs.map +1 -1
  409. package/lib/webrtc/data-channel.d.mts.map +1 -1
  410. package/lib/webrtc/data-channel.d.ts.map +1 -1
  411. package/lib/webrtc/data-channel.js +9 -1
  412. package/lib/webrtc/data-channel.js.map +1 -1
  413. package/lib/webrtc/data-channel.mjs +9 -1
  414. package/lib/webrtc/data-channel.mjs.map +1 -1
  415. package/lib/webrtc/subscriptions.d.mts.map +1 -1
  416. package/lib/webrtc/subscriptions.d.ts.map +1 -1
  417. package/lib/webrtc/subscriptions.js +2 -0
  418. package/lib/webrtc/subscriptions.js.map +1 -1
  419. package/lib/webrtc/subscriptions.mjs +2 -0
  420. package/lib/webrtc/subscriptions.mjs.map +1 -1
  421. package/lib/webrtc/types.d.mts.map +1 -1
  422. package/lib/webrtc/types.d.ts.map +1 -1
  423. package/package.json +1 -1
  424. package/providers/bedrock/aws.d.mts.map +1 -1
  425. package/providers/bedrock/aws.d.ts.map +1 -1
  426. package/providers/bedrock/aws.js +4 -0
  427. package/providers/bedrock/aws.js.map +1 -1
  428. package/providers/bedrock/aws.mjs +4 -0
  429. package/providers/bedrock/aws.mjs.map +1 -1
  430. package/realtime/internal-base.d.mts.map +1 -1
  431. package/realtime/internal-base.d.ts.map +1 -1
  432. package/realtime/internal-base.js +1 -0
  433. package/realtime/internal-base.js.map +1 -1
  434. package/realtime/internal-base.mjs +1 -0
  435. package/realtime/internal-base.mjs.map +1 -1
  436. package/realtime/websocket.d.mts.map +1 -1
  437. package/realtime/websocket.d.ts.map +1 -1
  438. package/realtime/websocket.js +9 -1
  439. package/realtime/websocket.js.map +1 -1
  440. package/realtime/websocket.mjs +9 -1
  441. package/realtime/websocket.mjs.map +1 -1
  442. package/realtime/ws.d.mts.map +1 -1
  443. package/realtime/ws.d.ts.map +1 -1
  444. package/realtime/ws.js +3 -0
  445. package/realtime/ws.js.map +1 -1
  446. package/realtime/ws.mjs +3 -0
  447. package/realtime/ws.mjs.map +1 -1
  448. package/resources/beta/agents/agents.d.mts +2 -1
  449. package/resources/beta/agents/agents.d.mts.map +1 -1
  450. package/resources/beta/agents/agents.d.ts +2 -1
  451. package/resources/beta/agents/agents.d.ts.map +1 -1
  452. package/resources/beta/agents/agents.js.map +1 -1
  453. package/resources/beta/agents/agents.mjs.map +1 -1
  454. package/resources/beta/agents/sessions/sessions.d.mts +42 -1
  455. package/resources/beta/agents/sessions/sessions.d.mts.map +1 -1
  456. package/resources/beta/agents/sessions/sessions.d.ts +42 -1
  457. package/resources/beta/agents/sessions/sessions.d.ts.map +1 -1
  458. package/resources/beta/agents/sessions/sessions.js +2 -1
  459. package/resources/beta/agents/sessions/sessions.js.map +1 -1
  460. package/resources/beta/agents/sessions/sessions.mjs +2 -1
  461. package/resources/beta/agents/sessions/sessions.mjs.map +1 -1
  462. package/resources/beta/beta.d.mts +2 -2
  463. package/resources/beta/beta.d.mts.map +1 -1
  464. package/resources/beta/beta.d.ts +2 -2
  465. package/resources/beta/beta.d.ts.map +1 -1
  466. package/resources/beta/beta.js.map +1 -1
  467. package/resources/beta/beta.mjs.map +1 -1
  468. package/resources/beta/index.d.mts +1 -1
  469. package/resources/beta/index.d.mts.map +1 -1
  470. package/resources/beta/index.d.ts +1 -1
  471. package/resources/beta/index.d.ts.map +1 -1
  472. package/resources/beta/index.js.map +1 -1
  473. package/resources/beta/index.mjs.map +1 -1
  474. package/resources/beta/responses/index.d.mts +1 -1
  475. package/resources/beta/responses/index.d.mts.map +1 -1
  476. package/resources/beta/responses/index.d.ts +1 -1
  477. package/resources/beta/responses/index.d.ts.map +1 -1
  478. package/resources/beta/responses/index.js.map +1 -1
  479. package/resources/beta/responses/index.mjs.map +1 -1
  480. package/resources/beta/responses/internal-base.d.mts +3 -0
  481. package/resources/beta/responses/internal-base.d.mts.map +1 -1
  482. package/resources/beta/responses/internal-base.d.ts +3 -0
  483. package/resources/beta/responses/internal-base.d.ts.map +1 -1
  484. package/resources/beta/responses/internal-base.js +21 -12
  485. package/resources/beta/responses/internal-base.js.map +1 -1
  486. package/resources/beta/responses/internal-base.mjs +21 -12
  487. package/resources/beta/responses/internal-base.mjs.map +1 -1
  488. package/resources/beta/responses/responses.d.mts +65 -7
  489. package/resources/beta/responses/responses.d.mts.map +1 -1
  490. package/resources/beta/responses/responses.d.ts +65 -7
  491. package/resources/beta/responses/responses.d.ts.map +1 -1
  492. package/resources/beta/responses/responses.js.map +1 -1
  493. package/resources/beta/responses/responses.mjs.map +1 -1
  494. package/resources/beta/responses/ws-base.d.mts +9 -1
  495. package/resources/beta/responses/ws-base.d.mts.map +1 -1
  496. package/resources/beta/responses/ws-base.d.ts +9 -1
  497. package/resources/beta/responses/ws-base.d.ts.map +1 -1
  498. package/resources/beta/responses/ws-base.js +24 -5
  499. package/resources/beta/responses/ws-base.js.map +1 -1
  500. package/resources/beta/responses/ws-base.mjs +23 -6
  501. package/resources/beta/responses/ws-base.mjs.map +1 -1
  502. package/resources/beta/responses/ws.d.mts +2 -0
  503. package/resources/beta/responses/ws.d.mts.map +1 -1
  504. package/resources/beta/responses/ws.d.ts +2 -0
  505. package/resources/beta/responses/ws.d.ts.map +1 -1
  506. package/resources/beta/responses/ws.js +21 -8
  507. package/resources/beta/responses/ws.js.map +1 -1
  508. package/resources/beta/responses/ws.mjs +21 -8
  509. package/resources/beta/responses/ws.mjs.map +1 -1
  510. package/resources/live/forks/internal-base.d.mts +3 -0
  511. package/resources/live/forks/internal-base.d.mts.map +1 -1
  512. package/resources/live/forks/internal-base.d.ts +3 -0
  513. package/resources/live/forks/internal-base.d.ts.map +1 -1
  514. package/resources/live/forks/internal-base.js +21 -5
  515. package/resources/live/forks/internal-base.js.map +1 -1
  516. package/resources/live/forks/internal-base.mjs +21 -5
  517. package/resources/live/forks/internal-base.mjs.map +1 -1
  518. package/resources/live/forks/ws.d.mts.map +1 -1
  519. package/resources/live/forks/ws.d.ts.map +1 -1
  520. package/resources/live/forks/ws.js +2 -4
  521. package/resources/live/forks/ws.js.map +1 -1
  522. package/resources/live/forks/ws.mjs +2 -4
  523. package/resources/live/forks/ws.mjs.map +1 -1
  524. package/resources/live/internal-base.d.mts +3 -0
  525. package/resources/live/internal-base.d.mts.map +1 -1
  526. package/resources/live/internal-base.d.ts +3 -0
  527. package/resources/live/internal-base.d.ts.map +1 -1
  528. package/resources/live/internal-base.js +21 -5
  529. package/resources/live/internal-base.js.map +1 -1
  530. package/resources/live/internal-base.mjs +21 -5
  531. package/resources/live/internal-base.mjs.map +1 -1
  532. package/resources/live/sideband/internal-base.d.mts +3 -0
  533. package/resources/live/sideband/internal-base.d.mts.map +1 -1
  534. package/resources/live/sideband/internal-base.d.ts +3 -0
  535. package/resources/live/sideband/internal-base.d.ts.map +1 -1
  536. package/resources/live/sideband/internal-base.js +21 -5
  537. package/resources/live/sideband/internal-base.js.map +1 -1
  538. package/resources/live/sideband/internal-base.mjs +21 -5
  539. package/resources/live/sideband/internal-base.mjs.map +1 -1
  540. package/resources/live/sideband/ws.d.mts.map +1 -1
  541. package/resources/live/sideband/ws.d.ts.map +1 -1
  542. package/resources/live/sideband/ws.js +2 -4
  543. package/resources/live/sideband/ws.js.map +1 -1
  544. package/resources/live/sideband/ws.mjs +2 -4
  545. package/resources/live/sideband/ws.mjs.map +1 -1
  546. package/resources/live/ws.d.mts.map +1 -1
  547. package/resources/live/ws.d.ts.map +1 -1
  548. package/resources/live/ws.js +2 -4
  549. package/resources/live/ws.js.map +1 -1
  550. package/resources/live/ws.mjs +2 -4
  551. package/resources/live/ws.mjs.map +1 -1
  552. package/resources/responses/internal-base.d.mts +3 -0
  553. package/resources/responses/internal-base.d.mts.map +1 -1
  554. package/resources/responses/internal-base.d.ts +3 -0
  555. package/resources/responses/internal-base.d.ts.map +1 -1
  556. package/resources/responses/internal-base.js +21 -12
  557. package/resources/responses/internal-base.js.map +1 -1
  558. package/resources/responses/internal-base.mjs +21 -12
  559. package/resources/responses/internal-base.mjs.map +1 -1
  560. package/resources/responses/responses.d.mts +47 -4
  561. package/resources/responses/responses.d.mts.map +1 -1
  562. package/resources/responses/responses.d.ts +47 -4
  563. package/resources/responses/responses.d.ts.map +1 -1
  564. package/resources/responses/responses.js.map +1 -1
  565. package/resources/responses/responses.mjs.map +1 -1
  566. package/resources/responses/ws-base.d.mts +11 -1
  567. package/resources/responses/ws-base.d.mts.map +1 -1
  568. package/resources/responses/ws-base.d.ts +11 -1
  569. package/resources/responses/ws-base.d.ts.map +1 -1
  570. package/resources/responses/ws-base.js +29 -8
  571. package/resources/responses/ws-base.js.map +1 -1
  572. package/resources/responses/ws-base.mjs +28 -9
  573. package/resources/responses/ws-base.mjs.map +1 -1
  574. package/resources/responses/ws.d.mts +2 -0
  575. package/resources/responses/ws.d.mts.map +1 -1
  576. package/resources/responses/ws.d.ts +2 -0
  577. package/resources/responses/ws.d.ts.map +1 -1
  578. package/resources/responses/ws.js +21 -8
  579. package/resources/responses/ws.js.map +1 -1
  580. package/resources/responses/ws.mjs +21 -8
  581. package/resources/responses/ws.mjs.map +1 -1
  582. package/resources/shared.d.mts +1 -1
  583. package/resources/shared.d.mts.map +1 -1
  584. package/resources/shared.d.ts +1 -1
  585. package/resources/shared.d.ts.map +1 -1
  586. package/resources/webhooks/webhooks.d.mts +3 -4
  587. package/resources/webhooks/webhooks.d.mts.map +1 -1
  588. package/resources/webhooks/webhooks.d.ts +3 -4
  589. package/resources/webhooks/webhooks.d.ts.map +1 -1
  590. package/src/_vendor/zod-to-json-schema/Options.ts +2 -0
  591. package/src/_vendor/zod-to-json-schema/parseDef.ts +1 -0
  592. package/src/_vendor/zod-to-json-schema/parsers/bigint.ts +2 -0
  593. package/src/_vendor/zod-to-json-schema/parsers/literal.ts +1 -0
  594. package/src/_vendor/zod-to-json-schema/parsers/null.ts +1 -0
  595. package/src/_vendor/zod-to-json-schema/parsers/nullable.ts +4 -0
  596. package/src/_vendor/zod-to-json-schema/parsers/number.ts +2 -0
  597. package/src/_vendor/zod-to-json-schema/parsers/optional.ts +6 -7
  598. package/src/_vendor/zod-to-json-schema/parsers/record.ts +2 -0
  599. package/src/_vendor/zod-to-json-schema/parsers/string.ts +1 -0
  600. package/src/_vendor/zod-to-json-schema/parsers/union.ts +3 -0
  601. package/src/_vendor/zod-to-json-schema/util.ts +1 -0
  602. package/src/_vendor/zod-to-json-schema/zodToJsonSchema.ts +3 -1
  603. package/src/auth/subject-token-providers.ts +6 -1
  604. package/src/auth/workload-identity-auth.ts +10 -1
  605. package/src/auth/x509-transport.ts +13 -2
  606. package/src/azure.ts +3 -0
  607. package/src/bedrock.ts +5 -0
  608. package/src/beta/realtime/internal-base.ts +2 -0
  609. package/src/beta/realtime/websocket.ts +11 -1
  610. package/src/beta/realtime/ws.ts +3 -0
  611. package/src/client.ts +50 -3
  612. package/src/core/EventEmitter.ts +15 -0
  613. package/src/core/streaming.ts +30 -2
  614. package/src/helpers/audio.ts +2 -0
  615. package/src/helpers/standard-schema.ts +31 -19
  616. package/src/helpers/zod-v3-strict-schema.ts +8 -2
  617. package/src/helpers/zod.ts +32 -13
  618. package/src/internal/assistant-stream-delta.ts +7 -1
  619. package/src/internal/auth/x509-credential-options.ts +3 -0
  620. package/src/internal/auth/x509-token-exchange.ts +10 -1
  621. package/src/internal/auth/x509-transport-capability.ts +2 -1
  622. package/src/internal/auth/x509-workload-identity-auth.ts +13 -8
  623. package/src/internal/bedrock.ts +15 -0
  624. package/src/internal/decoders/line.ts +1 -0
  625. package/src/internal/parse.ts +1 -0
  626. package/src/internal/provider.ts +3 -0
  627. package/src/internal/qs/stringify.ts +3 -0
  628. package/src/internal/qs/utils.ts +14 -3
  629. package/src/internal/responses/response-accumulator.ts +34 -4
  630. package/src/internal/to-file.ts +1 -1
  631. package/src/internal/uploads.ts +11 -1
  632. package/src/internal/utils/abort.ts +7 -2
  633. package/src/internal/utils/bytes.ts +2 -0
  634. package/src/internal/utils/path.ts +2 -0
  635. package/src/internal/utils/sleep.ts +52 -1
  636. package/src/internal/ws-adapter-browser.ts +2 -0
  637. package/src/internal/ws.ts +80 -6
  638. package/src/lib/AbstractChatCompletionRunner.ts +40 -17
  639. package/src/lib/AssistantStream.ts +31 -20
  640. package/src/lib/ChatCompletionRunner.ts +1 -0
  641. package/src/lib/ChatCompletionStream.ts +81 -14
  642. package/src/lib/EventEmitter.ts +15 -0
  643. package/src/lib/EventStream.ts +93 -3
  644. package/src/lib/ResponsesParser.ts +5 -0
  645. package/src/lib/RunnableFunction.ts +4 -1
  646. package/src/lib/agents/agent-session-stream.ts +5 -3
  647. package/src/lib/embeddings.ts +3 -1
  648. package/src/lib/live/transcript-grouper.ts +4 -0
  649. package/src/lib/parser.ts +16 -2
  650. package/src/lib/responses/ResponseInputItems.ts +11 -0
  651. package/src/lib/responses/ResponseStream.ts +6 -3
  652. package/src/lib/responses/responses-websocket-lane.ts +388 -0
  653. package/src/lib/responses/responses-websocket-session.ts +317 -0
  654. package/src/lib/transform.ts +70 -35
  655. package/src/lib/webrtc/connection.ts +5 -1
  656. package/src/lib/webrtc/data-channel.ts +7 -0
  657. package/src/lib/webrtc/subscriptions.ts +3 -0
  658. package/src/lib/webrtc/types.ts +1 -0
  659. package/src/providers/bedrock/aws.ts +5 -1
  660. package/src/realtime/internal-base.ts +2 -0
  661. package/src/realtime/websocket.ts +11 -1
  662. package/src/realtime/ws.ts +3 -0
  663. package/src/resources/beta/agents/agents.ts +2 -0
  664. package/src/resources/beta/agents/sessions/sessions.ts +47 -1
  665. package/src/resources/beta/beta.ts +2 -0
  666. package/src/resources/beta/index.ts +1 -0
  667. package/src/resources/beta/responses/index.ts +1 -0
  668. package/src/resources/beta/responses/internal-base.ts +24 -11
  669. package/src/resources/beta/responses/responses.ts +82 -4
  670. package/src/resources/beta/responses/ws-base.ts +31 -6
  671. package/src/resources/beta/responses/ws.ts +29 -11
  672. package/src/resources/live/forks/internal-base.ts +24 -5
  673. package/src/resources/live/forks/ws.ts +4 -5
  674. package/src/resources/live/internal-base.ts +24 -5
  675. package/src/resources/live/sideband/internal-base.ts +24 -5
  676. package/src/resources/live/sideband/ws.ts +4 -5
  677. package/src/resources/live/ws.ts +4 -5
  678. package/src/resources/responses/api.md +1 -0
  679. package/src/resources/responses/internal-base.ts +24 -11
  680. package/src/resources/responses/responses.ts +56 -1
  681. package/src/resources/responses/ws-base.ts +36 -9
  682. package/src/resources/responses/ws.ts +29 -11
  683. package/src/resources/shared.ts +4 -2
  684. package/src/resources/webhooks/webhooks.ts +3 -4
  685. package/src/version.ts +1 -1
  686. package/version.d.mts +1 -1
  687. package/version.d.ts +1 -1
  688. package/version.js +1 -1
  689. package/version.mjs +1 -1
@@ -16,7 +16,7 @@ import type { ResponseFormatTextJSONSchemaConfig } from '../resources/responses/
16
16
  import type { RealtimeFunctionTool } from '../resources/realtime/realtime';
17
17
  import { forEachJSONSchemaChild, toStrictJsonSchema } from '../lib/transform';
18
18
  import type { JSONSchema } from '../lib/jsonschema';
19
- import { hasOwn } from '../internal/utils/values';
19
+ import { hasOwn, isObj } from '../internal/utils/values';
20
20
  import { assertJSONSerializableSchema, assertSupportedZodV3Schema } from './zod-v3-strict-schema';
21
21
 
22
22
  type ZodV4Schema = z4.ZodType | z4Mini.ZodMiniType;
@@ -39,6 +39,7 @@ type ZodTypeLike = (
39
39
  }
40
40
  ) & {
41
41
  /** Synchronous schema parser when the validator exposes an instance-level parse method. */
42
+ // oxlint-disable-next-line anti-slop/no-unknown-returns -- The public schema adapter accepts arbitrary validated outputs and derives their concrete type separately. Zod parsers and their recursive metadata accept untrusted values before schema validation.
42
43
  parse?: (data: unknown) => unknown;
43
44
  };
44
45
 
@@ -97,11 +98,12 @@ function escapeSchemaDefinitionRefs<T extends object>(
97
98
 
98
99
  const visited = new Set<object>();
99
100
  const visit = (value: unknown): void => {
100
- if (!value || typeof value !== 'object' || Array.isArray(value) || visited.has(value)) {
101
+ if (!isObj(value) || visited.has(value)) {
101
102
  return;
102
103
  }
103
104
 
104
105
  visited.add(value);
106
+ // SAFETY: The traversal has excluded primitives, null, arrays, and previously visited objects; schema property values remain unknown for validation.
105
107
  const record = value as Record<string, unknown>;
106
108
  const ref = record['$ref'];
107
109
  if (typeof ref === 'string') {
@@ -134,8 +136,10 @@ function zodV3ToJsonSchema(
134
136
  schema: z3.ZodType,
135
137
  options: { name: string; schemaDefinitions?: ZodSchemaDefinitions | undefined },
136
138
  ): Record<string, unknown> {
139
+ // SAFETY: This is the Zod v3 conversion path; assertSupportedZodV3Schema verifies the root and named definitions before conversion.
137
140
  assertSupportedZodV3Schema(schema, options.schemaDefinitions as Record<string, z3.ZodType> | undefined);
138
141
  const rootName = getZodV3RootName(options.name, options.schemaDefinitions);
142
+ // SAFETY: This is the Zod v3 conversion path; assertSupportedZodV3Schema verifies the root and named definitions before conversion.
139
143
  const jsonSchema = _zodToJsonSchema(schema, {
140
144
  openaiStrictMode: true,
141
145
  name: rootName,
@@ -143,7 +147,7 @@ function zodV3ToJsonSchema(
143
147
  $refStrategy: 'extract-to-root',
144
148
  nullableStrategy: 'property',
145
149
  ...(options.schemaDefinitions
146
- ? { definitions: options.schemaDefinitions as unknown as Record<string, z3.ZodType> }
150
+ ? { definitions: options.schemaDefinitions as Record<string, z3.ZodType> }
147
151
  : undefined),
148
152
  });
149
153
 
@@ -159,15 +163,17 @@ function zodV4ToJsonSchema(
159
163
  schema: ZodV4Schema,
160
164
  options: { schemaDefinitions?: ZodSchemaDefinitions | undefined } = {},
161
165
  ): Record<string, unknown> {
162
- const metadata = options.schemaDefinitions ? z4.registry<Record<string, unknown>>() : undefined;
166
+ const metadata = options.schemaDefinitions ? z4.registry<{ id: string }>() : undefined;
163
167
  const definitionNames = new Map<string, string>();
164
168
  for (const [name, definition] of Object.entries(options.schemaDefinitions ?? {})) {
165
169
  // Avoid `/` and `~` so Zod versions that escape JSON Pointer tokens emit the same IDs.
166
170
  const id = encodeURIComponent(name).replace(/~/g, '%7E');
167
171
  definitionNames.set(id, name);
168
- metadata?.add(definition as unknown as z4.ZodType, { id });
172
+ // SAFETY: The Zod v4 conversion path registers these definitions with the v4 metadata registry before toJSONSchema uses them.
173
+ metadata?.add(definition as z4.ZodType, { id });
169
174
  }
170
175
 
176
+ // SAFETY: The v4 schema converter produces JSON Schema; the following normalization checks and rewrites its schema records.
171
177
  const jsonSchema = z4.toJSONSchema(schema, {
172
178
  target: 'draft-7',
173
179
  ...(metadata ? { metadata } : undefined),
@@ -208,6 +214,7 @@ function zodV4ToJsonSchema(
208
214
  );
209
215
  }
210
216
 
217
+ // SAFETY: Strict conversion returns the normalized object schema; the record view exposes keywords without trusting arbitrary values.
211
218
  return toStrictJsonSchema(escapedSchema) as Record<string, unknown>;
212
219
  }
213
220
 
@@ -221,6 +228,7 @@ function zodV3ToNonStrictJsonSchema(schema: z3.ZodType, options: { name: string
221
228
  }
222
229
 
223
230
  function zodV4ToNonStrictJsonSchema(schema: ZodV4Schema): Record<string, unknown> {
231
+ // SAFETY: Zod v4 owns this JSON Schema output; the record return preserves arbitrary supported keyword properties.
224
232
  return z4.toJSONSchema(schema, {
225
233
  target: 'draft-7',
226
234
  io: 'input',
@@ -236,17 +244,20 @@ function parseZodObject<ZodInput extends ZodTypeLike>(
236
244
  content: string,
237
245
  ): InferZodType<ZodInput> {
238
246
  const parsed = parseResponseFormatContent({ type: 'json_schema', $parseRaw: undefined }, content);
239
- const parser = (zodObject as { parse?: (data: unknown) => unknown }).parse;
247
+ const parser = zodObject.parse;
240
248
 
241
249
  if (typeof parser === 'function') {
250
+ // SAFETY: The schema's parse method is invoked with its original receiver and owns the inferred output type.
242
251
  const result = parser.call(zodObject, parsed) as InferZodType<ZodInput>;
243
- if (!isZodV4(zodObject as unknown as ZodSchema)) {
252
+ // SAFETY: This read only identifies the supported Zod version before applying its corresponding serialization checks.
253
+ if (!isZodV4(zodObject as ZodSchema)) {
244
254
  assertJSONSerializableSchema(result);
245
255
  }
246
256
  return result;
247
257
  }
248
258
 
249
- return z4.parse(zodObject as unknown as ZodV4Schema, parsed) as InferZodType<ZodInput>;
259
+ // SAFETY: Schemas without a parse method use the supported Zod v4 core parser, which validates the input and supplies the inferred output.
260
+ return z4.parse(zodObject as ZodV4Schema, parsed) as InferZodType<ZodInput>;
250
261
  }
251
262
 
252
263
  /**
@@ -297,7 +308,8 @@ export function zodResponseFormat<ZodInput extends ZodTypeLike>(
297
308
  name: string,
298
309
  props?: ZodResponseFormatProps,
299
310
  ): AutoParseableResponseFormat<InferZodType<ZodInput>> {
300
- const zodSchema = zodObject as unknown as ZodSchema;
311
+ // SAFETY: The public structural Zod input is dispatched by version below; each version-specific converter validates its supported schema contract.
312
+ const zodSchema = zodObject as ZodSchema;
301
313
  const { schemaDefinitions, ...responseFormatProps } = props ?? {};
302
314
  validateSchemaDefinitions(schemaDefinitions);
303
315
 
@@ -343,7 +355,8 @@ export function zodTextFormat<ZodInput extends ZodTypeLike>(
343
355
  name: string,
344
356
  props?: Omit<ResponseFormatTextJSONSchemaConfig, 'schema' | 'type' | 'strict' | 'name'>,
345
357
  ): AutoParseableTextFormat<InferZodType<ZodInput>> {
346
- const zodSchema = zodObject as unknown as ZodSchema;
358
+ // SAFETY: The public structural Zod input is dispatched by version below; each version-specific converter validates its supported schema contract.
359
+ const zodSchema = zodObject as ZodSchema;
347
360
 
348
361
  return makeParseableTextFormat<InferZodType<ZodInput>>(
349
362
  {
@@ -366,6 +379,7 @@ interface ZodFunctionOptions<Parameters extends ZodTypeLike> {
366
379
  parameters: Parameters;
367
380
 
368
381
  /** Optional callback invoked with validated arguments by chat `runTools()`. */
382
+ // oxlint-disable-next-line anti-slop/no-unknown-returns -- Public tool callbacks may return arbitrary application values; preserve the published callback contract.
369
383
  function?: ((args: InferZodType<Parameters>) => unknown | Promise<unknown>) | undefined;
370
384
 
371
385
  /** Optional model-visible explanation of when and how the function should be used. */
@@ -415,7 +429,8 @@ export function zodFunction<Parameters extends ZodTypeLike>(
415
429
  /** Builds a strict Chat Completions function tool from the supplied Zod schema. */
416
430
  export function zodFunction<Parameters extends ZodTypeLike>(options: ZodFunctionOptions<Parameters>) {
417
431
  const parameters = options.parameters;
418
- const zodSchema = parameters as unknown as ZodSchema;
432
+ // SAFETY: The public structural Zod input is dispatched by version below; each version-specific converter validates its supported schema contract.
433
+ const zodSchema = parameters as ZodSchema;
419
434
 
420
435
  return makeParseableTool<any>(
421
436
  {
@@ -455,6 +470,7 @@ export function zodResponsesFunction<Parameters extends ZodTypeLike>(options: {
455
470
  parameters: Parameters;
456
471
 
457
472
  /** Optional callback retained on the tool; `responses.parse()` does not execute it. */
473
+ // oxlint-disable-next-line anti-slop/no-unknown-returns -- Public tool callbacks may return arbitrary application values; preserve the published callback contract.
458
474
  function?: ((args: InferZodType<Parameters>) => unknown | Promise<unknown>) | undefined;
459
475
 
460
476
  /** Optional model-visible explanation of when and how the function should be used. */
@@ -467,10 +483,12 @@ export function zodResponsesFunction<Parameters extends ZodTypeLike>(options: {
467
483
  name: string;
468
484
 
469
485
  /** Callback signature associated with validated function-call arguments. */
486
+ // oxlint-disable-next-line anti-slop/no-unknown-returns -- Public tool callbacks may return arbitrary application values; preserve the published callback contract.
470
487
  function: (args: InferZodType<Parameters>) => unknown;
471
488
  }> {
472
489
  const parameters = options.parameters;
473
- const zodSchema = parameters as unknown as ZodSchema;
490
+ // SAFETY: The public structural Zod input is dispatched by version below; each version-specific converter validates its supported schema contract.
491
+ const zodSchema = parameters as ZodSchema;
474
492
 
475
493
  return makeParseableResponseTool<any>(
476
494
  {
@@ -510,7 +528,8 @@ export function zodRealtimeFunction<Parameters extends ZodTypeLike>(options: {
510
528
  /** Optional model-visible explanation of when and how the function should be used. */
511
529
  description?: string | undefined;
512
530
  }): RealtimeFunctionTool {
513
- const zodSchema = options.parameters as unknown as ZodSchema;
531
+ // SAFETY: The public structural Zod input is dispatched by version below; each version-specific converter validates its supported schema contract.
532
+ const zodSchema = options.parameters as ZodSchema;
514
533
 
515
534
  return {
516
535
  type: 'function',
@@ -68,7 +68,7 @@ function commitAssistantStreamArrayProjection(projection: AssistantStreamDeltaPr
68
68
  }
69
69
  }
70
70
 
71
- function isPrimitiveAssistantStreamValue(value: unknown): boolean {
71
+ function isPrimitiveAssistantStreamValue(value: unknown): value is string | number {
72
72
  return typeof value === 'string' || typeof value === 'number';
73
73
  }
74
74
 
@@ -118,6 +118,7 @@ function getAssistantStreamDeltaIndex(
118
118
  );
119
119
  }
120
120
 
121
+ // SAFETY: Number.isSafeInteger rejects non-numbers before numeric comparisons; the remaining checks enforce the permitted index range.
121
122
  if (
122
123
  !Number.isSafeInteger(index) ||
123
124
  (index as number) < 0 ||
@@ -128,6 +129,7 @@ function getAssistantStreamDeltaIndex(
128
129
  throw new OpenAIError(`Assistant stream delta contains an invalid ${kind} index: ${safeIndex}`);
129
130
  }
130
131
 
132
+ // SAFETY: Number.isSafeInteger rejects non-numbers before numeric comparisons; the remaining checks enforce the permitted index range.
131
133
  return index as number;
132
134
  }
133
135
 
@@ -323,6 +325,7 @@ function applyAssistantStreamArrayDelta(
323
325
  }
324
326
  accumulator[index] = deltaEntry;
325
327
  } else {
328
+ // SAFETY: The preceding validation accepts this accumulated record before recursively merging the matching delta entry.
326
329
  accumulator[index] = applyRecord(accumulatedEntry as AssistantStreamRecord, deltaEntry);
327
330
  }
328
331
  } else {
@@ -398,11 +401,14 @@ export function assertSafeAssistantStreamDelta(value: unknown): void {
398
401
 
399
402
  export function accumulateAssistantStreamDelta<Accumulator extends object>(
400
403
  accumulator: Accumulator,
404
+ // oxlint-disable-next-line anti-slop/no-object-parameters -- This exported accumulator accepts heterogeneous partial SDK deltas and validates their properties at runtime.
401
405
  delta: object,
402
406
  cacheArrays = false,
403
407
  ): Accumulator {
404
408
  assertSafeAssistantStreamDelta(delta);
409
+ // SAFETY: The generic accumulator uses record entries after delta validation; recursive merge retains the original accumulator's public type.
405
410
  const accumulatorRecord = accumulator as AssistantStreamRecord;
411
+ // SAFETY: The generic accumulator uses record entries after delta validation; recursive merge retains the original accumulator's public type.
406
412
  const deltaRecord = delta as AssistantStreamRecord;
407
413
  const projection = createAssistantStreamDeltaProjection(
408
414
  cacheArrays && !isAssistantStreamValueExternallyMutable(accumulator),
@@ -13,6 +13,7 @@ export function normalizeX509CredentialOptions(options: ClientOptions): {
13
13
  } {
14
14
  const { credential } = options;
15
15
  if (credential === undefined) {
16
+ // oxlint-disable-next-line anti-slop/no-known-value-widening -- Preserve the exported normalization contract when no X.509 credential is configured.
16
17
  return { credential, options };
17
18
  }
18
19
 
@@ -32,6 +33,7 @@ export function normalizeX509CredentialOptions(options: ClientOptions): {
32
33
  );
33
34
  }
34
35
 
36
+ // oxlint-disable-next-line anti-slop/no-known-value-widening -- The declared ClientOptions return contract supports both normalized and unchanged client options.
35
37
  return {
36
38
  credential,
37
39
  options: {
@@ -142,5 +144,6 @@ export function prepareX509ClientClone(
142
144
  }
143
145
  }
144
146
 
147
+ // oxlint-disable-next-line anti-slop/no-known-value-widening -- Preserve the exported clone contract across inherited and replaced credentials and providers.
145
148
  return { credential: nextCredential, provider: prepareProviderClone(inherited, overrides) };
146
149
  }
@@ -74,6 +74,7 @@ function cancelResponseBody(response: Response): void {
74
74
  }
75
75
  }
76
76
 
77
+ // oxlint-disable-next-line anti-slop/no-unknown-returns -- Decoded token JSON remains untrusted until the caller validates its fields.
77
78
  async function readResponseBody(response: Response, signal?: AbortSignal): Promise<unknown> {
78
79
  if (!response.body) {
79
80
  throw new OpenAIError('X.509 workload identity token exchange returned invalid JSON.');
@@ -124,12 +125,20 @@ async function readResponseBody(response: Response, signal?: AbortSignal): Promi
124
125
  }
125
126
  }
126
127
 
128
+ interface UnvalidatedTokenResponse {
129
+ access_token?: unknown;
130
+ token_type?: unknown;
131
+ issued_token_type?: unknown;
132
+ expires_in?: unknown;
133
+ }
134
+
127
135
  function validateTokenResponse(value: unknown): X509ExchangedToken {
128
136
  if (typeof value !== 'object' || value === null || Array.isArray(value)) {
129
137
  throw new OpenAIError('X.509 workload identity token exchange returned an invalid token response.');
130
138
  }
131
139
 
132
- const response = value as Record<string, unknown>;
140
+ // SAFETY: The object check above establishes a container; optional unknown fields make no claim about its values.
141
+ const response = value as UnvalidatedTokenResponse;
133
142
  if (
134
143
  !hasOwn(response, 'access_token') ||
135
144
  typeof response['access_token'] !== 'string' ||
@@ -44,7 +44,7 @@ class NodeX509Transport implements X509Transport {
44
44
  Object.freeze(this);
45
45
  }
46
46
 
47
- static dispatcher(value: object): Agent | ProxyAgent | undefined {
47
+ static dispatcher(value: X509Transport): Agent | ProxyAgent | undefined {
48
48
  return #dispatcher in value ? value.#dispatcher : undefined;
49
49
  }
50
50
  }
@@ -66,6 +66,7 @@ export function registerX509Transport(transport: X509Transport, registered: Regi
66
66
  rememberRegisteredX509Transport(transport, Object.freeze(registered));
67
67
  }
68
68
 
69
+ // oxlint-disable-next-line anti-slop/no-unknown-returns -- Own data-property values must remain untrusted until their option-specific validators run.
69
70
  function dataOption(options: X509TransportOptions, name: keyof X509TransportOptions): unknown {
70
71
  const descriptor = Object.getOwnPropertyDescriptor(options, name);
71
72
  if (!descriptor || !('value' in descriptor)) {
@@ -43,10 +43,7 @@ function assertSafeHeaders(headers: Headers): void {
43
43
  }
44
44
  }
45
45
 
46
- function exchangeDeadline(
47
- timeout: number | undefined,
48
- callerSignal: AbortSignal | null | undefined,
49
- ): { signal: AbortSignal; dispose: () => void } {
46
+ function exchangeDeadline(timeout: number | undefined, callerSignal: AbortSignal | null | undefined) {
50
47
  const deadline = new AbortController();
51
48
  const timer =
52
49
  timeout === undefined
@@ -104,10 +101,7 @@ interface X509TokenRequestContext {
104
101
  fetchOptions: MergedRequestInit;
105
102
  }
106
103
 
107
- function waitForRefresh(
108
- attempt: X509RefreshAttempt,
109
- signal: AbortSignal,
110
- ): { result: Promise<X509ExchangedToken>; dispose: () => void } {
104
+ function waitForRefresh(attempt: X509RefreshAttempt, signal: AbortSignal) {
111
105
  let abort: (() => void) | undefined;
112
106
  // AbortSignal remains callback-only on supported TypeScript/runtime combinations.
113
107
  // oxlint-disable-next-line promise/avoid-new -- A callback-only AbortSignal must race a shared refresh.
@@ -145,6 +139,7 @@ export function isX509WorkloadIdentity(
145
139
  }
146
140
  break;
147
141
  }
142
+ // SAFETY: Object.getPrototypeOf returns an object or null; the traversal checks descriptors rather than assuming a credential-provider subtype.
148
143
  providerOwner = Object.getPrototypeOf(providerOwner) as object | null;
149
144
  }
150
145
 
@@ -157,6 +152,7 @@ export function isX509WorkloadIdentity(
157
152
  }
158
153
  return discriminator.value === 'x509';
159
154
  }
155
+ // SAFETY: Object.getPrototypeOf returns an object or null; the traversal checks descriptors rather than assuming a credential-provider subtype.
160
156
  current = Object.getPrototypeOf(current) as object | null;
161
157
  }
162
158
  return false;
@@ -267,9 +263,11 @@ export class X509WorkloadIdentityAuth {
267
263
  type: 'x509',
268
264
  identityProviderId: this.#identityProviderId,
269
265
  serviceAccountId: this.#serviceAccountId,
266
+ // Spread creates an own data property without invoking inherited setters or changing the object prototype.
270
267
  ...(this.#configuredRefreshBufferMs === undefined
271
268
  ? {}
272
269
  : { refreshBufferMs: this.#configuredRefreshBufferMs }),
270
+ // Spread creates an own data property without invoking inherited setters or changing the object prototype.
273
271
  ...(this.#configuredRefreshBufferSeconds === undefined
274
272
  ? {}
275
273
  : { refreshBufferSeconds: this.#configuredRefreshBufferSeconds }),
@@ -302,6 +300,7 @@ export class X509WorkloadIdentityAuth {
302
300
  if (!defaultHeaders || !requestHeaders) {
303
301
  throw new OpenAIError('X.509 workload identity requires snapshotted request headers.');
304
302
  }
303
+ // oxlint-disable-next-line anti-slop/no-known-value-widening -- The exposed snapshot contract deliberately hides the private request-scope representation.
305
304
  return { defaultHeaders, requestHeaders };
306
305
  }
307
306
 
@@ -495,6 +494,7 @@ export class X509WorkloadIdentityAuth {
495
494
  }
496
495
 
497
496
  /** Establishes an independent scope even when concurrent requests share caller options. */
497
+ // oxlint-disable-next-line anti-slop/no-object-parameters -- Logical request owners are opaque identity tokens; their properties are never read.
498
498
  runRequest<T>(operation: () => Promise<T>, requestOwner: object): Promise<T> {
499
499
  return this.#transport.run(async () => {
500
500
  const scope = this.#transport.current();
@@ -515,6 +515,7 @@ export class X509WorkloadIdentityAuth {
515
515
  }
516
516
 
517
517
  /** Reports whether a public request-building call already belongs to an active logical operation. */
518
+ // oxlint-disable-next-line anti-slop/no-object-parameters -- Request scope membership compares the opaque caller token by identity only.
518
519
  inRequest(requestOwner: object): boolean {
519
520
  const scope = this.#transport.current();
520
521
  return scope?.owner === this && scope.requestOwner === requestOwner && scope.phase !== 'authorizing';
@@ -540,9 +541,13 @@ export class X509WorkloadIdentityAuth {
540
541
  wallStartedAt,
541
542
  monotonicStartedAt,
542
543
  owner: this,
544
+ // Spread creates an own data property without invoking inherited setters or changing the object prototype.
543
545
  ...(deadlineArmed ? { deadlineArmed } : {}),
546
+ // Spread creates an own data property without invoking inherited setters or changing the object prototype.
544
547
  ...(request ? { request } : {}),
548
+ // Spread creates an own data property without invoking inherited setters or changing the object prototype.
545
549
  ...(effectiveSignal ? { effectiveSignal } : {}),
550
+ // Spread creates an own data property without invoking inherited setters or changing the object prototype.
546
551
  ...(requestOwner ? { requestOwner } : {}),
547
552
  };
548
553
  return (operation) =>
@@ -54,6 +54,7 @@ export type BedrockAuthFactory = () => BedrockRequestAuth;
54
54
 
55
55
  /** Wraps a provider failure in an SDK error while preserving its original cause. */
56
56
  export function errorWithCause(message: string, cause: unknown): Errors.OpenAIError {
57
+ // SAFETY: This SDK error is created locally and receives its optional cause immediately below; no existing error shape is trusted.
57
58
  const error = new Errors.OpenAIError(message) as Errors.OpenAIError & { cause?: unknown };
58
59
  error.cause = cause;
59
60
  return error;
@@ -61,6 +62,7 @@ export function errorWithCause(message: string, cause: unknown): Errors.OpenAIEr
61
62
 
62
63
  /** Trims a configuration string, treating missing and whitespace-only values as absent. */
63
64
  export function normalizeOptionalString(value: string | null | undefined): string | undefined {
65
+ // oxlint-disable-next-line anti-slop/no-runtime-typeof -- Bedrock credential and origin checks validate JavaScript configuration before any credential is sent.
64
66
  const normalized = typeof value === 'string' ? value.trim() : undefined;
65
67
  return normalized || undefined;
66
68
  }
@@ -207,6 +209,7 @@ export function resolveBedrockEndpoint(options: BedrockEndpointOptions): {
207
209
  const endpoint =
208
210
  options.endpoint ?? parseBedrockEndpointHostname(new URL(baseURL).hostname)?.endpoint ?? 'mantle';
209
211
  validateCanonicalBedrockEndpoint(baseURL, endpoint, region);
212
+ // oxlint-disable-next-line anti-slop/no-known-value-widening -- Preserve the declared endpoint resolver contract across configured URLs and inferred regions.
210
213
  return { endpoint, region, baseURL };
211
214
  }
212
215
  const endpoint = options.endpoint ?? 'mantle';
@@ -220,6 +223,7 @@ export function resolveBedrockEndpoint(options: BedrockEndpointOptions): {
220
223
  endpoint === 'runtime'
221
224
  ? `bedrock-runtime.${region}.${resolveRuntimeDnsSuffixes(region)[0]}`
222
225
  : `bedrock-mantle.${region}.api.aws`;
226
+ // oxlint-disable-next-line anti-slop/no-known-value-widening -- The resolver intentionally returns its declared endpoint contract across all configuration paths.
223
227
  return { endpoint, region, baseURL: `https://${hostname}/openai/v1` };
224
228
  }
225
229
 
@@ -245,7 +249,9 @@ export function assertBedrockRequestOrigin(baseURL: string, requestURL: string):
245
249
  }
246
250
 
247
251
  /** Validates a final WebSocket URL before a legacy Bedrock client resolves or attaches credentials. */
252
+ // oxlint-disable-next-line anti-slop/no-unknown-parameters -- The WebSocket authentication boundary verifies the caller client at runtime before trusting provider metadata.
248
253
  export function assertBedrockWebSocketOrigin(client: unknown, requestURL: URL): void {
254
+ // oxlint-disable-next-line anti-slop/no-runtime-typeof -- Bedrock credential and origin checks validate JavaScript configuration before any credential is sent.
249
255
  if (typeof client !== 'object' || client === null || !(brand_privateBedrockClient in client)) {
250
256
  return;
251
257
  }
@@ -257,7 +263,9 @@ export function assertBedrockWebSocketOrigin(client: unknown, requestURL: URL):
257
263
  normalizedRequestURL.protocol = 'http:';
258
264
  }
259
265
 
266
+ // SAFETY: The private Bedrock brand checked above identifies the client whose baseURL is validated against the finalized request origin.
260
267
  assertBedrockRequestOrigin(
268
+ // oxlint-disable-next-line anti-slop/no-chained-type-assertions -- The private Bedrock client brand checked above identifies the client baseURL contract.
261
269
  (client as unknown as { baseURL: string }).baseURL,
262
270
  normalizedRequestURL.toString(),
263
271
  );
@@ -346,6 +354,7 @@ function resolveAbortableBedrockAuth<T>(
346
354
  }
347
355
  };
348
356
 
357
+ // oxlint-disable-next-line anti-slop/no-unknown-parameters -- Failures and rejection reasons can be arbitrary JavaScript values; preserve them until inspection or forwarding.
349
358
  const rejectSignalFailure = (error: unknown) => {
350
359
  if (failure.error) {
351
360
  return;
@@ -483,6 +492,7 @@ class BedrockBearerAuth implements BedrockRequestAuth {
483
492
  resolve: () => this.tokenProvider(),
484
493
  failureMessage: 'Failed to resolve a bearer credential for Bedrock.',
485
494
  apply: (token) => {
495
+ // oxlint-disable-next-line anti-slop/no-runtime-typeof -- Bedrock credential and origin checks validate JavaScript configuration before any credential is sent.
486
496
  if (typeof token !== 'string' || !token.trim()) {
487
497
  throw new Errors.OpenAIError(
488
498
  'The Bedrock bearer credential provider must return a non-empty string.',
@@ -533,6 +543,7 @@ export function resolveBedrockBearerAuth(
533
543
  if (
534
544
  options.apiKey !== undefined &&
535
545
  options.apiKey !== null &&
546
+ // oxlint-disable-next-line anti-slop/no-runtime-typeof -- Bedrock credential and origin checks validate JavaScript configuration before any credential is sent.
536
547
  (typeof options.apiKey !== 'string' || !options.apiKey.trim())
537
548
  ) {
538
549
  throw new Errors.OpenAIError('The Bedrock bearer credential must not be empty.');
@@ -545,13 +556,16 @@ export function resolveBedrockBearerAuth(
545
556
 
546
557
  if (options.tokenProvider) {
547
558
  const tokenProvider = options.tokenProvider;
559
+ // oxlint-disable-next-line anti-slop/no-known-value-widening -- The declared bearer-auth contract hides concrete authenticator implementations behind their factory.
548
560
  return { factory: () => new BedrockBearerAuth(tokenProvider), explicit: true };
549
561
  }
550
562
  if (options.apiKey != null) {
551
563
  const apiKey = options.apiKey;
564
+ // oxlint-disable-next-line anti-slop/no-known-value-widening -- Explicit API keys use the same declared auth-factory contract as token providers.
552
565
  return { factory: () => new BedrockBearerAuth(async () => apiKey), explicit: true };
553
566
  }
554
567
  if (allowEnvironment && options.apiKey !== null && readEnv('AWS_BEARER_TOKEN_BEDROCK')) {
568
+ // oxlint-disable-next-line anti-slop/no-known-value-widening -- Environment credentials must preserve the same declared auth-factory contract as explicit options.
555
569
  return {
556
570
  explicit: false,
557
571
  factory: () =>
@@ -567,5 +581,6 @@ export function resolveBedrockBearerAuth(
567
581
  };
568
582
  }
569
583
 
584
+ // oxlint-disable-next-line anti-slop/no-known-value-widening -- The declared optional factory contract also represents the absence of bearer credentials.
570
585
  return { factory: undefined, explicit: false };
571
586
  }
@@ -55,6 +55,7 @@ export class LineDecoder {
55
55
  let binaryChunk: Uint8Array;
56
56
  if (chunk instanceof ArrayBuffer) {
57
57
  binaryChunk = new Uint8Array(chunk);
58
+ // oxlint-disable-next-line anti-slop/no-runtime-typeof -- The line decoder accepts both text and binary chunks and must select the matching decoding path.
58
59
  } else if (typeof chunk === 'string') {
59
60
  binaryChunk = encodeUTF8(chunk);
60
61
  } else {
@@ -9,6 +9,7 @@ export type APIResponseProps = {
9
9
  response: Response;
10
10
  options: FinalRequestOptions;
11
11
  controller: AbortController;
12
+ requestSignal?: AbortSignal | null | undefined;
12
13
  requestLogID: string;
13
14
  retryOfRequestLogID: string | undefined;
14
15
  startTime: number;
@@ -54,7 +54,9 @@ export interface ProviderDefinition {
54
54
  * provider configurations.
55
55
  */
56
56
  const providerDefinitionsKey = Symbol.for('openai.node.providerDefinitions.v1');
57
+ // SAFETY: This versioned global symbol is the SDK-owned cross-copy WeakMap registry; no provider object fields are trusted through it.
57
58
  const providerGlobal = globalThis as any;
59
+ // SAFETY: This versioned global symbol is the SDK-owned cross-copy WeakMap registry; no provider object fields are trusted through it.
58
60
  const existingProviderDefinitions = providerGlobal[providerDefinitionsKey] as
59
61
  | WeakMap<Provider, ProviderDefinition>
60
62
  | undefined;
@@ -70,6 +72,7 @@ if (!existingProviderDefinitions) {
70
72
  * installed copy of the SDK in the same JavaScript realm.
71
73
  */
72
74
  export function createProvider(definition: ProviderDefinition): Provider {
75
+ // SAFETY: This function creates the opaque handle and immediately registers its identity in the private WeakMap, which is the runtime brand check.
73
76
  const provider = Object.freeze({}) as Provider;
74
77
  providerDefinitions.set(provider, definition);
75
78
  return provider;
@@ -22,6 +22,7 @@ const push_to_array = function push_to_array(arr: any[], value_or_array: any) {
22
22
 
23
23
  let toISOString;
24
24
 
25
+ // SAFETY: The defaults object supplies the serializer's established non-null option values and RFC formatter; callers still merge their overrides separately.
25
26
  const defaults = {
26
27
  addQueryPrefix: false,
27
28
  allowDots: false,
@@ -172,6 +173,7 @@ function inner_stringify(
172
173
  }
173
174
 
174
175
  for (const key of obj_keys) {
176
+ // SAFETY: The serializer supports its existing encoded-key wrapper or property key; the branch selects the wrapper value before indexing the object.
175
177
  const value =
176
178
  // @ts-ignore
177
179
  typeof key === 'object' && key.value !== undefined ? key.value : obj[key as any];
@@ -180,6 +182,7 @@ function inner_stringify(
180
182
  continue;
181
183
  }
182
184
 
185
+ // SAFETY: Dot encoding applies the serializer's existing string-key protocol; this cast preserves its legacy mixed key representation.
183
186
  // @ts-ignore
184
187
  const encoded_key = allowDots && encodeDotInKeys ? (key as any).replace(/\./g, '%2E') : key;
185
188
  let key_prefix: string;
@@ -2,16 +2,20 @@ import { RFC1738 } from './formats';
2
2
  import type { DefaultEncoder, Format } from './types';
3
3
  import { isArray } from '../utils/values';
4
4
 
5
+ // oxlint-disable-next-line anti-slop/no-object-parameters -- The cached own-property predicate accepts arrays, callable objects, and records.
5
6
  let cachedHas: ((obj: object, key: PropertyKey) => boolean) | undefined;
6
7
 
8
+ // oxlint-disable-next-line anti-slop/no-object-parameters -- Own-property lookup is a generic object primitive and must preserve array and callable inputs.
7
9
  export const has = (obj: object, key: PropertyKey): boolean => {
10
+ // SAFETY: Object.hasOwn is an optional native capability; older runtimes use the bound hasOwnProperty fallback with the same own-key semantics.
11
+ // oxlint-disable-next-line anti-slop/no-object-parameters -- The native or compatibility own-property predicate has the same generic object contract.
8
12
  const resolvedHas: (obj: object, key: PropertyKey) => boolean =
9
13
  cachedHas ?? (Object as any).hasOwn ?? Function.prototype.call.bind(Object.prototype.hasOwnProperty);
10
14
  cachedHas = resolvedHas;
11
15
  return resolvedHas(obj, key);
12
16
  };
13
17
 
14
- function isUnsafePropertyKey(key: unknown): boolean {
18
+ function isUnsafePropertyKey(key: PropertyKey): boolean {
15
19
  return key === '__proto__' || key === 'constructor' || key === 'prototype';
16
20
  }
17
21
 
@@ -39,6 +43,7 @@ interface MergeState {
39
43
  const maxAdoptedRecords = 10_000;
40
44
 
41
45
  function isIntrinsicFunctionPrototype(
46
+ // oxlint-disable-next-line anti-slop/no-object-parameters -- Prototype descriptors are inspected before deciding whether an arbitrary adopted value is callable.
42
47
  value: object,
43
48
  key: PropertyKey,
44
49
  descriptor: PropertyDescriptor,
@@ -52,6 +57,7 @@ function isObjectLike(value: unknown): value is object {
52
57
  return value !== null && (typeof value === 'object' || typeof value === 'function');
53
58
  }
54
59
 
60
+ // oxlint-disable-next-line anti-slop/no-object-parameters -- Adoption records retain arbitrary merge-target identities for later descriptor validation.
55
61
  function rememberAdoption(state: MergeState, target: object, key: PropertyKey, value: any): void {
56
62
  if (!isObjectLike(value)) {
57
63
  return;
@@ -77,6 +83,7 @@ function sanitizeAdoptions(state: MergeState): void {
77
83
  }[] = [];
78
84
  let inspectedProperties = 0;
79
85
 
86
+ // oxlint-disable-next-line anti-slop/no-object-parameters -- Adoption validation inspects arbitrary objects, including arrays and functions, before trusting their structure.
80
87
  function inspect(value: object): AdoptedRecord {
81
88
  const known = records.get(value);
82
89
  if (known) {
@@ -131,7 +138,7 @@ function sanitizeAdoptions(state: MergeState): void {
131
138
  const detached: AdoptedRecord[] = [];
132
139
  for (const record of visited) {
133
140
  for (const key of record.keys) {
134
- const descriptor = Reflect.get(record.descriptors, key) as PropertyDescriptor | undefined;
141
+ const descriptor = record.descriptors[key];
135
142
  if (!descriptor) {
136
143
  continue;
137
144
  }
@@ -204,7 +211,7 @@ function sanitizeAdoptions(state: MergeState): void {
204
211
  if (isUnsafePropertyKey(key)) {
205
212
  continue;
206
213
  }
207
- const descriptor = Reflect.get(record.descriptors, key) as PropertyDescriptor | undefined;
214
+ const descriptor = record.descriptors[key];
208
215
  if (!descriptor) {
209
216
  continue;
210
217
  }
@@ -239,12 +246,14 @@ function readPreparedTarget(state: MergeState, target: any, key: PropertyKey): a
239
246
  return target[key];
240
247
  }
241
248
 
249
+ // oxlint-disable-next-line anti-slop/no-object-parameters -- Merge targets may contain accessors or custom prototypes, so the preview preserves the generic object boundary.
242
250
  function previewTarget(state: MergeState, target: object, key: PropertyKey): any {
243
251
  const descriptor = Object.getOwnPropertyDescriptor(target, key);
244
252
  if (descriptor && 'value' in descriptor) {
245
253
  return descriptor.value;
246
254
  }
247
255
 
256
+ // oxlint-disable-next-line anti-slop/no-reflect-get -- Generic query merging snapshots arbitrary inherited/accessor keys before mutation.
248
257
  const value = Reflect.get(target, key, target);
249
258
  let prepared = state.preparedTargets.get(target);
250
259
  if (!prepared) {
@@ -280,11 +289,13 @@ function prepareMergeSource(target: any, source: any, state: MergeState, assign
280
289
  }
281
290
  state.inspectedSourceProperties += sourceKeys.length;
282
291
  const sourceIsArray = isArray(source);
292
+ // oxlint-disable-next-line anti-slop/no-unsafe-dictionary-type -- The query merge graph preserves heterogeneous scalar, array, and object values under its existing merge contract.
283
293
  const prepared: Record<string, any> = sourceIsArray ? [] : Object.create(null);
284
294
  preparedTargets.set(target, prepared);
285
295
 
286
296
  if (isArray(target) && sourceIsArray && !assign) {
287
297
  const sourceLength = source.length;
298
+ // SAFETY: prepared was constructed as an array when sourceIsArray is true, which this branch requires.
288
299
  (prepared as any[]).length = sourceLength;
289
300
  for (let index = 0; index < sourceLength; index += 1) {
290
301
  if (!(index in source)) {