@nocobase/plugin-ai 2.1.7 → 2.1.9

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 (552) hide show
  1. package/dist/client/{406.9a530334eae8cede.js → 406.15c09d98faa2ccf1.js} +1 -1
  2. package/dist/client/{428.fdd0cc3cfd1632ef.js → 428.5eb4f53ddbb6a3b8.js} +1 -1
  3. package/dist/client/index.js +2 -2
  4. package/dist/client-v2/index.js +1 -1
  5. package/dist/externalVersion.js +21 -21
  6. package/dist/node_modules/@langchain/xai/dist/chat_models/completions.cjs +25 -34
  7. package/dist/node_modules/@langchain/xai/dist/chat_models/completions.d.cts +10 -22
  8. package/dist/node_modules/@langchain/xai/dist/chat_models/completions.d.ts +10 -22
  9. package/dist/node_modules/@langchain/xai/dist/chat_models/completions.js +17 -25
  10. package/dist/node_modules/@langchain/xai/dist/chat_models/index.cjs +2 -2
  11. package/dist/node_modules/@langchain/xai/dist/chat_models/index.d.cts +3 -0
  12. package/dist/node_modules/@langchain/xai/dist/chat_models/index.js +3 -2
  13. package/dist/node_modules/@langchain/xai/dist/chat_models/responses-types.d.cts +5 -12
  14. package/dist/node_modules/@langchain/xai/dist/chat_models/responses-types.d.ts +5 -12
  15. package/dist/node_modules/@langchain/xai/dist/chat_models/responses.cjs +18 -19
  16. package/dist/node_modules/@langchain/xai/dist/chat_models/responses.d.cts +1 -1
  17. package/dist/node_modules/@langchain/xai/dist/chat_models/responses.d.ts +1 -1
  18. package/dist/node_modules/@langchain/xai/dist/chat_models/responses.js +13 -13
  19. package/dist/node_modules/@langchain/xai/dist/converters/responses.cjs +16 -22
  20. package/dist/node_modules/@langchain/xai/dist/converters/responses.js +7 -12
  21. package/dist/node_modules/@langchain/xai/dist/index.cjs +2 -2
  22. package/dist/node_modules/@langchain/xai/dist/index.d.ts +0 -1
  23. package/dist/node_modules/@langchain/xai/dist/index.js +1 -2
  24. package/dist/node_modules/@langchain/xai/dist/live_search.cjs +4 -5
  25. package/dist/node_modules/@langchain/xai/dist/live_search.js +4 -4
  26. package/dist/node_modules/@langchain/xai/dist/profiles.cjs +81 -97
  27. package/dist/node_modules/@langchain/xai/dist/profiles.js +81 -96
  28. package/dist/node_modules/@langchain/xai/dist/tools/code_execution.cjs +1 -2
  29. package/dist/node_modules/@langchain/xai/dist/tools/code_execution.js +1 -1
  30. package/dist/node_modules/@langchain/xai/dist/tools/collections_search.cjs +1 -2
  31. package/dist/node_modules/@langchain/xai/dist/tools/collections_search.js +1 -1
  32. package/dist/node_modules/@langchain/xai/dist/tools/index.cjs +6 -7
  33. package/dist/node_modules/@langchain/xai/dist/tools/index.d.cts +1 -2
  34. package/dist/node_modules/@langchain/xai/dist/tools/index.d.ts +1 -2
  35. package/dist/node_modules/@langchain/xai/dist/tools/index.js +6 -7
  36. package/dist/node_modules/@langchain/xai/dist/tools/live_search.cjs +3 -7
  37. package/dist/node_modules/@langchain/xai/dist/tools/live_search.d.cts +1 -2
  38. package/dist/node_modules/@langchain/xai/dist/tools/live_search.d.ts +1 -2
  39. package/dist/node_modules/@langchain/xai/dist/tools/live_search.js +3 -6
  40. package/dist/node_modules/@langchain/xai/dist/tools/web_search.cjs +1 -2
  41. package/dist/node_modules/@langchain/xai/dist/tools/web_search.js +1 -1
  42. package/dist/node_modules/@langchain/xai/dist/tools/x_search.cjs +1 -2
  43. package/dist/node_modules/@langchain/xai/dist/tools/x_search.js +1 -1
  44. package/dist/node_modules/@langchain/xai/package.json +1 -1
  45. package/dist/node_modules/fs-extra/package.json +1 -1
  46. package/dist/node_modules/jsonrepair/package.json +1 -1
  47. package/dist/node_modules/just-bash/package.json +1 -1
  48. package/dist/node_modules/nodejs-snowflake/package.json +1 -1
  49. package/dist/node_modules/openai/_vendor/zod-to-json-schema/parsers/branded.d.mts +1 -1
  50. package/dist/node_modules/openai/_vendor/zod-to-json-schema/parsers/branded.d.ts +1 -1
  51. package/dist/node_modules/openai/_vendor/zod-to-json-schema/parsers/catch.d.mts +1 -1
  52. package/dist/node_modules/openai/_vendor/zod-to-json-schema/parsers/catch.d.ts +1 -1
  53. package/dist/node_modules/openai/_vendor/zod-to-json-schema/parsers/readonly.d.mts +1 -1
  54. package/dist/node_modules/openai/_vendor/zod-to-json-schema/parsers/readonly.d.ts +1 -1
  55. package/dist/node_modules/openai/api-promise.d.mts +1 -0
  56. package/dist/node_modules/openai/api-promise.d.ts +1 -0
  57. package/dist/node_modules/openai/auth/index.d.mts +4 -0
  58. package/dist/node_modules/openai/auth/index.d.ts +4 -0
  59. package/dist/node_modules/openai/auth/index.js +11 -0
  60. package/dist/node_modules/openai/auth/subject-token-providers.d.mts +20 -0
  61. package/dist/node_modules/openai/auth/subject-token-providers.d.ts +20 -0
  62. package/dist/node_modules/openai/auth/subject-token-providers.js +127 -0
  63. package/dist/node_modules/openai/auth/types.d.mts +23 -0
  64. package/dist/node_modules/openai/auth/types.d.ts +23 -0
  65. package/dist/node_modules/openai/auth/types.js +3 -0
  66. package/dist/node_modules/openai/auth/workload-identity-auth.d.mts +16 -0
  67. package/dist/node_modules/openai/auth/workload-identity-auth.d.ts +16 -0
  68. package/dist/node_modules/openai/auth/workload-identity-auth.js +95 -0
  69. package/dist/node_modules/openai/azure.d.mts +6 -2
  70. package/dist/node_modules/openai/azure.d.ts +6 -2
  71. package/dist/node_modules/openai/azure.js +4 -3
  72. package/dist/node_modules/openai/beta/realtime/websocket.js +7 -2
  73. package/dist/node_modules/openai/beta/realtime/ws.js +5 -1
  74. package/dist/node_modules/openai/bin/migration-config.json +1120 -0
  75. package/dist/node_modules/openai/client.d.mts +72 -10
  76. package/dist/node_modules/openai/client.d.ts +72 -10
  77. package/dist/node_modules/openai/client.js +207 -28
  78. package/dist/node_modules/openai/core/EventEmitter.d.mts +56 -0
  79. package/dist/node_modules/openai/core/EventEmitter.d.ts +56 -0
  80. package/dist/node_modules/openai/core/EventEmitter.js +93 -0
  81. package/dist/node_modules/openai/core/error.d.mts +15 -0
  82. package/dist/node_modules/openai/core/error.d.ts +15 -0
  83. package/dist/node_modules/openai/core/error.js +34 -1
  84. package/dist/node_modules/openai/core/pagination.d.mts +18 -0
  85. package/dist/node_modules/openai/core/pagination.d.ts +18 -0
  86. package/dist/node_modules/openai/core/pagination.js +32 -1
  87. package/dist/node_modules/openai/core/streaming.d.mts +1 -1
  88. package/dist/node_modules/openai/core/streaming.d.ts +1 -1
  89. package/dist/node_modules/openai/core/streaming.js +2 -2
  90. package/dist/node_modules/openai/error.d.mts +1 -0
  91. package/dist/node_modules/openai/error.d.ts +1 -0
  92. package/dist/node_modules/openai/index.d.mts +1 -1
  93. package/dist/node_modules/openai/index.d.ts +1 -1
  94. package/dist/node_modules/openai/index.js +1 -1
  95. package/dist/node_modules/openai/internal/parse.js +2 -2
  96. package/dist/node_modules/openai/internal/qs/index.d.mts +2 -2
  97. package/dist/node_modules/openai/internal/qs/index.d.ts +2 -2
  98. package/dist/node_modules/openai/internal/request-options.d.mts +5 -0
  99. package/dist/node_modules/openai/internal/request-options.d.ts +5 -0
  100. package/dist/node_modules/openai/internal/shims.d.mts +6 -0
  101. package/dist/node_modules/openai/internal/shims.d.ts +6 -0
  102. package/dist/node_modules/openai/internal/types.d.mts +17 -11
  103. package/dist/node_modules/openai/internal/types.d.ts +17 -11
  104. package/dist/node_modules/openai/internal/utils/env.js +2 -2
  105. package/dist/node_modules/openai/internal/utils/log.js +2 -0
  106. package/dist/node_modules/openai/internal/utils/query.d.mts +2 -0
  107. package/dist/node_modules/openai/internal/utils/query.d.ts +2 -0
  108. package/dist/node_modules/openai/internal/utils/query.js +10 -0
  109. package/dist/node_modules/openai/internal/utils.d.mts +1 -0
  110. package/dist/node_modules/openai/internal/utils.d.ts +1 -0
  111. package/dist/node_modules/openai/internal/utils.js +1 -0
  112. package/dist/node_modules/openai/internal/ws-adapter-browser.d.mts +34 -0
  113. package/dist/node_modules/openai/internal/ws-adapter-browser.d.ts +34 -0
  114. package/dist/node_modules/openai/internal/ws-adapter-browser.js +88 -0
  115. package/dist/node_modules/openai/internal/ws-adapter-node.d.mts +27 -0
  116. package/dist/node_modules/openai/internal/ws-adapter-node.d.ts +27 -0
  117. package/dist/node_modules/openai/internal/ws-adapter-node.js +90 -0
  118. package/dist/node_modules/openai/internal/ws-adapter.d.mts +24 -0
  119. package/dist/node_modules/openai/internal/ws-adapter.d.ts +24 -0
  120. package/dist/node_modules/openai/internal/ws-adapter.js +11 -0
  121. package/dist/node_modules/openai/internal/ws.d.mts +80 -0
  122. package/dist/node_modules/openai/internal/ws.d.ts +80 -0
  123. package/dist/node_modules/openai/internal/ws.js +153 -0
  124. package/dist/node_modules/openai/package.json +1 -1
  125. package/dist/node_modules/openai/pagination.d.mts +1 -0
  126. package/dist/node_modules/openai/pagination.d.ts +1 -0
  127. package/dist/node_modules/openai/realtime/websocket.js +7 -2
  128. package/dist/node_modules/openai/realtime/ws.js +5 -1
  129. package/dist/node_modules/openai/resource.d.mts +1 -0
  130. package/dist/node_modules/openai/resource.d.ts +1 -0
  131. package/dist/node_modules/openai/resources/admin/admin.d.mts +10 -0
  132. package/dist/node_modules/openai/resources/admin/admin.d.ts +10 -0
  133. package/dist/node_modules/openai/resources/admin/admin.js +17 -0
  134. package/dist/node_modules/openai/resources/admin/index.d.mts +3 -0
  135. package/dist/node_modules/openai/resources/admin/index.d.ts +3 -0
  136. package/dist/node_modules/openai/resources/admin/index.js +9 -0
  137. package/dist/node_modules/openai/resources/admin/organization/admin-api-keys.d.mts +140 -0
  138. package/dist/node_modules/openai/resources/admin/organization/admin-api-keys.d.ts +140 -0
  139. package/dist/node_modules/openai/resources/admin/organization/admin-api-keys.js +81 -0
  140. package/dist/node_modules/openai/resources/admin/organization/audit-logs.d.mts +1267 -0
  141. package/dist/node_modules/openai/resources/admin/organization/audit-logs.d.ts +1267 -0
  142. package/dist/node_modules/openai/resources/admin/organization/audit-logs.js +31 -0
  143. package/dist/node_modules/openai/resources/admin/organization/certificates.d.mts +322 -0
  144. package/dist/node_modules/openai/resources/admin/organization/certificates.d.ts +322 -0
  145. package/dist/node_modules/openai/resources/admin/organization/certificates.js +144 -0
  146. package/dist/node_modules/openai/resources/admin/organization/data-retention.d.mts +50 -0
  147. package/dist/node_modules/openai/resources/admin/organization/data-retention.d.ts +50 -0
  148. package/dist/node_modules/openai/resources/admin/organization/data-retention.js +42 -0
  149. package/dist/node_modules/openai/resources/admin/organization/groups/groups.d.mts +160 -0
  150. package/dist/node_modules/openai/resources/admin/organization/groups/groups.d.ts +160 -0
  151. package/dist/node_modules/openai/resources/admin/organization/groups/groups.js +109 -0
  152. package/dist/node_modules/openai/resources/admin/organization/groups/index.d.mts +4 -0
  153. package/dist/node_modules/openai/resources/admin/organization/groups/index.d.ts +4 -0
  154. package/dist/node_modules/openai/resources/admin/organization/groups/index.js +11 -0
  155. package/dist/node_modules/openai/resources/admin/organization/groups/roles.d.mts +275 -0
  156. package/dist/node_modules/openai/resources/admin/organization/groups/roles.d.ts +275 -0
  157. package/dist/node_modules/openai/resources/admin/organization/groups/roles.js +84 -0
  158. package/dist/node_modules/openai/resources/admin/organization/groups/users.d.mts +164 -0
  159. package/dist/node_modules/openai/resources/admin/organization/groups/users.d.ts +164 -0
  160. package/dist/node_modules/openai/resources/admin/organization/groups/users.js +84 -0
  161. package/dist/node_modules/openai/resources/admin/organization/groups.d.mts +2 -0
  162. package/dist/node_modules/openai/resources/admin/organization/groups.d.ts +2 -0
  163. package/dist/node_modules/openai/resources/admin/organization/groups.js +6 -0
  164. package/dist/node_modules/openai/resources/admin/organization/index.d.mts +13 -0
  165. package/dist/node_modules/openai/resources/admin/organization/index.d.ts +13 -0
  166. package/dist/node_modules/openai/resources/admin/organization/index.js +29 -0
  167. package/dist/node_modules/openai/resources/admin/organization/invites.d.mts +153 -0
  168. package/dist/node_modules/openai/resources/admin/organization/invites.d.ts +153 -0
  169. package/dist/node_modules/openai/resources/admin/organization/invites.js +83 -0
  170. package/dist/node_modules/openai/resources/admin/organization/organization.d.mts +50 -0
  171. package/dist/node_modules/openai/resources/admin/organization/organization.d.ts +50 -0
  172. package/dist/node_modules/openai/resources/admin/organization/organization.js +57 -0
  173. package/dist/node_modules/openai/resources/admin/organization/projects/api-keys.d.mts +167 -0
  174. package/dist/node_modules/openai/resources/admin/organization/projects/api-keys.d.ts +167 -0
  175. package/dist/node_modules/openai/resources/admin/organization/projects/api-keys.js +68 -0
  176. package/dist/node_modules/openai/resources/admin/organization/projects/certificates.d.mts +186 -0
  177. package/dist/node_modules/openai/resources/admin/organization/projects/certificates.d.ts +186 -0
  178. package/dist/node_modules/openai/resources/admin/organization/projects/certificates.js +64 -0
  179. package/dist/node_modules/openai/resources/admin/organization/projects/data-retention.d.mts +53 -0
  180. package/dist/node_modules/openai/resources/admin/organization/projects/data-retention.d.ts +53 -0
  181. package/dist/node_modules/openai/resources/admin/organization/projects/data-retention.js +46 -0
  182. package/dist/node_modules/openai/resources/admin/organization/projects/groups/groups.d.mts +142 -0
  183. package/dist/node_modules/openai/resources/admin/organization/projects/groups/groups.d.ts +142 -0
  184. package/dist/node_modules/openai/resources/admin/organization/projects/groups/groups.js +93 -0
  185. package/dist/node_modules/openai/resources/admin/organization/projects/groups/index.d.mts +3 -0
  186. package/dist/node_modules/openai/resources/admin/organization/projects/groups/index.d.ts +3 -0
  187. package/dist/node_modules/openai/resources/admin/organization/projects/groups/index.js +9 -0
  188. package/dist/node_modules/openai/resources/admin/organization/projects/groups/roles.d.mts +292 -0
  189. package/dist/node_modules/openai/resources/admin/organization/projects/groups/roles.d.ts +292 -0
  190. package/dist/node_modules/openai/resources/admin/organization/projects/groups/roles.js +87 -0
  191. package/dist/node_modules/openai/resources/admin/organization/projects/groups.d.mts +2 -0
  192. package/dist/node_modules/openai/resources/admin/organization/projects/groups.d.ts +2 -0
  193. package/dist/node_modules/openai/resources/admin/organization/projects/groups.js +6 -0
  194. package/dist/node_modules/openai/resources/admin/organization/projects/hosted-tool-permissions.d.mts +174 -0
  195. package/dist/node_modules/openai/resources/admin/organization/projects/hosted-tool-permissions.d.ts +174 -0
  196. package/dist/node_modules/openai/resources/admin/organization/projects/hosted-tool-permissions.js +45 -0
  197. package/dist/node_modules/openai/resources/admin/organization/projects/index.d.mts +13 -0
  198. package/dist/node_modules/openai/resources/admin/organization/projects/index.d.ts +13 -0
  199. package/dist/node_modules/openai/resources/admin/organization/projects/index.js +29 -0
  200. package/dist/node_modules/openai/resources/admin/organization/projects/model-permissions.d.mts +86 -0
  201. package/dist/node_modules/openai/resources/admin/organization/projects/model-permissions.d.ts +86 -0
  202. package/dist/node_modules/openai/resources/admin/organization/projects/model-permissions.js +63 -0
  203. package/dist/node_modules/openai/resources/admin/organization/projects/projects.d.mts +188 -0
  204. package/dist/node_modules/openai/resources/admin/organization/projects/projects.d.ts +188 -0
  205. package/dist/node_modules/openai/resources/admin/organization/projects/projects.js +149 -0
  206. package/dist/node_modules/openai/resources/admin/organization/projects/rate-limits.d.mts +120 -0
  207. package/dist/node_modules/openai/resources/admin/organization/projects/rate-limits.d.ts +120 -0
  208. package/dist/node_modules/openai/resources/admin/organization/projects/rate-limits.js +47 -0
  209. package/dist/node_modules/openai/resources/admin/organization/projects/roles.d.mts +146 -0
  210. package/dist/node_modules/openai/resources/admin/organization/projects/roles.d.ts +146 -0
  211. package/dist/node_modules/openai/resources/admin/organization/projects/roles.js +108 -0
  212. package/dist/node_modules/openai/resources/admin/organization/projects/service-accounts.d.mts +168 -0
  213. package/dist/node_modules/openai/resources/admin/organization/projects/service-accounts.d.ts +168 -0
  214. package/dist/node_modules/openai/resources/admin/organization/projects/service-accounts.js +101 -0
  215. package/dist/node_modules/openai/resources/admin/organization/projects/spend-alerts.d.mts +241 -0
  216. package/dist/node_modules/openai/resources/admin/organization/projects/spend-alerts.d.ts +241 -0
  217. package/dist/node_modules/openai/resources/admin/organization/projects/spend-alerts.js +102 -0
  218. package/dist/node_modules/openai/resources/admin/organization/projects/users/index.d.mts +3 -0
  219. package/dist/node_modules/openai/resources/admin/organization/projects/users/index.d.ts +3 -0
  220. package/dist/node_modules/openai/resources/admin/organization/projects/users/index.js +9 -0
  221. package/dist/node_modules/openai/resources/admin/organization/projects/users/roles.d.mts +266 -0
  222. package/dist/node_modules/openai/resources/admin/organization/projects/users/roles.d.ts +266 -0
  223. package/dist/node_modules/openai/resources/admin/organization/projects/users/roles.js +87 -0
  224. package/dist/node_modules/openai/resources/admin/organization/projects/users/users.d.mts +157 -0
  225. package/dist/node_modules/openai/resources/admin/organization/projects/users/users.d.ts +157 -0
  226. package/dist/node_modules/openai/resources/admin/organization/projects/users/users.js +116 -0
  227. package/dist/node_modules/openai/resources/admin/organization/projects/users.d.mts +2 -0
  228. package/dist/node_modules/openai/resources/admin/organization/projects/users.d.ts +2 -0
  229. package/dist/node_modules/openai/resources/admin/organization/projects/users.js +6 -0
  230. package/dist/node_modules/openai/resources/admin/organization/projects.d.mts +2 -0
  231. package/dist/node_modules/openai/resources/admin/organization/projects.d.ts +2 -0
  232. package/dist/node_modules/openai/resources/admin/organization/projects.js +6 -0
  233. package/dist/node_modules/openai/resources/admin/organization/roles.d.mts +153 -0
  234. package/dist/node_modules/openai/resources/admin/organization/roles.d.ts +153 -0
  235. package/dist/node_modules/openai/resources/admin/organization/roles.js +96 -0
  236. package/dist/node_modules/openai/resources/admin/organization/spend-alerts.d.mts +224 -0
  237. package/dist/node_modules/openai/resources/admin/organization/spend-alerts.d.ts +224 -0
  238. package/dist/node_modules/openai/resources/admin/organization/spend-alerts.js +93 -0
  239. package/dist/node_modules/openai/resources/admin/organization/usage.d.mts +5123 -0
  240. package/dist/node_modules/openai/resources/admin/organization/usage.d.ts +5123 -0
  241. package/dist/node_modules/openai/resources/admin/organization/usage.js +207 -0
  242. package/dist/node_modules/openai/resources/admin/organization/users/index.d.mts +3 -0
  243. package/dist/node_modules/openai/resources/admin/organization/users/index.d.ts +3 -0
  244. package/dist/node_modules/openai/resources/admin/organization/users/index.js +9 -0
  245. package/dist/node_modules/openai/resources/admin/organization/users/roles.d.mts +249 -0
  246. package/dist/node_modules/openai/resources/admin/organization/users/roles.d.ts +249 -0
  247. package/dist/node_modules/openai/resources/admin/organization/users/roles.js +84 -0
  248. package/dist/node_modules/openai/resources/admin/organization/users/users.d.mts +185 -0
  249. package/dist/node_modules/openai/resources/admin/organization/users/users.d.ts +185 -0
  250. package/dist/node_modules/openai/resources/admin/organization/users/users.js +84 -0
  251. package/dist/node_modules/openai/resources/admin/organization/users.d.mts +2 -0
  252. package/dist/node_modules/openai/resources/admin/organization/users.d.ts +2 -0
  253. package/dist/node_modules/openai/resources/admin/organization/users.js +6 -0
  254. package/dist/node_modules/openai/resources/admin/organization.d.mts +2 -0
  255. package/dist/node_modules/openai/resources/admin/organization.d.ts +2 -0
  256. package/dist/node_modules/openai/resources/admin/organization.js +6 -0
  257. package/dist/node_modules/openai/resources/admin.d.mts +2 -0
  258. package/dist/node_modules/openai/resources/admin.d.ts +2 -0
  259. package/dist/node_modules/openai/resources/admin.js +6 -0
  260. package/dist/node_modules/openai/resources/audio/speech.d.mts +22 -5
  261. package/dist/node_modules/openai/resources/audio/speech.d.ts +22 -5
  262. package/dist/node_modules/openai/resources/audio/speech.js +8 -2
  263. package/dist/node_modules/openai/resources/audio/transcriptions.d.mts +6 -0
  264. package/dist/node_modules/openai/resources/audio/transcriptions.d.ts +6 -0
  265. package/dist/node_modules/openai/resources/audio/transcriptions.js +4 -0
  266. package/dist/node_modules/openai/resources/audio/translations.d.mts +3 -0
  267. package/dist/node_modules/openai/resources/audio/translations.d.ts +3 -0
  268. package/dist/node_modules/openai/resources/audio/translations.js +4 -1
  269. package/dist/node_modules/openai/resources/batches.d.mts +8 -4
  270. package/dist/node_modules/openai/resources/batches.d.ts +8 -4
  271. package/dist/node_modules/openai/resources/batches.js +14 -4
  272. package/dist/node_modules/openai/resources/beta/assistants.d.mts +6 -2
  273. package/dist/node_modules/openai/resources/beta/assistants.d.ts +6 -2
  274. package/dist/node_modules/openai/resources/beta/assistants.js +8 -0
  275. package/dist/node_modules/openai/resources/beta/chatkit/sessions.d.mts +4 -2
  276. package/dist/node_modules/openai/resources/beta/chatkit/sessions.d.ts +4 -2
  277. package/dist/node_modules/openai/resources/beta/chatkit/sessions.js +6 -2
  278. package/dist/node_modules/openai/resources/beta/chatkit/threads.d.mts +4 -4
  279. package/dist/node_modules/openai/resources/beta/chatkit/threads.d.ts +4 -4
  280. package/dist/node_modules/openai/resources/beta/chatkit/threads.js +13 -5
  281. package/dist/node_modules/openai/resources/beta/realtime/sessions.js +1 -0
  282. package/dist/node_modules/openai/resources/beta/realtime/transcription-sessions.js +1 -0
  283. package/dist/node_modules/openai/resources/beta/threads/messages.d.mts +2 -0
  284. package/dist/node_modules/openai/resources/beta/threads/messages.d.ts +2 -0
  285. package/dist/node_modules/openai/resources/beta/threads/messages.js +7 -0
  286. package/dist/node_modules/openai/resources/beta/threads/runs/runs.d.mts +2 -0
  287. package/dist/node_modules/openai/resources/beta/threads/runs/runs.d.ts +2 -0
  288. package/dist/node_modules/openai/resources/beta/threads/runs/runs.js +10 -0
  289. package/dist/node_modules/openai/resources/beta/threads/runs/steps.d.mts +2 -0
  290. package/dist/node_modules/openai/resources/beta/threads/runs/steps.d.ts +2 -0
  291. package/dist/node_modules/openai/resources/beta/threads/runs/steps.js +4 -0
  292. package/dist/node_modules/openai/resources/beta/threads/threads.d.mts +8 -4
  293. package/dist/node_modules/openai/resources/beta/threads/threads.d.ts +8 -4
  294. package/dist/node_modules/openai/resources/beta/threads/threads.js +8 -0
  295. package/dist/node_modules/openai/resources/chat/completions/completions.d.mts +37 -18
  296. package/dist/node_modules/openai/resources/chat/completions/completions.d.ts +37 -18
  297. package/dist/node_modules/openai/resources/chat/completions/completions.js +27 -5
  298. package/dist/node_modules/openai/resources/chat/completions/messages.d.mts +3 -0
  299. package/dist/node_modules/openai/resources/chat/completions/messages.d.ts +3 -0
  300. package/dist/node_modules/openai/resources/chat/completions/messages.js +4 -1
  301. package/dist/node_modules/openai/resources/completions.d.mts +9 -3
  302. package/dist/node_modules/openai/resources/completions.d.ts +9 -3
  303. package/dist/node_modules/openai/resources/completions.js +9 -1
  304. package/dist/node_modules/openai/resources/containers/containers.js +11 -3
  305. package/dist/node_modules/openai/resources/containers/files/content.js +1 -0
  306. package/dist/node_modules/openai/resources/containers/files/files.js +7 -2
  307. package/dist/node_modules/openai/resources/conversations/conversations.d.mts +15 -0
  308. package/dist/node_modules/openai/resources/conversations/conversations.d.ts +15 -0
  309. package/dist/node_modules/openai/resources/conversations/conversations.js +17 -4
  310. package/dist/node_modules/openai/resources/conversations/items.d.mts +4 -1
  311. package/dist/node_modules/openai/resources/conversations/items.d.ts +4 -1
  312. package/dist/node_modules/openai/resources/conversations/items.js +14 -3
  313. package/dist/node_modules/openai/resources/embeddings.d.mts +3 -0
  314. package/dist/node_modules/openai/resources/embeddings.d.ts +3 -0
  315. package/dist/node_modules/openai/resources/embeddings.js +4 -0
  316. package/dist/node_modules/openai/resources/evals/evals.d.mts +3 -0
  317. package/dist/node_modules/openai/resources/evals/evals.d.ts +3 -0
  318. package/dist/node_modules/openai/resources/evals/evals.js +12 -5
  319. package/dist/node_modules/openai/resources/evals/runs/output-items.d.mts +3 -0
  320. package/dist/node_modules/openai/resources/evals/runs/output-items.d.ts +3 -0
  321. package/dist/node_modules/openai/resources/evals/runs/output-items.js +8 -2
  322. package/dist/node_modules/openai/resources/evals/runs/runs.d.mts +3 -0
  323. package/dist/node_modules/openai/resources/evals/runs/runs.d.ts +3 -0
  324. package/dist/node_modules/openai/resources/evals/runs/runs.js +21 -4
  325. package/dist/node_modules/openai/resources/files.d.mts +11 -1
  326. package/dist/node_modules/openai/resources/files.d.ts +11 -1
  327. package/dist/node_modules/openai/resources/files.js +20 -5
  328. package/dist/node_modules/openai/resources/fine-tuning/alpha/graders.d.mts +3 -0
  329. package/dist/node_modules/openai/resources/fine-tuning/alpha/graders.d.ts +3 -0
  330. package/dist/node_modules/openai/resources/fine-tuning/alpha/graders.js +13 -2
  331. package/dist/node_modules/openai/resources/fine-tuning/checkpoints/checkpoints.d.mts +2 -2
  332. package/dist/node_modules/openai/resources/fine-tuning/checkpoints/checkpoints.d.ts +2 -2
  333. package/dist/node_modules/openai/resources/fine-tuning/checkpoints/index.d.mts +1 -1
  334. package/dist/node_modules/openai/resources/fine-tuning/checkpoints/index.d.ts +1 -1
  335. package/dist/node_modules/openai/resources/fine-tuning/checkpoints/permissions.d.mts +54 -7
  336. package/dist/node_modules/openai/resources/fine-tuning/checkpoints/permissions.d.ts +54 -7
  337. package/dist/node_modules/openai/resources/fine-tuning/checkpoints/permissions.js +26 -9
  338. package/dist/node_modules/openai/resources/fine-tuning/jobs/checkpoints.d.mts +3 -0
  339. package/dist/node_modules/openai/resources/fine-tuning/jobs/checkpoints.d.ts +3 -0
  340. package/dist/node_modules/openai/resources/fine-tuning/jobs/checkpoints.js +4 -1
  341. package/dist/node_modules/openai/resources/fine-tuning/jobs/jobs.d.mts +3 -0
  342. package/dist/node_modules/openai/resources/fine-tuning/jobs/jobs.d.ts +3 -0
  343. package/dist/node_modules/openai/resources/fine-tuning/jobs/jobs.js +26 -7
  344. package/dist/node_modules/openai/resources/images.d.mts +56 -24
  345. package/dist/node_modules/openai/resources/images.d.ts +56 -24
  346. package/dist/node_modules/openai/resources/images.js +11 -3
  347. package/dist/node_modules/openai/resources/index.d.mts +2 -1
  348. package/dist/node_modules/openai/resources/index.d.ts +2 -1
  349. package/dist/node_modules/openai/resources/index.js +3 -1
  350. package/dist/node_modules/openai/resources/models.d.mts +3 -0
  351. package/dist/node_modules/openai/resources/models.d.ts +3 -0
  352. package/dist/node_modules/openai/resources/models.js +6 -3
  353. package/dist/node_modules/openai/resources/moderations.d.mts +3 -0
  354. package/dist/node_modules/openai/resources/moderations.d.ts +3 -0
  355. package/dist/node_modules/openai/resources/moderations.js +4 -1
  356. package/dist/node_modules/openai/resources/realtime/calls.d.mts +13 -3
  357. package/dist/node_modules/openai/resources/realtime/calls.d.ts +13 -3
  358. package/dist/node_modules/openai/resources/realtime/calls.js +4 -0
  359. package/dist/node_modules/openai/resources/realtime/client-secrets.d.mts +45 -39
  360. package/dist/node_modules/openai/resources/realtime/client-secrets.d.ts +45 -39
  361. package/dist/node_modules/openai/resources/realtime/client-secrets.js +19 -1
  362. package/dist/node_modules/openai/resources/realtime/index.d.mts +1 -1
  363. package/dist/node_modules/openai/resources/realtime/index.d.ts +1 -1
  364. package/dist/node_modules/openai/resources/realtime/realtime.d.mts +592 -21
  365. package/dist/node_modules/openai/resources/realtime/realtime.d.ts +592 -21
  366. package/dist/node_modules/openai/resources/responses/index.d.mts +2 -0
  367. package/dist/node_modules/openai/resources/responses/index.d.ts +2 -0
  368. package/dist/node_modules/openai/resources/responses/input-items.js +1 -1
  369. package/dist/node_modules/openai/resources/responses/input-tokens.d.mts +4 -1
  370. package/dist/node_modules/openai/resources/responses/input-tokens.d.ts +4 -1
  371. package/dist/node_modules/openai/resources/responses/input-tokens.js +9 -2
  372. package/dist/node_modules/openai/resources/responses/internal-base.d.mts +71 -0
  373. package/dist/node_modules/openai/resources/responses/internal-base.d.ts +71 -0
  374. package/dist/node_modules/openai/resources/responses/internal-base.js +48 -0
  375. package/dist/node_modules/openai/resources/responses/responses.d.mts +956 -64
  376. package/dist/node_modules/openai/resources/responses/responses.d.ts +956 -64
  377. package/dist/node_modules/openai/resources/responses/responses.js +20 -5
  378. package/dist/node_modules/openai/resources/responses/ws-base.d.mts +106 -0
  379. package/dist/node_modules/openai/resources/responses/ws-base.d.ts +106 -0
  380. package/dist/node_modules/openai/resources/responses/ws-base.js +476 -0
  381. package/dist/node_modules/openai/resources/responses/ws.d.mts +13 -0
  382. package/dist/node_modules/openai/resources/responses/ws.d.ts +13 -0
  383. package/dist/node_modules/openai/resources/responses/ws.js +31 -0
  384. package/dist/node_modules/openai/resources/shared.d.mts +3 -2
  385. package/dist/node_modules/openai/resources/shared.d.ts +3 -2
  386. package/dist/node_modules/openai/resources/skills/content.d.mts +1 -1
  387. package/dist/node_modules/openai/resources/skills/content.d.ts +1 -1
  388. package/dist/node_modules/openai/resources/skills/content.js +2 -1
  389. package/dist/node_modules/openai/resources/skills/skills.d.mts +5 -5
  390. package/dist/node_modules/openai/resources/skills/skills.d.ts +5 -5
  391. package/dist/node_modules/openai/resources/skills/skills.js +18 -10
  392. package/dist/node_modules/openai/resources/skills/versions/content.d.mts +1 -1
  393. package/dist/node_modules/openai/resources/skills/versions/content.d.ts +1 -1
  394. package/dist/node_modules/openai/resources/skills/versions/content.js +2 -1
  395. package/dist/node_modules/openai/resources/skills/versions/versions.d.mts +4 -4
  396. package/dist/node_modules/openai/resources/skills/versions/versions.d.ts +4 -4
  397. package/dist/node_modules/openai/resources/skills/versions/versions.js +14 -7
  398. package/dist/node_modules/openai/resources/uploads/parts.d.mts +3 -0
  399. package/dist/node_modules/openai/resources/uploads/parts.d.ts +3 -0
  400. package/dist/node_modules/openai/resources/uploads/parts.js +4 -1
  401. package/dist/node_modules/openai/resources/uploads/uploads.d.mts +10 -1
  402. package/dist/node_modules/openai/resources/uploads/uploads.d.ts +10 -1
  403. package/dist/node_modules/openai/resources/uploads/uploads.js +20 -4
  404. package/dist/node_modules/openai/resources/vector-stores/file-batches.d.mts +9 -3
  405. package/dist/node_modules/openai/resources/vector-stores/file-batches.d.ts +9 -3
  406. package/dist/node_modules/openai/resources/vector-stores/file-batches.js +9 -1
  407. package/dist/node_modules/openai/resources/vector-stores/files.d.mts +3 -1
  408. package/dist/node_modules/openai/resources/vector-stores/files.d.ts +3 -1
  409. package/dist/node_modules/openai/resources/vector-stores/files.js +10 -1
  410. package/dist/node_modules/openai/resources/vector-stores/vector-stores.js +6 -0
  411. package/dist/node_modules/openai/resources/videos.d.mts +123 -11
  412. package/dist/node_modules/openai/resources/videos.d.ts +123 -11
  413. package/dist/node_modules/openai/resources/videos.js +46 -11
  414. package/dist/node_modules/openai/src/auth/index.ts +9 -0
  415. package/dist/node_modules/openai/src/auth/subject-token-providers.ts +185 -0
  416. package/dist/node_modules/openai/src/auth/types.ts +28 -0
  417. package/dist/node_modules/openai/src/auth/workload-identity-auth.ts +122 -0
  418. package/dist/node_modules/openai/src/azure.ts +9 -4
  419. package/dist/node_modules/openai/src/beta/realtime/websocket.ts +7 -2
  420. package/dist/node_modules/openai/src/beta/realtime/ws.ts +5 -1
  421. package/dist/node_modules/openai/src/client.ts +312 -35
  422. package/dist/node_modules/openai/src/core/EventEmitter.ts +114 -0
  423. package/dist/node_modules/openai/src/core/error.ts +40 -0
  424. package/dist/node_modules/openai/src/core/pagination.ts +62 -0
  425. package/dist/node_modules/openai/src/core/streaming.ts +2 -1
  426. package/dist/node_modules/openai/src/index.ts +2 -0
  427. package/dist/node_modules/openai/src/internal/parse.ts +12 -2
  428. package/dist/node_modules/openai/src/internal/request-options.ts +2 -0
  429. package/dist/node_modules/openai/src/internal/types.ts +14 -8
  430. package/dist/node_modules/openai/src/internal/utils/env.ts +2 -2
  431. package/dist/node_modules/openai/src/internal/utils/log.ts +2 -0
  432. package/dist/node_modules/openai/src/internal/utils/query.ts +7 -0
  433. package/dist/node_modules/openai/src/internal/utils.ts +1 -0
  434. package/dist/node_modules/openai/src/internal/ws-adapter-browser.ts +123 -0
  435. package/dist/node_modules/openai/src/internal/ws-adapter-node.ts +105 -0
  436. package/dist/node_modules/openai/src/internal/ws-adapter.ts +30 -0
  437. package/dist/node_modules/openai/src/internal/ws.ts +193 -0
  438. package/dist/node_modules/openai/src/realtime/websocket.ts +7 -2
  439. package/dist/node_modules/openai/src/realtime/ws.ts +5 -1
  440. package/dist/node_modules/openai/src/resources/admin/admin.ts +15 -0
  441. package/dist/node_modules/openai/src/resources/admin/index.ts +4 -0
  442. package/dist/node_modules/openai/src/resources/admin/organization/admin-api-keys.ts +199 -0
  443. package/dist/node_modules/openai/src/resources/admin/organization/audit-logs.ts +1597 -0
  444. package/dist/node_modules/openai/src/resources/admin/organization/certificates.ts +458 -0
  445. package/dist/node_modules/openai/src/resources/admin/organization/data-retention.ts +79 -0
  446. package/dist/node_modules/openai/src/resources/admin/organization/groups/groups.ts +277 -0
  447. package/dist/node_modules/openai/src/resources/admin/organization/groups/index.ts +36 -0
  448. package/dist/node_modules/openai/src/resources/admin/organization/groups/roles.ts +359 -0
  449. package/dist/node_modules/openai/src/resources/admin/organization/groups/users.ts +232 -0
  450. package/dist/node_modules/openai/src/resources/admin/organization/groups.ts +3 -0
  451. package/dist/node_modules/openai/src/resources/admin/organization/index.ts +117 -0
  452. package/dist/node_modules/openai/src/resources/admin/organization/invites.ts +215 -0
  453. package/dist/node_modules/openai/src/resources/admin/organization/organization.ts +272 -0
  454. package/dist/node_modules/openai/src/resources/admin/organization/projects/api-keys.ts +239 -0
  455. package/dist/node_modules/openai/src/resources/admin/organization/projects/certificates.ts +269 -0
  456. package/dist/node_modules/openai/src/resources/admin/organization/projects/data-retention.ts +91 -0
  457. package/dist/node_modules/openai/src/resources/admin/organization/projects/groups/groups.ts +231 -0
  458. package/dist/node_modules/openai/src/resources/admin/organization/projects/groups/index.ts +24 -0
  459. package/dist/node_modules/openai/src/resources/admin/organization/projects/groups/roles.ts +386 -0
  460. package/dist/node_modules/openai/src/resources/admin/organization/projects/groups.ts +3 -0
  461. package/dist/node_modules/openai/src/resources/admin/organization/projects/hosted-tool-permissions.ts +217 -0
  462. package/dist/node_modules/openai/src/resources/admin/organization/projects/index.ts +102 -0
  463. package/dist/node_modules/openai/src/resources/admin/organization/projects/model-permissions.ts +123 -0
  464. package/dist/node_modules/openai/src/resources/admin/organization/projects/projects.ts +445 -0
  465. package/dist/node_modules/openai/src/resources/admin/organization/projects/rate-limits.ts +173 -0
  466. package/dist/node_modules/openai/src/resources/admin/organization/projects/roles.ts +210 -0
  467. package/dist/node_modules/openai/src/resources/admin/organization/projects/service-accounts.ts +266 -0
  468. package/dist/node_modules/openai/src/resources/admin/organization/projects/spend-alerts.ts +332 -0
  469. package/dist/node_modules/openai/src/resources/admin/organization/projects/users/index.ts +25 -0
  470. package/dist/node_modules/openai/src/resources/admin/organization/projects/users/roles.ts +351 -0
  471. package/dist/node_modules/openai/src/resources/admin/organization/projects/users/users.ts +256 -0
  472. package/dist/node_modules/openai/src/resources/admin/organization/projects/users.ts +3 -0
  473. package/dist/node_modules/openai/src/resources/admin/organization/projects.ts +3 -0
  474. package/dist/node_modules/openai/src/resources/admin/organization/roles.ts +217 -0
  475. package/dist/node_modules/openai/src/resources/admin/organization/spend-alerts.ts +301 -0
  476. package/dist/node_modules/openai/src/resources/admin/organization/usage.ts +6427 -0
  477. package/dist/node_modules/openai/src/resources/admin/organization/users/index.ts +22 -0
  478. package/dist/node_modules/openai/src/resources/admin/organization/users/roles.ts +328 -0
  479. package/dist/node_modules/openai/src/resources/admin/organization/users/users.ts +291 -0
  480. package/dist/node_modules/openai/src/resources/admin/organization/users.ts +3 -0
  481. package/dist/node_modules/openai/src/resources/admin/organization.ts +3 -0
  482. package/dist/node_modules/openai/src/resources/admin.ts +3 -0
  483. package/dist/node_modules/openai/src/resources/audio/speech.ts +26 -6
  484. package/dist/node_modules/openai/src/resources/audio/transcriptions.ts +7 -0
  485. package/dist/node_modules/openai/src/resources/audio/translations.ts +7 -1
  486. package/dist/node_modules/openai/src/resources/batches.ts +20 -8
  487. package/dist/node_modules/openai/src/resources/beta/assistants.ts +11 -2
  488. package/dist/node_modules/openai/src/resources/beta/chatkit/sessions.ts +6 -2
  489. package/dist/node_modules/openai/src/resources/beta/chatkit/threads.ts +13 -5
  490. package/dist/node_modules/openai/src/resources/beta/realtime/sessions.ts +1 -0
  491. package/dist/node_modules/openai/src/resources/beta/realtime/transcription-sessions.ts +1 -0
  492. package/dist/node_modules/openai/src/resources/beta/threads/messages.ts +7 -0
  493. package/dist/node_modules/openai/src/resources/beta/threads/runs/runs.ts +10 -0
  494. package/dist/node_modules/openai/src/resources/beta/threads/runs/steps.ts +4 -0
  495. package/dist/node_modules/openai/src/resources/beta/threads/threads.ts +14 -4
  496. package/dist/node_modules/openai/src/resources/chat/completions/completions.ts +64 -27
  497. package/dist/node_modules/openai/src/resources/chat/completions/messages.ts +4 -1
  498. package/dist/node_modules/openai/src/resources/completions.ts +15 -6
  499. package/dist/node_modules/openai/src/resources/containers/containers.ts +11 -3
  500. package/dist/node_modules/openai/src/resources/containers/files/content.ts +1 -0
  501. package/dist/node_modules/openai/src/resources/containers/files/files.ts +7 -2
  502. package/dist/node_modules/openai/src/resources/conversations/conversations.ts +31 -4
  503. package/dist/node_modules/openai/src/resources/conversations/items.ts +17 -3
  504. package/dist/node_modules/openai/src/resources/embeddings.ts +4 -0
  505. package/dist/node_modules/openai/src/resources/evals/evals.ts +12 -5
  506. package/dist/node_modules/openai/src/resources/evals/runs/output-items.ts +8 -2
  507. package/dist/node_modules/openai/src/resources/evals/runs/runs.ts +21 -4
  508. package/dist/node_modules/openai/src/resources/files.ts +23 -5
  509. package/dist/node_modules/openai/src/resources/fine-tuning/alpha/graders.ts +13 -2
  510. package/dist/node_modules/openai/src/resources/fine-tuning/checkpoints/checkpoints.ts +6 -0
  511. package/dist/node_modules/openai/src/resources/fine-tuning/checkpoints/index.ts +3 -0
  512. package/dist/node_modules/openai/src/resources/fine-tuning/checkpoints/permissions.ts +84 -10
  513. package/dist/node_modules/openai/src/resources/fine-tuning/jobs/checkpoints.ts +4 -1
  514. package/dist/node_modules/openai/src/resources/fine-tuning/jobs/jobs.ts +26 -7
  515. package/dist/node_modules/openai/src/resources/images.ts +74 -27
  516. package/dist/node_modules/openai/src/resources/index.ts +7 -0
  517. package/dist/node_modules/openai/src/resources/models.ts +6 -3
  518. package/dist/node_modules/openai/src/resources/moderations.ts +4 -1
  519. package/dist/node_modules/openai/src/resources/realtime/calls.ts +21 -2
  520. package/dist/node_modules/openai/src/resources/realtime/client-secrets.ts +54 -40
  521. package/dist/node_modules/openai/src/resources/realtime/index.ts +0 -1
  522. package/dist/node_modules/openai/src/resources/realtime/realtime.ts +705 -20
  523. package/dist/node_modules/openai/src/resources/responses/index.ts +2 -0
  524. package/dist/node_modules/openai/src/resources/responses/input-items.ts +1 -1
  525. package/dist/node_modules/openai/src/resources/responses/input-tokens.ts +9 -2
  526. package/dist/node_modules/openai/src/resources/responses/internal-base.ts +113 -0
  527. package/dist/node_modules/openai/src/resources/responses/responses.ts +1314 -143
  528. package/dist/node_modules/openai/src/resources/responses/ws-base.ts +611 -0
  529. package/dist/node_modules/openai/src/resources/responses/ws.ts +38 -0
  530. package/dist/node_modules/openai/src/resources/shared.ts +9 -1
  531. package/dist/node_modules/openai/src/resources/skills/content.ts +2 -1
  532. package/dist/node_modules/openai/src/resources/skills/skills.ts +21 -10
  533. package/dist/node_modules/openai/src/resources/skills/versions/content.ts +2 -1
  534. package/dist/node_modules/openai/src/resources/skills/versions/versions.ts +14 -7
  535. package/dist/node_modules/openai/src/resources/uploads/parts.ts +4 -1
  536. package/dist/node_modules/openai/src/resources/uploads/uploads.ts +20 -4
  537. package/dist/node_modules/openai/src/resources/vector-stores/file-batches.ts +18 -4
  538. package/dist/node_modules/openai/src/resources/vector-stores/files.ts +13 -2
  539. package/dist/node_modules/openai/src/resources/vector-stores/vector-stores.ts +6 -0
  540. package/dist/node_modules/openai/src/resources/videos.ts +186 -16
  541. package/dist/node_modules/openai/src/version.ts +1 -1
  542. package/dist/node_modules/openai/streaming.d.mts +1 -0
  543. package/dist/node_modules/openai/streaming.d.ts +1 -0
  544. package/dist/node_modules/openai/uploads.d.mts +1 -0
  545. package/dist/node_modules/openai/uploads.d.ts +1 -0
  546. package/dist/node_modules/openai/version.d.mts +1 -1
  547. package/dist/node_modules/openai/version.d.ts +1 -1
  548. package/dist/node_modules/openai/version.js +1 -1
  549. package/dist/node_modules/zod/package.json +1 -1
  550. package/dist/server/ai-employees/ai-employee.d.ts +1 -1
  551. package/package.json +13 -13
  552. package/dist/node_modules/@langchain/xai/dist/_virtual/rolldown_runtime.cjs +0 -25
@@ -0,0 +1,611 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { ResponsesEmitter, ResponsesStreamMessage, WebSocketError, buildURL } from './internal-base';
4
+ import { InternalEventEmitter } from '../../core/EventEmitter';
5
+ import { sleep } from '../../internal/utils/sleep';
6
+ import { type WebSocketLike, ReadyState } from '../../internal/ws-adapter';
7
+ import {
8
+ SendQueue,
9
+ flattenRawData,
10
+ isRecoverableClose,
11
+ type RawWebSocketData,
12
+ type ReconnectingEvent,
13
+ type ReconnectingOverrides,
14
+ type UnsentMessage,
15
+ } from '../../internal/ws';
16
+ import * as ResponsesAPI from './responses';
17
+ import { OpenAI } from '../../client';
18
+ import { OpenAIError } from '../../core/error';
19
+
20
+ export interface ResponsesWSReconnectOptions {
21
+ /**
22
+ * Called before each reconnect attempt. Return an object with
23
+ * `parameters` to override query parameters for the next connection.
24
+ */
25
+ onReconnecting(
26
+ event: ReconnectingEvent<Record<string, unknown>>,
27
+ ): ReconnectingOverrides<Record<string, unknown>> | void;
28
+
29
+ /**
30
+ * Maximum number of reconnection attempts. Default: 5.
31
+ * Set to 0 to disable reconnection entirely.
32
+ */
33
+ maxRetries?: number;
34
+
35
+ /**
36
+ * Initial backoff delay in milliseconds. Default: 500.
37
+ */
38
+ initialDelay?: number;
39
+
40
+ /**
41
+ * Maximum backoff delay in milliseconds. Default: 8000.
42
+ */
43
+ maxDelay?: number;
44
+ }
45
+
46
+ export interface ResponsesWSBaseOptions {
47
+ /**
48
+ * Options for automatic reconnection on recoverable close codes.
49
+ * Automatic reconnection is only enabled when this has a non-null value.
50
+ */
51
+ reconnect?: ResponsesWSReconnectOptions | null | undefined;
52
+
53
+ /**
54
+ * Maximum size of the outgoing message queue in bytes.
55
+ * Messages queued while the socket is connecting or reconnecting are held
56
+ * in memory up to this limit. Once the limit is reached, new messages are
57
+ * discarded and an `error` event is emitted.
58
+ * Default: 1 MB
59
+ */
60
+ maxQueueSize?: number | undefined;
61
+ }
62
+
63
+ export abstract class ResponsesWSBase<TSocket extends WebSocketLike> extends ResponsesEmitter {
64
+ url!: URL;
65
+ socket!: TSocket;
66
+
67
+ protected _client: OpenAI;
68
+ protected _parameters: Record<string, unknown> | null | undefined;
69
+ private _reconnectOptions: ResponsesWSReconnectOptions | null;
70
+ private _sendQueue: SendQueue<ResponsesAPI.ResponsesClientEvent>;
71
+ private _isReconnecting: boolean = false;
72
+ private _intentionallyClosed = false;
73
+ private _closeCode: number = 1000;
74
+ private _closeReason: string = 'OK';
75
+ private _lastCloseCode: number = 1006;
76
+ private _lastCloseReason: string = '';
77
+
78
+ // Necessary to keep the public event interface clean while we manage reconnecting
79
+ private _internalEvents = new InternalEventEmitter<{
80
+ socketSwap: (oldSocket: TSocket, newSocket: TSocket) => void;
81
+ reconnecting: (event: ReconnectingEvent<Record<string, unknown>>) => void;
82
+ reconnected: () => void;
83
+ close: (code: number, reason: string, unsent: UnsentMessage<ResponsesAPI.ResponsesClientEvent>[]) => void;
84
+ }>();
85
+
86
+ constructor(client: OpenAI, options?: ResponsesWSBaseOptions | undefined) {
87
+ super();
88
+ this._client = client;
89
+ this._parameters = undefined;
90
+ this._reconnectOptions = options?.reconnect ?? null;
91
+ this._sendQueue = new SendQueue<ResponsesAPI.ResponsesClientEvent>(options?.maxQueueSize);
92
+ }
93
+
94
+ /** Establishes the initial WebSocket connection. */
95
+ protected _connectInitial(): void {
96
+ this.url = buildURL(this._client, {});
97
+ this.socket = this._connect();
98
+ }
99
+
100
+ /** Creates a platform-specific WebSocket for the given URL and auth headers. */
101
+ protected abstract _createSocket(url: URL, authHeaders: Record<string, string>): TSocket;
102
+
103
+ send(event: ResponsesAPI.ResponsesClientEvent) {
104
+ if (!this.socket) {
105
+ throw new OpenAIError('Internal error: failed to initialize socket. Please report this issue.');
106
+ }
107
+
108
+ if (this._isReconnecting || this.socket.readyState === ReadyState.CONNECTING) {
109
+ if (!this._sendQueue.enqueue(event)) {
110
+ this._onError(null, 'send queue is full, message discarded', undefined);
111
+ }
112
+ return;
113
+ }
114
+ if (this.socket.readyState !== ReadyState.OPEN) {
115
+ this._onError(null, 'cannot send on a closed WebSocket', undefined);
116
+ return;
117
+ }
118
+ try {
119
+ this.socket.send(JSON.stringify(event));
120
+ } catch (err) {
121
+ this._onError(null, 'could not send data', err);
122
+ }
123
+ }
124
+
125
+ sendRaw(data: RawWebSocketData) {
126
+ if (!this.socket) {
127
+ throw new OpenAIError('Internal error: failed to initialize socket. Please report this issue.');
128
+ }
129
+
130
+ if (this._isReconnecting || this.socket.readyState === ReadyState.CONNECTING) {
131
+ if (!this._sendQueue.enqueueRaw(data)) {
132
+ this._onError(null, 'send queue is full, message discarded', undefined);
133
+ }
134
+ return;
135
+ }
136
+ if (this.socket.readyState !== ReadyState.OPEN) {
137
+ this._onError(null, 'cannot send on a closed WebSocket', undefined);
138
+ return;
139
+ }
140
+ try {
141
+ this.socket.send(flattenRawData(data));
142
+ } catch (err) {
143
+ this._onError(null, 'could not send data', err);
144
+ }
145
+ }
146
+
147
+ close(props?: { code: number; reason: string }) {
148
+ if (!this.socket) {
149
+ throw new OpenAIError('Internal error: failed to initialize socket. Please report this issue.');
150
+ }
151
+
152
+ this._intentionallyClosed = true;
153
+ this._closeCode = props?.code ?? 1000;
154
+ this._closeReason = props?.reason ?? 'OK';
155
+ try {
156
+ this.socket.close(this._closeCode, this._closeReason);
157
+ } catch (err) {
158
+ this._onError(null, 'could not close the connection', err);
159
+ }
160
+ }
161
+
162
+ /**
163
+ * Returns an async iterator over WebSocket lifecycle and message events,
164
+ * providing an alternative to the event-based `.on()` API.
165
+ * The iterator will exit if the socket closes but exiting the iterator
166
+ * does not close the socket.
167
+ *
168
+ * @example
169
+ * ```ts
170
+ * for await (const event of client.stream()) {
171
+ * switch (event.type) {
172
+ * case 'message':
173
+ * console.log('received:', event.message);
174
+ * break;
175
+ * case 'error':
176
+ * console.error(event.error);
177
+ * break;
178
+ * case 'close':
179
+ * console.log('connection closed');
180
+ * break;
181
+ * }
182
+ * }
183
+ * ```
184
+ */
185
+ stream(): AsyncIterableIterator<ResponsesStreamMessage> {
186
+ return this[Symbol.asyncIterator]();
187
+ }
188
+
189
+ [Symbol.asyncIterator](): AsyncIterableIterator<ResponsesStreamMessage> {
190
+ if (!this.socket) {
191
+ throw new OpenAIError('Internal error: failed to initialize socket. Please report this issue.');
192
+ }
193
+
194
+ // Two-queue async iterator: `queue` buffers incoming messages,
195
+ // `resolvers` buffers waiting next() calls. A push wakes the
196
+ // oldest next(); a next() drains the oldest message.
197
+ const queue: ResponsesStreamMessage[] = [];
198
+ const resolvers: (() => void)[] = [];
199
+ let done = false;
200
+ let currentSocket = this.socket;
201
+
202
+ const push = (msg: ResponsesStreamMessage) => {
203
+ queue.push(msg);
204
+ resolvers.shift()?.();
205
+ };
206
+
207
+ const onEvent = (event: ResponsesAPI.ResponsesServerEvent) => {
208
+ if (event.type === 'error') return; // handled by onEmitterError
209
+ push({ type: 'message', message: event });
210
+ };
211
+
212
+ const onRaw = (data: RawWebSocketData) => {
213
+ push({ type: 'raw', data });
214
+ };
215
+
216
+ // All errors (API + socket) funnel through _onError → 'error' event
217
+ const onEmitterError = (err: WebSocketError) => {
218
+ push({ type: 'error', error: err });
219
+ };
220
+
221
+ const onOpen = () => {
222
+ push({ type: 'open' });
223
+ };
224
+
225
+ const onReconnecting = (evt: ReconnectingEvent<Record<string, unknown>>) => {
226
+ push({ type: 'reconnecting', reconnect: evt });
227
+ };
228
+
229
+ const onReconnected = () => {
230
+ push({ type: 'reconnected' });
231
+ };
232
+
233
+ const flushResolvers = () => {
234
+ for (let resolver = resolvers.shift(); resolver; resolver = resolvers.shift()) {
235
+ resolver();
236
+ }
237
+ };
238
+
239
+ const onClose = (
240
+ code: number,
241
+ reason: string,
242
+ unsent: UnsentMessage<ResponsesAPI.ResponsesClientEvent>[],
243
+ ) => {
244
+ push({ type: 'close', code, reason, unsent });
245
+ done = true;
246
+ flushResolvers();
247
+ cleanup();
248
+ };
249
+
250
+ const onSocketSwap = (oldSocket: TSocket, newSocket: TSocket) => {
251
+ oldSocket.off('open', onOpen);
252
+ newSocket.on('open', onOpen);
253
+ currentSocket = newSocket;
254
+ };
255
+
256
+ const cleanup = () => {
257
+ this.off('event', onEvent);
258
+ this.off('raw', onRaw);
259
+ this.off('error', onEmitterError);
260
+ currentSocket.off('open', onOpen);
261
+ this._internalEvents.off('close', onClose);
262
+ this._internalEvents.off('socketSwap', onSocketSwap);
263
+ this._internalEvents.off('reconnecting', onReconnecting);
264
+ this._internalEvents.off('reconnected', onReconnected);
265
+ };
266
+
267
+ this.on('event', onEvent);
268
+ this.on('raw', onRaw);
269
+ this.on('error', onEmitterError);
270
+ this.socket.on('open', onOpen);
271
+ this._internalEvents.on('close', onClose);
272
+ this._internalEvents.on('socketSwap', onSocketSwap);
273
+ this._internalEvents.on('reconnecting', onReconnecting);
274
+ this._internalEvents.on('reconnected', onReconnected);
275
+
276
+ if (this._isReconnecting) {
277
+ // A reconnect is already in flight. The socket may be CLOSED but the
278
+ // instance is still alive. Emit 'reconnecting' so the iterator stays
279
+ // open and receives the upcoming reconnected/message events.
280
+ push({
281
+ type: 'reconnecting',
282
+ reconnect: { attempt: 0, maxAttempts: 0, delay: 0, closeCode: 0, parameters: undefined },
283
+ });
284
+ } else {
285
+ switch (this.socket.readyState) {
286
+ case ReadyState.CONNECTING:
287
+ push({ type: 'connecting' });
288
+ break;
289
+ case ReadyState.OPEN:
290
+ push({ type: 'open' });
291
+ break;
292
+ case ReadyState.CLOSING:
293
+ push({ type: 'closing' });
294
+ break;
295
+ case ReadyState.CLOSED:
296
+ push({
297
+ type: 'close',
298
+ code: this._lastCloseCode,
299
+ reason: this._lastCloseReason,
300
+ unsent: this._sendQueue.drain(),
301
+ });
302
+ done = true;
303
+ cleanup();
304
+ break;
305
+ }
306
+ }
307
+
308
+ const resolve = (res: (value: IteratorResult<ResponsesStreamMessage>) => void) => {
309
+ if (queue.length > 0) {
310
+ res({ value: queue.shift()!, done: false });
311
+ } else if (done) {
312
+ res({ value: undefined, done: true });
313
+ } else {
314
+ return false;
315
+ }
316
+ return true;
317
+ };
318
+
319
+ const next = (): Promise<IteratorResult<ResponsesStreamMessage>> =>
320
+ new Promise((res) => {
321
+ if (resolve(res)) return;
322
+ resolvers.push(() => {
323
+ resolve(res);
324
+ });
325
+ });
326
+
327
+ return {
328
+ next,
329
+ return: (): Promise<IteratorReturnResult<undefined>> => {
330
+ done = true;
331
+ cleanup();
332
+ flushResolvers();
333
+ return Promise.resolve({ value: undefined, done: true });
334
+ },
335
+ [Symbol.asyncIterator]() {
336
+ return this;
337
+ },
338
+ };
339
+ }
340
+
341
+ private _connect(): TSocket {
342
+ this.url = buildURL(this._client, this._parameters ?? {});
343
+
344
+ const socket = this._createSocket(this.url, this._authHeaders());
345
+
346
+ socket.on('message', (data: string | ArrayBuffer | ArrayBufferView, isBinary: boolean) => {
347
+ if (isBinary) {
348
+ this._emit('raw', data);
349
+ return;
350
+ }
351
+
352
+ // Coerce to string in case the adapter delivers a typed-array for text frames.
353
+ const text = typeof data === 'string' ? data : String(data);
354
+
355
+ let event: ResponsesAPI.ResponsesServerEvent;
356
+ try {
357
+ event = JSON.parse(text) as ResponsesAPI.ResponsesServerEvent;
358
+ } catch {
359
+ this._emit('raw', data);
360
+ return;
361
+ }
362
+
363
+ this._emit('event', event);
364
+
365
+ if (event.type === 'error') {
366
+ this._onError(event);
367
+ } else {
368
+ // @ts-ignore TS isn't smart enough to get the relationship right here
369
+ this._emit(event.type, event);
370
+ }
371
+ });
372
+
373
+ socket.on('error', (err: Error) => {
374
+ // Suppress transient errors during reconnection — the retry loop
375
+ // already handles them and will surface a close if retries exhaust.
376
+ if (this._isReconnecting) return;
377
+ this._onError(null, err.message, err);
378
+ });
379
+
380
+ socket.on('open', () => {
381
+ this._flushSendQueue();
382
+ });
383
+
384
+ socket.on('close', (code: number, reason: string) => {
385
+ // Ignore close events from superseded sockets — a stale socket's
386
+ // late close must not kick off a second reconnect loop.
387
+ if (socket !== this.socket) return;
388
+ if (!this._intentionallyClosed && this._canReconnect(code)) {
389
+ this._reconnect(code);
390
+ } else if (!this._isReconnecting) {
391
+ this._emitPermanentClose(code, reason);
392
+ }
393
+ });
394
+
395
+ return socket;
396
+ }
397
+
398
+ // Reconnect is opt-in via onReconnecting so callers can pass
399
+ // state (e.g. session IDs) into the new connection.
400
+ private _canReconnect(code: number): boolean {
401
+ if (this._intentionallyClosed) return false;
402
+ if (!this._reconnectOptions) return false;
403
+ if (this._reconnectOptions.maxRetries === 0) return false;
404
+ if (!this._reconnectOptions.onReconnecting) return false;
405
+ return isRecoverableClose(code);
406
+ }
407
+
408
+ private async _reconnect(closeCode: number): Promise<void> {
409
+ if (!this.socket) {
410
+ throw new OpenAIError('Internal error: failed to initialize socket. Please report this issue.');
411
+ }
412
+
413
+ if (this._isReconnecting || !this._reconnectOptions) return;
414
+ this._isReconnecting = true;
415
+
416
+ const maxRetries = this._reconnectOptions.maxRetries ?? 5;
417
+ const initialDelay = this._reconnectOptions.initialDelay ?? 500;
418
+ const maxDelay = this._reconnectOptions.maxDelay ?? 8000;
419
+
420
+ for (let attempt = 1; attempt <= maxRetries; attempt++) {
421
+ if (!this._canReconnect(closeCode)) {
422
+ this._isReconnecting = false;
423
+ if (!this._intentionallyClosed) {
424
+ this._onError(
425
+ null,
426
+ `WebSocket reconnect aborted: non-recoverable close code ${closeCode}`,
427
+ undefined,
428
+ );
429
+ }
430
+ this._emitPermanentClose(
431
+ this._intentionallyClosed ? this._closeCode : closeCode,
432
+ this._intentionallyClosed ? this._closeReason : 'reconnect aborted',
433
+ );
434
+ return;
435
+ }
436
+
437
+ const baseDelay = Math.min(initialDelay * Math.pow(2, attempt - 1), maxDelay);
438
+ // Jitter: rand [0.75, 1.0] to spread out connection attempts without over-delaying
439
+ const jitter = 0.75 + Math.random() * 0.25;
440
+ const actualDelay = Math.round(baseDelay * jitter);
441
+
442
+ let reconnectingEvent: ReconnectingEvent<Record<string, unknown>> = {
443
+ attempt,
444
+ maxAttempts: maxRetries,
445
+ delay: actualDelay,
446
+ closeCode,
447
+ parameters: this._parameters ? { ...this._parameters } : undefined,
448
+ };
449
+
450
+ let overrides: ReconnectingOverrides<Record<string, unknown>> | void;
451
+ try {
452
+ overrides = this._reconnectOptions.onReconnecting(reconnectingEvent);
453
+ } catch (err) {
454
+ this._isReconnecting = false;
455
+ this._onError(null, 'onReconnecting callback threw', err);
456
+ this._emitPermanentClose(closeCode, 'onReconnecting callback threw');
457
+ return;
458
+ }
459
+
460
+ if (overrides && 'abort' in overrides && overrides.abort) {
461
+ this._isReconnecting = false;
462
+ this._emitPermanentClose(closeCode, 'reconnect aborted by handler');
463
+ return;
464
+ }
465
+
466
+ if (overrides && 'parameters' in overrides) {
467
+ this._parameters = overrides.parameters;
468
+ reconnectingEvent = { ...reconnectingEvent, parameters: this._parameters };
469
+ }
470
+
471
+ try {
472
+ this._emit('reconnecting', reconnectingEvent);
473
+ } catch (err) {
474
+ this._onError(null, 'onReconnecting callback threw', err);
475
+ }
476
+ this._internalEvents._emit('reconnecting', reconnectingEvent);
477
+
478
+ if (!this._canReconnect(closeCode)) {
479
+ this._isReconnecting = false;
480
+ if (!this._intentionallyClosed) {
481
+ this._onError(
482
+ null,
483
+ `WebSocket reconnect aborted: non-recoverable close code ${closeCode}`,
484
+ undefined,
485
+ );
486
+ }
487
+ this._emitPermanentClose(
488
+ this._intentionallyClosed ? this._closeCode : closeCode,
489
+ this._intentionallyClosed ? this._closeReason : 'reconnect aborted',
490
+ );
491
+ return;
492
+ }
493
+
494
+ await sleep(actualDelay);
495
+
496
+ if (!this._canReconnect(closeCode)) {
497
+ this._isReconnecting = false;
498
+ if (!this._intentionallyClosed) {
499
+ this._onError(
500
+ null,
501
+ `WebSocket reconnect aborted: non-recoverable close code ${closeCode}`,
502
+ undefined,
503
+ );
504
+ }
505
+ this._emitPermanentClose(
506
+ this._intentionallyClosed ? this._closeCode : closeCode,
507
+ this._intentionallyClosed ? this._closeReason : 'reconnect aborted',
508
+ );
509
+ return;
510
+ }
511
+
512
+ let closeCodePromise: Promise<number> | undefined;
513
+ try {
514
+ const oldSocket = this.socket;
515
+ this.socket = this._connect();
516
+ // Registered synchronously after _connect() and before any
517
+ // await so the code is captured even when ws emits 'close'
518
+ // in the same tick as 'error' (e.g. abortHandshake).
519
+ closeCodePromise = new Promise<number>((resolve) => {
520
+ this.socket.once('close', resolve);
521
+ });
522
+
523
+ await this._awaitOpen(this.socket);
524
+
525
+ this._internalEvents._emit('socketSwap', oldSocket, this.socket);
526
+ this._isReconnecting = false;
527
+ this._flushSendQueue();
528
+ this._emit('reconnected');
529
+ this._internalEvents._emit('reconnected');
530
+ return;
531
+ } catch {
532
+ if (closeCodePromise) {
533
+ // ws may emit 'error' before 'close', so await the code
534
+ // rather than reading it synchronously.
535
+ closeCode = await closeCodePromise;
536
+ }
537
+ }
538
+ }
539
+
540
+ // All retries exhausted — surface an error so consumers can
541
+ // distinguish retry failure from a clean close.
542
+ this._isReconnecting = false;
543
+ this._onError(
544
+ null,
545
+ `WebSocket reconnect failed after ${maxRetries} attempts (close code: ${closeCode})`,
546
+ undefined,
547
+ );
548
+ this._emitPermanentClose(closeCode, `reconnect failed after ${maxRetries} attempts`);
549
+ }
550
+
551
+ /**
552
+ * Resolves once the socket is open, rejects if it errors or closes first
553
+ */
554
+ private _awaitOpen(socket: TSocket): Promise<void> {
555
+ return new Promise<void>((resolve, reject) => {
556
+ const cleanup = () => {
557
+ socket.off('open', onOpen);
558
+ socket.off('error', onError);
559
+ socket.off('close', onFail);
560
+ };
561
+ const onOpen = () => {
562
+ cleanup();
563
+ resolve();
564
+ };
565
+ const onError = (err: Error) => {
566
+ cleanup();
567
+ reject(err);
568
+ };
569
+ const onFail = () => {
570
+ cleanup();
571
+ reject(new Error('socket closed before open'));
572
+ };
573
+ socket.once('open', onOpen);
574
+ socket.once('error', onError);
575
+ socket.once('close', onFail);
576
+ });
577
+ }
578
+
579
+ private _flushSendQueue(): void {
580
+ if (!this.socket) {
581
+ throw new OpenAIError('Internal error: failed to initialize socket. Please report this issue.');
582
+ }
583
+
584
+ try {
585
+ this._sendQueue.flush((data) => this.socket.send(flattenRawData(data)));
586
+ } catch (err) {
587
+ this._onError(null, 'could not send queued data', err);
588
+ }
589
+ }
590
+
591
+ /**
592
+ * Emits the public `close` event with unsent messages and the internal
593
+ * `close` event used by the async iterator.
594
+ */
595
+ private _emitPermanentClose(code: number, reason: string): void {
596
+ this._lastCloseCode = code;
597
+ this._lastCloseReason = reason;
598
+ const unsent = this._sendQueue.drain();
599
+ // Internal close fires first so the async iterator is guaranteed to
600
+ // terminate even if a public 'close' listener throws.
601
+ this._internalEvents._emit('close', code, reason, unsent);
602
+ this._emit('close', code, reason, unsent);
603
+ }
604
+
605
+ protected _authHeaders(): Record<string, string> {
606
+ if (this._client.apiKey) {
607
+ return { Authorization: `Bearer ${this._client.apiKey}` };
608
+ }
609
+ return {};
610
+ }
611
+ }
@@ -0,0 +1,38 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import * as WS from 'ws';
4
+ import { NodeWebSocket } from '../../internal/ws-adapter-node';
5
+ import { ResponsesWSBase, type ResponsesWSBaseOptions } from './ws-base';
6
+ import { OpenAI } from '../../client';
7
+
8
+ export type { ResponsesWSReconnectOptions } from './ws-base';
9
+
10
+ export interface ResponsesWSClientOptions extends WS.ClientOptions, ResponsesWSBaseOptions {}
11
+
12
+ export class ResponsesWS extends ResponsesWSBase<NodeWebSocket> {
13
+ private _wsOptions: WS.ClientOptions | null | undefined;
14
+
15
+ constructor(client: OpenAI, options?: ResponsesWSClientOptions | null | undefined) {
16
+ if (!WS?.WebSocket) {
17
+ throw new Error(
18
+ 'ResponsesWS from "openai/resources/responses/ws" requires the "ws" package but it could not be loaded.',
19
+ );
20
+ }
21
+
22
+ const { reconnect, maxQueueSize, ...wsOptions } = options ?? {};
23
+ super(client, { reconnect, maxQueueSize });
24
+ this._wsOptions = wsOptions;
25
+ this._connectInitial();
26
+ }
27
+
28
+ protected _createSocket(url: URL, authHeaders: Record<string, string>): NodeWebSocket {
29
+ const ws = new WS.WebSocket(url, {
30
+ ...this._wsOptions,
31
+ headers: {
32
+ ...authHeaders,
33
+ ...this._wsOptions?.headers,
34
+ },
35
+ });
36
+ return new NodeWebSocket(ws);
37
+ }
38
+ }
@@ -19,6 +19,12 @@ export type AllModels =
19
19
  | 'gpt-5.1-codex-max';
20
20
 
21
21
  export type ChatModel =
22
+ | 'gpt-5.4'
23
+ | 'gpt-5.4-mini'
24
+ | 'gpt-5.4-nano'
25
+ | 'gpt-5.4-mini-2026-03-17'
26
+ | 'gpt-5.4-nano-2026-03-17'
27
+ | 'gpt-5.3-chat-latest'
22
28
  | 'gpt-5.2'
23
29
  | 'gpt-5.2-2025-12-11'
24
30
  | 'gpt-5.2-chat-latest'
@@ -115,7 +121,7 @@ export interface ComparisonFilter {
115
121
  * - `in`: in
116
122
  * - `nin`: not in
117
123
  */
118
- type: 'eq' | 'ne' | 'gt' | 'gte' | 'lt' | 'lte';
124
+ type: 'eq' | 'ne' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'nin';
119
125
 
120
126
  /**
121
127
  * The value to compare against the attribute key; supports string, number, or
@@ -242,6 +248,8 @@ export type FunctionParameters = { [key: string]: unknown };
242
248
  */
243
249
  export type Metadata = { [key: string]: string };
244
250
 
251
+ export type OAuthErrorCode = 'invalid_grant' | 'invalid_subject_token' | (string & {});
252
+
245
253
  /**
246
254
  * **gpt-5 and o-series models only**
247
255
  *
@@ -8,12 +8,13 @@ import { path } from '../../internal/utils/path';
8
8
 
9
9
  export class Content extends APIResource {
10
10
  /**
11
- * Get Skill Content
11
+ * Download a skill zip bundle by its ID.
12
12
  */
13
13
  retrieve(skillID: string, options?: RequestOptions): APIPromise<Response> {
14
14
  return this._client.get(path`/skills/${skillID}/content`, {
15
15
  ...options,
16
16
  headers: buildHeaders([{ Accept: 'application/binary' }, options?.headers]),
17
+ __security: { bearerAuth: true },
17
18
  __binaryResponse: true,
18
19
  });
19
20
  }