@jazzmind/busibox-app 3.0.18 → 3.0.19
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/components/UserDropdown.d.ts +0 -16
- package/dist/components/UserDropdown.d.ts.map +1 -1
- package/dist/components/UserDropdown.js +2 -2
- package/dist/components/UserDropdown.js.map +1 -1
- package/dist/components/auth/PasskeyRequiredWrapper.d.ts +0 -8
- package/dist/components/auth/PasskeyRequiredWrapper.d.ts.map +1 -1
- package/dist/components/auth/PasskeyRequiredWrapper.js +2 -2
- package/dist/components/auth/PasskeyRequiredWrapper.js.map +1 -1
- package/dist/components/auth/ProtectedRoute.d.ts +0 -9
- package/dist/components/auth/ProtectedRoute.d.ts.map +1 -1
- package/dist/components/auth/ProtectedRoute.js +2 -2
- package/dist/components/auth/ProtectedRoute.js.map +1 -1
- package/dist/components/auth/SessionProvider.d.ts +0 -40
- package/dist/components/auth/SessionProvider.d.ts.map +1 -1
- package/dist/components/auth/SessionProvider.js +2 -2
- package/dist/components/auth/SessionProvider.js.map +1 -1
- package/dist/components/chat/AgentBadge.d.ts +0 -5
- package/dist/components/chat/AgentBadge.d.ts.map +1 -1
- package/dist/components/chat/AgentBadge.js +2 -2
- package/dist/components/chat/AgentBadge.js.map +1 -1
- package/dist/components/chat/AgentSelectionPanel.d.ts +0 -6
- package/dist/components/chat/AgentSelectionPanel.d.ts.map +1 -1
- package/dist/components/chat/AgentSelectionPanel.js +2 -2
- package/dist/components/chat/AgentSelectionPanel.js.map +1 -1
- package/dist/components/chat/AgentSelector.d.ts +0 -6
- package/dist/components/chat/AgentSelector.d.ts.map +1 -1
- package/dist/components/chat/AgentSelector.js +2 -2
- package/dist/components/chat/AgentSelector.js.map +1 -1
- package/dist/components/chat/AgentToolSelector.d.ts +0 -7
- package/dist/components/chat/AgentToolSelector.d.ts.map +1 -1
- package/dist/components/chat/AgentToolSelector.js +2 -2
- package/dist/components/chat/AgentToolSelector.js.map +1 -1
- package/dist/components/chat/AttachmentPreview.d.ts.map +1 -1
- package/dist/components/chat/AttachmentPreview.js +0 -5
- package/dist/components/chat/AttachmentPreview.js.map +1 -1
- package/dist/components/chat/AttachmentUploader.d.ts +0 -5
- package/dist/components/chat/AttachmentUploader.d.ts.map +1 -1
- package/dist/components/chat/AttachmentUploader.js +2 -2
- package/dist/components/chat/AttachmentUploader.js.map +1 -1
- package/dist/components/chat/ChatContainer.d.ts +0 -6
- package/dist/components/chat/ChatContainer.d.ts.map +1 -1
- package/dist/components/chat/ChatContainer.js +2 -2
- package/dist/components/chat/ChatContainer.js.map +1 -1
- package/dist/components/chat/ConversationSidebar.d.ts +0 -5
- package/dist/components/chat/ConversationSidebar.d.ts.map +1 -1
- package/dist/components/chat/ConversationSidebar.js +2 -2
- package/dist/components/chat/ConversationSidebar.js.map +1 -1
- package/dist/components/chat/DeleteConversationModal.d.ts +0 -3
- package/dist/components/chat/DeleteConversationModal.d.ts.map +1 -1
- package/dist/components/chat/DeleteConversationModal.js +2 -2
- package/dist/components/chat/DeleteConversationModal.js.map +1 -1
- package/dist/components/chat/FullChatInterface.d.ts +0 -23
- package/dist/components/chat/FullChatInterface.d.ts.map +1 -1
- package/dist/components/chat/FullChatInterface.js +2 -2
- package/dist/components/chat/FullChatInterface.js.map +1 -1
- package/dist/components/chat/InsightEditModal.d.ts +0 -5
- package/dist/components/chat/InsightEditModal.d.ts.map +1 -1
- package/dist/components/chat/InsightEditModal.js +2 -2
- package/dist/components/chat/InsightEditModal.js.map +1 -1
- package/dist/components/chat/LibrarySelector.d.ts +0 -6
- package/dist/components/chat/LibrarySelector.d.ts.map +1 -1
- package/dist/components/chat/LibrarySelector.js +2 -2
- package/dist/components/chat/LibrarySelector.js.map +1 -1
- package/dist/components/chat/MessageInput.d.ts +0 -5
- package/dist/components/chat/MessageInput.d.ts.map +1 -1
- package/dist/components/chat/MessageInput.js +2 -2
- package/dist/components/chat/MessageInput.js.map +1 -1
- package/dist/components/chat/MessageList.d.ts +0 -5
- package/dist/components/chat/MessageList.d.ts.map +1 -1
- package/dist/components/chat/MessageList.js +2 -2
- package/dist/components/chat/MessageList.js.map +1 -1
- package/dist/components/chat/RawContentToggle.d.ts.map +1 -1
- package/dist/components/chat/RawContentToggle.js +0 -6
- package/dist/components/chat/RawContentToggle.js.map +1 -1
- package/dist/components/chat/SearchToggles.d.ts +0 -5
- package/dist/components/chat/SearchToggles.d.ts.map +1 -1
- package/dist/components/chat/SearchToggles.js +2 -2
- package/dist/components/chat/SearchToggles.js.map +1 -1
- package/dist/components/chat/SimpleChatInterface.d.ts +0 -25
- package/dist/components/chat/SimpleChatInterface.d.ts.map +1 -1
- package/dist/components/chat/SimpleChatInterface.js +2 -2
- package/dist/components/chat/SimpleChatInterface.js.map +1 -1
- package/dist/components/chat/ThinkingSection.d.ts +0 -7
- package/dist/components/chat/ThinkingSection.d.ts.map +1 -1
- package/dist/components/chat/ThinkingSection.js +2 -2
- package/dist/components/chat/ThinkingSection.js.map +1 -1
- package/dist/components/chat/ThinkingToggle.d.ts +0 -6
- package/dist/components/chat/ThinkingToggle.d.ts.map +1 -1
- package/dist/components/chat/ThinkingToggle.js +2 -2
- package/dist/components/chat/ThinkingToggle.js.map +1 -1
- package/dist/components/chat/ToolSelector.d.ts +0 -6
- package/dist/components/chat/ToolSelector.d.ts.map +1 -1
- package/dist/components/chat/ToolSelector.js +2 -2
- package/dist/components/chat/ToolSelector.js.map +1 -1
- package/dist/components/shared/AppIcon.d.ts.map +1 -1
- package/dist/components/shared/AppIcon.js +2 -2
- package/dist/components/shared/AppIcon.js.map +1 -1
- package/dist/components/shared/Modal.d.ts.map +1 -1
- package/dist/components/shared/Modal.js +2 -2
- package/dist/components/shared/Modal.js.map +1 -1
- package/dist/components/workflow/WorkflowList.d.ts.map +1 -1
- package/dist/components/workflow/WorkflowList.js +2 -2
- package/dist/components/workflow/WorkflowList.js.map +1 -1
- package/dist/contexts/AuthContext.d.ts.map +1 -1
- package/dist/contexts/AuthContext.js +2 -2
- package/dist/contexts/AuthContext.js.map +1 -1
- package/dist/contexts/CustomizationContext.d.ts.map +1 -1
- package/dist/contexts/CustomizationContext.js +2 -2
- package/dist/contexts/CustomizationContext.js.map +1 -1
- package/dist/contexts/ThemeContext.d.ts.map +1 -1
- package/dist/contexts/ThemeContext.js +2 -2
- package/dist/contexts/ThemeContext.js.map +1 -1
- package/dist/layout/AdminHeader.d.ts +0 -5
- package/dist/layout/AdminHeader.d.ts.map +1 -1
- package/dist/layout/AdminHeader.js +2 -2
- package/dist/layout/AdminHeader.js.map +1 -1
- package/dist/layout/Footer.d.ts +0 -5
- package/dist/layout/Footer.d.ts.map +1 -1
- package/dist/layout/Footer.js +2 -2
- package/dist/layout/Footer.js.map +1 -1
- package/dist/layout/Header.d.ts.map +1 -1
- package/dist/layout/Header.js +2 -2
- package/dist/layout/Header.js.map +1 -1
- package/dist/layout/ThemeToggle.d.ts +0 -5
- package/dist/layout/ThemeToggle.d.ts.map +1 -1
- package/dist/layout/ThemeToggle.js +2 -2
- package/dist/layout/ThemeToggle.js.map +1 -1
- package/package.json +1 -1
- package/dist/lib/agent/agent-api-helpers.d.ts +0 -16
- package/dist/lib/agent/agent-api-helpers.d.ts.map +0 -1
- package/dist/lib/agent/agent-api-helpers.js +0 -50
- package/dist/lib/agent/agent-api-helpers.js.map +0 -1
- package/dist/lib/agent/api-helpers.d.ts +0 -16
- package/dist/lib/agent/api-helpers.d.ts.map +0 -1
- package/dist/lib/agent/api-helpers.js +0 -50
- package/dist/lib/agent/api-helpers.js.map +0 -1
- package/dist/lib/agent/chat-cleanup.d.ts +0 -34
- package/dist/lib/agent/chat-cleanup.d.ts.map +0 -1
- package/dist/lib/agent/chat-cleanup.js +0 -133
- package/dist/lib/agent/chat-cleanup.js.map +0 -1
- package/dist/lib/agent/client.d.ts +0 -55
- package/dist/lib/agent/client.d.ts.map +0 -1
- package/dist/lib/agent/client.js +0 -103
- package/dist/lib/agent/client.js.map +0 -1
- package/dist/lib/agent/openai.d.ts +0 -94
- package/dist/lib/agent/openai.d.ts.map +0 -1
- package/dist/lib/agent/openai.js +0 -290
- package/dist/lib/agent/openai.js.map +0 -1
- package/dist/lib/ai/dual-model-router.d.ts +0 -130
- package/dist/lib/ai/dual-model-router.d.ts.map +0 -1
- package/dist/lib/ai/dual-model-router.js +0 -413
- package/dist/lib/ai/dual-model-router.js.map +0 -1
- package/dist/lib/ai/openai.d.ts +0 -94
- package/dist/lib/ai/openai.d.ts.map +0 -1
- package/dist/lib/ai/openai.js +0 -290
- package/dist/lib/ai/openai.js.map +0 -1
- package/dist/lib/ai/tools.d.ts +0 -64
- package/dist/lib/ai/tools.d.ts.map +0 -1
- package/dist/lib/ai/tools.js +0 -159
- package/dist/lib/ai/tools.js.map +0 -1
- package/dist/lib/audit/client.d.ts +0 -138
- package/dist/lib/audit/client.d.ts.map +0 -1
- package/dist/lib/audit/client.js +0 -486
- package/dist/lib/audit/client.js.map +0 -1
- package/dist/lib/audit/index.d.ts +0 -6
- package/dist/lib/audit/index.d.ts.map +0 -1
- package/dist/lib/audit/index.js +0 -6
- package/dist/lib/audit/index.js.map +0 -1
- package/dist/lib/auth/auth-helper.d.ts +0 -167
- package/dist/lib/auth/auth-helper.d.ts.map +0 -1
- package/dist/lib/auth/auth-helper.js +0 -345
- package/dist/lib/auth/auth-helper.js.map +0 -1
- package/dist/lib/auth/auth-state-manager.d.ts +0 -201
- package/dist/lib/auth/auth-state-manager.d.ts.map +0 -1
- package/dist/lib/auth/auth-state-manager.js +0 -597
- package/dist/lib/auth/auth-state-manager.js.map +0 -1
- package/dist/lib/auth/client.d.ts +0 -276
- package/dist/lib/auth/client.d.ts.map +0 -1
- package/dist/lib/auth/client.js +0 -325
- package/dist/lib/auth/client.js.map +0 -1
- package/dist/lib/auth/index.d.ts +0 -10
- package/dist/lib/auth/index.d.ts.map +0 -1
- package/dist/lib/auth/index.js +0 -10
- package/dist/lib/auth/index.js.map +0 -1
- package/dist/lib/auth/sso-route-handler.d.ts +0 -114
- package/dist/lib/auth/sso-route-handler.d.ts.map +0 -1
- package/dist/lib/auth/sso-route-handler.js +0 -199
- package/dist/lib/auth/sso-route-handler.js.map +0 -1
- package/dist/lib/auth/sso.d.ts +0 -162
- package/dist/lib/auth/sso.d.ts.map +0 -1
- package/dist/lib/auth/sso.js +0 -282
- package/dist/lib/auth/sso.js.map +0 -1
- package/dist/lib/authz/email.d.ts +0 -65
- package/dist/lib/authz/email.d.ts.map +0 -1
- package/dist/lib/authz/email.js +0 -112
- package/dist/lib/authz/email.js.map +0 -1
- package/dist/lib/authz/permissions.d.ts +0 -109
- package/dist/lib/authz/permissions.d.ts.map +0 -1
- package/dist/lib/authz/permissions.js +0 -238
- package/dist/lib/authz/permissions.js.map +0 -1
- package/dist/lib/authz/service-audit.d.ts +0 -41
- package/dist/lib/authz/service-audit.d.ts.map +0 -1
- package/dist/lib/authz/service-audit.js +0 -60
- package/dist/lib/authz/service-audit.js.map +0 -1
- package/dist/lib/chat-server/agent-api-client.d.ts +0 -151
- package/dist/lib/chat-server/agent-api-client.d.ts.map +0 -1
- package/dist/lib/chat-server/agent-api-client.js +0 -162
- package/dist/lib/chat-server/agent-api-client.js.map +0 -1
- package/dist/lib/chat-server/attachments.d.ts +0 -118
- package/dist/lib/chat-server/attachments.d.ts.map +0 -1
- package/dist/lib/chat-server/attachments.js +0 -317
- package/dist/lib/chat-server/attachments.js.map +0 -1
- package/dist/lib/chat-server/cleanup.d.ts +0 -34
- package/dist/lib/chat-server/cleanup.d.ts.map +0 -1
- package/dist/lib/chat-server/cleanup.js +0 -133
- package/dist/lib/chat-server/cleanup.js.map +0 -1
- package/dist/lib/chat-server/conversations.d.ts +0 -159
- package/dist/lib/chat-server/conversations.d.ts.map +0 -1
- package/dist/lib/chat-server/conversations.js +0 -278
- package/dist/lib/chat-server/conversations.js.map +0 -1
- package/dist/lib/chat-server/insights.d.ts +0 -84
- package/dist/lib/chat-server/insights.d.ts.map +0 -1
- package/dist/lib/chat-server/insights.js +0 -193
- package/dist/lib/chat-server/insights.js.map +0 -1
- package/dist/lib/chat-server/messages.d.ts +0 -154
- package/dist/lib/chat-server/messages.d.ts.map +0 -1
- package/dist/lib/chat-server/messages.js +0 -282
- package/dist/lib/chat-server/messages.js.map +0 -1
- package/dist/lib/chat-server/middleware.d.ts +0 -119
- package/dist/lib/chat-server/middleware.d.ts.map +0 -1
- package/dist/lib/chat-server/middleware.js +0 -234
- package/dist/lib/chat-server/middleware.js.map +0 -1
- package/dist/lib/chat-server/models.d.ts +0 -60
- package/dist/lib/chat-server/models.d.ts.map +0 -1
- package/dist/lib/chat-server/models.js +0 -205
- package/dist/lib/chat-server/models.js.map +0 -1
- package/dist/lib/chat-server/search.d.ts +0 -89
- package/dist/lib/chat-server/search.d.ts.map +0 -1
- package/dist/lib/chat-server/search.js +0 -203
- package/dist/lib/chat-server/search.js.map +0 -1
- package/dist/lib/chat-server/sharing.d.ts +0 -70
- package/dist/lib/chat-server/sharing.d.ts.map +0 -1
- package/dist/lib/chat-server/sharing.js +0 -146
- package/dist/lib/chat-server/sharing.js.map +0 -1
- package/dist/lib/data/embeddings-app-client.d.ts +0 -37
- package/dist/lib/data/embeddings-app-client.d.ts.map +0 -1
- package/dist/lib/data/embeddings-app-client.js +0 -72
- package/dist/lib/data/embeddings-app-client.js.map +0 -1
- package/dist/lib/deploy/manifest-validator.d.ts +0 -25
- package/dist/lib/deploy/manifest-validator.d.ts.map +0 -1
- package/dist/lib/deploy/manifest-validator.js +0 -142
- package/dist/lib/deploy/manifest-validator.js.map +0 -1
- package/dist/lib/embeddings/data-client.d.ts +0 -37
- package/dist/lib/embeddings/data-client.d.ts.map +0 -1
- package/dist/lib/embeddings/data-client.js +0 -72
- package/dist/lib/embeddings/data-client.js.map +0 -1
- package/dist/lib/hooks/useMediaQuery.d.ts +0 -6
- package/dist/lib/hooks/useMediaQuery.d.ts.map +0 -1
- package/dist/lib/hooks/useMediaQuery.js +0 -18
- package/dist/lib/hooks/useMediaQuery.js.map +0 -1
- package/dist/lib/insights/client.d.ts +0 -131
- package/dist/lib/insights/client.d.ts.map +0 -1
- package/dist/lib/insights/client.js +0 -306
- package/dist/lib/insights/client.js.map +0 -1
- package/dist/lib/insights/index.d.ts +0 -5
- package/dist/lib/insights/index.d.ts.map +0 -1
- package/dist/lib/insights/index.js +0 -5
- package/dist/lib/insights/index.js.map +0 -1
- package/dist/lib/next/authz-client.d.ts +0 -120
- package/dist/lib/next/authz-client.d.ts.map +0 -1
- package/dist/lib/next/authz-client.js +0 -203
- package/dist/lib/next/authz-client.js.map +0 -1
- package/dist/lib/next/passkey.d.ts +0 -78
- package/dist/lib/next/passkey.d.ts.map +0 -1
- package/dist/lib/next/passkey.js +0 -380
- package/dist/lib/next/passkey.js.map +0 -1
- package/dist/lib/next/sso.d.ts +0 -51
- package/dist/lib/next/sso.d.ts.map +0 -1
- package/dist/lib/next/sso.js +0 -167
- package/dist/lib/next/sso.js.map +0 -1
- package/dist/lib/rbac/client.d.ts +0 -320
- package/dist/lib/rbac/client.d.ts.map +0 -1
- package/dist/lib/rbac/client.js +0 -532
- package/dist/lib/rbac/client.js.map +0 -1
- package/dist/lib/rbac/index.d.ts +0 -6
- package/dist/lib/rbac/index.d.ts.map +0 -1
- package/dist/lib/rbac/index.js +0 -6
- package/dist/lib/rbac/index.js.map +0 -1
- package/dist/lib/search/providers.d.ts +0 -105
- package/dist/lib/search/providers.d.ts.map +0 -1
- package/dist/lib/search/providers.js +0 -140
- package/dist/lib/search/providers.js.map +0 -1
- package/dist/lib/services/api-client.d.ts +0 -46
- package/dist/lib/services/api-client.d.ts.map +0 -1
- package/dist/lib/services/api-client.js +0 -80
- package/dist/lib/services/api-client.js.map +0 -1
- package/dist/lib/services/app-library.d.ts +0 -36
- package/dist/lib/services/app-library.d.ts.map +0 -1
- package/dist/lib/services/app-library.js +0 -123
- package/dist/lib/services/app-library.js.map +0 -1
- package/dist/lib/services/app-utils.d.ts +0 -22
- package/dist/lib/services/app-utils.d.ts.map +0 -1
- package/dist/lib/services/app-utils.js +0 -36
- package/dist/lib/services/app-utils.js.map +0 -1
- package/dist/lib/services/audit.d.ts +0 -41
- package/dist/lib/services/audit.d.ts.map +0 -1
- package/dist/lib/services/audit.js +0 -60
- package/dist/lib/services/audit.js.map +0 -1
- package/dist/lib/services/database-cloner.d.ts +0 -28
- package/dist/lib/services/database-cloner.d.ts.map +0 -1
- package/dist/lib/services/database-cloner.js +0 -197
- package/dist/lib/services/database-cloner.js.map +0 -1
- package/dist/lib/services/default-apps.d.ts +0 -31
- package/dist/lib/services/default-apps.d.ts.map +0 -1
- package/dist/lib/services/default-apps.js +0 -121
- package/dist/lib/services/default-apps.js.map +0 -1
- package/dist/lib/services/deploy-api-client.d.ts +0 -184
- package/dist/lib/services/deploy-api-client.d.ts.map +0 -1
- package/dist/lib/services/deploy-api-client.js +0 -208
- package/dist/lib/services/deploy-api-client.js.map +0 -1
- package/dist/lib/services/deployment-service-client.d.ts +0 -122
- package/dist/lib/services/deployment-service-client.d.ts.map +0 -1
- package/dist/lib/services/deployment-service-client.js +0 -245
- package/dist/lib/services/deployment-service-client.js.map +0 -1
- package/dist/lib/services/docs.d.ts +0 -80
- package/dist/lib/services/docs.d.ts.map +0 -1
- package/dist/lib/services/docs.js +0 -160
- package/dist/lib/services/docs.js.map +0 -1
- package/dist/lib/services/email-validation.d.ts +0 -33
- package/dist/lib/services/email-validation.d.ts.map +0 -1
- package/dist/lib/services/email-validation.js +0 -70
- package/dist/lib/services/email-validation.js.map +0 -1
- package/dist/lib/services/email.d.ts +0 -65
- package/dist/lib/services/email.d.ts.map +0 -1
- package/dist/lib/services/email.js +0 -112
- package/dist/lib/services/email.js.map +0 -1
- package/dist/lib/services/github-manifest-fetcher.d.ts +0 -74
- package/dist/lib/services/github-manifest-fetcher.d.ts.map +0 -1
- package/dist/lib/services/github-manifest-fetcher.js +0 -168
- package/dist/lib/services/github-manifest-fetcher.js.map +0 -1
- package/dist/lib/services/libraries.d.ts +0 -124
- package/dist/lib/services/libraries.d.ts.map +0 -1
- package/dist/lib/services/libraries.js +0 -507
- package/dist/lib/services/libraries.js.map +0 -1
- package/dist/lib/services/litellm.d.ts +0 -33
- package/dist/lib/services/litellm.d.ts.map +0 -1
- package/dist/lib/services/litellm.js +0 -222
- package/dist/lib/services/litellm.js.map +0 -1
- package/dist/lib/services/manifest-schema.d.ts +0 -66
- package/dist/lib/services/manifest-schema.d.ts.map +0 -1
- package/dist/lib/services/manifest-schema.js +0 -86
- package/dist/lib/services/manifest-schema.js.map +0 -1
- package/dist/lib/services/manifest-validator.d.ts +0 -25
- package/dist/lib/services/manifest-validator.d.ts.map +0 -1
- package/dist/lib/services/manifest-validator.js +0 -142
- package/dist/lib/services/manifest-validator.js.map +0 -1
- package/dist/lib/services/manifest.d.ts +0 -45
- package/dist/lib/services/manifest.d.ts.map +0 -1
- package/dist/lib/services/manifest.js +0 -137
- package/dist/lib/services/manifest.js.map +0 -1
- package/dist/lib/services/permissions.d.ts +0 -109
- package/dist/lib/services/permissions.d.ts.map +0 -1
- package/dist/lib/services/permissions.js +0 -238
- package/dist/lib/services/permissions.js.map +0 -1
- package/dist/lib/services/service-client.d.ts +0 -99
- package/dist/lib/services/service-client.d.ts.map +0 -1
- package/dist/lib/services/service-client.js +0 -146
- package/dist/lib/services/service-client.js.map +0 -1
- package/dist/lib/services/tags.d.ts +0 -37
- package/dist/lib/services/tags.d.ts.map +0 -1
- package/dist/lib/services/tags.js +0 -189
- package/dist/lib/services/tags.js.map +0 -1
- package/dist/lib/services/url-validation.d.ts +0 -22
- package/dist/lib/services/url-validation.d.ts.map +0 -1
- package/dist/lib/services/url-validation.js +0 -86
- package/dist/lib/services/url-validation.js.map +0 -1
- package/dist/lib/services/user-management.d.ts +0 -81
- package/dist/lib/services/user-management.d.ts.map +0 -1
- package/dist/lib/services/user-management.js +0 -154
- package/dist/lib/services/user-management.js.map +0 -1
- package/dist/lib/storage/index.d.ts +0 -11
- package/dist/lib/storage/index.d.ts.map +0 -1
- package/dist/lib/storage/index.js +0 -12
- package/dist/lib/storage/index.js.map +0 -1
- package/dist/lib/storage/types.d.ts +0 -61
- package/dist/lib/storage/types.d.ts.map +0 -1
- package/dist/lib/storage/types.js +0 -8
- package/dist/lib/storage/types.js.map +0 -1
- package/dist/lib/stores/app-config-store.d.ts +0 -90
- package/dist/lib/stores/app-config-store.d.ts.map +0 -1
- package/dist/lib/stores/app-config-store.js +0 -491
- package/dist/lib/stores/app-config-store.js.map +0 -1
- package/dist/lib/stores/bridge-config-store.d.ts +0 -44
- package/dist/lib/stores/bridge-config-store.d.ts.map +0 -1
- package/dist/lib/stores/bridge-config-store.js +0 -207
- package/dist/lib/stores/bridge-config-store.js.map +0 -1
- package/dist/lib/stores/chat-config-store.d.ts +0 -28
- package/dist/lib/stores/chat-config-store.d.ts.map +0 -1
- package/dist/lib/stores/chat-config-store.js +0 -152
- package/dist/lib/stores/chat-config-store.js.map +0 -1
- package/dist/lib/stores/data-settings-store.d.ts +0 -44
- package/dist/lib/stores/data-settings-store.d.ts.map +0 -1
- package/dist/lib/stores/data-settings-store.js +0 -202
- package/dist/lib/stores/data-settings-store.js.map +0 -1
- package/dist/lib/stores/email-config-store.d.ts +0 -45
- package/dist/lib/stores/email-config-store.d.ts.map +0 -1
- package/dist/lib/stores/email-config-store.js +0 -185
- package/dist/lib/stores/email-config-store.js.map +0 -1
- package/dist/lib/stores/portal-config-store.d.ts +0 -38
- package/dist/lib/stores/portal-config-store.d.ts.map +0 -1
- package/dist/lib/stores/portal-config-store.js +0 -238
- package/dist/lib/stores/portal-config-store.js.map +0 -1
- package/dist/lib/stores/video-store.d.ts +0 -91
- package/dist/lib/stores/video-store.d.ts.map +0 -1
- package/dist/lib/stores/video-store.js +0 -451
- package/dist/lib/stores/video-store.js.map +0 -1
- package/dist/lib/videos/access-control.d.ts +0 -35
- package/dist/lib/videos/access-control.d.ts.map +0 -1
- package/dist/lib/videos/access-control.js +0 -63
- package/dist/lib/videos/access-control.js.map +0 -1
- package/dist/lib/videos/agent-api-client.d.ts +0 -46
- package/dist/lib/videos/agent-api-client.d.ts.map +0 -1
- package/dist/lib/videos/agent-api-client.js +0 -75
- package/dist/lib/videos/agent-api-client.js.map +0 -1
- package/dist/lib/videos/creation.d.ts +0 -24
- package/dist/lib/videos/creation.d.ts.map +0 -1
- package/dist/lib/videos/creation.js +0 -112
- package/dist/lib/videos/creation.js.map +0 -1
- package/dist/lib/videos/expiration.d.ts +0 -13
- package/dist/lib/videos/expiration.d.ts.map +0 -1
- package/dist/lib/videos/expiration.js +0 -95
- package/dist/lib/videos/expiration.js.map +0 -1
- package/dist/lib/videos/image-resize.d.ts +0 -42
- package/dist/lib/videos/image-resize.d.ts.map +0 -1
- package/dist/lib/videos/image-resize.js +0 -106
- package/dist/lib/videos/image-resize.js.map +0 -1
- package/dist/lib/videos/processing.d.ts +0 -35
- package/dist/lib/videos/processing.d.ts.map +0 -1
- package/dist/lib/videos/processing.js +0 -154
- package/dist/lib/videos/processing.js.map +0 -1
- package/dist/lib/videos/status.d.ts +0 -2
- package/dist/lib/videos/status.d.ts.map +0 -1
- package/dist/lib/videos/status.js +0 -141
- package/dist/lib/videos/status.js.map +0 -1
- package/dist/lib/videos/upload.d.ts +0 -41
- package/dist/lib/videos/upload.d.ts.map +0 -1
- package/dist/lib/videos/upload.js +0 -118
- package/dist/lib/videos/upload.js.map +0 -1
- package/dist/lib/videos/url-normalization.d.ts +0 -29
- package/dist/lib/videos/url-normalization.d.ts.map +0 -1
- package/dist/lib/videos/url-normalization.js +0 -61
- package/dist/lib/videos/url-normalization.js.map +0 -1
- package/dist/sso/index.d.ts +0 -3
- package/dist/sso/index.d.ts.map +0 -1
- package/dist/sso/index.js +0 -3
- package/dist/sso/index.js.map +0 -1
- package/dist/sso/token.d.ts +0 -17
- package/dist/sso/token.d.ts.map +0 -1
- package/dist/sso/token.js +0 -57
- package/dist/sso/token.js.map +0 -1
- package/dist/types/sso.d.ts +0 -37
- package/dist/types/sso.d.ts.map +0 -1
- package/dist/types/sso.js +0 -2
- package/dist/types/sso.js.map +0 -1
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Chat API Middleware
|
|
3
|
-
*
|
|
4
|
-
* Error handling, authentication, and common utilities for chat API routes.
|
|
5
|
-
*/
|
|
6
|
-
import { NextRequest, NextResponse } from 'next/server';
|
|
7
|
-
export interface ChatApiError {
|
|
8
|
-
error: string;
|
|
9
|
-
code: string;
|
|
10
|
-
details?: any;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Standard error response builder
|
|
14
|
-
*/
|
|
15
|
-
export declare function errorResponse(message: string, status?: number, code?: string, details?: any): NextResponse<ChatApiError>;
|
|
16
|
-
/**
|
|
17
|
-
* Success response builder
|
|
18
|
-
*/
|
|
19
|
-
export declare function successResponse<T>(data: T, status?: number): NextResponse<T>;
|
|
20
|
-
/**
|
|
21
|
-
* Error codes for chat API
|
|
22
|
-
*/
|
|
23
|
-
export declare const ChatErrorCodes: {
|
|
24
|
-
readonly UNAUTHORIZED: "UNAUTHORIZED";
|
|
25
|
-
readonly INVALID_TOKEN: "INVALID_TOKEN";
|
|
26
|
-
readonly TOKEN_EXPIRED: "TOKEN_EXPIRED";
|
|
27
|
-
readonly FORBIDDEN: "FORBIDDEN";
|
|
28
|
-
readonly NO_CONVERSATION_ACCESS: "NO_CONVERSATION_ACCESS";
|
|
29
|
-
readonly CONVERSATION_IS_PRIVATE: "CONVERSATION_IS_PRIVATE";
|
|
30
|
-
readonly CONVERSATION_NOT_FOUND: "CONVERSATION_NOT_FOUND";
|
|
31
|
-
readonly MESSAGE_NOT_FOUND: "MESSAGE_NOT_FOUND";
|
|
32
|
-
readonly ATTACHMENT_NOT_FOUND: "ATTACHMENT_NOT_FOUND";
|
|
33
|
-
readonly INVALID_INPUT: "INVALID_INPUT";
|
|
34
|
-
readonly MISSING_REQUIRED_FIELD: "MISSING_REQUIRED_FIELD";
|
|
35
|
-
readonly INVALID_FILE_TYPE: "INVALID_FILE_TYPE";
|
|
36
|
-
readonly FILE_TOO_LARGE: "FILE_TOO_LARGE";
|
|
37
|
-
readonly SEARCH_UNAVAILABLE: "SEARCH_UNAVAILABLE";
|
|
38
|
-
readonly OPENAI_UNAVAILABLE: "OPENAI_UNAVAILABLE";
|
|
39
|
-
readonly MILVUS_UNAVAILABLE: "MILVUS_UNAVAILABLE";
|
|
40
|
-
readonly RATE_LIMIT_EXCEEDED: "RATE_LIMIT_EXCEEDED";
|
|
41
|
-
readonly INTERNAL_ERROR: "INTERNAL_ERROR";
|
|
42
|
-
};
|
|
43
|
-
/**
|
|
44
|
-
* Validate required fields in request body
|
|
45
|
-
*/
|
|
46
|
-
export declare function validateRequired<T extends Record<string, any>>(body: T, requiredFields: (keyof T)[]): {
|
|
47
|
-
valid: boolean;
|
|
48
|
-
missing?: string[];
|
|
49
|
-
};
|
|
50
|
-
/**
|
|
51
|
-
* Parse and validate JSON request body
|
|
52
|
-
*/
|
|
53
|
-
export declare function parseRequestBody<T>(request: NextRequest): Promise<{
|
|
54
|
-
success: boolean;
|
|
55
|
-
data?: T;
|
|
56
|
-
error?: NextResponse;
|
|
57
|
-
}>;
|
|
58
|
-
/**
|
|
59
|
-
* Extract user ID from request (from auth middleware)
|
|
60
|
-
*
|
|
61
|
-
* Assumes authentication middleware has already run and set user context.
|
|
62
|
-
*/
|
|
63
|
-
export declare function getUserId(request: NextRequest): string | null;
|
|
64
|
-
/**
|
|
65
|
-
* Ensure user is authenticated
|
|
66
|
-
*/
|
|
67
|
-
export declare function requireAuth(request: NextRequest): {
|
|
68
|
-
authenticated: boolean;
|
|
69
|
-
userId?: string;
|
|
70
|
-
error?: NextResponse;
|
|
71
|
-
};
|
|
72
|
-
/**
|
|
73
|
-
* Safe async handler wrapper for API routes
|
|
74
|
-
*
|
|
75
|
-
* Catches errors and returns proper error responses
|
|
76
|
-
*/
|
|
77
|
-
export declare function withErrorHandling(handler: (request: NextRequest, context?: any) => Promise<NextResponse<unknown>>): (request: NextRequest, context?: any) => Promise<NextResponse<unknown>>;
|
|
78
|
-
/**
|
|
79
|
-
* Validate file upload
|
|
80
|
-
*/
|
|
81
|
-
export declare function validateFileUpload(file: File, options?: {
|
|
82
|
-
maxSizeMB?: number;
|
|
83
|
-
allowedTypes?: string[];
|
|
84
|
-
}): {
|
|
85
|
-
valid: boolean;
|
|
86
|
-
error?: NextResponse;
|
|
87
|
-
};
|
|
88
|
-
/**
|
|
89
|
-
* Pagination helper
|
|
90
|
-
*/
|
|
91
|
-
export declare function parsePagination(request: NextRequest): {
|
|
92
|
-
page: number;
|
|
93
|
-
limit: number;
|
|
94
|
-
offset: number;
|
|
95
|
-
};
|
|
96
|
-
/**
|
|
97
|
-
* Build paginated response
|
|
98
|
-
*/
|
|
99
|
-
export declare function paginatedResponse<T>(data: T[], total: number, page: number, limit: number): {
|
|
100
|
-
data: T[];
|
|
101
|
-
pagination: {
|
|
102
|
-
page: number;
|
|
103
|
-
limit: number;
|
|
104
|
-
total: number;
|
|
105
|
-
totalPages: number;
|
|
106
|
-
hasNext: boolean;
|
|
107
|
-
hasPrev: boolean;
|
|
108
|
-
};
|
|
109
|
-
};
|
|
110
|
-
export declare function checkRateLimit(userId: string, options?: {
|
|
111
|
-
maxRequests?: number;
|
|
112
|
-
windowMs?: number;
|
|
113
|
-
}): {
|
|
114
|
-
allowed: boolean;
|
|
115
|
-
remaining: number;
|
|
116
|
-
resetAt: number;
|
|
117
|
-
error?: NextResponse;
|
|
118
|
-
};
|
|
119
|
-
//# sourceMappingURL=middleware.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../../src/lib/chat-server/middleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,234 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Chat API Middleware
|
|
3
|
-
*
|
|
4
|
-
* Error handling, authentication, and common utilities for chat API routes.
|
|
5
|
-
*/
|
|
6
|
-
import { NextResponse } from 'next/server';
|
|
7
|
-
/**
|
|
8
|
-
* Standard error response builder
|
|
9
|
-
*/
|
|
10
|
-
export function errorResponse(message, status = 500, code, details) {
|
|
11
|
-
return NextResponse.json({
|
|
12
|
-
error: message,
|
|
13
|
-
code: code || `ERROR_${status}`,
|
|
14
|
-
details,
|
|
15
|
-
}, { status });
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Success response builder
|
|
19
|
-
*/
|
|
20
|
-
export function successResponse(data, status = 200) {
|
|
21
|
-
return NextResponse.json(data, { status });
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Error codes for chat API
|
|
25
|
-
*/
|
|
26
|
-
export const ChatErrorCodes = {
|
|
27
|
-
// Authentication errors (401)
|
|
28
|
-
UNAUTHORIZED: 'UNAUTHORIZED',
|
|
29
|
-
INVALID_TOKEN: 'INVALID_TOKEN',
|
|
30
|
-
TOKEN_EXPIRED: 'TOKEN_EXPIRED',
|
|
31
|
-
// Authorization errors (403)
|
|
32
|
-
FORBIDDEN: 'FORBIDDEN',
|
|
33
|
-
NO_CONVERSATION_ACCESS: 'NO_CONVERSATION_ACCESS',
|
|
34
|
-
CONVERSATION_IS_PRIVATE: 'CONVERSATION_IS_PRIVATE',
|
|
35
|
-
// Not found errors (404)
|
|
36
|
-
CONVERSATION_NOT_FOUND: 'CONVERSATION_NOT_FOUND',
|
|
37
|
-
MESSAGE_NOT_FOUND: 'MESSAGE_NOT_FOUND',
|
|
38
|
-
ATTACHMENT_NOT_FOUND: 'ATTACHMENT_NOT_FOUND',
|
|
39
|
-
// Validation errors (400)
|
|
40
|
-
INVALID_INPUT: 'INVALID_INPUT',
|
|
41
|
-
MISSING_REQUIRED_FIELD: 'MISSING_REQUIRED_FIELD',
|
|
42
|
-
INVALID_FILE_TYPE: 'INVALID_FILE_TYPE',
|
|
43
|
-
FILE_TOO_LARGE: 'FILE_TOO_LARGE',
|
|
44
|
-
// Service errors (503)
|
|
45
|
-
SEARCH_UNAVAILABLE: 'SEARCH_UNAVAILABLE',
|
|
46
|
-
OPENAI_UNAVAILABLE: 'OPENAI_UNAVAILABLE',
|
|
47
|
-
MILVUS_UNAVAILABLE: 'MILVUS_UNAVAILABLE',
|
|
48
|
-
// Rate limiting (429)
|
|
49
|
-
RATE_LIMIT_EXCEEDED: 'RATE_LIMIT_EXCEEDED',
|
|
50
|
-
// Server errors (500)
|
|
51
|
-
INTERNAL_ERROR: 'INTERNAL_ERROR',
|
|
52
|
-
};
|
|
53
|
-
/**
|
|
54
|
-
* Validate required fields in request body
|
|
55
|
-
*/
|
|
56
|
-
export function validateRequired(body, requiredFields) {
|
|
57
|
-
const missing = requiredFields.filter(field => !body[field]);
|
|
58
|
-
if (missing.length > 0) {
|
|
59
|
-
return { valid: false, missing: missing };
|
|
60
|
-
}
|
|
61
|
-
return { valid: true };
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Parse and validate JSON request body
|
|
65
|
-
*/
|
|
66
|
-
export async function parseRequestBody(request) {
|
|
67
|
-
try {
|
|
68
|
-
const body = await request.json();
|
|
69
|
-
return { success: true, data: body };
|
|
70
|
-
}
|
|
71
|
-
catch (error) {
|
|
72
|
-
return {
|
|
73
|
-
success: false,
|
|
74
|
-
error: errorResponse('Invalid JSON in request body', 400, ChatErrorCodes.INVALID_INPUT),
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Extract user ID from request (from auth middleware)
|
|
80
|
-
*
|
|
81
|
-
* Assumes authentication middleware has already run and set user context.
|
|
82
|
-
*/
|
|
83
|
-
export function getUserId(request) {
|
|
84
|
-
// This will be populated by your existing auth middleware
|
|
85
|
-
// Adjust based on your authentication implementation
|
|
86
|
-
return request.headers.get('x-user-id') || null;
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Ensure user is authenticated
|
|
90
|
-
*/
|
|
91
|
-
export function requireAuth(request) {
|
|
92
|
-
const userId = getUserId(request);
|
|
93
|
-
if (!userId) {
|
|
94
|
-
return {
|
|
95
|
-
authenticated: false,
|
|
96
|
-
error: errorResponse('Authentication required', 401, ChatErrorCodes.UNAUTHORIZED),
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
return { authenticated: true, userId };
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* Safe async handler wrapper for API routes
|
|
103
|
-
*
|
|
104
|
-
* Catches errors and returns proper error responses
|
|
105
|
-
*/
|
|
106
|
-
export function withErrorHandling(handler) {
|
|
107
|
-
return async (request, context) => {
|
|
108
|
-
try {
|
|
109
|
-
return await handler(request, context);
|
|
110
|
-
}
|
|
111
|
-
catch (error) {
|
|
112
|
-
console.error('Chat API error:', {
|
|
113
|
-
path: request.nextUrl.pathname,
|
|
114
|
-
method: request.method,
|
|
115
|
-
error: error.message,
|
|
116
|
-
stack: error.stack,
|
|
117
|
-
});
|
|
118
|
-
// Handle known error types
|
|
119
|
-
if (error.code === 'ECONNREFUSED') {
|
|
120
|
-
return errorResponse('Service temporarily unavailable', 503, ChatErrorCodes.SEARCH_UNAVAILABLE, { service: 'data' });
|
|
121
|
-
}
|
|
122
|
-
// Handle OpenAI errors
|
|
123
|
-
if (error.message?.includes('OpenAI')) {
|
|
124
|
-
return errorResponse('AI service temporarily unavailable', 503, ChatErrorCodes.OPENAI_UNAVAILABLE);
|
|
125
|
-
}
|
|
126
|
-
// Handle Milvus errors
|
|
127
|
-
if (error.message?.includes('Milvus') || error.message?.includes('vector')) {
|
|
128
|
-
return errorResponse('Search service temporarily unavailable', 503, ChatErrorCodes.MILVUS_UNAVAILABLE);
|
|
129
|
-
}
|
|
130
|
-
// Generic error
|
|
131
|
-
return errorResponse('An unexpected error occurred', 500, ChatErrorCodes.INTERNAL_ERROR, process.env.NODE_ENV === 'development' ? { message: error.message } : undefined);
|
|
132
|
-
}
|
|
133
|
-
};
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Validate file upload
|
|
137
|
-
*/
|
|
138
|
-
export function validateFileUpload(file, options = {}) {
|
|
139
|
-
const { maxSizeMB = 25, allowedTypes } = options;
|
|
140
|
-
// Check file size
|
|
141
|
-
const maxSizeBytes = maxSizeMB * 1024 * 1024;
|
|
142
|
-
if (file.size > maxSizeBytes) {
|
|
143
|
-
return {
|
|
144
|
-
valid: false,
|
|
145
|
-
error: errorResponse(`File too large. Maximum size is ${maxSizeMB}MB`, 400, ChatErrorCodes.FILE_TOO_LARGE, { maxSizeMB, actualSizeMB: (file.size / 1024 / 1024).toFixed(2) }),
|
|
146
|
-
};
|
|
147
|
-
}
|
|
148
|
-
// Check file type
|
|
149
|
-
if (allowedTypes && !allowedTypes.includes(file.type)) {
|
|
150
|
-
return {
|
|
151
|
-
valid: false,
|
|
152
|
-
error: errorResponse('File type not supported', 400, ChatErrorCodes.INVALID_FILE_TYPE, { allowedTypes, actualType: file.type }),
|
|
153
|
-
};
|
|
154
|
-
}
|
|
155
|
-
return { valid: true };
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
* Pagination helper
|
|
159
|
-
*/
|
|
160
|
-
export function parsePagination(request) {
|
|
161
|
-
const searchParams = request.nextUrl.searchParams;
|
|
162
|
-
const page = Math.max(1, parseInt(searchParams.get('page') || '1'));
|
|
163
|
-
const limit = Math.min(100, Math.max(1, parseInt(searchParams.get('limit') || '20')));
|
|
164
|
-
const offset = (page - 1) * limit;
|
|
165
|
-
return { page, limit, offset };
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* Build paginated response
|
|
169
|
-
*/
|
|
170
|
-
export function paginatedResponse(data, total, page, limit) {
|
|
171
|
-
return {
|
|
172
|
-
data,
|
|
173
|
-
pagination: {
|
|
174
|
-
page,
|
|
175
|
-
limit,
|
|
176
|
-
total,
|
|
177
|
-
totalPages: Math.ceil(total / limit),
|
|
178
|
-
hasNext: page * limit < total,
|
|
179
|
-
hasPrev: page > 1,
|
|
180
|
-
},
|
|
181
|
-
};
|
|
182
|
-
}
|
|
183
|
-
/**
|
|
184
|
-
* Rate limiting helper (simple in-memory implementation)
|
|
185
|
-
*
|
|
186
|
-
* For production, use Redis or a proper rate limiting service
|
|
187
|
-
*/
|
|
188
|
-
const rateLimitStore = new Map();
|
|
189
|
-
export function checkRateLimit(userId, options = {}) {
|
|
190
|
-
const { maxRequests = 100, windowMs = 60000 } = options; // 100 requests per minute by default
|
|
191
|
-
const now = Date.now();
|
|
192
|
-
const userLimit = rateLimitStore.get(userId);
|
|
193
|
-
// Clean up expired entries periodically
|
|
194
|
-
if (Math.random() < 0.01) {
|
|
195
|
-
for (const [key, value] of rateLimitStore.entries()) {
|
|
196
|
-
if (value.resetAt < now) {
|
|
197
|
-
rateLimitStore.delete(key);
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
if (!userLimit || userLimit.resetAt < now) {
|
|
202
|
-
// New window
|
|
203
|
-
rateLimitStore.set(userId, {
|
|
204
|
-
count: 1,
|
|
205
|
-
resetAt: now + windowMs,
|
|
206
|
-
});
|
|
207
|
-
return {
|
|
208
|
-
allowed: true,
|
|
209
|
-
remaining: maxRequests - 1,
|
|
210
|
-
resetAt: now + windowMs,
|
|
211
|
-
};
|
|
212
|
-
}
|
|
213
|
-
if (userLimit.count >= maxRequests) {
|
|
214
|
-
return {
|
|
215
|
-
allowed: false,
|
|
216
|
-
remaining: 0,
|
|
217
|
-
resetAt: userLimit.resetAt,
|
|
218
|
-
error: errorResponse('Rate limit exceeded. Please try again later.', 429, ChatErrorCodes.RATE_LIMIT_EXCEEDED, {
|
|
219
|
-
resetAt: new Date(userLimit.resetAt).toISOString(),
|
|
220
|
-
limit: maxRequests,
|
|
221
|
-
window: `${windowMs / 1000}s`,
|
|
222
|
-
}),
|
|
223
|
-
};
|
|
224
|
-
}
|
|
225
|
-
// Increment count
|
|
226
|
-
userLimit.count++;
|
|
227
|
-
rateLimitStore.set(userId, userLimit);
|
|
228
|
-
return {
|
|
229
|
-
allowed: true,
|
|
230
|
-
remaining: maxRequests - userLimit.count,
|
|
231
|
-
resetAt: userLimit.resetAt,
|
|
232
|
-
};
|
|
233
|
-
}
|
|
234
|
-
//# sourceMappingURL=middleware.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../../src/lib/chat-server/middleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Model Registry Service
|
|
3
|
-
*
|
|
4
|
-
* Fetches available models from liteLLM and provides model selection utilities.
|
|
5
|
-
* Models are dynamically loaded from liteLLM's /v1/models endpoint.
|
|
6
|
-
*/
|
|
7
|
-
export interface ModelOption {
|
|
8
|
-
id: string;
|
|
9
|
-
name: string;
|
|
10
|
-
description: string;
|
|
11
|
-
capabilities?: {
|
|
12
|
-
multimodal: boolean;
|
|
13
|
-
toolCalling: boolean;
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Get available model options for chat from liteLLM
|
|
18
|
-
*
|
|
19
|
-
* @returns Array of available models (filtered to chat, research, frontier)
|
|
20
|
-
*/
|
|
21
|
-
export declare function getAvailableModels(): Promise<ModelOption[]>;
|
|
22
|
-
/**
|
|
23
|
-
* Get model name from model ID
|
|
24
|
-
*
|
|
25
|
-
* @param modelId - Model ID from liteLLM
|
|
26
|
-
* @returns Model ID (passes through, as liteLLM expects the exact model name)
|
|
27
|
-
*/
|
|
28
|
-
export declare function getModelName(modelId?: string): Promise<string>;
|
|
29
|
-
/**
|
|
30
|
-
* Get model display name
|
|
31
|
-
*/
|
|
32
|
-
export declare function getModelDisplayName(modelId?: string): Promise<string>;
|
|
33
|
-
/**
|
|
34
|
-
* Get model capabilities by model ID (UI capabilities - what users can do)
|
|
35
|
-
*
|
|
36
|
-
* @param modelId - Model ID
|
|
37
|
-
* @returns Model capabilities or undefined if not found
|
|
38
|
-
*/
|
|
39
|
-
export declare function getModelCapabilities(modelId?: string): Promise<{
|
|
40
|
-
multimodal: boolean;
|
|
41
|
-
toolCalling: boolean;
|
|
42
|
-
} | undefined>;
|
|
43
|
-
/**
|
|
44
|
-
* Get NATIVE model capabilities by model ID (for routing decisions)
|
|
45
|
-
*
|
|
46
|
-
* This returns what the model actually supports without dual-model routing.
|
|
47
|
-
* Use this to determine if dual-model routing is needed.
|
|
48
|
-
*
|
|
49
|
-
* @param modelId - Model ID
|
|
50
|
-
* @returns Native model capabilities or undefined if not found
|
|
51
|
-
*/
|
|
52
|
-
export declare function getNativeModelCapabilities(modelId?: string): {
|
|
53
|
-
multimodal: boolean;
|
|
54
|
-
toolCalling: boolean;
|
|
55
|
-
} | undefined;
|
|
56
|
-
/**
|
|
57
|
-
* Clear the model cache (useful for testing or manual refresh)
|
|
58
|
-
*/
|
|
59
|
-
export declare function clearModelCache(): void;
|
|
60
|
-
//# sourceMappingURL=models.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/lib/chat-server/models.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE;QACb,UAAU,EAAE,OAAO,CAAC;QACpB,WAAW,EAAE,OAAO,CAAC;KACtB,CAAC;CACH;AAgFD;;;;GAIG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CA6CjE;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAOpE;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQ3E;AAiBD;;;;;GAKG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACpE,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;CACtB,GAAG,SAAS,CAAC,CAeb;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG;IAC5D,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;CACtB,GAAG,SAAS,CAMZ;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAGtC"}
|
|
@@ -1,205 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Model Registry Service
|
|
3
|
-
*
|
|
4
|
-
* Fetches available models from liteLLM and provides model selection utilities.
|
|
5
|
-
* Models are dynamically loaded from liteLLM's /v1/models endpoint.
|
|
6
|
-
*/
|
|
7
|
-
import { fetchAvailableModels as fetchLiteLLMModels } from '../services/litellm';
|
|
8
|
-
/**
|
|
9
|
-
* UI Model Capabilities - What features are available to users via dual-model routing
|
|
10
|
-
*
|
|
11
|
-
* These capabilities reflect what the USER can do (enable search toggles, upload images, etc.)
|
|
12
|
-
* NOT what the model natively supports. For example, 'chat' (phi-4) shows toolCalling: true
|
|
13
|
-
* because dual-model routing makes tool calling available through qwen3-30b.
|
|
14
|
-
*/
|
|
15
|
-
const MODEL_CAPABILITIES = {
|
|
16
|
-
'claude-sonnet-4-5': { multimodal: true, toolCalling: true },
|
|
17
|
-
'claude-haiku-4-5': { multimodal: true, toolCalling: true },
|
|
18
|
-
'frontier': { multimodal: true, toolCalling: true },
|
|
19
|
-
'frontier-fast': { multimodal: true, toolCalling: true },
|
|
20
|
-
'phi-4': { multimodal: true, toolCalling: true }, // Via dual-model routing
|
|
21
|
-
'qwen3-30b': { multimodal: true, toolCalling: true }, // Via dual-model routing for vision
|
|
22
|
-
'research': { multimodal: true, toolCalling: true }, // Via dual-model routing for vision
|
|
23
|
-
'agent': { multimodal: true, toolCalling: true },
|
|
24
|
-
'chat': { multimodal: true, toolCalling: true }, // Via dual-model routing
|
|
25
|
-
'vision': { multimodal: true, toolCalling: true },
|
|
26
|
-
'classify': { multimodal: true, toolCalling: true },
|
|
27
|
-
'parsing': { multimodal: true, toolCalling: true },
|
|
28
|
-
'cleanup': { multimodal: true, toolCalling: true },
|
|
29
|
-
'fast': { multimodal: true, toolCalling: true },
|
|
30
|
-
'default': { multimodal: true, toolCalling: true },
|
|
31
|
-
'analysis': { multimodal: true, toolCalling: true },
|
|
32
|
-
'tool_calling': { multimodal: true, toolCalling: true },
|
|
33
|
-
};
|
|
34
|
-
/**
|
|
35
|
-
* Native Model Capabilities - What the model actually supports without dual-model routing
|
|
36
|
-
*
|
|
37
|
-
* This is used for routing decisions to determine if dual-model routing is needed.
|
|
38
|
-
* For example, 'chat' (phi-4) has toolCalling: false because it needs qwen3-30b for tools.
|
|
39
|
-
*/
|
|
40
|
-
const NATIVE_MODEL_CAPABILITIES = {
|
|
41
|
-
'claude-sonnet-4-5': { multimodal: true, toolCalling: true },
|
|
42
|
-
'claude-haiku-4-5': { multimodal: true, toolCalling: true },
|
|
43
|
-
'frontier': { multimodal: true, toolCalling: true },
|
|
44
|
-
'frontier-fast': { multimodal: true, toolCalling: true },
|
|
45
|
-
'phi-4': { multimodal: true, toolCalling: false }, // Cannot do tool calling natively
|
|
46
|
-
'qwen3-30b': { multimodal: false, toolCalling: true }, // Cannot do multimodal natively
|
|
47
|
-
'research': { multimodal: false, toolCalling: true }, // qwen3-30b based
|
|
48
|
-
'agent': { multimodal: false, toolCalling: true },
|
|
49
|
-
'chat': { multimodal: true, toolCalling: false }, // phi-4 based - no native tool calling
|
|
50
|
-
'vision': { multimodal: true, toolCalling: false }, // phi-4 based
|
|
51
|
-
'classify': { multimodal: true, toolCalling: false },
|
|
52
|
-
'parsing': { multimodal: true, toolCalling: false },
|
|
53
|
-
'cleanup': { multimodal: true, toolCalling: false },
|
|
54
|
-
'fast': { multimodal: true, toolCalling: false },
|
|
55
|
-
'default': { multimodal: false, toolCalling: true },
|
|
56
|
-
'analysis': { multimodal: false, toolCalling: true },
|
|
57
|
-
'tool_calling': { multimodal: false, toolCalling: true },
|
|
58
|
-
};
|
|
59
|
-
// Cache for models (refreshed every 60 seconds)
|
|
60
|
-
let cachedModels = null;
|
|
61
|
-
let cacheTimestamp = 0;
|
|
62
|
-
const CACHE_TTL = 60000; // 60 seconds
|
|
63
|
-
// Models to expose in the chat UI (in display order)
|
|
64
|
-
// Other models (vision, tool_calling, etc.) are used internally by dual-model routing
|
|
65
|
-
const CHAT_MODELS = ['chat', 'research', 'frontier'];
|
|
66
|
-
// User-friendly model descriptions
|
|
67
|
-
const MODEL_DESCRIPTIONS = {
|
|
68
|
-
'chat': {
|
|
69
|
-
name: 'Chat',
|
|
70
|
-
description: 'General chat with image, audio, and video understanding'
|
|
71
|
-
},
|
|
72
|
-
'research': {
|
|
73
|
-
name: 'Research',
|
|
74
|
-
description: 'Advanced reasoning and analysis for complex questions'
|
|
75
|
-
},
|
|
76
|
-
'frontier': {
|
|
77
|
-
name: 'Frontier',
|
|
78
|
-
description: 'Claude Sonnet 4.5 via AWS Bedrock (highest capability)'
|
|
79
|
-
},
|
|
80
|
-
};
|
|
81
|
-
/**
|
|
82
|
-
* Get available model options for chat from liteLLM
|
|
83
|
-
*
|
|
84
|
-
* @returns Array of available models (filtered to chat, research, frontier)
|
|
85
|
-
*/
|
|
86
|
-
export async function getAvailableModels() {
|
|
87
|
-
const now = Date.now();
|
|
88
|
-
// Return cached models if still valid
|
|
89
|
-
if (cachedModels && (now - cacheTimestamp) < CACHE_TTL) {
|
|
90
|
-
return cachedModels;
|
|
91
|
-
}
|
|
92
|
-
try {
|
|
93
|
-
// Fetch models from liteLLM
|
|
94
|
-
const liteLLMModels = await fetchLiteLLMModels();
|
|
95
|
-
// Filter to only chat models and transform to our format
|
|
96
|
-
const availableModelIds = new Set(liteLLMModels.map(m => m.id));
|
|
97
|
-
cachedModels = CHAT_MODELS
|
|
98
|
-
.filter(id => availableModelIds.has(id))
|
|
99
|
-
.map((id) => {
|
|
100
|
-
const capabilities = MODEL_CAPABILITIES[id] || {
|
|
101
|
-
multimodal: false,
|
|
102
|
-
toolCalling: false,
|
|
103
|
-
};
|
|
104
|
-
const modelInfo = MODEL_DESCRIPTIONS[id] || { name: id, description: '' };
|
|
105
|
-
return {
|
|
106
|
-
id,
|
|
107
|
-
name: modelInfo.name,
|
|
108
|
-
description: modelInfo.description,
|
|
109
|
-
capabilities,
|
|
110
|
-
};
|
|
111
|
-
});
|
|
112
|
-
cacheTimestamp = now;
|
|
113
|
-
return cachedModels;
|
|
114
|
-
}
|
|
115
|
-
catch (error) {
|
|
116
|
-
console.error('[Model Registry] Failed to fetch models from liteLLM:', error);
|
|
117
|
-
// Return fallback models if fetch fails
|
|
118
|
-
return CHAT_MODELS.map(id => ({
|
|
119
|
-
id,
|
|
120
|
-
name: MODEL_DESCRIPTIONS[id]?.name || id,
|
|
121
|
-
description: MODEL_DESCRIPTIONS[id]?.description || '',
|
|
122
|
-
capabilities: MODEL_CAPABILITIES[id] || { multimodal: false, toolCalling: false },
|
|
123
|
-
}));
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Get model name from model ID
|
|
128
|
-
*
|
|
129
|
-
* @param modelId - Model ID from liteLLM
|
|
130
|
-
* @returns Model ID (passes through, as liteLLM expects the exact model name)
|
|
131
|
-
*/
|
|
132
|
-
export async function getModelName(modelId) {
|
|
133
|
-
if (!modelId) {
|
|
134
|
-
// Default to 'chat' model
|
|
135
|
-
return 'chat';
|
|
136
|
-
}
|
|
137
|
-
return modelId;
|
|
138
|
-
}
|
|
139
|
-
/**
|
|
140
|
-
* Get model display name
|
|
141
|
-
*/
|
|
142
|
-
export async function getModelDisplayName(modelId) {
|
|
143
|
-
if (!modelId) {
|
|
144
|
-
return 'Chat';
|
|
145
|
-
}
|
|
146
|
-
const models = await getAvailableModels();
|
|
147
|
-
const model = models.find((m) => m.id === modelId);
|
|
148
|
-
return model?.name || formatModelId(modelId);
|
|
149
|
-
}
|
|
150
|
-
/**
|
|
151
|
-
* Format model ID into display name
|
|
152
|
-
*/
|
|
153
|
-
function formatModelId(modelId) {
|
|
154
|
-
// Handle common patterns
|
|
155
|
-
if (modelId.includes('claude') || modelId === 'frontier') {
|
|
156
|
-
return 'Frontier (Claude Sonnet 4.5)';
|
|
157
|
-
}
|
|
158
|
-
if (modelId.includes('gpt')) {
|
|
159
|
-
return modelId.toUpperCase().replace(/-/g, ' ');
|
|
160
|
-
}
|
|
161
|
-
// Default: capitalize first letter
|
|
162
|
-
return modelId.charAt(0).toUpperCase() + modelId.slice(1);
|
|
163
|
-
}
|
|
164
|
-
/**
|
|
165
|
-
* Get model capabilities by model ID (UI capabilities - what users can do)
|
|
166
|
-
*
|
|
167
|
-
* @param modelId - Model ID
|
|
168
|
-
* @returns Model capabilities or undefined if not found
|
|
169
|
-
*/
|
|
170
|
-
export async function getModelCapabilities(modelId) {
|
|
171
|
-
if (!modelId) {
|
|
172
|
-
return undefined;
|
|
173
|
-
}
|
|
174
|
-
// Check direct mapping first
|
|
175
|
-
if (MODEL_CAPABILITIES[modelId]) {
|
|
176
|
-
return MODEL_CAPABILITIES[modelId];
|
|
177
|
-
}
|
|
178
|
-
// Try to find in available models
|
|
179
|
-
const models = await getAvailableModels();
|
|
180
|
-
const model = models.find((m) => m.id === modelId);
|
|
181
|
-
return model?.capabilities;
|
|
182
|
-
}
|
|
183
|
-
/**
|
|
184
|
-
* Get NATIVE model capabilities by model ID (for routing decisions)
|
|
185
|
-
*
|
|
186
|
-
* This returns what the model actually supports without dual-model routing.
|
|
187
|
-
* Use this to determine if dual-model routing is needed.
|
|
188
|
-
*
|
|
189
|
-
* @param modelId - Model ID
|
|
190
|
-
* @returns Native model capabilities or undefined if not found
|
|
191
|
-
*/
|
|
192
|
-
export function getNativeModelCapabilities(modelId) {
|
|
193
|
-
if (!modelId) {
|
|
194
|
-
return undefined;
|
|
195
|
-
}
|
|
196
|
-
return NATIVE_MODEL_CAPABILITIES[modelId];
|
|
197
|
-
}
|
|
198
|
-
/**
|
|
199
|
-
* Clear the model cache (useful for testing or manual refresh)
|
|
200
|
-
*/
|
|
201
|
-
export function clearModelCache() {
|
|
202
|
-
cachedModels = null;
|
|
203
|
-
cacheTimestamp = 0;
|
|
204
|
-
}
|
|
205
|
-
//# sourceMappingURL=models.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/lib/chat-server/models.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,oBAAoB,IAAI,kBAAkB,EAAqC,MAAM,qBAAqB,CAAC;AAYpH;;;;;;GAMG;AACH,MAAM,kBAAkB,GAAkE;IACxF,mBAAmB,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE;IAC5D,kBAAkB,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE;IAC3D,UAAU,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE;IACnD,eAAe,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE;IACxD,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAG,yBAAyB;IAC5E,WAAW,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAG,oCAAoC;IAC3F,UAAU,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAG,oCAAoC;IAC1F,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE;IAChD,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAG,yBAAyB;IAC3E,QAAQ,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE;IACjD,UAAU,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE;IACnD,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE;IAClD,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE;IAClD,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE;IAC/C,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE;IAClD,UAAU,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE;IACnD,cAAc,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE;CACxD,CAAC;AAEF;;;;;GAKG;AACH,MAAM,yBAAyB,GAAkE;IAC/F,mBAAmB,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE;IAC5D,kBAAkB,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE;IAC3D,UAAU,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE;IACnD,eAAe,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE;IACxD,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,EAAG,kCAAkC;IACtF,WAAW,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,EAAG,gCAAgC;IACxF,UAAU,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,EAAG,kBAAkB;IACzE,OAAO,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE;IACjD,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,EAAG,uCAAuC;IAC1F,QAAQ,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,EAAG,cAAc;IACnE,UAAU,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE;IACpD,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE;IACnD,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE;IACnD,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE;IAChD,SAAS,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE;IACnD,UAAU,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE;IACpD,cAAc,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE;CACzD,CAAC;AAEF,gDAAgD;AAChD,IAAI,YAAY,GAAyB,IAAI,CAAC;AAC9C,IAAI,cAAc,GAAW,CAAC,CAAC;AAC/B,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,aAAa;AAEtC,qDAAqD;AACrD,sFAAsF;AACtF,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAErD,mCAAmC;AACnC,MAAM,kBAAkB,GAA0D;IAChF,MAAM,EAAE;QACN,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,yDAAyD;KACvE;IACD,UAAU,EAAE;QACV,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,uDAAuD;KACrE;IACD,UAAU,EAAE;QACV,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,wDAAwD;KACtE;CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEvB,sCAAsC;IACtC,IAAI,YAAY,IAAI,CAAC,GAAG,GAAG,cAAc,CAAC,GAAG,SAAS,EAAE,CAAC;QACvD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,IAAI,CAAC;QACH,4BAA4B;QAC5B,MAAM,aAAa,GAAG,MAAM,kBAAkB,EAAE,CAAC;QAEjD,yDAAyD;QACzD,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEhE,YAAY,GAAG,WAAW;aACvB,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;aACvC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;YACV,MAAM,YAAY,GAAG,kBAAkB,CAAC,EAAE,CAAC,IAAI;gBAC7C,UAAU,EAAE,KAAK;gBACjB,WAAW,EAAE,KAAK;aACnB,CAAC;YACF,MAAM,SAAS,GAAG,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;YAE1E,OAAO;gBACL,EAAE;gBACF,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,WAAW,EAAE,SAAS,CAAC,WAAW;gBAClC,YAAY;aACb,CAAC;QACJ,CAAC,CAAC,CAAC;QAEL,cAAc,GAAG,GAAG,CAAC;QACrB,OAAO,YAAY,CAAC;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,uDAAuD,EAAE,KAAK,CAAC,CAAC;QAE9E,wCAAwC;QACxC,OAAO,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC5B,EAAE;YACF,IAAI,EAAE,kBAAkB,CAAC,EAAE,CAAC,EAAE,IAAI,IAAI,EAAE;YACxC,WAAW,EAAE,kBAAkB,CAAC,EAAE,CAAC,EAAE,WAAW,IAAI,EAAE;YACtD,YAAY,EAAE,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE;SAClF,CAAC,CAAC,CAAC;IACN,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAgB;IACjD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,0BAA0B;QAC1B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAAgB;IACxD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,kBAAkB,EAAE,CAAC;IAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;IACnD,OAAO,KAAK,EAAE,IAAI,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,OAAe;IACpC,yBAAyB;IACzB,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;QACzD,OAAO,8BAA8B,CAAC;IACxC,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC;IACD,mCAAmC;IACnC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,OAAgB;IAIzD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,6BAA6B;IAC7B,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,kCAAkC;IAClC,MAAM,MAAM,GAAG,MAAM,kBAAkB,EAAE,CAAC;IAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;IAEnD,OAAO,KAAK,EAAE,YAAY,CAAC;AAC7B,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,0BAA0B,CAAC,OAAgB;IAIzD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,yBAAyB,CAAC,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,YAAY,GAAG,IAAI,CAAC;IACpB,cAAc,GAAG,CAAC,CAAC;AACrB,CAAC"}
|