@nocobase/plugin-ai 2.3.0-alpha.1 → 3.0.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/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/vector-database.md +3 -3
- package/dist/ai/docs/nocobase/ai-employees/workflow/nodes/knowledge/create-document.md +1 -1
- package/dist/ai/docs/nocobase/api/app/env.md +3 -1
- package/dist/ai/docs/nocobase/api/cli/index.md +14 -2
- package/dist/ai/docs/nocobase/api/cli/portal/config.md +44 -0
- package/dist/ai/docs/nocobase/api/cli/portal/create.md +48 -0
- package/dist/ai/docs/nocobase/api/cli/portal/deploy.md +39 -0
- package/dist/ai/docs/nocobase/api/cli/portal/destroy.md +41 -0
- package/dist/ai/docs/nocobase/api/cli/portal/dev.md +39 -0
- package/dist/ai/docs/nocobase/api/cli/portal/index.md +136 -0
- package/dist/ai/docs/nocobase/api/cli/portal/info.md +41 -0
- package/dist/ai/docs/nocobase/api/cli/portal/list.md +40 -0
- package/dist/ai/docs/nocobase/api/cli/portal/pull.md +43 -0
- package/dist/ai/docs/nocobase/api/cli/portal/push.md +41 -0
- package/dist/ai/docs/nocobase/building-tips/ai-fill-js-block-form.md +1092 -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/storage/index.md +66 -26
- package/dist/ai/docs/nocobase/file-manager/storage/s3-pro.md +58 -7
- package/dist/ai/docs/nocobase/get-started/installation/env.md +2 -2
- package/dist/ai/docs/nocobase/ops-management/migration-manager/built-in-tables.md +1 -2
- package/dist/ai/docs/nocobase/runjs/context/ai.md +194 -4
- package/dist/ai/tools/executeFrontendTool.d.ts +10 -0
- package/dist/ai/tools/executeFrontendTool.js +86 -0
- package/dist/ai/tools/getSkill.js +1 -1
- package/dist/ai/tools/loadFrontendTool.d.ts +10 -0
- package/dist/ai/tools/loadFrontendTool.js +99 -0
- package/dist/client/244.8631eb5cf3f05e21.js +10 -0
- package/dist/client/{525.203778500aca5d05.js → 525.94dd4136c1361477.js} +1 -1
- package/dist/client/681.6ffbc9329b9ac242.js +10 -0
- package/dist/{client-v2/705.1d10027ff8cfdf79.js → client/705.19b642db34de438a.js} +1 -1
- package/dist/client/index.d.ts +1 -3
- package/dist/client/index.js +8 -8
- package/dist/client-v2/244.c428e645ecb94414.js +10 -0
- package/dist/client-v2/420.b2aedb1ff71fca0e.js +10 -0
- package/dist/client-v2/681.6890caa389564ff7.js +10 -0
- package/dist/client-v2/705.8dc34d43f02f322c.js +10 -0
- package/dist/client-v2/ai-employees/AIEmployeeShortcut.d.ts +2 -0
- package/dist/client-v2/ai-employees/AddContextButton.d.ts +2 -0
- package/dist/client-v2/ai-employees/chatbox/components/AIEmployeeSwitcher.d.ts +1 -0
- package/dist/client-v2/ai-employees/chatbox/components/ChatBoxUnreadBadge.d.ts +17 -0
- package/dist/client-v2/ai-employees/chatbox/components/Conversations.d.ts +9 -1
- package/dist/client-v2/ai-employees/chatbox/components/MessageRenderers.d.ts +1 -1
- package/dist/client-v2/ai-employees/chatbox/components/Messages.d.ts +5 -1
- package/dist/client-v2/ai-employees/chatbox/components/ModelSwitcher.d.ts +4 -0
- package/dist/client-v2/ai-employees/chatbox/components/Sender.d.ts +33 -1
- package/dist/client-v2/ai-employees/chatbox/components/index.d.ts +1 -0
- package/dist/client-v2/ai-employees/chatbox/hooks/useChat.d.ts +8 -5
- package/dist/client-v2/ai-employees/chatbox/hooks/useChatBoxActions.d.ts +3 -2
- package/dist/client-v2/ai-employees/chatbox/hooks/useChatBoxEffect.d.ts +2 -1
- package/dist/client-v2/ai-employees/chatbox/hooks/useChatConversationActions.d.ts +3 -2
- package/dist/client-v2/ai-employees/chatbox/hooks/useChatMessageActions.d.ts +4 -2
- package/dist/client-v2/ai-employees/chatbox/hooks/useToolCallActions.d.ts +3 -1
- package/dist/client-v2/ai-employees/chatbox/hooks/useUploadFiles.d.ts +13 -3
- package/dist/client-v2/ai-employees/chatbox/hooks/useWorkflowTasks.d.ts +3 -2
- package/dist/client-v2/ai-employees/chatbox/index.d.ts +17 -0
- package/dist/client-v2/ai-employees/chatbox/roles.d.ts +2 -153
- package/dist/client-v2/ai-employees/chatbox/stores/chat-box.d.ts +46 -31
- package/dist/client-v2/ai-employees/chatbox/stores/chat-conversations.d.ts +7 -7
- package/dist/client-v2/ai-employees/chatbox/stores/chat-messages.d.ts +23 -18
- package/dist/client-v2/ai-employees/chatbox/stores/chat-sender.d.ts +43 -0
- package/dist/client-v2/ai-employees/chatbox/stores/chat-tool-call.d.ts +6 -5
- package/dist/client-v2/ai-employees/chatbox/stores/chat-tools.d.ts +11 -5
- 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 +22 -10
- package/dist/client-v2/ai-employees/chatbox/upload.d.ts +19 -0
- package/dist/client-v2/ai-employees/chatbox/utils.d.ts +28 -4
- package/dist/client-v2/ai-employees/frontend-tools.d.ts +11 -0
- package/dist/client-v2/ai-employees/tools/SuggestionsOptionsCard.d.ts +1 -1
- package/dist/client-v2/ai-employees/tools/WorkflowTaskOutputCard.d.ts +1 -1
- package/dist/client-v2/ai-employees/types.d.ts +30 -0
- package/dist/client-v2/block/ai-chat-box/AIChatBoxBlockModel.d.ts +21 -0
- package/dist/client-v2/block/ai-chat-box/AIChatBoxCoreModel.d.ts +13 -0
- package/dist/client-v2/block/ai-chat-box/components/AIChatBoxCoreView.d.ts +10 -0
- package/dist/client-v2/block/ai-chat-box/components/AIChatBoxView.d.ts +12 -0
- 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/index.d.ts +3 -5
- package/dist/client-v2/index.js +3 -3
- package/dist/client-v2/llm-services/model-select.d.ts +33 -0
- package/dist/client-v2/llm-services/utils.d.ts +1 -0
- package/dist/client-v2/manager/ai-manager.d.ts +10 -3
- package/dist/client-v2/manager/frontend-tool-registry.d.ts +30 -0
- package/dist/client-v2/models/ai-employees/AIEmployeeActionModel.d.ts +4 -1
- package/dist/client-v2/models/ai-employees/AIEmployeeShortcutModel.d.ts +5 -0
- package/dist/client-v2/pages/EmployeesPage.d.ts +2 -0
- package/dist/client-v2/runjs/registerAIEmployeeRunJSFacade.d.ts +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 +16 -16
- package/dist/locale/en-US.json +67 -0
- package/dist/locale/zh-CN.json +67 -0
- package/dist/node_modules/@langchain/mistralai/package.json +1 -1
- package/dist/node_modules/@langchain/xai/package.json +1 -1
- package/dist/node_modules/fs-extra/package.json +1 -1
- package/dist/node_modules/jsonrepair/package.json +1 -1
- package/dist/node_modules/just-bash/package.json +1 -1
- package/dist/node_modules/nodejs-snowflake/package.json +1 -1
- package/dist/node_modules/openai/package.json +1 -1
- package/dist/node_modules/zod/package.json +1 -1
- package/dist/server/ai-employees/ai-conversations.d.ts +4 -1
- package/dist/server/ai-employees/ai-conversations.js +2 -0
- package/dist/server/ai-employees/ai-employee.d.ts +2 -1
- package/dist/server/ai-employees/ai-employee.js +26 -7
- package/dist/server/ai-employees/middleware/conversation.js +9 -2
- package/dist/server/collections/ai-conversations.js +5 -0
- package/dist/server/document-loader/constants.js +1 -1
- package/dist/server/frontend-tools.d.ts +25 -0
- package/dist/server/frontend-tools.js +171 -0
- package/dist/server/manager/work-context-handler.js +10 -3
- package/dist/server/plugin.d.ts +1 -0
- package/dist/server/plugin.js +25 -0
- package/dist/server/resource/aiConversations.d.ts +2 -0
- package/dist/server/resource/aiConversations.js +33 -3
- package/dist/server/resource/aiEmployees.d.ts +2 -0
- package/dist/server/resource/aiEmployees.js +62 -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/knowledge-base.type.d.ts +6 -2
- 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 +1588 -0
- package/dist/swagger/index.js +62 -0
- package/dist/swagger/llm.d.ts +555 -0
- package/dist/swagger/llm.js +247 -0
- package/dist/swagger/schemas.d.ts +736 -0
- package/dist/swagger/schemas.js +381 -0
- package/package.json +2 -2
- 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/372.40eb52905e3f3049.js +0 -10
- package/dist/client/681.399948c18d753667.js +0 -10
- package/dist/client/705.380279da896021fb.js +0 -10
- package/dist/client-v2/372.8cc3fde09c9bec77.js +0 -10
- package/dist/client-v2/406.341be51205c674e0.js +0 -10
- package/dist/client-v2/681.082f4f1c7b841983.js +0 -10
- package/dist/client-v2/ai-employees/chatbox/stores/create-selectors.d.ts +0 -46
- package/dist/client-v2/ai-employees/chatbox/utils/normalizeTriggerTaskOptions.d.ts +0 -19
|
@@ -0,0 +1,381 @@
|
|
|
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 schemas_exports = {};
|
|
28
|
+
__export(schemas_exports, {
|
|
29
|
+
schemas: () => schemas
|
|
30
|
+
});
|
|
31
|
+
module.exports = __toCommonJS(schemas_exports);
|
|
32
|
+
const secretString = {
|
|
33
|
+
type: "string",
|
|
34
|
+
writeOnly: true,
|
|
35
|
+
description: "Sensitive value. Use a protected body file instead of a command-line flag."
|
|
36
|
+
};
|
|
37
|
+
const llmProviderOptions = {
|
|
38
|
+
type: "object",
|
|
39
|
+
description: "Provider-specific connection options.",
|
|
40
|
+
properties: {
|
|
41
|
+
apiKey: secretString,
|
|
42
|
+
accessKey: secretString,
|
|
43
|
+
secretKey: secretString,
|
|
44
|
+
password: secretString,
|
|
45
|
+
baseURL: {
|
|
46
|
+
type: "string",
|
|
47
|
+
format: "uri"
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
additionalProperties: true
|
|
51
|
+
};
|
|
52
|
+
const enabledModel = {
|
|
53
|
+
type: "object",
|
|
54
|
+
required: ["label", "value"],
|
|
55
|
+
additionalProperties: false,
|
|
56
|
+
properties: {
|
|
57
|
+
label: {
|
|
58
|
+
type: "string"
|
|
59
|
+
},
|
|
60
|
+
value: {
|
|
61
|
+
type: "string"
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
const enabledModels = {
|
|
66
|
+
type: "object",
|
|
67
|
+
required: ["mode", "models"],
|
|
68
|
+
additionalProperties: false,
|
|
69
|
+
properties: {
|
|
70
|
+
mode: {
|
|
71
|
+
type: "string",
|
|
72
|
+
enum: ["provider", "custom"],
|
|
73
|
+
description: "Use provider-discovered models or an explicitly supplied custom model list."
|
|
74
|
+
},
|
|
75
|
+
models: {
|
|
76
|
+
type: "array",
|
|
77
|
+
items: enabledModel
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
const llmServiceWriteProperties = {
|
|
82
|
+
name: {
|
|
83
|
+
type: "string"
|
|
84
|
+
},
|
|
85
|
+
title: {
|
|
86
|
+
type: "string"
|
|
87
|
+
},
|
|
88
|
+
provider: {
|
|
89
|
+
type: "string"
|
|
90
|
+
},
|
|
91
|
+
options: llmProviderOptions,
|
|
92
|
+
enabledModels,
|
|
93
|
+
enabled: {
|
|
94
|
+
type: "boolean"
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
const modelSelection = {
|
|
98
|
+
type: "object",
|
|
99
|
+
required: ["llmService", "model"],
|
|
100
|
+
additionalProperties: false,
|
|
101
|
+
properties: {
|
|
102
|
+
llmService: {
|
|
103
|
+
type: "string"
|
|
104
|
+
},
|
|
105
|
+
model: {
|
|
106
|
+
type: "string"
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
const modelSettings = {
|
|
111
|
+
type: "object",
|
|
112
|
+
required: ["enabled", "models"],
|
|
113
|
+
additionalProperties: false,
|
|
114
|
+
properties: {
|
|
115
|
+
enabled: {
|
|
116
|
+
type: "boolean"
|
|
117
|
+
},
|
|
118
|
+
models: {
|
|
119
|
+
type: "array",
|
|
120
|
+
items: modelSelection
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
const knowledgeBaseSettings = {
|
|
125
|
+
type: "object",
|
|
126
|
+
required: ["topK", "score", "knowledgeBaseKeys"],
|
|
127
|
+
additionalProperties: false,
|
|
128
|
+
properties: {
|
|
129
|
+
topK: {
|
|
130
|
+
type: "integer",
|
|
131
|
+
minimum: 1
|
|
132
|
+
},
|
|
133
|
+
score: {
|
|
134
|
+
type: "string",
|
|
135
|
+
description: "Minimum similarity score represented as a decimal string.",
|
|
136
|
+
example: "0.5"
|
|
137
|
+
},
|
|
138
|
+
knowledgeBaseKeys: {
|
|
139
|
+
type: "array",
|
|
140
|
+
items: {
|
|
141
|
+
type: "string"
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
const aiEmployeeWriteProperties = {
|
|
147
|
+
username: {
|
|
148
|
+
type: "string"
|
|
149
|
+
},
|
|
150
|
+
nickname: {
|
|
151
|
+
type: "string"
|
|
152
|
+
},
|
|
153
|
+
position: {
|
|
154
|
+
type: "string"
|
|
155
|
+
},
|
|
156
|
+
avatar: {
|
|
157
|
+
type: "string"
|
|
158
|
+
},
|
|
159
|
+
bio: {
|
|
160
|
+
type: "string"
|
|
161
|
+
},
|
|
162
|
+
about: {
|
|
163
|
+
type: "string"
|
|
164
|
+
},
|
|
165
|
+
greeting: {
|
|
166
|
+
type: "string"
|
|
167
|
+
},
|
|
168
|
+
modelSettings,
|
|
169
|
+
enableKnowledgeBase: {
|
|
170
|
+
type: "boolean"
|
|
171
|
+
},
|
|
172
|
+
knowledgeBase: knowledgeBaseSettings,
|
|
173
|
+
enabled: {
|
|
174
|
+
type: "boolean"
|
|
175
|
+
}
|
|
176
|
+
};
|
|
177
|
+
const schemas = {
|
|
178
|
+
ErrorResponse: {
|
|
179
|
+
type: "object",
|
|
180
|
+
properties: {
|
|
181
|
+
errors: {
|
|
182
|
+
type: "array",
|
|
183
|
+
items: {
|
|
184
|
+
type: "object",
|
|
185
|
+
properties: {
|
|
186
|
+
message: {
|
|
187
|
+
type: "string"
|
|
188
|
+
},
|
|
189
|
+
code: {
|
|
190
|
+
type: "string"
|
|
191
|
+
}
|
|
192
|
+
},
|
|
193
|
+
additionalProperties: true
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
},
|
|
197
|
+
additionalProperties: true
|
|
198
|
+
},
|
|
199
|
+
LLMProvider: {
|
|
200
|
+
type: "object",
|
|
201
|
+
required: ["name", "title", "supportedModel", "supportWebSearch"],
|
|
202
|
+
properties: {
|
|
203
|
+
name: {
|
|
204
|
+
type: "string"
|
|
205
|
+
},
|
|
206
|
+
title: {
|
|
207
|
+
type: "string"
|
|
208
|
+
},
|
|
209
|
+
supportedModel: {
|
|
210
|
+
type: "array",
|
|
211
|
+
items: {
|
|
212
|
+
type: "string",
|
|
213
|
+
enum: ["LLM", "EMBEDDING"]
|
|
214
|
+
}
|
|
215
|
+
},
|
|
216
|
+
supportWebSearch: {
|
|
217
|
+
type: "boolean"
|
|
218
|
+
}
|
|
219
|
+
},
|
|
220
|
+
additionalProperties: false
|
|
221
|
+
},
|
|
222
|
+
LLMProviderModelsRequest: {
|
|
223
|
+
type: "object",
|
|
224
|
+
required: ["provider", "options"],
|
|
225
|
+
properties: {
|
|
226
|
+
provider: {
|
|
227
|
+
type: "string"
|
|
228
|
+
},
|
|
229
|
+
options: llmProviderOptions,
|
|
230
|
+
model: {
|
|
231
|
+
type: "string",
|
|
232
|
+
description: "Optional case-insensitive search text."
|
|
233
|
+
}
|
|
234
|
+
},
|
|
235
|
+
additionalProperties: false
|
|
236
|
+
},
|
|
237
|
+
LLMTestFlightRequest: {
|
|
238
|
+
type: "object",
|
|
239
|
+
required: ["provider", "options", "model"],
|
|
240
|
+
properties: {
|
|
241
|
+
provider: {
|
|
242
|
+
type: "string"
|
|
243
|
+
},
|
|
244
|
+
options: llmProviderOptions,
|
|
245
|
+
model: {
|
|
246
|
+
type: "string"
|
|
247
|
+
}
|
|
248
|
+
},
|
|
249
|
+
additionalProperties: false
|
|
250
|
+
},
|
|
251
|
+
LLMModel: {
|
|
252
|
+
type: "object",
|
|
253
|
+
required: ["id"],
|
|
254
|
+
properties: {
|
|
255
|
+
id: {
|
|
256
|
+
type: "string"
|
|
257
|
+
}
|
|
258
|
+
},
|
|
259
|
+
additionalProperties: true
|
|
260
|
+
},
|
|
261
|
+
LLMTestFlightResult: {
|
|
262
|
+
type: "object",
|
|
263
|
+
required: ["status", "code"],
|
|
264
|
+
properties: {
|
|
265
|
+
status: {
|
|
266
|
+
type: "string",
|
|
267
|
+
enum: ["success", "error"]
|
|
268
|
+
},
|
|
269
|
+
code: {
|
|
270
|
+
type: "integer"
|
|
271
|
+
},
|
|
272
|
+
message: {
|
|
273
|
+
type: "string"
|
|
274
|
+
}
|
|
275
|
+
},
|
|
276
|
+
additionalProperties: false
|
|
277
|
+
},
|
|
278
|
+
LLMServiceCreate: {
|
|
279
|
+
type: "object",
|
|
280
|
+
required: ["name", "title", "provider", "options", "enabledModels", "enabled"],
|
|
281
|
+
properties: llmServiceWriteProperties,
|
|
282
|
+
additionalProperties: false
|
|
283
|
+
},
|
|
284
|
+
LLMServicePatch: {
|
|
285
|
+
type: "object",
|
|
286
|
+
properties: llmServiceWriteProperties,
|
|
287
|
+
additionalProperties: false
|
|
288
|
+
},
|
|
289
|
+
LLMService: {
|
|
290
|
+
type: "object",
|
|
291
|
+
properties: {
|
|
292
|
+
...llmServiceWriteProperties,
|
|
293
|
+
modelOptions: {
|
|
294
|
+
type: "object",
|
|
295
|
+
readOnly: true,
|
|
296
|
+
additionalProperties: true
|
|
297
|
+
},
|
|
298
|
+
createdAt: {
|
|
299
|
+
type: "string",
|
|
300
|
+
format: "date-time",
|
|
301
|
+
readOnly: true
|
|
302
|
+
},
|
|
303
|
+
updatedAt: {
|
|
304
|
+
type: "string",
|
|
305
|
+
format: "date-time",
|
|
306
|
+
readOnly: true
|
|
307
|
+
}
|
|
308
|
+
},
|
|
309
|
+
additionalProperties: true
|
|
310
|
+
},
|
|
311
|
+
EnabledLLMService: {
|
|
312
|
+
type: "object",
|
|
313
|
+
properties: {
|
|
314
|
+
name: {
|
|
315
|
+
type: "string"
|
|
316
|
+
},
|
|
317
|
+
title: {
|
|
318
|
+
type: "string"
|
|
319
|
+
},
|
|
320
|
+
provider: {
|
|
321
|
+
type: "string"
|
|
322
|
+
},
|
|
323
|
+
enabled: {
|
|
324
|
+
type: "boolean"
|
|
325
|
+
},
|
|
326
|
+
enabledModels
|
|
327
|
+
},
|
|
328
|
+
additionalProperties: true
|
|
329
|
+
},
|
|
330
|
+
AIEmployeeCreate: {
|
|
331
|
+
type: "object",
|
|
332
|
+
required: ["username", "nickname", "avatar"],
|
|
333
|
+
properties: aiEmployeeWriteProperties,
|
|
334
|
+
additionalProperties: false
|
|
335
|
+
},
|
|
336
|
+
AIEmployeePatch: {
|
|
337
|
+
type: "object",
|
|
338
|
+
properties: aiEmployeeWriteProperties,
|
|
339
|
+
additionalProperties: false
|
|
340
|
+
},
|
|
341
|
+
AIEmployee: {
|
|
342
|
+
type: "object",
|
|
343
|
+
properties: {
|
|
344
|
+
...aiEmployeeWriteProperties,
|
|
345
|
+
builtIn: {
|
|
346
|
+
type: "boolean",
|
|
347
|
+
readOnly: true
|
|
348
|
+
},
|
|
349
|
+
category: {
|
|
350
|
+
type: "string",
|
|
351
|
+
readOnly: true
|
|
352
|
+
},
|
|
353
|
+
deprecated: {
|
|
354
|
+
type: "boolean",
|
|
355
|
+
readOnly: true
|
|
356
|
+
},
|
|
357
|
+
missingKnowledgeBaseKeys: {
|
|
358
|
+
type: "array",
|
|
359
|
+
readOnly: true,
|
|
360
|
+
items: {
|
|
361
|
+
type: "string"
|
|
362
|
+
}
|
|
363
|
+
},
|
|
364
|
+
createdAt: {
|
|
365
|
+
type: "string",
|
|
366
|
+
format: "date-time",
|
|
367
|
+
readOnly: true
|
|
368
|
+
},
|
|
369
|
+
updatedAt: {
|
|
370
|
+
type: "string",
|
|
371
|
+
format: "date-time",
|
|
372
|
+
readOnly: true
|
|
373
|
+
}
|
|
374
|
+
},
|
|
375
|
+
additionalProperties: true
|
|
376
|
+
}
|
|
377
|
+
};
|
|
378
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
379
|
+
0 && (module.exports = {
|
|
380
|
+
schemas
|
|
381
|
+
});
|
package/package.json
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"description": "Create AI employees with diverse skills to collaborate with humans, build systems, and handle business operations.",
|
|
7
7
|
"description.ru-RU": "Поддержка интеграции с AI-сервисами: предоставляются AI-узлы для рабочих процессов, расширяя возможности бизнес-обработки.",
|
|
8
8
|
"description.zh-CN": "创建各种技能的 AI 员工,与人类协同,搭建系统,处理业务。",
|
|
9
|
-
"version": "
|
|
9
|
+
"version": "3.0.0-alpha.1",
|
|
10
10
|
"main": "dist/server/index.js",
|
|
11
11
|
"homepage": "https://docs.nocobase.com/handbook/action-ai",
|
|
12
12
|
"homepage.ru-RU": "https://docs-ru.nocobase.com/handbook/action-ai",
|
|
@@ -66,5 +66,5 @@
|
|
|
66
66
|
"keywords": [
|
|
67
67
|
"AI"
|
|
68
68
|
],
|
|
69
|
-
"gitHead": "
|
|
69
|
+
"gitHead": "22d8be8ece179cfa5c8a4ebb2c896c92bd418e03"
|
|
70
70
|
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
# Vector Store
|
|
2
|
-
|
|
3
|
-
## Introduction
|
|
4
|
-
|
|
5
|
-
In a knowledge base, vectorizing documents when saving them and vectorizing search terms when retrieving them both require an `Embedding model` to process the original text into vectors.
|
|
6
|
-
|
|
7
|
-
In the AI Knowledge Base plugin, a vector store is the binding of an `Embedding model` and a vector database.
|
|
8
|
-
|
|
9
|
-
## Vector Store Management
|
|
10
|
-
|
|
11
|
-
Go to the AI Employees plugin configuration page, click the `Vector store` tab, and select `Vector store` to enter the vector store management page.
|
|
12
|
-
|
|
13
|
-

|
|
14
|
-
|
|
15
|
-
Click the `Add new` button in the top right corner to add a new vector store:
|
|
16
|
-
|
|
17
|
-
- In the `Name` input box, enter the vector store name;
|
|
18
|
-
- In `Vector store`, select a configured vector database. Refer to: [Vector Database](/ai-employees/knowledge-base/vector-database);
|
|
19
|
-
- In `LLM service`, select a configured LLM service. Refer to: [LLM Service Management](/ai-employees/features/llm-service);
|
|
20
|
-
- In the `Embedding model` input box, enter the name of the `Embedding` model to be used;
|
|
21
|
-
|
|
22
|
-
Click the `Submit` button to save the vector store information.
|
|
23
|
-
|
|
24
|
-

|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file is part of the NocoBase (R) project.
|
|
3
|
-
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
-
* Authors: NocoBase Team.
|
|
5
|
-
*
|
|
6
|
-
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
-
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
"use strict";(self.webpackChunk_nocobase_plugin_ai=self.webpackChunk_nocobase_plugin_ai||[]).push([["372"],{1735:function(e,t,n){n.r(t),n.d(t,{EMPLOYEE_PROMPT_VARIABLE_NAMESPACES:function(){return B},EmployeesPage:function(){return ef},createAIEmployee:function(){return V},deleteAIEmployee:function(){return N},isKnowledgeBaseEnabled:function(){return q},listAIEmployees:function(){return G},listKnowledgeBases:function(){return X},moveAIEmployee:function(){return _},normalizeSkillSettings:function(){return en},updateAIEmployee:function(){return H},updateAIEmployeeEnabled:function(){return U}});var r=n(9155),l=n.n(r),a=n(2059),o=n(7375),i=n(5428),u=n(5477),s=n(3485),c=n(7694),m=n(9488),d=n(4196),f=n(3617),p=n(9312),y=n(8666);function b(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function g(e){if(Array.isArray(e))return e}function h(e,t,n,r,l,a,o){try{var i=e[a](o),u=i.value}catch(e){n(e);return}i.done?t(u):Promise.resolve(u).then(r,l)}function v(e){return function(){var t=this,n=arguments;return new Promise(function(r,l){var a=e.apply(t,n);function o(e){h(a,r,l,o,i,"next",e)}function i(e){h(a,r,l,o,i,"throw",e)}o(void 0)})}}function E(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function S(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function k(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function w(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function I(e,t){return g(e)||function(e,t){var n,r,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,i=!1;try{for(l=l.call(e);!(o=(n=l.next()).done)&&(a.push(n.value),!t||a.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==l.return||l.return()}finally{if(i)throw r}}return a}}(e,t)||C(e,t)||S()}function A(e){return function(e){if(Array.isArray(e))return b(e)}(e)||E(e)||C(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function C(e,t){if(e){if("string"==typeof e)return b(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return b(e,t)}}function F(e,t){var n,r,l,a={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(o,"next",{value:u(0)}),i(o,"throw",{value:u(1)}),i(o,"return",{value:u(2)}),"function"==typeof Symbol&&i(o,Symbol.iterator,{value:function(){return this}}),o;function u(i){return function(u){var s=[i,u];if(n)throw TypeError("Generator is already executing.");for(;o&&(o=0,s[0]&&(a=0)),a;)try{if(n=1,r&&(l=2&s[0]?r.return:s[0]?r.throw||((l=r.return)&&l.call(r),0):r.next)&&!(l=l.call(r,s[1])).done)return l;switch(r=0,l&&(s=[2&s[0],l.value]),s[0]){case 0:case 1:l=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,r=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(!(l=(l=a.trys).length>0&&l[l.length-1])&&(6===s[0]||2===s[0])){a=0;continue}if(3===s[0]&&(!l||s[1]>l[0]&&s[1]<l[3])){a.label=s[1];break}if(6===s[0]&&a.label<l[1]){a.label=l[1],l=s;break}if(l&&a.label<l[2]){a.label=l[2],a.ops.push(s);break}l[2]&&a.ops.pop(),a.trys.pop();continue}s=t.call(e,a)}catch(e){s=[6,e],r=0}finally{n=l=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}}}function x(){var e,t,n=(e=["\n flex: 1;\n min-height: 0;\n display: flex;\n flex-direction: column;\n\n .ant-spin-nested-loading,\n .ant-spin-container,\n .ant-table,\n .ant-table-container {\n min-height: 0;\n flex: 1;\n display: flex;\n flex-direction: column;\n }\n\n .ant-table-content {\n flex: 1;\n min-height: 0;\n }\n\n .ant-table-body {\n flex: 1;\n min-height: 0;\n }\n\n .ant-table-thead > tr > th {\n white-space: nowrap;\n }\n\n .ant-pagination {\n flex: 0 0 auto;\n }\n"],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return x=function(){return n},n}var T=Object.keys(d.B)[0],O="sort",B=["user","roleName","locale","now","timestamp"],M=function(e){return"".concat(e,":")},P=(0,u.css)(x()),j=function(e){return null!==e&&(void 0===e?"undefined":e&&"u">typeof Symbol&&e.constructor===Symbol?"symbol":typeof e)=="object"&&!Array.isArray(e)},L=function(e){var t;if(j(e))return null==(t=e.data)?void 0:t.data},R=function(e){if(!j(e))return{};var t=e.data;return j(t)?t:{}},K=function(e){return j(e)&&"string"==typeof e.username},z=function(e){return j(e)&&"string"==typeof e.key&&"string"==typeof e.name},W=function(e,t,n,r){return v(function(){var l;return F(this,function(a){if("function"!=typeof(l=e.resource(t)[n]))throw Error("Missing resource action: ".concat(t,".").concat(n));return[2,l(r)]})})()},D=function(e,t){var n=k({},e);return t.edit&&("system"===e._aboutMode&&(n.about=null),delete n._aboutMode,delete n.enabled),n};function G(e,t){return v(function(){var n,r,l;return F(this,function(a){switch(a.label){case 0:return[4,W(e,"aiEmployees","list",{page:t.page,pageSize:t.pageSize,filter:{category:t.category},sort:[O]})];case 1:return r=L(n=a.sent()),l=R(n),[2,{data:Array.isArray(r)?r.filter(K):[],total:"number"==typeof l.count?l.count:void 0}]}})})()}function _(e,t,n){return v(function(){return F(this,function(r){switch(r.label){case 0:return[4,W(e,"aiEmployees","move",{sourceId:t,targetId:n,sortField:O})];case 1:return r.sent(),[2]}})})()}function V(e,t){return v(function(){return F(this,function(n){switch(n.label){case 0:return[4,W(e,"aiEmployees","create",{values:D(t,{edit:!1})})];case 1:return n.sent(),[2]}})})()}function H(e,t){return v(function(){return F(this,function(n){switch(n.label){case 0:if(!t.username)throw Error("Missing AI employee username.");return[4,W(e,"aiEmployees","update",{values:D(t,{edit:!0}),filterByTk:t.username})];case 1:return n.sent(),[2]}})})()}function N(e,t){return v(function(){return F(this,function(n){switch(n.label){case 0:return[4,W(e,"aiEmployees","destroy",{filterByTk:t})];case 1:return n.sent(),[2]}})})()}function U(e,t,n){return v(function(){return F(this,function(r){switch(r.label){case 0:return[4,W(e,"aiEmployees","update",{filterByTk:t,values:{enabled:n}})];case 1:return r.sent(),[2]}})})()}function q(e){return v(function(){var t;return F(this,function(n){switch(n.label){case 0:return[4,W(e,"aiSettings","isKnowledgeBaseEnabled")];case 1:return[2,j(t=L(n.sent()))&&!0===t.enabled]}})})()}function X(e){return v(function(){var t;return F(this,function(n){switch(n.label){case 0:return[4,W(e,"aiKnowledgeBase","list",{fields:["key","name"],filter:{enabled:!0}})];case 1:return[2,Array.isArray(t=L(n.sent()))?t.filter(z):[]]}})})()}var Y=function(e){var t=e.disabled,n=e.value,o=e.onChange,i=a.theme.useToken().token,u=n||T,s=(0,r.useMemo)(function(){return Object.keys(d.B).map(function(e){return{seed:e,uri:(0,d.H)(e)}})},[]);return l().createElement(l().Fragment,null,l().createElement("div",{style:{marginBottom:i.marginLG+i.margin}},l().createElement(a.Avatar,{size:2*i.controlHeightLG+i.paddingSM+2*i.lineWidth,src:(0,d.H)(u)})),t?null:l().createElement(a.List,{grid:{gutter:i.margin,column:10},dataSource:s,renderItem:function(e){return l().createElement(a.List.Item,null,l().createElement("button",{"aria-label":e.seed,type:"button",onClick:function(){return null==o?void 0:o(e.seed)},onKeyDown:function(t){("Enter"===t.key||" "===t.key)&&(t.preventDefault(),null==o||o(e.seed))},style:{background:"transparent",borderColor:u===e.seed?i.colorPrimary:"transparent",borderStyle:"solid",borderWidth:2*i.lineWidth,borderRadius:"50%",cursor:"pointer",display:"inline-flex",padding:0}},l().createElement(a.Avatar,{size:i.controlHeightLG+i.paddingSM+2*i.lineWidth,src:e.uri})))}}))},Q=function(e){var t=e.edit,n=e.builtIn,r=(0,m.kj)();return l().createElement(l().Fragment,null,l().createElement(a.Form.Item,{name:"username",label:M(r("Username")),rules:[{required:!0}],preserve:!0},l().createElement(a.Input,{disabled:t})),l().createElement(a.Form.Item,{name:"nickname",label:M(r("Nickname")),rules:[{required:!0}],preserve:!0},l().createElement(a.Input,{disabled:n})),l().createElement(a.Form.Item,{name:"position",label:M(r("Position")),extra:r("Position description"),preserve:!0},l().createElement(a.Input,{disabled:n,placeholder:r("Position placeholder")})),l().createElement(a.Form.Item,{name:"avatar",label:M(r("Avatar")),preserve:!0},l().createElement(Y,{disabled:n})),l().createElement(a.Form.Item,{name:"bio",label:M(r("Bio")),preserve:!0},l().createElement(a.Input.TextArea,{disabled:n,placeholder:r("Bio placeholder")})),l().createElement(a.Form.Item,{name:"greeting",label:M(r("Greeting message")),preserve:!0},l().createElement(a.Input.TextArea,{disabled:n,placeholder:r("Greeting message placeholder")})))},$=function(e){var t,n=e.builtIn,o=e.record,i=(0,m.kj)(),u=a.theme.useToken().token,c=a.Form.useFormInstance(),d=null!=(t=a.Form.useWatch("_aboutMode",c))?t:(null==o?void 0:o.about)?"custom":"system";return(0,r.useEffect)(function(){n&&!c.getFieldValue("_aboutMode")&&c.setFieldValue("_aboutMode",(null==o?void 0:o.about)?"custom":"system")},[n,c,null==o?void 0:o.about]),l().createElement(l().Fragment,null,l().createElement(a.Alert,{message:i("Role setting description"),type:"info",showIcon:!0}),n?l().createElement(a.Form.Item,{name:"_aboutMode",preserve:!0},l().createElement(a.Radio.Group,null,l().createElement(a.Radio,{value:"system"},i("System default")),l().createElement(a.Radio,{value:"custom"},i("Custom")))):null,n&&"system"===d?l().createElement(a.Typography.Paragraph,{copyable:!0,style:{backgroundColor:u.colorFillQuaternary,borderColor:u.colorBorder,borderRadius:u.borderRadius,borderStyle:"solid",borderWidth:u.lineWidth,margin:0,maxHeight:12*u.controlHeightLG,overflowY:"auto",paddingBlock:u.paddingSM,paddingInline:u.padding,whiteSpace:"pre-wrap",wordBreak:"break-word"}},(null==o?void 0:o.defaultPrompt)||""):l().createElement(a.Form.Item,{name:"about",label:M(i("Role setting")),preserve:!0},l().createElement(s.VariableTextArea,{namespaces:B,placeholder:i("Role setting placeholder"),rows:15})))},J=function(e){var t,n=g(t=e.split(":"))||E(t)||C(t)||S();return{llmService:n[0],model:n.slice(1).join(":")}},Z=function(e){return e.llmService&&e.model?"".concat(e.llmService,":").concat(e.model):void 0},ee=function(e){return j(e)?e:{}},et=function(e){return"string"==typeof e?{name:e,autoCall:!1}:j(e)&&"string"==typeof e.name?{name:e.name,autoCall:!0===e.autoCall}:void 0},en=function(e){return j(e)?{skills:Array.isArray(e.skills)?e.skills.filter(function(e){return"string"==typeof e}):[],tools:Array.isArray(e.tools)?e.tools.map(et).filter(function(e){return!!e}):[]}:{}},er=function(){var e=(0,f.M)(),t=I((0,r.useState)(!1),2),n=t[0],l=t[1];return(0,r.useEffect)(function(){var t=!1;return v(function(){return F(this,function(n){switch(n.label){case 0:l(!0),n.label=1;case 1:return n.trys.push([1,3,4,5]),[4,e.getLLMServices()];case 2:return n.sent(),[3,5];case 3:return console.error(n.sent()),[3,5];case 4:return t||l(!1),[7];case 5:return[2]}})})().catch(function(e){console.error(e)}),function(){t=!0}},[e]),{services:e.llmServices,loading:n||e.llmServicesLoading}},el=(0,c.observer)(function(){var e=(0,m.kj)(),t=a.Form.useFormInstance(),n=a.Form.useWatch("modelSettings",t),o=I((0,r.useState)(function(){return ee(t.getFieldValue("modelSettings"))}),2),i=o[0],u=o[1],s=er(),c=s.services,d=s.loading,f=!!i.enabled,p=(0,r.useMemo)(function(){var e=Array.isArray(i.models)?i.models:[];if(e.length)return e.map(Z).filter(function(e){return!!e});var t=Z(i);return t?[t]:[]},[i]),y=(0,r.useMemo)(function(){return c.map(function(e){return{label:e.llmServiceTitle,options:e.enabledModels.map(function(t){return{label:"".concat(e.llmServiceTitle," / ").concat(t.label),value:"".concat(e.llmService,":").concat(t.value)}})}})},[c]),b=(0,r.useMemo)(function(){var e=new Map;return y.forEach(function(t){t.options.forEach(function(t){return e.set(t.value,t.label)})}),e},[y]),g=(0,r.useCallback)(function(e){var n=k({},ee(t.getFieldValue("modelSettings")),e);u(n),t.setFieldsValue({modelSettings:n})},[t]);return(0,r.useEffect)(function(){u(ee(n))},[n]),(0,r.useEffect)(function(){if(f&&!p.length&&y.length){var e,t,n,r=null==(n=y[0])||null==(t=n.options)||null==(e=t[0])?void 0:e.value;r&&g({models:[J(r)]})}},[f,y,p.length,g]),l().createElement(l().Fragment,null,l().createElement(a.Alert,{type:"info",showIcon:!0,message:e("Restrict this AI employee to the selected models.")}),l().createElement(a.Form.Item,{label:l().createElement(a.Typography.Text,{strong:!0},M(e("Enable dedicated model configuration"))),preserve:!0},l().createElement(a.Switch,{checked:f,onChange:function(e){return g({enabled:e})}})),l().createElement(a.Form.Item,{label:l().createElement(a.Typography.Text,{strong:!0},M(e("Models"))),preserve:!0},l().createElement(a.Select,{allowClear:!0,disabled:!f,loading:d,mode:"multiple",notFoundContent:d?l().createElement(a.Spin,{size:"small"}):null,optionFilterProp:"label",options:y,placeholder:e("Select models"),showSearch:!0,tagRender:function(e){return l().createElement(a.Tag,{closable:e.closable,onClose:e.onClose},b.get(String(e.value))||e.label)},value:p,onChange:function(e){e.length?g({llmService:void 0,model:void 0,models:e.map(J)}):g({llmService:void 0,model:void 0,models:[]})}})))}),ea=function(){var e=(0,m.kj)();return function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return t?e(t):n}},eo=function(e){var t=e.title,n=e.description,r=a.theme.useToken().token;return l().createElement("div",null,l().createElement("div",{style:{fontWeight:r.fontWeightStrong,fontSize:r.fontSizeSM}},t),l().createElement("div",{style:{color:r.colorTextSecondary,fontSize:r.fontSizeSM}},n))},ei=(0,c.observer)(function(e){var t,n=e.builtIn,o=(0,m.kj)(),i=ea(),u=(0,f.M)(),s=a.Form.useFormInstance(),c=null!=(t=a.Form.useWatch("skillSettings",{form:s,preserve:!0}))?t:{},d=Array.isArray(c.skills)?c.skills:[];(0,r.useEffect)(function(){u.getAISkills().catch(function(e){console.error(e)})},[u]);var p=new Map(u.aiSkills.map(function(e){return[e.name,e]})),y=u.aiSkills.filter(function(e){return"GENERAL"===e.scope}),b=d.map(function(e){return p.get(e)}).filter(function(e){return!!e&&"SPECIFIED"===e.scope}),g=function(e){var t,n;return l().createElement(a.List.Item,{key:e.name},l().createElement("div",null,i(null!=(t=e.title)?t:e.name,e.name)),l().createElement(a.Typography.Text,{type:"secondary"},i(null!=(n=e.about)?n:e.description)))},h=[{key:"general-skills",label:l().createElement(eo,{title:o("General skills"),description:o("Shared by all AI employees.")}),children:l().createElement(a.List,{itemLayout:"vertical",size:"small",dataSource:y,renderItem:g})}];return n&&b.length&&h.push({key:"specific-skills",label:l().createElement(eo,{title:o("Employee-specific skills"),description:o("Only available to this AI employee.")}),children:l().createElement(a.List,{itemLayout:"vertical",size:"small",dataSource:b,renderItem:g})}),u.aiSkillsLoading?l().createElement(a.Spin,null):l().createElement(a.Collapse,{ghost:!0,size:"small",defaultActiveKey:[],items:h})}),eu=function(e,t){return"CUSTOM"===e.scope?(null==t?void 0:t.autoCall)?"ALLOW":"ASK":"ALLOW"===e.defaultPermission?"ALLOW":"ASK"},es=(0,c.observer)(function(e){var t=e.builtIn,n=(0,m.kj)(),i=a.theme.useToken().token,u=ea(),s=(0,f.M)(),c=a.Form.useFormInstance(),d=a.Form.useWatch("skillSettings",{form:c,preserve:!0}),p=I((0,r.useState)(function(){return en(c.getFieldValue("skillSettings"))}),2),y=p[0],b=p[1],g=Array.isArray(y.tools)?y.tools:[],h=I((0,r.useState)(t&&!g.length?[]:["custom-tools"]),2),v=h[0],E=h[1],S=l().useRef(g.length),C=[{label:n("Ask"),value:"ASK"},{label:n("Allow"),value:"ALLOW"}];(0,r.useEffect)(function(){s.refreshAITools().catch(function(e){console.error(e)})},[s]),(0,r.useEffect)(function(){b(en(d))},[d]);var F=function(e){var t=w(k({},en(c.getFieldValue("skillSettings"))),{tools:e});b(t),c.setFieldsValue({skillSettings:t})},x=new Set(g.map(function(e){return e.name})),T=new Map(s.aiTools.map(function(e){return[e.definition.name,e]})),O=s.aiTools.filter(function(e){return"GENERAL"===e.scope&&"loader"===e.from}),B=g.filter(function(e){var t=T.get(e.name);return t&&"GENERAL"!==t.scope&&"CUSTOM"!==t.scope}),M=g.filter(function(e){var t=T.get(e.name);return!t||"CUSTOM"===t.scope});(0,r.useEffect)(function(){var e=0===S.current;t&&0===M.length?E([]):e&&M.length>0&&E(["custom-tools"]),S.current=M.length},[t,M.length]);var P=s.aiTools.filter(function(e){return"CUSTOM"===e.scope&&!x.has(e.definition.name)}).map(function(e){var t,n,r,o;return{key:e.definition.name,label:l().createElement("div",{style:{maxWidth:8*i.controlHeightLG,minWidth:4*i.controlHeightLG}},l().createElement(a.Flex,{justify:"space-between"},l().createElement("div",null,u(null!=(t=null==(r=e.introduction)?void 0:r.title)?t:e.definition.name,e.definition.name))),l().createElement(a.Typography.Text,{type:"secondary"},u(null!=(n=null==(o=e.introduction)?void 0:o.about)?n:e.definition.description))),onClick:function(){var t=en(c.getFieldValue("skillSettings")),n=Array.isArray(t.tools)?t.tools:[];n.some(function(t){return t.name===e.definition.name})||F(A(n).concat([{name:e.definition.name,autoCall:!1}]))}}}),j=function(e){var t,r,o,i,s="definition"in e?e:T.get(e.name);if(!s)return null;var c="definition"in e?void 0:e;return l().createElement(a.List.Item,{key:s.definition.name,extra:l().createElement(a.Flex,{vertical:!0,justify:"end"},l().createElement(a.Space,null,l().createElement(a.Typography.Text,{type:"secondary"},n("Permission")),l().createElement(a.Segmented,{size:"small",options:C,value:eu(s,c),disabled:!0})))},l().createElement("div",null,u(null!=(t=null==(o=s.introduction)?void 0:o.title)?t:s.definition.name,s.definition.name)),l().createElement(a.Typography.Text,{type:"secondary"},u(null!=(r=null==(i=s.introduction)?void 0:i.about)?r:s.definition.description)))},L=[{key:"general-tools",label:l().createElement(eo,{title:n("General tools"),description:n("Shared by all AI employees.")}),children:l().createElement(a.List,{itemLayout:"vertical",size:"small",dataSource:O,renderItem:j})}];return t&&B.length&&L.push({key:"specific-tools",label:l().createElement(eo,{title:n("Employee-specific tools"),description:n("Only available to this AI employee.")}),children:l().createElement(a.List,{itemLayout:"vertical",size:"small",dataSource:B,renderItem:j})}),L.push({key:"custom-tools",label:l().createElement(eo,{title:n("Custom tools"),description:n("Created by workflow. You can add/remove and set default permissions.")}),extra:l().createElement("div",{onClick:function(e){e.stopPropagation()},onKeyDown:function(e){e.stopPropagation()}},l().createElement(a.Dropdown,{menu:{items:P},disabled:!(null==P?void 0:P.length),placement:"bottomRight"},l().createElement(a.Button,{type:"primary",icon:l().createElement(o.PlusOutlined,null),disabled:!(null==P?void 0:P.length),style:{pointerEvents:(null==P?void 0:P.length)?void 0:"none"}},n("Add tool")))),children:l().createElement(a.List,{itemLayout:"vertical",bordered:!0,dataSource:M,renderItem:function(e){var t,r,i,s,c=T.get(e.name),m=c?u(null!=(t=null==(i=c.introduction)?void 0:i.title)?t:c.definition.name,c.definition.name):e.name,d=c?u(null!=(r=null==(s=c.introduction)?void 0:s.about)?r:c.definition.description):null;return l().createElement(a.List.Item,{key:e.name,extra:l().createElement(a.Space,null,l().createElement(a.Typography.Text,null,n("Permission")),l().createElement(a.Segmented,{size:"small",options:C,value:c?eu(c,e):e.autoCall?"ALLOW":"ASK",onChange:function(t){F(g.map(function(n){return n.name===e.name?w(k({},n),{autoCall:"ALLOW"===t}):n}))}}),l().createElement(a.Button,{"aria-label":n("Delete"),icon:l().createElement(o.DeleteOutlined,null),type:"text",onClick:function(){F(g.filter(function(t){return t.name!==e.name}))}}))},l().createElement("div",null,m),d?l().createElement(a.Typography.Text,{type:"secondary"},d):null)}})}),s.aiToolsLoading?l().createElement(a.Spin,null):l().createElement(a.Collapse,{ghost:!0,size:"small",activeKey:v,onChange:function(e){return E(Array.isArray(e)?e.map(String):[String(e)])},items:L})}),ec=function(e){var t=e.apiClient,n=(0,m.kj)(),o=a.Form.useFormInstance(),i=a.Form.useWatch("enableKnowledgeBase",o),u=I((0,r.useState)([]),2),s=u[0],c=u[1],d=I((0,r.useState)(!1),2),f=d[0],p=d[1];return(0,r.useEffect)(function(){var e=!1;return v(function(){var n;return F(this,function(r){switch(r.label){case 0:p(!0),r.label=1;case 1:return r.trys.push([1,3,4,5]),[4,X(t)];case 2:return n=r.sent(),e||c(n),[3,5];case 3:return console.error(r.sent()),[3,5];case 4:return e||p(!1),[7];case 5:return[2]}})})().catch(function(e){console.error(e)}),function(){e=!0}},[t]),l().createElement(l().Fragment,null,l().createElement(a.Form.Item,{name:"enableKnowledgeBase",label:M(n("Enable Knowledge Base")),valuePropName:"checked",preserve:!0},l().createElement(a.Switch,null)),l().createElement(a.Form.Item,{name:"knowledgeBasePrompt",label:M(n("Knowledge Base Prompt")),rules:[{required:!0}],preserve:!0},l().createElement(a.Input.TextArea,{disabled:!i,autoSize:{minRows:5}})),l().createElement(a.Form.Item,{name:["knowledgeBase","knowledgeBaseKeys"],label:M(n("Knowledge Base")),rules:[{required:!!i}],preserve:!0},l().createElement(a.Select,{disabled:!i,fieldNames:{label:"name",value:"key"},loading:f,mode:"multiple",options:s})),l().createElement(a.Form.Item,{name:["knowledgeBase","topK"],label:M(n("Top K")),rules:[{required:!0}],preserve:!0},l().createElement(a.InputNumber,{disabled:!i,min:1,max:100})),l().createElement(a.Form.Item,{name:["knowledgeBase","score"],label:M(n("Score")),rules:[{required:!0}],preserve:!0},l().createElement(a.InputNumber,{disabled:!i,min:0,max:1,step:.1})))},em=function(e){var t,n=e.apiClient,r=e.activeTab,o=e.edit,i=e.onTabChange,u=e.record,s=e.knowledgeBaseEnabled,c=(0,m.kj)(),d=a.Form.useFormInstance(),f=null!=(t=a.Form.useWatch("chatSettings",d))?t:{},p=!!(null==u?void 0:u.builtIn),y=!1!==f.enableSkills,b=!1!==f.enableTools;return l().createElement(a.Tabs,{activeKey:r,onChange:i,items:[{key:"profile",label:c("Profile"),children:l().createElement(Q,{edit:o,builtIn:p}),forceRender:!0},{key:"roleSetting",label:c("Role setting"),children:l().createElement($,{builtIn:p,record:u}),forceRender:!0},{key:"modelSettings",label:c("Model settings"),children:l().createElement(el,null),forceRender:!0}].concat(A(y?[{key:"skills",label:c("Skills"),children:l().createElement(ei,{builtIn:p}),forceRender:!0}]:[]),A(b?[{key:"tools",label:c("Tools"),children:l().createElement(es,{builtIn:p}),forceRender:!0}]:[]),A(s?[{key:"knowledgeBase",label:c("KnowledgeBase"),children:l().createElement(ec,{apiClient:n}),forceRender:!0}]:[]))})},ed=function(e){var t=e.record,n=e.onUpdated,o=(0,s.useApp)(),i=(0,m.kj)(),u=a.App.useApp().message,c=(0,f.M)(),d=I((0,r.useState)(!1),2),p=d[0],y=d[1];return l().createElement(a.Switch,{checked:!!t.enabled,onChange:function(e){return v(function(){return F(this,function(r){switch(r.label){case 0:y(!0),r.label=1;case 1:return r.trys.push([1,5,6,7]),[4,U(o.apiClient,t.username,e)];case 2:return r.sent(),u.success(i("Saved successfully")),[4,n()];case 3:return r.sent(),[4,c.refreshAIEmployees()];case 4:return r.sent(),[3,7];case 5:return console.error(r.sent()),u.error(i("Failed to update")),[3,7];case 6:return y(!1),[7];case 7:return[2]}})})()},loading:p,size:"small"})},ef=function(){var e=(0,s.useApp)(),t=(0,c.useFlowContext)(),n=(0,m.kj)(),u=a.theme.useToken().token,y=a.App.useApp().message,b=(0,f.M)(),g=I((0,r.useState)("business"),2),h=g[0],E=g[1],S=I((0,r.useState)([]),2),k=S[0],w=S[1],A=I((0,r.useState)(!1),2),C=A[0],x=A[1],T=I((0,r.useState)(!1),2),O=T[0],B=T[1],M=I((0,r.useState)([]),2),j=M[0],L=M[1],R=e.apiClient.auth,K=(null==R?void 0:R.role)==="root",z=(0,r.useMemo)(function(){return{color:u.colorPrimary,marginInline:-u.paddingSM,paddingBlock:u.paddingSM,paddingInlineEnd:u.paddingXS+u.paddingSM,paddingInlineStart:u.paddingSM}},[u.colorPrimary,u.paddingSM,u.paddingXS]),W=(0,r.useCallback)(function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:h;return v(function(){return F(this,function(n){switch(n.label){case 0:x(!0),n.label=1;case 1:return n.trys.push([1,,3,4]),[4,G(e.apiClient,{category:t})];case 2:return w(n.sent().data),[3,4];case 3:return x(!1),[7];case 4:return[2]}})})()},[e.apiClient,h]);(0,r.useEffect)(function(){W().catch(function(e){console.error(e),x(!1)})},[W]),(0,r.useEffect)(function(){v(function(){return F(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,q(e.apiClient)];case 1:return B.apply(void 0,[t.sent()]),[3,3];case 2:return console.error(t.sent()),[3,3];case 3:return[2]}})})().catch(function(e){console.error(e)})},[e.apiClient]);var D=function(e){t.viewer.open({type:"drawer",width:p.o,closable:!0,content:l().createElement(ep,{editingRecord:e,knowledgeBaseEnabled:O,onSubmitted:function(){return v(function(){return F(this,function(e){switch(e.label){case 0:return[4,W()];case 1:return e.sent(),[4,b.refreshAIEmployees()];case 2:return e.sent(),[2]}})})()}})})},V=[{title:n("Avatar"),dataIndex:"avatar",render:function(e){return e?l().createElement(a.Avatar,{shape:"circle",size:"large",src:(0,d.H)(e)}):null}},{title:n("Username"),dataIndex:"username",render:function(e,t){var r=t.missingKnowledgeBaseKeys||[];return r.length?l().createElement(a.Space,{size:"small"},l().createElement("span",null,e),l().createElement(a.Tooltip,{title:n("Missing knowledge base configuration for keys: {{keys}}. Create knowledge bases with the same keys to enable this employee normally.",{keys:r.join(", ")})},l().createElement(o.ExclamationCircleOutlined,null))):e}},{title:n("Nickname"),dataIndex:"nickname"},{title:n("Position"),dataIndex:"position"},{title:n("Enabled"),dataIndex:"enabled",render:function(e,t){return l().createElement(ed,{record:t,onUpdated:function(){return W()}})}},{title:n("Actions"),key:"actions",render:function(t,r){return l().createElement(a.Space,{size:u.marginXS},l().createElement("a",{style:z,onClick:function(){return D(r)}},n("Edit")),l().createElement(a.Popconfirm,{title:n("Delete AI employee"),description:n("Are you sure you want to delete this AI employee?"),onConfirm:function(){return v(function(){return F(this,function(t){switch(t.label){case 0:if(r.builtIn&&!K)return y.warning(n("Cannot delete built-in ai employees")),[2];return[4,N(e.apiClient,r.username)];case 1:return t.sent(),y.success(n("Saved successfully")),[4,W()];case 2:return t.sent(),[4,b.refreshAIEmployees()];case 3:return t.sent(),[2]}})})()}},l().createElement("a",{style:z},n("Delete"))))}}];return l().createElement(a.Card,{style:{display:"flex",flexDirection:"column",minHeight:"100%"},styles:{body:{display:"flex",flex:1,flexDirection:"column",minHeight:0}}},l().createElement(a.Flex,{vertical:!0,gap:"middle",style:{flex:1,minHeight:0}},l().createElement(a.Flex,{justify:"space-between",wrap:"wrap",gap:"middle"},l().createElement(a.Radio.Group,{optionType:"button",value:h,options:[{label:n("Business"),value:"business"},{label:n("Developer"),value:"developer"}],onChange:function(e){return E(e.target.value)}}),l().createElement(a.Space,null,l().createElement(a.Button,{icon:l().createElement(o.ReloadOutlined,null),onClick:function(){return W()}},n("Refresh")),l().createElement(a.Button,{type:"primary",icon:l().createElement(o.PlusOutlined,null),onClick:function(){t.viewer.open({type:"drawer",width:p.o,closable:!0,content:l().createElement(ep,{knowledgeBaseEnabled:O,onSubmitted:function(){return v(function(){return F(this,function(e){switch(e.label){case 0:return[4,W()];case 1:return e.sent(),[4,b.refreshAIEmployees()];case 2:return e.sent(),[2]}})})()}})})}},n("New AI employee")))),l().createElement("div",{style:{display:"flex",flex:1,flexDirection:"column",minHeight:0}},l().createElement(s.Table,{rowKey:"username",loading:C,columns:V,dataSource:k,className:P,isDraggable:!0,onSortEnd:function(t,r){return v(function(){var l,a,o;return F(this,function(u){switch(u.label){case 0:if(!t.username||!r.username||t.username===r.username)return[2];l=k,a=k.findIndex(function(e){return e.username===t.username}),o=k.findIndex(function(e){return e.username===r.username}),a>=0&&o>=0&&w((0,i.arrayMove)(k,a,o)),u.label=1;case 1:return u.trys.push([1,5,,6]),[4,_(e.apiClient,t.username,r.username)];case 2:return u.sent(),y.success(n("Saved successfully")),[4,W()];case 3:return u.sent(),[4,b.refreshAIEmployees()];case 4:return u.sent(),[3,6];case 5:return console.error(u.sent()),w(l),y.error(n("Failed to update")),[3,6];case 6:return[2]}})})()},rowSelection:{selectedRowKeys:j,onChange:L},pagination:{defaultPageSize:20,showTotal:function(e){return n("Total {{count}} items",{count:e})}},scroll:{x:"max-content",y:"100%"}}))))},ep=function(e){var t=e.editingRecord,n=e.knowledgeBaseEnabled,o=e.onSubmitted,i=(0,s.useApp)(),u=(0,c.useFlowContext)(),d=(0,m.kj)(),f=a.App.useApp().message,p=I(a.Form.useForm(),1)[0],b=I((0,r.useState)(!1),2),g=b[0],h=b[1],E=I((0,r.useState)("profile"),2),S=E[0],A=E[1],C=I((0,r.useState)(!1),2),x=C[0],O=C[1],B=(0,r.useMemo)(function(){return t?w(k({},t),{_aboutMode:t.builtIn?t.about?"custom":"system":void 0}):{username:(0,c.randomId)(),enabled:!0,enableKnowledgeBase:!1,knowledgeBase:{knowledgeBaseKeys:[],topK:3,score:"0.6"},knowledgeBasePrompt:d("knowledge Base Prompt default"),avatar:T,builtIn:!1,category:"business"}},[t,d]),M=u.view,P=M.Header,j=M.Footer;(0,r.useEffect)(function(){p.setFieldsValue(B)},[p,B]);var L=(0,y.C)({view:u.view,form:p,initialValues:B,dirty:x,title:d("Unsaved changes"),content:d("Are you sure you don't want to save?")});return l().createElement(l().Fragment,null,l().createElement(P,{title:t?d("Edit AI employee"):d("New AI employee")}),l().createElement(a.Spin,{spinning:g},l().createElement(a.Form,{form:p,layout:"vertical",onFinish:function(e){return v(function(){var n,r;return F(this,function(l){switch(l.label){case 0:h(!0),l.label=1;case 1:if(l.trys.push([1,,8,9]),n=p.getFieldsValue(!0),r=w(k({},e),{skillSettings:en(n.skillSettings)}),!t)return[3,3];return[4,H(i.apiClient,r)];case 2:return l.sent(),[3,5];case 3:return[4,V(i.apiClient,r)];case 4:l.sent(),l.label=5;case 5:return f.success(d("Saved successfully")),[4,o()];case 6:return l.sent(),[4,u.view.close(void 0,!0)];case 7:return l.sent(),[3,9];case 8:return h(!1),[7];case 9:return[2]}})})()},onValuesChange:function(){return O(!0)}},l().createElement(em,{apiClient:i.apiClient,activeTab:S,edit:!!t,onTabChange:A,record:t,knowledgeBaseEnabled:n}))),l().createElement(j,null,l().createElement(a.Flex,{justify:"end",gap:"small"},l().createElement(a.Button,{onClick:L},d("Cancel")),l().createElement(a.Button,{type:"primary",loading:g,onClick:function(){return p.submit()}},d("Submit")))))};t.default=ef}}]);
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file is part of the NocoBase (R) project.
|
|
3
|
-
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
-
* Authors: NocoBase Team.
|
|
5
|
-
*
|
|
6
|
-
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
-
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
"use strict";(self.webpackChunk_nocobase_plugin_ai=self.webpackChunk_nocobase_plugin_ai||[]).push([["681"],{6600:function(e,t,n){n.r(t),n.d(t,{DataModelingModal:function(){return ed}});var r=n(9155),o=n.n(r),a=n(2059),l=n(7375),i=n(4069),c=n(7251),u=n(7174),s=n(3485),f=n(9488),d=n(764),p=n(5477),y=n(7757),m=n.n(y),b=n(809);n(7695);var v=n(842),h=/^\s*\{\{\s*t\s*\(\s*(['"])(.*?)\1(?:\s*,\s*([\s\S]*?))?\)\s*\}\}\s*$/,g=/\{\{\s*t\s*\(\s*(['"])(.*?)\1(?:\s*,\s*([\s\S]*?))?\)\s*\}\}/g;function O(e){var t=null==e?void 0:e.trim();if(t){try{var n=JSON.parse(t);return n&&(void 0===n?"undefined":n&&"u">typeof Symbol&&n.constructor===Symbol?"symbol":typeof n)=="object"&&!Array.isArray(n)?n:void 0}catch(e){}var r={},o=t.match(/(?:^|[{,\s])ns\s*:\s*(\[[\s\S]*?\])/);if(null==o?void 0:o[1]){var a,l,i=(a=o[1],l=[],a.replace(/(['"])(.*?)\1/g,function(e,t,n){return l.push(n),""}),l.length?l:void 0);i&&(r.ns=i)}else{var c=t.match(/(?:^|[{,\s])ns\s*:\s*(['"])(.*?)\1/);(null==c?void 0:c[2])&&(r.ns=c[2])}var u=t.match(/(?:^|[{,\s])nsMode\s*:\s*(['"])(.*?)\1/);return(null==u?void 0:u[2])&&(r.nsMode=u[2]),Object.keys(r).length?r:void 0}}function w(e,t){if("string"!=typeof e)return e;var n=e.match(h);return(null==n?void 0:n[2])?t(n[2],O(n[3])):e.replace(g,function(e,n,r,o){return t(r,O(o))})}function S(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function j(e,t,n,r,o,a,l){try{var i=e[a](l),c=i.value}catch(e){n(e);return}i.done?t(c):Promise.resolve(c).then(r,o)}function E(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function k(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function x(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var a=[],l=!0,i=!1;try{for(o=o.call(e);!(l=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);l=!0);}catch(e){i=!0,r=e}finally{try{l||null==o.return||o.return()}finally{if(i)throw r}}return a}}(e,t)||P(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function I(e){return function(e){if(Array.isArray(e))return S(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||P(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function P(e,t){if(e){if("string"==typeof e)return S(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return S(e,t)}}function A(){var e,t,n=(e=["\n width: 100%;\n height: 100%;\n svg:not(:root) {\n overflow: unset;\n }\n "],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return A=function(){return n},n}var T=new(m()),C={collection:function(e){var t=e.data,n=a.theme.useToken().token,r=(0,s.useApp)(),i=(0,f.kj)(),c=r.dataSourceManager.collectionFieldInterfaceManager,u={top:"50%",transform:"translateY(-50%)",width:n.sizeXS,height:n.sizeXS,opacity:0,pointerEvents:"none"};return o().createElement(a.Card,{size:"small",title:o().createElement("div",{style:{position:"relative"}},o().createElement(b.h7,{type:"target",position:v.yX.Left,id:t.name,style:u}),t.title," ",o().createElement("span",{style:{fontSize:n.fontSizeSM,color:n.colorTextDescription}},t.name),o().createElement(b.h7,{type:"source",position:v.yX.Right,id:t.name,style:u})),styles:{body:{padding:0,minWidth:5*n.sizeXXL}}},o().createElement(a.List,{dataSource:t.fields,size:"small",renderItem:function(e){var r=e.interface?null==c?void 0:c.getFieldInterface(e.interface):void 0;return o().createElement(a.List.Item,{style:{position:"relative"}},o().createElement(a.Flex,{justify:"space-between",gap:n.marginLG,style:{width:"100%"}},o().createElement(b.h7,{type:"source",position:v.yX.Right,id:"".concat(t.name,"-").concat(e.name),style:u}),o().createElement(a.Flex,{vertical:!0},o().createElement("div",null,e.title,e.primaryKey?o().createElement(l.KeyOutlined,{style:{marginLeft:n.marginXXS}}):null),o().createElement("div",{style:{fontSize:n.fontSizeSM,color:n.colorTextDescription}},e.name)),o().createElement(a.Flex,{vertical:!0,align:"flex-end"},o().createElement("div",{style:{fontSize:n.fontSizeSM,color:n.colorTextSecondary}},(null==r?void 0:r.title)?w(r.title,i):""),o().createElement("div",{style:{fontSize:n.fontSizeSM,color:n.colorTextDescription}},e.type))))}}))}},M=function(e,t,n,r){var o;return(o=function(){var o,a,l,i;return function(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},l=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(l,"next",{value:c(0)}),i(l,"throw",{value:c(1)}),i(l,"return",{value:c(2)}),"function"==typeof Symbol&&i(l,Symbol.iterator,{value:function(){return this}}),l;function c(i){return function(c){var u=[i,c];if(n)throw TypeError("Generator is already executing.");for(;l&&(l=0,u[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&u[0]?r.return:u[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,u[1])).done)return o;switch(r=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,r=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){a.label=u[1];break}if(6===u[0]&&a.label<o[1]){a.label=o[1],o=u;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(u);break}o[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],r=0}finally{n=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(c){switch(c.label){case 0:return a=!t.length,l={id:"root",layoutOptions:{"elk.algorithm":t.length?"org.eclipse.elk.layered":"org.eclipse.elk.box"},children:e.map(function(e){var t;return k(E({},e),{targetPosition:a?"left":"top",sourcePosition:a?"right":"bottom",width:n,height:r*(((null==(t=e.data.fields)?void 0:t.length)||0)+1)})}),edges:t},[4,T.layout(l)];case 1:return[2,{nodes:(null==(o=(i=c.sent()).children)?void 0:o.map(function(e){return k(E({},e),{position:{x:e.x||0,y:e.y||0}})}))||[],edges:i.edges||[]}]}})},function(){var e=this,t=arguments;return new Promise(function(n,r){var a=o.apply(e,t);function l(e){j(a,n,r,l,i,"next",e)}function i(e){j(a,n,r,l,i,"throw",e)}l(void 0)})})()},F=function(e){var t=e.map(function(e){return k(E({},e),{fields:e.autoGenId&&!e.fields.some(function(e){return"id"===e.name})?[{name:"id",interface:"id",type:"bigInt",title:"ID",primaryKey:!0,autoIncrement:!0}].concat(I(e.fields)):I(e.fields)})}),n=new Map(t.map(function(e){return[e.name,e]})),r=new Set,o=t.map(function(e){return{id:e.name,type:"collection",position:{x:0,y:0},data:{title:e.title,name:e.name,fields:I(e.fields)}}}),a=[],l=function(e,t){var n="".concat(e,"-").concat(t),o="".concat(t,"-").concat(e);r.has(n)||r.has(o)||(a.push({id:n,source:e,sourceHandle:e,target:t,targetHandle:t,type:"smoothstep",animated:!0}),r.add(n))},i=!0,c=!1,u=void 0;try{for(var s,f=t[Symbol.iterator]();!(i=(s=f.next()).done);i=!0){var d=s.value,p=!0,y=!1,m=void 0;try{for(var b,v=d.fields[Symbol.iterator]();!(p=(b=v.next()).done);p=!0){var h=b.value,g="string"==typeof h.target?h.target:void 0,O="string"==typeof h.through?h.through:void 0;g&&g!==d.name&&("belongsToMany"===h.type&&O&&n.has(O)?(l(d.name,O),l(O,g)):l(d.name,g))}}catch(e){y=!0,m=e}finally{try{p||null==v.return||v.return()}finally{if(y)throw m}}}}catch(e){c=!0,u=e}finally{try{i||null==f.return||f.return()}finally{if(c)throw u}}return{nodes:o,edges:a}},D=function(e){var t=e.collections,n=(0,s.useGlobalTheme)().isDarkTheme,l=a.theme.useToken().token,i=x((0,b.ck)([]),3),c=i[0],u=i[1],f=i[2],d=x((0,b.fM)([]),3),y=d[0],m=d[1],v=d[2],h=(0,r.useMemo)(function(){return F(t)},[t]),g=8*l.controlHeightLG,O=l.controlHeightLG+l.paddingSM;return(0,r.useEffect)(function(){M(h.nodes,h.edges,g,O).then(function(e){u(e.nodes),m(e.edges)}).catch(function(e){return console.error("Error laying out elements:",e)})},[h,g,O,m,u]),o().createElement("div",{className:(0,p.css)(A())},o().createElement(b.Gc,{nodes:c,edges:y,nodeTypes:C,fitView:!0,panOnDrag:!0,zoomOnScroll:!0,proOptions:{hideAttribution:!0},onNodesChange:f,onEdgesChange:v,colorMode:n?"dark":"light"},o().createElement(b.VS,null),o().createElement(b.H2,{position:"top-right"})))},R=n(2625);function L(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function G(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}var X=function(){var e=(0,s.useApp)(),t=(0,f.kj)();return(0,r.useMemo)(function(){var n,r,o,a=e.dataSourceManager.collectionFieldInterfaceManager,l=(null==a||null==(r=a.getFieldInterfaces)?void 0:r.call(a))||[],i=(null==a||null==(o=a.getFieldInterfaceGroups)?void 0:o.call(a))||{};return n=l.reduce(function(e,t){var n=t.group||"basic";return e[n]||(e[n]=[]),e[n].push(t),e},{}),Object.keys(i).map(function(e){var r=i[e];return G(L({},r),{label:w(r.label,t),key:e,options:(n[e]||[]).filter(function(e){return!e.hidden}).map(function(n){return G(L({},n),{key:"".concat(e,"-").concat(n.name),value:n.name,label:w(n.title||n.name,t)})}).sort(function(e,t){var n,r;return(null!=(n=e.order)?n:0)-(null!=(r=t.order)?r:0)})})}).filter(function(e){return e.options.length>0}).sort(function(e,t){var n,r;return(null!=(n=e.order)?n:0)-(null!=(r=t.order)?r:0)})},[e.dataSourceManager.collectionFieldInterfaceManager,t])};function z(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function N(e,t,n,r,o,a,l){try{var i=e[a](l),c=i.value}catch(e){n(e);return}i.done?t(c):Promise.resolve(c).then(r,o)}function H(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function K(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){H(e,t,n[t])})}return e}function B(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function _(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,o=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var a=[],l=!0,i=!1;try{for(o=o.call(e);!(l=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);l=!0);}catch(e){i=!0,r=e}finally{try{l||null==o.return||o.return()}finally{if(i)throw r}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return z(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return z(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function U(){var e,t,n=(e=["\n .editable-cell {\n position: relative;\n }\n\n .editable-cell-value-wrap {\n padding: ","px ","px;\n cursor: pointer;\n }\n\n &:hover .editable-cell-value-wrap {\n border: ","px "," ",";\n border-radius: ","px;\n padding: ","px\n ","px;\n }\n "],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return U=function(){return n},n}var V=o().createContext(null),q=function(e){var t=_(a.Form.useForm(),1)[0];return o().createElement(a.Form,{form:t,component:!1},o().createElement(V.Provider,{value:t},o().createElement("tr",e)))},W=function(e){var t=e.title,n=e.editable,l=e.EditComponent,i=e.ReadComponent,c=e.children,u=e.dataIndex,s=e.record,f=e.handleSave,d=function(e,t){if(null==e)return{};var n,r,o,a={};if("u">typeof Reflect&&Reflect.ownKeys){for(o=0,n=Reflect.ownKeys(Object(e));o<n.length;o++)r=n[o],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r]);return a}if(a=function(e,t){if(null==e)return{};var n,r,o={},a=Object.getOwnPropertyNames(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n]);return o}(e,t),Object.getOwnPropertySymbols)for(o=0,n=Object.getOwnPropertySymbols(e);o<n.length;o++)r=n[o],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r]);return a}(e,["title","editable","EditComponent","ReadComponent","children","dataIndex","record","handleSave"]),p=_((0,r.useState)(!1),2),y=p[0],m=p[1],b=(0,r.useRef)(null),v=(0,r.useContext)(V);(0,r.useEffect)(function(){if(y){var e,t;null==(t=b.current)||null==(e=t.focus)||e.call(t)}},[y]);var h=function(){m(!y),null==v||v.setFieldsValue(H({},u,s[u]))},g=function(){var e;return(e=function(){var e;return function(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},l=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(l,"next",{value:c(0)}),i(l,"throw",{value:c(1)}),i(l,"return",{value:c(2)}),"function"==typeof Symbol&&i(l,Symbol.iterator,{value:function(){return this}}),l;function c(i){return function(c){var u=[i,c];if(n)throw TypeError("Generator is already executing.");for(;l&&(l=0,u[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&u[0]?r.return:u[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,u[1])).done)return o;switch(r=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,r=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){a.label=u[1];break}if(6===u[0]&&a.label<o[1]){a.label=o[1],o=u;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(u);break}o[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],r=0}finally{n=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}(this,function(t){switch(t.label){case 0:if(!v)return[2];t.label=1;case 1:return t.trys.push([1,3,,4]),[4,v.validateFields()];case 2:return e=t.sent(),h(),f(K({},s,e)),[3,4];case 3:return console.log("Save failed:",t.sent()),[3,4];case 4:return[2]}})},function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function l(e){N(a,r,o,l,i,"next",e)}function i(e){N(a,r,o,l,i,"throw",e)}l(void 0)})})()},O=(null==i?void 0:i(s))||c;if(n){var w=l?o().createElement(l,{record:s,save:g,focusRef:b}):o().createElement(a.Input,{ref:b,onPressEnter:g,onBlur:g});O=y?o().createElement(a.Form.Item,{style:{margin:0},name:u,rules:[{required:!0,message:"".concat(t," is required.")}]},w):o().createElement("div",{className:"editable-cell-value-wrap",onClick:h},O)}return o().createElement("td",d,O)},$=function(e){var t=(0,f.kj)(),n=a.theme.useToken().token,r={collectionTitle:5*n.controlHeightLG,collectionName:4*n.controlHeightLG,template:4*n.controlHeightLG,preset:8*n.controlHeightLG,description:9*n.controlHeightLG};return[{title:t("Collection display name"),dataIndex:"title",key:"title",width:r.collectionTitle,editable:!0},{title:t("Collection name"),dataIndex:"name",key:"name",width:r.collectionName,editable:!0},{title:t("Collection template"),dataIndex:"template",key:"template",width:r.template,render:function(e){if("string"!=typeof e||!e)return null;var n=e.charAt(0).toUpperCase()+e.slice(1);return o().createElement(a.Tag,null,t("".concat(n," collection")))}},{title:t("Preset fields"),key:"preset",width:r.preset,render:function(e,n){var r=[];return!1!==n.autoGenId&&r.push("id"),!1!==n.createdAt&&r.push("createdAt"),!1!==n.updatedAt&&r.push("updatedAt"),n.createdBy&&r.push("createdBy"),n.updatedBy&&r.push("updatedBy"),o().createElement(a.Checkbox.Group,{options:[{label:"ID",value:"id"},{label:t("Created at"),value:"createdAt"},{label:t("Last updated at"),value:"updatedAt"},{label:t("Created by"),value:"createdBy"},{label:t("Last updated by"),value:"updatedBy"}],defaultValue:r,disabled:!0})}},{title:t("Description"),dataIndex:"description",key:"description",width:r.description}].map(function(t){return t.editable?B(K({},t),{onCell:function(n,r){return{record:n,editable:t.editable,dataIndex:t.dataIndex,title:t.title,handleSave:function(t){return e(r,t)}}}}):t})},J=function(e){var t=e.record,n=e.save,l=e.focusRef,i=e.collection,c=(0,f.kj)(),u=(0,s.useApp)(),d=(0,R.useRequest)(function(){return u.apiClient.request({url:"app:getInfo"})},{cacheKey:"@nocobase/plugin-ai/app-info"}),p=X(),y=(0,r.useMemo)(function(){return p.map(function(e){return B(K({},e),{options:e.options.filter(function(e){return Y(e,i,d.data)})})}).filter(function(e){return e.options.length>0}).map(function(e){return B(K({},e),{label:e.label,options:e.options.map(function(e){return B(K({},e),{label:e.label,value:e.value})})})})},[i,p,d.data]),m=u.dataSourceManager.collectionFieldInterfaceManager,b=t.interface?null==m?void 0:m.getFieldInterface(t.interface):void 0,v=b?function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"-",r=w(e,t);return null==r||""===r?n:"string"==typeof r||"number"==typeof r||"boolean"==typeof r?String(r):n}(b.title||t.interface,c):t.interface;return o().createElement(a.Select,{ref:l,options:y,defaultValue:v,onBlur:n})},Y=function(e,t,n){if(e.hidden)return!1;if("tableoid"===e.value){var r,o;return(null==n||null==(o=n.data)||null==(r=o.database)?void 0:r.dialect)==="postgres"}return"string"==typeof e.value&&"boolean"==typeof t[e.value]?!!t[e.value]:!["o2o","subTable","linkTo"].includes(e.name||"")},Q=function(e,t,n){var r=(0,f.kj)(),l=(0,s.useApp)(),i=a.theme.useToken().token,c={fieldTitle:5*i.controlHeightLG,fieldName:4*i.controlHeightLG,fieldInterface:5*i.controlHeightLG,description:9*i.controlHeightLG};return[a.Table.EXPAND_COLUMN,{title:r("Field display name"),dataIndex:"title",width:c.fieldTitle,key:"title",editable:!0},{title:r("Field name"),dataIndex:"name",key:"name",width:c.fieldName,editable:!0},{title:r("Field interface"),width:c.fieldInterface,dataIndex:"interface",key:"interface",editable:!0,EditComponent:function(t){return o().createElement(J,B(K({},t),{collection:e}))},ReadComponent:function(e){var t,n=e.interface;if(!n)return null;var i=null==(t=l.dataSourceManager.collectionFieldInterfaceManager)?void 0:t.getFieldInterface(n);return o().createElement(a.Tag,null,i?w(i.title,r):n)}},{title:r("Description"),dataIndex:"description",key:"description",width:c.description}].map(function(e){return e.editable?B(K({},e),{onCell:function(r,o){return{record:r,editable:e.editable,dataIndex:e.dataIndex,title:e.title,EditComponent:e.EditComponent,ReadComponent:e.ReadComponent,handleSave:function(e){return n(t,o,e)}}}}):e})},Z=function(e){var t=e.record,n=a.theme.useToken().token,r={color:n.colorTextSecondary,marginRight:n.marginXS,marginLeft:n.marginXXL},l=[["Target",t.target],["TargetKey",t.targetKey],["SourceKey",t.sourceKey],["ForeignKey",t.foreignKey],["OtherKey",t.otherKey]];return o().createElement(o().Fragment,null,t.enum?o().createElement("div",null,o().createElement("span",{style:r},"Enumurations:"),t.enum.map(function(e){return o().createElement(a.Tag,{key:e.value},e.label," (",e.value,")")})):null,l.map(function(e){var t=_(e,2),n=t[0],a=t[1];return a?o().createElement("div",{key:n},o().createElement("span",{style:r},n,":"),o().createElement("span",null,a)):null}))},ee=function(e){var t=e.record,n=e.collectionIndex,r=e.rowClassName,l=Q(t,n,e.updateFieldRecord);return o().createElement(a.Table,{rowKey:"name",rowClassName:r,columns:l,components:{body:{row:q,cell:W}},dataSource:t.fields,pagination:!1,expandable:{rowExpandable:function(e){var t;return!!(null==(t=e.enum)?void 0:t.length)||["m2m","m2o","o2m","o2o"].includes(String(e.interface))},expandedRowRender:function(e){return o().createElement(Z,{record:e})}}})},et=function(e){var t,n=e.collections,l=e.updateCollectionRecord,i=e.updateFieldRecord,c=a.theme.useToken().token,u=$(l),s=(t=a.theme.useToken().token,(0,r.useMemo)(function(){return(0,p.cx)("editable-row",(0,p.css)(U(),t.paddingXXS,t.paddingSM,t.lineWidth,t.lineType,t.colorBorder,t.borderRadius,Math.max(t.paddingXXS-t.lineWidth,0),Math.max(t.paddingSM-t.lineWidth,0)))},[t]));return o().createElement(a.Table,{scroll:{y:"calc(100vh - ".concat(c.controlHeightLG+8*c.marginXXL,"px)")},style:{height:"calc(100vh - ".concat(c.controlHeightLG+6*c.marginXXL,"px)")},rowKey:"name",rowClassName:s,columns:u,dataSource:n,components:{body:{row:q,cell:W}},expandable:{expandedRowRender:function(e,t,r,a){var l=n.findIndex(function(t){return t.name===e.name});return a?o().createElement(ee,{record:e,collectionIndex:l,rowClassName:s,updateFieldRecord:i}):null},rowExpandable:function(e){var t;return!!(null==(t=e.fields)?void 0:t.length)}}})};function en(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function er(e,t,n,r,o,a,l){try{var i=e[a](l),c=i.value}catch(e){n(e);return}i.done?t(c):Promise.resolve(c).then(r,o)}function eo(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function l(e){er(a,r,o,l,i,"next",e)}function i(e){er(a,r,o,l,i,"throw",e)}l(void 0)})}}function ea(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function el(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function ei(e){return function(e){if(Array.isArray(e))return en(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e){if(e){if("string"==typeof e)return en(e,void 0);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return en(e,void 0)}}(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ec(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},l=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(l,"next",{value:c(0)}),i(l,"throw",{value:c(1)}),i(l,"return",{value:c(2)}),"function"==typeof Symbol&&i(l,Symbol.iterator,{value:function(){return this}}),l;function c(i){return function(c){var u=[i,c];if(n)throw TypeError("Generator is already executing.");for(;l&&(l=0,u[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&u[0]?r.return:u[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,u[1])).done)return o;switch(r=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,r=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){a.label=u[1];break}if(6===u[0]&&a.label<o[1]){a.label=o[1],o=u;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(u);break}o[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],r=0}finally{n=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var eu=function(e){if(Array.isArray(e))return e;if("string"!=typeof e)return null;try{var t=JSON.parse(e);return Array.isArray(t)?t:null}catch(e){return null}},es=function(e){var t=e.children,n=a.theme.useToken().token;return o().createElement("div",{style:{height:"calc(100vh - ".concat(n.controlHeightLG+7*n.marginXXL,"px)"),overflowY:"auto"}},t)},ef=function(e){var t=(0,s.useApp)();return(0,r.useMemo)(function(){var n=t.dataSourceManager.collectionFieldInterfaceManager;return(e||[]).map(function(e){var t;return el(ea({},e),{hidden:!1,fields:(null==(t=e.fields)?void 0:t.map(function(e){var t=e.interface?null==n?void 0:n.getFieldInterface(e.interface):void 0,r=(null==t?void 0:t.default)||{},o=ea(el(ea({},r.uiSchema,e.uiSchema),{title:e.title}),e.enum?{enum:e.enum}:{});return el(ea({},e),{type:e.type||r.type,uiSchema:o})}))||[]})})},[t.dataSourceManager.collectionFieldInterfaceManager,e])},ed=function(e){var t=e.tool,n=e.saveToolArgs,p=(0,f.kj)(),y=(0,s.useGlobalTheme)().isDarkTheme,m=ef(eu(t.args.collections)),b=d.y.use.setAdjustArgs(),v={updateCollectionRecord:(0,r.useCallback)(function(e,r){return eo(function(){var o,a;return ec(this,function(l){switch(l.label){case 0:if(!(null==(o=eu(t.args.collections))?void 0:o[e]))return[2];return(a=ei(o))[e]=ea({},a[e],r),[4,null==n?void 0:n(el(ea({},t.args),{collections:a}))];case 1:return l.sent(),[2]}})})()},[n,t.args]),updateFieldRecord:(0,r.useCallback)(function(e,r,o){return eo(function(){var a,l,i,c,u;return ec(this,function(s){switch(s.label){case 0:if(!(null==(i=eu(t.args.collections))||null==(l=i[e])||null==(a=l.fields)?void 0:a[r]))return[2];return c=ei(i),(u=ei(c[e].fields))[r]=ea({},u[r],o),c[e]=el(ea({},c[e]),{fields:u}),[4,null==n?void 0:n(el(ea({},t.args),{collections:c}))];case 1:return s.sent(),[2]}})})()},[n,t.args])},h=v.updateCollectionRecord,g=v.updateFieldRecord;return((0,r.useEffect)(function(){b(el(ea({},t.args),{collections:m}))},[m,b,t.args]),eu(t.args.collections))?o().createElement(a.Tabs,{defaultActiveKey:"collections",items:[{key:"collections",label:p("Collections"),icon:o().createElement(l.DatabaseOutlined,null),children:o().createElement(et,{collections:m,updateCollectionRecord:h,updateFieldRecord:g})},{key:"graph",icon:o().createElement(l.NodeIndexOutlined,null),label:p("Diagram"),children:o().createElement(es,null,o().createElement(D,{collections:m}))},{key:"definition",icon:o().createElement(l.FileTextOutlined,null),label:"Definition",children:o().createElement(es,null,o().createElement(i.A,{language:"json",style:y?c.A:u.A},JSON.stringify(m,null,2)))}]}):o().createElement(a.Alert,{showIcon:!0,type:"error",message:p("Invalid definition")})}}}]);
|