@nocobase/plugin-ai 2.2.0-alpha.7 → 2.2.0-beta.10

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 (393) hide show
  1. package/client-v2.d.ts +0 -1
  2. package/dist/ai/docs/nocobase/workflow/development/api.md +77 -259
  3. package/dist/ai/docs/nocobase/workflow/development/index.md +1 -2
  4. package/dist/ai/docs/nocobase/workflow/development/node.md +51 -84
  5. package/dist/ai/docs/nocobase/workflow/development/trigger.md +20 -122
  6. package/dist/ai/tools/subAgentWebSearch.js +15 -20
  7. package/dist/client/119.c6bf8c6433167d81.js +10 -0
  8. package/dist/client/170.d98eacdc00d9d527.js +10 -0
  9. package/dist/client/228.b4b709f93b86b6b9.js +10 -0
  10. package/dist/client/280.003b9e9788599244.js +10 -0
  11. package/dist/client/290.0f7f441d8a94f03c.js +10 -0
  12. package/dist/client/331.d547c95410476a69.js +10 -0
  13. package/dist/client/406.15c09d98faa2ccf1.js +10 -0
  14. package/dist/client/428.5eb4f53ddbb6a3b8.js +10 -0
  15. package/dist/client/462.d172d0fe91519e35.js +10 -0
  16. package/dist/client/486.dcac8f3fcec19c33.js +10 -0
  17. package/dist/client/502.2b4a51e0a8122e52.js +10 -0
  18. package/dist/client/525.33a9c8ec28be4ec4.js +10 -0
  19. package/dist/client/559.959c46d0056ccdc8.js +10 -0
  20. package/dist/client/561.7ec804ef39ec7dcd.js +10 -0
  21. package/dist/client/580.35ba54ff91b7fe6d.js +10 -0
  22. package/dist/client/597.b0d64948d74cf6cb.js +10 -0
  23. package/dist/client/604.89c674f35b52b4ef.js +10 -0
  24. package/dist/client/614.aa766080f6b99aab.js +10 -0
  25. package/dist/client/646.2e395a514c511084.js +10 -0
  26. package/dist/client/687.224e569a99cae4bb.js +10 -0
  27. package/dist/client/699.57c0a1acb723202a.js +10 -0
  28. package/dist/client/711.92cd94681fde7e05.js +10 -0
  29. package/dist/client/758.a9741e81911e53c3.js +10 -0
  30. package/dist/client/768.5177bff46ae71a5b.js +10 -0
  31. package/dist/client/792.abb57765453bcbcc.js +10 -0
  32. package/dist/client/820.f72ef2462b61d812.js +10 -0
  33. package/dist/client/832.0cf69e3f43c320b2.js +10 -0
  34. package/dist/client/927.d95c74ebb8fd51c9.js +10 -0
  35. package/dist/client/admin-settings/AdminSettings.d.ts +10 -0
  36. package/dist/client/ai-employees/1.x/selector/AIContextCollector.d.ts +4 -1
  37. package/dist/client/ai-employees/1.x/selector/AISelectorProvider.d.ts +33 -0
  38. package/dist/client/ai-employees/1.x/selector/BlockSelector.d.ts +14 -0
  39. package/dist/{client-v2/ai-employees/tools/ChartGeneratorCard.d.ts → client/ai-employees/1.x/selector/withAISelectable.d.ts} +4 -5
  40. package/dist/client/ai-employees/AIEmployeeListItem.d.ts +14 -0
  41. package/dist/client/ai-employees/AIEmployeesProvider.d.ts +12 -0
  42. package/dist/client/ai-employees/AISettingsProvider.d.ts +18 -0
  43. package/dist/{client-v2 → client}/ai-employees/AddContextButton.d.ts +1 -1
  44. package/dist/client/ai-employees/ContextAwareTooltip.d.ts +10 -0
  45. package/dist/client/ai-employees/ProfileCard.d.ts +15 -0
  46. package/dist/client/ai-employees/admin/AvatarSelect.d.ts +19 -0
  47. package/dist/client/ai-employees/admin/ChatSettings.d.ts +10 -0
  48. package/dist/client/ai-employees/admin/DataSourceSettings.d.ts +10 -0
  49. package/dist/client/ai-employees/admin/Employees.d.ts +10 -0
  50. package/dist/client/ai-employees/admin/EnableSwitch.d.ts +10 -0
  51. package/dist/client/ai-employees/admin/InputsFormSettings.d.ts +10 -0
  52. package/dist/client/ai-employees/admin/KnowledgeBaseSettings.d.ts +10 -0
  53. package/dist/client/ai-employees/admin/ModelSettings.d.ts +10 -0
  54. package/dist/client/ai-employees/admin/ProfileSettings.d.ts +12 -0
  55. package/dist/client/ai-employees/admin/SkillSettings.d.ts +19 -0
  56. package/dist/client/ai-employees/admin/SystemPrompt.d.ts +10 -0
  57. package/dist/client/ai-employees/admin/Templates.d.ts +10 -0
  58. package/dist/client/ai-employees/admin/ToolsSettings.d.ts +17 -0
  59. package/dist/{client-v2/ai-employees/chatbox/components/MessageContent.d.ts → client/ai-employees/admin/datasource/components/DatasourceSettingDetail.d.ts} +4 -3
  60. package/dist/client/ai-employees/admin/datasource/components/DatasourceSettingForm.d.ts +10 -0
  61. package/dist/client/ai-employees/admin/datasource/components/DatasourceSettingGrid.d.ts +10 -0
  62. package/dist/client/ai-employees/admin/datasource/components/basic/CollectionCascader.d.ts +14 -0
  63. package/dist/{client-v2/workflow/nodes/employee/components/SkillSettings.d.ts → client/ai-employees/admin/datasource/components/basic/FieldsTransfer.d.ts} +6 -6
  64. package/dist/client/ai-employees/admin/datasource/components/basic/index.d.ts +10 -0
  65. package/dist/client/ai-employees/admin/datasource/components/form-steps/CollectionSetting.d.ts +17 -0
  66. package/dist/client/ai-employees/admin/datasource/components/form-steps/FieldsSetting.d.ts +15 -0
  67. package/dist/client/ai-employees/admin/datasource/components/form-steps/FilterSetting.d.ts +17 -0
  68. package/dist/client/ai-employees/admin/datasource/components/form-steps/Preview.d.ts +13 -0
  69. package/dist/client/ai-employees/admin/datasource/components/form-steps/SortSetting.d.ts +15 -0
  70. package/dist/client/ai-employees/admin/datasource/components/form-steps/index.d.ts +13 -0
  71. package/dist/client/ai-employees/admin/datasource/components/index.d.ts +9 -0
  72. package/dist/client/ai-employees/admin/datasource/context.d.ts +17 -0
  73. package/dist/client/ai-employees/admin/datasource/flow-models/DatasourceSettingModel.d.ts +15 -0
  74. package/dist/client/ai-employees/admin/datasource/flow-models/index.d.ts +9 -0
  75. package/dist/client/ai-employees/admin/datasource/index.d.ts +10 -0
  76. package/dist/client/ai-employees/admin/hooks.d.ts +39 -0
  77. package/dist/client/ai-employees/admin/mcp/MCPSettings.d.ts +10 -0
  78. package/dist/client/ai-employees/admin/mcp/MCPToolsList.d.ts +19 -0
  79. package/dist/client/ai-employees/admin/mcp/context.d.ts +15 -0
  80. package/dist/client/ai-employees/admin/mcp/schemas.d.ts +1314 -0
  81. package/dist/{client-v2 → client}/ai-employees/ai-coding/AICodingButton.d.ts +1 -2
  82. package/dist/client/ai-employees/ai-coding/CodeHistory.d.ts +10 -0
  83. package/dist/client/ai-employees/ai-coding/markdown/Code.d.ts +16 -0
  84. package/dist/{client-v2/ai-employees/tools/ai-coding.d.ts → client/ai-employees/ai-coding/tools/context-tools.d.ts} +1 -3
  85. package/dist/client/ai-employees/ai-coding/tools/index.d.ts +11 -0
  86. package/dist/{client-v2/ai-employees/tools → client/ai-employees/ai-coding/ui}/CodeToolCard.d.ts +1 -1
  87. package/dist/client/ai-employees/avatars.d.ts +9 -0
  88. package/dist/client/ai-employees/built-in/utils.d.ts +15 -0
  89. package/dist/client/ai-employees/business-report/tools/index.d.ts +10 -0
  90. package/dist/{client-v2/ai-employees/tools → client/ai-employees/business-report/ui}/BusinessReportCard.d.ts +2 -2
  91. package/dist/{client-v2/ai-employees/tools → client/ai-employees/business-report/ui}/BusinessReportModal.d.ts +2 -2
  92. package/dist/client/ai-employees/business-report/ui/report-utils.d.ts +38 -0
  93. package/dist/client/ai-employees/chart-generator/tools/index.d.ts +10 -0
  94. package/dist/client/ai-employees/chart-generator/ui/ECharts.d.ts +13 -0
  95. package/dist/{client-v2/ai-employees/chatbox/components/ChatBox.d.ts → client/ai-employees/chatbox/AIThinking.d.ts} +2 -2
  96. package/dist/{client-v2/ai-employees/chatbox/components → client/ai-employees/chatbox}/Actions.d.ts +4 -2
  97. package/dist/{client-v2/ai-employees/chatbox/components → client/ai-employees/chatbox}/AddLLMModal.d.ts +4 -2
  98. package/dist/client/ai-employees/chatbox/Attachment.d.ts +14 -0
  99. package/dist/client/ai-employees/chatbox/AttachmentsHeader.d.ts +10 -0
  100. package/dist/client/ai-employees/chatbox/ChatBox.d.ts +12 -0
  101. package/dist/{client-v2/ai-employees/chatbox/components → client/ai-employees/chatbox}/ChatBoxLayout.d.ts +1 -1
  102. package/dist/{client-v2/ai-employees/chatbox/components → client/ai-employees/chatbox}/ContextItem.d.ts +1 -1
  103. package/dist/client/ai-employees/chatbox/ContextItemsHeader.d.ts +10 -0
  104. package/dist/client/ai-employees/chatbox/DebugPanel.d.ts +16 -0
  105. package/dist/client/ai-employees/chatbox/EditMessageHeader.d.ts +10 -0
  106. package/dist/client/ai-employees/chatbox/HintMessageHeader.d.ts +10 -0
  107. package/dist/client/ai-employees/chatbox/MessageRenderer.d.ts +33 -0
  108. package/dist/client/ai-employees/chatbox/SenderFooter.d.ts +13 -0
  109. package/dist/client/ai-employees/chatbox/SenderHeader.d.ts +10 -0
  110. package/dist/client/ai-employees/chatbox/SenderPrefix.d.ts +10 -0
  111. package/dist/client/ai-employees/chatbox/Upload.d.ts +12 -0
  112. package/dist/client/ai-employees/chatbox/VirtualList.d.ts +28 -0
  113. package/dist/client/ai-employees/chatbox/conversations/ConversationsList.d.ts +13 -0
  114. package/dist/client/ai-employees/chatbox/conversations/WorkflowTasksList.d.ts +13 -0
  115. package/dist/{client-v2/ai-employees/chatbox/stores/workflow-tasks.d.ts → client/ai-employees/chatbox/conversations/common.d.ts} +4 -21
  116. package/dist/client/ai-employees/chatbox/conversations/index.d.ts +9 -0
  117. package/dist/{client-v2/ai-employees/chatbox/components/ToolCard.d.ts → client/ai-employees/chatbox/generative-ui/DefaultToolCard.d.ts} +6 -7
  118. package/dist/client/ai-employees/chatbox/generative-ui/ToolCard.d.ts +15 -0
  119. package/dist/{client-v2 → client}/ai-employees/chatbox/hooks/useChat.d.ts +22 -21
  120. package/dist/client/ai-employees/chatbox/hooks/useChatBoxActions.d.ts +18 -0
  121. package/dist/{client-v2 → client}/ai-employees/chatbox/hooks/useChatConversationActions.d.ts +2 -2
  122. package/dist/{client-v2 → client}/ai-employees/chatbox/hooks/useChatMessageActions.d.ts +4 -8
  123. package/dist/{client-v2 → client}/ai-employees/chatbox/hooks/useToolCallActions.d.ts +1 -1
  124. package/dist/client/ai-employees/chatbox/hooks/useUploadFiles.d.ts +12 -0
  125. package/dist/{client-v2 → client}/ai-employees/chatbox/hooks/useWorkflowTasks.d.ts +1 -1
  126. package/dist/client/ai-employees/chatbox/markdown/Code.d.ts +18 -0
  127. package/dist/client/ai-employees/chatbox/markdown/ECharts.d.ts +10 -0
  128. package/dist/client/ai-employees/chatbox/markdown/Form.d.ts +10 -0
  129. package/dist/{client-v2/ai-employees/chatbox/components/DebugPanel.d.ts → client/ai-employees/chatbox/markdown/Generating.d.ts} +1 -1
  130. package/dist/client/ai-employees/chatbox/markdown/Markdown.d.ts +13 -0
  131. package/dist/{client-v2 → client}/ai-employees/chatbox/model.d.ts +2 -9
  132. package/dist/client/ai-employees/chatbox/roles.d.ts +32 -0
  133. package/dist/client/ai-employees/chatbox/stores/chat-box.d.ts +9 -0
  134. package/dist/client/ai-employees/chatbox/stores/chat-conversations.d.ts +9 -0
  135. package/dist/client/ai-employees/chatbox/stores/chat-messages.d.ts +9 -0
  136. package/dist/{client-v2 → client}/ai-employees/chatbox/stores/chat-tool-call.d.ts +15 -1
  137. package/dist/client/ai-employees/chatbox/stores/chat-tools.d.ts +51 -0
  138. package/dist/{client-v2/ai-employees/data-modeling/setup.d.ts → client/ai-employees/chatbox/stores/create-selectors.d.ts} +8 -5
  139. package/dist/client/ai-employees/chatbox/stores/workflow-tasks.d.ts +45 -0
  140. package/dist/{client-v2 → client}/ai-employees/chatbox/utils.d.ts +6 -21
  141. package/dist/{client-v2/workflow/nodes/employee/components/AIEmployeeSelect.d.ts → client/ai-employees/common/CodeHighlight.d.ts} +6 -5
  142. package/dist/client/ai-employees/context/classic-pages.d.ts +10 -0
  143. package/dist/{client-v2 → client}/ai-employees/context/code-editor.d.ts +1 -1
  144. package/dist/{client-v2 → client}/ai-employees/context/datasource.d.ts +1 -1
  145. package/dist/{client-v2 → client}/ai-employees/context/flow-models.d.ts +1 -1
  146. package/dist/client/ai-employees/data-modeling/Table.d.ts +12 -0
  147. package/dist/client/ai-employees/data-modeling/setup.d.ts +10 -0
  148. package/dist/client/ai-employees/data-modeling/tools/index.d.ts +10 -0
  149. package/dist/{client-v2/ai-employees/tools → client/ai-employees}/data-modeling/types.d.ts +4 -27
  150. package/dist/client/ai-employees/data-modeling/ui/CollectionNode.d.ts +12 -0
  151. package/dist/{client-v2/ai-employees/tools → client/ai-employees/data-modeling/ui}/DataModelingCard.d.ts +5 -3
  152. package/dist/{client-v2/ai-employees/tools → client/ai-employees/data-modeling/ui}/DataModelingModal.d.ts +6 -4
  153. package/dist/{client-v2/ai-employees/tools/data-modeling → client/ai-employees/data-modeling/ui}/Diagram.d.ts +1 -1
  154. package/dist/{client-v2/ai-employees/tools/data-modeling → client/ai-employees/data-modeling/ui}/Table.d.ts +2 -2
  155. package/dist/client/ai-employees/data-modeling/ui/useFieldInterfaceOptions.d.ts +14 -0
  156. package/dist/{client-v2/ai-employees/context/chart-config.d.ts → client/ai-employees/data-visualization/context.d.ts} +1 -1
  157. package/dist/{client-v2/ai-employees/tools/data-visualization.d.ts → client/ai-employees/data-visualization/tools/index.d.ts} +1 -1
  158. package/dist/client/ai-employees/datasource/DatasourceList.d.ts +17 -0
  159. package/dist/{client-v2 → client}/ai-employees/datasource/DatasourceSelector.d.ts +2 -6
  160. package/dist/client/ai-employees/datasource/index.d.ts +9 -0
  161. package/dist/client/ai-employees/flow/events/index.d.ts +9 -0
  162. package/dist/client/ai-employees/flow/index.d.ts +36 -0
  163. package/dist/client/ai-employees/flow/models/AIEmployeeActionModel.d.ts +18 -0
  164. package/dist/client/ai-employees/flow/models/AIEmployeeShortcutModel.d.ts +30 -0
  165. package/dist/{client-v2 → client}/ai-employees/form-filler/tools/index.d.ts +1 -1
  166. package/dist/client/ai-employees/permissions/Permissions.d.ts +12 -0
  167. package/dist/client/ai-employees/permissions/PermissionsTab.d.ts +5 -21
  168. package/dist/client/ai-employees/shortcuts/ShortcutList.d.ts +10 -0
  169. package/dist/client/ai-employees/shortcuts/useShortcuts.d.ts +13 -0
  170. package/dist/{client-v2 → client}/ai-employees/stores/ai-selection.d.ts +4 -4
  171. package/dist/client/ai-employees/stores/context-aware.d.ts +19 -0
  172. package/dist/{client-v2 → client}/ai-employees/stores/dialog-controller.d.ts +4 -4
  173. package/dist/client/ai-employees/sub-agents/tools/index.d.ts +10 -0
  174. package/dist/{client-v2/ai-employees/tools → client/ai-employees/sub-agents/ui}/SubAgentDispatchCard.d.ts +9 -4
  175. package/dist/client/ai-employees/suggestions/tools/index.d.ts +10 -0
  176. package/dist/client/ai-employees/suggestions/ui/SuggestionsOptions.d.ts +13 -0
  177. package/dist/client/ai-employees/types.d.ts +259 -0
  178. package/dist/client/ai-employees/workflow-tasks/tools/index.d.ts +10 -0
  179. package/dist/client/ai-employees/workflow-tasks/ui/WorkflowTaskOutputCard.d.ts +11 -0
  180. package/dist/{client-v2/workflow/nodes/llm/components → client/chat-settings}/Messages.d.ts +2 -2
  181. package/dist/{client-v2/workflow/nodes/employee/components → client/chat-settings}/StructuredOutput.d.ts +2 -2
  182. package/dist/{client-v2/workflow/components/WorkflowListCollapse.d.ts → client/components/ListCollapse.d.ts} +4 -4
  183. package/dist/client/components/skill-settings.d.ts +22 -0
  184. package/dist/{client-v2 → client}/debug-logger.d.ts +2 -2
  185. package/dist/client/features/components.d.ts +9 -0
  186. package/dist/client/features/feature-manager.d.ts +9 -0
  187. package/dist/client/features/index.d.ts +9 -0
  188. package/dist/client/features/vector-database-provider.d.ts +9 -0
  189. package/dist/client/features/vector-store-provider.d.ts +9 -0
  190. package/dist/client/index.d.ts +20 -15
  191. package/dist/client/index.js +8 -8
  192. package/dist/client/llm-providers/anthropic/ModelSettings.d.ts +10 -0
  193. package/dist/client/llm-providers/anthropic/ProviderSettings.d.ts +10 -0
  194. package/dist/client/llm-providers/anthropic/index.d.ts +10 -0
  195. package/dist/client/llm-providers/components/Chat.d.ts +10 -0
  196. package/dist/client/llm-providers/components/ModelSelect.d.ts +10 -0
  197. package/dist/client/llm-providers/dashscope/ModelSettings.d.ts +10 -0
  198. package/dist/client/llm-providers/dashscope/ProviderSettings.d.ts +10 -0
  199. package/dist/client/llm-providers/dashscope/index.d.ts +10 -0
  200. package/dist/client/llm-providers/deepseek/ModelSettings.d.ts +10 -0
  201. package/dist/client/llm-providers/deepseek/index.d.ts +10 -0
  202. package/dist/client/llm-providers/google-genai/MessageRenderer.d.ts +13 -0
  203. package/dist/client/llm-providers/google-genai/ModelSettings.d.ts +10 -0
  204. package/dist/client/llm-providers/google-genai/ProviderSettings.d.ts +10 -0
  205. package/dist/client/llm-providers/google-genai/index.d.ts +10 -0
  206. package/dist/client/llm-providers/kimi/ModelSettings.d.ts +10 -0
  207. package/dist/client/llm-providers/kimi/index.d.ts +10 -0
  208. package/dist/client/llm-providers/mimo/ModelSettings.d.ts +10 -0
  209. package/dist/client/llm-providers/mimo/index.d.ts +10 -0
  210. package/dist/client/llm-providers/mistral/ModelSettings.d.ts +10 -0
  211. package/dist/{client-v2/workflow/nodes/employee/components/AIEmployeeFieldset.d.ts → client/llm-providers/mistral/index.d.ts} +2 -3
  212. package/dist/client/llm-providers/ollama/ModelSettings.d.ts +10 -0
  213. package/dist/client/llm-providers/ollama/ProviderSettings.d.ts +10 -0
  214. package/dist/client/llm-providers/ollama/index.d.ts +10 -0
  215. package/dist/client/llm-providers/openai/completions/ModelSettings.d.ts +10 -0
  216. package/dist/client/llm-providers/openai/completions/index.d.ts +10 -0
  217. package/dist/client/llm-providers/openai/components/ProviderSettings.d.ts +10 -0
  218. package/dist/client/llm-providers/openai/responses/ModelSettings.d.ts +10 -0
  219. package/dist/client/llm-providers/openai/responses/index.d.ts +10 -0
  220. package/dist/client/llm-providers/orcarouter/ModelSettings.d.ts +10 -0
  221. package/dist/client/llm-providers/orcarouter/ProviderSettings.d.ts +10 -0
  222. package/dist/client/llm-providers/orcarouter/index.d.ts +10 -0
  223. package/dist/client/llm-providers/tongyi/ModelSettings.d.ts +10 -0
  224. package/dist/client/llm-providers/tongyi/ProviderSettings.d.ts +10 -0
  225. package/dist/client/llm-providers/tongyi/index.d.ts +10 -0
  226. package/dist/client/llm-providers/xai/ModelSettings.d.ts +10 -0
  227. package/dist/client/llm-providers/xai/index.d.ts +10 -0
  228. package/dist/client/llm-services/LLMServices.d.ts +13 -0
  229. package/dist/client/llm-services/component/DefaultModelSelect.d.ts +10 -0
  230. package/dist/client/llm-services/component/EnabledModelsSelect.d.ts +23 -0
  231. package/dist/client/llm-services/component/LLMTestFlight.d.ts +10 -0
  232. package/dist/client/llm-services/component/ModelOptionsSettings.d.ts +10 -0
  233. package/dist/client/llm-services/component/UnifiedModelSettings.d.ts +10 -0
  234. package/dist/client/llm-services/hooks/useLLMServiceCatalog.d.ts +18 -0
  235. package/dist/client/llm-services/llm-providers.d.ts +27 -0
  236. package/dist/client/llm-services/utils.d.ts +35 -0
  237. package/dist/client/manager/ai-feature-manager.d.ts +9 -0
  238. package/dist/{client-v2 → client}/manager/ai-manager.d.ts +5 -4
  239. package/dist/client/repositories/AIConfigRepository.d.ts +60 -0
  240. package/dist/client/repositories/hooks/useAIConfigRepository.d.ts +10 -0
  241. package/dist/client/schemas/llms.d.ts +347 -0
  242. package/dist/client/workflow/nodes/employee/components/AIEmployeeSelect.d.ts +10 -0
  243. package/dist/client/workflow/nodes/employee/components/assigness.d.ts +11 -0
  244. package/dist/client/workflow/nodes/employee/components/file-inputs.d.ts +10 -0
  245. package/dist/client/workflow/nodes/employee/components/message-inputs.d.ts +12 -0
  246. package/dist/client/workflow/nodes/employee/components/model-options.d.ts +10 -0
  247. package/dist/client/workflow/nodes/employee/components/structured-output.d.ts +10 -0
  248. package/dist/client/workflow/nodes/employee/components/users-select.d.ts +15 -0
  249. package/dist/client/workflow/nodes/employee/components/web-search-options.d.ts +10 -0
  250. package/dist/client/workflow/nodes/employee/configuration.d.ts +12 -0
  251. package/dist/client/workflow/nodes/employee/flow-models/feedback.d.ts +14 -0
  252. package/dist/client/workflow/nodes/employee/flow-models/task.d.ts +13 -0
  253. package/dist/client/workflow/nodes/employee/index.d.ts +23 -2
  254. package/dist/client/workflow/nodes/llm/ModelSettings.d.ts +11 -0
  255. package/dist/client/workflow/nodes/llm/index.d.ts +52 -2
  256. package/dist/{client-v2 → client}/workflow/triggers/ai-employee/Parameters.d.ts +4 -2
  257. package/dist/client/workflow/triggers/ai-employee/index.d.ts +83 -2
  258. package/dist/client-v2/ai-employees/AIEmployeeShortcut.d.ts +2 -9
  259. package/dist/client-v2/ai-employees/chatbox/hooks/useChatBoxActions.d.ts +2 -3
  260. package/dist/client-v2/ai-employees/chatbox/stores/chat-box.d.ts +49 -1
  261. package/dist/client-v2/ai-employees/chatbox/stores/chat-conversations.d.ts +19 -2
  262. package/dist/client-v2/ai-employees/chatbox/stores/chat-messages.d.ts +46 -1
  263. package/dist/client-v2/ai-employees/chatbox/stores/create-selectors.d.ts +3 -31
  264. package/dist/client-v2/ai-employees/types.d.ts +7 -101
  265. package/dist/client-v2/index.d.ts +8 -9
  266. package/dist/client-v2/index.js +1 -37
  267. package/dist/client-v2/repositories/AIConfigRepository.d.ts +23 -3
  268. package/dist/externalVersion.js +25 -20
  269. package/dist/locale/en-US.json +1 -42
  270. package/dist/locale/zh-CN.json +1 -42
  271. package/dist/node_modules/@langchain/mistralai/package.json +1 -1
  272. package/dist/node_modules/@langchain/xai/package.json +1 -1
  273. package/dist/node_modules/fs-extra/package.json +1 -1
  274. package/dist/node_modules/jsonrepair/package.json +1 -1
  275. package/dist/node_modules/just-bash/package.json +1 -1
  276. package/dist/node_modules/nodejs-snowflake/package.json +1 -1
  277. package/dist/node_modules/openai/package.json +1 -1
  278. package/dist/node_modules/zod/package.json +1 -1
  279. package/dist/server/ai-employees/ai-employee.js +1 -7
  280. package/dist/server/ai-employees/prompts.d.ts +1 -2
  281. package/dist/server/ai-employees/prompts.js +2 -8
  282. package/dist/server/llm-providers/dashscope.d.ts +1 -2
  283. package/dist/server/llm-providers/dashscope.js +1 -16
  284. package/dist/server/llm-providers/deepseek.d.ts +1 -2
  285. package/dist/server/llm-providers/deepseek.js +2 -33
  286. package/dist/server/llm-providers/kimi/provider.d.ts +1 -2
  287. package/dist/server/llm-providers/kimi/provider.js +2 -22
  288. package/dist/server/llm-providers/mistral.d.ts +2 -36
  289. package/dist/server/llm-providers/mistral.js +2 -62
  290. package/dist/server/llm-providers/openai/completions.d.ts +1 -2
  291. package/dist/server/llm-providers/openai/completions.js +1 -17
  292. package/dist/server/llm-providers/openai/responses.d.ts +1 -2
  293. package/dist/server/llm-providers/openai/responses.js +1 -17
  294. package/dist/server/llm-providers/provider.d.ts +0 -7
  295. package/dist/server/llm-providers/provider.js +1 -7
  296. package/dist/server/manager/ai-manager.d.ts +1 -2
  297. package/dist/server/manager/ai-manager.js +1 -4
  298. package/package.json +5 -5
  299. package/dist/ai/docs/nocobase/interface-builder/blocks/data-blocks/comment.md +0 -107
  300. package/dist/ai/docs/nocobase/plugins/@nocobase/plugin-block-comment/index.md +0 -14
  301. package/dist/ai/docs/nocobase/workflow/development/migration.md +0 -319
  302. package/dist/client/23.65ea8c37cd4b884b.js +0 -10
  303. package/dist/client/264.cc98933ef65608b6.js +0 -10
  304. package/dist/client/336.7a8a8853196ad779.js +0 -11
  305. package/dist/client/372.da38fe350bf841f4.js +0 -10
  306. package/dist/client/416.92b74ca47e4099c4.js +0 -10
  307. package/dist/client/446.d63c38d0309fe250.js +0 -10
  308. package/dist/client/525.203778500aca5d05.js +0 -10
  309. package/dist/client/663.680bcf6272a8504d.js +0 -10
  310. package/dist/client/681.399948c18d753667.js +0 -10
  311. package/dist/client/705.380279da896021fb.js +0 -10
  312. package/dist/client-v2/23.1bcb6986b40723d8.js +0 -10
  313. package/dist/client-v2/264.be92ff6a4d2612f1.js +0 -10
  314. package/dist/client-v2/336.e406470429e0670e.js +0 -11
  315. package/dist/client-v2/372.d76ea1ceed2be2a4.js +0 -10
  316. package/dist/client-v2/406.341be51205c674e0.js +0 -10
  317. package/dist/client-v2/416.0e1c2d9cde43b83d.js +0 -10
  318. package/dist/client-v2/446.073d450882db29fd.js +0 -10
  319. package/dist/client-v2/457.d72febb89e88fc00.js +0 -10
  320. package/dist/client-v2/663.342341f0b2b412d8.js +0 -10
  321. package/dist/client-v2/681.082f4f1c7b841983.js +0 -10
  322. package/dist/client-v2/705.1d10027ff8cfdf79.js +0 -10
  323. package/dist/client-v2/ai-employees/AIEmployeeDropdown.d.ts +0 -18
  324. package/dist/client-v2/ai-employees/chatbox/components/Attachments.d.ts +0 -27
  325. package/dist/client-v2/ai-employees/chatbox/components/Markdown.d.ts +0 -25
  326. package/dist/client-v2/ai-employees/chatbox/components/MessageRenderers.d.ts +0 -39
  327. package/dist/client-v2/ai-employees/chatbox/components/index.d.ts +0 -13
  328. package/dist/client-v2/ai-employees/chatbox/hooks/useUploadFiles.d.ts +0 -46
  329. package/dist/client-v2/ai-employees/chatbox/roles.d.ts +0 -162
  330. package/dist/client-v2/ai-employees/chatbox/stores/chat-tools.d.ts +0 -30
  331. package/dist/client-v2/ai-employees/flow/index.d.ts +0 -13
  332. package/dist/client-v2/ai-employees/tools/SuggestionsOptionsCard.d.ts +0 -16
  333. package/dist/client-v2/ai-employees/tools/WorkflowTaskOutputCard.d.ts +0 -16
  334. package/dist/client-v2/ai-employees/tools/business-report-utils.d.ts +0 -45
  335. package/dist/client-v2/ai-employees/tools/data-modeling/CollectionNode.d.ts +0 -11
  336. package/dist/client-v2/ai-employees/tools/data-modeling/legacy-template.d.ts +0 -13
  337. package/dist/client-v2/ai-employees/tools/data-modeling/runtime.d.ts +0 -15
  338. package/dist/client-v2/ai-employees/tools/data-modeling/useFieldInterfaceOptions.d.ts +0 -151
  339. package/dist/client-v2/ai-employees/tools/index.d.ts +0 -32
  340. package/dist/client-v2/components/RemoteSelect.d.ts +0 -43
  341. package/dist/client-v2/f0053e745af0ad03.svg +0 -50
  342. package/dist/client-v2/llm-providers/forms.d.ts +0 -44
  343. package/dist/client-v2/llm-providers/index.d.ts +0 -24
  344. package/dist/client-v2/llm-services/utils.d.ts +0 -13
  345. package/dist/client-v2/locale.d.ts +0 -14
  346. package/dist/client-v2/models/ai-employees/AIEmployeeActionModel.d.ts +0 -33
  347. package/dist/client-v2/models/ai-employees/AIEmployeeShortcutModel.d.ts +0 -44
  348. package/dist/client-v2/pages/AdminSettingsPage.d.ts +0 -24
  349. package/dist/client-v2/pages/DatasourceSettingsPage.d.ts +0 -62
  350. package/dist/client-v2/pages/EmployeesPage.d.ts +0 -53
  351. package/dist/client-v2/pages/LLMServicesPage.d.ts +0 -75
  352. package/dist/client-v2/pages/MCPSettingsPage.d.ts +0 -73
  353. package/dist/client-v2/pages/drawerWidth.d.ts +0 -10
  354. package/dist/client-v2/pages/permissions/Permissions.d.ts +0 -67
  355. package/dist/client-v2/pages/permissions/PermissionsTab.d.ts +0 -12
  356. package/dist/client-v2/pages/useUnsavedChangesBeforeClose.d.ts +0 -29
  357. package/dist/client-v2/plugin.d.ts +0 -32
  358. package/dist/client-v2/workflow/components/FormValueRegistry.d.ts +0 -12
  359. package/dist/client-v2/workflow/constants.d.ts +0 -26
  360. package/dist/client-v2/workflow/nodes/employee/components/Assignees.d.ts +0 -11
  361. package/dist/client-v2/workflow/nodes/employee/components/FeedbackSettings.d.ts +0 -17
  362. package/dist/client-v2/workflow/nodes/employee/components/FileInputs.d.ts +0 -11
  363. package/dist/client-v2/workflow/nodes/employee/components/MessageInputs.d.ts +0 -11
  364. package/dist/client-v2/workflow/nodes/employee/components/ModelOptions.d.ts +0 -17
  365. package/dist/client-v2/workflow/nodes/employee/components/UserInput.d.ts +0 -18
  366. package/dist/client-v2/workflow/nodes/employee/components/WebSearchOptions.d.ts +0 -16
  367. package/dist/client-v2/workflow/nodes/employee/index.d.ts +0 -23
  368. package/dist/client-v2/workflow/nodes/llm/components/LLMFieldset.d.ts +0 -12
  369. package/dist/client-v2/workflow/nodes/llm/components/StructuredOutput.d.ts +0 -11
  370. package/dist/client-v2/workflow/nodes/llm/index.d.ts +0 -30
  371. package/dist/client-v2/workflow/register.d.ts +0 -10
  372. package/dist/client-v2/workflow/triggers/ai-employee/AIEmployeeTriggerConfig.d.ts +0 -11
  373. package/dist/client-v2/workflow/triggers/ai-employee/index.d.ts +0 -25
  374. package/dist/client-v2/workflow/types.d.ts +0 -128
  375. /package/dist/{client-v2 → client}/ai-employees/AISelection.d.ts +0 -0
  376. /package/dist/{client-v2 → client}/ai-employees/AISelectionControl.d.ts +0 -0
  377. /package/dist/{client-v2 → client}/ai-employees/ai-coding/prompts.d.ts +0 -0
  378. /package/dist/{client-v2 → client}/ai-employees/ai-coding/setup.d.ts +0 -0
  379. /package/dist/{client-v2/ai-employees/chatbox/components/AIEmployeeSwitcher.d.ts → client/ai-employees/chatbox/AIEmployeeSwitch.d.ts} +0 -0
  380. /package/dist/{client-v2/ai-employees/chatbox/components → client/ai-employees/chatbox}/ChatButton.d.ts +0 -0
  381. /package/dist/{client-v2/ai-employees/chatbox/components → client/ai-employees/chatbox}/Messages.d.ts +0 -0
  382. /package/dist/{client-v2/ai-employees/chatbox/components → client/ai-employees/chatbox}/ModelSwitcher.d.ts +0 -0
  383. /package/dist/{client-v2/ai-employees/chatbox/components → client/ai-employees/chatbox}/SearchSwitch.d.ts +0 -0
  384. /package/dist/{client-v2/ai-employees/chatbox/components → client/ai-employees/chatbox}/Sender.d.ts +0 -0
  385. /package/dist/{client-v2/ai-employees/chatbox/components → client/ai-employees/chatbox}/UserPrompt.d.ts +0 -0
  386. /package/dist/{client-v2/ai-employees/chatbox/components → client/ai-employees/chatbox/conversations}/Conversations.d.ts +0 -0
  387. /package/dist/{client-v2/ai-employees/chatbox/components → client/ai-employees/chatbox/generative-ui}/ToolModal.d.ts +0 -0
  388. /package/dist/{client-v2 → client}/ai-employees/chatbox/hooks/useChatBoxEffect.d.ts +0 -0
  389. /package/dist/{client-v2 → client}/ai-employees/chatbox/hooks/useLoadMoreObserver.d.ts +0 -0
  390. /package/dist/{client-v2/workflow/components/index.d.ts → client/ai-employees/flow/events/ai-context-selection.d.ts} +0 -0
  391. /package/dist/{client-v2/models/ai-employees → client/ai-employees/flow/models}/AIEmployeeShortcutListModel.d.ts +0 -0
  392. /package/dist/{client-v2/models/ai-employees → client/ai-employees/flow/models}/index.d.ts +0 -0
  393. /package/dist/client-v2/ai-employees/{stores → chatbox/stores}/global-store.d.ts +0 -0
@@ -1,14 +0,0 @@
1
- ---
2
- title: "Block: Comment"
3
- keywords: "Block: Comment,comment block,comment collection,plugin,NocoBase"
4
- displayName: "Block: Comment"
5
- packageName: '@nocobase/plugin-block-comment'
6
- description: |
7
- Provides a Comment block for viewing and creating comments in record details, pop-ups, and similar scenarios.
8
- isFree: true
9
- builtIn: true
10
- defaultEnabled: false
11
- editionLevel: 0
12
- ---
13
-
14
- # Block: Comment
@@ -1,319 +0,0 @@
1
- ---
2
- title: "v1 to v2 Migration Guide"
3
- description: "Workflow extension development: guide for migrating client-side code from v1 to v2."
4
- keywords: "workflow,migration,v1,v2,NocoBase"
5
- ---
6
-
7
- # v1 to v2 Client-side Migration Guide
8
-
9
- This guide describes how to migrate the client-side code of a workflow extension plugin from v1 to v2. The core change in the v2 client is replacing Formily Schema declarative configuration UIs with a Loader + pure React/antd component approach.
10
-
11
- ## Overview
12
-
13
- ### Main Changes
14
-
15
- 1. **Import path changes**: `@nocobase/plugin-workflow/client` → `@nocobase/plugin-workflow/client-v2`, plugin base class `@nocobase/client` → `@nocobase/client-v2`
16
- 2. **Configuration UI pattern changes**: From Formily Schema objects (`fieldset`) to Loader lazy-loaded React components (`FieldsetLoader`)
17
- 3. **`scope`/`components` properties removed**: No longer necessary to inject scope objects or components into the Schema; simply import and use them directly in React components
18
-
19
- ### Import path mapping
20
-
21
- ```ts
22
- // v1
23
- import { Plugin } from '@nocobase/client';
24
- import WorkflowPlugin, { Trigger, Instruction } from '@nocobase/plugin-workflow/client';
25
-
26
- // v2
27
- import { Plugin } from '@nocobase/client-v2';
28
- import WorkflowPlugin, { Trigger, Instruction } from '@nocobase/plugin-workflow/client-v2';
29
- ```
30
-
31
- ## General Rules
32
-
33
- ### Loader pattern
34
-
35
- v2 uses `LoaderOf`-typed properties to replace v1's `fieldset` and other Formily Schema objects. A Loader is essentially a function that returns `Promise<{ default: ComponentType }>`, enabling code splitting and lazy loading via dynamic `import()`:
36
-
37
- ```ts
38
- // v1: Formily Schema object
39
- fieldset = {
40
- interval: {
41
- type: 'number',
42
- title: 'Interval',
43
- 'x-decorator': 'FormItem',
44
- 'x-component': 'InputNumber',
45
- default: 60000,
46
- },
47
- };
48
-
49
- // v2: Loader pointing to a React component
50
- FieldsetLoader = () => import('./MyConfig');
51
- ```
52
-
53
- If you need to point to a named export (rather than the default export), use `.then()` to remap:
54
-
55
- ```ts
56
- FieldsetLoader = () => import('./MyConfig').then((m) => ({ default: m.MyPresetConfig }));
57
- ```
58
-
59
- ### Configuration component syntax
60
-
61
- The component loaded by a Loader is a standard React function component that uses antd's `Form.Item` to build forms. Field paths consistently use the nested array format `['config', 'fieldName']`:
62
-
63
- ```tsx
64
- // v1: Formily Schema
65
- fieldset = {
66
- interval: {
67
- type: 'number',
68
- title: '{{t("Interval")}}',
69
- name: 'config.interval',
70
- 'x-decorator': 'FormItem',
71
- 'x-component': 'InputNumber',
72
- default: 60000,
73
- },
74
- };
75
-
76
- // v2: React component
77
- import { Form, InputNumber } from 'antd';
78
-
79
- export default function MyConfig() {
80
- const { t } = useWorkflowTranslation();
81
-
82
- return (
83
- <Form.Item
84
- name={['config', 'interval']}
85
- label={t('Interval')}
86
- initialValue={60000}
87
- >
88
- <InputNumber />
89
- </Form.Item>
90
- );
91
- }
92
- ```
93
-
94
- ## Trigger Migration
95
-
96
- ### Property mapping table
97
-
98
- | v1 Property | v2 Property | Description |
99
- |---------|---------|------|
100
- | `fieldset` | `FieldsetLoader` | Trigger configuration form |
101
- | `presetFieldset` | `PresetFieldsetLoader` | Preset form on creation |
102
- | `triggerFieldset` | `TriggerFieldsetLoader` | Input form for manual execution |
103
- | `scope` | Removed | No longer needed; import directly in the component |
104
- | `components` | Removed | No longer needed; import directly in the component |
105
- | `view` | Removed | |
106
- | — | `validate(config)` | New; configuration validation |
107
- | — | `createDefaultConfig()` | New; provides default configuration values |
108
-
109
- ### Migration example
110
-
111
- **v1 syntax:**
112
-
113
- ```ts
114
- import { Trigger } from '@nocobase/plugin-workflow/client';
115
-
116
- class MyTrigger extends Trigger {
117
- title = '{{t("My Trigger")}}';
118
- fieldset = {
119
- collection: {
120
- type: 'string',
121
- title: '{{t("Collection")}}',
122
- 'x-decorator': 'FormItem',
123
- 'x-component': 'CollectionSelect',
124
- required: true,
125
- },
126
- mode: {
127
- type: 'number',
128
- title: '{{t("Mode")}}',
129
- 'x-decorator': 'FormItem',
130
- 'x-component': 'Select',
131
- 'x-component-props': {
132
- options: [
133
- { label: '{{t("Created")}}', value: 1 },
134
- { label: '{{t("Updated")}}', value: 2 },
135
- ],
136
- },
137
- },
138
- };
139
- scope = { /* ... */ };
140
- components = { CollectionSelect };
141
- }
142
- ```
143
-
144
- **v2 syntax:**
145
-
146
- ```ts
147
- import { Trigger } from '@nocobase/plugin-workflow/client-v2';
148
-
149
- class MyTrigger extends Trigger {
150
- title = '{{t("My Trigger")}}';
151
-
152
- PresetFieldsetLoader = () =>
153
- import('./MyTriggerConfig').then((m) => ({ default: m.MyPresetConfig }));
154
- FieldsetLoader = () => import('./MyTriggerConfig');
155
- TriggerFieldsetLoader = () => import('./TriggerMyConfig');
156
-
157
- validate(config) {
158
- return Boolean(config?.collection && config?.mode);
159
- }
160
- }
161
- ```
162
-
163
- ```tsx
164
- // MyTriggerConfig.tsx
165
- import { Form, Select } from 'antd';
166
- import { CollectionCascader } from '@nocobase/plugin-workflow/client-v2';
167
-
168
- export function MyPresetConfig() {
169
- return (
170
- <Form.Item name={['config', 'collection']} label="Collection" rules={[{ required: true }]}>
171
- <CollectionCascader />
172
- </Form.Item>
173
- );
174
- }
175
-
176
- export default function MyTriggerConfig() {
177
- return (
178
- <>
179
- <Form.Item name={['config', 'collection']} label="Collection">
180
- <CollectionCascader disabled />
181
- </Form.Item>
182
- <Form.Item name={['config', 'mode']} label="Mode">
183
- <Select
184
- options={[
185
- { label: 'Created', value: 1 },
186
- { label: 'Updated', value: 2 },
187
- ]}
188
- />
189
- </Form.Item>
190
- </>
191
- );
192
- }
193
- ```
194
-
195
- ### Plugin registration
196
-
197
- ```ts
198
- // v1
199
- import { Plugin } from '@nocobase/client';
200
- import WorkflowPlugin from '@nocobase/plugin-workflow/client';
201
-
202
- export default class extends Plugin {
203
- async load() {
204
- const workflow = this.app.pm.get(WorkflowPlugin);
205
- workflow.registerTrigger('myTrigger', MyTrigger);
206
- }
207
- }
208
-
209
- // v2
210
- import { Plugin } from '@nocobase/client-v2';
211
-
212
- export default class extends Plugin {
213
- async load() {
214
- const workflow = this.app.pm.get('workflow');
215
- workflow.registerTrigger('myTrigger', MyTrigger);
216
- }
217
- }
218
- ```
219
-
220
- ## Node Migration
221
-
222
- ### Property mapping table
223
-
224
- | v1 Property | v2 Property | Description |
225
- |---------|---------|------|
226
- | `fieldset` | `FieldsetLoader` | Node configuration drawer form |
227
- | `presetFieldset` | `PresetFieldsetLoader` | Preset form on creation |
228
- | `Component` | `ComponentLoader` | Custom node rendering on the canvas |
229
- | `scope` | Removed | No longer needed; import directly in the component |
230
- | `components` | Removed | No longer needed; import directly in the component |
231
- | `view` | Removed | |
232
- | — | `createDefaultConfig()` | New; provides default configuration values |
233
-
234
- ### Migration example
235
-
236
- **v1 syntax:**
237
-
238
- ```ts
239
- import WorkflowPlugin, { Instruction } from '@nocobase/plugin-workflow/client';
240
-
241
- class MyInstruction extends Instruction {
242
- title = 'Random string';
243
- type = 'randomString';
244
- group = 'extended';
245
- fieldset = {
246
- digit: {
247
- type: 'number',
248
- title: 'Digit',
249
- name: 'digit',
250
- 'x-decorator': 'FormItem',
251
- 'x-component': 'InputNumber',
252
- 'x-component-props': { min: 1, max: 10 },
253
- default: 6,
254
- },
255
- };
256
- useVariables(node, options) {
257
- return { value: node.key, label: node.title };
258
- }
259
- }
260
- ```
261
-
262
- **v2 syntax:**
263
-
264
- ```ts
265
- import { Instruction } from '@nocobase/plugin-workflow/client-v2';
266
-
267
- class MyInstruction extends Instruction {
268
- title = 'Random string';
269
- type = 'randomString';
270
- group = 'extended';
271
-
272
- FieldsetLoader = () => import('./components/RandomStringConfig');
273
-
274
- useVariables(node, options) {
275
- return { value: node.key, label: node.title };
276
- }
277
- }
278
- ```
279
-
280
- ```tsx
281
- // components/RandomStringConfig.tsx
282
- import { Form, InputNumber } from 'antd';
283
-
284
- export default function RandomStringConfig() {
285
- return (
286
- <Form.Item
287
- name={['config', 'digit']}
288
- label="Digit"
289
- initialValue={6}
290
- rules={[{ required: true }]}
291
- >
292
- <InputNumber min={1} max={10} />
293
- </Form.Item>
294
- );
295
- }
296
- ```
297
-
298
- ## Other Notes
299
-
300
- ### Unchanged parts
301
-
302
- The following properties and methods have essentially the same signatures in v1 and v2, and can be kept as-is during migration:
303
-
304
- - `useVariables(node/config, options)` — Provides variable options
305
- - `useScopeVariables(node, options)` — Provides branch-scoped variables
306
- - `isAvailable(ctx)` — Node availability check (the v2 `NodeAvailableContext` adds a new `engine` property)
307
-
308
- ### New properties in v2
309
-
310
- - `getCreateModelMenuItem` — Defines the configuration for creating sub-model menu items for nodes/triggers on the v2 canvas
311
- - `useTempAssociationSource` — Provides temporary association data source information
312
- - `validate(config)` — Trigger configuration validation (triggers only)
313
- - `branching` — Declares whether the node is a branch node (nodes only)
314
- - `end` — Declares whether the node is a terminal node (nodes only)
315
- - `testable` — Declares whether the node supports test runs (nodes only)
316
-
317
- ### Value semantic consistency
318
-
319
- When migrating, make sure the form values produced by v2 components are consistent with v1, especially the payload shape during manual execution. For example, if the v1 manual execution form stores a complete record object, the v2 version must maintain the same value structure rather than storing only the primary key.
@@ -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([["23"],{8178:function(e,t,r){r.r(t),r.d(t,{BusinessReportModal:function(){return j},BusinessReportModalFooter:function(){return P}});var n=r(9155),o=r.n(n),a=r(2059),i=r(7375),l=r(3485),u=r(9488),c=r(9305),s=r(1020);function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function p(e,t,r,n,o,a,i){try{var l=e[a](i),u=l.value}catch(e){r(e);return}l.done?t(u):Promise.resolve(u).then(n,o)}function f(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var a=e.apply(t,r);function i(e){p(a,n,o,i,l,"next",e)}function l(e){p(a,n,o,i,l,"throw",e)}i(void 0)})}}function y(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function m(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function v(e){return(v=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function b(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){m(e,t,r[t])})}return e}function g(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function h(e,t){return(h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function w(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,o=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(r=o.next()).done)&&(a.push(r.value),!t||a.length!==t);i=!0);}catch(e){l=!0,n=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw n}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return d(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return d(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function k(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(k=function(){return!!e})()}function O(e,t){var r,n,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),l=Object.defineProperty;return l(i,"next",{value:u(0)}),l(i,"throw",{value:u(1)}),l(i,"return",{value:u(2)}),"function"==typeof Symbol&&l(i,Symbol.iterator,{value:function(){return this}}),i;function u(l){return function(u){var c=[l,u];if(r)throw TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(r=1,n&&(o=2&c[0]?n.return:c[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,c[1])).done)return o;switch(n=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,n=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],n=0}finally{r=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var E=function(e){var t,r;if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function n(){var e,t,r;if(!(this instanceof n))throw TypeError("Cannot call a class as a function");return t=n,r=arguments,t=v(t),m(e=function(e,t){var r;if(t&&("object"==((r=t)&&"u">typeof Symbol&&r.constructor===Symbol?"symbol":typeof r)||"function"==typeof t))return t;if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(this,k()?Reflect.construct(t,r||[],v(this).constructor):t.apply(this,r)),"state",{error:null,resetKey:e.props.resetKey}),e}return n.prototype=Object.create(e&&e.prototype,{constructor:{value:n,writable:!0,configurable:!0}}),e&&h(n,e),t=[{key:"render",value:function(){return this.state.error?this.props.fallback(this.state.error):this.props.children}}],r=[{key:"getDerivedStateFromError",value:function(e){return{error:e}}},{key:"getDerivedStateFromProps",value:function(e,t){return e.resetKey!==t.resetKey?{error:null,resetKey:e.resetKey}:null}}],t&&y(n.prototype,t),r&&y(n,r),n}(o().Component),S=function(e){var t,r,d,p,y,m,v,h,k,E,S,P,j,M,T,B,R,x,A=e.tool,_=(0,u.kj)(),C=a.theme.useToken().token,L=(t=(0,u.kj)(),r=(0,l.useApp)().apiClient.auth.getLocale(),d=(0,n.useMemo)(function(){return(0,s.cZ)(g(b({},null==A?void 0:A.args),{generatedAt:null==A?void 0:A.invokeEndTime}))},[null==A?void 0:A.args,null==A?void 0:A.invokeEndTime]),p=!["done","confirmed"].includes(A.invokeStatus),y=!!((null==d?void 0:d.title)||(null==d?void 0:d.summary)||(null==d?void 0:d.markdown)),v=(m=w((0,n.useState)(null),2))[0],h=m[1],E=(k=w((0,n.useState)(null),2))[0],S=k[1],P=(0,n.useMemo)(function(){return JSON.stringify({title:(null==d?void 0:d.title)||"",summary:(null==d?void 0:d.summary)||"",markdown:(null==d?void 0:d.markdown)||"",charts:(null==d?void 0:d.charts)||[],generatedAt:(null==d?void 0:d.generatedAt)||null})},[d]),(0,n.useEffect)(function(){h(null),S(null)},[A.id]),(0,n.useEffect)(function(){"success"===A.status&&"done"===A.invokeStatus&&y&&P!==E&&(h(d),S(P))},[y,d,P,E,A.invokeStatus,A.status]),M=(null==(j=v||d)?void 0:j.title)||t("Business analysis report"),T=(0,n.useMemo)(function(){return(0,s.wP)(j,{locale:"string"==typeof r?r:void 0,t:t})},[j,r,t]),B=(0,n.useMemo)(function(){return(0,s.e4)(j)},[j]),R=(0,n.useMemo)(function(){return p?g(b({},j),{charts:[]}):j},[j,p]),x=(0,n.useMemo)(function(){return{content:(null==R?void 0:R.markdown)?(0,s.wP)(R,{locale:"string"==typeof r?r:void 0,t:t}):"# ".concat(M,"\n\n").concat((null==j?void 0:j.summary)||t("Generating business analysis report...")),type:"text",messageId:A.id}},[null==j?void 0:j.summary,r,R,t,M,A.id]),!y&&p?{displayReport:j,isGenerating:p,markdown:T,fileName:B,previewMessage:x,title:M,locale:"string"==typeof r?r:void 0,invalid:!1,loading:!0}:{displayReport:j,isGenerating:p,markdown:T,fileName:B,previewMessage:x,title:M,locale:"string"==typeof r?r:void 0,invalid:!(null==j?void 0:j.title)&&!(null==j?void 0:j.markdown)&&!p,loading:!1}),G=L.previewMessage,F=L.displayReport,D=L.isGenerating,I=L.title,K=L.invalid,N=L.loading,H=L.markdown,X="calc(100vh - ".concat(C.controlHeightLG+6*C.marginXXL,"px)"),J=w((0,n.useState)(""),2),U=J[0],W=J[1],z=(0,n.useMemo)(function(){return JSON.stringify({title:(null==F?void 0:F.title)||"",summary:(null==F?void 0:F.summary)||"",markdown:(null==F?void 0:F.markdown)||"",charts:(null==F?void 0:F.charts)||[],generatedAt:(null==F?void 0:F.generatedAt)||null})},[F]);return((0,n.useEffect)(function(){var e=!1;return f(function(){var t,r;return O(this,function(n){switch(n.label){case 0:if(!(null==F?void 0:F.markdown)||D)return W(""),[2];n.label=1;case 1:return n.trys.push([1,3,,4]),[4,(0,s.UV)(F,{locale:L.locale,t:_})];case 2:if(t=n.sent(),e)return[2];return W(function(e){return e===t?e:t}),[3,4];case 3:return r=n.sent(),e||(console.error("Failed to build business report HTML:",r),W("")),[3,4];case 4:return[2]}})})(),function(){e=!0}},[F,z,D,L.locale,_]),N)?o().createElement(a.Result,{icon:o().createElement(i.LoadingOutlined,{spin:!0}),title:_("Generating business analysis report..."),subTitle:_("The report modal will update in real time as new content arrives.")}):K?o().createElement(a.Alert,{type:"error",showIcon:!0,message:_("Invalid report definition")}):o().createElement("div",null,o().createElement("div",null,o().createElement("div",{style:{paddingRight:C.paddingSM}},o().createElement(a.Typography.Title,{level:4,style:{marginBottom:C.marginXXS}},I,D?o().createElement(a.Spin,{indicator:o().createElement(i.LoadingOutlined,{spin:!0}),size:"small",style:{marginLeft:C.marginSM}}):null),F.summary?o().createElement(a.Typography.Paragraph,{type:"secondary",style:{marginBottom:0}},F.summary):D?o().createElement(a.Typography.Paragraph,{type:"secondary",style:{marginBottom:0}},_("The report modal will update in real time as new content arrives.")):null)),o().createElement(a.Tabs,{style:{height:X},tabBarStyle:{marginBottom:C.marginSM},items:[{key:"preview",label:_("Preview"),children:o().createElement("div",{style:{height:X,overflow:"auto",padding:C.padding,border:"".concat(C.lineWidth,"px ").concat(C.lineType," ").concat(C.colorBorderSecondary),borderRadius:C.borderRadiusLG,background:C.colorBgContainer,color:C.colorText,boxShadow:"inset 0 ".concat(C.lineWidth,"px 0 ").concat(C.colorFillQuaternary)}},o().createElement(c.oz,{message:G},G.content))},{key:"markdown",label:_("Markdown"),children:o().createElement("pre",{style:{height:X,overflow:"auto",padding:C.padding,borderRadius:C.borderRadiusLG,background:C.colorText,color:C.colorBgContainer,whiteSpace:"pre-wrap",wordBreak:"break-word"}},H||_("Generating business analysis report..."))},{key:"html",label:_("HTML"),children:U?o().createElement("iframe",{title:I,srcDoc:U,style:{width:"100%",height:X,border:"".concat(C.lineWidth,"px ").concat(C.lineType," ").concat(C.colorBorderSecondary),borderRadius:C.borderRadiusLG,background:C.colorBgContainer}}):o().createElement(a.Result,{icon:o().createElement(i.LoadingOutlined,{spin:!0}),title:_("Generating business analysis report...")})}]}))},P=function(e){var t=e.tool,r=(0,u.kj)(),c=(0,l.useApp)(),d=a.App.useApp().message,p=c.apiClient.auth.getLocale(),y=(0,n.useMemo)(function(){return(0,s.cZ)(g(b({},null==t?void 0:t.args),{generatedAt:null==t?void 0:t.invokeEndTime}))},[null==t?void 0:t.args,null==t?void 0:t.invokeEndTime]),m=!["done","confirmed"].includes(t.invokeStatus),v=(0,n.useMemo)(function(){return(0,s.wP)(y,{locale:"string"==typeof p?p:void 0,t:r})},[p,y,r]),h=(0,n.useMemo)(function(){return(0,s.e4)(y)},[y]),k=w((0,n.useState)(!1),2),E=k[0],S=k[1],P=!!(null==y?void 0:y.markdown);return o().createElement(a.Space,{wrap:!0,style:{justifyContent:"flex-end",width:"100%"}},o().createElement(a.Button,{icon:o().createElement(i.FileMarkdownOutlined,null),disabled:m||!P,onClick:function(){return(0,s.MT)("".concat(h,".md"),v,"text/markdown;charset=utf-8")}},r("Download Markdown")),o().createElement(a.Button,{icon:o().createElement(i.FileTextOutlined,null),disabled:m||!P||E,onClick:function(){return f(function(){var e;return O(this,function(t){switch(t.label){case 0:S(!0),t.label=1;case 1:return t.trys.push([1,,3,4]),[4,(0,s.UV)(y,{printMode:!0,locale:"string"==typeof p?p:void 0,t:r})];case 2:return e=t.sent(),(0,s.MT)("".concat(h,".html"),e,"text/html;charset=utf-8"),[3,4];case 3:return S(!1),[7];case 4:return[2]}})})()}},r("Download HTML")),o().createElement(a.Button,{type:"primary",icon:o().createElement(i.FilePdfOutlined,null),loading:E,disabled:m||!P||E,onClick:function(){return f(function(){return O(this,function(e){switch(e.label){case 0:S(!0),e.label=1;case 1:return e.trys.push([1,3,4,5]),[4,(0,s.Y_)(y,{locale:"string"==typeof p?p:void 0,t:r})];case 2:return e.sent()||d.error(r("Popup blocked. Please allow popups and try again.")),[3,5];case 3:return console.error("Failed to print business report:",e.sent()),d.error(r("Popup blocked. Please allow popups and try again.")),[3,5];case 4:return S(!1),[7];case 5:return[2]}})})()}},r("Print PDF")))},j=function(e){var t=e.tool,r=(0,u.kj)(),n="".concat(t.id,":").concat(t.invokeStatus,":").concat(JSON.stringify(t.args));return o().createElement(E,{resetKey:n,fallback:function(e){return o().createElement(a.Alert,{type:"error",showIcon:!0,message:r("Invalid report definition"),description:e.message})}},o().createElement(S,{tool:t}))};j.displayName="BusinessReportModal",P.displayName="BusinessReportModalFooter"}}]);
@@ -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([["264"],{2851:function(e,t,n){n.r(t),n.d(t,{MCPSettingsPage:function(){return ei},createMCPClient:function(){return V},createMCPRequestVariableNode:function(){return J},deleteMCPClient:function(){return X},deleteMCPClients:function(){return _},getMCPToolsByServer:function(){return U},listMCPClients:function(){return z},listMCPTools:function(){return $},rebuildMCPClient:function(){return W},sanitizeMCPValues:function(){return D},testMCPConnection:function(){return L},toMCPFormValues:function(){return N},updateMCPClient:function(){return H},updateMCPClientEnabled:function(){return K},updateMCPToolPermission:function(){return G}});var r=n(9155),a=n.n(r),l=n(2059),i=n(7375),u=n(5477),o=n(3485),c=n(7694),s=n(9488),f=n(9312),m=n(8666);function d(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 p(e,t,n,r,a,l,i){try{var u=e[l](i),o=u.value}catch(e){n(e);return}u.done?t(o):Promise.resolve(o).then(r,a)}function b(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var l=e.apply(t,n);function i(e){p(l,r,a,i,u,"next",e)}function u(e){p(l,r,a,i,u,"throw",e)}i(void 0)})}}function h(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function y(e,t){return null!=t&&"u">typeof Symbol&&t[Symbol.hasInstance]?!!t[Symbol.hasInstance](e):e instanceof t}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){h(e,t,n[t])})}return e}function v(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,a,l={};if("u">typeof Reflect&&Reflect.ownKeys){for(a=0,n=Reflect.ownKeys(Object(e));a<n.length;a++)r=n[a],!(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,a={},l=Object.getOwnPropertyNames(e);for(r=0;r<l.length;r++)n=l[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n]);return a}(e,t),Object.getOwnPropertySymbols)for(a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)r=n[a],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r]);return l}function C(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,a=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l=[],i=!0,u=!1;try{for(a=a.call(e);!(i=(n=a.next()).done)&&(l.push(n.value),!t||l.length!==t);i=!0);}catch(e){u=!0,r=e}finally{try{i||null==a.return||a.return()}finally{if(u)throw r}}return l}}(e,t)||S(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function w(e){return function(e){if(Array.isArray(e))return d(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||S(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 S(e,t){if(e){if("string"==typeof e)return d(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return d(e,t)}}function x(e,t){var n,r,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),u=Object.defineProperty;return u(i,"next",{value:o(0)}),u(i,"throw",{value:o(1)}),u(i,"return",{value:o(2)}),"function"==typeof Symbol&&u(i,Symbol.iterator,{value:function(){return this}}),i;function o(u){return function(o){var c=[u,o];if(n)throw TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(l=0)),l;)try{if(n=1,r&&(a=2&c[0]?r.return:c[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,c[1])).done)return a;switch(r=0,a&&(c=[2&c[0],a.value]),c[0]){case 0:case 1:a=c;break;case 4:return l.label++,{value:c[1],done:!1};case 5:l.label++,r=c[1],c=[0];continue;case 7:c=l.ops.pop(),l.trys.pop();continue;default:if(!(a=(a=l.trys).length>0&&a[a.length-1])&&(6===c[0]||2===c[0])){l=0;continue}if(3===c[0]&&(!a||c[1]>a[0]&&c[1]<a[3])){l.label=c[1];break}if(6===c[0]&&l.label<a[1]){l.label=a[1],a=c;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(c);break}a[2]&&l.ops.pop(),l.trys.pop();continue}c=t.call(e,l)}catch(e){c=[6,e],r=0}finally{n=a=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}function P(){var e,t,n=(e=["\n flex: 1;\n min-height: 0;\n display: flex;\n flex-direction: column;\n\n .ant-spin-nested-loading,\n .ant-spin-container,\n .ant-table,\n .ant-table-container {\n min-height: 0;\n flex: 1;\n display: flex;\n flex-direction: column;\n }\n\n .ant-table-content {\n flex: 1;\n min-height: 0;\n }\n\n .ant-table-body {\n flex: 1;\n min-height: 0;\n }\n\n .ant-table-thead > tr > th {\n white-space: nowrap;\n }\n\n .ant-pagination {\n flex: 0 0 auto;\n }\n"],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return P=function(){return n},n}var O=[{label:"Stdio",value:"stdio"},{label:"HTTP (Streamable)",value:"http"},{label:"HTTP + SSE (Legacy)",value:"sse"}],A={stdio:"blue",http:"green",sse:"gold"},F=(0,u.css)(P()),k=function(e){return null!==e&&(void 0===e?"undefined":e&&"u">typeof Symbol&&e.constructor===Symbol?"symbol":typeof e)=="object"&&!Array.isArray(e)},j=function(e){var t,n;if(k(e))return null!=(t=null==(n=e.data)?void 0:n.data)?t:e.data},T=function(e){if(k(e)){var t,n=null==(t=e.data)?void 0:t.count;return"number"==typeof n?n:void 0}},M=function(e,t,n,r){return b(function(){var a;return x(this,function(l){if("function"!=typeof(a=e.resource(t)[n]))throw Error("Missing resource action: ".concat(t,".").concat(n));return[2,a(r)]})})()},I=function(e){var t;return k(e)&&"string"==typeof e.name&&("stdio"===(t=e.transport)||"http"===t||"sse"===t)},q=function(e){return k(e)&&"string"==typeof e.name&&"string"==typeof e.title&&"string"==typeof e.serverName},R=function(e){return Object.entries(e||{}).map(function(e){var t=C(e,2),n=t[0],r=t[1];return{name:n,value:null==r?"":String(r)}})},B=function(e){return k(e)?Object.entries(e).reduce(function(e,t){var n=C(t,2),r=n[0],a=n[1];return r&&(e[r]=null==a?"":String(a)),e},{}):(Array.isArray(e)?e:[]).reduce(function(e,t){return(null==t?void 0:t.name)&&(e[t.name]=t.value||""),e},{})},D=function(e){var t=e.transport,n=v(g({},e),{useUserContext:"stdio"!==t&&!0===e.useUserContext,args:"string"==typeof e.args?e.args.split(" ").map(function(e){return e.trim()}).filter(Boolean):Array.isArray(e.args)?e.args:[],env:B(e.env),headers:B(e.headers),restart:k(e.restart)?e.restart:{}});return"stdio"===t?v(g({},n),{url:null,headers:{}}):v(g({},n),{command:null,args:[],env:{}})},N=function(e){return v(g({},e),{args:Array.isArray(e.args)?e.args.join(" "):"",env:R(e.env),headers:R(e.headers),restart:k(e.restart)?e.restart:{}})},U=function(e,t){var n=null==e?void 0:e[t];return Array.isArray(n)?n.filter(q):[]};function z(e){return b(function(){var t,n;return x(this,function(r){switch(r.label){case 0:return[4,M(e,"aiMcpClients","list")];case 1:return[2,{data:Array.isArray(n=j(t=r.sent()))?n.filter(I):[],total:T(t)}]}})})()}function L(e,t){return b(function(){var n;return x(this,function(r){switch(r.label){case 0:return[4,M(e,"aiMcpClients","testConnection",{values:D(t)})];case 1:var a;return[2,k(a=n=j(r.sent()))&&"boolean"==typeof a.success?n:null]}})})()}function V(e,t){return b(function(){return x(this,function(n){switch(n.label){case 0:return[4,M(e,"aiMcpClients","create",{values:D(t)})];case 1:return n.sent(),[2]}})})()}function H(e,t,n){return b(function(){return x(this,function(r){switch(r.label){case 0:return[4,M(e,"aiMcpClients","update",{values:D(t),filterByTk:n})];case 1:return r.sent(),[2]}})})()}function X(e,t){return b(function(){return x(this,function(n){switch(n.label){case 0:return[4,M(e,"aiMcpClients","destroy",{filterByTk:t})];case 1:return n.sent(),[2]}})})()}function _(e,t){return b(function(){return x(this,function(n){switch(n.label){case 0:return[4,M(e,"aiMcpClients","destroy",{filterByTk:t})];case 1:return n.sent(),[2]}})})()}function K(e,t,n){return b(function(){return x(this,function(r){switch(r.label){case 0:return[4,M(e,"aiMcpClients","update",{filterByTk:t,values:{enabled:n}})];case 1:return r.sent(),[2]}})})()}function W(e){return b(function(){return x(this,function(t){switch(t.label){case 0:return[4,M(e,"aiMcpClients","rebuildClient")];case 1:return t.sent(),[2]}})})()}function $(e,t){return b(function(){var n;return x(this,function(r){switch(r.label){case 0:return[4,M(e,"aiMcpClients","listTools")];case 1:return[2,k(n=j(r.sent()))?U(n,t):[]]}})})()}function G(e,t,n){return b(function(){return x(this,function(r){switch(r.label){case 0:return[4,M(e,"aiMcpClients","updateToolPermission",{values:{toolName:t,permission:n}})];case 1:return r.sent(),[2]}})})()}var J=function(e){return{name:"request",title:e("NocoBase request"),type:"object",paths:["request"],children:[{name:"headers",title:"headers",type:"object",paths:["request","headers"],children:[{name:"x-app",title:"X-App",type:"string",paths:["request","headers","x-app"]},{name:"x-locale",title:"X-Locale",type:"string",paths:["request","headers","x-locale"]},{name:"x-hostname",title:"X-Hostname",type:"string",paths:["request","headers","x-hostname"]},{name:"x-timezone",title:"X-Timezone",type:"string",paths:["request","headers","x-timezone"]},{name:"x-role",title:"X-Role",type:"string",paths:["request","headers","x-role"]},{name:"x-authenticator",title:"X-Authenticator",type:"string",paths:["request","headers","x-authenticator"]}]},{name:"token",title:"Token",type:"string",paths:["request","token"]}]}},Q=function(e,t){var n,r=(null==(n=e.paths)?void 0:n.length)?[t].concat(w(e.paths.slice(1))):[t];return v(g({},e),{name:1===r.length?t:e.name,paths:r,children:function(e){if(e)return"function"==typeof e?function(){return b(function(){return x(this,function(n){switch(n.label){case 0:return[4,e()];case 1:return[2,n.sent().map(function(e){return Q(e,t)})]}})})()}:e.map(function(e){return Q(e,t)})}(e.children)})},Y=function(e){var t=(0,c.useFlowContext)(),n=(0,s.kj)();return(0,r.useMemo)(function(){if(!e)return[];var r,a=null==(r=t.getPropertyMetaTree)?void 0:r.call(t).find(function(e){return"user"===e.name});return[a?Q(a,"$user"):null,J(n)].filter(function(e){return!!e})},[e,t,n])},Z=function(e){var t=e.variableScope,n=E(e,["variableScope"]),r=l.Form.useFormInstance(),i=l.Form.useWatch("useUserContext",r),u=Y("user"===(void 0===t?"env":t)&&!0===i);return a().createElement(o.VariableInput,v(g({},n),{namespaces:["$env"],extraNodes:u}))},ee=function(e){var t=e.tooltip,n=E(e,["tooltip"]),i=l.Form.useFormInstance(),u="stdio"===l.Form.useWatch("transport",i);(0,r.useEffect)(function(){u&&i.getFieldValue("useUserContext")&&i.setFieldValue("useUserContext",!1)},[u,i]);var o=a().createElement(l.Checkbox,v(g({},n),{disabled:u||n.disabled}));return t?a().createElement(l.Tooltip,{title:t},o):o},et=function(e){var t=e.value,n=e.onChange,r=e.addLabel,u=e.variableScope,o=void 0===u?"env":u,c=(0,s.kj)(),f=Array.isArray(t)?t:R(t),m=function(e,t,r){var a=w(f);a[e]=v(g({},a[e]),h({},t,r)),null==n||n(a)};return a().createElement(l.Flex,{vertical:!0,gap:"small"},f.map(function(e,t){return a().createElement(l.Flex,{key:t,gap:"small",align:"baseline"},a().createElement(l.Input,{placeholder:c("Name"),value:e.name,onChange:function(e){return m(t,"name",e.target.value)}}),a().createElement(Z,{variableScope:o,value:e.value,onChange:function(e){return m(t,"value",e)}}),a().createElement(l.Button,{"aria-label":c("Delete"),type:"text",icon:a().createElement(i.DeleteOutlined,null),onClick:function(){return null==n?void 0:n(f.filter(function(e,n){return n!==t}))}}))}),a().createElement(l.Button,{type:"dashed",icon:a().createElement(i.PlusOutlined,null),onClick:function(){return null==n?void 0:n(w(f).concat([{name:"",value:""}]))}},r))},en=function(e){var t=e.editing,n=e.testResult,r=e.testing,i=(0,s.kj)(),u=l.Form.useFormInstance(),o=l.Form.useWatch("transport",u);return a().createElement(a().Fragment,null,a().createElement(l.Form.Item,{name:"name",label:i("Name"),rules:[{required:!0}]},a().createElement(l.Input,{disabled:t})),a().createElement(l.Form.Item,{name:"title",label:i("Title"),rules:[{required:!0}]},a().createElement(l.Input,null)),a().createElement(l.Form.Item,{name:"description",label:i("Description")},a().createElement(l.Input.TextArea,{autoSize:{minRows:2,maxRows:4}})),a().createElement(l.Form.Item,{name:"transport",label:i("Transport"),rules:[{required:!0}]},a().createElement(l.Select,{options:O.map(function(e){return v(g({},e),{label:i(e.label)})})})),a().createElement(l.Form.Item,{name:"useUserContext",label:i("Depends on current user"),valuePropName:"checked"},a().createElement(ee,{tooltip:i("When enabled, URL and headers can use current user variables and NocoBase request variables. Stdio transport is not supported.")})),"stdio"===o?a().createElement(a().Fragment,null,a().createElement(l.Form.Item,{name:"command",label:i("Command"),rules:[{required:!0}]},a().createElement(Z,{placeholder:i("For example: npx, uvx, node")})),a().createElement(l.Form.Item,{name:"args",label:i("Arguments")},a().createElement(Z,{placeholder:i("Space-separated args, e.g.: -u --flag value")})),a().createElement(l.Form.Item,{name:"env",label:i("Environment variables")},a().createElement(et,{addLabel:i("Add variable")}))):null,"http"===o||"sse"===o?a().createElement(a().Fragment,null,a().createElement(l.Form.Item,{name:"url",label:i("URL"),rules:[{required:!0}]},a().createElement(Z,{variableScope:"user",placeholder:i("For example: https://example.com/mcp")})),a().createElement(l.Form.Item,{name:"headers",label:i("Headers")},a().createElement(et,{variableScope:"user",addLabel:i("Add request header")}))):null,a().createElement(er,{result:n,loading:r}))},er=function(e){var t,n=e.result,r=e.loading,u=(0,s.kj)();return r?a().createElement(l.Flex,{justify:"center"},a().createElement(l.Spin,{tip:u("Testing connection...")})):n?n.success?a().createElement(l.Alert,{type:"success",showIcon:!0,icon:a().createElement(i.CheckCircleOutlined,null),message:u("Connection Successful"),description:a().createElement(l.Flex,{vertical:!0,gap:"small"},a().createElement("span",null,u("Successfully connected to MCP server")),a().createElement("span",null,u("Tools found"),": ",n.toolsCount),(null==(t=n.tools)?void 0:t.length)?a().createElement(l.Space,{wrap:!0},n.tools.map(function(e){return a().createElement(l.Tag,{key:e},e)}),n.toolsTruncated?a().createElement("span",null,"..."):null):null)}):a().createElement(l.Alert,{type:"error",showIcon:!0,icon:a().createElement(i.CloseCircleOutlined,null),message:u("Connection Failed"),description:a().createElement(l.Flex,{vertical:!0,gap:"small"},a().createElement("span",null,n.error||u("Failed to connect to MCP server")),n.details?a().createElement(l.Typography.Text,{code:!0},n.details):null)}):null},ea=function(e){var t=e.record,n=e.rebuilding,i=(0,o.useApp)(),u=(0,s.kj)(),c=l.App.useApp().message,f=C((0,r.useState)([]),2),m=f[0],d=f[1],p=C((0,r.useState)(!1),2),h=p[0],E=p[1],w=C((0,r.useState)(null),2),S=w[0],P=w[1],O=(0,r.useRef)(c),A=(0,r.useRef)(u);return(O.current=c,A.current=u,(0,r.useEffect)(function(){var e=!1;return b(function(){var n,r;return x(this,function(a){switch(a.label){case 0:E(!0),a.label=1;case 1:return a.trys.push([1,3,4,5]),[4,$(i.apiClient,t.name)];case 2:return n=a.sent(),e||d(n),[3,5];case 3:return r=a.sent(),e||(O.current.error(y(r,Error)?r.message:A.current("Failed to load MCP tools")),d([])),[3,5];case 4:return e||E(!1),[7];case 5:return[2]}})})().catch(function(e){console.error(e)}),function(){e=!0}},[i.apiClient,t.name]),h)?a().createElement(l.Flex,{justify:"center"},a().createElement(l.Spin,null)):m.length?a().createElement(l.List,{itemLayout:"vertical",dataSource:m,pagination:{pageSize:10,hideOnSinglePage:!1,size:"small",showTotal:function(e){return u("Total {{count}} items",{count:e})}},renderItem:function(e){return a().createElement(l.List.Item,{key:e.name,extra:a().createElement(l.Space,null,a().createElement(l.Typography.Text,{type:"secondary"},u("Permission")),a().createElement(l.Segmented,{size:"small",options:[{label:u("Ask"),value:"ASK"},{label:u("Allow"),value:"ALLOW"}],value:e.permission,disabled:n||S===e.name,onChange:function(t){var n;return n=e.name,b(function(){var e,r;return x(this,function(a){switch(a.label){case 0:e=m,P(n),d(function(e){return e.map(function(e){return e.name===n?v(g({},e),{permission:t}):e})}),a.label=1;case 1:return a.trys.push([1,3,4,5]),[4,G(i.apiClient,n,t)];case 2:return a.sent(),[3,5];case 3:return r=a.sent(),d(e),O.current.error(y(r,Error)?r.message:A.current("Failed to update tool permission")),[3,5];case 4:return P(null),[7];case 5:return[2]}})})()}}))},a().createElement("div",null,e.title),e.description?a().createElement(l.Typography.Paragraph,{type:"secondary",ellipsis:{rows:3,expandable:"collapsible"}},e.description):null)}}):a().createElement(l.Empty,{image:l.Empty.PRESENTED_IMAGE_SIMPLE,description:u("No data")})},el=function(e){var t=e.record,n=e.rebuilding,i=e.onUpdated,u=(0,o.useApp)(),c=C((0,r.useState)(!1),2),s=c[0],f=c[1];return a().createElement(l.Switch,{size:"small",checked:!1!==t.enabled,loading:s,disabled:n,onChange:function(e){return b(function(){return x(this,function(n){switch(n.label){case 0:f(!0),n.label=1;case 1:return n.trys.push([1,,5,6]),[4,K(u.apiClient,t.name,e)];case 2:return n.sent(),[4,W(u.apiClient)];case 3:return n.sent(),[4,i()];case 4:return n.sent(),[3,6];case 5:return f(!1),[7];case 6:return[2]}})})()}})},ei=function(){var e=(0,o.useApp)(),t=(0,c.useFlowContext)(),n=(0,s.kj)(),u=l.App.useApp(),m=u.message;u.modal;var d=l.theme.useToken().token,p=C((0,r.useState)([]),2),h=p[0],y=p[1],g=C((0,r.useState)(!1),2),v=g[0],E=g[1],w=C((0,r.useState)([]),2),S=w[0],P=w[1],k=C((0,r.useState)(!1),2),j=k[0],T=k[1],M=(0,r.useRef)(Promise.resolve()),I=(0,r.useRef)(0),q=(0,r.useMemo)(function(){return{color:d.colorPrimary,marginInline:-d.paddingSM,paddingBlockEnd:d.paddingSM,paddingBlockStart:d.paddingSM+d.paddingXS,paddingInlineEnd:d.paddingXS+d.paddingSM,paddingInlineStart:d.paddingSM}},[d.colorPrimary,d.paddingSM,d.paddingXS]),R=(0,r.useCallback)(function(){return b(function(){var t;return x(this,function(n){return I.current+=1,T(!0),t=M.current.catch(function(){}).then(function(){return b(function(){return x(this,function(t){switch(t.label){case 0:return[4,W(e.apiClient)];case 1:return t.sent(),[2]}})})()}),M.current=t.finally(function(){I.current-=1,0===I.current&&T(!1)}),[2,t]})})()},[e.apiClient]),B=(0,r.useCallback)(function(){return b(function(){return x(this,function(t){switch(t.label){case 0:E(!0),t.label=1;case 1:return t.trys.push([1,,3,4]),[4,z(e.apiClient)];case 2:return y(t.sent().data),[3,4];case 3:return E(!1),[7];case 4:return[2]}})})()},[e.apiClient]);(0,r.useEffect)(function(){B().catch(function(e){console.error(e),E(!1)})},[B]);var D=function(e){t.viewer.open({type:"drawer",width:f.o,closable:!0,content:a().createElement(eu,{record:e,rebuilding:j,rebuildClient:R,onSubmitted:B})})},N=[{title:n("Name"),dataIndex:"name"},{title:n("Title"),dataIndex:"title"},{title:n("Transport"),dataIndex:"transport",render:function(e){var t,r=(null==(t=O.find(function(t){return t.value===e}))?void 0:t.label)||e;return a().createElement(l.Tag,{color:A[e]},n(r))}},{title:n("Enabled"),dataIndex:"enabled",render:function(e,t){return a().createElement(el,{record:t,rebuilding:j,onUpdated:B})}},{title:n("Actions"),key:"actions",render:function(r,i){return a().createElement(l.Space,{size:d.marginXS},a().createElement("a",{style:q,onClick:function(){t.viewer.open({type:"drawer",width:f.p,closable:!0,content:a().createElement(eo,{record:i,rebuilding:j})})}},n("View")),a().createElement("a",{style:q,onClick:function(){return D(i)}},n("Edit")),a().createElement(l.Popconfirm,{title:n("Delete record"),description:n("Are you sure you want to delete it?"),onConfirm:function(){return b(function(){return x(this,function(t){switch(t.label){case 0:return[4,X(e.apiClient,i.name)];case 1:return t.sent(),[4,R()];case 2:return t.sent(),m.success(n("Saved successfully")),[4,B()];case 3:return t.sent(),[2]}})})()}},a().createElement("a",{style:q},n("Delete"))))}}];return a().createElement(l.Card,{style:{display:"flex",flexDirection:"column",minHeight:"100%"},styles:{body:{display:"flex",flex:1,flexDirection:"column",minHeight:0}}},a().createElement(l.Flex,{vertical:!0,gap:"middle",style:{flex:1,minHeight:0}},a().createElement(l.Flex,{justify:"end",wrap:"wrap",gap:"middle"},a().createElement(l.Space,null,a().createElement(l.Button,{icon:a().createElement(i.ReloadOutlined,null),onClick:function(){return B()}},n("Refresh")),a().createElement(l.Popconfirm,{title:n("Delete record"),description:n("Are you sure you want to delete it?"),disabled:!S.length||j,onConfirm:function(){return b(function(){var t;return x(this,function(r){switch(r.label){case 0:if(!(t=S.filter(function(e){return"string"==typeof e})).length)return[2];return[4,_(e.apiClient,t)];case 1:return r.sent(),[4,R()];case 2:return r.sent(),P([]),m.success(n("Saved successfully")),[4,B()];case 3:return r.sent(),[2]}})})()}},a().createElement(l.Button,{icon:a().createElement(i.DeleteOutlined,null),disabled:!S.length||j},n("Delete"))),a().createElement(l.Button,{type:"primary",icon:a().createElement(i.PlusOutlined,null),onClick:function(){t.viewer.open({type:"drawer",width:f.o,closable:!0,content:a().createElement(eu,{rebuilding:j,rebuildClient:R,onSubmitted:B})})},disabled:j},n("Add new")))),a().createElement("div",{style:{display:"flex",flex:1,flexDirection:"column",minHeight:0}},a().createElement(o.Table,{rowKey:"name",loading:v,columns:N,dataSource:h,className:F,rowSelection:{selectedRowKeys:S,onChange:P},pagination:{defaultPageSize:20,showTotal:function(e){return n("Total {{count}} items",{count:e})}},scroll:{x:"max-content",y:"100%"}}))))},eu=function(e){var t=e.record,n=e.rebuilding,i=e.rebuildClient,u=e.onSubmitted,f=(0,o.useApp)(),d=(0,c.useFlowContext)(),p=(0,s.kj)(),h=l.App.useApp(),g=h.message,v=h.modal,E=C(l.Form.useForm(),1)[0],w=C((0,r.useState)(!1),2),S=w[0],P=w[1],O=C((0,r.useState)(!1),2),A=O[0],F=O[1],k=C((0,r.useState)(null),2),j=k[0],T=k[1],M=C((0,r.useState)(!1),2),I=M[0],q=M[1],R=(0,r.useMemo)(function(){return t?N(t):{name:"",title:"",enabled:!0,transport:"stdio",useUserContext:!1,command:"",url:"",args:"",env:[],headers:[],restart:{}}},[t]),B=d.view,U=B.Header,z=B.Footer;(0,r.useEffect)(function(){E.setFieldsValue(R)},[E,R]);var X=(0,m.C)({view:d.view,form:E,initialValues:R,dirty:I,title:p("Unsaved changes"),content:p("Are you sure you don't want to save?")}),_=function(){return b(function(){var e,t,n;return x(this,function(r){switch(r.label){case 0:e=E.getFieldsValue(!0),F(!0),T(null),r.label=1;case 1:return r.trys.push([1,3,4,5]),[4,L(f.apiClient,e)];case 2:return T(t=r.sent()),[2,!!(null==t?void 0:t.success)];case 3:return T({success:!1,error:y(n=r.sent(),Error)?n.message:p("An error occurred while testing the connection")}),[2,!1];case 4:return F(!1),[7];case 5:return[2]}})})()};return a().createElement(a().Fragment,null,a().createElement(U,{title:t?p("Edit record"):p("Add new")}),a().createElement(l.Spin,{spinning:S},a().createElement(l.Form,{form:E,layout:"vertical",onFinish:function(e){return b(function(){return x(this,function(n){switch(n.label){case 0:P(!0),n.label=1;case 1:return n.trys.push([1,,12,13]),[4,_()];case 2:if(n.sent())return[3,4];if(!0!==D(e).useUserContext)return[2];return[4,v.confirm({title:p("Connection test failed"),content:p("The MCP server uses current user variables and the connection test failed. Do you want to save it anyway?"),okText:p("Save anyway"),cancelText:p("Cancel")})];case 3:if(!n.sent())return[2];n.label=4;case 4:if(!t)return[3,6];return[4,H(f.apiClient,e,t.name)];case 5:return n.sent(),[3,8];case 6:return[4,V(f.apiClient,e)];case 7:n.sent(),n.label=8;case 8:return[4,i()];case 9:return n.sent(),g.success(p("Saved successfully")),[4,u()];case 10:return n.sent(),[4,d.view.close(void 0,!0)];case 11:return n.sent(),[3,13];case 12:return P(!1),[7];case 13:return[2]}})})()},onValuesChange:function(){return q(!0)}},a().createElement(en,{editing:!!t,testResult:j,testing:A}))),a().createElement(z,null,a().createElement(l.Flex,{justify:"end",gap:"small"},a().createElement(l.Space,null,a().createElement(l.Button,{loading:A,onClick:function(){return _()}},p("Test flight")),a().createElement(l.Button,{onClick:X},p("Cancel")),a().createElement(l.Button,{type:"primary",loading:S||A||n,onClick:function(){return E.submit()}},p("Submit"))))))},eo=function(e){var t=e.record,n=e.rebuilding,r=(0,c.useFlowContext)(),l=(0,s.kj)(),i=r.view.Header;return a().createElement(a().Fragment,null,a().createElement(i,{title:l("MCP tools")}),a().createElement(ea,{record:t,rebuilding:n}))};t.default=ei}}]);