@aigentic/ruflo 3.7.0-alpha.69
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/README.md +410 -0
- package/bin/ruflo.js +57 -0
- package/package.json +98 -0
- package/src/chat-ui/Dockerfile +25 -0
- package/src/chat-ui/patch-mcp-url-safety.sh +28 -0
- package/src/chat-ui/static/chatui/icon-144x144.png +0 -0
- package/src/chat-ui/static/chatui/omni-welcome.gif +0 -0
- package/src/config/config.example.json +76 -0
- package/src/mcp-bridge/Dockerfile +45 -0
- package/src/mcp-bridge/index.js +1668 -0
- package/src/mcp-bridge/mcp-stdio-kernel.js +159 -0
- package/src/mcp-bridge/package.json +17 -0
- package/src/mcp-bridge/test-harness.js +470 -0
- package/src/nginx/Dockerfile +10 -0
- package/src/nginx/nginx.conf +67 -0
- package/src/nginx/static/favicon-dark.svg +4 -0
- package/src/nginx/static/favicon.svg +4 -0
- package/src/nginx/static/icon.svg +5 -0
- package/src/nginx/static/logo.svg +9 -0
- package/src/nginx/static/manifest.json +22 -0
- package/src/nginx/static/welcome.js +184 -0
- package/src/ruvocal/.claude/skills/add-model-descriptions/SKILL.md +73 -0
- package/src/ruvocal/.devcontainer/Dockerfile +9 -0
- package/src/ruvocal/.devcontainer/devcontainer.json +36 -0
- package/src/ruvocal/.dockerignore +17 -0
- package/src/ruvocal/.eslintignore +13 -0
- package/src/ruvocal/.eslintrc.cjs +45 -0
- package/src/ruvocal/.gcloudignore +18 -0
- package/src/ruvocal/.github/ISSUE_TEMPLATE/bug-report--chat-ui-.md +43 -0
- package/src/ruvocal/.github/ISSUE_TEMPLATE/config-support.md +9 -0
- package/src/ruvocal/.github/ISSUE_TEMPLATE/feature-request--chat-ui-.md +17 -0
- package/src/ruvocal/.github/ISSUE_TEMPLATE/huggingchat.md +11 -0
- package/src/ruvocal/.github/release.yml +16 -0
- package/src/ruvocal/.github/workflows/build-docs.yml +18 -0
- package/src/ruvocal/.github/workflows/build-image.yml +142 -0
- package/src/ruvocal/.github/workflows/build-pr-docs.yml +20 -0
- package/src/ruvocal/.github/workflows/deploy-dev.yml +63 -0
- package/src/ruvocal/.github/workflows/deploy-prod.yml +78 -0
- package/src/ruvocal/.github/workflows/lint-and-test.yml +84 -0
- package/src/ruvocal/.github/workflows/slugify.yaml +72 -0
- package/src/ruvocal/.github/workflows/trufflehog.yml +17 -0
- package/src/ruvocal/.github/workflows/upload-pr-documentation.yml +16 -0
- package/src/ruvocal/.husky/lint-stage-config.js +4 -0
- package/src/ruvocal/.husky/pre-commit +2 -0
- package/src/ruvocal/.prettierignore +14 -0
- package/src/ruvocal/.prettierrc +7 -0
- package/src/ruvocal/CLAUDE.md +126 -0
- package/src/ruvocal/Dockerfile +96 -0
- package/src/ruvocal/LICENSE +203 -0
- package/src/ruvocal/PRIVACY.md +41 -0
- package/src/ruvocal/README.md +164 -0
- package/src/ruvocal/chart/Chart.yaml +5 -0
- package/src/ruvocal/chart/env/dev.yaml +260 -0
- package/src/ruvocal/chart/env/prod.yaml +273 -0
- package/src/ruvocal/chart/templates/_helpers.tpl +22 -0
- package/src/ruvocal/chart/templates/config.yaml +10 -0
- package/src/ruvocal/chart/templates/deployment.yaml +81 -0
- package/src/ruvocal/chart/templates/hpa.yaml +45 -0
- package/src/ruvocal/chart/templates/infisical.yaml +24 -0
- package/src/ruvocal/chart/templates/ingress-internal.yaml +32 -0
- package/src/ruvocal/chart/templates/ingress.yaml +32 -0
- package/src/ruvocal/chart/templates/network-policy.yaml +36 -0
- package/src/ruvocal/chart/templates/service-account.yaml +13 -0
- package/src/ruvocal/chart/templates/service-monitor.yaml +17 -0
- package/src/ruvocal/chart/templates/service.yaml +21 -0
- package/src/ruvocal/chart/values.yaml +73 -0
- package/src/ruvocal/cloudbuild.yaml +68 -0
- package/src/ruvocal/config/branding.env.example +19 -0
- package/src/ruvocal/docker-compose.yml +21 -0
- package/src/ruvocal/docs/adr/ADR-029-HUGGINGFACE-CHAT-UI-CLOUD-RUN.md +1236 -0
- package/src/ruvocal/docs/adr/ADR-033-RUVECTOR-RUFLO-MCP-INTEGRATION.md +111 -0
- package/src/ruvocal/docs/adr/ADR-034-OPTIONAL-MCP-BACKENDS.md +117 -0
- package/src/ruvocal/docs/adr/ADR-035-MCP-TOOL-GROUPS.md +186 -0
- package/src/ruvocal/docs/adr/ADR-037-AUTOPILOT-CHAT-MODE.md +1500 -0
- package/src/ruvocal/docs/adr/ADR-038-RUVOCAL-FORK.md +286 -0
- package/src/ruvocal/docs/source/_toctree.yml +30 -0
- package/src/ruvocal/docs/source/configuration/common-issues.md +38 -0
- package/src/ruvocal/docs/source/configuration/llm-router.md +105 -0
- package/src/ruvocal/docs/source/configuration/mcp-tools.md +84 -0
- package/src/ruvocal/docs/source/configuration/metrics.md +9 -0
- package/src/ruvocal/docs/source/configuration/open-id.md +57 -0
- package/src/ruvocal/docs/source/configuration/overview.md +89 -0
- package/src/ruvocal/docs/source/configuration/theming.md +20 -0
- package/src/ruvocal/docs/source/developing/architecture.md +48 -0
- package/src/ruvocal/docs/source/index.md +53 -0
- package/src/ruvocal/docs/source/installation/docker.md +43 -0
- package/src/ruvocal/docs/source/installation/helm.md +43 -0
- package/src/ruvocal/docs/source/installation/local.md +62 -0
- package/src/ruvocal/entrypoint.sh +19 -0
- package/src/ruvocal/mcp-bridge/Dockerfile +45 -0
- package/src/ruvocal/mcp-bridge/cloudbuild.yaml +49 -0
- package/src/ruvocal/mcp-bridge/index.js +1878 -0
- package/src/ruvocal/mcp-bridge/mcp-stdio-kernel.js +159 -0
- package/src/ruvocal/mcp-bridge/package-lock.json +762 -0
- package/src/ruvocal/mcp-bridge/package.json +17 -0
- package/src/ruvocal/mcp-bridge/test-harness.js +470 -0
- package/src/ruvocal/models/add-your-models-here.txt +1 -0
- package/src/ruvocal/package-lock.json +11741 -0
- package/src/ruvocal/package.json +121 -0
- package/src/ruvocal/postcss.config.js +6 -0
- package/src/ruvocal/rvf.manifest.json +204 -0
- package/src/ruvocal/scripts/config.ts +64 -0
- package/src/ruvocal/scripts/generate-welcome.mjs +181 -0
- package/src/ruvocal/scripts/populate.ts +288 -0
- package/src/ruvocal/scripts/samples.txt +194 -0
- package/src/ruvocal/scripts/setups/vitest-setup-client.ts +0 -0
- package/src/ruvocal/scripts/setups/vitest-setup-server.ts +44 -0
- package/src/ruvocal/scripts/updateLocalEnv.ts +48 -0
- package/src/ruvocal/src/ambient.d.ts +7 -0
- package/src/ruvocal/src/app.d.ts +29 -0
- package/src/ruvocal/src/app.html +53 -0
- package/src/ruvocal/src/hooks.server.ts +32 -0
- package/src/ruvocal/src/hooks.ts +6 -0
- package/src/ruvocal/src/lib/APIClient.ts +148 -0
- package/src/ruvocal/src/lib/actions/clickOutside.ts +18 -0
- package/src/ruvocal/src/lib/actions/snapScrollToBottom.ts +346 -0
- package/src/ruvocal/src/lib/buildPrompt.ts +33 -0
- package/src/ruvocal/src/lib/components/AnnouncementBanner.svelte +20 -0
- package/src/ruvocal/src/lib/components/BackgroundGenerationPoller.svelte +168 -0
- package/src/ruvocal/src/lib/components/CodeBlock.svelte +73 -0
- package/src/ruvocal/src/lib/components/CopyToClipBoardBtn.svelte +92 -0
- package/src/ruvocal/src/lib/components/DeleteConversationModal.svelte +75 -0
- package/src/ruvocal/src/lib/components/EditConversationModal.svelte +100 -0
- package/src/ruvocal/src/lib/components/ExpandNavigation.svelte +22 -0
- package/src/ruvocal/src/lib/components/FoundationBackground.svelte +242 -0
- package/src/ruvocal/src/lib/components/HoverTooltip.svelte +44 -0
- package/src/ruvocal/src/lib/components/HtmlPreviewModal.svelte +143 -0
- package/src/ruvocal/src/lib/components/InfiniteScroll.svelte +50 -0
- package/src/ruvocal/src/lib/components/MobileNav.svelte +300 -0
- package/src/ruvocal/src/lib/components/Modal.svelte +115 -0
- package/src/ruvocal/src/lib/components/ModelCardMetadata.svelte +71 -0
- package/src/ruvocal/src/lib/components/NavConversationItem.svelte +151 -0
- package/src/ruvocal/src/lib/components/NavMenu.svelte +313 -0
- package/src/ruvocal/src/lib/components/Pagination.svelte +97 -0
- package/src/ruvocal/src/lib/components/PaginationArrow.svelte +27 -0
- package/src/ruvocal/src/lib/components/Portal.svelte +24 -0
- package/src/ruvocal/src/lib/components/RetryBtn.svelte +18 -0
- package/src/ruvocal/src/lib/components/RuFloUniverse.svelte +185 -0
- package/src/ruvocal/src/lib/components/RufloHelpModal.svelte +411 -0
- package/src/ruvocal/src/lib/components/ScrollToBottomBtn.svelte +47 -0
- package/src/ruvocal/src/lib/components/ScrollToPreviousBtn.svelte +77 -0
- package/src/ruvocal/src/lib/components/ShareConversationModal.svelte +182 -0
- package/src/ruvocal/src/lib/components/StopGeneratingBtn.svelte +69 -0
- package/src/ruvocal/src/lib/components/SubscribeModal.svelte +87 -0
- package/src/ruvocal/src/lib/components/Switch.svelte +36 -0
- package/src/ruvocal/src/lib/components/SystemPromptModal.svelte +44 -0
- package/src/ruvocal/src/lib/components/Toast.svelte +27 -0
- package/src/ruvocal/src/lib/components/Tooltip.svelte +30 -0
- package/src/ruvocal/src/lib/components/WelcomeModal.svelte +46 -0
- package/src/ruvocal/src/lib/components/chat/Alternatives.svelte +77 -0
- package/src/ruvocal/src/lib/components/chat/BlockWrapper.svelte +72 -0
- package/src/ruvocal/src/lib/components/chat/ChatInput.svelte +490 -0
- package/src/ruvocal/src/lib/components/chat/ChatIntroduction.svelte +123 -0
- package/src/ruvocal/src/lib/components/chat/ChatMessage.svelte +548 -0
- package/src/ruvocal/src/lib/components/chat/ChatWindow.svelte +1057 -0
- package/src/ruvocal/src/lib/components/chat/FileDropzone.svelte +92 -0
- package/src/ruvocal/src/lib/components/chat/ImageLightbox.svelte +66 -0
- package/src/ruvocal/src/lib/components/chat/MarkdownBlock.svelte +23 -0
- package/src/ruvocal/src/lib/components/chat/MarkdownRenderer.svelte +69 -0
- package/src/ruvocal/src/lib/components/chat/MarkdownRenderer.svelte.test.ts +58 -0
- package/src/ruvocal/src/lib/components/chat/MessageAvatar.svelte +103 -0
- package/src/ruvocal/src/lib/components/chat/ModelSwitch.svelte +64 -0
- package/src/ruvocal/src/lib/components/chat/OpenReasoningResults.svelte +81 -0
- package/src/ruvocal/src/lib/components/chat/TaskGroup.svelte +88 -0
- package/src/ruvocal/src/lib/components/chat/ToolUpdate.svelte +273 -0
- package/src/ruvocal/src/lib/components/chat/UploadedFile.svelte +253 -0
- package/src/ruvocal/src/lib/components/chat/UrlFetchModal.svelte +203 -0
- package/src/ruvocal/src/lib/components/chat/VoiceRecorder.svelte +214 -0
- package/src/ruvocal/src/lib/components/icons/IconBurger.svelte +20 -0
- package/src/ruvocal/src/lib/components/icons/IconCheap.svelte +20 -0
- package/src/ruvocal/src/lib/components/icons/IconChevron.svelte +24 -0
- package/src/ruvocal/src/lib/components/icons/IconDazzled.svelte +40 -0
- package/src/ruvocal/src/lib/components/icons/IconFast.svelte +20 -0
- package/src/ruvocal/src/lib/components/icons/IconLoading.svelte +22 -0
- package/src/ruvocal/src/lib/components/icons/IconMCP.svelte +28 -0
- package/src/ruvocal/src/lib/components/icons/IconMoon.svelte +21 -0
- package/src/ruvocal/src/lib/components/icons/IconNew.svelte +20 -0
- package/src/ruvocal/src/lib/components/icons/IconOmni.svelte +90 -0
- package/src/ruvocal/src/lib/components/icons/IconPaperclip.svelte +24 -0
- package/src/ruvocal/src/lib/components/icons/IconPro.svelte +37 -0
- package/src/ruvocal/src/lib/components/icons/IconShare.svelte +21 -0
- package/src/ruvocal/src/lib/components/icons/IconSun.svelte +93 -0
- package/src/ruvocal/src/lib/components/icons/Logo.svelte +68 -0
- package/src/ruvocal/src/lib/components/icons/LogoHuggingFaceBorderless.svelte +54 -0
- package/src/ruvocal/src/lib/components/mcp/AddServerForm.svelte +250 -0
- package/src/ruvocal/src/lib/components/mcp/MCPServerManager.svelte +185 -0
- package/src/ruvocal/src/lib/components/mcp/ServerCard.svelte +203 -0
- package/src/ruvocal/src/lib/components/players/AudioPlayer.svelte +82 -0
- package/src/ruvocal/src/lib/components/voice/AudioWaveform.svelte +96 -0
- package/src/ruvocal/src/lib/components/wasm/GalleryPanel.svelte +357 -0
- package/src/ruvocal/src/lib/constants/mcpExamples.ts +114 -0
- package/src/ruvocal/src/lib/constants/mime.ts +11 -0
- package/src/ruvocal/src/lib/constants/pagination.ts +1 -0
- package/src/ruvocal/src/lib/constants/publicSepToken.ts +1 -0
- package/src/ruvocal/src/lib/constants/routerExamples.ts +133 -0
- package/src/ruvocal/src/lib/constants/rvagentPresets.ts +206 -0
- package/src/ruvocal/src/lib/createShareLink.ts +27 -0
- package/src/ruvocal/src/lib/jobs/refresh-conversation-stats.ts +297 -0
- package/src/ruvocal/src/lib/migrations/lock.ts +56 -0
- package/src/ruvocal/src/lib/migrations/migrations.spec.ts +74 -0
- package/src/ruvocal/src/lib/migrations/migrations.ts +109 -0
- package/src/ruvocal/src/lib/migrations/routines/01-update-search-assistants.ts +50 -0
- package/src/ruvocal/src/lib/migrations/routines/02-update-assistants-models.ts +48 -0
- package/src/ruvocal/src/lib/migrations/routines/04-update-message-updates.ts +151 -0
- package/src/ruvocal/src/lib/migrations/routines/05-update-message-files.ts +56 -0
- package/src/ruvocal/src/lib/migrations/routines/06-trim-message-updates.ts +56 -0
- package/src/ruvocal/src/lib/migrations/routines/08-update-featured-to-review.ts +32 -0
- package/src/ruvocal/src/lib/migrations/routines/09-delete-empty-conversations.spec.ts +214 -0
- package/src/ruvocal/src/lib/migrations/routines/09-delete-empty-conversations.ts +88 -0
- package/src/ruvocal/src/lib/migrations/routines/10-update-reports-assistantid.ts +29 -0
- package/src/ruvocal/src/lib/migrations/routines/index.ts +15 -0
- package/src/ruvocal/src/lib/server/__tests__/conversation-stop-generating.spec.ts +103 -0
- package/src/ruvocal/src/lib/server/abortRegistry.ts +57 -0
- package/src/ruvocal/src/lib/server/abortedGenerations.ts +43 -0
- package/src/ruvocal/src/lib/server/adminToken.ts +62 -0
- package/src/ruvocal/src/lib/server/api/__tests__/conversations-id.spec.ts +296 -0
- package/src/ruvocal/src/lib/server/api/__tests__/conversations-message.spec.ts +216 -0
- package/src/ruvocal/src/lib/server/api/__tests__/conversations.spec.ts +235 -0
- package/src/ruvocal/src/lib/server/api/__tests__/misc.spec.ts +72 -0
- package/src/ruvocal/src/lib/server/api/__tests__/testHelpers.ts +86 -0
- package/src/ruvocal/src/lib/server/api/__tests__/user-reports.spec.ts +78 -0
- package/src/ruvocal/src/lib/server/api/__tests__/user.spec.ts +239 -0
- package/src/ruvocal/src/lib/server/api/types.ts +37 -0
- package/src/ruvocal/src/lib/server/api/utils/requireAuth.ts +22 -0
- package/src/ruvocal/src/lib/server/api/utils/resolveConversation.ts +69 -0
- package/src/ruvocal/src/lib/server/api/utils/resolveModel.ts +27 -0
- package/src/ruvocal/src/lib/server/api/utils/superjsonResponse.ts +15 -0
- package/src/ruvocal/src/lib/server/apiToken.ts +11 -0
- package/src/ruvocal/src/lib/server/auth.ts +554 -0
- package/src/ruvocal/src/lib/server/config.ts +187 -0
- package/src/ruvocal/src/lib/server/conversation.ts +83 -0
- package/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts +709 -0
- package/src/ruvocal/src/lib/server/database/postgres.ts +700 -0
- package/src/ruvocal/src/lib/server/database/rvf.ts +1078 -0
- package/src/ruvocal/src/lib/server/database.ts +145 -0
- package/src/ruvocal/src/lib/server/endpoints/document.ts +68 -0
- package/src/ruvocal/src/lib/server/endpoints/endpoints.ts +43 -0
- package/src/ruvocal/src/lib/server/endpoints/images.ts +211 -0
- package/src/ruvocal/src/lib/server/endpoints/openai/endpointOai.ts +266 -0
- package/src/ruvocal/src/lib/server/endpoints/openai/openAIChatToTextGenerationStream.ts +212 -0
- package/src/ruvocal/src/lib/server/endpoints/openai/openAICompletionToTextGenerationStream.ts +32 -0
- package/src/ruvocal/src/lib/server/endpoints/preprocessMessages.ts +61 -0
- package/src/ruvocal/src/lib/server/exitHandler.ts +59 -0
- package/src/ruvocal/src/lib/server/files/downloadFile.ts +34 -0
- package/src/ruvocal/src/lib/server/files/uploadFile.ts +29 -0
- package/src/ruvocal/src/lib/server/findRepoRoot.ts +13 -0
- package/src/ruvocal/src/lib/server/fonts/Inter-Black.ttf +0 -0
- package/src/ruvocal/src/lib/server/fonts/Inter-Bold.ttf +0 -0
- package/src/ruvocal/src/lib/server/fonts/Inter-ExtraBold.ttf +0 -0
- package/src/ruvocal/src/lib/server/fonts/Inter-ExtraLight.ttf +0 -0
- package/src/ruvocal/src/lib/server/fonts/Inter-Light.ttf +0 -0
- package/src/ruvocal/src/lib/server/fonts/Inter-Medium.ttf +0 -0
- package/src/ruvocal/src/lib/server/fonts/Inter-Regular.ttf +0 -0
- package/src/ruvocal/src/lib/server/fonts/Inter-SemiBold.ttf +0 -0
- package/src/ruvocal/src/lib/server/fonts/Inter-Thin.ttf +0 -0
- package/src/ruvocal/src/lib/server/generateFromDefaultEndpoint.ts +46 -0
- package/src/ruvocal/src/lib/server/hooks/error.ts +37 -0
- package/src/ruvocal/src/lib/server/hooks/fetch.ts +22 -0
- package/src/ruvocal/src/lib/server/hooks/handle.ts +250 -0
- package/src/ruvocal/src/lib/server/hooks/init.ts +51 -0
- package/src/ruvocal/src/lib/server/isURLLocal.spec.ts +31 -0
- package/src/ruvocal/src/lib/server/isURLLocal.ts +74 -0
- package/src/ruvocal/src/lib/server/logger.ts +42 -0
- package/src/ruvocal/src/lib/server/mcp/clientPool.spec.ts +175 -0
- package/src/ruvocal/src/lib/server/mcp/clientPool.ts +0 -0
- package/src/ruvocal/src/lib/server/mcp/hf.ts +32 -0
- package/src/ruvocal/src/lib/server/mcp/httpClient.ts +122 -0
- package/src/ruvocal/src/lib/server/mcp/registry.ts +76 -0
- package/src/ruvocal/src/lib/server/mcp/tools.ts +196 -0
- package/src/ruvocal/src/lib/server/metrics.ts +255 -0
- package/src/ruvocal/src/lib/server/models.ts +518 -0
- package/src/ruvocal/src/lib/server/requestContext.ts +55 -0
- package/src/ruvocal/src/lib/server/router/arch.ts +230 -0
- package/src/ruvocal/src/lib/server/router/endpoint.ts +316 -0
- package/src/ruvocal/src/lib/server/router/multimodal.ts +28 -0
- package/src/ruvocal/src/lib/server/router/policy.ts +49 -0
- package/src/ruvocal/src/lib/server/router/toolsRoute.ts +51 -0
- package/src/ruvocal/src/lib/server/router/types.ts +21 -0
- package/src/ruvocal/src/lib/server/sendSlack.ts +23 -0
- package/src/ruvocal/src/lib/server/textGeneration/generate.ts +258 -0
- package/src/ruvocal/src/lib/server/textGeneration/index.ts +96 -0
- package/src/ruvocal/src/lib/server/textGeneration/mcp/fileRefs.ts +155 -0
- package/src/ruvocal/src/lib/server/textGeneration/mcp/routerResolution.ts +108 -0
- package/src/ruvocal/src/lib/server/textGeneration/mcp/runMcpFlow.ts +831 -0
- package/src/ruvocal/src/lib/server/textGeneration/mcp/toolInvocation.ts +349 -0
- package/src/ruvocal/src/lib/server/textGeneration/mcp/wasmTools.test.ts +633 -0
- package/src/ruvocal/src/lib/server/textGeneration/reasoning.ts +23 -0
- package/src/ruvocal/src/lib/server/textGeneration/title.ts +83 -0
- package/src/ruvocal/src/lib/server/textGeneration/types.ts +28 -0
- package/src/ruvocal/src/lib/server/textGeneration/utils/prepareFiles.ts +88 -0
- package/src/ruvocal/src/lib/server/textGeneration/utils/routing.ts +21 -0
- package/src/ruvocal/src/lib/server/textGeneration/utils/toolPrompt.ts +49 -0
- package/src/ruvocal/src/lib/server/urlSafety.ts +77 -0
- package/src/ruvocal/src/lib/server/usageLimits.ts +30 -0
- package/src/ruvocal/src/lib/stores/autopilotStore.svelte.ts +175 -0
- package/src/ruvocal/src/lib/stores/backgroundGenerations.svelte.ts +32 -0
- package/src/ruvocal/src/lib/stores/backgroundGenerations.ts +1 -0
- package/src/ruvocal/src/lib/stores/errors.ts +9 -0
- package/src/ruvocal/src/lib/stores/isAborted.ts +3 -0
- package/src/ruvocal/src/lib/stores/isPro.ts +4 -0
- package/src/ruvocal/src/lib/stores/loading.ts +3 -0
- package/src/ruvocal/src/lib/stores/mcpServers.ts +534 -0
- package/src/ruvocal/src/lib/stores/pendingChatInput.ts +3 -0
- package/src/ruvocal/src/lib/stores/pendingMessage.ts +9 -0
- package/src/ruvocal/src/lib/stores/settings.ts +182 -0
- package/src/ruvocal/src/lib/stores/shareModal.ts +13 -0
- package/src/ruvocal/src/lib/stores/titleUpdate.ts +8 -0
- package/src/ruvocal/src/lib/stores/wasmMcp.ts +472 -0
- package/src/ruvocal/src/lib/switchTheme.ts +124 -0
- package/src/ruvocal/src/lib/types/AbortedGeneration.ts +8 -0
- package/src/ruvocal/src/lib/types/Assistant.ts +31 -0
- package/src/ruvocal/src/lib/types/AssistantStats.ts +11 -0
- package/src/ruvocal/src/lib/types/ConfigKey.ts +4 -0
- package/src/ruvocal/src/lib/types/ConvSidebar.ts +9 -0
- package/src/ruvocal/src/lib/types/Conversation.ts +27 -0
- package/src/ruvocal/src/lib/types/ConversationStats.ts +13 -0
- package/src/ruvocal/src/lib/types/Message.ts +41 -0
- package/src/ruvocal/src/lib/types/MessageEvent.ts +10 -0
- package/src/ruvocal/src/lib/types/MessageUpdate.ts +139 -0
- package/src/ruvocal/src/lib/types/MigrationResult.ts +7 -0
- package/src/ruvocal/src/lib/types/Model.ts +23 -0
- package/src/ruvocal/src/lib/types/Report.ts +12 -0
- package/src/ruvocal/src/lib/types/Review.ts +6 -0
- package/src/ruvocal/src/lib/types/Semaphore.ts +19 -0
- package/src/ruvocal/src/lib/types/Session.ts +22 -0
- package/src/ruvocal/src/lib/types/Settings.ts +93 -0
- package/src/ruvocal/src/lib/types/SharedConversation.ts +9 -0
- package/src/ruvocal/src/lib/types/Template.ts +6 -0
- package/src/ruvocal/src/lib/types/Timestamps.ts +4 -0
- package/src/ruvocal/src/lib/types/TokenCache.ts +6 -0
- package/src/ruvocal/src/lib/types/Tool.ts +77 -0
- package/src/ruvocal/src/lib/types/UrlDependency.ts +5 -0
- package/src/ruvocal/src/lib/types/User.ts +14 -0
- package/src/ruvocal/src/lib/utils/PublicConfig.svelte.ts +75 -0
- package/src/ruvocal/src/lib/utils/auth.ts +17 -0
- package/src/ruvocal/src/lib/utils/chunk.ts +33 -0
- package/src/ruvocal/src/lib/utils/cookiesAreEnabled.ts +13 -0
- package/src/ruvocal/src/lib/utils/debounce.ts +17 -0
- package/src/ruvocal/src/lib/utils/deepestChild.ts +6 -0
- package/src/ruvocal/src/lib/utils/favicon.ts +21 -0
- package/src/ruvocal/src/lib/utils/fetchJSON.ts +23 -0
- package/src/ruvocal/src/lib/utils/file2base64.ts +14 -0
- package/src/ruvocal/src/lib/utils/formatUserCount.ts +37 -0
- package/src/ruvocal/src/lib/utils/generationState.spec.ts +75 -0
- package/src/ruvocal/src/lib/utils/generationState.ts +26 -0
- package/src/ruvocal/src/lib/utils/getHref.ts +41 -0
- package/src/ruvocal/src/lib/utils/getReturnFromGenerator.ts +7 -0
- package/src/ruvocal/src/lib/utils/haptics.ts +64 -0
- package/src/ruvocal/src/lib/utils/hashConv.ts +12 -0
- package/src/ruvocal/src/lib/utils/hf.ts +17 -0
- package/src/ruvocal/src/lib/utils/isDesktop.ts +7 -0
- package/src/ruvocal/src/lib/utils/isUrl.ts +8 -0
- package/src/ruvocal/src/lib/utils/isVirtualKeyboard.ts +16 -0
- package/src/ruvocal/src/lib/utils/loadAttachmentsFromUrls.ts +115 -0
- package/src/ruvocal/src/lib/utils/marked.spec.ts +96 -0
- package/src/ruvocal/src/lib/utils/marked.ts +531 -0
- package/src/ruvocal/src/lib/utils/mcpValidation.ts +147 -0
- package/src/ruvocal/src/lib/utils/mergeAsyncGenerators.ts +38 -0
- package/src/ruvocal/src/lib/utils/messageUpdates.spec.ts +262 -0
- package/src/ruvocal/src/lib/utils/messageUpdates.ts +324 -0
- package/src/ruvocal/src/lib/utils/mime.ts +56 -0
- package/src/ruvocal/src/lib/utils/models.ts +14 -0
- package/src/ruvocal/src/lib/utils/parseBlocks.ts +120 -0
- package/src/ruvocal/src/lib/utils/parseIncompleteMarkdown.ts +644 -0
- package/src/ruvocal/src/lib/utils/parseStringToList.ts +10 -0
- package/src/ruvocal/src/lib/utils/randomUuid.ts +14 -0
- package/src/ruvocal/src/lib/utils/searchTokens.ts +33 -0
- package/src/ruvocal/src/lib/utils/sha256.ts +7 -0
- package/src/ruvocal/src/lib/utils/stringifyError.ts +12 -0
- package/src/ruvocal/src/lib/utils/sum.ts +3 -0
- package/src/ruvocal/src/lib/utils/template.spec.ts +59 -0
- package/src/ruvocal/src/lib/utils/template.ts +53 -0
- package/src/ruvocal/src/lib/utils/timeout.ts +9 -0
- package/src/ruvocal/src/lib/utils/toolProgress.spec.ts +46 -0
- package/src/ruvocal/src/lib/utils/toolProgress.ts +11 -0
- package/src/ruvocal/src/lib/utils/tree/addChildren.spec.ts +102 -0
- package/src/ruvocal/src/lib/utils/tree/addChildren.ts +48 -0
- package/src/ruvocal/src/lib/utils/tree/addSibling.spec.ts +81 -0
- package/src/ruvocal/src/lib/utils/tree/addSibling.ts +41 -0
- package/src/ruvocal/src/lib/utils/tree/buildSubtree.spec.ts +110 -0
- package/src/ruvocal/src/lib/utils/tree/buildSubtree.ts +24 -0
- package/src/ruvocal/src/lib/utils/tree/convertLegacyConversation.spec.ts +31 -0
- package/src/ruvocal/src/lib/utils/tree/convertLegacyConversation.ts +36 -0
- package/src/ruvocal/src/lib/utils/tree/isMessageId.spec.ts +15 -0
- package/src/ruvocal/src/lib/utils/tree/isMessageId.ts +5 -0
- package/src/ruvocal/src/lib/utils/tree/tree.d.ts +14 -0
- package/src/ruvocal/src/lib/utils/tree/treeHelpers.spec.ts +167 -0
- package/src/ruvocal/src/lib/utils/updates.ts +39 -0
- package/src/ruvocal/src/lib/utils/urlParams.ts +13 -0
- package/src/ruvocal/src/lib/wasm/idb.ts +438 -0
- package/src/ruvocal/src/lib/wasm/index.ts +1213 -0
- package/src/ruvocal/src/lib/wasm/tests/wasm-capabilities.test.ts +565 -0
- package/src/ruvocal/src/lib/wasm/wasm.worker.ts +332 -0
- package/src/ruvocal/src/lib/wasm/workerClient.ts +166 -0
- package/src/ruvocal/src/lib/workers/autopilotWorker.ts +221 -0
- package/src/ruvocal/src/lib/workers/detailFetchWorker.ts +100 -0
- package/src/ruvocal/src/lib/workers/markdownWorker.ts +61 -0
- package/src/ruvocal/src/routes/+error.svelte +20 -0
- package/src/ruvocal/src/routes/+layout.svelte +324 -0
- package/src/ruvocal/src/routes/+layout.ts +91 -0
- package/src/ruvocal/src/routes/+page.svelte +168 -0
- package/src/ruvocal/src/routes/.well-known/oauth-cimd/+server.ts +37 -0
- package/src/ruvocal/src/routes/__debug/openai/+server.ts +21 -0
- package/src/ruvocal/src/routes/admin/export/+server.ts +159 -0
- package/src/ruvocal/src/routes/admin/stats/compute/+server.ts +16 -0
- package/src/ruvocal/src/routes/api/conversation/[id]/+server.ts +40 -0
- package/src/ruvocal/src/routes/api/conversation/[id]/message/[messageId]/+server.ts +42 -0
- package/src/ruvocal/src/routes/api/conversations/+server.ts +48 -0
- package/src/ruvocal/src/routes/api/fetch-url/+server.ts +147 -0
- package/src/ruvocal/src/routes/api/mcp/health/+server.ts +292 -0
- package/src/ruvocal/src/routes/api/mcp/servers/+server.ts +32 -0
- package/src/ruvocal/src/routes/api/models/+server.ts +25 -0
- package/src/ruvocal/src/routes/api/transcribe/+server.ts +104 -0
- package/src/ruvocal/src/routes/api/user/+server.ts +15 -0
- package/src/ruvocal/src/routes/api/user/validate-token/+server.ts +20 -0
- package/src/ruvocal/src/routes/api/v2/conversations/+server.ts +48 -0
- package/src/ruvocal/src/routes/api/v2/conversations/[id]/+server.ts +94 -0
- package/src/ruvocal/src/routes/api/v2/conversations/[id]/message/[messageId]/+server.ts +43 -0
- package/src/ruvocal/src/routes/api/v2/conversations/import-share/+server.ts +23 -0
- package/src/ruvocal/src/routes/api/v2/debug/config/+server.ts +16 -0
- package/src/ruvocal/src/routes/api/v2/debug/refresh/+server.ts +30 -0
- package/src/ruvocal/src/routes/api/v2/export/+server.ts +196 -0
- package/src/ruvocal/src/routes/api/v2/feature-flags/+server.ts +14 -0
- package/src/ruvocal/src/routes/api/v2/models/+server.ts +38 -0
- package/src/ruvocal/src/routes/api/v2/models/[namespace]/+server.ts +8 -0
- package/src/ruvocal/src/routes/api/v2/models/[namespace]/[model]/+server.ts +8 -0
- package/src/ruvocal/src/routes/api/v2/models/[namespace]/[model]/subscribe/+server.ts +28 -0
- package/src/ruvocal/src/routes/api/v2/models/[namespace]/subscribe/+server.ts +28 -0
- package/src/ruvocal/src/routes/api/v2/models/old/+server.ts +7 -0
- package/src/ruvocal/src/routes/api/v2/models/refresh/+server.ts +33 -0
- package/src/ruvocal/src/routes/api/v2/public-config/+server.ts +7 -0
- package/src/ruvocal/src/routes/api/v2/user/+server.ts +17 -0
- package/src/ruvocal/src/routes/api/v2/user/billing-orgs/+server.ts +73 -0
- package/src/ruvocal/src/routes/api/v2/user/reports/+server.ts +17 -0
- package/src/ruvocal/src/routes/api/v2/user/settings/+server.ts +110 -0
- package/src/ruvocal/src/routes/conversation/+server.ts +115 -0
- package/src/ruvocal/src/routes/conversation/[id]/+page.svelte +586 -0
- package/src/ruvocal/src/routes/conversation/[id]/+page.ts +60 -0
- package/src/ruvocal/src/routes/conversation/[id]/+server.ts +740 -0
- package/src/ruvocal/src/routes/conversation/[id]/message/[messageId]/prompt/+server.ts +66 -0
- package/src/ruvocal/src/routes/conversation/[id]/share/+server.ts +69 -0
- package/src/ruvocal/src/routes/conversation/[id]/stop-generating/+server.ts +35 -0
- package/src/ruvocal/src/routes/healthcheck/+server.ts +3 -0
- package/src/ruvocal/src/routes/login/+server.ts +5 -0
- package/src/ruvocal/src/routes/login/callback/+server.ts +103 -0
- package/src/ruvocal/src/routes/login/callback/updateUser.spec.ts +157 -0
- package/src/ruvocal/src/routes/login/callback/updateUser.ts +215 -0
- package/src/ruvocal/src/routes/logout/+server.ts +18 -0
- package/src/ruvocal/src/routes/metrics/+server.ts +18 -0
- package/src/ruvocal/src/routes/models/+page.svelte +233 -0
- package/src/ruvocal/src/routes/models/[...model]/+page.svelte +161 -0
- package/src/ruvocal/src/routes/models/[...model]/+page.ts +14 -0
- package/src/ruvocal/src/routes/models/[...model]/thumbnail.png/+server.ts +64 -0
- package/src/ruvocal/src/routes/models/[...model]/thumbnail.png/ModelThumbnail.svelte +28 -0
- package/src/ruvocal/src/routes/privacy/+page.svelte +11 -0
- package/src/ruvocal/src/routes/r/[id]/+page.ts +34 -0
- package/src/ruvocal/src/routes/settings/(nav)/+layout.svelte +282 -0
- package/src/ruvocal/src/routes/settings/(nav)/+layout.ts +1 -0
- package/src/ruvocal/src/routes/settings/(nav)/+page.svelte +0 -0
- package/src/ruvocal/src/routes/settings/(nav)/+server.ts +59 -0
- package/src/ruvocal/src/routes/settings/(nav)/[...model]/+page.svelte +464 -0
- package/src/ruvocal/src/routes/settings/(nav)/[...model]/+page.ts +14 -0
- package/src/ruvocal/src/routes/settings/(nav)/application/+page.svelte +362 -0
- package/src/ruvocal/src/routes/settings/+layout.svelte +40 -0
- package/src/ruvocal/src/styles/highlight-js.css +195 -0
- package/src/ruvocal/src/styles/main.css +144 -0
- package/src/ruvocal/static/chatui/apple-touch-icon.png +0 -0
- package/src/ruvocal/static/chatui/favicon-dark.svg +3 -0
- package/src/ruvocal/static/chatui/favicon-dev.svg +3 -0
- package/src/ruvocal/static/chatui/favicon.ico +0 -0
- package/src/ruvocal/static/chatui/favicon.svg +3 -0
- package/src/ruvocal/static/chatui/icon-128x128.png +0 -0
- package/src/ruvocal/static/chatui/icon-144x144.png +0 -0
- package/src/ruvocal/static/chatui/icon-192x192.png +0 -0
- package/src/ruvocal/static/chatui/icon-256x256.png +0 -0
- package/src/ruvocal/static/chatui/icon-36x36.png +0 -0
- package/src/ruvocal/static/chatui/icon-48x48.png +0 -0
- package/src/ruvocal/static/chatui/icon-512x512.png +0 -0
- package/src/ruvocal/static/chatui/icon-72x72.png +0 -0
- package/src/ruvocal/static/chatui/icon-96x96.png +0 -0
- package/src/ruvocal/static/chatui/icon.svg +3 -0
- package/src/ruvocal/static/chatui/logo.svg +7 -0
- package/src/ruvocal/static/chatui/manifest.json +54 -0
- package/src/ruvocal/static/chatui/omni-welcome.gif +0 -0
- package/src/ruvocal/static/chatui/omni-welcome.png +0 -0
- package/src/ruvocal/static/chatui/welcome.js +184 -0
- package/src/ruvocal/static/chatui/welcome.svg +1 -0
- package/src/ruvocal/static/huggingchat/apple-touch-icon.png +0 -0
- package/src/ruvocal/static/huggingchat/assistants-thumbnail.png +0 -0
- package/src/ruvocal/static/huggingchat/castle-example.jpg +0 -0
- package/src/ruvocal/static/huggingchat/favicon-dark.svg +4 -0
- package/src/ruvocal/static/huggingchat/favicon-dev.svg +4 -0
- package/src/ruvocal/static/huggingchat/favicon.ico +0 -0
- package/src/ruvocal/static/huggingchat/favicon.svg +4 -0
- package/src/ruvocal/static/huggingchat/fulltext-logo.svg +2 -0
- package/src/ruvocal/static/huggingchat/icon-128x128.png +0 -0
- package/src/ruvocal/static/huggingchat/icon-144x144.png +0 -0
- package/src/ruvocal/static/huggingchat/icon-192x192.png +0 -0
- package/src/ruvocal/static/huggingchat/icon-256x256.png +0 -0
- package/src/ruvocal/static/huggingchat/icon-36x36.png +0 -0
- package/src/ruvocal/static/huggingchat/icon-48x48.png +0 -0
- package/src/ruvocal/static/huggingchat/icon-512x512.png +0 -0
- package/src/ruvocal/static/huggingchat/icon-72x72.png +0 -0
- package/src/ruvocal/static/huggingchat/icon-96x96.png +0 -0
- package/src/ruvocal/static/huggingchat/icon.svg +4 -0
- package/src/ruvocal/static/huggingchat/logo.svg +4 -0
- package/src/ruvocal/static/huggingchat/manifest.json +54 -0
- package/src/ruvocal/static/huggingchat/omni-welcome.gif +0 -0
- package/src/ruvocal/static/huggingchat/routes.chat.json +226 -0
- package/src/ruvocal/static/huggingchat/thumbnail.png +0 -0
- package/src/ruvocal/static/huggingchat/tools-thumbnail.png +0 -0
- package/src/ruvocal/static/robots.txt +10 -0
- package/src/ruvocal/static/wasm/rvagent_wasm.js +1539 -0
- package/src/ruvocal/static/wasm/rvagent_wasm_bg.wasm +0 -0
- package/src/ruvocal/stub/@reflink/reflink/index.js +0 -0
- package/src/ruvocal/stub/@reflink/reflink/package.json +5 -0
- package/src/ruvocal/svelte.config.js +53 -0
- package/src/ruvocal/tailwind.config.cjs +30 -0
- package/src/ruvocal/tsconfig.json +19 -0
- package/src/ruvocal/vite.config.ts +87 -0
- package/src/scripts/deploy.sh +116 -0
- package/src/scripts/generate-config.js +245 -0
- package/src/scripts/generate-welcome.js +187 -0
- package/src/scripts/package-rvf.sh +116 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
worker_processes auto;
|
|
2
|
+
|
|
3
|
+
events {
|
|
4
|
+
worker_connections 1024;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
http {
|
|
8
|
+
include /etc/nginx/mime.types;
|
|
9
|
+
default_type application/octet-stream;
|
|
10
|
+
|
|
11
|
+
sendfile on;
|
|
12
|
+
keepalive_timeout 65;
|
|
13
|
+
gzip off; # required for sub_filter to work
|
|
14
|
+
|
|
15
|
+
server {
|
|
16
|
+
listen 3000;
|
|
17
|
+
server_name _;
|
|
18
|
+
|
|
19
|
+
# --- CORS headers on all responses ---
|
|
20
|
+
add_header Access-Control-Allow-Origin "*" always;
|
|
21
|
+
add_header Access-Control-Allow-Methods "GET, POST, OPTIONS" always;
|
|
22
|
+
add_header Access-Control-Allow-Headers "Content-Type, Authorization" always;
|
|
23
|
+
|
|
24
|
+
# Preflight
|
|
25
|
+
if ($request_method = OPTIONS) {
|
|
26
|
+
return 204;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
# --- RuFlo brand assets (logo, favicons, manifest) ---
|
|
30
|
+
location /chatui/ {
|
|
31
|
+
alias /etc/nginx/static/;
|
|
32
|
+
expires 1h;
|
|
33
|
+
add_header Cache-Control "public";
|
|
34
|
+
add_header Access-Control-Allow-Origin "*" always;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
# --- RuFlo static JS/CSS ---
|
|
38
|
+
location /ruflo/ {
|
|
39
|
+
alias /etc/nginx/static/;
|
|
40
|
+
expires 1h;
|
|
41
|
+
add_header Cache-Control "public";
|
|
42
|
+
add_header Access-Control-Allow-Origin "*" always;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
# --- Proxy to Chat UI with script injection + URL rewriting ---
|
|
46
|
+
location / {
|
|
47
|
+
proxy_pass http://chat-ui:3000;
|
|
48
|
+
proxy_http_version 1.1;
|
|
49
|
+
proxy_set_header Host $host;
|
|
50
|
+
proxy_set_header X-Real-IP $remote_addr;
|
|
51
|
+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
52
|
+
proxy_set_header X-Forwarded-Proto $scheme;
|
|
53
|
+
proxy_set_header Upgrade $http_upgrade;
|
|
54
|
+
proxy_set_header Connection "upgrade";
|
|
55
|
+
|
|
56
|
+
# Disable gzip from upstream so sub_filter works
|
|
57
|
+
proxy_set_header Accept-Encoding "";
|
|
58
|
+
|
|
59
|
+
# Rewrite absolute PUBLIC_ORIGIN URLs to relative paths
|
|
60
|
+
# (fixes CORS when accessed via codespace port-forward)
|
|
61
|
+
sub_filter 'http://localhost:3000' '';
|
|
62
|
+
sub_filter '</head>' '<script src="/ruflo/welcome.js" defer></script></head>';
|
|
63
|
+
sub_filter_once off;
|
|
64
|
+
sub_filter_types text/html application/json;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" fill="none">
|
|
2
|
+
<rect width="64" height="64" rx="12" fill="#0a0a1a"/>
|
|
3
|
+
<path d="M32 8L56 22v20L32 56 8 42V22z" stroke="#00d4ff" stroke-width="2.5" fill="none"/>
|
|
4
|
+
<circle cx="32" cy="32" r="8" fill="#7c3aed"/>
|
|
5
|
+
</svg>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 48" fill="none">
|
|
2
|
+
<!-- Hexagon icon -->
|
|
3
|
+
<path d="M20 4L36 13v18L20 40 4 31V13z" stroke="#00d4ff" stroke-width="2" fill="none"/>
|
|
4
|
+
<circle cx="20" cy="22" r="4" fill="#7c3aed"/>
|
|
5
|
+
<!-- "Ru" in cyan -->
|
|
6
|
+
<text x="48" y="34" font-family="system-ui, -apple-system, sans-serif" font-weight="700" font-size="28" fill="#00d4ff">Ru</text>
|
|
7
|
+
<!-- "Flo" in violet -->
|
|
8
|
+
<text x="88" y="34" font-family="system-ui, -apple-system, sans-serif" font-weight="700" font-size="28" fill="#7c3aed">Flo</text>
|
|
9
|
+
</svg>
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "RuFlo",
|
|
3
|
+
"short_name": "RuFlo",
|
|
4
|
+
"description": "Enterprise AI Agent Orchestration Platform",
|
|
5
|
+
"start_url": "/",
|
|
6
|
+
"display": "standalone",
|
|
7
|
+
"theme_color": "#00d4ff",
|
|
8
|
+
"background_color": "#0a0a1a",
|
|
9
|
+
"icons": [
|
|
10
|
+
{
|
|
11
|
+
"src": "/chatui/icon.svg",
|
|
12
|
+
"sizes": "any",
|
|
13
|
+
"type": "image/svg+xml"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"src": "/chatui/favicon-dark.svg",
|
|
17
|
+
"sizes": "any",
|
|
18
|
+
"type": "image/svg+xml",
|
|
19
|
+
"purpose": "monochrome"
|
|
20
|
+
}
|
|
21
|
+
]
|
|
22
|
+
}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
(function () {
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
const THREE_CDN = "https://cdn.jsdelivr.net/npm/three@0.169.0/build/three.module.js";
|
|
5
|
+
const BG_COLOR = 0x0a0a1a;
|
|
6
|
+
const CYAN = 0x00d4ff;
|
|
7
|
+
const VIOLET = 0x7c3aed;
|
|
8
|
+
const AMBER = 0xf59e0b;
|
|
9
|
+
const PARTICLE_COUNT = 200;
|
|
10
|
+
|
|
11
|
+
let scene, camera, renderer, frameId;
|
|
12
|
+
let icosahedron, octahedron, torus, particles;
|
|
13
|
+
let textSprite;
|
|
14
|
+
|
|
15
|
+
function createTextTexture(text, w, h) {
|
|
16
|
+
const canvas = document.createElement("canvas");
|
|
17
|
+
canvas.width = w;
|
|
18
|
+
canvas.height = h;
|
|
19
|
+
const ctx = canvas.getContext("2d");
|
|
20
|
+
const grad = ctx.createLinearGradient(0, 0, w, 0);
|
|
21
|
+
grad.addColorStop(0, "#00d4ff");
|
|
22
|
+
grad.addColorStop(1, "#7c3aed");
|
|
23
|
+
ctx.fillStyle = grad;
|
|
24
|
+
ctx.font = "bold 72px system-ui, -apple-system, sans-serif";
|
|
25
|
+
ctx.textAlign = "center";
|
|
26
|
+
ctx.textBaseline = "middle";
|
|
27
|
+
ctx.fillText(text, w / 2, h / 2);
|
|
28
|
+
return canvas;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
async function initScene(container) {
|
|
32
|
+
const THREE = await import(THREE_CDN);
|
|
33
|
+
|
|
34
|
+
const rect = container.getBoundingClientRect();
|
|
35
|
+
const width = rect.width || 400;
|
|
36
|
+
const height = rect.height || 300;
|
|
37
|
+
|
|
38
|
+
scene = new THREE.Scene();
|
|
39
|
+
scene.background = new THREE.Color(BG_COLOR);
|
|
40
|
+
|
|
41
|
+
camera = new THREE.PerspectiveCamera(50, width / height, 0.1, 100);
|
|
42
|
+
camera.position.z = 5;
|
|
43
|
+
|
|
44
|
+
renderer = new THREE.WebGLRenderer({ antialias: true, alpha: false });
|
|
45
|
+
renderer.setSize(width, height);
|
|
46
|
+
renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2));
|
|
47
|
+
|
|
48
|
+
const canvas = renderer.domElement;
|
|
49
|
+
canvas.style.width = "100%";
|
|
50
|
+
canvas.style.height = "100%";
|
|
51
|
+
canvas.style.display = "block";
|
|
52
|
+
canvas.style.borderRadius = "12px";
|
|
53
|
+
container.appendChild(canvas);
|
|
54
|
+
|
|
55
|
+
// Wireframe icosahedron (cyan, slow rotation)
|
|
56
|
+
const icoGeo = new THREE.IcosahedronGeometry(1.4, 1);
|
|
57
|
+
const icoMat = new THREE.MeshBasicMaterial({ color: CYAN, wireframe: true, transparent: true, opacity: 0.6 });
|
|
58
|
+
icosahedron = new THREE.Mesh(icoGeo, icoMat);
|
|
59
|
+
scene.add(icosahedron);
|
|
60
|
+
|
|
61
|
+
// Wireframe octahedron (violet, counter-rotation)
|
|
62
|
+
const octGeo = new THREE.OctahedronGeometry(1.0, 0);
|
|
63
|
+
const octMat = new THREE.MeshBasicMaterial({ color: VIOLET, wireframe: true, transparent: true, opacity: 0.7 });
|
|
64
|
+
octahedron = new THREE.Mesh(octGeo, octMat);
|
|
65
|
+
scene.add(octahedron);
|
|
66
|
+
|
|
67
|
+
// Pulse torus ring (cyan, breathing)
|
|
68
|
+
const torGeo = new THREE.TorusGeometry(2.0, 0.02, 8, 64);
|
|
69
|
+
const torMat = new THREE.MeshBasicMaterial({ color: CYAN, transparent: true, opacity: 0.4 });
|
|
70
|
+
torus = new THREE.Mesh(torGeo, torMat);
|
|
71
|
+
torus.rotation.x = Math.PI / 2;
|
|
72
|
+
scene.add(torus);
|
|
73
|
+
|
|
74
|
+
// Particle field (~200 amber dots in a sphere)
|
|
75
|
+
const pGeo = new THREE.BufferGeometry();
|
|
76
|
+
const positions = new Float32Array(PARTICLE_COUNT * 3);
|
|
77
|
+
for (let i = 0; i < PARTICLE_COUNT; i++) {
|
|
78
|
+
const r = 1.2 + Math.random() * 1.0;
|
|
79
|
+
const theta = Math.random() * Math.PI * 2;
|
|
80
|
+
const phi = Math.acos(2 * Math.random() - 1);
|
|
81
|
+
positions[i * 3] = r * Math.sin(phi) * Math.cos(theta);
|
|
82
|
+
positions[i * 3 + 1] = r * Math.sin(phi) * Math.sin(theta);
|
|
83
|
+
positions[i * 3 + 2] = r * Math.cos(phi);
|
|
84
|
+
}
|
|
85
|
+
pGeo.setAttribute("position", new THREE.BufferAttribute(positions, 3));
|
|
86
|
+
const pMat = new THREE.PointsMaterial({ color: AMBER, size: 0.04, sizeAttenuation: true });
|
|
87
|
+
particles = new THREE.Points(pGeo, pMat);
|
|
88
|
+
scene.add(particles);
|
|
89
|
+
|
|
90
|
+
// "RuFlo" text sprite
|
|
91
|
+
const textCanvas = createTextTexture("RuFlo", 512, 128);
|
|
92
|
+
const tex = new THREE.CanvasTexture(textCanvas);
|
|
93
|
+
const spriteMat = new THREE.SpriteMaterial({ map: tex, transparent: true, opacity: 0.9 });
|
|
94
|
+
textSprite = new THREE.Sprite(spriteMat);
|
|
95
|
+
textSprite.scale.set(2.5, 0.625, 1);
|
|
96
|
+
textSprite.position.y = -2.2;
|
|
97
|
+
scene.add(textSprite);
|
|
98
|
+
|
|
99
|
+
// Responsive resize
|
|
100
|
+
const ro = new ResizeObserver(function () {
|
|
101
|
+
const r2 = container.getBoundingClientRect();
|
|
102
|
+
const w = r2.width || 400;
|
|
103
|
+
const h = r2.height || 300;
|
|
104
|
+
camera.aspect = w / h;
|
|
105
|
+
camera.updateProjectionMatrix();
|
|
106
|
+
renderer.setSize(w, h);
|
|
107
|
+
});
|
|
108
|
+
ro.observe(container);
|
|
109
|
+
|
|
110
|
+
// Animate
|
|
111
|
+
function animate() {
|
|
112
|
+
frameId = requestAnimationFrame(animate);
|
|
113
|
+
const t = performance.now() * 0.001;
|
|
114
|
+
|
|
115
|
+
icosahedron.rotation.y = t * 0.3;
|
|
116
|
+
icosahedron.rotation.x = t * 0.15;
|
|
117
|
+
|
|
118
|
+
octahedron.rotation.y = -t * 0.4;
|
|
119
|
+
octahedron.rotation.z = t * 0.2;
|
|
120
|
+
|
|
121
|
+
// Breathing torus
|
|
122
|
+
const s = 1 + 0.15 * Math.sin(t * 1.5);
|
|
123
|
+
torus.scale.set(s, s, s);
|
|
124
|
+
|
|
125
|
+
// Slow particle rotation
|
|
126
|
+
particles.rotation.y = t * 0.05;
|
|
127
|
+
particles.rotation.x = t * 0.02;
|
|
128
|
+
|
|
129
|
+
renderer.render(scene, camera);
|
|
130
|
+
}
|
|
131
|
+
animate();
|
|
132
|
+
|
|
133
|
+
return { ro: ro };
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
function cleanup(refs) {
|
|
137
|
+
if (frameId) cancelAnimationFrame(frameId);
|
|
138
|
+
if (refs && refs.ro) refs.ro.disconnect();
|
|
139
|
+
if (renderer) {
|
|
140
|
+
renderer.dispose();
|
|
141
|
+
renderer.forceContextLoss();
|
|
142
|
+
}
|
|
143
|
+
scene = camera = renderer = frameId = null;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
// Watch for the welcome modal's image and replace it
|
|
147
|
+
let refs = null;
|
|
148
|
+
const observer = new MutationObserver(function (mutations) {
|
|
149
|
+
for (const m of mutations) {
|
|
150
|
+
for (const node of m.addedNodes) {
|
|
151
|
+
if (!(node instanceof HTMLElement)) continue;
|
|
152
|
+
const img = node.querySelector
|
|
153
|
+
? node.querySelector('img[src*="omni-welcome"], img[src*="huggingchat"]')
|
|
154
|
+
: null;
|
|
155
|
+
if (img) {
|
|
156
|
+
const container = document.createElement("div");
|
|
157
|
+
container.style.width = "100%";
|
|
158
|
+
container.style.height = "320px";
|
|
159
|
+
container.style.position = "relative";
|
|
160
|
+
container.style.overflow = "hidden";
|
|
161
|
+
container.style.borderRadius = "12px";
|
|
162
|
+
img.parentNode.replaceChild(container, img);
|
|
163
|
+
initScene(container).then(function (r) { refs = r; });
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
// Detect modal removal → cleanup
|
|
167
|
+
for (const node of m.removedNodes) {
|
|
168
|
+
if (!(node instanceof HTMLElement)) continue;
|
|
169
|
+
if (node.querySelector && node.querySelector("canvas")) {
|
|
170
|
+
cleanup(refs);
|
|
171
|
+
refs = null;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
});
|
|
176
|
+
|
|
177
|
+
if (document.body) {
|
|
178
|
+
observer.observe(document.body, { childList: true, subtree: true });
|
|
179
|
+
} else {
|
|
180
|
+
document.addEventListener("DOMContentLoaded", function () {
|
|
181
|
+
observer.observe(document.body, { childList: true, subtree: true });
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
})();
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: add-model-descriptions
|
|
3
|
+
description: Add descriptions for new models from the HuggingFace router to chat-ui configuration. Use when new models are released on the router and need descriptions added to prod.yaml and dev.yaml. Triggers on requests like "add new model descriptions", "update models from router", "sync models", or when explicitly invoking /add-model-descriptions.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Add Model Descriptions
|
|
7
|
+
|
|
8
|
+
Add descriptions for new models available in the HuggingFace router to chat-ui's prod.yaml and dev.yaml.
|
|
9
|
+
|
|
10
|
+
## Workflow
|
|
11
|
+
|
|
12
|
+
1. **Fetch models from router**
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
WebFetch https://router.huggingface.co/v1/models
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Extract all model IDs from the response.
|
|
19
|
+
|
|
20
|
+
2. **Read current configuration**
|
|
21
|
+
|
|
22
|
+
- Read `chart/env/prod.yaml`
|
|
23
|
+
- Extract model IDs from the `MODELS` JSON array in `envVars`
|
|
24
|
+
|
|
25
|
+
3. **Identify missing models**
|
|
26
|
+
Compare router models with prod.yaml. Missing = in router but not in prod.yaml.
|
|
27
|
+
|
|
28
|
+
4. **Research each missing model**
|
|
29
|
+
For each missing model, search the web for its specifications:
|
|
30
|
+
|
|
31
|
+
- Model architecture (dense, MoE, parameters)
|
|
32
|
+
- Key capabilities (coding, reasoning, vision, multilingual, etc.)
|
|
33
|
+
- Target use cases
|
|
34
|
+
|
|
35
|
+
5. **Write descriptions**
|
|
36
|
+
Match existing style:
|
|
37
|
+
|
|
38
|
+
- 8-12 words
|
|
39
|
+
- Sentence fragments (no period needed)
|
|
40
|
+
- No articles ("a", "the") unless necessary
|
|
41
|
+
- Focus on: architecture, specialization, key capability
|
|
42
|
+
|
|
43
|
+
Examples:
|
|
44
|
+
|
|
45
|
+
- `"Flagship GLM MoE for coding, reasoning, and agentic tool use."`
|
|
46
|
+
- `"MoE agent model with multilingual coding and fast outputs."`
|
|
47
|
+
- `"Vision-language Qwen for documents, GUI agents, and visual reasoning."`
|
|
48
|
+
- `"Mobile agent for multilingual Android device automation."`
|
|
49
|
+
|
|
50
|
+
6. **Update both files**
|
|
51
|
+
Add new models at the TOP of the MODELS array in:
|
|
52
|
+
|
|
53
|
+
- `chart/env/prod.yaml`
|
|
54
|
+
- `chart/env/dev.yaml`
|
|
55
|
+
|
|
56
|
+
Format:
|
|
57
|
+
|
|
58
|
+
```json
|
|
59
|
+
{ "id": "org/model-name", "description": "Description here." }
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
7. **Commit changes**
|
|
63
|
+
```
|
|
64
|
+
git add chart/env/prod.yaml chart/env/dev.yaml
|
|
65
|
+
git commit -m "feat: add descriptions for N new models from router"
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Notes
|
|
69
|
+
|
|
70
|
+
- FP8 variants: describe as "FP8 [base model] for efficient inference with [key capability]"
|
|
71
|
+
- Vision models: mention "vision-language" and key visual tasks
|
|
72
|
+
- Agent models: mention "agent" and automation capabilities
|
|
73
|
+
- Regional models: mention language focus (e.g., "European multilingual", "Southeast Asian")
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
FROM mcr.microsoft.com/devcontainers/typescript-node:1-22-bookworm
|
|
2
|
+
|
|
3
|
+
# Install MongoDB tools (mongosh, mongorestore, mongodump) directly from MongoDB repository
|
|
4
|
+
RUN curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | gpg --dearmor -o /usr/share/keyrings/mongodb-server-8.0.gpg && \
|
|
5
|
+
echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] http://repo.mongodb.org/apt/debian bookworm/mongodb-org/8.0 main" | tee /etc/apt/sources.list.d/mongodb-org-8.0.list && \
|
|
6
|
+
apt-get update && \
|
|
7
|
+
apt-get install -y mongodb-mongosh mongodb-database-tools vim && \
|
|
8
|
+
apt-get autoremove -y && \
|
|
9
|
+
rm -rf /var/lib/apt/lists/*
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
|
|
2
|
+
// README at: https://github.com/devcontainers/templates/tree/main/src/typescript-node
|
|
3
|
+
{
|
|
4
|
+
"name": "Node.js & TypeScript",
|
|
5
|
+
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
|
|
6
|
+
"build": {
|
|
7
|
+
"dockerfile": "Dockerfile"
|
|
8
|
+
},
|
|
9
|
+
|
|
10
|
+
"customizations": {
|
|
11
|
+
"vscode": {
|
|
12
|
+
"extensions": ["esbenp.prettier-vscode", "dbaeumer.vscode-eslint", "svelte.svelte-vscode"]
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
|
|
16
|
+
"features": {
|
|
17
|
+
// Install docker in container
|
|
18
|
+
"ghcr.io/devcontainers/features/docker-in-docker:2": {
|
|
19
|
+
// Use proprietary docker engine. I get a timeout error when using the default moby engine and loading
|
|
20
|
+
// microsoft's PGP keys
|
|
21
|
+
"moby": false
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// Use 'forwardPorts' to make a list of ports inside the container available locally.
|
|
26
|
+
// "forwardPorts": [],
|
|
27
|
+
|
|
28
|
+
// Use 'postCreateCommand' to run commands after the container is created.
|
|
29
|
+
// "postCreateCommand": "yarn install",
|
|
30
|
+
|
|
31
|
+
// Configure tool-specific properties.
|
|
32
|
+
// "customizations": {},
|
|
33
|
+
|
|
34
|
+
// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
|
|
35
|
+
// "remoteUser": "root"
|
|
36
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
Dockerfile
|
|
2
|
+
.vscode/
|
|
3
|
+
.idea
|
|
4
|
+
.gitignore
|
|
5
|
+
LICENSE
|
|
6
|
+
README.md
|
|
7
|
+
node_modules/
|
|
8
|
+
.svelte-kit/
|
|
9
|
+
.env*
|
|
10
|
+
!.env
|
|
11
|
+
.env.local
|
|
12
|
+
db
|
|
13
|
+
# NOTE: previously had `models/**` here to ignore a top-level placeholder
|
|
14
|
+
# directory. Even when anchored (`/models/**`), Docker's pattern matcher
|
|
15
|
+
# was eliding nested src/routes/api/v2/models/ and src/routes/models/
|
|
16
|
+
# from the build context, producing prod images missing those routes.
|
|
17
|
+
# The placeholder dir is small (single .txt) — letting it through is fine.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
root: true,
|
|
3
|
+
parser: "@typescript-eslint/parser",
|
|
4
|
+
extends: [
|
|
5
|
+
"eslint:recommended",
|
|
6
|
+
"plugin:@typescript-eslint/recommended",
|
|
7
|
+
"plugin:svelte/recommended",
|
|
8
|
+
"prettier",
|
|
9
|
+
],
|
|
10
|
+
plugins: ["@typescript-eslint"],
|
|
11
|
+
ignorePatterns: ["*.cjs"],
|
|
12
|
+
overrides: [
|
|
13
|
+
{
|
|
14
|
+
files: ["*.svelte"],
|
|
15
|
+
parser: "svelte-eslint-parser",
|
|
16
|
+
parserOptions: {
|
|
17
|
+
parser: "@typescript-eslint/parser",
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
],
|
|
21
|
+
parserOptions: {
|
|
22
|
+
sourceType: "module",
|
|
23
|
+
ecmaVersion: 2020,
|
|
24
|
+
extraFileExtensions: [".svelte"],
|
|
25
|
+
},
|
|
26
|
+
rules: {
|
|
27
|
+
"no-empty": "off",
|
|
28
|
+
"require-yield": "off",
|
|
29
|
+
"@typescript-eslint/no-explicit-any": "error",
|
|
30
|
+
"@typescript-eslint/no-non-null-assertion": "error",
|
|
31
|
+
"@typescript-eslint/no-unused-vars": [
|
|
32
|
+
// prevent variables with a _ prefix from being marked as unused
|
|
33
|
+
"error",
|
|
34
|
+
{
|
|
35
|
+
argsIgnorePattern: "^_",
|
|
36
|
+
},
|
|
37
|
+
],
|
|
38
|
+
"object-shorthand": ["error", "always"],
|
|
39
|
+
},
|
|
40
|
+
env: {
|
|
41
|
+
browser: true,
|
|
42
|
+
es2017: true,
|
|
43
|
+
node: true,
|
|
44
|
+
},
|
|
45
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# gcloud builds submit upload filter.
|
|
2
|
+
# Without this file, gcloud falls back to .gitignore, which has
|
|
3
|
+
# `models/*` (line 16) — that excludes src/routes/api/v2/models/*
|
|
4
|
+
# and src/routes/models/* from the build context, producing
|
|
5
|
+
# production images missing those SvelteKit routes (root cause
|
|
6
|
+
# of /api/v2/models 404 → /favicon 500 → / 500 in Cloud Run).
|
|
7
|
+
|
|
8
|
+
.git/
|
|
9
|
+
.gitignore
|
|
10
|
+
.dockerignore
|
|
11
|
+
.gcloudignore
|
|
12
|
+
node_modules/
|
|
13
|
+
.svelte-kit/
|
|
14
|
+
build/
|
|
15
|
+
.env.local
|
|
16
|
+
.vscode/
|
|
17
|
+
.idea/
|
|
18
|
+
*.log
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Bug Report (chat-ui)
|
|
3
|
+
about: Use this for confirmed issues with chat-ui
|
|
4
|
+
title: ""
|
|
5
|
+
labels: bug
|
|
6
|
+
assignees: ""
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Bug description
|
|
10
|
+
|
|
11
|
+
<!-- A clear and concise description of what the bug is. -->
|
|
12
|
+
|
|
13
|
+
## Steps to reproduce
|
|
14
|
+
|
|
15
|
+
<!-- Steps to reproduce the issue -->
|
|
16
|
+
|
|
17
|
+
## Screenshots
|
|
18
|
+
|
|
19
|
+
<!-- If applicable, add screenshots to help explain your problem. -->
|
|
20
|
+
|
|
21
|
+
## Context
|
|
22
|
+
|
|
23
|
+
### Logs
|
|
24
|
+
|
|
25
|
+
<!-- Add any logs that are relevant to your issue. Could be browser or server logs. Wrap in code blocks. -->
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
// logs here if relevant
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Specs
|
|
32
|
+
|
|
33
|
+
- **OS**:
|
|
34
|
+
- **Browser**:
|
|
35
|
+
- **chat-ui commit**:
|
|
36
|
+
|
|
37
|
+
### Config
|
|
38
|
+
|
|
39
|
+
<!-- Add the environment variables you've used to setup chat-ui, making sure to redact any secrets. -->
|
|
40
|
+
|
|
41
|
+
## Notes
|
|
42
|
+
|
|
43
|
+
<!-- Anything else relevant to help the issue get solved -->
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Config Support
|
|
3
|
+
about: Help with setting up chat-ui locally
|
|
4
|
+
title: ""
|
|
5
|
+
labels: support
|
|
6
|
+
assignees: ""
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
**Please use the discussions on GitHub** for getting help with setting things up instead of opening an issue: https://github.com/huggingface/chat-ui/discussions
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Feature Request (chat-ui)
|
|
3
|
+
about: Suggest new features to be added to chat-ui
|
|
4
|
+
title: ""
|
|
5
|
+
labels: enhancement
|
|
6
|
+
assignees: ""
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Describe your feature request
|
|
10
|
+
|
|
11
|
+
<!-- Short description of what this is about -->
|
|
12
|
+
|
|
13
|
+
## Screenshots (if relevant)
|
|
14
|
+
|
|
15
|
+
## Implementation idea
|
|
16
|
+
|
|
17
|
+
<!-- If you know how this should be implemented in the codebase, share your thoughts. Let us know if you feel like implementing it yourself as well! -->
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: HuggingChat
|
|
3
|
+
about: Requests & reporting outages on HuggingChat, the hosted version of chat-ui.
|
|
4
|
+
title: ""
|
|
5
|
+
labels: huggingchat
|
|
6
|
+
assignees: ""
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
**Do not use GitHub issues** for requesting models on HuggingChat or reporting issues with HuggingChat being down/overloaded.
|
|
10
|
+
|
|
11
|
+
**Use the discussions page on the hub instead:** https://huggingface.co/spaces/huggingchat/chat-ui/discussions
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
name: Build documentation
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
- v*-release
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
build:
|
|
11
|
+
uses: huggingface/doc-builder/.github/workflows/build_main_documentation.yml@main
|
|
12
|
+
with:
|
|
13
|
+
commit_sha: ${{ github.sha }}
|
|
14
|
+
package: chat-ui
|
|
15
|
+
additional_args: --not_python_module
|
|
16
|
+
secrets:
|
|
17
|
+
token: ${{ secrets.HUGGINGFACE_PUSH }}
|
|
18
|
+
hf_token: ${{ secrets.HF_DOC_BUILD_PUSH }}
|