openai 7.16.0 → 7.17.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 (631) hide show
  1. package/CHANGELOG.md +28 -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 +1 -0
  129. package/client.d.mts.map +1 -1
  130. package/client.d.ts +1 -0
  131. package/client.d.ts.map +1 -1
  132. package/client.js +27 -6
  133. package/client.js.map +1 -1
  134. package/client.mjs +27 -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 +9 -0
  288. package/internal/ws.d.mts.map +1 -1
  289. package/internal/ws.d.ts +9 -0
  290. package/internal/ws.d.ts.map +1 -1
  291. package/internal/ws.js +36 -4
  292. package/internal/ws.js.map +1 -1
  293. package/internal/ws.mjs +35 -4
  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/transform.d.mts.map +1 -1
  382. package/lib/transform.d.ts.map +1 -1
  383. package/lib/transform.js +69 -33
  384. package/lib/transform.js.map +1 -1
  385. package/lib/transform.mjs +69 -33
  386. package/lib/transform.mjs.map +1 -1
  387. package/lib/webrtc/connection.d.mts.map +1 -1
  388. package/lib/webrtc/connection.d.ts.map +1 -1
  389. package/lib/webrtc/connection.js +6 -1
  390. package/lib/webrtc/connection.js.map +1 -1
  391. package/lib/webrtc/connection.mjs +6 -1
  392. package/lib/webrtc/connection.mjs.map +1 -1
  393. package/lib/webrtc/data-channel.d.mts.map +1 -1
  394. package/lib/webrtc/data-channel.d.ts.map +1 -1
  395. package/lib/webrtc/data-channel.js +9 -1
  396. package/lib/webrtc/data-channel.js.map +1 -1
  397. package/lib/webrtc/data-channel.mjs +9 -1
  398. package/lib/webrtc/data-channel.mjs.map +1 -1
  399. package/lib/webrtc/subscriptions.d.mts.map +1 -1
  400. package/lib/webrtc/subscriptions.d.ts.map +1 -1
  401. package/lib/webrtc/subscriptions.js +2 -0
  402. package/lib/webrtc/subscriptions.js.map +1 -1
  403. package/lib/webrtc/subscriptions.mjs +2 -0
  404. package/lib/webrtc/subscriptions.mjs.map +1 -1
  405. package/lib/webrtc/types.d.mts.map +1 -1
  406. package/lib/webrtc/types.d.ts.map +1 -1
  407. package/package.json +1 -1
  408. package/providers/bedrock/aws.d.mts.map +1 -1
  409. package/providers/bedrock/aws.d.ts.map +1 -1
  410. package/providers/bedrock/aws.js +4 -0
  411. package/providers/bedrock/aws.js.map +1 -1
  412. package/providers/bedrock/aws.mjs +4 -0
  413. package/providers/bedrock/aws.mjs.map +1 -1
  414. package/realtime/internal-base.d.mts.map +1 -1
  415. package/realtime/internal-base.d.ts.map +1 -1
  416. package/realtime/internal-base.js +1 -0
  417. package/realtime/internal-base.js.map +1 -1
  418. package/realtime/internal-base.mjs +1 -0
  419. package/realtime/internal-base.mjs.map +1 -1
  420. package/realtime/websocket.d.mts.map +1 -1
  421. package/realtime/websocket.d.ts.map +1 -1
  422. package/realtime/websocket.js +9 -1
  423. package/realtime/websocket.js.map +1 -1
  424. package/realtime/websocket.mjs +9 -1
  425. package/realtime/websocket.mjs.map +1 -1
  426. package/realtime/ws.d.mts.map +1 -1
  427. package/realtime/ws.d.ts.map +1 -1
  428. package/realtime/ws.js +3 -0
  429. package/realtime/ws.js.map +1 -1
  430. package/realtime/ws.mjs +3 -0
  431. package/realtime/ws.mjs.map +1 -1
  432. package/resources/beta/agents/agents.d.mts +2 -1
  433. package/resources/beta/agents/agents.d.mts.map +1 -1
  434. package/resources/beta/agents/agents.d.ts +2 -1
  435. package/resources/beta/agents/agents.d.ts.map +1 -1
  436. package/resources/beta/agents/agents.js.map +1 -1
  437. package/resources/beta/agents/agents.mjs.map +1 -1
  438. package/resources/beta/beta.d.mts +2 -2
  439. package/resources/beta/beta.d.mts.map +1 -1
  440. package/resources/beta/beta.d.ts +2 -2
  441. package/resources/beta/beta.d.ts.map +1 -1
  442. package/resources/beta/beta.js.map +1 -1
  443. package/resources/beta/beta.mjs.map +1 -1
  444. package/resources/beta/index.d.mts +1 -1
  445. package/resources/beta/index.d.mts.map +1 -1
  446. package/resources/beta/index.d.ts +1 -1
  447. package/resources/beta/index.d.ts.map +1 -1
  448. package/resources/beta/index.js.map +1 -1
  449. package/resources/beta/index.mjs.map +1 -1
  450. package/resources/beta/responses/index.d.mts +1 -1
  451. package/resources/beta/responses/index.d.mts.map +1 -1
  452. package/resources/beta/responses/index.d.ts +1 -1
  453. package/resources/beta/responses/index.d.ts.map +1 -1
  454. package/resources/beta/responses/index.js.map +1 -1
  455. package/resources/beta/responses/index.mjs.map +1 -1
  456. package/resources/beta/responses/internal-base.d.mts +3 -0
  457. package/resources/beta/responses/internal-base.d.mts.map +1 -1
  458. package/resources/beta/responses/internal-base.d.ts +3 -0
  459. package/resources/beta/responses/internal-base.d.ts.map +1 -1
  460. package/resources/beta/responses/internal-base.js +21 -12
  461. package/resources/beta/responses/internal-base.js.map +1 -1
  462. package/resources/beta/responses/internal-base.mjs +21 -12
  463. package/resources/beta/responses/internal-base.mjs.map +1 -1
  464. package/resources/beta/responses/responses.d.mts +51 -3
  465. package/resources/beta/responses/responses.d.mts.map +1 -1
  466. package/resources/beta/responses/responses.d.ts +51 -3
  467. package/resources/beta/responses/responses.d.ts.map +1 -1
  468. package/resources/beta/responses/responses.js.map +1 -1
  469. package/resources/beta/responses/responses.mjs.map +1 -1
  470. package/resources/beta/responses/ws-base.d.mts +5 -1
  471. package/resources/beta/responses/ws-base.d.mts.map +1 -1
  472. package/resources/beta/responses/ws-base.d.ts +5 -1
  473. package/resources/beta/responses/ws-base.d.ts.map +1 -1
  474. package/resources/beta/responses/ws-base.js +2 -4
  475. package/resources/beta/responses/ws-base.js.map +1 -1
  476. package/resources/beta/responses/ws-base.mjs +2 -4
  477. package/resources/beta/responses/ws-base.mjs.map +1 -1
  478. package/resources/beta/responses/ws.d.mts +2 -0
  479. package/resources/beta/responses/ws.d.mts.map +1 -1
  480. package/resources/beta/responses/ws.d.ts +2 -0
  481. package/resources/beta/responses/ws.d.ts.map +1 -1
  482. package/resources/beta/responses/ws.js +12 -3
  483. package/resources/beta/responses/ws.js.map +1 -1
  484. package/resources/beta/responses/ws.mjs +12 -3
  485. package/resources/beta/responses/ws.mjs.map +1 -1
  486. package/resources/live/forks/internal-base.d.mts +3 -0
  487. package/resources/live/forks/internal-base.d.mts.map +1 -1
  488. package/resources/live/forks/internal-base.d.ts +3 -0
  489. package/resources/live/forks/internal-base.d.ts.map +1 -1
  490. package/resources/live/forks/internal-base.js +21 -5
  491. package/resources/live/forks/internal-base.js.map +1 -1
  492. package/resources/live/forks/internal-base.mjs +21 -5
  493. package/resources/live/forks/internal-base.mjs.map +1 -1
  494. package/resources/live/internal-base.d.mts +3 -0
  495. package/resources/live/internal-base.d.mts.map +1 -1
  496. package/resources/live/internal-base.d.ts +3 -0
  497. package/resources/live/internal-base.d.ts.map +1 -1
  498. package/resources/live/internal-base.js +21 -5
  499. package/resources/live/internal-base.js.map +1 -1
  500. package/resources/live/internal-base.mjs +21 -5
  501. package/resources/live/internal-base.mjs.map +1 -1
  502. package/resources/live/sideband/internal-base.d.mts +3 -0
  503. package/resources/live/sideband/internal-base.d.mts.map +1 -1
  504. package/resources/live/sideband/internal-base.d.ts +3 -0
  505. package/resources/live/sideband/internal-base.d.ts.map +1 -1
  506. package/resources/live/sideband/internal-base.js +21 -5
  507. package/resources/live/sideband/internal-base.js.map +1 -1
  508. package/resources/live/sideband/internal-base.mjs +21 -5
  509. package/resources/live/sideband/internal-base.mjs.map +1 -1
  510. package/resources/responses/internal-base.d.mts +3 -0
  511. package/resources/responses/internal-base.d.mts.map +1 -1
  512. package/resources/responses/internal-base.d.ts +3 -0
  513. package/resources/responses/internal-base.d.ts.map +1 -1
  514. package/resources/responses/internal-base.js +21 -12
  515. package/resources/responses/internal-base.js.map +1 -1
  516. package/resources/responses/internal-base.mjs +21 -12
  517. package/resources/responses/internal-base.mjs.map +1 -1
  518. package/resources/responses/responses.d.mts +36 -3
  519. package/resources/responses/responses.d.mts.map +1 -1
  520. package/resources/responses/responses.d.ts +36 -3
  521. package/resources/responses/responses.d.ts.map +1 -1
  522. package/resources/responses/responses.js.map +1 -1
  523. package/resources/responses/responses.mjs.map +1 -1
  524. package/resources/responses/ws-base.d.mts +5 -1
  525. package/resources/responses/ws-base.d.mts.map +1 -1
  526. package/resources/responses/ws-base.d.ts +5 -1
  527. package/resources/responses/ws-base.d.ts.map +1 -1
  528. package/resources/responses/ws-base.js +2 -4
  529. package/resources/responses/ws-base.js.map +1 -1
  530. package/resources/responses/ws-base.mjs +2 -4
  531. package/resources/responses/ws-base.mjs.map +1 -1
  532. package/resources/responses/ws.d.mts +2 -0
  533. package/resources/responses/ws.d.mts.map +1 -1
  534. package/resources/responses/ws.d.ts +2 -0
  535. package/resources/responses/ws.d.ts.map +1 -1
  536. package/resources/responses/ws.js +12 -3
  537. package/resources/responses/ws.js.map +1 -1
  538. package/resources/responses/ws.mjs +12 -3
  539. package/resources/responses/ws.mjs.map +1 -1
  540. package/src/_vendor/zod-to-json-schema/Options.ts +2 -0
  541. package/src/_vendor/zod-to-json-schema/parseDef.ts +1 -0
  542. package/src/_vendor/zod-to-json-schema/parsers/bigint.ts +2 -0
  543. package/src/_vendor/zod-to-json-schema/parsers/literal.ts +1 -0
  544. package/src/_vendor/zod-to-json-schema/parsers/null.ts +1 -0
  545. package/src/_vendor/zod-to-json-schema/parsers/nullable.ts +4 -0
  546. package/src/_vendor/zod-to-json-schema/parsers/number.ts +2 -0
  547. package/src/_vendor/zod-to-json-schema/parsers/optional.ts +6 -7
  548. package/src/_vendor/zod-to-json-schema/parsers/record.ts +2 -0
  549. package/src/_vendor/zod-to-json-schema/parsers/string.ts +1 -0
  550. package/src/_vendor/zod-to-json-schema/parsers/union.ts +3 -0
  551. package/src/_vendor/zod-to-json-schema/util.ts +1 -0
  552. package/src/_vendor/zod-to-json-schema/zodToJsonSchema.ts +3 -1
  553. package/src/auth/subject-token-providers.ts +6 -1
  554. package/src/auth/workload-identity-auth.ts +10 -1
  555. package/src/auth/x509-transport.ts +13 -2
  556. package/src/azure.ts +3 -0
  557. package/src/bedrock.ts +5 -0
  558. package/src/beta/realtime/internal-base.ts +2 -0
  559. package/src/beta/realtime/websocket.ts +11 -1
  560. package/src/beta/realtime/ws.ts +3 -0
  561. package/src/client.ts +35 -3
  562. package/src/core/EventEmitter.ts +15 -0
  563. package/src/core/streaming.ts +30 -2
  564. package/src/helpers/audio.ts +2 -0
  565. package/src/helpers/standard-schema.ts +31 -19
  566. package/src/helpers/zod-v3-strict-schema.ts +8 -2
  567. package/src/helpers/zod.ts +32 -13
  568. package/src/internal/assistant-stream-delta.ts +7 -1
  569. package/src/internal/auth/x509-credential-options.ts +3 -0
  570. package/src/internal/auth/x509-token-exchange.ts +10 -1
  571. package/src/internal/auth/x509-transport-capability.ts +2 -1
  572. package/src/internal/auth/x509-workload-identity-auth.ts +13 -8
  573. package/src/internal/bedrock.ts +15 -0
  574. package/src/internal/decoders/line.ts +1 -0
  575. package/src/internal/parse.ts +1 -0
  576. package/src/internal/provider.ts +3 -0
  577. package/src/internal/qs/stringify.ts +3 -0
  578. package/src/internal/qs/utils.ts +14 -3
  579. package/src/internal/responses/response-accumulator.ts +34 -4
  580. package/src/internal/to-file.ts +1 -1
  581. package/src/internal/uploads.ts +11 -1
  582. package/src/internal/utils/abort.ts +7 -2
  583. package/src/internal/utils/bytes.ts +2 -0
  584. package/src/internal/utils/path.ts +2 -0
  585. package/src/internal/utils/sleep.ts +52 -1
  586. package/src/internal/ws-adapter-browser.ts +2 -0
  587. package/src/internal/ws.ts +44 -4
  588. package/src/lib/AbstractChatCompletionRunner.ts +40 -17
  589. package/src/lib/AssistantStream.ts +31 -20
  590. package/src/lib/ChatCompletionRunner.ts +1 -0
  591. package/src/lib/ChatCompletionStream.ts +81 -14
  592. package/src/lib/EventEmitter.ts +15 -0
  593. package/src/lib/EventStream.ts +93 -3
  594. package/src/lib/ResponsesParser.ts +5 -0
  595. package/src/lib/RunnableFunction.ts +4 -1
  596. package/src/lib/agents/agent-session-stream.ts +5 -3
  597. package/src/lib/embeddings.ts +3 -1
  598. package/src/lib/live/transcript-grouper.ts +4 -0
  599. package/src/lib/parser.ts +16 -2
  600. package/src/lib/responses/ResponseInputItems.ts +11 -0
  601. package/src/lib/responses/ResponseStream.ts +6 -3
  602. package/src/lib/transform.ts +70 -35
  603. package/src/lib/webrtc/connection.ts +5 -1
  604. package/src/lib/webrtc/data-channel.ts +7 -0
  605. package/src/lib/webrtc/subscriptions.ts +3 -0
  606. package/src/lib/webrtc/types.ts +1 -0
  607. package/src/providers/bedrock/aws.ts +5 -1
  608. package/src/realtime/internal-base.ts +2 -0
  609. package/src/realtime/websocket.ts +11 -1
  610. package/src/realtime/ws.ts +3 -0
  611. package/src/resources/beta/agents/agents.ts +2 -0
  612. package/src/resources/beta/beta.ts +2 -0
  613. package/src/resources/beta/index.ts +1 -0
  614. package/src/resources/beta/responses/index.ts +1 -0
  615. package/src/resources/beta/responses/internal-base.ts +24 -11
  616. package/src/resources/beta/responses/responses.ts +58 -0
  617. package/src/resources/beta/responses/ws-base.ts +7 -5
  618. package/src/resources/beta/responses/ws.ts +21 -6
  619. package/src/resources/live/forks/internal-base.ts +24 -5
  620. package/src/resources/live/internal-base.ts +24 -5
  621. package/src/resources/live/sideband/internal-base.ts +24 -5
  622. package/src/resources/responses/api.md +1 -0
  623. package/src/resources/responses/internal-base.ts +24 -11
  624. package/src/resources/responses/responses.ts +41 -0
  625. package/src/resources/responses/ws-base.ts +7 -5
  626. package/src/resources/responses/ws.ts +21 -6
  627. package/src/version.ts +1 -1
  628. package/version.d.mts +1 -1
  629. package/version.d.ts +1 -1
  630. package/version.js +1 -1
  631. package/version.mjs +1 -1
package/lib/transform.js CHANGED
@@ -108,6 +108,7 @@ function assignSchema(target, ...sources) {
108
108
  * participate.
109
109
  */
110
110
  function forEachJSONSchemaChild(schema, path, visit) {
111
+ // SAFETY: This is an object schema at this traversal point; the record view permits dynamic keyword access while individual values remain subject to schema checks.
111
112
  const record = schema;
112
113
  for (const keyword of JSON_SCHEMA_SINGLE_SCHEMA_KEYWORDS) {
113
114
  if (keyword in record) {
@@ -180,10 +181,11 @@ function toStrictJsonSchema(schema) {
180
181
  return strictSchema;
181
182
  }
182
183
  function stripUndefinedSchemaKeywords(schema, visited = new Set()) {
183
- if (typeof schema === 'boolean' || !isObject(schema) || visited.has(schema)) {
184
+ if (!isObject(schema) || visited.has(schema)) {
184
185
  return;
185
186
  }
186
187
  visited.add(schema);
188
+ // SAFETY: This is an object schema at this traversal point; the record view permits dynamic keyword access while individual values remain subject to schema checks.
187
189
  const schemaRecord = schema;
188
190
  for (const keyword of Object.keys(schemaRecord)) {
189
191
  if (schemaRecord[keyword] === undefined) {
@@ -191,6 +193,7 @@ function stripUndefinedSchemaKeywords(schema, visited = new Set()) {
191
193
  }
192
194
  }
193
195
  forEachJSONSchemaChild(schema, [], (child) => {
196
+ // SAFETY: The schema-child visitor supplies only recognized object or boolean schema positions; the recursive helper validates their contents.
194
197
  stripUndefinedSchemaKeywords(child, visited);
195
198
  });
196
199
  }
@@ -266,6 +269,7 @@ function inlineRootRefObject(schema) {
266
269
  }
267
270
  for (const keyword of JSON_SCHEMA_ANNOTATION_KEYWORDS) {
268
271
  if (!(keyword in inheritedAnnotations) && keyword in target) {
272
+ // SAFETY: This is an object schema at this traversal point; the record view permits dynamic keyword access while individual values remain subject to schema checks.
269
273
  inheritedAnnotations[keyword] = target[keyword];
270
274
  }
271
275
  }
@@ -284,6 +288,7 @@ function inlineRootRefObject(schema) {
284
288
  delete inlined[keyword];
285
289
  }
286
290
  }
291
+ // SAFETY: This is an object schema at this traversal point; the record view permits dynamic keyword access while individual values remain subject to schema checks.
287
292
  const schemaRecord = schema;
288
293
  for (const keyword of Object.keys(schema)) {
289
294
  delete schemaRecord[keyword];
@@ -322,12 +327,13 @@ function normalizeRootAllOf(schema) {
322
327
  return;
323
328
  }
324
329
  const branch = allOf[0];
325
- if (typeof branch === 'boolean' || !isObject(branch)) {
330
+ if (!isObject(branch)) {
326
331
  return;
327
332
  }
328
333
  const rootMetadata = { ...schema };
329
334
  delete rootMetadata.allOf;
330
335
  const normalized = structuredClone(branch);
336
+ // SAFETY: This is an object schema at this traversal point; the record view permits dynamic keyword access while individual values remain subject to schema checks.
331
337
  const schemaRecord = schema;
332
338
  for (const keyword of Object.keys(schema)) {
333
339
  delete schemaRecord[keyword];
@@ -356,7 +362,7 @@ function normalizeRootAnyOf(schema) {
356
362
  return false;
357
363
  }
358
364
  const { branch, index: branchIndex } = realBranches[0];
359
- if (typeof branch === 'boolean' || !isObject(branch) || !isObjectOnlySchema(branch, schema)) {
365
+ if (!isObject(branch) || !isObjectOnlySchema(branch, schema)) {
360
366
  return false;
361
367
  }
362
368
  const definitionRenames = planPromotedRootAnyOfDefinitionRenames(schema, branch);
@@ -383,6 +389,7 @@ function normalizeRootAnyOf(schema) {
383
389
  normalized[keyword] = mergedDefinitions;
384
390
  delete rootMetadata[keyword];
385
391
  }
392
+ // SAFETY: This is an object schema at this traversal point; the record view permits dynamic keyword access while individual values remain subject to schema checks.
386
393
  const schemaRecord = schema;
387
394
  for (const keyword of Object.keys(schema)) {
388
395
  delete schemaRecord[keyword];
@@ -447,13 +454,14 @@ function rewriteLocalRefsIntoPromotedRootAnyOfBranch(root, branchIndex, definiti
447
454
  : '#/' + promotedParts.map(encodeJSONPointerTokenForURIFragment).join('/');
448
455
  };
449
456
  const rewriteRefs = (value) => {
450
- if (typeof value === 'boolean' || !isObject(value)) {
457
+ if (!isObject(value)) {
451
458
  return;
452
459
  }
453
460
  if (typeof value.$ref === 'string') {
454
461
  value.$ref = rewriteRef(value.$ref);
455
462
  }
456
463
  forEachJSONSchemaChild(value, [], (child) => {
464
+ // SAFETY: The schema-child visitor supplies only recognized object or boolean schema positions; the recursive helper validates their contents.
457
465
  rewriteRefs(child);
458
466
  });
459
467
  };
@@ -481,13 +489,14 @@ function hasOnlyRootRefAndDefinitions(schema) {
481
489
  * Multi-type arrays carry real union semantics and must remain unchanged.
482
490
  */
483
491
  function normalizeSingletonTypeArrays(schema) {
484
- if (typeof schema === 'boolean' || !isObject(schema)) {
492
+ if (!isObject(schema)) {
485
493
  return;
486
494
  }
487
495
  if (Array.isArray(schema.type) && schema.type.length === 1) {
488
496
  schema.type = schema.type[0];
489
497
  }
490
498
  forEachJSONSchemaChild(schema, [], (child) => {
499
+ // SAFETY: The schema-child visitor supplies only recognized object or boolean schema positions; the recursive helper validates their contents.
491
500
  normalizeSingletonTypeArrays(child);
492
501
  });
493
502
  }
@@ -578,7 +587,7 @@ function ensureStrictJsonSchema(jsonSchema, path, root) {
578
587
  // keywords without an explicit type, so those implicit object shapes need
579
588
  // the same strict handling as type: 'object'. Explicitly open object schemas
580
589
  // cannot be represented in Structured Outputs strict mode.
581
- if (hasObjectShape(jsonSchema)) {
590
+ if (hasObjectConstraints(jsonSchema)) {
582
591
  if (!(0, utils_1.hasOwn)(jsonSchema, 'additionalProperties')) {
583
592
  jsonSchema.additionalProperties = false;
584
593
  }
@@ -592,7 +601,7 @@ function ensureStrictJsonSchema(jsonSchema, path, root) {
592
601
  }
593
602
  // Handle object properties
594
603
  const properties = jsonSchema.properties;
595
- if (hasObjectShape(jsonSchema)) {
604
+ if (hasObjectConstraints(jsonSchema)) {
596
605
  for (const key of required) {
597
606
  if (!isObject(properties) || !(0, utils_1.hasOwn)(properties, key)) {
598
607
  throw new Error(`Object schema at \`${path.join('/') || '<root>'}\` requires property \`${key}\` but does not declare it in \`properties\`.`);
@@ -639,6 +648,7 @@ function ensureStrictJsonSchema(jsonSchema, path, root) {
639
648
  }
640
649
  }
641
650
  normalizeArrayUnionWrapper(jsonSchema, root);
651
+ // SAFETY: This is an object schema at this traversal point; the record view permits dynamic keyword access while individual values remain subject to schema checks.
642
652
  const schemaRecord = jsonSchema;
643
653
  for (const keyword of JSON_SCHEMA_UNSUPPORTED_SCHEMA_KEYWORDS) {
644
654
  // Optional converter output often keeps undefined placeholders on the
@@ -662,6 +672,7 @@ function ensureStrictJsonSchema(jsonSchema, path, root) {
662
672
  if (typeof child === 'boolean' && (keyword === 'additionalProperties' || keyword === 'additionalItems')) {
663
673
  return;
664
674
  }
675
+ // SAFETY: The schema-child visitor supplies only recognized object or boolean schema positions; the recursive helper validates their contents.
665
676
  ensureStrictJsonSchema(child, childPath, root);
666
677
  });
667
678
  // Strip `null` defaults as there's no meaningful distinction
@@ -701,6 +712,7 @@ function parseLocalRef(ref) {
701
712
  }
702
713
  return parts;
703
714
  }
715
+ // oxlint-disable-next-line anti-slop/no-unknown-returns -- Resolving untrusted schema references may produce any value; callers perform the schema checks. JSON Schema traversal accepts arbitrary keyword values and validates each node before interpreting it.
704
716
  function resolvePointerPart(resolved, part) {
705
717
  if (Array.isArray(resolved)) {
706
718
  if (!/^(?:0|[1-9]\d*)$/.test(part)) {
@@ -780,7 +792,7 @@ function isSchemaDefinition(value) {
780
792
  return typeof value === 'boolean' || isObject(value);
781
793
  }
782
794
  function isObjectOnlySchema(schema, root, seenRefs = new Set()) {
783
- if (typeof schema === 'boolean' || !isObject(schema)) {
795
+ if (!isObject(schema)) {
784
796
  return false;
785
797
  }
786
798
  if (schema.$ref !== undefined) {
@@ -808,7 +820,7 @@ function isObjectOnlySchema(schema, root, seenRefs = new Set()) {
808
820
  (Array.isArray(schema.type) && schema.type.length === 1 && schema.type[0] === 'object'));
809
821
  }
810
822
  function isArrayOnlySchema(schema, root, seenRefs = new Set()) {
811
- if (typeof schema === 'boolean' || !isObject(schema)) {
823
+ if (!isObject(schema)) {
812
824
  return false;
813
825
  }
814
826
  if (schema.$ref !== undefined) {
@@ -846,6 +858,7 @@ function hasOnlyRefAndAnnotations(schema) {
846
858
  JSON_SCHEMA_ANNOTATION_KEYWORDS.has(keyword));
847
859
  }
848
860
  function hasOnlyAnnotationSiblings(schema, keyword) {
861
+ // SAFETY: This is an object schema at this traversal point; the record view permits dynamic keyword access while individual values remain subject to schema checks.
849
862
  const schemaRecord = schema;
850
863
  return Object.keys(schema).every(
851
864
  // Definition maps do not add sibling validation constraints. Keep them
@@ -874,7 +887,7 @@ function hasOnlyRootAnyOfMetadataSiblings(schema) {
874
887
  function hasObjectKeywords(schema) {
875
888
  return Object.keys(schema).some((keyword) => JSON_SCHEMA_OBJECT_KEYWORDS.has(keyword));
876
889
  }
877
- function hasObjectShape(schema) {
890
+ function hasObjectConstraints(schema) {
878
891
  const typ = schema.type;
879
892
  return (typ === 'object' ||
880
893
  (Array.isArray(typ) && typ.includes('object')) ||
@@ -896,7 +909,7 @@ function normalizeObjectUnionWrapper(jsonSchema, path, root) {
896
909
  if (hasEmptyRequired) {
897
910
  delete jsonSchema.required;
898
911
  }
899
- if (!hasObjectShape(jsonSchema)) {
912
+ if (!hasObjectConstraints(jsonSchema)) {
900
913
  return;
901
914
  }
902
915
  const hasOwnObjectConstraints = Object.keys(jsonSchema).some((keyword) => JSON_SCHEMA_OBJECT_KEYWORDS.has(keyword));
@@ -941,7 +954,7 @@ function normalizeAnyOfFalseBranches(jsonSchema) {
941
954
  */
942
955
  function assertNoNestedSchemaIds(schema) {
943
956
  const visit = (value, path) => {
944
- if (typeof value === 'boolean' || !isObject(value)) {
957
+ if (!isObject(value)) {
945
958
  return;
946
959
  }
947
960
  if (path.length > 0 && value.$id !== undefined) {
@@ -950,6 +963,7 @@ function assertNoNestedSchemaIds(schema) {
950
963
  ' establishes a separate JSON Schema resource scope and cannot be represented in strict Structured Outputs.');
951
964
  }
952
965
  forEachJSONSchemaChild(value, path, (child, childPath) => {
966
+ // SAFETY: The schema-child visitor supplies only recognized object or boolean schema positions; the recursive helper validates their contents.
953
967
  visit(child, childPath);
954
968
  });
955
969
  };
@@ -1015,13 +1029,14 @@ function rewriteLocalRefsIntoMovedOneOfBranches(root) {
1015
1029
  return changed ? '#/' + parts.map(encodeJSONPointerTokenForURIFragment).join('/') : ref;
1016
1030
  };
1017
1031
  const rewriteRefs = (value) => {
1018
- if (typeof value === 'boolean' || !isObject(value)) {
1032
+ if (!isObject(value)) {
1019
1033
  return;
1020
1034
  }
1021
1035
  if (typeof value.$ref === 'string') {
1022
1036
  value.$ref = rewriteRef(value.$ref);
1023
1037
  }
1024
1038
  forEachJSONSchemaChild(value, [], (child) => {
1039
+ // SAFETY: The schema-child visitor supplies only recognized object or boolean schema positions; the recursive helper validates their contents.
1025
1040
  rewriteRefs(child);
1026
1041
  });
1027
1042
  };
@@ -1042,9 +1057,8 @@ function rewriteLocalRefsIntoFilteredAnyOfBranches(root) {
1042
1057
  let resolved = root;
1043
1058
  let changed = false;
1044
1059
  for (const [index, part] of originalParts.entries()) {
1045
- const resolvedRecord = typeof resolved === 'object' && resolved !== null && !Array.isArray(resolved)
1046
- ? resolved
1047
- : undefined;
1060
+ // SAFETY: This is an object schema at this traversal point; the record view permits dynamic keyword access while individual values remain subject to schema checks.
1061
+ const resolvedRecord = isObject(resolved) ? resolved : undefined;
1048
1062
  if (part === 'anyOf' &&
1049
1063
  index < originalParts.length - 1 &&
1050
1064
  resolvedRecord !== undefined &&
@@ -1082,13 +1096,14 @@ function rewriteLocalRefsIntoFilteredAnyOfBranches(root) {
1082
1096
  return changed ? '#/' + rewrittenParts.map(encodeJSONPointerTokenForURIFragment).join('/') : ref;
1083
1097
  };
1084
1098
  const rewriteRefs = (value) => {
1085
- if (typeof value === 'boolean' || !isObject(value)) {
1099
+ if (!isObject(value)) {
1086
1100
  return;
1087
1101
  }
1088
1102
  if (typeof value.$ref === 'string') {
1089
1103
  value.$ref = rewriteRef(value.$ref);
1090
1104
  }
1091
1105
  forEachJSONSchemaChild(value, [], (child) => {
1106
+ // SAFETY: The schema-child visitor supplies only recognized object or boolean schema positions; the recursive helper validates their contents.
1092
1107
  rewriteRefs(child);
1093
1108
  });
1094
1109
  };
@@ -1102,7 +1117,7 @@ function rewriteLocalRefsIntoFilteredAnyOfBranches(root) {
1102
1117
  function preserveAllOfRefTargets(root, rootOnly = false) {
1103
1118
  const refsToPreserve = new Set();
1104
1119
  const collectRefs = (value) => {
1105
- if (typeof value === 'boolean' || !isObject(value)) {
1120
+ if (!isObject(value)) {
1106
1121
  return;
1107
1122
  }
1108
1123
  if (typeof value.$ref === 'string' && refTargetsAllOfBranch(root, value.$ref)) {
@@ -1112,6 +1127,7 @@ function preserveAllOfRefTargets(root, rootOnly = false) {
1112
1127
  }
1113
1128
  }
1114
1129
  forEachJSONSchemaChild(value, [], (child) => {
1130
+ // SAFETY: The schema-child visitor supplies only recognized object or boolean schema positions; the recursive helper validates their contents.
1115
1131
  collectRefs(child);
1116
1132
  });
1117
1133
  };
@@ -1127,6 +1143,7 @@ function preserveAllOfRefTargets(root, rootOnly = false) {
1127
1143
  let aliasIndex = 0;
1128
1144
  for (const ref of refsToPreserve) {
1129
1145
  const target = resolveLocalRef(root, ref);
1146
+ // oxlint-disable-next-line anti-slop/no-known-value-widening -- Local references require runtime schema validation even when the static return type is narrower.
1130
1147
  if (!isSchemaDefinition(target)) {
1131
1148
  if (rootOnly) {
1132
1149
  continue;
@@ -1141,13 +1158,14 @@ function preserveAllOfRefTargets(root, rootOnly = false) {
1141
1158
  rewrittenRefs.set(ref, '#/$defs/' + escapeJSONPointerToken(alias));
1142
1159
  }
1143
1160
  const rewriteRefs = (value) => {
1144
- if (typeof value === 'boolean' || !isObject(value)) {
1161
+ if (!isObject(value)) {
1145
1162
  return;
1146
1163
  }
1147
1164
  if (typeof value.$ref === 'string') {
1148
1165
  value.$ref = rewrittenRefs.get(value.$ref) ?? value.$ref;
1149
1166
  }
1150
1167
  forEachJSONSchemaChild(value, [], (child) => {
1168
+ // SAFETY: The schema-child visitor supplies only recognized object or boolean schema positions; the recursive helper validates their contents.
1151
1169
  rewriteRefs(child);
1152
1170
  });
1153
1171
  };
@@ -1164,7 +1182,7 @@ function preserveDiscardedAllOfPropertyRefTargets(root, discardedPaths) {
1164
1182
  }
1165
1183
  const refsToPreserve = new Set();
1166
1184
  const collectRefs = (value) => {
1167
- if (typeof value === 'boolean' || !isObject(value)) {
1185
+ if (!isObject(value)) {
1168
1186
  return;
1169
1187
  }
1170
1188
  if (typeof value.$ref === 'string') {
@@ -1176,6 +1194,7 @@ function preserveDiscardedAllOfPropertyRefTargets(root, discardedPaths) {
1176
1194
  }
1177
1195
  }
1178
1196
  forEachJSONSchemaChild(value, [], (child) => {
1197
+ // SAFETY: The schema-child visitor supplies only recognized object or boolean schema positions; the recursive helper validates their contents.
1179
1198
  collectRefs(child);
1180
1199
  });
1181
1200
  };
@@ -1191,6 +1210,7 @@ function preserveDiscardedAllOfPropertyRefTargets(root, discardedPaths) {
1191
1210
  let aliasIndex = 0;
1192
1211
  for (const ref of refsToPreserve) {
1193
1212
  const target = resolveLocalRef(root, ref);
1213
+ // oxlint-disable-next-line anti-slop/no-known-value-widening -- Validate referenced schema values at runtime before preserving them under generated definitions.
1194
1214
  if (!isSchemaDefinition(target)) {
1195
1215
  throw new Error('Local $ref cannot be preserved before allOf property removal: ' + JSON.stringify(ref));
1196
1216
  }
@@ -1202,20 +1222,21 @@ function preserveDiscardedAllOfPropertyRefTargets(root, discardedPaths) {
1202
1222
  rewrittenRefs.set(ref, '#/$defs/' + escapeJSONPointerToken(alias));
1203
1223
  }
1204
1224
  const rewriteRefs = (value) => {
1205
- if (typeof value === 'boolean' || !isObject(value)) {
1225
+ if (!isObject(value)) {
1206
1226
  return;
1207
1227
  }
1208
1228
  if (typeof value.$ref === 'string') {
1209
1229
  value.$ref = rewrittenRefs.get(value.$ref) ?? value.$ref;
1210
1230
  }
1211
1231
  forEachJSONSchemaChild(value, [], (child) => {
1232
+ // SAFETY: The schema-child visitor supplies only recognized object or boolean schema positions; the recursive helper validates their contents.
1212
1233
  rewriteRefs(child);
1213
1234
  });
1214
1235
  };
1215
1236
  rewriteRefs(root);
1216
1237
  }
1217
1238
  function validateRefSchemas(schema, path, root) {
1218
- if (typeof schema === 'boolean' || !isObject(schema)) {
1239
+ if (!isObject(schema)) {
1219
1240
  return;
1220
1241
  }
1221
1242
  const ref = schema.$ref;
@@ -1227,6 +1248,7 @@ function validateRefSchemas(schema, path, root) {
1227
1248
  throw new Error(`External $ref at \`${path.join('/') || '<root>'}\` is not supported in strict Structured Outputs: ${JSON.stringify(ref)}`);
1228
1249
  }
1229
1250
  const resolved = resolveLocalRef(root, ref);
1251
+ // oxlint-disable-next-line anti-slop/no-known-value-widening -- Untrusted local references must pass the runtime schema predicate before normalization.
1230
1252
  if (resolved === undefined || !isSchemaDefinition(resolved)) {
1231
1253
  throw new Error(`Local $ref at \`${path.join('/') || '<root>'}\` does not resolve to an object or boolean schema: ${JSON.stringify(ref)}`);
1232
1254
  }
@@ -1238,6 +1260,7 @@ function validateRefSchemas(schema, path, root) {
1238
1260
  }
1239
1261
  }
1240
1262
  forEachJSONSchemaChild(schema, path, (child, childPath) => {
1263
+ // SAFETY: The schema-child visitor supplies only recognized object or boolean schema positions; the recursive helper validates their contents.
1241
1264
  validateRefSchemas(child, childPath, root);
1242
1265
  });
1243
1266
  }
@@ -1260,7 +1283,7 @@ function resolveObjectAllOfBranch(schema, root, normalizing) {
1260
1283
  }
1261
1284
  seenRefs.add(ref);
1262
1285
  const target = resolveLocalRef(root, ref);
1263
- if (typeof target === 'boolean' || !isObject(target)) {
1286
+ if (!isObject(target)) {
1264
1287
  return undefined;
1265
1288
  }
1266
1289
  const targetPath = parseLocalRef(ref);
@@ -1288,7 +1311,7 @@ function resolveObjectAllOfBranch(schema, root, normalizing) {
1288
1311
  }
1289
1312
  }
1290
1313
  function normalizeObjectAllOfBranches(schema, path, root, normalizing = new Set()) {
1291
- if (typeof schema === 'boolean' || !isObject(schema)) {
1314
+ if (!isObject(schema)) {
1292
1315
  return;
1293
1316
  }
1294
1317
  if (normalizing.has(schema)) {
@@ -1298,6 +1321,7 @@ function normalizeObjectAllOfBranches(schema, path, root, normalizing = new Set(
1298
1321
  try {
1299
1322
  while (true) {
1300
1323
  forEachJSONSchemaChild(schema, path, (child, childPath) => {
1324
+ // SAFETY: The schema-child visitor supplies only recognized object or boolean schema positions; the recursive helper validates their contents.
1301
1325
  normalizeObjectAllOfBranches(child, childPath, root, normalizing);
1302
1326
  });
1303
1327
  // Intersections are associative, so normalize nested object
@@ -1337,13 +1361,14 @@ function normalizeObjectAllOfForExclusivity(schema, root) {
1337
1361
  return undefined;
1338
1362
  }
1339
1363
  const branch = allOf[0];
1340
- if (typeof branch === 'boolean' || !isObject(branch)) {
1364
+ if (!isObject(branch)) {
1341
1365
  return undefined;
1342
1366
  }
1343
1367
  const siblings = { ...normalized };
1344
1368
  delete siblings.allOf;
1345
1369
  const flattened = structuredClone(branch);
1346
1370
  for (const keyword of Object.keys(normalized)) {
1371
+ // SAFETY: Only an enumerated own keyword is deleted from this mutable schema object before installing its normalized replacement.
1347
1372
  delete normalized[keyword];
1348
1373
  }
1349
1374
  assignSchema(normalized, flattened, siblings);
@@ -1380,23 +1405,23 @@ function mergeObjectAllOf(jsonSchema, path, root, normalizing = new Set()) {
1380
1405
  }
1381
1406
  return true;
1382
1407
  }
1383
- const parentHasObjectShape = hasObjectShapeWithoutAllOf(jsonSchema);
1408
+ const parentIsMergeableObject = isMergeableObjectSchema(jsonSchema);
1384
1409
  const resolvedEntries = allOf.map((entry) => isObject(entry) ? resolveObjectAllOfBranch(entry, root, normalizing) : undefined);
1385
1410
  const objectBranches = resolvedEntries
1386
1411
  .map((entry) => entry?.schema)
1387
- .filter((entry) => entry !== undefined && hasObjectShapeWithoutAllOf(entry));
1388
- if (!parentHasObjectShape && objectBranches.length === 0) {
1412
+ .filter((entry) => entry !== undefined && isMergeableObjectSchema(entry));
1413
+ if (!parentIsMergeableObject && objectBranches.length === 0) {
1389
1414
  return false;
1390
1415
  }
1391
1416
  // A lone object branch with no object-valued parent is handled by the
1392
1417
  // existing safe single-allOf flattening path below.
1393
- if (!parentHasObjectShape && allOf.length === 1) {
1418
+ if (!parentIsMergeableObject && allOf.length === 1) {
1394
1419
  return false;
1395
1420
  }
1396
1421
  const fail = () => {
1397
1422
  throw new Error(`Object allOf at \`${path.join('/') || '<root>'}\` cannot be merged without changing Draft 7 validation.`);
1398
1423
  };
1399
- if (!parentHasObjectShape &&
1424
+ if (!parentIsMergeableObject &&
1400
1425
  ['additionalProperties', 'properties', 'required', 'type'].some((keyword) => keyword in jsonSchema)) {
1401
1426
  fail();
1402
1427
  }
@@ -1410,7 +1435,7 @@ function mergeObjectAllOf(jsonSchema, path, root, normalizing = new Set()) {
1410
1435
  }
1411
1436
  }
1412
1437
  const branches = [];
1413
- if (parentHasObjectShape) {
1438
+ if (parentIsMergeableObject) {
1414
1439
  branches.push({ schema: jsonSchema, sourcePath: path });
1415
1440
  }
1416
1441
  for (const [index, entry] of allOf.entries()) {
@@ -1426,7 +1451,7 @@ function mergeObjectAllOf(jsonSchema, path, root, normalizing = new Set()) {
1426
1451
  // branch were preserved under stable root definitions before this merge,
1427
1452
  // so a valid definitions-only branch can now be discarded like an
1428
1453
  // annotation-only branch.
1429
- if (hasObjectShapeWithoutAllOf(branch)) {
1454
+ if (isMergeableObjectSchema(branch)) {
1430
1455
  branches.push({
1431
1456
  schema: branch,
1432
1457
  sourcePath: branch === entry ? [...path, 'allOf', String(index)] : undefined,
@@ -1437,6 +1462,7 @@ function mergeObjectAllOf(jsonSchema, path, root, normalizing = new Set()) {
1437
1462
  }
1438
1463
  }
1439
1464
  const merged = {};
1465
+ // SAFETY: This is an object schema at this traversal point; the record view permits dynamic keyword access while individual values remain subject to schema checks.
1440
1466
  for (const keyword of ['$defs', 'definitions']) {
1441
1467
  if (jsonSchema[keyword] !== undefined) {
1442
1468
  merged[keyword] = jsonSchema[keyword];
@@ -1445,10 +1471,13 @@ function mergeObjectAllOf(jsonSchema, path, root, normalizing = new Set()) {
1445
1471
  if (path.length === 0) {
1446
1472
  for (const keyword of JSON_SCHEMA_ROOT_METADATA_KEYWORDS) {
1447
1473
  if (keyword in jsonSchema) {
1474
+ // SAFETY: Root annotation keywords are copied unchanged between schema objects; the record views preserve their unknown values.
1475
+ // oxlint-disable-next-line anti-slop/no-known-value-widening -- Root annotation keywords are copied dynamically; JSONSchema has no index signature for extension fields. Metadata merging preserves arbitrary annotation/default values under the selected schema keywords.
1448
1476
  merged[keyword] = jsonSchema[keyword];
1449
1477
  }
1450
1478
  }
1451
1479
  }
1480
+ // SAFETY: This fresh null-prototype dictionary receives only JSON schema definitions while merging the validated property maps.
1452
1481
  const mergedProperties = Object.create(null);
1453
1482
  const mergedRequired = new Set();
1454
1483
  const closedPropertySets = [];
@@ -1466,6 +1495,7 @@ function mergeObjectAllOf(jsonSchema, path, root, normalizing = new Set()) {
1466
1495
  // first value (the outer schema, then earlier branches) instead of
1467
1496
  // rejecting an otherwise exactly mergeable intersection.
1468
1497
  if (!(keyword in merged)) {
1498
+ // SAFETY: These annotation keywords are copied unchanged from the validated branch; arbitrary values are preserved without narrowing.
1469
1499
  merged[keyword] = schema[keyword];
1470
1500
  }
1471
1501
  }
@@ -1484,6 +1514,7 @@ function mergeObjectAllOf(jsonSchema, path, root, normalizing = new Set()) {
1484
1514
  if (keyword === 'allOf' && branch === jsonSchema) {
1485
1515
  continue;
1486
1516
  }
1517
+ // SAFETY: This is an object schema at this traversal point; the record view permits dynamic keyword access while individual values remain subject to schema checks.
1487
1518
  if ((keyword === '$defs' || keyword === 'definitions') &&
1488
1519
  isObject(branch[keyword])) {
1489
1520
  continue;
@@ -1568,6 +1599,7 @@ function mergeObjectAllOf(jsonSchema, path, root, normalizing = new Set()) {
1568
1599
  if (collapsesToNull) {
1569
1600
  merged.type = 'null';
1570
1601
  for (const keyword of Object.keys(jsonSchema)) {
1602
+ // SAFETY: Only an enumerated own keyword is deleted from this mutable schema object before installing its normalized replacement.
1571
1603
  delete jsonSchema[keyword];
1572
1604
  }
1573
1605
  assignSchema(jsonSchema, merged);
@@ -1597,18 +1629,20 @@ function mergeObjectAllOf(jsonSchema, path, root, normalizing = new Set()) {
1597
1629
  merged.additionalProperties = false;
1598
1630
  }
1599
1631
  for (const keyword of Object.keys(jsonSchema)) {
1632
+ // SAFETY: Only an enumerated own keyword is deleted from this mutable schema object before installing its normalized replacement.
1600
1633
  delete jsonSchema[keyword];
1601
1634
  }
1602
1635
  assignSchema(jsonSchema, merged);
1603
1636
  return true;
1604
1637
  }
1605
- function hasObjectShapeWithoutAllOf(schema) {
1638
+ function isMergeableObjectSchema(schema) {
1606
1639
  if (schema.type !== undefined) {
1607
1640
  return isMergeableObjectType(schema.type);
1608
1641
  }
1609
1642
  return Object.keys(schema).some((keyword) => JSON_SCHEMA_OBJECT_KEYWORDS.has(keyword));
1610
1643
  }
1611
1644
  function hasOnlyNeutralAllOfBranchKeywords(schema) {
1645
+ // SAFETY: This is an object schema at this traversal point; the record view permits dynamic keyword access while individual values remain subject to schema checks.
1612
1646
  const schemaRecord = schema;
1613
1647
  return Object.keys(schema).every((keyword) => JSON_SCHEMA_ANNOTATION_KEYWORDS.has(keyword) ||
1614
1648
  ((keyword === '$defs' || keyword === 'definitions') && isObject(schemaRecord[keyword])));
@@ -1630,7 +1664,9 @@ function schemasEqual(left, right) {
1630
1664
  if (typeof left !== 'object' || left === null || typeof right !== 'object' || right === null) {
1631
1665
  return false;
1632
1666
  }
1667
+ // SAFETY: This is an object schema at this traversal point; the record view permits dynamic keyword access while individual values remain subject to schema checks.
1633
1668
  const leftRecord = left;
1669
+ // SAFETY: This is an object schema at this traversal point; the record view permits dynamic keyword access while individual values remain subject to schema checks.
1634
1670
  const rightRecord = right;
1635
1671
  const leftKeys = Object.keys(leftRecord);
1636
1672
  const rightKeys = Object.keys(rightRecord);