ruflo 3.7.0-alpha.11 → 3.7.0-alpha.13
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 +393 -393
- package/bin/ruflo.js +57 -57
- package/package.json +1 -1
- package/src/chat-ui/Dockerfile +25 -25
- package/src/chat-ui/patch-mcp-url-safety.sh +28 -28
- package/src/config/config.example.json +76 -76
- package/src/mcp-bridge/Dockerfile +45 -45
- package/src/mcp-bridge/index.js +1668 -1668
- package/src/mcp-bridge/mcp-stdio-kernel.js +159 -159
- package/src/mcp-bridge/package.json +17 -17
- package/src/mcp-bridge/test-harness.js +470 -470
- package/src/nginx/Dockerfile +10 -10
- package/src/nginx/nginx.conf +67 -67
- package/src/nginx/static/favicon-dark.svg +4 -4
- package/src/nginx/static/favicon.svg +4 -4
- package/src/nginx/static/icon.svg +5 -5
- package/src/nginx/static/logo.svg +9 -9
- package/src/nginx/static/manifest.json +22 -22
- package/src/nginx/static/welcome.js +184 -184
- package/src/ruvocal/.claude/skills/add-model-descriptions/SKILL.md +73 -73
- package/src/ruvocal/.claude-flow/daemon-state.json +135 -0
- package/src/ruvocal/.claude-flow/data/pending-insights.jsonl +0 -0
- package/src/ruvocal/.claude-flow/data/ranked-context.json +5 -0
- package/src/ruvocal/.claude-flow/logs/daemon.log +31 -0
- package/src/ruvocal/.claude-flow/logs/headless/audit_1777949411822_juxau0_prompt.log +989 -0
- package/src/ruvocal/.claude-flow/logs/headless/audit_1777949411822_juxau0_result.log +67 -0
- package/src/ruvocal/.claude-flow/logs/headless/audit_1777950042278_jvj5xq_prompt.log +989 -0
- package/src/ruvocal/.claude-flow/logs/headless/audit_1777950042278_jvj5xq_result.log +93 -0
- package/src/ruvocal/.claude-flow/logs/headless/optimize_1777949531823_yt5yc2_prompt.log +1498 -0
- package/src/ruvocal/.claude-flow/logs/headless/optimize_1777949531823_yt5yc2_result.log +93 -0
- package/src/ruvocal/.claude-flow/logs/headless/testgaps_1777949771821_elw1j4_prompt.log +1498 -0
- package/src/ruvocal/.claude-flow/logs/headless/testgaps_1777949771821_elw1j4_result.log +100 -0
- package/src/ruvocal/.claude-flow/metrics/codebase-map.json +11 -0
- package/src/ruvocal/.claude-flow/metrics/consolidation.json +6 -0
- package/src/ruvocal/.claude-flow/neural/stats.json +6 -0
- package/src/ruvocal/.claude-flow/sessions/current.json +13 -0
- package/src/ruvocal/.devcontainer/Dockerfile +9 -9
- package/src/ruvocal/.devcontainer/devcontainer.json +36 -36
- package/src/ruvocal/.dockerignore +16 -16
- package/src/ruvocal/.eslintignore +13 -13
- package/src/ruvocal/.eslintrc.cjs +45 -45
- package/src/ruvocal/.gcloudignore +18 -18
- package/src/ruvocal/.github/ISSUE_TEMPLATE/bug-report--chat-ui-.md +43 -43
- package/src/ruvocal/.github/ISSUE_TEMPLATE/config-support.md +9 -9
- package/src/ruvocal/.github/ISSUE_TEMPLATE/feature-request--chat-ui-.md +17 -17
- package/src/ruvocal/.github/ISSUE_TEMPLATE/huggingchat.md +11 -11
- package/src/ruvocal/.github/release.yml +16 -16
- package/src/ruvocal/.github/workflows/build-docs.yml +18 -18
- package/src/ruvocal/.github/workflows/build-image.yml +142 -142
- package/src/ruvocal/.github/workflows/build-pr-docs.yml +20 -20
- package/src/ruvocal/.github/workflows/deploy-dev.yml +63 -63
- package/src/ruvocal/.github/workflows/deploy-prod.yml +78 -78
- package/src/ruvocal/.github/workflows/lint-and-test.yml +84 -84
- package/src/ruvocal/.github/workflows/slugify.yaml +72 -72
- package/src/ruvocal/.github/workflows/trufflehog.yml +17 -17
- package/src/ruvocal/.github/workflows/upload-pr-documentation.yml +16 -16
- package/src/ruvocal/.husky/lint-stage-config.js +4 -4
- package/src/ruvocal/.husky/pre-commit +2 -2
- package/src/ruvocal/.prettierignore +14 -14
- package/src/ruvocal/.prettierrc +7 -7
- package/src/ruvocal/.swarm/attestation.db +0 -0
- package/src/ruvocal/.swarm/hnsw.index +0 -0
- package/src/ruvocal/.swarm/hnsw.metadata.json +1 -0
- package/src/ruvocal/.swarm/memory.db +0 -0
- package/src/ruvocal/.swarm/schema.sql +305 -0
- package/src/ruvocal/CLAUDE.md +126 -126
- package/src/ruvocal/Dockerfile +96 -96
- package/src/ruvocal/LICENSE +202 -202
- package/src/ruvocal/PRIVACY.md +41 -41
- package/src/ruvocal/README.md +164 -164
- package/src/ruvocal/chart/Chart.yaml +5 -5
- package/src/ruvocal/chart/env/dev.yaml +260 -260
- package/src/ruvocal/chart/env/prod.yaml +273 -273
- package/src/ruvocal/chart/templates/_helpers.tpl +22 -22
- package/src/ruvocal/chart/templates/config.yaml +10 -10
- package/src/ruvocal/chart/templates/deployment.yaml +81 -81
- package/src/ruvocal/chart/templates/hpa.yaml +45 -45
- package/src/ruvocal/chart/templates/infisical.yaml +24 -24
- package/src/ruvocal/chart/templates/ingress-internal.yaml +32 -32
- package/src/ruvocal/chart/templates/ingress.yaml +32 -32
- package/src/ruvocal/chart/templates/network-policy.yaml +36 -36
- package/src/ruvocal/chart/templates/service-account.yaml +13 -13
- package/src/ruvocal/chart/templates/service-monitor.yaml +17 -17
- package/src/ruvocal/chart/templates/service.yaml +21 -21
- package/src/ruvocal/chart/values.yaml +73 -73
- package/src/ruvocal/cloudbuild.yaml +68 -68
- package/src/ruvocal/config/branding.env.example +19 -19
- package/src/ruvocal/docker-compose.yml +21 -21
- package/src/ruvocal/docs/adr/ADR-029-HUGGINGFACE-CHAT-UI-CLOUD-RUN.md +1236 -1236
- package/src/ruvocal/docs/adr/ADR-033-RUVECTOR-RUFLO-MCP-INTEGRATION.md +111 -111
- package/src/ruvocal/docs/adr/ADR-034-OPTIONAL-MCP-BACKENDS.md +117 -117
- package/src/ruvocal/docs/adr/ADR-035-MCP-TOOL-GROUPS.md +186 -186
- package/src/ruvocal/docs/adr/ADR-037-AUTOPILOT-CHAT-MODE.md +1500 -1500
- package/src/ruvocal/docs/adr/ADR-038-RUVOCAL-FORK.md +286 -286
- package/src/ruvocal/docs/source/_toctree.yml +30 -30
- package/src/ruvocal/docs/source/configuration/common-issues.md +38 -38
- package/src/ruvocal/docs/source/configuration/llm-router.md +105 -105
- package/src/ruvocal/docs/source/configuration/mcp-tools.md +84 -84
- package/src/ruvocal/docs/source/configuration/metrics.md +9 -9
- package/src/ruvocal/docs/source/configuration/open-id.md +57 -57
- package/src/ruvocal/docs/source/configuration/overview.md +89 -89
- package/src/ruvocal/docs/source/configuration/theming.md +20 -20
- package/src/ruvocal/docs/source/developing/architecture.md +48 -48
- package/src/ruvocal/docs/source/index.md +53 -53
- package/src/ruvocal/docs/source/installation/docker.md +43 -43
- package/src/ruvocal/docs/source/installation/helm.md +43 -43
- package/src/ruvocal/docs/source/installation/local.md +62 -62
- package/src/ruvocal/entrypoint.sh +18 -18
- package/src/ruvocal/mcp-bridge/Dockerfile +45 -45
- package/src/ruvocal/mcp-bridge/cloudbuild.yaml +49 -49
- package/src/ruvocal/mcp-bridge/index.js +1878 -1878
- package/src/ruvocal/mcp-bridge/mcp-stdio-kernel.js +159 -159
- package/src/ruvocal/mcp-bridge/package-lock.json +762 -762
- package/src/ruvocal/mcp-bridge/package.json +17 -17
- package/src/ruvocal/mcp-bridge/test-harness.js +470 -470
- package/src/ruvocal/package-lock.json +11741 -11741
- package/src/ruvocal/package.json +121 -121
- package/src/ruvocal/postcss.config.js +6 -6
- package/src/ruvocal/rvf.manifest.json +204 -204
- package/src/ruvocal/scripts/config.ts +64 -64
- package/src/ruvocal/scripts/generate-welcome.mjs +181 -181
- package/src/ruvocal/scripts/populate.ts +288 -288
- package/src/ruvocal/scripts/samples.txt +194 -194
- package/src/ruvocal/scripts/setups/vitest-setup-server.ts +44 -44
- package/src/ruvocal/scripts/updateLocalEnv.ts +48 -48
- package/src/ruvocal/src/ambient.d.ts +7 -7
- package/src/ruvocal/src/app.d.ts +29 -29
- package/src/ruvocal/src/app.html +53 -53
- package/src/ruvocal/src/hooks.server.ts +32 -32
- package/src/ruvocal/src/hooks.ts +6 -6
- package/src/ruvocal/src/lib/APIClient.ts +148 -148
- package/src/ruvocal/src/lib/actions/clickOutside.ts +18 -18
- package/src/ruvocal/src/lib/actions/snapScrollToBottom.ts +346 -346
- package/src/ruvocal/src/lib/buildPrompt.ts +33 -33
- package/src/ruvocal/src/lib/components/AnnouncementBanner.svelte +20 -20
- package/src/ruvocal/src/lib/components/BackgroundGenerationPoller.svelte +168 -168
- package/src/ruvocal/src/lib/components/CodeBlock.svelte +73 -73
- package/src/ruvocal/src/lib/components/CopyToClipBoardBtn.svelte +92 -92
- package/src/ruvocal/src/lib/components/DeleteConversationModal.svelte +75 -75
- package/src/ruvocal/src/lib/components/EditConversationModal.svelte +100 -100
- package/src/ruvocal/src/lib/components/ExpandNavigation.svelte +22 -22
- package/src/ruvocal/src/lib/components/FoundationBackground.svelte +242 -242
- package/src/ruvocal/src/lib/components/HoverTooltip.svelte +44 -44
- package/src/ruvocal/src/lib/components/HtmlPreviewModal.svelte +143 -143
- package/src/ruvocal/src/lib/components/InfiniteScroll.svelte +50 -50
- package/src/ruvocal/src/lib/components/MobileNav.svelte +300 -300
- package/src/ruvocal/src/lib/components/Modal.svelte +115 -115
- package/src/ruvocal/src/lib/components/ModelCardMetadata.svelte +71 -71
- package/src/ruvocal/src/lib/components/NavConversationItem.svelte +151 -151
- package/src/ruvocal/src/lib/components/NavMenu.svelte +313 -313
- package/src/ruvocal/src/lib/components/Pagination.svelte +97 -97
- package/src/ruvocal/src/lib/components/PaginationArrow.svelte +27 -27
- package/src/ruvocal/src/lib/components/Portal.svelte +24 -24
- package/src/ruvocal/src/lib/components/RetryBtn.svelte +18 -18
- package/src/ruvocal/src/lib/components/RuFloUniverse.svelte +185 -185
- package/src/ruvocal/src/lib/components/RufloHelpModal.svelte +411 -411
- package/src/ruvocal/src/lib/components/ScrollToBottomBtn.svelte +47 -47
- package/src/ruvocal/src/lib/components/ScrollToPreviousBtn.svelte +77 -77
- package/src/ruvocal/src/lib/components/ShareConversationModal.svelte +182 -182
- package/src/ruvocal/src/lib/components/StopGeneratingBtn.svelte +69 -69
- package/src/ruvocal/src/lib/components/SubscribeModal.svelte +87 -87
- package/src/ruvocal/src/lib/components/Switch.svelte +36 -36
- package/src/ruvocal/src/lib/components/SystemPromptModal.svelte +44 -44
- package/src/ruvocal/src/lib/components/Toast.svelte +27 -27
- package/src/ruvocal/src/lib/components/Tooltip.svelte +30 -30
- package/src/ruvocal/src/lib/components/WelcomeModal.svelte +46 -46
- package/src/ruvocal/src/lib/components/chat/Alternatives.svelte +77 -77
- package/src/ruvocal/src/lib/components/chat/BlockWrapper.svelte +72 -72
- package/src/ruvocal/src/lib/components/chat/ChatInput.svelte +490 -490
- package/src/ruvocal/src/lib/components/chat/ChatIntroduction.svelte +123 -123
- package/src/ruvocal/src/lib/components/chat/ChatMessage.svelte +548 -548
- package/src/ruvocal/src/lib/components/chat/ChatWindow.svelte +1057 -1057
- package/src/ruvocal/src/lib/components/chat/FileDropzone.svelte +92 -92
- package/src/ruvocal/src/lib/components/chat/ImageLightbox.svelte +66 -66
- package/src/ruvocal/src/lib/components/chat/MarkdownBlock.svelte +23 -23
- package/src/ruvocal/src/lib/components/chat/MarkdownRenderer.svelte +69 -69
- package/src/ruvocal/src/lib/components/chat/MarkdownRenderer.svelte.test.ts +58 -58
- package/src/ruvocal/src/lib/components/chat/MessageAvatar.svelte +103 -103
- package/src/ruvocal/src/lib/components/chat/ModelSwitch.svelte +64 -64
- package/src/ruvocal/src/lib/components/chat/OpenReasoningResults.svelte +81 -81
- package/src/ruvocal/src/lib/components/chat/TaskGroup.svelte +88 -88
- package/src/ruvocal/src/lib/components/chat/ToolUpdate.svelte +273 -273
- package/src/ruvocal/src/lib/components/chat/UploadedFile.svelte +253 -253
- package/src/ruvocal/src/lib/components/chat/UrlFetchModal.svelte +203 -203
- package/src/ruvocal/src/lib/components/chat/VoiceRecorder.svelte +214 -214
- package/src/ruvocal/src/lib/components/icons/IconBurger.svelte +20 -20
- package/src/ruvocal/src/lib/components/icons/IconCheap.svelte +20 -20
- package/src/ruvocal/src/lib/components/icons/IconChevron.svelte +24 -24
- package/src/ruvocal/src/lib/components/icons/IconDazzled.svelte +40 -40
- package/src/ruvocal/src/lib/components/icons/IconFast.svelte +20 -20
- package/src/ruvocal/src/lib/components/icons/IconLoading.svelte +22 -22
- package/src/ruvocal/src/lib/components/icons/IconMCP.svelte +28 -28
- package/src/ruvocal/src/lib/components/icons/IconMoon.svelte +21 -21
- package/src/ruvocal/src/lib/components/icons/IconNew.svelte +20 -20
- package/src/ruvocal/src/lib/components/icons/IconOmni.svelte +90 -90
- package/src/ruvocal/src/lib/components/icons/IconPaperclip.svelte +24 -24
- package/src/ruvocal/src/lib/components/icons/IconPro.svelte +37 -37
- package/src/ruvocal/src/lib/components/icons/IconShare.svelte +21 -21
- package/src/ruvocal/src/lib/components/icons/IconSun.svelte +93 -93
- package/src/ruvocal/src/lib/components/icons/Logo.svelte +68 -68
- package/src/ruvocal/src/lib/components/icons/LogoHuggingFaceBorderless.svelte +54 -54
- package/src/ruvocal/src/lib/components/mcp/AddServerForm.svelte +250 -250
- package/src/ruvocal/src/lib/components/mcp/MCPServerManager.svelte +185 -185
- package/src/ruvocal/src/lib/components/mcp/ServerCard.svelte +203 -203
- package/src/ruvocal/src/lib/components/players/AudioPlayer.svelte +82 -82
- package/src/ruvocal/src/lib/components/voice/AudioWaveform.svelte +96 -96
- package/src/ruvocal/src/lib/components/wasm/GalleryPanel.svelte +357 -357
- package/src/ruvocal/src/lib/constants/mcpExamples.ts +114 -114
- package/src/ruvocal/src/lib/constants/mime.ts +11 -11
- package/src/ruvocal/src/lib/constants/pagination.ts +1 -1
- package/src/ruvocal/src/lib/constants/publicSepToken.ts +1 -1
- package/src/ruvocal/src/lib/constants/routerExamples.ts +133 -133
- package/src/ruvocal/src/lib/constants/rvagentPresets.ts +206 -206
- package/src/ruvocal/src/lib/createShareLink.ts +27 -27
- package/src/ruvocal/src/lib/jobs/refresh-conversation-stats.ts +297 -297
- package/src/ruvocal/src/lib/migrations/lock.ts +56 -56
- package/src/ruvocal/src/lib/migrations/migrations.spec.ts +74 -74
- package/src/ruvocal/src/lib/migrations/migrations.ts +109 -109
- package/src/ruvocal/src/lib/migrations/routines/01-update-search-assistants.ts +50 -50
- package/src/ruvocal/src/lib/migrations/routines/02-update-assistants-models.ts +48 -48
- package/src/ruvocal/src/lib/migrations/routines/04-update-message-updates.ts +151 -151
- package/src/ruvocal/src/lib/migrations/routines/05-update-message-files.ts +56 -56
- package/src/ruvocal/src/lib/migrations/routines/06-trim-message-updates.ts +56 -56
- package/src/ruvocal/src/lib/migrations/routines/08-update-featured-to-review.ts +32 -32
- package/src/ruvocal/src/lib/migrations/routines/09-delete-empty-conversations.spec.ts +214 -214
- package/src/ruvocal/src/lib/migrations/routines/09-delete-empty-conversations.ts +88 -88
- package/src/ruvocal/src/lib/migrations/routines/10-update-reports-assistantid.ts +29 -29
- package/src/ruvocal/src/lib/migrations/routines/index.ts +15 -15
- package/src/ruvocal/src/lib/server/__tests__/conversation-stop-generating.spec.ts +103 -103
- package/src/ruvocal/src/lib/server/abortRegistry.ts +57 -57
- package/src/ruvocal/src/lib/server/abortedGenerations.ts +43 -43
- package/src/ruvocal/src/lib/server/adminToken.ts +62 -62
- package/src/ruvocal/src/lib/server/api/__tests__/conversations-id.spec.ts +296 -296
- package/src/ruvocal/src/lib/server/api/__tests__/conversations-message.spec.ts +216 -216
- package/src/ruvocal/src/lib/server/api/__tests__/conversations.spec.ts +235 -235
- package/src/ruvocal/src/lib/server/api/__tests__/misc.spec.ts +72 -72
- package/src/ruvocal/src/lib/server/api/__tests__/testHelpers.ts +86 -86
- package/src/ruvocal/src/lib/server/api/__tests__/user-reports.spec.ts +78 -78
- package/src/ruvocal/src/lib/server/api/__tests__/user.spec.ts +239 -239
- package/src/ruvocal/src/lib/server/api/types.ts +37 -37
- package/src/ruvocal/src/lib/server/api/utils/requireAuth.ts +22 -22
- package/src/ruvocal/src/lib/server/api/utils/resolveConversation.ts +69 -69
- package/src/ruvocal/src/lib/server/api/utils/resolveModel.ts +27 -27
- package/src/ruvocal/src/lib/server/api/utils/superjsonResponse.ts +15 -15
- package/src/ruvocal/src/lib/server/apiToken.ts +11 -11
- package/src/ruvocal/src/lib/server/auth.ts +554 -554
- package/src/ruvocal/src/lib/server/config.ts +187 -187
- package/src/ruvocal/src/lib/server/conversation.ts +83 -83
- package/src/ruvocal/src/lib/server/database/__tests__/rvf.spec.ts +709 -709
- package/src/ruvocal/src/lib/server/database/postgres.ts +700 -700
- package/src/ruvocal/src/lib/server/database/rvf.ts +1078 -1078
- package/src/ruvocal/src/lib/server/database.ts +145 -145
- package/src/ruvocal/src/lib/server/endpoints/document.ts +68 -68
- package/src/ruvocal/src/lib/server/endpoints/endpoints.ts +43 -43
- package/src/ruvocal/src/lib/server/endpoints/images.ts +211 -211
- package/src/ruvocal/src/lib/server/endpoints/openai/endpointOai.ts +266 -266
- package/src/ruvocal/src/lib/server/endpoints/openai/openAIChatToTextGenerationStream.ts +212 -212
- package/src/ruvocal/src/lib/server/endpoints/openai/openAICompletionToTextGenerationStream.ts +32 -32
- package/src/ruvocal/src/lib/server/endpoints/preprocessMessages.ts +61 -61
- package/src/ruvocal/src/lib/server/exitHandler.ts +59 -59
- package/src/ruvocal/src/lib/server/files/downloadFile.ts +34 -34
- package/src/ruvocal/src/lib/server/files/uploadFile.ts +29 -29
- package/src/ruvocal/src/lib/server/findRepoRoot.ts +13 -13
- package/src/ruvocal/src/lib/server/generateFromDefaultEndpoint.ts +46 -46
- package/src/ruvocal/src/lib/server/hooks/error.ts +37 -37
- package/src/ruvocal/src/lib/server/hooks/fetch.ts +22 -22
- package/src/ruvocal/src/lib/server/hooks/handle.ts +250 -250
- package/src/ruvocal/src/lib/server/hooks/init.ts +51 -51
- package/src/ruvocal/src/lib/server/isURLLocal.spec.ts +31 -31
- package/src/ruvocal/src/lib/server/isURLLocal.ts +74 -74
- package/src/ruvocal/src/lib/server/logger.ts +42 -42
- package/src/ruvocal/src/lib/server/mcp/clientPool.spec.ts +175 -175
- package/src/ruvocal/src/lib/server/mcp/hf.ts +32 -32
- package/src/ruvocal/src/lib/server/mcp/httpClient.ts +122 -122
- package/src/ruvocal/src/lib/server/mcp/registry.ts +76 -76
- package/src/ruvocal/src/lib/server/mcp/tools.ts +196 -196
- package/src/ruvocal/src/lib/server/metrics.ts +255 -255
- package/src/ruvocal/src/lib/server/models.ts +518 -518
- package/src/ruvocal/src/lib/server/requestContext.ts +55 -55
- package/src/ruvocal/src/lib/server/router/arch.ts +230 -230
- package/src/ruvocal/src/lib/server/router/endpoint.ts +316 -316
- package/src/ruvocal/src/lib/server/router/multimodal.ts +28 -28
- package/src/ruvocal/src/lib/server/router/policy.ts +49 -49
- package/src/ruvocal/src/lib/server/router/toolsRoute.ts +51 -51
- package/src/ruvocal/src/lib/server/router/types.ts +21 -21
- package/src/ruvocal/src/lib/server/sendSlack.ts +23 -23
- package/src/ruvocal/src/lib/server/textGeneration/generate.ts +258 -258
- package/src/ruvocal/src/lib/server/textGeneration/index.ts +96 -96
- package/src/ruvocal/src/lib/server/textGeneration/mcp/fileRefs.ts +155 -155
- package/src/ruvocal/src/lib/server/textGeneration/mcp/routerResolution.ts +108 -108
- package/src/ruvocal/src/lib/server/textGeneration/mcp/runMcpFlow.ts +831 -831
- package/src/ruvocal/src/lib/server/textGeneration/mcp/toolInvocation.ts +349 -349
- package/src/ruvocal/src/lib/server/textGeneration/mcp/wasmTools.test.ts +633 -633
- package/src/ruvocal/src/lib/server/textGeneration/reasoning.ts +23 -23
- package/src/ruvocal/src/lib/server/textGeneration/title.ts +83 -83
- package/src/ruvocal/src/lib/server/textGeneration/types.ts +28 -28
- package/src/ruvocal/src/lib/server/textGeneration/utils/prepareFiles.ts +88 -88
- package/src/ruvocal/src/lib/server/textGeneration/utils/routing.ts +21 -21
- package/src/ruvocal/src/lib/server/textGeneration/utils/toolPrompt.ts +49 -49
- package/src/ruvocal/src/lib/server/urlSafety.ts +77 -77
- package/src/ruvocal/src/lib/server/usageLimits.ts +30 -30
- package/src/ruvocal/src/lib/stores/autopilotStore.svelte.ts +175 -175
- package/src/ruvocal/src/lib/stores/backgroundGenerations.svelte.ts +32 -32
- package/src/ruvocal/src/lib/stores/backgroundGenerations.ts +1 -1
- package/src/ruvocal/src/lib/stores/errors.ts +9 -9
- package/src/ruvocal/src/lib/stores/isAborted.ts +3 -3
- package/src/ruvocal/src/lib/stores/isPro.ts +4 -4
- package/src/ruvocal/src/lib/stores/loading.ts +3 -3
- package/src/ruvocal/src/lib/stores/mcpServers.ts +534 -534
- package/src/ruvocal/src/lib/stores/pendingChatInput.ts +3 -3
- package/src/ruvocal/src/lib/stores/pendingMessage.ts +9 -9
- package/src/ruvocal/src/lib/stores/settings.ts +182 -182
- package/src/ruvocal/src/lib/stores/shareModal.ts +13 -13
- package/src/ruvocal/src/lib/stores/titleUpdate.ts +8 -8
- package/src/ruvocal/src/lib/stores/wasmMcp.ts +472 -472
- package/src/ruvocal/src/lib/switchTheme.ts +124 -124
- package/src/ruvocal/src/lib/types/AbortedGeneration.ts +8 -8
- package/src/ruvocal/src/lib/types/Assistant.ts +31 -31
- package/src/ruvocal/src/lib/types/AssistantStats.ts +11 -11
- package/src/ruvocal/src/lib/types/ConfigKey.ts +4 -4
- package/src/ruvocal/src/lib/types/ConvSidebar.ts +9 -9
- package/src/ruvocal/src/lib/types/Conversation.ts +27 -27
- package/src/ruvocal/src/lib/types/ConversationStats.ts +13 -13
- package/src/ruvocal/src/lib/types/Message.ts +41 -41
- package/src/ruvocal/src/lib/types/MessageEvent.ts +10 -10
- package/src/ruvocal/src/lib/types/MessageUpdate.ts +139 -139
- package/src/ruvocal/src/lib/types/MigrationResult.ts +7 -7
- package/src/ruvocal/src/lib/types/Model.ts +23 -23
- package/src/ruvocal/src/lib/types/Report.ts +12 -12
- package/src/ruvocal/src/lib/types/Review.ts +6 -6
- package/src/ruvocal/src/lib/types/Semaphore.ts +19 -19
- package/src/ruvocal/src/lib/types/Session.ts +22 -22
- package/src/ruvocal/src/lib/types/Settings.ts +93 -93
- package/src/ruvocal/src/lib/types/SharedConversation.ts +9 -9
- package/src/ruvocal/src/lib/types/Template.ts +6 -6
- package/src/ruvocal/src/lib/types/Timestamps.ts +4 -4
- package/src/ruvocal/src/lib/types/TokenCache.ts +6 -6
- package/src/ruvocal/src/lib/types/Tool.ts +77 -77
- package/src/ruvocal/src/lib/types/UrlDependency.ts +5 -5
- package/src/ruvocal/src/lib/types/User.ts +14 -14
- package/src/ruvocal/src/lib/utils/PublicConfig.svelte.ts +75 -75
- package/src/ruvocal/src/lib/utils/auth.ts +17 -17
- package/src/ruvocal/src/lib/utils/chunk.ts +33 -33
- package/src/ruvocal/src/lib/utils/cookiesAreEnabled.ts +13 -13
- package/src/ruvocal/src/lib/utils/debounce.ts +17 -17
- package/src/ruvocal/src/lib/utils/deepestChild.ts +6 -6
- package/src/ruvocal/src/lib/utils/favicon.ts +21 -21
- package/src/ruvocal/src/lib/utils/fetchJSON.ts +23 -23
- package/src/ruvocal/src/lib/utils/file2base64.ts +14 -14
- package/src/ruvocal/src/lib/utils/formatUserCount.ts +37 -37
- package/src/ruvocal/src/lib/utils/generationState.spec.ts +75 -75
- package/src/ruvocal/src/lib/utils/generationState.ts +26 -26
- package/src/ruvocal/src/lib/utils/getHref.ts +41 -41
- package/src/ruvocal/src/lib/utils/getReturnFromGenerator.ts +7 -7
- package/src/ruvocal/src/lib/utils/haptics.ts +64 -64
- package/src/ruvocal/src/lib/utils/hashConv.ts +12 -12
- package/src/ruvocal/src/lib/utils/hf.ts +17 -17
- package/src/ruvocal/src/lib/utils/isDesktop.ts +7 -7
- package/src/ruvocal/src/lib/utils/isUrl.ts +8 -8
- package/src/ruvocal/src/lib/utils/isVirtualKeyboard.ts +16 -16
- package/src/ruvocal/src/lib/utils/loadAttachmentsFromUrls.ts +115 -115
- package/src/ruvocal/src/lib/utils/marked.spec.ts +96 -96
- package/src/ruvocal/src/lib/utils/marked.ts +531 -531
- package/src/ruvocal/src/lib/utils/mcpValidation.ts +147 -147
- package/src/ruvocal/src/lib/utils/mergeAsyncGenerators.ts +38 -38
- package/src/ruvocal/src/lib/utils/messageUpdates.spec.ts +262 -262
- package/src/ruvocal/src/lib/utils/messageUpdates.ts +324 -324
- package/src/ruvocal/src/lib/utils/mime.ts +56 -56
- package/src/ruvocal/src/lib/utils/models.ts +14 -14
- package/src/ruvocal/src/lib/utils/parseBlocks.ts +120 -120
- package/src/ruvocal/src/lib/utils/parseIncompleteMarkdown.ts +644 -644
- package/src/ruvocal/src/lib/utils/parseStringToList.ts +10 -10
- package/src/ruvocal/src/lib/utils/randomUuid.ts +14 -14
- package/src/ruvocal/src/lib/utils/searchTokens.ts +33 -33
- package/src/ruvocal/src/lib/utils/sha256.ts +7 -7
- package/src/ruvocal/src/lib/utils/stringifyError.ts +12 -12
- package/src/ruvocal/src/lib/utils/sum.ts +3 -3
- package/src/ruvocal/src/lib/utils/template.spec.ts +59 -59
- package/src/ruvocal/src/lib/utils/template.ts +53 -53
- package/src/ruvocal/src/lib/utils/timeout.ts +9 -9
- package/src/ruvocal/src/lib/utils/toolProgress.spec.ts +46 -46
- package/src/ruvocal/src/lib/utils/toolProgress.ts +11 -11
- package/src/ruvocal/src/lib/utils/tree/addChildren.spec.ts +102 -102
- package/src/ruvocal/src/lib/utils/tree/addChildren.ts +48 -48
- package/src/ruvocal/src/lib/utils/tree/addSibling.spec.ts +81 -81
- package/src/ruvocal/src/lib/utils/tree/addSibling.ts +41 -41
- package/src/ruvocal/src/lib/utils/tree/buildSubtree.spec.ts +110 -110
- package/src/ruvocal/src/lib/utils/tree/buildSubtree.ts +24 -24
- package/src/ruvocal/src/lib/utils/tree/convertLegacyConversation.spec.ts +31 -31
- package/src/ruvocal/src/lib/utils/tree/convertLegacyConversation.ts +36 -36
- package/src/ruvocal/src/lib/utils/tree/isMessageId.spec.ts +15 -15
- package/src/ruvocal/src/lib/utils/tree/isMessageId.ts +5 -5
- package/src/ruvocal/src/lib/utils/tree/tree.d.ts +14 -14
- package/src/ruvocal/src/lib/utils/tree/treeHelpers.spec.ts +167 -167
- package/src/ruvocal/src/lib/utils/updates.ts +39 -39
- package/src/ruvocal/src/lib/utils/urlParams.ts +13 -13
- package/src/ruvocal/src/lib/wasm/idb.ts +438 -438
- package/src/ruvocal/src/lib/wasm/index.ts +1213 -1213
- package/src/ruvocal/src/lib/wasm/tests/wasm-capabilities.test.ts +565 -565
- package/src/ruvocal/src/lib/wasm/wasm.worker.ts +332 -332
- package/src/ruvocal/src/lib/wasm/workerClient.ts +166 -166
- package/src/ruvocal/src/lib/workers/autopilotWorker.ts +221 -221
- package/src/ruvocal/src/lib/workers/detailFetchWorker.ts +100 -100
- package/src/ruvocal/src/lib/workers/markdownWorker.ts +61 -61
- package/src/ruvocal/src/routes/+error.svelte +20 -20
- package/src/ruvocal/src/routes/+layout.svelte +324 -324
- package/src/ruvocal/src/routes/+layout.ts +91 -91
- package/src/ruvocal/src/routes/+page.svelte +168 -168
- package/src/ruvocal/src/routes/.well-known/oauth-cimd/+server.ts +37 -37
- package/src/ruvocal/src/routes/__debug/openai/+server.ts +21 -21
- package/src/ruvocal/src/routes/admin/export/+server.ts +159 -159
- package/src/ruvocal/src/routes/admin/stats/compute/+server.ts +16 -16
- package/src/ruvocal/src/routes/api/conversation/[id]/+server.ts +40 -40
- package/src/ruvocal/src/routes/api/conversation/[id]/message/[messageId]/+server.ts +42 -42
- package/src/ruvocal/src/routes/api/conversations/+server.ts +48 -48
- package/src/ruvocal/src/routes/api/fetch-url/+server.ts +147 -147
- package/src/ruvocal/src/routes/api/mcp/health/+server.ts +292 -292
- package/src/ruvocal/src/routes/api/mcp/servers/+server.ts +32 -32
- package/src/ruvocal/src/routes/api/models/+server.ts +25 -25
- package/src/ruvocal/src/routes/api/transcribe/+server.ts +104 -104
- package/src/ruvocal/src/routes/api/user/+server.ts +15 -15
- package/src/ruvocal/src/routes/api/user/validate-token/+server.ts +20 -20
- package/src/ruvocal/src/routes/api/v2/conversations/+server.ts +48 -48
- package/src/ruvocal/src/routes/api/v2/conversations/[id]/+server.ts +94 -94
- package/src/ruvocal/src/routes/api/v2/conversations/[id]/message/[messageId]/+server.ts +43 -43
- package/src/ruvocal/src/routes/api/v2/conversations/import-share/+server.ts +23 -23
- package/src/ruvocal/src/routes/api/v2/debug/config/+server.ts +16 -16
- package/src/ruvocal/src/routes/api/v2/debug/refresh/+server.ts +30 -30
- package/src/ruvocal/src/routes/api/v2/export/+server.ts +196 -196
- package/src/ruvocal/src/routes/api/v2/feature-flags/+server.ts +14 -14
- package/src/ruvocal/src/routes/api/v2/models/+server.ts +38 -38
- package/src/ruvocal/src/routes/api/v2/models/[namespace]/+server.ts +8 -8
- package/src/ruvocal/src/routes/api/v2/models/[namespace]/[model]/+server.ts +8 -8
- package/src/ruvocal/src/routes/api/v2/models/[namespace]/[model]/subscribe/+server.ts +28 -28
- package/src/ruvocal/src/routes/api/v2/models/[namespace]/subscribe/+server.ts +28 -28
- package/src/ruvocal/src/routes/api/v2/models/old/+server.ts +7 -7
- package/src/ruvocal/src/routes/api/v2/models/refresh/+server.ts +33 -33
- package/src/ruvocal/src/routes/api/v2/public-config/+server.ts +7 -7
- package/src/ruvocal/src/routes/api/v2/user/+server.ts +17 -17
- package/src/ruvocal/src/routes/api/v2/user/billing-orgs/+server.ts +73 -73
- package/src/ruvocal/src/routes/api/v2/user/reports/+server.ts +17 -17
- package/src/ruvocal/src/routes/api/v2/user/settings/+server.ts +110 -110
- package/src/ruvocal/src/routes/conversation/+server.ts +115 -115
- package/src/ruvocal/src/routes/conversation/[id]/+page.svelte +586 -586
- package/src/ruvocal/src/routes/conversation/[id]/+page.ts +60 -60
- package/src/ruvocal/src/routes/conversation/[id]/+server.ts +740 -740
- package/src/ruvocal/src/routes/conversation/[id]/message/[messageId]/prompt/+server.ts +66 -66
- package/src/ruvocal/src/routes/conversation/[id]/share/+server.ts +69 -69
- package/src/ruvocal/src/routes/conversation/[id]/stop-generating/+server.ts +35 -35
- package/src/ruvocal/src/routes/healthcheck/+server.ts +3 -3
- package/src/ruvocal/src/routes/login/+server.ts +5 -5
- package/src/ruvocal/src/routes/login/callback/+server.ts +103 -103
- package/src/ruvocal/src/routes/login/callback/updateUser.spec.ts +157 -157
- package/src/ruvocal/src/routes/login/callback/updateUser.ts +215 -215
- package/src/ruvocal/src/routes/logout/+server.ts +18 -18
- package/src/ruvocal/src/routes/metrics/+server.ts +18 -18
- package/src/ruvocal/src/routes/models/+page.svelte +233 -233
- package/src/ruvocal/src/routes/models/[...model]/+page.svelte +161 -161
- package/src/ruvocal/src/routes/models/[...model]/+page.ts +14 -14
- package/src/ruvocal/src/routes/models/[...model]/thumbnail.png/+server.ts +64 -64
- package/src/ruvocal/src/routes/models/[...model]/thumbnail.png/ModelThumbnail.svelte +28 -28
- package/src/ruvocal/src/routes/privacy/+page.svelte +11 -11
- package/src/ruvocal/src/routes/r/[id]/+page.ts +34 -34
- package/src/ruvocal/src/routes/settings/(nav)/+layout.svelte +282 -282
- package/src/ruvocal/src/routes/settings/(nav)/+layout.ts +1 -1
- package/src/ruvocal/src/routes/settings/(nav)/+server.ts +59 -59
- package/src/ruvocal/src/routes/settings/(nav)/[...model]/+page.svelte +464 -464
- package/src/ruvocal/src/routes/settings/(nav)/[...model]/+page.ts +14 -14
- package/src/ruvocal/src/routes/settings/(nav)/application/+page.svelte +362 -362
- package/src/ruvocal/src/routes/settings/+layout.svelte +40 -40
- package/src/ruvocal/src/styles/highlight-js.css +195 -195
- package/src/ruvocal/src/styles/main.css +144 -144
- package/src/ruvocal/static/chatui/favicon-dark.svg +3 -3
- package/src/ruvocal/static/chatui/favicon-dev.svg +3 -3
- package/src/ruvocal/static/chatui/favicon.svg +3 -3
- package/src/ruvocal/static/chatui/icon.svg +3 -3
- package/src/ruvocal/static/chatui/logo.svg +7 -7
- package/src/ruvocal/static/chatui/manifest.json +54 -54
- package/src/ruvocal/static/chatui/welcome.js +184 -184
- package/src/ruvocal/static/huggingchat/favicon-dark.svg +4 -4
- package/src/ruvocal/static/huggingchat/favicon-dev.svg +4 -4
- package/src/ruvocal/static/huggingchat/favicon.svg +4 -4
- package/src/ruvocal/static/huggingchat/fulltext-logo.svg +1 -1
- package/src/ruvocal/static/huggingchat/icon.svg +4 -4
- package/src/ruvocal/static/huggingchat/logo.svg +4 -4
- package/src/ruvocal/static/huggingchat/manifest.json +54 -54
- package/src/ruvocal/static/huggingchat/routes.chat.json +226 -226
- package/src/ruvocal/static/robots.txt +10 -10
- package/src/ruvocal/static/wasm/rvagent_wasm.js +1539 -1539
- package/src/ruvocal/stub/@reflink/reflink/package.json +5 -5
- package/src/ruvocal/svelte.config.js +53 -53
- package/src/ruvocal/tailwind.config.cjs +30 -30
- package/src/ruvocal/tsconfig.json +19 -19
- package/src/ruvocal/vite.config.ts +87 -87
- package/src/scripts/deploy.sh +116 -116
- package/src/scripts/generate-config.js +245 -245
- package/src/scripts/generate-welcome.js +187 -187
- package/src/scripts/package-rvf.sh +116 -116
|
@@ -1,144 +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
|
-
}
|
|
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
|
+
}
|
|
@@ -1,3 +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>
|
|
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>
|
|
@@ -1,3 +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>
|
|
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>
|
|
@@ -1,3 +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>
|
|
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>
|
|
@@ -1,3 +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>
|
|
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>
|
|
@@ -1,7 +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>
|
|
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>
|
|
@@ -1,54 +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
|
-
}
|
|
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
|
+
}
|