@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.
- package/client-v2.d.ts +1 -0
- package/dist/ai/docs/nocobase/api/app/env.md +28 -1
- package/dist/ai/docs/nocobase/api/cli/config/delete.md +8 -6
- package/dist/ai/docs/nocobase/api/cli/config/get.md +8 -6
- package/dist/ai/docs/nocobase/api/cli/config/index.md +37 -26
- package/dist/ai/docs/nocobase/api/cli/config/set.md +14 -8
- package/dist/ai/docs/nocobase/file-manager/field-attachment.md +6 -0
- package/dist/ai/docs/nocobase/file-manager/file-preview/index.md +3 -12
- package/dist/ai/docs/nocobase/file-manager/storage/aliyun-oss.md +9 -0
- package/dist/ai/docs/nocobase/file-manager/storage/amazon-s3.md +9 -0
- package/dist/ai/docs/nocobase/file-manager/storage/index.md +23 -0
- package/dist/ai/docs/nocobase/file-manager/storage/local.md +9 -0
- package/dist/ai/docs/nocobase/file-manager/storage/migrate-to-s3-pro.md +269 -0
- package/dist/ai/docs/nocobase/file-manager/storage/tencent-cos.md +9 -0
- package/dist/ai/docs/nocobase/get-started/installation/docker-caddy.mdx +170 -0
- package/dist/ai/docs/nocobase/get-started/installation/docker-nginx.mdx +172 -0
- package/dist/ai/docs/nocobase/get-started/installation/env.md +14 -4
- package/dist/ai/docs/nocobase/interface-builder/blocks/data-blocks/comment.md +107 -0
- package/dist/ai/docs/nocobase/ops-management/version-control/index.md +1 -0
- package/dist/ai/docs/nocobase/plugins/@nocobase/plugin-block-comment/index.md +14 -0
- package/dist/ai/docs/nocobase/workflow/development/api.md +259 -77
- package/dist/ai/docs/nocobase/workflow/development/index.md +2 -1
- package/dist/ai/docs/nocobase/workflow/development/migration.md +319 -0
- package/dist/ai/docs/nocobase/workflow/development/node.md +84 -51
- package/dist/ai/docs/nocobase/workflow/development/trigger.md +122 -20
- package/dist/client/23.65ea8c37cd4b884b.js +10 -0
- package/dist/client/264.cc98933ef65608b6.js +10 -0
- package/dist/client/336.7a8a8853196ad779.js +11 -0
- package/dist/client/372.da38fe350bf841f4.js +10 -0
- package/dist/client/416.92b74ca47e4099c4.js +10 -0
- package/dist/client/446.d63c38d0309fe250.js +10 -0
- package/dist/client/525.203778500aca5d05.js +10 -0
- package/dist/client/663.680bcf6272a8504d.js +10 -0
- package/dist/client/681.399948c18d753667.js +10 -0
- package/dist/client/705.380279da896021fb.js +10 -0
- package/dist/client/ai-employees/1.x/selector/AIContextCollector.d.ts +1 -4
- package/dist/client/ai-employees/permissions/PermissionsTab.d.ts +21 -5
- package/dist/client/index.d.ts +15 -20
- package/dist/client/index.js +8 -8
- package/dist/client/workflow/nodes/employee/index.d.ts +2 -23
- package/dist/client/workflow/nodes/llm/index.d.ts +2 -52
- package/dist/client/workflow/triggers/ai-employee/index.d.ts +2 -83
- package/dist/client-v2/23.1bcb6986b40723d8.js +10 -0
- package/dist/client-v2/264.be92ff6a4d2612f1.js +10 -0
- package/dist/client-v2/336.e406470429e0670e.js +11 -0
- package/dist/client-v2/372.d76ea1ceed2be2a4.js +10 -0
- package/dist/client-v2/406.341be51205c674e0.js +10 -0
- package/dist/client-v2/416.0e1c2d9cde43b83d.js +10 -0
- package/dist/client-v2/446.073d450882db29fd.js +10 -0
- package/dist/client-v2/457.d72febb89e88fc00.js +10 -0
- package/dist/client-v2/663.342341f0b2b412d8.js +10 -0
- package/dist/client-v2/681.082f4f1c7b841983.js +10 -0
- package/dist/client-v2/705.1d10027ff8cfdf79.js +10 -0
- package/dist/{client/ai-employees/admin/AvatarSelect.d.ts → client-v2/ai-employees/AIEmployeeDropdown.d.ts} +8 -9
- package/dist/client-v2/ai-employees/AIEmployeeShortcut.d.ts +9 -2
- package/dist/{client → client-v2}/ai-employees/AddContextButton.d.ts +1 -1
- package/dist/{client → client-v2}/ai-employees/ai-coding/AICodingButton.d.ts +2 -1
- package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/Actions.d.ts +2 -4
- package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/AddLLMModal.d.ts +2 -4
- package/dist/client-v2/ai-employees/chatbox/components/Attachments.d.ts +27 -0
- package/dist/{client/ai-employees/permissions/Permissions.d.ts → client-v2/ai-employees/chatbox/components/ChatBox.d.ts} +2 -2
- package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/ChatBoxLayout.d.ts +1 -1
- package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/ContextItem.d.ts +1 -1
- package/dist/{client/ai-employees/admin/Employees.d.ts → client-v2/ai-employees/chatbox/components/DebugPanel.d.ts} +1 -1
- package/dist/{client/ai-employees/chatbox/markdown/Code.d.ts → client-v2/ai-employees/chatbox/components/Markdown.d.ts} +12 -5
- package/dist/{client/ai-employees/admin/ProfileSettings.d.ts → client-v2/ai-employees/chatbox/components/MessageContent.d.ts} +3 -2
- package/dist/client-v2/ai-employees/chatbox/components/MessageRenderers.d.ts +39 -0
- package/dist/{client/ai-employees/chatbox/generative-ui → client-v2/ai-employees/chatbox/components}/ToolCard.d.ts +7 -5
- package/dist/{client/ai-employees/admin/datasource/components/basic → client-v2/ai-employees/chatbox/components}/index.d.ts +5 -2
- package/dist/{client → client-v2}/ai-employees/chatbox/hooks/useChat.d.ts +21 -22
- package/dist/client-v2/ai-employees/chatbox/hooks/useChatBoxActions.d.ts +3 -2
- package/dist/{client → client-v2}/ai-employees/chatbox/hooks/useChatConversationActions.d.ts +2 -2
- package/dist/{client → client-v2}/ai-employees/chatbox/hooks/useChatMessageActions.d.ts +8 -4
- package/dist/{client → client-v2}/ai-employees/chatbox/hooks/useToolCallActions.d.ts +1 -1
- package/dist/client-v2/ai-employees/chatbox/hooks/useUploadFiles.d.ts +46 -0
- package/dist/{client → client-v2}/ai-employees/chatbox/hooks/useWorkflowTasks.d.ts +1 -1
- package/dist/{client → client-v2}/ai-employees/chatbox/model.d.ts +9 -2
- package/dist/client-v2/ai-employees/chatbox/roles.d.ts +162 -0
- package/dist/client-v2/ai-employees/chatbox/stores/chat-box.d.ts +1 -49
- package/dist/client-v2/ai-employees/chatbox/stores/chat-conversations.d.ts +2 -19
- package/dist/client-v2/ai-employees/chatbox/stores/chat-messages.d.ts +1 -46
- package/dist/{client → client-v2}/ai-employees/chatbox/stores/chat-tool-call.d.ts +1 -15
- package/dist/client-v2/ai-employees/chatbox/stores/chat-tools.d.ts +30 -0
- package/dist/client-v2/ai-employees/chatbox/stores/create-selectors.d.ts +31 -3
- package/dist/{client/ai-employees/chatbox/conversations/common.d.ts → client-v2/ai-employees/chatbox/stores/workflow-tasks.d.ts} +21 -4
- package/dist/{client → client-v2}/ai-employees/chatbox/utils.d.ts +21 -6
- package/dist/{client/ai-employees/data-visualization/context.d.ts → client-v2/ai-employees/context/chart-config.d.ts} +1 -1
- package/dist/{client → client-v2}/ai-employees/context/code-editor.d.ts +1 -1
- package/dist/{client → client-v2}/ai-employees/context/datasource.d.ts +1 -1
- package/dist/{client → client-v2}/ai-employees/context/flow-models.d.ts +1 -1
- package/dist/{client/ai-employees/admin/datasource/components/DatasourceSettingDetail.d.ts → client-v2/ai-employees/data-modeling/setup.d.ts} +6 -5
- package/dist/{client → client-v2}/ai-employees/datasource/DatasourceSelector.d.ts +6 -2
- package/dist/{client/ai-employees/admin/datasource/flow-models/DatasourceSettingModel.d.ts → client-v2/ai-employees/flow/index.d.ts} +4 -6
- package/dist/{client → client-v2}/ai-employees/form-filler/tools/index.d.ts +1 -1
- package/dist/{client → client-v2}/ai-employees/stores/ai-selection.d.ts +4 -4
- package/dist/{client → client-v2}/ai-employees/stores/dialog-controller.d.ts +4 -4
- package/dist/{client/ai-employees/business-report/ui → client-v2/ai-employees/tools}/BusinessReportCard.d.ts +2 -2
- package/dist/{client/ai-employees/business-report/ui → client-v2/ai-employees/tools}/BusinessReportModal.d.ts +2 -2
- package/dist/{client/ai-employees/1.x/selector/withAISelectable.d.ts → client-v2/ai-employees/tools/ChartGeneratorCard.d.ts} +5 -4
- package/dist/{client/ai-employees/ai-coding/ui → client-v2/ai-employees/tools}/CodeToolCard.d.ts +1 -1
- package/dist/{client/ai-employees/data-modeling/ui → client-v2/ai-employees/tools}/DataModelingCard.d.ts +3 -5
- package/dist/{client/ai-employees/data-modeling/ui → client-v2/ai-employees/tools}/DataModelingModal.d.ts +4 -6
- package/dist/{client/ai-employees/sub-agents/ui → client-v2/ai-employees/tools}/SubAgentDispatchCard.d.ts +4 -9
- package/dist/{client/ai-employees/AISettingsProvider.d.ts → client-v2/ai-employees/tools/SuggestionsOptionsCard.d.ts} +6 -8
- package/dist/{client/ai-employees/workflow-tasks/ui → client-v2/ai-employees/tools}/WorkflowTaskOutputCard.d.ts +7 -2
- package/dist/{client/ai-employees/ai-coding/tools/context-tools.d.ts → client-v2/ai-employees/tools/ai-coding.d.ts} +3 -1
- package/dist/client-v2/ai-employees/tools/business-report-utils.d.ts +45 -0
- package/dist/{client/ai-employees/data-modeling/ui → client-v2/ai-employees/tools/data-modeling}/CollectionNode.d.ts +2 -3
- package/dist/{client/ai-employees/data-modeling/ui → client-v2/ai-employees/tools/data-modeling}/Diagram.d.ts +1 -1
- package/dist/{client/ai-employees/data-modeling/ui → client-v2/ai-employees/tools/data-modeling}/Table.d.ts +2 -2
- package/dist/client-v2/ai-employees/tools/data-modeling/legacy-template.d.ts +13 -0
- package/dist/client-v2/ai-employees/tools/data-modeling/runtime.d.ts +15 -0
- package/dist/{client/ai-employees → client-v2/ai-employees/tools}/data-modeling/types.d.ts +27 -4
- package/dist/client-v2/ai-employees/tools/data-modeling/useFieldInterfaceOptions.d.ts +150 -0
- package/dist/{client/ai-employees/data-visualization/tools/index.d.ts → client-v2/ai-employees/tools/data-visualization.d.ts} +1 -1
- package/dist/client-v2/ai-employees/tools/index.d.ts +32 -0
- package/dist/client-v2/ai-employees/types.d.ts +101 -7
- package/dist/client-v2/components/RemoteSelect.d.ts +43 -0
- package/dist/{client → client-v2}/debug-logger.d.ts +2 -2
- package/dist/client-v2/f0053e745af0ad03.svg +50 -0
- package/dist/client-v2/index.d.ts +9 -8
- package/dist/client-v2/index.js +37 -1
- package/dist/client-v2/llm-providers/forms.d.ts +42 -0
- package/dist/client-v2/llm-providers/index.d.ts +23 -0
- package/dist/{client/ai-employees/ai-coding/tools/index.d.ts → client-v2/llm-services/utils.d.ts} +5 -3
- package/dist/client-v2/locale.d.ts +14 -0
- package/dist/{client → client-v2}/manager/ai-manager.d.ts +4 -5
- package/dist/client-v2/models/ai-employees/AIEmployeeActionModel.d.ts +33 -0
- package/dist/client-v2/models/ai-employees/AIEmployeeShortcutModel.d.ts +44 -0
- package/dist/client-v2/pages/AdminSettingsPage.d.ts +24 -0
- package/dist/client-v2/pages/DatasourceSettingsPage.d.ts +62 -0
- package/dist/client-v2/pages/EmployeesPage.d.ts +53 -0
- package/dist/client-v2/pages/LLMServicesPage.d.ts +75 -0
- package/dist/client-v2/pages/MCPSettingsPage.d.ts +73 -0
- package/dist/client-v2/pages/drawerWidth.d.ts +10 -0
- package/dist/client-v2/pages/permissions/Permissions.d.ts +67 -0
- package/dist/client-v2/pages/permissions/PermissionsTab.d.ts +12 -0
- package/dist/client-v2/pages/useUnsavedChangesBeforeClose.d.ts +29 -0
- package/dist/client-v2/plugin.d.ts +32 -0
- package/dist/client-v2/repositories/AIConfigRepository.d.ts +3 -23
- package/dist/client-v2/workflow/components/FormValueRegistry.d.ts +12 -0
- package/dist/{client/components/ListCollapse.d.ts → client-v2/workflow/components/WorkflowListCollapse.d.ts} +4 -4
- package/dist/client-v2/workflow/constants.d.ts +26 -0
- package/dist/client-v2/workflow/nodes/employee/components/AIEmployeeFieldset.d.ts +11 -0
- package/dist/{client/ai-employees/common/CodeHighlight.d.ts → client-v2/workflow/nodes/employee/components/AIEmployeeSelect.d.ts} +5 -6
- package/dist/{client/ai-employees/ContextAwareTooltip.d.ts → client-v2/workflow/nodes/employee/components/Assignees.d.ts} +2 -1
- package/dist/client-v2/workflow/nodes/employee/components/FeedbackSettings.d.ts +17 -0
- package/dist/client-v2/workflow/nodes/employee/components/FileInputs.d.ts +11 -0
- package/dist/{client/ai-employees/AIEmployeesProvider.d.ts → client-v2/workflow/nodes/employee/components/MessageInputs.d.ts} +2 -3
- package/dist/client-v2/workflow/nodes/employee/components/ModelOptions.d.ts +17 -0
- package/dist/{client/ai-employees/admin/datasource/components/basic/CollectionCascader.d.ts → client-v2/workflow/nodes/employee/components/SkillSettings.d.ts} +6 -3
- package/dist/client-v2/workflow/nodes/employee/components/StructuredOutput.d.ts +11 -0
- package/dist/client-v2/workflow/nodes/employee/components/UserInput.d.ts +18 -0
- package/dist/client-v2/workflow/nodes/employee/components/WebSearchOptions.d.ts +16 -0
- package/dist/client-v2/workflow/nodes/employee/index.d.ts +23 -0
- package/dist/{client/ai-employees/AIEmployeeListItem.d.ts → client-v2/workflow/nodes/llm/components/LLMFieldset.d.ts} +3 -5
- package/dist/{client/admin-settings/AdminSettings.d.ts → client-v2/workflow/nodes/llm/components/Messages.d.ts} +2 -1
- package/dist/client-v2/workflow/nodes/llm/components/StructuredOutput.d.ts +11 -0
- package/dist/client-v2/workflow/nodes/llm/index.d.ts +30 -0
- package/dist/{client/ai-employees/1.x/selector/BlockSelector.d.ts → client-v2/workflow/register.d.ts} +2 -6
- package/dist/client-v2/workflow/triggers/ai-employee/AIEmployeeTriggerConfig.d.ts +11 -0
- package/dist/client-v2/workflow/triggers/ai-employee/Parameters.d.ts +11 -0
- package/dist/client-v2/workflow/triggers/ai-employee/index.d.ts +25 -0
- package/dist/client-v2/workflow/types.d.ts +128 -0
- package/dist/externalVersion.js +20 -25
- package/dist/locale/en-US.json +42 -1
- package/dist/locale/zh-CN.json +42 -1
- package/dist/node_modules/@langchain/mistralai/LICENSE +21 -0
- package/dist/node_modules/@langchain/mistralai/dist/_virtual/rolldown_runtime.cjs +25 -0
- package/dist/node_modules/@langchain/mistralai/dist/chat_models.cjs +859 -0
- package/dist/node_modules/@langchain/mistralai/dist/chat_models.d.cts +541 -0
- package/dist/node_modules/@langchain/mistralai/dist/chat_models.d.ts +541 -0
- package/dist/node_modules/@langchain/mistralai/dist/chat_models.js +857 -0
- package/dist/node_modules/@langchain/mistralai/dist/embeddings.cjs +140 -0
- package/dist/node_modules/@langchain/mistralai/dist/embeddings.d.cts +116 -0
- package/dist/node_modules/@langchain/mistralai/dist/embeddings.d.ts +116 -0
- package/dist/node_modules/@langchain/mistralai/dist/embeddings.js +139 -0
- package/dist/node_modules/@langchain/mistralai/dist/index.cjs +21 -0
- package/dist/node_modules/@langchain/mistralai/dist/index.d.cts +4 -0
- package/dist/node_modules/@langchain/mistralai/dist/index.d.ts +4 -0
- package/dist/node_modules/@langchain/mistralai/dist/index.js +5 -0
- package/dist/node_modules/@langchain/mistralai/dist/llms.cjs +275 -0
- package/dist/node_modules/@langchain/mistralai/dist/llms.d.cts +147 -0
- package/dist/node_modules/@langchain/mistralai/dist/llms.d.ts +147 -0
- package/dist/node_modules/@langchain/mistralai/dist/llms.js +274 -0
- package/dist/node_modules/@langchain/mistralai/dist/utils.cjs +61 -0
- package/dist/node_modules/@langchain/mistralai/dist/utils.js +59 -0
- package/dist/node_modules/@langchain/mistralai/package.json +1 -0
- package/dist/node_modules/@langchain/xai/dist/index.cjs +2 -2
- package/dist/node_modules/@langchain/xai/package.json +1 -1
- package/dist/node_modules/fs-extra/package.json +1 -1
- package/dist/node_modules/jsonrepair/package.json +1 -1
- package/dist/node_modules/just-bash/package.json +1 -1
- package/dist/node_modules/nodejs-snowflake/package.json +1 -1
- package/dist/node_modules/openai/package.json +1 -1
- package/dist/node_modules/zod/package.json +1 -1
- package/dist/server/ai-employees/ai-employee.js +12 -5
- package/dist/server/ai-employees/checkpoints/cleaner.d.ts +2 -0
- package/dist/server/ai-employees/checkpoints/cleaner.js +11 -1
- package/dist/server/ai-employees/middleware/conversation.d.ts +2 -0
- package/dist/server/ai-employees/middleware/conversation.js +2 -1
- package/dist/server/ai-employees/utils.d.ts +3 -1
- package/dist/server/ai-employees/utils.js +2 -0
- package/dist/server/llm-providers/mistral.d.ts +62 -0
- package/dist/server/llm-providers/mistral.js +265 -0
- package/dist/server/llm-providers/provider.d.ts +6 -2
- package/dist/server/llm-providers/provider.js +27 -14
- package/dist/server/plugin.js +2 -0
- package/dist/server/workflow/nodes/employee/index.js +92 -46
- package/dist/server/workflow/nodes/employee/tools.js +8 -1
- package/package.json +6 -5
- package/dist/client/119.c6bf8c6433167d81.js +0 -10
- package/dist/client/170.d98eacdc00d9d527.js +0 -10
- package/dist/client/228.b4b709f93b86b6b9.js +0 -10
- package/dist/client/280.003b9e9788599244.js +0 -10
- package/dist/client/290.0f7f441d8a94f03c.js +0 -10
- package/dist/client/331.d547c95410476a69.js +0 -10
- package/dist/client/406.15c09d98faa2ccf1.js +0 -10
- package/dist/client/428.5eb4f53ddbb6a3b8.js +0 -10
- package/dist/client/462.d172d0fe91519e35.js +0 -10
- package/dist/client/486.dcac8f3fcec19c33.js +0 -10
- package/dist/client/502.2b4a51e0a8122e52.js +0 -10
- package/dist/client/525.33a9c8ec28be4ec4.js +0 -10
- package/dist/client/559.a0f2f1cc2be3c039.js +0 -10
- package/dist/client/561.7ec804ef39ec7dcd.js +0 -10
- package/dist/client/580.35ba54ff91b7fe6d.js +0 -10
- package/dist/client/597.b0d64948d74cf6cb.js +0 -10
- package/dist/client/604.89c674f35b52b4ef.js +0 -10
- package/dist/client/614.aa766080f6b99aab.js +0 -10
- package/dist/client/646.d4483b4ff23da0a0.js +0 -10
- package/dist/client/687.224e569a99cae4bb.js +0 -10
- package/dist/client/699.57c0a1acb723202a.js +0 -10
- package/dist/client/711.92cd94681fde7e05.js +0 -10
- package/dist/client/758.a9741e81911e53c3.js +0 -10
- package/dist/client/768.5177bff46ae71a5b.js +0 -10
- package/dist/client/792.abb57765453bcbcc.js +0 -10
- package/dist/client/820.f72ef2462b61d812.js +0 -10
- package/dist/client/832.0cf69e3f43c320b2.js +0 -10
- package/dist/client/927.d95c74ebb8fd51c9.js +0 -10
- package/dist/client/ai-employees/1.x/selector/AISelectorProvider.d.ts +0 -33
- package/dist/client/ai-employees/ProfileCard.d.ts +0 -15
- package/dist/client/ai-employees/admin/ChatSettings.d.ts +0 -10
- package/dist/client/ai-employees/admin/DataSourceSettings.d.ts +0 -10
- package/dist/client/ai-employees/admin/EnableSwitch.d.ts +0 -10
- package/dist/client/ai-employees/admin/InputsFormSettings.d.ts +0 -10
- package/dist/client/ai-employees/admin/KnowledgeBaseSettings.d.ts +0 -10
- package/dist/client/ai-employees/admin/ModelSettings.d.ts +0 -10
- package/dist/client/ai-employees/admin/SkillSettings.d.ts +0 -19
- package/dist/client/ai-employees/admin/SystemPrompt.d.ts +0 -10
- package/dist/client/ai-employees/admin/Templates.d.ts +0 -10
- package/dist/client/ai-employees/admin/ToolsSettings.d.ts +0 -17
- package/dist/client/ai-employees/admin/datasource/components/DatasourceSettingForm.d.ts +0 -10
- package/dist/client/ai-employees/admin/datasource/components/DatasourceSettingGrid.d.ts +0 -10
- package/dist/client/ai-employees/admin/datasource/components/basic/FieldsTransfer.d.ts +0 -17
- package/dist/client/ai-employees/admin/datasource/components/form-steps/CollectionSetting.d.ts +0 -17
- package/dist/client/ai-employees/admin/datasource/components/form-steps/FieldsSetting.d.ts +0 -15
- package/dist/client/ai-employees/admin/datasource/components/form-steps/FilterSetting.d.ts +0 -17
- package/dist/client/ai-employees/admin/datasource/components/form-steps/Preview.d.ts +0 -13
- package/dist/client/ai-employees/admin/datasource/components/form-steps/SortSetting.d.ts +0 -15
- package/dist/client/ai-employees/admin/datasource/components/form-steps/index.d.ts +0 -13
- package/dist/client/ai-employees/admin/datasource/components/index.d.ts +0 -9
- package/dist/client/ai-employees/admin/datasource/context.d.ts +0 -17
- package/dist/client/ai-employees/admin/datasource/flow-models/index.d.ts +0 -9
- package/dist/client/ai-employees/admin/datasource/index.d.ts +0 -10
- package/dist/client/ai-employees/admin/hooks.d.ts +0 -39
- package/dist/client/ai-employees/admin/mcp/MCPSettings.d.ts +0 -10
- package/dist/client/ai-employees/admin/mcp/MCPToolsList.d.ts +0 -19
- package/dist/client/ai-employees/admin/mcp/context.d.ts +0 -15
- package/dist/client/ai-employees/admin/mcp/schemas.d.ts +0 -1314
- package/dist/client/ai-employees/ai-coding/CodeHistory.d.ts +0 -10
- package/dist/client/ai-employees/ai-coding/markdown/Code.d.ts +0 -16
- package/dist/client/ai-employees/avatars.d.ts +0 -9
- package/dist/client/ai-employees/built-in/utils.d.ts +0 -15
- package/dist/client/ai-employees/business-report/tools/index.d.ts +0 -10
- package/dist/client/ai-employees/business-report/ui/report-utils.d.ts +0 -38
- package/dist/client/ai-employees/chart-generator/tools/index.d.ts +0 -10
- package/dist/client/ai-employees/chart-generator/ui/ECharts.d.ts +0 -13
- package/dist/client/ai-employees/chatbox/AIThinking.d.ts +0 -12
- package/dist/client/ai-employees/chatbox/Attachment.d.ts +0 -14
- package/dist/client/ai-employees/chatbox/AttachmentsHeader.d.ts +0 -10
- package/dist/client/ai-employees/chatbox/ChatBox.d.ts +0 -12
- package/dist/client/ai-employees/chatbox/ContextItemsHeader.d.ts +0 -10
- package/dist/client/ai-employees/chatbox/DebugPanel.d.ts +0 -16
- package/dist/client/ai-employees/chatbox/EditMessageHeader.d.ts +0 -10
- package/dist/client/ai-employees/chatbox/HintMessageHeader.d.ts +0 -10
- package/dist/client/ai-employees/chatbox/MessageRenderer.d.ts +0 -33
- package/dist/client/ai-employees/chatbox/SenderFooter.d.ts +0 -13
- package/dist/client/ai-employees/chatbox/SenderHeader.d.ts +0 -10
- package/dist/client/ai-employees/chatbox/SenderPrefix.d.ts +0 -10
- package/dist/client/ai-employees/chatbox/Upload.d.ts +0 -12
- package/dist/client/ai-employees/chatbox/VirtualList.d.ts +0 -28
- package/dist/client/ai-employees/chatbox/conversations/ConversationsList.d.ts +0 -13
- package/dist/client/ai-employees/chatbox/conversations/WorkflowTasksList.d.ts +0 -13
- package/dist/client/ai-employees/chatbox/conversations/index.d.ts +0 -9
- package/dist/client/ai-employees/chatbox/generative-ui/DefaultToolCard.d.ts +0 -16
- package/dist/client/ai-employees/chatbox/hooks/useChatBoxActions.d.ts +0 -18
- package/dist/client/ai-employees/chatbox/hooks/useUploadFiles.d.ts +0 -12
- package/dist/client/ai-employees/chatbox/markdown/ECharts.d.ts +0 -10
- package/dist/client/ai-employees/chatbox/markdown/Form.d.ts +0 -10
- package/dist/client/ai-employees/chatbox/markdown/Generating.d.ts +0 -10
- package/dist/client/ai-employees/chatbox/markdown/Markdown.d.ts +0 -13
- package/dist/client/ai-employees/chatbox/roles.d.ts +0 -32
- package/dist/client/ai-employees/chatbox/stores/chat-box.d.ts +0 -9
- package/dist/client/ai-employees/chatbox/stores/chat-conversations.d.ts +0 -9
- package/dist/client/ai-employees/chatbox/stores/chat-messages.d.ts +0 -9
- package/dist/client/ai-employees/chatbox/stores/chat-tools.d.ts +0 -51
- package/dist/client/ai-employees/chatbox/stores/create-selectors.d.ts +0 -18
- package/dist/client/ai-employees/chatbox/stores/workflow-tasks.d.ts +0 -45
- package/dist/client/ai-employees/context/classic-pages.d.ts +0 -10
- package/dist/client/ai-employees/data-modeling/Table.d.ts +0 -12
- package/dist/client/ai-employees/data-modeling/setup.d.ts +0 -10
- package/dist/client/ai-employees/data-modeling/tools/index.d.ts +0 -10
- package/dist/client/ai-employees/data-modeling/ui/useFieldInterfaceOptions.d.ts +0 -14
- package/dist/client/ai-employees/datasource/DatasourceList.d.ts +0 -17
- package/dist/client/ai-employees/datasource/index.d.ts +0 -9
- package/dist/client/ai-employees/flow/events/index.d.ts +0 -9
- package/dist/client/ai-employees/flow/index.d.ts +0 -36
- package/dist/client/ai-employees/flow/models/AIEmployeeActionModel.d.ts +0 -18
- package/dist/client/ai-employees/flow/models/AIEmployeeShortcutModel.d.ts +0 -30
- package/dist/client/ai-employees/shortcuts/ShortcutList.d.ts +0 -10
- package/dist/client/ai-employees/shortcuts/useShortcuts.d.ts +0 -13
- package/dist/client/ai-employees/stores/context-aware.d.ts +0 -19
- package/dist/client/ai-employees/sub-agents/tools/index.d.ts +0 -10
- package/dist/client/ai-employees/suggestions/tools/index.d.ts +0 -10
- package/dist/client/ai-employees/suggestions/ui/SuggestionsOptions.d.ts +0 -13
- package/dist/client/ai-employees/types.d.ts +0 -259
- package/dist/client/ai-employees/workflow-tasks/tools/index.d.ts +0 -10
- package/dist/client/chat-settings/Messages.d.ts +0 -11
- package/dist/client/chat-settings/StructuredOutput.d.ts +0 -11
- package/dist/client/components/skill-settings.d.ts +0 -22
- package/dist/client/features/components.d.ts +0 -9
- package/dist/client/features/feature-manager.d.ts +0 -9
- package/dist/client/features/index.d.ts +0 -9
- package/dist/client/features/vector-database-provider.d.ts +0 -9
- package/dist/client/features/vector-store-provider.d.ts +0 -9
- package/dist/client/llm-providers/anthropic/ModelSettings.d.ts +0 -10
- package/dist/client/llm-providers/anthropic/ProviderSettings.d.ts +0 -10
- package/dist/client/llm-providers/anthropic/index.d.ts +0 -10
- package/dist/client/llm-providers/components/Chat.d.ts +0 -10
- package/dist/client/llm-providers/components/ModelSelect.d.ts +0 -10
- package/dist/client/llm-providers/dashscope/ModelSettings.d.ts +0 -10
- package/dist/client/llm-providers/dashscope/ProviderSettings.d.ts +0 -10
- package/dist/client/llm-providers/dashscope/index.d.ts +0 -10
- package/dist/client/llm-providers/deepseek/ModelSettings.d.ts +0 -10
- package/dist/client/llm-providers/deepseek/index.d.ts +0 -10
- package/dist/client/llm-providers/google-genai/MessageRenderer.d.ts +0 -13
- package/dist/client/llm-providers/google-genai/ModelSettings.d.ts +0 -10
- package/dist/client/llm-providers/google-genai/ProviderSettings.d.ts +0 -10
- package/dist/client/llm-providers/google-genai/index.d.ts +0 -10
- package/dist/client/llm-providers/kimi/ModelSettings.d.ts +0 -10
- package/dist/client/llm-providers/kimi/index.d.ts +0 -10
- package/dist/client/llm-providers/mimo/ModelSettings.d.ts +0 -10
- package/dist/client/llm-providers/mimo/index.d.ts +0 -10
- package/dist/client/llm-providers/ollama/ModelSettings.d.ts +0 -10
- package/dist/client/llm-providers/ollama/ProviderSettings.d.ts +0 -10
- package/dist/client/llm-providers/ollama/index.d.ts +0 -10
- package/dist/client/llm-providers/openai/completions/ModelSettings.d.ts +0 -10
- package/dist/client/llm-providers/openai/completions/index.d.ts +0 -10
- package/dist/client/llm-providers/openai/components/ProviderSettings.d.ts +0 -10
- package/dist/client/llm-providers/openai/responses/ModelSettings.d.ts +0 -10
- package/dist/client/llm-providers/openai/responses/index.d.ts +0 -10
- package/dist/client/llm-providers/tongyi/ModelSettings.d.ts +0 -10
- package/dist/client/llm-providers/tongyi/ProviderSettings.d.ts +0 -10
- package/dist/client/llm-providers/tongyi/index.d.ts +0 -10
- package/dist/client/llm-providers/xai/ModelSettings.d.ts +0 -10
- package/dist/client/llm-providers/xai/index.d.ts +0 -10
- package/dist/client/llm-services/LLMServices.d.ts +0 -13
- package/dist/client/llm-services/component/DefaultModelSelect.d.ts +0 -10
- package/dist/client/llm-services/component/EnabledModelsSelect.d.ts +0 -23
- package/dist/client/llm-services/component/LLMTestFlight.d.ts +0 -10
- package/dist/client/llm-services/component/ModelOptionsSettings.d.ts +0 -10
- package/dist/client/llm-services/component/UnifiedModelSettings.d.ts +0 -10
- package/dist/client/llm-services/hooks/useLLMServiceCatalog.d.ts +0 -18
- package/dist/client/llm-services/llm-providers.d.ts +0 -27
- package/dist/client/llm-services/utils.d.ts +0 -30
- package/dist/client/manager/ai-feature-manager.d.ts +0 -9
- package/dist/client/repositories/AIConfigRepository.d.ts +0 -60
- package/dist/client/repositories/hooks/useAIConfigRepository.d.ts +0 -10
- package/dist/client/schemas/llms.d.ts +0 -347
- package/dist/client/workflow/nodes/employee/components/AIEmployeeSelect.d.ts +0 -10
- package/dist/client/workflow/nodes/employee/components/assigness.d.ts +0 -11
- package/dist/client/workflow/nodes/employee/components/file-inputs.d.ts +0 -10
- package/dist/client/workflow/nodes/employee/components/message-inputs.d.ts +0 -12
- package/dist/client/workflow/nodes/employee/components/model-options.d.ts +0 -10
- package/dist/client/workflow/nodes/employee/components/structured-output.d.ts +0 -10
- package/dist/client/workflow/nodes/employee/components/users-select.d.ts +0 -15
- package/dist/client/workflow/nodes/employee/components/web-search-options.d.ts +0 -10
- package/dist/client/workflow/nodes/employee/configuration.d.ts +0 -12
- package/dist/client/workflow/nodes/employee/flow-models/feedback.d.ts +0 -14
- package/dist/client/workflow/nodes/employee/flow-models/task.d.ts +0 -13
- package/dist/client/workflow/nodes/llm/ModelSettings.d.ts +0 -11
- package/dist/client/workflow/triggers/ai-employee/Parameters.d.ts +0 -13
- /package/dist/{client → client-v2}/ai-employees/AISelection.d.ts +0 -0
- /package/dist/{client → client-v2}/ai-employees/AISelectionControl.d.ts +0 -0
- /package/dist/{client → client-v2}/ai-employees/ai-coding/prompts.d.ts +0 -0
- /package/dist/{client → client-v2}/ai-employees/ai-coding/setup.d.ts +0 -0
- /package/dist/{client/ai-employees/chatbox/AIEmployeeSwitch.d.ts → client-v2/ai-employees/chatbox/components/AIEmployeeSwitcher.d.ts} +0 -0
- /package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/ChatButton.d.ts +0 -0
- /package/dist/{client/ai-employees/chatbox/conversations → client-v2/ai-employees/chatbox/components}/Conversations.d.ts +0 -0
- /package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/Messages.d.ts +0 -0
- /package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/ModelSwitcher.d.ts +0 -0
- /package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/SearchSwitch.d.ts +0 -0
- /package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/Sender.d.ts +0 -0
- /package/dist/{client/ai-employees/chatbox/generative-ui → client-v2/ai-employees/chatbox/components}/ToolModal.d.ts +0 -0
- /package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/UserPrompt.d.ts +0 -0
- /package/dist/{client → client-v2}/ai-employees/chatbox/hooks/useChatBoxEffect.d.ts +0 -0
- /package/dist/{client → client-v2}/ai-employees/chatbox/hooks/useLoadMoreObserver.d.ts +0 -0
- /package/dist/client-v2/ai-employees/{chatbox/stores → stores}/global-store.d.ts +0 -0
- /package/dist/{client/ai-employees/flow/models → client-v2/models/ai-employees}/AIEmployeeShortcutListModel.d.ts +0 -0
- /package/dist/{client/ai-employees/flow/models → client-v2/models/ai-employees}/index.d.ts +0 -0
- /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
|
-
(
|
|
51
|
-
|
|
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
|
-
|
|
57
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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() {
|
package/dist/server/plugin.js
CHANGED
|
@@ -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
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
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
|
-
|
|
174
|
-
if (retry
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
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
|
-
}
|
|
202
|
-
|
|
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: "
|
|
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
|
-
|
|
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.
|
|
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": "
|
|
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)}}}]);
|