@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
@@ -42,115 +42,51 @@ module.exports = __toCommonJS(ai_knowledge_base_exports);
42
42
  var import_prompts = require("@langchain/core/prompts");
43
43
  var import_ai_feature_manager = require("../manager/ai-feature-manager");
44
44
  var import_lodash = __toESM(require("lodash"));
45
+ const normalizeMatchedQuestions = (value) => {
46
+ if (!Array.isArray(value)) {
47
+ return [];
48
+ }
49
+ return value.filter((item) => typeof item === "string" && item.trim() !== "");
50
+ };
51
+ const buildKnowledgeBaseContent = (content, metadata) => {
52
+ const matchedQuestions = normalizeMatchedQuestions(metadata == null ? void 0 : metadata.matchedQuestions);
53
+ if (!matchedQuestions.length) {
54
+ return content;
55
+ }
56
+ return `Related questions:
57
+ ${matchedQuestions.join("\n")}
58
+
59
+ ${content}`;
60
+ };
45
61
  class KnowledgeBaseManager {
46
62
  constructor(plugin) {
47
63
  this.plugin = plugin;
48
64
  }
49
65
  async retrievePrompt({ username, employee, query }) {
50
- employee = employee ?? await this.getEmployee(username);
66
+ employee = employee ?? (username ? await this.getEmployee(username) : null);
51
67
  if (!employee) {
52
68
  return "Specified knowledge base not existed";
53
69
  }
54
- const promptTemplate = import_prompts.ChatPromptTemplate.fromTemplate(employee.knowledgeBasePrompt);
55
- const docs = await this.retrieve({
56
- employee,
57
- query
58
- });
70
+ const { knowledgeBaseKeys, topK, score } = employee.knowledgeBase ?? {};
71
+ if (!knowledgeBaseKeys || import_lodash.default.isEmpty(knowledgeBaseKeys)) {
72
+ return "Specified knowledge base not existed";
73
+ }
74
+ const promptTemplate = import_prompts.ChatPromptTemplate.fromTemplate(employee.knowledgeBasePrompt ?? "{knowledgeBaseData}");
75
+ const docs = await this.plugin.features.knowledgeBase.search({ knowledgeBaseKeys, query, topK, score });
59
76
  if (!(docs == null ? void 0 : docs.length)) {
60
77
  return "No document match in knowledge base";
61
78
  }
62
- const knowledgeBaseData = docs.map((x) => x.content).join("\n");
63
- return import_lodash.default.isEmpty(knowledgeBaseData) ? void 0 : await promptTemplate.format({
79
+ const knowledgeBaseData = docs.map((doc) => buildKnowledgeBaseContent(doc.content, doc.metadata)).join("\n");
80
+ return import_lodash.default.isEmpty(knowledgeBaseData) ? "No document match in knowledge base" : await promptTemplate.format({
64
81
  knowledgeBaseData
65
82
  });
66
83
  }
67
- async retrieve({ username, employee, query }) {
68
- const vectorStoreProvider = this.plugin.features.vectorStoreProvider;
69
- let queryResult = [];
70
- if (!query || import_lodash.default.isEmpty(query)) {
71
- return queryResult;
72
- }
73
- employee = employee ?? await this.getEmployee(username);
74
- if (!employee) {
75
- return queryResult;
76
- }
77
- const { topK, score } = this.getAIEmployeeKnowledgeBaseConfig(employee);
78
- const knowledgeBaseGroup = await this.getKnowledgeBaseGroup(employee);
79
- for (const entry of knowledgeBaseGroup) {
80
- const { vectorStoreConfig, knowledgeBaseType, knowledgeBaseList } = entry;
81
- if (!knowledgeBaseList || import_lodash.default.isEmpty(knowledgeBaseList)) {
82
- continue;
83
- }
84
- if (knowledgeBaseType === "LOCAL") {
85
- const vectorStoreService = await vectorStoreProvider.createVectorStoreService(
86
- vectorStoreConfig.vectorStoreProvider,
87
- [
88
- {
89
- key: "vectorStoreConfigKey",
90
- value: vectorStoreConfig.vectorStoreConfigKey ?? ""
91
- }
92
- ]
93
- );
94
- const knowledgeBaseOuterIds = knowledgeBaseList.map((x) => x.knowledgeBaseOuterId);
95
- const result = await vectorStoreService.search(query, {
96
- topK,
97
- score,
98
- filter: {
99
- knowledgeBaseOuterId: { in: knowledgeBaseOuterIds }
100
- }
101
- });
102
- queryResult = [...queryResult, ...result];
103
- } else if (knowledgeBaseType === "READONLY") {
104
- const vectorStoreService = await vectorStoreProvider.createVectorStoreService(
105
- vectorStoreConfig.vectorStoreProvider,
106
- [
107
- {
108
- key: "vectorStoreConfigKey",
109
- value: vectorStoreConfig.vectorStoreConfigKey ?? ""
110
- }
111
- ]
112
- );
113
- const result = await vectorStoreService.search(query, {
114
- topK,
115
- score
116
- });
117
- queryResult = [...queryResult, ...result];
118
- } else if (knowledgeBaseType === "EXTERNAL") {
119
- for (const knowledgeBase of knowledgeBaseList) {
120
- const vectorStoreService = await vectorStoreProvider.createVectorStoreService(
121
- vectorStoreConfig.vectorStoreProvider,
122
- this.plugin.app.environment.renderJsonTemplate(knowledgeBase.vectorStoreProps ?? [])
123
- );
124
- const result = await vectorStoreService.search(query, {
125
- topK,
126
- score
127
- });
128
- queryResult = [...queryResult, ...result];
129
- }
130
- }
131
- }
132
- return queryResult;
133
- }
134
84
  async isEnabledKnowledgeBase(usernameOrEmployee) {
135
85
  const featureEnabled = this.plugin.features.isFeaturesEnabled(Object.values(import_ai_feature_manager.EEFeatures));
136
86
  const employee = typeof usernameOrEmployee === "string" ? await this.getEmployee(usernameOrEmployee) : usernameOrEmployee;
137
87
  const knowledgeBaseEnabled = employee == null ? void 0 : employee.enableKnowledgeBase;
138
88
  return featureEnabled && knowledgeBaseEnabled;
139
89
  }
140
- getAIEmployeeKnowledgeBaseConfig(employee) {
141
- const { topK, score } = (employee == null ? void 0 : employee.knowledgeBase) ?? {};
142
- return {
143
- topK,
144
- score
145
- };
146
- }
147
- async getKnowledgeBaseGroup(employee) {
148
- const { knowledgeBaseKeys } = (employee == null ? void 0 : employee.knowledgeBase) ?? {};
149
- if (!knowledgeBaseKeys || import_lodash.default.isEmpty(knowledgeBaseKeys)) {
150
- return [];
151
- }
152
- return await this.plugin.features.knowledgeBase.getKnowledgeBaseGroup(knowledgeBaseKeys);
153
- }
154
90
  async getEmployee(username) {
155
91
  return await this.aiEmployeeRepo.findOne({ filter: { username } });
156
92
  }
@@ -32,7 +32,7 @@ module.exports = __toCommonJS(lc_checkpoint_blobs_exports);
32
32
  var import_database = require("@nocobase/database");
33
33
  var lc_checkpoint_blobs_default = (0, import_database.defineCollection)({
34
34
  name: "lcCheckpointBlobs",
35
- dataCategory: "business",
35
+ dataCategory: "runtime",
36
36
  migrationRules: ["schema-only"],
37
37
  autoGenId: false,
38
38
  fields: [
@@ -32,7 +32,7 @@ module.exports = __toCommonJS(lc_checkpoint_writes_exports);
32
32
  var import_database = require("@nocobase/database");
33
33
  var lc_checkpoint_writes_default = (0, import_database.defineCollection)({
34
34
  name: "lcCheckpointWrites",
35
- dataCategory: "business",
35
+ dataCategory: "runtime",
36
36
  migrationRules: ["schema-only"],
37
37
  autoGenId: false,
38
38
  fields: [
@@ -32,7 +32,7 @@ module.exports = __toCommonJS(lc_checkpoints_exports);
32
32
  var import_database = require("@nocobase/database");
33
33
  var lc_checkpoints_default = (0, import_database.defineCollection)({
34
34
  name: "lcCheckpoints",
35
- dataCategory: "business",
35
+ dataCategory: "runtime",
36
36
  migrationRules: ["schema-only"],
37
37
  autoGenId: false,
38
38
  fields: [
@@ -25,7 +25,7 @@ export interface AIPluginFeatureManager extends PluginFeatureManager<AIPluginFea
25
25
  }
26
26
  export type { VectorDatabaseFeature, VectorDatabaseInfo } from './vector-database';
27
27
  export type { VectorDatabaseProviderFeature, VectorDatabaseProviderInfo, VectorDatabaseProvider, } from './vector-database-provider';
28
- export type { VectorStoreProviderFeature, VectorStoreProvider, VectorStoreService, VectorStoreSearchOptions, DocumentSegmented, DocumentSegmentedWithScore, } from './vector-store-provider';
28
+ export type { VectorStoreProviderFeature, VectorStoreProvider, VectorStoreService, VectorStoreSearchOptions, } from './vector-store-provider';
29
29
  export type { KnowledgeBaseFeature } from './knowledge-base';
30
30
  export type { PluginFeatureKeys, PluginFeatureManager } from './feature-manager';
31
31
  export { BasePluginFeatureManager } from './feature-manager';
@@ -6,8 +6,9 @@
6
6
  * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
7
  * For more information, please refer to: https://www.nocobase.com/agreement.
8
8
  */
9
- import { KnowledgeBase, KnowledgeBaseGroup } from '../types';
9
+ import { DocumentSegmentedWithScore, KnowledgeBase, KnowledgeBaseGroup, SearchOptions } from '../types';
10
10
  export interface KnowledgeBaseFeature {
11
11
  getKnowledgeBase(knowledgeBaseKeys: string[]): Promise<KnowledgeBase[]>;
12
12
  getKnowledgeBaseGroup(knowledgeBaseKeys: string[]): Promise<KnowledgeBaseGroup[]>;
13
+ search(options: SearchOptions): Promise<DocumentSegmentedWithScore[]>;
13
14
  }
@@ -6,7 +6,7 @@
6
6
  * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
7
  * For more information, please refer to: https://www.nocobase.com/agreement.
8
8
  */
9
- import { VectorStoreProp } from '../types';
9
+ import { DocumentSegmentedWithScore, VectorStoreProp } from '../types';
10
10
  export interface VectorStoreProviderFeature {
11
11
  register(vsp: VectorStoreProvider): void;
12
12
  providerNames: string[];
@@ -25,11 +25,3 @@ export type VectorStoreSearchOptions = {
25
25
  score?: string;
26
26
  filter?: any;
27
27
  };
28
- export type DocumentSegmented = {
29
- content: string;
30
- metadata: Record<string, any>;
31
- id?: string;
32
- };
33
- export type DocumentSegmentedWithScore = DocumentSegmented & {
34
- score: number;
35
- };
@@ -43,10 +43,13 @@ export declare class PluginAIServer extends Plugin {
43
43
  isBuilderAI(username: string): boolean;
44
44
  afterAdd(): Promise<void>;
45
45
  beforeLoad(): Promise<void>;
46
+ private resetConversationThreadsWhenCheckpointsEmpty;
46
47
  load(): Promise<void>;
47
48
  registerLLMProviders(): void;
48
49
  registerTools(): void;
49
50
  defineResources(): void;
51
+ registerMcpClientEvents(): void;
52
+ private clearMcpUserContextCacheAfterCommit;
50
53
  setPermissions(): void;
51
54
  registerWorkflow(): void;
52
55
  registerWorkContextResolveStrategy(): void;
@@ -128,11 +128,43 @@ class PluginAIServer extends import_server.Plugin {
128
128
  await this.ai.employeeManager.init();
129
129
  await this.ai.mcpManager.init();
130
130
  });
131
+ this.app.on("afterUpgrade", async () => {
132
+ await this.resetConversationThreadsWhenCheckpointsEmpty();
133
+ });
134
+ }
135
+ async resetConversationThreadsWhenCheckpointsEmpty() {
136
+ const [checkpointCount, checkpointWriteCount, checkpointBlobCount, conversationsWithThreadCount] = await Promise.all([
137
+ this.db.getRepository("lcCheckpoints").count(),
138
+ this.db.getRepository("lcCheckpointWrites").count(),
139
+ this.db.getRepository("lcCheckpointBlobs").count(),
140
+ this.db.getRepository("aiConversations").count({
141
+ filter: {
142
+ thread: {
143
+ $gt: 0
144
+ }
145
+ }
146
+ })
147
+ ]);
148
+ if (checkpointCount > 0 || checkpointWriteCount > 0 || checkpointBlobCount > 0 || conversationsWithThreadCount <= 1) {
149
+ return;
150
+ }
151
+ await this.db.getRepository("aiConversations").update({
152
+ filter: {
153
+ thread: {
154
+ $gt: 0
155
+ }
156
+ },
157
+ values: {
158
+ thread: 0
159
+ }
160
+ });
161
+ this.app.logger.info(`Reset ${conversationsWithThreadCount} AI conversation threads after empty checkpoints`);
131
162
  }
132
163
  async load() {
133
164
  this.registerLLMProviders();
134
165
  this.registerTools();
135
166
  this.defineResources();
167
+ this.registerMcpClientEvents();
136
168
  this.setPermissions();
137
169
  this.registerWorkflow();
138
170
  this.registerWorkContextResolveStrategy();
@@ -186,6 +218,35 @@ class PluginAIServer extends import_server.Plugin {
186
218
  this.app.resourceManager.registerActionHandler(`aiEmployees:${name}`, action);
187
219
  });
188
220
  }
221
+ registerMcpClientEvents() {
222
+ this.db.on("aiMcpClients.afterCreate", (model, { transaction } = {}) => {
223
+ if (model.get("useUserContext") === true) {
224
+ this.clearMcpUserContextCacheAfterCommit(transaction);
225
+ }
226
+ });
227
+ this.db.on("aiMcpClients.afterUpdate", (model, { transaction } = {}) => {
228
+ if (model.get("useUserContext") === true || model.previous("useUserContext") === true) {
229
+ this.clearMcpUserContextCacheAfterCommit(transaction);
230
+ }
231
+ });
232
+ this.db.on("aiMcpClients.afterDestroy", (model, { transaction } = {}) => {
233
+ if (model.get("useUserContext") === true) {
234
+ this.clearMcpUserContextCacheAfterCommit(transaction);
235
+ }
236
+ });
237
+ }
238
+ clearMcpUserContextCacheAfterCommit(transaction) {
239
+ const clearCache = () => {
240
+ this.ai.mcpManager.clearUserContextCache().catch((error) => {
241
+ this.app.log.warn("fail to clear user-bound mcp client cache", error);
242
+ });
243
+ };
244
+ if (transaction) {
245
+ transaction.afterCommit(clearCache);
246
+ return;
247
+ }
248
+ clearCache();
249
+ }
189
250
  setPermissions() {
190
251
  this.app.acl.registerSnippet({
191
252
  name: `pm.${this.name}.llm-services`,
@@ -671,7 +671,7 @@ var aiConversations_default = {
671
671
  const toolMessageMap = new Map(
672
672
  toolMessages.map((toolMessage) => [toolMessage.toolCallId, toolMessage])
673
673
  );
674
- const toolsList = await plugin.ai.toolsManager.listTools({ sessionId: message.sessionId });
674
+ const toolsList = await plugin.ai.toolsManager.listTools({ sessionId: message.sessionId, ctx });
675
675
  const toolsMap = new Map(toolsList.map((t) => [t.definition.name, t]));
676
676
  for (const toolCall2 of toolCalls) {
677
677
  const tools = toolsMap.get(toolCall2.name);
@@ -44,7 +44,7 @@ const aiMcpClients = {
44
44
  return;
45
45
  }
46
46
  const plugin = ctx.app.pm.get("ai");
47
- const result = await plugin.ai.mcpManager.testConnection(values);
47
+ const result = await plugin.ai.mcpManager.testConnection(values, ctx);
48
48
  ctx.body = result;
49
49
  await next();
50
50
  },
@@ -56,7 +56,7 @@ const aiMcpClients = {
56
56
  },
57
57
  listTools: async (ctx, next) => {
58
58
  const plugin = ctx.app.pm.get("ai");
59
- ctx.body = await plugin.ai.mcpManager.listMCPTools();
59
+ ctx.body = await plugin.ai.mcpManager.listMCPTools(ctx);
60
60
  await next();
61
61
  },
62
62
  updateToolPermission: async (ctx, next) => {
@@ -34,10 +34,14 @@ const aiTools = {
34
34
  name: "aiTools",
35
35
  actions: {
36
36
  list: async (ctx, next) => {
37
- const { toolsManager } = ctx.app.aiManager;
38
- const { filter } = ctx.action.params;
39
- const tools = await toolsManager.listTools(filter);
40
- ctx.body = tools.map((t) => ({
37
+ const actionCtx = ctx;
38
+ const { toolsManager } = actionCtx.app.aiManager;
39
+ const { filter } = actionCtx.action.params;
40
+ const tools = await toolsManager.listTools({
41
+ ...filter,
42
+ ctx: actionCtx
43
+ });
44
+ actionCtx.body = tools.map((t) => ({
41
45
  ...t,
42
46
  definition: {
43
47
  name: t.definition.name,
@@ -50,8 +54,9 @@ const aiTools = {
50
54
  },
51
55
  listBinding: async (ctx, next) => {
52
56
  var _a, _b;
53
- const { username } = ctx.action.params;
54
- const aiEmployee = await ctx.app.db.getRepository("aiEmployees").findOne({
57
+ const actionCtx = ctx;
58
+ const { username } = actionCtx.action.params;
59
+ const aiEmployee = await actionCtx.app.db.getRepository("aiEmployees").findOne({
55
60
  filter: {
56
61
  username
57
62
  }
@@ -60,12 +65,12 @@ const aiTools = {
60
65
  return [];
61
66
  }
62
67
  const bindingToolNames = ((_b = (_a = aiEmployee.skillSettings) == null ? void 0 : _a.tools) == null ? void 0 : _b.map((tool) => tool.name)) ?? [];
63
- const plugin = ctx.app.pm.get("ai");
64
- const tools = await plugin.ai.toolsManager.listTools();
68
+ const plugin = actionCtx.app.pm.get("ai");
69
+ const tools = await plugin.ai.toolsManager.listTools({ ctx: actionCtx });
65
70
  const result = tools.filter(
66
71
  (tool) => tool.scope === "GENERAL" && tool.from === "loader" || bindingToolNames.includes(tool.definition.name)
67
72
  );
68
- ctx.body = result.map(({ introduction, definition }) => ({
73
+ actionCtx.body = result.map(({ introduction, definition }) => ({
69
74
  title: (introduction == null ? void 0 : introduction.title) ?? definition.name,
70
75
  name: definition.name,
71
76
  description: (introduction == null ? void 0 : introduction.about) ?? definition.description
@@ -32,3 +32,17 @@ export type KnowledgeBaseGroup = {
32
32
  knowledgeBaseType: KnowledgeBaseType;
33
33
  knowledgeBaseList: KnowledgeBase[];
34
34
  };
35
+ export type DocumentSegmented = {
36
+ content: string;
37
+ metadata: Record<string, any>;
38
+ id?: string;
39
+ };
40
+ export type DocumentSegmentedWithScore = DocumentSegmented & {
41
+ score: number;
42
+ };
43
+ export type SearchOptions = {
44
+ knowledgeBaseKeys: string[];
45
+ query: string;
46
+ topK?: number;
47
+ score?: string;
48
+ };
package/package.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "description": "Create AI employees with diverse skills to collaborate with humans, build systems, and handle business operations.",
7
7
  "description.ru-RU": "Поддержка интеграции с AI-сервисами: предоставляются AI-узлы для рабочих процессов, расширяя возможности бизнес-обработки.",
8
8
  "description.zh-CN": "创建各种技能的 AI 员工,与人类协同,搭建系统,处理业务。",
9
- "version": "2.2.0-beta.5",
9
+ "version": "2.2.0-beta.7",
10
10
  "main": "dist/server/index.js",
11
11
  "homepage": "https://docs.nocobase.com/handbook/action-ai",
12
12
  "homepage.ru-RU": "https://docs-ru.nocobase.com/handbook/action-ai",
@@ -34,16 +34,16 @@
34
34
  "@ant-design/x": "^1.1.0",
35
35
  "@dicebear/core": "^9.2.3",
36
36
  "@dicebear/notionists": "^9.2.3",
37
- "@langchain/anthropic": "^1.3.17",
38
- "@langchain/community": "~1.1.18",
39
- "@langchain/core": "~1.1.27",
40
- "@langchain/deepseek": "^1.0.11",
41
- "@langchain/google-genai": "^2.1.18",
42
- "@langchain/langgraph": "~1.1.4",
43
- "@langchain/langgraph-checkpoint": "^1.0.0",
44
- "@langchain/ollama": "~1.2.7",
45
- "@langchain/openai": "^1.2.7",
46
- "@langchain/xai": "1.3.3",
37
+ "@langchain/anthropic": "1.3.17",
38
+ "@langchain/community": "1.1.29",
39
+ "@langchain/core": "1.1.49",
40
+ "@langchain/deepseek": "1.0.27",
41
+ "@langchain/google-genai": "2.1.18",
42
+ "@langchain/langgraph": "1.4.4",
43
+ "@langchain/langgraph-checkpoint": "1.1.2",
44
+ "@langchain/ollama": "1.2.7",
45
+ "@langchain/openai": "1.4.7",
46
+ "@langchain/xai": "1.3.19",
47
47
  "@nocobase/ai-employee-avatars": "^1.0.2",
48
48
  "@xyflow/react": "^12.7.0",
49
49
  "diff": "9.0.0",
@@ -52,7 +52,7 @@
52
52
  "elkjs": "^0.10.0",
53
53
  "jsonrepair": "3.13.1",
54
54
  "just-bash": "^2.14.3",
55
- "langchain": "~1.2.24",
55
+ "langchain": "1.2.39",
56
56
  "nodejs-snowflake": "^2.0.1",
57
57
  "react-markdown": "^10.1.0",
58
58
  "react-syntax-highlighter": "^15.6.1",
@@ -65,5 +65,5 @@
65
65
  "keywords": [
66
66
  "AI"
67
67
  ],
68
- "gitHead": "81eab2cfa9d3d989e99ba0c914807b38db55f023"
68
+ "gitHead": "e6a3fa8963a73cd9ddfc1273d71b0012483e1ad8"
69
69
  }
@@ -1,82 +0,0 @@
1
- # Knowledge Base
2
-
3
- ## Introduction
4
-
5
- The knowledge base is the foundation of RAG retrieval. It organizes documents by category and builds an index. When an AI employee answers a question, it will prioritize searching for answers from the knowledge base.
6
-
7
- ## Knowledge Base Management
8
-
9
- Go to the AI employee plugin configuration page, click the `Knowledge base` tab to enter the knowledge base management page.
10
-
11
-
12
- ![20251023095649](https://static-docs.nocobase.com/20251023095649.png)
13
-
14
-
15
- Click the `Add new` button in the upper right corner to add a `Local` knowledge base.
16
-
17
-
18
- ![20251023095826](https://static-docs.nocobase.com/20251023095826.png)
19
-
20
-
21
- Enter the necessary information for the new knowledge base:
22
-
23
- - In the `Name` input box, enter the knowledge base name;
24
- - In `File storage`, select the file storage location;
25
- - In `Vector store`, select the vector store, refer to [Vector Store](/ai-employees/knowledge-base/vector-store);
26
- - In the `Description` input box, enter the knowledge base description;
27
-
28
- Click the `Submit` button to create the knowledge base.
29
-
30
-
31
- ![20251023095909](https://static-docs.nocobase.com/20251023095909.png)
32
-
33
-
34
- ## Knowledge Base Document Management
35
-
36
- After creating the knowledge base, on the knowledge base list page, click the newly created knowledge base to enter the knowledge base document management page.
37
-
38
-
39
- ![20260426233838](https://static-docs.nocobase.com/20260426233838.png)
40
-
41
-
42
-
43
- ![20260426233417](https://static-docs.nocobase.com/20260426233417.png)
44
-
45
-
46
- Click the `Upload` button to upload documents. After the documents are uploaded, vectorization will start automatically. Wait for the `Status` to change from `Pending` to `Success`.
47
-
48
- Currently, the knowledge base supports the following document types: txt, md, json, cvs, xls, xlsx, pdf, doc, docx, ppt, pptx; pdf only supports plain text.
49
-
50
- If you need to upload files in bulk, you can create a zip archive and upload it to the knowledge base. The backend will extract the zip archive and automatically import and vectorize the documents.
51
-
52
- ![20260426233711](https://static-docs.nocobase.com/20260426233711.png)
53
-
54
- If uploading a zip archive fails because the file is too large, you can adjust the upload file size limit in the File Manager module.
55
-
56
- ![20260426234224](https://static-docs.nocobase.com/20260426234224.png)
57
-
58
-
59
- ## Knowledge Base Types
60
-
61
- ### Local Knowledge Base
62
-
63
- A Local knowledge base is a knowledge base stored locally in NocoBase. The documents and their vector data are all stored locally by NocoBase.
64
-
65
-
66
- ![20251023101620](https://static-docs.nocobase.com/20251023101620.png)
67
-
68
-
69
- ### Readonly Knowledge Base
70
-
71
- A Readonly knowledge base is a read-only knowledge base. The documents and vector data are maintained externally. Only a vector database connection is created in NocoBase (currently only PGVector is supported).
72
-
73
-
74
- ![20251023101743](https://static-docs.nocobase.com/20251023101743.png)
75
-
76
-
77
- ### External Knowledge Base
78
-
79
- An External knowledge base is an external knowledge base where documents and vector data are maintained externally. Vector database retrieval needs to be extended by developers, allowing the use of vector databases not currently supported by NocoBase.
80
-
81
-
82
- ![20251023101949](https://static-docs.nocobase.com/20251023101949.png)
@@ -1,10 +0,0 @@
1
- /**
2
- * This file is part of the NocoBase (R) project.
3
- * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
- * Authors: NocoBase Team.
5
- *
6
- * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
- * For more information, please refer to: https://www.nocobase.com/agreement.
8
- */
9
-
10
- "use strict";(self.webpackChunk_nocobase_plugin_ai=self.webpackChunk_nocobase_plugin_ai||[]).push([["580"],{7439:function(e,t,n){n.r(t),n.d(t,{MCPSettings:function(){return ep}});var r=n(3342),o=n(5477),a=n(7375),i=n(2059),s=n(9452),l=n(5230),c=n(9155),u=n.n(c),p={name:"aiMcpClients",fields:[{name:"name",type:"uid",primaryKey:!0},{name:"title",type:"string",interface:"input",uiSchema:{title:'{{t("Title")}}',"x-component":"Input"}},{name:"description",type:"string",interface:"input",uiSchema:{title:'{{t("Description")}}',"x-component":"Input.TextArea"}},{name:"enabled",type:"boolean",defaultValue:!0},{name:"transport",type:"string",interface:"select",uiSchema:{title:'{{t("Transport")}}',"x-component":"Select"}},{name:"command",type:"string",interface:"input",uiSchema:{title:'{{t("Command")}}',"x-component":"Input"}},{name:"args",type:"json",defaultValue:[]},{name:"env",type:"json",defaultValue:{}},{name:"url",type:"string",interface:"input",uiSchema:{title:'{{t("URL")}}',"x-component":"Input"}},{name:"headers",type:"json",defaultValue:{}},{name:"restart",type:"json",defaultValue:{}}]},m=n(3079);function d(e,t,n,r,o,a,i){try{var s=e[a](i),l=s.value}catch(e){n(e);return}s.done?t(l):Promise.resolve(l).then(r,o)}var f=(0,c.createContext)({rebuildClient:function(){var e;return(e=function(){return function(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),s=Object.defineProperty;return s(i,"next",{value:l(0)}),s(i,"throw",{value:l(1)}),s(i,"return",{value:l(2)}),"function"==typeof Symbol&&s(i,Symbol.iterator,{value:function(){return this}}),i;function l(s){return function(l){var c=[s,l];if(n)throw TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(e){return[2,void 0]})},function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function i(e){d(a,r,o,i,s,"next",e)}function s(e){d(a,r,o,i,s,"throw",e)}i(void 0)})})()},rebuilding:!1}),y=function(e,t){var n,r,o;return null!=(n=null!=(r=null==e||null==(o=e.data)?void 0:o.data)?r:null==e?void 0:e.data)?n:t};function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function b(e,t,n,r,o,a,i){try{var s=e[a](i),l=s.value}catch(e){n(e);return}s.done?t(l):Promise.resolve(l).then(r,o)}function h(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function i(e){b(a,r,o,i,s,"next",e)}function s(e){b(a,r,o,i,s,"throw",e)}i(void 0)})}}function x(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function g(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function C(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var a=[],i=!0,s=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){s=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(s)throw r}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return v(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return v(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function w(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),s=Object.defineProperty;return s(i,"next",{value:l(0)}),s(i,"throw",{value:l(1)}),s(i,"return",{value:l(2)}),"function"==typeof Symbol&&s(i,Symbol.iterator,{value:function(){return this}}),i;function l(s){return function(l){var c=[s,l];if(n)throw TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var A=[{label:"Ask",value:"ASK"},{label:"Allow",value:"ALLOW"}],P=function(e,t){var n=null==e?void 0:e[t];return Array.isArray(n)?n:[]},S=function(){var e=(0,m.kj)(),t=(0,r.useAPIClient)(),n=i.App.useApp().message,o=(0,r.useActionContext)().visible,a=(0,r.useCollectionRecordData)(),s=(0,c.useContext)(f).rebuilding,l=C((0,c.useState)([]),2),p=l[0],d=l[1],v=C((0,c.useState)(!1),2),b=v[0],S=v[1],O=C((0,c.useState)(null),2),E=O[0],j=O[1],k=C((0,c.useState)(1),2),I=k[0],T=k[1],R=p.length,D=(0,c.useRef)(n),M=(0,c.useRef)(e);return D.current=n,M.current=e,(0,c.useEffect)(function(){if(o){var e=!1;return h(function(){var n,r;return w(this,function(o){switch(o.label){case 0:S(!0),o.label=1;case 1:return o.trys.push([1,3,4,5]),[4,t.resource("aiMcpClients").listTools()];case 2:return n=P(y(o.sent(),null),a.name),e||(T(1),d(n)),[3,5];case 3:return r=o.sent(),e||(D.current.error((null==r?void 0:r.message)||M.current("Failed to load MCP tools")),T(1),d([])),[3,5];case 4:return e||S(!1),[7];case 5:return[2]}})})(),function(){e=!0}}},[t,a.name,o]),u().createElement(i.Space,{direction:"vertical",size:"middle",style:{width:"100%"}},b?u().createElement("div",{style:{padding:"24px 0",textAlign:"center"}},u().createElement(i.Spin,null)):p.length?u().createElement(i.List,{itemLayout:"vertical",dataSource:p,pagination:{current:I,pageSize:10,total:R,onChange:T,hideOnSinglePage:!1,size:"small",showTotal:function(t){return e("Total {{count}} items",{count:t})}},renderItem:function(n){return u().createElement(i.List.Item,{key:n.name,extra:u().createElement("div",{style:{fontSize:12,color:"var(--nb-color-text-secondary)"}},e("Permission"),u().createElement(i.Segmented,{style:{marginLeft:8},size:"small",options:A.map(function(t){return g(x({},t),{label:e(t.label)})}),value:n.permission,disabled:s||E===n.name,onChange:function(e){var r;return r=n.name,h(function(){var n,o;return w(this,function(a){switch(a.label){case 0:n=p,j(r),d(function(t){return t.map(function(t){return t.name===r?g(x({},t),{permission:e}):t})}),a.label=1;case 1:return a.trys.push([1,3,4,5]),[4,t.resource("aiMcpClients").updateToolPermission({values:{toolName:r,permission:e}})];case 2:return a.sent(),[3,5];case 3:return o=a.sent(),d(n),D.current.error((null==o?void 0:o.message)||M.current("Failed to update tool permission")),[3,5];case 4:return j(null),[7];case 5:return[2]}})})()}}))},u().createElement("div",null,n.title),n.description?u().createElement(i.Typography.Paragraph,{style:{color:"var(--nb-color-text-secondary)",fontSize:12,marginBottom:0},ellipsis:{rows:3,expandable:"collapsible"}},n.description):null)}}):u().createElement(i.Empty,{image:i.Empty.PRESENTED_IMAGE_SIMPLE,description:e("No data")}))};function O(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}var E=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n="stdio"===e?'{{$deps[0] === "stdio"}}':'{{["http", "sse"].includes($deps[0])}}';return[{dependencies:["transport"],fulfill:{state:O({visible:n},t?{required:n}:{})}}]},j=function(e){return{name:O({type:"string","x-decorator":"FormItem",title:'{{ t("Name") }}',"x-component":"Input",required:!0},e.disableName?{"x-component-props":{disabled:!0}}:{}),title:{type:"string","x-decorator":"FormItem",title:'{{ t("Title") }}',"x-component":"Input",required:!0},description:{type:"string","x-decorator":"FormItem",title:'{{ t("Description") }}',"x-component":"Input.TextArea","x-component-props":{autoSize:{minRows:2,maxRows:4}}},transport:{type:"string","x-decorator":"FormItem",title:'{{ t("Transport") }}',"x-component":"Select",enum:"{{ transportOptions }}",required:!0},command:{type:"string","x-decorator":"FormItem",title:'{{ t("Command") }}',"x-component":"Input","x-component-props":{placeholder:'{{ t("For example: npx, uvx, node") }}'},"x-reactions":E("stdio",!0)},args:{type:"string","x-decorator":"FormItem",title:'{{ t("Arguments") }}',"x-component":"Input","x-component-props":{placeholder:'{{ t("Space-separated args, e.g.: -u --flag value") }}'},"x-reactions":E("stdio")},env:{type:"array","x-component":"ArrayItems","x-decorator":"FormItem",title:'{{ t("Environment variables") }}',items:{type:"object",properties:{space:{type:"void","x-component":"Space","x-component-props":{style:{flexWrap:"nowrap",maxWidth:"100%",display:"flex"},className:"{{ keyValueRowClassName }}"},properties:{name:{type:"string","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:'{{ t("Name") }}'}},value:{type:"string","x-decorator":"FormItem","x-component":"TextAreaWithGlobalScope","x-component-props":{useTypedConstant:!0}},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove"}}}}},properties:{add:{type:"void",title:'{{ t("Add variable") }}',"x-component":"ArrayItems.Addition"}},"x-reactions":E("stdio")},url:{type:"string","x-decorator":"FormItem",title:'{{ t("URL") }}',"x-component":"Input","x-component-props":{placeholder:'{{ t("For example: https://example.com/mcp") }}'},"x-reactions":E("remote",!0)},headers:{type:"array","x-component":"ArrayItems","x-decorator":"FormItem",title:'{{ t("Headers") }}',items:{type:"object",properties:{space:{type:"void","x-component":"Space","x-component-props":{style:{flexWrap:"nowrap",maxWidth:"100%",display:"flex"},className:"{{ keyValueRowClassName }}"},properties:{name:{type:"string","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:'{{ t("Name") }}'}},value:{type:"string","x-decorator":"FormItem","x-component":"TextAreaWithGlobalScope","x-component-props":{useTypedConstant:!0}},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove"}}}}},properties:{add:{type:"void",title:'{{ t("Add request header") }}',"x-component":"ArrayItems.Addition"}},"x-reactions":E("remote")},restart:{type:"object","x-decorator":"FormItem",title:'{{ t("Restart options") }}',"x-component":"Input.JSON","x-visible":!1,"x-component-props":{autoSize:{minRows:4}}},testResult:{type:"void","x-component":"TestConnectionResult"},footer:{type:"void","x-component":e.footerComponent||"Action.Drawer.Footer",properties:{test:{type:"void","x-component":"TestConnectionButton"},cancel:{title:'{{ t("Cancel") }}',"x-component":"Action","x-use-component-props":"useCancelActionProps"},submit:{title:'{{ t("Submit") }}',"x-component":"Action","x-component-props":{type:"primary"},"x-use-component-props":e.submitPropsHook}}}}},k={type:"void",properties:j({submitPropsHook:"useCreateActionProps"})},I={type:"void",properties:j({disableName:!0,submitPropsHook:"useEditActionProps",footerComponent:"Action.Drawer.FootBar"})},T={type:"void",properties:{tools:{type:"void","x-component":"MCPToolsList"}}},R={type:"void",properties:{createDrawer:{type:"void",title:'{{ t("Add new") }}',"x-component":"Action.Drawer","x-decorator":"FormV2","x-use-decorator-props":"useCreateFormProps",properties:k.properties}}};I.properties,T.properties;var D={type:"void",name:"ai-mcp-clients",properties:{card:{type:"void","x-component":"CardItem","x-component-props":{heightMode:"fullHeight"},"x-decorator":"TableBlockProvider","x-decorator-props":{collection:"aiMcpClients",action:"list",rowKey:"name"},properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:20}},properties:{refresh:{title:"{{t('Refresh')}}","x-component":"Action","x-use-component-props":"useRefreshActionProps","x-component-props":{icon:"ReloadOutlined"}},bulkDelete:{title:"{{t('Delete')}}","x-action":"destroy","x-component":"Action","x-use-component-props":"useMCPBulkDestroyActionProps","x-component-props":{icon:"DeleteOutlined",confirm:{title:"{{t('Delete record')}}",content:"{{t('Are you sure you want to delete it?')}}"}}},add:{type:"void",title:"{{t('Add new')}}","x-align":"right","x-component":"AddNew"}}},table:{type:"array","x-component":"TableV2","x-use-component-props":"useTableBlockProps","x-component-props":{rowKey:"name",rowSelection:{type:"checkbox"}},properties:{column1:{type:"void",title:'{{ t("Name") }}',"x-component":"TableV2.Column",properties:{name:{type:"string","x-component":"Input","x-read-pretty":!0}}},column2:{type:"void",title:'{{ t("Title") }}',"x-component":"TableV2.Column",properties:{title:{type:"string","x-component":"Input","x-read-pretty":!0}}},column4:{type:"void",title:'{{ t("Transport") }}',"x-component":"TableV2.Column",properties:{transport:{type:"string","x-component":"TransportTag"}}},column5:{type:"void",title:'{{ t("Enabled") }}',"x-component":"TableV2.Column",properties:{enabled:{type:"boolean","x-component":"EnabledSwitch"}}},column6:{type:"void",title:'{{ t("Actions") }}',"x-decorator":"TableV2.Column.ActionBar","x-component":"TableV2.Column",properties:{actions:{type:"void","x-component":"Space","x-component-props":{split:"|"},properties:{view:{type:"void",title:'{{ t("View") }}',"x-component":"Action.Link","x-component-props":{openMode:"drawer"},properties:{drawer:{type:"void",title:'{{ t("MCP tools") }}',"x-component":"Action.Drawer","x-component-props":{width:720},properties:{content:{type:"void","x-component":"MCPViewDrawerContent"}}}}},edit:{type:"void",title:'{{ t("Edit") }}',"x-action":"update","x-component":"Action.Link","x-component-props":{openMode:"drawer"},properties:{drawer:{type:"void",title:'{{ t("Edit record") }}',"x-component":"Action.Drawer","x-decorator":"FormV2","x-use-decorator-props":"useEditFormProps",properties:{content:{type:"void","x-component":"MCPEditDrawerContent"}}}}},destroy:{type:"void",title:'{{ t("Delete") }}',"x-action":"destroy","x-component":"Action.Link","x-use-component-props":"useMCPDestroyActionProps","x-component-props":{confirm:{title:"{{t('Delete record')}}",content:"{{t('Are you sure you want to delete it?')}}"}}}}}}}}}}}}};function M(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function F(e,t,n,r,o,a,i){try{var s=e[a](i),l=s.value}catch(e){n(e);return}s.done?t(l):Promise.resolve(l).then(r,o)}function V(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function i(e){F(a,r,o,i,s,"next",e)}function s(e){F(a,r,o,i,s,"throw",e)}i(void 0)})}}function B(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function N(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function L(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var a=[],i=!0,s=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){s=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(s)throw r}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return M(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return M(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function z(e){return e&&"u">typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}function q(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),s=Object.defineProperty;return s(i,"next",{value:l(0)}),s(i,"throw",{value:l(1)}),s(i,"return",{value:l(2)}),"function"==typeof Symbol&&s(i,Symbol.iterator,{value:function(){return this}}),i;function l(s){return function(l){var c=[s,l];if(n)throw TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}function H(){var e,t,n=(e=["\n & > .ant-space-item:first-child,\n & > .ant-space-item:last-child {\n flex-shrink: 0;\n }\n\n & > .ant-space-item:first-child,\n & > .ant-space-item:nth-of-type(2) {\n flex: 1;\n }\n"],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return H=function(){return n},n}var W=[{label:"Stdio",value:"stdio"},{label:"HTTP (Streamable)",value:"http"},{label:"HTTP + SSE (Legacy)",value:"sse"}],_={stdio:"blue",http:"green",sse:"gold"},G=(0,o.css)(H()),K=function(e){return Object.entries(e||{}).map(function(e){var t=L(e,2),n=t[0],r=t[1];return{name:n,value:null==r?"":String(r)}})},U=function(e){return(Array.isArray(e)?e:[]).reduce(function(e,t){return(null==t?void 0:t.name)&&(e[t.name]=t.value||""),e},{})},$=function(e){var t=e.transport,n=N(B({},e),{args:"string"==typeof e.args?e.args.split(" ").map(function(e){return e.trim()}).filter(function(e){return e.length>0}):Array.isArray(e.args)?e.args:[],env:U(e.env),headers:U(e.headers),restart:e.restart&&"object"===z(e.restart)&&!Array.isArray(e.restart)?e.restart:{}});return"stdio"===t?N(B({},n),{url:null,headers:{}}):N(B({},n),{command:null,args:[],env:{}})},J=function(){var e=(0,r.useActionContext)().visible,t=(0,c.useMemo)(function(){return{enabled:!0,transport:"stdio",args:"",env:[],headers:[],restart:{}}},[]),n=(0,c.useMemo)(function(){return(0,s.createForm)({initialValues:t})},[t]);return(0,c.useEffect)(function(){e&&(n.setInitialValues(t),n.reset())},[n,t,e]),{form:n}},Q=function(){var e=(0,r.useCollectionRecordData)(),t=(0,r.useActionContext)().visible,n=(0,c.useMemo)(function(){return N(B({},e),{args:Array.isArray(null==e?void 0:e.args)?e.args.join(" "):"",env:K(null==e?void 0:e.env),headers:K(null==e?void 0:e.headers),restart:(null==e?void 0:e.restart)&&"object"===z(e.restart)&&!Array.isArray(e.restart)?e.restart:{}})},[e]),o=(0,c.useMemo)(function(){return(0,s.createForm)({initialValues:n})},[n]);return(0,c.useEffect)(function(){t&&(o.setInitialValues(n),o.reset())},[o,n,t]),{form:o}},X=function(){var e=(0,r.useActionContext)().setVisible;return{type:"default",onClick:function(){e(!1)}}},Y=(0,c.createContext)({result:null,loading:!1,setResult:function(){},setLoading:function(){}}),Z=function(){var e=(0,r.useAPIClient)(),t=(0,m.kj)(),n=(0,c.useContext)(Y),o=n.setResult,a=n.setLoading;return function(n){return V(function(){var r,i,s;return q(this,function(l){switch(l.label){case 0:a(!0),o(null),l.label=1;case 1:return l.trys.push([1,3,4,5]),r=$(n),[4,e.resource("aiMcpClients").testConnection({values:r})];case 2:return o(i=y({data:l.sent().data},null)),[2,!!(null==i?void 0:i.success)];case 3:return o({success:!1,error:(null==(s=l.sent())?void 0:s.message)||t("An error occurred while testing the connection")}),[2,!1];case 4:return a(!1),[7];case 5:return[2]}})})()}},ee=function(){var e=(0,r.useActionContext)().setVisible,t=i.App.useApp().message,n=(0,l.useForm)(),o=(0,r.useAPIClient)(),a=(0,r.useDataBlockRequest)().refresh,s=(0,m.kj)(),u=(0,c.useContext)(Y).loading,p=(0,c.useContext)(f),d=p.rebuildClient,y=p.rebuilding,v=Z();return{type:"primary",loading:y||u,onClick:function(){return V(function(){return q(this,function(r){switch(r.label){case 0:return[4,n.submit()];case 1:return r.sent(),[4,v(n.values)];case 2:if(!r.sent())return[2];return[4,o.resource("aiMcpClients").create({values:$(n.values)})];case 3:return r.sent(),[4,d()];case 4:return r.sent(),[4,a()];case 5:return r.sent(),t.success(s("Saved successfully")),e(!1),n.reset(),[2]}})})()}}},et=function(){var e=(0,r.useActionContext)().setVisible,t=i.App.useApp().message,n=(0,l.useForm)(),o=(0,r.useAPIClient)(),a=(0,r.useDataBlockRequest)().refresh,s=(0,r.useCollectionRecordData)(),u=(0,m.kj)(),p=(0,c.useContext)(Y).loading,d=(0,c.useContext)(f),y=d.rebuildClient,v=d.rebuilding,b=Z();return{type:"primary",loading:v||p,onClick:function(){return V(function(){return q(this,function(r){switch(r.label){case 0:return[4,n.submit()];case 1:return r.sent(),[4,b(n.values)];case 2:if(!r.sent())return[2];return[4,o.resource("aiMcpClients").update({values:$(n.values),filterByTk:s.name})];case 3:return r.sent(),[4,y()];case 4:return r.sent(),[4,a()];case 5:return r.sent(),t.success(u("Saved successfully")),e(!1),n.reset(),[2]}})})()}}},en=(0,l.observer)(function(){var e=(0,l.useForm)(),t=(0,r.useAPIClient)(),n=(0,c.useContext)(Y),o=n.setResult,a=n.loading,s=n.setLoading,p=(0,m.kj)();return u().createElement(i.Button,{type:"default",loading:a,onClick:function(){return V(function(){var n,r;return q(this,function(a){switch(a.label){case 0:s(!0),o(null),a.label=1;case 1:return a.trys.push([1,3,4,5]),n=$(e.values),[4,t.resource("aiMcpClients").testConnection({values:n})];case 2:return o(y({data:a.sent().data},null)),[3,5];case 3:return o({success:!1,error:(null==(r=a.sent())?void 0:r.message)||p("An error occurred while testing the connection")}),[3,5];case 4:return s(!1),[7];case 5:return[2]}})})()}},p("Test flight"))},{displayName:"TestConnectionButton"}),er=(0,l.observer)(function(){var e=(0,c.useContext)(Y),t=e.result,n=e.loading,r=(0,m.kj)();return n?u().createElement("div",{style:{padding:"16px 0",textAlign:"center"}},u().createElement(i.Spin,{tip:r("Testing connection...")})):t?t.success?u().createElement(i.Alert,{type:"success",showIcon:!0,icon:u().createElement(a.CheckCircleOutlined,null),style:{marginTop:16},message:r("Connection Successful"),description:u().createElement("div",null,u().createElement("p",null,r("Successfully connected to MCP server")),u().createElement("p",null,r("Tools found"),": ",t.toolsCount),t.tools&&t.tools.length>0&&u().createElement("div",{style:{marginTop:8}},u().createElement("p",{style:{fontWeight:"bold",marginBottom:4}},r("Tools"),":"),u().createElement("div",{style:{maxHeight:120,overflow:"auto"}},t.tools.map(function(e){return u().createElement(i.Tag,{key:e,style:{margin:"2px"}},e)}),t.toolsTruncated&&u().createElement("span",null,"..."))))}):u().createElement(i.Alert,{type:"error",showIcon:!0,icon:u().createElement(a.CloseCircleOutlined,null),style:{marginTop:16},message:r("Connection Failed"),description:u().createElement("div",null,u().createElement("p",null,t.error||r("Failed to connect to MCP server")),t.details&&u().createElement("pre",{style:{maxHeight:100,overflow:"auto",fontSize:11,margin:0}},t.details))}):null},{displayName:"TestConnectionResult"}),eo=function(){var e=(0,m.kj)(),t=L((0,c.useState)(!1),2),n=t[0],o=t[1],s=L((0,c.useState)(null),2),l=s[0],p=s[1],d=L((0,c.useState)(!1),2),f=d[0],y=d[1],v=(0,c.useMemo)(function(){return{result:l,loading:f,setResult:p,setLoading:y}},[l,f]);return u().createElement(r.ActionContextProvider,{value:{visible:n,setVisible:o}},u().createElement(i.Button,{icon:u().createElement(a.PlusOutlined,null),type:"primary",onClick:function(){p(null),y(!1),o(!0)}},e("Add new")),u().createElement(Y.Provider,{value:v},u().createElement(r.SchemaComponent,{components:{TestConnectionButton:en,TestConnectionResult:er,Space:i.Space},scope:{t:e,transportOptions:W,keyValueRowClassName:G,useCreateFormProps:J,useCancelActionProps:X,useCreateActionProps:ee},schema:R})))},ea=function(){var e=(0,m.kj)(),t=(0,r.useCollectionRecordData)(),n=L((0,c.useState)(null),2),o=n[0],a=n[1],s=L((0,c.useState)(!1),2),l=s[0],p=s[1],d=(0,c.useMemo)(function(){return{result:o,loading:l,setResult:a,setLoading:p}},[o,l]);return u().createElement(r.CollectionRecordProvider,{record:t},u().createElement(Y.Provider,{value:d},u().createElement(r.SchemaComponent,{components:{TestConnectionButton:en,TestConnectionResult:er,Space:i.Space},scope:{t:e,transportOptions:W,keyValueRowClassName:G,useEditFormProps:Q,useCancelActionProps:X,useEditActionProps:et},schema:I})))},ei=function(){var e=(0,m.kj)(),t=(0,r.useCollectionRecordData)();return u().createElement(r.CollectionRecordProvider,{record:t},u().createElement(r.SchemaComponent,{components:{MCPToolsList:S},scope:{t:e},schema:T}))},es=function(){var e,t=(0,r.useCollectionRecordData)().transport,n=(null==(e=W.find(function(e){return e.value===t}))?void 0:e.label)||t;return u().createElement(i.Tag,{color:_[t]},n)},el=(0,l.observer)(function(){var e=(0,r.useAPIClient)(),t=(0,r.useCollectionRecordData)(),n=(0,r.useDataBlockRequest)().refresh,o=(0,c.useContext)(f),a=o.rebuildClient,s=o.rebuilding,l=L((0,c.useState)(!1),2),p=l[0],m=l[1];return u().createElement(i.Switch,{size:"small",checked:!1!==t.enabled,loading:p,disabled:s,onChange:function(r){return V(function(){return q(this,function(o){switch(o.label){case 0:m(!0),o.label=1;case 1:return o.trys.push([1,,5,6]),[4,e.resource("aiMcpClients").update({filterByTk:t.name,values:{enabled:r}})];case 2:return o.sent(),[4,a()];case 3:return o.sent(),[4,n()];case 4:return o.sent(),[3,6];case 5:return m(!1),[7];case 6:return[2]}})})()}})},{displayName:"MCPEnabledSwitch"}),ec=function(){var e=(0,r.useDestroyActionProps)(),t=(0,c.useContext)(f),n=t.rebuildClient,o=t.rebuilding;return N(B({},e),{loading:o,onClick:function(t,r){return V(function(){var o;return q(this,function(a){switch(a.label){case 0:return[4,null==(o=e.onClick)?void 0:o.call(e,t,r)];case 1:return a.sent(),[4,n()];case 2:return a.sent(),[2]}})})()}})},eu=function(){var e=(0,r.useBulkDestroyActionProps)(),t=(0,r.useBlockRequestContext)().field,n=(0,c.useContext)(f),o=n.rebuildClient,a=n.rebuilding;return N(B({},e),{loading:a,onClick:function(n,r){return V(function(){var a,i,s;return q(this,function(l){switch(l.label){case 0:if(!(null==t||null==(i=t.data)||null==(a=i.selectedRowKeys)?void 0:a.length))return[2];return[4,null==(s=e.onClick)?void 0:s.call(e,n,r)];case 1:return l.sent(),[4,o()];case 2:return l.sent(),[2]}})})()}})},ep=function(){var e=(0,m.kj)(),t=(0,r.useAPIClient)(),n=(0,c.useRef)(Promise.resolve()),o=(0,c.useRef)(0),a=L((0,c.useState)(!1),2),i=a[0],s=a[1],l=(0,c.useCallback)(function(){return V(function(){var e;return q(this,function(r){return o.current+=1,s(!0),e=n.current.catch(function(){}).then(function(){return V(function(){return q(this,function(e){switch(e.label){case 0:return e.trys.push([0,2,,3]),[4,t.resource("aiMcpClients").rebuildClient()];case 1:case 2:return e.sent(),[3,3];case 3:return[2]}})})()}),n.current=e.finally(function(){o.current-=1,0===o.current&&s(!1)}),[2,e]})})()},[t]),d=(0,c.useMemo)(function(){return{rebuildClient:l,rebuilding:i}},[l,i]);return u().createElement(f.Provider,{value:d},u().createElement(r.ExtendCollectionsProvider,{collections:[p]},u().createElement(r.SchemaComponent,{components:{AddNew:eo,MCPEditDrawerContent:ea,MCPViewDrawerContent:ei,MCPToolsList:S,TestConnectionButton:en,TestConnectionResult:er,TransportTag:es,EnabledSwitch:el},scope:{t:e,transportOptions:W,keyValueRowClassName:G,useCreateFormProps:J,useEditFormProps:Q,useCancelActionProps:X,useCreateActionProps:ee,useEditActionProps:et,useMCPDestroyActionProps:ec,useMCPBulkDestroyActionProps:eu},schema:D})))}}}]);