@nocobase/plugin-ai 2.1.31 → 2.2.0-alpha.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 +1 -0
- package/dist/ai/docs/nocobase/api/app/env.md +1 -1
- package/dist/ai/docs/nocobase/api/cli/index.md +14 -2
- package/dist/ai/docs/nocobase/api/cli/portal/config.md +44 -0
- package/dist/ai/docs/nocobase/api/cli/portal/create.md +48 -0
- package/dist/ai/docs/nocobase/api/cli/portal/deploy.md +39 -0
- package/dist/ai/docs/nocobase/api/cli/portal/destroy.md +41 -0
- package/dist/ai/docs/nocobase/api/cli/portal/dev.md +39 -0
- package/dist/ai/docs/nocobase/api/cli/portal/index.md +136 -0
- package/dist/ai/docs/nocobase/api/cli/portal/info.md +41 -0
- package/dist/ai/docs/nocobase/api/cli/portal/list.md +40 -0
- package/dist/ai/docs/nocobase/api/cli/portal/pull.md +43 -0
- package/dist/ai/docs/nocobase/api/cli/portal/push.md +41 -0
- package/dist/ai/docs/nocobase/file-manager/stable-url.md +87 -0
- package/dist/ai/docs/nocobase/file-manager/storage/index.md +66 -26
- package/dist/ai/docs/nocobase/file-manager/storage/s3-pro.md +58 -7
- package/dist/ai/docs/nocobase/get-started/deployment/production.md +24 -2
- package/dist/ai/docs/nocobase/get-started/installation/docker-caddy.mdx +3 -0
- package/dist/ai/docs/nocobase/get-started/installation/docker-nginx.mdx +3 -0
- package/dist/ai/docs/nocobase/get-started/installation/docker.mdx +27 -3
- package/dist/ai/docs/nocobase/get-started/installation/env.md +34 -1
- package/dist/ai/docs/nocobase/interface-builder/blocks/data-blocks/comment.md +107 -0
- package/dist/ai/docs/nocobase/interface-builder/blocks/data-blocks/gantt.md +204 -0
- package/dist/ai/docs/nocobase/interface-builder/index.md +7 -6
- package/dist/ai/docs/nocobase/interface-builder/ui-layout/desktop.md +97 -0
- package/dist/ai/docs/nocobase/interface-builder/ui-layout/index.md +50 -0
- package/dist/ai/docs/nocobase/interface-builder/ui-layout/mobile.md +133 -0
- package/dist/ai/docs/nocobase/nocobase-cli/production/index.md +10 -0
- package/dist/ai/docs/nocobase/nocobase-cli/production/reverse-proxy/caddy.md +15 -2
- package/dist/ai/docs/nocobase/nocobase-cli/production/reverse-proxy/index.md +1 -1
- package/dist/ai/docs/nocobase/nocobase-cli/production/reverse-proxy/nginx.md +16 -2
- package/dist/ai/docs/nocobase/plugins/@nocobase/plugin-block-comment/index.md +14 -0
- package/dist/ai/docs/nocobase/plugins/@nocobase/plugin-multi-portal/index.md +16 -0
- package/dist/ai/docs/nocobase/plugins/@nocobase/plugin-ui-layout/index.md +14 -0
- package/dist/ai/docs/nocobase/plugins/@nocobase/plugin-workflow-transaction/index.md +16 -0
- package/dist/ai/docs/nocobase/runjs/context/ai.md +206 -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/ai/docs/nocobase/workflow/nodes/index.md +2 -1
- package/dist/ai/docs/nocobase/workflow/nodes/transaction.md +81 -0
- package/dist/ai/tools/executeFrontendTool.d.ts +10 -0
- package/dist/ai/tools/executeFrontendTool.js +86 -0
- package/dist/ai/tools/formFiller.js +4 -3
- package/dist/ai/tools/loadFrontendTool.d.ts +10 -0
- package/dist/ai/tools/loadFrontendTool.js +99 -0
- package/dist/ai/tools/subAgentWebSearch.js +20 -15
- 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.49163fac65cef81c.js +10 -0
- package/dist/client/416.92b74ca47e4099c4.js +10 -0
- package/dist/client/446.d63c38d0309fe250.js +10 -0
- package/dist/client/525.94dd4136c1361477.js +10 -0
- package/dist/client/663.680bcf6272a8504d.js +10 -0
- package/dist/client/681.399948c18d753667.js +10 -0
- package/dist/client/705.19b642db34de438a.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.387161cdeb106987.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.8dc34d43f02f322c.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-v2/ai-employees/chatbox/utils/normalizeTriggerTaskOptions.d.ts +19 -0
- package/dist/{client → client-v2}/ai-employees/chatbox/utils.d.ts +26 -7
- 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/ai-employees/ai-coding/tools/index.d.ts → client-v2/ai-employees/frontend-tools.d.ts} +3 -3
- 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 +151 -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 +104 -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 +44 -0
- package/dist/client-v2/llm-providers/index.d.ts +24 -0
- package/dist/{client/ai-employees/chart-generator/tools/index.d.ts → client-v2/llm-services/utils.d.ts} +5 -2
- package/dist/client-v2/locale.d.ts +14 -0
- package/dist/client-v2/manager/ai-manager.d.ts +57 -0
- package/dist/client-v2/manager/frontend-tool-registry.d.ts +30 -0
- 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 +63 -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 +33 -0
- package/dist/client-v2/repositories/AIConfigRepository.d.ts +3 -23
- package/dist/client-v2/runjs/registerAIEmployeeRunJSFacade.d.ts +20 -0
- 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/common/frontend-tools.d.ts +26 -0
- package/dist/common/frontend-tools.js +57 -0
- package/dist/externalVersion.js +20 -25
- package/dist/locale/en-US.json +48 -1
- package/dist/locale/zh-CN.json +48 -1
- 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-conversations.d.ts +2 -0
- package/dist/server/ai-employees/ai-employee.d.ts +1 -1
- package/dist/server/ai-employees/ai-employee.js +27 -8
- package/dist/server/ai-employees/prompts.d.ts +2 -1
- package/dist/server/ai-employees/prompts.js +8 -2
- package/dist/server/ai-employees/tool-call-sanitizer.d.ts +1 -0
- package/dist/server/ai-employees/tool-call-sanitizer.js +2 -1
- package/dist/server/ai-employees/utils.js +11 -5
- package/dist/server/collections/ai-usage-events.d.ts +10 -0
- package/dist/server/collections/ai-usage-events.js +183 -0
- package/dist/server/document-loader/constants.js +1 -0
- package/dist/server/frontend-tools.d.ts +25 -0
- package/dist/server/frontend-tools.js +171 -0
- package/dist/server/llm-providers/dashscope.d.ts +2 -1
- package/dist/server/llm-providers/dashscope.js +16 -1
- package/dist/server/llm-providers/deepseek.d.ts +2 -1
- package/dist/server/llm-providers/deepseek.js +33 -2
- package/dist/server/llm-providers/kimi/provider.d.ts +2 -1
- package/dist/server/llm-providers/kimi/provider.js +22 -2
- package/dist/server/llm-providers/mistral.d.ts +36 -2
- package/dist/server/llm-providers/mistral.js +62 -2
- package/dist/server/llm-providers/openai/completions.d.ts +2 -1
- package/dist/server/llm-providers/openai/completions.js +17 -1
- package/dist/server/llm-providers/openai/responses.d.ts +2 -1
- package/dist/server/llm-providers/openai/responses.js +17 -1
- package/dist/server/llm-providers/provider.d.ts +7 -0
- package/dist/server/llm-providers/provider.js +7 -1
- package/dist/server/manager/ai-chat-conversation.js +2 -0
- package/dist/server/manager/ai-context-datasource-manager.js +34 -7
- package/dist/server/manager/ai-manager.d.ts +2 -1
- package/dist/server/manager/ai-manager.js +4 -1
- package/dist/server/manager/ai-usage-events.d.ts +49 -0
- package/dist/server/manager/ai-usage-events.js +195 -0
- package/dist/server/manager/work-context-handler.js +10 -3
- package/dist/server/resource/aiConversations.d.ts +2 -0
- package/dist/server/resource/aiConversations.js +27 -1
- package/package.json +5 -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.959c46d0056ccdc8.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.07bb23e72fb6eb15.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/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/mistral/ModelSettings.d.ts +0 -10
- package/dist/client/llm-providers/mistral/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/orcarouter/ModelSettings.d.ts +0 -10
- package/dist/client/llm-providers/orcarouter/ProviderSettings.d.ts +0 -10
- package/dist/client/llm-providers/orcarouter/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 -35
- package/dist/client/manager/ai-feature-manager.d.ts +0 -9
- package/dist/client/manager/ai-manager.d.ts +0 -35
- 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 -13
- 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
|
@@ -56,6 +56,8 @@ var import_base = require("@langchain/core/callbacks/base");
|
|
|
56
56
|
var import_shared = require("../../ai/tools/sub-agents/shared");
|
|
57
57
|
var import_tool_call_sanitizer = require("./tool-call-sanitizer");
|
|
58
58
|
var import_attachments = require("../attachments");
|
|
59
|
+
var import_frontend_tools = require("../../common/frontend-tools");
|
|
60
|
+
var import_frontend_tools2 = require("../frontend-tools");
|
|
59
61
|
class AIEmployee {
|
|
60
62
|
sessionId;
|
|
61
63
|
from = "main-agent";
|
|
@@ -142,7 +144,12 @@ class AIEmployee {
|
|
|
142
144
|
}
|
|
143
145
|
// === Chat flow ===
|
|
144
146
|
buildState(messages) {
|
|
147
|
+
const toolCallMessage = messages.findLast((message) => {
|
|
148
|
+
var _a;
|
|
149
|
+
return (_a = message.toolCalls) == null ? void 0 : _a.length;
|
|
150
|
+
});
|
|
145
151
|
return {
|
|
152
|
+
messageId: toolCallMessage == null ? void 0 : toolCallMessage.messageId,
|
|
146
153
|
lastMessageIndex: {
|
|
147
154
|
lastHumanMessageIndex: messages.filter((m) => m.role === "user").length,
|
|
148
155
|
lastAIMessageIndex: messages.filter((m) => m.role === this.employee.username).length,
|
|
@@ -747,7 +754,8 @@ ${addSystemPrompt.map((it) => it.content).join("\n")}`;
|
|
|
747
754
|
},
|
|
748
755
|
knowledgeBase,
|
|
749
756
|
availableSkills,
|
|
750
|
-
availableAIEmployees
|
|
757
|
+
availableAIEmployees,
|
|
758
|
+
webSearch: this.webSearch
|
|
751
759
|
});
|
|
752
760
|
const { important } = ((_g = (_f = this.ctx.action) == null ? void 0 : _f.params) == null ? void 0 : _g.values) || {};
|
|
753
761
|
if (important === "GraphRecursionError") {
|
|
@@ -763,11 +771,12 @@ If information is missing, clearly state it in the summary.</Important>`;
|
|
|
763
771
|
async initToolCall(transaction, messageId, toolCalls) {
|
|
764
772
|
const nowTime = /* @__PURE__ */ new Date();
|
|
765
773
|
const toolMap = await this.getToolsMap();
|
|
774
|
+
const currentFrontendTools = toolCalls.some((toolCall) => toolCall.name === import_frontend_tools.EXECUTE_FRONTEND_TOOL_NAME) ? await (0, import_frontend_tools2.listCurrentFrontendTools)(this.ctx, this.sessionId) : [];
|
|
766
775
|
return await this.aiToolMessagesRepo.create({
|
|
767
776
|
values: toolCalls.map((toolCall) => {
|
|
768
777
|
const toolsExisted = toolMap.has(toolCall.name);
|
|
769
778
|
const tools = toolMap.get(toolCall.name);
|
|
770
|
-
const auto = this.isAutoCall(tools);
|
|
779
|
+
const auto = toolCall.name === import_frontend_tools.EXECUTE_FRONTEND_TOOL_NAME ? toolsExisted && (0, import_frontend_tools2.shouldAutoExecuteFrontendTool)(currentFrontendTools, toolCall.args) : this.isAutoCall(tools);
|
|
771
780
|
return {
|
|
772
781
|
id: this.plugin.snowflake.generate(),
|
|
773
782
|
sessionId: this.sessionId,
|
|
@@ -1184,6 +1193,7 @@ If information is missing, clearly state it in the summary.</Important>`;
|
|
|
1184
1193
|
if (!this.areToolsEnabled()) {
|
|
1185
1194
|
return [];
|
|
1186
1195
|
}
|
|
1196
|
+
const currentFrontendTools = await (0, import_frontend_tools2.listCurrentFrontendTools)(this.ctx, this.sessionId);
|
|
1187
1197
|
const tools = await this.listTools({ scope: "GENERAL" });
|
|
1188
1198
|
if (this.webSearch === true) {
|
|
1189
1199
|
const subAgentWebSearch = await this.toolsManager.getTools(import_ai.SYSTEM_TOOLS.WEB_SEARCH, { ctx: this.ctx });
|
|
@@ -1211,20 +1221,26 @@ If information is missing, clearly state it in the summary.</Important>`;
|
|
|
1211
1221
|
}
|
|
1212
1222
|
tools.push(tool);
|
|
1213
1223
|
}
|
|
1214
|
-
const systemTools = (0, import_ai.listSystemTools)();
|
|
1224
|
+
const systemTools = [...(0, import_ai.listSystemTools)(), import_frontend_tools.LOAD_FRONTEND_TOOL_NAME, import_frontend_tools.EXECUTE_FRONTEND_TOOL_NAME];
|
|
1215
1225
|
if (!this.skillSettings) {
|
|
1216
|
-
return tools;
|
|
1226
|
+
return (0, import_frontend_tools2.prepareToolsForFrontendConversation)(tools, currentFrontendTools);
|
|
1217
1227
|
} else if (!this.skillSettings.toolsVersion) {
|
|
1218
1228
|
const toolFilter = this.skillSettings.tools ?? [];
|
|
1219
|
-
return
|
|
1220
|
-
|
|
1229
|
+
return (0, import_frontend_tools2.prepareToolsForFrontendConversation)(
|
|
1230
|
+
tools.filter(
|
|
1231
|
+
(t) => toolFilter.length === 0 || systemTools.includes(t.definition.name) || toolFilter.includes(t.definition.name)
|
|
1232
|
+
),
|
|
1233
|
+
currentFrontendTools
|
|
1221
1234
|
);
|
|
1222
1235
|
} else {
|
|
1223
1236
|
const toolFilter = this.skillSettings.tools;
|
|
1224
1237
|
if (import_lodash.default.isArray(toolFilter)) {
|
|
1225
|
-
return
|
|
1238
|
+
return (0, import_frontend_tools2.prepareToolsForFrontendConversation)(
|
|
1239
|
+
tools.filter((t) => systemTools.includes(t.definition.name) || toolFilter.includes(t.definition.name)),
|
|
1240
|
+
currentFrontendTools
|
|
1241
|
+
);
|
|
1226
1242
|
} else {
|
|
1227
|
-
return tools;
|
|
1243
|
+
return (0, import_frontend_tools2.prepareToolsForFrontendConversation)(tools, currentFrontendTools);
|
|
1228
1244
|
}
|
|
1229
1245
|
}
|
|
1230
1246
|
}
|
|
@@ -1266,6 +1282,9 @@ If information is missing, clearly state it in the summary.</Important>`;
|
|
|
1266
1282
|
}
|
|
1267
1283
|
const baseTools = await this.getAIEmployeeTools();
|
|
1268
1284
|
const toolMap = await this.getToolsMap();
|
|
1285
|
+
for (const tool of baseTools) {
|
|
1286
|
+
toolMap.set(tool.definition.name, tool);
|
|
1287
|
+
}
|
|
1269
1288
|
const availableSkills = await this.getAvailableSkills();
|
|
1270
1289
|
const skillOwnedToolNames = new Set(availableSkills.flatMap((it) => it.tools ?? []));
|
|
1271
1290
|
const baseToolNames = new Set(
|
|
@@ -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
|
-
export declare function getSystemPrompt({ aiEmployee, personal, task, environment, knowledgeBase, availableSkills, availableAIEmployees, }: {
|
|
9
|
+
export declare function getSystemPrompt({ aiEmployee, personal, task, environment, knowledgeBase, availableSkills, availableAIEmployees, webSearch, }: {
|
|
10
10
|
aiEmployee: {
|
|
11
11
|
nickname: string;
|
|
12
12
|
about: string;
|
|
@@ -23,6 +23,7 @@ export declare function getSystemPrompt({ aiEmployee, personal, task, environmen
|
|
|
23
23
|
timezone?: string;
|
|
24
24
|
};
|
|
25
25
|
knowledgeBase?: string;
|
|
26
|
+
webSearch?: boolean;
|
|
26
27
|
availableSkills?: {
|
|
27
28
|
name: string;
|
|
28
29
|
description: string;
|
|
@@ -36,7 +36,8 @@ function getSystemPrompt({
|
|
|
36
36
|
environment,
|
|
37
37
|
knowledgeBase,
|
|
38
38
|
availableSkills,
|
|
39
|
-
availableAIEmployees
|
|
39
|
+
availableAIEmployees,
|
|
40
|
+
webSearch
|
|
40
41
|
}) {
|
|
41
42
|
const getDatabaseQuotingRules = () => {
|
|
42
43
|
const quotingMap = {
|
|
@@ -52,6 +53,11 @@ function getSystemPrompt({
|
|
|
52
53
|
};
|
|
53
54
|
const quotingRules = getDatabaseQuotingRules();
|
|
54
55
|
const isUnderscored = process.env.DB_UNDERSCORED === "true";
|
|
56
|
+
const webSearchInstructions = webSearch === true ? `
|
|
57
|
+
- When using web search, batch all independent search queries needed for this turn into one tool call whenever possible so they can run in parallel.
|
|
58
|
+
- Do not make repeated web search calls with the same or similar queries in the same turn.
|
|
59
|
+
- After receiving usable web search results, synthesize an answer from those results instead of searching again.
|
|
60
|
+
- Search again only when a critical fact is still missing and the new query is materially different from previous queries.` : "";
|
|
55
61
|
return `You are **${aiEmployee.nickname}**, an AI employee working in **NocoBase**, the leading no-code platform.
|
|
56
62
|
|
|
57
63
|
You assist developers in building enterprise management systems (CRM, ERP, OA, etc.) and help end users complete business tasks.
|
|
@@ -114,7 +120,7 @@ This prompt uses a structured tag system to organize your operational framework:
|
|
|
114
120
|
5. **Tool Integration**
|
|
115
121
|
- Utilize system-provided tools to enhance response quality
|
|
116
122
|
- **NEVER refer to tool names when speaking to the USER.** Instead, just say what the tool is doing in natural language.
|
|
117
|
-
- If you need additional information that you can get via tool calls, prefer that over asking the user
|
|
123
|
+
- If you need additional information that you can get via tool calls, prefer that over asking the user.${webSearchInstructions}
|
|
118
124
|
</global>
|
|
119
125
|
|
|
120
126
|
<ai_employee>
|
|
@@ -20,6 +20,7 @@ type SanitizeAdditionalKwargsOptions = {
|
|
|
20
20
|
type SanitizeAdditionalKwargsResult = {
|
|
21
21
|
changed: boolean;
|
|
22
22
|
additionalKwargs?: AdditionalKwargs;
|
|
23
|
+
malformedToolCalls?: unknown[];
|
|
23
24
|
};
|
|
24
25
|
export declare const sanitizeAdditionalKwargsForToolCalls: (additionalKwargs: AdditionalKwargs | undefined, parsedToolCalls?: unknown[] | null, options?: SanitizeAdditionalKwargsOptions) => SanitizeAdditionalKwargsResult;
|
|
25
26
|
export declare const sanitizeLangChainAIMessage: (message: AIMessage, options?: SanitizeAdditionalKwargsOptions) => AIMessage<import("@langchain/core/dist/messages/message").MessageStructure<import("@langchain/core/dist/messages/message").MessageToolSet>>;
|
|
@@ -65,7 +65,8 @@ const sanitizeAdditionalKwargsForToolCalls = (additionalKwargs, parsedToolCalls,
|
|
|
65
65
|
delete sanitized.tool_calls;
|
|
66
66
|
return {
|
|
67
67
|
changed: true,
|
|
68
|
-
additionalKwargs: Object.keys(sanitized).length > 0 ? sanitized : void 0
|
|
68
|
+
additionalKwargs: Object.keys(sanitized).length > 0 ? sanitized : void 0,
|
|
69
|
+
malformedToolCalls: rawToolCalls
|
|
69
70
|
};
|
|
70
71
|
};
|
|
71
72
|
const sanitizeLangChainAIMessage = (message, options = {}) => {
|
|
@@ -40,7 +40,7 @@ const convertAIMessage = ({
|
|
|
40
40
|
model,
|
|
41
41
|
aiMessage
|
|
42
42
|
}) => {
|
|
43
|
-
var _a;
|
|
43
|
+
var _a, _b;
|
|
44
44
|
const message = aiMessage.content;
|
|
45
45
|
const toolCalls = aiMessage.tool_calls;
|
|
46
46
|
const tools = (_a = aiEmployee.skillSettings) == null ? void 0 : _a.tools;
|
|
@@ -91,20 +91,26 @@ const convertAIMessage = ({
|
|
|
91
91
|
if (aiMessage.response_metadata) {
|
|
92
92
|
values.metadata.response_metadata = aiMessage.response_metadata;
|
|
93
93
|
}
|
|
94
|
-
const
|
|
94
|
+
const sanitizedToolCalls = (0, import_tool_call_sanitizer.sanitizeAdditionalKwargsForToolCalls)(aiMessage.additional_kwargs, toolCalls, {
|
|
95
95
|
onDiscard: (info) => {
|
|
96
|
-
var _a2,
|
|
97
|
-
(
|
|
96
|
+
var _a2, _b2;
|
|
97
|
+
(_b2 = aiEmployee.logger) == null ? void 0 : _b2.warn("Discard malformed raw tool calls from AI message", {
|
|
98
98
|
phase: "convertAIMessage",
|
|
99
99
|
messageId: aiMessage.id,
|
|
100
100
|
invalidToolCallCount: ((_a2 = aiMessage.invalid_tool_calls) == null ? void 0 : _a2.length) ?? 0,
|
|
101
101
|
...info
|
|
102
102
|
});
|
|
103
103
|
}
|
|
104
|
-
})
|
|
104
|
+
});
|
|
105
|
+
const additionalKwargs = sanitizedToolCalls.additionalKwargs;
|
|
105
106
|
if (additionalKwargs) {
|
|
106
107
|
values.metadata.additional_kwargs = additionalKwargs;
|
|
107
108
|
}
|
|
109
|
+
if ((_b = sanitizedToolCalls.malformedToolCalls) == null ? void 0 : _b.length) {
|
|
110
|
+
values.metadata.diagnostics = {
|
|
111
|
+
malformedToolCalls: sanitizedToolCalls.malformedToolCalls
|
|
112
|
+
};
|
|
113
|
+
}
|
|
108
114
|
providerInstance.reshapeAIMessage({ aiMessage, values });
|
|
109
115
|
return values;
|
|
110
116
|
};
|
|
@@ -0,0 +1,10 @@
|
|
|
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
|
+
declare const _default: import("@nocobase/database").CollectionOptions;
|
|
10
|
+
export default _default;
|
|
@@ -0,0 +1,183 @@
|
|
|
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 ai_usage_events_exports = {};
|
|
28
|
+
__export(ai_usage_events_exports, {
|
|
29
|
+
default: () => ai_usage_events_default
|
|
30
|
+
});
|
|
31
|
+
module.exports = __toCommonJS(ai_usage_events_exports);
|
|
32
|
+
var import_database = require("@nocobase/database");
|
|
33
|
+
var ai_usage_events_default = (0, import_database.defineCollection)({
|
|
34
|
+
migrationRules: ["schema-only"],
|
|
35
|
+
name: "aiUsageEvents",
|
|
36
|
+
dataCategory: "business",
|
|
37
|
+
timestamps: false,
|
|
38
|
+
createdAt: false,
|
|
39
|
+
updatedAt: false,
|
|
40
|
+
createdBy: false,
|
|
41
|
+
updatedBy: false,
|
|
42
|
+
fields: [
|
|
43
|
+
{
|
|
44
|
+
name: "occurredAt",
|
|
45
|
+
type: "unixTimestamp",
|
|
46
|
+
accuracy: "millisecond",
|
|
47
|
+
allowNull: false
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
name: "sessionId",
|
|
51
|
+
type: "uuid",
|
|
52
|
+
allowNull: false
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
name: "messageId",
|
|
56
|
+
type: "bigInt",
|
|
57
|
+
allowNull: false
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: "user",
|
|
61
|
+
type: "belongsTo",
|
|
62
|
+
target: "users",
|
|
63
|
+
targetKey: "id",
|
|
64
|
+
foreignKey: "userId"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
name: "aiEmployee",
|
|
68
|
+
type: "belongsTo",
|
|
69
|
+
target: "aiEmployees",
|
|
70
|
+
targetKey: "username",
|
|
71
|
+
foreignKey: "aiEmployeeUsername"
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
name: "from",
|
|
75
|
+
type: "string",
|
|
76
|
+
allowNull: false,
|
|
77
|
+
defaultValue: "main-agent"
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
name: "category",
|
|
81
|
+
type: "string",
|
|
82
|
+
allowNull: false,
|
|
83
|
+
defaultValue: "chat"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
name: "eventType",
|
|
87
|
+
type: "string",
|
|
88
|
+
allowNull: false,
|
|
89
|
+
defaultValue: "llm_message"
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
name: "role",
|
|
93
|
+
type: "string",
|
|
94
|
+
allowNull: false
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
name: "provider",
|
|
98
|
+
type: "string"
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
name: "llmService",
|
|
102
|
+
type: "string"
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
name: "model",
|
|
106
|
+
type: "string"
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
name: "inputTokens",
|
|
110
|
+
type: "bigInt",
|
|
111
|
+
allowNull: false,
|
|
112
|
+
defaultValue: 0
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
name: "outputTokens",
|
|
116
|
+
type: "bigInt",
|
|
117
|
+
allowNull: false,
|
|
118
|
+
defaultValue: 0
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
name: "totalTokens",
|
|
122
|
+
type: "bigInt",
|
|
123
|
+
allowNull: false,
|
|
124
|
+
defaultValue: 0
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
name: "cachedTokens",
|
|
128
|
+
type: "bigInt",
|
|
129
|
+
allowNull: false,
|
|
130
|
+
defaultValue: 0
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
name: "reasoningTokens",
|
|
134
|
+
type: "bigInt",
|
|
135
|
+
allowNull: false,
|
|
136
|
+
defaultValue: 0
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
name: "toolCallCount",
|
|
140
|
+
type: "integer",
|
|
141
|
+
allowNull: false,
|
|
142
|
+
defaultValue: 0
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
name: "autoToolCallCount",
|
|
146
|
+
type: "integer",
|
|
147
|
+
allowNull: false,
|
|
148
|
+
defaultValue: 0
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
name: "status",
|
|
152
|
+
type: "string",
|
|
153
|
+
allowNull: false,
|
|
154
|
+
defaultValue: "success"
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
name: "rawUsageMetadata",
|
|
158
|
+
type: "jsonb"
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
name: "rawResponseMetadata",
|
|
162
|
+
type: "jsonb"
|
|
163
|
+
}
|
|
164
|
+
],
|
|
165
|
+
indexes: [
|
|
166
|
+
{
|
|
167
|
+
fields: ["messageId", "eventType"],
|
|
168
|
+
unique: true
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
fields: ["occurredAt"]
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
fields: ["userId", "occurredAt"]
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
fields: ["aiEmployeeUsername", "occurredAt"]
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
fields: ["sessionId"]
|
|
181
|
+
}
|
|
182
|
+
]
|
|
183
|
+
});
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is part of the NocoBase (R) project.
|
|
3
|
+
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
+
* Authors: NocoBase Team.
|
|
5
|
+
*
|
|
6
|
+
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
+
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
+
*/
|
|
9
|
+
import type { Context } from '@nocobase/actions';
|
|
10
|
+
import { type FrontendToolManifest } from '../common/frontend-tools';
|
|
11
|
+
import type { WorkContext } from './types/ai-message.type';
|
|
12
|
+
export declare const extractFrontendToolManifests: (workContext: WorkContext[]) => FrontendToolManifest[];
|
|
13
|
+
export declare const listCurrentFrontendTools: (ctx: Context, sessionId?: string) => Promise<FrontendToolManifest[]>;
|
|
14
|
+
export declare const findCurrentFrontendTool: (ctx: Context, toolId: string, sessionId?: string) => Promise<FrontendToolManifest | undefined>;
|
|
15
|
+
export declare const shouldAutoExecuteFrontendTool: (tools: FrontendToolManifest[], args: unknown) => boolean;
|
|
16
|
+
export declare const prepareToolsForFrontendConversation: <T extends {
|
|
17
|
+
definition: {
|
|
18
|
+
name: string;
|
|
19
|
+
description: string;
|
|
20
|
+
};
|
|
21
|
+
}>(tools: T[], frontendTools: FrontendToolManifest[]) => T[];
|
|
22
|
+
export declare const readFrontendToolResult: (ctx: Context, toolCallId: string) => {
|
|
23
|
+
provided: true;
|
|
24
|
+
value: unknown;
|
|
25
|
+
} | undefined;
|
|
@@ -0,0 +1,171 @@
|
|
|
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 frontend_tools_exports = {};
|
|
28
|
+
__export(frontend_tools_exports, {
|
|
29
|
+
extractFrontendToolManifests: () => extractFrontendToolManifests,
|
|
30
|
+
findCurrentFrontendTool: () => findCurrentFrontendTool,
|
|
31
|
+
listCurrentFrontendTools: () => listCurrentFrontendTools,
|
|
32
|
+
prepareToolsForFrontendConversation: () => prepareToolsForFrontendConversation,
|
|
33
|
+
readFrontendToolResult: () => readFrontendToolResult,
|
|
34
|
+
shouldAutoExecuteFrontendTool: () => shouldAutoExecuteFrontendTool
|
|
35
|
+
});
|
|
36
|
+
module.exports = __toCommonJS(frontend_tools_exports);
|
|
37
|
+
var import_zod = require("zod");
|
|
38
|
+
var import_frontend_tools = require("../common/frontend-tools");
|
|
39
|
+
const isRecord = (value) => !!value && typeof value === "object" && !Array.isArray(value);
|
|
40
|
+
const isMessageLike = (value) => !!value && typeof value === "object";
|
|
41
|
+
const normalizeFrontendToolManifests = (value) => {
|
|
42
|
+
if (!Array.isArray(value)) {
|
|
43
|
+
return [];
|
|
44
|
+
}
|
|
45
|
+
const manifests = /* @__PURE__ */ new Map();
|
|
46
|
+
for (const manifest of value) {
|
|
47
|
+
if ((0, import_frontend_tools.isFrontendToolManifest)(manifest) && manifest.id === `${manifest.blockUid}:${manifest.name}`) {
|
|
48
|
+
manifests.set(manifest.id, manifest);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return Array.from(manifests.values());
|
|
52
|
+
};
|
|
53
|
+
const extractFrontendToolManifests = (workContext) => {
|
|
54
|
+
const manifests = /* @__PURE__ */ new Map();
|
|
55
|
+
for (const item of workContext) {
|
|
56
|
+
const frontendTools = Array.isArray(item == null ? void 0 : item.frontendTools) ? item.frontendTools : [];
|
|
57
|
+
for (const frontendTool of frontendTools) {
|
|
58
|
+
if ((0, import_frontend_tools.isFrontendToolManifest)(frontendTool) && frontendTool.blockUid === item.uid && frontendTool.id === `${item.uid}:${frontendTool.name}`) {
|
|
59
|
+
manifests.set(frontendTool.id, frontendTool);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return Array.from(manifests.values());
|
|
64
|
+
};
|
|
65
|
+
const findRequestFrontendTools = (ctx) => {
|
|
66
|
+
var _a, _b;
|
|
67
|
+
const values = (_b = (_a = ctx.action) == null ? void 0 : _a.params) == null ? void 0 : _b.values;
|
|
68
|
+
const messages = Array.isArray(values == null ? void 0 : values.messages) ? values.messages.filter(isMessageLike) : [];
|
|
69
|
+
for (const message of messages) {
|
|
70
|
+
if (message.role !== "user") {
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
const frontendTools = extractFrontendToolManifests(Array.isArray(message.workContext) ? message.workContext : []);
|
|
74
|
+
if (frontendTools.length) {
|
|
75
|
+
return frontendTools;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return [];
|
|
79
|
+
};
|
|
80
|
+
const listCurrentFrontendTools = async (ctx, sessionId) => {
|
|
81
|
+
var _a, _b, _c;
|
|
82
|
+
const requestSessionId = (_c = (_b = (_a = ctx.action) == null ? void 0 : _a.params) == null ? void 0 : _b.values) == null ? void 0 : _c.sessionId;
|
|
83
|
+
const currentSessionId = sessionId ?? (typeof requestSessionId === "string" ? requestSessionId : "");
|
|
84
|
+
if (!currentSessionId) {
|
|
85
|
+
return findRequestFrontendTools(ctx);
|
|
86
|
+
}
|
|
87
|
+
const conversationRepository = ctx.db.getRepository("aiConversations");
|
|
88
|
+
const conversation = await conversationRepository.findOne({
|
|
89
|
+
filter: {
|
|
90
|
+
sessionId: currentSessionId
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
const options = conversation == null ? void 0 : conversation.options;
|
|
94
|
+
const boundTools = normalizeFrontendToolManifests(isRecord(options) ? options.frontendTools : void 0);
|
|
95
|
+
if (boundTools.length) {
|
|
96
|
+
return boundTools;
|
|
97
|
+
}
|
|
98
|
+
const frontendTools = findRequestFrontendTools(ctx);
|
|
99
|
+
if (!frontendTools.length || !conversation) {
|
|
100
|
+
return frontendTools;
|
|
101
|
+
}
|
|
102
|
+
await conversationRepository.update({
|
|
103
|
+
filter: {
|
|
104
|
+
sessionId: currentSessionId
|
|
105
|
+
},
|
|
106
|
+
values: {
|
|
107
|
+
options: {
|
|
108
|
+
...isRecord(options) ? options : {},
|
|
109
|
+
frontendTools
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
return frontendTools;
|
|
114
|
+
};
|
|
115
|
+
const findCurrentFrontendTool = async (ctx, toolId, sessionId) => {
|
|
116
|
+
const tools = await listCurrentFrontendTools(ctx, sessionId);
|
|
117
|
+
return tools.find((tool) => tool.id === toolId);
|
|
118
|
+
};
|
|
119
|
+
const shouldAutoExecuteFrontendTool = (tools, args) => {
|
|
120
|
+
var _a;
|
|
121
|
+
if (!isRecord(args) || typeof args.toolId !== "string") {
|
|
122
|
+
return false;
|
|
123
|
+
}
|
|
124
|
+
return ((_a = tools.find((tool) => tool.id === args.toolId)) == null ? void 0 : _a.permission) === "ALLOW";
|
|
125
|
+
};
|
|
126
|
+
const prepareToolsForFrontendConversation = (tools, frontendTools) => {
|
|
127
|
+
if (!frontendTools.length) {
|
|
128
|
+
return tools.filter(
|
|
129
|
+
(tool) => tool.definition.name !== import_frontend_tools.LOAD_FRONTEND_TOOL_NAME && tool.definition.name !== import_frontend_tools.EXECUTE_FRONTEND_TOOL_NAME
|
|
130
|
+
);
|
|
131
|
+
}
|
|
132
|
+
const catalog = frontendTools.map(({ id, name, title, description }) => ({ id, name, title, description }));
|
|
133
|
+
const toolIds = frontendTools.map((tool) => tool.id);
|
|
134
|
+
const toolIdSchema = import_zod.z.enum(toolIds).describe(`Use an exact tool id from this catalog: ${JSON.stringify(catalog)}`);
|
|
135
|
+
return tools.map((tool) => {
|
|
136
|
+
if (tool.definition.name !== import_frontend_tools.LOAD_FRONTEND_TOOL_NAME && tool.definition.name !== import_frontend_tools.EXECUTE_FRONTEND_TOOL_NAME) {
|
|
137
|
+
return tool;
|
|
138
|
+
}
|
|
139
|
+
const isLoader = tool.definition.name === import_frontend_tools.LOAD_FRONTEND_TOOL_NAME;
|
|
140
|
+
return {
|
|
141
|
+
...tool,
|
|
142
|
+
definition: {
|
|
143
|
+
...tool.definition,
|
|
144
|
+
description: `${tool.definition.description}
|
|
145
|
+
|
|
146
|
+
frontendToolCatalog: ${JSON.stringify(catalog)}`,
|
|
147
|
+
schema: isLoader ? import_zod.z.object({ toolId: toolIdSchema }) : import_zod.z.object({
|
|
148
|
+
toolId: toolIdSchema,
|
|
149
|
+
args: import_zod.z.record(import_zod.z.string(), import_zod.z.unknown()).default({})
|
|
150
|
+
})
|
|
151
|
+
}
|
|
152
|
+
};
|
|
153
|
+
});
|
|
154
|
+
};
|
|
155
|
+
const readFrontendToolResult = (ctx, toolCallId) => {
|
|
156
|
+
var _a, _b, _c;
|
|
157
|
+
const toolCallResults = (_c = (_b = (_a = ctx.action) == null ? void 0 : _a.params) == null ? void 0 : _b.values) == null ? void 0 : _c.toolCallResults;
|
|
158
|
+
const result = Array.isArray(toolCallResults) ? toolCallResults.find(
|
|
159
|
+
(item) => isRecord(item) && item.id === toolCallId && "result" in item
|
|
160
|
+
) : void 0;
|
|
161
|
+
return result ? { provided: true, value: result.result } : void 0;
|
|
162
|
+
};
|
|
163
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
164
|
+
0 && (module.exports = {
|
|
165
|
+
extractFrontendToolManifests,
|
|
166
|
+
findCurrentFrontendTool,
|
|
167
|
+
listCurrentFrontendTools,
|
|
168
|
+
prepareToolsForFrontendConversation,
|
|
169
|
+
readFrontendToolResult,
|
|
170
|
+
shouldAutoExecuteFrontendTool
|
|
171
|
+
});
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
9
|
import { AIMessageChunk } from '@langchain/core/messages';
|
|
10
|
-
import { EmbeddingProvider, LLMProvider } from './provider';
|
|
10
|
+
import { EmbeddingProvider, LLMProvider, ReasoningOptions, ResolvedReasoningOptions } from './provider';
|
|
11
11
|
import { EmbeddingsInterface } from '@langchain/core/embeddings';
|
|
12
12
|
import { SupportedModel } from '../manager/ai-manager';
|
|
13
13
|
import { Model } from '@nocobase/database';
|
|
@@ -19,6 +19,7 @@ export declare class DashscopeProvider extends LLMProvider {
|
|
|
19
19
|
createModel(): ReasoningChatOpenAI;
|
|
20
20
|
isToolConflict(): boolean;
|
|
21
21
|
resolveTools(toolDefinitions: any[]): any[];
|
|
22
|
+
protected resolveReasoningOptions(reasoning?: ReasoningOptions): ResolvedReasoningOptions;
|
|
22
23
|
parseResponseMessage(message: Model): {
|
|
23
24
|
key: any;
|
|
24
25
|
createdAt: any;
|
|
@@ -56,6 +56,7 @@ class DashscopeProvider extends import_provider.LLMProvider {
|
|
|
56
56
|
const { apiKey } = this.serviceOptions || {};
|
|
57
57
|
const { responseFormat, structuredOutput } = this.modelOptions || {};
|
|
58
58
|
const { name, schema } = structuredOutput || {};
|
|
59
|
+
const reasoningOptions = this.resolveReasoningOptions(this.modelReasoningOptions);
|
|
59
60
|
const modelKwargs = {};
|
|
60
61
|
if (responseFormat) {
|
|
61
62
|
const responseFormatOptions = {
|
|
@@ -76,7 +77,11 @@ class DashscopeProvider extends import_provider.LLMProvider {
|
|
|
76
77
|
topP: 0.8,
|
|
77
78
|
temperature: 0.7,
|
|
78
79
|
...this.modelOptions,
|
|
79
|
-
|
|
80
|
+
...reasoningOptions.modelRequestParams || {},
|
|
81
|
+
modelKwargs: {
|
|
82
|
+
...modelKwargs,
|
|
83
|
+
...reasoningOptions.modelKwargs || {}
|
|
84
|
+
},
|
|
80
85
|
configuration: {
|
|
81
86
|
baseURL: this.getResolvedBaseURL()
|
|
82
87
|
},
|
|
@@ -94,6 +99,16 @@ class DashscopeProvider extends import_provider.LLMProvider {
|
|
|
94
99
|
return toolDefinitions;
|
|
95
100
|
}
|
|
96
101
|
}
|
|
102
|
+
resolveReasoningOptions(reasoning) {
|
|
103
|
+
if ((reasoning == null ? void 0 : reasoning.mode) !== "off") {
|
|
104
|
+
return {};
|
|
105
|
+
}
|
|
106
|
+
return {
|
|
107
|
+
modelKwargs: {
|
|
108
|
+
enable_thinking: false
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
}
|
|
97
112
|
parseResponseMessage(message) {
|
|
98
113
|
var _a;
|
|
99
114
|
const result = super.parseResponseMessage(message);
|
|
@@ -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 } from './provider';
|
|
11
|
+
import { LLMProvider, ReasoningOptions, ResolvedReasoningOptions } 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,6 +33,7 @@ export declare class DeepSeekProvider extends LLMProvider {
|
|
|
33
33
|
status: string;
|
|
34
34
|
content: string;
|
|
35
35
|
};
|
|
36
|
+
protected resolveReasoningOptions(reasoning?: ReasoningOptions): ResolvedReasoningOptions;
|
|
36
37
|
protected isApiSupportedAttachment(attachment: AttachmentModel): boolean;
|
|
37
38
|
}
|
|
38
39
|
export declare const deepseekProviderOptions: LLMProviderMeta;
|