@nocobase/plugin-ai 2.2.0-beta.5 → 2.2.0-beta.7

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 (620) hide show
  1. package/dist/ai/docs/nocobase/ai-employees/knowledge-base/dev/external-knowledge-base.md +318 -0
  2. package/dist/ai/docs/nocobase/ai-employees/knowledge-base/knowledge-base/documents.md +76 -0
  3. package/dist/ai/docs/nocobase/ai-employees/knowledge-base/knowledge-base/hit-tests.md +66 -0
  4. package/dist/ai/docs/nocobase/ai-employees/knowledge-base/knowledge-base/index.md +73 -0
  5. package/dist/ai/docs/nocobase/ai-employees/knowledge-base/knowledge-base/segments.md +93 -0
  6. package/dist/ai/docs/nocobase/ai-employees/knowledge-base/knowledge-base/settings.md +77 -0
  7. package/dist/ai/docs/nocobase/ai-employees/knowledge-base/rag.md +1 -1
  8. package/dist/ai/docs/nocobase/ai-employees/workflow/nodes/knowledge/create-document.md +79 -0
  9. package/dist/ai/docs/nocobase/ai-employees/workflow/nodes/knowledge/delete-document.md +71 -0
  10. package/dist/ai/docs/nocobase/ai-employees/workflow/nodes/knowledge/index.md +92 -0
  11. package/dist/ai/docs/nocobase/ai-employees/workflow/nodes/knowledge/retrieve-document.md +87 -0
  12. package/dist/ai/docs/nocobase/ai-employees/workflow/nodes/knowledge/update-document.md +70 -0
  13. package/dist/ai/docs/nocobase/api/cli/app/restart.md +4 -0
  14. package/dist/ai/docs/nocobase/api/cli/app/start.md +7 -0
  15. package/dist/ai/docs/nocobase/api/cli/app/upgrade.md +6 -0
  16. package/dist/ai/docs/nocobase/api/cli/init.md +39 -2
  17. package/dist/ai/docs/nocobase/api/cli/source/download.md +19 -0
  18. package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/validation.md +11 -8
  19. package/dist/ai/docs/nocobase/development/index.md +9 -2
  20. package/dist/ai/docs/nocobase/interface-builder/fields/field-settings/validation-rules.md +6 -2
  21. package/dist/ai/docs/nocobase/plugin-development/client/index.md +1 -0
  22. package/dist/ai/docs/nocobase/plugins/@nocobase/plugin-multi-portal/index.md +16 -0
  23. package/dist/ai/docs/nocobase/plugins/@nocobase/plugin-ui-layout/index.md +14 -0
  24. package/dist/ai/docs/nocobase/shared-components/create-form-registry.md +38 -0
  25. package/dist/ai/docs/nocobase/shared-components/filter/collection-filter-panel.md +44 -0
  26. package/dist/ai/docs/nocobase/shared-components/filter/index.md +44 -0
  27. package/dist/ai/docs/nocobase/shared-components/form/code-scanner.md +34 -0
  28. package/dist/ai/docs/nocobase/shared-components/form/dialog-form-layout.md +45 -0
  29. package/dist/ai/docs/nocobase/shared-components/form/drawer-form-layout.md +45 -0
  30. package/dist/ai/docs/nocobase/shared-components/form/env-variable-input.md +30 -0
  31. package/dist/ai/docs/nocobase/shared-components/form/file-size-input.md +24 -0
  32. package/dist/ai/docs/nocobase/shared-components/form/json-text-area.md +28 -0
  33. package/dist/ai/docs/nocobase/shared-components/form/password-input.md +23 -0
  34. package/dist/ai/docs/nocobase/shared-components/form/remote-select.md +34 -0
  35. package/dist/ai/docs/nocobase/shared-components/form/scan-input.md +27 -0
  36. package/dist/ai/docs/nocobase/shared-components/form/typed-variable-input.md +30 -0
  37. package/dist/ai/docs/nocobase/shared-components/form/variable-input.md +35 -0
  38. package/dist/ai/docs/nocobase/shared-components/form/variable-json-text-area.md +33 -0
  39. package/dist/ai/docs/nocobase/shared-components/form/variable-text-area.md +33 -0
  40. package/dist/ai/docs/nocobase/shared-components/icon.md +21 -0
  41. package/dist/ai/docs/nocobase/shared-components/index.md +70 -0
  42. package/dist/ai/docs/nocobase/shared-components/table/index.md +39 -0
  43. package/dist/ai/docs/nocobase/shared-components/table/sort-handle.md +37 -0
  44. package/dist/ai/docs/nocobase/shared-components/table/sortable-row.md +36 -0
  45. package/dist/client/{406.9a530334eae8cede.js → 406.15c09d98faa2ccf1.js} +1 -1
  46. package/dist/client/{428.fdd0cc3cfd1632ef.js → 428.5eb4f53ddbb6a3b8.js} +1 -1
  47. package/dist/client/580.35ba54ff91b7fe6d.js +10 -0
  48. package/dist/client/ai-employees/ProfileCard.d.ts +1 -0
  49. package/dist/client/ai-employees/admin/mcp/schemas.d.ts +46 -18
  50. package/dist/client/ai-employees/chatbox/hooks/useChatMessageActions.d.ts +2 -3
  51. package/dist/client/index.js +3 -3
  52. package/dist/client-v2/index.js +1 -1
  53. package/dist/collections/ai-mcp-clients.js +5 -0
  54. package/dist/externalVersion.js +21 -21
  55. package/dist/locale/en-US.json +8 -3
  56. package/dist/locale/zh-CN.json +8 -3
  57. package/dist/node_modules/@langchain/xai/dist/chat_models/completions.cjs +25 -34
  58. package/dist/node_modules/@langchain/xai/dist/chat_models/completions.d.cts +10 -22
  59. package/dist/node_modules/@langchain/xai/dist/chat_models/completions.d.ts +10 -22
  60. package/dist/node_modules/@langchain/xai/dist/chat_models/completions.js +17 -25
  61. package/dist/node_modules/@langchain/xai/dist/chat_models/index.cjs +2 -2
  62. package/dist/node_modules/@langchain/xai/dist/chat_models/index.d.cts +3 -0
  63. package/dist/node_modules/@langchain/xai/dist/chat_models/index.js +3 -2
  64. package/dist/node_modules/@langchain/xai/dist/chat_models/responses-types.d.cts +5 -12
  65. package/dist/node_modules/@langchain/xai/dist/chat_models/responses-types.d.ts +5 -12
  66. package/dist/node_modules/@langchain/xai/dist/chat_models/responses.cjs +18 -19
  67. package/dist/node_modules/@langchain/xai/dist/chat_models/responses.d.cts +1 -1
  68. package/dist/node_modules/@langchain/xai/dist/chat_models/responses.d.ts +1 -1
  69. package/dist/node_modules/@langchain/xai/dist/chat_models/responses.js +13 -13
  70. package/dist/node_modules/@langchain/xai/dist/converters/responses.cjs +16 -22
  71. package/dist/node_modules/@langchain/xai/dist/converters/responses.js +7 -12
  72. package/dist/node_modules/@langchain/xai/dist/index.cjs +2 -2
  73. package/dist/node_modules/@langchain/xai/dist/index.d.ts +0 -1
  74. package/dist/node_modules/@langchain/xai/dist/index.js +1 -2
  75. package/dist/node_modules/@langchain/xai/dist/live_search.cjs +4 -5
  76. package/dist/node_modules/@langchain/xai/dist/live_search.js +4 -4
  77. package/dist/node_modules/@langchain/xai/dist/profiles.cjs +81 -97
  78. package/dist/node_modules/@langchain/xai/dist/profiles.js +81 -96
  79. package/dist/node_modules/@langchain/xai/dist/tools/code_execution.cjs +1 -2
  80. package/dist/node_modules/@langchain/xai/dist/tools/code_execution.js +1 -1
  81. package/dist/node_modules/@langchain/xai/dist/tools/collections_search.cjs +1 -2
  82. package/dist/node_modules/@langchain/xai/dist/tools/collections_search.js +1 -1
  83. package/dist/node_modules/@langchain/xai/dist/tools/index.cjs +6 -7
  84. package/dist/node_modules/@langchain/xai/dist/tools/index.d.cts +1 -2
  85. package/dist/node_modules/@langchain/xai/dist/tools/index.d.ts +1 -2
  86. package/dist/node_modules/@langchain/xai/dist/tools/index.js +6 -7
  87. package/dist/node_modules/@langchain/xai/dist/tools/live_search.cjs +3 -7
  88. package/dist/node_modules/@langchain/xai/dist/tools/live_search.d.cts +1 -2
  89. package/dist/node_modules/@langchain/xai/dist/tools/live_search.d.ts +1 -2
  90. package/dist/node_modules/@langchain/xai/dist/tools/live_search.js +3 -6
  91. package/dist/node_modules/@langchain/xai/dist/tools/web_search.cjs +1 -2
  92. package/dist/node_modules/@langchain/xai/dist/tools/web_search.js +1 -1
  93. package/dist/node_modules/@langchain/xai/dist/tools/x_search.cjs +1 -2
  94. package/dist/node_modules/@langchain/xai/dist/tools/x_search.js +1 -1
  95. package/dist/node_modules/@langchain/xai/package.json +1 -1
  96. package/dist/node_modules/fs-extra/package.json +1 -1
  97. package/dist/node_modules/jsonrepair/package.json +1 -1
  98. package/dist/node_modules/just-bash/package.json +1 -1
  99. package/dist/node_modules/nodejs-snowflake/package.json +1 -1
  100. package/dist/node_modules/openai/_vendor/zod-to-json-schema/parsers/branded.d.mts +1 -1
  101. package/dist/node_modules/openai/_vendor/zod-to-json-schema/parsers/branded.d.ts +1 -1
  102. package/dist/node_modules/openai/_vendor/zod-to-json-schema/parsers/catch.d.mts +1 -1
  103. package/dist/node_modules/openai/_vendor/zod-to-json-schema/parsers/catch.d.ts +1 -1
  104. package/dist/node_modules/openai/_vendor/zod-to-json-schema/parsers/readonly.d.mts +1 -1
  105. package/dist/node_modules/openai/_vendor/zod-to-json-schema/parsers/readonly.d.ts +1 -1
  106. package/dist/node_modules/openai/api-promise.d.mts +1 -0
  107. package/dist/node_modules/openai/api-promise.d.ts +1 -0
  108. package/dist/node_modules/openai/auth/index.d.mts +4 -0
  109. package/dist/node_modules/openai/auth/index.d.ts +4 -0
  110. package/dist/node_modules/openai/auth/index.js +11 -0
  111. package/dist/node_modules/openai/auth/subject-token-providers.d.mts +20 -0
  112. package/dist/node_modules/openai/auth/subject-token-providers.d.ts +20 -0
  113. package/dist/node_modules/openai/auth/subject-token-providers.js +127 -0
  114. package/dist/node_modules/openai/auth/types.d.mts +23 -0
  115. package/dist/node_modules/openai/auth/types.d.ts +23 -0
  116. package/dist/node_modules/openai/auth/types.js +3 -0
  117. package/dist/node_modules/openai/auth/workload-identity-auth.d.mts +16 -0
  118. package/dist/node_modules/openai/auth/workload-identity-auth.d.ts +16 -0
  119. package/dist/node_modules/openai/auth/workload-identity-auth.js +95 -0
  120. package/dist/node_modules/openai/azure.d.mts +6 -2
  121. package/dist/node_modules/openai/azure.d.ts +6 -2
  122. package/dist/node_modules/openai/azure.js +4 -3
  123. package/dist/node_modules/openai/beta/realtime/websocket.js +7 -2
  124. package/dist/node_modules/openai/beta/realtime/ws.js +5 -1
  125. package/dist/node_modules/openai/bin/migration-config.json +1120 -0
  126. package/dist/node_modules/openai/client.d.mts +72 -10
  127. package/dist/node_modules/openai/client.d.ts +72 -10
  128. package/dist/node_modules/openai/client.js +207 -28
  129. package/dist/node_modules/openai/core/EventEmitter.d.mts +56 -0
  130. package/dist/node_modules/openai/core/EventEmitter.d.ts +56 -0
  131. package/dist/node_modules/openai/core/EventEmitter.js +93 -0
  132. package/dist/node_modules/openai/core/error.d.mts +15 -0
  133. package/dist/node_modules/openai/core/error.d.ts +15 -0
  134. package/dist/node_modules/openai/core/error.js +34 -1
  135. package/dist/node_modules/openai/core/pagination.d.mts +18 -0
  136. package/dist/node_modules/openai/core/pagination.d.ts +18 -0
  137. package/dist/node_modules/openai/core/pagination.js +32 -1
  138. package/dist/node_modules/openai/core/streaming.d.mts +1 -1
  139. package/dist/node_modules/openai/core/streaming.d.ts +1 -1
  140. package/dist/node_modules/openai/core/streaming.js +2 -2
  141. package/dist/node_modules/openai/error.d.mts +1 -0
  142. package/dist/node_modules/openai/error.d.ts +1 -0
  143. package/dist/node_modules/openai/index.d.mts +1 -1
  144. package/dist/node_modules/openai/index.d.ts +1 -1
  145. package/dist/node_modules/openai/index.js +1 -1
  146. package/dist/node_modules/openai/internal/parse.js +2 -2
  147. package/dist/node_modules/openai/internal/qs/index.d.mts +2 -2
  148. package/dist/node_modules/openai/internal/qs/index.d.ts +2 -2
  149. package/dist/node_modules/openai/internal/request-options.d.mts +5 -0
  150. package/dist/node_modules/openai/internal/request-options.d.ts +5 -0
  151. package/dist/node_modules/openai/internal/shims.d.mts +6 -0
  152. package/dist/node_modules/openai/internal/shims.d.ts +6 -0
  153. package/dist/node_modules/openai/internal/types.d.mts +17 -11
  154. package/dist/node_modules/openai/internal/types.d.ts +17 -11
  155. package/dist/node_modules/openai/internal/utils/env.js +2 -2
  156. package/dist/node_modules/openai/internal/utils/log.js +2 -0
  157. package/dist/node_modules/openai/internal/utils/query.d.mts +2 -0
  158. package/dist/node_modules/openai/internal/utils/query.d.ts +2 -0
  159. package/dist/node_modules/openai/internal/utils/query.js +10 -0
  160. package/dist/node_modules/openai/internal/utils.d.mts +1 -0
  161. package/dist/node_modules/openai/internal/utils.d.ts +1 -0
  162. package/dist/node_modules/openai/internal/utils.js +1 -0
  163. package/dist/node_modules/openai/internal/ws-adapter-browser.d.mts +34 -0
  164. package/dist/node_modules/openai/internal/ws-adapter-browser.d.ts +34 -0
  165. package/dist/node_modules/openai/internal/ws-adapter-browser.js +88 -0
  166. package/dist/node_modules/openai/internal/ws-adapter-node.d.mts +27 -0
  167. package/dist/node_modules/openai/internal/ws-adapter-node.d.ts +27 -0
  168. package/dist/node_modules/openai/internal/ws-adapter-node.js +90 -0
  169. package/dist/node_modules/openai/internal/ws-adapter.d.mts +24 -0
  170. package/dist/node_modules/openai/internal/ws-adapter.d.ts +24 -0
  171. package/dist/node_modules/openai/internal/ws-adapter.js +11 -0
  172. package/dist/node_modules/openai/internal/ws.d.mts +80 -0
  173. package/dist/node_modules/openai/internal/ws.d.ts +80 -0
  174. package/dist/node_modules/openai/internal/ws.js +153 -0
  175. package/dist/node_modules/openai/package.json +1 -1
  176. package/dist/node_modules/openai/pagination.d.mts +1 -0
  177. package/dist/node_modules/openai/pagination.d.ts +1 -0
  178. package/dist/node_modules/openai/realtime/websocket.js +7 -2
  179. package/dist/node_modules/openai/realtime/ws.js +5 -1
  180. package/dist/node_modules/openai/resource.d.mts +1 -0
  181. package/dist/node_modules/openai/resource.d.ts +1 -0
  182. package/dist/node_modules/openai/resources/admin/admin.d.mts +10 -0
  183. package/dist/node_modules/openai/resources/admin/admin.d.ts +10 -0
  184. package/dist/node_modules/openai/resources/admin/admin.js +17 -0
  185. package/dist/node_modules/openai/resources/admin/index.d.mts +3 -0
  186. package/dist/node_modules/openai/resources/admin/index.d.ts +3 -0
  187. package/dist/node_modules/openai/resources/admin/index.js +9 -0
  188. package/dist/node_modules/openai/resources/admin/organization/admin-api-keys.d.mts +140 -0
  189. package/dist/node_modules/openai/resources/admin/organization/admin-api-keys.d.ts +140 -0
  190. package/dist/node_modules/openai/resources/admin/organization/admin-api-keys.js +81 -0
  191. package/dist/node_modules/openai/resources/admin/organization/audit-logs.d.mts +1267 -0
  192. package/dist/node_modules/openai/resources/admin/organization/audit-logs.d.ts +1267 -0
  193. package/dist/node_modules/openai/resources/admin/organization/audit-logs.js +31 -0
  194. package/dist/node_modules/openai/resources/admin/organization/certificates.d.mts +322 -0
  195. package/dist/node_modules/openai/resources/admin/organization/certificates.d.ts +322 -0
  196. package/dist/node_modules/openai/resources/admin/organization/certificates.js +144 -0
  197. package/dist/node_modules/openai/resources/admin/organization/data-retention.d.mts +50 -0
  198. package/dist/node_modules/openai/resources/admin/organization/data-retention.d.ts +50 -0
  199. package/dist/node_modules/openai/resources/admin/organization/data-retention.js +42 -0
  200. package/dist/node_modules/openai/resources/admin/organization/groups/groups.d.mts +160 -0
  201. package/dist/node_modules/openai/resources/admin/organization/groups/groups.d.ts +160 -0
  202. package/dist/node_modules/openai/resources/admin/organization/groups/groups.js +109 -0
  203. package/dist/node_modules/openai/resources/admin/organization/groups/index.d.mts +4 -0
  204. package/dist/node_modules/openai/resources/admin/organization/groups/index.d.ts +4 -0
  205. package/dist/node_modules/openai/resources/admin/organization/groups/index.js +11 -0
  206. package/dist/node_modules/openai/resources/admin/organization/groups/roles.d.mts +275 -0
  207. package/dist/node_modules/openai/resources/admin/organization/groups/roles.d.ts +275 -0
  208. package/dist/node_modules/openai/resources/admin/organization/groups/roles.js +84 -0
  209. package/dist/node_modules/openai/resources/admin/organization/groups/users.d.mts +164 -0
  210. package/dist/node_modules/openai/resources/admin/organization/groups/users.d.ts +164 -0
  211. package/dist/node_modules/openai/resources/admin/organization/groups/users.js +84 -0
  212. package/dist/node_modules/openai/resources/admin/organization/groups.d.mts +2 -0
  213. package/dist/node_modules/openai/resources/admin/organization/groups.d.ts +2 -0
  214. package/dist/node_modules/openai/resources/admin/organization/groups.js +6 -0
  215. package/dist/node_modules/openai/resources/admin/organization/index.d.mts +13 -0
  216. package/dist/node_modules/openai/resources/admin/organization/index.d.ts +13 -0
  217. package/dist/node_modules/openai/resources/admin/organization/index.js +29 -0
  218. package/dist/node_modules/openai/resources/admin/organization/invites.d.mts +153 -0
  219. package/dist/node_modules/openai/resources/admin/organization/invites.d.ts +153 -0
  220. package/dist/node_modules/openai/resources/admin/organization/invites.js +83 -0
  221. package/dist/node_modules/openai/resources/admin/organization/organization.d.mts +50 -0
  222. package/dist/node_modules/openai/resources/admin/organization/organization.d.ts +50 -0
  223. package/dist/node_modules/openai/resources/admin/organization/organization.js +57 -0
  224. package/dist/node_modules/openai/resources/admin/organization/projects/api-keys.d.mts +167 -0
  225. package/dist/node_modules/openai/resources/admin/organization/projects/api-keys.d.ts +167 -0
  226. package/dist/node_modules/openai/resources/admin/organization/projects/api-keys.js +68 -0
  227. package/dist/node_modules/openai/resources/admin/organization/projects/certificates.d.mts +186 -0
  228. package/dist/node_modules/openai/resources/admin/organization/projects/certificates.d.ts +186 -0
  229. package/dist/node_modules/openai/resources/admin/organization/projects/certificates.js +64 -0
  230. package/dist/node_modules/openai/resources/admin/organization/projects/data-retention.d.mts +53 -0
  231. package/dist/node_modules/openai/resources/admin/organization/projects/data-retention.d.ts +53 -0
  232. package/dist/node_modules/openai/resources/admin/organization/projects/data-retention.js +46 -0
  233. package/dist/node_modules/openai/resources/admin/organization/projects/groups/groups.d.mts +142 -0
  234. package/dist/node_modules/openai/resources/admin/organization/projects/groups/groups.d.ts +142 -0
  235. package/dist/node_modules/openai/resources/admin/organization/projects/groups/groups.js +93 -0
  236. package/dist/node_modules/openai/resources/admin/organization/projects/groups/index.d.mts +3 -0
  237. package/dist/node_modules/openai/resources/admin/organization/projects/groups/index.d.ts +3 -0
  238. package/dist/node_modules/openai/resources/admin/organization/projects/groups/index.js +9 -0
  239. package/dist/node_modules/openai/resources/admin/organization/projects/groups/roles.d.mts +292 -0
  240. package/dist/node_modules/openai/resources/admin/organization/projects/groups/roles.d.ts +292 -0
  241. package/dist/node_modules/openai/resources/admin/organization/projects/groups/roles.js +87 -0
  242. package/dist/node_modules/openai/resources/admin/organization/projects/groups.d.mts +2 -0
  243. package/dist/node_modules/openai/resources/admin/organization/projects/groups.d.ts +2 -0
  244. package/dist/node_modules/openai/resources/admin/organization/projects/groups.js +6 -0
  245. package/dist/node_modules/openai/resources/admin/organization/projects/hosted-tool-permissions.d.mts +174 -0
  246. package/dist/node_modules/openai/resources/admin/organization/projects/hosted-tool-permissions.d.ts +174 -0
  247. package/dist/node_modules/openai/resources/admin/organization/projects/hosted-tool-permissions.js +45 -0
  248. package/dist/node_modules/openai/resources/admin/organization/projects/index.d.mts +13 -0
  249. package/dist/node_modules/openai/resources/admin/organization/projects/index.d.ts +13 -0
  250. package/dist/node_modules/openai/resources/admin/organization/projects/index.js +29 -0
  251. package/dist/node_modules/openai/resources/admin/organization/projects/model-permissions.d.mts +86 -0
  252. package/dist/node_modules/openai/resources/admin/organization/projects/model-permissions.d.ts +86 -0
  253. package/dist/node_modules/openai/resources/admin/organization/projects/model-permissions.js +63 -0
  254. package/dist/node_modules/openai/resources/admin/organization/projects/projects.d.mts +188 -0
  255. package/dist/node_modules/openai/resources/admin/organization/projects/projects.d.ts +188 -0
  256. package/dist/node_modules/openai/resources/admin/organization/projects/projects.js +149 -0
  257. package/dist/node_modules/openai/resources/admin/organization/projects/rate-limits.d.mts +120 -0
  258. package/dist/node_modules/openai/resources/admin/organization/projects/rate-limits.d.ts +120 -0
  259. package/dist/node_modules/openai/resources/admin/organization/projects/rate-limits.js +47 -0
  260. package/dist/node_modules/openai/resources/admin/organization/projects/roles.d.mts +146 -0
  261. package/dist/node_modules/openai/resources/admin/organization/projects/roles.d.ts +146 -0
  262. package/dist/node_modules/openai/resources/admin/organization/projects/roles.js +108 -0
  263. package/dist/node_modules/openai/resources/admin/organization/projects/service-accounts.d.mts +168 -0
  264. package/dist/node_modules/openai/resources/admin/organization/projects/service-accounts.d.ts +168 -0
  265. package/dist/node_modules/openai/resources/admin/organization/projects/service-accounts.js +101 -0
  266. package/dist/node_modules/openai/resources/admin/organization/projects/spend-alerts.d.mts +241 -0
  267. package/dist/node_modules/openai/resources/admin/organization/projects/spend-alerts.d.ts +241 -0
  268. package/dist/node_modules/openai/resources/admin/organization/projects/spend-alerts.js +102 -0
  269. package/dist/node_modules/openai/resources/admin/organization/projects/users/index.d.mts +3 -0
  270. package/dist/node_modules/openai/resources/admin/organization/projects/users/index.d.ts +3 -0
  271. package/dist/node_modules/openai/resources/admin/organization/projects/users/index.js +9 -0
  272. package/dist/node_modules/openai/resources/admin/organization/projects/users/roles.d.mts +266 -0
  273. package/dist/node_modules/openai/resources/admin/organization/projects/users/roles.d.ts +266 -0
  274. package/dist/node_modules/openai/resources/admin/organization/projects/users/roles.js +87 -0
  275. package/dist/node_modules/openai/resources/admin/organization/projects/users/users.d.mts +157 -0
  276. package/dist/node_modules/openai/resources/admin/organization/projects/users/users.d.ts +157 -0
  277. package/dist/node_modules/openai/resources/admin/organization/projects/users/users.js +116 -0
  278. package/dist/node_modules/openai/resources/admin/organization/projects/users.d.mts +2 -0
  279. package/dist/node_modules/openai/resources/admin/organization/projects/users.d.ts +2 -0
  280. package/dist/node_modules/openai/resources/admin/organization/projects/users.js +6 -0
  281. package/dist/node_modules/openai/resources/admin/organization/projects.d.mts +2 -0
  282. package/dist/node_modules/openai/resources/admin/organization/projects.d.ts +2 -0
  283. package/dist/node_modules/openai/resources/admin/organization/projects.js +6 -0
  284. package/dist/node_modules/openai/resources/admin/organization/roles.d.mts +153 -0
  285. package/dist/node_modules/openai/resources/admin/organization/roles.d.ts +153 -0
  286. package/dist/node_modules/openai/resources/admin/organization/roles.js +96 -0
  287. package/dist/node_modules/openai/resources/admin/organization/spend-alerts.d.mts +224 -0
  288. package/dist/node_modules/openai/resources/admin/organization/spend-alerts.d.ts +224 -0
  289. package/dist/node_modules/openai/resources/admin/organization/spend-alerts.js +93 -0
  290. package/dist/node_modules/openai/resources/admin/organization/usage.d.mts +5123 -0
  291. package/dist/node_modules/openai/resources/admin/organization/usage.d.ts +5123 -0
  292. package/dist/node_modules/openai/resources/admin/organization/usage.js +207 -0
  293. package/dist/node_modules/openai/resources/admin/organization/users/index.d.mts +3 -0
  294. package/dist/node_modules/openai/resources/admin/organization/users/index.d.ts +3 -0
  295. package/dist/node_modules/openai/resources/admin/organization/users/index.js +9 -0
  296. package/dist/node_modules/openai/resources/admin/organization/users/roles.d.mts +249 -0
  297. package/dist/node_modules/openai/resources/admin/organization/users/roles.d.ts +249 -0
  298. package/dist/node_modules/openai/resources/admin/organization/users/roles.js +84 -0
  299. package/dist/node_modules/openai/resources/admin/organization/users/users.d.mts +185 -0
  300. package/dist/node_modules/openai/resources/admin/organization/users/users.d.ts +185 -0
  301. package/dist/node_modules/openai/resources/admin/organization/users/users.js +84 -0
  302. package/dist/node_modules/openai/resources/admin/organization/users.d.mts +2 -0
  303. package/dist/node_modules/openai/resources/admin/organization/users.d.ts +2 -0
  304. package/dist/node_modules/openai/resources/admin/organization/users.js +6 -0
  305. package/dist/node_modules/openai/resources/admin/organization.d.mts +2 -0
  306. package/dist/node_modules/openai/resources/admin/organization.d.ts +2 -0
  307. package/dist/node_modules/openai/resources/admin/organization.js +6 -0
  308. package/dist/node_modules/openai/resources/admin.d.mts +2 -0
  309. package/dist/node_modules/openai/resources/admin.d.ts +2 -0
  310. package/dist/node_modules/openai/resources/admin.js +6 -0
  311. package/dist/node_modules/openai/resources/audio/speech.d.mts +22 -5
  312. package/dist/node_modules/openai/resources/audio/speech.d.ts +22 -5
  313. package/dist/node_modules/openai/resources/audio/speech.js +8 -2
  314. package/dist/node_modules/openai/resources/audio/transcriptions.d.mts +6 -0
  315. package/dist/node_modules/openai/resources/audio/transcriptions.d.ts +6 -0
  316. package/dist/node_modules/openai/resources/audio/transcriptions.js +4 -0
  317. package/dist/node_modules/openai/resources/audio/translations.d.mts +3 -0
  318. package/dist/node_modules/openai/resources/audio/translations.d.ts +3 -0
  319. package/dist/node_modules/openai/resources/audio/translations.js +4 -1
  320. package/dist/node_modules/openai/resources/batches.d.mts +8 -4
  321. package/dist/node_modules/openai/resources/batches.d.ts +8 -4
  322. package/dist/node_modules/openai/resources/batches.js +14 -4
  323. package/dist/node_modules/openai/resources/beta/assistants.d.mts +6 -2
  324. package/dist/node_modules/openai/resources/beta/assistants.d.ts +6 -2
  325. package/dist/node_modules/openai/resources/beta/assistants.js +8 -0
  326. package/dist/node_modules/openai/resources/beta/chatkit/sessions.d.mts +4 -2
  327. package/dist/node_modules/openai/resources/beta/chatkit/sessions.d.ts +4 -2
  328. package/dist/node_modules/openai/resources/beta/chatkit/sessions.js +6 -2
  329. package/dist/node_modules/openai/resources/beta/chatkit/threads.d.mts +4 -4
  330. package/dist/node_modules/openai/resources/beta/chatkit/threads.d.ts +4 -4
  331. package/dist/node_modules/openai/resources/beta/chatkit/threads.js +13 -5
  332. package/dist/node_modules/openai/resources/beta/realtime/sessions.js +1 -0
  333. package/dist/node_modules/openai/resources/beta/realtime/transcription-sessions.js +1 -0
  334. package/dist/node_modules/openai/resources/beta/threads/messages.d.mts +2 -0
  335. package/dist/node_modules/openai/resources/beta/threads/messages.d.ts +2 -0
  336. package/dist/node_modules/openai/resources/beta/threads/messages.js +7 -0
  337. package/dist/node_modules/openai/resources/beta/threads/runs/runs.d.mts +2 -0
  338. package/dist/node_modules/openai/resources/beta/threads/runs/runs.d.ts +2 -0
  339. package/dist/node_modules/openai/resources/beta/threads/runs/runs.js +10 -0
  340. package/dist/node_modules/openai/resources/beta/threads/runs/steps.d.mts +2 -0
  341. package/dist/node_modules/openai/resources/beta/threads/runs/steps.d.ts +2 -0
  342. package/dist/node_modules/openai/resources/beta/threads/runs/steps.js +4 -0
  343. package/dist/node_modules/openai/resources/beta/threads/threads.d.mts +8 -4
  344. package/dist/node_modules/openai/resources/beta/threads/threads.d.ts +8 -4
  345. package/dist/node_modules/openai/resources/beta/threads/threads.js +8 -0
  346. package/dist/node_modules/openai/resources/chat/completions/completions.d.mts +37 -18
  347. package/dist/node_modules/openai/resources/chat/completions/completions.d.ts +37 -18
  348. package/dist/node_modules/openai/resources/chat/completions/completions.js +27 -5
  349. package/dist/node_modules/openai/resources/chat/completions/messages.d.mts +3 -0
  350. package/dist/node_modules/openai/resources/chat/completions/messages.d.ts +3 -0
  351. package/dist/node_modules/openai/resources/chat/completions/messages.js +4 -1
  352. package/dist/node_modules/openai/resources/completions.d.mts +9 -3
  353. package/dist/node_modules/openai/resources/completions.d.ts +9 -3
  354. package/dist/node_modules/openai/resources/completions.js +9 -1
  355. package/dist/node_modules/openai/resources/containers/containers.js +11 -3
  356. package/dist/node_modules/openai/resources/containers/files/content.js +1 -0
  357. package/dist/node_modules/openai/resources/containers/files/files.js +7 -2
  358. package/dist/node_modules/openai/resources/conversations/conversations.d.mts +15 -0
  359. package/dist/node_modules/openai/resources/conversations/conversations.d.ts +15 -0
  360. package/dist/node_modules/openai/resources/conversations/conversations.js +17 -4
  361. package/dist/node_modules/openai/resources/conversations/items.d.mts +4 -1
  362. package/dist/node_modules/openai/resources/conversations/items.d.ts +4 -1
  363. package/dist/node_modules/openai/resources/conversations/items.js +14 -3
  364. package/dist/node_modules/openai/resources/embeddings.d.mts +3 -0
  365. package/dist/node_modules/openai/resources/embeddings.d.ts +3 -0
  366. package/dist/node_modules/openai/resources/embeddings.js +4 -0
  367. package/dist/node_modules/openai/resources/evals/evals.d.mts +3 -0
  368. package/dist/node_modules/openai/resources/evals/evals.d.ts +3 -0
  369. package/dist/node_modules/openai/resources/evals/evals.js +12 -5
  370. package/dist/node_modules/openai/resources/evals/runs/output-items.d.mts +3 -0
  371. package/dist/node_modules/openai/resources/evals/runs/output-items.d.ts +3 -0
  372. package/dist/node_modules/openai/resources/evals/runs/output-items.js +8 -2
  373. package/dist/node_modules/openai/resources/evals/runs/runs.d.mts +3 -0
  374. package/dist/node_modules/openai/resources/evals/runs/runs.d.ts +3 -0
  375. package/dist/node_modules/openai/resources/evals/runs/runs.js +21 -4
  376. package/dist/node_modules/openai/resources/files.d.mts +11 -1
  377. package/dist/node_modules/openai/resources/files.d.ts +11 -1
  378. package/dist/node_modules/openai/resources/files.js +20 -5
  379. package/dist/node_modules/openai/resources/fine-tuning/alpha/graders.d.mts +3 -0
  380. package/dist/node_modules/openai/resources/fine-tuning/alpha/graders.d.ts +3 -0
  381. package/dist/node_modules/openai/resources/fine-tuning/alpha/graders.js +13 -2
  382. package/dist/node_modules/openai/resources/fine-tuning/checkpoints/checkpoints.d.mts +2 -2
  383. package/dist/node_modules/openai/resources/fine-tuning/checkpoints/checkpoints.d.ts +2 -2
  384. package/dist/node_modules/openai/resources/fine-tuning/checkpoints/index.d.mts +1 -1
  385. package/dist/node_modules/openai/resources/fine-tuning/checkpoints/index.d.ts +1 -1
  386. package/dist/node_modules/openai/resources/fine-tuning/checkpoints/permissions.d.mts +54 -7
  387. package/dist/node_modules/openai/resources/fine-tuning/checkpoints/permissions.d.ts +54 -7
  388. package/dist/node_modules/openai/resources/fine-tuning/checkpoints/permissions.js +26 -9
  389. package/dist/node_modules/openai/resources/fine-tuning/jobs/checkpoints.d.mts +3 -0
  390. package/dist/node_modules/openai/resources/fine-tuning/jobs/checkpoints.d.ts +3 -0
  391. package/dist/node_modules/openai/resources/fine-tuning/jobs/checkpoints.js +4 -1
  392. package/dist/node_modules/openai/resources/fine-tuning/jobs/jobs.d.mts +3 -0
  393. package/dist/node_modules/openai/resources/fine-tuning/jobs/jobs.d.ts +3 -0
  394. package/dist/node_modules/openai/resources/fine-tuning/jobs/jobs.js +26 -7
  395. package/dist/node_modules/openai/resources/images.d.mts +56 -24
  396. package/dist/node_modules/openai/resources/images.d.ts +56 -24
  397. package/dist/node_modules/openai/resources/images.js +11 -3
  398. package/dist/node_modules/openai/resources/index.d.mts +2 -1
  399. package/dist/node_modules/openai/resources/index.d.ts +2 -1
  400. package/dist/node_modules/openai/resources/index.js +3 -1
  401. package/dist/node_modules/openai/resources/models.d.mts +3 -0
  402. package/dist/node_modules/openai/resources/models.d.ts +3 -0
  403. package/dist/node_modules/openai/resources/models.js +6 -3
  404. package/dist/node_modules/openai/resources/moderations.d.mts +3 -0
  405. package/dist/node_modules/openai/resources/moderations.d.ts +3 -0
  406. package/dist/node_modules/openai/resources/moderations.js +4 -1
  407. package/dist/node_modules/openai/resources/realtime/calls.d.mts +13 -3
  408. package/dist/node_modules/openai/resources/realtime/calls.d.ts +13 -3
  409. package/dist/node_modules/openai/resources/realtime/calls.js +4 -0
  410. package/dist/node_modules/openai/resources/realtime/client-secrets.d.mts +45 -39
  411. package/dist/node_modules/openai/resources/realtime/client-secrets.d.ts +45 -39
  412. package/dist/node_modules/openai/resources/realtime/client-secrets.js +19 -1
  413. package/dist/node_modules/openai/resources/realtime/index.d.mts +1 -1
  414. package/dist/node_modules/openai/resources/realtime/index.d.ts +1 -1
  415. package/dist/node_modules/openai/resources/realtime/realtime.d.mts +592 -21
  416. package/dist/node_modules/openai/resources/realtime/realtime.d.ts +592 -21
  417. package/dist/node_modules/openai/resources/responses/index.d.mts +2 -0
  418. package/dist/node_modules/openai/resources/responses/index.d.ts +2 -0
  419. package/dist/node_modules/openai/resources/responses/input-items.js +1 -1
  420. package/dist/node_modules/openai/resources/responses/input-tokens.d.mts +4 -1
  421. package/dist/node_modules/openai/resources/responses/input-tokens.d.ts +4 -1
  422. package/dist/node_modules/openai/resources/responses/input-tokens.js +9 -2
  423. package/dist/node_modules/openai/resources/responses/internal-base.d.mts +71 -0
  424. package/dist/node_modules/openai/resources/responses/internal-base.d.ts +71 -0
  425. package/dist/node_modules/openai/resources/responses/internal-base.js +48 -0
  426. package/dist/node_modules/openai/resources/responses/responses.d.mts +956 -64
  427. package/dist/node_modules/openai/resources/responses/responses.d.ts +956 -64
  428. package/dist/node_modules/openai/resources/responses/responses.js +20 -5
  429. package/dist/node_modules/openai/resources/responses/ws-base.d.mts +106 -0
  430. package/dist/node_modules/openai/resources/responses/ws-base.d.ts +106 -0
  431. package/dist/node_modules/openai/resources/responses/ws-base.js +476 -0
  432. package/dist/node_modules/openai/resources/responses/ws.d.mts +13 -0
  433. package/dist/node_modules/openai/resources/responses/ws.d.ts +13 -0
  434. package/dist/node_modules/openai/resources/responses/ws.js +31 -0
  435. package/dist/node_modules/openai/resources/shared.d.mts +3 -2
  436. package/dist/node_modules/openai/resources/shared.d.ts +3 -2
  437. package/dist/node_modules/openai/resources/skills/content.d.mts +1 -1
  438. package/dist/node_modules/openai/resources/skills/content.d.ts +1 -1
  439. package/dist/node_modules/openai/resources/skills/content.js +2 -1
  440. package/dist/node_modules/openai/resources/skills/skills.d.mts +5 -5
  441. package/dist/node_modules/openai/resources/skills/skills.d.ts +5 -5
  442. package/dist/node_modules/openai/resources/skills/skills.js +18 -10
  443. package/dist/node_modules/openai/resources/skills/versions/content.d.mts +1 -1
  444. package/dist/node_modules/openai/resources/skills/versions/content.d.ts +1 -1
  445. package/dist/node_modules/openai/resources/skills/versions/content.js +2 -1
  446. package/dist/node_modules/openai/resources/skills/versions/versions.d.mts +4 -4
  447. package/dist/node_modules/openai/resources/skills/versions/versions.d.ts +4 -4
  448. package/dist/node_modules/openai/resources/skills/versions/versions.js +14 -7
  449. package/dist/node_modules/openai/resources/uploads/parts.d.mts +3 -0
  450. package/dist/node_modules/openai/resources/uploads/parts.d.ts +3 -0
  451. package/dist/node_modules/openai/resources/uploads/parts.js +4 -1
  452. package/dist/node_modules/openai/resources/uploads/uploads.d.mts +10 -1
  453. package/dist/node_modules/openai/resources/uploads/uploads.d.ts +10 -1
  454. package/dist/node_modules/openai/resources/uploads/uploads.js +20 -4
  455. package/dist/node_modules/openai/resources/vector-stores/file-batches.d.mts +9 -3
  456. package/dist/node_modules/openai/resources/vector-stores/file-batches.d.ts +9 -3
  457. package/dist/node_modules/openai/resources/vector-stores/file-batches.js +9 -1
  458. package/dist/node_modules/openai/resources/vector-stores/files.d.mts +3 -1
  459. package/dist/node_modules/openai/resources/vector-stores/files.d.ts +3 -1
  460. package/dist/node_modules/openai/resources/vector-stores/files.js +10 -1
  461. package/dist/node_modules/openai/resources/vector-stores/vector-stores.js +6 -0
  462. package/dist/node_modules/openai/resources/videos.d.mts +123 -11
  463. package/dist/node_modules/openai/resources/videos.d.ts +123 -11
  464. package/dist/node_modules/openai/resources/videos.js +46 -11
  465. package/dist/node_modules/openai/src/auth/index.ts +9 -0
  466. package/dist/node_modules/openai/src/auth/subject-token-providers.ts +185 -0
  467. package/dist/node_modules/openai/src/auth/types.ts +28 -0
  468. package/dist/node_modules/openai/src/auth/workload-identity-auth.ts +122 -0
  469. package/dist/node_modules/openai/src/azure.ts +9 -4
  470. package/dist/node_modules/openai/src/beta/realtime/websocket.ts +7 -2
  471. package/dist/node_modules/openai/src/beta/realtime/ws.ts +5 -1
  472. package/dist/node_modules/openai/src/client.ts +312 -35
  473. package/dist/node_modules/openai/src/core/EventEmitter.ts +114 -0
  474. package/dist/node_modules/openai/src/core/error.ts +40 -0
  475. package/dist/node_modules/openai/src/core/pagination.ts +62 -0
  476. package/dist/node_modules/openai/src/core/streaming.ts +2 -1
  477. package/dist/node_modules/openai/src/index.ts +2 -0
  478. package/dist/node_modules/openai/src/internal/parse.ts +12 -2
  479. package/dist/node_modules/openai/src/internal/request-options.ts +2 -0
  480. package/dist/node_modules/openai/src/internal/types.ts +14 -8
  481. package/dist/node_modules/openai/src/internal/utils/env.ts +2 -2
  482. package/dist/node_modules/openai/src/internal/utils/log.ts +2 -0
  483. package/dist/node_modules/openai/src/internal/utils/query.ts +7 -0
  484. package/dist/node_modules/openai/src/internal/utils.ts +1 -0
  485. package/dist/node_modules/openai/src/internal/ws-adapter-browser.ts +123 -0
  486. package/dist/node_modules/openai/src/internal/ws-adapter-node.ts +105 -0
  487. package/dist/node_modules/openai/src/internal/ws-adapter.ts +30 -0
  488. package/dist/node_modules/openai/src/internal/ws.ts +193 -0
  489. package/dist/node_modules/openai/src/realtime/websocket.ts +7 -2
  490. package/dist/node_modules/openai/src/realtime/ws.ts +5 -1
  491. package/dist/node_modules/openai/src/resources/admin/admin.ts +15 -0
  492. package/dist/node_modules/openai/src/resources/admin/index.ts +4 -0
  493. package/dist/node_modules/openai/src/resources/admin/organization/admin-api-keys.ts +199 -0
  494. package/dist/node_modules/openai/src/resources/admin/organization/audit-logs.ts +1597 -0
  495. package/dist/node_modules/openai/src/resources/admin/organization/certificates.ts +458 -0
  496. package/dist/node_modules/openai/src/resources/admin/organization/data-retention.ts +79 -0
  497. package/dist/node_modules/openai/src/resources/admin/organization/groups/groups.ts +277 -0
  498. package/dist/node_modules/openai/src/resources/admin/organization/groups/index.ts +36 -0
  499. package/dist/node_modules/openai/src/resources/admin/organization/groups/roles.ts +359 -0
  500. package/dist/node_modules/openai/src/resources/admin/organization/groups/users.ts +232 -0
  501. package/dist/node_modules/openai/src/resources/admin/organization/groups.ts +3 -0
  502. package/dist/node_modules/openai/src/resources/admin/organization/index.ts +117 -0
  503. package/dist/node_modules/openai/src/resources/admin/organization/invites.ts +215 -0
  504. package/dist/node_modules/openai/src/resources/admin/organization/organization.ts +272 -0
  505. package/dist/node_modules/openai/src/resources/admin/organization/projects/api-keys.ts +239 -0
  506. package/dist/node_modules/openai/src/resources/admin/organization/projects/certificates.ts +269 -0
  507. package/dist/node_modules/openai/src/resources/admin/organization/projects/data-retention.ts +91 -0
  508. package/dist/node_modules/openai/src/resources/admin/organization/projects/groups/groups.ts +231 -0
  509. package/dist/node_modules/openai/src/resources/admin/organization/projects/groups/index.ts +24 -0
  510. package/dist/node_modules/openai/src/resources/admin/organization/projects/groups/roles.ts +386 -0
  511. package/dist/node_modules/openai/src/resources/admin/organization/projects/groups.ts +3 -0
  512. package/dist/node_modules/openai/src/resources/admin/organization/projects/hosted-tool-permissions.ts +217 -0
  513. package/dist/node_modules/openai/src/resources/admin/organization/projects/index.ts +102 -0
  514. package/dist/node_modules/openai/src/resources/admin/organization/projects/model-permissions.ts +123 -0
  515. package/dist/node_modules/openai/src/resources/admin/organization/projects/projects.ts +445 -0
  516. package/dist/node_modules/openai/src/resources/admin/organization/projects/rate-limits.ts +173 -0
  517. package/dist/node_modules/openai/src/resources/admin/organization/projects/roles.ts +210 -0
  518. package/dist/node_modules/openai/src/resources/admin/organization/projects/service-accounts.ts +266 -0
  519. package/dist/node_modules/openai/src/resources/admin/organization/projects/spend-alerts.ts +332 -0
  520. package/dist/node_modules/openai/src/resources/admin/organization/projects/users/index.ts +25 -0
  521. package/dist/node_modules/openai/src/resources/admin/organization/projects/users/roles.ts +351 -0
  522. package/dist/node_modules/openai/src/resources/admin/organization/projects/users/users.ts +256 -0
  523. package/dist/node_modules/openai/src/resources/admin/organization/projects/users.ts +3 -0
  524. package/dist/node_modules/openai/src/resources/admin/organization/projects.ts +3 -0
  525. package/dist/node_modules/openai/src/resources/admin/organization/roles.ts +217 -0
  526. package/dist/node_modules/openai/src/resources/admin/organization/spend-alerts.ts +301 -0
  527. package/dist/node_modules/openai/src/resources/admin/organization/usage.ts +6427 -0
  528. package/dist/node_modules/openai/src/resources/admin/organization/users/index.ts +22 -0
  529. package/dist/node_modules/openai/src/resources/admin/organization/users/roles.ts +328 -0
  530. package/dist/node_modules/openai/src/resources/admin/organization/users/users.ts +291 -0
  531. package/dist/node_modules/openai/src/resources/admin/organization/users.ts +3 -0
  532. package/dist/node_modules/openai/src/resources/admin/organization.ts +3 -0
  533. package/dist/node_modules/openai/src/resources/admin.ts +3 -0
  534. package/dist/node_modules/openai/src/resources/audio/speech.ts +26 -6
  535. package/dist/node_modules/openai/src/resources/audio/transcriptions.ts +7 -0
  536. package/dist/node_modules/openai/src/resources/audio/translations.ts +7 -1
  537. package/dist/node_modules/openai/src/resources/batches.ts +20 -8
  538. package/dist/node_modules/openai/src/resources/beta/assistants.ts +11 -2
  539. package/dist/node_modules/openai/src/resources/beta/chatkit/sessions.ts +6 -2
  540. package/dist/node_modules/openai/src/resources/beta/chatkit/threads.ts +13 -5
  541. package/dist/node_modules/openai/src/resources/beta/realtime/sessions.ts +1 -0
  542. package/dist/node_modules/openai/src/resources/beta/realtime/transcription-sessions.ts +1 -0
  543. package/dist/node_modules/openai/src/resources/beta/threads/messages.ts +7 -0
  544. package/dist/node_modules/openai/src/resources/beta/threads/runs/runs.ts +10 -0
  545. package/dist/node_modules/openai/src/resources/beta/threads/runs/steps.ts +4 -0
  546. package/dist/node_modules/openai/src/resources/beta/threads/threads.ts +14 -4
  547. package/dist/node_modules/openai/src/resources/chat/completions/completions.ts +64 -27
  548. package/dist/node_modules/openai/src/resources/chat/completions/messages.ts +4 -1
  549. package/dist/node_modules/openai/src/resources/completions.ts +15 -6
  550. package/dist/node_modules/openai/src/resources/containers/containers.ts +11 -3
  551. package/dist/node_modules/openai/src/resources/containers/files/content.ts +1 -0
  552. package/dist/node_modules/openai/src/resources/containers/files/files.ts +7 -2
  553. package/dist/node_modules/openai/src/resources/conversations/conversations.ts +31 -4
  554. package/dist/node_modules/openai/src/resources/conversations/items.ts +17 -3
  555. package/dist/node_modules/openai/src/resources/embeddings.ts +4 -0
  556. package/dist/node_modules/openai/src/resources/evals/evals.ts +12 -5
  557. package/dist/node_modules/openai/src/resources/evals/runs/output-items.ts +8 -2
  558. package/dist/node_modules/openai/src/resources/evals/runs/runs.ts +21 -4
  559. package/dist/node_modules/openai/src/resources/files.ts +23 -5
  560. package/dist/node_modules/openai/src/resources/fine-tuning/alpha/graders.ts +13 -2
  561. package/dist/node_modules/openai/src/resources/fine-tuning/checkpoints/checkpoints.ts +6 -0
  562. package/dist/node_modules/openai/src/resources/fine-tuning/checkpoints/index.ts +3 -0
  563. package/dist/node_modules/openai/src/resources/fine-tuning/checkpoints/permissions.ts +84 -10
  564. package/dist/node_modules/openai/src/resources/fine-tuning/jobs/checkpoints.ts +4 -1
  565. package/dist/node_modules/openai/src/resources/fine-tuning/jobs/jobs.ts +26 -7
  566. package/dist/node_modules/openai/src/resources/images.ts +74 -27
  567. package/dist/node_modules/openai/src/resources/index.ts +7 -0
  568. package/dist/node_modules/openai/src/resources/models.ts +6 -3
  569. package/dist/node_modules/openai/src/resources/moderations.ts +4 -1
  570. package/dist/node_modules/openai/src/resources/realtime/calls.ts +21 -2
  571. package/dist/node_modules/openai/src/resources/realtime/client-secrets.ts +54 -40
  572. package/dist/node_modules/openai/src/resources/realtime/index.ts +0 -1
  573. package/dist/node_modules/openai/src/resources/realtime/realtime.ts +705 -20
  574. package/dist/node_modules/openai/src/resources/responses/index.ts +2 -0
  575. package/dist/node_modules/openai/src/resources/responses/input-items.ts +1 -1
  576. package/dist/node_modules/openai/src/resources/responses/input-tokens.ts +9 -2
  577. package/dist/node_modules/openai/src/resources/responses/internal-base.ts +113 -0
  578. package/dist/node_modules/openai/src/resources/responses/responses.ts +1314 -143
  579. package/dist/node_modules/openai/src/resources/responses/ws-base.ts +611 -0
  580. package/dist/node_modules/openai/src/resources/responses/ws.ts +38 -0
  581. package/dist/node_modules/openai/src/resources/shared.ts +9 -1
  582. package/dist/node_modules/openai/src/resources/skills/content.ts +2 -1
  583. package/dist/node_modules/openai/src/resources/skills/skills.ts +21 -10
  584. package/dist/node_modules/openai/src/resources/skills/versions/content.ts +2 -1
  585. package/dist/node_modules/openai/src/resources/skills/versions/versions.ts +14 -7
  586. package/dist/node_modules/openai/src/resources/uploads/parts.ts +4 -1
  587. package/dist/node_modules/openai/src/resources/uploads/uploads.ts +20 -4
  588. package/dist/node_modules/openai/src/resources/vector-stores/file-batches.ts +18 -4
  589. package/dist/node_modules/openai/src/resources/vector-stores/files.ts +13 -2
  590. package/dist/node_modules/openai/src/resources/vector-stores/vector-stores.ts +6 -0
  591. package/dist/node_modules/openai/src/resources/videos.ts +186 -16
  592. package/dist/node_modules/openai/src/version.ts +1 -1
  593. package/dist/node_modules/openai/streaming.d.mts +1 -0
  594. package/dist/node_modules/openai/streaming.d.ts +1 -0
  595. package/dist/node_modules/openai/uploads.d.mts +1 -0
  596. package/dist/node_modules/openai/uploads.d.ts +1 -0
  597. package/dist/node_modules/openai/version.d.mts +1 -1
  598. package/dist/node_modules/openai/version.d.ts +1 -1
  599. package/dist/node_modules/openai/version.js +1 -1
  600. package/dist/node_modules/zod/package.json +1 -1
  601. package/dist/server/ai-employees/ai-employee.d.ts +1 -10
  602. package/dist/server/ai-employees/ai-employee.js +8 -87
  603. package/dist/server/ai-employees/ai-knowledge-base.d.ts +0 -4
  604. package/dist/server/ai-employees/ai-knowledge-base.js +25 -89
  605. package/dist/server/collections/lc-checkpoint-blobs.js +1 -1
  606. package/dist/server/collections/lc-checkpoint-writes.js +1 -1
  607. package/dist/server/collections/lc-checkpoints.js +1 -1
  608. package/dist/server/features/index.d.ts +1 -1
  609. package/dist/server/features/knowledge-base.d.ts +2 -1
  610. package/dist/server/features/vector-store-provider.d.ts +1 -9
  611. package/dist/server/plugin.d.ts +3 -0
  612. package/dist/server/plugin.js +61 -0
  613. package/dist/server/resource/aiConversations.js +1 -1
  614. package/dist/server/resource/aiMcpClients.js +2 -2
  615. package/dist/server/resource/aiTools.js +14 -9
  616. package/dist/server/types/knowledge-base.type.d.ts +14 -0
  617. package/package.json +13 -13
  618. package/dist/ai/docs/nocobase/ai-employees/knowledge-base/knowledge-base.md +0 -82
  619. package/dist/client/580.e75f97fb883ad042.js +0 -10
  620. package/dist/node_modules/@langchain/xai/dist/_virtual/rolldown_runtime.cjs +0 -25
@@ -0,0 +1,114 @@
1
+ type EventListener<Events, EventType extends keyof Events> = Events[EventType];
2
+
3
+ type EventListeners<Events, EventType extends keyof Events> = Array<{
4
+ listener: EventListener<Events, EventType>;
5
+ once?: boolean;
6
+ }>;
7
+
8
+ export type EventParameters<Events, EventType extends keyof Events> = {
9
+ [Event in EventType]: EventListener<Events, EventType> extends (...args: infer P) => any ? P : never;
10
+ }[EventType];
11
+
12
+ export class EventEmitter<EventTypes extends Record<string, (...args: any) => any>> {
13
+ #listeners: {
14
+ [Event in keyof EventTypes]?: EventListeners<EventTypes, Event>;
15
+ } = {};
16
+
17
+ /**
18
+ * Adds the listener function to the end of the listeners array for the event.
19
+ * No checks are made to see if the listener has already been added. Multiple calls passing
20
+ * the same combination of event and listener will result in the listener being added, and
21
+ * called, multiple times.
22
+ * @returns this, so that calls can be chained
23
+ */
24
+ on<Event extends keyof EventTypes>(event: Event, listener: EventListener<EventTypes, Event>): this {
25
+ const listeners: EventListeners<EventTypes, Event> =
26
+ this.#listeners[event] || (this.#listeners[event] = []);
27
+ listeners.push({ listener });
28
+ return this;
29
+ }
30
+
31
+ /**
32
+ * Removes the specified listener from the listener array for the event.
33
+ * off() will remove, at most, one instance of a listener from the listener array. If any single
34
+ * listener has been added multiple times to the listener array for the specified event, then
35
+ * off() must be called multiple times to remove each instance.
36
+ * @returns this, so that calls can be chained
37
+ */
38
+ off<Event extends keyof EventTypes>(event: Event, listener: EventListener<EventTypes, Event>): this {
39
+ const listeners = this.#listeners[event];
40
+ if (!listeners) return this;
41
+ const index = listeners.findIndex((l) => l.listener === listener);
42
+ if (index >= 0) listeners.splice(index, 1);
43
+ return this;
44
+ }
45
+
46
+ /**
47
+ * Adds a one-time listener function for the event. The next time the event is triggered,
48
+ * this listener is removed and then invoked.
49
+ * @returns this, so that calls can be chained
50
+ */
51
+ once<Event extends keyof EventTypes>(event: Event, listener: EventListener<EventTypes, Event>): this {
52
+ const listeners: EventListeners<EventTypes, Event> =
53
+ this.#listeners[event] || (this.#listeners[event] = []);
54
+ listeners.push({ listener, once: true });
55
+ return this;
56
+ }
57
+
58
+ /**
59
+ * This is similar to `.once()`, but returns a Promise that resolves the next time
60
+ * the event is triggered, instead of calling a listener callback.
61
+ * @returns a Promise that resolves the next time given event is triggered,
62
+ * or rejects if an error is emitted. (If you request the 'error' event,
63
+ * returns a promise that resolves with the error).
64
+ *
65
+ * Example:
66
+ *
67
+ * const message = await stream.emitted('message') // rejects if the stream errors
68
+ */
69
+ emitted<Event extends keyof EventTypes>(
70
+ event: Event,
71
+ ): Promise<
72
+ EventParameters<EventTypes, Event> extends [infer Param] ? Param
73
+ : EventParameters<EventTypes, Event> extends [] ? void
74
+ : EventParameters<EventTypes, Event>
75
+ > {
76
+ return new Promise((resolve, reject) => {
77
+ // TODO: handle errors
78
+ this.once(event, resolve as any);
79
+ });
80
+ }
81
+
82
+ protected _emit<Event extends keyof EventTypes>(
83
+ this: EventEmitter<EventTypes>,
84
+ event: Event,
85
+ ...args: EventParameters<EventTypes, Event>
86
+ ) {
87
+ const listeners: EventListeners<EventTypes, Event> | undefined = this.#listeners[event];
88
+ if (listeners) {
89
+ this.#listeners[event] = listeners.filter((l) => !l.once) as any;
90
+ listeners.forEach(({ listener }: any) => listener(...(args as any)));
91
+ }
92
+ }
93
+
94
+ protected _hasListener(event: keyof EventTypes): boolean {
95
+ const listeners = this.#listeners[event];
96
+ return listeners && listeners.length > 0;
97
+ }
98
+ }
99
+
100
+ /**
101
+ * An EventEmitter variant that exposes `_emit()` publicly.
102
+ *
103
+ * The base {@link EventEmitter} keeps `_emit` protected so that consumers
104
+ * can only listen, not dispatch. When you need a separate emitter instance
105
+ * that your own code can emit on, without exposing emit on the
106
+ * consumer-facing emitter, use this class.
107
+ */
108
+ export class InternalEventEmitter<
109
+ EventTypes extends Record<string, (...args: any) => any>,
110
+ > extends EventEmitter<EventTypes> {
111
+ override _emit<Event extends keyof EventTypes>(event: Event, ...args: EventParameters<EventTypes, Event>) {
112
+ super._emit(event, ...args);
113
+ }
114
+ }
@@ -1,6 +1,7 @@
1
1
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  import { castToError } from '../internal/errors';
4
+ import type { OAuthErrorCode } from '../resources/shared';
4
5
 
5
6
  export class OpenAIError extends Error {}
6
7
 
@@ -158,3 +159,42 @@ export class InvalidWebhookSignatureError extends Error {
158
159
  super(message);
159
160
  }
160
161
  }
162
+
163
+ /**
164
+ * Error thrown by the API server during OAuth token exchange.
165
+ * Can have status codes 400, 401, or 403.
166
+ * Other status codes from OAuth endpoints are raised as normal APIError types.
167
+ */
168
+ export class OAuthError extends APIError<400 | 401 | 403, Headers> {
169
+ readonly error_code: OAuthErrorCode | undefined;
170
+
171
+ constructor(status: 400 | 401 | 403, error: Object | undefined, headers: Headers) {
172
+ let finalMessage = 'OAuth2 authentication error';
173
+ let error_code: OAuthErrorCode | undefined = undefined;
174
+
175
+ if (error && typeof error === 'object') {
176
+ const errorData = error as Record<string, any>;
177
+ error_code = errorData['error'];
178
+ const description = errorData['error_description'];
179
+ if (description && typeof description === 'string') {
180
+ finalMessage = description;
181
+ } else if (error_code) {
182
+ finalMessage = error_code;
183
+ }
184
+ }
185
+
186
+ super(status, error, finalMessage, headers);
187
+ this.error_code = error_code;
188
+ }
189
+ }
190
+
191
+ export class SubjectTokenProviderError extends OpenAIError {
192
+ readonly provider: string;
193
+ readonly cause: Error | undefined;
194
+
195
+ constructor(message: string, provider: string, cause?: Error) {
196
+ super(message);
197
+ this.provider = provider;
198
+ this.cause = cause;
199
+ }
200
+ }
@@ -267,3 +267,65 @@ export class ConversationCursorPage<Item>
267
267
  };
268
268
  }
269
269
  }
270
+
271
+ export interface NextCursorPageResponse<Item> {
272
+ data: Array<Item>;
273
+
274
+ has_more: boolean;
275
+
276
+ next: string | null;
277
+ }
278
+
279
+ export interface NextCursorPageParams {
280
+ after?: string;
281
+
282
+ limit?: number;
283
+ }
284
+
285
+ export class NextCursorPage<Item> extends AbstractPage<Item> implements NextCursorPageResponse<Item> {
286
+ data: Array<Item>;
287
+
288
+ has_more: boolean;
289
+
290
+ next: string | null;
291
+
292
+ constructor(
293
+ client: OpenAI,
294
+ response: Response,
295
+ body: NextCursorPageResponse<Item>,
296
+ options: FinalRequestOptions,
297
+ ) {
298
+ super(client, response, body, options);
299
+
300
+ this.data = body.data || [];
301
+ this.has_more = body.has_more || false;
302
+ this.next = body.next || null;
303
+ }
304
+
305
+ getPaginatedItems(): Item[] {
306
+ return this.data ?? [];
307
+ }
308
+
309
+ override hasNextPage(): boolean {
310
+ if (this.has_more === false) {
311
+ return false;
312
+ }
313
+
314
+ return super.hasNextPage();
315
+ }
316
+
317
+ nextPageRequestOptions(): PageRequestOptions | null {
318
+ const cursor = this.next;
319
+ if (!cursor) {
320
+ return null;
321
+ }
322
+
323
+ return {
324
+ ...this.options,
325
+ query: {
326
+ ...maybeObj(this.options.query),
327
+ after: cursor,
328
+ },
329
+ };
330
+ }
331
+ }
@@ -35,6 +35,7 @@ export class Stream<Item> implements AsyncIterable<Item> {
35
35
  response: Response,
36
36
  controller: AbortController,
37
37
  client?: OpenAI,
38
+ synthesizeEventData?: boolean,
38
39
  ): Stream<Item> {
39
40
  let consumed = false;
40
41
  const logger = client ? loggerFor(client) : console;
@@ -69,7 +70,7 @@ export class Stream<Item> implements AsyncIterable<Item> {
69
70
  throw new APIError(undefined, data.error, undefined, response.headers);
70
71
  }
71
72
 
72
- yield data;
73
+ yield synthesizeEventData ? { event: sse.event, data } : data;
73
74
  } else {
74
75
  let data;
75
76
  try {
@@ -21,6 +21,8 @@ export {
21
21
  PermissionDeniedError,
22
22
  UnprocessableEntityError,
23
23
  InvalidWebhookSignatureError,
24
+ OAuthError,
25
+ SubjectTokenProviderError,
24
26
  } from './core/error';
25
27
 
26
28
  export { AzureOpenAI } from './azure';
@@ -28,10 +28,20 @@ export async function defaultParseResponse<T>(
28
28
  // that if you set `stream: true` the response type must also be `Stream<T>`
29
29
 
30
30
  if (props.options.__streamClass) {
31
- return props.options.__streamClass.fromSSEResponse(response, props.controller, client) as any;
31
+ return props.options.__streamClass.fromSSEResponse(
32
+ response,
33
+ props.controller,
34
+ client,
35
+ props.options.__synthesizeEventData,
36
+ ) as any;
32
37
  }
33
38
 
34
- return Stream.fromSSEResponse(response, props.controller, client) as any;
39
+ return Stream.fromSSEResponse(
40
+ response,
41
+ props.controller,
42
+ client,
43
+ props.options.__synthesizeEventData,
44
+ ) as any;
35
45
  }
36
46
 
37
47
  // fetch refuses to read the body when the status code is 204.
@@ -77,8 +77,10 @@ export type RequestOptions = {
77
77
  defaultBaseURL?: string | undefined;
78
78
 
79
79
  __metadata?: Record<string, unknown>;
80
+ __security?: { bearerAuth?: boolean; adminAPIKeyAuth?: boolean };
80
81
  __binaryResponse?: boolean | undefined;
81
82
  __streamClass?: typeof Stream;
83
+ __synthesizeEventData?: boolean;
82
84
  };
83
85
 
84
86
  export type EncodedContent = { bodyHeaders: HeadersLike; body: BodyInit };
@@ -40,7 +40,6 @@ type OverloadedParameters<T> =
40
40
  : T extends (...args: infer A) => unknown ? A
41
41
  : never;
42
42
 
43
- /* eslint-disable */
44
43
  /**
45
44
  * These imports attempt to get types from a parent package's dependencies.
46
45
  * Unresolved bare specifiers can trigger [automatic type acquisition][1] in some projects, which
@@ -63,19 +62,18 @@ type OverloadedParameters<T> =
63
62
  *
64
63
  * [1]: https://www.typescriptlang.org/tsconfig/#typeAcquisition
65
64
  */
66
- /** @ts-ignore For users with \@types/node */
65
+ /** @ts-ignore For users with \@types/node */ /* prettier-ignore */
67
66
  type UndiciTypesRequestInit = NotAny<import('../node_modules/undici-types/index.d.ts').RequestInit> | NotAny<import('../../node_modules/undici-types/index.d.ts').RequestInit> | NotAny<import('../../../node_modules/undici-types/index.d.ts').RequestInit> | NotAny<import('../../../../node_modules/undici-types/index.d.ts').RequestInit> | NotAny<import('../../../../../node_modules/undici-types/index.d.ts').RequestInit> | NotAny<import('../../../../../../node_modules/undici-types/index.d.ts').RequestInit> | NotAny<import('../../../../../../../node_modules/undici-types/index.d.ts').RequestInit> | NotAny<import('../../../../../../../../node_modules/undici-types/index.d.ts').RequestInit> | NotAny<import('../../../../../../../../../node_modules/undici-types/index.d.ts').RequestInit> | NotAny<import('../../../../../../../../../../node_modules/undici-types/index.d.ts').RequestInit>;
68
- /** @ts-ignore For users with undici */
67
+ /** @ts-ignore For users with undici */ /* prettier-ignore */
69
68
  type UndiciRequestInit = NotAny<import('../node_modules/undici/index.d.ts').RequestInit> | NotAny<import('../../node_modules/undici/index.d.ts').RequestInit> | NotAny<import('../../../node_modules/undici/index.d.ts').RequestInit> | NotAny<import('../../../../node_modules/undici/index.d.ts').RequestInit> | NotAny<import('../../../../../node_modules/undici/index.d.ts').RequestInit> | NotAny<import('../../../../../../node_modules/undici/index.d.ts').RequestInit> | NotAny<import('../../../../../../../node_modules/undici/index.d.ts').RequestInit> | NotAny<import('../../../../../../../../node_modules/undici/index.d.ts').RequestInit> | NotAny<import('../../../../../../../../../node_modules/undici/index.d.ts').RequestInit> | NotAny<import('../../../../../../../../../../node_modules/undici/index.d.ts').RequestInit>;
70
- /** @ts-ignore For users with \@types/bun */
69
+ /** @ts-ignore For users with \@types/bun */ /* prettier-ignore */
71
70
  type BunRequestInit = globalThis.FetchRequestInit;
72
- /** @ts-ignore For users with node-fetch@2 */
71
+ /** @ts-ignore For users with node-fetch@2 */ /* prettier-ignore */
73
72
  type NodeFetch2RequestInit = NotAny<import('../node_modules/@types/node-fetch/index.d.ts').RequestInit> | NotAny<import('../../node_modules/@types/node-fetch/index.d.ts').RequestInit> | NotAny<import('../../../node_modules/@types/node-fetch/index.d.ts').RequestInit> | NotAny<import('../../../../node_modules/@types/node-fetch/index.d.ts').RequestInit> | NotAny<import('../../../../../node_modules/@types/node-fetch/index.d.ts').RequestInit> | NotAny<import('../../../../../../node_modules/@types/node-fetch/index.d.ts').RequestInit> | NotAny<import('../../../../../../../node_modules/@types/node-fetch/index.d.ts').RequestInit> | NotAny<import('../../../../../../../../node_modules/@types/node-fetch/index.d.ts').RequestInit> | NotAny<import('../../../../../../../../../node_modules/@types/node-fetch/index.d.ts').RequestInit> | NotAny<import('../../../../../../../../../../node_modules/@types/node-fetch/index.d.ts').RequestInit>;
74
- /** @ts-ignore For users with node-fetch@3, doesn't need file extension because types are at ./@types/index.d.ts */
73
+ /** @ts-ignore For users with node-fetch@3, doesn't need file extension because types are at ./@types/index.d.ts */ /* prettier-ignore */
75
74
  type NodeFetch3RequestInit = NotAny<import('../node_modules/node-fetch').RequestInit> | NotAny<import('../../node_modules/node-fetch').RequestInit> | NotAny<import('../../../node_modules/node-fetch').RequestInit> | NotAny<import('../../../../node_modules/node-fetch').RequestInit> | NotAny<import('../../../../../node_modules/node-fetch').RequestInit> | NotAny<import('../../../../../../node_modules/node-fetch').RequestInit> | NotAny<import('../../../../../../../node_modules/node-fetch').RequestInit> | NotAny<import('../../../../../../../../node_modules/node-fetch').RequestInit> | NotAny<import('../../../../../../../../../node_modules/node-fetch').RequestInit> | NotAny<import('../../../../../../../../../../node_modules/node-fetch').RequestInit>;
76
- /** @ts-ignore For users who use Deno */
75
+ /** @ts-ignore For users who use Deno */ /* prettier-ignore */
77
76
  type FetchRequestInit = NonNullable<OverloadedParameters<typeof fetch>[1]>;
78
- /* eslint-enable */
79
77
 
80
78
  type RequestInits =
81
79
  | NotAny<UndiciTypesRequestInit>
@@ -86,10 +84,18 @@ type RequestInits =
86
84
  | NotAny<RequestInit>
87
85
  | NotAny<FetchRequestInit>;
88
86
 
87
+ type RuntimeFetchOptions = {
88
+ dispatcher?: unknown;
89
+ agent?: unknown;
90
+ client?: unknown;
91
+ proxy?: unknown;
92
+ };
93
+
89
94
  /**
90
95
  * This type contains `RequestInit` options that may be available on the current runtime,
91
96
  * including per-platform extensions like `dispatcher`, `agent`, `client`, etc.
92
97
  */
93
98
  export type MergedRequestInit = RequestInits &
99
+ RuntimeFetchOptions &
94
100
  /** We don't include these in the types as they'll be overridden for every request. */
95
101
  Partial<Record<'body' | 'headers' | 'method' | 'signal', never>>;
@@ -9,10 +9,10 @@
9
9
  */
10
10
  export const readEnv = (env: string): string | undefined => {
11
11
  if (typeof (globalThis as any).process !== 'undefined') {
12
- return (globalThis as any).process.env?.[env]?.trim() ?? undefined;
12
+ return (globalThis as any).process.env?.[env]?.trim() || undefined;
13
13
  }
14
14
  if (typeof (globalThis as any).Deno !== 'undefined') {
15
- return (globalThis as any).Deno.env?.get?.(env)?.trim();
15
+ return (globalThis as any).Deno.env?.get?.(env)?.trim() || undefined;
16
16
  }
17
17
  return undefined;
18
18
  };
@@ -107,6 +107,8 @@ export const formatRequestDetails = (details: {
107
107
  name,
108
108
  (
109
109
  name.toLowerCase() === 'authorization' ||
110
+ name.toLowerCase() === 'api-key' ||
111
+ name.toLowerCase() === 'x-api-key' ||
110
112
  name.toLowerCase() === 'cookie' ||
111
113
  name.toLowerCase() === 'set-cookie'
112
114
  ) ?
@@ -0,0 +1,7 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import * as qs from '../qs/stringify';
4
+
5
+ export function stringifyQuery(query: object | Record<string, unknown>) {
6
+ return qs.stringify(query, { arrayFormat: 'brackets' });
7
+ }
@@ -6,3 +6,4 @@ export * from './utils/env';
6
6
  export * from './utils/log';
7
7
  export * from './utils/uuid';
8
8
  export * from './utils/sleep';
9
+ export * from './utils/query';
@@ -0,0 +1,123 @@
1
+ import type { WebSocketLike } from './ws-adapter';
2
+
3
+ /** A generic event listener callback. */
4
+ type Listener = (...args: any[]) => void;
5
+
6
+ /** A DOM-style event handler passed to addEventListener/removeEventListener. */
7
+ type DOMEventHandler = (ev: any) => void;
8
+
9
+ // Minimal browser API type declarations.
10
+ declare class WebSocket {
11
+ readonly readyState: number;
12
+ binaryType: string;
13
+ send(data: string | ArrayBufferLike | ArrayBufferView): void;
14
+ close(code?: number, reason?: string): void;
15
+ addEventListener(type: string, listener: DOMEventHandler): void;
16
+ removeEventListener(type: string, listener: DOMEventHandler): void;
17
+ }
18
+
19
+ interface MessageEvent {
20
+ data: any;
21
+ }
22
+
23
+ interface CloseEvent {
24
+ code: number;
25
+ reason: string;
26
+ }
27
+
28
+ export class BrowserWebSocket implements WebSocketLike {
29
+ private _ws: WebSocket;
30
+ private _listenerMap = new Map<string, Map<Listener, DOMEventHandler>>();
31
+
32
+ constructor(ws: WebSocket) {
33
+ this._ws = ws;
34
+ this._ws.binaryType = 'arraybuffer';
35
+ }
36
+
37
+ /** The underlying platform-specific socket. Code that accesses this will not be isomorphic across server and browser environments. */
38
+ get platformSocket(): WebSocket {
39
+ return this._ws;
40
+ }
41
+
42
+ get readyState(): number {
43
+ return this._ws.readyState;
44
+ }
45
+
46
+ send(data: string | ArrayBufferLike | ArrayBufferView): void {
47
+ this._ws.send(data);
48
+ }
49
+
50
+ close(code?: number, reason?: string): void {
51
+ this._ws.close(code, reason);
52
+ }
53
+
54
+ on(event: string, listener: Listener): void {
55
+ const wrapped = this._wrapListener(event, listener);
56
+ this._listenersFor(event).set(listener, wrapped);
57
+ this._ws.addEventListener(event, wrapped);
58
+ }
59
+
60
+ off(event: string, listener: Listener): void {
61
+ const byListener = this._listenerMap.get(event);
62
+ if (!byListener) return;
63
+ const wrapped = byListener.get(listener);
64
+ if (wrapped) {
65
+ byListener.delete(listener);
66
+ this._ws.removeEventListener(event, wrapped);
67
+ }
68
+ }
69
+
70
+ once(event: string, listener: Listener): void {
71
+ const onceListener: Listener = (...args) => {
72
+ this.off(event, listener);
73
+ listener(...args);
74
+ };
75
+ const wrapped = this._wrapListener(event, onceListener);
76
+ this._listenersFor(event).set(listener, wrapped);
77
+ this._ws.addEventListener(event, wrapped);
78
+ }
79
+
80
+ private _listenersFor(event: string): Map<Listener, DOMEventHandler> {
81
+ let map = this._listenerMap.get(event);
82
+ if (!map) {
83
+ map = new Map();
84
+ this._listenerMap.set(event, map);
85
+ }
86
+ return map;
87
+ }
88
+
89
+ /**
90
+ * Converts browser event objects to positional arguments matching the
91
+ * {@link WebSocketLike} interface.
92
+ */
93
+ private _wrapListener(event: string, listener: Listener): DOMEventHandler {
94
+ switch (event) {
95
+ case 'message':
96
+ return (ev: MessageEvent) => {
97
+ const isBinary = typeof ev.data !== 'string';
98
+ listener(ev.data, isBinary);
99
+ };
100
+
101
+ case 'close':
102
+ return (ev: CloseEvent) => {
103
+ listener(ev.code, ev.reason);
104
+ };
105
+
106
+ case 'error':
107
+ return (ev: any) => {
108
+ // Some environments provide an ErrorEvent with a `.message`;
109
+ // fall back to a generic message when the event carries nothing.
110
+ const message = ev?.message || ev?.error?.message || 'WebSocket error';
111
+ const err = new Error(message);
112
+ if (ev?.error) {
113
+ (err as any).cause = ev.error;
114
+ }
115
+ listener(err);
116
+ };
117
+
118
+ case 'open':
119
+ default:
120
+ return listener as DOMEventHandler;
121
+ }
122
+ }
123
+ }
@@ -0,0 +1,105 @@
1
+ import type * as WS from 'ws';
2
+ import type { WebSocketLike } from './ws-adapter';
3
+
4
+ /** A generic event listener callback. */
5
+ type Listener = (...args: any[]) => void;
6
+
7
+ export class NodeWebSocket implements WebSocketLike {
8
+ private _ws: WS.WebSocket;
9
+
10
+ /** Maps `(event, originalListener)` -> wrapped listener for correct `off()` removal. */
11
+ private _listenerMap = new Map<string, Map<Listener, Listener>>();
12
+
13
+ constructor(ws: WS.WebSocket) {
14
+ this._ws = ws;
15
+ }
16
+
17
+ /** The underlying platform-specific socket. Code that accesses this will not be isomorphic across server and browser environments. */
18
+ get platformSocket(): WS.WebSocket {
19
+ return this._ws;
20
+ }
21
+
22
+ get readyState(): number {
23
+ return this._ws.readyState;
24
+ }
25
+
26
+ send(data: string | ArrayBufferLike | ArrayBufferView): void {
27
+ this._ws.send(data);
28
+ }
29
+
30
+ close(code?: number, reason?: string): void {
31
+ this._ws.close(code, reason);
32
+ }
33
+
34
+ on(event: string, listener: Listener): void {
35
+ const wrapped = this._wrapListener(event, listener);
36
+ this._listenersFor(event).set(listener, wrapped);
37
+ this._ws.on(event, wrapped);
38
+ }
39
+
40
+ off(event: string, listener: Listener): void {
41
+ const byListener = this._listenerMap.get(event);
42
+ if (!byListener) return;
43
+ const wrapped = byListener.get(listener);
44
+ if (wrapped) {
45
+ byListener.delete(listener);
46
+ this._ws.removeListener(event, wrapped);
47
+ }
48
+ }
49
+
50
+ once(event: string, listener: Listener): void {
51
+ const onceListener: Listener = (...args) => {
52
+ this.off(event, listener);
53
+ listener(...args);
54
+ };
55
+ const wrapped = this._wrapListener(event, onceListener);
56
+ this._listenersFor(event).set(listener, wrapped);
57
+ this._ws.on(event, wrapped);
58
+ }
59
+
60
+ private _listenersFor(event: string): Map<Listener, Listener> {
61
+ let map = this._listenerMap.get(event);
62
+ if (!map) {
63
+ map = new Map();
64
+ this._listenerMap.set(event, map);
65
+ }
66
+ return map;
67
+ }
68
+
69
+ /**
70
+ * Normalizes `ws` message payloads: text frames become strings,
71
+ * binary frames stay as `Buffer`, and fragmented frames are merged.
72
+ */
73
+ private static _normalizeMessageData(
74
+ data: Buffer | ArrayBuffer | Buffer[],
75
+ isBinary: boolean,
76
+ ): string | Buffer {
77
+ if (!isBinary) {
78
+ if (Array.isArray(data)) return Buffer.concat(data).toString();
79
+ if (data instanceof ArrayBuffer) return Buffer.from(data).toString();
80
+ return data.toString();
81
+ }
82
+
83
+ if (Array.isArray(data)) return Buffer.concat(data);
84
+ if (data instanceof ArrayBuffer) return Buffer.from(data);
85
+ return data;
86
+ }
87
+
88
+ private _wrapListener(event: string, listener: Listener): Listener {
89
+ switch (event) {
90
+ case 'message':
91
+ return (data: Buffer | ArrayBuffer | Buffer[], isBinary: boolean) => {
92
+ listener(NodeWebSocket._normalizeMessageData(data, isBinary), isBinary);
93
+ };
94
+
95
+ case 'close':
96
+ return (code: number, reason: Buffer) => {
97
+ listener(code, reason.toString());
98
+ };
99
+
100
+ // 'open' and 'error' pass through unchanged
101
+ default:
102
+ return listener;
103
+ }
104
+ }
105
+ }
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Normalized WebSocket interface that abstracts over the `ws` package (Node.js)
3
+ * and the native WebSocket API (browser).
4
+ */
5
+ export interface WebSocketLike {
6
+ readonly readyState: number;
7
+
8
+ send(data: string | ArrayBufferLike | ArrayBufferView): void;
9
+ close(code?: number, reason?: string): void;
10
+
11
+ on(event: 'open', listener: () => void): void;
12
+ on(
13
+ event: 'message',
14
+ listener: (data: string | ArrayBuffer | ArrayBufferView, isBinary: boolean) => void,
15
+ ): void;
16
+ on(event: 'close', listener: (code: number, reason: string) => void): void;
17
+ on(event: 'error', listener: (err: Error) => void): void;
18
+ on(event: string, listener: (...args: any[]) => void): void;
19
+
20
+ off(event: string, listener: (...args: any[]) => void): void;
21
+ once(event: string, listener: (...args: any[]) => void): void;
22
+ }
23
+
24
+ /** Standard WebSocket readyState values (RFC 6455). */
25
+ export const ReadyState = {
26
+ CONNECTING: 0,
27
+ OPEN: 1,
28
+ CLOSING: 2,
29
+ CLOSED: 3,
30
+ } as const;