@librechat/data-schemas 0.0.42 → 0.0.44
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/admin/capabilities.cjs +192 -0
- package/dist/admin/capabilities.cjs.map +1 -0
- package/dist/admin/capabilities.es.js +182 -0
- package/dist/admin/capabilities.es.js.map +1 -0
- package/dist/app/agents.cjs +24 -0
- package/dist/app/agents.cjs.map +1 -0
- package/dist/app/agents.es.js +22 -0
- package/dist/app/agents.es.js.map +1 -0
- package/dist/app/assistants.cjs +56 -0
- package/dist/app/assistants.cjs.map +1 -0
- package/dist/app/assistants.es.js +53 -0
- package/dist/app/assistants.es.js.map +1 -0
- package/dist/app/azure.cjs +61 -0
- package/dist/app/azure.cjs.map +1 -0
- package/dist/app/azure.es.js +59 -0
- package/dist/app/azure.es.js.map +1 -0
- package/dist/app/endpoints.cjs +63 -0
- package/dist/app/endpoints.cjs.map +1 -0
- package/dist/app/endpoints.es.js +61 -0
- package/dist/app/endpoints.es.js.map +1 -0
- package/dist/app/interface.cjs +53 -0
- package/dist/app/interface.cjs.map +1 -0
- package/dist/app/interface.es.js +51 -0
- package/dist/app/interface.es.js.map +1 -0
- package/dist/app/memory.cjs +29 -0
- package/dist/app/memory.cjs.map +1 -0
- package/dist/app/memory.es.js +26 -0
- package/dist/app/memory.es.js.map +1 -0
- package/dist/app/ocr.cjs +21 -0
- package/dist/app/ocr.cjs.map +1 -0
- package/dist/app/ocr.es.js +19 -0
- package/dist/app/ocr.es.js.map +1 -0
- package/dist/app/resolution.cjs +51 -0
- package/dist/app/resolution.cjs.map +1 -0
- package/dist/app/resolution.es.js +49 -0
- package/dist/app/resolution.es.js.map +1 -0
- package/dist/app/service.cjs +108 -0
- package/dist/app/service.cjs.map +1 -0
- package/dist/app/service.es.js +106 -0
- package/dist/app/service.es.js.map +1 -0
- package/dist/app/specs.cjs +71 -0
- package/dist/app/specs.cjs.map +1 -0
- package/dist/app/specs.es.js +69 -0
- package/dist/app/specs.es.js.map +1 -0
- package/dist/app/turnstile.cjs +40 -0
- package/dist/app/turnstile.cjs.map +1 -0
- package/dist/app/turnstile.es.js +38 -0
- package/dist/app/turnstile.es.js.map +1 -0
- package/dist/app/vertex.cjs +156 -0
- package/dist/app/vertex.cjs.map +1 -0
- package/dist/app/vertex.es.js +152 -0
- package/dist/app/vertex.es.js.map +1 -0
- package/dist/app/web.cjs +87 -0
- package/dist/app/web.cjs.map +1 -0
- package/dist/app/web.es.js +82 -0
- package/dist/app/web.es.js.map +1 -0
- package/dist/common/enum.cjs +19 -0
- package/dist/common/enum.cjs.map +1 -0
- package/dist/common/enum.es.js +19 -0
- package/dist/common/enum.es.js.map +1 -0
- package/dist/config/meiliLogger.cjs +57 -0
- package/dist/config/meiliLogger.cjs.map +1 -0
- package/dist/config/meiliLogger.es.js +55 -0
- package/dist/config/meiliLogger.es.js.map +1 -0
- package/dist/config/parsers.cjs +224 -0
- package/dist/config/parsers.cjs.map +1 -0
- package/dist/config/parsers.es.js +219 -0
- package/dist/config/parsers.es.js.map +1 -0
- package/dist/config/tenantContext.cjs +30 -0
- package/dist/config/tenantContext.cjs.map +1 -0
- package/dist/config/tenantContext.es.js +25 -0
- package/dist/config/tenantContext.es.js.map +1 -0
- package/dist/config/utils.cjs +37 -0
- package/dist/config/utils.cjs.map +1 -0
- package/dist/config/utils.es.js +35 -0
- package/dist/config/utils.es.js.map +1 -0
- package/dist/config/winston.cjs +93 -0
- package/dist/config/winston.cjs.map +1 -0
- package/dist/config/winston.es.js +91 -0
- package/dist/config/winston.es.js.map +1 -0
- package/dist/crypto/index.cjs +156 -0
- package/dist/crypto/index.cjs.map +1 -0
- package/dist/crypto/index.es.js +145 -0
- package/dist/crypto/index.es.js.map +1 -0
- package/dist/index.cjs +142 -11725
- package/dist/index.cjs.map +1 -1
- package/dist/index.es.js +52 -11644
- package/dist/index.es.js.map +1 -1
- package/dist/methods/accessRole.cjs +210 -0
- package/dist/methods/accessRole.cjs.map +1 -0
- package/dist/methods/accessRole.es.js +208 -0
- package/dist/methods/accessRole.es.js.map +1 -0
- package/dist/methods/aclEntry.cjs +361 -0
- package/dist/methods/aclEntry.cjs.map +1 -0
- package/dist/methods/aclEntry.es.js +359 -0
- package/dist/methods/aclEntry.es.js.map +1 -0
- package/dist/methods/action.cjs +59 -0
- package/dist/methods/action.cjs.map +1 -0
- package/dist/methods/action.es.js +57 -0
- package/dist/methods/action.es.js.map +1 -0
- package/dist/methods/agent.cjs +580 -0
- package/dist/methods/agent.cjs.map +1 -0
- package/dist/methods/agent.es.js +578 -0
- package/dist/methods/agent.es.js.map +1 -0
- package/dist/methods/agentApiKey.cjs +140 -0
- package/dist/methods/agentApiKey.cjs.map +1 -0
- package/dist/methods/agentApiKey.es.js +138 -0
- package/dist/methods/agentApiKey.es.js.map +1 -0
- package/dist/methods/agentCategory.cjs +226 -0
- package/dist/methods/agentCategory.cjs.map +1 -0
- package/dist/methods/agentCategory.es.js +224 -0
- package/dist/methods/agentCategory.es.js.map +1 -0
- package/dist/methods/assistant.cjs +53 -0
- package/dist/methods/assistant.cjs.map +1 -0
- package/dist/methods/assistant.es.js +51 -0
- package/dist/methods/assistant.es.js.map +1 -0
- package/dist/methods/banner.cjs +32 -0
- package/dist/methods/banner.cjs.map +1 -0
- package/dist/methods/banner.es.js +30 -0
- package/dist/methods/banner.es.js.map +1 -0
- package/dist/methods/categories.cjs +33 -0
- package/dist/methods/categories.cjs.map +1 -0
- package/dist/methods/categories.es.js +31 -0
- package/dist/methods/categories.es.js.map +1 -0
- package/dist/methods/config.cjs +106 -0
- package/dist/methods/config.cjs.map +1 -0
- package/dist/methods/config.es.js +104 -0
- package/dist/methods/config.es.js.map +1 -0
- package/dist/methods/conversation.cjs +344 -0
- package/dist/methods/conversation.cjs.map +1 -0
- package/dist/methods/conversation.es.js +342 -0
- package/dist/methods/conversation.es.js.map +1 -0
- package/dist/methods/conversationTag.cjs +234 -0
- package/dist/methods/conversationTag.cjs.map +1 -0
- package/dist/methods/conversationTag.es.js +232 -0
- package/dist/methods/conversationTag.es.js.map +1 -0
- package/dist/methods/file.cjs +315 -0
- package/dist/methods/file.cjs.map +1 -0
- package/dist/methods/file.es.js +313 -0
- package/dist/methods/file.es.js.map +1 -0
- package/dist/methods/index.cjs +135 -0
- package/dist/methods/index.cjs.map +1 -0
- package/dist/methods/index.es.js +130 -0
- package/dist/methods/index.es.js.map +1 -0
- package/dist/methods/key.cjs +136 -0
- package/dist/methods/key.cjs.map +1 -0
- package/dist/methods/key.es.js +134 -0
- package/dist/methods/key.es.js.map +1 -0
- package/dist/methods/mcpServer.cjs +259 -0
- package/dist/methods/mcpServer.cjs.map +1 -0
- package/dist/methods/mcpServer.es.js +257 -0
- package/dist/methods/mcpServer.es.js.map +1 -0
- package/dist/methods/memory.cjs +145 -0
- package/dist/methods/memory.cjs.map +1 -0
- package/dist/methods/memory.es.js +143 -0
- package/dist/methods/memory.es.js.map +1 -0
- package/dist/methods/message.cjs +280 -0
- package/dist/methods/message.cjs.map +1 -0
- package/dist/methods/message.es.js +278 -0
- package/dist/methods/message.es.js.map +1 -0
- package/dist/methods/pluginAuth.cjs +108 -0
- package/dist/methods/pluginAuth.cjs.map +1 -0
- package/dist/methods/pluginAuth.es.js +106 -0
- package/dist/methods/pluginAuth.es.js.map +1 -0
- package/dist/methods/preset.cjs +105 -0
- package/dist/methods/preset.cjs.map +1 -0
- package/dist/methods/preset.es.js +103 -0
- package/dist/methods/preset.es.js.map +1 -0
- package/dist/methods/prompt.cjs +546 -0
- package/dist/methods/prompt.cjs.map +1 -0
- package/dist/methods/prompt.es.js +544 -0
- package/dist/methods/prompt.es.js.map +1 -0
- package/dist/methods/role.cjs +290 -0
- package/dist/methods/role.cjs.map +1 -0
- package/dist/methods/role.es.js +288 -0
- package/dist/methods/role.es.js.map +1 -0
- package/dist/methods/session.cjs +221 -0
- package/dist/methods/session.cjs.map +1 -0
- package/dist/methods/session.es.js +217 -0
- package/dist/methods/session.es.js.map +1 -0
- package/dist/methods/share.cjs +474 -0
- package/dist/methods/share.cjs.map +1 -0
- package/dist/methods/share.es.js +472 -0
- package/dist/methods/share.es.js.map +1 -0
- package/dist/methods/spendTokens.cjs +109 -0
- package/dist/methods/spendTokens.cjs.map +1 -0
- package/dist/methods/spendTokens.es.js +107 -0
- package/dist/methods/spendTokens.es.js.map +1 -0
- package/dist/methods/systemGrant.cjs +190 -0
- package/dist/methods/systemGrant.cjs.map +1 -0
- package/dist/methods/systemGrant.es.js +188 -0
- package/dist/methods/systemGrant.es.js.map +1 -0
- package/dist/methods/token.cjs +117 -0
- package/dist/methods/token.cjs.map +1 -0
- package/dist/methods/token.es.js +115 -0
- package/dist/methods/token.es.js.map +1 -0
- package/dist/methods/toolCall.cjs +91 -0
- package/dist/methods/toolCall.cjs.map +1 -0
- package/dist/methods/toolCall.es.js +89 -0
- package/dist/methods/toolCall.es.js.map +1 -0
- package/dist/methods/transaction.cjs +305 -0
- package/dist/methods/transaction.cjs.map +1 -0
- package/dist/methods/transaction.es.js +303 -0
- package/dist/methods/transaction.es.js.map +1 -0
- package/dist/methods/tx.cjs +443 -0
- package/dist/methods/tx.cjs.map +1 -0
- package/dist/methods/tx.es.js +437 -0
- package/dist/methods/tx.es.js.map +1 -0
- package/dist/methods/user.cjs +269 -0
- package/dist/methods/user.cjs.map +1 -0
- package/dist/methods/user.es.js +266 -0
- package/dist/methods/user.es.js.map +1 -0
- package/dist/methods/userGroup.cjs +518 -0
- package/dist/methods/userGroup.cjs.map +1 -0
- package/dist/methods/userGroup.es.js +516 -0
- package/dist/methods/userGroup.es.js.map +1 -0
- package/dist/migrations/tenantIndexes.cjs +85 -0
- package/dist/migrations/tenantIndexes.cjs.map +1 -0
- package/dist/migrations/tenantIndexes.es.js +82 -0
- package/dist/migrations/tenantIndexes.es.js.map +1 -0
- package/dist/models/accessRole.cjs +12 -0
- package/dist/models/accessRole.cjs.map +1 -0
- package/dist/models/accessRole.es.js +10 -0
- package/dist/models/accessRole.es.js.map +1 -0
- package/dist/models/aclEntry.cjs +12 -0
- package/dist/models/aclEntry.cjs.map +1 -0
- package/dist/models/aclEntry.es.js +10 -0
- package/dist/models/aclEntry.es.js.map +1 -0
- package/dist/models/action.cjs +12 -0
- package/dist/models/action.cjs.map +1 -0
- package/dist/models/action.es.js +10 -0
- package/dist/models/action.es.js.map +1 -0
- package/dist/models/agent.cjs +12 -0
- package/dist/models/agent.cjs.map +1 -0
- package/dist/models/agent.es.js +10 -0
- package/dist/models/agent.es.js.map +1 -0
- package/dist/models/agentApiKey.cjs +12 -0
- package/dist/models/agentApiKey.cjs.map +1 -0
- package/dist/models/agentApiKey.es.js +10 -0
- package/dist/models/agentApiKey.es.js.map +1 -0
- package/dist/models/agentCategory.cjs +13 -0
- package/dist/models/agentCategory.cjs.map +1 -0
- package/dist/models/agentCategory.es.js +11 -0
- package/dist/models/agentCategory.es.js.map +1 -0
- package/dist/models/assistant.cjs +12 -0
- package/dist/models/assistant.cjs.map +1 -0
- package/dist/models/assistant.es.js +10 -0
- package/dist/models/assistant.es.js.map +1 -0
- package/dist/models/balance.cjs +12 -0
- package/dist/models/balance.cjs.map +1 -0
- package/dist/models/balance.es.js +10 -0
- package/dist/models/balance.es.js.map +1 -0
- package/dist/models/banner.cjs +12 -0
- package/dist/models/banner.cjs.map +1 -0
- package/dist/models/banner.es.js +10 -0
- package/dist/models/banner.es.js.map +1 -0
- package/dist/models/config.cjs +12 -0
- package/dist/models/config.cjs.map +1 -0
- package/dist/models/config.es.js +10 -0
- package/dist/models/config.es.js.map +1 -0
- package/dist/models/conversationTag.cjs +13 -0
- package/dist/models/conversationTag.cjs.map +1 -0
- package/dist/models/conversationTag.es.js +11 -0
- package/dist/models/conversationTag.es.js.map +1 -0
- package/dist/models/convo.cjs +23 -0
- package/dist/models/convo.cjs.map +1 -0
- package/dist/models/convo.es.js +21 -0
- package/dist/models/convo.es.js.map +1 -0
- package/dist/models/file.cjs +12 -0
- package/dist/models/file.cjs.map +1 -0
- package/dist/models/file.es.js +10 -0
- package/dist/models/file.es.js.map +1 -0
- package/dist/models/group.cjs +12 -0
- package/dist/models/group.cjs.map +1 -0
- package/dist/models/group.es.js +10 -0
- package/dist/models/group.es.js.map +1 -0
- package/dist/models/index.cjs +73 -0
- package/dist/models/index.cjs.map +1 -0
- package/dist/models/index.es.js +71 -0
- package/dist/models/index.es.js.map +1 -0
- package/dist/models/key.cjs +12 -0
- package/dist/models/key.cjs.map +1 -0
- package/dist/models/key.es.js +10 -0
- package/dist/models/key.es.js.map +1 -0
- package/dist/models/mcpServer.cjs +12 -0
- package/dist/models/mcpServer.cjs.map +1 -0
- package/dist/models/mcpServer.es.js +10 -0
- package/dist/models/mcpServer.es.js.map +1 -0
- package/dist/models/memory.cjs +12 -0
- package/dist/models/memory.cjs.map +1 -0
- package/dist/models/memory.es.js +10 -0
- package/dist/models/memory.es.js.map +1 -0
- package/dist/models/message.cjs +22 -0
- package/dist/models/message.cjs.map +1 -0
- package/dist/models/message.es.js +20 -0
- package/dist/models/message.es.js.map +1 -0
- package/dist/models/pluginAuth.cjs +12 -0
- package/dist/models/pluginAuth.cjs.map +1 -0
- package/dist/models/pluginAuth.es.js +10 -0
- package/dist/models/pluginAuth.es.js.map +1 -0
- package/dist/models/plugins/mongoMeili.cjs +547 -0
- package/dist/models/plugins/mongoMeili.cjs.map +1 -0
- package/dist/models/plugins/mongoMeili.es.js +545 -0
- package/dist/models/plugins/mongoMeili.es.js.map +1 -0
- package/dist/models/plugins/tenantIsolation.cjs +140 -0
- package/dist/models/plugins/tenantIsolation.cjs.map +1 -0
- package/dist/models/plugins/tenantIsolation.es.js +138 -0
- package/dist/models/plugins/tenantIsolation.es.js.map +1 -0
- package/dist/models/preset.cjs +12 -0
- package/dist/models/preset.cjs.map +1 -0
- package/dist/models/preset.es.js +10 -0
- package/dist/models/preset.es.js.map +1 -0
- package/dist/models/prompt.cjs +12 -0
- package/dist/models/prompt.cjs.map +1 -0
- package/dist/models/prompt.es.js +10 -0
- package/dist/models/prompt.es.js.map +1 -0
- package/dist/models/promptGroup.cjs +13 -0
- package/dist/models/promptGroup.cjs.map +1 -0
- package/dist/models/promptGroup.es.js +11 -0
- package/dist/models/promptGroup.es.js.map +1 -0
- package/dist/models/role.cjs +12 -0
- package/dist/models/role.cjs.map +1 -0
- package/dist/models/role.es.js +10 -0
- package/dist/models/role.es.js.map +1 -0
- package/dist/models/session.cjs +12 -0
- package/dist/models/session.cjs.map +1 -0
- package/dist/models/session.es.js +10 -0
- package/dist/models/session.es.js.map +1 -0
- package/dist/models/sharedLink.cjs +12 -0
- package/dist/models/sharedLink.cjs.map +1 -0
- package/dist/models/sharedLink.es.js +10 -0
- package/dist/models/sharedLink.es.js.map +1 -0
- package/dist/models/systemGrant.cjs +16 -0
- package/dist/models/systemGrant.cjs.map +1 -0
- package/dist/models/systemGrant.es.js +14 -0
- package/dist/models/systemGrant.es.js.map +1 -0
- package/dist/models/token.cjs +12 -0
- package/dist/models/token.cjs.map +1 -0
- package/dist/models/token.es.js +10 -0
- package/dist/models/token.es.js.map +1 -0
- package/dist/models/toolCall.cjs +12 -0
- package/dist/models/toolCall.cjs.map +1 -0
- package/dist/models/toolCall.es.js +10 -0
- package/dist/models/toolCall.es.js.map +1 -0
- package/dist/models/transaction.cjs +12 -0
- package/dist/models/transaction.cjs.map +1 -0
- package/dist/models/transaction.es.js +10 -0
- package/dist/models/transaction.es.js.map +1 -0
- package/dist/models/user.cjs +12 -0
- package/dist/models/user.cjs.map +1 -0
- package/dist/models/user.es.js +10 -0
- package/dist/models/user.es.js.map +1 -0
- package/dist/schema/accessRole.cjs +34 -0
- package/dist/schema/accessRole.cjs.map +1 -0
- package/dist/schema/accessRole.es.js +32 -0
- package/dist/schema/accessRole.es.js.map +1 -0
- package/dist/schema/aclEntry.cjs +74 -0
- package/dist/schema/aclEntry.cjs.map +1 -0
- package/dist/schema/aclEntry.es.js +72 -0
- package/dist/schema/aclEntry.es.js.map +1 -0
- package/dist/schema/action.cjs +54 -0
- package/dist/schema/action.cjs.map +1 -0
- package/dist/schema/action.es.js +52 -0
- package/dist/schema/action.es.js.map +1 -0
- package/dist/schema/agent.cjs +128 -0
- package/dist/schema/agent.cjs.map +1 -0
- package/dist/schema/agent.es.js +126 -0
- package/dist/schema/agent.es.js.map +1 -0
- package/dist/schema/agentApiKey.cjs +50 -0
- package/dist/schema/agentApiKey.cjs.map +1 -0
- package/dist/schema/agentApiKey.es.js +48 -0
- package/dist/schema/agentApiKey.es.js.map +1 -0
- package/dist/schema/agentCategory.cjs +49 -0
- package/dist/schema/agentCategory.cjs.map +1 -0
- package/dist/schema/agentCategory.es.js +47 -0
- package/dist/schema/agentCategory.es.js.map +1 -0
- package/dist/schema/assistant.cjs +42 -0
- package/dist/schema/assistant.cjs.map +1 -0
- package/dist/schema/assistant.es.js +40 -0
- package/dist/schema/assistant.es.js.map +1 -0
- package/dist/schema/balance.cjs +47 -0
- package/dist/schema/balance.cjs.map +1 -0
- package/dist/schema/balance.es.js +45 -0
- package/dist/schema/balance.es.js.map +1 -0
- package/dist/schema/banner.cjs +42 -0
- package/dist/schema/banner.cjs.map +1 -0
- package/dist/schema/banner.es.js +40 -0
- package/dist/schema/banner.es.js.map +1 -0
- package/dist/schema/categories.cjs +23 -0
- package/dist/schema/categories.cjs.map +1 -0
- package/dist/schema/categories.es.js +21 -0
- package/dist/schema/categories.es.js.map +1 -0
- package/dist/schema/config.cjs +59 -0
- package/dist/schema/config.cjs.map +1 -0
- package/dist/schema/config.es.js +57 -0
- package/dist/schema/config.es.js.map +1 -0
- package/dist/schema/conversationTag.cjs +36 -0
- package/dist/schema/conversationTag.cjs.map +1 -0
- package/dist/schema/conversationTag.es.js +34 -0
- package/dist/schema/conversationTag.es.js.map +1 -0
- package/dist/schema/convo.cjs +52 -0
- package/dist/schema/convo.cjs.map +1 -0
- package/dist/schema/convo.es.js +50 -0
- package/dist/schema/convo.es.js.map +1 -0
- package/dist/schema/defaults.cjs +168 -0
- package/dist/schema/defaults.cjs.map +1 -0
- package/dist/schema/defaults.es.js +166 -0
- package/dist/schema/defaults.es.js.map +1 -0
- package/dist/schema/file.cjs +92 -0
- package/dist/schema/file.cjs.map +1 -0
- package/dist/schema/file.es.js +90 -0
- package/dist/schema/file.es.js.map +1 -0
- package/dist/schema/group.cjs +56 -0
- package/dist/schema/group.cjs.map +1 -0
- package/dist/schema/group.es.js +54 -0
- package/dist/schema/group.es.js.map +1 -0
- package/dist/schema/key.cjs +30 -0
- package/dist/schema/key.cjs.map +1 -0
- package/dist/schema/key.es.js +28 -0
- package/dist/schema/key.es.js.map +1 -0
- package/dist/schema/mcpServer.cjs +33 -0
- package/dist/schema/mcpServer.cjs.map +1 -0
- package/dist/schema/mcpServer.es.js +31 -0
- package/dist/schema/mcpServer.es.js.map +1 -0
- package/dist/schema/memory.cjs +39 -0
- package/dist/schema/memory.cjs.map +1 -0
- package/dist/schema/memory.es.js +37 -0
- package/dist/schema/memory.es.js.map +1 -0
- package/dist/schema/message.cjs +167 -0
- package/dist/schema/message.cjs.map +1 -0
- package/dist/schema/message.es.js +165 -0
- package/dist/schema/message.es.js.map +1 -0
- package/dist/schema/pluginAuth.cjs +28 -0
- package/dist/schema/pluginAuth.cjs.map +1 -0
- package/dist/schema/pluginAuth.es.js +26 -0
- package/dist/schema/pluginAuth.es.js.map +1 -0
- package/dist/schema/preset.cjs +36 -0
- package/dist/schema/preset.cjs.map +1 -0
- package/dist/schema/preset.es.js +34 -0
- package/dist/schema/preset.es.js.map +1 -0
- package/dist/schema/prompt.cjs +36 -0
- package/dist/schema/prompt.cjs.map +1 -0
- package/dist/schema/prompt.es.js +34 -0
- package/dist/schema/prompt.es.js.map +1 -0
- package/dist/schema/promptGroup.cjs +65 -0
- package/dist/schema/promptGroup.cjs.map +1 -0
- package/dist/schema/promptGroup.es.js +63 -0
- package/dist/schema/promptGroup.es.js.map +1 -0
- package/dist/schema/role.cjs +84 -0
- package/dist/schema/role.cjs.map +1 -0
- package/dist/schema/role.es.js +82 -0
- package/dist/schema/role.es.js.map +1 -0
- package/dist/schema/session.cjs +27 -0
- package/dist/schema/session.cjs.map +1 -0
- package/dist/schema/session.es.js +25 -0
- package/dist/schema/session.es.js.map +1 -0
- package/dist/schema/share.cjs +40 -0
- package/dist/schema/share.cjs.map +1 -0
- package/dist/schema/share.es.js +38 -0
- package/dist/schema/share.es.js.map +1 -0
- package/dist/schema/systemGrant.cjs +66 -0
- package/dist/schema/systemGrant.cjs.map +1 -0
- package/dist/schema/systemGrant.es.js +64 -0
- package/dist/schema/systemGrant.es.js.map +1 -0
- package/dist/schema/token.cjs +45 -0
- package/dist/schema/token.cjs.map +1 -0
- package/dist/schema/token.es.js +43 -0
- package/dist/schema/token.es.js.map +1 -0
- package/dist/schema/toolCall.cjs +44 -0
- package/dist/schema/toolCall.cjs.map +1 -0
- package/dist/schema/toolCall.es.js +42 -0
- package/dist/schema/toolCall.es.js.map +1 -0
- package/dist/schema/transaction.cjs +48 -0
- package/dist/schema/transaction.cjs.map +1 -0
- package/dist/schema/transaction.es.js +46 -0
- package/dist/schema/transaction.es.js.map +1 -0
- package/dist/schema/user.cjs +165 -0
- package/dist/schema/user.cjs.map +1 -0
- package/dist/schema/user.es.js +163 -0
- package/dist/schema/user.es.js.map +1 -0
- package/dist/types/admin/capabilities.d.ts +2 -0
- package/dist/types/methods/config.d.ts +1 -0
- package/dist/utils/object-traverse.cjs +158 -0
- package/dist/utils/object-traverse.cjs.map +1 -0
- package/dist/utils/object-traverse.es.js +156 -0
- package/dist/utils/object-traverse.es.js.map +1 -0
- package/dist/utils/principal.cjs +24 -0
- package/dist/utils/principal.cjs.map +1 -0
- package/dist/utils/principal.es.js +22 -0
- package/dist/utils/principal.es.js.map +1 -0
- package/dist/utils/string.cjs +11 -0
- package/dist/utils/string.cjs.map +1 -0
- package/dist/utils/string.es.js +9 -0
- package/dist/utils/string.es.js.map +1 -0
- package/dist/utils/tempChatRetention.cjs +70 -0
- package/dist/utils/tempChatRetention.cjs.map +1 -0
- package/dist/utils/tempChatRetention.es.js +64 -0
- package/dist/utils/tempChatRetention.es.js.map +1 -0
- package/dist/utils/transactions.cjs +60 -0
- package/dist/utils/transactions.cjs.map +1 -0
- package/dist/utils/transactions.es.js +56 -0
- package/dist/utils/transactions.es.js.map +1 -0
- package/package.json +2 -1
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var librechatDataProvider = require('librechat-data-provider');
|
|
4
|
+
|
|
5
|
+
// ---------------------------------------------------------------------------
|
|
6
|
+
// System Capabilities
|
|
7
|
+
// ---------------------------------------------------------------------------
|
|
8
|
+
/**
|
|
9
|
+
* The canonical set of base system capabilities.
|
|
10
|
+
*
|
|
11
|
+
* These are used by the admin panel and LibreChat API to gate access to
|
|
12
|
+
* admin features. Config-section-derived capabilities (e.g.
|
|
13
|
+
* `manage:configs:endpoints`) are built on top of these where the
|
|
14
|
+
* configSchema is available.
|
|
15
|
+
*/
|
|
16
|
+
const SystemCapabilities = {
|
|
17
|
+
ACCESS_ADMIN: 'access:admin',
|
|
18
|
+
READ_USERS: 'read:users',
|
|
19
|
+
MANAGE_USERS: 'manage:users',
|
|
20
|
+
READ_GROUPS: 'read:groups',
|
|
21
|
+
MANAGE_GROUPS: 'manage:groups',
|
|
22
|
+
READ_ROLES: 'read:roles',
|
|
23
|
+
MANAGE_ROLES: 'manage:roles',
|
|
24
|
+
READ_CONFIGS: 'read:configs',
|
|
25
|
+
MANAGE_CONFIGS: 'manage:configs',
|
|
26
|
+
ASSIGN_CONFIGS: 'assign:configs',
|
|
27
|
+
READ_USAGE: 'read:usage',
|
|
28
|
+
READ_AGENTS: 'read:agents',
|
|
29
|
+
MANAGE_AGENTS: 'manage:agents',
|
|
30
|
+
MANAGE_MCP_SERVERS: 'manage:mcpservers',
|
|
31
|
+
READ_PROMPTS: 'read:prompts',
|
|
32
|
+
MANAGE_PROMPTS: 'manage:prompts',
|
|
33
|
+
/** Reserved — not yet enforced by any middleware. */
|
|
34
|
+
READ_ASSISTANTS: 'read:assistants',
|
|
35
|
+
MANAGE_ASSISTANTS: 'manage:assistants',
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Capabilities that are implied by holding a broader capability.
|
|
39
|
+
* e.g. `MANAGE_USERS` implies `READ_USERS`.
|
|
40
|
+
*/
|
|
41
|
+
const CapabilityImplications = {
|
|
42
|
+
[SystemCapabilities.MANAGE_USERS]: [SystemCapabilities.READ_USERS],
|
|
43
|
+
[SystemCapabilities.MANAGE_GROUPS]: [SystemCapabilities.READ_GROUPS],
|
|
44
|
+
[SystemCapabilities.MANAGE_ROLES]: [SystemCapabilities.READ_ROLES],
|
|
45
|
+
[SystemCapabilities.MANAGE_CONFIGS]: [SystemCapabilities.READ_CONFIGS],
|
|
46
|
+
[SystemCapabilities.MANAGE_AGENTS]: [SystemCapabilities.READ_AGENTS],
|
|
47
|
+
[SystemCapabilities.MANAGE_PROMPTS]: [SystemCapabilities.READ_PROMPTS],
|
|
48
|
+
[SystemCapabilities.MANAGE_ASSISTANTS]: [SystemCapabilities.READ_ASSISTANTS],
|
|
49
|
+
};
|
|
50
|
+
// ---------------------------------------------------------------------------
|
|
51
|
+
// Capability utility functions
|
|
52
|
+
// ---------------------------------------------------------------------------
|
|
53
|
+
/** Reverse map: for a given read capability, which manage capabilities imply it? */
|
|
54
|
+
const _impliedBy = {};
|
|
55
|
+
for (const [manage, reads] of Object.entries(CapabilityImplications)) {
|
|
56
|
+
for (const read of reads) {
|
|
57
|
+
if (!_impliedBy[read]) {
|
|
58
|
+
_impliedBy[read] = [];
|
|
59
|
+
}
|
|
60
|
+
_impliedBy[read].push(manage);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Check whether a set of held capabilities satisfies a required capability,
|
|
65
|
+
* accounting for the manage→read implication hierarchy.
|
|
66
|
+
*/
|
|
67
|
+
function hasImpliedCapability(held, required) {
|
|
68
|
+
if (held.includes(required)) {
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
const impliers = _impliedBy[required];
|
|
72
|
+
if (impliers) {
|
|
73
|
+
for (const cap of impliers) {
|
|
74
|
+
if (held.includes(cap)) {
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Given a set of directly-held capabilities, compute the full set including
|
|
83
|
+
* all implied capabilities.
|
|
84
|
+
*/
|
|
85
|
+
function expandImplications(directCaps) {
|
|
86
|
+
const expanded = new Set(directCaps);
|
|
87
|
+
for (const cap of directCaps) {
|
|
88
|
+
const implied = CapabilityImplications[cap];
|
|
89
|
+
if (implied) {
|
|
90
|
+
for (const imp of implied) {
|
|
91
|
+
expanded.add(imp);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return Array.from(expanded);
|
|
96
|
+
}
|
|
97
|
+
// ---------------------------------------------------------------------------
|
|
98
|
+
// Resource & config capability mappings
|
|
99
|
+
// ---------------------------------------------------------------------------
|
|
100
|
+
/**
|
|
101
|
+
* Maps each ACL ResourceType to the SystemCapability that grants
|
|
102
|
+
* unrestricted management access. Typed as `Record<ResourceType, …>`
|
|
103
|
+
* so adding a new ResourceType variant causes a compile error until a
|
|
104
|
+
* capability is assigned here.
|
|
105
|
+
*/
|
|
106
|
+
const ResourceCapabilityMap = {
|
|
107
|
+
[librechatDataProvider.ResourceType.AGENT]: SystemCapabilities.MANAGE_AGENTS,
|
|
108
|
+
[librechatDataProvider.ResourceType.PROMPTGROUP]: SystemCapabilities.MANAGE_PROMPTS,
|
|
109
|
+
[librechatDataProvider.ResourceType.MCPSERVER]: SystemCapabilities.MANAGE_MCP_SERVERS,
|
|
110
|
+
[librechatDataProvider.ResourceType.REMOTE_AGENT]: SystemCapabilities.MANAGE_AGENTS,
|
|
111
|
+
};
|
|
112
|
+
/**
|
|
113
|
+
* Derives a section-level config management capability from a configSchema key.
|
|
114
|
+
* @example configCapability('endpoints') → 'manage:configs:endpoints'
|
|
115
|
+
*
|
|
116
|
+
* TODO: Section-level config capabilities are scaffolded but not yet active.
|
|
117
|
+
* To activate delegated config management:
|
|
118
|
+
* 1. Expose POST/DELETE /api/admin/grants endpoints (wiring grantCapability/revokeCapability)
|
|
119
|
+
* 2. Seed section-specific grants for delegated admin roles via those endpoints
|
|
120
|
+
* 3. Guard config write handlers with hasConfigCapability(user, section)
|
|
121
|
+
*/
|
|
122
|
+
function configCapability(section) {
|
|
123
|
+
return `manage:configs:${section}`;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Derives a section-level config read capability from a configSchema key.
|
|
127
|
+
* @example readConfigCapability('endpoints') → 'read:configs:endpoints'
|
|
128
|
+
*/
|
|
129
|
+
function readConfigCapability(section) {
|
|
130
|
+
return `read:configs:${section}`;
|
|
131
|
+
}
|
|
132
|
+
// ---------------------------------------------------------------------------
|
|
133
|
+
// Reserved principal IDs
|
|
134
|
+
// ---------------------------------------------------------------------------
|
|
135
|
+
/** Reserved principalId for the DB base config (overrides YAML defaults). */
|
|
136
|
+
const BASE_CONFIG_PRINCIPAL_ID = '__base__';
|
|
137
|
+
/** Pre-defined UI categories for grouping capabilities in the admin panel. */
|
|
138
|
+
const CAPABILITY_CATEGORIES = [
|
|
139
|
+
{
|
|
140
|
+
key: 'users',
|
|
141
|
+
labelKey: 'com_cap_cat_users',
|
|
142
|
+
capabilities: [SystemCapabilities.MANAGE_USERS, SystemCapabilities.READ_USERS],
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
key: 'groups',
|
|
146
|
+
labelKey: 'com_cap_cat_groups',
|
|
147
|
+
capabilities: [SystemCapabilities.MANAGE_GROUPS, SystemCapabilities.READ_GROUPS],
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
key: 'roles',
|
|
151
|
+
labelKey: 'com_cap_cat_roles',
|
|
152
|
+
capabilities: [SystemCapabilities.MANAGE_ROLES, SystemCapabilities.READ_ROLES],
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
key: 'config',
|
|
156
|
+
labelKey: 'com_cap_cat_config',
|
|
157
|
+
capabilities: [
|
|
158
|
+
SystemCapabilities.MANAGE_CONFIGS,
|
|
159
|
+
SystemCapabilities.READ_CONFIGS,
|
|
160
|
+
SystemCapabilities.ASSIGN_CONFIGS,
|
|
161
|
+
],
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
key: 'content',
|
|
165
|
+
labelKey: 'com_cap_cat_content',
|
|
166
|
+
capabilities: [
|
|
167
|
+
SystemCapabilities.MANAGE_AGENTS,
|
|
168
|
+
SystemCapabilities.READ_AGENTS,
|
|
169
|
+
SystemCapabilities.MANAGE_PROMPTS,
|
|
170
|
+
SystemCapabilities.READ_PROMPTS,
|
|
171
|
+
SystemCapabilities.MANAGE_ASSISTANTS,
|
|
172
|
+
SystemCapabilities.READ_ASSISTANTS,
|
|
173
|
+
SystemCapabilities.MANAGE_MCP_SERVERS,
|
|
174
|
+
],
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
key: 'system',
|
|
178
|
+
labelKey: 'com_cap_cat_system',
|
|
179
|
+
capabilities: [SystemCapabilities.ACCESS_ADMIN, SystemCapabilities.READ_USAGE],
|
|
180
|
+
},
|
|
181
|
+
];
|
|
182
|
+
|
|
183
|
+
exports.BASE_CONFIG_PRINCIPAL_ID = BASE_CONFIG_PRINCIPAL_ID;
|
|
184
|
+
exports.CAPABILITY_CATEGORIES = CAPABILITY_CATEGORIES;
|
|
185
|
+
exports.CapabilityImplications = CapabilityImplications;
|
|
186
|
+
exports.ResourceCapabilityMap = ResourceCapabilityMap;
|
|
187
|
+
exports.SystemCapabilities = SystemCapabilities;
|
|
188
|
+
exports.configCapability = configCapability;
|
|
189
|
+
exports.expandImplications = expandImplications;
|
|
190
|
+
exports.hasImpliedCapability = hasImpliedCapability;
|
|
191
|
+
exports.readConfigCapability = readConfigCapability;
|
|
192
|
+
//# sourceMappingURL=capabilities.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilities.cjs","sources":["../../src/admin/capabilities.ts"],"sourcesContent":[null],"names":["ResourceType"],"mappings":"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"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import { ResourceType } from 'librechat-data-provider';
|
|
2
|
+
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
// System Capabilities
|
|
5
|
+
// ---------------------------------------------------------------------------
|
|
6
|
+
/**
|
|
7
|
+
* The canonical set of base system capabilities.
|
|
8
|
+
*
|
|
9
|
+
* These are used by the admin panel and LibreChat API to gate access to
|
|
10
|
+
* admin features. Config-section-derived capabilities (e.g.
|
|
11
|
+
* `manage:configs:endpoints`) are built on top of these where the
|
|
12
|
+
* configSchema is available.
|
|
13
|
+
*/
|
|
14
|
+
const SystemCapabilities = {
|
|
15
|
+
ACCESS_ADMIN: 'access:admin',
|
|
16
|
+
READ_USERS: 'read:users',
|
|
17
|
+
MANAGE_USERS: 'manage:users',
|
|
18
|
+
READ_GROUPS: 'read:groups',
|
|
19
|
+
MANAGE_GROUPS: 'manage:groups',
|
|
20
|
+
READ_ROLES: 'read:roles',
|
|
21
|
+
MANAGE_ROLES: 'manage:roles',
|
|
22
|
+
READ_CONFIGS: 'read:configs',
|
|
23
|
+
MANAGE_CONFIGS: 'manage:configs',
|
|
24
|
+
ASSIGN_CONFIGS: 'assign:configs',
|
|
25
|
+
READ_USAGE: 'read:usage',
|
|
26
|
+
READ_AGENTS: 'read:agents',
|
|
27
|
+
MANAGE_AGENTS: 'manage:agents',
|
|
28
|
+
MANAGE_MCP_SERVERS: 'manage:mcpservers',
|
|
29
|
+
READ_PROMPTS: 'read:prompts',
|
|
30
|
+
MANAGE_PROMPTS: 'manage:prompts',
|
|
31
|
+
/** Reserved — not yet enforced by any middleware. */
|
|
32
|
+
READ_ASSISTANTS: 'read:assistants',
|
|
33
|
+
MANAGE_ASSISTANTS: 'manage:assistants',
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Capabilities that are implied by holding a broader capability.
|
|
37
|
+
* e.g. `MANAGE_USERS` implies `READ_USERS`.
|
|
38
|
+
*/
|
|
39
|
+
const CapabilityImplications = {
|
|
40
|
+
[SystemCapabilities.MANAGE_USERS]: [SystemCapabilities.READ_USERS],
|
|
41
|
+
[SystemCapabilities.MANAGE_GROUPS]: [SystemCapabilities.READ_GROUPS],
|
|
42
|
+
[SystemCapabilities.MANAGE_ROLES]: [SystemCapabilities.READ_ROLES],
|
|
43
|
+
[SystemCapabilities.MANAGE_CONFIGS]: [SystemCapabilities.READ_CONFIGS],
|
|
44
|
+
[SystemCapabilities.MANAGE_AGENTS]: [SystemCapabilities.READ_AGENTS],
|
|
45
|
+
[SystemCapabilities.MANAGE_PROMPTS]: [SystemCapabilities.READ_PROMPTS],
|
|
46
|
+
[SystemCapabilities.MANAGE_ASSISTANTS]: [SystemCapabilities.READ_ASSISTANTS],
|
|
47
|
+
};
|
|
48
|
+
// ---------------------------------------------------------------------------
|
|
49
|
+
// Capability utility functions
|
|
50
|
+
// ---------------------------------------------------------------------------
|
|
51
|
+
/** Reverse map: for a given read capability, which manage capabilities imply it? */
|
|
52
|
+
const _impliedBy = {};
|
|
53
|
+
for (const [manage, reads] of Object.entries(CapabilityImplications)) {
|
|
54
|
+
for (const read of reads) {
|
|
55
|
+
if (!_impliedBy[read]) {
|
|
56
|
+
_impliedBy[read] = [];
|
|
57
|
+
}
|
|
58
|
+
_impliedBy[read].push(manage);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Check whether a set of held capabilities satisfies a required capability,
|
|
63
|
+
* accounting for the manage→read implication hierarchy.
|
|
64
|
+
*/
|
|
65
|
+
function hasImpliedCapability(held, required) {
|
|
66
|
+
if (held.includes(required)) {
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
const impliers = _impliedBy[required];
|
|
70
|
+
if (impliers) {
|
|
71
|
+
for (const cap of impliers) {
|
|
72
|
+
if (held.includes(cap)) {
|
|
73
|
+
return true;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Given a set of directly-held capabilities, compute the full set including
|
|
81
|
+
* all implied capabilities.
|
|
82
|
+
*/
|
|
83
|
+
function expandImplications(directCaps) {
|
|
84
|
+
const expanded = new Set(directCaps);
|
|
85
|
+
for (const cap of directCaps) {
|
|
86
|
+
const implied = CapabilityImplications[cap];
|
|
87
|
+
if (implied) {
|
|
88
|
+
for (const imp of implied) {
|
|
89
|
+
expanded.add(imp);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return Array.from(expanded);
|
|
94
|
+
}
|
|
95
|
+
// ---------------------------------------------------------------------------
|
|
96
|
+
// Resource & config capability mappings
|
|
97
|
+
// ---------------------------------------------------------------------------
|
|
98
|
+
/**
|
|
99
|
+
* Maps each ACL ResourceType to the SystemCapability that grants
|
|
100
|
+
* unrestricted management access. Typed as `Record<ResourceType, …>`
|
|
101
|
+
* so adding a new ResourceType variant causes a compile error until a
|
|
102
|
+
* capability is assigned here.
|
|
103
|
+
*/
|
|
104
|
+
const ResourceCapabilityMap = {
|
|
105
|
+
[ResourceType.AGENT]: SystemCapabilities.MANAGE_AGENTS,
|
|
106
|
+
[ResourceType.PROMPTGROUP]: SystemCapabilities.MANAGE_PROMPTS,
|
|
107
|
+
[ResourceType.MCPSERVER]: SystemCapabilities.MANAGE_MCP_SERVERS,
|
|
108
|
+
[ResourceType.REMOTE_AGENT]: SystemCapabilities.MANAGE_AGENTS,
|
|
109
|
+
};
|
|
110
|
+
/**
|
|
111
|
+
* Derives a section-level config management capability from a configSchema key.
|
|
112
|
+
* @example configCapability('endpoints') → 'manage:configs:endpoints'
|
|
113
|
+
*
|
|
114
|
+
* TODO: Section-level config capabilities are scaffolded but not yet active.
|
|
115
|
+
* To activate delegated config management:
|
|
116
|
+
* 1. Expose POST/DELETE /api/admin/grants endpoints (wiring grantCapability/revokeCapability)
|
|
117
|
+
* 2. Seed section-specific grants for delegated admin roles via those endpoints
|
|
118
|
+
* 3. Guard config write handlers with hasConfigCapability(user, section)
|
|
119
|
+
*/
|
|
120
|
+
function configCapability(section) {
|
|
121
|
+
return `manage:configs:${section}`;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Derives a section-level config read capability from a configSchema key.
|
|
125
|
+
* @example readConfigCapability('endpoints') → 'read:configs:endpoints'
|
|
126
|
+
*/
|
|
127
|
+
function readConfigCapability(section) {
|
|
128
|
+
return `read:configs:${section}`;
|
|
129
|
+
}
|
|
130
|
+
// ---------------------------------------------------------------------------
|
|
131
|
+
// Reserved principal IDs
|
|
132
|
+
// ---------------------------------------------------------------------------
|
|
133
|
+
/** Reserved principalId for the DB base config (overrides YAML defaults). */
|
|
134
|
+
const BASE_CONFIG_PRINCIPAL_ID = '__base__';
|
|
135
|
+
/** Pre-defined UI categories for grouping capabilities in the admin panel. */
|
|
136
|
+
const CAPABILITY_CATEGORIES = [
|
|
137
|
+
{
|
|
138
|
+
key: 'users',
|
|
139
|
+
labelKey: 'com_cap_cat_users',
|
|
140
|
+
capabilities: [SystemCapabilities.MANAGE_USERS, SystemCapabilities.READ_USERS],
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
key: 'groups',
|
|
144
|
+
labelKey: 'com_cap_cat_groups',
|
|
145
|
+
capabilities: [SystemCapabilities.MANAGE_GROUPS, SystemCapabilities.READ_GROUPS],
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
key: 'roles',
|
|
149
|
+
labelKey: 'com_cap_cat_roles',
|
|
150
|
+
capabilities: [SystemCapabilities.MANAGE_ROLES, SystemCapabilities.READ_ROLES],
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
key: 'config',
|
|
154
|
+
labelKey: 'com_cap_cat_config',
|
|
155
|
+
capabilities: [
|
|
156
|
+
SystemCapabilities.MANAGE_CONFIGS,
|
|
157
|
+
SystemCapabilities.READ_CONFIGS,
|
|
158
|
+
SystemCapabilities.ASSIGN_CONFIGS,
|
|
159
|
+
],
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
key: 'content',
|
|
163
|
+
labelKey: 'com_cap_cat_content',
|
|
164
|
+
capabilities: [
|
|
165
|
+
SystemCapabilities.MANAGE_AGENTS,
|
|
166
|
+
SystemCapabilities.READ_AGENTS,
|
|
167
|
+
SystemCapabilities.MANAGE_PROMPTS,
|
|
168
|
+
SystemCapabilities.READ_PROMPTS,
|
|
169
|
+
SystemCapabilities.MANAGE_ASSISTANTS,
|
|
170
|
+
SystemCapabilities.READ_ASSISTANTS,
|
|
171
|
+
SystemCapabilities.MANAGE_MCP_SERVERS,
|
|
172
|
+
],
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
key: 'system',
|
|
176
|
+
labelKey: 'com_cap_cat_system',
|
|
177
|
+
capabilities: [SystemCapabilities.ACCESS_ADMIN, SystemCapabilities.READ_USAGE],
|
|
178
|
+
},
|
|
179
|
+
];
|
|
180
|
+
|
|
181
|
+
export { BASE_CONFIG_PRINCIPAL_ID, CAPABILITY_CATEGORIES, CapabilityImplications, ResourceCapabilityMap, SystemCapabilities, configCapability, expandImplications, hasImpliedCapability, readConfigCapability };
|
|
182
|
+
//# sourceMappingURL=capabilities.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilities.es.js","sources":["../../src/admin/capabilities.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var librechatDataProvider = require('librechat-data-provider');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Sets up the Agents configuration from the config (`librechat.yaml`) file.
|
|
7
|
+
* If no agents config is defined, uses the provided defaults or parses empty object.
|
|
8
|
+
*
|
|
9
|
+
* @param config - The loaded custom configuration.
|
|
10
|
+
* @param [defaultConfig] - Default configuration from getConfigDefaults.
|
|
11
|
+
* @returns The Agents endpoint configuration.
|
|
12
|
+
*/
|
|
13
|
+
function agentsConfigSetup(config, defaultConfig) {
|
|
14
|
+
var _a;
|
|
15
|
+
const agentsConfig = (_a = config === null || config === void 0 ? void 0 : config.endpoints) === null || _a === void 0 ? void 0 : _a[librechatDataProvider.EModelEndpoint.agents];
|
|
16
|
+
if (!agentsConfig) {
|
|
17
|
+
return defaultConfig || librechatDataProvider.agentsEndpointSchema.parse({});
|
|
18
|
+
}
|
|
19
|
+
const parsedConfig = librechatDataProvider.agentsEndpointSchema.parse(agentsConfig);
|
|
20
|
+
return parsedConfig;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
exports.agentsConfigSetup = agentsConfigSetup;
|
|
24
|
+
//# sourceMappingURL=agents.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents.cjs","sources":["../../src/app/agents.ts"],"sourcesContent":[null],"names":["EModelEndpoint","agentsEndpointSchema"],"mappings":";;;;AAGA;;;;;;;AAOG;AACG,SAAU,iBAAiB,CAC/B,MAA8B,EAC9B,aAAwC,EAAA;;AAExC,IAAA,MAAM,YAAY,GAAG,CAAA,EAAA,GAAA,MAAM,aAAN,MAAM,KAAA,MAAA,GAAA,MAAA,GAAN,MAAM,CAAE,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAGA,oCAAc,CAAC,MAAM,CAAC;IAE/D,IAAI,CAAC,YAAY,EAAE;QACjB,OAAO,aAAa,IAAIC,0CAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;IACxD;IAEA,MAAM,YAAY,GAAGA,0CAAoB,CAAC,KAAK,CAAC,YAAY,CAAC;AAC7D,IAAA,OAAO,YAAY;AACrB;;;;"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { EModelEndpoint, agentsEndpointSchema } from 'librechat-data-provider';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Sets up the Agents configuration from the config (`librechat.yaml`) file.
|
|
5
|
+
* If no agents config is defined, uses the provided defaults or parses empty object.
|
|
6
|
+
*
|
|
7
|
+
* @param config - The loaded custom configuration.
|
|
8
|
+
* @param [defaultConfig] - Default configuration from getConfigDefaults.
|
|
9
|
+
* @returns The Agents endpoint configuration.
|
|
10
|
+
*/
|
|
11
|
+
function agentsConfigSetup(config, defaultConfig) {
|
|
12
|
+
var _a;
|
|
13
|
+
const agentsConfig = (_a = config === null || config === void 0 ? void 0 : config.endpoints) === null || _a === void 0 ? void 0 : _a[EModelEndpoint.agents];
|
|
14
|
+
if (!agentsConfig) {
|
|
15
|
+
return defaultConfig || agentsEndpointSchema.parse({});
|
|
16
|
+
}
|
|
17
|
+
const parsedConfig = agentsEndpointSchema.parse(agentsConfig);
|
|
18
|
+
return parsedConfig;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export { agentsConfigSetup };
|
|
22
|
+
//# sourceMappingURL=agents.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents.es.js","sources":["../../src/app/agents.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAGA;;;;;;;AAOG;AACG,SAAU,iBAAiB,CAC/B,MAA8B,EAC9B,aAAwC,EAAA;;AAExC,IAAA,MAAM,YAAY,GAAG,CAAA,EAAA,GAAA,MAAM,aAAN,MAAM,KAAA,MAAA,GAAA,MAAA,GAAN,MAAM,CAAE,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAG,cAAc,CAAC,MAAM,CAAC;IAE/D,IAAI,CAAC,YAAY,EAAE;QACjB,OAAO,aAAa,IAAI,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;IACxD;IAEA,MAAM,YAAY,GAAG,oBAAoB,CAAC,KAAK,CAAC,YAAY,CAAC;AAC7D,IAAA,OAAO,YAAY;AACrB;;;;"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var winston = require('../config/winston.cjs');
|
|
4
|
+
var librechatDataProvider = require('librechat-data-provider');
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Sets up the minimum, default Assistants configuration if Azure OpenAI Assistants option is enabled.
|
|
8
|
+
* @returns The Assistants endpoint configuration.
|
|
9
|
+
*/
|
|
10
|
+
function azureAssistantsDefaults() {
|
|
11
|
+
return {
|
|
12
|
+
capabilities: [librechatDataProvider.Capabilities.tools, librechatDataProvider.Capabilities.actions, librechatDataProvider.Capabilities.code_interpreter],
|
|
13
|
+
version: librechatDataProvider.defaultAssistantsVersion.azureAssistants,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Sets up the Assistants configuration from the config (`librechat.yaml`) file.
|
|
18
|
+
* @param config - The loaded custom configuration.
|
|
19
|
+
* @param assistantsEndpoint - The Assistants endpoint name.
|
|
20
|
+
* - The previously loaded assistants configuration from Azure OpenAI Assistants option.
|
|
21
|
+
* @param [prevConfig]
|
|
22
|
+
* @returns The Assistants endpoint configuration.
|
|
23
|
+
*/
|
|
24
|
+
function assistantsConfigSetup(config, assistantsEndpoint, prevConfig = {}) {
|
|
25
|
+
var _a, _b, _c, _d, _e;
|
|
26
|
+
const assistantsConfig = (_a = config.endpoints) === null || _a === void 0 ? void 0 : _a[assistantsEndpoint];
|
|
27
|
+
const parsedConfig = librechatDataProvider.assistantEndpointSchema.parse(assistantsConfig);
|
|
28
|
+
if (((_b = assistantsConfig === null || assistantsConfig === void 0 ? void 0 : assistantsConfig.supportedIds) === null || _b === void 0 ? void 0 : _b.length) && ((_c = assistantsConfig.excludedIds) === null || _c === void 0 ? void 0 : _c.length)) {
|
|
29
|
+
winston.warn(`Configuration conflict: The '${assistantsEndpoint}' endpoint has both 'supportedIds' and 'excludedIds' defined. The 'excludedIds' will be ignored.`);
|
|
30
|
+
}
|
|
31
|
+
if ((assistantsConfig === null || assistantsConfig === void 0 ? void 0 : assistantsConfig.privateAssistants) &&
|
|
32
|
+
(((_d = assistantsConfig.supportedIds) === null || _d === void 0 ? void 0 : _d.length) || ((_e = assistantsConfig.excludedIds) === null || _e === void 0 ? void 0 : _e.length))) {
|
|
33
|
+
winston.warn(`Configuration conflict: The '${assistantsEndpoint}' endpoint has both 'privateAssistants' and 'supportedIds' or 'excludedIds' defined. The 'supportedIds' and 'excludedIds' will be ignored.`);
|
|
34
|
+
}
|
|
35
|
+
return {
|
|
36
|
+
...prevConfig,
|
|
37
|
+
retrievalModels: parsedConfig.retrievalModels,
|
|
38
|
+
disableBuilder: parsedConfig.disableBuilder,
|
|
39
|
+
pollIntervalMs: parsedConfig.pollIntervalMs,
|
|
40
|
+
supportedIds: parsedConfig.supportedIds,
|
|
41
|
+
capabilities: parsedConfig.capabilities,
|
|
42
|
+
excludedIds: parsedConfig.excludedIds,
|
|
43
|
+
privateAssistants: parsedConfig.privateAssistants,
|
|
44
|
+
timeoutMs: parsedConfig.timeoutMs,
|
|
45
|
+
streamRate: parsedConfig.streamRate,
|
|
46
|
+
titlePrompt: parsedConfig.titlePrompt,
|
|
47
|
+
titleMethod: parsedConfig.titleMethod,
|
|
48
|
+
titleModel: parsedConfig.titleModel,
|
|
49
|
+
titleEndpoint: parsedConfig.titleEndpoint,
|
|
50
|
+
titlePromptTemplate: parsedConfig.titlePromptTemplate,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
exports.assistantsConfigSetup = assistantsConfigSetup;
|
|
55
|
+
exports.azureAssistantsDefaults = azureAssistantsDefaults;
|
|
56
|
+
//# sourceMappingURL=assistants.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assistants.cjs","sources":["../../src/app/assistants.ts"],"sourcesContent":[null],"names":["Capabilities","defaultAssistantsVersion","assistantEndpointSchema","logger"],"mappings":";;;;;AASA;;;AAGG;SACa,uBAAuB,GAAA;IAIrC,OAAO;AACL,QAAA,YAAY,EAAE,CAACA,kCAAY,CAAC,KAAK,EAAEA,kCAAY,CAAC,OAAO,EAAEA,kCAAY,CAAC,gBAAgB,CAAC;QACvF,OAAO,EAAEC,8CAAwB,CAAC,eAAe;KAClD;AACH;AAEA;;;;;;;AAOG;AACG,SAAU,qBAAqB,CACnC,MAA8B,EAC9B,kBAA8E,EAC9E,aAA0C,EAAE,EAAA;;IAE5C,MAAM,gBAAgB,GAAG,CAAA,EAAA,GAAA,MAAM,CAAC,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAG,kBAAkB,CAAC;IAC/D,MAAM,YAAY,GAAGC,6CAAuB,CAAC,KAAK,CAAC,gBAAgB,CAAC;IACpE,IAAI,CAAA,MAAA,gBAAgB,KAAA,IAAA,IAAhB,gBAAgB,KAAA,MAAA,GAAA,MAAA,GAAhB,gBAAgB,CAAE,YAAY,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,MAAM,MAAI,CAAA,EAAA,GAAA,gBAAgB,CAAC,WAAW,0CAAE,MAAM,CAAA,EAAE;AAClF,QAAAC,OAAM,CAAC,IAAI,CACT,gCAAgC,kBAAkB,CAAA,gGAAA,CAAkG,CACrJ;IACH;AACA,IAAA,IACE,CAAA,gBAAgB,KAAA,IAAA,IAAhB,gBAAgB,KAAA,MAAA,GAAA,MAAA,GAAhB,gBAAgB,CAAE,iBAAiB;AACnC,SAAC,CAAA,CAAA,EAAA,GAAA,gBAAgB,CAAC,YAAY,0CAAE,MAAM,MAAI,CAAA,EAAA,GAAA,gBAAgB,CAAC,WAAW,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,MAAM,CAAA,CAAC,EAC/E;AACA,QAAAA,OAAM,CAAC,IAAI,CACT,gCAAgC,kBAAkB,CAAA,0IAAA,CAA4I,CAC/L;IACH;IAEA,OAAO;AACL,QAAA,GAAG,UAAU;QACb,eAAe,EAAE,YAAY,CAAC,eAAe;QAC7C,cAAc,EAAE,YAAY,CAAC,cAAc;QAC3C,cAAc,EAAE,YAAY,CAAC,cAAc;QAC3C,YAAY,EAAE,YAAY,CAAC,YAAY;QACvC,YAAY,EAAE,YAAY,CAAC,YAAY;QACvC,WAAW,EAAE,YAAY,CAAC,WAAW;QACrC,iBAAiB,EAAE,YAAY,CAAC,iBAAiB;QACjD,SAAS,EAAE,YAAY,CAAC,SAAS;QACjC,UAAU,EAAE,YAAY,CAAC,UAAU;QACnC,WAAW,EAAE,YAAY,CAAC,WAAW;QACrC,WAAW,EAAE,YAAY,CAAC,WAAW;QACrC,UAAU,EAAE,YAAY,CAAC,UAAU;QACnC,aAAa,EAAE,YAAY,CAAC,aAAa;QACzC,mBAAmB,EAAE,YAAY,CAAC,mBAAmB;KACtD;AACH;;;;;"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import logger from '../config/winston.es.js';
|
|
2
|
+
import { defaultAssistantsVersion, Capabilities, assistantEndpointSchema } from 'librechat-data-provider';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Sets up the minimum, default Assistants configuration if Azure OpenAI Assistants option is enabled.
|
|
6
|
+
* @returns The Assistants endpoint configuration.
|
|
7
|
+
*/
|
|
8
|
+
function azureAssistantsDefaults() {
|
|
9
|
+
return {
|
|
10
|
+
capabilities: [Capabilities.tools, Capabilities.actions, Capabilities.code_interpreter],
|
|
11
|
+
version: defaultAssistantsVersion.azureAssistants,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Sets up the Assistants configuration from the config (`librechat.yaml`) file.
|
|
16
|
+
* @param config - The loaded custom configuration.
|
|
17
|
+
* @param assistantsEndpoint - The Assistants endpoint name.
|
|
18
|
+
* - The previously loaded assistants configuration from Azure OpenAI Assistants option.
|
|
19
|
+
* @param [prevConfig]
|
|
20
|
+
* @returns The Assistants endpoint configuration.
|
|
21
|
+
*/
|
|
22
|
+
function assistantsConfigSetup(config, assistantsEndpoint, prevConfig = {}) {
|
|
23
|
+
var _a, _b, _c, _d, _e;
|
|
24
|
+
const assistantsConfig = (_a = config.endpoints) === null || _a === void 0 ? void 0 : _a[assistantsEndpoint];
|
|
25
|
+
const parsedConfig = assistantEndpointSchema.parse(assistantsConfig);
|
|
26
|
+
if (((_b = assistantsConfig === null || assistantsConfig === void 0 ? void 0 : assistantsConfig.supportedIds) === null || _b === void 0 ? void 0 : _b.length) && ((_c = assistantsConfig.excludedIds) === null || _c === void 0 ? void 0 : _c.length)) {
|
|
27
|
+
logger.warn(`Configuration conflict: The '${assistantsEndpoint}' endpoint has both 'supportedIds' and 'excludedIds' defined. The 'excludedIds' will be ignored.`);
|
|
28
|
+
}
|
|
29
|
+
if ((assistantsConfig === null || assistantsConfig === void 0 ? void 0 : assistantsConfig.privateAssistants) &&
|
|
30
|
+
(((_d = assistantsConfig.supportedIds) === null || _d === void 0 ? void 0 : _d.length) || ((_e = assistantsConfig.excludedIds) === null || _e === void 0 ? void 0 : _e.length))) {
|
|
31
|
+
logger.warn(`Configuration conflict: The '${assistantsEndpoint}' endpoint has both 'privateAssistants' and 'supportedIds' or 'excludedIds' defined. The 'supportedIds' and 'excludedIds' will be ignored.`);
|
|
32
|
+
}
|
|
33
|
+
return {
|
|
34
|
+
...prevConfig,
|
|
35
|
+
retrievalModels: parsedConfig.retrievalModels,
|
|
36
|
+
disableBuilder: parsedConfig.disableBuilder,
|
|
37
|
+
pollIntervalMs: parsedConfig.pollIntervalMs,
|
|
38
|
+
supportedIds: parsedConfig.supportedIds,
|
|
39
|
+
capabilities: parsedConfig.capabilities,
|
|
40
|
+
excludedIds: parsedConfig.excludedIds,
|
|
41
|
+
privateAssistants: parsedConfig.privateAssistants,
|
|
42
|
+
timeoutMs: parsedConfig.timeoutMs,
|
|
43
|
+
streamRate: parsedConfig.streamRate,
|
|
44
|
+
titlePrompt: parsedConfig.titlePrompt,
|
|
45
|
+
titleMethod: parsedConfig.titleMethod,
|
|
46
|
+
titleModel: parsedConfig.titleModel,
|
|
47
|
+
titleEndpoint: parsedConfig.titleEndpoint,
|
|
48
|
+
titlePromptTemplate: parsedConfig.titlePromptTemplate,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export { assistantsConfigSetup, azureAssistantsDefaults };
|
|
53
|
+
//# sourceMappingURL=assistants.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assistants.es.js","sources":["../../src/app/assistants.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AASA;;;AAGG;SACa,uBAAuB,GAAA;IAIrC,OAAO;AACL,QAAA,YAAY,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,gBAAgB,CAAC;QACvF,OAAO,EAAE,wBAAwB,CAAC,eAAe;KAClD;AACH;AAEA;;;;;;;AAOG;AACG,SAAU,qBAAqB,CACnC,MAA8B,EAC9B,kBAA8E,EAC9E,aAA0C,EAAE,EAAA;;IAE5C,MAAM,gBAAgB,GAAG,CAAA,EAAA,GAAA,MAAM,CAAC,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAG,kBAAkB,CAAC;IAC/D,MAAM,YAAY,GAAG,uBAAuB,CAAC,KAAK,CAAC,gBAAgB,CAAC;IACpE,IAAI,CAAA,MAAA,gBAAgB,KAAA,IAAA,IAAhB,gBAAgB,KAAA,MAAA,GAAA,MAAA,GAAhB,gBAAgB,CAAE,YAAY,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,MAAM,MAAI,CAAA,EAAA,GAAA,gBAAgB,CAAC,WAAW,0CAAE,MAAM,CAAA,EAAE;AAClF,QAAA,MAAM,CAAC,IAAI,CACT,gCAAgC,kBAAkB,CAAA,gGAAA,CAAkG,CACrJ;IACH;AACA,IAAA,IACE,CAAA,gBAAgB,KAAA,IAAA,IAAhB,gBAAgB,KAAA,MAAA,GAAA,MAAA,GAAhB,gBAAgB,CAAE,iBAAiB;AACnC,SAAC,CAAA,CAAA,EAAA,GAAA,gBAAgB,CAAC,YAAY,0CAAE,MAAM,MAAI,CAAA,EAAA,GAAA,gBAAgB,CAAC,WAAW,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,MAAM,CAAA,CAAC,EAC/E;AACA,QAAA,MAAM,CAAC,IAAI,CACT,gCAAgC,kBAAkB,CAAA,0IAAA,CAA4I,CAC/L;IACH;IAEA,OAAO;AACL,QAAA,GAAG,UAAU;QACb,eAAe,EAAE,YAAY,CAAC,eAAe;QAC7C,cAAc,EAAE,YAAY,CAAC,cAAc;QAC3C,cAAc,EAAE,YAAY,CAAC,cAAc;QAC3C,YAAY,EAAE,YAAY,CAAC,YAAY;QACvC,YAAY,EAAE,YAAY,CAAC,YAAY;QACvC,WAAW,EAAE,YAAY,CAAC,WAAW;QACrC,iBAAiB,EAAE,YAAY,CAAC,iBAAiB;QACjD,SAAS,EAAE,YAAY,CAAC,SAAS;QACjC,UAAU,EAAE,YAAY,CAAC,UAAU;QACnC,WAAW,EAAE,YAAY,CAAC,WAAW;QACrC,WAAW,EAAE,YAAY,CAAC,WAAW;QACrC,UAAU,EAAE,YAAY,CAAC,UAAU;QACnC,aAAa,EAAE,YAAY,CAAC,aAAa;QACzC,mBAAmB,EAAE,YAAY,CAAC,mBAAmB;KACtD;AACH;;;;"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var winston = require('../config/winston.cjs');
|
|
4
|
+
var librechatDataProvider = require('librechat-data-provider');
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Sets up the Azure OpenAI configuration from the config (`librechat.yaml`) file.
|
|
8
|
+
* @param config - The loaded custom configuration.
|
|
9
|
+
* @returns The Azure OpenAI configuration.
|
|
10
|
+
*/
|
|
11
|
+
function azureConfigSetup(config) {
|
|
12
|
+
var _a, _b, _c;
|
|
13
|
+
const azureConfig = (_a = config.endpoints) === null || _a === void 0 ? void 0 : _a[librechatDataProvider.EModelEndpoint.azureOpenAI];
|
|
14
|
+
if (!azureConfig) {
|
|
15
|
+
throw new Error('Azure OpenAI configuration is missing.');
|
|
16
|
+
}
|
|
17
|
+
const { groups, ...azureConfiguration } = azureConfig;
|
|
18
|
+
const { isValid, modelNames, modelGroupMap, groupMap, errors } = librechatDataProvider.validateAzureGroups(groups);
|
|
19
|
+
if (!isValid) {
|
|
20
|
+
const errorString = errors.join('\n');
|
|
21
|
+
const errorMessage = 'Invalid Azure OpenAI configuration:\n' + errorString;
|
|
22
|
+
winston.error(errorMessage);
|
|
23
|
+
throw new Error(errorMessage);
|
|
24
|
+
}
|
|
25
|
+
const assistantModels = [];
|
|
26
|
+
const assistantGroups = new Set();
|
|
27
|
+
for (const modelName of modelNames) {
|
|
28
|
+
librechatDataProvider.mapModelToAzureConfig({ modelName, modelGroupMap, groupMap });
|
|
29
|
+
const groupName = (_b = modelGroupMap === null || modelGroupMap === void 0 ? void 0 : modelGroupMap[modelName]) === null || _b === void 0 ? void 0 : _b.group;
|
|
30
|
+
const modelGroup = groupMap === null || groupMap === void 0 ? void 0 : groupMap[groupName];
|
|
31
|
+
const supportsAssistants = (modelGroup === null || modelGroup === void 0 ? void 0 : modelGroup.assistants) || ((_c = modelGroup === null || modelGroup === void 0 ? void 0 : modelGroup[modelName]) === null || _c === void 0 ? void 0 : _c.assistants);
|
|
32
|
+
if (supportsAssistants) {
|
|
33
|
+
assistantModels.push(modelName);
|
|
34
|
+
if (!assistantGroups.has(groupName)) {
|
|
35
|
+
assistantGroups.add(groupName);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
if (azureConfiguration.assistants && assistantModels.length === 0) {
|
|
40
|
+
throw new Error('No Azure models are configured to support assistants. Please remove the `assistants` field or configure at least one model to support assistants.');
|
|
41
|
+
}
|
|
42
|
+
if (azureConfiguration.assistants &&
|
|
43
|
+
process.env.ENDPOINTS &&
|
|
44
|
+
!process.env.ENDPOINTS.includes(librechatDataProvider.EModelEndpoint.azureAssistants)) {
|
|
45
|
+
winston.warn(`Azure Assistants are configured, but the endpoint will not be accessible as it's not included in the ENDPOINTS environment variable.
|
|
46
|
+
Please add the value "${librechatDataProvider.EModelEndpoint.azureAssistants}" to the ENDPOINTS list if expected.`);
|
|
47
|
+
}
|
|
48
|
+
return {
|
|
49
|
+
errors,
|
|
50
|
+
isValid,
|
|
51
|
+
groupMap,
|
|
52
|
+
modelNames,
|
|
53
|
+
modelGroupMap,
|
|
54
|
+
assistantModels,
|
|
55
|
+
assistantGroups: Array.from(assistantGroups),
|
|
56
|
+
...azureConfiguration,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
exports.azureConfigSetup = azureConfigSetup;
|
|
61
|
+
//# sourceMappingURL=azure.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"azure.cjs","sources":["../../src/app/azure.ts"],"sourcesContent":[null],"names":["EModelEndpoint","validateAzureGroups","logger","mapModelToAzureConfig"],"mappings":";;;;;AAQA;;;;AAIG;AACG,SAAU,gBAAgB,CAAC,MAA8B,EAAA;;IAC7D,MAAM,WAAW,GAAG,CAAA,EAAA,GAAA,MAAM,CAAC,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAGA,oCAAc,CAAC,WAAW,CAAC;IAClE,IAAI,CAAC,WAAW,EAAE;AAChB,QAAA,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC;IAC3D;IACA,MAAM,EAAE,MAAM,EAAE,GAAG,kBAAkB,EAAE,GAAG,WAAW;AACrD,IAAA,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAGC,yCAAmB,CAAC,MAAM,CAAC;IAE5F,IAAI,CAAC,OAAO,EAAE;QACZ,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AACrC,QAAA,MAAM,YAAY,GAAG,uCAAuC,GAAG,WAAW;AAC1E,QAAAC,OAAM,CAAC,KAAK,CAAC,YAAY,CAAC;AAC1B,QAAA,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC;IAC/B;IAEA,MAAM,eAAe,GAAa,EAAE;AACpC,IAAA,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU;AACzC,IAAA,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;QAClCC,2CAAqB,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC;AAC7D,QAAA,MAAM,SAAS,GAAG,CAAA,EAAA,GAAA,aAAa,KAAA,IAAA,IAAb,aAAa,KAAA,MAAA,GAAA,MAAA,GAAb,aAAa,CAAG,SAAS,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,KAAK;QACnD,MAAM,UAAU,GAAG,QAAQ,KAAA,IAAA,IAAR,QAAQ,uBAAR,QAAQ,CAAG,SAAS,CAAC;QACxC,MAAM,kBAAkB,GAAG,CAAA,UAAU,aAAV,UAAU,KAAA,MAAA,GAAA,MAAA,GAAV,UAAU,CAAE,UAAU,MAAI,MAAA,UAAU,KAAA,IAAA,IAAV,UAAU,KAAA,MAAA,GAAA,MAAA,GAAV,UAAU,CAAG,SAAS,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,UAAU,CAAA;QACxF,IAAI,kBAAkB,EAAE;AACtB,YAAA,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC;YAC/B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;AACnC,gBAAA,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC;YAChC;QACF;IACF;IAEA,IAAI,kBAAkB,CAAC,UAAU,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;AACjE,QAAA,MAAM,IAAI,KAAK,CACb,mJAAmJ,CACpJ;IACH;IAEA,IACE,kBAAkB,CAAC,UAAU;QAC7B,OAAO,CAAC,GAAG,CAAC,SAAS;AACrB,QAAA,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAACH,oCAAc,CAAC,eAAe,CAAC,EAC/D;QACAE,OAAM,CAAC,IAAI,CACT,CAAA;AACwB,4BAAA,EAAAF,oCAAc,CAAC,eAAe,CAAA,oCAAA,CAAsC,CAC7F;IACH;IAEA,OAAO;QACL,MAAM;QACN,OAAO;QACP,QAAQ;QACR,UAAU;QACV,aAAa;QACb,eAAe;AACf,QAAA,eAAe,EAAE,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC;AAC5C,QAAA,GAAG,kBAAkB;KACtB;AACH;;;;"}
|