@nocobase/plugin-ai 2.2.0-alpha.3 → 2.2.0-alpha.5

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 (411) hide show
  1. package/client-v2.d.ts +1 -0
  2. package/dist/ai/docs/nocobase/api/app/env.md +28 -1
  3. package/dist/ai/docs/nocobase/api/cli/config/delete.md +8 -6
  4. package/dist/ai/docs/nocobase/api/cli/config/get.md +8 -6
  5. package/dist/ai/docs/nocobase/api/cli/config/index.md +37 -26
  6. package/dist/ai/docs/nocobase/api/cli/config/set.md +14 -8
  7. package/dist/ai/docs/nocobase/file-manager/field-attachment.md +6 -0
  8. package/dist/ai/docs/nocobase/file-manager/file-preview/index.md +3 -12
  9. package/dist/ai/docs/nocobase/file-manager/storage/aliyun-oss.md +9 -0
  10. package/dist/ai/docs/nocobase/file-manager/storage/amazon-s3.md +9 -0
  11. package/dist/ai/docs/nocobase/file-manager/storage/index.md +23 -0
  12. package/dist/ai/docs/nocobase/file-manager/storage/local.md +9 -0
  13. package/dist/ai/docs/nocobase/file-manager/storage/migrate-to-s3-pro.md +269 -0
  14. package/dist/ai/docs/nocobase/file-manager/storage/tencent-cos.md +9 -0
  15. package/dist/ai/docs/nocobase/get-started/installation/docker-caddy.mdx +170 -0
  16. package/dist/ai/docs/nocobase/get-started/installation/docker-nginx.mdx +172 -0
  17. package/dist/ai/docs/nocobase/get-started/installation/env.md +14 -4
  18. package/dist/ai/docs/nocobase/interface-builder/blocks/data-blocks/comment.md +107 -0
  19. package/dist/ai/docs/nocobase/ops-management/version-control/index.md +1 -0
  20. package/dist/ai/docs/nocobase/plugins/@nocobase/plugin-block-comment/index.md +14 -0
  21. package/dist/ai/docs/nocobase/workflow/development/api.md +259 -77
  22. package/dist/ai/docs/nocobase/workflow/development/index.md +2 -1
  23. package/dist/ai/docs/nocobase/workflow/development/migration.md +319 -0
  24. package/dist/ai/docs/nocobase/workflow/development/node.md +84 -51
  25. package/dist/ai/docs/nocobase/workflow/development/trigger.md +122 -20
  26. package/dist/client/23.65ea8c37cd4b884b.js +10 -0
  27. package/dist/client/264.cc98933ef65608b6.js +10 -0
  28. package/dist/client/336.7a8a8853196ad779.js +11 -0
  29. package/dist/client/372.da38fe350bf841f4.js +10 -0
  30. package/dist/client/416.92b74ca47e4099c4.js +10 -0
  31. package/dist/client/446.d63c38d0309fe250.js +10 -0
  32. package/dist/client/525.203778500aca5d05.js +10 -0
  33. package/dist/client/663.680bcf6272a8504d.js +10 -0
  34. package/dist/client/681.399948c18d753667.js +10 -0
  35. package/dist/client/705.380279da896021fb.js +10 -0
  36. package/dist/client/ai-employees/1.x/selector/AIContextCollector.d.ts +1 -4
  37. package/dist/client/ai-employees/permissions/PermissionsTab.d.ts +21 -5
  38. package/dist/client/index.d.ts +15 -20
  39. package/dist/client/index.js +8 -8
  40. package/dist/client/workflow/nodes/employee/index.d.ts +2 -23
  41. package/dist/client/workflow/nodes/llm/index.d.ts +2 -52
  42. package/dist/client/workflow/triggers/ai-employee/index.d.ts +2 -83
  43. package/dist/client-v2/23.1bcb6986b40723d8.js +10 -0
  44. package/dist/client-v2/264.be92ff6a4d2612f1.js +10 -0
  45. package/dist/client-v2/336.e406470429e0670e.js +11 -0
  46. package/dist/client-v2/372.d76ea1ceed2be2a4.js +10 -0
  47. package/dist/client-v2/406.341be51205c674e0.js +10 -0
  48. package/dist/client-v2/416.0e1c2d9cde43b83d.js +10 -0
  49. package/dist/client-v2/446.073d450882db29fd.js +10 -0
  50. package/dist/client-v2/457.d72febb89e88fc00.js +10 -0
  51. package/dist/client-v2/663.342341f0b2b412d8.js +10 -0
  52. package/dist/client-v2/681.082f4f1c7b841983.js +10 -0
  53. package/dist/client-v2/705.1d10027ff8cfdf79.js +10 -0
  54. package/dist/{client/ai-employees/admin/AvatarSelect.d.ts → client-v2/ai-employees/AIEmployeeDropdown.d.ts} +8 -9
  55. package/dist/client-v2/ai-employees/AIEmployeeShortcut.d.ts +9 -2
  56. package/dist/{client → client-v2}/ai-employees/AddContextButton.d.ts +1 -1
  57. package/dist/{client → client-v2}/ai-employees/ai-coding/AICodingButton.d.ts +2 -1
  58. package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/Actions.d.ts +2 -4
  59. package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/AddLLMModal.d.ts +2 -4
  60. package/dist/client-v2/ai-employees/chatbox/components/Attachments.d.ts +27 -0
  61. package/dist/{client/ai-employees/permissions/Permissions.d.ts → client-v2/ai-employees/chatbox/components/ChatBox.d.ts} +2 -2
  62. package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/ChatBoxLayout.d.ts +1 -1
  63. package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/ContextItem.d.ts +1 -1
  64. package/dist/{client/ai-employees/admin/Employees.d.ts → client-v2/ai-employees/chatbox/components/DebugPanel.d.ts} +1 -1
  65. package/dist/{client/ai-employees/chatbox/markdown/Code.d.ts → client-v2/ai-employees/chatbox/components/Markdown.d.ts} +12 -5
  66. package/dist/{client/ai-employees/admin/ProfileSettings.d.ts → client-v2/ai-employees/chatbox/components/MessageContent.d.ts} +3 -2
  67. package/dist/client-v2/ai-employees/chatbox/components/MessageRenderers.d.ts +39 -0
  68. package/dist/{client/ai-employees/chatbox/generative-ui → client-v2/ai-employees/chatbox/components}/ToolCard.d.ts +7 -5
  69. package/dist/{client/ai-employees/admin/datasource/components/basic → client-v2/ai-employees/chatbox/components}/index.d.ts +5 -2
  70. package/dist/{client → client-v2}/ai-employees/chatbox/hooks/useChat.d.ts +21 -22
  71. package/dist/client-v2/ai-employees/chatbox/hooks/useChatBoxActions.d.ts +3 -2
  72. package/dist/{client → client-v2}/ai-employees/chatbox/hooks/useChatConversationActions.d.ts +2 -2
  73. package/dist/{client → client-v2}/ai-employees/chatbox/hooks/useChatMessageActions.d.ts +8 -4
  74. package/dist/{client → client-v2}/ai-employees/chatbox/hooks/useToolCallActions.d.ts +1 -1
  75. package/dist/client-v2/ai-employees/chatbox/hooks/useUploadFiles.d.ts +46 -0
  76. package/dist/{client → client-v2}/ai-employees/chatbox/hooks/useWorkflowTasks.d.ts +1 -1
  77. package/dist/{client → client-v2}/ai-employees/chatbox/model.d.ts +9 -2
  78. package/dist/client-v2/ai-employees/chatbox/roles.d.ts +162 -0
  79. package/dist/client-v2/ai-employees/chatbox/stores/chat-box.d.ts +1 -49
  80. package/dist/client-v2/ai-employees/chatbox/stores/chat-conversations.d.ts +2 -19
  81. package/dist/client-v2/ai-employees/chatbox/stores/chat-messages.d.ts +1 -46
  82. package/dist/{client → client-v2}/ai-employees/chatbox/stores/chat-tool-call.d.ts +1 -15
  83. package/dist/client-v2/ai-employees/chatbox/stores/chat-tools.d.ts +30 -0
  84. package/dist/client-v2/ai-employees/chatbox/stores/create-selectors.d.ts +31 -3
  85. package/dist/{client/ai-employees/chatbox/conversations/common.d.ts → client-v2/ai-employees/chatbox/stores/workflow-tasks.d.ts} +21 -4
  86. package/dist/{client → client-v2}/ai-employees/chatbox/utils.d.ts +21 -6
  87. package/dist/{client/ai-employees/data-visualization/context.d.ts → client-v2/ai-employees/context/chart-config.d.ts} +1 -1
  88. package/dist/{client → client-v2}/ai-employees/context/code-editor.d.ts +1 -1
  89. package/dist/{client → client-v2}/ai-employees/context/datasource.d.ts +1 -1
  90. package/dist/{client → client-v2}/ai-employees/context/flow-models.d.ts +1 -1
  91. package/dist/{client/ai-employees/admin/datasource/components/DatasourceSettingDetail.d.ts → client-v2/ai-employees/data-modeling/setup.d.ts} +6 -5
  92. package/dist/{client → client-v2}/ai-employees/datasource/DatasourceSelector.d.ts +6 -2
  93. package/dist/{client/ai-employees/admin/datasource/flow-models/DatasourceSettingModel.d.ts → client-v2/ai-employees/flow/index.d.ts} +4 -6
  94. package/dist/{client → client-v2}/ai-employees/form-filler/tools/index.d.ts +1 -1
  95. package/dist/{client → client-v2}/ai-employees/stores/ai-selection.d.ts +4 -4
  96. package/dist/{client → client-v2}/ai-employees/stores/dialog-controller.d.ts +4 -4
  97. package/dist/{client/ai-employees/business-report/ui → client-v2/ai-employees/tools}/BusinessReportCard.d.ts +2 -2
  98. package/dist/{client/ai-employees/business-report/ui → client-v2/ai-employees/tools}/BusinessReportModal.d.ts +2 -2
  99. package/dist/{client/ai-employees/1.x/selector/withAISelectable.d.ts → client-v2/ai-employees/tools/ChartGeneratorCard.d.ts} +5 -4
  100. package/dist/{client/ai-employees/ai-coding/ui → client-v2/ai-employees/tools}/CodeToolCard.d.ts +1 -1
  101. package/dist/{client/ai-employees/data-modeling/ui → client-v2/ai-employees/tools}/DataModelingCard.d.ts +3 -5
  102. package/dist/{client/ai-employees/data-modeling/ui → client-v2/ai-employees/tools}/DataModelingModal.d.ts +4 -6
  103. package/dist/{client/ai-employees/sub-agents/ui → client-v2/ai-employees/tools}/SubAgentDispatchCard.d.ts +4 -9
  104. package/dist/{client/ai-employees/AISettingsProvider.d.ts → client-v2/ai-employees/tools/SuggestionsOptionsCard.d.ts} +6 -8
  105. package/dist/{client/ai-employees/workflow-tasks/ui → client-v2/ai-employees/tools}/WorkflowTaskOutputCard.d.ts +7 -2
  106. package/dist/{client/ai-employees/ai-coding/tools/context-tools.d.ts → client-v2/ai-employees/tools/ai-coding.d.ts} +3 -1
  107. package/dist/client-v2/ai-employees/tools/business-report-utils.d.ts +45 -0
  108. package/dist/{client/ai-employees/data-modeling/ui → client-v2/ai-employees/tools/data-modeling}/CollectionNode.d.ts +2 -3
  109. package/dist/{client/ai-employees/data-modeling/ui → client-v2/ai-employees/tools/data-modeling}/Diagram.d.ts +1 -1
  110. package/dist/{client/ai-employees/data-modeling/ui → client-v2/ai-employees/tools/data-modeling}/Table.d.ts +2 -2
  111. package/dist/client-v2/ai-employees/tools/data-modeling/legacy-template.d.ts +13 -0
  112. package/dist/client-v2/ai-employees/tools/data-modeling/runtime.d.ts +15 -0
  113. package/dist/{client/ai-employees → client-v2/ai-employees/tools}/data-modeling/types.d.ts +27 -4
  114. package/dist/client-v2/ai-employees/tools/data-modeling/useFieldInterfaceOptions.d.ts +150 -0
  115. package/dist/{client/ai-employees/data-visualization/tools/index.d.ts → client-v2/ai-employees/tools/data-visualization.d.ts} +1 -1
  116. package/dist/client-v2/ai-employees/tools/index.d.ts +32 -0
  117. package/dist/client-v2/ai-employees/types.d.ts +101 -7
  118. package/dist/client-v2/components/RemoteSelect.d.ts +43 -0
  119. package/dist/{client → client-v2}/debug-logger.d.ts +2 -2
  120. package/dist/client-v2/f0053e745af0ad03.svg +50 -0
  121. package/dist/client-v2/index.d.ts +9 -8
  122. package/dist/client-v2/index.js +37 -1
  123. package/dist/client-v2/llm-providers/forms.d.ts +42 -0
  124. package/dist/client-v2/llm-providers/index.d.ts +23 -0
  125. package/dist/{client/ai-employees/ai-coding/tools/index.d.ts → client-v2/llm-services/utils.d.ts} +5 -3
  126. package/dist/client-v2/locale.d.ts +14 -0
  127. package/dist/{client → client-v2}/manager/ai-manager.d.ts +4 -5
  128. package/dist/client-v2/models/ai-employees/AIEmployeeActionModel.d.ts +33 -0
  129. package/dist/client-v2/models/ai-employees/AIEmployeeShortcutModel.d.ts +44 -0
  130. package/dist/client-v2/pages/AdminSettingsPage.d.ts +24 -0
  131. package/dist/client-v2/pages/DatasourceSettingsPage.d.ts +62 -0
  132. package/dist/client-v2/pages/EmployeesPage.d.ts +53 -0
  133. package/dist/client-v2/pages/LLMServicesPage.d.ts +75 -0
  134. package/dist/client-v2/pages/MCPSettingsPage.d.ts +73 -0
  135. package/dist/client-v2/pages/drawerWidth.d.ts +10 -0
  136. package/dist/client-v2/pages/permissions/Permissions.d.ts +67 -0
  137. package/dist/client-v2/pages/permissions/PermissionsTab.d.ts +12 -0
  138. package/dist/client-v2/pages/useUnsavedChangesBeforeClose.d.ts +29 -0
  139. package/dist/client-v2/plugin.d.ts +32 -0
  140. package/dist/client-v2/repositories/AIConfigRepository.d.ts +3 -23
  141. package/dist/client-v2/workflow/components/FormValueRegistry.d.ts +12 -0
  142. package/dist/{client/components/ListCollapse.d.ts → client-v2/workflow/components/WorkflowListCollapse.d.ts} +4 -4
  143. package/dist/client-v2/workflow/constants.d.ts +26 -0
  144. package/dist/client-v2/workflow/nodes/employee/components/AIEmployeeFieldset.d.ts +11 -0
  145. package/dist/{client/ai-employees/common/CodeHighlight.d.ts → client-v2/workflow/nodes/employee/components/AIEmployeeSelect.d.ts} +5 -6
  146. package/dist/{client/ai-employees/ContextAwareTooltip.d.ts → client-v2/workflow/nodes/employee/components/Assignees.d.ts} +2 -1
  147. package/dist/client-v2/workflow/nodes/employee/components/FeedbackSettings.d.ts +17 -0
  148. package/dist/client-v2/workflow/nodes/employee/components/FileInputs.d.ts +11 -0
  149. package/dist/{client/ai-employees/AIEmployeesProvider.d.ts → client-v2/workflow/nodes/employee/components/MessageInputs.d.ts} +2 -3
  150. package/dist/client-v2/workflow/nodes/employee/components/ModelOptions.d.ts +17 -0
  151. package/dist/{client/ai-employees/admin/datasource/components/basic/CollectionCascader.d.ts → client-v2/workflow/nodes/employee/components/SkillSettings.d.ts} +6 -3
  152. package/dist/client-v2/workflow/nodes/employee/components/StructuredOutput.d.ts +11 -0
  153. package/dist/client-v2/workflow/nodes/employee/components/UserInput.d.ts +18 -0
  154. package/dist/client-v2/workflow/nodes/employee/components/WebSearchOptions.d.ts +16 -0
  155. package/dist/client-v2/workflow/nodes/employee/index.d.ts +23 -0
  156. package/dist/{client/ai-employees/AIEmployeeListItem.d.ts → client-v2/workflow/nodes/llm/components/LLMFieldset.d.ts} +3 -5
  157. package/dist/{client/admin-settings/AdminSettings.d.ts → client-v2/workflow/nodes/llm/components/Messages.d.ts} +2 -1
  158. package/dist/client-v2/workflow/nodes/llm/components/StructuredOutput.d.ts +11 -0
  159. package/dist/client-v2/workflow/nodes/llm/index.d.ts +30 -0
  160. package/dist/{client/ai-employees/1.x/selector/BlockSelector.d.ts → client-v2/workflow/register.d.ts} +2 -6
  161. package/dist/client-v2/workflow/triggers/ai-employee/AIEmployeeTriggerConfig.d.ts +11 -0
  162. package/dist/client-v2/workflow/triggers/ai-employee/Parameters.d.ts +11 -0
  163. package/dist/client-v2/workflow/triggers/ai-employee/index.d.ts +25 -0
  164. package/dist/client-v2/workflow/types.d.ts +128 -0
  165. package/dist/externalVersion.js +20 -25
  166. package/dist/locale/en-US.json +42 -1
  167. package/dist/locale/zh-CN.json +42 -1
  168. package/dist/node_modules/@langchain/mistralai/LICENSE +21 -0
  169. package/dist/node_modules/@langchain/mistralai/dist/_virtual/rolldown_runtime.cjs +25 -0
  170. package/dist/node_modules/@langchain/mistralai/dist/chat_models.cjs +859 -0
  171. package/dist/node_modules/@langchain/mistralai/dist/chat_models.d.cts +541 -0
  172. package/dist/node_modules/@langchain/mistralai/dist/chat_models.d.ts +541 -0
  173. package/dist/node_modules/@langchain/mistralai/dist/chat_models.js +857 -0
  174. package/dist/node_modules/@langchain/mistralai/dist/embeddings.cjs +140 -0
  175. package/dist/node_modules/@langchain/mistralai/dist/embeddings.d.cts +116 -0
  176. package/dist/node_modules/@langchain/mistralai/dist/embeddings.d.ts +116 -0
  177. package/dist/node_modules/@langchain/mistralai/dist/embeddings.js +139 -0
  178. package/dist/node_modules/@langchain/mistralai/dist/index.cjs +21 -0
  179. package/dist/node_modules/@langchain/mistralai/dist/index.d.cts +4 -0
  180. package/dist/node_modules/@langchain/mistralai/dist/index.d.ts +4 -0
  181. package/dist/node_modules/@langchain/mistralai/dist/index.js +5 -0
  182. package/dist/node_modules/@langchain/mistralai/dist/llms.cjs +275 -0
  183. package/dist/node_modules/@langchain/mistralai/dist/llms.d.cts +147 -0
  184. package/dist/node_modules/@langchain/mistralai/dist/llms.d.ts +147 -0
  185. package/dist/node_modules/@langchain/mistralai/dist/llms.js +274 -0
  186. package/dist/node_modules/@langchain/mistralai/dist/utils.cjs +61 -0
  187. package/dist/node_modules/@langchain/mistralai/dist/utils.js +59 -0
  188. package/dist/node_modules/@langchain/mistralai/package.json +1 -0
  189. package/dist/node_modules/@langchain/xai/dist/index.cjs +2 -2
  190. package/dist/node_modules/@langchain/xai/package.json +1 -1
  191. package/dist/node_modules/fs-extra/package.json +1 -1
  192. package/dist/node_modules/jsonrepair/package.json +1 -1
  193. package/dist/node_modules/just-bash/package.json +1 -1
  194. package/dist/node_modules/nodejs-snowflake/package.json +1 -1
  195. package/dist/node_modules/openai/package.json +1 -1
  196. package/dist/node_modules/zod/package.json +1 -1
  197. package/dist/server/ai-employees/ai-employee.js +12 -5
  198. package/dist/server/ai-employees/checkpoints/cleaner.d.ts +2 -0
  199. package/dist/server/ai-employees/checkpoints/cleaner.js +11 -1
  200. package/dist/server/ai-employees/middleware/conversation.d.ts +2 -0
  201. package/dist/server/ai-employees/middleware/conversation.js +2 -1
  202. package/dist/server/ai-employees/utils.d.ts +3 -1
  203. package/dist/server/ai-employees/utils.js +2 -0
  204. package/dist/server/llm-providers/mistral.d.ts +62 -0
  205. package/dist/server/llm-providers/mistral.js +265 -0
  206. package/dist/server/llm-providers/provider.d.ts +6 -2
  207. package/dist/server/llm-providers/provider.js +27 -14
  208. package/dist/server/plugin.js +2 -0
  209. package/dist/server/workflow/nodes/employee/index.js +92 -46
  210. package/dist/server/workflow/nodes/employee/tools.js +8 -1
  211. package/package.json +6 -5
  212. package/dist/client/119.c6bf8c6433167d81.js +0 -10
  213. package/dist/client/170.d98eacdc00d9d527.js +0 -10
  214. package/dist/client/228.b4b709f93b86b6b9.js +0 -10
  215. package/dist/client/280.003b9e9788599244.js +0 -10
  216. package/dist/client/290.0f7f441d8a94f03c.js +0 -10
  217. package/dist/client/331.d547c95410476a69.js +0 -10
  218. package/dist/client/406.15c09d98faa2ccf1.js +0 -10
  219. package/dist/client/428.5eb4f53ddbb6a3b8.js +0 -10
  220. package/dist/client/462.d172d0fe91519e35.js +0 -10
  221. package/dist/client/486.dcac8f3fcec19c33.js +0 -10
  222. package/dist/client/502.2b4a51e0a8122e52.js +0 -10
  223. package/dist/client/525.33a9c8ec28be4ec4.js +0 -10
  224. package/dist/client/559.a0f2f1cc2be3c039.js +0 -10
  225. package/dist/client/561.7ec804ef39ec7dcd.js +0 -10
  226. package/dist/client/580.35ba54ff91b7fe6d.js +0 -10
  227. package/dist/client/597.b0d64948d74cf6cb.js +0 -10
  228. package/dist/client/604.89c674f35b52b4ef.js +0 -10
  229. package/dist/client/614.aa766080f6b99aab.js +0 -10
  230. package/dist/client/646.d4483b4ff23da0a0.js +0 -10
  231. package/dist/client/687.224e569a99cae4bb.js +0 -10
  232. package/dist/client/699.57c0a1acb723202a.js +0 -10
  233. package/dist/client/711.92cd94681fde7e05.js +0 -10
  234. package/dist/client/758.a9741e81911e53c3.js +0 -10
  235. package/dist/client/768.5177bff46ae71a5b.js +0 -10
  236. package/dist/client/792.abb57765453bcbcc.js +0 -10
  237. package/dist/client/820.f72ef2462b61d812.js +0 -10
  238. package/dist/client/832.0cf69e3f43c320b2.js +0 -10
  239. package/dist/client/927.d95c74ebb8fd51c9.js +0 -10
  240. package/dist/client/ai-employees/1.x/selector/AISelectorProvider.d.ts +0 -33
  241. package/dist/client/ai-employees/ProfileCard.d.ts +0 -15
  242. package/dist/client/ai-employees/admin/ChatSettings.d.ts +0 -10
  243. package/dist/client/ai-employees/admin/DataSourceSettings.d.ts +0 -10
  244. package/dist/client/ai-employees/admin/EnableSwitch.d.ts +0 -10
  245. package/dist/client/ai-employees/admin/InputsFormSettings.d.ts +0 -10
  246. package/dist/client/ai-employees/admin/KnowledgeBaseSettings.d.ts +0 -10
  247. package/dist/client/ai-employees/admin/ModelSettings.d.ts +0 -10
  248. package/dist/client/ai-employees/admin/SkillSettings.d.ts +0 -19
  249. package/dist/client/ai-employees/admin/SystemPrompt.d.ts +0 -10
  250. package/dist/client/ai-employees/admin/Templates.d.ts +0 -10
  251. package/dist/client/ai-employees/admin/ToolsSettings.d.ts +0 -17
  252. package/dist/client/ai-employees/admin/datasource/components/DatasourceSettingForm.d.ts +0 -10
  253. package/dist/client/ai-employees/admin/datasource/components/DatasourceSettingGrid.d.ts +0 -10
  254. package/dist/client/ai-employees/admin/datasource/components/basic/FieldsTransfer.d.ts +0 -17
  255. package/dist/client/ai-employees/admin/datasource/components/form-steps/CollectionSetting.d.ts +0 -17
  256. package/dist/client/ai-employees/admin/datasource/components/form-steps/FieldsSetting.d.ts +0 -15
  257. package/dist/client/ai-employees/admin/datasource/components/form-steps/FilterSetting.d.ts +0 -17
  258. package/dist/client/ai-employees/admin/datasource/components/form-steps/Preview.d.ts +0 -13
  259. package/dist/client/ai-employees/admin/datasource/components/form-steps/SortSetting.d.ts +0 -15
  260. package/dist/client/ai-employees/admin/datasource/components/form-steps/index.d.ts +0 -13
  261. package/dist/client/ai-employees/admin/datasource/components/index.d.ts +0 -9
  262. package/dist/client/ai-employees/admin/datasource/context.d.ts +0 -17
  263. package/dist/client/ai-employees/admin/datasource/flow-models/index.d.ts +0 -9
  264. package/dist/client/ai-employees/admin/datasource/index.d.ts +0 -10
  265. package/dist/client/ai-employees/admin/hooks.d.ts +0 -39
  266. package/dist/client/ai-employees/admin/mcp/MCPSettings.d.ts +0 -10
  267. package/dist/client/ai-employees/admin/mcp/MCPToolsList.d.ts +0 -19
  268. package/dist/client/ai-employees/admin/mcp/context.d.ts +0 -15
  269. package/dist/client/ai-employees/admin/mcp/schemas.d.ts +0 -1314
  270. package/dist/client/ai-employees/ai-coding/CodeHistory.d.ts +0 -10
  271. package/dist/client/ai-employees/ai-coding/markdown/Code.d.ts +0 -16
  272. package/dist/client/ai-employees/avatars.d.ts +0 -9
  273. package/dist/client/ai-employees/built-in/utils.d.ts +0 -15
  274. package/dist/client/ai-employees/business-report/tools/index.d.ts +0 -10
  275. package/dist/client/ai-employees/business-report/ui/report-utils.d.ts +0 -38
  276. package/dist/client/ai-employees/chart-generator/tools/index.d.ts +0 -10
  277. package/dist/client/ai-employees/chart-generator/ui/ECharts.d.ts +0 -13
  278. package/dist/client/ai-employees/chatbox/AIThinking.d.ts +0 -12
  279. package/dist/client/ai-employees/chatbox/Attachment.d.ts +0 -14
  280. package/dist/client/ai-employees/chatbox/AttachmentsHeader.d.ts +0 -10
  281. package/dist/client/ai-employees/chatbox/ChatBox.d.ts +0 -12
  282. package/dist/client/ai-employees/chatbox/ContextItemsHeader.d.ts +0 -10
  283. package/dist/client/ai-employees/chatbox/DebugPanel.d.ts +0 -16
  284. package/dist/client/ai-employees/chatbox/EditMessageHeader.d.ts +0 -10
  285. package/dist/client/ai-employees/chatbox/HintMessageHeader.d.ts +0 -10
  286. package/dist/client/ai-employees/chatbox/MessageRenderer.d.ts +0 -33
  287. package/dist/client/ai-employees/chatbox/SenderFooter.d.ts +0 -13
  288. package/dist/client/ai-employees/chatbox/SenderHeader.d.ts +0 -10
  289. package/dist/client/ai-employees/chatbox/SenderPrefix.d.ts +0 -10
  290. package/dist/client/ai-employees/chatbox/Upload.d.ts +0 -12
  291. package/dist/client/ai-employees/chatbox/VirtualList.d.ts +0 -28
  292. package/dist/client/ai-employees/chatbox/conversations/ConversationsList.d.ts +0 -13
  293. package/dist/client/ai-employees/chatbox/conversations/WorkflowTasksList.d.ts +0 -13
  294. package/dist/client/ai-employees/chatbox/conversations/index.d.ts +0 -9
  295. package/dist/client/ai-employees/chatbox/generative-ui/DefaultToolCard.d.ts +0 -16
  296. package/dist/client/ai-employees/chatbox/hooks/useChatBoxActions.d.ts +0 -18
  297. package/dist/client/ai-employees/chatbox/hooks/useUploadFiles.d.ts +0 -12
  298. package/dist/client/ai-employees/chatbox/markdown/ECharts.d.ts +0 -10
  299. package/dist/client/ai-employees/chatbox/markdown/Form.d.ts +0 -10
  300. package/dist/client/ai-employees/chatbox/markdown/Generating.d.ts +0 -10
  301. package/dist/client/ai-employees/chatbox/markdown/Markdown.d.ts +0 -13
  302. package/dist/client/ai-employees/chatbox/roles.d.ts +0 -32
  303. package/dist/client/ai-employees/chatbox/stores/chat-box.d.ts +0 -9
  304. package/dist/client/ai-employees/chatbox/stores/chat-conversations.d.ts +0 -9
  305. package/dist/client/ai-employees/chatbox/stores/chat-messages.d.ts +0 -9
  306. package/dist/client/ai-employees/chatbox/stores/chat-tools.d.ts +0 -51
  307. package/dist/client/ai-employees/chatbox/stores/create-selectors.d.ts +0 -18
  308. package/dist/client/ai-employees/chatbox/stores/workflow-tasks.d.ts +0 -45
  309. package/dist/client/ai-employees/context/classic-pages.d.ts +0 -10
  310. package/dist/client/ai-employees/data-modeling/Table.d.ts +0 -12
  311. package/dist/client/ai-employees/data-modeling/setup.d.ts +0 -10
  312. package/dist/client/ai-employees/data-modeling/tools/index.d.ts +0 -10
  313. package/dist/client/ai-employees/data-modeling/ui/useFieldInterfaceOptions.d.ts +0 -14
  314. package/dist/client/ai-employees/datasource/DatasourceList.d.ts +0 -17
  315. package/dist/client/ai-employees/datasource/index.d.ts +0 -9
  316. package/dist/client/ai-employees/flow/events/index.d.ts +0 -9
  317. package/dist/client/ai-employees/flow/index.d.ts +0 -36
  318. package/dist/client/ai-employees/flow/models/AIEmployeeActionModel.d.ts +0 -18
  319. package/dist/client/ai-employees/flow/models/AIEmployeeShortcutModel.d.ts +0 -30
  320. package/dist/client/ai-employees/shortcuts/ShortcutList.d.ts +0 -10
  321. package/dist/client/ai-employees/shortcuts/useShortcuts.d.ts +0 -13
  322. package/dist/client/ai-employees/stores/context-aware.d.ts +0 -19
  323. package/dist/client/ai-employees/sub-agents/tools/index.d.ts +0 -10
  324. package/dist/client/ai-employees/suggestions/tools/index.d.ts +0 -10
  325. package/dist/client/ai-employees/suggestions/ui/SuggestionsOptions.d.ts +0 -13
  326. package/dist/client/ai-employees/types.d.ts +0 -259
  327. package/dist/client/ai-employees/workflow-tasks/tools/index.d.ts +0 -10
  328. package/dist/client/chat-settings/Messages.d.ts +0 -11
  329. package/dist/client/chat-settings/StructuredOutput.d.ts +0 -11
  330. package/dist/client/components/skill-settings.d.ts +0 -22
  331. package/dist/client/features/components.d.ts +0 -9
  332. package/dist/client/features/feature-manager.d.ts +0 -9
  333. package/dist/client/features/index.d.ts +0 -9
  334. package/dist/client/features/vector-database-provider.d.ts +0 -9
  335. package/dist/client/features/vector-store-provider.d.ts +0 -9
  336. package/dist/client/llm-providers/anthropic/ModelSettings.d.ts +0 -10
  337. package/dist/client/llm-providers/anthropic/ProviderSettings.d.ts +0 -10
  338. package/dist/client/llm-providers/anthropic/index.d.ts +0 -10
  339. package/dist/client/llm-providers/components/Chat.d.ts +0 -10
  340. package/dist/client/llm-providers/components/ModelSelect.d.ts +0 -10
  341. package/dist/client/llm-providers/dashscope/ModelSettings.d.ts +0 -10
  342. package/dist/client/llm-providers/dashscope/ProviderSettings.d.ts +0 -10
  343. package/dist/client/llm-providers/dashscope/index.d.ts +0 -10
  344. package/dist/client/llm-providers/deepseek/ModelSettings.d.ts +0 -10
  345. package/dist/client/llm-providers/deepseek/index.d.ts +0 -10
  346. package/dist/client/llm-providers/google-genai/MessageRenderer.d.ts +0 -13
  347. package/dist/client/llm-providers/google-genai/ModelSettings.d.ts +0 -10
  348. package/dist/client/llm-providers/google-genai/ProviderSettings.d.ts +0 -10
  349. package/dist/client/llm-providers/google-genai/index.d.ts +0 -10
  350. package/dist/client/llm-providers/kimi/ModelSettings.d.ts +0 -10
  351. package/dist/client/llm-providers/kimi/index.d.ts +0 -10
  352. package/dist/client/llm-providers/mimo/ModelSettings.d.ts +0 -10
  353. package/dist/client/llm-providers/mimo/index.d.ts +0 -10
  354. package/dist/client/llm-providers/ollama/ModelSettings.d.ts +0 -10
  355. package/dist/client/llm-providers/ollama/ProviderSettings.d.ts +0 -10
  356. package/dist/client/llm-providers/ollama/index.d.ts +0 -10
  357. package/dist/client/llm-providers/openai/completions/ModelSettings.d.ts +0 -10
  358. package/dist/client/llm-providers/openai/completions/index.d.ts +0 -10
  359. package/dist/client/llm-providers/openai/components/ProviderSettings.d.ts +0 -10
  360. package/dist/client/llm-providers/openai/responses/ModelSettings.d.ts +0 -10
  361. package/dist/client/llm-providers/openai/responses/index.d.ts +0 -10
  362. package/dist/client/llm-providers/tongyi/ModelSettings.d.ts +0 -10
  363. package/dist/client/llm-providers/tongyi/ProviderSettings.d.ts +0 -10
  364. package/dist/client/llm-providers/tongyi/index.d.ts +0 -10
  365. package/dist/client/llm-providers/xai/ModelSettings.d.ts +0 -10
  366. package/dist/client/llm-providers/xai/index.d.ts +0 -10
  367. package/dist/client/llm-services/LLMServices.d.ts +0 -13
  368. package/dist/client/llm-services/component/DefaultModelSelect.d.ts +0 -10
  369. package/dist/client/llm-services/component/EnabledModelsSelect.d.ts +0 -23
  370. package/dist/client/llm-services/component/LLMTestFlight.d.ts +0 -10
  371. package/dist/client/llm-services/component/ModelOptionsSettings.d.ts +0 -10
  372. package/dist/client/llm-services/component/UnifiedModelSettings.d.ts +0 -10
  373. package/dist/client/llm-services/hooks/useLLMServiceCatalog.d.ts +0 -18
  374. package/dist/client/llm-services/llm-providers.d.ts +0 -27
  375. package/dist/client/llm-services/utils.d.ts +0 -30
  376. package/dist/client/manager/ai-feature-manager.d.ts +0 -9
  377. package/dist/client/repositories/AIConfigRepository.d.ts +0 -60
  378. package/dist/client/repositories/hooks/useAIConfigRepository.d.ts +0 -10
  379. package/dist/client/schemas/llms.d.ts +0 -347
  380. package/dist/client/workflow/nodes/employee/components/AIEmployeeSelect.d.ts +0 -10
  381. package/dist/client/workflow/nodes/employee/components/assigness.d.ts +0 -11
  382. package/dist/client/workflow/nodes/employee/components/file-inputs.d.ts +0 -10
  383. package/dist/client/workflow/nodes/employee/components/message-inputs.d.ts +0 -12
  384. package/dist/client/workflow/nodes/employee/components/model-options.d.ts +0 -10
  385. package/dist/client/workflow/nodes/employee/components/structured-output.d.ts +0 -10
  386. package/dist/client/workflow/nodes/employee/components/users-select.d.ts +0 -15
  387. package/dist/client/workflow/nodes/employee/components/web-search-options.d.ts +0 -10
  388. package/dist/client/workflow/nodes/employee/configuration.d.ts +0 -12
  389. package/dist/client/workflow/nodes/employee/flow-models/feedback.d.ts +0 -14
  390. package/dist/client/workflow/nodes/employee/flow-models/task.d.ts +0 -13
  391. package/dist/client/workflow/nodes/llm/ModelSettings.d.ts +0 -11
  392. package/dist/client/workflow/triggers/ai-employee/Parameters.d.ts +0 -13
  393. /package/dist/{client → client-v2}/ai-employees/AISelection.d.ts +0 -0
  394. /package/dist/{client → client-v2}/ai-employees/AISelectionControl.d.ts +0 -0
  395. /package/dist/{client → client-v2}/ai-employees/ai-coding/prompts.d.ts +0 -0
  396. /package/dist/{client → client-v2}/ai-employees/ai-coding/setup.d.ts +0 -0
  397. /package/dist/{client/ai-employees/chatbox/AIEmployeeSwitch.d.ts → client-v2/ai-employees/chatbox/components/AIEmployeeSwitcher.d.ts} +0 -0
  398. /package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/ChatButton.d.ts +0 -0
  399. /package/dist/{client/ai-employees/chatbox/conversations → client-v2/ai-employees/chatbox/components}/Conversations.d.ts +0 -0
  400. /package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/Messages.d.ts +0 -0
  401. /package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/ModelSwitcher.d.ts +0 -0
  402. /package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/SearchSwitch.d.ts +0 -0
  403. /package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/Sender.d.ts +0 -0
  404. /package/dist/{client/ai-employees/chatbox/generative-ui → client-v2/ai-employees/chatbox/components}/ToolModal.d.ts +0 -0
  405. /package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/UserPrompt.d.ts +0 -0
  406. /package/dist/{client → client-v2}/ai-employees/chatbox/hooks/useChatBoxEffect.d.ts +0 -0
  407. /package/dist/{client → client-v2}/ai-employees/chatbox/hooks/useLoadMoreObserver.d.ts +0 -0
  408. /package/dist/client-v2/ai-employees/{chatbox/stores → stores}/global-store.d.ts +0 -0
  409. /package/dist/{client/ai-employees/flow/models → client-v2/models/ai-employees}/AIEmployeeShortcutListModel.d.ts +0 -0
  410. /package/dist/{client/ai-employees/flow/models → client-v2/models/ai-employees}/index.d.ts +0 -0
  411. /package/dist/{client/ai-employees/flow/events/ai-context-selection.d.ts → client-v2/workflow/components/index.d.ts} +0 -0
@@ -0,0 +1,265 @@
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 __defProp = Object.defineProperty;
11
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
12
+ var __getOwnPropNames = Object.getOwnPropertyNames;
13
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
14
+ var __export = (target, all) => {
15
+ for (var name in all)
16
+ __defProp(target, name, { get: all[name], enumerable: true });
17
+ };
18
+ var __copyProps = (to, from, except, desc) => {
19
+ if (from && typeof from === "object" || typeof from === "function") {
20
+ for (let key of __getOwnPropNames(from))
21
+ if (!__hasOwnProp.call(to, key) && key !== except)
22
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
23
+ }
24
+ return to;
25
+ };
26
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
27
+ var mistral_exports = {};
28
+ __export(mistral_exports, {
29
+ MistralEmbeddingProvider: () => MistralEmbeddingProvider,
30
+ MistralProvider: () => MistralProvider,
31
+ injectMistralReasoningEffort: () => injectMistralReasoningEffort,
32
+ mistralProviderOptions: () => mistralProviderOptions
33
+ });
34
+ module.exports = __toCommonJS(mistral_exports);
35
+ var import_mistralai = require("@langchain/mistralai");
36
+ var import_utils = require("@nocobase/utils");
37
+ var import_provider = require("./provider");
38
+ var import_ai_manager = require("../manager/ai-manager");
39
+ const MISTRAL_URL = "https://api.mistral.ai";
40
+ const MISTRAL_REASONING_EFFORT = "high";
41
+ const MISTRAL_REASONING_MODELS = /* @__PURE__ */ new Set(["mistral-small-latest", "mistral-medium-3-5"]);
42
+ function omitDisabledNumberOptions(options) {
43
+ for (const key of ["maxTokens", "maxRetries"]) {
44
+ if (options[key] === -1) {
45
+ delete options[key];
46
+ }
47
+ }
48
+ }
49
+ function extractTextChunks(content) {
50
+ if (typeof content === "string") {
51
+ return content;
52
+ }
53
+ if (!Array.isArray(content)) {
54
+ return "";
55
+ }
56
+ return content.filter((chunk) => chunk && typeof chunk === "object").filter((chunk) => chunk.type === "text" && typeof chunk.text === "string").map((chunk) => chunk.text).join("");
57
+ }
58
+ function extractThinkingChunks(content) {
59
+ if (!Array.isArray(content)) {
60
+ return "";
61
+ }
62
+ return content.filter((chunk) => chunk && typeof chunk === "object").filter((chunk) => chunk.type === "thinking" && Array.isArray(chunk.thinking)).map((chunk) => extractTextChunks(chunk.thinking)).join("");
63
+ }
64
+ const injectMistralReasoningEffort = async (request) => {
65
+ if (request.method !== "POST") {
66
+ return;
67
+ }
68
+ const contentType = request.headers.get("content-type") || "";
69
+ if (!contentType.toLowerCase().includes("application/json")) {
70
+ return;
71
+ }
72
+ const body = await request.clone().json().catch(() => null);
73
+ if (!body || typeof body !== "object") {
74
+ return;
75
+ }
76
+ if (typeof body.model !== "string" || !MISTRAL_REASONING_MODELS.has(body.model)) {
77
+ return;
78
+ }
79
+ const headers = new Headers(request.headers);
80
+ headers.delete("content-length");
81
+ return new Request(request, {
82
+ headers,
83
+ body: JSON.stringify({
84
+ ...body,
85
+ reasoning_effort: MISTRAL_REASONING_EFFORT
86
+ })
87
+ });
88
+ };
89
+ class MistralProvider extends import_provider.LLMProvider {
90
+ get baseURL() {
91
+ return MISTRAL_URL;
92
+ }
93
+ createModel() {
94
+ const { apiKey } = this.serviceOptions || {};
95
+ const { responseFormat, structuredOutput, ...modelOptions } = this.modelOptions || {};
96
+ omitDisabledNumberOptions(modelOptions);
97
+ const beforeRequestHooks = Array.isArray(modelOptions.beforeRequestHooks) ? [injectMistralReasoningEffort, ...modelOptions.beforeRequestHooks] : [injectMistralReasoningEffort];
98
+ return new import_mistralai.ChatMistralAI({
99
+ apiKey,
100
+ ...modelOptions,
101
+ beforeRequestHooks,
102
+ serverURL: this.getResolvedServerURL(),
103
+ verbose: false
104
+ });
105
+ }
106
+ async stream(context, options) {
107
+ return super.stream(context, this.withResponseFormat(options));
108
+ }
109
+ async invoke(context, options) {
110
+ return super.invoke(context, this.withResponseFormat(options));
111
+ }
112
+ async listModels() {
113
+ var _a, _b, _c, _d;
114
+ const options = this.serviceOptions || {};
115
+ const apiKey = options.apiKey;
116
+ let url;
117
+ try {
118
+ url = this.buildMistralRequestURL("v1/models");
119
+ } catch (e) {
120
+ return { code: 400, errMsg: e instanceof Error ? e.message : String(e) };
121
+ }
122
+ if (!apiKey) {
123
+ return { code: 400, errMsg: "API Key required" };
124
+ }
125
+ try {
126
+ const res = await (0, import_utils.serverRequest)({
127
+ method: "GET",
128
+ url,
129
+ headers: {
130
+ Authorization: `Bearer ${apiKey}`
131
+ }
132
+ });
133
+ return { models: (_a = res == null ? void 0 : res.data) == null ? void 0 : _a.data };
134
+ } catch (e) {
135
+ const error = e;
136
+ const status = ((_b = error.response) == null ? void 0 : _b.status) || 500;
137
+ const data = (_c = error.response) == null ? void 0 : _c.data;
138
+ const errorMsg = (typeof data === "object" ? data.message : void 0) || (typeof data === "object" && typeof data.detail === "object" ? data.detail.message : void 0) || (typeof data === "object" && typeof data.detail === "string" ? data.detail : void 0) || (typeof data === "string" ? data : void 0) || ((_d = error.response) == null ? void 0 : _d.statusText) || error.message;
139
+ return { code: status, errMsg: errorMsg };
140
+ }
141
+ }
142
+ isApiSupportedAttachment(attachment) {
143
+ var _a;
144
+ return ((_a = attachment.mimetype) == null ? void 0 : _a.startsWith("image/")) ?? false;
145
+ }
146
+ reshapeAIMessage({ aiMessage, values }) {
147
+ const reasoning = extractThinkingChunks(aiMessage.content);
148
+ if (Array.isArray(aiMessage.content)) {
149
+ aiMessage.content = extractTextChunks(aiMessage.content);
150
+ }
151
+ if (!reasoning) {
152
+ return;
153
+ }
154
+ values.metadata.additional_kwargs = {
155
+ ...values.metadata.additional_kwargs ?? {},
156
+ reasoning_content: reasoning
157
+ };
158
+ }
159
+ parseResponseMessage(message) {
160
+ var _a, _b, _c, _d;
161
+ const result = super.parseResponseMessage(message);
162
+ if (["user", "tool"].includes(result == null ? void 0 : result.role)) {
163
+ return result;
164
+ }
165
+ const metadataReasoning = (_c = (_b = (_a = result == null ? void 0 : result.content) == null ? void 0 : _a.metadata) == null ? void 0 : _b.additional_kwargs) == null ? void 0 : _c.reasoning_content;
166
+ if (typeof metadataReasoning === "string" && metadataReasoning) {
167
+ result.content = {
168
+ ...result.content ?? {},
169
+ reasoning: {
170
+ status: "stop",
171
+ content: metadataReasoning
172
+ }
173
+ };
174
+ return result;
175
+ }
176
+ const rawContent = (_d = result == null ? void 0 : result.content) == null ? void 0 : _d.content;
177
+ const reasoning = extractThinkingChunks(rawContent);
178
+ if (reasoning) {
179
+ result.content = {
180
+ ...result.content ?? {},
181
+ content: extractTextChunks(rawContent),
182
+ reasoning: {
183
+ status: "stop",
184
+ content: reasoning
185
+ }
186
+ };
187
+ }
188
+ return result;
189
+ }
190
+ parseResponseChunk(chunk) {
191
+ if (Array.isArray(chunk)) {
192
+ return extractTextChunks(chunk);
193
+ }
194
+ return super.parseResponseChunk(chunk);
195
+ }
196
+ parseReasoningContent(chunk) {
197
+ const content = extractThinkingChunks(chunk == null ? void 0 : chunk.content);
198
+ if (!content) {
199
+ return null;
200
+ }
201
+ return {
202
+ status: "streaming",
203
+ content
204
+ };
205
+ }
206
+ withResponseFormat(options) {
207
+ var _a;
208
+ const responseFormat = (_a = this.modelOptions) == null ? void 0 : _a.responseFormat;
209
+ if (responseFormat !== "json_object") {
210
+ return options;
211
+ }
212
+ return {
213
+ ...options || {},
214
+ response_format: {
215
+ type: responseFormat
216
+ }
217
+ };
218
+ }
219
+ getResolvedServerURL() {
220
+ return this.getResolvedBaseURL().replace(/\/v1$/, "");
221
+ }
222
+ buildMistralRequestURL(pathname) {
223
+ const url = new URL(pathname.replace(/^\/+/, ""), `${this.getResolvedServerURL()}/`).toString();
224
+ (0, import_utils.checkUrlAgainstWhitelist)(url);
225
+ return url;
226
+ }
227
+ }
228
+ class MistralEmbeddingProvider extends import_provider.EmbeddingProvider {
229
+ getDefaultUrl() {
230
+ return MISTRAL_URL;
231
+ }
232
+ createEmbedding() {
233
+ return new import_mistralai.MistralAIEmbeddings({
234
+ apiKey: this.apiKey,
235
+ serverURL: this.baseURL.replace(/\/v1$/, ""),
236
+ model: this.model
237
+ });
238
+ }
239
+ }
240
+ const mistralProviderOptions = {
241
+ title: "Mistral AI",
242
+ supportedModel: [import_ai_manager.SupportedModel.LLM, import_ai_manager.SupportedModel.EMBEDDING],
243
+ models: {
244
+ [import_ai_manager.SupportedModel.LLM]: [
245
+ "mistral-large-latest",
246
+ "mistral-medium-latest",
247
+ "mistral-medium-3-5",
248
+ "mistral-small-latest",
249
+ "ministral-8b-latest",
250
+ "ministral-3b-latest",
251
+ "codestral-latest",
252
+ "pixtral-large-latest"
253
+ ],
254
+ [import_ai_manager.SupportedModel.EMBEDDING]: ["mistral-embed"]
255
+ },
256
+ provider: MistralProvider,
257
+ embedding: MistralEmbeddingProvider
258
+ };
259
+ // Annotate the CommonJS export names for ESM import in node:
260
+ 0 && (module.exports = {
261
+ MistralEmbeddingProvider,
262
+ MistralProvider,
263
+ injectMistralReasoningEffort,
264
+ mistralProviderOptions
265
+ });
@@ -10,9 +10,9 @@ import { BaseChatModel } from '@langchain/core/language_models/chat_models';
10
10
  import { Model } from '@nocobase/database';
11
11
  import { 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';
@@ -90,6 +90,10 @@ export declare abstract class LLMProvider {
90
90
  } | null;
91
91
  parseResponseMetadata(output: LLMResult): any;
92
92
  parseResponseError(err: any): any;
93
+ reshapeAIMessage(_options: {
94
+ aiMessage: AIMessage;
95
+ values: AIMessageInput;
96
+ }): void;
93
97
  protected get documentLoader(): CachedDocumentLoader;
94
98
  protected getResolvedBaseURL(): string;
95
99
  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
  }
@@ -319,18 +338,16 @@ ${parsed.text}
319
338
  parseResponseError(err) {
320
339
  return (err == null ? void 0 : err.message) ?? "Unexpected LLM service error";
321
340
  }
341
+ reshapeAIMessage(_options) {
342
+ }
322
343
  get documentLoader() {
323
344
  return this.aiPlugin.documentLoaders.cached;
324
345
  }
325
346
  getResolvedBaseURL() {
326
- var _a;
327
- const baseURL = ((_a = this.serviceOptions) == null ? void 0 : _a.baseURL) ?? this.baseURL;
347
+ const baseURL = getServiceBaseURL(this.serviceOptions) ?? this.baseURL;
328
348
  if (!baseURL) {
329
349
  throw new Error("baseURL is required");
330
350
  }
331
- if (typeof baseURL !== "string") {
332
- throw new Error("baseURL must be a string");
333
- }
334
351
  return normalizeBaseURL(baseURL);
335
352
  }
336
353
  buildRequestURL(pathname) {
@@ -361,14 +378,10 @@ class EmbeddingProvider {
361
378
  return apiKey;
362
379
  }
363
380
  get baseURL() {
364
- var _a;
365
- const baseURL = ((_a = this.serviceOptions) == null ? void 0 : _a.baseURL) ?? this.getDefaultUrl();
381
+ const baseURL = getServiceBaseURL(this.serviceOptions) ?? this.getDefaultUrl();
366
382
  if (!baseURL) {
367
383
  throw new Error("baseURL is required");
368
384
  }
369
- if (typeof baseURL !== "string") {
370
- throw new Error("baseURL must be a string");
371
- }
372
385
  return normalizeBaseURL(baseURL);
373
386
  }
374
387
  get model() {
@@ -74,6 +74,7 @@ var import_xai = require("./llm-providers/xai");
74
74
  var import_document_loader = require("./document-loader");
75
75
  var import_checkpoints = require("./ai-employees/checkpoints");
76
76
  var import_mimo = require("./llm-providers/mimo");
77
+ var import_mistral = require("./llm-providers/mistral");
77
78
  var import_sub_agents = require("./ai-employees/sub-agents");
78
79
  var import_employee = require("./workflow/nodes/employee");
79
80
  var import_ai_knowledge_base = require("./ai-employees/ai-knowledge-base");
@@ -180,6 +181,7 @@ class PluginAIServer extends import_server.Plugin {
180
181
  this.aiManager.registerLLMProvider("dashscope", import_dashscope.dashscopeProviderOptions);
181
182
  this.aiManager.registerLLMProvider("kimi", import_kimi.kimiProviderOptions);
182
183
  this.aiManager.registerLLMProvider("mimo", import_mimo.mimoProviderOptions);
184
+ this.aiManager.registerLLMProvider("mistral", import_mistral.mistralProviderOptions);
183
185
  this.aiManager.registerLLMProvider("ollama", import_ollama.ollamaProviderOptions);
184
186
  this.aiManager.registerLLMProvider("openai-completions", import_openai2.openaiCompletionsProviderOptions);
185
187
  this.aiManager.registerLLMProvider("kimi", import_kimi.kimiProviderOptions);
@@ -120,27 +120,29 @@ ${typeof message.system === "object" ? JSON.stringify(message.system) : message.
120
120
  });
121
121
  const plugin = this.workflow.app.pm.get("ai");
122
122
  const resolvedModel = await plugin.aiEmployeesManager.resolveModel(employee, model);
123
- const aiEmployee = new import_ai_employee.AIEmployee({
124
- ctx: {
125
- app: this.workflow.app,
126
- db: this.workflow.app.db,
127
- log: this.workflow.app.log,
128
- logger: this.workflow.app.log,
129
- state: { currentRoles },
130
- auth: {
131
- user: {
132
- id: ((_e = (_d = input == null ? void 0 : input.result) == null ? void 0 : _d.user) == null ? void 0 : _e.id) ?? userId
133
- }
134
- },
135
- action: {
136
- params: {
137
- values: {
138
- sessionId: conversation.sessionId,
139
- model: resolvedModel
140
- }
141
- }
123
+ const aiEmployeeContext = {
124
+ app: this.workflow.app,
125
+ db: this.workflow.app.db,
126
+ log: this.workflow.app.log,
127
+ logger: this.workflow.app.log,
128
+ state: { currentRoles },
129
+ auth: {
130
+ user: {
131
+ id: ((_e = (_d = input == null ? void 0 : input.result) == null ? void 0 : _d.user) == null ? void 0 : _e.id) ?? userId
142
132
  }
143
133
  },
134
+ action: {
135
+ params: {
136
+ values: {
137
+ sessionId: conversation.sessionId,
138
+ model: resolvedModel
139
+ }
140
+ }
141
+ }
142
+ };
143
+ const aiEmployeeActionValues = aiEmployeeContext.action.params.values;
144
+ const aiEmployee = new import_ai_employee.AIEmployee({
145
+ ctx: aiEmployeeContext,
144
146
  employee,
145
147
  sessionId: conversation.sessionId,
146
148
  systemMessage,
@@ -158,6 +160,7 @@ ${typeof message.system === "object" ? JSON.stringify(message.system) : message.
158
160
  }
159
161
  let result;
160
162
  let isToolInvoke = false;
163
+ let recoveredFromGraphRecursion = false;
161
164
  let retry = 0;
162
165
  do {
163
166
  const userMessages = [
@@ -170,36 +173,76 @@ ${typeof message.system === "object" ? JSON.stringify(message.system) : message.
170
173
  ...attachmentPart
171
174
  }
172
175
  ];
173
- if (retry > 0) {
174
- if (retry < 2) {
175
- abortHandle.throwIfAborted();
176
- const firstUserMessage = await this.workflow.db.getRepository("aiConversations.messages", conversation.sessionId).findOne({
177
- filter: {
178
- role: "user"
179
- },
180
- sort: ["messageId"]
181
- });
182
- const messageId = firstUserMessage == null ? void 0 : firstUserMessage.messageId;
183
- result = await aiEmployee.invoke({ messageId, userMessages, signal: abortHandle.signal });
184
- } else {
185
- result = await aiEmployee.invoke({
186
- signal: abortHandle.signal,
187
- userMessages: [
188
- {
189
- role: "user",
190
- content: {
191
- type: "text",
192
- content: `You failed to call the required tool "${import_ai.SYSTEM_TOOLS.WORK_FLOW_TASK_OUTPUT}" in your previous response.
193
- Call "${import_ai.SYSTEM_TOOLS.WORK_FLOW_TASK_OUTPUT}" now to submit the workflow outcome.
176
+ try {
177
+ if (retry > 0) {
178
+ if (retry < 2) {
179
+ abortHandle.throwIfAborted();
180
+ const firstUserMessage = await this.workflow.db.getRepository("aiConversations.messages", conversation.sessionId).findOne({
181
+ filter: {
182
+ role: "user"
183
+ },
184
+ sort: ["messageId"]
185
+ });
186
+ const messageId = firstUserMessage == null ? void 0 : firstUserMessage.messageId;
187
+ result = await aiEmployee.invoke({ messageId, userMessages, signal: abortHandle.signal });
188
+ } else {
189
+ result = await aiEmployee.invoke({
190
+ signal: abortHandle.signal,
191
+ userMessages: [
192
+ {
193
+ role: "user",
194
+ content: {
195
+ type: "text",
196
+ content: `You failed to call the required tool "${toolName}" in your previous response.
197
+ Call "${toolName}" now to submit the workflow outcome.
194
198
  Do not send another normal assistant response without invoking it.
195
199
  `
200
+ }
196
201
  }
197
- }
198
- ]
199
- });
202
+ ]
203
+ });
204
+ }
205
+ } else {
206
+ result = await aiEmployee.invoke({ userMessages, signal: abortHandle.signal });
200
207
  }
201
- } else {
202
- result = await aiEmployee.invoke({ userMessages, signal: abortHandle.signal });
208
+ } catch (error) {
209
+ if (!isGraphRecursionError(error) || recoveredFromGraphRecursion) {
210
+ throw error;
211
+ }
212
+ recoveredFromGraphRecursion = true;
213
+ processor.logger.warn(`ai employee invoke reached graph recursion limit, trying workflow output recovery`, {
214
+ node: node.id,
215
+ stack: error.stack,
216
+ chatOptions: node.config
217
+ });
218
+ const latestMessage = await this.workflow.db.getRepository("aiConversations.messages", conversation.sessionId).findOne({
219
+ sort: ["-messageId"]
220
+ });
221
+ const recoveryAIEmployee = new import_ai_employee.AIEmployee({
222
+ ctx: {
223
+ ...aiEmployeeContext,
224
+ action: {
225
+ params: {
226
+ values: {
227
+ ...aiEmployeeActionValues,
228
+ important: "GraphRecursionError"
229
+ }
230
+ }
231
+ }
232
+ },
233
+ employee,
234
+ sessionId: conversation.sessionId,
235
+ systemMessage,
236
+ skillSettings,
237
+ webSearch,
238
+ model: resolvedModel,
239
+ tools: [{ name: toolName }]
240
+ });
241
+ abortHandle.throwIfAborted();
242
+ result = await recoveryAIEmployee.invoke({
243
+ messageId: latestMessage == null ? void 0 : latestMessage.messageId,
244
+ signal: abortHandle.signal
245
+ });
203
246
  }
204
247
  abortHandle.throwIfAborted();
205
248
  isToolInvoke = result.messages.filter((it) => it.type === "ai").flatMap((it) => it.tool_calls).some((it) => it.name === toolName);
@@ -270,7 +313,7 @@ Do not send another normal assistant response without invoking it.
270
313
  username
271
314
  },
272
315
  title: userMessage.slice(0, 30),
273
- from: "sub-agent",
316
+ from: "main-agent",
274
317
  options: {
275
318
  systemMessage,
276
319
  skillSettings,
@@ -464,6 +507,9 @@ async function parseAssignees(node, processor) {
464
507
  }
465
508
  return assignees;
466
509
  }
510
+ function isGraphRecursionError(error) {
511
+ return typeof error === "object" && error !== null && ("name" in error || "lc_error_code" in error) && (error.name === "GraphRecursionError" || error.lc_error_code === "GRAPH_RECURSION_LIMIT");
512
+ }
467
513
  // Annotate the CommonJS export names for ESM import in node:
468
514
  0 && (module.exports = {
469
515
  AIEmployeeInstruction,
@@ -29,6 +29,7 @@ __export(tools_exports, {
29
29
  getWorkflowTasks: () => getWorkflowTasks
30
30
  });
31
31
  module.exports = __toCommonJS(tools_exports);
32
+ var import_singletons = require("@langchain/core/singletons");
32
33
  var import_plugin_workflow = require("@nocobase/plugin-workflow");
33
34
  var import_constants = require("./constants");
34
35
  const getWorkflowTasks = (plugin) => async (register, filter) => {
@@ -141,7 +142,13 @@ const getWorkflowTasks = (plugin) => async (register, filter) => {
141
142
  status: import_plugin_workflow.JOB_STATUS.RESOLVED,
142
143
  result: args.result
143
144
  });
144
- await workflowPlugin.resume(job);
145
+ setImmediate(() => {
146
+ import_singletons.AsyncLocalStorageProviderSingleton.getInstance().run(void 0, () => {
147
+ workflowPlugin.resume(job).catch((error) => {
148
+ plugin.app.logger.error(error);
149
+ });
150
+ });
151
+ });
145
152
  return {
146
153
  status: "success"
147
154
  };
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-alpha.3",
9
+ "version": "2.2.0-alpha.5",
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,6 +34,8 @@
34
34
  "@ant-design/x": "^1.1.0",
35
35
  "@dicebear/core": "^9.2.3",
36
36
  "@dicebear/notionists": "^9.2.3",
37
+ "@dnd-kit/core": "^6.0.0",
38
+ "@dnd-kit/sortable": "^7.0.0",
37
39
  "@langchain/anthropic": "1.3.17",
38
40
  "@langchain/community": "1.1.29",
39
41
  "@langchain/core": "1.1.49",
@@ -41,6 +43,7 @@
41
43
  "@langchain/google-genai": "2.1.18",
42
44
  "@langchain/langgraph": "1.4.4",
43
45
  "@langchain/langgraph-checkpoint": "1.1.2",
46
+ "@langchain/mistralai": "1.0.0",
44
47
  "@langchain/ollama": "1.2.7",
45
48
  "@langchain/openai": "1.4.7",
46
49
  "@langchain/xai": "1.3.19",
@@ -58,12 +61,10 @@
58
61
  "react-syntax-highlighter": "^15.6.1",
59
62
  "rehype-raw": "^7.0.0",
60
63
  "rehype-sanitize": "^6.0.0",
61
- "remark-gfm": "^4.0.1",
62
- "use-context-selector": "^2.0.0",
63
- "zustand": "^5.0.6"
64
+ "remark-gfm": "^4.0.1"
64
65
  },
65
66
  "keywords": [
66
67
  "AI"
67
68
  ],
68
- "gitHead": "e3ec19361fd7981af9fe2a7f24ad335025cbefcd"
69
+ "gitHead": "814ff497dd1233ca7218c9f7f2a016c2ead6516d"
69
70
  }
@@ -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([["119"],{4498:function(e,t,n){n.r(t),n.d(t,{CodeToolCard:function(){return y},buildToolCodeBlock:function(){return g},compactPatchForDisplay:function(){return f},shouldSkipCodeToolCardRender:function(){return p}});var r=n(9155),o=n.n(r),l=n(5475),a=n(4281);function i(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 c(e){return function(e){if(Array.isArray(e))return i(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e){if(e){if("string"==typeof e)return i(e,void 0);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return i(e,void 0)}}(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e,t){return"writeJSCode"===e?"string"==typeof t.code?t.code:void 0:"patchJSCode"===e&&"string"==typeof t.patch?t.patch:void 0}function s(e){var t=function(e){if("string"!=typeof e)return e;var t=e.trim();if(!t)return{};try{return JSON.parse((0,l.m)(t))}catch(e){return}}(e.args);return t&&(void 0===t?"undefined":t&&"u">typeof Symbol&&t.constructor===Symbol?"symbol":typeof t)=="object"?t:null}function p(e,t){if(!g(e.toolCall))return!1;var n,r=s(t.toolCall);if(!r)return!0;var o=u(e.toolCall.name,null!=(n=s(e.toolCall))?n:{}),l=u(t.toolCall.name,r);return!!o&&(!l||l.length<.8*o.length)}function f(e){for(var t,n=e&&null!=(t=e.match(/[^\n]*\n|[^\n]+/g))?t:[],r=[],o=0;o<n.length;){var l=n[o];if(!l.startsWith("@@ ")){r.push(l),o++;continue}r.push(l),o++;for(var a=[];o<n.length&&!n[o].startsWith("@@ ");)a.push(n[o]),o++;r.push.apply(r,c(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3,n=e.reduce(function(e,t,n){return(t.startsWith("+")||t.startsWith("-"))&&e.push(n),e},[]);if(!n.length||e.length<=80)return e;var r=new Set,o=!0,l=!1,a=void 0;try{for(var i,u=n[Symbol.iterator]();!(o=(i=u.next()).done);o=!0)for(var s=i.value,p=Math.max(0,s-t);p<=Math.min(e.length-1,s+t);p++)r.add(p)}catch(e){l=!0,a=e}finally{try{o||null==u.return||u.return()}finally{if(l)throw a}}var f=[],g=-1,y=!0,d=!1,m=void 0;try{for(var b,h=c(r).sort(function(e,t){return e-t})[Symbol.iterator]();!(y=(b=h.next()).done);y=!0){var v=b.value;-1!==g&&v>g+1&&f.push(" ...\n"),f.push(e[v]),g=v}}catch(e){d=!0,m=e}finally{try{y||null==h.return||h.return()}finally{if(d)throw m}}return f}(function(e){for(var t=[],n=0;n<e.length;){var r=e[n],o=e[n+1];if((null==r?void 0:r.startsWith("-"))&&(null==o?void 0:o.startsWith("+"))&&!r.startsWith("---")&&!o.startsWith("+++")&&r.slice(1)===o.slice(1)){t.push(" ".concat(r.slice(1))),n+=2;continue}t.push(r),n++}return t}(a))))}return r.join("")}function g(e){var t=s(e);return t?"writeJSCode"===e.name&&"string"==typeof t.code&&t.code?{language:"js",value:t.code}:"patchJSCode"===e.name&&"string"==typeof t.patch&&t.patch?{language:"diff",value:f(t.patch)}:null:null}var y=o().memo(function(e){var t=g(e.toolCall);return t?o().createElement("div",{style:{padding:"4px 12px"}},o().createElement(a.w,{className:"language-".concat(t.language)},t.value)):null},p)},4281:function(e,t,n){n.d(t,{w:function(){return S},Rs:function(){return C},Cy:function(){return P}});var r=n(9155),o=n.n(r),l=n(2059),a=n(7375),i=n(3342),c=n(3079),u=n(8680),s=n(7694),p=n(7546),f=n(7596);function g(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 y(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 d(e,t){if(null==e)return{};var n,r,o,l={};if("u">typeof Reflect&&Reflect.ownKeys){for(o=0,n=Reflect.ownKeys(Object(e));o<n.length;o++)r=n[o],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r]);return l}if(l=function(e,t){if(null==e)return{};var n,r,o={},l=Object.getOwnPropertyNames(e);for(r=0;r<l.length;r++)n=l[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n]);return o}(e,t),Object.getOwnPropertySymbols)for(o=0,n=Object.getOwnPropertySymbols(e);o<n.length;o++)r=n[o],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r]);return l}var m=(0,i.lazy)(function(){return Promise.all([n.e("428"),n.e("758")]).then(n.bind(n,2733))},"CodeHighlight").CodeHighlight,b=function(e){var t=e.language,n=e.value,r=e.height,l=e.scrollToBottom,a=d(e,["language","value","height","scrollToBottom"]);return o().createElement(m,y(g({},a),{language:t,value:n,height:r,scrollToBottom:l}))},h=function(e){var t=(0,s.useFlowContext)(),n=(0,c.kj)(),r=f.J.use.currentConversation(),i=(0,p.Y)(r),u=e.children,m=e.className,h=(e.node,e.message),O=d(e,["children","className","node","message"]),w=/language-(\w+)/.exec(m||""),E=w?w[1]:"",j=String(u).replace(/<!--[\s\S]*?-->/g,"").replace(/\n$/,""),C=l.App.useApp().message,S=!0;(null==h?void 0:h.type)==="text"&&(S=RegExp("```"+E+"[\\s\\S]*?```","s").test(h.content));var P=i.use.editorRef()[i.use.currentEditorRefUid()];return w?o().createElement(l.Card,{type:"inner",size:"small",title:o().createElement(l.Space,{style:{margin:"0 8px"},size:"middle"},o().createElement(a.CodeOutlined,null),o().createElement("span",null,E)),extra:o().createElement(o().Fragment,null,o().createElement(l.Tooltip,{title:n("Copy")},o().createElement(l.Button,{type:"text",icon:o().createElement(a.CopyOutlined,null),onClick:function(){navigator.clipboard.writeText(j),C.success(n("Copied"))}})),o().createElement(l.Divider,{type:"vertical"}),o().createElement(l.Tooltip,{title:n("Expand")},o().createElement(l.Button,{type:"text",icon:o().createElement(a.ExpandOutlined,null),onClick:function(){t.viewer.dialog({width:"80%",zIndex:6e3,content:o().createElement(v,y(g({},O),{language:E,value:j,height:"75vh"}))})}}))),styles:{header:{padding:0},body:{padding:0}},actions:P?[o().createElement(l.Button,{key:"accept",type:"link",onClick:function(e){e.stopPropagation(),null==P||P.write(j),t.message.info(n("Applied"))},disabled:!S},n("Apply to editor"))]:[]},o().createElement(b,y(g({},O),{language:E,value:j,scrollToBottom:!S}))):o().createElement(l.Typography.Text,y(g({code:!0},O),{className:m}),u)},v=function(e){var t=e.language,n=e.value,r=d(e,["language","value"]),i=(0,s.useFlowViewContext)(),c=i.view.Header,u=o().createElement(l.Button,{type:"text",icon:o().createElement(a.CloseOutlined,null),onClick:function(){i.view.close()}});return o().createElement("div",{style:{borderRadius:8}},o().createElement(c,{title:o().createElement(o().Fragment,null,o().createElement(l.Space,null,u,o().createElement("span",null,t)))}),o().createElement(b,y(g({},r),{language:t,value:n})))};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}function w(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 E(e,t){if(null==e)return{};var n,r,o,l={};if("u">typeof Reflect&&Reflect.ownKeys){for(o=0,n=Reflect.ownKeys(Object(e));o<n.length;o++)r=n[o],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r]);return l}if(l=function(e,t){if(null==e)return{};var n,r,o={},l=Object.getOwnPropertyNames(e);for(r=0;r<l.length;r++)n=l[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n]);return o}(e,t),Object.getOwnPropertySymbols)for(o=0,n=Object.getOwnPropertySymbols(e);o<n.length;o++)r=n[o],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r]);return l}var j=(0,i.lazy)(function(){return Promise.all([n.e("428"),n.e("758")]).then(n.bind(n,2733))},"CodeHighlight").CodeHighlight,C=function(e){var t=e.language,n=e.value,r=E(e,["language","value"]);return o().createElement(j,w(O({},r),{language:t,value:n}))},S=function(e){var t=e.children,n=e.className,r=(e.node,e.message,E(e,["children","className","node","message"])),u=/language-(\w+)/.exec(n||""),s=u?u[1]:"",p=(0,i.useToken)().token,f=(0,c.kj)(),g=String(t).replace(/\n$/,""),y=l.App.useApp().message;return u?o().createElement(l.Card,{size:"small",title:s,styles:{title:{fontSize:p.fontSize,fontWeight:400},body:{width:"100%",fontSize:p.fontSizeSM}},extra:o().createElement(l.Button,{variant:"link",color:"default",size:"small",onClick:function(){navigator.clipboard.writeText(g),y.success(f("Copied"))},icon:o().createElement(a.CopyOutlined,null)})},o().createElement(C,w(O({},r),{language:s,value:g}))):o().createElement(l.Typography.Text,w(O({code:!0},r),{className:n}),t)},P=function(e){var t=e.className,n=/language-(\w+)/.exec(t||""),r=n?n[1]:"",l=f.J.use.currentConversation(),a=(0,p.Y)(l);return a.use.editorRef()[a.use.currentEditorRefUid()]&&(0,u._t)(r)?o().createElement(h,e):o().createElement(S,e)}}}]);