@nocobase/plugin-ai 2.2.0-beta.8 → 2.3.0-alpha.1
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/ai-employees/scenarios/company-background-research.md +125 -0
- package/dist/ai/docs/nocobase/api/app/env.md +28 -1
- package/dist/ai/docs/nocobase/api/cli/config/delete.md +8 -6
- package/dist/ai/docs/nocobase/api/cli/config/get.md +8 -6
- package/dist/ai/docs/nocobase/api/cli/config/index.md +37 -26
- package/dist/ai/docs/nocobase/api/cli/config/set.md +14 -8
- package/dist/ai/docs/nocobase/building-tips/operations-dashboard.md +513 -0
- package/dist/ai/docs/nocobase/file-manager/field-attachment.md +6 -0
- package/dist/ai/docs/nocobase/file-manager/file-preview/index.md +3 -12
- package/dist/ai/docs/nocobase/file-manager/stable-url.md +87 -0
- package/dist/ai/docs/nocobase/file-manager/storage/aliyun-oss.md +9 -0
- package/dist/ai/docs/nocobase/file-manager/storage/amazon-s3.md +9 -0
- package/dist/ai/docs/nocobase/file-manager/storage/index.md +23 -0
- package/dist/ai/docs/nocobase/file-manager/storage/local.md +12 -1
- package/dist/ai/docs/nocobase/file-manager/storage/migrate-to-s3-pro.md +269 -0
- package/dist/ai/docs/nocobase/file-manager/storage/tencent-cos.md +9 -0
- package/dist/ai/docs/nocobase/get-started/deployment/production.md +24 -2
- package/dist/ai/docs/nocobase/get-started/installation/docker-caddy.mdx +178 -0
- package/dist/ai/docs/nocobase/get-started/installation/docker-nginx.mdx +179 -0
- package/dist/ai/docs/nocobase/get-started/installation/docker.mdx +118 -1
- package/dist/ai/docs/nocobase/get-started/installation/env.md +47 -4
- package/dist/ai/docs/nocobase/index.md +1 -1
- package/dist/ai/docs/nocobase/interface-builder/blocks/data-blocks/comment.md +107 -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/multi-app/multi-app-vs-multi-portal-vs-multi-space.md +159 -0
- package/dist/ai/docs/nocobase/multi-app/multi-portal/index.md +195 -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/ops-management/version-control/index.md +1 -0
- package/dist/ai/docs/nocobase/plugins/@nocobase/plugin-block-comment/index.md +14 -0
- package/dist/ai/docs/nocobase/runjs/context/ai.md +206 -0
- package/dist/ai/docs/nocobase/security/guide.md +23 -0
- package/dist/ai/docs/nocobase/tutorials/index.md +20 -1
- 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/tools/formFiller.js +4 -3
- 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.40eb52905e3f3049.js +10 -0
- package/dist/client/416.92b74ca47e4099c4.js +10 -0
- package/dist/client/446.d63c38d0309fe250.js +10 -0
- package/dist/client/525.203778500aca5d05.js +10 -0
- package/dist/client/663.680bcf6272a8504d.js +10 -0
- package/dist/client/681.399948c18d753667.js +10 -0
- package/dist/client/705.380279da896021fb.js +10 -0
- package/dist/client/ai-employees/1.x/selector/AIContextCollector.d.ts +1 -4
- package/dist/client/ai-employees/permissions/PermissionsTab.d.ts +21 -5
- package/dist/client/index.d.ts +15 -20
- package/dist/client/index.js +8 -8
- package/dist/client/workflow/nodes/employee/index.d.ts +2 -23
- package/dist/client/workflow/nodes/llm/index.d.ts +2 -52
- package/dist/client/workflow/triggers/ai-employee/index.d.ts +2 -83
- package/dist/client-v2/23.1bcb6986b40723d8.js +10 -0
- package/dist/client-v2/264.be92ff6a4d2612f1.js +10 -0
- package/dist/client-v2/336.e406470429e0670e.js +11 -0
- package/dist/client-v2/372.8cc3fde09c9bec77.js +10 -0
- package/dist/client-v2/406.341be51205c674e0.js +10 -0
- package/dist/client-v2/416.0e1c2d9cde43b83d.js +10 -0
- package/dist/client-v2/446.073d450882db29fd.js +10 -0
- package/dist/client-v2/457.d72febb89e88fc00.js +10 -0
- package/dist/client-v2/663.342341f0b2b412d8.js +10 -0
- package/dist/client-v2/681.082f4f1c7b841983.js +10 -0
- package/dist/client-v2/705.1d10027ff8cfdf79.js +10 -0
- package/dist/{client/ai-employees/admin/AvatarSelect.d.ts → client-v2/ai-employees/AIEmployeeDropdown.d.ts} +8 -9
- package/dist/client-v2/ai-employees/AIEmployeeShortcut.d.ts +9 -2
- package/dist/{client → client-v2}/ai-employees/AddContextButton.d.ts +1 -1
- package/dist/{client → client-v2}/ai-employees/ai-coding/AICodingButton.d.ts +2 -1
- package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/Actions.d.ts +2 -4
- package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/AddLLMModal.d.ts +2 -4
- package/dist/client-v2/ai-employees/chatbox/components/Attachments.d.ts +27 -0
- package/dist/{client/ai-employees/permissions/Permissions.d.ts → client-v2/ai-employees/chatbox/components/ChatBox.d.ts} +2 -2
- package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/ChatBoxLayout.d.ts +1 -1
- package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/ContextItem.d.ts +1 -1
- package/dist/{client/ai-employees/admin/Employees.d.ts → client-v2/ai-employees/chatbox/components/DebugPanel.d.ts} +1 -1
- package/dist/{client/ai-employees/chatbox/markdown/Code.d.ts → client-v2/ai-employees/chatbox/components/Markdown.d.ts} +12 -5
- package/dist/{client/ai-employees/admin/ProfileSettings.d.ts → client-v2/ai-employees/chatbox/components/MessageContent.d.ts} +3 -2
- package/dist/client-v2/ai-employees/chatbox/components/MessageRenderers.d.ts +39 -0
- package/dist/{client/ai-employees/chatbox/generative-ui → client-v2/ai-employees/chatbox/components}/ToolCard.d.ts +7 -5
- package/dist/{client/ai-employees/admin/datasource/components/basic → client-v2/ai-employees/chatbox/components}/index.d.ts +5 -2
- package/dist/{client → client-v2}/ai-employees/chatbox/hooks/useChat.d.ts +21 -22
- package/dist/client-v2/ai-employees/chatbox/hooks/useChatBoxActions.d.ts +3 -2
- package/dist/{client → client-v2}/ai-employees/chatbox/hooks/useChatConversationActions.d.ts +2 -2
- package/dist/{client → client-v2}/ai-employees/chatbox/hooks/useChatMessageActions.d.ts +8 -4
- package/dist/{client → client-v2}/ai-employees/chatbox/hooks/useToolCallActions.d.ts +1 -1
- package/dist/client-v2/ai-employees/chatbox/hooks/useUploadFiles.d.ts +46 -0
- package/dist/{client → client-v2}/ai-employees/chatbox/hooks/useWorkflowTasks.d.ts +1 -1
- package/dist/{client → client-v2}/ai-employees/chatbox/model.d.ts +9 -2
- package/dist/client-v2/ai-employees/chatbox/roles.d.ts +162 -0
- package/dist/client-v2/ai-employees/chatbox/stores/chat-box.d.ts +1 -49
- package/dist/client-v2/ai-employees/chatbox/stores/chat-conversations.d.ts +2 -19
- package/dist/client-v2/ai-employees/chatbox/stores/chat-messages.d.ts +1 -46
- package/dist/{client → client-v2}/ai-employees/chatbox/stores/chat-tool-call.d.ts +1 -15
- package/dist/client-v2/ai-employees/chatbox/stores/chat-tools.d.ts +30 -0
- package/dist/client-v2/ai-employees/chatbox/stores/create-selectors.d.ts +31 -3
- package/dist/{client/ai-employees/chatbox/conversations/common.d.ts → client-v2/ai-employees/chatbox/stores/workflow-tasks.d.ts} +21 -4
- package/dist/client-v2/ai-employees/chatbox/utils/normalizeTriggerTaskOptions.d.ts +19 -0
- package/dist/{client → client-v2}/ai-employees/chatbox/utils.d.ts +26 -6
- package/dist/{client/ai-employees/data-visualization/context.d.ts → client-v2/ai-employees/context/chart-config.d.ts} +1 -1
- package/dist/{client → client-v2}/ai-employees/context/code-editor.d.ts +1 -1
- package/dist/{client → client-v2}/ai-employees/context/datasource.d.ts +1 -1
- package/dist/{client → client-v2}/ai-employees/context/flow-models.d.ts +1 -1
- package/dist/{client/ai-employees/admin/datasource/components/DatasourceSettingDetail.d.ts → client-v2/ai-employees/data-modeling/setup.d.ts} +6 -5
- package/dist/{client → client-v2}/ai-employees/datasource/DatasourceSelector.d.ts +6 -2
- package/dist/{client/ai-employees/admin/datasource/flow-models/DatasourceSettingModel.d.ts → client-v2/ai-employees/flow/index.d.ts} +4 -6
- package/dist/{client → client-v2}/ai-employees/form-filler/tools/index.d.ts +1 -1
- package/dist/{client → client-v2}/ai-employees/stores/ai-selection.d.ts +4 -4
- package/dist/{client → client-v2}/ai-employees/stores/dialog-controller.d.ts +4 -4
- package/dist/{client/ai-employees/business-report/ui → client-v2/ai-employees/tools}/BusinessReportCard.d.ts +2 -2
- package/dist/{client/ai-employees/business-report/ui → client-v2/ai-employees/tools}/BusinessReportModal.d.ts +2 -2
- package/dist/{client/ai-employees/1.x/selector/withAISelectable.d.ts → client-v2/ai-employees/tools/ChartGeneratorCard.d.ts} +5 -4
- package/dist/{client/ai-employees/ai-coding/ui → client-v2/ai-employees/tools}/CodeToolCard.d.ts +1 -1
- package/dist/{client/ai-employees/data-modeling/ui → client-v2/ai-employees/tools}/DataModelingCard.d.ts +3 -5
- package/dist/{client/ai-employees/data-modeling/ui → client-v2/ai-employees/tools}/DataModelingModal.d.ts +4 -6
- package/dist/{client/ai-employees/sub-agents/ui → client-v2/ai-employees/tools}/SubAgentDispatchCard.d.ts +4 -9
- package/dist/{client/ai-employees/AISettingsProvider.d.ts → client-v2/ai-employees/tools/SuggestionsOptionsCard.d.ts} +6 -8
- package/dist/{client/ai-employees/workflow-tasks/ui → client-v2/ai-employees/tools}/WorkflowTaskOutputCard.d.ts +7 -2
- package/dist/{client/ai-employees/ai-coding/tools/context-tools.d.ts → client-v2/ai-employees/tools/ai-coding.d.ts} +3 -1
- package/dist/client-v2/ai-employees/tools/business-report-utils.d.ts +45 -0
- package/dist/{client/ai-employees/data-modeling/ui → client-v2/ai-employees/tools/data-modeling}/CollectionNode.d.ts +2 -3
- package/dist/{client/ai-employees/data-modeling/ui → client-v2/ai-employees/tools/data-modeling}/Diagram.d.ts +1 -1
- package/dist/{client/ai-employees/data-modeling/ui → client-v2/ai-employees/tools/data-modeling}/Table.d.ts +2 -2
- package/dist/client-v2/ai-employees/tools/data-modeling/legacy-template.d.ts +13 -0
- package/dist/client-v2/ai-employees/tools/data-modeling/runtime.d.ts +15 -0
- package/dist/{client/ai-employees → client-v2/ai-employees/tools}/data-modeling/types.d.ts +27 -4
- package/dist/client-v2/ai-employees/tools/data-modeling/useFieldInterfaceOptions.d.ts +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 +101 -7
- package/dist/client-v2/components/RemoteSelect.d.ts +43 -0
- package/dist/{client → client-v2}/debug-logger.d.ts +2 -2
- package/dist/client-v2/f0053e745af0ad03.svg +50 -0
- package/dist/client-v2/index.d.ts +9 -9
- 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/ai-coding/tools/index.d.ts → client-v2/llm-services/utils.d.ts} +5 -3
- package/dist/client-v2/locale.d.ts +14 -0
- package/dist/client-v2/manager/ai-manager.d.ts +55 -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 +62 -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/externalVersion.js +20 -25
- package/dist/locale/en-US.json +50 -1
- package/dist/locale/zh-CN.json +50 -1
- package/dist/node_modules/@langchain/mistralai/LICENSE +21 -0
- package/dist/node_modules/@langchain/mistralai/dist/_virtual/rolldown_runtime.cjs +25 -0
- package/dist/node_modules/@langchain/mistralai/dist/chat_models.cjs +859 -0
- package/dist/node_modules/@langchain/mistralai/dist/chat_models.d.cts +541 -0
- package/dist/node_modules/@langchain/mistralai/dist/chat_models.d.ts +541 -0
- package/dist/node_modules/@langchain/mistralai/dist/chat_models.js +857 -0
- package/dist/node_modules/@langchain/mistralai/dist/embeddings.cjs +140 -0
- package/dist/node_modules/@langchain/mistralai/dist/embeddings.d.cts +116 -0
- package/dist/node_modules/@langchain/mistralai/dist/embeddings.d.ts +116 -0
- package/dist/node_modules/@langchain/mistralai/dist/embeddings.js +139 -0
- package/dist/node_modules/@langchain/mistralai/dist/index.cjs +21 -0
- package/dist/node_modules/@langchain/mistralai/dist/index.d.cts +4 -0
- package/dist/node_modules/@langchain/mistralai/dist/index.d.ts +4 -0
- package/dist/node_modules/@langchain/mistralai/dist/index.js +5 -0
- package/dist/node_modules/@langchain/mistralai/dist/llms.cjs +275 -0
- package/dist/node_modules/@langchain/mistralai/dist/llms.d.cts +147 -0
- package/dist/node_modules/@langchain/mistralai/dist/llms.d.ts +147 -0
- package/dist/node_modules/@langchain/mistralai/dist/llms.js +274 -0
- package/dist/node_modules/@langchain/mistralai/dist/utils.cjs +61 -0
- package/dist/node_modules/@langchain/mistralai/dist/utils.js +59 -0
- package/dist/node_modules/@langchain/mistralai/package.json +1 -0
- package/dist/node_modules/@langchain/xai/dist/index.cjs +2 -2
- package/dist/node_modules/@langchain/xai/package.json +1 -1
- package/dist/node_modules/fs-extra/package.json +1 -1
- package/dist/node_modules/jsonrepair/package.json +1 -1
- package/dist/node_modules/just-bash/package.json +1 -1
- package/dist/node_modules/nodejs-snowflake/package.json +1 -1
- package/dist/node_modules/openai/package.json +1 -1
- package/dist/node_modules/zod/package.json +1 -1
- package/dist/server/ai-employees/ai-employee.d.ts +1 -0
- package/dist/server/ai-employees/ai-employee.js +44 -7
- package/dist/server/ai-employees/checkpoints/cleaner.d.ts +2 -0
- package/dist/server/ai-employees/checkpoints/cleaner.js +11 -1
- package/dist/server/ai-employees/middleware/conversation.d.ts +2 -0
- package/dist/server/ai-employees/middleware/conversation.js +2 -1
- package/dist/server/ai-employees/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.d.ts +3 -1
- package/dist/server/ai-employees/utils.js +13 -5
- package/dist/server/attachments.d.ts +24 -0
- package/dist/server/attachments.js +204 -0
- 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/cached.d.ts +1 -0
- package/dist/server/document-loader/cached.js +18 -9
- package/dist/server/document-loader/loader.d.ts +0 -1
- package/dist/server/document-loader/loader.js +25 -8
- package/dist/server/document-loader/types.d.ts +7 -0
- package/dist/server/llm-providers/anthropic.d.ts +2 -1
- package/dist/server/llm-providers/anthropic.js +1 -3
- 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/google-genai.d.ts +1 -1
- package/dist/server/llm-providers/google-genai.js +1 -5
- 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 +96 -0
- package/dist/server/llm-providers/mistral.js +325 -0
- 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/orcarouter.d.ts +35 -0
- package/dist/server/llm-providers/orcarouter.js +155 -0
- package/dist/server/llm-providers/provider.d.ts +16 -4
- package/dist/server/llm-providers/provider.js +60 -18
- 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/plugin.js +18 -0
- package/dist/server/resource/aiConversations.js +44 -1
- package/dist/server/utils.d.ts +5 -2
- package/dist/server/utils.js +11 -19
- package/dist/server/workflow/nodes/employee/files.d.ts +3 -1
- package/dist/server/workflow/nodes/employee/files.js +31 -5
- package/dist/server/workflow/nodes/employee/index.js +92 -46
- package/dist/server/workflow/nodes/employee/tools.js +8 -1
- package/package.json +6 -5
- package/dist/client/119.c6bf8c6433167d81.js +0 -10
- package/dist/client/170.d98eacdc00d9d527.js +0 -10
- package/dist/client/228.b4b709f93b86b6b9.js +0 -10
- package/dist/client/280.003b9e9788599244.js +0 -10
- package/dist/client/290.0f7f441d8a94f03c.js +0 -10
- package/dist/client/331.d547c95410476a69.js +0 -10
- package/dist/client/406.15c09d98faa2ccf1.js +0 -10
- package/dist/client/428.e9f38da3b0d8b498.js +0 -10
- package/dist/client/462.d172d0fe91519e35.js +0 -10
- package/dist/client/486.dcac8f3fcec19c33.js +0 -10
- package/dist/client/502.2b4a51e0a8122e52.js +0 -10
- package/dist/client/525.33a9c8ec28be4ec4.js +0 -10
- package/dist/client/559.a0f2f1cc2be3c039.js +0 -10
- package/dist/client/561.7ec804ef39ec7dcd.js +0 -10
- package/dist/client/580.35ba54ff91b7fe6d.js +0 -10
- package/dist/client/597.b0d64948d74cf6cb.js +0 -10
- package/dist/client/604.89c674f35b52b4ef.js +0 -10
- package/dist/client/614.aa766080f6b99aab.js +0 -10
- package/dist/client/646.d4483b4ff23da0a0.js +0 -10
- package/dist/client/687.224e569a99cae4bb.js +0 -10
- package/dist/client/699.57c0a1acb723202a.js +0 -10
- package/dist/client/711.92cd94681fde7e05.js +0 -10
- package/dist/client/758.a9741e81911e53c3.js +0 -10
- package/dist/client/768.5177bff46ae71a5b.js +0 -10
- package/dist/client/792.abb57765453bcbcc.js +0 -10
- package/dist/client/820.f72ef2462b61d812.js +0 -10
- package/dist/client/832.0cf69e3f43c320b2.js +0 -10
- package/dist/client/927.d95c74ebb8fd51c9.js +0 -10
- package/dist/client/ai-employees/1.x/selector/AISelectorProvider.d.ts +0 -33
- package/dist/client/ai-employees/ProfileCard.d.ts +0 -15
- package/dist/client/ai-employees/admin/ChatSettings.d.ts +0 -10
- package/dist/client/ai-employees/admin/DataSourceSettings.d.ts +0 -10
- package/dist/client/ai-employees/admin/EnableSwitch.d.ts +0 -10
- package/dist/client/ai-employees/admin/InputsFormSettings.d.ts +0 -10
- package/dist/client/ai-employees/admin/KnowledgeBaseSettings.d.ts +0 -10
- package/dist/client/ai-employees/admin/ModelSettings.d.ts +0 -10
- package/dist/client/ai-employees/admin/SkillSettings.d.ts +0 -19
- package/dist/client/ai-employees/admin/SystemPrompt.d.ts +0 -10
- package/dist/client/ai-employees/admin/Templates.d.ts +0 -10
- package/dist/client/ai-employees/admin/ToolsSettings.d.ts +0 -17
- package/dist/client/ai-employees/admin/datasource/components/DatasourceSettingForm.d.ts +0 -10
- package/dist/client/ai-employees/admin/datasource/components/DatasourceSettingGrid.d.ts +0 -10
- package/dist/client/ai-employees/admin/datasource/components/basic/FieldsTransfer.d.ts +0 -17
- package/dist/client/ai-employees/admin/datasource/components/form-steps/CollectionSetting.d.ts +0 -17
- package/dist/client/ai-employees/admin/datasource/components/form-steps/FieldsSetting.d.ts +0 -15
- package/dist/client/ai-employees/admin/datasource/components/form-steps/FilterSetting.d.ts +0 -17
- package/dist/client/ai-employees/admin/datasource/components/form-steps/Preview.d.ts +0 -13
- package/dist/client/ai-employees/admin/datasource/components/form-steps/SortSetting.d.ts +0 -15
- package/dist/client/ai-employees/admin/datasource/components/form-steps/index.d.ts +0 -13
- package/dist/client/ai-employees/admin/datasource/components/index.d.ts +0 -9
- package/dist/client/ai-employees/admin/datasource/context.d.ts +0 -17
- package/dist/client/ai-employees/admin/datasource/flow-models/index.d.ts +0 -9
- package/dist/client/ai-employees/admin/datasource/index.d.ts +0 -10
- package/dist/client/ai-employees/admin/hooks.d.ts +0 -39
- package/dist/client/ai-employees/admin/mcp/MCPSettings.d.ts +0 -10
- package/dist/client/ai-employees/admin/mcp/MCPToolsList.d.ts +0 -19
- package/dist/client/ai-employees/admin/mcp/context.d.ts +0 -15
- package/dist/client/ai-employees/admin/mcp/schemas.d.ts +0 -1314
- package/dist/client/ai-employees/ai-coding/CodeHistory.d.ts +0 -10
- package/dist/client/ai-employees/ai-coding/markdown/Code.d.ts +0 -16
- package/dist/client/ai-employees/avatars.d.ts +0 -9
- package/dist/client/ai-employees/built-in/utils.d.ts +0 -15
- package/dist/client/ai-employees/business-report/tools/index.d.ts +0 -10
- package/dist/client/ai-employees/business-report/ui/report-utils.d.ts +0 -38
- package/dist/client/ai-employees/chart-generator/tools/index.d.ts +0 -10
- package/dist/client/ai-employees/chart-generator/ui/ECharts.d.ts +0 -13
- package/dist/client/ai-employees/chatbox/AIThinking.d.ts +0 -12
- package/dist/client/ai-employees/chatbox/Attachment.d.ts +0 -14
- package/dist/client/ai-employees/chatbox/AttachmentsHeader.d.ts +0 -10
- package/dist/client/ai-employees/chatbox/ChatBox.d.ts +0 -12
- package/dist/client/ai-employees/chatbox/ContextItemsHeader.d.ts +0 -10
- package/dist/client/ai-employees/chatbox/DebugPanel.d.ts +0 -16
- package/dist/client/ai-employees/chatbox/EditMessageHeader.d.ts +0 -10
- package/dist/client/ai-employees/chatbox/HintMessageHeader.d.ts +0 -10
- package/dist/client/ai-employees/chatbox/MessageRenderer.d.ts +0 -33
- package/dist/client/ai-employees/chatbox/SenderFooter.d.ts +0 -13
- package/dist/client/ai-employees/chatbox/SenderHeader.d.ts +0 -10
- package/dist/client/ai-employees/chatbox/SenderPrefix.d.ts +0 -10
- package/dist/client/ai-employees/chatbox/Upload.d.ts +0 -12
- package/dist/client/ai-employees/chatbox/VirtualList.d.ts +0 -28
- package/dist/client/ai-employees/chatbox/conversations/ConversationsList.d.ts +0 -13
- package/dist/client/ai-employees/chatbox/conversations/WorkflowTasksList.d.ts +0 -13
- package/dist/client/ai-employees/chatbox/conversations/index.d.ts +0 -9
- package/dist/client/ai-employees/chatbox/generative-ui/DefaultToolCard.d.ts +0 -16
- package/dist/client/ai-employees/chatbox/hooks/useChatBoxActions.d.ts +0 -18
- package/dist/client/ai-employees/chatbox/hooks/useUploadFiles.d.ts +0 -12
- package/dist/client/ai-employees/chatbox/markdown/ECharts.d.ts +0 -10
- package/dist/client/ai-employees/chatbox/markdown/Form.d.ts +0 -10
- package/dist/client/ai-employees/chatbox/markdown/Generating.d.ts +0 -10
- package/dist/client/ai-employees/chatbox/markdown/Markdown.d.ts +0 -13
- package/dist/client/ai-employees/chatbox/roles.d.ts +0 -32
- package/dist/client/ai-employees/chatbox/stores/chat-box.d.ts +0 -9
- package/dist/client/ai-employees/chatbox/stores/chat-conversations.d.ts +0 -9
- package/dist/client/ai-employees/chatbox/stores/chat-messages.d.ts +0 -9
- package/dist/client/ai-employees/chatbox/stores/chat-tools.d.ts +0 -51
- package/dist/client/ai-employees/chatbox/stores/create-selectors.d.ts +0 -18
- package/dist/client/ai-employees/chatbox/stores/workflow-tasks.d.ts +0 -45
- package/dist/client/ai-employees/context/classic-pages.d.ts +0 -10
- package/dist/client/ai-employees/data-modeling/Table.d.ts +0 -12
- package/dist/client/ai-employees/data-modeling/setup.d.ts +0 -10
- package/dist/client/ai-employees/data-modeling/tools/index.d.ts +0 -10
- package/dist/client/ai-employees/data-modeling/ui/useFieldInterfaceOptions.d.ts +0 -14
- package/dist/client/ai-employees/datasource/DatasourceList.d.ts +0 -17
- package/dist/client/ai-employees/datasource/index.d.ts +0 -9
- package/dist/client/ai-employees/flow/events/index.d.ts +0 -9
- package/dist/client/ai-employees/flow/index.d.ts +0 -36
- package/dist/client/ai-employees/flow/models/AIEmployeeActionModel.d.ts +0 -18
- package/dist/client/ai-employees/flow/models/AIEmployeeShortcutModel.d.ts +0 -30
- package/dist/client/ai-employees/shortcuts/ShortcutList.d.ts +0 -10
- package/dist/client/ai-employees/shortcuts/useShortcuts.d.ts +0 -13
- package/dist/client/ai-employees/stores/context-aware.d.ts +0 -19
- package/dist/client/ai-employees/sub-agents/tools/index.d.ts +0 -10
- package/dist/client/ai-employees/suggestions/tools/index.d.ts +0 -10
- package/dist/client/ai-employees/suggestions/ui/SuggestionsOptions.d.ts +0 -13
- package/dist/client/ai-employees/types.d.ts +0 -259
- package/dist/client/ai-employees/workflow-tasks/tools/index.d.ts +0 -10
- package/dist/client/chat-settings/Messages.d.ts +0 -11
- package/dist/client/chat-settings/StructuredOutput.d.ts +0 -11
- package/dist/client/components/skill-settings.d.ts +0 -22
- package/dist/client/features/components.d.ts +0 -9
- package/dist/client/features/feature-manager.d.ts +0 -9
- package/dist/client/features/index.d.ts +0 -9
- package/dist/client/features/vector-database-provider.d.ts +0 -9
- package/dist/client/features/vector-store-provider.d.ts +0 -9
- package/dist/client/llm-providers/anthropic/ModelSettings.d.ts +0 -10
- package/dist/client/llm-providers/anthropic/ProviderSettings.d.ts +0 -10
- package/dist/client/llm-providers/anthropic/index.d.ts +0 -10
- package/dist/client/llm-providers/components/Chat.d.ts +0 -10
- package/dist/client/llm-providers/components/ModelSelect.d.ts +0 -10
- package/dist/client/llm-providers/dashscope/ModelSettings.d.ts +0 -10
- package/dist/client/llm-providers/dashscope/ProviderSettings.d.ts +0 -10
- package/dist/client/llm-providers/dashscope/index.d.ts +0 -10
- package/dist/client/llm-providers/deepseek/ModelSettings.d.ts +0 -10
- package/dist/client/llm-providers/deepseek/index.d.ts +0 -10
- package/dist/client/llm-providers/google-genai/MessageRenderer.d.ts +0 -13
- package/dist/client/llm-providers/google-genai/ModelSettings.d.ts +0 -10
- package/dist/client/llm-providers/google-genai/ProviderSettings.d.ts +0 -10
- package/dist/client/llm-providers/google-genai/index.d.ts +0 -10
- package/dist/client/llm-providers/kimi/ModelSettings.d.ts +0 -10
- package/dist/client/llm-providers/kimi/index.d.ts +0 -10
- package/dist/client/llm-providers/mimo/ModelSettings.d.ts +0 -10
- package/dist/client/llm-providers/mimo/index.d.ts +0 -10
- package/dist/client/llm-providers/ollama/ModelSettings.d.ts +0 -10
- package/dist/client/llm-providers/ollama/ProviderSettings.d.ts +0 -10
- package/dist/client/llm-providers/ollama/index.d.ts +0 -10
- package/dist/client/llm-providers/openai/completions/ModelSettings.d.ts +0 -10
- package/dist/client/llm-providers/openai/completions/index.d.ts +0 -10
- package/dist/client/llm-providers/openai/components/ProviderSettings.d.ts +0 -10
- package/dist/client/llm-providers/openai/responses/ModelSettings.d.ts +0 -10
- package/dist/client/llm-providers/openai/responses/index.d.ts +0 -10
- package/dist/client/llm-providers/tongyi/ModelSettings.d.ts +0 -10
- package/dist/client/llm-providers/tongyi/ProviderSettings.d.ts +0 -10
- package/dist/client/llm-providers/tongyi/index.d.ts +0 -10
- package/dist/client/llm-providers/xai/ModelSettings.d.ts +0 -10
- package/dist/client/llm-providers/xai/index.d.ts +0 -10
- package/dist/client/llm-services/LLMServices.d.ts +0 -13
- package/dist/client/llm-services/component/DefaultModelSelect.d.ts +0 -10
- package/dist/client/llm-services/component/EnabledModelsSelect.d.ts +0 -23
- package/dist/client/llm-services/component/LLMTestFlight.d.ts +0 -10
- package/dist/client/llm-services/component/ModelOptionsSettings.d.ts +0 -10
- package/dist/client/llm-services/component/UnifiedModelSettings.d.ts +0 -10
- package/dist/client/llm-services/hooks/useLLMServiceCatalog.d.ts +0 -18
- package/dist/client/llm-services/llm-providers.d.ts +0 -27
- package/dist/client/llm-services/utils.d.ts +0 -30
- package/dist/client/manager/ai-feature-manager.d.ts +0 -9
- package/dist/client/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 -15
- package/dist/client/workflow/nodes/employee/components/web-search-options.d.ts +0 -10
- package/dist/client/workflow/nodes/employee/configuration.d.ts +0 -12
- package/dist/client/workflow/nodes/employee/flow-models/feedback.d.ts +0 -14
- package/dist/client/workflow/nodes/employee/flow-models/task.d.ts +0 -13
- package/dist/client/workflow/nodes/llm/ModelSettings.d.ts +0 -11
- package/dist/client/workflow/triggers/ai-employee/Parameters.d.ts +0 -13
- package/dist/client-v2/ai-employees/flow/models/AIEmployeeButtonModel.d.ts +0 -32
- /package/dist/{client → client-v2}/ai-employees/AISelection.d.ts +0 -0
- /package/dist/{client → client-v2}/ai-employees/AISelectionControl.d.ts +0 -0
- /package/dist/{client → client-v2}/ai-employees/ai-coding/prompts.d.ts +0 -0
- /package/dist/{client → client-v2}/ai-employees/ai-coding/setup.d.ts +0 -0
- /package/dist/{client/ai-employees/chatbox/AIEmployeeSwitch.d.ts → client-v2/ai-employees/chatbox/components/AIEmployeeSwitcher.d.ts} +0 -0
- /package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/ChatButton.d.ts +0 -0
- /package/dist/{client/ai-employees/chatbox/conversations → client-v2/ai-employees/chatbox/components}/Conversations.d.ts +0 -0
- /package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/Messages.d.ts +0 -0
- /package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/ModelSwitcher.d.ts +0 -0
- /package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/SearchSwitch.d.ts +0 -0
- /package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/Sender.d.ts +0 -0
- /package/dist/{client/ai-employees/chatbox/generative-ui → client-v2/ai-employees/chatbox/components}/ToolModal.d.ts +0 -0
- /package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/UserPrompt.d.ts +0 -0
- /package/dist/{client → client-v2}/ai-employees/chatbox/hooks/useChatBoxEffect.d.ts +0 -0
- /package/dist/{client → client-v2}/ai-employees/chatbox/hooks/useLoadMoreObserver.d.ts +0 -0
- /package/dist/client-v2/ai-employees/{chatbox/stores → stores}/global-store.d.ts +0 -0
- /package/dist/{client/ai-employees/flow/models → client-v2/models/ai-employees}/AIEmployeeShortcutListModel.d.ts +0 -0
- /package/dist/{client/ai-employees/flow/models → client-v2/models/ai-employees}/index.d.ts +0 -0
- /package/dist/{client/ai-employees/flow/events/ai-context-selection.d.ts → client-v2/workflow/components/index.d.ts} +0 -0
|
@@ -0,0 +1,195 @@
|
|
|
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
|
+
buildAIUsageEventValues: () => buildAIUsageEventValues,
|
|
30
|
+
normalizeUsageMetadata: () => normalizeUsageMetadata,
|
|
31
|
+
recordAIUsageEventsForMessages: () => recordAIUsageEventsForMessages
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(ai_usage_events_exports);
|
|
34
|
+
const SKIPPED_MESSAGE_ROLES = /* @__PURE__ */ new Set(["user", "tool", "system"]);
|
|
35
|
+
function normalizeUsageMetadata(usageMetadata) {
|
|
36
|
+
const inputTokens = getNumericValue(usageMetadata, ["input_tokens", "prompt_tokens", "inputTokens", "promptTokens"]) ?? 0;
|
|
37
|
+
const outputTokens = getNumericValue(usageMetadata, ["output_tokens", "completion_tokens", "outputTokens", "completionTokens"]) ?? 0;
|
|
38
|
+
const totalTokens = getNumericValue(usageMetadata, ["total_tokens", "totalTokens"]) ?? inputTokens + outputTokens;
|
|
39
|
+
const cachedTokens = getNumericValue(usageMetadata, ["cached_tokens", "cachedTokens"]) ?? getNestedNumericValue(usageMetadata, ["input_token_details", "cache_read"]) ?? getNestedNumericValue(usageMetadata, ["input_token_details", "cached_tokens"]) ?? getNestedNumericValue(usageMetadata, ["prompt_tokens_details", "cached_tokens"]) ?? 0;
|
|
40
|
+
const reasoningTokens = getNumericValue(usageMetadata, ["reasoning_tokens", "reasoningTokens"]) ?? getNestedNumericValue(usageMetadata, ["output_token_details", "reasoning"]) ?? getNestedNumericValue(usageMetadata, ["completion_tokens_details", "reasoning_tokens"]) ?? 0;
|
|
41
|
+
return {
|
|
42
|
+
inputTokens,
|
|
43
|
+
outputTokens,
|
|
44
|
+
totalTokens,
|
|
45
|
+
cachedTokens,
|
|
46
|
+
reasoningTokens
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
function buildAIUsageEventValues(sessionId, message, conversation) {
|
|
50
|
+
const role = readString(message, "role");
|
|
51
|
+
if (!role || SKIPPED_MESSAGE_ROLES.has(role)) {
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
const metadata = readRecord(message, "metadata");
|
|
55
|
+
const provider = readString(metadata, "provider");
|
|
56
|
+
const model = readString(metadata, "model");
|
|
57
|
+
if (!provider || !model) {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
const usageMetadata = readRecord(metadata, "usage_metadata") ?? {};
|
|
61
|
+
const responseMetadata = readRecord(metadata, "response_metadata");
|
|
62
|
+
const normalizedUsage = normalizeUsageMetadata(usageMetadata);
|
|
63
|
+
const toolCalls = readArray(message, "toolCalls");
|
|
64
|
+
const autoCallTools = readArray(metadata, "autoCallTools");
|
|
65
|
+
const llmService = readString(metadata, "llmService");
|
|
66
|
+
return {
|
|
67
|
+
occurredAt: normalizeDate(readValue(message, "createdAt")),
|
|
68
|
+
sessionId,
|
|
69
|
+
messageId: String(readValue(message, "messageId") ?? ""),
|
|
70
|
+
userId: readValue(conversation, "userId"),
|
|
71
|
+
aiEmployeeUsername: readValue(conversation, "aiEmployeeUsername"),
|
|
72
|
+
from: readString(conversation, "from") ?? "main-agent",
|
|
73
|
+
category: readString(conversation, "category") ?? "chat",
|
|
74
|
+
eventType: "llm_message",
|
|
75
|
+
role,
|
|
76
|
+
provider,
|
|
77
|
+
...llmService ? { llmService } : {},
|
|
78
|
+
model,
|
|
79
|
+
...normalizedUsage,
|
|
80
|
+
toolCallCount: (toolCalls == null ? void 0 : toolCalls.length) ?? 0,
|
|
81
|
+
autoToolCallCount: (autoCallTools == null ? void 0 : autoCallTools.length) ?? 0,
|
|
82
|
+
status: "success",
|
|
83
|
+
rawUsageMetadata: usageMetadata,
|
|
84
|
+
...responseMetadata ? { rawResponseMetadata: responseMetadata } : {}
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
async function recordAIUsageEventsForMessages(ctx, sessionId, messages, transaction) {
|
|
88
|
+
const recordableMessages = messages.filter(isRecordableLLMMessage);
|
|
89
|
+
if (recordableMessages.length === 0) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
const conversation = await ctx.db.getRepository("aiConversations").findOne({
|
|
93
|
+
filter: {
|
|
94
|
+
sessionId
|
|
95
|
+
},
|
|
96
|
+
transaction
|
|
97
|
+
});
|
|
98
|
+
if (!conversation) {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
const usageEvents = recordableMessages.map((message) => buildAIUsageEventValues(sessionId, message, conversation)).filter(isUsageEventValues);
|
|
102
|
+
if (usageEvents.length === 0) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
const usageEventsRepo = ctx.db.getRepository("aiUsageEvents");
|
|
106
|
+
for (const values of usageEvents) {
|
|
107
|
+
await usageEventsRepo.updateOrCreate({
|
|
108
|
+
filterKeys: ["messageId", "eventType"],
|
|
109
|
+
values,
|
|
110
|
+
transaction
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
function isUsageEventValues(value) {
|
|
115
|
+
return value !== null && value.messageId !== "";
|
|
116
|
+
}
|
|
117
|
+
function isRecordableLLMMessage(message) {
|
|
118
|
+
const role = readString(message, "role");
|
|
119
|
+
if (!role || SKIPPED_MESSAGE_ROLES.has(role)) {
|
|
120
|
+
return false;
|
|
121
|
+
}
|
|
122
|
+
const metadata = readRecord(message, "metadata");
|
|
123
|
+
return Boolean(readString(metadata, "provider") && readString(metadata, "model"));
|
|
124
|
+
}
|
|
125
|
+
function isRecord(value) {
|
|
126
|
+
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
127
|
+
}
|
|
128
|
+
function readValue(source, key) {
|
|
129
|
+
if (!isRecord(source)) {
|
|
130
|
+
return void 0;
|
|
131
|
+
}
|
|
132
|
+
const value = source[key];
|
|
133
|
+
if (value !== void 0) {
|
|
134
|
+
return value;
|
|
135
|
+
}
|
|
136
|
+
if (typeof source.get === "function") {
|
|
137
|
+
return source.get(key);
|
|
138
|
+
}
|
|
139
|
+
return void 0;
|
|
140
|
+
}
|
|
141
|
+
function readString(source, key) {
|
|
142
|
+
const value = readValue(source, key);
|
|
143
|
+
return typeof value === "string" && value !== "" ? value : void 0;
|
|
144
|
+
}
|
|
145
|
+
function readRecord(source, key) {
|
|
146
|
+
const value = readValue(source, key);
|
|
147
|
+
return isRecord(value) ? value : void 0;
|
|
148
|
+
}
|
|
149
|
+
function readArray(source, key) {
|
|
150
|
+
const value = readValue(source, key);
|
|
151
|
+
return Array.isArray(value) ? value : void 0;
|
|
152
|
+
}
|
|
153
|
+
function getNumericValue(source, keys) {
|
|
154
|
+
for (const key of keys) {
|
|
155
|
+
const normalized = normalizeNumber(source[key]);
|
|
156
|
+
if (normalized !== void 0) {
|
|
157
|
+
return normalized;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
function getNestedNumericValue(source, path) {
|
|
162
|
+
let current = source;
|
|
163
|
+
for (const key of path) {
|
|
164
|
+
if (!isRecord(current)) {
|
|
165
|
+
return void 0;
|
|
166
|
+
}
|
|
167
|
+
current = current[key];
|
|
168
|
+
}
|
|
169
|
+
return normalizeNumber(current);
|
|
170
|
+
}
|
|
171
|
+
function normalizeNumber(value) {
|
|
172
|
+
const numeric = typeof value === "number" ? value : typeof value === "string" ? Number(value) : NaN;
|
|
173
|
+
if (!Number.isFinite(numeric)) {
|
|
174
|
+
return void 0;
|
|
175
|
+
}
|
|
176
|
+
return Math.max(0, Math.trunc(numeric));
|
|
177
|
+
}
|
|
178
|
+
function normalizeDate(value) {
|
|
179
|
+
if (value instanceof Date && Number.isFinite(value.getTime())) {
|
|
180
|
+
return value;
|
|
181
|
+
}
|
|
182
|
+
if (typeof value === "string" || typeof value === "number") {
|
|
183
|
+
const date = new Date(value);
|
|
184
|
+
if (Number.isFinite(date.getTime())) {
|
|
185
|
+
return date;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
return /* @__PURE__ */ new Date();
|
|
189
|
+
}
|
|
190
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
191
|
+
0 && (module.exports = {
|
|
192
|
+
buildAIUsageEventValues,
|
|
193
|
+
normalizeUsageMetadata,
|
|
194
|
+
recordAIUsageEventsForMessages
|
|
195
|
+
});
|
package/dist/server/plugin.js
CHANGED
|
@@ -74,10 +74,13 @@ var import_xai = require("./llm-providers/xai");
|
|
|
74
74
|
var import_document_loader = require("./document-loader");
|
|
75
75
|
var import_checkpoints = require("./ai-employees/checkpoints");
|
|
76
76
|
var import_mimo = require("./llm-providers/mimo");
|
|
77
|
+
var import_mistral = require("./llm-providers/mistral");
|
|
78
|
+
var import_orcarouter = require("./llm-providers/orcarouter");
|
|
77
79
|
var import_sub_agents = require("./ai-employees/sub-agents");
|
|
78
80
|
var import_employee = require("./workflow/nodes/employee");
|
|
79
81
|
var import_ai_knowledge_base = require("./ai-employees/ai-knowledge-base");
|
|
80
82
|
var import_llm_stream_manager = require("./manager/llm-stream-manager");
|
|
83
|
+
var import_attachments = require("./attachments");
|
|
81
84
|
class PluginAIServer extends import_server.Plugin {
|
|
82
85
|
features = new import_ai_feature_manager.AIPluginFeatureManagerImpl();
|
|
83
86
|
aiManager = new import_ai_manager.AIManager(this);
|
|
@@ -180,10 +183,12 @@ class PluginAIServer extends import_server.Plugin {
|
|
|
180
183
|
this.aiManager.registerLLMProvider("dashscope", import_dashscope.dashscopeProviderOptions);
|
|
181
184
|
this.aiManager.registerLLMProvider("kimi", import_kimi.kimiProviderOptions);
|
|
182
185
|
this.aiManager.registerLLMProvider("mimo", import_mimo.mimoProviderOptions);
|
|
186
|
+
this.aiManager.registerLLMProvider("mistral", import_mistral.mistralProviderOptions);
|
|
183
187
|
this.aiManager.registerLLMProvider("ollama", import_ollama.ollamaProviderOptions);
|
|
184
188
|
this.aiManager.registerLLMProvider("openai-completions", import_openai2.openaiCompletionsProviderOptions);
|
|
185
189
|
this.aiManager.registerLLMProvider("kimi", import_kimi.kimiProviderOptions);
|
|
186
190
|
this.aiManager.registerLLMProvider("xai", import_xai.xaiProviderOptions);
|
|
191
|
+
this.aiManager.registerLLMProvider("orcarouter", import_orcarouter.orcarouterProviderOptions);
|
|
187
192
|
}
|
|
188
193
|
registerTools() {
|
|
189
194
|
const toolsManager = this.ai.toolsManager;
|
|
@@ -214,6 +219,19 @@ class PluginAIServer extends import_server.Plugin {
|
|
|
214
219
|
},
|
|
215
220
|
{ before: "createMiddleware" }
|
|
216
221
|
);
|
|
222
|
+
this.app.resourceManager.use(
|
|
223
|
+
async (ctx, next) => {
|
|
224
|
+
const { resourceName, actionName } = ctx.action;
|
|
225
|
+
if (resourceName === "aiFiles" && actionName === "create") {
|
|
226
|
+
(0, import_attachments.appendAIFileAttachmentSource)(ctx.action.params.values);
|
|
227
|
+
}
|
|
228
|
+
await next();
|
|
229
|
+
if (resourceName === "aiFiles" && actionName === "create") {
|
|
230
|
+
(0, import_attachments.appendAIFileAttachmentSource)(ctx.body);
|
|
231
|
+
}
|
|
232
|
+
},
|
|
233
|
+
{ after: "createMiddleware" }
|
|
234
|
+
);
|
|
217
235
|
Object.entries(aiEmployeeActions).forEach(([name, action]) => {
|
|
218
236
|
this.app.resourceManager.registerActionHandler(`aiEmployees:${name}`, action);
|
|
219
237
|
});
|
|
@@ -103,6 +103,33 @@ const saveUserMessages = async (ctx, sessionId, messages, messageId) => {
|
|
|
103
103
|
await conversation.addMessages(userMessages);
|
|
104
104
|
});
|
|
105
105
|
};
|
|
106
|
+
function isRecord(value) {
|
|
107
|
+
return Boolean(value && typeof value === "object" && !Array.isArray(value));
|
|
108
|
+
}
|
|
109
|
+
function normalizeIncomingMessageAttachments(ctx, messages) {
|
|
110
|
+
for (const message of messages) {
|
|
111
|
+
if (message.attachments == null) {
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
if (!Array.isArray(message.attachments)) {
|
|
115
|
+
throw new import_utils.ResourceActionError(400, ctx.t("Invalid attachment"));
|
|
116
|
+
}
|
|
117
|
+
message.attachments = message.attachments.map((attachment) => {
|
|
118
|
+
if (!isRecord(attachment) || !isRecord(attachment.source)) {
|
|
119
|
+
throw new import_utils.ResourceActionError(400, ctx.t("Invalid attachment"));
|
|
120
|
+
}
|
|
121
|
+
const source = { ...attachment.source };
|
|
122
|
+
delete source.trustworthy;
|
|
123
|
+
if (typeof source.collectionName !== "string" || !source.collectionName) {
|
|
124
|
+
throw new import_utils.ResourceActionError(400, ctx.t("Invalid attachment"));
|
|
125
|
+
}
|
|
126
|
+
return {
|
|
127
|
+
...attachment,
|
|
128
|
+
source
|
|
129
|
+
};
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
}
|
|
106
133
|
var aiConversations_default = {
|
|
107
134
|
name: "aiConversations",
|
|
108
135
|
middlewares: [
|
|
@@ -329,6 +356,7 @@ var aiConversations_default = {
|
|
|
329
356
|
if (!Array.isArray(messages)) {
|
|
330
357
|
throw new import_utils.ResourceActionError(400, ctx.t("messages must be an array"));
|
|
331
358
|
}
|
|
359
|
+
normalizeIncomingMessageAttachments(ctx, messages);
|
|
332
360
|
const userMessage = messages.find((message) => message.role === "user");
|
|
333
361
|
if (!userMessage) {
|
|
334
362
|
throw new import_utils.ResourceActionError(400, ctx.t("user message is required"));
|
|
@@ -633,6 +661,13 @@ var aiConversations_default = {
|
|
|
633
661
|
if (!message) {
|
|
634
662
|
ctx.throw(400);
|
|
635
663
|
}
|
|
664
|
+
const messageConversation = await plugin.aiConversationsManager.getConversation({
|
|
665
|
+
sessionId: message.sessionId,
|
|
666
|
+
userId
|
|
667
|
+
});
|
|
668
|
+
if (!messageConversation) {
|
|
669
|
+
ctx.throw(400);
|
|
670
|
+
}
|
|
636
671
|
const toolCalls = message.toolCalls;
|
|
637
672
|
if (!(toolCalls == null ? void 0 : toolCalls.length)) {
|
|
638
673
|
ctx.throw(400);
|
|
@@ -730,6 +765,14 @@ var aiConversations_default = {
|
|
|
730
765
|
sendErrorResponse(ctx, "message not found");
|
|
731
766
|
return next();
|
|
732
767
|
}
|
|
768
|
+
const messageConversation = await plugin.aiConversationsManager.getConversation({
|
|
769
|
+
sessionId: message.sessionId,
|
|
770
|
+
userId
|
|
771
|
+
});
|
|
772
|
+
if (!messageConversation) {
|
|
773
|
+
sendErrorResponse(ctx, "conversation not found");
|
|
774
|
+
return next();
|
|
775
|
+
}
|
|
733
776
|
const tools = message.toolCalls;
|
|
734
777
|
if (!(tools == null ? void 0 : tools.length)) {
|
|
735
778
|
sendErrorResponse(ctx, "No tool calls found");
|
|
@@ -746,7 +789,7 @@ var aiConversations_default = {
|
|
|
746
789
|
webSearch,
|
|
747
790
|
model: resolvedModel
|
|
748
791
|
});
|
|
749
|
-
const userDecisions = await plugin.aiConversationsManager.getUserDecisions(messageId);
|
|
792
|
+
const userDecisions = await plugin.aiConversationsManager.getUserDecisions(message.messageId);
|
|
750
793
|
await aiEmployee.stream({
|
|
751
794
|
userDecisions
|
|
752
795
|
});
|
package/dist/server/utils.d.ts
CHANGED
|
@@ -6,9 +6,11 @@
|
|
|
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
|
+
/// <reference types="node" />
|
|
9
10
|
import { Model } from '@nocobase/database';
|
|
10
11
|
import { Context } from '@nocobase/actions';
|
|
11
12
|
import { ToolsEntry } from '@nocobase/ai';
|
|
13
|
+
import type { Readable } from 'stream';
|
|
12
14
|
export declare function sendSSEError(ctx: Context, error: Error | string, errorName?: string): void;
|
|
13
15
|
export declare function stripToolCallTags(content: string): string | null;
|
|
14
16
|
export declare function parseResponseMessage(row: Model): {
|
|
@@ -17,8 +19,9 @@ export declare function parseResponseMessage(row: Model): {
|
|
|
17
19
|
content: any;
|
|
18
20
|
role: any;
|
|
19
21
|
};
|
|
20
|
-
export declare function encodeLocalFile(
|
|
21
|
-
export declare function encodeFile(ctx: Context, url: string): Promise<string>;
|
|
22
|
+
export declare function encodeLocalFile(_url: string): Promise<void>;
|
|
23
|
+
export declare function encodeFile(ctx: Context, url: string): Promise<string | void>;
|
|
24
|
+
export declare function encodeReadableStream(stream: Readable): Promise<string>;
|
|
22
25
|
export declare function parseVariables(ctx: Context, value: string): Promise<any>;
|
|
23
26
|
export declare const buildTool: (toolsEntry: ToolsEntry) => import("@langchain/core/dist/tools").DynamicTool<any, unknown>;
|
|
24
27
|
export declare class ResourceActionError extends Error {
|
package/dist/server/utils.js
CHANGED
|
@@ -7,11 +7,9 @@
|
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
var __create = Object.create;
|
|
11
10
|
var __defProp = Object.defineProperty;
|
|
12
11
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
13
12
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
14
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
15
13
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
16
14
|
var __export = (target, all) => {
|
|
17
15
|
for (var name in all)
|
|
@@ -25,14 +23,6 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
25
23
|
}
|
|
26
24
|
return to;
|
|
27
25
|
};
|
|
28
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
29
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
30
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
31
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
32
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
33
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
34
|
-
mod
|
|
35
|
-
));
|
|
36
26
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
37
27
|
var utils_exports = {};
|
|
38
28
|
__export(utils_exports, {
|
|
@@ -40,14 +30,13 @@ __export(utils_exports, {
|
|
|
40
30
|
buildTool: () => buildTool,
|
|
41
31
|
encodeFile: () => encodeFile,
|
|
42
32
|
encodeLocalFile: () => encodeLocalFile,
|
|
33
|
+
encodeReadableStream: () => encodeReadableStream,
|
|
43
34
|
parseResponseMessage: () => parseResponseMessage,
|
|
44
35
|
parseVariables: () => parseVariables,
|
|
45
36
|
sendSSEError: () => sendSSEError,
|
|
46
37
|
stripToolCallTags: () => stripToolCallTags
|
|
47
38
|
});
|
|
48
39
|
module.exports = __toCommonJS(utils_exports);
|
|
49
|
-
var import_path = __toESM(require("path"));
|
|
50
|
-
var import_fs = __toESM(require("fs"));
|
|
51
40
|
var import_utils = require("@nocobase/utils");
|
|
52
41
|
var import_langchain = require("langchain");
|
|
53
42
|
function sendSSEError(ctx, error, errorName) {
|
|
@@ -91,13 +80,8 @@ function parseResponseMessage(row) {
|
|
|
91
80
|
role
|
|
92
81
|
};
|
|
93
82
|
}
|
|
94
|
-
async function encodeLocalFile(
|
|
95
|
-
|
|
96
|
-
url = url.slice(process.env.APP_PUBLIC_PATH.length);
|
|
97
|
-
}
|
|
98
|
-
url = import_path.default.join(process.cwd(), url);
|
|
99
|
-
const data = await import_fs.default.promises.readFile(url);
|
|
100
|
-
return Buffer.from(data).toString("base64");
|
|
83
|
+
async function encodeLocalFile(_url) {
|
|
84
|
+
throw new Error("Local file path is not allowed");
|
|
101
85
|
}
|
|
102
86
|
async function encodeFile(ctx, url) {
|
|
103
87
|
if (!url.startsWith("http")) {
|
|
@@ -117,6 +101,13 @@ async function encodeFile(ctx, url) {
|
|
|
117
101
|
});
|
|
118
102
|
return Buffer.from(response.data).toString("base64");
|
|
119
103
|
}
|
|
104
|
+
async function encodeReadableStream(stream) {
|
|
105
|
+
const chunks = [];
|
|
106
|
+
for await (const chunk of stream) {
|
|
107
|
+
chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
|
|
108
|
+
}
|
|
109
|
+
return Buffer.concat(chunks).toString("base64");
|
|
110
|
+
}
|
|
120
111
|
async function getUser(ctx, fields) {
|
|
121
112
|
const userFields = fields.filter((f) => f && ctx.db.getFieldByPath("users." + f));
|
|
122
113
|
if (!ctx.state.currentUser) {
|
|
@@ -193,6 +184,7 @@ class ResourceActionError extends Error {
|
|
|
193
184
|
buildTool,
|
|
194
185
|
encodeFile,
|
|
195
186
|
encodeLocalFile,
|
|
187
|
+
encodeReadableStream,
|
|
196
188
|
parseResponseMessage,
|
|
197
189
|
parseVariables,
|
|
198
190
|
sendSSEError,
|
|
@@ -9,7 +9,9 @@
|
|
|
9
9
|
import { AIEmployeeInstructionFiles } from './types';
|
|
10
10
|
import { Plugin } from '@nocobase/server';
|
|
11
11
|
export declare abstract class Files {
|
|
12
|
-
static resolvers(plugin: Plugin, attachmentPart:
|
|
12
|
+
static resolvers(plugin: Plugin, attachmentPart: {
|
|
13
|
+
attachments?: unknown[];
|
|
14
|
+
}): {
|
|
13
15
|
resolveAttachments: (files: AIEmployeeInstructionFiles[]) => Promise<void>;
|
|
14
16
|
resolveFileIds: (files: AIEmployeeInstructionFiles[]) => Promise<void>;
|
|
15
17
|
resolveUrls: (files: AIEmployeeInstructionFiles[]) => Promise<void>;
|
|
@@ -45,10 +45,25 @@ var import_node_path = __toESM(require("node:path"));
|
|
|
45
45
|
var import_lodash = __toESM(require("lodash"));
|
|
46
46
|
var import_axios = __toESM(require("axios"));
|
|
47
47
|
var import_utils = require("../../utils");
|
|
48
|
+
var import_attachments = require("../../../attachments");
|
|
49
|
+
function appendSource(record, source) {
|
|
50
|
+
if (!record || typeof record !== "object" || Array.isArray(record)) {
|
|
51
|
+
return record;
|
|
52
|
+
}
|
|
53
|
+
return {
|
|
54
|
+
...record,
|
|
55
|
+
source
|
|
56
|
+
};
|
|
57
|
+
}
|
|
48
58
|
class Files {
|
|
49
59
|
static resolvers(plugin, attachmentPart) {
|
|
50
60
|
const resolveAttachments = async (files) => {
|
|
51
|
-
const attachments = files.filter((it) => it.type === "attachments").flatMap((it) => import_lodash.default.isArray(it.value) ? it.value : [it.value])
|
|
61
|
+
const attachments = files.filter((it) => it.type === "attachments").flatMap((it) => import_lodash.default.isArray(it.value) ? it.value : [it.value]).map(
|
|
62
|
+
(attachment) => appendSource(attachment, {
|
|
63
|
+
...(0, import_attachments.getAttachmentSource)(attachment) ?? {},
|
|
64
|
+
trustworthy: true
|
|
65
|
+
})
|
|
66
|
+
);
|
|
52
67
|
if (attachments.length) {
|
|
53
68
|
attachmentPart.attachments = [...attachmentPart.attachments ?? [], ...attachments];
|
|
54
69
|
}
|
|
@@ -78,7 +93,13 @@ class Files {
|
|
|
78
93
|
}
|
|
79
94
|
attachmentPart.attachments = [
|
|
80
95
|
...attachmentPart.attachments ?? [],
|
|
81
|
-
...attachmentModels.map(
|
|
96
|
+
...attachmentModels.map(
|
|
97
|
+
(it) => appendSource(it.toJSON(), {
|
|
98
|
+
dataSourceKey: "main",
|
|
99
|
+
collectionName: collection,
|
|
100
|
+
trustworthy: true
|
|
101
|
+
})
|
|
102
|
+
)
|
|
82
103
|
];
|
|
83
104
|
}
|
|
84
105
|
}
|
|
@@ -106,14 +127,19 @@ class Files {
|
|
|
106
127
|
filePath: tempFilePath,
|
|
107
128
|
storageName,
|
|
108
129
|
values: {
|
|
109
|
-
|
|
130
|
+
title: fileIdentity.title,
|
|
110
131
|
mimetype: contentType,
|
|
111
132
|
meta: {
|
|
112
|
-
sourceUrl: url
|
|
133
|
+
sourceUrl: url,
|
|
134
|
+
originalFilename: fileIdentity.filename
|
|
113
135
|
}
|
|
114
136
|
}
|
|
115
137
|
});
|
|
116
|
-
return created.toJSON()
|
|
138
|
+
return appendSource(created.toJSON(), {
|
|
139
|
+
dataSourceKey: "main",
|
|
140
|
+
collectionName: "aiFiles",
|
|
141
|
+
trustworthy: true
|
|
142
|
+
});
|
|
117
143
|
} finally {
|
|
118
144
|
await import_promises.default.rm(tempFilePath, { force: true });
|
|
119
145
|
}
|