@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,144 @@
|
|
|
1
|
+
@import "./highlight-js.css";
|
|
2
|
+
|
|
3
|
+
@tailwind base;
|
|
4
|
+
@tailwind components;
|
|
5
|
+
@tailwind utilities;
|
|
6
|
+
|
|
7
|
+
html,
|
|
8
|
+
body {
|
|
9
|
+
overscroll-behavior: none;
|
|
10
|
+
touch-action: pan-x pan-y;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
@layer components {
|
|
14
|
+
.btn {
|
|
15
|
+
@apply inline-flex flex-shrink-0 cursor-pointer select-none items-center justify-center whitespace-nowrap outline-none transition-all focus:ring disabled:cursor-default;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.active-model {
|
|
19
|
+
/* Ensure active border wins over defaults/utilities in both themes */
|
|
20
|
+
@apply !border-black dark:!border-white/60;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.file-hoverable {
|
|
24
|
+
@apply hover:bg-gray-500/10;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.base-tool {
|
|
28
|
+
@apply flex h-[1.6rem] items-center gap-[.2rem] whitespace-nowrap border border-transparent text-xs outline-none transition-all focus:outline-none active:outline-none dark:hover:text-gray-300 sm:hover:text-purple-600;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.active-tool {
|
|
32
|
+
@apply rounded-full !border-purple-200 bg-purple-100 pl-1 pr-2 text-purple-600 hover:text-purple-600 dark:!border-purple-700 dark:bg-purple-600/40 dark:text-purple-200;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
@layer utilities {
|
|
37
|
+
/* your existing utilities */
|
|
38
|
+
.scrollbar-custom {
|
|
39
|
+
@apply scrollbar-thin scrollbar-track-transparent scrollbar-thumb-black/10 scrollbar-thumb-rounded-full scrollbar-w-1 hover:scrollbar-thumb-black/20 dark:scrollbar-thumb-white/10 dark:hover:scrollbar-thumb-white/20;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.scrollbar-custom::-webkit-scrollbar {
|
|
43
|
+
background-color: transparent;
|
|
44
|
+
width: 8px;
|
|
45
|
+
height: 8px;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.scrollbar-custom::-webkit-scrollbar-thumb {
|
|
49
|
+
background-color: rgba(0, 0, 0, 0.1);
|
|
50
|
+
border-radius: 9999px;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.dark .scrollbar-custom::-webkit-scrollbar {
|
|
54
|
+
background-color: rgba(17, 17, 17, 0.85);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.dark .scrollbar-custom::-webkit-scrollbar-thumb {
|
|
58
|
+
background-color: rgba(255, 255, 255, 0.1);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/* Rounded top/bottom caps for vertical scrollbars (Chrome/Edge/Safari) */
|
|
62
|
+
.scrollbar-custom::-webkit-scrollbar-track {
|
|
63
|
+
@apply rounded-full bg-clip-padding; /* clip bg to padding so caps look round */
|
|
64
|
+
/* space for the end caps — tweak with Tailwind spacing */
|
|
65
|
+
border-top: theme("spacing.2") solid transparent; /* 0.5rem */
|
|
66
|
+
border-bottom: theme("spacing.2") solid transparent; /* 0.5rem */
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/* Rounded left/right caps for horizontal scrollbars */
|
|
70
|
+
.scrollbar-custom::-webkit-scrollbar-track:horizontal {
|
|
71
|
+
@apply rounded-full bg-clip-padding;
|
|
72
|
+
border-left: theme("spacing.2") solid transparent;
|
|
73
|
+
border-right: theme("spacing.2") solid transparent;
|
|
74
|
+
border-top-width: 0;
|
|
75
|
+
border-bottom-width: 0;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.no-scrollbar {
|
|
79
|
+
@apply [-ms-overflow-style:none] [scrollbar-width:none] [&::-ms-scrollbar]:hidden [&::-webkit-scrollbar]:hidden;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.prose table {
|
|
83
|
+
@apply block max-w-full overflow-x-auto scrollbar-thin scrollbar-track-transparent scrollbar-thumb-black/10 scrollbar-thumb-rounded-full scrollbar-w-1 hover:scrollbar-thumb-black/20 dark:scrollbar-thumb-white/10 dark:hover:scrollbar-thumb-white/20;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/* .scrollbar-custom {
|
|
87
|
+
@apply scrollbar-thin scrollbar-track-transparent scrollbar-thumb-black/10 scrollbar-thumb-rounded-full scrollbar-w-1 hover:scrollbar-thumb-black/20 dark:scrollbar-thumb-white/10 dark:hover:scrollbar-thumb-white/20;
|
|
88
|
+
} */
|
|
89
|
+
.prose hr {
|
|
90
|
+
@apply my-4;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.prose strong {
|
|
94
|
+
@apply font-medium;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.prose pre {
|
|
98
|
+
@apply border-[0.5px] bg-white text-gray-600 dark:border-gray-700 dark:!bg-gray-900 dark:bg-inherit dark:text-inherit;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.prose code:not(pre code) {
|
|
102
|
+
@apply rounded-md bg-gray-200/60 px-[0.4em] py-[0.2em] text-[85%] dark:bg-gray-700;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.prose code:not(pre code)::before,
|
|
106
|
+
.prose code:not(pre code)::after {
|
|
107
|
+
content: none;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/* Override prose-sm title sizes - 75% of original */
|
|
111
|
+
.prose-sm :where(h1):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
|
|
112
|
+
font-size: 1.6em; /* 75% */
|
|
113
|
+
@apply font-semibold;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.prose-sm :where(h2):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
|
|
117
|
+
font-size: 1.07em; /* 75% */
|
|
118
|
+
@apply font-semibold;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.prose-sm :where(h3):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
|
|
122
|
+
font-size: 0.96em; /* 75% */
|
|
123
|
+
@apply font-semibold;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.prose-sm :where(h4):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
|
|
127
|
+
font-size: 0.8em; /* 75% */
|
|
128
|
+
@apply font-semibold;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.prose-sm :where(h5):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
|
|
132
|
+
font-size: 0.75em; /* 75% */
|
|
133
|
+
@apply font-semibold;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
.prose-sm :where(h6):not(:where([class~="not-prose"], [class~="not-prose"] *)) {
|
|
137
|
+
font-size: 0.7em; /* 75% */
|
|
138
|
+
@apply font-semibold;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.katex-display {
|
|
143
|
+
overflow: auto hidden;
|
|
144
|
+
}
|
|
Binary file
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M16.0002 29.3301C13.1016 29.3297 10.2821 28.3845 7.9689 26.6377C5.65573 24.891 3.97496 22.4378 3.18129 19.6499C2.38763 16.8621 2.52431 13.8915 3.57063 11.1883C4.61695 8.48512 6.51588 6.19665 8.97969 4.66967C11.4435 3.14268 14.3379 2.46041 17.2243 2.72623C20.1107 2.99205 22.8318 4.19147 24.9753 6.14275C27.1188 8.09404 28.5678 10.6908 29.1028 13.5396C29.6379 16.3885 29.2297 19.3341 27.9402 21.9301C27.6926 22.4037 27.6285 22.9521 27.7602 23.4701L28.5602 26.4401C28.6392 26.7336 28.6394 27.0427 28.5609 27.3364C28.4823 27.63 28.3278 27.8978 28.1129 28.1127C27.898 28.3277 27.6302 28.4822 27.3365 28.5607C27.0429 28.6392 26.7338 28.639 26.4402 28.5601L23.4702 27.7601C22.9554 27.6309 22.411 27.695 21.9402 27.9401C20.0902 28.8601 18.0602 29.3401 16.0002 29.3401V29.3301Z" fill="white"/>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M16.0002 29.3301C13.1016 29.3297 10.2821 28.3845 7.9689 26.6377C5.65573 24.891 3.97496 22.4378 3.18129 19.6499C2.38763 16.8621 2.52431 13.8915 3.57063 11.1883C4.61695 8.48512 6.51588 6.19665 8.97969 4.66967C11.4435 3.14268 14.3379 2.46041 17.2243 2.72623C20.1107 2.99205 22.8318 4.19147 24.9753 6.14275C27.1188 8.09404 28.5678 10.6908 29.1028 13.5396C29.6379 16.3885 29.2297 19.3341 27.9402 21.9301C27.6926 22.4037 27.6285 22.9521 27.7602 23.4701L28.5602 26.4401C28.6392 26.7336 28.6394 27.0427 28.5609 27.3364C28.4823 27.63 28.3278 27.8978 28.1129 28.1127C27.898 28.3277 27.6302 28.4822 27.3365 28.5607C27.0429 28.6392 26.7338 28.639 26.4402 28.5601L23.4702 27.7601C22.9554 27.6309 22.411 27.695 21.9402 27.9401C20.0902 28.8601 18.0602 29.3401 16.0002 29.3401V29.3301Z" fill="#FFD21E"/>
|
|
3
|
+
</svg>
|
|
Binary file
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M16.0002 29.3301C13.1016 29.3297 10.2821 28.3845 7.9689 26.6377C5.65573 24.891 3.97496 22.4378 3.18129 19.6499C2.38763 16.8621 2.52431 13.8915 3.57063 11.1883C4.61695 8.48512 6.51588 6.19665 8.97969 4.66967C11.4435 3.14268 14.3379 2.46041 17.2243 2.72623C20.1107 2.99205 22.8318 4.19147 24.9753 6.14275C27.1188 8.09404 28.5678 10.6908 29.1028 13.5396C29.6379 16.3885 29.2297 19.3341 27.9402 21.9301C27.6926 22.4037 27.6285 22.9521 27.7602 23.4701L28.5602 26.4401C28.6392 26.7336 28.6394 27.0427 28.5609 27.3364C28.4823 27.63 28.3278 27.8978 28.1129 28.1127C27.898 28.3277 27.6302 28.4822 27.3365 28.5607C27.0429 28.6392 26.7338 28.639 26.4402 28.5601L23.4702 27.7601C22.9554 27.6309 22.411 27.695 21.9402 27.9401C20.0902 28.8601 18.0602 29.3401 16.0002 29.3401V29.3301Z" fill="black"/>
|
|
3
|
+
</svg>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M16.0002 29.3301C13.1016 29.3297 10.2821 28.3845 7.9689 26.6377C5.65573 24.891 3.97496 22.4378 3.18129 19.6499C2.38763 16.8621 2.52431 13.8915 3.57063 11.1883C4.61695 8.48512 6.51588 6.19665 8.97969 4.66967C11.4435 3.14268 14.3379 2.46041 17.2243 2.72623C20.1107 2.99205 22.8318 4.19147 24.9753 6.14275C27.1188 8.09404 28.5678 10.6908 29.1028 13.5396C29.6379 16.3885 29.2297 19.3341 27.9402 21.9301C27.6926 22.4037 27.6285 22.9521 27.7602 23.4701L28.5602 26.4401C28.6392 26.7336 28.6394 27.0427 28.5609 27.3364C28.4823 27.63 28.3278 27.8978 28.1129 28.1127C27.898 28.3277 27.6302 28.4822 27.3365 28.5607C27.0429 28.6392 26.7338 28.639 26.4402 28.5601L23.4702 27.7601C22.9554 27.6309 22.411 27.695 21.9402 27.9401C20.0902 28.8601 18.0602 29.3401 16.0002 29.3401V29.3301Z" fill="black"/>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M4 18c2-3 4-5 7-5s5 3 7 3 4-2 7-2c1.5 0 3 .5 3 .5" stroke="black" stroke-width="2.5" stroke-linecap="round" fill="none"/>
|
|
3
|
+
<path d="M4 22c2-3 4-5 7-5s5 3 7 3 4-2 7-2c1.5 0 3 .5 3 .5" stroke="black" stroke-width="2.5" stroke-linecap="round" fill="none" opacity="0.5"/>
|
|
4
|
+
<circle cx="8" cy="10" r="2" fill="black"/>
|
|
5
|
+
<circle cx="16" cy="7" r="1.5" fill="black" opacity="0.6"/>
|
|
6
|
+
<circle cx="23" cy="10" r="1" fill="black" opacity="0.4"/>
|
|
7
|
+
</svg>
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"background_color": "#ffffff",
|
|
3
|
+
"name": "ChatUI",
|
|
4
|
+
"short_name": "ChatUI",
|
|
5
|
+
"display": "standalone",
|
|
6
|
+
"start_url": "/chat",
|
|
7
|
+
"icons": [
|
|
8
|
+
{
|
|
9
|
+
"src": "/chat/chatui/icon-36x36.png",
|
|
10
|
+
"sizes": "36x36",
|
|
11
|
+
"type": "image/png"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"src": "/chat/chatui/icon-48x48.png",
|
|
15
|
+
"sizes": "48x48",
|
|
16
|
+
"type": "image/png"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"src": "/chat/chatui/icon-72x72.png",
|
|
20
|
+
"sizes": "72x72",
|
|
21
|
+
"type": "image/png"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"src": "/chat/chatui/icon-96x96.png",
|
|
25
|
+
"sizes": "96x96",
|
|
26
|
+
"type": "image/png"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"src": "/chat/chatui/icon-128x128.png",
|
|
30
|
+
"sizes": "128x128",
|
|
31
|
+
"type": "image/png"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"src": "/chat/chatui/icon-144x144.png",
|
|
35
|
+
"sizes": "144x144",
|
|
36
|
+
"type": "image/png"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"src": "/chat/chatui/icon-192x192.png",
|
|
40
|
+
"sizes": "192x192",
|
|
41
|
+
"type": "image/png"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"src": "/chat/chatui/icon-256x256.png",
|
|
45
|
+
"sizes": "256x256",
|
|
46
|
+
"type": "image/png"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"src": "/chat/chatui/icon-512x512.png",
|
|
50
|
+
"sizes": "512x512",
|
|
51
|
+
"type": "image/png"
|
|
52
|
+
}
|
|
53
|
+
]
|
|
54
|
+
}
|
|
Binary file
|
|
Binary file
|
|
@@ -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 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="480" height="320"><defs><filter id="glow" x="-50%" y="-50%" width="200%" height="200%"><feGaussianBlur stdDeviation="3" result="blur"/><feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge></filter><filter id="textglow" x="-50%" y="-50%" width="200%" height="200%"><feGaussianBlur stdDeviation="6" result="blur"/><feMerge><feMergeNode in="blur"/><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge></filter><radialGradient id="nebula" cx="50%" cy="40%" r="60%"><stop offset="0%" stop-color="#1e1b4b" stop-opacity="0.3"/><stop offset="50%" stop-color="#0c0a2a" stop-opacity="0.15"/><stop offset="100%" stop-color="#06060f" stop-opacity="0"/></radialGradient></defs><rect width="480" height="320" fill="#06060f"/><rect width="480" height="320" fill="url(#nebula)"/><circle cx="468.9" cy="64.2" r="0.6" fill="white" opacity="0.41"/><circle cx="2.0" cy="244.5" r="1.2" fill="white" opacity="0.56"/><circle cx="402.0" cy="95.1" r="1.5" fill="white" opacity="0.60"/><circle cx="19.1" cy="255.9" r="0.9" fill="white" opacity="0.49"/><circle cx="60.1" cy="89.5" r="1.3" fill="white" opacity="0.45"/><circle cx="134.1" cy="38.9" r="1.7" fill="white" opacity="0.45"/><circle cx="6.1" cy="156.1" r="1.0" fill="white" opacity="0.51"/><circle cx="84.4" cy="243.2" r="1.7" fill="white" opacity="0.69"/><circle cx="60.4" cy="152.6" r="0.4" fill="white" opacity="0.72"/><circle cx="11.5" cy="240.0" r="1.5" fill="white" opacity="0.58"/><circle cx="274.0" cy="33.8" r="0.6" fill="white" opacity="0.72"/><circle cx="229.8" cy="96.3" r="1.0" fill="white" opacity="0.44"/><circle cx="1.6" cy="163.7" r="0.9" fill="white" opacity="0.42"/><circle cx="270.6" cy="3.6" r="0.7" fill="white" opacity="0.78"/><circle cx="143.7" cy="122.6" r="1.1" fill="white" opacity="0.82"/><circle cx="436.3" cy="176.9" r="1.5" fill="white" opacity="0.65"/><circle cx="428.6" cy="86.0" r="0.9" fill="white" opacity="0.10"/><circle cx="135.8" cy="85.4" r="1.0" fill="white" opacity="0.71"/><circle cx="420.1" cy="271.1" r="0.5" fill="white" opacity="0.35"/><circle cx="262.6" cy="226.6" r="0.9" fill="white" opacity="0.73"/><circle cx="25.2" cy="30.4" r="1.4" fill="white" opacity="0.70"/><circle cx="195.2" cy="159.6" r="0.6" fill="white" opacity="0.68"/><circle cx="34.0" cy="219.2" r="1.1" fill="white" opacity="0.32"/><circle cx="411.1" cy="134.0" r="1.6" fill="white" opacity="0.64"/><circle cx="410.8" cy="208.3" r="0.4" fill="white" opacity="0.49"/><circle cx="469.9" cy="145.3" r="1.8" fill="white" opacity="0.81"/><circle cx="430.3" cy="96.8" r="1.7" fill="white" opacity="0.17"/><circle cx="230.6" cy="50.1" r="0.6" fill="white" opacity="0.15"/><circle cx="219.1" cy="46.9" r="1.4" fill="white" opacity="0.79"/><circle cx="178.4" cy="10.9" r="1.5" fill="white" opacity="0.20"/><circle cx="473.9" cy="287.3" r="1.3" fill="white" opacity="0.22"/><circle cx="287.7" cy="250.2" r="0.4" fill="white" opacity="0.29"/><circle cx="363.2" cy="201.5" r="1.8" fill="white" opacity="0.53"/><circle cx="106.8" cy="91.3" r="1.2" fill="white" opacity="0.59"/><circle cx="477.9" cy="153.9" r="1.4" fill="white" opacity="0.13"/><circle cx="35.4" cy="204.5" r="0.4" fill="white" opacity="0.68"/><circle cx="23.4" cy="47.1" r="1.3" fill="white" opacity="0.48"/><circle cx="267.4" cy="313.0" r="0.4" fill="white" opacity="0.73"/><circle cx="449.3" cy="78.7" r="0.4" fill="white" opacity="0.59"/><circle cx="357.7" cy="218.5" r="0.8" fill="white" opacity="0.55"/><circle cx="376.6" cy="264.4" r="1.3" fill="white" opacity="0.60"/><circle cx="238.8" cy="244.2" r="0.9" fill="white" opacity="0.64"/><circle cx="340.9" cy="303.9" r="1.1" fill="white" opacity="0.64"/><circle cx="278.7" cy="64.8" r="0.3" fill="white" opacity="0.80"/><circle cx="121.2" cy="205.9" r="1.0" fill="white" opacity="0.41"/><circle cx="49.7" cy="190.3" r="1.7" fill="white" opacity="0.54"/><circle cx="383.2" cy="63.7" r="0.9" fill="white" opacity="0.82"/><circle cx="190.9" cy="89.0" r="0.9" fill="white" opacity="0.75"/><circle cx="315.2" cy="89.0" r="1.6" fill="white" opacity="0.31"/><circle cx="453.1" cy="0.9" r="1.1" fill="white" opacity="0.70"/><circle cx="265.3" cy="139.7" r="0.4" fill="white" opacity="0.39"/><circle cx="234.7" cy="58.5" r="0.5" fill="white" opacity="0.14"/><circle cx="329.9" cy="167.3" r="1.7" fill="white" opacity="0.57"/><circle cx="29.8" cy="291.0" r="0.7" fill="white" opacity="0.64"/><circle cx="294.1" cy="128.1" r="1.2" fill="white" opacity="0.10"/><circle cx="94.8" cy="309.8" r="0.9" fill="white" opacity="0.48"/><circle cx="435.8" cy="42.8" r="1.0" fill="white" opacity="0.73"/><circle cx="79.1" cy="143.2" r="0.3" fill="white" opacity="0.57"/><circle cx="101.1" cy="315.0" r="1.7" fill="white" opacity="0.39"/><circle cx="136.3" cy="64.8" r="1.8" fill="white" opacity="0.55"/><circle cx="180.6" cy="0.1" r="1.0" fill="white" opacity="0.19"/><circle cx="183.8" cy="37.5" r="1.7" fill="white" opacity="0.39"/><circle cx="261.2" cy="198.9" r="1.5" fill="white" opacity="0.50"/><circle cx="75.5" cy="16.7" r="1.3" fill="white" opacity="0.70"/><circle cx="57.2" cy="244.9" r="1.7" fill="white" opacity="0.63"/><circle cx="461.1" cy="302.2" r="1.5" fill="white" opacity="0.56"/><circle cx="286.5" cy="262.7" r="1.0" fill="white" opacity="0.44"/><circle cx="88.8" cy="32.8" r="0.9" fill="white" opacity="0.87"/><circle cx="332.3" cy="3.8" r="0.9" fill="white" opacity="0.38"/><circle cx="202.4" cy="86.3" r="0.7" fill="white" opacity="0.74"/><circle cx="188.0" cy="217.8" r="1.4" fill="white" opacity="0.63"/><circle cx="24.4" cy="148.1" r="0.4" fill="white" opacity="0.47"/><circle cx="472.7" cy="208.3" r="1.0" fill="white" opacity="0.76"/><circle cx="469.7" cy="114.4" r="0.6" fill="white" opacity="0.25"/><circle cx="4.0" cy="308.7" r="0.9" fill="white" opacity="0.41"/><circle cx="62.9" cy="204.4" r="0.6" fill="white" opacity="0.24"/><circle cx="407.4" cy="188.6" r="1.1" fill="white" opacity="0.50"/><circle cx="244.7" cy="278.8" r="1.8" fill="white" opacity="0.48"/><circle cx="202.4" cy="46.4" r="1.8" fill="white" opacity="0.88"/><circle cx="29.9" cy="219.8" r="1.1" fill="white" opacity="0.75"/><line x1="240.0" y1="122.0" x2="142.3" y2="81.4" stroke="#3b82f6" stroke-opacity="0.65" stroke-width="0.8"/><circle cx="240.0" cy="122.0" r="1.5" fill="#60a5fa" opacity="0.7" filter="url(#glow)"/><line x1="240.0" y1="122.0" x2="343.9" y2="89.4" stroke="#3b82f6" stroke-opacity="0.67" stroke-width="0.8"/><circle cx="240.0" cy="122.0" r="1.5" fill="#60a5fa" opacity="0.7" filter="url(#glow)"/><line x1="240.0" y1="122.0" x2="183.9" y2="197.4" stroke="#3b82f6" stroke-opacity="0.44" stroke-width="0.8"/><circle cx="240.0" cy="122.0" r="1.5" fill="#60a5fa" opacity="0.7" filter="url(#glow)"/><line x1="240.0" y1="122.0" x2="301.7" y2="207.1" stroke="#3b82f6" stroke-opacity="0.17" stroke-width="0.8"/><circle cx="240.0" cy="122.0" r="1.5" fill="#60a5fa" opacity="0.7" filter="url(#glow)"/><line x1="142.3" y1="81.4" x2="98.1" y2="159.3" stroke="#3b82f6" stroke-opacity="0.32" stroke-width="0.8"/><circle cx="137.8" cy="89.2" r="1.5" fill="#60a5fa" opacity="0.7" filter="url(#glow)"/><line x1="142.3" y1="81.4" x2="193.6" y2="54.1" stroke="#3b82f6" stroke-opacity="0.70" stroke-width="0.8"/><circle cx="147.4" cy="78.7" r="1.5" fill="#60a5fa" opacity="0.7" filter="url(#glow)"/><line x1="343.9" y1="89.4" x2="374.8" y2="172.4" stroke="#3b82f6" stroke-opacity="0.70" stroke-width="0.8"/><circle cx="350.1" cy="106.0" r="1.5" fill="#60a5fa" opacity="0.7" filter="url(#glow)"/><line x1="343.9" y1="89.4" x2="193.6" y2="54.1" stroke="#3b82f6" stroke-opacity="0.52" stroke-width="0.8"/><circle cx="313.9" cy="82.3" r="1.5" fill="#60a5fa" opacity="0.7" filter="url(#glow)"/><line x1="183.9" y1="197.4" x2="98.1" y2="159.3" stroke="#3b82f6" stroke-opacity="0.70" stroke-width="0.8"/><circle cx="158.1" cy="185.9" r="1.5" fill="#60a5fa" opacity="0.7" filter="url(#glow)"/><line x1="183.9" y1="197.4" x2="275.6" y2="262.7" stroke="#3b82f6" stroke-opacity="0.10" stroke-width="0.8"/><circle cx="211.4" cy="217.0" r="1.5" fill="#60a5fa" opacity="0.7" filter="url(#glow)"/><line x1="301.7" y1="207.1" x2="374.8" y2="172.4" stroke="#3b82f6" stroke-opacity="0.24" stroke-width="0.8"/><circle cx="330.9" cy="193.2" r="1.5" fill="#60a5fa" opacity="0.7" filter="url(#glow)"/><line x1="301.7" y1="207.1" x2="275.6" y2="262.7" stroke="#3b82f6" stroke-opacity="0.24" stroke-width="0.8"/><circle cx="291.2" cy="229.3" r="1.5" fill="#60a5fa" opacity="0.7" filter="url(#glow)"/><line x1="98.1" y1="159.3" x2="60.1" y2="238.9" stroke="#3b82f6" stroke-opacity="0.70" stroke-width="0.8"/><circle cx="79.1" cy="199.1" r="1.5" fill="#60a5fa" opacity="0.7" filter="url(#glow)"/><line x1="374.8" y1="172.4" x2="425.3" y2="245.4" stroke="#3b82f6" stroke-opacity="0.31" stroke-width="0.8"/><circle cx="405.1" cy="216.2" r="1.5" fill="#60a5fa" opacity="0.7" filter="url(#glow)"/><line x1="275.6" y1="262.7" x2="128.4" y2="275.3" stroke="#3b82f6" stroke-opacity="0.44" stroke-width="0.8"/><circle cx="157.8" cy="272.8" r="1.5" fill="#60a5fa" opacity="0.7" filter="url(#glow)"/><line x1="60.1" y1="238.9" x2="128.4" y2="275.3" stroke="#3b82f6" stroke-opacity="0.67" stroke-width="0.8"/><circle cx="121.6" cy="271.6" r="1.5" fill="#60a5fa" opacity="0.7" filter="url(#glow)"/><line x1="183.9" y1="197.4" x2="60.1" y2="238.9" stroke="#3b82f6" stroke-opacity="0.24" stroke-width="0.8"/><circle cx="146.8" cy="209.8" r="1.5" fill="#60a5fa" opacity="0.7" filter="url(#glow)"/><line x1="301.7" y1="207.1" x2="425.3" y2="245.4" stroke="#3b82f6" stroke-opacity="0.70" stroke-width="0.8"/><circle cx="351.1" cy="222.5" r="1.5" fill="#60a5fa" opacity="0.7" filter="url(#glow)"/><circle cx="240.0" cy="122.0" r="15.0" fill="#3b82f6" opacity="0.15"/><circle cx="240.0" cy="122.0" r="6" fill="#3b82f6" filter="url(#glow)"/><circle cx="142.3" cy="81.4" r="10.0" fill="#06b6d4" opacity="0.15"/><circle cx="142.3" cy="81.4" r="4" fill="#06b6d4" filter="url(#glow)"/><circle cx="343.9" cy="89.4" r="10.0" fill="#818cf8" opacity="0.15"/><circle cx="343.9" cy="89.4" r="4" fill="#818cf8" filter="url(#glow)"/><circle cx="183.9" cy="197.4" r="12.5" fill="#2dd4bf" opacity="0.15"/><circle cx="183.9" cy="197.4" r="5" fill="#2dd4bf" filter="url(#glow)"/><circle cx="301.7" cy="207.1" r="12.5" fill="#a78bfa" opacity="0.15"/><circle cx="301.7" cy="207.1" r="5" fill="#a78bfa" filter="url(#glow)"/><circle cx="98.1" cy="159.3" r="7.5" fill="#38bdf8" opacity="0.15"/><circle cx="98.1" cy="159.3" r="3" fill="#38bdf8" filter="url(#glow)"/><circle cx="374.8" cy="172.4" r="7.5" fill="#c084fc" opacity="0.15"/><circle cx="374.8" cy="172.4" r="3" fill="#c084fc" filter="url(#glow)"/><circle cx="193.6" cy="54.1" r="7.5" fill="#22d3ee" opacity="0.15"/><circle cx="193.6" cy="54.1" r="3" fill="#22d3ee" filter="url(#glow)"/><circle cx="275.6" cy="262.7" r="7.5" fill="#6366f1" opacity="0.15"/><circle cx="275.6" cy="262.7" r="3" fill="#6366f1" filter="url(#glow)"/><circle cx="60.1" cy="238.9" r="5.0" fill="#0ea5e9" opacity="0.15"/><circle cx="60.1" cy="238.9" r="2" fill="#0ea5e9" filter="url(#glow)"/><circle cx="425.3" cy="245.4" r="5.0" fill="#8b5cf6" opacity="0.15"/><circle cx="425.3" cy="245.4" r="2" fill="#8b5cf6" filter="url(#glow)"/><circle cx="128.4" cy="275.3" r="5.0" fill="#14b8a6" opacity="0.15"/><circle cx="128.4" cy="275.3" r="2" fill="#14b8a6" filter="url(#glow)"/><ellipse cx="240.0" cy="122.0" rx="45" ry="18" fill="none" stroke="#3b82f6" stroke-opacity="0.2" stroke-width="0.5" transform="rotate(0.0 240.0 122.0)"/><ellipse cx="240.0" cy="122.0" rx="55" ry="22" fill="none" stroke="#818cf8" stroke-opacity="0.15" stroke-width="0.5" transform="rotate(60.0 240.0 122.0)"/><text x="240" y="280" text-anchor="middle" font-family="'Segoe UI', 'Helvetica Neue', Arial, sans-serif" font-size="32" font-weight="300" fill="#e0e7ff" letter-spacing="8" filter="url(#textglow)">RuFlo</text><text x="240" y="300" text-anchor="middle" font-family="'Segoe UI', 'Helvetica Neue', Arial, sans-serif" font-size="9" fill="#94a3b8" letter-spacing="3" opacity="0.7">INTELLIGENT WORKFLOWS</text></svg>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M15.9983 29.4948C13.0628 29.4945 10.2072 28.5373 7.86457 26.7682C5.5219 24.9992 3.81971 22.5147 3.01592 19.6913C2.21212 16.8679 2.35055 13.8595 3.41021 11.1218C4.46988 8.3841 6.39303 6.06645 8.88827 4.51999C11.3834 2.97353 14.3147 2.28256 17.238 2.55178C20.1613 2.82098 22.9171 4.0357 25.0879 6.01187C27.2587 7.98806 28.7262 10.618 29.2681 13.5031C29.8098 16.3882 29.3965 19.3714 28.0906 22.0005C27.8398 22.4801 27.775 23.0355 27.9084 23.5601L28.7185 26.568C28.7985 26.8653 28.7987 27.1784 28.7192 27.4758C28.6397 27.7732 28.4832 28.0444 28.2655 28.262C28.0478 28.4797 27.7766 28.6362 27.4792 28.7157C27.1818 28.7952 26.8688 28.795 26.5715 28.715L23.5636 27.9049C23.0421 27.774 22.4909 27.839 22.014 28.0872C20.1405 29.0188 18.0846 29.5051 15.9983 29.5051V29.4948Z" fill="white"/>
|
|
3
|
+
<path d="M7.39078 15.9949C7.39078 15.1558 8.07053 14.4761 8.90959 14.4761C9.74852 14.4761 10.4284 15.1558 10.4284 15.9949C10.4284 17.4721 11.0152 18.8892 12.0598 19.9338C13.1044 20.9783 14.5215 21.5652 15.9988 21.5653C17.476 21.5653 18.8931 20.9783 19.9377 19.9338C20.9824 18.8892 21.5692 17.4721 21.5692 15.9949C21.5692 15.1558 22.2491 14.4761 23.088 14.4761C23.9269 14.4761 24.6067 15.1558 24.6067 15.9949C24.6067 18.2779 23.7002 20.4675 22.0858 22.0819C20.4714 23.6963 18.2818 24.6028 15.9988 24.6028C13.7158 24.6028 11.526 23.6963 9.91163 22.0819C8.29738 20.4675 7.39078 18.2779 7.39078 15.9949Z" fill="black"/>
|
|
4
|
+
</svg>
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M15.9983 29.4948C13.0628 29.4945 10.2072 28.5373 7.86457 26.7682C5.5219 24.9992 3.81971 22.5147 3.01592 19.6913C2.21212 16.8679 2.35055 13.8595 3.41021 11.1218C4.46988 8.3841 6.39303 6.06645 8.88827 4.51999C11.3834 2.97353 14.3147 2.28256 17.238 2.55178C20.1613 2.82098 22.9171 4.0357 25.0879 6.01187C27.2587 7.98806 28.7262 10.618 29.2681 13.5031C29.8098 16.3882 29.3965 19.3714 28.0906 22.0005C27.8398 22.4801 27.775 23.0355 27.9084 23.5601L28.7185 26.568C28.7985 26.8653 28.7987 27.1784 28.7192 27.4758C28.6397 27.7732 28.4832 28.0444 28.2655 28.262C28.0478 28.4797 27.7766 28.6362 27.4792 28.7157C27.1818 28.7952 26.8688 28.795 26.5715 28.715L23.5636 27.9049C23.0421 27.774 22.4909 27.839 22.014 28.0872C20.1405 29.0188 18.0846 29.5051 15.9983 29.5051V29.4948Z" fill="#FFD21E"/>
|
|
3
|
+
<path d="M7.39079 15.9949C7.39079 15.1558 8.07054 14.4761 8.9096 14.4761C9.74853 14.4761 10.4284 15.1558 10.4284 15.9949C10.4284 17.4721 11.0152 18.8892 12.0598 19.9338C13.1044 20.9783 14.5215 21.5652 15.9988 21.5653C17.476 21.5653 18.8931 20.9783 19.9377 19.9338C20.9824 18.8892 21.5692 17.4721 21.5692 15.9949C21.5692 15.1558 22.2491 14.4761 23.088 14.4761C23.9269 14.4761 24.6067 15.1558 24.6067 15.9949C24.6067 18.2779 23.7002 20.4675 22.0858 22.0819C20.4715 23.6963 18.2818 24.6028 15.9988 24.6028C13.7158 24.6028 11.526 23.6963 9.91164 22.0819C8.29739 20.4675 7.39079 18.2779 7.39079 15.9949Z" fill="black"/>
|
|
4
|
+
</svg>
|
|
Binary file
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M15.9983 29.4948C13.0628 29.4945 10.2072 28.5373 7.86457 26.7682C5.5219 24.9992 3.81971 22.5147 3.01592 19.6913C2.21212 16.8679 2.35055 13.8595 3.41021 11.1218C4.46988 8.3841 6.39303 6.06645 8.88827 4.51999C11.3834 2.97353 14.3147 2.28256 17.238 2.55178C20.1613 2.82098 22.9171 4.0357 25.0879 6.01187C27.2587 7.98806 28.7262 10.618 29.2681 13.5031C29.8098 16.3882 29.3965 19.3714 28.0906 22.0005C27.8398 22.4801 27.775 23.0355 27.9084 23.5601L28.7185 26.568C28.7985 26.8653 28.7987 27.1784 28.7192 27.4758C28.6397 27.7732 28.4832 28.0444 28.2655 28.262C28.0478 28.4797 27.7766 28.6362 27.4792 28.7157C27.1818 28.7952 26.8688 28.795 26.5715 28.715L23.5636 27.9049C23.0421 27.774 22.4909 27.839 22.014 28.0872C20.1405 29.0188 18.0846 29.5051 15.9983 29.5051V29.4948Z" fill="black"/>
|
|
3
|
+
<path d="M7.39079 15.9949C7.39079 15.1558 8.07054 14.4761 8.9096 14.4761C9.74853 14.4761 10.4284 15.1558 10.4284 15.9949C10.4284 17.4721 11.0152 18.8892 12.0598 19.9338C13.1044 20.9783 14.5215 21.5652 15.9988 21.5653C17.476 21.5653 18.8931 20.9783 19.9377 19.9338C20.9824 18.8892 21.5692 17.4721 21.5692 15.9949C21.5692 15.1558 22.2491 14.4761 23.088 14.4761C23.9269 14.4761 24.6067 15.1558 24.6067 15.9949C24.6067 18.2779 23.7002 20.4675 22.0858 22.0819C20.4715 23.6963 18.2818 24.6028 15.9988 24.6028C13.7158 24.6028 11.526 23.6963 9.91164 22.0819C8.29739 20.4675 7.39079 18.2779 7.39079 15.9949Z" fill="white"/>
|
|
4
|
+
</svg>
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
|
|
2
|
+
<svg height="55" viewBox="0 0 575 100" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M46.529 98.852c-25.566 0-46.29-20.724-46.29-46.29 0-25.565 20.724-46.289 46.29-46.289 25.565 0 46.289 20.724 46.289 46.29 0 7.406-1.74 14.405-4.828 20.612-.824 1.648-1.097 3.532-.62 5.315l2.754 10.303a6.017 6.017 0 0 1-7.365 7.37l-10.304-2.76a7.546 7.546 0 0 0-5.319.617 46.104 46.104 0 0 1-20.607 4.832Z" fill="#fff"/><path d="M70.83 52.563c0 13.421-10.88 24.302-24.302 24.302-13.422 0-24.302-10.88-24.302-24.302" stroke="#000" stroke-width="10.415" stroke-linecap="round"/><path d="M127.317 78.022V26.608h11.592v19.793h17.742V26.608h11.671v51.414h-11.671V56.573h-17.742v21.45h-11.592Zm63.938.946c-4.258 0-7.36-1.393-9.305-4.179-1.892-2.839-2.839-6.703-2.839-11.592V38.91h11.592v22.789c0 2.786.394 4.731 1.183 5.835.789 1.052 2.024 1.577 3.706 1.577 1.472 0 2.708-.341 3.706-1.025.999-.683 2.077-1.787 3.234-3.312V38.91h11.591v39.112h-9.462l-.868-5.44h-.236c-1.63 1.944-3.417 3.495-5.363 4.652-1.945 1.156-4.258 1.734-6.939 1.734Zm47.026 15.693c-3.049 0-5.809-.342-8.279-1.026-2.471-.683-4.443-1.76-5.915-3.233-1.472-1.472-2.208-3.364-2.208-5.677 0-3.154 1.867-5.783 5.599-7.886v-.315a10.198 10.198 0 0 1-2.602-2.602c-.683-1.052-1.025-2.392-1.025-4.022 0-1.42.42-2.786 1.262-4.1a10.882 10.882 0 0 1 3.154-3.234v-.315c-1.367-.946-2.603-2.313-3.706-4.1-1.052-1.788-1.578-3.812-1.578-6.072 0-3.155.763-5.757 2.287-7.807 1.525-2.103 3.522-3.68 5.993-4.731 2.471-1.052 5.1-1.577 7.886-1.577 2.313 0 4.337.315 6.072.946h14.272v8.437h-6.229c.368.579.657 1.315.867 2.208.263.894.395 1.867.395 2.918 0 2.996-.684 5.467-2.051 7.412-1.366 1.945-3.206 3.391-5.52 4.337-2.313.947-4.915 1.42-7.806 1.42-1.525 0-3.102-.263-4.732-.789-.946.789-1.419 1.761-1.419 2.918 0 .999.447 1.735 1.341 2.208.893.473 2.418.71 4.573.71h6.309c4.836 0 8.516.788 11.039 2.365 2.576 1.525 3.864 4.048 3.864 7.57 0 2.681-.893 5.073-2.681 7.176-1.787 2.156-4.311 3.838-7.57 5.047-3.259 1.209-7.123 1.814-11.592 1.814Zm.868-36.037c1.524 0 2.786-.552 3.785-1.656 1.051-1.104 1.577-2.734 1.577-4.89 0-2.05-.526-3.6-1.577-4.652-.999-1.104-2.261-1.656-3.785-1.656-1.525 0-2.813.526-3.864 1.577-.999 1.052-1.498 2.629-1.498 4.732 0 2.155.499 3.785 1.498 4.889 1.051 1.104 2.339 1.656 3.864 1.656Zm.946 28.782c2.629 0 4.784-.473 6.466-1.42 1.682-.946 2.524-2.076 2.524-3.39 0-1.21-.526-2.024-1.578-2.445-.998-.42-2.47-.63-4.415-.63h-4.022c-1.314 0-2.418-.053-3.312-.158a12.363 12.363 0 0 1-2.208-.316c-1.419 1.262-2.129 2.55-2.129 3.864 0 1.472.788 2.576 2.366 3.312 1.629.789 3.732 1.183 6.308 1.183Zm40.309 7.255c-3.049 0-5.809-.342-8.279-1.026-2.471-.683-4.443-1.76-5.915-3.233-1.472-1.472-2.208-3.364-2.208-5.677 0-3.154 1.867-5.783 5.599-7.886v-.315a10.198 10.198 0 0 1-2.602-2.602c-.684-1.052-1.025-2.392-1.025-4.022 0-1.42.42-2.786 1.261-4.1a10.898 10.898 0 0 1 3.155-3.234v-.315c-1.367-.946-2.603-2.313-3.707-4.1-1.051-1.788-1.577-3.812-1.577-6.072 0-3.155.763-5.757 2.287-7.807 1.525-2.103 3.522-3.68 5.993-4.731 2.471-1.052 5.1-1.577 7.886-1.577 2.313 0 4.337.315 6.072.946h14.272v8.437h-6.229c.368.579.657 1.315.867 2.208.263.894.395 1.867.395 2.918 0 2.996-.684 5.467-2.051 7.412-1.367 1.945-3.206 3.391-5.52 4.337-2.313.947-4.915 1.42-7.806 1.42-1.525 0-3.102-.263-4.732-.789-.946.789-1.419 1.761-1.419 2.918 0 .999.447 1.735 1.341 2.208.893.473 2.418.71 4.573.71h6.309c4.836 0 8.516.788 11.039 2.365 2.576 1.525 3.864 4.048 3.864 7.57 0 2.681-.893 5.073-2.681 7.176-1.787 2.156-4.311 3.838-7.57 5.047-3.259 1.209-7.123 1.814-11.592 1.814Zm.868-36.037c1.524 0 2.786-.552 3.785-1.656 1.051-1.104 1.577-2.734 1.577-4.89 0-2.05-.526-3.6-1.577-4.652-.999-1.104-2.261-1.656-3.785-1.656-1.525 0-2.813.526-3.864 1.577-.999 1.052-1.498 2.629-1.498 4.732 0 2.155.499 3.785 1.498 4.889 1.051 1.104 2.339 1.656 3.864 1.656Zm.946 28.782c2.629 0 4.784-.473 6.466-1.42 1.682-.946 2.524-2.076 2.524-3.39 0-1.21-.526-2.024-1.578-2.445-.998-.42-2.47-.63-4.415-.63h-4.022c-1.314 0-2.418-.053-3.312-.158a12.363 12.363 0 0 1-2.208-.316c-1.419 1.262-2.129 2.55-2.129 3.864 0 1.472.788 2.576 2.366 3.312 1.629.789 3.732 1.183 6.308 1.183Zm26.352-9.384V38.91h11.592v39.112H308.57Zm5.756-44.869c-1.945 0-3.522-.552-4.731-1.656-1.209-1.104-1.814-2.576-1.814-4.416 0-1.84.605-3.311 1.814-4.415s2.786-1.656 4.731-1.656c1.945 0 3.523.552 4.732 1.656 1.209 1.104 1.813 2.575 1.813 4.415 0 1.84-.604 3.312-1.813 4.416-1.209 1.104-2.787 1.656-4.732 1.656Zm16.037 44.87V38.91h9.463l.788 4.968h.316a30.09 30.09 0 0 1 5.519-4.1c2.051-1.21 4.39-1.814 7.019-1.814 4.258 0 7.333 1.419 9.226 4.258 1.945 2.786 2.917 6.624 2.917 11.513v24.287H354.02v-22.79c0-2.838-.395-4.783-1.183-5.834-.736-1.052-1.945-1.578-3.628-1.578-1.472 0-2.733.342-3.785 1.026-1.051.63-2.208 1.55-3.469 2.76v26.416h-11.592Zm59.084 16.638c-3.049 0-5.809-.342-8.28-1.026-2.471-.683-4.442-1.76-5.914-3.233-1.472-1.472-2.208-3.364-2.208-5.677 0-3.154 1.866-5.783 5.598-7.886v-.315a10.214 10.214 0 0 1-2.602-2.602c-.683-1.052-1.025-2.392-1.025-4.022 0-1.42.421-2.786 1.262-4.1a10.882 10.882 0 0 1 3.154-3.234v-.315c-1.367-.946-2.602-2.313-3.706-4.1-1.052-1.788-1.577-3.812-1.577-6.072 0-3.155.762-5.757 2.286-7.807 1.525-2.103 3.523-3.68 5.993-4.731 2.471-1.052 5.1-1.577 7.886-1.577 2.313 0 4.337.315 6.072.946h14.273v8.437h-6.23c.368.579.657 1.315.868 2.208.262.894.394 1.867.394 2.918 0 2.996-.684 5.467-2.05 7.412-1.367 1.945-3.207 3.391-5.52 4.337-2.313.947-4.916 1.42-7.807 1.42-1.525 0-3.102-.263-4.731-.789-.947.789-1.42 1.761-1.42 2.918 0 .999.447 1.735 1.341 2.208.894.473 2.418.71 4.573.71h6.309c4.836 0 8.516.788 11.04 2.365 2.576 1.525 3.864 4.048 3.864 7.57 0 2.681-.894 5.073-2.682 7.176-1.787 2.156-4.31 3.838-7.57 5.047-3.259 1.209-7.123 1.814-11.591 1.814Zm.867-36.037c1.525 0 2.786-.552 3.785-1.656 1.051-1.104 1.577-2.734 1.577-4.89 0-2.05-.526-3.6-1.577-4.652-.999-1.104-2.26-1.656-3.785-1.656-1.525 0-2.812.526-3.864 1.577-.999 1.052-1.498 2.629-1.498 4.732 0 2.155.499 3.785 1.498 4.889 1.052 1.104 2.339 1.656 3.864 1.656Zm.946 28.782c2.629 0 4.784-.473 6.466-1.42 1.683-.946 2.524-2.076 2.524-3.39 0-1.21-.526-2.024-1.577-2.445-.999-.42-2.471-.63-4.416-.63h-4.022c-1.314 0-2.418-.053-3.312-.158a12.363 12.363 0 0 1-2.208-.316c-1.419 1.262-2.129 2.55-2.129 3.864 0 1.472.789 2.576 2.366 3.312 1.63.789 3.732 1.183 6.308 1.183Zm48.747-8.438c-4.311 0-8.28-.999-11.907-2.996-3.627-1.998-6.545-4.942-8.753-8.832-2.155-3.943-3.233-8.78-3.233-14.51 0-5.677 1.104-10.513 3.312-14.509 2.26-4.048 5.231-7.123 8.911-9.226 3.732-2.155 7.754-3.233 12.064-3.233 3.312 0 6.283.684 8.911 2.05 2.629 1.315 4.81 2.865 6.545 4.653l-6.151 7.412c-1.314-1.209-2.707-2.181-4.179-2.917-1.419-.789-3.049-1.183-4.889-1.183-2.313 0-4.442.657-6.387 1.971-1.893 1.314-3.417 3.207-4.574 5.678-1.104 2.47-1.656 5.44-1.656 8.91 0 5.257 1.13 9.358 3.391 12.302 2.26 2.944 5.283 4.416 9.068 4.416 2.103 0 3.969-.473 5.599-1.42a18.963 18.963 0 0 0 4.416-3.39l6.151 7.254c-4.311 5.047-9.857 7.57-16.639 7.57Zm23.501-.946V22.744H475.1v13.564l-.552 7.018c1.472-1.315 3.181-2.524 5.126-3.628 1.998-1.156 4.311-1.734 6.939-1.734 4.258 0 7.334 1.419 9.226 4.258 1.945 2.786 2.918 6.624 2.918 11.513v24.287h-11.592v-22.79c0-2.838-.394-4.783-1.183-5.834-.736-1.052-1.945-1.578-3.627-1.578-1.472 0-2.734.342-3.785 1.026-1.052.63-2.208 1.55-3.47 2.76v26.416h-11.592Zm54.907.946c-3.575 0-6.414-1.13-8.517-3.39-2.103-2.314-3.154-5.126-3.154-8.438 0-4.1 1.735-7.307 5.205-9.62 3.469-2.313 9.068-3.864 16.796-4.653-.105-1.735-.631-3.101-1.577-4.1-.894-1.052-2.419-1.577-4.574-1.577-1.63 0-3.286.315-4.968.946-1.682.63-3.47 1.498-5.362 2.602l-4.179-7.649a38.595 38.595 0 0 1 7.885-3.706 27.749 27.749 0 0 1 8.832-1.42c4.994 0 8.832 1.446 11.513 4.338 2.681 2.89 4.021 7.333 4.021 13.326v22.395h-9.462L530.085 74h-.315a23.64 23.64 0 0 1-5.283 3.628c-1.84.894-3.864 1.34-6.072 1.34Zm3.942-8.99c1.315 0 2.445-.288 3.391-.867.999-.63 1.998-1.445 2.997-2.444v-6.86c-4.101.525-6.94 1.366-8.517 2.523-1.577 1.104-2.365 2.418-2.365 3.943 0 1.261.394 2.208 1.183 2.838.841.579 1.945.868 3.311.868Zm41.46 8.99c-4.837 0-8.306-1.393-10.409-4.179-2.05-2.786-3.075-6.44-3.075-10.96v-15.85h-5.363v-8.596l5.993-.473 1.341-10.41h9.62v10.41h9.384v9.068h-9.384V63.67c0 2.208.447 3.812 1.341 4.81.946.947 2.182 1.42 3.706 1.42.631 0 1.262-.079 1.893-.237a12.41 12.41 0 0 0 1.813-.552l1.814 8.438c-.999.315-2.234.63-3.706.946-1.42.316-3.076.473-4.968.473Z" fill="#fff"/></svg>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M16.0002 29.3301C13.1016 29.3297 10.2821 28.3845 7.9689 26.6377C5.65573 24.891 3.97496 22.4378 3.18129 19.6499C2.38763 16.8621 2.52431 13.8915 3.57063 11.1883C4.61695 8.48512 6.51588 6.19665 8.97969 4.66967C11.4435 3.14268 14.3379 2.46041 17.2243 2.72623C20.1107 2.99205 22.8318 4.19147 24.9753 6.14275C27.1188 8.09404 28.5678 10.6908 29.1028 13.5396C29.6379 16.3885 29.2297 19.3341 27.9402 21.9301C27.6926 22.4037 27.6285 22.9521 27.7602 23.4701L28.5602 26.4401C28.6392 26.7336 28.6394 27.0427 28.5609 27.3364C28.4823 27.63 28.3278 27.8978 28.1129 28.1127C27.898 28.3277 27.6302 28.4822 27.3365 28.5607C27.0429 28.6392 26.7338 28.639 26.4402 28.5601L23.4702 27.7601C22.9554 27.6309 22.411 27.695 21.9402 27.9401C20.0902 28.8601 18.0602 29.3401 16.0002 29.3401V29.3301Z" fill="black"/>
|
|
3
|
+
<path d="M23 16C23 17.8565 22.2625 19.637 20.9497 20.9497C19.637 22.2625 17.8565 23 16 23C14.1435 23 12.363 22.2625 11.0503 20.9497C9.7375 19.637 9 17.8565 9 16" stroke="white" stroke-width="3" stroke-linecap="round"/>
|
|
4
|
+
</svg>
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M16.0006 25.9992C13.8266 25.999 11.7118 25.2901 9.97686 23.9799C8.2419 22.6698 6.98127 20.8298 6.38599 18.7388C5.79071 16.6478 5.89323 14.4198 6.678 12.3923C7.46278 10.3648 8.88705 8.64837 10.735 7.50308C12.5829 6.35779 14.7538 5.84606 16.9187 6.04544C19.0837 6.24481 21.1246 7.14442 22.7323 8.60795C24.34 10.0715 25.4268 12.0192 25.8281 14.1559C26.2293 16.2926 25.9232 18.5019 24.9561 20.449C24.7703 20.8042 24.7223 21.2155 24.8211 21.604L25.4211 23.8316C25.4803 24.0518 25.4805 24.2837 25.4216 24.5039C25.3627 24.7242 25.2468 24.925 25.0856 25.0862C24.9244 25.2474 24.7235 25.3633 24.5033 25.4222C24.283 25.4811 24.0512 25.4809 23.831 25.4217L21.6034 24.8217C21.2172 24.7248 20.809 24.7729 20.4558 24.9567C19.0683 25.6467 17.5457 26.0068 16.0006 26.0068V25.9992Z" fill="black"/>
|
|
3
|
+
<path d="M9.62598 16.0013C9.62598 15.3799 10.1294 14.8765 10.7508 14.8765C11.3721 14.8765 11.8756 15.3799 11.8756 16.0013C11.8756 17.0953 12.3102 18.1448 13.0838 18.9184C13.8574 19.692 14.9069 20.1266 16.001 20.1267C17.095 20.1267 18.1445 19.692 18.9181 18.9184C19.6918 18.1448 20.1264 17.0953 20.1264 16.0013C20.1264 15.3799 20.6299 14.8765 21.2512 14.8765C21.8725 14.8765 22.3759 15.3799 22.3759 16.0013C22.3759 17.6921 21.7046 19.3137 20.509 20.5093C19.3134 21.7049 17.6918 22.3762 16.001 22.3762C14.3102 22.3762 12.6885 21.7049 11.4929 20.5093C10.2974 19.3137 9.62598 17.6921 9.62598 16.0013Z" fill="white"/>
|
|
4
|
+
</svg>
|