@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.
- package/client-v2.d.ts +0 -1
- package/dist/ai/docs/nocobase/workflow/development/api.md +77 -259
- package/dist/ai/docs/nocobase/workflow/development/index.md +1 -2
- package/dist/ai/docs/nocobase/workflow/development/node.md +51 -84
- package/dist/ai/docs/nocobase/workflow/development/trigger.md +20 -122
- package/dist/ai/tools/subAgentWebSearch.js +15 -20
- package/dist/client/119.c6bf8c6433167d81.js +10 -0
- package/dist/client/170.d98eacdc00d9d527.js +10 -0
- package/dist/client/228.b4b709f93b86b6b9.js +10 -0
- package/dist/client/280.003b9e9788599244.js +10 -0
- package/dist/client/290.0f7f441d8a94f03c.js +10 -0
- package/dist/client/331.d547c95410476a69.js +10 -0
- package/dist/client/406.15c09d98faa2ccf1.js +10 -0
- package/dist/client/428.5eb4f53ddbb6a3b8.js +10 -0
- package/dist/client/462.d172d0fe91519e35.js +10 -0
- package/dist/client/486.dcac8f3fcec19c33.js +10 -0
- package/dist/client/502.2b4a51e0a8122e52.js +10 -0
- package/dist/client/525.33a9c8ec28be4ec4.js +10 -0
- package/dist/client/559.959c46d0056ccdc8.js +10 -0
- package/dist/client/561.7ec804ef39ec7dcd.js +10 -0
- package/dist/client/580.35ba54ff91b7fe6d.js +10 -0
- package/dist/client/597.b0d64948d74cf6cb.js +10 -0
- package/dist/client/604.89c674f35b52b4ef.js +10 -0
- package/dist/client/614.aa766080f6b99aab.js +10 -0
- package/dist/client/646.2e395a514c511084.js +10 -0
- package/dist/client/687.224e569a99cae4bb.js +10 -0
- package/dist/client/699.57c0a1acb723202a.js +10 -0
- package/dist/client/711.92cd94681fde7e05.js +10 -0
- package/dist/client/758.a9741e81911e53c3.js +10 -0
- package/dist/client/768.5177bff46ae71a5b.js +10 -0
- package/dist/client/792.abb57765453bcbcc.js +10 -0
- package/dist/client/820.f72ef2462b61d812.js +10 -0
- package/dist/client/832.0cf69e3f43c320b2.js +10 -0
- package/dist/client/927.d95c74ebb8fd51c9.js +10 -0
- package/dist/client/admin-settings/AdminSettings.d.ts +10 -0
- package/dist/client/ai-employees/1.x/selector/AIContextCollector.d.ts +4 -1
- package/dist/client/ai-employees/1.x/selector/AISelectorProvider.d.ts +33 -0
- package/dist/client/ai-employees/1.x/selector/BlockSelector.d.ts +14 -0
- package/dist/{client-v2/ai-employees/tools/ChartGeneratorCard.d.ts → client/ai-employees/1.x/selector/withAISelectable.d.ts} +4 -5
- package/dist/client/ai-employees/AIEmployeeListItem.d.ts +14 -0
- package/dist/client/ai-employees/AIEmployeesProvider.d.ts +12 -0
- package/dist/client/ai-employees/AISettingsProvider.d.ts +18 -0
- package/dist/{client-v2 → client}/ai-employees/AddContextButton.d.ts +1 -1
- package/dist/client/ai-employees/ContextAwareTooltip.d.ts +10 -0
- package/dist/client/ai-employees/ProfileCard.d.ts +15 -0
- package/dist/client/ai-employees/admin/AvatarSelect.d.ts +19 -0
- package/dist/client/ai-employees/admin/ChatSettings.d.ts +10 -0
- package/dist/client/ai-employees/admin/DataSourceSettings.d.ts +10 -0
- package/dist/client/ai-employees/admin/Employees.d.ts +10 -0
- package/dist/client/ai-employees/admin/EnableSwitch.d.ts +10 -0
- package/dist/client/ai-employees/admin/InputsFormSettings.d.ts +10 -0
- package/dist/client/ai-employees/admin/KnowledgeBaseSettings.d.ts +10 -0
- package/dist/client/ai-employees/admin/ModelSettings.d.ts +10 -0
- package/dist/client/ai-employees/admin/ProfileSettings.d.ts +12 -0
- package/dist/client/ai-employees/admin/SkillSettings.d.ts +19 -0
- package/dist/client/ai-employees/admin/SystemPrompt.d.ts +10 -0
- package/dist/client/ai-employees/admin/Templates.d.ts +10 -0
- package/dist/client/ai-employees/admin/ToolsSettings.d.ts +17 -0
- package/dist/{client-v2/ai-employees/chatbox/components/MessageContent.d.ts → client/ai-employees/admin/datasource/components/DatasourceSettingDetail.d.ts} +4 -3
- package/dist/client/ai-employees/admin/datasource/components/DatasourceSettingForm.d.ts +10 -0
- package/dist/client/ai-employees/admin/datasource/components/DatasourceSettingGrid.d.ts +10 -0
- package/dist/client/ai-employees/admin/datasource/components/basic/CollectionCascader.d.ts +14 -0
- package/dist/{client-v2/workflow/nodes/employee/components/SkillSettings.d.ts → client/ai-employees/admin/datasource/components/basic/FieldsTransfer.d.ts} +6 -6
- package/dist/client/ai-employees/admin/datasource/components/basic/index.d.ts +10 -0
- package/dist/client/ai-employees/admin/datasource/components/form-steps/CollectionSetting.d.ts +17 -0
- package/dist/client/ai-employees/admin/datasource/components/form-steps/FieldsSetting.d.ts +15 -0
- package/dist/client/ai-employees/admin/datasource/components/form-steps/FilterSetting.d.ts +17 -0
- package/dist/client/ai-employees/admin/datasource/components/form-steps/Preview.d.ts +13 -0
- package/dist/client/ai-employees/admin/datasource/components/form-steps/SortSetting.d.ts +15 -0
- package/dist/client/ai-employees/admin/datasource/components/form-steps/index.d.ts +13 -0
- package/dist/client/ai-employees/admin/datasource/components/index.d.ts +9 -0
- package/dist/client/ai-employees/admin/datasource/context.d.ts +17 -0
- package/dist/client/ai-employees/admin/datasource/flow-models/DatasourceSettingModel.d.ts +15 -0
- package/dist/client/ai-employees/admin/datasource/flow-models/index.d.ts +9 -0
- package/dist/client/ai-employees/admin/datasource/index.d.ts +10 -0
- package/dist/client/ai-employees/admin/hooks.d.ts +39 -0
- package/dist/client/ai-employees/admin/mcp/MCPSettings.d.ts +10 -0
- package/dist/client/ai-employees/admin/mcp/MCPToolsList.d.ts +19 -0
- package/dist/client/ai-employees/admin/mcp/context.d.ts +15 -0
- package/dist/client/ai-employees/admin/mcp/schemas.d.ts +1314 -0
- package/dist/{client-v2 → client}/ai-employees/ai-coding/AICodingButton.d.ts +1 -2
- package/dist/client/ai-employees/ai-coding/CodeHistory.d.ts +10 -0
- package/dist/client/ai-employees/ai-coding/markdown/Code.d.ts +16 -0
- package/dist/{client-v2/ai-employees/tools/ai-coding.d.ts → client/ai-employees/ai-coding/tools/context-tools.d.ts} +1 -3
- package/dist/client/ai-employees/ai-coding/tools/index.d.ts +11 -0
- package/dist/{client-v2/ai-employees/tools → client/ai-employees/ai-coding/ui}/CodeToolCard.d.ts +1 -1
- package/dist/client/ai-employees/avatars.d.ts +9 -0
- package/dist/client/ai-employees/built-in/utils.d.ts +15 -0
- package/dist/client/ai-employees/business-report/tools/index.d.ts +10 -0
- package/dist/{client-v2/ai-employees/tools → client/ai-employees/business-report/ui}/BusinessReportCard.d.ts +2 -2
- package/dist/{client-v2/ai-employees/tools → client/ai-employees/business-report/ui}/BusinessReportModal.d.ts +2 -2
- package/dist/client/ai-employees/business-report/ui/report-utils.d.ts +38 -0
- package/dist/client/ai-employees/chart-generator/tools/index.d.ts +10 -0
- package/dist/client/ai-employees/chart-generator/ui/ECharts.d.ts +13 -0
- package/dist/{client-v2/ai-employees/chatbox/components/ChatBox.d.ts → client/ai-employees/chatbox/AIThinking.d.ts} +2 -2
- package/dist/{client-v2/ai-employees/chatbox/components → client/ai-employees/chatbox}/Actions.d.ts +4 -2
- package/dist/{client-v2/ai-employees/chatbox/components → client/ai-employees/chatbox}/AddLLMModal.d.ts +4 -2
- package/dist/client/ai-employees/chatbox/Attachment.d.ts +14 -0
- package/dist/client/ai-employees/chatbox/AttachmentsHeader.d.ts +10 -0
- package/dist/client/ai-employees/chatbox/ChatBox.d.ts +12 -0
- package/dist/{client-v2/ai-employees/chatbox/components → client/ai-employees/chatbox}/ChatBoxLayout.d.ts +1 -1
- package/dist/{client-v2/ai-employees/chatbox/components → client/ai-employees/chatbox}/ContextItem.d.ts +1 -1
- package/dist/client/ai-employees/chatbox/ContextItemsHeader.d.ts +10 -0
- package/dist/client/ai-employees/chatbox/DebugPanel.d.ts +16 -0
- package/dist/client/ai-employees/chatbox/EditMessageHeader.d.ts +10 -0
- package/dist/client/ai-employees/chatbox/HintMessageHeader.d.ts +10 -0
- package/dist/client/ai-employees/chatbox/MessageRenderer.d.ts +33 -0
- package/dist/client/ai-employees/chatbox/SenderFooter.d.ts +13 -0
- package/dist/client/ai-employees/chatbox/SenderHeader.d.ts +10 -0
- package/dist/client/ai-employees/chatbox/SenderPrefix.d.ts +10 -0
- package/dist/client/ai-employees/chatbox/Upload.d.ts +12 -0
- package/dist/client/ai-employees/chatbox/VirtualList.d.ts +28 -0
- package/dist/client/ai-employees/chatbox/conversations/ConversationsList.d.ts +13 -0
- package/dist/client/ai-employees/chatbox/conversations/WorkflowTasksList.d.ts +13 -0
- package/dist/{client-v2/ai-employees/chatbox/stores/workflow-tasks.d.ts → client/ai-employees/chatbox/conversations/common.d.ts} +4 -21
- package/dist/client/ai-employees/chatbox/conversations/index.d.ts +9 -0
- package/dist/{client-v2/ai-employees/chatbox/components/ToolCard.d.ts → client/ai-employees/chatbox/generative-ui/DefaultToolCard.d.ts} +6 -7
- package/dist/client/ai-employees/chatbox/generative-ui/ToolCard.d.ts +15 -0
- package/dist/{client-v2 → client}/ai-employees/chatbox/hooks/useChat.d.ts +22 -21
- package/dist/client/ai-employees/chatbox/hooks/useChatBoxActions.d.ts +18 -0
- package/dist/{client-v2 → client}/ai-employees/chatbox/hooks/useChatConversationActions.d.ts +2 -2
- package/dist/{client-v2 → client}/ai-employees/chatbox/hooks/useChatMessageActions.d.ts +4 -8
- package/dist/{client-v2 → client}/ai-employees/chatbox/hooks/useToolCallActions.d.ts +1 -1
- package/dist/client/ai-employees/chatbox/hooks/useUploadFiles.d.ts +12 -0
- package/dist/{client-v2 → client}/ai-employees/chatbox/hooks/useWorkflowTasks.d.ts +1 -1
- package/dist/client/ai-employees/chatbox/markdown/Code.d.ts +18 -0
- package/dist/client/ai-employees/chatbox/markdown/ECharts.d.ts +10 -0
- package/dist/client/ai-employees/chatbox/markdown/Form.d.ts +10 -0
- package/dist/{client-v2/ai-employees/chatbox/components/DebugPanel.d.ts → client/ai-employees/chatbox/markdown/Generating.d.ts} +1 -1
- package/dist/client/ai-employees/chatbox/markdown/Markdown.d.ts +13 -0
- package/dist/{client-v2 → client}/ai-employees/chatbox/model.d.ts +2 -9
- package/dist/client/ai-employees/chatbox/roles.d.ts +32 -0
- package/dist/client/ai-employees/chatbox/stores/chat-box.d.ts +9 -0
- package/dist/client/ai-employees/chatbox/stores/chat-conversations.d.ts +9 -0
- package/dist/client/ai-employees/chatbox/stores/chat-messages.d.ts +9 -0
- package/dist/{client-v2 → client}/ai-employees/chatbox/stores/chat-tool-call.d.ts +15 -1
- package/dist/client/ai-employees/chatbox/stores/chat-tools.d.ts +51 -0
- package/dist/{client-v2/ai-employees/data-modeling/setup.d.ts → client/ai-employees/chatbox/stores/create-selectors.d.ts} +8 -5
- package/dist/client/ai-employees/chatbox/stores/workflow-tasks.d.ts +45 -0
- package/dist/{client-v2 → client}/ai-employees/chatbox/utils.d.ts +6 -21
- package/dist/{client-v2/workflow/nodes/employee/components/AIEmployeeSelect.d.ts → client/ai-employees/common/CodeHighlight.d.ts} +6 -5
- package/dist/client/ai-employees/context/classic-pages.d.ts +10 -0
- package/dist/{client-v2 → client}/ai-employees/context/code-editor.d.ts +1 -1
- package/dist/{client-v2 → client}/ai-employees/context/datasource.d.ts +1 -1
- package/dist/{client-v2 → client}/ai-employees/context/flow-models.d.ts +1 -1
- package/dist/client/ai-employees/data-modeling/Table.d.ts +12 -0
- package/dist/client/ai-employees/data-modeling/setup.d.ts +10 -0
- package/dist/client/ai-employees/data-modeling/tools/index.d.ts +10 -0
- package/dist/{client-v2/ai-employees/tools → client/ai-employees}/data-modeling/types.d.ts +4 -27
- package/dist/client/ai-employees/data-modeling/ui/CollectionNode.d.ts +12 -0
- package/dist/{client-v2/ai-employees/tools → client/ai-employees/data-modeling/ui}/DataModelingCard.d.ts +5 -3
- package/dist/{client-v2/ai-employees/tools → client/ai-employees/data-modeling/ui}/DataModelingModal.d.ts +6 -4
- package/dist/{client-v2/ai-employees/tools/data-modeling → client/ai-employees/data-modeling/ui}/Diagram.d.ts +1 -1
- package/dist/{client-v2/ai-employees/tools/data-modeling → client/ai-employees/data-modeling/ui}/Table.d.ts +2 -2
- package/dist/client/ai-employees/data-modeling/ui/useFieldInterfaceOptions.d.ts +14 -0
- package/dist/{client-v2/ai-employees/context/chart-config.d.ts → client/ai-employees/data-visualization/context.d.ts} +1 -1
- package/dist/{client-v2/ai-employees/tools/data-visualization.d.ts → client/ai-employees/data-visualization/tools/index.d.ts} +1 -1
- package/dist/client/ai-employees/datasource/DatasourceList.d.ts +17 -0
- package/dist/{client-v2 → client}/ai-employees/datasource/DatasourceSelector.d.ts +2 -6
- package/dist/client/ai-employees/datasource/index.d.ts +9 -0
- package/dist/client/ai-employees/flow/events/index.d.ts +9 -0
- package/dist/client/ai-employees/flow/index.d.ts +36 -0
- package/dist/client/ai-employees/flow/models/AIEmployeeActionModel.d.ts +18 -0
- package/dist/client/ai-employees/flow/models/AIEmployeeShortcutModel.d.ts +30 -0
- package/dist/{client-v2 → client}/ai-employees/form-filler/tools/index.d.ts +1 -1
- package/dist/client/ai-employees/permissions/Permissions.d.ts +12 -0
- package/dist/client/ai-employees/permissions/PermissionsTab.d.ts +5 -21
- package/dist/client/ai-employees/shortcuts/ShortcutList.d.ts +10 -0
- package/dist/client/ai-employees/shortcuts/useShortcuts.d.ts +13 -0
- package/dist/{client-v2 → client}/ai-employees/stores/ai-selection.d.ts +4 -4
- package/dist/client/ai-employees/stores/context-aware.d.ts +19 -0
- package/dist/{client-v2 → client}/ai-employees/stores/dialog-controller.d.ts +4 -4
- package/dist/client/ai-employees/sub-agents/tools/index.d.ts +10 -0
- package/dist/{client-v2/ai-employees/tools → client/ai-employees/sub-agents/ui}/SubAgentDispatchCard.d.ts +9 -4
- package/dist/client/ai-employees/suggestions/tools/index.d.ts +10 -0
- package/dist/client/ai-employees/suggestions/ui/SuggestionsOptions.d.ts +13 -0
- package/dist/client/ai-employees/types.d.ts +259 -0
- package/dist/client/ai-employees/workflow-tasks/tools/index.d.ts +10 -0
- package/dist/client/ai-employees/workflow-tasks/ui/WorkflowTaskOutputCard.d.ts +11 -0
- package/dist/{client-v2/workflow/nodes/llm/components → client/chat-settings}/Messages.d.ts +2 -2
- package/dist/{client-v2/workflow/nodes/employee/components → client/chat-settings}/StructuredOutput.d.ts +2 -2
- package/dist/{client-v2/workflow/components/WorkflowListCollapse.d.ts → client/components/ListCollapse.d.ts} +4 -4
- package/dist/client/components/skill-settings.d.ts +22 -0
- package/dist/{client-v2 → client}/debug-logger.d.ts +2 -2
- package/dist/client/features/components.d.ts +9 -0
- package/dist/client/features/feature-manager.d.ts +9 -0
- package/dist/client/features/index.d.ts +9 -0
- package/dist/client/features/vector-database-provider.d.ts +9 -0
- package/dist/client/features/vector-store-provider.d.ts +9 -0
- package/dist/client/index.d.ts +20 -15
- package/dist/client/index.js +8 -8
- package/dist/client/llm-providers/anthropic/ModelSettings.d.ts +10 -0
- package/dist/client/llm-providers/anthropic/ProviderSettings.d.ts +10 -0
- package/dist/client/llm-providers/anthropic/index.d.ts +10 -0
- package/dist/client/llm-providers/components/Chat.d.ts +10 -0
- package/dist/client/llm-providers/components/ModelSelect.d.ts +10 -0
- package/dist/client/llm-providers/dashscope/ModelSettings.d.ts +10 -0
- package/dist/client/llm-providers/dashscope/ProviderSettings.d.ts +10 -0
- package/dist/client/llm-providers/dashscope/index.d.ts +10 -0
- package/dist/client/llm-providers/deepseek/ModelSettings.d.ts +10 -0
- package/dist/client/llm-providers/deepseek/index.d.ts +10 -0
- package/dist/client/llm-providers/google-genai/MessageRenderer.d.ts +13 -0
- package/dist/client/llm-providers/google-genai/ModelSettings.d.ts +10 -0
- package/dist/client/llm-providers/google-genai/ProviderSettings.d.ts +10 -0
- package/dist/client/llm-providers/google-genai/index.d.ts +10 -0
- package/dist/client/llm-providers/kimi/ModelSettings.d.ts +10 -0
- package/dist/client/llm-providers/kimi/index.d.ts +10 -0
- package/dist/client/llm-providers/mimo/ModelSettings.d.ts +10 -0
- package/dist/client/llm-providers/mimo/index.d.ts +10 -0
- package/dist/client/llm-providers/mistral/ModelSettings.d.ts +10 -0
- package/dist/{client-v2/workflow/nodes/employee/components/AIEmployeeFieldset.d.ts → client/llm-providers/mistral/index.d.ts} +2 -3
- package/dist/client/llm-providers/ollama/ModelSettings.d.ts +10 -0
- package/dist/client/llm-providers/ollama/ProviderSettings.d.ts +10 -0
- package/dist/client/llm-providers/ollama/index.d.ts +10 -0
- package/dist/client/llm-providers/openai/completions/ModelSettings.d.ts +10 -0
- package/dist/client/llm-providers/openai/completions/index.d.ts +10 -0
- package/dist/client/llm-providers/openai/components/ProviderSettings.d.ts +10 -0
- package/dist/client/llm-providers/openai/responses/ModelSettings.d.ts +10 -0
- package/dist/client/llm-providers/openai/responses/index.d.ts +10 -0
- package/dist/client/llm-providers/orcarouter/ModelSettings.d.ts +10 -0
- package/dist/client/llm-providers/orcarouter/ProviderSettings.d.ts +10 -0
- package/dist/client/llm-providers/orcarouter/index.d.ts +10 -0
- package/dist/client/llm-providers/tongyi/ModelSettings.d.ts +10 -0
- package/dist/client/llm-providers/tongyi/ProviderSettings.d.ts +10 -0
- package/dist/client/llm-providers/tongyi/index.d.ts +10 -0
- package/dist/client/llm-providers/xai/ModelSettings.d.ts +10 -0
- package/dist/client/llm-providers/xai/index.d.ts +10 -0
- package/dist/client/llm-services/LLMServices.d.ts +13 -0
- package/dist/client/llm-services/component/DefaultModelSelect.d.ts +10 -0
- package/dist/client/llm-services/component/EnabledModelsSelect.d.ts +23 -0
- package/dist/client/llm-services/component/LLMTestFlight.d.ts +10 -0
- package/dist/client/llm-services/component/ModelOptionsSettings.d.ts +10 -0
- package/dist/client/llm-services/component/UnifiedModelSettings.d.ts +10 -0
- package/dist/client/llm-services/hooks/useLLMServiceCatalog.d.ts +18 -0
- package/dist/client/llm-services/llm-providers.d.ts +27 -0
- package/dist/client/llm-services/utils.d.ts +35 -0
- package/dist/client/manager/ai-feature-manager.d.ts +9 -0
- package/dist/{client-v2 → client}/manager/ai-manager.d.ts +5 -4
- package/dist/client/repositories/AIConfigRepository.d.ts +60 -0
- package/dist/client/repositories/hooks/useAIConfigRepository.d.ts +10 -0
- package/dist/client/schemas/llms.d.ts +347 -0
- package/dist/client/workflow/nodes/employee/components/AIEmployeeSelect.d.ts +10 -0
- package/dist/client/workflow/nodes/employee/components/assigness.d.ts +11 -0
- package/dist/client/workflow/nodes/employee/components/file-inputs.d.ts +10 -0
- package/dist/client/workflow/nodes/employee/components/message-inputs.d.ts +12 -0
- package/dist/client/workflow/nodes/employee/components/model-options.d.ts +10 -0
- package/dist/client/workflow/nodes/employee/components/structured-output.d.ts +10 -0
- package/dist/client/workflow/nodes/employee/components/users-select.d.ts +15 -0
- package/dist/client/workflow/nodes/employee/components/web-search-options.d.ts +10 -0
- package/dist/client/workflow/nodes/employee/configuration.d.ts +12 -0
- package/dist/client/workflow/nodes/employee/flow-models/feedback.d.ts +14 -0
- package/dist/client/workflow/nodes/employee/flow-models/task.d.ts +13 -0
- package/dist/client/workflow/nodes/employee/index.d.ts +23 -2
- package/dist/client/workflow/nodes/llm/ModelSettings.d.ts +11 -0
- package/dist/client/workflow/nodes/llm/index.d.ts +52 -2
- package/dist/{client-v2 → client}/workflow/triggers/ai-employee/Parameters.d.ts +4 -2
- package/dist/client/workflow/triggers/ai-employee/index.d.ts +83 -2
- package/dist/client-v2/ai-employees/AIEmployeeShortcut.d.ts +2 -9
- package/dist/client-v2/ai-employees/chatbox/hooks/useChatBoxActions.d.ts +2 -3
- package/dist/client-v2/ai-employees/chatbox/stores/chat-box.d.ts +49 -1
- package/dist/client-v2/ai-employees/chatbox/stores/chat-conversations.d.ts +19 -2
- package/dist/client-v2/ai-employees/chatbox/stores/chat-messages.d.ts +46 -1
- package/dist/client-v2/ai-employees/chatbox/stores/create-selectors.d.ts +3 -31
- package/dist/client-v2/ai-employees/types.d.ts +7 -101
- package/dist/client-v2/index.d.ts +8 -9
- package/dist/client-v2/index.js +1 -37
- package/dist/client-v2/repositories/AIConfigRepository.d.ts +23 -3
- package/dist/externalVersion.js +25 -20
- package/dist/locale/en-US.json +1 -42
- package/dist/locale/zh-CN.json +1 -42
- package/dist/node_modules/@langchain/mistralai/package.json +1 -1
- 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 +1 -7
- package/dist/server/ai-employees/prompts.d.ts +1 -2
- package/dist/server/ai-employees/prompts.js +2 -8
- package/dist/server/llm-providers/dashscope.d.ts +1 -2
- package/dist/server/llm-providers/dashscope.js +1 -16
- package/dist/server/llm-providers/deepseek.d.ts +1 -2
- package/dist/server/llm-providers/deepseek.js +2 -33
- package/dist/server/llm-providers/kimi/provider.d.ts +1 -2
- package/dist/server/llm-providers/kimi/provider.js +2 -22
- package/dist/server/llm-providers/mistral.d.ts +2 -36
- package/dist/server/llm-providers/mistral.js +2 -62
- package/dist/server/llm-providers/openai/completions.d.ts +1 -2
- package/dist/server/llm-providers/openai/completions.js +1 -17
- package/dist/server/llm-providers/openai/responses.d.ts +1 -2
- package/dist/server/llm-providers/openai/responses.js +1 -17
- package/dist/server/llm-providers/provider.d.ts +0 -7
- package/dist/server/llm-providers/provider.js +1 -7
- package/dist/server/manager/ai-manager.d.ts +1 -2
- package/dist/server/manager/ai-manager.js +1 -4
- package/package.json +5 -5
- package/dist/ai/docs/nocobase/interface-builder/blocks/data-blocks/comment.md +0 -107
- package/dist/ai/docs/nocobase/plugins/@nocobase/plugin-block-comment/index.md +0 -14
- package/dist/ai/docs/nocobase/workflow/development/migration.md +0 -319
- package/dist/client/23.65ea8c37cd4b884b.js +0 -10
- package/dist/client/264.cc98933ef65608b6.js +0 -10
- package/dist/client/336.7a8a8853196ad779.js +0 -11
- package/dist/client/372.da38fe350bf841f4.js +0 -10
- package/dist/client/416.92b74ca47e4099c4.js +0 -10
- package/dist/client/446.d63c38d0309fe250.js +0 -10
- package/dist/client/525.203778500aca5d05.js +0 -10
- package/dist/client/663.680bcf6272a8504d.js +0 -10
- package/dist/client/681.399948c18d753667.js +0 -10
- package/dist/client/705.380279da896021fb.js +0 -10
- package/dist/client-v2/23.1bcb6986b40723d8.js +0 -10
- package/dist/client-v2/264.be92ff6a4d2612f1.js +0 -10
- package/dist/client-v2/336.e406470429e0670e.js +0 -11
- package/dist/client-v2/372.d76ea1ceed2be2a4.js +0 -10
- package/dist/client-v2/406.341be51205c674e0.js +0 -10
- package/dist/client-v2/416.0e1c2d9cde43b83d.js +0 -10
- package/dist/client-v2/446.073d450882db29fd.js +0 -10
- package/dist/client-v2/457.d72febb89e88fc00.js +0 -10
- package/dist/client-v2/663.342341f0b2b412d8.js +0 -10
- package/dist/client-v2/681.082f4f1c7b841983.js +0 -10
- package/dist/client-v2/705.1d10027ff8cfdf79.js +0 -10
- package/dist/client-v2/ai-employees/AIEmployeeDropdown.d.ts +0 -18
- package/dist/client-v2/ai-employees/chatbox/components/Attachments.d.ts +0 -27
- package/dist/client-v2/ai-employees/chatbox/components/Markdown.d.ts +0 -25
- package/dist/client-v2/ai-employees/chatbox/components/MessageRenderers.d.ts +0 -39
- package/dist/client-v2/ai-employees/chatbox/components/index.d.ts +0 -13
- package/dist/client-v2/ai-employees/chatbox/hooks/useUploadFiles.d.ts +0 -46
- package/dist/client-v2/ai-employees/chatbox/roles.d.ts +0 -162
- package/dist/client-v2/ai-employees/chatbox/stores/chat-tools.d.ts +0 -30
- package/dist/client-v2/ai-employees/flow/index.d.ts +0 -13
- package/dist/client-v2/ai-employees/tools/SuggestionsOptionsCard.d.ts +0 -16
- package/dist/client-v2/ai-employees/tools/WorkflowTaskOutputCard.d.ts +0 -16
- package/dist/client-v2/ai-employees/tools/business-report-utils.d.ts +0 -45
- package/dist/client-v2/ai-employees/tools/data-modeling/CollectionNode.d.ts +0 -11
- package/dist/client-v2/ai-employees/tools/data-modeling/legacy-template.d.ts +0 -13
- package/dist/client-v2/ai-employees/tools/data-modeling/runtime.d.ts +0 -15
- package/dist/client-v2/ai-employees/tools/data-modeling/useFieldInterfaceOptions.d.ts +0 -151
- package/dist/client-v2/ai-employees/tools/index.d.ts +0 -32
- package/dist/client-v2/components/RemoteSelect.d.ts +0 -43
- package/dist/client-v2/f0053e745af0ad03.svg +0 -50
- package/dist/client-v2/llm-providers/forms.d.ts +0 -44
- package/dist/client-v2/llm-providers/index.d.ts +0 -24
- package/dist/client-v2/llm-services/utils.d.ts +0 -13
- package/dist/client-v2/locale.d.ts +0 -14
- package/dist/client-v2/models/ai-employees/AIEmployeeActionModel.d.ts +0 -33
- package/dist/client-v2/models/ai-employees/AIEmployeeShortcutModel.d.ts +0 -44
- package/dist/client-v2/pages/AdminSettingsPage.d.ts +0 -24
- package/dist/client-v2/pages/DatasourceSettingsPage.d.ts +0 -62
- package/dist/client-v2/pages/EmployeesPage.d.ts +0 -53
- package/dist/client-v2/pages/LLMServicesPage.d.ts +0 -75
- package/dist/client-v2/pages/MCPSettingsPage.d.ts +0 -73
- package/dist/client-v2/pages/drawerWidth.d.ts +0 -10
- package/dist/client-v2/pages/permissions/Permissions.d.ts +0 -67
- package/dist/client-v2/pages/permissions/PermissionsTab.d.ts +0 -12
- package/dist/client-v2/pages/useUnsavedChangesBeforeClose.d.ts +0 -29
- package/dist/client-v2/plugin.d.ts +0 -32
- package/dist/client-v2/workflow/components/FormValueRegistry.d.ts +0 -12
- package/dist/client-v2/workflow/constants.d.ts +0 -26
- package/dist/client-v2/workflow/nodes/employee/components/Assignees.d.ts +0 -11
- package/dist/client-v2/workflow/nodes/employee/components/FeedbackSettings.d.ts +0 -17
- package/dist/client-v2/workflow/nodes/employee/components/FileInputs.d.ts +0 -11
- package/dist/client-v2/workflow/nodes/employee/components/MessageInputs.d.ts +0 -11
- package/dist/client-v2/workflow/nodes/employee/components/ModelOptions.d.ts +0 -17
- package/dist/client-v2/workflow/nodes/employee/components/UserInput.d.ts +0 -18
- package/dist/client-v2/workflow/nodes/employee/components/WebSearchOptions.d.ts +0 -16
- package/dist/client-v2/workflow/nodes/employee/index.d.ts +0 -23
- package/dist/client-v2/workflow/nodes/llm/components/LLMFieldset.d.ts +0 -12
- package/dist/client-v2/workflow/nodes/llm/components/StructuredOutput.d.ts +0 -11
- package/dist/client-v2/workflow/nodes/llm/index.d.ts +0 -30
- package/dist/client-v2/workflow/register.d.ts +0 -10
- package/dist/client-v2/workflow/triggers/ai-employee/AIEmployeeTriggerConfig.d.ts +0 -11
- package/dist/client-v2/workflow/triggers/ai-employee/index.d.ts +0 -25
- package/dist/client-v2/workflow/types.d.ts +0 -128
- /package/dist/{client-v2 → client}/ai-employees/AISelection.d.ts +0 -0
- /package/dist/{client-v2 → client}/ai-employees/AISelectionControl.d.ts +0 -0
- /package/dist/{client-v2 → client}/ai-employees/ai-coding/prompts.d.ts +0 -0
- /package/dist/{client-v2 → client}/ai-employees/ai-coding/setup.d.ts +0 -0
- /package/dist/{client-v2/ai-employees/chatbox/components/AIEmployeeSwitcher.d.ts → client/ai-employees/chatbox/AIEmployeeSwitch.d.ts} +0 -0
- /package/dist/{client-v2/ai-employees/chatbox/components → client/ai-employees/chatbox}/ChatButton.d.ts +0 -0
- /package/dist/{client-v2/ai-employees/chatbox/components → client/ai-employees/chatbox}/Messages.d.ts +0 -0
- /package/dist/{client-v2/ai-employees/chatbox/components → client/ai-employees/chatbox}/ModelSwitcher.d.ts +0 -0
- /package/dist/{client-v2/ai-employees/chatbox/components → client/ai-employees/chatbox}/SearchSwitch.d.ts +0 -0
- /package/dist/{client-v2/ai-employees/chatbox/components → client/ai-employees/chatbox}/Sender.d.ts +0 -0
- /package/dist/{client-v2/ai-employees/chatbox/components → client/ai-employees/chatbox}/UserPrompt.d.ts +0 -0
- /package/dist/{client-v2/ai-employees/chatbox/components → client/ai-employees/chatbox/conversations}/Conversations.d.ts +0 -0
- /package/dist/{client-v2/ai-employees/chatbox/components → client/ai-employees/chatbox/generative-ui}/ToolModal.d.ts +0 -0
- /package/dist/{client-v2 → client}/ai-employees/chatbox/hooks/useChatBoxEffect.d.ts +0 -0
- /package/dist/{client-v2 → client}/ai-employees/chatbox/hooks/useLoadMoreObserver.d.ts +0 -0
- /package/dist/{client-v2/workflow/components/index.d.ts → client/ai-employees/flow/events/ai-context-selection.d.ts} +0 -0
- /package/dist/{client-v2/models/ai-employees → client/ai-employees/flow/models}/AIEmployeeShortcutListModel.d.ts +0 -0
- /package/dist/{client-v2/models/ai-employees → client/ai-employees/flow/models}/index.d.ts +0 -0
- /package/dist/client-v2/ai-employees/{stores → chatbox/stores}/global-store.d.ts +0 -0
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import { ChatDeepSeek } from '@langchain/deepseek';
|
|
10
10
|
import { AIMessageChunk, BaseMessage } from '@langchain/core/messages';
|
|
11
|
-
import { LLMProvider
|
|
11
|
+
import { LLMProvider } from './provider';
|
|
12
12
|
import { LLMProviderMeta } from '../manager/ai-manager';
|
|
13
13
|
import { Model } from '@nocobase/database';
|
|
14
14
|
import type OpenAI from 'openai';
|
|
@@ -33,7 +33,6 @@ export declare class DeepSeekProvider extends LLMProvider {
|
|
|
33
33
|
status: string;
|
|
34
34
|
content: string;
|
|
35
35
|
};
|
|
36
|
-
protected resolveReasoningOptions(reasoning?: ReasoningOptions): ResolvedReasoningOptions;
|
|
37
36
|
protected isApiSupportedAttachment(attachment: AttachmentModel): boolean;
|
|
38
37
|
}
|
|
39
38
|
export declare const deepseekProviderOptions: LLMProviderMeta;
|
|
@@ -45,7 +45,6 @@ var import_provider = require("./provider");
|
|
|
45
45
|
var import_ai_manager = require("../manager/ai-manager");
|
|
46
46
|
var import_lodash = __toESM(require("lodash"));
|
|
47
47
|
var import_reasoning = require("./common/reasoning");
|
|
48
|
-
const DEEPSEEK_REASONING_EFFORTS = /* @__PURE__ */ new Set(["low", "medium", "high"]);
|
|
49
48
|
class ReasoningDeepSeek extends import_deepseek.ChatDeepSeek {
|
|
50
49
|
async _generate(messages, options, runManager) {
|
|
51
50
|
const reasoningMap = (0, import_reasoning.collectReasoningMap)(messages);
|
|
@@ -81,7 +80,6 @@ class DeepSeekProvider extends import_provider.LLMProvider {
|
|
|
81
80
|
createModel() {
|
|
82
81
|
const { apiKey } = this.serviceOptions || {};
|
|
83
82
|
const { responseFormat } = this.modelOptions || {};
|
|
84
|
-
const reasoningOptions = this.resolveReasoningOptions(this.modelReasoningOptions);
|
|
85
83
|
const modelKwargs = {};
|
|
86
84
|
if (responseFormat) {
|
|
87
85
|
modelKwargs["response_format"] = {
|
|
@@ -91,11 +89,7 @@ class DeepSeekProvider extends import_provider.LLMProvider {
|
|
|
91
89
|
return new ReasoningDeepSeek({
|
|
92
90
|
apiKey,
|
|
93
91
|
...this.modelOptions,
|
|
94
|
-
|
|
95
|
-
modelKwargs: {
|
|
96
|
-
...modelKwargs,
|
|
97
|
-
...reasoningOptions.modelKwargs || {}
|
|
98
|
-
},
|
|
92
|
+
modelKwargs,
|
|
99
93
|
configuration: {
|
|
100
94
|
baseURL: this.getResolvedBaseURL()
|
|
101
95
|
},
|
|
@@ -130,31 +124,6 @@ class DeepSeekProvider extends import_provider.LLMProvider {
|
|
|
130
124
|
}
|
|
131
125
|
return null;
|
|
132
126
|
}
|
|
133
|
-
resolveReasoningOptions(reasoning) {
|
|
134
|
-
if (!reasoning || reasoning.mode === "default") {
|
|
135
|
-
return {};
|
|
136
|
-
}
|
|
137
|
-
if (reasoning.mode === "off") {
|
|
138
|
-
return {
|
|
139
|
-
modelKwargs: {
|
|
140
|
-
thinking: {
|
|
141
|
-
type: "disabled"
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
};
|
|
145
|
-
}
|
|
146
|
-
if (!DEEPSEEK_REASONING_EFFORTS.has(reasoning.mode)) {
|
|
147
|
-
return {};
|
|
148
|
-
}
|
|
149
|
-
return {
|
|
150
|
-
modelKwargs: {
|
|
151
|
-
thinking: {
|
|
152
|
-
type: "enabled"
|
|
153
|
-
},
|
|
154
|
-
reasoning_effort: reasoning.mode
|
|
155
|
-
}
|
|
156
|
-
};
|
|
157
|
-
}
|
|
158
127
|
isApiSupportedAttachment(attachment) {
|
|
159
128
|
return false;
|
|
160
129
|
}
|
|
@@ -163,7 +132,7 @@ const deepseekProviderOptions = {
|
|
|
163
132
|
title: "DeepSeek",
|
|
164
133
|
supportedModel: [import_ai_manager.SupportedModel.LLM],
|
|
165
134
|
models: {
|
|
166
|
-
[import_ai_manager.SupportedModel.LLM]: ["deepseek-
|
|
135
|
+
[import_ai_manager.SupportedModel.LLM]: ["deepseek-chat", "deepseek-reasoner"]
|
|
167
136
|
},
|
|
168
137
|
provider: DeepSeekProvider
|
|
169
138
|
};
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import { AIMessageChunk } from '@langchain/core/messages';
|
|
10
10
|
import { Model } from '@nocobase/database';
|
|
11
|
-
import { LLMProvider
|
|
11
|
+
import { LLMProvider } from '../provider';
|
|
12
12
|
import { LLMProviderMeta } from '../../manager/ai-manager';
|
|
13
13
|
import { CachedDocumentLoader } from '../../document-loader';
|
|
14
14
|
import { ReasoningChatOpenAI } from '../common/reasoning';
|
|
@@ -28,7 +28,6 @@ export declare class KimiProvider extends LLMProvider {
|
|
|
28
28
|
status: string;
|
|
29
29
|
content: string;
|
|
30
30
|
};
|
|
31
|
-
protected resolveReasoningOptions(reasoning?: ReasoningOptions): ResolvedReasoningOptions;
|
|
32
31
|
protected isApiSupportedAttachment(attachment: AttachmentModel): boolean;
|
|
33
32
|
protected get documentLoader(): CachedDocumentLoader;
|
|
34
33
|
}
|
|
@@ -46,7 +46,6 @@ var import_ai_manager = require("../../manager/ai-manager");
|
|
|
46
46
|
var import_document_loader = require("../../document-loader");
|
|
47
47
|
var import_document_loader2 = require("./document-loader");
|
|
48
48
|
var import_reasoning = require("../common/reasoning");
|
|
49
|
-
const KIMI_THINKING_SWITCH_MODELS = /* @__PURE__ */ new Set(["kimi-k2.5", "kimi-k2.6"]);
|
|
50
49
|
class KimiProvider extends import_provider.LLMProvider {
|
|
51
50
|
_documentLoader;
|
|
52
51
|
get baseURL() {
|
|
@@ -56,7 +55,6 @@ class KimiProvider extends import_provider.LLMProvider {
|
|
|
56
55
|
const { apiKey } = this.serviceOptions || {};
|
|
57
56
|
const { responseFormat, structuredOutput } = this.modelOptions || {};
|
|
58
57
|
const { name, schema } = structuredOutput || {};
|
|
59
|
-
const reasoningOptions = this.resolveReasoningOptions(this.modelReasoningOptions);
|
|
60
58
|
const responseFormatOptions = {
|
|
61
59
|
type: responseFormat ?? "text"
|
|
62
60
|
};
|
|
@@ -67,10 +65,8 @@ class KimiProvider extends import_provider.LLMProvider {
|
|
|
67
65
|
apiKey,
|
|
68
66
|
...this.modelOptions,
|
|
69
67
|
modelKwargs: {
|
|
70
|
-
response_format: responseFormatOptions
|
|
71
|
-
...reasoningOptions.modelKwargs || {}
|
|
68
|
+
response_format: responseFormatOptions
|
|
72
69
|
},
|
|
73
|
-
...reasoningOptions.modelRequestParams || {},
|
|
74
70
|
configuration: {
|
|
75
71
|
baseURL: this.getResolvedBaseURL()
|
|
76
72
|
}
|
|
@@ -104,22 +100,6 @@ class KimiProvider extends import_provider.LLMProvider {
|
|
|
104
100
|
}
|
|
105
101
|
return null;
|
|
106
102
|
}
|
|
107
|
-
resolveReasoningOptions(reasoning) {
|
|
108
|
-
var _a;
|
|
109
|
-
if (!reasoning || reasoning.mode === "default") {
|
|
110
|
-
return {};
|
|
111
|
-
}
|
|
112
|
-
if (!KIMI_THINKING_SWITCH_MODELS.has((_a = this.modelOptions) == null ? void 0 : _a.model)) {
|
|
113
|
-
return {};
|
|
114
|
-
}
|
|
115
|
-
return {
|
|
116
|
-
modelKwargs: {
|
|
117
|
-
thinking: {
|
|
118
|
-
type: reasoning.mode === "off" ? "disabled" : "enabled"
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
};
|
|
122
|
-
}
|
|
123
103
|
isApiSupportedAttachment(attachment) {
|
|
124
104
|
var _a;
|
|
125
105
|
return ((_a = attachment.mimetype) == null ? void 0 : _a.startsWith("image/")) ?? false;
|
|
@@ -146,7 +126,7 @@ const kimiProviderOptions = {
|
|
|
146
126
|
title: "Kimi",
|
|
147
127
|
supportedModel: [import_ai_manager.SupportedModel.LLM],
|
|
148
128
|
models: {
|
|
149
|
-
[import_ai_manager.SupportedModel.LLM]: ["kimi-k2.
|
|
129
|
+
[import_ai_manager.SupportedModel.LLM]: ["kimi-k2.5", "kimi-k2-0905-Preview", "kimi-k2-turbo-preview"]
|
|
150
130
|
},
|
|
151
131
|
provider: KimiProvider
|
|
152
132
|
};
|
|
@@ -10,55 +10,21 @@ import { EmbeddingsInterface } from '@langchain/core/embeddings';
|
|
|
10
10
|
import { AIMessage, AIMessageChunk } from '@langchain/core/messages';
|
|
11
11
|
import { ChatMistralAI } from '@langchain/mistralai';
|
|
12
12
|
import { AttachmentModel } from '@nocobase/plugin-file-manager';
|
|
13
|
-
import { EmbeddingProvider, LLMProvider, LLMProviderInvokeOptions
|
|
13
|
+
import { EmbeddingProvider, LLMProvider, LLMProviderInvokeOptions } from './provider';
|
|
14
14
|
import { LLMProviderMeta } from '../manager/ai-manager';
|
|
15
15
|
import { AIChatContext, AIMessageInput } from '../types/ai-chat-conversation.type';
|
|
16
16
|
import { Model } from '@nocobase/database';
|
|
17
|
-
declare const MISTRAL_REASONING_MODE_KEY = "__nb_reasoning_mode";
|
|
18
17
|
type MistralCallOptions = LLMProviderInvokeOptions & {
|
|
19
18
|
response_format?: {
|
|
20
19
|
type: 'text' | 'json_object';
|
|
21
20
|
};
|
|
22
21
|
};
|
|
23
22
|
type MistralBeforeRequestHook = (request: Request) => Request | void | Promise<Request | void>;
|
|
24
|
-
type ReasoningChatMistralAIFields = ConstructorParameters<typeof ChatMistralAI>[0] & {
|
|
25
|
-
[MISTRAL_REASONING_MODE_KEY]?: ReasoningMode;
|
|
26
|
-
};
|
|
27
23
|
export declare const injectMistralReasoningEffort: MistralBeforeRequestHook;
|
|
28
|
-
declare class ReasoningChatMistralAI extends ChatMistralAI {
|
|
29
|
-
private readonly reasoningMode?;
|
|
30
|
-
constructor(fields: ReasoningChatMistralAIFields);
|
|
31
|
-
invocationParams(options?: MistralCallOptions): Omit<import("@mistralai/mistralai/models/components/chatcompletionrequest").ChatCompletionRequest | import("@mistralai/mistralai/models/components/chatcompletionstreamrequest").ChatCompletionStreamRequest, "messages"> | {
|
|
32
|
-
__nb_reasoning_mode: "off" | "minimal" | "low" | "medium" | "high" | "xhigh";
|
|
33
|
-
model: string;
|
|
34
|
-
tools?: import("@mistralai/mistralai/models/components/tool").Tool[];
|
|
35
|
-
metadata?: {
|
|
36
|
-
[k: string]: any;
|
|
37
|
-
} | {
|
|
38
|
-
[k: string]: any;
|
|
39
|
-
};
|
|
40
|
-
stream?: boolean;
|
|
41
|
-
responseFormat?: import("@mistralai/mistralai/models/components/responseformat").ResponseFormat;
|
|
42
|
-
temperature?: number;
|
|
43
|
-
maxTokens?: number;
|
|
44
|
-
topP?: number;
|
|
45
|
-
frequencyPenalty?: number;
|
|
46
|
-
presencePenalty?: number;
|
|
47
|
-
n?: number;
|
|
48
|
-
stop?: string | string[];
|
|
49
|
-
toolChoice?: import("@mistralai/mistralai/models/components/toolchoice").ToolChoice | import("@mistralai/mistralai/models/components/toolchoiceenum").ToolChoiceEnum;
|
|
50
|
-
randomSeed?: number;
|
|
51
|
-
prediction?: import("@mistralai/mistralai/models/components/prediction").Prediction;
|
|
52
|
-
parallelToolCalls?: boolean;
|
|
53
|
-
promptMode?: import("@mistralai/mistralai/models/components/mistralpromptmode").MistralPromptMode;
|
|
54
|
-
safePrompt?: boolean;
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
24
|
export declare class MistralProvider extends LLMProvider {
|
|
58
25
|
chatModel: ChatMistralAI;
|
|
59
26
|
get baseURL(): string;
|
|
60
|
-
createModel():
|
|
61
|
-
protected resolveReasoningOptions(reasoning?: ReasoningOptions): ResolvedReasoningOptions;
|
|
27
|
+
createModel(): ChatMistralAI<import("@langchain/mistralai/dist/chat_models").ChatMistralAICallOptions>;
|
|
62
28
|
stream(context: AIChatContext, options?: MistralCallOptions): Promise<any>;
|
|
63
29
|
invoke(context: AIChatContext, options?: MistralCallOptions): Promise<any>;
|
|
64
30
|
listModels(): Promise<{
|
|
@@ -39,8 +39,6 @@ var import_ai_manager = require("../manager/ai-manager");
|
|
|
39
39
|
const MISTRAL_URL = "https://api.mistral.ai";
|
|
40
40
|
const MISTRAL_REASONING_EFFORT = "high";
|
|
41
41
|
const MISTRAL_REASONING_MODELS = /* @__PURE__ */ new Set(["mistral-small-latest", "mistral-medium-3-5"]);
|
|
42
|
-
const MISTRAL_REASONING_EFFORTS = /* @__PURE__ */ new Set(["off", "low", "medium", "high"]);
|
|
43
|
-
const MISTRAL_REASONING_MODE_KEY = "__nb_reasoning_mode";
|
|
44
42
|
function omitDisabledNumberOptions(options) {
|
|
45
43
|
for (const key of ["maxTokens", "maxRetries"]) {
|
|
46
44
|
if (options[key] === -1) {
|
|
@@ -75,62 +73,19 @@ const injectMistralReasoningEffort = async (request) => {
|
|
|
75
73
|
if (!body || typeof body !== "object") {
|
|
76
74
|
return;
|
|
77
75
|
}
|
|
78
|
-
const reasoningMode = body[MISTRAL_REASONING_MODE_KEY];
|
|
79
|
-
delete body[MISTRAL_REASONING_MODE_KEY];
|
|
80
|
-
const shouldRewriteBody = reasoningMode != null;
|
|
81
76
|
if (typeof body.model !== "string" || !MISTRAL_REASONING_MODELS.has(body.model)) {
|
|
82
|
-
if (shouldRewriteBody) {
|
|
83
|
-
const headers2 = new Headers(request.headers);
|
|
84
|
-
headers2.delete("content-length");
|
|
85
|
-
return new Request(request, {
|
|
86
|
-
headers: headers2,
|
|
87
|
-
body: JSON.stringify(body)
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
77
|
return;
|
|
91
78
|
}
|
|
92
|
-
if (reasoningMode === "off") {
|
|
93
|
-
delete body.reasoning_effort;
|
|
94
|
-
const headers2 = new Headers(request.headers);
|
|
95
|
-
headers2.delete("content-length");
|
|
96
|
-
return new Request(request, {
|
|
97
|
-
headers: headers2,
|
|
98
|
-
body: JSON.stringify(body)
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
if (body.reasoning_effort && !shouldRewriteBody) {
|
|
102
|
-
return;
|
|
103
|
-
}
|
|
104
|
-
const reasoningEffort = reasoningMode && reasoningMode !== "default" ? reasoningMode : MISTRAL_REASONING_EFFORT;
|
|
105
79
|
const headers = new Headers(request.headers);
|
|
106
80
|
headers.delete("content-length");
|
|
107
81
|
return new Request(request, {
|
|
108
82
|
headers,
|
|
109
83
|
body: JSON.stringify({
|
|
110
84
|
...body,
|
|
111
|
-
reasoning_effort:
|
|
85
|
+
reasoning_effort: MISTRAL_REASONING_EFFORT
|
|
112
86
|
})
|
|
113
87
|
});
|
|
114
88
|
};
|
|
115
|
-
class ReasoningChatMistralAI extends import_mistralai.ChatMistralAI {
|
|
116
|
-
reasoningMode;
|
|
117
|
-
constructor(fields) {
|
|
118
|
-
const { [MISTRAL_REASONING_MODE_KEY]: reasoningMode, ...modelFields } = fields;
|
|
119
|
-
super(modelFields);
|
|
120
|
-
this.reasoningMode = reasoningMode;
|
|
121
|
-
}
|
|
122
|
-
invocationParams(options) {
|
|
123
|
-
const params = super.invocationParams(options);
|
|
124
|
-
const mode = this.reasoningMode;
|
|
125
|
-
if (!mode || mode === "default") {
|
|
126
|
-
return params;
|
|
127
|
-
}
|
|
128
|
-
return {
|
|
129
|
-
...params,
|
|
130
|
-
[MISTRAL_REASONING_MODE_KEY]: mode
|
|
131
|
-
};
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
89
|
class MistralProvider extends import_provider.LLMProvider {
|
|
135
90
|
get baseURL() {
|
|
136
91
|
return MISTRAL_URL;
|
|
@@ -140,29 +95,14 @@ class MistralProvider extends import_provider.LLMProvider {
|
|
|
140
95
|
const { responseFormat, structuredOutput, ...modelOptions } = this.modelOptions || {};
|
|
141
96
|
omitDisabledNumberOptions(modelOptions);
|
|
142
97
|
const beforeRequestHooks = Array.isArray(modelOptions.beforeRequestHooks) ? [injectMistralReasoningEffort, ...modelOptions.beforeRequestHooks] : [injectMistralReasoningEffort];
|
|
143
|
-
|
|
144
|
-
return new ReasoningChatMistralAI({
|
|
98
|
+
return new import_mistralai.ChatMistralAI({
|
|
145
99
|
apiKey,
|
|
146
100
|
...modelOptions,
|
|
147
|
-
...reasoningOptions.modelRequestParams || {},
|
|
148
101
|
beforeRequestHooks,
|
|
149
102
|
serverURL: this.getResolvedServerURL(),
|
|
150
103
|
verbose: false
|
|
151
104
|
});
|
|
152
105
|
}
|
|
153
|
-
resolveReasoningOptions(reasoning) {
|
|
154
|
-
if (!reasoning || reasoning.mode === "default") {
|
|
155
|
-
return {};
|
|
156
|
-
}
|
|
157
|
-
if (!MISTRAL_REASONING_EFFORTS.has(reasoning.mode)) {
|
|
158
|
-
return {};
|
|
159
|
-
}
|
|
160
|
-
return {
|
|
161
|
-
modelRequestParams: {
|
|
162
|
-
[MISTRAL_REASONING_MODE_KEY]: reasoning.mode
|
|
163
|
-
}
|
|
164
|
-
};
|
|
165
|
-
}
|
|
166
106
|
async stream(context, options) {
|
|
167
107
|
return super.stream(context, this.withResponseFormat(options));
|
|
168
108
|
}
|
|
@@ -7,10 +7,9 @@
|
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
9
|
import { ChatOpenAI } from '@langchain/openai';
|
|
10
|
-
import { LLMProvider
|
|
10
|
+
import { LLMProvider } from '../provider';
|
|
11
11
|
export declare class OpenAICompletionsProvider extends LLMProvider {
|
|
12
12
|
chatModel: ChatOpenAI;
|
|
13
13
|
get baseURL(): string;
|
|
14
14
|
createModel(): ChatOpenAI<import("@langchain/openai/dist/chat_models/index.cjs").ChatOpenAICallOptions>;
|
|
15
|
-
protected resolveReasoningOptions(reasoning?: ReasoningOptions): ResolvedReasoningOptions;
|
|
16
15
|
}
|
|
@@ -39,7 +39,6 @@ class OpenAICompletionsProvider extends import_provider.LLMProvider {
|
|
|
39
39
|
const { apiKey } = this.serviceOptions || {};
|
|
40
40
|
const { responseFormat, structuredOutput } = this.modelOptions || {};
|
|
41
41
|
const { name, schema } = structuredOutput || {};
|
|
42
|
-
const reasoningOptions = this.resolveReasoningOptions(this.modelReasoningOptions);
|
|
43
42
|
const responseFormatOptions = {
|
|
44
43
|
type: responseFormat ?? "text"
|
|
45
44
|
};
|
|
@@ -49,29 +48,14 @@ class OpenAICompletionsProvider extends import_provider.LLMProvider {
|
|
|
49
48
|
return new import_openai.ChatOpenAI({
|
|
50
49
|
apiKey,
|
|
51
50
|
...this.modelOptions,
|
|
52
|
-
...reasoningOptions.modelRequestParams || {},
|
|
53
51
|
modelKwargs: {
|
|
54
|
-
response_format: responseFormatOptions
|
|
55
|
-
...reasoningOptions.modelKwargs || {}
|
|
52
|
+
response_format: responseFormatOptions
|
|
56
53
|
},
|
|
57
54
|
configuration: {
|
|
58
55
|
baseURL: this.getResolvedBaseURL()
|
|
59
56
|
}
|
|
60
57
|
});
|
|
61
58
|
}
|
|
62
|
-
resolveReasoningOptions(reasoning) {
|
|
63
|
-
if (!reasoning || reasoning.mode === "default") {
|
|
64
|
-
return {};
|
|
65
|
-
}
|
|
66
|
-
const effort = reasoning.mode === "off" ? "none" : reasoning.mode;
|
|
67
|
-
return {
|
|
68
|
-
modelRequestParams: {
|
|
69
|
-
reasoning: {
|
|
70
|
-
effort
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
59
|
}
|
|
76
60
|
// Annotate the CommonJS export names for ESM import in node:
|
|
77
61
|
0 && (module.exports = {
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
9
|
import { ChatOpenAI } from '@langchain/openai';
|
|
10
|
-
import { LLMProvider
|
|
10
|
+
import { LLMProvider } from '../provider';
|
|
11
11
|
import { Model } from '@nocobase/database';
|
|
12
12
|
import { AIMessageChunk } from '@langchain/core/messages';
|
|
13
13
|
export declare class OpenAIResponsesProvider extends LLMProvider {
|
|
@@ -22,7 +22,6 @@ export declare class OpenAIResponsesProvider extends LLMProvider {
|
|
|
22
22
|
role: any;
|
|
23
23
|
};
|
|
24
24
|
protected builtInTools(): any[];
|
|
25
|
-
protected resolveReasoningOptions(reasoning?: ReasoningOptions): ResolvedReasoningOptions;
|
|
26
25
|
isToolConflict(): boolean;
|
|
27
26
|
parseWebSearchAction(chunk: AIMessageChunk): {
|
|
28
27
|
type: string;
|
|
@@ -40,7 +40,6 @@ class OpenAIResponsesProvider extends import_provider.LLMProvider {
|
|
|
40
40
|
const { apiKey } = this.serviceOptions || {};
|
|
41
41
|
const { responseFormat, structuredOutput } = this.modelOptions || {};
|
|
42
42
|
const { name, schema, strict } = structuredOutput || {};
|
|
43
|
-
const reasoningOptions = this.resolveReasoningOptions(this.modelReasoningOptions);
|
|
44
43
|
let responseFormatOptions = {
|
|
45
44
|
type: responseFormat ?? "text"
|
|
46
45
|
};
|
|
@@ -55,12 +54,10 @@ class OpenAIResponsesProvider extends import_provider.LLMProvider {
|
|
|
55
54
|
return new import_openai.ChatOpenAI({
|
|
56
55
|
apiKey,
|
|
57
56
|
...this.modelOptions,
|
|
58
|
-
...reasoningOptions.modelRequestParams || {},
|
|
59
57
|
modelKwargs: {
|
|
60
58
|
text: {
|
|
61
59
|
format: responseFormatOptions
|
|
62
|
-
}
|
|
63
|
-
...reasoningOptions.modelKwargs || {}
|
|
60
|
+
}
|
|
64
61
|
},
|
|
65
62
|
configuration: {
|
|
66
63
|
baseURL: this.getResolvedBaseURL()
|
|
@@ -133,19 +130,6 @@ class OpenAIResponsesProvider extends import_provider.LLMProvider {
|
|
|
133
130
|
}
|
|
134
131
|
return [];
|
|
135
132
|
}
|
|
136
|
-
resolveReasoningOptions(reasoning) {
|
|
137
|
-
if (!reasoning || reasoning.mode === "default") {
|
|
138
|
-
return {};
|
|
139
|
-
}
|
|
140
|
-
const effort = reasoning.mode === "off" ? "none" : reasoning.mode;
|
|
141
|
-
return {
|
|
142
|
-
modelRequestParams: {
|
|
143
|
-
reasoning: {
|
|
144
|
-
effort
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
};
|
|
148
|
-
}
|
|
149
133
|
isToolConflict() {
|
|
150
134
|
return false;
|
|
151
135
|
}
|
|
@@ -27,11 +27,6 @@ export type LLMProviderInvokeOptions = {
|
|
|
27
27
|
modelRequestParams?: Record<string, any>;
|
|
28
28
|
[key: string]: any;
|
|
29
29
|
};
|
|
30
|
-
export type ReasoningMode = 'default' | 'off' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh';
|
|
31
|
-
export type ReasoningOptions = {
|
|
32
|
-
mode: ReasoningMode;
|
|
33
|
-
};
|
|
34
|
-
export type ResolvedReasoningOptions = Pick<LLMProviderInvokeOptions, 'modelKwargs' | 'modelRequestParams'>;
|
|
35
30
|
export type LLMModelRequestBuilderResult = {
|
|
36
31
|
context: AIChatContext;
|
|
37
32
|
options?: LLMProviderInvokeOptions;
|
|
@@ -50,12 +45,10 @@ export declare abstract class LLMProvider {
|
|
|
50
45
|
serviceOptions: Record<string, any>;
|
|
51
46
|
modelOptions: Record<string, any> | undefined;
|
|
52
47
|
chatModel: any;
|
|
53
|
-
protected modelReasoningOptions: ReasoningOptions | undefined;
|
|
54
48
|
abstract createModel(): BaseChatModel | any;
|
|
55
49
|
get baseURL(): string | null;
|
|
56
50
|
constructor(opts: LLMProviderOptions);
|
|
57
51
|
protected getModelRequestBuilder(_model?: string): LLMModelRequestBuilder | null;
|
|
58
|
-
protected resolveReasoningOptions(_reasoning?: ReasoningOptions): ResolvedReasoningOptions;
|
|
59
52
|
prepareChain(context: AIChatContext): any;
|
|
60
53
|
invoke(context: AIChatContext, options?: LLMProviderInvokeOptions): Promise<any>;
|
|
61
54
|
stream(context: AIChatContext, options?: any): Promise<any>;
|
|
@@ -84,7 +84,6 @@ class LLMProvider {
|
|
|
84
84
|
serviceOptions;
|
|
85
85
|
modelOptions;
|
|
86
86
|
chatModel;
|
|
87
|
-
modelReasoningOptions;
|
|
88
87
|
get baseURL() {
|
|
89
88
|
return null;
|
|
90
89
|
}
|
|
@@ -93,18 +92,13 @@ class LLMProvider {
|
|
|
93
92
|
this.app = app;
|
|
94
93
|
this.serviceOptions = resolveServiceOptions(serviceOptions, app);
|
|
95
94
|
if (modelOptions) {
|
|
96
|
-
|
|
97
|
-
this.modelReasoningOptions = _reasoning;
|
|
98
|
-
this.modelOptions = restModelOptions;
|
|
95
|
+
this.modelOptions = modelOptions;
|
|
99
96
|
this.chatModel = this.createModel();
|
|
100
97
|
}
|
|
101
98
|
}
|
|
102
99
|
getModelRequestBuilder(_model) {
|
|
103
100
|
return null;
|
|
104
101
|
}
|
|
105
|
-
resolveReasoningOptions(_reasoning) {
|
|
106
|
-
return {};
|
|
107
|
-
}
|
|
108
102
|
prepareChain(context) {
|
|
109
103
|
var _a, _b, _c, _d;
|
|
110
104
|
let chain = this.chatModel;
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
|
-
import { LLMProvider, LLMProviderOptions, EmbeddingProvider, EmbeddingProviderOptions
|
|
9
|
+
import { LLMProvider, LLMProviderOptions, EmbeddingProvider, EmbeddingProviderOptions } from '../llm-providers/provider';
|
|
10
10
|
import PluginAIServer from '../plugin';
|
|
11
11
|
import { ToolManager } from './tool-manager';
|
|
12
12
|
export type LLMProviderMeta = {
|
|
@@ -25,7 +25,6 @@ export type LLMModelOptions = {
|
|
|
25
25
|
llmService: string;
|
|
26
26
|
model: string;
|
|
27
27
|
webSearch?: boolean;
|
|
28
|
-
reasoning?: ReasoningOptions;
|
|
29
28
|
};
|
|
30
29
|
export type EnabledLLMModel = {
|
|
31
30
|
label: string;
|
|
@@ -123,7 +123,7 @@ class AIManager {
|
|
|
123
123
|
return (0, import_recommended_models.getRecommendedModels)(provider);
|
|
124
124
|
}
|
|
125
125
|
async getLLMService(options) {
|
|
126
|
-
const { llmService, model, webSearch
|
|
126
|
+
const { llmService, model, webSearch } = options ?? {};
|
|
127
127
|
if (!llmService || !model) {
|
|
128
128
|
throw new Error("LLM service not configured");
|
|
129
129
|
}
|
|
@@ -134,9 +134,6 @@ class AIManager {
|
|
|
134
134
|
if (webSearch === true) {
|
|
135
135
|
modelOptions.builtIn = { webSearch: true };
|
|
136
136
|
}
|
|
137
|
-
if (reasoning) {
|
|
138
|
-
modelOptions._reasoning = reasoning;
|
|
139
|
-
}
|
|
140
137
|
const service = await this.plugin.db.getRepository("llmServices").findOne({
|
|
141
138
|
filter: {
|
|
142
139
|
name: llmService
|
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-
|
|
9
|
+
"version": "2.2.0-beta.10",
|
|
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,8 +34,6 @@
|
|
|
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",
|
|
39
37
|
"@langchain/anthropic": "1.3.17",
|
|
40
38
|
"@langchain/community": "1.1.29",
|
|
41
39
|
"@langchain/core": "1.1.49",
|
|
@@ -61,10 +59,12 @@
|
|
|
61
59
|
"react-syntax-highlighter": "^15.6.1",
|
|
62
60
|
"rehype-raw": "^7.0.0",
|
|
63
61
|
"rehype-sanitize": "^6.0.0",
|
|
64
|
-
"remark-gfm": "^4.0.1"
|
|
62
|
+
"remark-gfm": "^4.0.1",
|
|
63
|
+
"use-context-selector": "^2.0.0",
|
|
64
|
+
"zustand": "^5.0.6"
|
|
65
65
|
},
|
|
66
66
|
"keywords": [
|
|
67
67
|
"AI"
|
|
68
68
|
],
|
|
69
|
-
"gitHead": "
|
|
69
|
+
"gitHead": "d572beec24de46df948f28db72b25303a63bf62d"
|
|
70
70
|
}
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
pkg: "@nocobase/plugin-block-comment"
|
|
3
|
-
title: "Comment Block"
|
|
4
|
-
description: "Comment block: view and create comments in record details, pop-ups, and similar scenarios, with field mapping, pagination, data scope, default sorting, and auto jump to last page."
|
|
5
|
-
keywords: "Comment Block,CommentBlock,comment collection,field mapping,data scope,default sorting,interface builder,NocoBase"
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Comment Block
|
|
9
|
-
|
|
10
|
-
## Introduction
|
|
11
|
-
|
|
12
|
-
The Comment block adds commenting capabilities to business records. You can add it to detail pages or pop-ups for tasks, articles, tickets, customers, and other records, so users can view, reply to, and create comments around the current record.
|
|
13
|
-
|
|
14
|
-

|
|
15
|
-
|
|
16
|
-
:::tip
|
|
17
|
-
|
|
18
|
-
The Comment block does not create a collection by itself. Before using it, prepare a collection for storing comments and configure fields such as comment content, commenter, comment owner, and comment time.
|
|
19
|
-
|
|
20
|
-
:::
|
|
21
|
-
|
|
22
|
-
## Add a block
|
|
23
|
-
|
|
24
|
-
The Comment block is usually added to the detail page or pop-up of a business record.
|
|
25
|
-
|
|
26
|
-

|
|
27
|
-
|
|
28
|
-
1. Open the target record detail page or pop-up
|
|
29
|
-
2. Click "Add block"
|
|
30
|
-
3. Select "Comment"
|
|
31
|
-
4. Select the collection used to store comments
|
|
32
|
-
5. Complete field mapping as prompted
|
|
33
|
-
|
|
34
|
-
If the Comment block is created from an association, NocoBase will try to automatically identify the comment owner field and the current record value based on the current association. In this case, "Comment owner field" and "Comment owner field value" are filled automatically, and usually do not need manual configuration.
|
|
35
|
-
|
|
36
|
-

|
|
37
|
-
|
|
38
|
-
If the block is created directly from the comment collection, you need to manually configure the comment owner field and value.
|
|
39
|
-
|
|
40
|
-
.png)
|
|
41
|
-
|
|
42
|
-
## Field mapping
|
|
43
|
-
|
|
44
|
-
The Comment block uses "Field mapping" to know how each comment should be displayed and saved.
|
|
45
|
-
|
|
46
|
-
| Configuration | Description |
|
|
47
|
-
| --- | --- |
|
|
48
|
-
| Comment content field | Select the field used to store the comment body. |
|
|
49
|
-
| Commenter field | Select a many-to-one field associated with the users collection. |
|
|
50
|
-
| Comment owner field | Select the field used to store the current business record identifier. |
|
|
51
|
-
| Comment owner field value | Specify the current business record value, such as `{{ ctx.popup.record.id }}`. |
|
|
52
|
-
| Comment date field | Select the comment time field, used for display and default sorting. |
|
|
53
|
-
|
|
54
|
-
### Comment owner field
|
|
55
|
-
|
|
56
|
-
"Comment owner field" is used to filter comments for the current record, and is also written when a new comment is created.
|
|
57
|
-
|
|
58
|
-
When selected manually, the dropdown only shows ordinary scalar fields and does not show association fields. Common configurations are:
|
|
59
|
-
|
|
60
|
-
| Business collection | Owner field in comment collection | Comment owner field value |
|
|
61
|
-
| --- | --- | --- |
|
|
62
|
-
| Tasks | `taskId` | `{{ ctx.popup.record.id }}` |
|
|
63
|
-
| Articles | `postId` | `{{ ctx.popup.record.id }}` |
|
|
64
|
-
| Tickets | `ticketId` | `{{ ctx.popup.record.id }}` |
|
|
65
|
-
|
|
66
|
-
If the current record uses a unique identifier other than `id`, change "Comment owner field value" to the corresponding field, such as `{{ ctx.popup.record.uuid }}`.
|
|
67
|
-
|
|
68
|
-
### Automatic mapping from associations
|
|
69
|
-
|
|
70
|
-
If the block is created from an association of the business record, the Comment block prioritizes the foreign key field of that association as the comment owner field, and uses the current record value as the comment owner field value.
|
|
71
|
-
|
|
72
|
-

|
|
73
|
-
|
|
74
|
-
For example, if there is a one-to-many association between the task collection and the task comment collection, and the foreign key field in the task comment collection is `taskId`, then when you add a Comment block from the association in the task detail page, the block automatically uses:
|
|
75
|
-
|
|
76
|
-
- Comment owner field: `taskId`
|
|
77
|
-
- Comment owner field value: the identifier of the current task record
|
|
78
|
-
|
|
79
|
-
This approach is suitable for most scenarios and reduces manual configuration errors.
|
|
80
|
-
|
|
81
|
-
## Block settings
|
|
82
|
-
|
|
83
|
-

|
|
84
|
-
|
|
85
|
-
### Page size
|
|
86
|
-
|
|
87
|
-
Set how many comments are displayed on each page. Available values include `5`, `10`, `20`, `50`, `100`, and `200`.
|
|
88
|
-
|
|
89
|
-
### Data scope
|
|
90
|
-
|
|
91
|
-
Set the data filtering scope for the comment list. You can add more conditions here, such as showing only comments that match certain status or permission conditions.
|
|
92
|
-
|
|
93
|
-
For more details, see [Set data scope](../block-settings/data-scope.md).
|
|
94
|
-
|
|
95
|
-
### Default sorting rule
|
|
96
|
-
|
|
97
|
-
Set the default sorting rule for the comment list. Usually, you can sort by the comment date field in ascending or descending order.
|
|
98
|
-
|
|
99
|
-
If no default sorting rule is configured separately, the Comment block prioritizes the "Comment date field" as the default sorting field.
|
|
100
|
-
|
|
101
|
-
For more details, see [Set sorting rule](../block-settings/sorting-rule.md).
|
|
102
|
-
|
|
103
|
-
### Auto jump to last page
|
|
104
|
-
|
|
105
|
-
Disabled by default. When disabled, the Comment block stays on the first page after opening.
|
|
106
|
-
|
|
107
|
-
When enabled, the Comment block jumps to the last page on first load. This is suitable when you want users to see the latest comments first.
|