@nocobase/plugin-ai 2.2.0-beta.8 → 2.3.0-alpha.1

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 (477) hide show
  1. package/client-v2.d.ts +1 -0
  2. package/dist/ai/docs/nocobase/ai-employees/scenarios/company-background-research.md +125 -0
  3. package/dist/ai/docs/nocobase/api/app/env.md +28 -1
  4. package/dist/ai/docs/nocobase/api/cli/config/delete.md +8 -6
  5. package/dist/ai/docs/nocobase/api/cli/config/get.md +8 -6
  6. package/dist/ai/docs/nocobase/api/cli/config/index.md +37 -26
  7. package/dist/ai/docs/nocobase/api/cli/config/set.md +14 -8
  8. package/dist/ai/docs/nocobase/building-tips/operations-dashboard.md +513 -0
  9. package/dist/ai/docs/nocobase/file-manager/field-attachment.md +6 -0
  10. package/dist/ai/docs/nocobase/file-manager/file-preview/index.md +3 -12
  11. package/dist/ai/docs/nocobase/file-manager/stable-url.md +87 -0
  12. package/dist/ai/docs/nocobase/file-manager/storage/aliyun-oss.md +9 -0
  13. package/dist/ai/docs/nocobase/file-manager/storage/amazon-s3.md +9 -0
  14. package/dist/ai/docs/nocobase/file-manager/storage/index.md +23 -0
  15. package/dist/ai/docs/nocobase/file-manager/storage/local.md +12 -1
  16. package/dist/ai/docs/nocobase/file-manager/storage/migrate-to-s3-pro.md +269 -0
  17. package/dist/ai/docs/nocobase/file-manager/storage/tencent-cos.md +9 -0
  18. package/dist/ai/docs/nocobase/get-started/deployment/production.md +24 -2
  19. package/dist/ai/docs/nocobase/get-started/installation/docker-caddy.mdx +178 -0
  20. package/dist/ai/docs/nocobase/get-started/installation/docker-nginx.mdx +179 -0
  21. package/dist/ai/docs/nocobase/get-started/installation/docker.mdx +118 -1
  22. package/dist/ai/docs/nocobase/get-started/installation/env.md +47 -4
  23. package/dist/ai/docs/nocobase/index.md +1 -1
  24. package/dist/ai/docs/nocobase/interface-builder/blocks/data-blocks/comment.md +107 -0
  25. package/dist/ai/docs/nocobase/interface-builder/index.md +7 -6
  26. package/dist/ai/docs/nocobase/interface-builder/ui-layout/desktop.md +97 -0
  27. package/dist/ai/docs/nocobase/interface-builder/ui-layout/index.md +50 -0
  28. package/dist/ai/docs/nocobase/interface-builder/ui-layout/mobile.md +133 -0
  29. package/dist/ai/docs/nocobase/multi-app/multi-app-vs-multi-portal-vs-multi-space.md +159 -0
  30. package/dist/ai/docs/nocobase/multi-app/multi-portal/index.md +195 -0
  31. package/dist/ai/docs/nocobase/nocobase-cli/production/index.md +10 -0
  32. package/dist/ai/docs/nocobase/nocobase-cli/production/reverse-proxy/caddy.md +15 -2
  33. package/dist/ai/docs/nocobase/nocobase-cli/production/reverse-proxy/index.md +1 -1
  34. package/dist/ai/docs/nocobase/nocobase-cli/production/reverse-proxy/nginx.md +16 -2
  35. package/dist/ai/docs/nocobase/ops-management/version-control/index.md +1 -0
  36. package/dist/ai/docs/nocobase/plugins/@nocobase/plugin-block-comment/index.md +14 -0
  37. package/dist/ai/docs/nocobase/runjs/context/ai.md +206 -0
  38. package/dist/ai/docs/nocobase/security/guide.md +23 -0
  39. package/dist/ai/docs/nocobase/tutorials/index.md +20 -1
  40. package/dist/ai/docs/nocobase/workflow/development/api.md +259 -77
  41. package/dist/ai/docs/nocobase/workflow/development/index.md +2 -1
  42. package/dist/ai/docs/nocobase/workflow/development/migration.md +319 -0
  43. package/dist/ai/docs/nocobase/workflow/development/node.md +84 -51
  44. package/dist/ai/docs/nocobase/workflow/development/trigger.md +122 -20
  45. package/dist/ai/tools/formFiller.js +4 -3
  46. package/dist/ai/tools/subAgentWebSearch.js +20 -15
  47. package/dist/client/23.65ea8c37cd4b884b.js +10 -0
  48. package/dist/client/264.cc98933ef65608b6.js +10 -0
  49. package/dist/client/336.7a8a8853196ad779.js +11 -0
  50. package/dist/client/372.40eb52905e3f3049.js +10 -0
  51. package/dist/client/416.92b74ca47e4099c4.js +10 -0
  52. package/dist/client/446.d63c38d0309fe250.js +10 -0
  53. package/dist/client/525.203778500aca5d05.js +10 -0
  54. package/dist/client/663.680bcf6272a8504d.js +10 -0
  55. package/dist/client/681.399948c18d753667.js +10 -0
  56. package/dist/client/705.380279da896021fb.js +10 -0
  57. package/dist/client/ai-employees/1.x/selector/AIContextCollector.d.ts +1 -4
  58. package/dist/client/ai-employees/permissions/PermissionsTab.d.ts +21 -5
  59. package/dist/client/index.d.ts +15 -20
  60. package/dist/client/index.js +8 -8
  61. package/dist/client/workflow/nodes/employee/index.d.ts +2 -23
  62. package/dist/client/workflow/nodes/llm/index.d.ts +2 -52
  63. package/dist/client/workflow/triggers/ai-employee/index.d.ts +2 -83
  64. package/dist/client-v2/23.1bcb6986b40723d8.js +10 -0
  65. package/dist/client-v2/264.be92ff6a4d2612f1.js +10 -0
  66. package/dist/client-v2/336.e406470429e0670e.js +11 -0
  67. package/dist/client-v2/372.8cc3fde09c9bec77.js +10 -0
  68. package/dist/client-v2/406.341be51205c674e0.js +10 -0
  69. package/dist/client-v2/416.0e1c2d9cde43b83d.js +10 -0
  70. package/dist/client-v2/446.073d450882db29fd.js +10 -0
  71. package/dist/client-v2/457.d72febb89e88fc00.js +10 -0
  72. package/dist/client-v2/663.342341f0b2b412d8.js +10 -0
  73. package/dist/client-v2/681.082f4f1c7b841983.js +10 -0
  74. package/dist/client-v2/705.1d10027ff8cfdf79.js +10 -0
  75. package/dist/{client/ai-employees/admin/AvatarSelect.d.ts → client-v2/ai-employees/AIEmployeeDropdown.d.ts} +8 -9
  76. package/dist/client-v2/ai-employees/AIEmployeeShortcut.d.ts +9 -2
  77. package/dist/{client → client-v2}/ai-employees/AddContextButton.d.ts +1 -1
  78. package/dist/{client → client-v2}/ai-employees/ai-coding/AICodingButton.d.ts +2 -1
  79. package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/Actions.d.ts +2 -4
  80. package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/AddLLMModal.d.ts +2 -4
  81. package/dist/client-v2/ai-employees/chatbox/components/Attachments.d.ts +27 -0
  82. package/dist/{client/ai-employees/permissions/Permissions.d.ts → client-v2/ai-employees/chatbox/components/ChatBox.d.ts} +2 -2
  83. package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/ChatBoxLayout.d.ts +1 -1
  84. package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/ContextItem.d.ts +1 -1
  85. package/dist/{client/ai-employees/admin/Employees.d.ts → client-v2/ai-employees/chatbox/components/DebugPanel.d.ts} +1 -1
  86. package/dist/{client/ai-employees/chatbox/markdown/Code.d.ts → client-v2/ai-employees/chatbox/components/Markdown.d.ts} +12 -5
  87. package/dist/{client/ai-employees/admin/ProfileSettings.d.ts → client-v2/ai-employees/chatbox/components/MessageContent.d.ts} +3 -2
  88. package/dist/client-v2/ai-employees/chatbox/components/MessageRenderers.d.ts +39 -0
  89. package/dist/{client/ai-employees/chatbox/generative-ui → client-v2/ai-employees/chatbox/components}/ToolCard.d.ts +7 -5
  90. package/dist/{client/ai-employees/admin/datasource/components/basic → client-v2/ai-employees/chatbox/components}/index.d.ts +5 -2
  91. package/dist/{client → client-v2}/ai-employees/chatbox/hooks/useChat.d.ts +21 -22
  92. package/dist/client-v2/ai-employees/chatbox/hooks/useChatBoxActions.d.ts +3 -2
  93. package/dist/{client → client-v2}/ai-employees/chatbox/hooks/useChatConversationActions.d.ts +2 -2
  94. package/dist/{client → client-v2}/ai-employees/chatbox/hooks/useChatMessageActions.d.ts +8 -4
  95. package/dist/{client → client-v2}/ai-employees/chatbox/hooks/useToolCallActions.d.ts +1 -1
  96. package/dist/client-v2/ai-employees/chatbox/hooks/useUploadFiles.d.ts +46 -0
  97. package/dist/{client → client-v2}/ai-employees/chatbox/hooks/useWorkflowTasks.d.ts +1 -1
  98. package/dist/{client → client-v2}/ai-employees/chatbox/model.d.ts +9 -2
  99. package/dist/client-v2/ai-employees/chatbox/roles.d.ts +162 -0
  100. package/dist/client-v2/ai-employees/chatbox/stores/chat-box.d.ts +1 -49
  101. package/dist/client-v2/ai-employees/chatbox/stores/chat-conversations.d.ts +2 -19
  102. package/dist/client-v2/ai-employees/chatbox/stores/chat-messages.d.ts +1 -46
  103. package/dist/{client → client-v2}/ai-employees/chatbox/stores/chat-tool-call.d.ts +1 -15
  104. package/dist/client-v2/ai-employees/chatbox/stores/chat-tools.d.ts +30 -0
  105. package/dist/client-v2/ai-employees/chatbox/stores/create-selectors.d.ts +31 -3
  106. package/dist/{client/ai-employees/chatbox/conversations/common.d.ts → client-v2/ai-employees/chatbox/stores/workflow-tasks.d.ts} +21 -4
  107. package/dist/client-v2/ai-employees/chatbox/utils/normalizeTriggerTaskOptions.d.ts +19 -0
  108. package/dist/{client → client-v2}/ai-employees/chatbox/utils.d.ts +26 -6
  109. package/dist/{client/ai-employees/data-visualization/context.d.ts → client-v2/ai-employees/context/chart-config.d.ts} +1 -1
  110. package/dist/{client → client-v2}/ai-employees/context/code-editor.d.ts +1 -1
  111. package/dist/{client → client-v2}/ai-employees/context/datasource.d.ts +1 -1
  112. package/dist/{client → client-v2}/ai-employees/context/flow-models.d.ts +1 -1
  113. package/dist/{client/ai-employees/admin/datasource/components/DatasourceSettingDetail.d.ts → client-v2/ai-employees/data-modeling/setup.d.ts} +6 -5
  114. package/dist/{client → client-v2}/ai-employees/datasource/DatasourceSelector.d.ts +6 -2
  115. package/dist/{client/ai-employees/admin/datasource/flow-models/DatasourceSettingModel.d.ts → client-v2/ai-employees/flow/index.d.ts} +4 -6
  116. package/dist/{client → client-v2}/ai-employees/form-filler/tools/index.d.ts +1 -1
  117. package/dist/{client → client-v2}/ai-employees/stores/ai-selection.d.ts +4 -4
  118. package/dist/{client → client-v2}/ai-employees/stores/dialog-controller.d.ts +4 -4
  119. package/dist/{client/ai-employees/business-report/ui → client-v2/ai-employees/tools}/BusinessReportCard.d.ts +2 -2
  120. package/dist/{client/ai-employees/business-report/ui → client-v2/ai-employees/tools}/BusinessReportModal.d.ts +2 -2
  121. package/dist/{client/ai-employees/1.x/selector/withAISelectable.d.ts → client-v2/ai-employees/tools/ChartGeneratorCard.d.ts} +5 -4
  122. package/dist/{client/ai-employees/ai-coding/ui → client-v2/ai-employees/tools}/CodeToolCard.d.ts +1 -1
  123. package/dist/{client/ai-employees/data-modeling/ui → client-v2/ai-employees/tools}/DataModelingCard.d.ts +3 -5
  124. package/dist/{client/ai-employees/data-modeling/ui → client-v2/ai-employees/tools}/DataModelingModal.d.ts +4 -6
  125. package/dist/{client/ai-employees/sub-agents/ui → client-v2/ai-employees/tools}/SubAgentDispatchCard.d.ts +4 -9
  126. package/dist/{client/ai-employees/AISettingsProvider.d.ts → client-v2/ai-employees/tools/SuggestionsOptionsCard.d.ts} +6 -8
  127. package/dist/{client/ai-employees/workflow-tasks/ui → client-v2/ai-employees/tools}/WorkflowTaskOutputCard.d.ts +7 -2
  128. package/dist/{client/ai-employees/ai-coding/tools/context-tools.d.ts → client-v2/ai-employees/tools/ai-coding.d.ts} +3 -1
  129. package/dist/client-v2/ai-employees/tools/business-report-utils.d.ts +45 -0
  130. package/dist/{client/ai-employees/data-modeling/ui → client-v2/ai-employees/tools/data-modeling}/CollectionNode.d.ts +2 -3
  131. package/dist/{client/ai-employees/data-modeling/ui → client-v2/ai-employees/tools/data-modeling}/Diagram.d.ts +1 -1
  132. package/dist/{client/ai-employees/data-modeling/ui → client-v2/ai-employees/tools/data-modeling}/Table.d.ts +2 -2
  133. package/dist/client-v2/ai-employees/tools/data-modeling/legacy-template.d.ts +13 -0
  134. package/dist/client-v2/ai-employees/tools/data-modeling/runtime.d.ts +15 -0
  135. package/dist/{client/ai-employees → client-v2/ai-employees/tools}/data-modeling/types.d.ts +27 -4
  136. package/dist/client-v2/ai-employees/tools/data-modeling/useFieldInterfaceOptions.d.ts +151 -0
  137. package/dist/{client/ai-employees/data-visualization/tools/index.d.ts → client-v2/ai-employees/tools/data-visualization.d.ts} +1 -1
  138. package/dist/client-v2/ai-employees/tools/index.d.ts +32 -0
  139. package/dist/client-v2/ai-employees/types.d.ts +101 -7
  140. package/dist/client-v2/components/RemoteSelect.d.ts +43 -0
  141. package/dist/{client → client-v2}/debug-logger.d.ts +2 -2
  142. package/dist/client-v2/f0053e745af0ad03.svg +50 -0
  143. package/dist/client-v2/index.d.ts +9 -9
  144. package/dist/client-v2/index.js +37 -1
  145. package/dist/client-v2/llm-providers/forms.d.ts +44 -0
  146. package/dist/client-v2/llm-providers/index.d.ts +24 -0
  147. package/dist/{client/ai-employees/ai-coding/tools/index.d.ts → client-v2/llm-services/utils.d.ts} +5 -3
  148. package/dist/client-v2/locale.d.ts +14 -0
  149. package/dist/client-v2/manager/ai-manager.d.ts +55 -0
  150. package/dist/client-v2/models/ai-employees/AIEmployeeActionModel.d.ts +33 -0
  151. package/dist/client-v2/models/ai-employees/AIEmployeeShortcutModel.d.ts +44 -0
  152. package/dist/client-v2/pages/AdminSettingsPage.d.ts +24 -0
  153. package/dist/client-v2/pages/DatasourceSettingsPage.d.ts +62 -0
  154. package/dist/client-v2/pages/EmployeesPage.d.ts +62 -0
  155. package/dist/client-v2/pages/LLMServicesPage.d.ts +75 -0
  156. package/dist/client-v2/pages/MCPSettingsPage.d.ts +73 -0
  157. package/dist/client-v2/pages/drawerWidth.d.ts +10 -0
  158. package/dist/client-v2/pages/permissions/Permissions.d.ts +67 -0
  159. package/dist/client-v2/pages/permissions/PermissionsTab.d.ts +12 -0
  160. package/dist/client-v2/pages/useUnsavedChangesBeforeClose.d.ts +29 -0
  161. package/dist/client-v2/plugin.d.ts +33 -0
  162. package/dist/client-v2/repositories/AIConfigRepository.d.ts +3 -23
  163. package/dist/client-v2/runjs/registerAIEmployeeRunJSFacade.d.ts +20 -0
  164. package/dist/client-v2/workflow/components/FormValueRegistry.d.ts +12 -0
  165. package/dist/{client/components/ListCollapse.d.ts → client-v2/workflow/components/WorkflowListCollapse.d.ts} +4 -4
  166. package/dist/client-v2/workflow/constants.d.ts +26 -0
  167. package/dist/client-v2/workflow/nodes/employee/components/AIEmployeeFieldset.d.ts +11 -0
  168. package/dist/{client/ai-employees/common/CodeHighlight.d.ts → client-v2/workflow/nodes/employee/components/AIEmployeeSelect.d.ts} +5 -6
  169. package/dist/{client/ai-employees/ContextAwareTooltip.d.ts → client-v2/workflow/nodes/employee/components/Assignees.d.ts} +2 -1
  170. package/dist/client-v2/workflow/nodes/employee/components/FeedbackSettings.d.ts +17 -0
  171. package/dist/client-v2/workflow/nodes/employee/components/FileInputs.d.ts +11 -0
  172. package/dist/{client/ai-employees/AIEmployeesProvider.d.ts → client-v2/workflow/nodes/employee/components/MessageInputs.d.ts} +2 -3
  173. package/dist/client-v2/workflow/nodes/employee/components/ModelOptions.d.ts +17 -0
  174. package/dist/{client/ai-employees/admin/datasource/components/basic/CollectionCascader.d.ts → client-v2/workflow/nodes/employee/components/SkillSettings.d.ts} +6 -3
  175. package/dist/client-v2/workflow/nodes/employee/components/StructuredOutput.d.ts +11 -0
  176. package/dist/client-v2/workflow/nodes/employee/components/UserInput.d.ts +18 -0
  177. package/dist/client-v2/workflow/nodes/employee/components/WebSearchOptions.d.ts +16 -0
  178. package/dist/client-v2/workflow/nodes/employee/index.d.ts +23 -0
  179. package/dist/{client/ai-employees/AIEmployeeListItem.d.ts → client-v2/workflow/nodes/llm/components/LLMFieldset.d.ts} +3 -5
  180. package/dist/{client/admin-settings/AdminSettings.d.ts → client-v2/workflow/nodes/llm/components/Messages.d.ts} +2 -1
  181. package/dist/client-v2/workflow/nodes/llm/components/StructuredOutput.d.ts +11 -0
  182. package/dist/client-v2/workflow/nodes/llm/index.d.ts +30 -0
  183. package/dist/{client/ai-employees/1.x/selector/BlockSelector.d.ts → client-v2/workflow/register.d.ts} +2 -6
  184. package/dist/client-v2/workflow/triggers/ai-employee/AIEmployeeTriggerConfig.d.ts +11 -0
  185. package/dist/client-v2/workflow/triggers/ai-employee/Parameters.d.ts +11 -0
  186. package/dist/client-v2/workflow/triggers/ai-employee/index.d.ts +25 -0
  187. package/dist/client-v2/workflow/types.d.ts +128 -0
  188. package/dist/externalVersion.js +20 -25
  189. package/dist/locale/en-US.json +50 -1
  190. package/dist/locale/zh-CN.json +50 -1
  191. package/dist/node_modules/@langchain/mistralai/LICENSE +21 -0
  192. package/dist/node_modules/@langchain/mistralai/dist/_virtual/rolldown_runtime.cjs +25 -0
  193. package/dist/node_modules/@langchain/mistralai/dist/chat_models.cjs +859 -0
  194. package/dist/node_modules/@langchain/mistralai/dist/chat_models.d.cts +541 -0
  195. package/dist/node_modules/@langchain/mistralai/dist/chat_models.d.ts +541 -0
  196. package/dist/node_modules/@langchain/mistralai/dist/chat_models.js +857 -0
  197. package/dist/node_modules/@langchain/mistralai/dist/embeddings.cjs +140 -0
  198. package/dist/node_modules/@langchain/mistralai/dist/embeddings.d.cts +116 -0
  199. package/dist/node_modules/@langchain/mistralai/dist/embeddings.d.ts +116 -0
  200. package/dist/node_modules/@langchain/mistralai/dist/embeddings.js +139 -0
  201. package/dist/node_modules/@langchain/mistralai/dist/index.cjs +21 -0
  202. package/dist/node_modules/@langchain/mistralai/dist/index.d.cts +4 -0
  203. package/dist/node_modules/@langchain/mistralai/dist/index.d.ts +4 -0
  204. package/dist/node_modules/@langchain/mistralai/dist/index.js +5 -0
  205. package/dist/node_modules/@langchain/mistralai/dist/llms.cjs +275 -0
  206. package/dist/node_modules/@langchain/mistralai/dist/llms.d.cts +147 -0
  207. package/dist/node_modules/@langchain/mistralai/dist/llms.d.ts +147 -0
  208. package/dist/node_modules/@langchain/mistralai/dist/llms.js +274 -0
  209. package/dist/node_modules/@langchain/mistralai/dist/utils.cjs +61 -0
  210. package/dist/node_modules/@langchain/mistralai/dist/utils.js +59 -0
  211. package/dist/node_modules/@langchain/mistralai/package.json +1 -0
  212. package/dist/node_modules/@langchain/xai/dist/index.cjs +2 -2
  213. package/dist/node_modules/@langchain/xai/package.json +1 -1
  214. package/dist/node_modules/fs-extra/package.json +1 -1
  215. package/dist/node_modules/jsonrepair/package.json +1 -1
  216. package/dist/node_modules/just-bash/package.json +1 -1
  217. package/dist/node_modules/nodejs-snowflake/package.json +1 -1
  218. package/dist/node_modules/openai/package.json +1 -1
  219. package/dist/node_modules/zod/package.json +1 -1
  220. package/dist/server/ai-employees/ai-employee.d.ts +1 -0
  221. package/dist/server/ai-employees/ai-employee.js +44 -7
  222. package/dist/server/ai-employees/checkpoints/cleaner.d.ts +2 -0
  223. package/dist/server/ai-employees/checkpoints/cleaner.js +11 -1
  224. package/dist/server/ai-employees/middleware/conversation.d.ts +2 -0
  225. package/dist/server/ai-employees/middleware/conversation.js +2 -1
  226. package/dist/server/ai-employees/prompts.d.ts +2 -1
  227. package/dist/server/ai-employees/prompts.js +8 -2
  228. package/dist/server/ai-employees/tool-call-sanitizer.d.ts +1 -0
  229. package/dist/server/ai-employees/tool-call-sanitizer.js +2 -1
  230. package/dist/server/ai-employees/utils.d.ts +3 -1
  231. package/dist/server/ai-employees/utils.js +13 -5
  232. package/dist/server/attachments.d.ts +24 -0
  233. package/dist/server/attachments.js +204 -0
  234. package/dist/server/collections/ai-usage-events.d.ts +10 -0
  235. package/dist/server/collections/ai-usage-events.js +183 -0
  236. package/dist/server/document-loader/cached.d.ts +1 -0
  237. package/dist/server/document-loader/cached.js +18 -9
  238. package/dist/server/document-loader/loader.d.ts +0 -1
  239. package/dist/server/document-loader/loader.js +25 -8
  240. package/dist/server/document-loader/types.d.ts +7 -0
  241. package/dist/server/llm-providers/anthropic.d.ts +2 -1
  242. package/dist/server/llm-providers/anthropic.js +1 -3
  243. package/dist/server/llm-providers/dashscope.d.ts +2 -1
  244. package/dist/server/llm-providers/dashscope.js +16 -1
  245. package/dist/server/llm-providers/deepseek.d.ts +2 -1
  246. package/dist/server/llm-providers/deepseek.js +33 -2
  247. package/dist/server/llm-providers/google-genai.d.ts +1 -1
  248. package/dist/server/llm-providers/google-genai.js +1 -5
  249. package/dist/server/llm-providers/kimi/provider.d.ts +2 -1
  250. package/dist/server/llm-providers/kimi/provider.js +22 -2
  251. package/dist/server/llm-providers/mistral.d.ts +96 -0
  252. package/dist/server/llm-providers/mistral.js +325 -0
  253. package/dist/server/llm-providers/openai/completions.d.ts +2 -1
  254. package/dist/server/llm-providers/openai/completions.js +17 -1
  255. package/dist/server/llm-providers/openai/responses.d.ts +2 -1
  256. package/dist/server/llm-providers/openai/responses.js +17 -1
  257. package/dist/server/llm-providers/orcarouter.d.ts +35 -0
  258. package/dist/server/llm-providers/orcarouter.js +155 -0
  259. package/dist/server/llm-providers/provider.d.ts +16 -4
  260. package/dist/server/llm-providers/provider.js +60 -18
  261. package/dist/server/manager/ai-chat-conversation.js +2 -0
  262. package/dist/server/manager/ai-context-datasource-manager.js +34 -7
  263. package/dist/server/manager/ai-manager.d.ts +2 -1
  264. package/dist/server/manager/ai-manager.js +4 -1
  265. package/dist/server/manager/ai-usage-events.d.ts +49 -0
  266. package/dist/server/manager/ai-usage-events.js +195 -0
  267. package/dist/server/plugin.js +18 -0
  268. package/dist/server/resource/aiConversations.js +44 -1
  269. package/dist/server/utils.d.ts +5 -2
  270. package/dist/server/utils.js +11 -19
  271. package/dist/server/workflow/nodes/employee/files.d.ts +3 -1
  272. package/dist/server/workflow/nodes/employee/files.js +31 -5
  273. package/dist/server/workflow/nodes/employee/index.js +92 -46
  274. package/dist/server/workflow/nodes/employee/tools.js +8 -1
  275. package/package.json +6 -5
  276. package/dist/client/119.c6bf8c6433167d81.js +0 -10
  277. package/dist/client/170.d98eacdc00d9d527.js +0 -10
  278. package/dist/client/228.b4b709f93b86b6b9.js +0 -10
  279. package/dist/client/280.003b9e9788599244.js +0 -10
  280. package/dist/client/290.0f7f441d8a94f03c.js +0 -10
  281. package/dist/client/331.d547c95410476a69.js +0 -10
  282. package/dist/client/406.15c09d98faa2ccf1.js +0 -10
  283. package/dist/client/428.e9f38da3b0d8b498.js +0 -10
  284. package/dist/client/462.d172d0fe91519e35.js +0 -10
  285. package/dist/client/486.dcac8f3fcec19c33.js +0 -10
  286. package/dist/client/502.2b4a51e0a8122e52.js +0 -10
  287. package/dist/client/525.33a9c8ec28be4ec4.js +0 -10
  288. package/dist/client/559.a0f2f1cc2be3c039.js +0 -10
  289. package/dist/client/561.7ec804ef39ec7dcd.js +0 -10
  290. package/dist/client/580.35ba54ff91b7fe6d.js +0 -10
  291. package/dist/client/597.b0d64948d74cf6cb.js +0 -10
  292. package/dist/client/604.89c674f35b52b4ef.js +0 -10
  293. package/dist/client/614.aa766080f6b99aab.js +0 -10
  294. package/dist/client/646.d4483b4ff23da0a0.js +0 -10
  295. package/dist/client/687.224e569a99cae4bb.js +0 -10
  296. package/dist/client/699.57c0a1acb723202a.js +0 -10
  297. package/dist/client/711.92cd94681fde7e05.js +0 -10
  298. package/dist/client/758.a9741e81911e53c3.js +0 -10
  299. package/dist/client/768.5177bff46ae71a5b.js +0 -10
  300. package/dist/client/792.abb57765453bcbcc.js +0 -10
  301. package/dist/client/820.f72ef2462b61d812.js +0 -10
  302. package/dist/client/832.0cf69e3f43c320b2.js +0 -10
  303. package/dist/client/927.d95c74ebb8fd51c9.js +0 -10
  304. package/dist/client/ai-employees/1.x/selector/AISelectorProvider.d.ts +0 -33
  305. package/dist/client/ai-employees/ProfileCard.d.ts +0 -15
  306. package/dist/client/ai-employees/admin/ChatSettings.d.ts +0 -10
  307. package/dist/client/ai-employees/admin/DataSourceSettings.d.ts +0 -10
  308. package/dist/client/ai-employees/admin/EnableSwitch.d.ts +0 -10
  309. package/dist/client/ai-employees/admin/InputsFormSettings.d.ts +0 -10
  310. package/dist/client/ai-employees/admin/KnowledgeBaseSettings.d.ts +0 -10
  311. package/dist/client/ai-employees/admin/ModelSettings.d.ts +0 -10
  312. package/dist/client/ai-employees/admin/SkillSettings.d.ts +0 -19
  313. package/dist/client/ai-employees/admin/SystemPrompt.d.ts +0 -10
  314. package/dist/client/ai-employees/admin/Templates.d.ts +0 -10
  315. package/dist/client/ai-employees/admin/ToolsSettings.d.ts +0 -17
  316. package/dist/client/ai-employees/admin/datasource/components/DatasourceSettingForm.d.ts +0 -10
  317. package/dist/client/ai-employees/admin/datasource/components/DatasourceSettingGrid.d.ts +0 -10
  318. package/dist/client/ai-employees/admin/datasource/components/basic/FieldsTransfer.d.ts +0 -17
  319. package/dist/client/ai-employees/admin/datasource/components/form-steps/CollectionSetting.d.ts +0 -17
  320. package/dist/client/ai-employees/admin/datasource/components/form-steps/FieldsSetting.d.ts +0 -15
  321. package/dist/client/ai-employees/admin/datasource/components/form-steps/FilterSetting.d.ts +0 -17
  322. package/dist/client/ai-employees/admin/datasource/components/form-steps/Preview.d.ts +0 -13
  323. package/dist/client/ai-employees/admin/datasource/components/form-steps/SortSetting.d.ts +0 -15
  324. package/dist/client/ai-employees/admin/datasource/components/form-steps/index.d.ts +0 -13
  325. package/dist/client/ai-employees/admin/datasource/components/index.d.ts +0 -9
  326. package/dist/client/ai-employees/admin/datasource/context.d.ts +0 -17
  327. package/dist/client/ai-employees/admin/datasource/flow-models/index.d.ts +0 -9
  328. package/dist/client/ai-employees/admin/datasource/index.d.ts +0 -10
  329. package/dist/client/ai-employees/admin/hooks.d.ts +0 -39
  330. package/dist/client/ai-employees/admin/mcp/MCPSettings.d.ts +0 -10
  331. package/dist/client/ai-employees/admin/mcp/MCPToolsList.d.ts +0 -19
  332. package/dist/client/ai-employees/admin/mcp/context.d.ts +0 -15
  333. package/dist/client/ai-employees/admin/mcp/schemas.d.ts +0 -1314
  334. package/dist/client/ai-employees/ai-coding/CodeHistory.d.ts +0 -10
  335. package/dist/client/ai-employees/ai-coding/markdown/Code.d.ts +0 -16
  336. package/dist/client/ai-employees/avatars.d.ts +0 -9
  337. package/dist/client/ai-employees/built-in/utils.d.ts +0 -15
  338. package/dist/client/ai-employees/business-report/tools/index.d.ts +0 -10
  339. package/dist/client/ai-employees/business-report/ui/report-utils.d.ts +0 -38
  340. package/dist/client/ai-employees/chart-generator/tools/index.d.ts +0 -10
  341. package/dist/client/ai-employees/chart-generator/ui/ECharts.d.ts +0 -13
  342. package/dist/client/ai-employees/chatbox/AIThinking.d.ts +0 -12
  343. package/dist/client/ai-employees/chatbox/Attachment.d.ts +0 -14
  344. package/dist/client/ai-employees/chatbox/AttachmentsHeader.d.ts +0 -10
  345. package/dist/client/ai-employees/chatbox/ChatBox.d.ts +0 -12
  346. package/dist/client/ai-employees/chatbox/ContextItemsHeader.d.ts +0 -10
  347. package/dist/client/ai-employees/chatbox/DebugPanel.d.ts +0 -16
  348. package/dist/client/ai-employees/chatbox/EditMessageHeader.d.ts +0 -10
  349. package/dist/client/ai-employees/chatbox/HintMessageHeader.d.ts +0 -10
  350. package/dist/client/ai-employees/chatbox/MessageRenderer.d.ts +0 -33
  351. package/dist/client/ai-employees/chatbox/SenderFooter.d.ts +0 -13
  352. package/dist/client/ai-employees/chatbox/SenderHeader.d.ts +0 -10
  353. package/dist/client/ai-employees/chatbox/SenderPrefix.d.ts +0 -10
  354. package/dist/client/ai-employees/chatbox/Upload.d.ts +0 -12
  355. package/dist/client/ai-employees/chatbox/VirtualList.d.ts +0 -28
  356. package/dist/client/ai-employees/chatbox/conversations/ConversationsList.d.ts +0 -13
  357. package/dist/client/ai-employees/chatbox/conversations/WorkflowTasksList.d.ts +0 -13
  358. package/dist/client/ai-employees/chatbox/conversations/index.d.ts +0 -9
  359. package/dist/client/ai-employees/chatbox/generative-ui/DefaultToolCard.d.ts +0 -16
  360. package/dist/client/ai-employees/chatbox/hooks/useChatBoxActions.d.ts +0 -18
  361. package/dist/client/ai-employees/chatbox/hooks/useUploadFiles.d.ts +0 -12
  362. package/dist/client/ai-employees/chatbox/markdown/ECharts.d.ts +0 -10
  363. package/dist/client/ai-employees/chatbox/markdown/Form.d.ts +0 -10
  364. package/dist/client/ai-employees/chatbox/markdown/Generating.d.ts +0 -10
  365. package/dist/client/ai-employees/chatbox/markdown/Markdown.d.ts +0 -13
  366. package/dist/client/ai-employees/chatbox/roles.d.ts +0 -32
  367. package/dist/client/ai-employees/chatbox/stores/chat-box.d.ts +0 -9
  368. package/dist/client/ai-employees/chatbox/stores/chat-conversations.d.ts +0 -9
  369. package/dist/client/ai-employees/chatbox/stores/chat-messages.d.ts +0 -9
  370. package/dist/client/ai-employees/chatbox/stores/chat-tools.d.ts +0 -51
  371. package/dist/client/ai-employees/chatbox/stores/create-selectors.d.ts +0 -18
  372. package/dist/client/ai-employees/chatbox/stores/workflow-tasks.d.ts +0 -45
  373. package/dist/client/ai-employees/context/classic-pages.d.ts +0 -10
  374. package/dist/client/ai-employees/data-modeling/Table.d.ts +0 -12
  375. package/dist/client/ai-employees/data-modeling/setup.d.ts +0 -10
  376. package/dist/client/ai-employees/data-modeling/tools/index.d.ts +0 -10
  377. package/dist/client/ai-employees/data-modeling/ui/useFieldInterfaceOptions.d.ts +0 -14
  378. package/dist/client/ai-employees/datasource/DatasourceList.d.ts +0 -17
  379. package/dist/client/ai-employees/datasource/index.d.ts +0 -9
  380. package/dist/client/ai-employees/flow/events/index.d.ts +0 -9
  381. package/dist/client/ai-employees/flow/index.d.ts +0 -36
  382. package/dist/client/ai-employees/flow/models/AIEmployeeActionModel.d.ts +0 -18
  383. package/dist/client/ai-employees/flow/models/AIEmployeeShortcutModel.d.ts +0 -30
  384. package/dist/client/ai-employees/shortcuts/ShortcutList.d.ts +0 -10
  385. package/dist/client/ai-employees/shortcuts/useShortcuts.d.ts +0 -13
  386. package/dist/client/ai-employees/stores/context-aware.d.ts +0 -19
  387. package/dist/client/ai-employees/sub-agents/tools/index.d.ts +0 -10
  388. package/dist/client/ai-employees/suggestions/tools/index.d.ts +0 -10
  389. package/dist/client/ai-employees/suggestions/ui/SuggestionsOptions.d.ts +0 -13
  390. package/dist/client/ai-employees/types.d.ts +0 -259
  391. package/dist/client/ai-employees/workflow-tasks/tools/index.d.ts +0 -10
  392. package/dist/client/chat-settings/Messages.d.ts +0 -11
  393. package/dist/client/chat-settings/StructuredOutput.d.ts +0 -11
  394. package/dist/client/components/skill-settings.d.ts +0 -22
  395. package/dist/client/features/components.d.ts +0 -9
  396. package/dist/client/features/feature-manager.d.ts +0 -9
  397. package/dist/client/features/index.d.ts +0 -9
  398. package/dist/client/features/vector-database-provider.d.ts +0 -9
  399. package/dist/client/features/vector-store-provider.d.ts +0 -9
  400. package/dist/client/llm-providers/anthropic/ModelSettings.d.ts +0 -10
  401. package/dist/client/llm-providers/anthropic/ProviderSettings.d.ts +0 -10
  402. package/dist/client/llm-providers/anthropic/index.d.ts +0 -10
  403. package/dist/client/llm-providers/components/Chat.d.ts +0 -10
  404. package/dist/client/llm-providers/components/ModelSelect.d.ts +0 -10
  405. package/dist/client/llm-providers/dashscope/ModelSettings.d.ts +0 -10
  406. package/dist/client/llm-providers/dashscope/ProviderSettings.d.ts +0 -10
  407. package/dist/client/llm-providers/dashscope/index.d.ts +0 -10
  408. package/dist/client/llm-providers/deepseek/ModelSettings.d.ts +0 -10
  409. package/dist/client/llm-providers/deepseek/index.d.ts +0 -10
  410. package/dist/client/llm-providers/google-genai/MessageRenderer.d.ts +0 -13
  411. package/dist/client/llm-providers/google-genai/ModelSettings.d.ts +0 -10
  412. package/dist/client/llm-providers/google-genai/ProviderSettings.d.ts +0 -10
  413. package/dist/client/llm-providers/google-genai/index.d.ts +0 -10
  414. package/dist/client/llm-providers/kimi/ModelSettings.d.ts +0 -10
  415. package/dist/client/llm-providers/kimi/index.d.ts +0 -10
  416. package/dist/client/llm-providers/mimo/ModelSettings.d.ts +0 -10
  417. package/dist/client/llm-providers/mimo/index.d.ts +0 -10
  418. package/dist/client/llm-providers/ollama/ModelSettings.d.ts +0 -10
  419. package/dist/client/llm-providers/ollama/ProviderSettings.d.ts +0 -10
  420. package/dist/client/llm-providers/ollama/index.d.ts +0 -10
  421. package/dist/client/llm-providers/openai/completions/ModelSettings.d.ts +0 -10
  422. package/dist/client/llm-providers/openai/completions/index.d.ts +0 -10
  423. package/dist/client/llm-providers/openai/components/ProviderSettings.d.ts +0 -10
  424. package/dist/client/llm-providers/openai/responses/ModelSettings.d.ts +0 -10
  425. package/dist/client/llm-providers/openai/responses/index.d.ts +0 -10
  426. package/dist/client/llm-providers/tongyi/ModelSettings.d.ts +0 -10
  427. package/dist/client/llm-providers/tongyi/ProviderSettings.d.ts +0 -10
  428. package/dist/client/llm-providers/tongyi/index.d.ts +0 -10
  429. package/dist/client/llm-providers/xai/ModelSettings.d.ts +0 -10
  430. package/dist/client/llm-providers/xai/index.d.ts +0 -10
  431. package/dist/client/llm-services/LLMServices.d.ts +0 -13
  432. package/dist/client/llm-services/component/DefaultModelSelect.d.ts +0 -10
  433. package/dist/client/llm-services/component/EnabledModelsSelect.d.ts +0 -23
  434. package/dist/client/llm-services/component/LLMTestFlight.d.ts +0 -10
  435. package/dist/client/llm-services/component/ModelOptionsSettings.d.ts +0 -10
  436. package/dist/client/llm-services/component/UnifiedModelSettings.d.ts +0 -10
  437. package/dist/client/llm-services/hooks/useLLMServiceCatalog.d.ts +0 -18
  438. package/dist/client/llm-services/llm-providers.d.ts +0 -27
  439. package/dist/client/llm-services/utils.d.ts +0 -30
  440. package/dist/client/manager/ai-feature-manager.d.ts +0 -9
  441. package/dist/client/manager/ai-manager.d.ts +0 -35
  442. package/dist/client/repositories/AIConfigRepository.d.ts +0 -60
  443. package/dist/client/repositories/hooks/useAIConfigRepository.d.ts +0 -10
  444. package/dist/client/schemas/llms.d.ts +0 -347
  445. package/dist/client/workflow/nodes/employee/components/AIEmployeeSelect.d.ts +0 -10
  446. package/dist/client/workflow/nodes/employee/components/assigness.d.ts +0 -11
  447. package/dist/client/workflow/nodes/employee/components/file-inputs.d.ts +0 -10
  448. package/dist/client/workflow/nodes/employee/components/message-inputs.d.ts +0 -12
  449. package/dist/client/workflow/nodes/employee/components/model-options.d.ts +0 -10
  450. package/dist/client/workflow/nodes/employee/components/structured-output.d.ts +0 -10
  451. package/dist/client/workflow/nodes/employee/components/users-select.d.ts +0 -15
  452. package/dist/client/workflow/nodes/employee/components/web-search-options.d.ts +0 -10
  453. package/dist/client/workflow/nodes/employee/configuration.d.ts +0 -12
  454. package/dist/client/workflow/nodes/employee/flow-models/feedback.d.ts +0 -14
  455. package/dist/client/workflow/nodes/employee/flow-models/task.d.ts +0 -13
  456. package/dist/client/workflow/nodes/llm/ModelSettings.d.ts +0 -11
  457. package/dist/client/workflow/triggers/ai-employee/Parameters.d.ts +0 -13
  458. package/dist/client-v2/ai-employees/flow/models/AIEmployeeButtonModel.d.ts +0 -32
  459. /package/dist/{client → client-v2}/ai-employees/AISelection.d.ts +0 -0
  460. /package/dist/{client → client-v2}/ai-employees/AISelectionControl.d.ts +0 -0
  461. /package/dist/{client → client-v2}/ai-employees/ai-coding/prompts.d.ts +0 -0
  462. /package/dist/{client → client-v2}/ai-employees/ai-coding/setup.d.ts +0 -0
  463. /package/dist/{client/ai-employees/chatbox/AIEmployeeSwitch.d.ts → client-v2/ai-employees/chatbox/components/AIEmployeeSwitcher.d.ts} +0 -0
  464. /package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/ChatButton.d.ts +0 -0
  465. /package/dist/{client/ai-employees/chatbox/conversations → client-v2/ai-employees/chatbox/components}/Conversations.d.ts +0 -0
  466. /package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/Messages.d.ts +0 -0
  467. /package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/ModelSwitcher.d.ts +0 -0
  468. /package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/SearchSwitch.d.ts +0 -0
  469. /package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/Sender.d.ts +0 -0
  470. /package/dist/{client/ai-employees/chatbox/generative-ui → client-v2/ai-employees/chatbox/components}/ToolModal.d.ts +0 -0
  471. /package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/UserPrompt.d.ts +0 -0
  472. /package/dist/{client → client-v2}/ai-employees/chatbox/hooks/useChatBoxEffect.d.ts +0 -0
  473. /package/dist/{client → client-v2}/ai-employees/chatbox/hooks/useLoadMoreObserver.d.ts +0 -0
  474. /package/dist/client-v2/ai-employees/{chatbox/stores → stores}/global-store.d.ts +0 -0
  475. /package/dist/{client/ai-employees/flow/models → client-v2/models/ai-employees}/AIEmployeeShortcutListModel.d.ts +0 -0
  476. /package/dist/{client/ai-employees/flow/models → client-v2/models/ai-employees}/index.d.ts +0 -0
  477. /package/dist/{client/ai-employees/flow/events/ai-context-selection.d.ts → client-v2/workflow/components/index.d.ts} +0 -0
@@ -40,6 +40,7 @@ class OpenAIResponsesProvider extends import_provider.LLMProvider {
40
40
  const { apiKey } = this.serviceOptions || {};
41
41
  const { responseFormat, structuredOutput } = this.modelOptions || {};
42
42
  const { name, schema, strict } = structuredOutput || {};
43
+ const reasoningOptions = this.resolveReasoningOptions(this.modelReasoningOptions);
43
44
  let responseFormatOptions = {
44
45
  type: responseFormat ?? "text"
45
46
  };
@@ -54,10 +55,12 @@ class OpenAIResponsesProvider extends import_provider.LLMProvider {
54
55
  return new import_openai.ChatOpenAI({
55
56
  apiKey,
56
57
  ...this.modelOptions,
58
+ ...reasoningOptions.modelRequestParams || {},
57
59
  modelKwargs: {
58
60
  text: {
59
61
  format: responseFormatOptions
60
- }
62
+ },
63
+ ...reasoningOptions.modelKwargs || {}
61
64
  },
62
65
  configuration: {
63
66
  baseURL: this.getResolvedBaseURL()
@@ -130,6 +133,19 @@ class OpenAIResponsesProvider extends import_provider.LLMProvider {
130
133
  }
131
134
  return [];
132
135
  }
136
+ resolveReasoningOptions(reasoning) {
137
+ if (!reasoning || reasoning.mode === "default") {
138
+ return {};
139
+ }
140
+ const effort = reasoning.mode === "off" ? "none" : reasoning.mode;
141
+ return {
142
+ modelRequestParams: {
143
+ reasoning: {
144
+ effort
145
+ }
146
+ }
147
+ };
148
+ }
133
149
  isToolConflict() {
134
150
  return false;
135
151
  }
@@ -0,0 +1,35 @@
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
+ import { LLMProvider } from './provider';
10
+ import { LLMProviderMeta } from '../manager/ai-manager';
11
+ import { AIMessageChunk, BaseMessageChunk } from '@langchain/core/messages';
12
+ import { ReasoningChatOpenAI } from './common/reasoning';
13
+ import { AttachmentModel } from '@nocobase/plugin-file-manager';
14
+ import { Model } from '@nocobase/database';
15
+ export declare class OrcaRouterProvider extends LLMProvider {
16
+ chatModel: ReasoningChatOpenAI;
17
+ get baseURL(): string;
18
+ createModel(): ChatOrcaRouterCompletions;
19
+ protected isApiSupportedAttachment(attachment: AttachmentModel): boolean;
20
+ parseResponseMessage(message: Model): {
21
+ key: any;
22
+ createdAt: any;
23
+ content: any;
24
+ role: any;
25
+ };
26
+ parseReasoningContent(chunk: AIMessageChunk): {
27
+ status: string;
28
+ content: string;
29
+ };
30
+ }
31
+ declare class ChatOrcaRouterCompletions extends ReasoningChatOpenAI {
32
+ _convertCompletionsDeltaToBaseMessageChunk(delta: any, rawResponse: any, defaultRole: any): BaseMessageChunk;
33
+ }
34
+ export declare const orcarouterProviderOptions: LLMProviderMeta;
35
+ export {};
@@ -0,0 +1,155 @@
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
+ var __create = Object.create;
11
+ var __defProp = Object.defineProperty;
12
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
13
+ var __getOwnPropNames = Object.getOwnPropertyNames;
14
+ var __getProtoOf = Object.getPrototypeOf;
15
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
16
+ var __export = (target, all) => {
17
+ for (var name in all)
18
+ __defProp(target, name, { get: all[name], enumerable: true });
19
+ };
20
+ var __copyProps = (to, from, except, desc) => {
21
+ if (from && typeof from === "object" || typeof from === "function") {
22
+ for (let key of __getOwnPropNames(from))
23
+ if (!__hasOwnProp.call(to, key) && key !== except)
24
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
25
+ }
26
+ return to;
27
+ };
28
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
29
+ // If the importer is in node compatibility mode or this is not an ESM
30
+ // file that has been converted to a CommonJS file using a Babel-
31
+ // compatible transform (i.e. "__esModule" has not been set), then set
32
+ // "default" to the CommonJS "module.exports" for node compatibility.
33
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
34
+ mod
35
+ ));
36
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
37
+ var orcarouter_exports = {};
38
+ __export(orcarouter_exports, {
39
+ OrcaRouterProvider: () => OrcaRouterProvider,
40
+ orcarouterProviderOptions: () => orcarouterProviderOptions
41
+ });
42
+ module.exports = __toCommonJS(orcarouter_exports);
43
+ var import_provider = require("./provider");
44
+ var import_ai_manager = require("../manager/ai-manager");
45
+ var import_lodash = __toESM(require("lodash"));
46
+ var import_openai = require("@langchain/openai");
47
+ var import_messages = require("@langchain/core/messages");
48
+ var import_reasoning = require("./common/reasoning");
49
+ class OrcaRouterProvider extends import_provider.LLMProvider {
50
+ get baseURL() {
51
+ return "https://api.orcarouter.ai/v1";
52
+ }
53
+ createModel() {
54
+ const { apiKey, httpReferer, xTitle } = this.serviceOptions || {};
55
+ const { responseFormat, structuredOutput } = this.modelOptions || {};
56
+ const { name, schema } = structuredOutput || {};
57
+ const responseFormatOptions = {
58
+ type: responseFormat ?? "text"
59
+ };
60
+ if (responseFormat === "json_schema" && schema) {
61
+ responseFormatOptions["json_schema"] = { schema, name: name ?? "schema" };
62
+ }
63
+ const defaultHeaders = {};
64
+ if (httpReferer) {
65
+ defaultHeaders["HTTP-Referer"] = httpReferer;
66
+ }
67
+ if (xTitle) {
68
+ defaultHeaders["X-Title"] = xTitle;
69
+ }
70
+ return new ChatOrcaRouterCompletions({
71
+ apiKey,
72
+ ...this.modelOptions,
73
+ modelKwargs: {
74
+ response_format: responseFormatOptions
75
+ },
76
+ configuration: {
77
+ baseURL: this.getResolvedBaseURL(),
78
+ ...Object.keys(defaultHeaders).length ? { defaultHeaders } : {}
79
+ }
80
+ });
81
+ }
82
+ isApiSupportedAttachment(attachment) {
83
+ const media = ["image/"];
84
+ return media.some((it) => {
85
+ var _a;
86
+ return (_a = attachment == null ? void 0 : attachment.mimetype) == null ? void 0 : _a.startsWith(it);
87
+ });
88
+ }
89
+ parseResponseMessage(message) {
90
+ var _a;
91
+ const result = super.parseResponseMessage(message);
92
+ if (["user", "tool"].includes(result == null ? void 0 : result.role)) {
93
+ return result;
94
+ }
95
+ const { metadata } = (message == null ? void 0 : message.toJSON()) ?? {};
96
+ if (!import_lodash.default.isEmpty((_a = metadata == null ? void 0 : metadata.additional_kwargs) == null ? void 0 : _a.reasoning_content)) {
97
+ result.content = {
98
+ ...result.content ?? {},
99
+ reasoning: {
100
+ status: "stop",
101
+ content: metadata == null ? void 0 : metadata.additional_kwargs.reasoning_content
102
+ }
103
+ };
104
+ }
105
+ return result;
106
+ }
107
+ parseReasoningContent(chunk) {
108
+ var _a;
109
+ if (!import_lodash.default.isEmpty((_a = chunk == null ? void 0 : chunk.additional_kwargs) == null ? void 0 : _a.reasoning_content)) {
110
+ return {
111
+ status: "streaming",
112
+ content: chunk.additional_kwargs.reasoning_content
113
+ };
114
+ }
115
+ return null;
116
+ }
117
+ }
118
+ class ChatOrcaRouterCompletions extends import_reasoning.ReasoningChatOpenAI {
119
+ _convertCompletionsDeltaToBaseMessageChunk(delta, rawResponse, defaultRole) {
120
+ const chunk = (0, import_openai.convertCompletionsDeltaToBaseMessageChunk)({
121
+ delta,
122
+ rawResponse,
123
+ includeRawResponse: this.__includeRawResponse,
124
+ defaultRole
125
+ });
126
+ if (chunk instanceof import_messages.AIMessageChunk) {
127
+ if (delta.reasoning_content) {
128
+ chunk.additional_kwargs.reasoning_content = delta.reasoning_content;
129
+ }
130
+ }
131
+ return chunk;
132
+ }
133
+ }
134
+ const orcarouterProviderOptions = {
135
+ title: "OrcaRouter",
136
+ supportedModel: [import_ai_manager.SupportedModel.LLM],
137
+ models: {
138
+ [import_ai_manager.SupportedModel.LLM]: [
139
+ "orcarouter/auto",
140
+ "openai/gpt-5.5",
141
+ "google/gemini-3.5-flash",
142
+ "anthropic/claude-opus-4.8",
143
+ "grok/grok-4.3",
144
+ "deepseek/deepseek-v4-pro",
145
+ "minimax/minimax-m2.7",
146
+ "qwen/qwen3.7-max"
147
+ ]
148
+ },
149
+ provider: OrcaRouterProvider
150
+ };
151
+ // Annotate the CommonJS export names for ESM import in node:
152
+ 0 && (module.exports = {
153
+ OrcaRouterProvider,
154
+ orcarouterProviderOptions
155
+ });
@@ -8,11 +8,11 @@
8
8
  */
9
9
  import { BaseChatModel } from '@langchain/core/language_models/chat_models';
10
10
  import { Model } from '@nocobase/database';
11
- import { AttachmentModel } from '@nocobase/plugin-file-manager';
11
+ import { type AttachmentModel } from '@nocobase/plugin-file-manager';
12
12
  import { Application } from '@nocobase/server';
13
- import { AIChatContext } from '../types/ai-chat-conversation.type';
13
+ import { AIChatContext, AIMessageInput } from '../types/ai-chat-conversation.type';
14
14
  import { EmbeddingsInterface } from '@langchain/core/embeddings';
15
- import { AIMessageChunk } from '@langchain/core/messages';
15
+ import { AIMessage, AIMessageChunk } from '@langchain/core/messages';
16
16
  import { Context } from '@nocobase/actions';
17
17
  import '@langchain/core/utils/stream';
18
18
  import { LLMResult } from '@langchain/core/outputs';
@@ -27,6 +27,11 @@ export type LLMProviderInvokeOptions = {
27
27
  modelRequestParams?: Record<string, any>;
28
28
  [key: string]: any;
29
29
  };
30
+ export type ReasoningMode = 'default' | 'off' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh';
31
+ export type ReasoningOptions = {
32
+ mode: ReasoningMode;
33
+ };
34
+ export type ResolvedReasoningOptions = Pick<LLMProviderInvokeOptions, 'modelKwargs' | 'modelRequestParams'>;
30
35
  export type LLMModelRequestBuilderResult = {
31
36
  context: AIChatContext;
32
37
  options?: LLMProviderInvokeOptions;
@@ -45,10 +50,12 @@ export declare abstract class LLMProvider {
45
50
  serviceOptions: Record<string, any>;
46
51
  modelOptions: Record<string, any> | undefined;
47
52
  chatModel: any;
53
+ protected modelReasoningOptions: ReasoningOptions | undefined;
48
54
  abstract createModel(): BaseChatModel | any;
49
55
  get baseURL(): string | null;
50
56
  constructor(opts: LLMProviderOptions);
51
57
  protected getModelRequestBuilder(_model?: string): LLMModelRequestBuilder | null;
58
+ protected resolveReasoningOptions(_reasoning?: ReasoningOptions): ResolvedReasoningOptions;
52
59
  prepareChain(context: AIChatContext): any;
53
60
  invoke(context: AIChatContext, options?: LLMProviderInvokeOptions): Promise<any>;
54
61
  stream(context: AIChatContext, options?: any): Promise<any>;
@@ -69,7 +76,8 @@ export declare abstract class LLMProvider {
69
76
  parseAttachment(ctx: Context, attachment: AttachmentModel): Promise<ParsedAttachmentResult>;
70
77
  protected isApiSupportedAttachment(attachment: AttachmentModel): boolean;
71
78
  protected isDocumentLoaderSupportedAttachment(attachment: AttachmentModel): boolean;
72
- protected convertToContent(ctx: Context, attachment: any): Promise<ParsedAttachmentResult>;
79
+ protected encodeAttachment(ctx: Context, attachment: AttachmentModel): Promise<string>;
80
+ protected convertToContent(ctx: Context, attachment: AttachmentModel): Promise<ParsedAttachmentResult>;
73
81
  protected loadDocument(ctx: Context, attachment: any): Promise<any>;
74
82
  getStructuredOutputOptions(structuredOutput: AIChatContext['structuredOutput']): any;
75
83
  testFlight(): Promise<{
@@ -90,6 +98,10 @@ export declare abstract class LLMProvider {
90
98
  } | null;
91
99
  parseResponseMetadata(output: LLMResult): any;
92
100
  parseResponseError(err: any): any;
101
+ reshapeAIMessage(_options: {
102
+ aiMessage: AIMessage;
103
+ values: AIMessageInput;
104
+ }): void;
93
105
  protected get documentLoader(): CachedDocumentLoader;
94
106
  protected getResolvedBaseURL(): string;
95
107
  protected buildRequestURL(pathname: string): string;
@@ -46,15 +46,34 @@ var import_stream = require("@langchain/core/utils/stream");
46
46
  var import_document_loader = require("../document-loader");
47
47
  var import_node_path = __toESM(require("node:path"));
48
48
  var import_reasoning = require("./common/reasoning");
49
+ function assertBaseURLString(baseURL) {
50
+ if (typeof baseURL !== "string") {
51
+ throw new Error("baseURL must be a string");
52
+ }
53
+ }
49
54
  function normalizeBaseURL(baseURL) {
50
- (0, import_utils.checkUrlAgainstWhitelist)(baseURL);
51
- return new URL(baseURL).toString().replace(/\/$/, "");
55
+ assertBaseURLString(baseURL);
56
+ const trimmedBaseURL = baseURL.trim();
57
+ (0, import_utils.checkUrlAgainstWhitelist)(trimmedBaseURL);
58
+ return new URL(trimmedBaseURL).toString().replace(/\/$/, "");
59
+ }
60
+ function isBlankBaseURL(baseURL) {
61
+ return baseURL.trim() === "";
62
+ }
63
+ function getServiceBaseURL(serviceOptions) {
64
+ const baseURL = serviceOptions == null ? void 0 : serviceOptions.baseURL;
65
+ if (typeof baseURL === "string" && isBlankBaseURL(baseURL)) {
66
+ return null;
67
+ }
68
+ return baseURL;
52
69
  }
53
70
  function resolveServiceOptions(serviceOptions, app) {
54
71
  const rendered = app.environment.renderJsonTemplate(serviceOptions ?? {});
55
72
  if ((rendered == null ? void 0 : rendered.baseURL) != null) {
56
- if (typeof rendered.baseURL !== "string") {
57
- throw new Error("baseURL must be a string");
73
+ assertBaseURLString(rendered.baseURL);
74
+ if (isBlankBaseURL(rendered.baseURL)) {
75
+ delete rendered.baseURL;
76
+ return rendered;
58
77
  }
59
78
  rendered.baseURL = normalizeBaseURL(rendered.baseURL);
60
79
  }
@@ -65,6 +84,7 @@ class LLMProvider {
65
84
  serviceOptions;
66
85
  modelOptions;
67
86
  chatModel;
87
+ modelReasoningOptions;
68
88
  get baseURL() {
69
89
  return null;
70
90
  }
@@ -73,13 +93,18 @@ class LLMProvider {
73
93
  this.app = app;
74
94
  this.serviceOptions = resolveServiceOptions(serviceOptions, app);
75
95
  if (modelOptions) {
76
- this.modelOptions = modelOptions;
96
+ const { _reasoning, ...restModelOptions } = modelOptions;
97
+ this.modelReasoningOptions = _reasoning;
98
+ this.modelOptions = restModelOptions;
77
99
  this.chatModel = this.createModel();
78
100
  }
79
101
  }
80
102
  getModelRequestBuilder(_model) {
81
103
  return null;
82
104
  }
105
+ resolveReasoningOptions(_reasoning) {
106
+ return {};
107
+ }
83
108
  prepareChain(context) {
84
109
  var _a, _b, _c, _d;
85
110
  let chain = this.chatModel;
@@ -164,6 +189,15 @@ class LLMProvider {
164
189
  return (0, import_utils2.stripToolCallTags)(chunk);
165
190
  }
166
191
  async parseAttachment(ctx, attachment) {
192
+ var _a;
193
+ const dataSourceKey = (_a = attachment == null ? void 0 : attachment.source) == null ? void 0 : _a.dataSourceKey;
194
+ const isExternalAttachment = Boolean(dataSourceKey && dataSourceKey !== "main");
195
+ if (!(attachment == null ? void 0 : attachment.storageId) && !isExternalAttachment || !(attachment == null ? void 0 : attachment.filename)) {
196
+ return {
197
+ placement: "system",
198
+ content: "The user provided an attachment, but it is unavailable or invalid and cannot be parsed. Do not use this attachment as evidence; tell the user the attachment is unavailable."
199
+ };
200
+ }
167
201
  if (this.isApiSupportedAttachment(attachment)) {
168
202
  return await this.convertToContent(ctx, attachment);
169
203
  } else if (this.isDocumentLoaderSupportedAttachment(attachment)) {
@@ -193,10 +227,24 @@ class LLMProvider {
193
227
  const ext = import_node_path.default.extname((attachment == null ? void 0 : attachment.filename) ?? "").toLocaleLowerCase();
194
228
  return import_document_loader.SUPPORTED_DOCUMENT_EXTNAMES.includes(ext);
195
229
  }
196
- async convertToContent(ctx, attachment) {
230
+ async encodeAttachment(ctx, attachment) {
197
231
  const fileManager = this.app.pm.get("file-manager");
198
- const url = await fileManager.getFileURL(attachment);
199
- const data = await (0, import_utils2.encodeFile)(ctx, decodeURIComponent(url));
232
+ if (typeof ctx.get !== "function") {
233
+ const { stream: stream2 } = await fileManager.getFileStream(attachment);
234
+ return await (0, import_utils2.encodeReadableStream)(stream2);
235
+ }
236
+ const { stream } = await fileManager.getFileStream(attachment, {
237
+ requestOptions: {
238
+ headers: {
239
+ Referer: ctx.get("referer") || "",
240
+ "User-Agent": ctx.get("user-agent") || ""
241
+ }
242
+ }
243
+ });
244
+ return await (0, import_utils2.encodeReadableStream)(stream);
245
+ }
246
+ async convertToContent(ctx, attachment) {
247
+ const data = await this.encodeAttachment(ctx, attachment);
200
248
  if (attachment.mimetype.startsWith("image/")) {
201
249
  return {
202
250
  placement: "contentBlocks",
@@ -319,18 +367,16 @@ ${parsed.text}
319
367
  parseResponseError(err) {
320
368
  return (err == null ? void 0 : err.message) ?? "Unexpected LLM service error";
321
369
  }
370
+ reshapeAIMessage(_options) {
371
+ }
322
372
  get documentLoader() {
323
373
  return this.aiPlugin.documentLoaders.cached;
324
374
  }
325
375
  getResolvedBaseURL() {
326
- var _a;
327
- const baseURL = ((_a = this.serviceOptions) == null ? void 0 : _a.baseURL) ?? this.baseURL;
376
+ const baseURL = getServiceBaseURL(this.serviceOptions) ?? this.baseURL;
328
377
  if (!baseURL) {
329
378
  throw new Error("baseURL is required");
330
379
  }
331
- if (typeof baseURL !== "string") {
332
- throw new Error("baseURL must be a string");
333
- }
334
380
  return normalizeBaseURL(baseURL);
335
381
  }
336
382
  buildRequestURL(pathname) {
@@ -361,14 +407,10 @@ class EmbeddingProvider {
361
407
  return apiKey;
362
408
  }
363
409
  get baseURL() {
364
- var _a;
365
- const baseURL = ((_a = this.serviceOptions) == null ? void 0 : _a.baseURL) ?? this.getDefaultUrl();
410
+ const baseURL = getServiceBaseURL(this.serviceOptions) ?? this.getDefaultUrl();
366
411
  if (!baseURL) {
367
412
  throw new Error("baseURL is required");
368
413
  }
369
- if (typeof baseURL !== "string") {
370
- throw new Error("baseURL must be a string");
371
- }
372
414
  return normalizeBaseURL(baseURL);
373
415
  }
374
416
  get model() {
@@ -40,6 +40,7 @@ __export(ai_chat_conversation_exports, {
40
40
  });
41
41
  module.exports = __toCommonJS(ai_chat_conversation_exports);
42
42
  var import_lodash = __toESM(require("lodash"));
43
+ var import_ai_usage_events = require("./ai-usage-events");
43
44
  const createAIChatConversation = (ctx, sessionId) => {
44
45
  return new AIChatConversationImpl(ctx, sessionId);
45
46
  };
@@ -81,6 +82,7 @@ class AIChatConversationImpl {
81
82
  ),
82
83
  transaction: this.transaction
83
84
  });
85
+ await (0, import_ai_usage_events.recordAIUsageEventsForMessages)(this.ctx, this.sessionId, instances, this.transaction);
84
86
  return isArray ? instances : instances[0];
85
87
  }
86
88
  async removeMessages({ messageId }) {
@@ -60,6 +60,34 @@ function serializeQueryFieldValue(value) {
60
60
  }
61
61
  return value;
62
62
  }
63
+ function getRecordFieldValue(record, field) {
64
+ return field.split(".").reduce((current, key) => {
65
+ if (current === null || current === void 0) {
66
+ return current;
67
+ }
68
+ if (typeof current.get === "function") {
69
+ return current.get(key);
70
+ }
71
+ return current[key];
72
+ }, record);
73
+ }
74
+ function getQueryFieldOptions(collection, field) {
75
+ const parts = field.split(".");
76
+ let currentCollection = collection;
77
+ for (const [index, part] of parts.entries()) {
78
+ const currentField = currentCollection == null ? void 0 : currentCollection.getField(part);
79
+ if (!currentField) {
80
+ return;
81
+ }
82
+ if (index === parts.length - 1) {
83
+ return currentField.options;
84
+ }
85
+ if (!currentField.isRelationField()) {
86
+ return;
87
+ }
88
+ currentCollection = currentField.targetCollection();
89
+ }
90
+ }
63
91
  class AIContextDatasourceManager {
64
92
  constructor(plugin) {
65
93
  this.plugin = plugin;
@@ -149,17 +177,16 @@ class AIContextDatasourceManager {
149
177
  }
150
178
  });
151
179
  }
152
- const { fields, filter, sort, offset, limit } = options;
153
- const result = await collection.repository.find({ fields, filter, sort, offset: offset ?? 0, limit });
180
+ const { fields, appends, filter, sort, offset, limit } = options;
181
+ const result = await collection.repository.find({ fields, appends, filter, sort, offset: offset ?? 0, limit });
154
182
  const total = await collection.repository.count({ fields, filter });
155
183
  const records = result.map(
156
184
  (x) => fields.map((field) => {
157
- var _a2;
158
- const { name, type } = ((_a2 = collection.getField(field)) == null ? void 0 : _a2.options) || {};
159
- const value = serializeQueryFieldValue(x[field]);
185
+ const { name, type } = getQueryFieldOptions(collection, field) || {};
186
+ const value = serializeQueryFieldValue(getRecordFieldValue(x, field));
160
187
  return {
161
- name,
162
- type,
188
+ name: field.includes(".") ? field : name || field,
189
+ type: type || "unknown",
163
190
  value
164
191
  };
165
192
  })
@@ -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 { LLMProvider, LLMProviderOptions, EmbeddingProvider, EmbeddingProviderOptions } from '../llm-providers/provider';
9
+ import { LLMProvider, LLMProviderOptions, EmbeddingProvider, EmbeddingProviderOptions, ReasoningOptions } from '../llm-providers/provider';
10
10
  import PluginAIServer from '../plugin';
11
11
  import { ToolManager } from './tool-manager';
12
12
  export type LLMProviderMeta = {
@@ -25,6 +25,7 @@ export type LLMModelOptions = {
25
25
  llmService: string;
26
26
  model: string;
27
27
  webSearch?: boolean;
28
+ reasoning?: ReasoningOptions;
28
29
  };
29
30
  export type EnabledLLMModel = {
30
31
  label: string;
@@ -123,7 +123,7 @@ class AIManager {
123
123
  return (0, import_recommended_models.getRecommendedModels)(provider);
124
124
  }
125
125
  async getLLMService(options) {
126
- const { llmService, model, webSearch } = options ?? {};
126
+ const { llmService, model, webSearch, reasoning } = options ?? {};
127
127
  if (!llmService || !model) {
128
128
  throw new Error("LLM service not configured");
129
129
  }
@@ -134,6 +134,9 @@ class AIManager {
134
134
  if (webSearch === true) {
135
135
  modelOptions.builtIn = { webSearch: true };
136
136
  }
137
+ if (reasoning) {
138
+ modelOptions._reasoning = reasoning;
139
+ }
137
140
  const service = await this.plugin.db.getRepository("llmServices").findOne({
138
141
  filter: {
139
142
  name: llmService
@@ -0,0 +1,49 @@
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
+ import { Context } from '@nocobase/actions';
10
+ import { Transaction } from '@nocobase/database';
11
+ import { AIMessage } from '../types';
12
+ type RecordLike = Record<string, unknown> & {
13
+ get?: (key: string) => unknown;
14
+ };
15
+ export type NormalizedUsageMetadata = {
16
+ inputTokens: number;
17
+ outputTokens: number;
18
+ totalTokens: number;
19
+ cachedTokens: number;
20
+ reasoningTokens: number;
21
+ };
22
+ export type AIUsageEventValues = {
23
+ occurredAt: Date;
24
+ sessionId: string;
25
+ messageId: string;
26
+ userId?: unknown;
27
+ aiEmployeeUsername?: unknown;
28
+ from: string;
29
+ category: string;
30
+ eventType: 'llm_message';
31
+ role: string;
32
+ provider: string;
33
+ llmService?: string;
34
+ model: string;
35
+ inputTokens: number;
36
+ outputTokens: number;
37
+ totalTokens: number;
38
+ cachedTokens: number;
39
+ reasoningTokens: number;
40
+ toolCallCount: number;
41
+ autoToolCallCount: number;
42
+ status: 'success';
43
+ rawUsageMetadata: Record<string, unknown>;
44
+ rawResponseMetadata?: Record<string, unknown>;
45
+ };
46
+ export declare function normalizeUsageMetadata(usageMetadata: Record<string, unknown>): NormalizedUsageMetadata;
47
+ export declare function buildAIUsageEventValues(sessionId: string, message: AIMessage, conversation: RecordLike): AIUsageEventValues | null;
48
+ export declare function recordAIUsageEventsForMessages(ctx: Context, sessionId: string, messages: AIMessage[], transaction?: Transaction): Promise<void>;
49
+ export {};