@nocobase/plugin-ai 2.2.0-beta.8 → 2.2.0
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-dev/watermark-plugin.md +2 -0
- package/dist/ai/docs/nocobase/ai-employees/block/ai-chat-box.md +133 -0
- package/dist/ai/docs/nocobase/ai-employees/knowledge-base/knowledge-base/documents.md +1 -1
- package/dist/ai/docs/nocobase/ai-employees/knowledge-base/knowledge-base/index.md +11 -7
- package/dist/ai/docs/nocobase/ai-employees/knowledge-base/knowledge-base/settings.md +12 -8
- package/dist/ai/docs/nocobase/ai-employees/knowledge-base/rag.md +43 -13
- package/dist/ai/docs/nocobase/ai-employees/knowledge-base/vector-database.md +3 -3
- package/dist/ai/docs/nocobase/ai-employees/scenarios/company-background-research.md +125 -0
- package/dist/ai/docs/nocobase/ai-employees/workflow/nodes/knowledge/create-document.md +1 -1
- package/dist/ai/docs/nocobase/api/app/env.md +30 -1
- package/dist/ai/docs/nocobase/api/cli/api/resource/create.md +4 -3
- 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/ai-fill-js-block-form.md +1092 -0
- package/dist/ai/docs/nocobase/building-tips/operations-dashboard.md +513 -0
- package/dist/ai/docs/nocobase/data-sources/calendar/calendar-collection.md +100 -3
- package/dist/ai/docs/nocobase/data-sources/collection-comment/index.md +92 -39
- package/dist/ai/docs/nocobase/data-sources/collection-sql/index.md +150 -29
- package/dist/ai/docs/nocobase/data-sources/collection-tree/index.md +93 -5
- package/dist/ai/docs/nocobase/data-sources/collection-view/index.md +226 -4
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/advanced/china-region.md +122 -5
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/advanced/collection-select.md +105 -4
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/advanced/json.md +102 -4
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/advanced/nano-id.md +104 -4
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/advanced/snowflake-id.md +108 -4
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/advanced/sort.md +3 -19
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/advanced/uuid.md +104 -4
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/associations/index.md +44 -8
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/basic/color.md +102 -4
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/basic/email.md +104 -4
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/basic/icon.md +102 -4
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/basic/input.md +112 -8
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/basic/integer.md +103 -4
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/basic/number.md +103 -4
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/basic/password.md +102 -4
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/basic/percent.md +104 -5
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/basic/phone.md +104 -4
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/basic/textarea.md +99 -8
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/basic/url.md +103 -4
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/choices/checkbox-group.md +105 -3
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/choices/checkbox.md +102 -4
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/choices/china-region.md +108 -5
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/choices/multiple-select.md +103 -5
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/choices/radio-group.md +106 -4
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/choices/select.md +103 -5
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/datetime/date.md +102 -4
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/datetime/datetime-without-tz.md +103 -5
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/datetime/datetime.md +103 -5
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/datetime/index.md +53 -47
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/datetime/time.md +102 -4
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/datetime/unix-timestamp.md +103 -5
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/geometric/circle.md +102 -4
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/geometric/line.md +103 -5
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/geometric/point.md +102 -4
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/geometric/polygon.md +102 -4
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/index.md +62 -16
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/media/markdown.md +104 -4
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/media/rich-text.md +105 -5
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/system-info/created-at.md +105 -5
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/system-info/created-by.md +103 -5
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/system-info/space.md +100 -6
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/system-info/table-oid.md +102 -4
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/system-info/updated-at.md +104 -5
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/system-info/updated-by.md +104 -6
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/validation.md +68 -58
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection.md +32 -13
- package/dist/ai/docs/nocobase/data-sources/data-modeling/index.md +41 -33
- package/dist/ai/docs/nocobase/data-sources/data-source-external-mariadb/index.md +114 -6
- package/dist/ai/docs/nocobase/data-sources/data-source-external-mssql/index.md +117 -6
- package/dist/ai/docs/nocobase/data-sources/data-source-external-mysql/index.md +103 -6
- package/dist/ai/docs/nocobase/data-sources/data-source-external-nocobase/index.md +75 -73
- package/dist/ai/docs/nocobase/data-sources/data-source-external-oracle/index.md +129 -11
- package/dist/ai/docs/nocobase/data-sources/data-source-external-postgres/index.md +110 -6
- package/dist/ai/docs/nocobase/data-sources/data-source-kingbase/index.md +75 -49
- package/dist/ai/docs/nocobase/data-sources/data-source-main/general-collection.md +116 -15
- package/dist/ai/docs/nocobase/data-sources/data-source-main/index.md +92 -62
- package/dist/ai/docs/nocobase/data-sources/data-source-main/inheritance-collection.md +97 -10
- package/dist/ai/docs/nocobase/data-sources/data-source-manager/external-database.md +97 -58
- package/dist/ai/docs/nocobase/data-sources/data-source-manager/index.md +32 -24
- package/dist/ai/docs/nocobase/data-sources/data-source-rest-api/index.md +115 -153
- package/dist/ai/docs/nocobase/data-sources/external/clickhouse.md +124 -0
- package/dist/ai/docs/nocobase/data-sources/external/doris.md +130 -0
- package/dist/ai/docs/nocobase/data-sources/external/index.md +140 -0
- package/dist/ai/docs/nocobase/data-sources/external/kingbase.md +129 -0
- package/dist/ai/docs/nocobase/data-sources/external/mariadb.md +126 -0
- package/dist/ai/docs/nocobase/data-sources/external/mssql.md +129 -0
- package/dist/ai/docs/nocobase/data-sources/external/mysql.md +115 -0
- package/dist/ai/docs/nocobase/data-sources/external/nocobase.md +159 -0
- package/dist/ai/docs/nocobase/data-sources/external/oceanbase.md +126 -0
- package/dist/ai/docs/nocobase/data-sources/external/oracle.md +158 -0
- package/dist/ai/docs/nocobase/data-sources/external/postgresql.md +122 -0
- package/dist/ai/docs/nocobase/data-sources/external/rest-api.md +245 -0
- package/dist/ai/docs/nocobase/data-sources/field-attachment-url/index.md +100 -12
- package/dist/ai/docs/nocobase/data-sources/field-encryption/index.md +48 -47
- package/dist/ai/docs/nocobase/data-sources/field-formula/index.md +99 -5
- package/dist/ai/docs/nocobase/data-sources/field-markdown-vditor/index.md +105 -5
- package/dist/ai/docs/nocobase/data-sources/field-sequence/index.md +102 -5
- package/dist/ai/docs/nocobase/data-sources/field-signature/index.md +18 -16
- package/dist/ai/docs/nocobase/data-sources/field-sort/index.md +76 -73
- package/dist/ai/docs/nocobase/data-sources/file-manager/field-attachment.md +101 -7
- package/dist/ai/docs/nocobase/data-sources/file-manager/file-collection.md +101 -14
- package/dist/ai/docs/nocobase/data-sources/index.md +49 -33
- package/dist/ai/docs/nocobase/data-sources/main/index.md +130 -0
- package/dist/ai/docs/nocobase/data-sources/main/kingbase.md +147 -0
- package/dist/ai/docs/nocobase/data-sources/main/mariadb.md +59 -0
- package/dist/ai/docs/nocobase/data-sources/main/mysql.md +59 -0
- package/dist/ai/docs/nocobase/data-sources/main/oceanbase.md +62 -0
- package/dist/ai/docs/nocobase/data-sources/main/postgresql.md +61 -0
- package/dist/ai/docs/nocobase/file-manager/field-attachment.md +6 -0
- package/dist/ai/docs/nocobase/file-manager/file-preview/index.md +44 -12
- package/dist/ai/docs/nocobase/file-manager/stable-url.md +87 -0
- package/dist/ai/docs/nocobase/file-manager/storage/aliyun-oss.md +108 -2
- package/dist/ai/docs/nocobase/file-manager/storage/amazon-s3.md +9 -0
- package/dist/ai/docs/nocobase/file-manager/storage/index.md +66 -3
- 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/s3-pro.md +58 -7
- 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/migration-manager/built-in-tables.md +1 -2
- package/dist/ai/docs/nocobase/ops-management/version-control/index.md +1 -0
- package/dist/ai/docs/nocobase/plugin-development/build.md +10 -4
- package/dist/ai/docs/nocobase/plugin-development/client/appendix/faq.md +1 -1
- package/dist/ai/docs/nocobase/plugin-development/client/examples/custom-action.md +2 -0
- package/dist/ai/docs/nocobase/plugin-development/client/examples/custom-block.md +2 -0
- package/dist/ai/docs/nocobase/plugin-development/client/examples/custom-field.md +2 -0
- package/dist/ai/docs/nocobase/plugin-development/client/examples/fullstack-plugin.md +2 -0
- package/dist/ai/docs/nocobase/plugin-development/client/examples/settings-page.md +2 -0
- package/dist/ai/docs/nocobase/plugin-development/common/i18n.md +3 -3
- package/dist/ai/docs/nocobase/plugin-development/server/cache.md +1 -1
- package/dist/ai/docs/nocobase/plugin-development/server/collections.md +0 -6
- package/dist/ai/docs/nocobase/plugin-development/server/command.md +2 -2
- package/dist/ai/docs/nocobase/plugin-development/server/context.md +2 -2
- package/dist/ai/docs/nocobase/plugin-development/server/i18n.md +4 -4
- package/dist/ai/docs/nocobase/plugin-development/write-your-first-plugin.md +91 -43
- package/dist/ai/docs/nocobase/plugins/@nocobase/plugin-block-comment/index.md +14 -0
- package/dist/ai/docs/nocobase/runjs/context/ai.md +396 -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/users-permissions/sync/index.md +8 -1
- package/dist/ai/docs/nocobase/users-permissions/sync/sources/dingtalk.md +138 -0
- package/dist/ai/docs/nocobase/users-permissions/sync/sources/ldap.md +87 -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/javascript.md +21 -1
- 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/getSkill.js +1 -1
- package/dist/ai/tools/knowledge-base-retrieve.js +3 -1
- 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/244.28ee769f796b7c2f.js +10 -0
- package/dist/client/264.cc98933ef65608b6.js +10 -0
- package/dist/client/336.7a8a8853196ad779.js +11 -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.6ffbc9329b9ac242.js +10 -0
- package/dist/client/705.a4fe26945d175e8a.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 +13 -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/244.39348a95d627d9e3.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/416.0e1c2d9cde43b83d.js +10 -0
- package/dist/client-v2/420.a5b929a5e7f330be.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.6890caa389564ff7.js +10 -0
- package/dist/client-v2/705.f2e1b26a3f000075.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 +11 -2
- package/dist/{client → client-v2}/ai-employees/AddContextButton.d.ts +3 -1
- package/dist/{client → client-v2}/ai-employees/ai-coding/AICodingButton.d.ts +2 -1
- package/dist/{client/ai-employees/chatbox/AIEmployeeSwitch.d.ts → client-v2/ai-employees/chatbox/components/AIEmployeeSwitcher.d.ts} +1 -0
- 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/markdown/Code.d.ts → client-v2/ai-employees/chatbox/components/ChatBoxUnreadBadge.d.ts} +6 -7
- package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/ContextItem.d.ts +1 -1
- package/dist/client-v2/ai-employees/chatbox/components/Conversations.d.ts +18 -0
- package/dist/{client/ai-employees/ai-coding/markdown/Code.d.ts → client-v2/ai-employees/chatbox/components/Markdown.d.ts} +12 -3
- package/dist/{client/ai-employees/1.x/selector/BlockSelector.d.ts → client-v2/ai-employees/chatbox/components/MessageContent.d.ts} +3 -4
- package/dist/client-v2/ai-employees/chatbox/components/MessageRenderers.d.ts +39 -0
- package/dist/{client/ai-employees/admin/datasource/components/DatasourceSettingDetail.d.ts → client-v2/ai-employees/chatbox/components/Messages.d.ts} +4 -4
- package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/ModelSwitcher.d.ts +4 -0
- package/dist/client-v2/ai-employees/chatbox/components/Sender.d.ts +42 -0
- package/dist/{client/ai-employees/chatbox/generative-ui → client-v2/ai-employees/chatbox/components}/ToolCard.d.ts +7 -5
- package/dist/client-v2/ai-employees/chatbox/components/index.d.ts +14 -0
- package/dist/client-v2/ai-employees/chatbox/hooks/reasoning-stream.d.ts +10 -0
- package/dist/{client → client-v2}/ai-employees/chatbox/hooks/useChat.d.ts +29 -27
- package/dist/client-v2/ai-employees/chatbox/hooks/useChatBoxActions.d.ts +5 -3
- package/dist/{client → client-v2}/ai-employees/chatbox/hooks/useChatBoxEffect.d.ts +2 -1
- package/dist/{client → client-v2}/ai-employees/chatbox/hooks/useChatConversationActions.d.ts +5 -4
- package/dist/{client → client-v2}/ai-employees/chatbox/hooks/useChatMessageActions.d.ts +12 -6
- package/dist/{client → client-v2}/ai-employees/chatbox/hooks/useToolCallActions.d.ts +4 -2
- package/dist/client-v2/ai-employees/chatbox/hooks/useUploadFiles.d.ts +56 -0
- package/dist/{client → client-v2}/ai-employees/chatbox/hooks/useWorkflowTasks.d.ts +4 -3
- package/dist/client-v2/ai-employees/chatbox/index.d.ts +17 -0
- package/dist/{client → client-v2}/ai-employees/chatbox/model.d.ts +9 -2
- package/dist/client-v2/ai-employees/chatbox/roles.d.ts +11 -0
- package/dist/client-v2/ai-employees/chatbox/stores/chat-box.d.ts +46 -81
- package/dist/client-v2/ai-employees/chatbox/stores/chat-conversations.d.ts +8 -25
- package/dist/client-v2/ai-employees/chatbox/stores/chat-messages.d.ts +23 -63
- package/dist/client-v2/ai-employees/chatbox/stores/chat-sender.d.ts +43 -0
- package/dist/{client → client-v2}/ai-employees/chatbox/stores/chat-tool-call.d.ts +6 -19
- package/dist/client-v2/ai-employees/chatbox/stores/chat-tools.d.ts +36 -0
- package/dist/client-v2/ai-employees/chatbox/stores/mounted-chat-boxes.d.ts +20 -0
- package/dist/client-v2/ai-employees/chatbox/stores/runtime.d.ts +43 -0
- package/dist/client-v2/ai-employees/chatbox/stores/workflow-tasks.d.ts +72 -0
- package/dist/client-v2/ai-employees/chatbox/upload.d.ts +19 -0
- package/dist/client-v2/ai-employees/chatbox/utils.d.ts +85 -0
- 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-v2/ai-employees/data-modeling/setup.d.ts +15 -0
- 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-v2/ai-employees/tools/SuggestionsOptionsCard.d.ts +16 -0
- package/dist/client-v2/ai-employees/tools/WorkflowTaskOutputCard.d.ts +16 -0
- 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 +131 -7
- package/dist/client-v2/block/ai-chat-box/AIChatBoxBlockModel.d.ts +21 -0
- package/dist/{client/workflow/nodes/employee/flow-models/task.d.ts → client-v2/block/ai-chat-box/AIChatBoxCoreModel.d.ts} +1 -1
- package/dist/{client/admin-settings/AdminSettings.d.ts → client-v2/block/ai-chat-box/components/AIChatBoxCoreView.d.ts} +1 -1
- package/dist/{client/ai-employees/AIEmployeeListItem.d.ts → client-v2/block/ai-chat-box/components/AIChatBoxView.d.ts} +3 -5
- package/dist/client-v2/block/ai-chat-box/index.d.ts +14 -0
- package/dist/client-v2/block/ai-chat-box/settings.d.ts +12 -0
- package/dist/client-v2/block/ai-chat-box/sub-models.d.ts +26 -0
- package/dist/client-v2/block/ai-chat-box/types.d.ts +38 -0
- package/dist/client-v2/block/ai-chat-box/utils.d.ts +26 -0
- package/dist/client-v2/components/RemoteSelect.d.ts +43 -0
- package/dist/client-v2/f0053e745af0ad03.svg +50 -0
- package/dist/client-v2/index.d.ts +11 -13
- package/dist/client-v2/index.js +37 -1
- package/dist/client-v2/llm-providers/forms.d.ts +46 -0
- package/dist/client-v2/llm-providers/index.d.ts +25 -0
- package/dist/client-v2/llm-services/model-select.d.ts +33 -0
- package/dist/client-v2/llm-services/utils.d.ts +14 -0
- package/dist/client-v2/locale.d.ts +14 -0
- package/dist/client-v2/manager/ai-manager.d.ts +62 -0
- package/dist/client-v2/manager/frontend-tool-registry.d.ts +30 -0
- package/dist/client-v2/models/ai-employees/AIEmployeeActionModel.d.ts +36 -0
- package/dist/client-v2/models/ai-employees/AIEmployeeShortcutModel.d.ts +52 -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 +74 -0
- package/dist/client-v2/pages/LLMServicesPage.d.ts +80 -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 +5 -23
- package/dist/client-v2/runjs/registerAIEmployeeRunJSFacade.d.ts +21 -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/ai-employees/AISettingsProvider.d.ts → client-v2/workflow/nodes/employee/components/WebSearchOptions.d.ts} +6 -8
- package/dist/client-v2/workflow/nodes/employee/index.d.ts +23 -0
- package/dist/client-v2/workflow/nodes/llm/components/LLMFieldset.d.ts +12 -0
- package/dist/{client/ai-employees/chatbox → 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-v2/workflow/register.d.ts +10 -0
- 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/collections/ai-employees.d.ts +1 -0
- package/dist/collections/ai-employees.js +1 -0
- package/dist/common/ai-employee-validation.d.ts +15 -0
- package/dist/common/ai-employee-validation.js +61 -0
- package/dist/common/error-codes.d.ts +13 -0
- package/dist/common/error-codes.js +48 -0
- package/dist/common/frontend-tools.d.ts +26 -0
- package/dist/common/frontend-tools.js +57 -0
- package/dist/common/llm-service-models.d.ts +16 -0
- package/dist/common/llm-service-models.js +84 -0
- package/dist/externalVersion.js +23 -26
- package/dist/locale/de-DE.json +2 -1
- package/dist/locale/en-US.json +130 -1
- package/dist/locale/es-ES.json +2 -1
- package/dist/locale/fr-FR.json +2 -1
- package/dist/locale/hu-HU.json +2 -1
- package/dist/locale/id-ID.json +2 -1
- package/dist/locale/it-IT.json +2 -1
- package/dist/locale/ja-JP.json +2 -1
- package/dist/locale/ko-KR.json +2 -1
- package/dist/locale/nl-NL.json +2 -1
- package/dist/locale/pt-BR.json +2 -1
- package/dist/locale/ru-RU.json +2 -1
- package/dist/locale/tr-TR.json +2 -1
- package/dist/locale/uk-UA.json +2 -1
- package/dist/locale/vi-VN.json +2 -1
- package/dist/locale/zh-CN.json +130 -1
- package/dist/locale/zh-TW.json +2 -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-conversations.d.ts +4 -1
- package/dist/server/ai-employees/ai-conversations.js +2 -0
- package/dist/server/ai-employees/ai-employee.d.ts +5 -1
- package/dist/server/ai-employees/ai-employee.js +156 -54
- package/dist/server/ai-employees/ai-knowledge-base.d.ts +21 -1
- package/dist/server/ai-employees/ai-knowledge-base.js +76 -8
- 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 +11 -3
- package/dist/server/ai-employees/prompts.d.ts +2 -1
- package/dist/server/ai-employees/prompts.js +8 -2
- package/dist/server/ai-employees/reasoning-stream-state.d.ts +23 -0
- package/dist/server/ai-employees/reasoning-stream-state.js +63 -0
- 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-conversations.js +5 -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/constants.js +1 -1
- 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/features/knowledge-base.d.ts +2 -0
- package/dist/server/frontend-tools.d.ts +25 -0
- package/dist/server/frontend-tools.js +171 -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/common/reasoning.js +18 -10
- package/dist/server/llm-providers/dashscope.d.ts +2 -1
- package/dist/server/llm-providers/dashscope.js +16 -1
- package/dist/{client/ai-employees/datasource → server/llm-providers/deepseek}/index.d.ts +2 -1
- package/dist/server/llm-providers/deepseek/index.js +32 -0
- package/dist/server/llm-providers/deepseek/provider.d.ts +57 -0
- package/dist/server/llm-providers/deepseek/provider.js +320 -0
- package/dist/server/llm-providers/deepseek/reasoning.d.ts +83 -0
- package/dist/server/llm-providers/deepseek/reasoning.js +285 -0
- 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/{deepseek.js → orcarouter.js} +68 -56
- package/dist/server/llm-providers/provider.d.ts +17 -4
- package/dist/server/llm-providers/provider.js +63 -18
- package/dist/server/llm-providers/shengsuanyun.d.ts +29 -0
- package/dist/server/llm-providers/shengsuanyun.js +114 -0
- 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-feature-manager.js +1 -1
- package/dist/server/manager/ai-manager.d.ts +5 -1
- package/dist/server/manager/ai-manager.js +11 -3
- 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/migrations/20260501000000-ai-employee-knowledge-base-retrieval-strategy.d.ts +14 -0
- package/dist/server/migrations/20260501000000-ai-employee-knowledge-base-retrieval-strategy.js +49 -0
- package/dist/server/plugin.d.ts +1 -0
- package/dist/server/plugin.js +49 -0
- package/dist/server/resource/aiConversations.d.ts +2 -0
- package/dist/server/resource/aiConversations.js +77 -4
- package/dist/server/resource/aiEmployees.d.ts +2 -0
- package/dist/server/resource/aiEmployees.js +70 -0
- package/dist/server/resource/aiWorkflowTasks.js +9 -1
- package/dist/server/resource/llmServices.d.ts +11 -0
- package/dist/server/resource/llmServices.js +85 -0
- package/dist/server/types/ai-message.type.d.ts +4 -0
- package/dist/server/types/knowledge-base.type.d.ts +8 -3
- 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/dist/swagger/common.d.ts +143 -0
- package/dist/swagger/common.js +144 -0
- package/dist/swagger/employees.d.ts +301 -0
- package/dist/swagger/employees.js +131 -0
- package/dist/swagger/index.d.ts +1617 -0
- package/dist/swagger/index.js +62 -0
- package/dist/swagger/llm.d.ts +563 -0
- package/dist/swagger/llm.js +255 -0
- package/dist/swagger/schemas.d.ts +757 -0
- package/dist/swagger/schemas.js +392 -0
- package/package.json +6 -5
- package/dist/ai/docs/nocobase/ai-employees/knowledge-base/vector-store.md +0 -24
- package/dist/ai/docs/nocobase/data-sources/development/index.md +0 -6
- 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/Employees.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/ProfileSettings.d.ts +0 -12
- 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/basic/index.d.ts +0 -10
- 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/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/Sender.d.ts +0 -10
- 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/Conversations.d.ts +0 -10
- 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/common.d.ts +0 -43
- 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/chatbox/utils.d.ts +0 -41
- 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/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/ai-employees/workflow-tasks/ui/WorkflowTaskOutputCard.d.ts +0 -11
- 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/debug-logger.d.ts +0 -52
- 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/llm/ModelSettings.d.ts +0 -11
- package/dist/client/workflow/triggers/ai-employee/Parameters.d.ts +0 -13
- package/dist/client-v2/ai-employees/chatbox/stores/create-selectors.d.ts +0 -18
- package/dist/client-v2/ai-employees/flow/models/AIEmployeeButtonModel.d.ts +0 -32
- package/dist/server/llm-providers/deepseek.d.ts +0 -39
- /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 → client-v2/ai-employees/chatbox/components}/ChatButton.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/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/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
|
@@ -45,6 +45,7 @@ var import_utils = require("../utils");
|
|
|
45
45
|
var import_prompts = require("./prompts");
|
|
46
46
|
var import_lodash = __toESM(require("lodash"));
|
|
47
47
|
var import_ai_chat_conversation = require("../manager/ai-chat-conversation");
|
|
48
|
+
var import_ai_knowledge_base = require("./ai-knowledge-base");
|
|
48
49
|
var import_middleware = require("./middleware");
|
|
49
50
|
var import_ai = require("@nocobase/ai");
|
|
50
51
|
var import_checkpoints = require("./checkpoints");
|
|
@@ -55,12 +56,17 @@ var import_utils2 = require("./utils");
|
|
|
55
56
|
var import_base = require("@langchain/core/callbacks/base");
|
|
56
57
|
var import_shared = require("../../ai/tools/sub-agents/shared");
|
|
57
58
|
var import_tool_call_sanitizer = require("./tool-call-sanitizer");
|
|
59
|
+
var import_attachments = require("../attachments");
|
|
60
|
+
var import_frontend_tools = require("../../common/frontend-tools");
|
|
61
|
+
var import_frontend_tools2 = require("../frontend-tools");
|
|
62
|
+
var import_reasoning_stream_state = require("./reasoning-stream-state");
|
|
58
63
|
class AIEmployee {
|
|
59
64
|
sessionId;
|
|
60
65
|
from = "main-agent";
|
|
61
66
|
employee;
|
|
62
67
|
aiChatConversation;
|
|
63
68
|
skillSettings;
|
|
69
|
+
userMessageCount = 0;
|
|
64
70
|
plugin;
|
|
65
71
|
db;
|
|
66
72
|
ctx;
|
|
@@ -121,6 +127,9 @@ class AIEmployee {
|
|
|
121
127
|
areToolsEnabled() {
|
|
122
128
|
return this.chatSettings.enableTools !== false;
|
|
123
129
|
}
|
|
130
|
+
getAIEmployeeRecord() {
|
|
131
|
+
return this.employee.toJSON();
|
|
132
|
+
}
|
|
124
133
|
async getFormatMessages(userMessages) {
|
|
125
134
|
const { provider } = await this.plugin.aiManager.getLLMService({
|
|
126
135
|
...this.model
|
|
@@ -141,7 +150,12 @@ class AIEmployee {
|
|
|
141
150
|
}
|
|
142
151
|
// === Chat flow ===
|
|
143
152
|
buildState(messages) {
|
|
153
|
+
const toolCallMessage = messages.findLast((message) => {
|
|
154
|
+
var _a;
|
|
155
|
+
return (_a = message.toolCalls) == null ? void 0 : _a.length;
|
|
156
|
+
});
|
|
144
157
|
return {
|
|
158
|
+
messageId: toolCallMessage == null ? void 0 : toolCallMessage.messageId,
|
|
145
159
|
lastMessageIndex: {
|
|
146
160
|
lastHumanMessageIndex: messages.filter((m) => m.role === "user").length,
|
|
147
161
|
lastAIMessageIndex: messages.filter((m) => m.role === this.employee.username).length,
|
|
@@ -158,7 +172,7 @@ class AIEmployee {
|
|
|
158
172
|
historyMessages: [],
|
|
159
173
|
tools,
|
|
160
174
|
resolvedTools,
|
|
161
|
-
middleware: await this.getMiddleware({ tools, baseToolNames, model, providerName, llmService }),
|
|
175
|
+
middleware: await this.getMiddleware({ tools, baseToolNames, model, providerName, provider, llmService }),
|
|
162
176
|
config: void 0,
|
|
163
177
|
state: void 0
|
|
164
178
|
};
|
|
@@ -176,6 +190,7 @@ class AIEmployee {
|
|
|
176
190
|
baseToolNames,
|
|
177
191
|
model,
|
|
178
192
|
providerName,
|
|
193
|
+
provider,
|
|
179
194
|
llmService,
|
|
180
195
|
messageId,
|
|
181
196
|
agentThread
|
|
@@ -197,6 +212,7 @@ class AIEmployee {
|
|
|
197
212
|
const { provider, model, service } = await this.plugin.aiManager.getLLMService({
|
|
198
213
|
...this.model
|
|
199
214
|
});
|
|
215
|
+
this.userMessageCount = (userMessages ?? []).filter((message) => message.role === "user").length;
|
|
200
216
|
const { historyMessages, tools, resolvedTools, middleware, config, state } = await this.initSession({
|
|
201
217
|
messageId,
|
|
202
218
|
provider,
|
|
@@ -295,7 +311,7 @@ class AIEmployee {
|
|
|
295
311
|
const { threadId } = await this.getCurrentThread();
|
|
296
312
|
const invokeConfig = {
|
|
297
313
|
context: { ctx: this.ctx, decisions: chatContext.decisions, ...context },
|
|
298
|
-
recursionLimit:
|
|
314
|
+
recursionLimit: 200,
|
|
299
315
|
configurable: this.from === "main-agent" ? { thread_id: threadId } : void 0,
|
|
300
316
|
writer,
|
|
301
317
|
signal,
|
|
@@ -389,7 +405,7 @@ class AIEmployee {
|
|
|
389
405
|
streamMode: ["updates", "messages", "custom"],
|
|
390
406
|
configurable: this.from === "main-agent" ? { thread_id: threadId } : void 0,
|
|
391
407
|
context: { ctx: this.ctx, decisions: chatContext.decisions },
|
|
392
|
-
recursionLimit:
|
|
408
|
+
recursionLimit: 200,
|
|
393
409
|
...config
|
|
394
410
|
},
|
|
395
411
|
state
|
|
@@ -404,14 +420,26 @@ class AIEmployee {
|
|
|
404
420
|
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z;
|
|
405
421
|
const aiMessageIdMap = /* @__PURE__ */ new Map();
|
|
406
422
|
const { signal, providerName, llmService, model, provider, responseMetadata, allowEmpty = false } = options;
|
|
407
|
-
|
|
423
|
+
const reasoningState = new import_reasoning_stream_state.ReasoningStreamState();
|
|
424
|
+
const stopReasoning = async (conversation) => {
|
|
425
|
+
if (reasoningState.stop(conversation)) {
|
|
426
|
+
await this.protocol.with(conversation).stopReasoning();
|
|
427
|
+
}
|
|
428
|
+
};
|
|
429
|
+
const stopAllReasoning = async () => {
|
|
430
|
+
for (const conversation of reasoningState.drain()) {
|
|
431
|
+
await this.protocol.with(conversation).stopReasoning();
|
|
432
|
+
}
|
|
433
|
+
};
|
|
408
434
|
let gathered;
|
|
409
435
|
signal.addEventListener("abort", async () => {
|
|
410
436
|
try {
|
|
437
|
+
await stopAllReasoning();
|
|
411
438
|
if ((gathered == null ? void 0 : gathered.type) === "ai") {
|
|
412
439
|
const values = (0, import_utils2.convertAIMessage)({
|
|
413
440
|
aiEmployee: this,
|
|
414
441
|
providerName,
|
|
442
|
+
provider,
|
|
415
443
|
llmService,
|
|
416
444
|
model,
|
|
417
445
|
aiMessage: gathered
|
|
@@ -448,27 +476,27 @@ class AIEmployee {
|
|
|
448
476
|
const { currentConversation } = metadata;
|
|
449
477
|
if (chunk.type === "ai") {
|
|
450
478
|
gathered = gathered !== void 0 ? (0, import_stream.concat)(gathered, chunk) : chunk;
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
479
|
+
const reasoningContent = provider.parseReasoningContent(chunk);
|
|
480
|
+
if (reasoningContent) {
|
|
481
|
+
reasoningState.start(currentConversation);
|
|
482
|
+
await this.protocol.with(currentConversation).reasoning(reasoningContent);
|
|
483
|
+
}
|
|
484
|
+
const parsedContent = chunk.content ? provider.parseResponseChunk(chunk.content) : null;
|
|
485
|
+
if (parsedContent) {
|
|
486
|
+
await stopReasoning(currentConversation);
|
|
487
|
+
await this.protocol.with(currentConversation).content(parsedContent);
|
|
460
488
|
}
|
|
461
489
|
if ((_a = chunk.tool_call_chunks) == null ? void 0 : _a.length) {
|
|
490
|
+
await stopReasoning(currentConversation);
|
|
462
491
|
await this.protocol.with(currentConversation).toolCallChunks(chunk.tool_call_chunks);
|
|
463
492
|
}
|
|
464
493
|
const webSearch = provider.parseWebSearchAction(chunk);
|
|
465
494
|
if (webSearch == null ? void 0 : webSearch.length) {
|
|
495
|
+
await stopReasoning(currentConversation);
|
|
466
496
|
await this.protocol.with(currentConversation).webSearch(webSearch);
|
|
467
497
|
}
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
isReasoning = true;
|
|
471
|
-
await this.protocol.with(currentConversation).reasoning(reasoningContent);
|
|
498
|
+
if ((0, import_reasoning_stream_state.isReasoningFinishChunk)(chunk)) {
|
|
499
|
+
await stopReasoning(currentConversation);
|
|
472
500
|
}
|
|
473
501
|
}
|
|
474
502
|
} else if (mode === "updates") {
|
|
@@ -524,6 +552,7 @@ class AIEmployee {
|
|
|
524
552
|
}
|
|
525
553
|
}
|
|
526
554
|
} else if (chunks.action === "initToolCalls") {
|
|
555
|
+
await stopReasoning(currentConversation);
|
|
527
556
|
await this.protocol.with(currentConversation).toolCalls(chunks.body);
|
|
528
557
|
} else if (chunks.action === "beforeToolCall") {
|
|
529
558
|
const toolsMap = await this.getToolsMap();
|
|
@@ -585,12 +614,14 @@ class AIEmployee {
|
|
|
585
614
|
}
|
|
586
615
|
}
|
|
587
616
|
}
|
|
617
|
+
await stopAllReasoning();
|
|
588
618
|
if (this.protocol.statistics.sent === 0 && !signal.aborted && !allowEmpty) {
|
|
589
619
|
this.sendErrorResponse("Empty message");
|
|
590
620
|
return;
|
|
591
621
|
}
|
|
592
622
|
await this.protocol.with(aiEmployeeConversation).endStream();
|
|
593
623
|
} catch (err) {
|
|
624
|
+
await stopAllReasoning();
|
|
594
625
|
this.ctx.log.error(err);
|
|
595
626
|
if (err.name === "GraphRecursionError") {
|
|
596
627
|
this.sendSpecificError({ name: err.name, message: err.message });
|
|
@@ -679,7 +710,7 @@ Field: ${field.name}, Title: ${(_a = field.options.uiSchema) == null ? void 0 :
|
|
|
679
710
|
return message;
|
|
680
711
|
}
|
|
681
712
|
async getSystemPrompt(userMessages) {
|
|
682
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
713
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
683
714
|
if (this.systemPromptMode === "none") {
|
|
684
715
|
return "";
|
|
685
716
|
}
|
|
@@ -687,9 +718,16 @@ Field: ${field.name}, Title: ${(_a = field.options.uiSchema) == null ? void 0 :
|
|
|
687
718
|
if (this.systemPromptMode === "raw") {
|
|
688
719
|
return about;
|
|
689
720
|
}
|
|
721
|
+
const employee = this.getAIEmployeeRecord();
|
|
722
|
+
const knowledgeBaseManager = this.plugin.knowledgeBaseManager;
|
|
723
|
+
const knowledgeBaseEnabled = await knowledgeBaseManager.isEnabledKnowledgeBase(employee);
|
|
724
|
+
const roleNames = (0, import_ai_knowledge_base.getCurrentRoleNames)(this.ctx.state);
|
|
725
|
+
const hasAccessibleKnowledgeBase = knowledgeBaseEnabled ? await knowledgeBaseManager.hasAccessibleKnowledgeBase({ employee, roleNames }) : false;
|
|
726
|
+
const knowledgeBaseAccessDenied = knowledgeBaseEnabled && !hasAccessibleKnowledgeBase;
|
|
727
|
+
const knowledgeBaseOnDemand = knowledgeBaseEnabled && hasAccessibleKnowledgeBase && (0, import_ai_knowledge_base.normalizeKnowledgeBaseRetrievalStrategy)((_a = employee.knowledgeBase) == null ? void 0 : _a.retrievalStrategy) === "onDemand";
|
|
690
728
|
const userConfig = await this.db.getRepository("usersAiEmployees").findOne({
|
|
691
729
|
filter: {
|
|
692
|
-
userId: ((
|
|
730
|
+
userId: ((_b = this.ctx.auth) == null ? void 0 : _b.user.id) ?? 0,
|
|
693
731
|
aiEmployee: this.employee.username
|
|
694
732
|
}
|
|
695
733
|
});
|
|
@@ -714,17 +752,25 @@ ${workContextBackground.join("\n")}`;
|
|
|
714
752
|
${addSystemPrompt.map((it) => it.content).join("\n")}`;
|
|
715
753
|
}
|
|
716
754
|
let knowledgeBase;
|
|
717
|
-
|
|
718
|
-
const employee = this.employee.toJSON();
|
|
719
|
-
if (await knowledgeBaseManager.isEnabledKnowledgeBase(employee) && employee.knowledgeBasePrompt && (userMessages == null ? void 0 : userMessages.length)) {
|
|
755
|
+
if (knowledgeBaseEnabled && hasAccessibleKnowledgeBase && !knowledgeBaseOnDemand && (userMessages == null ? void 0 : userMessages.length)) {
|
|
720
756
|
const lastUserMessage = userMessages.filter((x) => x.role === "user").at(-1);
|
|
721
757
|
if (lastUserMessage) {
|
|
722
758
|
knowledgeBase = await knowledgeBaseManager.retrievePrompt({
|
|
723
759
|
employee,
|
|
724
|
-
query: lastUserMessage.content.content
|
|
760
|
+
query: lastUserMessage.content.content,
|
|
761
|
+
roleNames
|
|
725
762
|
});
|
|
726
763
|
}
|
|
727
764
|
}
|
|
765
|
+
const knowledgeBaseBackgroundPrompt = (0, import_ai_knowledge_base.getKnowledgeBaseBackgroundPrompt)({
|
|
766
|
+
accessDenied: knowledgeBaseAccessDenied,
|
|
767
|
+
onDemand: knowledgeBaseOnDemand,
|
|
768
|
+
preRetrieved: Boolean(knowledgeBase)
|
|
769
|
+
});
|
|
770
|
+
if (knowledgeBaseBackgroundPrompt) {
|
|
771
|
+
background = `${background}
|
|
772
|
+
${knowledgeBaseBackgroundPrompt}`;
|
|
773
|
+
}
|
|
728
774
|
const availableSkills = await this.getAvailableSkills();
|
|
729
775
|
const availableAIEmployees = await this.getAvailableAIEmployees();
|
|
730
776
|
const systemPrompt = (0, import_prompts.getSystemPrompt)({
|
|
@@ -738,15 +784,16 @@ ${addSystemPrompt.map((it) => it.content).join("\n")}`;
|
|
|
738
784
|
personal: userConfig == null ? void 0 : userConfig.prompt,
|
|
739
785
|
environment: {
|
|
740
786
|
database: this.db.sequelize.getDialect(),
|
|
741
|
-
locale: ((
|
|
742
|
-
currentDateTime: getCurrentDateTimeForPrompt((
|
|
787
|
+
locale: ((_d = (_c = this.ctx).getCurrentLocale) == null ? void 0 : _d.call(_c)) || "en-US",
|
|
788
|
+
currentDateTime: getCurrentDateTimeForPrompt((_f = (_e = this.ctx).getCurrentLocale) == null ? void 0 : _f.call(_e), getCurrentTimezone(this.ctx)),
|
|
743
789
|
timezone: getCurrentTimezone(this.ctx)
|
|
744
790
|
},
|
|
745
791
|
knowledgeBase,
|
|
746
792
|
availableSkills,
|
|
747
|
-
availableAIEmployees
|
|
793
|
+
availableAIEmployees,
|
|
794
|
+
webSearch: this.webSearch
|
|
748
795
|
});
|
|
749
|
-
const { important } = ((
|
|
796
|
+
const { important } = ((_h = (_g = this.ctx.action) == null ? void 0 : _g.params) == null ? void 0 : _h.values) || {};
|
|
750
797
|
if (important === "GraphRecursionError") {
|
|
751
798
|
const importantPrompt = `<Important>You have already called tools multiple times and gathered sufficient information.
|
|
752
799
|
First, provide a summary based on the existing information. Do not call additional tools.
|
|
@@ -760,11 +807,12 @@ If information is missing, clearly state it in the summary.</Important>`;
|
|
|
760
807
|
async initToolCall(transaction, messageId, toolCalls) {
|
|
761
808
|
const nowTime = /* @__PURE__ */ new Date();
|
|
762
809
|
const toolMap = await this.getToolsMap();
|
|
810
|
+
const currentFrontendTools = toolCalls.some((toolCall) => toolCall.name === import_frontend_tools.EXECUTE_FRONTEND_TOOL_NAME) ? await (0, import_frontend_tools2.listCurrentFrontendTools)(this.ctx, this.sessionId) : [];
|
|
763
811
|
return await this.aiToolMessagesRepo.create({
|
|
764
812
|
values: toolCalls.map((toolCall) => {
|
|
765
813
|
const toolsExisted = toolMap.has(toolCall.name);
|
|
766
814
|
const tools = toolMap.get(toolCall.name);
|
|
767
|
-
const auto = this.isAutoCall(tools);
|
|
815
|
+
const auto = toolCall.name === import_frontend_tools.EXECUTE_FRONTEND_TOOL_NAME ? toolsExisted && (0, import_frontend_tools2.shouldAutoExecuteFrontendTool)(currentFrontendTools, toolCall.args) : this.isAutoCall(tools);
|
|
768
816
|
return {
|
|
769
817
|
id: this.plugin.snowflake.generate(),
|
|
770
818
|
sessionId: this.sessionId,
|
|
@@ -1017,15 +1065,43 @@ If information is missing, clearly state it in the summary.</Important>`;
|
|
|
1017
1065
|
const presetTools = employeeTools.find((s) => s.name === tools.definition.name);
|
|
1018
1066
|
return presetTools ? presetTools.autoCall : isAutoCall;
|
|
1019
1067
|
}
|
|
1068
|
+
async normalizeMessageAttachments(messages) {
|
|
1069
|
+
const attachments = messages.filter((message) => Array.isArray(message.attachments)).flatMap((message) => message.attachments);
|
|
1070
|
+
if (!attachments.length) {
|
|
1071
|
+
return messages;
|
|
1072
|
+
}
|
|
1073
|
+
const attachmentsByLookup = await (0, import_attachments.findMessageAttachments)(this.ctx, attachments);
|
|
1074
|
+
return messages.map((message) => {
|
|
1075
|
+
if (!Array.isArray(message.attachments) || !message.attachments.length) {
|
|
1076
|
+
return message;
|
|
1077
|
+
}
|
|
1078
|
+
return {
|
|
1079
|
+
...message,
|
|
1080
|
+
attachments: message.attachments.flatMap((attachment) => {
|
|
1081
|
+
const source = (0, import_attachments.getAttachmentSource)(attachment);
|
|
1082
|
+
if (!source || (0, import_attachments.shouldSkipAttachmentSourceLookup)(source)) {
|
|
1083
|
+
return [attachment];
|
|
1084
|
+
}
|
|
1085
|
+
const lookupKey = (0, import_attachments.getMessageAttachmentLookupKey)(attachment);
|
|
1086
|
+
const verifiedAttachment = lookupKey ? attachmentsByLookup.get(lookupKey) : null;
|
|
1087
|
+
if (!verifiedAttachment) {
|
|
1088
|
+
return [];
|
|
1089
|
+
}
|
|
1090
|
+
return [{ ...verifiedAttachment, source }];
|
|
1091
|
+
})
|
|
1092
|
+
};
|
|
1093
|
+
});
|
|
1094
|
+
}
|
|
1020
1095
|
async formatMessages({ messages, provider }) {
|
|
1021
1096
|
var _a, _b;
|
|
1022
1097
|
const formattedMessages = [];
|
|
1023
1098
|
const workContextHandler = this.plugin.workContextHandler;
|
|
1099
|
+
const normalizedMessages = await this.normalizeMessageAttachments(messages);
|
|
1024
1100
|
const truncate = (text, maxLen = 5e4) => {
|
|
1025
1101
|
if (!text || text.length <= maxLen) return text;
|
|
1026
1102
|
return text.slice(0, maxLen) + "\n...[truncated]";
|
|
1027
1103
|
};
|
|
1028
|
-
for (const msg of
|
|
1104
|
+
for (const msg of normalizedMessages) {
|
|
1029
1105
|
const attachments = msg.attachments;
|
|
1030
1106
|
const workContext = msg.workContext;
|
|
1031
1107
|
const userContent = msg.content;
|
|
@@ -1090,20 +1166,21 @@ If information is missing, clearly state it in the summary.</Important>`;
|
|
|
1090
1166
|
});
|
|
1091
1167
|
continue;
|
|
1092
1168
|
}
|
|
1169
|
+
const additionalKwargs = (0, import_tool_call_sanitizer.sanitizeAdditionalKwargsForToolCalls)((_b = msg.metadata) == null ? void 0 : _b.additional_kwargs, msg.toolCalls, {
|
|
1170
|
+
onDiscard: (info) => {
|
|
1171
|
+
var _a2;
|
|
1172
|
+
this.logger.warn("Discard malformed raw tool calls from AI message", {
|
|
1173
|
+
phase: "formatMessages",
|
|
1174
|
+
messageId: (_a2 = msg.metadata) == null ? void 0 : _a2.id,
|
|
1175
|
+
...info
|
|
1176
|
+
});
|
|
1177
|
+
}
|
|
1178
|
+
}).additionalKwargs;
|
|
1093
1179
|
formattedMessages.push({
|
|
1094
1180
|
role: "assistant",
|
|
1095
1181
|
content,
|
|
1096
1182
|
tool_calls: msg.toolCalls,
|
|
1097
|
-
additional_kwargs:
|
|
1098
|
-
onDiscard: (info) => {
|
|
1099
|
-
var _a2;
|
|
1100
|
-
this.logger.warn("Discard malformed raw tool calls from AI message", {
|
|
1101
|
-
phase: "formatMessages",
|
|
1102
|
-
messageId: (_a2 = msg.metadata) == null ? void 0 : _a2.id,
|
|
1103
|
-
...info
|
|
1104
|
-
});
|
|
1105
|
-
}
|
|
1106
|
-
}).additionalKwargs
|
|
1183
|
+
additional_kwargs: provider.prepareStoredAssistantAdditionalKwargs(additionalKwargs)
|
|
1107
1184
|
});
|
|
1108
1185
|
}
|
|
1109
1186
|
return formattedMessages;
|
|
@@ -1148,12 +1225,32 @@ If information is missing, clearly state it in the summary.</Important>`;
|
|
|
1148
1225
|
}
|
|
1149
1226
|
return result;
|
|
1150
1227
|
}
|
|
1228
|
+
async getKnowledgeBaseRetrieveTool() {
|
|
1229
|
+
const employee = this.getAIEmployeeRecord();
|
|
1230
|
+
const knowledgeBaseManager = this.plugin.knowledgeBaseManager;
|
|
1231
|
+
if (!await knowledgeBaseManager.isEnabledKnowledgeBase(employee)) {
|
|
1232
|
+
return void 0;
|
|
1233
|
+
}
|
|
1234
|
+
const hasAccessibleKnowledgeBase = await knowledgeBaseManager.hasAccessibleKnowledgeBase({
|
|
1235
|
+
employee,
|
|
1236
|
+
roleNames: (0, import_ai_knowledge_base.getCurrentRoleNames)(this.ctx.state)
|
|
1237
|
+
});
|
|
1238
|
+
if (!hasAccessibleKnowledgeBase) {
|
|
1239
|
+
return void 0;
|
|
1240
|
+
}
|
|
1241
|
+
return await this.toolsManager.getTools(import_ai.SYSTEM_TOOLS.KNOWLEDGE_BASE, { ctx: this.ctx });
|
|
1242
|
+
}
|
|
1151
1243
|
async getAIEmployeeTools() {
|
|
1152
1244
|
var _a;
|
|
1153
1245
|
if (!this.areToolsEnabled()) {
|
|
1154
1246
|
return [];
|
|
1155
1247
|
}
|
|
1248
|
+
const currentFrontendTools = await (0, import_frontend_tools2.listCurrentFrontendTools)(this.ctx, this.sessionId);
|
|
1156
1249
|
const tools = await this.listTools({ scope: "GENERAL" });
|
|
1250
|
+
const getSkill = await this.toolsManager.getTools(import_ai.SYSTEM_TOOLS.GET_SKILL, { ctx: this.ctx });
|
|
1251
|
+
if (getSkill) {
|
|
1252
|
+
tools.push(getSkill);
|
|
1253
|
+
}
|
|
1157
1254
|
if (this.webSearch === true) {
|
|
1158
1255
|
const subAgentWebSearch = await this.toolsManager.getTools(import_ai.SYSTEM_TOOLS.WEB_SEARCH, { ctx: this.ctx });
|
|
1159
1256
|
tools.push(subAgentWebSearch);
|
|
@@ -1162,13 +1259,9 @@ If information is missing, clearly state it in the summary.</Important>`;
|
|
|
1162
1259
|
const toolMap = await this.getToolsMap();
|
|
1163
1260
|
const settingsTools = ((_a = this.employee.skillSettings) == null ? void 0 : _a.tools) ?? [];
|
|
1164
1261
|
const employeeTools = [...settingsTools, ...this.tools];
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
});
|
|
1169
|
-
if (knowledgeBaseRetrieveTool) {
|
|
1170
|
-
employeeTools.push({ name: import_ai.SYSTEM_TOOLS.KNOWLEDGE_BASE });
|
|
1171
|
-
}
|
|
1262
|
+
const knowledgeBaseRetrieveTool = await this.getKnowledgeBaseRetrieveTool();
|
|
1263
|
+
if (knowledgeBaseRetrieveTool) {
|
|
1264
|
+
employeeTools.push({ name: import_ai.SYSTEM_TOOLS.KNOWLEDGE_BASE });
|
|
1172
1265
|
}
|
|
1173
1266
|
for (const toolSetting of employeeTools) {
|
|
1174
1267
|
if (generalToolsNameSet.has(toolSetting.name)) {
|
|
@@ -1180,20 +1273,26 @@ If information is missing, clearly state it in the summary.</Important>`;
|
|
|
1180
1273
|
}
|
|
1181
1274
|
tools.push(tool);
|
|
1182
1275
|
}
|
|
1183
|
-
const systemTools = (0, import_ai.listSystemTools)();
|
|
1276
|
+
const systemTools = [...(0, import_ai.listSystemTools)(), import_frontend_tools.LOAD_FRONTEND_TOOL_NAME, import_frontend_tools.EXECUTE_FRONTEND_TOOL_NAME];
|
|
1184
1277
|
if (!this.skillSettings) {
|
|
1185
|
-
return tools;
|
|
1278
|
+
return (0, import_frontend_tools2.prepareToolsForFrontendConversation)(tools, currentFrontendTools);
|
|
1186
1279
|
} else if (!this.skillSettings.toolsVersion) {
|
|
1187
1280
|
const toolFilter = this.skillSettings.tools ?? [];
|
|
1188
|
-
return
|
|
1189
|
-
|
|
1281
|
+
return (0, import_frontend_tools2.prepareToolsForFrontendConversation)(
|
|
1282
|
+
tools.filter(
|
|
1283
|
+
(t) => toolFilter.length === 0 || systemTools.includes(t.definition.name) || toolFilter.includes(t.definition.name)
|
|
1284
|
+
),
|
|
1285
|
+
currentFrontendTools
|
|
1190
1286
|
);
|
|
1191
1287
|
} else {
|
|
1192
1288
|
const toolFilter = this.skillSettings.tools;
|
|
1193
1289
|
if (import_lodash.default.isArray(toolFilter)) {
|
|
1194
|
-
return
|
|
1290
|
+
return (0, import_frontend_tools2.prepareToolsForFrontendConversation)(
|
|
1291
|
+
tools.filter((t) => systemTools.includes(t.definition.name) || toolFilter.includes(t.definition.name)),
|
|
1292
|
+
currentFrontendTools
|
|
1293
|
+
);
|
|
1195
1294
|
} else {
|
|
1196
|
-
return tools;
|
|
1295
|
+
return (0, import_frontend_tools2.prepareToolsForFrontendConversation)(tools, currentFrontendTools);
|
|
1197
1296
|
}
|
|
1198
1297
|
}
|
|
1199
1298
|
}
|
|
@@ -1235,6 +1334,9 @@ If information is missing, clearly state it in the summary.</Important>`;
|
|
|
1235
1334
|
}
|
|
1236
1335
|
const baseTools = await this.getAIEmployeeTools();
|
|
1237
1336
|
const toolMap = await this.getToolsMap();
|
|
1337
|
+
for (const tool of baseTools) {
|
|
1338
|
+
toolMap.set(tool.definition.name, tool);
|
|
1339
|
+
}
|
|
1238
1340
|
const availableSkills = await this.getAvailableSkills();
|
|
1239
1341
|
const skillOwnedToolNames = new Set(availableSkills.flatMap((it) => it.tools ?? []));
|
|
1240
1342
|
const baseToolNames = new Set(
|
|
@@ -1303,7 +1405,7 @@ If information is missing, clearly state it in the summary.</Important>`;
|
|
|
1303
1405
|
return availableAIEmployees;
|
|
1304
1406
|
}
|
|
1305
1407
|
async getMiddleware(options) {
|
|
1306
|
-
const { providerName, llmService, model, tools, baseToolNames, messageId, agentThread } = options;
|
|
1408
|
+
const { providerName, provider, llmService, model, tools, baseToolNames, messageId, agentThread } = options;
|
|
1307
1409
|
const inWorkflow = await this.isInWorkflow();
|
|
1308
1410
|
return [
|
|
1309
1411
|
(0, import_middleware.skillToolBindingMiddleware)(this, {
|
|
@@ -1312,7 +1414,7 @@ If information is missing, clearly state it in the summary.</Important>`;
|
|
|
1312
1414
|
(0, import_middleware.toolInteractionMiddleware)(this, tools),
|
|
1313
1415
|
(0, import_middleware.toolCallStatusMiddleware)(this),
|
|
1314
1416
|
...inWorkflow ? [(0, import_middleware.workflowHistoryMiddleware)(this, this.db)] : [],
|
|
1315
|
-
(0, import_middleware.conversationMiddleware)(this, { providerName, llmService, model, messageId, agentThread }),
|
|
1417
|
+
(0, import_middleware.conversationMiddleware)(this, { providerName, provider, llmService, model, messageId, agentThread }),
|
|
1316
1418
|
(0, import_middleware.toolCallSanitizerMiddleware)({ logger: this.logger })
|
|
1317
1419
|
];
|
|
1318
1420
|
}
|
|
@@ -8,15 +8,35 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import { AIEmployee } from '../../collections/ai-employees';
|
|
10
10
|
import type PluginAIServer from '../plugin';
|
|
11
|
+
export declare const KNOWLEDGE_BASE_RETRIEVAL_STRATEGIES: readonly ["always", "onDemand"];
|
|
12
|
+
export type KnowledgeBaseRetrievalStrategy = (typeof KNOWLEDGE_BASE_RETRIEVAL_STRATEGIES)[number];
|
|
13
|
+
export declare const isKnowledgeBaseRetrievalStrategy: (value: unknown) => value is "always" | "onDemand";
|
|
14
|
+
export declare const normalizeKnowledgeBaseRetrievalStrategy: (value: unknown) => KnowledgeBaseRetrievalStrategy;
|
|
15
|
+
export declare const withDefaultKnowledgeBaseRetrievalStrategy: (knowledgeBase: unknown) => Record<string, unknown>;
|
|
16
|
+
export declare const getCurrentRoleNames: (state: unknown) => string[];
|
|
17
|
+
export declare const KNOWLEDGE_BASE_ON_DEMAND_PROMPT: string;
|
|
18
|
+
export declare const KNOWLEDGE_BASE_PRE_RETRIEVED_PROMPT: string;
|
|
19
|
+
export declare const KNOWLEDGE_BASE_NO_ACCESS_PROMPT: string;
|
|
20
|
+
export declare const getKnowledgeBaseBackgroundPrompt: ({ accessDenied, onDemand, preRetrieved, }: {
|
|
21
|
+
accessDenied: boolean;
|
|
22
|
+
onDemand: boolean;
|
|
23
|
+
preRetrieved: boolean;
|
|
24
|
+
}) => string | undefined;
|
|
11
25
|
export type KnowledgeBaseRetrieveOptions = {
|
|
12
26
|
username?: string;
|
|
13
27
|
employee?: AIEmployee;
|
|
14
28
|
query: string;
|
|
29
|
+
roleNames?: string[];
|
|
30
|
+
};
|
|
31
|
+
export type KnowledgeBaseAccessOptions = {
|
|
32
|
+
employee: AIEmployee;
|
|
33
|
+
roleNames: string[];
|
|
15
34
|
};
|
|
16
35
|
export declare class KnowledgeBaseManager {
|
|
17
36
|
private readonly plugin;
|
|
18
37
|
constructor(plugin: PluginAIServer);
|
|
19
|
-
retrievePrompt({ username, employee, query }: KnowledgeBaseRetrieveOptions): Promise<string>;
|
|
38
|
+
retrievePrompt({ username, employee, query, roleNames }: KnowledgeBaseRetrieveOptions): Promise<string>;
|
|
39
|
+
hasAccessibleKnowledgeBase({ employee, roleNames }: KnowledgeBaseAccessOptions): Promise<boolean>;
|
|
20
40
|
isEnabledKnowledgeBase(username: string): Promise<boolean>;
|
|
21
41
|
isEnabledKnowledgeBase(employee: AIEmployee): Promise<boolean>;
|
|
22
42
|
private getEmployee;
|
|
@@ -36,12 +36,64 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
36
36
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
37
37
|
var ai_knowledge_base_exports = {};
|
|
38
38
|
__export(ai_knowledge_base_exports, {
|
|
39
|
-
|
|
39
|
+
KNOWLEDGE_BASE_NO_ACCESS_PROMPT: () => KNOWLEDGE_BASE_NO_ACCESS_PROMPT,
|
|
40
|
+
KNOWLEDGE_BASE_ON_DEMAND_PROMPT: () => KNOWLEDGE_BASE_ON_DEMAND_PROMPT,
|
|
41
|
+
KNOWLEDGE_BASE_PRE_RETRIEVED_PROMPT: () => KNOWLEDGE_BASE_PRE_RETRIEVED_PROMPT,
|
|
42
|
+
KNOWLEDGE_BASE_RETRIEVAL_STRATEGIES: () => KNOWLEDGE_BASE_RETRIEVAL_STRATEGIES,
|
|
43
|
+
KnowledgeBaseManager: () => KnowledgeBaseManager,
|
|
44
|
+
getCurrentRoleNames: () => getCurrentRoleNames,
|
|
45
|
+
getKnowledgeBaseBackgroundPrompt: () => getKnowledgeBaseBackgroundPrompt,
|
|
46
|
+
isKnowledgeBaseRetrievalStrategy: () => isKnowledgeBaseRetrievalStrategy,
|
|
47
|
+
normalizeKnowledgeBaseRetrievalStrategy: () => normalizeKnowledgeBaseRetrievalStrategy,
|
|
48
|
+
withDefaultKnowledgeBaseRetrievalStrategy: () => withDefaultKnowledgeBaseRetrievalStrategy
|
|
40
49
|
});
|
|
41
50
|
module.exports = __toCommonJS(ai_knowledge_base_exports);
|
|
42
51
|
var import_prompts = require("@langchain/core/prompts");
|
|
43
52
|
var import_ai_feature_manager = require("../manager/ai-feature-manager");
|
|
44
53
|
var import_lodash = __toESM(require("lodash"));
|
|
54
|
+
const KNOWLEDGE_BASE_RETRIEVAL_STRATEGIES = ["always", "onDemand"];
|
|
55
|
+
const isRecord = (value) => value !== null && typeof value === "object" && !Array.isArray(value);
|
|
56
|
+
const getRoleNames = (roles) => Array.isArray(roles) ? Array.from(
|
|
57
|
+
new Set(
|
|
58
|
+
roles.map((role) => isRecord(role) ? role.name : role).filter((role) => typeof role === "string" && role.length > 0)
|
|
59
|
+
)
|
|
60
|
+
) : [];
|
|
61
|
+
const isKnowledgeBaseRetrievalStrategy = (value) => typeof value === "string" && KNOWLEDGE_BASE_RETRIEVAL_STRATEGIES.includes(value);
|
|
62
|
+
const normalizeKnowledgeBaseRetrievalStrategy = (value) => isKnowledgeBaseRetrievalStrategy(value) ? value : "always";
|
|
63
|
+
const withDefaultKnowledgeBaseRetrievalStrategy = (knowledgeBase) => {
|
|
64
|
+
const settings = isRecord(knowledgeBase) ? { ...knowledgeBase } : {};
|
|
65
|
+
if (!isKnowledgeBaseRetrievalStrategy(settings.retrievalStrategy)) {
|
|
66
|
+
settings.retrievalStrategy = "onDemand";
|
|
67
|
+
}
|
|
68
|
+
return settings;
|
|
69
|
+
};
|
|
70
|
+
const getCurrentRoleNames = (state) => {
|
|
71
|
+
const { currentRole, currentRoles, currentUser } = isRecord(state) ? state : {};
|
|
72
|
+
const currentUserRoleNames = getRoleNames(isRecord(currentUser) ? currentUser.roles : void 0);
|
|
73
|
+
if (currentUserRoleNames.length) {
|
|
74
|
+
return currentUserRoleNames;
|
|
75
|
+
}
|
|
76
|
+
if (Array.isArray(currentRoles)) {
|
|
77
|
+
return getRoleNames(currentRoles);
|
|
78
|
+
}
|
|
79
|
+
return typeof currentRole === "string" && currentRole.length > 0 ? [currentRole] : [];
|
|
80
|
+
};
|
|
81
|
+
const KNOWLEDGE_BASE_ON_DEMAND_PROMPT = "Use the knowledge base retrieval tool only when the request needs internal knowledge, uploaded documents, or knowledge-base facts. Do not call it for requests that clearly do not need those sources.";
|
|
82
|
+
const KNOWLEDGE_BASE_PRE_RETRIEVED_PROMPT = "The <knowledgeBase> content was retrieved in advance for the current user request. Use it directly when it is sufficient to answer; do not call the knowledge base retrieval tool again unless additional or different knowledge-base information is genuinely needed.";
|
|
83
|
+
const KNOWLEDGE_BASE_NO_ACCESS_PROMPT = "The current user does not have permission to access any knowledge base in this AI employee's configured scope. First answer the user's question as helpfully as possible using only information available without knowledge-base content; do not replace or interrupt the answer with a permission notice, and do not fabricate unavailable facts. Only after completing the answer, append a brief notice in the user's language stating that this response did not use knowledge-base content because the current user does not have permission to access these knowledge bases. Format this notice as a visually prominent Markdown reminder, using a blockquote with a bold warning or reminder heading so that it is easy to notice. If knowledge-base access is needed, advise the user to contact an administrator. Do not claim to have searched or used knowledge-base content.";
|
|
84
|
+
const getKnowledgeBaseBackgroundPrompt = ({
|
|
85
|
+
accessDenied,
|
|
86
|
+
onDemand,
|
|
87
|
+
preRetrieved
|
|
88
|
+
}) => {
|
|
89
|
+
if (accessDenied) {
|
|
90
|
+
return KNOWLEDGE_BASE_NO_ACCESS_PROMPT;
|
|
91
|
+
}
|
|
92
|
+
if (onDemand) {
|
|
93
|
+
return KNOWLEDGE_BASE_ON_DEMAND_PROMPT;
|
|
94
|
+
}
|
|
95
|
+
return preRetrieved ? KNOWLEDGE_BASE_PRE_RETRIEVED_PROMPT : void 0;
|
|
96
|
+
};
|
|
45
97
|
const normalizeMatchedQuestions = (value) => {
|
|
46
98
|
if (!Array.isArray(value)) {
|
|
47
99
|
return [];
|
|
@@ -62,17 +114,14 @@ class KnowledgeBaseManager {
|
|
|
62
114
|
constructor(plugin) {
|
|
63
115
|
this.plugin = plugin;
|
|
64
116
|
}
|
|
65
|
-
async retrievePrompt({ username, employee, query }) {
|
|
117
|
+
async retrievePrompt({ username, employee, query, roleNames }) {
|
|
66
118
|
employee = employee ?? (username ? await this.getEmployee(username) : null);
|
|
67
119
|
if (!employee) {
|
|
68
120
|
return "Specified knowledge base not existed";
|
|
69
121
|
}
|
|
70
|
-
const { knowledgeBaseKeys, topK, score } = employee.knowledgeBase ?? {};
|
|
71
|
-
if (!knowledgeBaseKeys || import_lodash.default.isEmpty(knowledgeBaseKeys)) {
|
|
72
|
-
return "Specified knowledge base not existed";
|
|
73
|
-
}
|
|
122
|
+
const { knowledgeBaseKeys = [], topK, score } = employee.knowledgeBase ?? {};
|
|
74
123
|
const promptTemplate = import_prompts.ChatPromptTemplate.fromTemplate(employee.knowledgeBasePrompt ?? "{knowledgeBaseData}");
|
|
75
|
-
const docs = await this.plugin.features.knowledgeBase.search({ knowledgeBaseKeys, query, topK, score });
|
|
124
|
+
const docs = await this.plugin.features.knowledgeBase.search({ knowledgeBaseKeys, query, topK, score, roleNames });
|
|
76
125
|
if (!(docs == null ? void 0 : docs.length)) {
|
|
77
126
|
return "No document match in knowledge base";
|
|
78
127
|
}
|
|
@@ -81,6 +130,16 @@ class KnowledgeBaseManager {
|
|
|
81
130
|
knowledgeBaseData
|
|
82
131
|
});
|
|
83
132
|
}
|
|
133
|
+
async hasAccessibleKnowledgeBase({ employee, roleNames }) {
|
|
134
|
+
var _a;
|
|
135
|
+
const knowledgeBaseKeys = ((_a = employee.knowledgeBase) == null ? void 0 : _a.knowledgeBaseKeys) ?? [];
|
|
136
|
+
const knowledgeBaseFeature = this.plugin.features.knowledgeBase;
|
|
137
|
+
if (!knowledgeBaseFeature.getAccessibleKnowledgeBaseKeys) {
|
|
138
|
+
return true;
|
|
139
|
+
}
|
|
140
|
+
const accessibleKeys = await knowledgeBaseFeature.getAccessibleKnowledgeBaseKeys({ knowledgeBaseKeys, roleNames });
|
|
141
|
+
return accessibleKeys.length > 0;
|
|
142
|
+
}
|
|
84
143
|
async isEnabledKnowledgeBase(usernameOrEmployee) {
|
|
85
144
|
const featureEnabled = this.plugin.features.isFeaturesEnabled(Object.values(import_ai_feature_manager.EEFeatures));
|
|
86
145
|
const employee = typeof usernameOrEmployee === "string" ? await this.getEmployee(usernameOrEmployee) : usernameOrEmployee;
|
|
@@ -96,5 +155,14 @@ class KnowledgeBaseManager {
|
|
|
96
155
|
}
|
|
97
156
|
// Annotate the CommonJS export names for ESM import in node:
|
|
98
157
|
0 && (module.exports = {
|
|
99
|
-
|
|
158
|
+
KNOWLEDGE_BASE_NO_ACCESS_PROMPT,
|
|
159
|
+
KNOWLEDGE_BASE_ON_DEMAND_PROMPT,
|
|
160
|
+
KNOWLEDGE_BASE_PRE_RETRIEVED_PROMPT,
|
|
161
|
+
KNOWLEDGE_BASE_RETRIEVAL_STRATEGIES,
|
|
162
|
+
KnowledgeBaseManager,
|
|
163
|
+
getCurrentRoleNames,
|
|
164
|
+
getKnowledgeBaseBackgroundPrompt,
|
|
165
|
+
isKnowledgeBaseRetrievalStrategy,
|
|
166
|
+
normalizeKnowledgeBaseRetrievalStrategy,
|
|
167
|
+
withDefaultKnowledgeBaseRetrievalStrategy
|
|
100
168
|
});
|
|
@@ -23,6 +23,8 @@ export declare class CheckpointCleaner {
|
|
|
23
23
|
private getThreadIds;
|
|
24
24
|
private get aiConversationsModel();
|
|
25
25
|
private get aiMessagesModel();
|
|
26
|
+
private get aiMessagesMessageIdColumn();
|
|
27
|
+
private get isUnderscoredDatabase();
|
|
26
28
|
private get sequelize();
|
|
27
29
|
private get collectionManager();
|
|
28
30
|
}
|
|
@@ -53,7 +53,10 @@ class CheckpointCleaner {
|
|
|
53
53
|
}
|
|
54
54
|
const sessionIds = outdatedConversations.map((conversation) => conversation.sessionId);
|
|
55
55
|
const latestMessageRefs = await this.aiMessagesModel.findAll({
|
|
56
|
-
attributes: [
|
|
56
|
+
attributes: [
|
|
57
|
+
"sessionId",
|
|
58
|
+
[this.sequelize.fn("MAX", this.sequelize.col(this.aiMessagesMessageIdColumn)), "messageId"]
|
|
59
|
+
],
|
|
57
60
|
where: {
|
|
58
61
|
sessionId: {
|
|
59
62
|
[import_database.Op.in]: sessionIds
|
|
@@ -127,6 +130,13 @@ class CheckpointCleaner {
|
|
|
127
130
|
get aiMessagesModel() {
|
|
128
131
|
return this.collectionManager.getCollection("aiMessages").model;
|
|
129
132
|
}
|
|
133
|
+
get aiMessagesMessageIdColumn() {
|
|
134
|
+
var _a;
|
|
135
|
+
return ((_a = this.aiMessagesModel.rawAttributes.messageId) == null ? void 0 : _a.field) || (this.isUnderscoredDatabase ? "message_id" : "messageId");
|
|
136
|
+
}
|
|
137
|
+
get isUnderscoredDatabase() {
|
|
138
|
+
return this.collectionManager.db.options.underscored === true || process.env.DB_UNDERSCORED === "true";
|
|
139
|
+
}
|
|
130
140
|
get sequelize() {
|
|
131
141
|
return this.collectionManager.db.sequelize;
|
|
132
142
|
}
|
|
@@ -8,8 +8,10 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import { AIEmployee } from '../ai-employee';
|
|
10
10
|
import z from 'zod';
|
|
11
|
+
import { LLMProvider } from '../../llm-providers/provider';
|
|
11
12
|
export declare const conversationMiddleware: (aiEmployee: AIEmployee, options: {
|
|
12
13
|
providerName: string;
|
|
14
|
+
provider: LLMProvider;
|
|
13
15
|
llmService?: string;
|
|
14
16
|
model: string;
|
|
15
17
|
messageId?: string;
|