@nocobase/plugin-ai 2.2.0-beta.5 → 2.2.0-beta.7
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/knowledge-base/dev/external-knowledge-base.md +318 -0
- package/dist/ai/docs/nocobase/ai-employees/knowledge-base/knowledge-base/documents.md +76 -0
- package/dist/ai/docs/nocobase/ai-employees/knowledge-base/knowledge-base/hit-tests.md +66 -0
- package/dist/ai/docs/nocobase/ai-employees/knowledge-base/knowledge-base/index.md +73 -0
- package/dist/ai/docs/nocobase/ai-employees/knowledge-base/knowledge-base/segments.md +93 -0
- package/dist/ai/docs/nocobase/ai-employees/knowledge-base/knowledge-base/settings.md +77 -0
- package/dist/ai/docs/nocobase/ai-employees/knowledge-base/rag.md +1 -1
- package/dist/ai/docs/nocobase/ai-employees/workflow/nodes/knowledge/create-document.md +79 -0
- package/dist/ai/docs/nocobase/ai-employees/workflow/nodes/knowledge/delete-document.md +71 -0
- package/dist/ai/docs/nocobase/ai-employees/workflow/nodes/knowledge/index.md +92 -0
- package/dist/ai/docs/nocobase/ai-employees/workflow/nodes/knowledge/retrieve-document.md +87 -0
- package/dist/ai/docs/nocobase/ai-employees/workflow/nodes/knowledge/update-document.md +70 -0
- package/dist/ai/docs/nocobase/api/cli/app/restart.md +4 -0
- package/dist/ai/docs/nocobase/api/cli/app/start.md +7 -0
- package/dist/ai/docs/nocobase/api/cli/app/upgrade.md +6 -0
- package/dist/ai/docs/nocobase/api/cli/init.md +39 -2
- package/dist/ai/docs/nocobase/api/cli/source/download.md +19 -0
- package/dist/ai/docs/nocobase/data-sources/data-modeling/collection-fields/validation.md +11 -8
- package/dist/ai/docs/nocobase/development/index.md +9 -2
- package/dist/ai/docs/nocobase/interface-builder/fields/field-settings/validation-rules.md +6 -2
- package/dist/ai/docs/nocobase/plugin-development/client/index.md +1 -0
- package/dist/ai/docs/nocobase/plugins/@nocobase/plugin-multi-portal/index.md +16 -0
- package/dist/ai/docs/nocobase/plugins/@nocobase/plugin-ui-layout/index.md +14 -0
- package/dist/ai/docs/nocobase/shared-components/create-form-registry.md +38 -0
- package/dist/ai/docs/nocobase/shared-components/filter/collection-filter-panel.md +44 -0
- package/dist/ai/docs/nocobase/shared-components/filter/index.md +44 -0
- package/dist/ai/docs/nocobase/shared-components/form/code-scanner.md +34 -0
- package/dist/ai/docs/nocobase/shared-components/form/dialog-form-layout.md +45 -0
- package/dist/ai/docs/nocobase/shared-components/form/drawer-form-layout.md +45 -0
- package/dist/ai/docs/nocobase/shared-components/form/env-variable-input.md +30 -0
- package/dist/ai/docs/nocobase/shared-components/form/file-size-input.md +24 -0
- package/dist/ai/docs/nocobase/shared-components/form/json-text-area.md +28 -0
- package/dist/ai/docs/nocobase/shared-components/form/password-input.md +23 -0
- package/dist/ai/docs/nocobase/shared-components/form/remote-select.md +34 -0
- package/dist/ai/docs/nocobase/shared-components/form/scan-input.md +27 -0
- package/dist/ai/docs/nocobase/shared-components/form/typed-variable-input.md +30 -0
- package/dist/ai/docs/nocobase/shared-components/form/variable-input.md +35 -0
- package/dist/ai/docs/nocobase/shared-components/form/variable-json-text-area.md +33 -0
- package/dist/ai/docs/nocobase/shared-components/form/variable-text-area.md +33 -0
- package/dist/ai/docs/nocobase/shared-components/icon.md +21 -0
- package/dist/ai/docs/nocobase/shared-components/index.md +70 -0
- package/dist/ai/docs/nocobase/shared-components/table/index.md +39 -0
- package/dist/ai/docs/nocobase/shared-components/table/sort-handle.md +37 -0
- package/dist/ai/docs/nocobase/shared-components/table/sortable-row.md +36 -0
- package/dist/client/{406.9a530334eae8cede.js → 406.15c09d98faa2ccf1.js} +1 -1
- package/dist/client/{428.fdd0cc3cfd1632ef.js → 428.5eb4f53ddbb6a3b8.js} +1 -1
- package/dist/client/580.35ba54ff91b7fe6d.js +10 -0
- package/dist/client/ai-employees/ProfileCard.d.ts +1 -0
- package/dist/client/ai-employees/admin/mcp/schemas.d.ts +46 -18
- package/dist/client/ai-employees/chatbox/hooks/useChatMessageActions.d.ts +2 -3
- package/dist/client/index.js +3 -3
- package/dist/client-v2/index.js +1 -1
- package/dist/collections/ai-mcp-clients.js +5 -0
- package/dist/externalVersion.js +21 -21
- package/dist/locale/en-US.json +8 -3
- package/dist/locale/zh-CN.json +8 -3
- package/dist/node_modules/@langchain/xai/dist/chat_models/completions.cjs +25 -34
- package/dist/node_modules/@langchain/xai/dist/chat_models/completions.d.cts +10 -22
- package/dist/node_modules/@langchain/xai/dist/chat_models/completions.d.ts +10 -22
- package/dist/node_modules/@langchain/xai/dist/chat_models/completions.js +17 -25
- package/dist/node_modules/@langchain/xai/dist/chat_models/index.cjs +2 -2
- package/dist/node_modules/@langchain/xai/dist/chat_models/index.d.cts +3 -0
- package/dist/node_modules/@langchain/xai/dist/chat_models/index.js +3 -2
- package/dist/node_modules/@langchain/xai/dist/chat_models/responses-types.d.cts +5 -12
- package/dist/node_modules/@langchain/xai/dist/chat_models/responses-types.d.ts +5 -12
- package/dist/node_modules/@langchain/xai/dist/chat_models/responses.cjs +18 -19
- package/dist/node_modules/@langchain/xai/dist/chat_models/responses.d.cts +1 -1
- package/dist/node_modules/@langchain/xai/dist/chat_models/responses.d.ts +1 -1
- package/dist/node_modules/@langchain/xai/dist/chat_models/responses.js +13 -13
- package/dist/node_modules/@langchain/xai/dist/converters/responses.cjs +16 -22
- package/dist/node_modules/@langchain/xai/dist/converters/responses.js +7 -12
- package/dist/node_modules/@langchain/xai/dist/index.cjs +2 -2
- package/dist/node_modules/@langchain/xai/dist/index.d.ts +0 -1
- package/dist/node_modules/@langchain/xai/dist/index.js +1 -2
- package/dist/node_modules/@langchain/xai/dist/live_search.cjs +4 -5
- package/dist/node_modules/@langchain/xai/dist/live_search.js +4 -4
- package/dist/node_modules/@langchain/xai/dist/profiles.cjs +81 -97
- package/dist/node_modules/@langchain/xai/dist/profiles.js +81 -96
- package/dist/node_modules/@langchain/xai/dist/tools/code_execution.cjs +1 -2
- package/dist/node_modules/@langchain/xai/dist/tools/code_execution.js +1 -1
- package/dist/node_modules/@langchain/xai/dist/tools/collections_search.cjs +1 -2
- package/dist/node_modules/@langchain/xai/dist/tools/collections_search.js +1 -1
- package/dist/node_modules/@langchain/xai/dist/tools/index.cjs +6 -7
- package/dist/node_modules/@langchain/xai/dist/tools/index.d.cts +1 -2
- package/dist/node_modules/@langchain/xai/dist/tools/index.d.ts +1 -2
- package/dist/node_modules/@langchain/xai/dist/tools/index.js +6 -7
- package/dist/node_modules/@langchain/xai/dist/tools/live_search.cjs +3 -7
- package/dist/node_modules/@langchain/xai/dist/tools/live_search.d.cts +1 -2
- package/dist/node_modules/@langchain/xai/dist/tools/live_search.d.ts +1 -2
- package/dist/node_modules/@langchain/xai/dist/tools/live_search.js +3 -6
- package/dist/node_modules/@langchain/xai/dist/tools/web_search.cjs +1 -2
- package/dist/node_modules/@langchain/xai/dist/tools/web_search.js +1 -1
- package/dist/node_modules/@langchain/xai/dist/tools/x_search.cjs +1 -2
- package/dist/node_modules/@langchain/xai/dist/tools/x_search.js +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/_vendor/zod-to-json-schema/parsers/branded.d.mts +1 -1
- package/dist/node_modules/openai/_vendor/zod-to-json-schema/parsers/branded.d.ts +1 -1
- package/dist/node_modules/openai/_vendor/zod-to-json-schema/parsers/catch.d.mts +1 -1
- package/dist/node_modules/openai/_vendor/zod-to-json-schema/parsers/catch.d.ts +1 -1
- package/dist/node_modules/openai/_vendor/zod-to-json-schema/parsers/readonly.d.mts +1 -1
- package/dist/node_modules/openai/_vendor/zod-to-json-schema/parsers/readonly.d.ts +1 -1
- package/dist/node_modules/openai/api-promise.d.mts +1 -0
- package/dist/node_modules/openai/api-promise.d.ts +1 -0
- package/dist/node_modules/openai/auth/index.d.mts +4 -0
- package/dist/node_modules/openai/auth/index.d.ts +4 -0
- package/dist/node_modules/openai/auth/index.js +11 -0
- package/dist/node_modules/openai/auth/subject-token-providers.d.mts +20 -0
- package/dist/node_modules/openai/auth/subject-token-providers.d.ts +20 -0
- package/dist/node_modules/openai/auth/subject-token-providers.js +127 -0
- package/dist/node_modules/openai/auth/types.d.mts +23 -0
- package/dist/node_modules/openai/auth/types.d.ts +23 -0
- package/dist/node_modules/openai/auth/types.js +3 -0
- package/dist/node_modules/openai/auth/workload-identity-auth.d.mts +16 -0
- package/dist/node_modules/openai/auth/workload-identity-auth.d.ts +16 -0
- package/dist/node_modules/openai/auth/workload-identity-auth.js +95 -0
- package/dist/node_modules/openai/azure.d.mts +6 -2
- package/dist/node_modules/openai/azure.d.ts +6 -2
- package/dist/node_modules/openai/azure.js +4 -3
- package/dist/node_modules/openai/beta/realtime/websocket.js +7 -2
- package/dist/node_modules/openai/beta/realtime/ws.js +5 -1
- package/dist/node_modules/openai/bin/migration-config.json +1120 -0
- package/dist/node_modules/openai/client.d.mts +72 -10
- package/dist/node_modules/openai/client.d.ts +72 -10
- package/dist/node_modules/openai/client.js +207 -28
- package/dist/node_modules/openai/core/EventEmitter.d.mts +56 -0
- package/dist/node_modules/openai/core/EventEmitter.d.ts +56 -0
- package/dist/node_modules/openai/core/EventEmitter.js +93 -0
- package/dist/node_modules/openai/core/error.d.mts +15 -0
- package/dist/node_modules/openai/core/error.d.ts +15 -0
- package/dist/node_modules/openai/core/error.js +34 -1
- package/dist/node_modules/openai/core/pagination.d.mts +18 -0
- package/dist/node_modules/openai/core/pagination.d.ts +18 -0
- package/dist/node_modules/openai/core/pagination.js +32 -1
- package/dist/node_modules/openai/core/streaming.d.mts +1 -1
- package/dist/node_modules/openai/core/streaming.d.ts +1 -1
- package/dist/node_modules/openai/core/streaming.js +2 -2
- package/dist/node_modules/openai/error.d.mts +1 -0
- package/dist/node_modules/openai/error.d.ts +1 -0
- package/dist/node_modules/openai/index.d.mts +1 -1
- package/dist/node_modules/openai/index.d.ts +1 -1
- package/dist/node_modules/openai/index.js +1 -1
- package/dist/node_modules/openai/internal/parse.js +2 -2
- package/dist/node_modules/openai/internal/qs/index.d.mts +2 -2
- package/dist/node_modules/openai/internal/qs/index.d.ts +2 -2
- package/dist/node_modules/openai/internal/request-options.d.mts +5 -0
- package/dist/node_modules/openai/internal/request-options.d.ts +5 -0
- package/dist/node_modules/openai/internal/shims.d.mts +6 -0
- package/dist/node_modules/openai/internal/shims.d.ts +6 -0
- package/dist/node_modules/openai/internal/types.d.mts +17 -11
- package/dist/node_modules/openai/internal/types.d.ts +17 -11
- package/dist/node_modules/openai/internal/utils/env.js +2 -2
- package/dist/node_modules/openai/internal/utils/log.js +2 -0
- package/dist/node_modules/openai/internal/utils/query.d.mts +2 -0
- package/dist/node_modules/openai/internal/utils/query.d.ts +2 -0
- package/dist/node_modules/openai/internal/utils/query.js +10 -0
- package/dist/node_modules/openai/internal/utils.d.mts +1 -0
- package/dist/node_modules/openai/internal/utils.d.ts +1 -0
- package/dist/node_modules/openai/internal/utils.js +1 -0
- package/dist/node_modules/openai/internal/ws-adapter-browser.d.mts +34 -0
- package/dist/node_modules/openai/internal/ws-adapter-browser.d.ts +34 -0
- package/dist/node_modules/openai/internal/ws-adapter-browser.js +88 -0
- package/dist/node_modules/openai/internal/ws-adapter-node.d.mts +27 -0
- package/dist/node_modules/openai/internal/ws-adapter-node.d.ts +27 -0
- package/dist/node_modules/openai/internal/ws-adapter-node.js +90 -0
- package/dist/node_modules/openai/internal/ws-adapter.d.mts +24 -0
- package/dist/node_modules/openai/internal/ws-adapter.d.ts +24 -0
- package/dist/node_modules/openai/internal/ws-adapter.js +11 -0
- package/dist/node_modules/openai/internal/ws.d.mts +80 -0
- package/dist/node_modules/openai/internal/ws.d.ts +80 -0
- package/dist/node_modules/openai/internal/ws.js +153 -0
- package/dist/node_modules/openai/package.json +1 -1
- package/dist/node_modules/openai/pagination.d.mts +1 -0
- package/dist/node_modules/openai/pagination.d.ts +1 -0
- package/dist/node_modules/openai/realtime/websocket.js +7 -2
- package/dist/node_modules/openai/realtime/ws.js +5 -1
- package/dist/node_modules/openai/resource.d.mts +1 -0
- package/dist/node_modules/openai/resource.d.ts +1 -0
- package/dist/node_modules/openai/resources/admin/admin.d.mts +10 -0
- package/dist/node_modules/openai/resources/admin/admin.d.ts +10 -0
- package/dist/node_modules/openai/resources/admin/admin.js +17 -0
- package/dist/node_modules/openai/resources/admin/index.d.mts +3 -0
- package/dist/node_modules/openai/resources/admin/index.d.ts +3 -0
- package/dist/node_modules/openai/resources/admin/index.js +9 -0
- package/dist/node_modules/openai/resources/admin/organization/admin-api-keys.d.mts +140 -0
- package/dist/node_modules/openai/resources/admin/organization/admin-api-keys.d.ts +140 -0
- package/dist/node_modules/openai/resources/admin/organization/admin-api-keys.js +81 -0
- package/dist/node_modules/openai/resources/admin/organization/audit-logs.d.mts +1267 -0
- package/dist/node_modules/openai/resources/admin/organization/audit-logs.d.ts +1267 -0
- package/dist/node_modules/openai/resources/admin/organization/audit-logs.js +31 -0
- package/dist/node_modules/openai/resources/admin/organization/certificates.d.mts +322 -0
- package/dist/node_modules/openai/resources/admin/organization/certificates.d.ts +322 -0
- package/dist/node_modules/openai/resources/admin/organization/certificates.js +144 -0
- package/dist/node_modules/openai/resources/admin/organization/data-retention.d.mts +50 -0
- package/dist/node_modules/openai/resources/admin/organization/data-retention.d.ts +50 -0
- package/dist/node_modules/openai/resources/admin/organization/data-retention.js +42 -0
- package/dist/node_modules/openai/resources/admin/organization/groups/groups.d.mts +160 -0
- package/dist/node_modules/openai/resources/admin/organization/groups/groups.d.ts +160 -0
- package/dist/node_modules/openai/resources/admin/organization/groups/groups.js +109 -0
- package/dist/node_modules/openai/resources/admin/organization/groups/index.d.mts +4 -0
- package/dist/node_modules/openai/resources/admin/organization/groups/index.d.ts +4 -0
- package/dist/node_modules/openai/resources/admin/organization/groups/index.js +11 -0
- package/dist/node_modules/openai/resources/admin/organization/groups/roles.d.mts +275 -0
- package/dist/node_modules/openai/resources/admin/organization/groups/roles.d.ts +275 -0
- package/dist/node_modules/openai/resources/admin/organization/groups/roles.js +84 -0
- package/dist/node_modules/openai/resources/admin/organization/groups/users.d.mts +164 -0
- package/dist/node_modules/openai/resources/admin/organization/groups/users.d.ts +164 -0
- package/dist/node_modules/openai/resources/admin/organization/groups/users.js +84 -0
- package/dist/node_modules/openai/resources/admin/organization/groups.d.mts +2 -0
- package/dist/node_modules/openai/resources/admin/organization/groups.d.ts +2 -0
- package/dist/node_modules/openai/resources/admin/organization/groups.js +6 -0
- package/dist/node_modules/openai/resources/admin/organization/index.d.mts +13 -0
- package/dist/node_modules/openai/resources/admin/organization/index.d.ts +13 -0
- package/dist/node_modules/openai/resources/admin/organization/index.js +29 -0
- package/dist/node_modules/openai/resources/admin/organization/invites.d.mts +153 -0
- package/dist/node_modules/openai/resources/admin/organization/invites.d.ts +153 -0
- package/dist/node_modules/openai/resources/admin/organization/invites.js +83 -0
- package/dist/node_modules/openai/resources/admin/organization/organization.d.mts +50 -0
- package/dist/node_modules/openai/resources/admin/organization/organization.d.ts +50 -0
- package/dist/node_modules/openai/resources/admin/organization/organization.js +57 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/api-keys.d.mts +167 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/api-keys.d.ts +167 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/api-keys.js +68 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/certificates.d.mts +186 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/certificates.d.ts +186 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/certificates.js +64 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/data-retention.d.mts +53 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/data-retention.d.ts +53 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/data-retention.js +46 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/groups/groups.d.mts +142 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/groups/groups.d.ts +142 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/groups/groups.js +93 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/groups/index.d.mts +3 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/groups/index.d.ts +3 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/groups/index.js +9 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/groups/roles.d.mts +292 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/groups/roles.d.ts +292 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/groups/roles.js +87 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/groups.d.mts +2 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/groups.d.ts +2 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/groups.js +6 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/hosted-tool-permissions.d.mts +174 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/hosted-tool-permissions.d.ts +174 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/hosted-tool-permissions.js +45 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/index.d.mts +13 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/index.d.ts +13 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/index.js +29 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/model-permissions.d.mts +86 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/model-permissions.d.ts +86 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/model-permissions.js +63 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/projects.d.mts +188 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/projects.d.ts +188 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/projects.js +149 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/rate-limits.d.mts +120 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/rate-limits.d.ts +120 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/rate-limits.js +47 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/roles.d.mts +146 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/roles.d.ts +146 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/roles.js +108 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/service-accounts.d.mts +168 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/service-accounts.d.ts +168 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/service-accounts.js +101 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/spend-alerts.d.mts +241 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/spend-alerts.d.ts +241 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/spend-alerts.js +102 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/users/index.d.mts +3 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/users/index.d.ts +3 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/users/index.js +9 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/users/roles.d.mts +266 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/users/roles.d.ts +266 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/users/roles.js +87 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/users/users.d.mts +157 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/users/users.d.ts +157 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/users/users.js +116 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/users.d.mts +2 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/users.d.ts +2 -0
- package/dist/node_modules/openai/resources/admin/organization/projects/users.js +6 -0
- package/dist/node_modules/openai/resources/admin/organization/projects.d.mts +2 -0
- package/dist/node_modules/openai/resources/admin/organization/projects.d.ts +2 -0
- package/dist/node_modules/openai/resources/admin/organization/projects.js +6 -0
- package/dist/node_modules/openai/resources/admin/organization/roles.d.mts +153 -0
- package/dist/node_modules/openai/resources/admin/organization/roles.d.ts +153 -0
- package/dist/node_modules/openai/resources/admin/organization/roles.js +96 -0
- package/dist/node_modules/openai/resources/admin/organization/spend-alerts.d.mts +224 -0
- package/dist/node_modules/openai/resources/admin/organization/spend-alerts.d.ts +224 -0
- package/dist/node_modules/openai/resources/admin/organization/spend-alerts.js +93 -0
- package/dist/node_modules/openai/resources/admin/organization/usage.d.mts +5123 -0
- package/dist/node_modules/openai/resources/admin/organization/usage.d.ts +5123 -0
- package/dist/node_modules/openai/resources/admin/organization/usage.js +207 -0
- package/dist/node_modules/openai/resources/admin/organization/users/index.d.mts +3 -0
- package/dist/node_modules/openai/resources/admin/organization/users/index.d.ts +3 -0
- package/dist/node_modules/openai/resources/admin/organization/users/index.js +9 -0
- package/dist/node_modules/openai/resources/admin/organization/users/roles.d.mts +249 -0
- package/dist/node_modules/openai/resources/admin/organization/users/roles.d.ts +249 -0
- package/dist/node_modules/openai/resources/admin/organization/users/roles.js +84 -0
- package/dist/node_modules/openai/resources/admin/organization/users/users.d.mts +185 -0
- package/dist/node_modules/openai/resources/admin/organization/users/users.d.ts +185 -0
- package/dist/node_modules/openai/resources/admin/organization/users/users.js +84 -0
- package/dist/node_modules/openai/resources/admin/organization/users.d.mts +2 -0
- package/dist/node_modules/openai/resources/admin/organization/users.d.ts +2 -0
- package/dist/node_modules/openai/resources/admin/organization/users.js +6 -0
- package/dist/node_modules/openai/resources/admin/organization.d.mts +2 -0
- package/dist/node_modules/openai/resources/admin/organization.d.ts +2 -0
- package/dist/node_modules/openai/resources/admin/organization.js +6 -0
- package/dist/node_modules/openai/resources/admin.d.mts +2 -0
- package/dist/node_modules/openai/resources/admin.d.ts +2 -0
- package/dist/node_modules/openai/resources/admin.js +6 -0
- package/dist/node_modules/openai/resources/audio/speech.d.mts +22 -5
- package/dist/node_modules/openai/resources/audio/speech.d.ts +22 -5
- package/dist/node_modules/openai/resources/audio/speech.js +8 -2
- package/dist/node_modules/openai/resources/audio/transcriptions.d.mts +6 -0
- package/dist/node_modules/openai/resources/audio/transcriptions.d.ts +6 -0
- package/dist/node_modules/openai/resources/audio/transcriptions.js +4 -0
- package/dist/node_modules/openai/resources/audio/translations.d.mts +3 -0
- package/dist/node_modules/openai/resources/audio/translations.d.ts +3 -0
- package/dist/node_modules/openai/resources/audio/translations.js +4 -1
- package/dist/node_modules/openai/resources/batches.d.mts +8 -4
- package/dist/node_modules/openai/resources/batches.d.ts +8 -4
- package/dist/node_modules/openai/resources/batches.js +14 -4
- package/dist/node_modules/openai/resources/beta/assistants.d.mts +6 -2
- package/dist/node_modules/openai/resources/beta/assistants.d.ts +6 -2
- package/dist/node_modules/openai/resources/beta/assistants.js +8 -0
- package/dist/node_modules/openai/resources/beta/chatkit/sessions.d.mts +4 -2
- package/dist/node_modules/openai/resources/beta/chatkit/sessions.d.ts +4 -2
- package/dist/node_modules/openai/resources/beta/chatkit/sessions.js +6 -2
- package/dist/node_modules/openai/resources/beta/chatkit/threads.d.mts +4 -4
- package/dist/node_modules/openai/resources/beta/chatkit/threads.d.ts +4 -4
- package/dist/node_modules/openai/resources/beta/chatkit/threads.js +13 -5
- package/dist/node_modules/openai/resources/beta/realtime/sessions.js +1 -0
- package/dist/node_modules/openai/resources/beta/realtime/transcription-sessions.js +1 -0
- package/dist/node_modules/openai/resources/beta/threads/messages.d.mts +2 -0
- package/dist/node_modules/openai/resources/beta/threads/messages.d.ts +2 -0
- package/dist/node_modules/openai/resources/beta/threads/messages.js +7 -0
- package/dist/node_modules/openai/resources/beta/threads/runs/runs.d.mts +2 -0
- package/dist/node_modules/openai/resources/beta/threads/runs/runs.d.ts +2 -0
- package/dist/node_modules/openai/resources/beta/threads/runs/runs.js +10 -0
- package/dist/node_modules/openai/resources/beta/threads/runs/steps.d.mts +2 -0
- package/dist/node_modules/openai/resources/beta/threads/runs/steps.d.ts +2 -0
- package/dist/node_modules/openai/resources/beta/threads/runs/steps.js +4 -0
- package/dist/node_modules/openai/resources/beta/threads/threads.d.mts +8 -4
- package/dist/node_modules/openai/resources/beta/threads/threads.d.ts +8 -4
- package/dist/node_modules/openai/resources/beta/threads/threads.js +8 -0
- package/dist/node_modules/openai/resources/chat/completions/completions.d.mts +37 -18
- package/dist/node_modules/openai/resources/chat/completions/completions.d.ts +37 -18
- package/dist/node_modules/openai/resources/chat/completions/completions.js +27 -5
- package/dist/node_modules/openai/resources/chat/completions/messages.d.mts +3 -0
- package/dist/node_modules/openai/resources/chat/completions/messages.d.ts +3 -0
- package/dist/node_modules/openai/resources/chat/completions/messages.js +4 -1
- package/dist/node_modules/openai/resources/completions.d.mts +9 -3
- package/dist/node_modules/openai/resources/completions.d.ts +9 -3
- package/dist/node_modules/openai/resources/completions.js +9 -1
- package/dist/node_modules/openai/resources/containers/containers.js +11 -3
- package/dist/node_modules/openai/resources/containers/files/content.js +1 -0
- package/dist/node_modules/openai/resources/containers/files/files.js +7 -2
- package/dist/node_modules/openai/resources/conversations/conversations.d.mts +15 -0
- package/dist/node_modules/openai/resources/conversations/conversations.d.ts +15 -0
- package/dist/node_modules/openai/resources/conversations/conversations.js +17 -4
- package/dist/node_modules/openai/resources/conversations/items.d.mts +4 -1
- package/dist/node_modules/openai/resources/conversations/items.d.ts +4 -1
- package/dist/node_modules/openai/resources/conversations/items.js +14 -3
- package/dist/node_modules/openai/resources/embeddings.d.mts +3 -0
- package/dist/node_modules/openai/resources/embeddings.d.ts +3 -0
- package/dist/node_modules/openai/resources/embeddings.js +4 -0
- package/dist/node_modules/openai/resources/evals/evals.d.mts +3 -0
- package/dist/node_modules/openai/resources/evals/evals.d.ts +3 -0
- package/dist/node_modules/openai/resources/evals/evals.js +12 -5
- package/dist/node_modules/openai/resources/evals/runs/output-items.d.mts +3 -0
- package/dist/node_modules/openai/resources/evals/runs/output-items.d.ts +3 -0
- package/dist/node_modules/openai/resources/evals/runs/output-items.js +8 -2
- package/dist/node_modules/openai/resources/evals/runs/runs.d.mts +3 -0
- package/dist/node_modules/openai/resources/evals/runs/runs.d.ts +3 -0
- package/dist/node_modules/openai/resources/evals/runs/runs.js +21 -4
- package/dist/node_modules/openai/resources/files.d.mts +11 -1
- package/dist/node_modules/openai/resources/files.d.ts +11 -1
- package/dist/node_modules/openai/resources/files.js +20 -5
- package/dist/node_modules/openai/resources/fine-tuning/alpha/graders.d.mts +3 -0
- package/dist/node_modules/openai/resources/fine-tuning/alpha/graders.d.ts +3 -0
- package/dist/node_modules/openai/resources/fine-tuning/alpha/graders.js +13 -2
- package/dist/node_modules/openai/resources/fine-tuning/checkpoints/checkpoints.d.mts +2 -2
- package/dist/node_modules/openai/resources/fine-tuning/checkpoints/checkpoints.d.ts +2 -2
- package/dist/node_modules/openai/resources/fine-tuning/checkpoints/index.d.mts +1 -1
- package/dist/node_modules/openai/resources/fine-tuning/checkpoints/index.d.ts +1 -1
- package/dist/node_modules/openai/resources/fine-tuning/checkpoints/permissions.d.mts +54 -7
- package/dist/node_modules/openai/resources/fine-tuning/checkpoints/permissions.d.ts +54 -7
- package/dist/node_modules/openai/resources/fine-tuning/checkpoints/permissions.js +26 -9
- package/dist/node_modules/openai/resources/fine-tuning/jobs/checkpoints.d.mts +3 -0
- package/dist/node_modules/openai/resources/fine-tuning/jobs/checkpoints.d.ts +3 -0
- package/dist/node_modules/openai/resources/fine-tuning/jobs/checkpoints.js +4 -1
- package/dist/node_modules/openai/resources/fine-tuning/jobs/jobs.d.mts +3 -0
- package/dist/node_modules/openai/resources/fine-tuning/jobs/jobs.d.ts +3 -0
- package/dist/node_modules/openai/resources/fine-tuning/jobs/jobs.js +26 -7
- package/dist/node_modules/openai/resources/images.d.mts +56 -24
- package/dist/node_modules/openai/resources/images.d.ts +56 -24
- package/dist/node_modules/openai/resources/images.js +11 -3
- package/dist/node_modules/openai/resources/index.d.mts +2 -1
- package/dist/node_modules/openai/resources/index.d.ts +2 -1
- package/dist/node_modules/openai/resources/index.js +3 -1
- package/dist/node_modules/openai/resources/models.d.mts +3 -0
- package/dist/node_modules/openai/resources/models.d.ts +3 -0
- package/dist/node_modules/openai/resources/models.js +6 -3
- package/dist/node_modules/openai/resources/moderations.d.mts +3 -0
- package/dist/node_modules/openai/resources/moderations.d.ts +3 -0
- package/dist/node_modules/openai/resources/moderations.js +4 -1
- package/dist/node_modules/openai/resources/realtime/calls.d.mts +13 -3
- package/dist/node_modules/openai/resources/realtime/calls.d.ts +13 -3
- package/dist/node_modules/openai/resources/realtime/calls.js +4 -0
- package/dist/node_modules/openai/resources/realtime/client-secrets.d.mts +45 -39
- package/dist/node_modules/openai/resources/realtime/client-secrets.d.ts +45 -39
- package/dist/node_modules/openai/resources/realtime/client-secrets.js +19 -1
- package/dist/node_modules/openai/resources/realtime/index.d.mts +1 -1
- package/dist/node_modules/openai/resources/realtime/index.d.ts +1 -1
- package/dist/node_modules/openai/resources/realtime/realtime.d.mts +592 -21
- package/dist/node_modules/openai/resources/realtime/realtime.d.ts +592 -21
- package/dist/node_modules/openai/resources/responses/index.d.mts +2 -0
- package/dist/node_modules/openai/resources/responses/index.d.ts +2 -0
- package/dist/node_modules/openai/resources/responses/input-items.js +1 -1
- package/dist/node_modules/openai/resources/responses/input-tokens.d.mts +4 -1
- package/dist/node_modules/openai/resources/responses/input-tokens.d.ts +4 -1
- package/dist/node_modules/openai/resources/responses/input-tokens.js +9 -2
- package/dist/node_modules/openai/resources/responses/internal-base.d.mts +71 -0
- package/dist/node_modules/openai/resources/responses/internal-base.d.ts +71 -0
- package/dist/node_modules/openai/resources/responses/internal-base.js +48 -0
- package/dist/node_modules/openai/resources/responses/responses.d.mts +956 -64
- package/dist/node_modules/openai/resources/responses/responses.d.ts +956 -64
- package/dist/node_modules/openai/resources/responses/responses.js +20 -5
- package/dist/node_modules/openai/resources/responses/ws-base.d.mts +106 -0
- package/dist/node_modules/openai/resources/responses/ws-base.d.ts +106 -0
- package/dist/node_modules/openai/resources/responses/ws-base.js +476 -0
- package/dist/node_modules/openai/resources/responses/ws.d.mts +13 -0
- package/dist/node_modules/openai/resources/responses/ws.d.ts +13 -0
- package/dist/node_modules/openai/resources/responses/ws.js +31 -0
- package/dist/node_modules/openai/resources/shared.d.mts +3 -2
- package/dist/node_modules/openai/resources/shared.d.ts +3 -2
- package/dist/node_modules/openai/resources/skills/content.d.mts +1 -1
- package/dist/node_modules/openai/resources/skills/content.d.ts +1 -1
- package/dist/node_modules/openai/resources/skills/content.js +2 -1
- package/dist/node_modules/openai/resources/skills/skills.d.mts +5 -5
- package/dist/node_modules/openai/resources/skills/skills.d.ts +5 -5
- package/dist/node_modules/openai/resources/skills/skills.js +18 -10
- package/dist/node_modules/openai/resources/skills/versions/content.d.mts +1 -1
- package/dist/node_modules/openai/resources/skills/versions/content.d.ts +1 -1
- package/dist/node_modules/openai/resources/skills/versions/content.js +2 -1
- package/dist/node_modules/openai/resources/skills/versions/versions.d.mts +4 -4
- package/dist/node_modules/openai/resources/skills/versions/versions.d.ts +4 -4
- package/dist/node_modules/openai/resources/skills/versions/versions.js +14 -7
- package/dist/node_modules/openai/resources/uploads/parts.d.mts +3 -0
- package/dist/node_modules/openai/resources/uploads/parts.d.ts +3 -0
- package/dist/node_modules/openai/resources/uploads/parts.js +4 -1
- package/dist/node_modules/openai/resources/uploads/uploads.d.mts +10 -1
- package/dist/node_modules/openai/resources/uploads/uploads.d.ts +10 -1
- package/dist/node_modules/openai/resources/uploads/uploads.js +20 -4
- package/dist/node_modules/openai/resources/vector-stores/file-batches.d.mts +9 -3
- package/dist/node_modules/openai/resources/vector-stores/file-batches.d.ts +9 -3
- package/dist/node_modules/openai/resources/vector-stores/file-batches.js +9 -1
- package/dist/node_modules/openai/resources/vector-stores/files.d.mts +3 -1
- package/dist/node_modules/openai/resources/vector-stores/files.d.ts +3 -1
- package/dist/node_modules/openai/resources/vector-stores/files.js +10 -1
- package/dist/node_modules/openai/resources/vector-stores/vector-stores.js +6 -0
- package/dist/node_modules/openai/resources/videos.d.mts +123 -11
- package/dist/node_modules/openai/resources/videos.d.ts +123 -11
- package/dist/node_modules/openai/resources/videos.js +46 -11
- package/dist/node_modules/openai/src/auth/index.ts +9 -0
- package/dist/node_modules/openai/src/auth/subject-token-providers.ts +185 -0
- package/dist/node_modules/openai/src/auth/types.ts +28 -0
- package/dist/node_modules/openai/src/auth/workload-identity-auth.ts +122 -0
- package/dist/node_modules/openai/src/azure.ts +9 -4
- package/dist/node_modules/openai/src/beta/realtime/websocket.ts +7 -2
- package/dist/node_modules/openai/src/beta/realtime/ws.ts +5 -1
- package/dist/node_modules/openai/src/client.ts +312 -35
- package/dist/node_modules/openai/src/core/EventEmitter.ts +114 -0
- package/dist/node_modules/openai/src/core/error.ts +40 -0
- package/dist/node_modules/openai/src/core/pagination.ts +62 -0
- package/dist/node_modules/openai/src/core/streaming.ts +2 -1
- package/dist/node_modules/openai/src/index.ts +2 -0
- package/dist/node_modules/openai/src/internal/parse.ts +12 -2
- package/dist/node_modules/openai/src/internal/request-options.ts +2 -0
- package/dist/node_modules/openai/src/internal/types.ts +14 -8
- package/dist/node_modules/openai/src/internal/utils/env.ts +2 -2
- package/dist/node_modules/openai/src/internal/utils/log.ts +2 -0
- package/dist/node_modules/openai/src/internal/utils/query.ts +7 -0
- package/dist/node_modules/openai/src/internal/utils.ts +1 -0
- package/dist/node_modules/openai/src/internal/ws-adapter-browser.ts +123 -0
- package/dist/node_modules/openai/src/internal/ws-adapter-node.ts +105 -0
- package/dist/node_modules/openai/src/internal/ws-adapter.ts +30 -0
- package/dist/node_modules/openai/src/internal/ws.ts +193 -0
- package/dist/node_modules/openai/src/realtime/websocket.ts +7 -2
- package/dist/node_modules/openai/src/realtime/ws.ts +5 -1
- package/dist/node_modules/openai/src/resources/admin/admin.ts +15 -0
- package/dist/node_modules/openai/src/resources/admin/index.ts +4 -0
- package/dist/node_modules/openai/src/resources/admin/organization/admin-api-keys.ts +199 -0
- package/dist/node_modules/openai/src/resources/admin/organization/audit-logs.ts +1597 -0
- package/dist/node_modules/openai/src/resources/admin/organization/certificates.ts +458 -0
- package/dist/node_modules/openai/src/resources/admin/organization/data-retention.ts +79 -0
- package/dist/node_modules/openai/src/resources/admin/organization/groups/groups.ts +277 -0
- package/dist/node_modules/openai/src/resources/admin/organization/groups/index.ts +36 -0
- package/dist/node_modules/openai/src/resources/admin/organization/groups/roles.ts +359 -0
- package/dist/node_modules/openai/src/resources/admin/organization/groups/users.ts +232 -0
- package/dist/node_modules/openai/src/resources/admin/organization/groups.ts +3 -0
- package/dist/node_modules/openai/src/resources/admin/organization/index.ts +117 -0
- package/dist/node_modules/openai/src/resources/admin/organization/invites.ts +215 -0
- package/dist/node_modules/openai/src/resources/admin/organization/organization.ts +272 -0
- package/dist/node_modules/openai/src/resources/admin/organization/projects/api-keys.ts +239 -0
- package/dist/node_modules/openai/src/resources/admin/organization/projects/certificates.ts +269 -0
- package/dist/node_modules/openai/src/resources/admin/organization/projects/data-retention.ts +91 -0
- package/dist/node_modules/openai/src/resources/admin/organization/projects/groups/groups.ts +231 -0
- package/dist/node_modules/openai/src/resources/admin/organization/projects/groups/index.ts +24 -0
- package/dist/node_modules/openai/src/resources/admin/organization/projects/groups/roles.ts +386 -0
- package/dist/node_modules/openai/src/resources/admin/organization/projects/groups.ts +3 -0
- package/dist/node_modules/openai/src/resources/admin/organization/projects/hosted-tool-permissions.ts +217 -0
- package/dist/node_modules/openai/src/resources/admin/organization/projects/index.ts +102 -0
- package/dist/node_modules/openai/src/resources/admin/organization/projects/model-permissions.ts +123 -0
- package/dist/node_modules/openai/src/resources/admin/organization/projects/projects.ts +445 -0
- package/dist/node_modules/openai/src/resources/admin/organization/projects/rate-limits.ts +173 -0
- package/dist/node_modules/openai/src/resources/admin/organization/projects/roles.ts +210 -0
- package/dist/node_modules/openai/src/resources/admin/organization/projects/service-accounts.ts +266 -0
- package/dist/node_modules/openai/src/resources/admin/organization/projects/spend-alerts.ts +332 -0
- package/dist/node_modules/openai/src/resources/admin/organization/projects/users/index.ts +25 -0
- package/dist/node_modules/openai/src/resources/admin/organization/projects/users/roles.ts +351 -0
- package/dist/node_modules/openai/src/resources/admin/organization/projects/users/users.ts +256 -0
- package/dist/node_modules/openai/src/resources/admin/organization/projects/users.ts +3 -0
- package/dist/node_modules/openai/src/resources/admin/organization/projects.ts +3 -0
- package/dist/node_modules/openai/src/resources/admin/organization/roles.ts +217 -0
- package/dist/node_modules/openai/src/resources/admin/organization/spend-alerts.ts +301 -0
- package/dist/node_modules/openai/src/resources/admin/organization/usage.ts +6427 -0
- package/dist/node_modules/openai/src/resources/admin/organization/users/index.ts +22 -0
- package/dist/node_modules/openai/src/resources/admin/organization/users/roles.ts +328 -0
- package/dist/node_modules/openai/src/resources/admin/organization/users/users.ts +291 -0
- package/dist/node_modules/openai/src/resources/admin/organization/users.ts +3 -0
- package/dist/node_modules/openai/src/resources/admin/organization.ts +3 -0
- package/dist/node_modules/openai/src/resources/admin.ts +3 -0
- package/dist/node_modules/openai/src/resources/audio/speech.ts +26 -6
- package/dist/node_modules/openai/src/resources/audio/transcriptions.ts +7 -0
- package/dist/node_modules/openai/src/resources/audio/translations.ts +7 -1
- package/dist/node_modules/openai/src/resources/batches.ts +20 -8
- package/dist/node_modules/openai/src/resources/beta/assistants.ts +11 -2
- package/dist/node_modules/openai/src/resources/beta/chatkit/sessions.ts +6 -2
- package/dist/node_modules/openai/src/resources/beta/chatkit/threads.ts +13 -5
- package/dist/node_modules/openai/src/resources/beta/realtime/sessions.ts +1 -0
- package/dist/node_modules/openai/src/resources/beta/realtime/transcription-sessions.ts +1 -0
- package/dist/node_modules/openai/src/resources/beta/threads/messages.ts +7 -0
- package/dist/node_modules/openai/src/resources/beta/threads/runs/runs.ts +10 -0
- package/dist/node_modules/openai/src/resources/beta/threads/runs/steps.ts +4 -0
- package/dist/node_modules/openai/src/resources/beta/threads/threads.ts +14 -4
- package/dist/node_modules/openai/src/resources/chat/completions/completions.ts +64 -27
- package/dist/node_modules/openai/src/resources/chat/completions/messages.ts +4 -1
- package/dist/node_modules/openai/src/resources/completions.ts +15 -6
- package/dist/node_modules/openai/src/resources/containers/containers.ts +11 -3
- package/dist/node_modules/openai/src/resources/containers/files/content.ts +1 -0
- package/dist/node_modules/openai/src/resources/containers/files/files.ts +7 -2
- package/dist/node_modules/openai/src/resources/conversations/conversations.ts +31 -4
- package/dist/node_modules/openai/src/resources/conversations/items.ts +17 -3
- package/dist/node_modules/openai/src/resources/embeddings.ts +4 -0
- package/dist/node_modules/openai/src/resources/evals/evals.ts +12 -5
- package/dist/node_modules/openai/src/resources/evals/runs/output-items.ts +8 -2
- package/dist/node_modules/openai/src/resources/evals/runs/runs.ts +21 -4
- package/dist/node_modules/openai/src/resources/files.ts +23 -5
- package/dist/node_modules/openai/src/resources/fine-tuning/alpha/graders.ts +13 -2
- package/dist/node_modules/openai/src/resources/fine-tuning/checkpoints/checkpoints.ts +6 -0
- package/dist/node_modules/openai/src/resources/fine-tuning/checkpoints/index.ts +3 -0
- package/dist/node_modules/openai/src/resources/fine-tuning/checkpoints/permissions.ts +84 -10
- package/dist/node_modules/openai/src/resources/fine-tuning/jobs/checkpoints.ts +4 -1
- package/dist/node_modules/openai/src/resources/fine-tuning/jobs/jobs.ts +26 -7
- package/dist/node_modules/openai/src/resources/images.ts +74 -27
- package/dist/node_modules/openai/src/resources/index.ts +7 -0
- package/dist/node_modules/openai/src/resources/models.ts +6 -3
- package/dist/node_modules/openai/src/resources/moderations.ts +4 -1
- package/dist/node_modules/openai/src/resources/realtime/calls.ts +21 -2
- package/dist/node_modules/openai/src/resources/realtime/client-secrets.ts +54 -40
- package/dist/node_modules/openai/src/resources/realtime/index.ts +0 -1
- package/dist/node_modules/openai/src/resources/realtime/realtime.ts +705 -20
- package/dist/node_modules/openai/src/resources/responses/index.ts +2 -0
- package/dist/node_modules/openai/src/resources/responses/input-items.ts +1 -1
- package/dist/node_modules/openai/src/resources/responses/input-tokens.ts +9 -2
- package/dist/node_modules/openai/src/resources/responses/internal-base.ts +113 -0
- package/dist/node_modules/openai/src/resources/responses/responses.ts +1314 -143
- package/dist/node_modules/openai/src/resources/responses/ws-base.ts +611 -0
- package/dist/node_modules/openai/src/resources/responses/ws.ts +38 -0
- package/dist/node_modules/openai/src/resources/shared.ts +9 -1
- package/dist/node_modules/openai/src/resources/skills/content.ts +2 -1
- package/dist/node_modules/openai/src/resources/skills/skills.ts +21 -10
- package/dist/node_modules/openai/src/resources/skills/versions/content.ts +2 -1
- package/dist/node_modules/openai/src/resources/skills/versions/versions.ts +14 -7
- package/dist/node_modules/openai/src/resources/uploads/parts.ts +4 -1
- package/dist/node_modules/openai/src/resources/uploads/uploads.ts +20 -4
- package/dist/node_modules/openai/src/resources/vector-stores/file-batches.ts +18 -4
- package/dist/node_modules/openai/src/resources/vector-stores/files.ts +13 -2
- package/dist/node_modules/openai/src/resources/vector-stores/vector-stores.ts +6 -0
- package/dist/node_modules/openai/src/resources/videos.ts +186 -16
- package/dist/node_modules/openai/src/version.ts +1 -1
- package/dist/node_modules/openai/streaming.d.mts +1 -0
- package/dist/node_modules/openai/streaming.d.ts +1 -0
- package/dist/node_modules/openai/uploads.d.mts +1 -0
- package/dist/node_modules/openai/uploads.d.ts +1 -0
- package/dist/node_modules/openai/version.d.mts +1 -1
- package/dist/node_modules/openai/version.d.ts +1 -1
- package/dist/node_modules/openai/version.js +1 -1
- package/dist/node_modules/zod/package.json +1 -1
- package/dist/server/ai-employees/ai-employee.d.ts +1 -10
- package/dist/server/ai-employees/ai-employee.js +8 -87
- package/dist/server/ai-employees/ai-knowledge-base.d.ts +0 -4
- package/dist/server/ai-employees/ai-knowledge-base.js +25 -89
- package/dist/server/collections/lc-checkpoint-blobs.js +1 -1
- package/dist/server/collections/lc-checkpoint-writes.js +1 -1
- package/dist/server/collections/lc-checkpoints.js +1 -1
- package/dist/server/features/index.d.ts +1 -1
- package/dist/server/features/knowledge-base.d.ts +2 -1
- package/dist/server/features/vector-store-provider.d.ts +1 -9
- package/dist/server/plugin.d.ts +3 -0
- package/dist/server/plugin.js +61 -0
- package/dist/server/resource/aiConversations.js +1 -1
- package/dist/server/resource/aiMcpClients.js +2 -2
- package/dist/server/resource/aiTools.js +14 -9
- package/dist/server/types/knowledge-base.type.d.ts +14 -0
- package/package.json +13 -13
- package/dist/ai/docs/nocobase/ai-employees/knowledge-base/knowledge-base.md +0 -82
- package/dist/client/580.e75f97fb883ad042.js +0 -10
- package/dist/node_modules/@langchain/xai/dist/_virtual/rolldown_runtime.cjs +0 -25
|
@@ -42,115 +42,51 @@ module.exports = __toCommonJS(ai_knowledge_base_exports);
|
|
|
42
42
|
var import_prompts = require("@langchain/core/prompts");
|
|
43
43
|
var import_ai_feature_manager = require("../manager/ai-feature-manager");
|
|
44
44
|
var import_lodash = __toESM(require("lodash"));
|
|
45
|
+
const normalizeMatchedQuestions = (value) => {
|
|
46
|
+
if (!Array.isArray(value)) {
|
|
47
|
+
return [];
|
|
48
|
+
}
|
|
49
|
+
return value.filter((item) => typeof item === "string" && item.trim() !== "");
|
|
50
|
+
};
|
|
51
|
+
const buildKnowledgeBaseContent = (content, metadata) => {
|
|
52
|
+
const matchedQuestions = normalizeMatchedQuestions(metadata == null ? void 0 : metadata.matchedQuestions);
|
|
53
|
+
if (!matchedQuestions.length) {
|
|
54
|
+
return content;
|
|
55
|
+
}
|
|
56
|
+
return `Related questions:
|
|
57
|
+
${matchedQuestions.join("\n")}
|
|
58
|
+
|
|
59
|
+
${content}`;
|
|
60
|
+
};
|
|
45
61
|
class KnowledgeBaseManager {
|
|
46
62
|
constructor(plugin) {
|
|
47
63
|
this.plugin = plugin;
|
|
48
64
|
}
|
|
49
65
|
async retrievePrompt({ username, employee, query }) {
|
|
50
|
-
employee = employee ?? await this.getEmployee(username);
|
|
66
|
+
employee = employee ?? (username ? await this.getEmployee(username) : null);
|
|
51
67
|
if (!employee) {
|
|
52
68
|
return "Specified knowledge base not existed";
|
|
53
69
|
}
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
});
|
|
70
|
+
const { knowledgeBaseKeys, topK, score } = employee.knowledgeBase ?? {};
|
|
71
|
+
if (!knowledgeBaseKeys || import_lodash.default.isEmpty(knowledgeBaseKeys)) {
|
|
72
|
+
return "Specified knowledge base not existed";
|
|
73
|
+
}
|
|
74
|
+
const promptTemplate = import_prompts.ChatPromptTemplate.fromTemplate(employee.knowledgeBasePrompt ?? "{knowledgeBaseData}");
|
|
75
|
+
const docs = await this.plugin.features.knowledgeBase.search({ knowledgeBaseKeys, query, topK, score });
|
|
59
76
|
if (!(docs == null ? void 0 : docs.length)) {
|
|
60
77
|
return "No document match in knowledge base";
|
|
61
78
|
}
|
|
62
|
-
const knowledgeBaseData = docs.map((
|
|
63
|
-
return import_lodash.default.isEmpty(knowledgeBaseData) ?
|
|
79
|
+
const knowledgeBaseData = docs.map((doc) => buildKnowledgeBaseContent(doc.content, doc.metadata)).join("\n");
|
|
80
|
+
return import_lodash.default.isEmpty(knowledgeBaseData) ? "No document match in knowledge base" : await promptTemplate.format({
|
|
64
81
|
knowledgeBaseData
|
|
65
82
|
});
|
|
66
83
|
}
|
|
67
|
-
async retrieve({ username, employee, query }) {
|
|
68
|
-
const vectorStoreProvider = this.plugin.features.vectorStoreProvider;
|
|
69
|
-
let queryResult = [];
|
|
70
|
-
if (!query || import_lodash.default.isEmpty(query)) {
|
|
71
|
-
return queryResult;
|
|
72
|
-
}
|
|
73
|
-
employee = employee ?? await this.getEmployee(username);
|
|
74
|
-
if (!employee) {
|
|
75
|
-
return queryResult;
|
|
76
|
-
}
|
|
77
|
-
const { topK, score } = this.getAIEmployeeKnowledgeBaseConfig(employee);
|
|
78
|
-
const knowledgeBaseGroup = await this.getKnowledgeBaseGroup(employee);
|
|
79
|
-
for (const entry of knowledgeBaseGroup) {
|
|
80
|
-
const { vectorStoreConfig, knowledgeBaseType, knowledgeBaseList } = entry;
|
|
81
|
-
if (!knowledgeBaseList || import_lodash.default.isEmpty(knowledgeBaseList)) {
|
|
82
|
-
continue;
|
|
83
|
-
}
|
|
84
|
-
if (knowledgeBaseType === "LOCAL") {
|
|
85
|
-
const vectorStoreService = await vectorStoreProvider.createVectorStoreService(
|
|
86
|
-
vectorStoreConfig.vectorStoreProvider,
|
|
87
|
-
[
|
|
88
|
-
{
|
|
89
|
-
key: "vectorStoreConfigKey",
|
|
90
|
-
value: vectorStoreConfig.vectorStoreConfigKey ?? ""
|
|
91
|
-
}
|
|
92
|
-
]
|
|
93
|
-
);
|
|
94
|
-
const knowledgeBaseOuterIds = knowledgeBaseList.map((x) => x.knowledgeBaseOuterId);
|
|
95
|
-
const result = await vectorStoreService.search(query, {
|
|
96
|
-
topK,
|
|
97
|
-
score,
|
|
98
|
-
filter: {
|
|
99
|
-
knowledgeBaseOuterId: { in: knowledgeBaseOuterIds }
|
|
100
|
-
}
|
|
101
|
-
});
|
|
102
|
-
queryResult = [...queryResult, ...result];
|
|
103
|
-
} else if (knowledgeBaseType === "READONLY") {
|
|
104
|
-
const vectorStoreService = await vectorStoreProvider.createVectorStoreService(
|
|
105
|
-
vectorStoreConfig.vectorStoreProvider,
|
|
106
|
-
[
|
|
107
|
-
{
|
|
108
|
-
key: "vectorStoreConfigKey",
|
|
109
|
-
value: vectorStoreConfig.vectorStoreConfigKey ?? ""
|
|
110
|
-
}
|
|
111
|
-
]
|
|
112
|
-
);
|
|
113
|
-
const result = await vectorStoreService.search(query, {
|
|
114
|
-
topK,
|
|
115
|
-
score
|
|
116
|
-
});
|
|
117
|
-
queryResult = [...queryResult, ...result];
|
|
118
|
-
} else if (knowledgeBaseType === "EXTERNAL") {
|
|
119
|
-
for (const knowledgeBase of knowledgeBaseList) {
|
|
120
|
-
const vectorStoreService = await vectorStoreProvider.createVectorStoreService(
|
|
121
|
-
vectorStoreConfig.vectorStoreProvider,
|
|
122
|
-
this.plugin.app.environment.renderJsonTemplate(knowledgeBase.vectorStoreProps ?? [])
|
|
123
|
-
);
|
|
124
|
-
const result = await vectorStoreService.search(query, {
|
|
125
|
-
topK,
|
|
126
|
-
score
|
|
127
|
-
});
|
|
128
|
-
queryResult = [...queryResult, ...result];
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
return queryResult;
|
|
133
|
-
}
|
|
134
84
|
async isEnabledKnowledgeBase(usernameOrEmployee) {
|
|
135
85
|
const featureEnabled = this.plugin.features.isFeaturesEnabled(Object.values(import_ai_feature_manager.EEFeatures));
|
|
136
86
|
const employee = typeof usernameOrEmployee === "string" ? await this.getEmployee(usernameOrEmployee) : usernameOrEmployee;
|
|
137
87
|
const knowledgeBaseEnabled = employee == null ? void 0 : employee.enableKnowledgeBase;
|
|
138
88
|
return featureEnabled && knowledgeBaseEnabled;
|
|
139
89
|
}
|
|
140
|
-
getAIEmployeeKnowledgeBaseConfig(employee) {
|
|
141
|
-
const { topK, score } = (employee == null ? void 0 : employee.knowledgeBase) ?? {};
|
|
142
|
-
return {
|
|
143
|
-
topK,
|
|
144
|
-
score
|
|
145
|
-
};
|
|
146
|
-
}
|
|
147
|
-
async getKnowledgeBaseGroup(employee) {
|
|
148
|
-
const { knowledgeBaseKeys } = (employee == null ? void 0 : employee.knowledgeBase) ?? {};
|
|
149
|
-
if (!knowledgeBaseKeys || import_lodash.default.isEmpty(knowledgeBaseKeys)) {
|
|
150
|
-
return [];
|
|
151
|
-
}
|
|
152
|
-
return await this.plugin.features.knowledgeBase.getKnowledgeBaseGroup(knowledgeBaseKeys);
|
|
153
|
-
}
|
|
154
90
|
async getEmployee(username) {
|
|
155
91
|
return await this.aiEmployeeRepo.findOne({ filter: { username } });
|
|
156
92
|
}
|
|
@@ -32,7 +32,7 @@ module.exports = __toCommonJS(lc_checkpoint_blobs_exports);
|
|
|
32
32
|
var import_database = require("@nocobase/database");
|
|
33
33
|
var lc_checkpoint_blobs_default = (0, import_database.defineCollection)({
|
|
34
34
|
name: "lcCheckpointBlobs",
|
|
35
|
-
dataCategory: "
|
|
35
|
+
dataCategory: "runtime",
|
|
36
36
|
migrationRules: ["schema-only"],
|
|
37
37
|
autoGenId: false,
|
|
38
38
|
fields: [
|
|
@@ -32,7 +32,7 @@ module.exports = __toCommonJS(lc_checkpoint_writes_exports);
|
|
|
32
32
|
var import_database = require("@nocobase/database");
|
|
33
33
|
var lc_checkpoint_writes_default = (0, import_database.defineCollection)({
|
|
34
34
|
name: "lcCheckpointWrites",
|
|
35
|
-
dataCategory: "
|
|
35
|
+
dataCategory: "runtime",
|
|
36
36
|
migrationRules: ["schema-only"],
|
|
37
37
|
autoGenId: false,
|
|
38
38
|
fields: [
|
|
@@ -32,7 +32,7 @@ module.exports = __toCommonJS(lc_checkpoints_exports);
|
|
|
32
32
|
var import_database = require("@nocobase/database");
|
|
33
33
|
var lc_checkpoints_default = (0, import_database.defineCollection)({
|
|
34
34
|
name: "lcCheckpoints",
|
|
35
|
-
dataCategory: "
|
|
35
|
+
dataCategory: "runtime",
|
|
36
36
|
migrationRules: ["schema-only"],
|
|
37
37
|
autoGenId: false,
|
|
38
38
|
fields: [
|
|
@@ -25,7 +25,7 @@ export interface AIPluginFeatureManager extends PluginFeatureManager<AIPluginFea
|
|
|
25
25
|
}
|
|
26
26
|
export type { VectorDatabaseFeature, VectorDatabaseInfo } from './vector-database';
|
|
27
27
|
export type { VectorDatabaseProviderFeature, VectorDatabaseProviderInfo, VectorDatabaseProvider, } from './vector-database-provider';
|
|
28
|
-
export type { VectorStoreProviderFeature, VectorStoreProvider, VectorStoreService, VectorStoreSearchOptions,
|
|
28
|
+
export type { VectorStoreProviderFeature, VectorStoreProvider, VectorStoreService, VectorStoreSearchOptions, } from './vector-store-provider';
|
|
29
29
|
export type { KnowledgeBaseFeature } from './knowledge-base';
|
|
30
30
|
export type { PluginFeatureKeys, PluginFeatureManager } from './feature-manager';
|
|
31
31
|
export { BasePluginFeatureManager } from './feature-manager';
|
|
@@ -6,8 +6,9 @@
|
|
|
6
6
|
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
|
-
import { KnowledgeBase, KnowledgeBaseGroup } from '../types';
|
|
9
|
+
import { DocumentSegmentedWithScore, KnowledgeBase, KnowledgeBaseGroup, SearchOptions } from '../types';
|
|
10
10
|
export interface KnowledgeBaseFeature {
|
|
11
11
|
getKnowledgeBase(knowledgeBaseKeys: string[]): Promise<KnowledgeBase[]>;
|
|
12
12
|
getKnowledgeBaseGroup(knowledgeBaseKeys: string[]): Promise<KnowledgeBaseGroup[]>;
|
|
13
|
+
search(options: SearchOptions): Promise<DocumentSegmentedWithScore[]>;
|
|
13
14
|
}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
|
-
import { VectorStoreProp } from '../types';
|
|
9
|
+
import { DocumentSegmentedWithScore, VectorStoreProp } from '../types';
|
|
10
10
|
export interface VectorStoreProviderFeature {
|
|
11
11
|
register(vsp: VectorStoreProvider): void;
|
|
12
12
|
providerNames: string[];
|
|
@@ -25,11 +25,3 @@ export type VectorStoreSearchOptions = {
|
|
|
25
25
|
score?: string;
|
|
26
26
|
filter?: any;
|
|
27
27
|
};
|
|
28
|
-
export type DocumentSegmented = {
|
|
29
|
-
content: string;
|
|
30
|
-
metadata: Record<string, any>;
|
|
31
|
-
id?: string;
|
|
32
|
-
};
|
|
33
|
-
export type DocumentSegmentedWithScore = DocumentSegmented & {
|
|
34
|
-
score: number;
|
|
35
|
-
};
|
package/dist/server/plugin.d.ts
CHANGED
|
@@ -43,10 +43,13 @@ export declare class PluginAIServer extends Plugin {
|
|
|
43
43
|
isBuilderAI(username: string): boolean;
|
|
44
44
|
afterAdd(): Promise<void>;
|
|
45
45
|
beforeLoad(): Promise<void>;
|
|
46
|
+
private resetConversationThreadsWhenCheckpointsEmpty;
|
|
46
47
|
load(): Promise<void>;
|
|
47
48
|
registerLLMProviders(): void;
|
|
48
49
|
registerTools(): void;
|
|
49
50
|
defineResources(): void;
|
|
51
|
+
registerMcpClientEvents(): void;
|
|
52
|
+
private clearMcpUserContextCacheAfterCommit;
|
|
50
53
|
setPermissions(): void;
|
|
51
54
|
registerWorkflow(): void;
|
|
52
55
|
registerWorkContextResolveStrategy(): void;
|
package/dist/server/plugin.js
CHANGED
|
@@ -128,11 +128,43 @@ class PluginAIServer extends import_server.Plugin {
|
|
|
128
128
|
await this.ai.employeeManager.init();
|
|
129
129
|
await this.ai.mcpManager.init();
|
|
130
130
|
});
|
|
131
|
+
this.app.on("afterUpgrade", async () => {
|
|
132
|
+
await this.resetConversationThreadsWhenCheckpointsEmpty();
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
async resetConversationThreadsWhenCheckpointsEmpty() {
|
|
136
|
+
const [checkpointCount, checkpointWriteCount, checkpointBlobCount, conversationsWithThreadCount] = await Promise.all([
|
|
137
|
+
this.db.getRepository("lcCheckpoints").count(),
|
|
138
|
+
this.db.getRepository("lcCheckpointWrites").count(),
|
|
139
|
+
this.db.getRepository("lcCheckpointBlobs").count(),
|
|
140
|
+
this.db.getRepository("aiConversations").count({
|
|
141
|
+
filter: {
|
|
142
|
+
thread: {
|
|
143
|
+
$gt: 0
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
})
|
|
147
|
+
]);
|
|
148
|
+
if (checkpointCount > 0 || checkpointWriteCount > 0 || checkpointBlobCount > 0 || conversationsWithThreadCount <= 1) {
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
await this.db.getRepository("aiConversations").update({
|
|
152
|
+
filter: {
|
|
153
|
+
thread: {
|
|
154
|
+
$gt: 0
|
|
155
|
+
}
|
|
156
|
+
},
|
|
157
|
+
values: {
|
|
158
|
+
thread: 0
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
this.app.logger.info(`Reset ${conversationsWithThreadCount} AI conversation threads after empty checkpoints`);
|
|
131
162
|
}
|
|
132
163
|
async load() {
|
|
133
164
|
this.registerLLMProviders();
|
|
134
165
|
this.registerTools();
|
|
135
166
|
this.defineResources();
|
|
167
|
+
this.registerMcpClientEvents();
|
|
136
168
|
this.setPermissions();
|
|
137
169
|
this.registerWorkflow();
|
|
138
170
|
this.registerWorkContextResolveStrategy();
|
|
@@ -186,6 +218,35 @@ class PluginAIServer extends import_server.Plugin {
|
|
|
186
218
|
this.app.resourceManager.registerActionHandler(`aiEmployees:${name}`, action);
|
|
187
219
|
});
|
|
188
220
|
}
|
|
221
|
+
registerMcpClientEvents() {
|
|
222
|
+
this.db.on("aiMcpClients.afterCreate", (model, { transaction } = {}) => {
|
|
223
|
+
if (model.get("useUserContext") === true) {
|
|
224
|
+
this.clearMcpUserContextCacheAfterCommit(transaction);
|
|
225
|
+
}
|
|
226
|
+
});
|
|
227
|
+
this.db.on("aiMcpClients.afterUpdate", (model, { transaction } = {}) => {
|
|
228
|
+
if (model.get("useUserContext") === true || model.previous("useUserContext") === true) {
|
|
229
|
+
this.clearMcpUserContextCacheAfterCommit(transaction);
|
|
230
|
+
}
|
|
231
|
+
});
|
|
232
|
+
this.db.on("aiMcpClients.afterDestroy", (model, { transaction } = {}) => {
|
|
233
|
+
if (model.get("useUserContext") === true) {
|
|
234
|
+
this.clearMcpUserContextCacheAfterCommit(transaction);
|
|
235
|
+
}
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
clearMcpUserContextCacheAfterCommit(transaction) {
|
|
239
|
+
const clearCache = () => {
|
|
240
|
+
this.ai.mcpManager.clearUserContextCache().catch((error) => {
|
|
241
|
+
this.app.log.warn("fail to clear user-bound mcp client cache", error);
|
|
242
|
+
});
|
|
243
|
+
};
|
|
244
|
+
if (transaction) {
|
|
245
|
+
transaction.afterCommit(clearCache);
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
248
|
+
clearCache();
|
|
249
|
+
}
|
|
189
250
|
setPermissions() {
|
|
190
251
|
this.app.acl.registerSnippet({
|
|
191
252
|
name: `pm.${this.name}.llm-services`,
|
|
@@ -671,7 +671,7 @@ var aiConversations_default = {
|
|
|
671
671
|
const toolMessageMap = new Map(
|
|
672
672
|
toolMessages.map((toolMessage) => [toolMessage.toolCallId, toolMessage])
|
|
673
673
|
);
|
|
674
|
-
const toolsList = await plugin.ai.toolsManager.listTools({ sessionId: message.sessionId });
|
|
674
|
+
const toolsList = await plugin.ai.toolsManager.listTools({ sessionId: message.sessionId, ctx });
|
|
675
675
|
const toolsMap = new Map(toolsList.map((t) => [t.definition.name, t]));
|
|
676
676
|
for (const toolCall2 of toolCalls) {
|
|
677
677
|
const tools = toolsMap.get(toolCall2.name);
|
|
@@ -44,7 +44,7 @@ const aiMcpClients = {
|
|
|
44
44
|
return;
|
|
45
45
|
}
|
|
46
46
|
const plugin = ctx.app.pm.get("ai");
|
|
47
|
-
const result = await plugin.ai.mcpManager.testConnection(values);
|
|
47
|
+
const result = await plugin.ai.mcpManager.testConnection(values, ctx);
|
|
48
48
|
ctx.body = result;
|
|
49
49
|
await next();
|
|
50
50
|
},
|
|
@@ -56,7 +56,7 @@ const aiMcpClients = {
|
|
|
56
56
|
},
|
|
57
57
|
listTools: async (ctx, next) => {
|
|
58
58
|
const plugin = ctx.app.pm.get("ai");
|
|
59
|
-
ctx.body = await plugin.ai.mcpManager.listMCPTools();
|
|
59
|
+
ctx.body = await plugin.ai.mcpManager.listMCPTools(ctx);
|
|
60
60
|
await next();
|
|
61
61
|
},
|
|
62
62
|
updateToolPermission: async (ctx, next) => {
|
|
@@ -34,10 +34,14 @@ const aiTools = {
|
|
|
34
34
|
name: "aiTools",
|
|
35
35
|
actions: {
|
|
36
36
|
list: async (ctx, next) => {
|
|
37
|
-
const
|
|
38
|
-
const {
|
|
39
|
-
const
|
|
40
|
-
|
|
37
|
+
const actionCtx = ctx;
|
|
38
|
+
const { toolsManager } = actionCtx.app.aiManager;
|
|
39
|
+
const { filter } = actionCtx.action.params;
|
|
40
|
+
const tools = await toolsManager.listTools({
|
|
41
|
+
...filter,
|
|
42
|
+
ctx: actionCtx
|
|
43
|
+
});
|
|
44
|
+
actionCtx.body = tools.map((t) => ({
|
|
41
45
|
...t,
|
|
42
46
|
definition: {
|
|
43
47
|
name: t.definition.name,
|
|
@@ -50,8 +54,9 @@ const aiTools = {
|
|
|
50
54
|
},
|
|
51
55
|
listBinding: async (ctx, next) => {
|
|
52
56
|
var _a, _b;
|
|
53
|
-
const
|
|
54
|
-
const
|
|
57
|
+
const actionCtx = ctx;
|
|
58
|
+
const { username } = actionCtx.action.params;
|
|
59
|
+
const aiEmployee = await actionCtx.app.db.getRepository("aiEmployees").findOne({
|
|
55
60
|
filter: {
|
|
56
61
|
username
|
|
57
62
|
}
|
|
@@ -60,12 +65,12 @@ const aiTools = {
|
|
|
60
65
|
return [];
|
|
61
66
|
}
|
|
62
67
|
const bindingToolNames = ((_b = (_a = aiEmployee.skillSettings) == null ? void 0 : _a.tools) == null ? void 0 : _b.map((tool) => tool.name)) ?? [];
|
|
63
|
-
const plugin =
|
|
64
|
-
const tools = await plugin.ai.toolsManager.listTools();
|
|
68
|
+
const plugin = actionCtx.app.pm.get("ai");
|
|
69
|
+
const tools = await plugin.ai.toolsManager.listTools({ ctx: actionCtx });
|
|
65
70
|
const result = tools.filter(
|
|
66
71
|
(tool) => tool.scope === "GENERAL" && tool.from === "loader" || bindingToolNames.includes(tool.definition.name)
|
|
67
72
|
);
|
|
68
|
-
|
|
73
|
+
actionCtx.body = result.map(({ introduction, definition }) => ({
|
|
69
74
|
title: (introduction == null ? void 0 : introduction.title) ?? definition.name,
|
|
70
75
|
name: definition.name,
|
|
71
76
|
description: (introduction == null ? void 0 : introduction.about) ?? definition.description
|
|
@@ -32,3 +32,17 @@ export type KnowledgeBaseGroup = {
|
|
|
32
32
|
knowledgeBaseType: KnowledgeBaseType;
|
|
33
33
|
knowledgeBaseList: KnowledgeBase[];
|
|
34
34
|
};
|
|
35
|
+
export type DocumentSegmented = {
|
|
36
|
+
content: string;
|
|
37
|
+
metadata: Record<string, any>;
|
|
38
|
+
id?: string;
|
|
39
|
+
};
|
|
40
|
+
export type DocumentSegmentedWithScore = DocumentSegmented & {
|
|
41
|
+
score: number;
|
|
42
|
+
};
|
|
43
|
+
export type SearchOptions = {
|
|
44
|
+
knowledgeBaseKeys: string[];
|
|
45
|
+
query: string;
|
|
46
|
+
topK?: number;
|
|
47
|
+
score?: string;
|
|
48
|
+
};
|
package/package.json
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"description": "Create AI employees with diverse skills to collaborate with humans, build systems, and handle business operations.",
|
|
7
7
|
"description.ru-RU": "Поддержка интеграции с AI-сервисами: предоставляются AI-узлы для рабочих процессов, расширяя возможности бизнес-обработки.",
|
|
8
8
|
"description.zh-CN": "创建各种技能的 AI 员工,与人类协同,搭建系统,处理业务。",
|
|
9
|
-
"version": "2.2.0-beta.
|
|
9
|
+
"version": "2.2.0-beta.7",
|
|
10
10
|
"main": "dist/server/index.js",
|
|
11
11
|
"homepage": "https://docs.nocobase.com/handbook/action-ai",
|
|
12
12
|
"homepage.ru-RU": "https://docs-ru.nocobase.com/handbook/action-ai",
|
|
@@ -34,16 +34,16 @@
|
|
|
34
34
|
"@ant-design/x": "^1.1.0",
|
|
35
35
|
"@dicebear/core": "^9.2.3",
|
|
36
36
|
"@dicebear/notionists": "^9.2.3",
|
|
37
|
-
"@langchain/anthropic": "
|
|
38
|
-
"@langchain/community": "
|
|
39
|
-
"@langchain/core": "
|
|
40
|
-
"@langchain/deepseek": "
|
|
41
|
-
"@langchain/google-genai": "
|
|
42
|
-
"@langchain/langgraph": "
|
|
43
|
-
"@langchain/langgraph-checkpoint": "
|
|
44
|
-
"@langchain/ollama": "
|
|
45
|
-
"@langchain/openai": "
|
|
46
|
-
"@langchain/xai": "1.3.
|
|
37
|
+
"@langchain/anthropic": "1.3.17",
|
|
38
|
+
"@langchain/community": "1.1.29",
|
|
39
|
+
"@langchain/core": "1.1.49",
|
|
40
|
+
"@langchain/deepseek": "1.0.27",
|
|
41
|
+
"@langchain/google-genai": "2.1.18",
|
|
42
|
+
"@langchain/langgraph": "1.4.4",
|
|
43
|
+
"@langchain/langgraph-checkpoint": "1.1.2",
|
|
44
|
+
"@langchain/ollama": "1.2.7",
|
|
45
|
+
"@langchain/openai": "1.4.7",
|
|
46
|
+
"@langchain/xai": "1.3.19",
|
|
47
47
|
"@nocobase/ai-employee-avatars": "^1.0.2",
|
|
48
48
|
"@xyflow/react": "^12.7.0",
|
|
49
49
|
"diff": "9.0.0",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"elkjs": "^0.10.0",
|
|
53
53
|
"jsonrepair": "3.13.1",
|
|
54
54
|
"just-bash": "^2.14.3",
|
|
55
|
-
"langchain": "
|
|
55
|
+
"langchain": "1.2.39",
|
|
56
56
|
"nodejs-snowflake": "^2.0.1",
|
|
57
57
|
"react-markdown": "^10.1.0",
|
|
58
58
|
"react-syntax-highlighter": "^15.6.1",
|
|
@@ -65,5 +65,5 @@
|
|
|
65
65
|
"keywords": [
|
|
66
66
|
"AI"
|
|
67
67
|
],
|
|
68
|
-
"gitHead": "
|
|
68
|
+
"gitHead": "e6a3fa8963a73cd9ddfc1273d71b0012483e1ad8"
|
|
69
69
|
}
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
# Knowledge Base
|
|
2
|
-
|
|
3
|
-
## Introduction
|
|
4
|
-
|
|
5
|
-
The knowledge base is the foundation of RAG retrieval. It organizes documents by category and builds an index. When an AI employee answers a question, it will prioritize searching for answers from the knowledge base.
|
|
6
|
-
|
|
7
|
-
## Knowledge Base Management
|
|
8
|
-
|
|
9
|
-
Go to the AI employee plugin configuration page, click the `Knowledge base` tab to enter the knowledge base management page.
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-

|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
Click the `Add new` button in the upper right corner to add a `Local` knowledge base.
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-

|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
Enter the necessary information for the new knowledge base:
|
|
22
|
-
|
|
23
|
-
- In the `Name` input box, enter the knowledge base name;
|
|
24
|
-
- In `File storage`, select the file storage location;
|
|
25
|
-
- In `Vector store`, select the vector store, refer to [Vector Store](/ai-employees/knowledge-base/vector-store);
|
|
26
|
-
- In the `Description` input box, enter the knowledge base description;
|
|
27
|
-
|
|
28
|
-
Click the `Submit` button to create the knowledge base.
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-

|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
## Knowledge Base Document Management
|
|
35
|
-
|
|
36
|
-
After creating the knowledge base, on the knowledge base list page, click the newly created knowledge base to enter the knowledge base document management page.
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-

|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-

|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
Click the `Upload` button to upload documents. After the documents are uploaded, vectorization will start automatically. Wait for the `Status` to change from `Pending` to `Success`.
|
|
47
|
-
|
|
48
|
-
Currently, the knowledge base supports the following document types: txt, md, json, cvs, xls, xlsx, pdf, doc, docx, ppt, pptx; pdf only supports plain text.
|
|
49
|
-
|
|
50
|
-
If you need to upload files in bulk, you can create a zip archive and upload it to the knowledge base. The backend will extract the zip archive and automatically import and vectorize the documents.
|
|
51
|
-
|
|
52
|
-

|
|
53
|
-
|
|
54
|
-
If uploading a zip archive fails because the file is too large, you can adjust the upload file size limit in the File Manager module.
|
|
55
|
-
|
|
56
|
-

|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
## Knowledge Base Types
|
|
60
|
-
|
|
61
|
-
### Local Knowledge Base
|
|
62
|
-
|
|
63
|
-
A Local knowledge base is a knowledge base stored locally in NocoBase. The documents and their vector data are all stored locally by NocoBase.
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-

|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
### Readonly Knowledge Base
|
|
70
|
-
|
|
71
|
-
A Readonly knowledge base is a read-only knowledge base. The documents and vector data are maintained externally. Only a vector database connection is created in NocoBase (currently only PGVector is supported).
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-

|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
### External Knowledge Base
|
|
78
|
-
|
|
79
|
-
An External knowledge base is an external knowledge base where documents and vector data are maintained externally. Vector database retrieval needs to be extended by developers, allowing the use of vector databases not currently supported by NocoBase.
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-

|
|
@@ -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([["580"],{7439:function(e,t,n){n.r(t),n.d(t,{MCPSettings:function(){return ep}});var r=n(3342),o=n(5477),a=n(7375),i=n(2059),s=n(9452),l=n(5230),c=n(9155),u=n.n(c),p={name:"aiMcpClients",fields:[{name:"name",type:"uid",primaryKey:!0},{name:"title",type:"string",interface:"input",uiSchema:{title:'{{t("Title")}}',"x-component":"Input"}},{name:"description",type:"string",interface:"input",uiSchema:{title:'{{t("Description")}}',"x-component":"Input.TextArea"}},{name:"enabled",type:"boolean",defaultValue:!0},{name:"transport",type:"string",interface:"select",uiSchema:{title:'{{t("Transport")}}',"x-component":"Select"}},{name:"command",type:"string",interface:"input",uiSchema:{title:'{{t("Command")}}',"x-component":"Input"}},{name:"args",type:"json",defaultValue:[]},{name:"env",type:"json",defaultValue:{}},{name:"url",type:"string",interface:"input",uiSchema:{title:'{{t("URL")}}',"x-component":"Input"}},{name:"headers",type:"json",defaultValue:{}},{name:"restart",type:"json",defaultValue:{}}]},m=n(3079);function d(e,t,n,r,o,a,i){try{var s=e[a](i),l=s.value}catch(e){n(e);return}s.done?t(l):Promise.resolve(l).then(r,o)}var f=(0,c.createContext)({rebuildClient:function(){var e;return(e=function(){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:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),s=Object.defineProperty;return s(i,"next",{value:l(0)}),s(i,"throw",{value:l(1)}),s(i,"return",{value:l(2)}),"function"==typeof Symbol&&s(i,Symbol.iterator,{value:function(){return this}}),i;function l(s){return function(l){var c=[s,l];if(n)throw TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(e){return[2,void 0]})},function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function i(e){d(a,r,o,i,s,"next",e)}function s(e){d(a,r,o,i,s,"throw",e)}i(void 0)})})()},rebuilding:!1}),y=function(e,t){var n,r,o;return null!=(n=null!=(r=null==e||null==(o=e.data)?void 0:o.data)?r:null==e?void 0:e.data)?n:t};function v(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 b(e,t,n,r,o,a,i){try{var s=e[a](i),l=s.value}catch(e){n(e);return}s.done?t(l):Promise.resolve(l).then(r,o)}function h(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function i(e){b(a,r,o,i,s,"next",e)}function s(e){b(a,r,o,i,s,"throw",e)}i(void 0)})}}function x(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}function C(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=[],i=!0,s=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){s=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(s)throw r}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return v(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 v(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 w(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),s=Object.defineProperty;return s(i,"next",{value:l(0)}),s(i,"throw",{value:l(1)}),s(i,"return",{value:l(2)}),"function"==typeof Symbol&&s(i,Symbol.iterator,{value:function(){return this}}),i;function l(s){return function(l){var c=[s,l];if(n)throw TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var A=[{label:"Ask",value:"ASK"},{label:"Allow",value:"ALLOW"}],P=function(e,t){var n=null==e?void 0:e[t];return Array.isArray(n)?n:[]},S=function(){var e=(0,m.kj)(),t=(0,r.useAPIClient)(),n=i.App.useApp().message,o=(0,r.useActionContext)().visible,a=(0,r.useCollectionRecordData)(),s=(0,c.useContext)(f).rebuilding,l=C((0,c.useState)([]),2),p=l[0],d=l[1],v=C((0,c.useState)(!1),2),b=v[0],S=v[1],O=C((0,c.useState)(null),2),E=O[0],j=O[1],k=C((0,c.useState)(1),2),I=k[0],T=k[1],R=p.length,D=(0,c.useRef)(n),M=(0,c.useRef)(e);return D.current=n,M.current=e,(0,c.useEffect)(function(){if(o){var e=!1;return h(function(){var n,r;return w(this,function(o){switch(o.label){case 0:S(!0),o.label=1;case 1:return o.trys.push([1,3,4,5]),[4,t.resource("aiMcpClients").listTools()];case 2:return n=P(y(o.sent(),null),a.name),e||(T(1),d(n)),[3,5];case 3:return r=o.sent(),e||(D.current.error((null==r?void 0:r.message)||M.current("Failed to load MCP tools")),T(1),d([])),[3,5];case 4:return e||S(!1),[7];case 5:return[2]}})})(),function(){e=!0}}},[t,a.name,o]),u().createElement(i.Space,{direction:"vertical",size:"middle",style:{width:"100%"}},b?u().createElement("div",{style:{padding:"24px 0",textAlign:"center"}},u().createElement(i.Spin,null)):p.length?u().createElement(i.List,{itemLayout:"vertical",dataSource:p,pagination:{current:I,pageSize:10,total:R,onChange:T,hideOnSinglePage:!1,size:"small",showTotal:function(t){return e("Total {{count}} items",{count:t})}},renderItem:function(n){return u().createElement(i.List.Item,{key:n.name,extra:u().createElement("div",{style:{fontSize:12,color:"var(--nb-color-text-secondary)"}},e("Permission"),u().createElement(i.Segmented,{style:{marginLeft:8},size:"small",options:A.map(function(t){return g(x({},t),{label:e(t.label)})}),value:n.permission,disabled:s||E===n.name,onChange:function(e){var r;return r=n.name,h(function(){var n,o;return w(this,function(a){switch(a.label){case 0:n=p,j(r),d(function(t){return t.map(function(t){return t.name===r?g(x({},t),{permission:e}):t})}),a.label=1;case 1:return a.trys.push([1,3,4,5]),[4,t.resource("aiMcpClients").updateToolPermission({values:{toolName:r,permission:e}})];case 2:return a.sent(),[3,5];case 3:return o=a.sent(),d(n),D.current.error((null==o?void 0:o.message)||M.current("Failed to update tool permission")),[3,5];case 4:return j(null),[7];case 5:return[2]}})})()}}))},u().createElement("div",null,n.title),n.description?u().createElement(i.Typography.Paragraph,{style:{color:"var(--nb-color-text-secondary)",fontSize:12,marginBottom:0},ellipsis:{rows:3,expandable:"collapsible"}},n.description):null)}}):u().createElement(i.Empty,{image:i.Empty.PRESENTED_IMAGE_SIMPLE,description:e("No data")}))};function O(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}var E=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n="stdio"===e?'{{$deps[0] === "stdio"}}':'{{["http", "sse"].includes($deps[0])}}';return[{dependencies:["transport"],fulfill:{state:O({visible:n},t?{required:n}:{})}}]},j=function(e){return{name:O({type:"string","x-decorator":"FormItem",title:'{{ t("Name") }}',"x-component":"Input",required:!0},e.disableName?{"x-component-props":{disabled:!0}}:{}),title:{type:"string","x-decorator":"FormItem",title:'{{ t("Title") }}',"x-component":"Input",required:!0},description:{type:"string","x-decorator":"FormItem",title:'{{ t("Description") }}',"x-component":"Input.TextArea","x-component-props":{autoSize:{minRows:2,maxRows:4}}},transport:{type:"string","x-decorator":"FormItem",title:'{{ t("Transport") }}',"x-component":"Select",enum:"{{ transportOptions }}",required:!0},command:{type:"string","x-decorator":"FormItem",title:'{{ t("Command") }}',"x-component":"Input","x-component-props":{placeholder:'{{ t("For example: npx, uvx, node") }}'},"x-reactions":E("stdio",!0)},args:{type:"string","x-decorator":"FormItem",title:'{{ t("Arguments") }}',"x-component":"Input","x-component-props":{placeholder:'{{ t("Space-separated args, e.g.: -u --flag value") }}'},"x-reactions":E("stdio")},env:{type:"array","x-component":"ArrayItems","x-decorator":"FormItem",title:'{{ t("Environment variables") }}',items:{type:"object",properties:{space:{type:"void","x-component":"Space","x-component-props":{style:{flexWrap:"nowrap",maxWidth:"100%",display:"flex"},className:"{{ keyValueRowClassName }}"},properties:{name:{type:"string","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:'{{ t("Name") }}'}},value:{type:"string","x-decorator":"FormItem","x-component":"TextAreaWithGlobalScope","x-component-props":{useTypedConstant:!0}},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove"}}}}},properties:{add:{type:"void",title:'{{ t("Add variable") }}',"x-component":"ArrayItems.Addition"}},"x-reactions":E("stdio")},url:{type:"string","x-decorator":"FormItem",title:'{{ t("URL") }}',"x-component":"Input","x-component-props":{placeholder:'{{ t("For example: https://example.com/mcp") }}'},"x-reactions":E("remote",!0)},headers:{type:"array","x-component":"ArrayItems","x-decorator":"FormItem",title:'{{ t("Headers") }}',items:{type:"object",properties:{space:{type:"void","x-component":"Space","x-component-props":{style:{flexWrap:"nowrap",maxWidth:"100%",display:"flex"},className:"{{ keyValueRowClassName }}"},properties:{name:{type:"string","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:'{{ t("Name") }}'}},value:{type:"string","x-decorator":"FormItem","x-component":"TextAreaWithGlobalScope","x-component-props":{useTypedConstant:!0}},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove"}}}}},properties:{add:{type:"void",title:'{{ t("Add request header") }}',"x-component":"ArrayItems.Addition"}},"x-reactions":E("remote")},restart:{type:"object","x-decorator":"FormItem",title:'{{ t("Restart options") }}',"x-component":"Input.JSON","x-visible":!1,"x-component-props":{autoSize:{minRows:4}}},testResult:{type:"void","x-component":"TestConnectionResult"},footer:{type:"void","x-component":e.footerComponent||"Action.Drawer.Footer",properties:{test:{type:"void","x-component":"TestConnectionButton"},cancel:{title:'{{ t("Cancel") }}',"x-component":"Action","x-use-component-props":"useCancelActionProps"},submit:{title:'{{ t("Submit") }}',"x-component":"Action","x-component-props":{type:"primary"},"x-use-component-props":e.submitPropsHook}}}}},k={type:"void",properties:j({submitPropsHook:"useCreateActionProps"})},I={type:"void",properties:j({disableName:!0,submitPropsHook:"useEditActionProps",footerComponent:"Action.Drawer.FootBar"})},T={type:"void",properties:{tools:{type:"void","x-component":"MCPToolsList"}}},R={type:"void",properties:{createDrawer:{type:"void",title:'{{ t("Add new") }}',"x-component":"Action.Drawer","x-decorator":"FormV2","x-use-decorator-props":"useCreateFormProps",properties:k.properties}}};I.properties,T.properties;var D={type:"void",name:"ai-mcp-clients",properties:{card:{type:"void","x-component":"CardItem","x-component-props":{heightMode:"fullHeight"},"x-decorator":"TableBlockProvider","x-decorator-props":{collection:"aiMcpClients",action:"list",rowKey:"name"},properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:20}},properties:{refresh:{title:"{{t('Refresh')}}","x-component":"Action","x-use-component-props":"useRefreshActionProps","x-component-props":{icon:"ReloadOutlined"}},bulkDelete:{title:"{{t('Delete')}}","x-action":"destroy","x-component":"Action","x-use-component-props":"useMCPBulkDestroyActionProps","x-component-props":{icon:"DeleteOutlined",confirm:{title:"{{t('Delete record')}}",content:"{{t('Are you sure you want to delete it?')}}"}}},add:{type:"void",title:"{{t('Add new')}}","x-align":"right","x-component":"AddNew"}}},table:{type:"array","x-component":"TableV2","x-use-component-props":"useTableBlockProps","x-component-props":{rowKey:"name",rowSelection:{type:"checkbox"}},properties:{column1:{type:"void",title:'{{ t("Name") }}',"x-component":"TableV2.Column",properties:{name:{type:"string","x-component":"Input","x-read-pretty":!0}}},column2:{type:"void",title:'{{ t("Title") }}',"x-component":"TableV2.Column",properties:{title:{type:"string","x-component":"Input","x-read-pretty":!0}}},column4:{type:"void",title:'{{ t("Transport") }}',"x-component":"TableV2.Column",properties:{transport:{type:"string","x-component":"TransportTag"}}},column5:{type:"void",title:'{{ t("Enabled") }}',"x-component":"TableV2.Column",properties:{enabled:{type:"boolean","x-component":"EnabledSwitch"}}},column6:{type:"void",title:'{{ t("Actions") }}',"x-decorator":"TableV2.Column.ActionBar","x-component":"TableV2.Column",properties:{actions:{type:"void","x-component":"Space","x-component-props":{split:"|"},properties:{view:{type:"void",title:'{{ t("View") }}',"x-component":"Action.Link","x-component-props":{openMode:"drawer"},properties:{drawer:{type:"void",title:'{{ t("MCP tools") }}',"x-component":"Action.Drawer","x-component-props":{width:720},properties:{content:{type:"void","x-component":"MCPViewDrawerContent"}}}}},edit:{type:"void",title:'{{ t("Edit") }}',"x-action":"update","x-component":"Action.Link","x-component-props":{openMode:"drawer"},properties:{drawer:{type:"void",title:'{{ t("Edit record") }}',"x-component":"Action.Drawer","x-decorator":"FormV2","x-use-decorator-props":"useEditFormProps",properties:{content:{type:"void","x-component":"MCPEditDrawerContent"}}}}},destroy:{type:"void",title:'{{ t("Delete") }}',"x-action":"destroy","x-component":"Action.Link","x-use-component-props":"useMCPDestroyActionProps","x-component-props":{confirm:{title:"{{t('Delete record')}}",content:"{{t('Are you sure you want to delete it?')}}"}}}}}}}}}}}}};function M(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 F(e,t,n,r,o,a,i){try{var s=e[a](i),l=s.value}catch(e){n(e);return}s.done?t(l):Promise.resolve(l).then(r,o)}function V(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function i(e){F(a,r,o,i,s,"next",e)}function s(e){F(a,r,o,i,s,"throw",e)}i(void 0)})}}function B(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 N(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 L(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=[],i=!0,s=!1;try{for(o=o.call(e);!(i=(n=o.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){s=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(s)throw r}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return M(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 M(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 z(e){return e&&"u">typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}function q(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),s=Object.defineProperty;return s(i,"next",{value:l(0)}),s(i,"throw",{value:l(1)}),s(i,"return",{value:l(2)}),"function"==typeof Symbol&&s(i,Symbol.iterator,{value:function(){return this}}),i;function l(s){return function(l){var c=[s,l];if(n)throw TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],r=0}finally{n=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}function H(){var e,t,n=(e=["\n & > .ant-space-item:first-child,\n & > .ant-space-item:last-child {\n flex-shrink: 0;\n }\n\n & > .ant-space-item:first-child,\n & > .ant-space-item:nth-of-type(2) {\n flex: 1;\n }\n"],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return H=function(){return n},n}var W=[{label:"Stdio",value:"stdio"},{label:"HTTP (Streamable)",value:"http"},{label:"HTTP + SSE (Legacy)",value:"sse"}],_={stdio:"blue",http:"green",sse:"gold"},G=(0,o.css)(H()),K=function(e){return Object.entries(e||{}).map(function(e){var t=L(e,2),n=t[0],r=t[1];return{name:n,value:null==r?"":String(r)}})},U=function(e){return(Array.isArray(e)?e:[]).reduce(function(e,t){return(null==t?void 0:t.name)&&(e[t.name]=t.value||""),e},{})},$=function(e){var t=e.transport,n=N(B({},e),{args:"string"==typeof e.args?e.args.split(" ").map(function(e){return e.trim()}).filter(function(e){return e.length>0}):Array.isArray(e.args)?e.args:[],env:U(e.env),headers:U(e.headers),restart:e.restart&&"object"===z(e.restart)&&!Array.isArray(e.restart)?e.restart:{}});return"stdio"===t?N(B({},n),{url:null,headers:{}}):N(B({},n),{command:null,args:[],env:{}})},J=function(){var e=(0,r.useActionContext)().visible,t=(0,c.useMemo)(function(){return{enabled:!0,transport:"stdio",args:"",env:[],headers:[],restart:{}}},[]),n=(0,c.useMemo)(function(){return(0,s.createForm)({initialValues:t})},[t]);return(0,c.useEffect)(function(){e&&(n.setInitialValues(t),n.reset())},[n,t,e]),{form:n}},Q=function(){var e=(0,r.useCollectionRecordData)(),t=(0,r.useActionContext)().visible,n=(0,c.useMemo)(function(){return N(B({},e),{args:Array.isArray(null==e?void 0:e.args)?e.args.join(" "):"",env:K(null==e?void 0:e.env),headers:K(null==e?void 0:e.headers),restart:(null==e?void 0:e.restart)&&"object"===z(e.restart)&&!Array.isArray(e.restart)?e.restart:{}})},[e]),o=(0,c.useMemo)(function(){return(0,s.createForm)({initialValues:n})},[n]);return(0,c.useEffect)(function(){t&&(o.setInitialValues(n),o.reset())},[o,n,t]),{form:o}},X=function(){var e=(0,r.useActionContext)().setVisible;return{type:"default",onClick:function(){e(!1)}}},Y=(0,c.createContext)({result:null,loading:!1,setResult:function(){},setLoading:function(){}}),Z=function(){var e=(0,r.useAPIClient)(),t=(0,m.kj)(),n=(0,c.useContext)(Y),o=n.setResult,a=n.setLoading;return function(n){return V(function(){var r,i,s;return q(this,function(l){switch(l.label){case 0:a(!0),o(null),l.label=1;case 1:return l.trys.push([1,3,4,5]),r=$(n),[4,e.resource("aiMcpClients").testConnection({values:r})];case 2:return o(i=y({data:l.sent().data},null)),[2,!!(null==i?void 0:i.success)];case 3:return o({success:!1,error:(null==(s=l.sent())?void 0:s.message)||t("An error occurred while testing the connection")}),[2,!1];case 4:return a(!1),[7];case 5:return[2]}})})()}},ee=function(){var e=(0,r.useActionContext)().setVisible,t=i.App.useApp().message,n=(0,l.useForm)(),o=(0,r.useAPIClient)(),a=(0,r.useDataBlockRequest)().refresh,s=(0,m.kj)(),u=(0,c.useContext)(Y).loading,p=(0,c.useContext)(f),d=p.rebuildClient,y=p.rebuilding,v=Z();return{type:"primary",loading:y||u,onClick:function(){return V(function(){return q(this,function(r){switch(r.label){case 0:return[4,n.submit()];case 1:return r.sent(),[4,v(n.values)];case 2:if(!r.sent())return[2];return[4,o.resource("aiMcpClients").create({values:$(n.values)})];case 3:return r.sent(),[4,d()];case 4:return r.sent(),[4,a()];case 5:return r.sent(),t.success(s("Saved successfully")),e(!1),n.reset(),[2]}})})()}}},et=function(){var e=(0,r.useActionContext)().setVisible,t=i.App.useApp().message,n=(0,l.useForm)(),o=(0,r.useAPIClient)(),a=(0,r.useDataBlockRequest)().refresh,s=(0,r.useCollectionRecordData)(),u=(0,m.kj)(),p=(0,c.useContext)(Y).loading,d=(0,c.useContext)(f),y=d.rebuildClient,v=d.rebuilding,b=Z();return{type:"primary",loading:v||p,onClick:function(){return V(function(){return q(this,function(r){switch(r.label){case 0:return[4,n.submit()];case 1:return r.sent(),[4,b(n.values)];case 2:if(!r.sent())return[2];return[4,o.resource("aiMcpClients").update({values:$(n.values),filterByTk:s.name})];case 3:return r.sent(),[4,y()];case 4:return r.sent(),[4,a()];case 5:return r.sent(),t.success(u("Saved successfully")),e(!1),n.reset(),[2]}})})()}}},en=(0,l.observer)(function(){var e=(0,l.useForm)(),t=(0,r.useAPIClient)(),n=(0,c.useContext)(Y),o=n.setResult,a=n.loading,s=n.setLoading,p=(0,m.kj)();return u().createElement(i.Button,{type:"default",loading:a,onClick:function(){return V(function(){var n,r;return q(this,function(a){switch(a.label){case 0:s(!0),o(null),a.label=1;case 1:return a.trys.push([1,3,4,5]),n=$(e.values),[4,t.resource("aiMcpClients").testConnection({values:n})];case 2:return o(y({data:a.sent().data},null)),[3,5];case 3:return o({success:!1,error:(null==(r=a.sent())?void 0:r.message)||p("An error occurred while testing the connection")}),[3,5];case 4:return s(!1),[7];case 5:return[2]}})})()}},p("Test flight"))},{displayName:"TestConnectionButton"}),er=(0,l.observer)(function(){var e=(0,c.useContext)(Y),t=e.result,n=e.loading,r=(0,m.kj)();return n?u().createElement("div",{style:{padding:"16px 0",textAlign:"center"}},u().createElement(i.Spin,{tip:r("Testing connection...")})):t?t.success?u().createElement(i.Alert,{type:"success",showIcon:!0,icon:u().createElement(a.CheckCircleOutlined,null),style:{marginTop:16},message:r("Connection Successful"),description:u().createElement("div",null,u().createElement("p",null,r("Successfully connected to MCP server")),u().createElement("p",null,r("Tools found"),": ",t.toolsCount),t.tools&&t.tools.length>0&&u().createElement("div",{style:{marginTop:8}},u().createElement("p",{style:{fontWeight:"bold",marginBottom:4}},r("Tools"),":"),u().createElement("div",{style:{maxHeight:120,overflow:"auto"}},t.tools.map(function(e){return u().createElement(i.Tag,{key:e,style:{margin:"2px"}},e)}),t.toolsTruncated&&u().createElement("span",null,"..."))))}):u().createElement(i.Alert,{type:"error",showIcon:!0,icon:u().createElement(a.CloseCircleOutlined,null),style:{marginTop:16},message:r("Connection Failed"),description:u().createElement("div",null,u().createElement("p",null,t.error||r("Failed to connect to MCP server")),t.details&&u().createElement("pre",{style:{maxHeight:100,overflow:"auto",fontSize:11,margin:0}},t.details))}):null},{displayName:"TestConnectionResult"}),eo=function(){var e=(0,m.kj)(),t=L((0,c.useState)(!1),2),n=t[0],o=t[1],s=L((0,c.useState)(null),2),l=s[0],p=s[1],d=L((0,c.useState)(!1),2),f=d[0],y=d[1],v=(0,c.useMemo)(function(){return{result:l,loading:f,setResult:p,setLoading:y}},[l,f]);return u().createElement(r.ActionContextProvider,{value:{visible:n,setVisible:o}},u().createElement(i.Button,{icon:u().createElement(a.PlusOutlined,null),type:"primary",onClick:function(){p(null),y(!1),o(!0)}},e("Add new")),u().createElement(Y.Provider,{value:v},u().createElement(r.SchemaComponent,{components:{TestConnectionButton:en,TestConnectionResult:er,Space:i.Space},scope:{t:e,transportOptions:W,keyValueRowClassName:G,useCreateFormProps:J,useCancelActionProps:X,useCreateActionProps:ee},schema:R})))},ea=function(){var e=(0,m.kj)(),t=(0,r.useCollectionRecordData)(),n=L((0,c.useState)(null),2),o=n[0],a=n[1],s=L((0,c.useState)(!1),2),l=s[0],p=s[1],d=(0,c.useMemo)(function(){return{result:o,loading:l,setResult:a,setLoading:p}},[o,l]);return u().createElement(r.CollectionRecordProvider,{record:t},u().createElement(Y.Provider,{value:d},u().createElement(r.SchemaComponent,{components:{TestConnectionButton:en,TestConnectionResult:er,Space:i.Space},scope:{t:e,transportOptions:W,keyValueRowClassName:G,useEditFormProps:Q,useCancelActionProps:X,useEditActionProps:et},schema:I})))},ei=function(){var e=(0,m.kj)(),t=(0,r.useCollectionRecordData)();return u().createElement(r.CollectionRecordProvider,{record:t},u().createElement(r.SchemaComponent,{components:{MCPToolsList:S},scope:{t:e},schema:T}))},es=function(){var e,t=(0,r.useCollectionRecordData)().transport,n=(null==(e=W.find(function(e){return e.value===t}))?void 0:e.label)||t;return u().createElement(i.Tag,{color:_[t]},n)},el=(0,l.observer)(function(){var e=(0,r.useAPIClient)(),t=(0,r.useCollectionRecordData)(),n=(0,r.useDataBlockRequest)().refresh,o=(0,c.useContext)(f),a=o.rebuildClient,s=o.rebuilding,l=L((0,c.useState)(!1),2),p=l[0],m=l[1];return u().createElement(i.Switch,{size:"small",checked:!1!==t.enabled,loading:p,disabled:s,onChange:function(r){return V(function(){return q(this,function(o){switch(o.label){case 0:m(!0),o.label=1;case 1:return o.trys.push([1,,5,6]),[4,e.resource("aiMcpClients").update({filterByTk:t.name,values:{enabled:r}})];case 2:return o.sent(),[4,a()];case 3:return o.sent(),[4,n()];case 4:return o.sent(),[3,6];case 5:return m(!1),[7];case 6:return[2]}})})()}})},{displayName:"MCPEnabledSwitch"}),ec=function(){var e=(0,r.useDestroyActionProps)(),t=(0,c.useContext)(f),n=t.rebuildClient,o=t.rebuilding;return N(B({},e),{loading:o,onClick:function(t,r){return V(function(){var o;return q(this,function(a){switch(a.label){case 0:return[4,null==(o=e.onClick)?void 0:o.call(e,t,r)];case 1:return a.sent(),[4,n()];case 2:return a.sent(),[2]}})})()}})},eu=function(){var e=(0,r.useBulkDestroyActionProps)(),t=(0,r.useBlockRequestContext)().field,n=(0,c.useContext)(f),o=n.rebuildClient,a=n.rebuilding;return N(B({},e),{loading:a,onClick:function(n,r){return V(function(){var a,i,s;return q(this,function(l){switch(l.label){case 0:if(!(null==t||null==(i=t.data)||null==(a=i.selectedRowKeys)?void 0:a.length))return[2];return[4,null==(s=e.onClick)?void 0:s.call(e,n,r)];case 1:return l.sent(),[4,o()];case 2:return l.sent(),[2]}})})()}})},ep=function(){var e=(0,m.kj)(),t=(0,r.useAPIClient)(),n=(0,c.useRef)(Promise.resolve()),o=(0,c.useRef)(0),a=L((0,c.useState)(!1),2),i=a[0],s=a[1],l=(0,c.useCallback)(function(){return V(function(){var e;return q(this,function(r){return o.current+=1,s(!0),e=n.current.catch(function(){}).then(function(){return V(function(){return q(this,function(e){switch(e.label){case 0:return e.trys.push([0,2,,3]),[4,t.resource("aiMcpClients").rebuildClient()];case 1:case 2:return e.sent(),[3,3];case 3:return[2]}})})()}),n.current=e.finally(function(){o.current-=1,0===o.current&&s(!1)}),[2,e]})})()},[t]),d=(0,c.useMemo)(function(){return{rebuildClient:l,rebuilding:i}},[l,i]);return u().createElement(f.Provider,{value:d},u().createElement(r.ExtendCollectionsProvider,{collections:[p]},u().createElement(r.SchemaComponent,{components:{AddNew:eo,MCPEditDrawerContent:ea,MCPViewDrawerContent:ei,MCPToolsList:S,TestConnectionButton:en,TestConnectionResult:er,TransportTag:es,EnabledSwitch:el},scope:{t:e,transportOptions:W,keyValueRowClassName:G,useCreateFormProps:J,useEditFormProps:Q,useCancelActionProps:X,useCreateActionProps:ee,useEditActionProps:et,useMCPDestroyActionProps:ec,useMCPBulkDestroyActionProps:eu},schema:D})))}}}]);
|